/*
 * Reset rules
 */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, menu, nav, output, section, summary, time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
}

*,
*::before,
*::after{box-sizing:border-box;}

ul, ol,
ul li, ol li {
    margin:0;
    padding: 0;
    text-indent: 0;
    list-style-type: none;
}

a {
    color: inherit;
    text-decoration: none;
}

button {
    background-color: transparent;
    border: none;
}

/*
 * Fonts
 */
@font-face {
    font-family: 'Serifiqo 4F';
    font-style: normal;
    font-weight: normal;
    src: url('../fonts/Serifiqo 4F Free Capitals.otf');
}

@font-face {
    font-family: 'Proxima Nova Condensed Regular';
    font-style: normal;
    font-weight: normal;
    src: url('../fonts/Mark Simonson  Proxima Nova Condensed Light.woff');
}

@font-face {
    font-family: 'Good Vibes Pro';
    font-style: normal;
    font-weight: normal;
    src: url('../fonts/GoodVibesPro.woff2');
}

/*
 * Variables
 */
:root {
    --color-white: #FFF;
    --color-black: #000;
    --color-gray: #E4E4E4;
    --color-light-gray: #F3F3F2;
    --color-light-brown: #3D3935;
    --color-light-blue: #B3D3D3;
    --color-brown: #8D666D;
    --color-dark-brown: #3B2C3D;
    --color-main: #639AA0;
    --color-bg-light-brown: #CCB2A6;

    --mobile-screen: 576px;
}

/*
 * Common section
 */
h1, h2, h3, h4, h5, h6 {
    font-family: 'Serifiqo 4F', sans-serif;
    font-weight: 400;
}

a, p, button, label {
    font-family: 'Proxima Nova Condensed Regular', sans-serif;
    font-weight: 400;
}

h1 {
    font-size: 3.75rem;
}

h2 {
    font-size: 3rem;
}

h3 {
    font-size: 2.5rem;
}

h4 {
    font-size: 2rem;
}

h5 {
    font-size: 1.5rem;
}

h6 {
    font-size: 1rem;
}

body {
    background-color: var(--color-white);
}

body.fixed {
    overflow: hidden;
    max-height: 100vh;
    max-width: 100vw;
    position: fixed;
}

body > .container {
    margin: 0 auto;
    max-width: 95.6vw;
}

p {
    font-size: 1.22rem;
    font-weight: 300;
    letter-spacing: 0.01rem;
    line-height: 1.73rem;
}

.btn {
    color: var(--color-white);
    display: inline-block;
    letter-spacing: 0.02rem;
    text-transform: uppercase;
    font-size: 1.62rem;
    margin-top: 1.84rem;
    padding: 0.86rem 2.5rem;
}

.text-center {
    text-align: center;
}

.flex-break {
    flex-basis: 100%;
    height: 0;
}

.underline {
    text-decoration: underline;
    text-decoration-thickness: 1px;
}

.phones {
    white-space: nowrap;
}

.phones span {
    display: inline-block;
    font-size: 2rem;
    padding: 0.35rem 0;
    letter-spacing: 0.008rem;
    white-space: nowrap;
}

.phones span:not(:last-of-type) {
    border-right: 1px solid var(--color-bg-light-brown);
    padding-right: 1.2rem;
}

.phones span:not(:first-of-type) {
    margin-left: 0.9rem;
}

@media only screen and (max-width: 992px) {
    body > .container {
        max-width: 92vw;
    }

    .phones {
        overflow: hidden;
    }

    h1 {
        font-size: 3rem;
    }

    h2 {
        font-size: 2.5rem;
    }
}

@media only screen and (min-width: 1921px) {
    body > .container {
        max-width: 1837px;
    }
}

/*
 * Main menu
 */
header {
    position: relative;
}

header .main-menu {
    display: flex;
    padding-top: 1.313rem;
    height: 10.564rem;
}

header .main-menu > div {
    flex: 1;
}

header .main-menu > div.middle {
    flex-grow: 0;
}

header .main-menu > div ul {
    align-items: center;
    display: flex;
    height: 100%;
}

header .main-menu > div.left ul {
    justify-content: flex-end;
}

header .main-menu > div.right ul {
    justify-content: flex-start;
    padding: 0 2.188rem;
}

header .main-menu > div ul li {
    display: inline-block;
    padding: 0 2.23rem;
    margin-top: 2.3rem;
}

header .main-menu > div.left ul li:last-of-type {
    margin-right: 5.5rem;
}

header .main-menu > div.right ul li:first-of-type {
    margin-left: 0.2rem;
}

header .main-menu > div ul li a {
    color: var(--color-light-brown);
    font-size: 1.1rem;
    font-weight: 300;
    white-space: nowrap;
}

header .main-menu > div .logo {
    height: 100%;
}

header #menu-icon {
    display: none;
    position: absolute;
    height: 2rem;
    right: 0;
    bottom: calc(50% - 2rem);
}

header #mobile-menu-wrap {
    background-color: var(--color-white);
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    overflow: hidden;
    height: 100%;
    width: 100%;
    z-index: 100;
}

header #mobile-menu-wrap.show {
    display: block;
}

header #mobile-menu-wrap .logo-wrap {
    background-color: var(--color-white);
    position: absolute;
    padding-top: 1.313rem;
    text-align: center;
    height: 11.5rem;
    width: 100%;
    z-index: 105;
}

header #mobile-menu-wrap .logo-wrap #menu-close-icon {
    position: absolute;
    height: 2.7rem;
    right: 1em;
    bottom: calc(50% - 2.7rem);
}

