* {
    font-family: 'Charm', cursive;
    font-weight: 900;
}

/* Page/Body/App */

.app {
    display: grid;
}

body {
background-color: #ffffff;
}

/* Main Page Hero */

.main {
    display: grid;
    padding: 5rem 1rem 0rem 1rem;
    grid-template-rows: 1fr;
    grid-template-columns: 1fr;
    background-color: whitesmoke;
    height: 80vh;
    background: linear-gradient(-45deg, black, rgb(0, 0, 0), white, lightgray);
    background-size: 400% 400%;
    animation: gradient 15s ease infinite;
}

@keyframes gradient {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}


/* Navigation */

.navbar-nav {
    row-gap: 1rem;
    margin-bottom: 1rem;
}
.navbar-light .navbar-brand {
    color: rgb(82, 82, 82);
    font-size: 1.5rem;
    font-weight: 900;
    text-transform: capitalize;
}

.navbar i{
    color: gray;
    justify-self: end;
}

.nav-info {
    display: grid;
    grid-auto-flow: row;
    row-gap: 3rem;
    margin: 4rem 0rem 0rem 0rem;
    color: #474747;
}

.nav-item .nav-link{
    font-weight: 400;
}

.nav-item a:hover {
    font-weight: 700;
    color: black;
}

.nav-info .address a{
    color: #474747;
    text-decoration: none;
    font-weight: 400;
}

.nav-info .phone a {
    color: #474747;
    text-decoration: none;
    font-weight: 400;
}

/* Main Hero Section */

.header {
    display: grid;
    grid-column: 1;
    align-self: end;
    grid-row: 1;
    z-index: 1;
    color: rgb(54, 54, 54);
    font-family: 'Montserrat Alternates', sans-serif;
}

.header .specializes {
    display: grid;
    justify-self: start;
    align-self: start;
    grid-row: 1;
    grid-column: 1;
    z-index: 2;
    text-transform: capitalize;
    margin-top: 10em;
    font-size: 1rem;
    color: rgb(44, 44, 44);
    font-weight: 700;
}


@media only screen and (max-width: 600px) {

    .header .specializes {
        margin-top: 5em;
    }

}


@media only screen and (max-width: 900px) {

    .header .specializes {
        margin-top: 3em;
    }

}


/* Main Hero Animated Header */

@keyframes showTopText {
    0% { transform: translate3d(0, 100%, 0); }
    40%, 60% { transform: translate3d(0, 50%, 0); }
    100% { transform: translate3d(0, 0, 0); }
}

@keyframes showBottomText {
    0% { transform: translate3d(0, -100%, 0); }
    40%, 60% { transform: translate3d(0, -50%, 0); }
    100% { transform: translate3d(0, 0, 0); }
}

.animated-title {
    color: rgb(53, 53, 53);
    font-family: 'Roboto', sans-serif;
    height: 90vmin;
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 90vmin;
}

.animated-title > div {
    height: 50%;
    overflow: hidden;
    position: absolute;
    width: 100%;
}

.animated-title > div div {
    font-size: 5vmin;
    padding: .5vmin 0;
    position: absolute;
}

.animated-title > div div span {
    display: block;
}

.animated-title > div.text-top {
    border-bottom: 1vmin solid rgb(65, 65, 65);
    top: 0;
}

.animated-title > div.text-top div {
    animation: showTopText 1s;
    animation-delay: 0.5s;
    animation-fill-mode: forwards;
    bottom: 0;
    transform: translate(0, 100%);
}

.animated-title > div.text-top div span:first-child {
    color: #555555;
}

.animated-title > div.text-bottom {
    bottom: 0;
}

.animated-title > div.text-bottom div {
    animation: showBottomText 0.5s;
    animation-delay: 1.75s;
    animation-fill-mode: forwards;
    top: 0;
    transform: translate(0, -100%);
}

.animated-title > div.text-bottom div span:last-child {
    color: #575757;
}

/* Main Hero Services/Prices Button */

.services-prices {
    justify-self: start;
    align-self: end;
    padding: 1rem 0rem 1rem 0rem;
    grid-row: 1;
    grid-column: 1;
}

.services-prices button {
    font-size: .8rem;
    text-transform: capitalize;
    font-weight:700;
}

/* Main Hero Book Now Button */

.book .btn {
    font-weight:600;
    text-transform: capitalize;
    font-size: .8rem;
    border-color: #363636;
    background-color: #49494963;
    color: white;
}

 .book {
    justify-self: end;
    align-self: end;
    margin-bottom: 1rem;
    grid-row: 1;
    grid-column: 1;
}

