:root {
    --ink: #303030;
    --line: #dedede;
    --frame: #f2dcd1
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth
}

body {
    margin: 0;
    background: #fff;
    color: var(--ink);
    font-family: "Gruppo",sans-serif;
    font-size: 15px;
    font-weight: 400
}

p {
    font-size: 20px
}

.header {
    height: 100px;
    padding: 0 4vw;
    display: flex;
    align-items: center;
    position: sticky;
    top: 0;
    z-index: 20;
    background: rgba(255,255,255,.97);
    border-bottom: 1px solid #eee
}

.brand {
    font-family: "Gruppo",sans-serif;
    font-size: 32px;
    font-weight: 500;
    color: #222;
    text-decoration: none;
    white-space: nowrap
}

.nav {
    margin-left: auto;
    display: flex;
    gap: 25px;
    align-items: center
}

.nav a {
    color: #333;
    text-decoration: none;
    font-size: 15px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .045em
}

.nav a:hover {
    opacity: .55
}

.menu-toggle {
    display: none
}

.page-width {
    width: min(1180px,90vw);
    margin: auto
}

.intro {
    min-height: 620px;
    padding: 60px 0 150px;
    display: grid;
    grid-template-columns: 260px 1fr 230px;
    gap: 70px;
    align-items: start
}

.intro img {
    width: 190px;
    height: 220px;
    object-fit: cover
}

.intro p {
    max-width: 500px;
    margin: 100px auto 0;
    line-height: 1.7
}

.intro strong {
    text-align: right;
    font-size: 20px;
    font-weight: 500;
    letter-spacing: .055em
}

.gallery-section {
    width: min(1040px,88vw);
    margin: 0 auto;
    padding: 0 0 155px;
    text-align: center;
    scroll-margin-top: 118px
}

.gallery-section h2,.contacts h2 {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    margin: 0 auto 45px;
    text-transform: uppercase;
    font-family: "Gruppo",sans-serif;
    font-size: 22px;
    font-weight: 500;
    letter-spacing: .085em
}

.gallery-section h2:before,.gallery-section h2:after,.contacts h2:before,.contacts h2:after {
    content: "";
    width: 75px;
    height: 1px;
    background: var(--line)
}

.main-photo {
    display: block;
    margin: 0 auto 55px;
    border: 6px solid var(--frame);
    object-fit: cover
}

.main-photo.square {
    width: 295px;
    height: 295px
}

.main-photo.portrait {
    width: 275px;
    height: 360px
}

.description {
    max-width: 1000px;
    margin: -4px auto 45px;
    text-align: left;
    line-height: 1.7
}

.description.narrow {
    max-width: 600px;
    text-align: center
}

.thumbs {
    display: grid;
    justify-content: center;
    gap: 44px;
    margin: 0 auto
}

.thumbs img {
    width: 190px;
    height: 230px;
    object-fit: cover;
    border: 5px solid var(--frame)
}

.thumbs.four {
    grid-template-columns: repeat(4,190px)
}

.thumbs.three {
    grid-template-columns: repeat(3,190px)
}

.thumbs.two {
    grid-template-columns: repeat(2,190px)
}

.thumbs.wide img {
    width: 220px;
    height: 145px
}

.thumbs.four.wide {
    grid-template-columns: repeat(4,220px)
}

.thumbs.three.wide {
    grid-template-columns: repeat(3,220px)
}

.second-row {
    margin-top: 44px
}

.contacts {
    width: min(1040px,88vw);
    margin: 0 auto;
    padding: 0 0 180px
}

.contact-copy {
    width: min(700px,100%);
    margin: 0 auto;
    text-align: left
}

.contact-copy h3 {
    margin: 0 0 18px;
    text-transform: uppercase;
    font-family: "Gruppo",sans-serif;
    font-size: 34px;
    font-weight: 500
}

.contact-copy p {
    margin: 7px 0;
    line-height: 1.6
}

.contact-copy a {
    color: inherit
}

footer {
    width: min(1040px,88vw);
    margin: auto;
    padding: 28px 0;
    border-top: 1px solid var(--line);
    display: flex;
    justify-content: space-between;
    font-size: 13px
}

footer a {
    color: inherit;
    text-decoration: none
}

@media(max-width: 1000px) {
    .nav {
        gap:14px
    }

    .nav a {
        font-size: 11px
    }

    .intro {
        grid-template-columns: 210px 1fr 160px;
        gap: 35px
    }

    .thumbs.four,.thumbs.four.wide {
        grid-template-columns: repeat(2,220px)
    }
}

@media(max-width: 760px) {
    .header {
        height:78px;
        padding: 0 20px
    }

    .brand {
        font-size: 28px
    }

    .menu-toggle {
        display: grid;
        margin-left: auto;
        width: 44px;
        height: 44px;
        border: 0;
        background: transparent;
        place-content: center;
        gap: 7px
    }

    .menu-toggle span {
        display: block;
        width: 26px;
        height: 1px;
        background: #222
    }

    .nav {
        position: fixed;
        inset: 78px 0 auto 0;
        display: none;
        flex-direction: column;
        align-items: flex-start;
        padding: 22px;
        background: #fff;
        border-top: 1px solid #eee
    }

    .nav.open {
        display: flex
    }

    .nav a {
        width: 100%;
        padding: 7px 6px;
        font-size: 15px
    }

    .intro {
        min-height: 0;
        padding: 35px 0 110px;
        grid-template-columns: 1fr;
        gap: 24px
    }

    .intro img {
        width: 155px;
        height: 180px
    }

    .intro p {
        margin: 0
    }

    .intro strong {
        text-align: left;
        font-size: 15px
    }

    .gallery-section {
        width: 90vw;
        padding-bottom: 110px;
        scroll-margin-top: 92px
    }

    .gallery-section h2,.contacts h2 {
        margin-bottom: 32px;
        font-size: 19px
    }

    .main-photo {
        margin-bottom: 36px
    }

    .main-photo.square {
        width: min(270px,88vw);
        height: min(270px,88vw)
    }

    .main-photo.portrait {
        width: min(260px,82vw);
        height: 340px
    }

    .description {
        margin-bottom: 32px
    }

    .thumbs,.thumbs.four,.thumbs.three,.thumbs.two,.thumbs.four.wide,.thumbs.three.wide {
        grid-template-columns: repeat(2,minmax(0,1fr));
        gap: 18px
    }

    .thumbs img,.thumbs.wide img {
        width: 100%;
        height: 190px
    }

    .second-row {
        margin-top: 18px
    }

    .contacts {
        width: 90vw;
        padding-bottom: 100px
    }

    .contact-copy h3 {
        font-size: 29px
    }

    footer {
        width: 90vw;
        font-size: 12px
    }
}