header #mobile-menu-wrap .mobile-menu {
    height: 100%;
    position: absolute;
    width: 100%;
    padding: 11.5rem 0 15.5rem;
    overflow-x: hidden;
    overflow-y: scroll;
    -ms-overflow-style: none;  /* IE and Edge */
    scrollbar-width: none;  /* Firefox */
    box-sizing: border-box;
}

header #mobile-menu-wrap .mobile-menu::-webkit-scrollbar {
    display: none;
}

header #mobile-menu-wrap .mobile-menu li {
    font-size: 1.6rem;
    text-align: center;
    margin: 1.6rem 0;
}

header #mobile-menu-wrap .contacts {
    background-color: var(--color-light-gray);
    position: absolute;
    bottom: 0;
    left: 0;
    text-align: center;
    padding: 2rem 1rem;
    height: 13.6rem;
    width: 100%;
}

header #mobile-menu-wrap .contacts .phones span {
    font-size: 1.6rem;
}

header #mobile-menu-wrap .contacts .phones span:not(:last-of-type) {
    padding: 0 1.2rem 0 0;
}

header #mobile-menu-wrap .contacts .address {
    margin: 1rem 0;
}

header #mobile-menu-wrap .contacts .btn {
    background-color: var(--color-brown);
    margin: 0;
    width: 100%;
}

@media only screen and (max-width: 1200px) {
    header .main-menu .left,
    header .main-menu .right {
        display: none;
    }

    header .main-menu div.middle {
        flex-grow: 1;
        text-align: center;
    }

    header #menu-icon {
        display: block;
    }
}

/*
 * Banner
 */
#banner {
    display: flex;
    position: relative;
    height: 43.13rem;
    margin-top: 3.2rem;
}

#banner .banner-left,
#banner .banner-right {
    flex: 1 0;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: top center;
}

#banner .banner-left {
    background-image: url('../img/banner-left.jpg');
    margin-right: 1.9rem;
}

#banner .banner-right {
    background-image: url('../img/banner-right.jpg');
}

#banner .slogan-block {
    --block-height: 23.4rem;
    --block-width: 45.6rem;

    background-color: var(--color-white);
    padding: 3.8rem 3.2rem;
    position: absolute;
    height: var(--block-height);
    width: var(--block-width);
    top: calc(50% - var(--block-height) / 2);
    left: calc(50% - var(--block-width) / 2);
    text-align: center;
}

#banner .slogan-block :is(h1, h2, h3, h4, h5, h6) {
    color: var(--color-brown);
}

#banner .slogan-block p {
    color: var(--color-dark-brown);
    margin-top: 1.3rem;
}

#banner .slogan-block .btn {
    background-color: var(--color-main);
}

@media only screen and (max-width: 992px) {
    #banner {
        flex-flow: column;
        margin-top: 1.5rem;
        height: auto;
    }

    #banner .banner-left,
    #banner .banner-right {
        display: block;
        flex: auto;
        margin-right: 0;
        height: 18rem;
    }

    #banner .banner-left {
        order: 1;
    }

    #banner .slogan-block {
        display: block;
        position: relative;
        height: auto;
        padding: 3rem 0;
        width: 100%;
        top: 0;
        left: 0;
        order: 2;
    }

    #banner .banner-right {
        order: 3;
    }
}

@media only screen and (min-width: 577px) and (max-width: 768px) {
    #banner .banner-left,
    #banner .banner-right {
        height: 25rem;
    }
}

@media only screen and (min-width: 769px) and (max-width: 992px) {
    #banner .banner-left,
    #banner .banner-right {
        height: 30rem;
    }
}

/*
 * About us
 */
#about-us {
    margin-top: 7.5rem;
    padding-bottom: 8.15rem;
    position: relative;
}

#about-us .background {
    background-color: var(--color-bg-light-brown);
    position: absolute;
    top: 0;
    left: 0;
    height: 18.1rem;
    width: 64.24rem;
    z-index: -1;
}

#about-us .row {
    display: flex;
    padding: 0 22.7rem;
}

#about-us .row .background-image {
    background-repeat: no-repeat;
    background-position: top center;
    background-size: cover;
    height: 25.15rem;
    width: 100%;
}

#about-us .row.bg-image-wrap .middle {
    display: none;
}

#about-us .row.bg-image-wrap > div {
    padding-top: 0;
    margin-top: 1.15rem;
}

#about-us .row .left-block {
    color: var(--color-white);
    font-weight: 300;
    flex: 0 1 21.8rem;
    text-align: left;
    padding-top: 3.55rem;
}

#about-us .row .left-block .background-image {
    background-image: url('../img/about-us-left.png');
}

#about-us .row .right-block {
    color: var(--color-light-brown);
    flex: 1;
    text-align: right;
    margin-left: 2rem;
    padding-top: 1.75rem;
}

#about-us .row .right-block .address {
    letter-spacing: 0.015rem;
    margin-top: 0.6rem;
    white-space: nowrap;
}

#about-us .row .right-block .background-image {
    background-image: url('../img/about-us-right.png');
}

#about-us .row.content {
    display: block;
    padding-top: 2.45rem;
}

#about-us .row.content p {
    font-weight: 300;
    letter-spacing: 0.013rem;
}

#about-us .row.content p:not(:last-of-type) {
    margin-bottom: 1.3rem;
}