/* Services Tab */

.services {
    display: grid;
    padding: .3rem; 
    font-size: .7rem;
    text-align: center;
}

.services h3{
    font-size: 1rem;
    margin-top: 1rem;
    text-decoration: underline;
    font-weight: 900;
}

.services p{
    font-size: .8rem;
    font-weight: 400;
    margin-bottom: 0;
}

.offcanvas-body {
    margin-top: 0;
}



@media only screen and (max-width: 600px) {

    .hair-extension, .hair-price, .color-service, .color-price, .extensions-service, .extensions-price  {
      font-size: 11px;
    }
}

/* Carousel Section */

.carousel-block {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.carousel-quote {
    place-self: center;
    text-align: center;
}

.carousel-quote h2 {
    font-weight: 200;

}

@media only screen and (min-width: 601px) {

    .carousel-block {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .carousel-item img {
        height: 100vh;
    }
 

}
@media only screen and (max-width: 600px) {
    .carousel-item {
        height: 400px;
    }

    .carousel-block {
        display: block;
    }
}

/* Salon Section */

.salon {
    display: grid;
    height: 500px;
    font-size: .9rem;
    background: url("salon1.jpg") center no-repeat;
}

.filter {
    height: 500px;
    z-index: 1;
    grid-column: 1;
    grid-row: 1;
    background-color: rgba(7, 7, 7, 0.384);
}

.info {
    display: grid;
    place-items: center;
    place-self: center;
    background-color: white;
    align-items: center;
    z-index: 2;
    grid-column: 1;
    grid-row: 1;
    height: 300px;
    width: 300px;
    padding: 1rem;
    font-size: .8rem;
    font-weight: 400;
}

.info .location {
    font-size: 1.8rem;
    font-weight: 400;
    color: rgb(54, 54, 54);
}

.salon .info .info-header {
    font-size: .7rem;
    font-weight: 900;
    color:#363636;
}

.salon .info .address a, .salon .info .phone a{
    text-decoration: none;
    color:#494949;
    font-weight: 100;
    font-weight: bold;
}

.schedule .btn-outline-secondary {
    font-size: .8rem;
}

@media only screen and (max-width: 600px) {

    .salon {
        height: 400px;
        background-size: 500px 450px;
    }
    
    .filter {
        height: 400px;
    }

    .info {
        height: 250px;
        width: 250px;
        background-color: white;
    }

  }

/* Quote Section */

.text-block {
    height: 300px;
    display: grid;
    place-items: center;
    text-transform: capitalize; 
    background-color: whitesmoke;
    text-align: center;

}

/* About Katie Section */

.about {
    display: grid;
    height: 600px;
    background-color: white;
}

.about button {
    display: none;
}

.about-desktop {
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.about-desktop .katie {
    background: url("katie_portrait.jpeg") center no-repeat;
    background-size: 500px;
}

.about-katie {
    display: grid;
    place-items: center;
    padding: 2rem;
    background-size: cover;
}

.about-katie h2 {
    font-weight: 400;
    font-size: 2.7vh;
    font-family: 'Charm', cursive;

}

@media only screen and (max-width: 600px) {

    .carousel-quote {
        display: none;
    }

    .about-desktop {
        display: none;
    }

    .about {
        height: 500px;
        background: url("katie_portrait.jpeg") center no-repeat;
        background-size: 500px;
        padding: 1rem;
        grid-template-rows: 1;
    }
    
    .about .portrait img {
        display: grid;
        height: 50vh;
        justify-self: end;
    }

    .about button {
        display: grid;
    }

    .about button {
        text-transform: capitalize;
        font-weight: 400;
        width: 50vw;
        color: white;
        justify-self: center;
        align-self: end;
        background-color: rgba(0, 0, 0, 0.445);
    }

}

/* Footer */

.footer {
    padding: 1rem 2rem 1rem 1rem;
    display: grid;
    height: 15vh;
    place-items: center;
    text-align: center;
    background: url("bg.jpg") center no-repeat;
}

.clients {
    place-self: center;
    text-transform: capitalize;
    font-size: 1.5rem;
    font-weight: 400;
}

.prospict {
    place-self: center;
    text-transform: capitalize;
    font-size: .6rem;
    font-weight: 400;
    text-align: center;
}

.prospict a {
    color: orange;
    text-decoration: none;
}

.footer2 {
    padding: 1rem 2rem 1rem 1rem;
    display: grid;
    height: 75px;
    place-items: center;
    background-color: whitesmoke;
}



