* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

:root {
    font-size: 62.5%;

    --bg-body: hsla(37, 44%, 62%, 0.31);
    --bg-nav: #C9A974;
    --bg-sections: #C9A974;
    --bg-input: #D9D9D9;
    
    --ff-primary: 'Aleo', serif;
    --ff-secondary: 'Noto Serif', serif;

    --fc-nav: #000000;
    --fc-primary: #3E2E13;
    --fc-secondary: #000000;
}

body {
    background: var(--bg-body);
    font-family: var(--ff-primary);
    color: var(--fc-primary);
    font-size: 1.6rem;
}

.container {
    padding: 1rem;
}

header {
    margin-bottom: 2rem;
    text-align: center;
}

.logo {
    background: var(--bg-nav);
    width: 100%;
    padding: 0.3rem;
    border-radius: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.logo img {
    width: 18rem;
    height: auto;
}

.photos {
    height: 18rem;
    width: 100%;
    object-fit: cover;
    margin: 1rem 0;
    border-radius: 1rem;
}

header h2 {
    padding: 0 1.5rem .5rem;
    font-size: 1.6rem;
    font-weight: 400;
}

main {
    display: grid;
    gap: 1rem;
}

section {
    background: var(--bg-sections);
    border-radius: 1rem;
    text-align: center;
    padding: 1rem;
}

section h3 {
    margin-bottom: .8rem;
    text-transform: uppercase;
    font-size: 2.4rem;
    font-weight: 700;
}

section p {
    padding: 0 2.8rem;
}

#products p {
    margin-bottom: 3.6rem;
}

.products-gallery {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

#products figure {
    display: flex;
    align-items: center;
    justify-content: center;
}

#products img {
    width: 20rem;
    height: auto;
    border-radius: 50%;
}

#products figcaption {
    width: 10rem;
    font-size: 2rem;
}

#catalog div {
    margin-top: 2rem;
    display: flex;
    align-items: center;
    justify-content: space-around;
}

#catalog img {
    width: 8rem;
    height: auto;
}

#contact div {
    margin-top: 2rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

#contact a {
    color: var(--fc-primary);
    text-decoration: none;
}

#address p {
    margin-top: 2rem;
}

@media (min-width: 700px) {
    .container {
        padding: 2rem;
    }

    .logo {
        padding: .5rem;
    }

    .logo img {
        width: 20rem;
    }

    header h2 {
        padding: 0 2.5rem .5rem;
        font-size: 2rem;
    }

    .photos {
        height: 32rem;
    }

    main {
        grid-template-areas: 
        "products products products" 
        "catalog contact address";
    }

    #products {
        font-size: 2rem;
        grid-area: products;
    }

    .products-gallery {
        flex-direction: row;
        align-items: center;
        justify-content: space-around;
    }

    #products figure {
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }

    #products figure:nth-child(2) {
        flex-direction: column-reverse;
    }

    #catalog {
        grid-area: catalog;
    }

    #catalog div {
        display: flex;
        flex-direction: column;
    }

    #contact {
        grid-area: contact;
    }

    #address {
        grid-area: address;
    }
}

@media (min-width: 1000px) {
    .container {
        padding: 2.5rem;
    }

    .logo {
        margin-bottom: 2.5rem;
    }

    .logo img {
        width: 30rem;
        padding: 1rem;
    }

    header h2 {
        padding: 0 20rem .5rem;
        font-size: 2.8rem;
    }

    header p {
        font-size: 2.4rem;
    }

    .photos {
        height: 40rem;
    }

    main {
        gap: 2rem;
    }

    section {
        padding: 2rem;
    }

    #products {
        display: grid;
        grid-template-columns: 25% auto;
        grid-template-areas: 
        "hd hd"
        "tx img";
    }

    #products h3 {
        grid-area: hd;
        margin-bottom: 4rem;
    }

    #products p {
        grid-area: tx;
        font-size: 2.4rem;
    }

    #products div {
        grid-area: img;
    }

    #catalog div {
        flex-direction: row;
    }

    #catalog img {
        width: 10rem;
        height: auto;
    }

    #contact a {
        font-size: 2rem;
    }

    #address p {
        font-size: 2rem;
    }
}