@media only screen and (max-width: 992px) {
    #about-us {
        margin-top: 1.5rem;
        padding-bottom: 0;
    }

    #about-us .background {
        width: 100%;
    }

    #about-us .row {
        flex-flow: column;
        padding: 0;
    }

    #about-us .row .left-block {
        flex: auto;
        text-align: center;
    }

    #about-us .row .right-block {
        display: none;
    }

    #about-us .row.bg-image-wrap > div {
        margin: 2.5rem auto 0;
        width: 80%;
    }

    #about-us .row.bg-image-wrap .middle {
        display: block;
        margin: 1rem 0;
        width: 100%;
    }

    #about-us .row.bg-image-wrap .middle p {
        text-align: center;
    }

    #about-us .row.bg-image-wrap .middle p:first-of-type {
        margin-bottom: 0.9rem;
    }

    #about-us .row.bg-image-wrap .middle span {
        font-size: 1.5rem;
    }

    #about-us .row.bg-image-wrap .background-image {
        height: auto;
        min-height: 22rem;
        width: 100%;
    }

    #about-us .row.bg-image-wrap .right-block {
        display: block;
        margin: 0.5rem 0 0;
        width: 100%;
    }

    #about-us .row.content {
        padding-bottom: 2.45rem;
    }
}

@media only screen and (min-width: 577px) and (max-width: 768px) {
    #about-us .row.bg-image-wrap .background-image {
        min-height: 41rem;
    }
}

@media only screen and (min-width: 769px) and (max-width: 992px) {
    #about-us .row.bg-image-wrap .background-image {
        min-height: 52rem;
    }
}

@media only screen and (min-width: 993px) and (max-width: 1400px) {
    #about-us {
        margin: 3rem 0;
        padding-bottom: 0;
    }

    #about-us .row {
        padding: 0 3rem;
    }

    #about-us .background {
        width: 31rem;
    }
}

@media only screen and (min-width: 1201px) and (max-width: 1400px) {
    #about-us .background {
        width: 40rem;
    }
}

@media only screen and (min-width: 1401px) and (max-width: 1800px) {
    #about-us {
        margin: 3rem 0;
        padding-bottom: 0;
    }

    #about-us .background {
        width: 40rem;
    }

    #about-us .row {
        padding: 0 10rem;
    }
}

    /*
     * Our works
     */
#our-works {
    background-color: var(--color-light-gray);
    color: var(--color-brown);
    padding: 8.2rem 21.7rem;
    text-align: center;
}

#our-works .gallery {
    display: flex;
    flex-wrap: wrap;
    margin-top: 2.7rem;
}

#our-works .gallery > div {
    flex: 0 0 21.8rem;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    height: 25.9rem;
    justify-content: space-around;
    margin: 1rem;
}

#our-works .gallery > div:not(:nth-child(-n+9)) {
    display: none;
}

#our-works .gallery > div:nth-child(3n+0) {
    margin-right: 0;
}

#our-works .gallery .gallery-1 {
    background-image: url('../img/gallery-1.jpg');
}

#our-works .gallery .gallery-2 {
    background-image: url('../img/gallery-2.jpg');
}

#our-works .gallery .gallery-3 {
    background-image: url('../img/gallery-3.jpg');
}

#our-works .gallery .gallery-4 {
    background-image: url('../img/gallery-4.jpg');
}

#our-works .gallery .gallery-5 {
    background-image: url('../img/gallery-5.jpg');
}

#our-works .gallery .gallery-6 {
    background-image: url('../img/gallery-6.jpg');
}

#our-works .gallery .gallery-7 {
    background-image: url('../img/gallery-7.jpg');
}

#our-works .gallery .gallery-8 {
    background-image: url('../img/gallery-8.jpg');
}

#our-works .gallery .gallery-9 {
    background-image: url('../img/gallery-9.jpg');
}

#our-works .gallery .gallery-10 {
    background-image: url('../img/gallery-10.jpg');
}

#our-works .btn {
    background-color: var(--color-bg-light-brown);
    margin-top: 2.84rem;
    padding: 0.86rem 4.6rem;
}

@media only screen and (max-width: 992px) {
    #our-works {
        padding: 4rem 1rem;
    }

    #our-works .gallery {
        flex-flow: column;
    }

    #our-works .gallery > div:not(:nth-child(-n+3)) {
        display: none;
    }
}

@media only screen and (min-width: 577px) and (max-width: 992px) {
    #our-works .gallery {
        flex-flow: row;
        flex-wrap: wrap;
        justify-content: space-around;
    }

    #our-works .gallery > div {
        flex: 0 1 48%;
        margin: 1rem 0;
    }

    #our-works .gallery > div:not(:nth-child(-n+3)) {
        display: block;
    }

    #our-works .gallery > div:not(:nth-child(-n+4)) {
        display: none;
    }
}

@media only screen and (min-width: 769px) and (max-width: 992px) {
    #our-works .gallery > div {
        height: 31rem;
    }
}

@media only screen and (min-width: 993px) and (max-width: 1200px) {
    #our-works {
        padding: 4.2rem 1rem;
    }

    #our-works .gallery {
        justify-content: space-between;
    }

    #our-works .gallery > div {
        flex: 0 0 48%;
        margin: 1rem 0;
        height: 42rem;
    }

    #our-works .gallery > div:not(:nth-child(-n+4)) {
        display: none;
    }
}

@media only screen and (min-width: 1201px) and (max-width: 1400px) {
    #our-works {
        padding: 4.2rem 2rem;
    }

    #our-works .gallery {
        justify-content: space-between;
    }

    #our-works .gallery > div {
        flex: 0 0 32%;
        margin: 1rem 0;
        height: 33rem;
    }

    #our-works .gallery > div:not(:nth-child(-n+6)) {
        display: none;
    }
}

@media only screen and (min-width: 1401px) and (max-width: 1800px) {
    #our-works {
        padding: 4.2rem 10rem;
    }

    #our-works .gallery {
        justify-content: space-between;
    }

    #our-works .gallery > div {
        flex: 0 0 32%;
        margin: 1rem 0;
        height: 33rem;
    }

    #our-works .gallery > div:not(:nth-child(-n+6)) {
        display: none;
    }
}

