/*
    Global Styles
*/
html {
    scroll-behavior: smooth;
}

body {
    color: #46484E;
    font-family: 'Lora', serif;
    display: grid;
    grid-template-columns: 2fr repeat(8, 1fr) 2fr;
}

html,
body {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
}

section {
    display: grid;
    grid-template-columns: repeat(10, 1fr);
    grid-column: 2/-2;
}

h1 {
    font-family: 'Josefin Sans', sans-serif;
    font-size: 34px;
    font-weight: 400;
}

header {
    display: grid;
    grid-column: 1/-1;
    grid-template-columns: 4% auto;
    position: relative;
}

/*
    Class Styles
*/
.section-title {
    margin: 100px 0;
    grid-column: 1/-1;
}

/*
    Header Styles
*/
.company-name,
.contact-wrapper {
    grid-column: 2/-1;
}

.company-name {
    margin-top: 32px;
}

.contact-nav {
    font-family: 'Josefin Sans', sans-serif;
    font-size: 20px;
    grid-row: 2/3;
    font-weight: 100;
    text-decoration: none;
    color: inherit;
}

.header-bar {
    background: #FFE2A3;
    position: absolute;
    width: 315px;
    height: 53px;
    left: 0;
    z-index: -1;
    top: 50px;
}

/*
    Landing screen styles
*/
.landing {
    position: relative;
    grid-gap: 25px;
}

.tag-line {
    font-family: 'Lora', serif;
    font-style: italic;
    font-size: 24px;
    grid-column: 2/-1;
    padding: 50px 0;
}

.clip {
    height: 100%;
    overflow: hidden;
    position: relative;
}

.first-donut {
    grid-column: 2/7;
}

.second-donut {
    grid-column: 7/11;
}

.main-donuts {
    height: 100%;
}

.side-donut {
    height: 100%;
    position: absolute;
    right: -83px;
}

.visit-us-btn {
    -webkit-border-radius: 0 0 1em 0;
    -moz-border-radius: 0 0 1em 0;
    border-radius: 0 0 1em 0;
    background: #FBC8B5;
    display: grid;
    grid-column: 1/2;
    position: absolute;
    bottom: -20px;
    width: 100%;
    padding: 20% 40%;
    text-decoration: none;
}

.visit-us-btn:hover {
    background: #FCD7CA;
    cursor: pointer;
}

.visit-us-txt {
    align-self: center;
    justify-self: center;
    color: white;
    font-family: 'Josefin Sans', sans-serif;
    font-size: 1em;
}

/*
    Happy Reviews Section
*/
.review-odd {
    grid-column: 2/7;
}

.review-even {
    grid-column: -2/-7;
    margin: 100px 0;
}

.review-odd, .review-even {
    display: grid;
}

.review {
    position: relative;
    padding: 20px 30px;
    line-height: 1.7;
}

.quote {
    position: absolute;
    font-size: 80px;
    top: -17px;
    z-index: -1;
    left: 13px;
    color: #FFE2A3;
}

.review-signature {
    position: absolute;
    bottom: -13px;
}

.google-review-icon,
.yelp-review-icon {
    width: 4%;
    right: 30px;
}

.review-footer {
    background: #E8F1F8;
    width: 100%;
    height: 50px;
    -webkit-border-radius: 0 0 1em 0;
    -moz-border-radius: 0 0 1em 0;
    border-radius: 0 0 1em 0;
}

.all-google-review-link {
    text-decoration: none;
    color: inherit;
    margin: 100px 0 0;
    grid-column: 5/-5;
    align-self: center;
    justify-self: center;
    display: inline-block;
    position: relative;
}

.all-google-review-link:after {
    content: '';
    position: absolute;
    left: 0;
    display: inline-block;
    height: 1em;
    width: 100%;
    border-bottom: 8px solid #FBC8B5;
    margin-top: -2px;
    z-index: -1;
}

.all-google-review-link:hover:after {
    content: '';
    position: absolute;
    left: 1px;
    display: inline-block;
    height: 1em;
    width: 100%;
    border-bottom: 5px solid #F68358;
    margin-top: -1px;
    z-index: -1;
    font-weight: 600;
}

/*
    Background Donut 1 Styles
*/
.background-donut {
    grid-column: 1/-1;
    position: relative;
}

.background-donut-1 {
    position: absolute;
    top: -400px;
    right: -110px;
    opacity: 0.1;
    z-index: -1;
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
    transform: rotate(-45deg);
}

/*
    Contact Us Section
*/
.contact-us div {
    margin-bottom: 15px;
}

.address-wrapper,
.phone-wrapper {
    grid-column: 2/4;
}

.address,
.phone-number {
    text-decoration: none;
    color: inherit;
}

.address-anchor,
.phone-anchor {
    position: relative;
}

.underline:after {
    content: '';
    position: absolute;
    left: 0;
    display: inline-block;
    height: 1em;
    width: 100%;
    border-bottom: 8px solid #FBC8B5;
    margin-top: -2px;
    z-index: -1;
}

.address:hover .underline:after,
.phone-number:hover .underline:after {
    content: '';
    position: absolute;
    left: 1px;
    display: inline-block;
    height: 1em;
    width: 100%;
    border-bottom: 5px solid #F68358;
    margin-top: -1px;
    z-index: -1;
    font-weight: 600;
}

.hours-header {
    position: relative;
}

.hours-header,
.hours {
    grid-column: 6/8;
}

.hours-line-break {
    background: #FBC8B5;
    width: 7%;
    height: 7%;
    position: absolute;
    bottom: -30%;
}

/*
    Location Section Styles
*/
.location {
    grid-column: 1/-1;
    display: grid;
    position: relative;
    padding: 64px 0;
    grid-template-columns: 2fr repeat(8, 1fr) 2fr;
}

.map {
    width: 100%;
    height: 320px;
    grid-column: 2/-2;
}

/*
    Footer Styles
*/
footer {
    display: grid;
    grid-column: 1/-1;
    bottom: 0;
    padding-top: 150px;
    padding-bottom: 50px;
    position: relative;
    overflow: hidden;
}

.map-bar {
    background: #FFE2A3;
    grid-column: 5/-1;
    width: 100%;
    height: 320px;
    position: absolute;
    right: 0;
    z-index: -1;
    bottom: 0;
}

.copyright {
    align-self: center;
    justify-self: center;
}

.background-donut-2 {
    position: absolute;
    width: 20%;
    opacity: 0.1;
    top: 1px;
    left: -50px;
    transform: rotate(-15deg);
}
