/* Responsive - Mobile */
@media (max-width: 480px) {
    section {
        padding: 50px 20px;
    }

    h1 {
        font-size: 42px;
    }

    h2 {
        font-size: 38px;
    }

    p {
        font-size: 14px;
    }
        
    .container {
        max-width: 360px;
    }

    /* Header */
    header {
        top: initial;
        right: initial;
        bottom: 25px;
        left: 50%;
        transform: translateX(-50%);
    }

    header nav {
        flex-direction: row;
        gap: 20px;
    }

    header nav a {
        font-size: 18px;
    }

    /* Section - Hero */
    section#hero div.container {
        gap: 50px;
    }

    section#hero div.container div.hero--titles {
        align-items: center;
        gap: 10px;
    }

    section#hero div.container div.hero--titles span:nth-of-type(1) {
        font-size: 20px;
    }

    section#hero div.container div.hero--titles span:nth-of-type(2) {
        font-size: 18px;
        text-align: center;
    }

    section#hero div.container div.hero--buttons {
        justify-content: center;
        gap: 20px;
    }

    section#hero div.container div.hero--buttons a:nth-of-type(1),
    section#hero div.container div.hero--buttons a:nth-of-type(2) {
        font-size: 16px;
        padding: 10px 24px;
    }

    /* Section - About */
    section#about div.container {
        gap: 30px;
    }

    section#about div.container div.about__elements {
        gap: 20px;
    }

    section#about div.container div.about__elements div.elements--socials {
        gap: 20px;
    }

    section#about div.container div.about__elements div.elements--socials a {
        font-size: 20px;
        height: 44px;
        width: 44px;
    }

    /* Section - Skills */
    section#skills div.container {
        gap: 30px;
    }

    section#skills div.container div.skills__elements {
        flex-direction: column;
        gap: 20px;
    }

    section#skills div.container div.skills__elements div.elements__buttons {
        grid-template-columns: repeat(2, 1fr);
        width: 100%;
        gap: 20px;
    }

    section#skills div.container div.skills__elements div.elements__buttons label span {
        font-size: 12px;
    }

    section#skills div.container div.skills__elements div.elements__cards {
        padding: 20px;
        width: 100%;
    }

    section#skills div.container div.skills__elements input#skills1:checked ~ div.elements__cards div.elements__group--cards.skills1, 
    section#skills div.container div.skills__elements input#skills2:checked ~ div.elements__cards div.elements__group--cards.skills2, 
    section#skills div.container div.skills__elements input#skills3:checked ~ div.elements__cards div.elements__group--cards.skills3, 
    section#skills div.container div.skills__elements input#skills4:checked ~ div.elements__cards div.elements__group--cards.skills4 {
        grid-template-columns: repeat(1, 1fr);
        gap: 20px;
    }

    section#skills div.container div.skills__elements div.elements__cards div.elements__group--cards div.cards__card span:nth-of-type(1) {
        font-size: 20px;
    }

    section#skills div.container div.skills__elements div.elements__cards div.elements__group--cards div.cards__card span:nth-of-type(2) {
        font-size: 13px;
    }

    section#skills div.container div.skills__elements div.elements__cards div.elements__group--cards div.cards__card span:nth-of-type(3) {
        font-size: 11px;
    }

    /* Section - Portfolio */
    section#portfolio div.container {
        gap: 30px;
    }

    section#portfolio div.container div.portfolio__elements {
        grid-template-columns: repeat(1, 1fr);
        gap: 20px;
    }

    section#portfolio div.container div.portfolio__elements div.elements--card {
        gap: 20px;
    }

    section#portfolio div.container div.portfolio__elements div.elements--card span {
        font-size: 18px;
    }

    section#portfolio div.container div.portfolio__elements div.elements--card a {
        font-size: 12px;
        padding: 8px 20px;
    }

    /* Section - Contact */
    section#contact div.container {
        gap: 30px;
    }

    section#contact div.container div.contact__elements {
        gap: 20px;
    }

    section#contact div.container div.contact__elements div.contact--infos {
        gap: 20px;
        text-align: center;
    }


    section#contact div.container div.contact__elements div.contact--infos span {
        font-size: 18px;
    }

    section#contact div.container div.contact__elements div.contact--links a {
        font-size: 20px;
        height: 44px;
        width: 44px;
    }

    /* Footer */
    footer{
        padding: 20px 0 100px;
    }

    footer div.container {
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }
}

/* Responsive - Tablet */
@media (min-width: 481px) and (max-width: 768px) {
    /* body {
        background-color: blue;
    } */
    
    header, main, footer {
        display: none !important;
    }

    .container {
        max-width: 600px;
    }
}

/* Responsive - Laptop */
@media (min-width: 769px) and (max-width: 1024px) {      
    .container {
        max-width: 960px;
    }
 
    header {
        top: initial;
        right: initial;
        bottom: 25px;
        left: 50%;
        transform: translateX(-50%);
    }

    header nav {
        flex-direction: row;
        gap: 30px;
    }

    footer {
        padding: 30px 0 100px;
    }

    footer div.container {
        flex-direction: column;
        align-items: center;
        gap: 30px;
    }
}

/* Responsive - Default */
@media (min-width: 1025px) and (max-width: 1440px) {
    /* ... */
}

/* Responsive - Widescreens */
@media (min-width: 1441px) {
    body {
        background-color: yellow;
    }
    
    header, section, footer {
        display: none !important;
    }

    .container {
        max-width: 1440px;
    }
}