/*
 * Sew
 */
#sew {
    padding: 8.1rem 0 4rem 22.7rem;
    position: relative;
}

#sew .section-delimiter {
    --height: 10rem;
    --width: 1px;

    border-width: 0 var(--width) 0 0;
    border-color: var(--color-bg-light-brown);
    border-style: solid;
    height: var(--height);
    position: absolute;
    top: calc(-1 * var(--height)/2);
    left: calc(50% - var(--width));
}

#sew .wrapper {
    display: flex;
    flex-wrap: wrap;
}

#sew .block-title,
#sew .block-text {
    color: var(--color-brown);
    flex: 0 0 auto;
    padding-right: 1rem;
}

#sew .block-title {
    flex-basis: 56%;
    text-align: right;
}

#sew .block-text {
    flex-basis: 53%;
    margin-top: 1.9rem;
}

#sew .block-bg {
    background-image: url("../img/sew_bg.png");
    background-repeat: no-repeat;
    background-position: top right;
    background-size: contain;
    flex: 0 57%;
    min-height: 492px;
    margin-top: -2.6rem;
    position: absolute;
    width: 100%;
    right: 0;
}

#sew .block-text h1 {
    color: var(--color-brown);
    margin-bottom: 1.85rem;
    margin-right: -4.6rem;
    text-align: right;
}

#sew p {
    color: var(--color-light-brown);
    word-spacing: 0.03rem;
    font-weight: 300;
    text-align: left;
}

#sew p.smaller {
    color: rgba(61, 57, 53, 0.6);
    margin-top: 3rem;
    font-size: 0.96rem;
    word-spacing: 0.04rem;
    padding-right: 37%;
    line-height: 1.36rem;
}

@media only screen and (max-width: 992px) {
    #sew {
        padding: 4rem 0 2.5rem;
    }

    #sew .section-delimiter {
        --height: 4rem;
    }

    #sew .wrapper {
        flex-flow: column;
    }

    #sew .wrapper .block-title,
    #sew .wrapper .block-text {
        padding-right: 0;
    }

    #sew .wrapper .block-title {
        order: 1;
        text-align: center;
    }

    #sew .wrapper .block-text {
        order: 3;
        text-align: center;
        margin-top: -0.7rem;
    }

    #sew .wrapper .block-bg {
        order: 2;
        flex: auto;
        text-align: center;
        position: relative;
        margin-top: 0;
        min-height: 17rem;
    }

    #sew p.smaller {
        margin-top: 2.3rem;
        padding-right: 0;
    }
}

@media only screen and (min-width: 577px) and (max-width: 992px) {
    #sew .wrapper .block-bg {
        min-height: 22rem;
    }

    #sew .wrapper .block-text {
        order: 3;
        text-align: center;
        margin-top: 1rem;
    }
}

@media only screen and (min-width: 993px) and (max-width: 1400px) {
    #sew {
        padding: 7rem 0 4rem 0;
    }

    #sew .section-delimiter {
        --height: 5rem;
    }

    #sew .wrapper .block-bg {
        min-height: 18rem;
        margin-top: -1rem;
    }

    #sew .wrapper .block-text {
        order: 3;
        text-align: center;
        margin-top: 1rem;
    }

    #sew p.smaller {
        padding-right: 0;
    }
}

@media only screen and (min-width: 1201px) and (max-width: 1400px) {
    #sew {
        padding: 5rem 0 4rem;
    }

    #sew .wrapper .block-bg {
        min-height: 24rem;
        margin-top: 1rem;
    }
}

@media only screen and (min-width: 1401px) and (max-width: 1800px) {
    #sew {
        padding: 5rem 10rem 4rem;
    }

    #sew .section-delimiter {
        --height: 5rem;
    }

    #sew .wrapper .block-bg {
        min-height: 28rem;
        margin-top: 3rem;
    }
}

/*
 * Order
 */
#order {
    background-color: var(--color-light-blue);
    color: var(--color-white);
    padding: 8.2rem 22.7rem 7rem;
    position: relative;
}

#order .block-title {
    text-align: center;
}

#order .row {
    display: flex;
    margin-top: 3.1rem;
}

#order .row h1 {
    font-size: 5rem;
}

#order .row p {
    margin-top: 0.7rem;
    line-height: 1.58rem;
    letter-spacing: 0.014rem;
    font-size: 1.1rem;
}

#order .row > div {
    border-color: var(--color-white);
    border-width: 1px;
    border-style: solid;
    flex: 0 1 25%;
    padding: 1.8rem 0.9rem;
    height: max-content;
}

#order .row > div:not(:last-of-type){
    margin-right: 1.9rem;
}

#order .note {
    --icon-width: 4.5rem;

    background-image: url("../img/warning.svg");
    background-position: left top;
    background-size: var(--icon-width) auto;
    background-repeat: no-repeat;
    padding-left: calc(var(--icon-width) + 1.45rem);
    padding-top: 0.35rem;
    position: absolute;
    right: 22.7rem;
    bottom: 6.6rem;
    width: 27.75rem;
}

#order .note p {
    font-size: 0.93rem;
    letter-spacing: 0.015rem;
    word-spacing: 0.15rem;
    font-weight: 100;
    line-height: 1.4rem;
}

#order .additional-info {
    color: var(--color-main);
    background-color: var(--color-light-gray);
    position: absolute;
    top: 100%;
    left: 0;
    padding: 1rem 7rem;
    text-align: center;
    transform: translate(32.8%, -50%);
    width: 69.3rem;
}

