@import url('https://fonts.googleapis.com/css?family=Esteban|Montserrat:400,600');

:root {
  --off-white: #fffcf3;
  --off-white--alpha: #fffcf3aa;
  --off-black: #3f393b;
  --dark-red: #953833;
  --dark-red--alpha: #953833dc;
  --light-red: #be513f;
  --dark-blue: #373f48;
  --dark-blue--alpha: #373f48dc;
  --light-blue: #8fa0b3;
  --gray: #e1dbd4;
}

html {
  scroll-behavior: smooth;
}
* {
  box-sizing: border-box;
}

section {
  position: relative;
}
body {
  font-family: 'Montserrat', sans-serif;
  background-color: var(--gray);
  overflow-x: hidden;
  margin-top: 1.2rem;
}
h1, h2, h3, h4, h5, h6 {
  font-family: 'Esteban', serif;
  color: var(--dark-red);
  text-transform: none;
  text-align: center;
}
h1 {
  font-size: 3em;
}
h1::after,
h2::after,
h3::after {
  content: " ";
  border: solid 2px #3dc9b3;
  display: block;
  width: 35px;
  margin: 25px auto;
}
h2 {
  font-size: 2rem;
}
h2::after {
  border: solid 2px var(--light-red);
}
h3 {
  font-size: 1.5rem;
}
h3::after {
  border: solid 2px var(--light-red);
}
a {
  color: var(--dark-blue);
  text-decoration: underline;
}
a:hover {
  color: var(--light-red);
}
p {
  font-size: 18px;
  color: var(--off-black);
}
footer {
  background-color: var(--off-black);
}

/* Random Overwrites */
.background-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.flex-viewport {
  max-height: none;
}
.flex-control-paging li a {
  background-color: transparent;
  border-color: var(--dark-red);
  width: 24px;
  height: 24px;
  margin: 0 8px;
}
.flex-control-paging li a.flex-active {
  background-color: var(--light-red);
}
.up-btn {
  background: var(--dark-red);
}
.up-btn:hover, up-btn:focus {
  background: var(--light-red);
}
.wrapper {
  height: 650px;
}

/* Hero */
.hero {
  max-height: 100vh;
}
.hero h1 {
  color: var(--dark-blue);
}
.inner {
  margin-top: 20%;
  padding: 1rem;
  background: var(--off-white--alpha);
}
/* Body */
h1.arrow {
  font-size: 32px;
  text-transform: none;
  color: var(--dark-red);
}
.text-section {
  padding: 6rem 2rem;
}
.text-section p {
  max-width: 50rem;
  margin: auto;
}
.section-header {
  position: relative;
  height: 50vh;
  display: grid;
  place-content: center;
}
.section-header .text {
  position: relative;
  background-color: var(--off-white--alpha);
  padding: 1rem;
}

/* columns */
@media (min-width: 841px) {
  .two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
}
.col {
  position: relative;
}

/* cards */
.card-container {
  position: relative;
}
.card {
  background-color: var(--off-white);
  padding: 2rem;  
  margin: auto;
  height: 100%;
}
.card img {
  max-width: 100%;
}

/* Intro */
.intro {
  background: var(--off-white);
}


/* Testimonials */
#testimonials .card {
  max-width: 80%;
  margin-bottom: 1rem;
}
@media (min-width: 841px) {
  #testimonials .card {
    width: 50%;
  }
}
#testimonials h2 {
  color: var(--off-white);
}
#testimonials .col {
  background-color: var(--dark-blue);
  padding: 1rem 0;
}
.testimonial-source {
  font-family: 'Esteban', serif;
  font-size: 1.5em;
  color: var(--dark-red);
}
.testimonial {
  font-family: 'Esteban', serif;
  font-style: italic;
}
.testimonial::before {
  display: block;
  text-align: left;
  content: '“';
  font-size: 4em;
  color: var(--dark-red);
}
@media (max-width: 840px) {
  #testimonials .col:nth-of-type(2) {
    padding: 0;
  }
}
/* Samples */
.soundcloud-container {
  display: flex;
  flex-flow: row wrap;
  gap: 1rem;
}
.soundcloud {
  flex: 1 1 100%;
}
@media (min-width: 541px) {
  .soundcloud {
    flex: 1 1 30%;
  }
}

