body {
    font-family: 'Open Sans';
    margin: 0;
}

/* disable text selection */
.no-select {
    -webkit-touch-callout: none; /* iOS Safari */
      -webkit-user-select: none; /* Safari */
       -khtml-user-select: none; /* Konqueror HTML */
         -moz-user-select: none; /* Old versions of Firefox */
          -ms-user-select: none; /* Internet Explorer/Edge */
              user-select: none; /* Non-prefixed version, currently
                                    supported by Chrome, Edge, Opera and Firefox */
}

/* animation used in header app-preview image */
@-webkit-keyframes fadeInUp {
    from {
        transform: translate3d(0,40px,0)
    }

    to {
        transform: translate3d(0,0,0);
        opacity: 1
    }
}

.animated {
    animation-duration: 1s;
    animation-fill-mode: both;
    -webkit-animation-duration: 1s;
    -webkit-animation-fill-mode: both
}

.animatedFadeInUp {
    opacity: 0
}

.fadeInUp {
    opacity: 0;
    animation-name: fadeInUp;
    -webkit-animation-name: fadeInUp;
}

/* header */
div.header-section {
    width: 100%;
    background-color: #FAFAFA;
    color: #333332;
    padding: 48px 0 24px 0;
    display: flex;
    flex-direction: column;
    align-items: center;
}

div.header-section-logo {
    width: calc(100vw - 96px);
    height: 106px;
    margin-bottom: 48px;
    display: flex;
    justify-content: center;
}

img.logo {
    min-width: 106px;
    height: 106px;
}

div.spacer {
    width: 822px;
}

div.header-section-content {
    display: flex;
    justify-content: center;
    width: calc(100vw - 96px);
}

div.header-section__text {
    margin-right: 32px;
    width: 448px;
}

div.header-section__image-container {
    display: flex;
    justify-content: center;
    width: 448px;
}

img.header-section__image {
    max-height: 496px;
}

div.header-section__title, .header-section__subtitle {
    color: #333332;
    font-size: 33px;
    letter-spacing: 0;
    line-height: 45px;
}

div.header-section__description {
    margin: 24px 0;
    font-weight: 300;
    min-height: 240px;
}

div.header-section__btn-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-column-gap: 32px;
}

a.link-btn {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 12px;
    color: #FFFFFF;
    height: 38px;
    width: 100%;
    border-radius: 19px;
    background-color: #31251B;
    text-decoration:none;
}

/* main */
div.main-section {
    width: 100%;
    background-color: #FFFFFF;
    color: #333332;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 96px 0;
}

div.main-section__row {
    max-width: calc(100vw - 96px);
}

div.main-section__three-col {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-column-gap: 32px;
    margin-bottom: 96px;
}

div.main-section__col {
    max-width: 288px;
}

div.main-section__loyalty {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-column-gap: 32px;
}

div.main-section__col {
    display: flex;
    flex-direction: column;
    text-align: center;
    align-items: center;
    height: 206px;
}

img.col-icon {
    width: 82px;
    height: 82px;
}

div.col-title {
    font-size: 24px;
    margin: 12px 0;
}

img.loyalty-image {
    max-width: 448px;
    border-radius: 22px;
}

div.loyalty-text {
    max-width: 448px;
    font-weight: 300;
}

div.loyalty-text__title {
    font-size: 33px;
    font-weight: normal;
    margin-bottom: 24px;
}

/* footer */
div.footer-section {
    color: #FFFFFF;
    background-color: #31251B;
    display: flex;
    flex-direction: column;
    align-items: center;
    font-weight: 300;
    text-align: center;
    padding: 86px 0;
}

div.contact-title {
    font-size: 24px;
    font-weight: normal;
    margin-bottom: 24px;
}

a.contact-email {
    text-decoration: none;
    color: #FFFFFF;
}

a.footer-section__privacy {
    text-decoration: none;
    color: #FFFFFF;
    margin-top: 48px;
}

/* MEDIA QUERIES FOR SPECIFIC SCREEN WIDTHS */

@media only screen and (max-width: 768px) {
    div.header-section {
        margin-bottom: -230px;
        padding: 48px 0 96px 0;
    }

    div.spacer {
        max-width: 336px;
    }

    div.header-section-logo {
        width: calc(100vw - 64px);
    }

    div.header-section-content {
        display: flex;
        flex-direction: column;
        align-items: center;
        width: calc(100vw - 64px);
    }

    div.header-section__text {
        max-width: calc(100vw - 64px);
        min-width: 216px;
        margin-right: 0;
    }

    img.header-section__image {
        position: relative;
        z-index: 1;
        bottom: -14px;
    }

    div.header-section__btn-row {
        display: grid;
        justify-items: center;
        grid-template-rows: 1fr 1fr !important;
        grid-template-columns: 1fr 1fr !important;
        grid-gap: 16px;
        margin-bottom: 34px;
    }

    a.link-btn {
        width: 100%;
    }

    #orderOnline {
        grid-row: 2/3;
        grid-column: 1/3;
        width: 100%;
    }

    div.main-section {
        position: relative;
        z-index: 2;
    }

    div.main-section__three-col {
        display: grid;
        grid-template-rows: 1fr 1fr 1fr;
        grid-template-columns: none !important;
        grid-row-gap: 72px;
        margin-bottom: 72px;
    }

    div.main-section__loyalty {
        display: grid;
        grid-template-rows: auto 1fr;
        grid-template-columns: none !important;
        grid-row-gap: 48px;
        max-width: 311px;
    }

    img.loyalty-image {
        max-width: 311px;
    }
}

@media only screen and (max-width: 320px) {
    div.header-section-content {
        width: calc(100vw - 64px);
    }

    div.header-section__text {
        max-width: 256px;
    }

    div.main-section__loyalty {
        display: grid;
        grid-template-rows: auto 1fr;
        grid-template-columns: none !important;
        grid-row-gap: 48px;
        max-width: calc(100vw - 64px);
    }

    img.loyalty-image {
        max-width: calc(100vw - 64px);
    }

    div.loyalty-text {
        max-width: 256px;
    }
    div.spacer {
        width: calc(100vw - 138px);
    }
}