@media only screen and (max-width: 992px) {
    #order {
        padding: 4rem 0 4rem;
    }

    #order .row {
        flex-flow: column;
    }

    #order .row > div {
        margin: 0 1rem 1rem !important;
    }

    #order .note {
        position: relative;
        left: 0;
        top: 0;
        margin: 0 1rem;
        min-height: 4.5rem;
        width: auto;
    }

    #order .additional-info {
        width: 90%;
        padding: 1.5rem 1rem;
        transform: translate(5%, -1.5rem);
    }
}

@media only screen and (min-width: 769px) and (max-width: 992px) {
    #order .row {
        flex-flow: row;
        flex-wrap: wrap;
        justify-content: space-around;
    }

    #order .row > div {
        flex: 0 0 46%;
        margin: 0 0 1.5rem !important;
    }
}

@media only screen and (min-width: 993px) and (max-width: 1400px) {
    #order {
        padding: 4.2rem 1.5rem 9rem
    }

    #order .row {
        flex-wrap: wrap;
        justify-content: space-around;
    }

    #order .row > div {
        flex: 0 0 46%;
        margin: 0 0 1.5rem !important;
    }

    #order .note {
        right: 2.5rem;
        bottom: 5rem;
    }

    #order .additional-info {
        transform: translate(5%, -30%);
        width: 90%;
    }
}

@media only screen and (min-width: 1401px) and (max-width: 1800px) {
    #order {
        padding: 4.2rem 10rem 5rem;
    }

    #order .row {
        justify-content: space-around;
    }

    #order .row > div {
        flex: 0 0 23%;
        margin: 0 0 1.5rem !important;
    }

    #order .note {
        right: 11rem;
        bottom: 7rem;
    }

    #order .additional-info {
        transform: translate(5%, -50%);
        width: 90%;
    }
}

/*
 * Stars
 */
#stars {
    padding: 11.8rem 22.7rem 5.1rem;
}

#stars h1 {
    color: var(--color-brown);
    text-align: center;
}

#stars .gallery {
    display: flex;
    flex-wrap: wrap;
    margin-top: 3.7rem;
}

#stars .gallery > div {
    display: flex;
    flex-flow: column;
    flex: 0 31.5%;
    margin-bottom: 2.3rem;
}

#stars .gallery .photo {
    background-repeat: no-repeat;
    background-size: contain;
    background-position: top center;
    height: 26.8rem;
    order: 1;
}

#stars .gallery .name {
    order: 2;
}

#stars .gallery > div:not(:nth-of-type(3n+3)) {
    margin-right: 1.9rem;
}

#stars .gallery > div:nth-of-type(3n+2) .photo {
    order: 2;
    margin-top: 1.2rem;
}

#stars .gallery > div:nth-of-type(3n+2) .name {
    order: 1;
    padding-top: 0.8rem;
}

#stars .gallery > div.star-1 .photo {
    background-image: url("../img/star-1.png");
}

#stars .gallery > div.star-2 .photo {
    background-image: url("../img/star-2.png");
}

#stars .gallery > div.star-3 .photo {
    background-image: url("../img/star-3.png");
}

#stars .gallery > div.star-4 .photo {
    background-image: url("../img/star-4.png");
}

#stars .gallery > div.star-5 .photo {
    background-image: url("../img/star-5.png");
}

#stars .gallery > div.star-6 .photo {
    background-image: url("../img/star-6.png");
}

#stars .gallery > div.star-7 .photo {
    background-image: url("../img/star-7.png");
}

#stars .gallery > div.star-8 .photo {
    background-image: url("../img/star-8.png");
}

#stars .gallery > div.star-9 .photo {
    background-image: url("../img/star-9.png");
}

#stars .gallery > div.logo {
    display: none;
    background-image: url("../img/logo-grey.svg");
    background-repeat: no-repeat;
    background-size: contain;
}

#stars .gallery > div h1,
#stars .gallery > div h2 {
    color: var(--color-bg-light-brown);
    font-family: "Good Vibes Pro", sans-serif;
    text-align: center;
}

#stars .gallery > div h1 {
    margin-top: -0.9rem;
}

#stars .gallery > div h2 {
    font-size: 2.5rem;
}

@media only screen and (max-width: 992px) {
    #stars {
        padding: 21rem 0 0;
    }

    #stars .gallery {
        margin-top: 1.5rem;
        justify-content: space-between;
    }

    #stars .gallery > div {
        flex: 0 0 47%;
        margin-bottom: 1.5rem;
        overflow: hidden;
    }

    #stars .gallery .photo {
        height: 13rem;
    }

    #stars .gallery > div:not(:nth-of-type(3n+3)) {
        margin-right: 0;
    }

    #stars .gallery > div:nth-of-type(3n+2) .photo {
        order: initial;
        margin-top: initial;
    }

    #stars .gallery > div:nth-of-type(3n+2) .name {
        order: initial;
        padding-top: initial;
    }

    #stars .gallery > div:nth-of-type(2n+2) .photo {
        order: 2;
        margin-top: 0.6rem;
    }

    #stars .gallery > div:nth-of-type(2n+2) .name {
        order: 1;
        padding-top: 0.8rem;
    }

    #stars .gallery > div.logo {
        display: block;
        background-position: 0 3rem;
    }

    #stars .gallery > div h1 {
        font-size: 2rem;
        margin-top: 0.5rem;
    }

    #stars .gallery > div h2 {
        font-size: 1.5rem;
    }
}

@media only screen and (min-width: 577px) and (max-width: 768px) {
    #stars .gallery .photo {
        height: 19rem;
    }
}