/* Lessons */
.lessons {
  background-size: cover;
  background-attachment: fixed;
  padding: 0;
}
.lessons h1 {
  color: var(--off-white);
}
.lessons h1:after {
  border-color: var(--light-red);
}
.lessons a {
  color: var(--light-red);
}
.lessons p {
  color: var(--off-white);
}
.lessons .container {
  background: rgba(0, 0, 0, .4);
  width: 100%;
  height: 100%;
  padding: 120px 0;
}

/* Book Now */
.ignite-cta {
  background-color: var(--off-black);
  padding: 70px 0;
}
.ignite-btn:hover, .ignite-btn:focus {
  color: var(--light-red);
  border: solid 1px var(--off-black);
}

/* Other Musicians */
@media (min-width: 581px) { 
  #musicians .card-container {
    display: grid;    
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin: 1rem;
  }
}
@media (min-width: 841px) {
  #musicians .card-container {
    grid-template-columns: repeat(4, 1fr);
    padding-bottom: 2rem;
  }
}
#musicians .card {
  text-align: center;
}

/* Contact */
.contact-content {
  position: relative;
  background-color: var(--dark-blue--alpha);
  width: 80%;
  margin: 2rem auto;
  padding: 2rem;
  text-align: center;
}
#contact {
  padding: 2rem;
}
#contact h2,
#contact h3 {
  color: var(--off-white);
}
#contact p {
  color: var(--off-white);
}
#contact .card-container {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  gap: 2rem;
  width: 80%;
  margin: 2rem auto;
}
#contact .card {
  background-color: var(--dark-blue--alpha);
  flex: 1 1 25%;
  text-align: center;
}
#contact .card a {
  color: var(--off-white);
}
.social-buttons {
  position: relative;
  display: flex;
  justify-content: center;
}
.social-btn {  
  background-color: var(--dark-red);
}
.social-btn:hover, .social-btn:focus {
  background-color: var(--light-red);
}

/* Navigation */
.main-nav {
  position: fixed;
  top: 0;
  left: 0;  
  z-index: 2;
  width: 100%;
}
.toggle-nav,
.site-name {
  display: none;
}
.main-nav nav {
  background-color: var(--dark-blue);
  display: flex;
  justify-content: space-evenly;
  width: 100%;
}
.main-nav a {
  display: block;
  color: var(--off-white);
  text-decoration: none;
  padding: 1rem;
}
.main-nav a:hover,
.main-nav a:active,
.main-nav a:focus {
  background-color: var(--dark-red);
}
@media (max-width: 840px) {
  .main-nav {
    display: grid;
    grid-template-rows: auto auto;
    grid-template-columns: auto 1fr;
    width: 100%;
  }
  
  .toggle-nav {
    display: block;
    width: 3.2rem;
    height: 3.2rem;
    background: var(--dark-blue);
    border: none;
    color: var(--off-white);
    font-size: 2rem;
  }
  
  .site-name {    
    display: grid;
    background-color: var(--dark-blue);
    font-family: 'Esteban', serif;
    color: var(--off-white);    
    place-content: center;
    width: 100%;
  }
  
  .main-nav nav {
    display: block;
    width: 75%;
    grid-row: 2/span 1;
    grid-column: 1/span all;
    transition: all .2s ease;
    background: transparent;
  }
  nav.closed {
    transform: translatex(-100%);
  }
  
  .main-nav a {    
    width: 100%;
    flex: 0 0 100%;
    background-color: var(--dark-blue--alpha);
  }
  .main-nav a:hover,
  .main-nav a:active,
  .main-nav a:focus {
    background-color: var(--dark-red--alpha);
  }
}

