:root {
  --menu-text-color: #323d48;
  --section-text-color: #4e5b7f;
}

html {
  font-size: 20px;
  font-family: 'Open Sans', sans-serif;
}
body {
  margin: auto;
}

.navbar {
  min-width: 250px;  /* so that brand doesn't wrap on too narrow screens */
  max-width: 1440px;
  margin: auto;
}
.navbar-light .navbar-brand {
  color: var(--menu-text-color);
  padding-right: 40px;  /* move closer to center of the screen when navbar is collapsed. */
}
@media (min-width: 576px) {
  .navbar-light .navbar-brand {
    padding-right: 0;
    max-width: 300px;
  }
}

.navbar-light .navbar-nav .nav-link {
  color: var(--menu-text-color);
  font-size: 16px;
  font-weight: 600;
}
@media (min-width: 576px) {
  .navbar-light .navbar-nav .nav-link:hover {
    padding-bottom: 2px;
    color: inherit;
    border-bottom: 2px solid #2c353f;
    border-bottom-width: medium;
  }
}


/*********/
/* About */
/*********/
#about-section {
  text-align: center;
  width: 100%;
  background-size: contain;
  background-repeat: no-repeat;
}
.no-webp #about-section {
  background-image: url("img/about_background_small.png");
}
.webp #about-section {
  background-image: url("img/about_background_small.webp");
}
@media (min-width: 576px) {
  #about-section {
    /* Keep the background over the text on very wide window. */
    padding-bottom: 30vw;
    text-align: start;
    background-position: bottom center;
    background-size: cover;
  }
}
@media (min-width: 768px) {
  .no-webp #about-section {
    background-image: url("img/about_background.png");
  }
  .webp #about-section {
    background-image: url("img/about_background.webp");
  }
}
#about-main-text {
  padding: 12vw;
  font-size: 6vw;
  font-weight: bold;
  color: #ffffff;
}
#about-sub-text {
  margin-top: 25vw;
  padding: 15px;
  color: var(--section-text-color);
}
#get-it > a > img {
  max-width: 240px;
}
@media (min-width: 576px) {
  #about-text {
    padding: 50px;
    margin: auto;
    max-width: 1440px;
  }
  #about-main-text {
    padding: 0;
    width: 480px;
    font-size: 2em;
  }
  #about-sub-text {
    padding: 0;
    width: 480px;
    margin-top: 24px;
    color: #f8f8f8;
  }
  #get-it {
    margin-top: 24px;
  }
  #get-it > a > img {
    margin-left: -16px;  /* The image "Get it on Google Play" has some padding */
  }
}
@media (min-width: 992px) {
  #about-text {
    padding-top: 150px;
    padding-left: 150px;
  }
  #about-main-text {
    width: 589px;
    font-size: 2.5em;
  }
  #about-sub-text {
    width: 589px;
  }
}

/************/
/* Features */
/************/
#features-header {
  font-size: 1.6rem;
}
.header-underline {
  border-bottom: 4px solid #0085e3;
  border-radius: 2px;
  padding-top: 1%;
  margin-bottom: 20px;
  width: 42px;
}

#features-block {
  color: var(--section-text-color);
  max-width: 1100px;
}
@media (min-width: 576px) {
  #features-block {
    /* Compensate for #about-section padding. */
    margin-top: -15vw;
  }
}
#features-block h2 {
  margin-top: 50px;
  font-size: 1.2em;
}
@media (min-width: 786px) {
  #features-block h2 {
    margin-top: 0;
  }
}

.feature-header-underline {
  border-bottom: 4px solid #0085e3;
  margin-top: 20px;
  margin-bottom: 20px;
  width: 38px;
  display: inline-block;
  margin-left: auto;
  margin-right: auto;
}
.feature-image {
  padding-top: 15px;
  padding-left: 0;
  padding-right: 0;
  overflow: hidden;  /* Otherwise it pushes images wider than the container and top cover. */
}
.feature-image img {
  object-fit: contain;
  /* On the phone the images are too small, so let's cut the nice background elements. */
  margin-left: -35%;
  max-width: 170%;
}
.feature-description-left,
.feature-description-right {
  text-align: center;
}
@media (min-width: 576px) {
  .feature-image img {
    /* At this point the images are displaying OK (not too small), so remove the zooming. */
    margin-left: 0;
    max-width: 100%;
  }
}
@media (min-width: 768px) {
  .feature-description-left,
  .feature-description-right {
    text-align: left;
  }
  .feature-header-underline {
    margin-left: 0;
    margin-right: 0;
  }
}

/*************/
/* Subscribe */
/*************/

#subscribe {
  max-width: 500px;
  margin: 50px auto auto auto;
  padding: 1rem;
  border-width: 1px;
  border-radius: 0.5rem;
  border-style: solid;
  text-align: center;
}

/*******/
/* FAQ */
/*******/
#faq {
  padding-top: 50px;
  max-width: 900px;
  margin: auto;
  color: var(--section-text-color);
  text-align: center;
}
@media (min-width: 768px) {
  #faq {
    text-align: start;
  }
}
#faq-header {
  font-size: 1.6rem;
}
.collapse {
  background-color: #f0f8ff;
  border-radius: 16px;
}

/**********/
/* Footer */
/**********/
#footer {
  background: rgb(0, 166, 239);
  background: linear-gradient(0deg, rgba(0,109,219,1) 0%, rgba(0,166,239,1) 100%);
  color: #ffffff;
}
#footer-content {
  max-width: 1440px;
  text-align: center;
}
#contact {
  overflow: hidden;  /* For super narrow screens. */
  font-size: 1.2em;
}
#contact > a {
  color: #ffffff;
}