@media only screen and (min-width: 769px) and (max-width: 992px) {
    #stars .gallery .photo {
        height: 25rem;
    }

    #stars .gallery > div h1 {
        font-size: 2.75rem;
    }

    #stars .gallery > div h2 {
        font-size: 2rem;
    }
}

@media only screen and (min-width: 993px) and (max-width: 1800px) {
    #stars {
        padding: 11.8rem 0 5.1rem;
    }

    #stars .gallery {
        justify-content: space-between;
    }

    #stars .gallery > div {
        flex: 0 0 32%;
    }

    #stars .gallery > div:not(:nth-of-type(3n+3)) {
        margin-right: 0;
    }

    #stars .gallery .photo {
        height: 24rem;
    }
}

@media only screen and (min-width: 1400px) and (max-width: 1800px) {
    #stars {
        padding: 11.8rem 10rem 5.1rem;
    }

    #stars .gallery .photo {
        height: 26rem;
    }
}

/*
 * Services
 */
#services {
    background-color: var(--color-bg-light-brown);
    display: flex;
    padding: 2.6rem;
}

#services .left,
#services .right {
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
    flex: 0 27.5%;
}

#services .left {
    background-image: url("../img/services-left.jpg");
    color: var(--color-white);
    text-align: center;
}

#services .left h1 {
    display: none;
}

#services .right {
    background-image: url("../img/services-right.jpg");
}

#services .middle {
    flex: 1;
    color: var(--color-white);
    text-align: center;
    padding: 5.6rem 7rem 4.2rem;
}

#services .middle p {
    font-size: 1.98rem;
    font-weight: 100;
    line-height: 2.8rem;
    margin-top: 1.8rem;
}

#services .middle ul {
    font-family: 'Proxima Nova Condensed Regular', sans-serif;
    font-size: 1.2rem;
    margin-top: 2rem;
    text-align: left;
}

#services .middle ul li {
    letter-spacing: 0.02rem;
    list-style-type: disc;
    margin-left: 1.2rem;
}

#services .middle ul li:not(:last-of-type) {
    margin-bottom: 1.5rem;
}

#services .middle ul li::marker {
    font-size: 1rem;
}

@media only screen and (max-width: 992px) {
    #services {
        flex-flow: column;
        padding: 2.6rem 1.5rem 1.5rem;
        margin-top: 1.5rem;
    }

    #services .left,
    #services .middle,
    #services .right {
        flex: 1 0 100%;
    }

    #services .left {
        background-position: center 9rem;
        min-height: 30rem;
    }

    #services .left h1 {
        display: block;
    }

    #services .middle {
        padding: 2rem 0;
    }

    #services .middle h1 {
        display: none;
    }

    #services .middle p {
        font-size: 1.5rem;
        line-height: 2rem;
    }

    #services .right {
        min-height: 20rem;
    }
}

@media only screen and (min-width: 577px) and (max-width: 768px) {
    #services .left {
        background-position: center 5rem;
        min-height: 38rem;
    }

    #services .right {
        min-height: 25rem;
    }
}

@media only screen and (min-width: 769px) and (max-width: 992px) {
    #services .left {
        background-position: center 5rem;
        min-height:53rem;
    }

    #services .right {
        min-height: 40rem;
    }
}

@media only screen and (min-width: 993px) and (max-width: 1800px) {
    #services {
        padding: 2.6rem 1.5rem;
    }

    #services .middle {
        padding: 3.6rem 1.5rem 2.2rem;
    }

    #services .middle p {
        font-size: 1.5rem;
        line-height: 2.2rem;
    }
}

/*
 * Price list
 */
#price-list {
    color: var(--color-light-brown);
    padding: 1.85rem 22.7rem;
}

#price-list .contacts {
    display: flex;
    margin-top: 0.7rem;
}

#price-list .contacts > div {
    padding: 0.75rem 0;
}

#price-list .contacts > div:not(:last-of-type) {
    border-style: solid;
    border-width: 0 1px 0 0;
    padding-right: 4.05rem;
    margin-right: 1.8rem;
}

#price-list .contacts .phones {
    margin-top: 0.6rem;
}

#price-list .contacts .btn {
    background-color: var(--color-brown);
    margin-left: 1.4rem;
    margin-top: 0;
    padding: 1rem 2.32rem;
}

#price-list .contacts .smaller {
    line-height: 1.3rem;
    font-size: 0.98rem;
}

#price-list > h1 {
    color: var(--color-brown);
    text-align: center;
    margin-top: 8.4rem;
}

#price-list .large-text {
    color: var(--color-black);
    font-size: 1.9rem;
    margin-top: 1.8rem;
    letter-spacing: 0.043rem;
    line-height: 2.8rem;
    text-align: center;
}

#price-list .large-text a,
#price-list .large-text a:hover,
#price-list .large-text a:visited {
    color: var(--color-brown);
    border-bottom: 1px solid var(--color-brown);
}

#price-list .table-wrapper {
    padding: 2rem 5.9rem 0;
}

#price-list .table-wrapper table {
    border-collapse: collapse;
}

#price-list .table-wrapper tbody tr td {
    padding: 0.77rem 0 0.5rem;
    vertical-align: top;
}

#price-list .table-wrapper tbody tr.single td {
    padding-bottom: 0.8rem;
}

#price-list .table-wrapper tr td:first-of-type,
#price-list .table-wrapper tr td:nth-of-type(2) {
    width: 23.74rem;
}

#price-list .table-wrapper tr td:last-of-type {
    width: 10rem;
}

#price-list .table-wrapper thead tr td {
    color: var(--color-bg-light-brown);
    padding: 1.17rem 0;
}

#price-list .table-wrapper tr.block-begin {
    border-top: 1px solid var(--color-bg-light-brown);
}

#price-list .table-wrapper tr.block-title td {
    padding: 0.76rem 0 0.3rem;
}

#price-list .table-wrapper tr.block-title td p {
    color: var(--color-brown);
    font-size: 1.495rem;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.002rem;
}

#price-list .table-wrapper tr .title {
    color: var(--color-brown);
    font-size: 1.475rem;
}

#price-list .table-wrapper tr .services {
    color: var(--color-black);
    line-height: 2rem;
}

#price-list .table-wrapper tr td.border-bottom {
    border-bottom: 1px solid var(--color-gray);
}

#price-list .extra {
    background-color: var(--color-light-gray);
    color: var(--color-brown);
    display: flex;
    padding: 4rem 5.9rem 2.7rem;
    margin-top: 2rem;
    flex-wrap: wrap;
}

#price-list .extra .column {
    flex-flow: column;
    flex: 0 0 23rem;
}

#price-list .extra .column:not(:last-of-type) {
    margin-right: 6.7rem;
}

#price-list .extra .column .row {
    display: flex;
    margin-bottom: 1rem;
}

#price-list .extra .column .row > div {
    flex: 0 1 auto;
    flex-wrap: nowrap;
}

#price-list .extra .column .row > div:first-of-type {
    max-width: 15rem;
}

#price-list .extra .column .row > div:last-of-type {
    width: 6.2rem;
}

#price-list .extra .column .row > div p {
    font-size: 1.45rem;
    letter-spacing: 0.02rem;
}

#price-list .extra .column .row > div.placeholder {
    flex: 1 0 auto;
    flex-wrap: nowrap;
    padding: 0 0.2rem;
}

#price-list .extra .column .row > div.placeholder p {
    border-bottom: 1px dotted var(--color-brown);
    display: block;
    margin-top: 1.2rem;
}

#price-list .button-wrapper {
    text-align: center;
}

#price-list .prices {
    max-height: 48.3rem;
    overflow: hidden;
    position: relative;
}

#price-list .prices.full {
    max-height: none;
    overflow: auto;
    position: relative;
}

#price-list .prices::after {
    content: "";
    background-image: linear-gradient(transparent, var(--color-white));
    display: block;
    position: absolute;
    bottom: 0;
    height: 10rem;
    width: 100%;
    z-index: 3;
}

#price-list .prices.full::after {
    display: none;
}

#price-list .button-wrapper .btn {
    background-color: var(--color-bg-light-brown);
    color: var(--color-white);
    padding: 0.96rem 3.4rem;
}

@media only screen and (max-width: 992px) {
    #price-list {
        padding: 1.85rem 0 0;
    }

    #price-list .contacts {
        flex-flow: column;
    }

    #price-list .contacts > div {
        border: none !important;
        padding-right: 0 !important;
        margin-right: 0 !important;
    }

    #price-list .contacts > div .phones {
        text-align: center;
    }

    #price-list .contacts > div .phones span {
        font-size: 1.5rem;
    }

    #price-list .contacts > div .phones a {
        display: block;
        margin-left: 0;
        margin-top: 0.6rem;
    }

    #price-list > h1 {
        margin-top: 2rem;
    }

    #price-list .large-text {
        font-size: 1.4rem;
        line-height: 2.3rem;
    }

    #price-list .table-wrapper {
        padding: 2rem 0 0;
    }

    #price-list .extra {
        padding: 2.7rem 1.5rem 2rem;
    }

    #price-list .extra .column {
        margin-right: 0 !important;
        flex: auto;
    }
}

@media only screen and (min-width: 993px) and (max-width: 1800px) {
    #price-list {
        padding: 1.85rem 0;
    }

    #price-list > h1 {
        margin-top: 4rem;
    }

    #price-list .contacts > div:not(:last-of-type) {
        padding-right: 2rem;
    }

    #price-list .extra .column:not(:last-of-type) {
        margin-right: 1.5rem;
    }
}

@media only screen and (min-width: 1201px) and (max-width: 1400px) {
    #price-list {
        padding: 1.85rem 5rem;
    }
}

@media only screen and (min-width: 1401px) and (max-width: 1800px) {
    #price-list {
        padding: 1.85rem 10rem;
    }
}

/*
 * Contacts
 */
#contacts {
    background-color: var(--color-light-blue);
    color: var(--color-white);
    margin-top: 6.3rem;
    padding: 8.2rem 22.7rem 5.7rem;
}

#contacts h1 {
    text-align: center;
}

#contacts .row {
    display: flex;
}

#contacts .row:first-of-type {
    margin-top: 1.75rem;
}

#contacts .row > div {
    flex-wrap: wrap;
    flex: 0 1 50%;
}

#contacts .row .contacts {
    border: 1px solid var(--color-white);
    padding: 3.1rem 3.2rem;
    margin-right: 2rem;
}

#contacts .row .contacts p {
    font-size: 2rem;
    letter-spacing: 0.001rem;
}

#contacts .row .contacts p:not(:first-of-type) {
    margin-top: 2.3rem;
}

#contacts .row .contacts p span {
    display: inline-block;
    margin: 0 0.4rem;
}

#contacts .row .contacts p a {
    text-decoration: underline;
    text-decoration-thickness: from-font;
}

#contacts .row .working-hours,
#contacts .row .transport {
    padding: 2.4rem 3.2rem;
}

#contacts .row .working-hours p,
#contacts .row .transport p {
    font-size: 2rem;
    font-weight: 100;
    letter-spacing: 0.0001rem;
}

#contacts .row .working-hours p.smaller {
    font-size: 1.255rem;
    line-height: 1.8rem;
    margin-top: 0.7rem;
}

#contacts .row .transport p.smaller {
    font-size: 0.9rem;
    line-height: 1.3rem;
    margin-top: 0.6rem;
    letter-spacing: 0.036rem;
}

#contacts .row .working-hours {
    margin-right: 2rem;
}

@media only screen and (max-width: 576px),
(min-width: 577px) and (max-width: 992px) {
    #contacts {
        padding: 4rem 1.2rem 3rem;
        margin-top: 2.5rem;
    }

    #contacts .row {
        flex-flow: column;
    }

    #contacts .row:first-of-type {
        margin-top: 3rem;
    }

    #contacts .row .contacts {
        flex-flow: column;
        padding: 2.2rem 1.5rem;
        margin-right: 0;
    }

    #contacts .row .contacts p {
        font-size: 1.2rem;
    }

    #contacts .row .contacts p:not(:first-of-type) {
        margin-top: 1.2rem;
    }

    #contacts .row .map {
        flex: auto;
        margin-top: 1.5rem;
        height: 20rem;
    }

    #contacts .row .working-hours,
    #contacts .row .transport {
        margin-right: 0;
        padding: 2.4rem 0;
    }

    #contacts .row .transport {
        padding: 0;
    }
}

@media only screen and (min-width: 769px) and (max-width: 992px) {
    #contacts .row {
        flex-flow: row;
        justify-content: space-between;
    }

    #contacts .row > div {
        flex: 0 1 48% !important;
    }

    #contacts .row .map {
        margin-top: 0;
        height: 18rem;
    }

    #contacts .row .working-hours,
    #contacts .row .transport {
        padding: 2.4rem 0 0;
    }
}

@media only screen and (min-width: 993px) and (max-width: 1400px) {
    #contacts {
        padding: 5.2rem 1.5rem 0.7rem;
        margin-top: 3.3rem;
    }

    #contacts .row .contacts p {
        font-size: 1.7rem;
    }
}

@media only screen and (min-width: 1401px) and (max-width: 1800px) {
    #contacts {
        padding: 5.2rem 10rem 0.7rem;
        margin-top: 3.3rem;
    }
}

/*
 * Footer
 */
footer {
    display: flex;
    padding: 2.5rem 22.7rem;
}

footer .copyright {
    margin-right: 9.8rem;
    flex: 0 0 14rem;
}

footer .copyright p {
    color: var(--color-light-brown);
    font-size: 0.98rem;
    margin-top: 2.25rem;
    line-height: 1.4rem;
}

footer .menu {
    flex: 0 0 auto;
}

footer .menu ul li {
    font-size: 1.11rem;
}

footer .menu ul li:not(:last-of-type) {
    margin-bottom: 1.32rem;
}

footer .menu ul li a,
footer .menu ul li a:hover,
footer .menu ul li a:visited {
    color: var(--color-light-brown);
}

footer .contacts {
    flex: 1 0 auto;
    text-align: right;
}

footer .contacts .phones {
    color: var(--color-light-brown);
}

footer .contacts .call-us .btn {
    background-color: var(--color-brown);
    color: var(--color-white);
    padding: 1.05rem 2.35rem;
}

footer .contacts .partners {
    margin-top: 2.8rem;
    white-space: nowrap;
}

footer .contacts .partners img {
    height: 1.5rem;
    width: auto;
}

footer .contacts .partners img.partner2 {
    height: auto;
    width: 7.7rem;
    margin-right: 1.6rem !important;
    margin-bottom: 0.5rem;
}

footer .contacts .partners img:not(:last-of-type) {
    margin-right: 2.2rem;
}

@media only screen and (max-width: 576px),
(min-width: 577px) and (max-width: 768px) {
    footer {
        padding: 2.5rem 0 1.2rem;
        flex-flow: column;
    }

    footer > div {
        flex: auto !important;
        margin-right: 0 !important;
    }

    footer .copyright {
        display: flex;
        justify-content: space-between;
    }

    footer .copyright img {
        width: 100%;
    }

    footer .copyright > * {
        flex: 0 1 47%;
    }

    footer .menu {
        padding: 2rem 0;
    }

    footer .menu ul {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
    }

    footer .menu ul li {
        flex: 0 0 49%;
    }

    footer .contacts {
        text-align: center;
    }

    footer .contacts .phones span {
        font-size: 1.5rem;
    }

    footer .contacts .address {
        margin-top: 0.7rem;
    }

    footer .contacts .call-us .btn {
        display: block;
        margin-top: 0.7rem;
    }

    footer .contacts .partners {
        margin-top: 1.8rem;
        white-space: normal;
    }
}

@media only screen and (min-width: 769px) and (max-width: 992px) {
    footer {
        padding: 2.5rem 0 1.2rem;
        flex-flow: wrap;
        justify-content: space-between;
    }

    footer .copyright,
    footer .menu {
        flex: 0 1 48% !important;
        margin-right: 0 !important;
    }

    footer .contacts {
        flex: 0 0 100% !important;
        margin-top: 2rem;
        margin-right: 0 !important;
        text-align: center;
    }

    footer .contacts .address {
        margin-top: 0.7rem;
    }
}

@media only screen and (min-width: 993px) and (max-width: 1200px) {
    footer {
        padding: 2.5rem 0;
    }

    footer .copyright {
        margin-right: 4.5rem;
    }
}

@media only screen and (min-width: 1201px) and (max-width: 1400px) {
    footer {
        padding: 2.5rem 5rem;
    }

    footer .copyright {
        margin-right: 4.5rem;
    }
}

@media only screen and (min-width: 1401px) and (max-width: 1800px) {
    footer {
        padding: 2.5rem 10rem;
    }

    footer .copyright {
        margin-right: 6.5rem;
    }
}
