:root {
  --orange: #F7941D;
  --orange-rgb: 247, 148, 29;
  --dark-grey: #414040;
  --light-grey: #D6D6D6;
}

* {
  font-family: 'Roboto', sans-serif;
}

html, body {
  width: 100%;
  height: 100vh;
  margin: 0;
  padding: 0;
  font-family: 'Roboto', sans-serif;
  color: var(--dark-grey);
  scroll-behavior: smooth;
}

body {
  width: 100%;
  min-height: 100vh;
  overflow-y: scroll;
  overflow-x: hidden;
  position: relative;
}

/* general */

a, a:visited, a:focus, a:hover {
  color: var(--orange);
  text-decoration: none;
}

h2 {
  color: var(--orange);
  font-size: 30pt;
}

.hidden {
  display: none !important; /* overcome styles on id */
}

.orange-text {
  color: var(--orange);
}

.text-center {
  text-align: center;
}

.flex-row {
  display: flex;
  flex-direction: row;
}

.flex-wrap {
  flex-wrap: wrap;
}

.flex-grow {
  flex-grow: 1;
}

.btn {
  padding: 12px 20px;
  border-radius: 35px;
  text-decoration: none;
  display: inline-block;
}

.btn-orange, .btn-orange:visited, .btn-orange:focus, .btn-orange:hover {
  background-color: var(--orange);
  border: 1px solid var(--orange);
  color: white;
  margin-right: 10px;
  margin-left: 10px;
  margin-bottom: 10px;
}
@media screen and (max-width: 768px) {
  .btn-orange, .btn-orange:visited, .btn-orange:focus, .btn-orange:hover, .btn {
    margin-left: 5px;
    margin-right: 5px;
  }
}
.btn-orange:hover {
  box-shadow: 0 0 8px var(--orange);
}
.btn-orange-outline, .btn-orange-outline:visited, .btn-orange-outline:focus, .btn-orange-outline:hover {
  border: 1px solid var(--orange);
  color: var(--orange);
}
.btn-orange-outline:hover {
  box-shadow: 0 0 8px var(--orange);
}
.btn-white-outline, .btn-white-outline:visited, .btn-white-outline:focus, .btn-white-outline:hover {
  border: 1px solid white;
  color: white;
}
.btn-white-outline:hover {
  box-shadow: 0 0 8px white;
}
button.btn-white-outline, button.btn-orange-outline {
  background-color: transparent;
}

.parallax {
  width: 100%;
  height: min(100vw * 3 / 4, 100vh);
  background-attachment: fixed;
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  position: relative;
  z-index: -1;
}
/* iOS doesn't support background: fixed */
@supports (-webkit-touch-callout: none) {
  .parallax {
    background: center center no-repeat scroll;
    background-size: auto 100vh;
  }
}

/* nav */

nav {
  width: 100%;
  height: 100px;
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  z-index: 1000;
  background-color: rgb(255, 255, 255, 0);
  transition: background-color;
  position: fixed;
  top: 0px;
  z-index: 100;
  color: white;
}

nav.white-bg {
  background-color: rgb(0,0,0, 0.8);
  border-bottom: 1px solid var(--dark-grey);
}

@media screen and (min-width: 769px) {
  .hamburger {
    display: none;
  }
  .nav-right {
    padding-top: 50px;
  }
}

.toggler {
  z-index: 10;
  height: 30px;
  width: 30px;
  position: absolute;
  bottom: 0;
  right: 33px;
  cursor: pointer;
  opacity: 0;
}
@media screen and (min-width: 769px) {
  .toggler {
    display: none;
  }
}

@media screen and (max-width: 768px) {
  .nav-right {
    display: block;
    position: absolute;
    width: min(160px, 100vw - 10px);
    top: 100px;
    right: 5px;
    padding: 5px;
    border-radius: 5px;
    opacity: 0;
    transition: opacity;
    background-color: white;
    border: 1px solid var(--orange);
  }

  .nav-right a, .nav-right a:visited, .nav-right a:focus, .nav-right a:hover {
    display: block;
    margin: 10px 15px;
    color: var(--dark-grey);
  }

  .toggler:checked + .nav-right {
    opacity: 1;
  }
}

nav .hamburger i {
  display: block;
  margin: 10px;
}
nav .hamburger {
  margin-right: 33px;
}

nav .logo {
  margin-left: 33px;
  margin-top: 50px;
  height: 70px;
}
nav .nav-right {
  margin-right: 33px;
}

nav a, nav a:visited, nav a:focus, nav a:hover {
  color: white;
  text-decoration: none;
  display: inline-block;
  margin: 10px 15px;
}

/* hero */

#hero {
  width: 100%;
  height: max(100vh, 461px);
  background: #0B1322 url('/img/hero.png') no-repeat center center;
  background-position-x: 40%;
  background-size: cover;
  position: relative;
  overflow: hidden;
}

#hero .container {
  width: 100%;
  height: 100%;
  display: flex;
}

#hero .social {
  position: absolute;
  bottom: 100px;
  left: 50px;
  opacity: 0.6;
}
@media screen and (max-width: 899px) {
  #hero .social {
    display: none;
  }
}

#hero .social a {
  text-decoration: none;
}

#hero .social i {
  margin-top: 25px;
  color: white;
  display: block;
  font-size: 24pt;
}

#hero .hero-cta {
  position: absolute;
  bottom: 68px;
  right: 50px;
  text-align: right;
}
@media screen and (max-width: 768px) {
  #hero .hero-cta {
    left: 0;
    right: 0;
  }
  #hero .hero-cta .cta-buttons {
    right: 0;
    left: 0;
  }
}

#hero .hero-text {
  font-size: 63pt;
  color: white;
  text-shadow: 0 0 12px #696969;
  z-index: 1;
  position: absolute;
  left: 100px;
  bottom: 100px;
  margin: 0;
  margin-bottom: -0.3em;
}

#hero .customers {
  font-size: 50pt;
  color: white;
  font-weight: 300;
}
#hero .waiting {
  font-size: 25pt;
  margin-bottom: 16px;
  color: white;
}

@media screen and (max-width: 899px) {
  #hero .hero-text {
    font-size: min(19vw, 23vh);
    bottom: 282px;
    left: 0;
    right: 0;
    text-align: center;
  }
  #hero .customers, #hero .waiting {
    margin-right: 25px;
  }
}

/* fans first */
/* what is Swaye */
/* us */

.text-panel {
  background-color: white;
  padding-top: 100px;
  padding-bottom: 70px;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .text-panel {
    padding-top: 20px;
    padding-bottom: 10px;
  }
}

.text-panel .content {
  width: min(612px, 100vw - 64px);
  margin: 0 auto;
  padding: 30px;
}

.text-panel p {
  font-size: 16pt;
  margin-bottom: 2em;
  line-height: 2em;
}

/* fans parallax */

#fans {
  background-image: url('/img/fans2.png');
  background-position-x: 55%;
  background-position-y: 33%;
}

/* video */

#video-group {
  width: 100%;
  height: min(100vw * 9 / 16, 100vh);
  background-color: black;
  display: flex;
  position: relative;
}

#video-group #video {
  width: 100%;
  height: auto;
  margin: auto;
}

#video-group .join-button {
  position: absolute;
  bottom: 80px;
  right: 50px;
}
@media screen and (max-width: 768px) {
  #video-group .join-button {
    display: none;
  }
}

/* benefits */

#benefits {
  width: 100%;
  min-height: calc(100vw * 3 / 4);
  background: black url('/img/benefits.png') no-repeat center center;
  background-size: cover;
  position: relative;
}

#benefits #benefits-content {
  position: absolute;
  width: 100%;
  bottom: 0;
}

#benefits #row1 {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  margin: 10px 50px;
}

#benefits #row1 img {
  width: 15%;
}

#benefits #row2 {
  position: relative;
}

#benefits #row2 h2 {
  text-align: center;
  font-size: 20vw;
  color: rgba(var(--orange-rgb), 0.5);
  font-family: Arial, Helvetica, sans-serif;
  margin: 0;
  text-transform: uppercase;
}

#benefits #row2 #hoodie {
  position: absolute;
  right: 23%;
  top: -12%;
  width: 25%;
}

#benefits #row3 {
  color: white;
  font-weight: bold;
  font-size: max(12pt, 2.1vw);
  text-align: center;
  margin-bottom: 1.5em;
}

/* #fanlove parallax */

#fan-love {
  background-image: url('/img/fan-love.png');
  background-position-x: 66%;
}

/* us */

.text-panel .fan-love {
  font-size: 25pt;
  font-weight: bold;
}

/* girls parallax */

#girls {
  background-image: url('/img/girls.png');
}

/* footer */

footer {
  background-color: #4A4A4A;
  color: white;
  text-align: center;
  padding-bottom: 50px;
}

footer .content {
  width: min(700px, 100vw - 64px);
  margin: 0 auto;
  padding: 30px;
}

footer .logo {
  max-width: calc(100vw - 20);
}

footer .social a {
  margin-left: 0.5em;
  margin-right: 0.5em;
}

footer a, footer a:visited, footer a:focus, footer a:hover {
  color: white;
}

/* modal */

body.modal-open {
  height: 100vh;
  overflow-y: hidden;
}

#modal {
  position: absolute;
  top: 0px;
  transform-origin: 0 0;
  background-color: rgba(0, 0, 0, .5);
  position: fixed;
  width: 100vw;
  height: 100vh;
  z-index: 200;
}
#modal .content {
  border-radius: 20px;
  background-color: white;
  margin: 40px auto;
  width: min(700px, 100vw - 64px);
  height: min(700px, 100vh - 164px);
  padding: 30px;
  position: relative;
  font-size: 12pt;
}

#modal .content #closeButton {
  position: absolute;
  color: var(--dark-grey);
  font-size: 24px;
  top: 20px;
  right: 20px;
}

#modal .content #backButton {
  position: absolute;
  color: var(--dark-grey);
  font-size: 24px;
  top: 20px;
  left: 20px;
}

#modal .content h2 {
  color: var(--dark-grey);
  font-weight: normal;
  font-size: 14pt;
  margin-bottom: 20px;
}

#modal .content #wave-grey {
  position: absolute;
  top: 0;
  width: 100%;
  left: 0;
}

@media screen and (max-width: 768px) {
  #modal .content .modal-logo {
    height: 40px;
  }
}

#modal #modal-form {
  height: 100%;
  display: flex;
  flex-direction: column;
}
#modal .modal-page {
  flex-grow: 1;
  overflow-y: auto;
}

.error {
  color: red;
}

.apiError {
  color: red;
}

.required {
  color: red;
}

#modal .content input {
  padding: 10px 16px;
  border-radius: 35px;
  border: 1px solid var(--light-grey);
}
#modal .content input.invalid {
  border: 1px solid red;
}

#modal .flex-row {
  align-items: center;
}

#modal #userEmailAddr {
  width: min(100% - 40px, 447px);
  margin-bottom: .5em;
}
#modal #userCountryCodeNum {
  width: 25px;
  margin-right: .5em;
}
#modal #userMobileNum {
  width: 216px;
  margin-right: -6px;
}
#modal #notifyViaMobile-label {
  width: 140px;
  margin-left: .5em;
  margin-right: .5em;
}

.btn-checkbox span {
  display: inline-block;
  width: 100px;
  padding: 12px 0px;
  border-radius: 35px;
  text-decoration: none;
  text-align: center;
  border: 1px solid var(--light-grey);
  color: var(--dark-grey);
  margin: 5px 5px 10px 0;
  font-size: 10pt;
}
@media screen and (max-width: 769px) {
  .btn-checkbox span {
    padding: 10px 5px;
  }
}
#notifyViaMobile-label span {
  width: 140px;
}

.btn-checkbox span:hover {
  box-shadow: 0 0 8px var(--light-grey);
}
#modal .content .btn-checkbox input[type=checkbox] {
  opacity: 0;
  width: 0;
  height: 0;
  margin: 0;
  padding: 0;
}
.btn-checkbox input:checked + span {
  background-color: #fcb872;
  border: 1px solid #fcb872;
}

#modal .content .btn {
  font-size: 10pt;
}

#modal .content #customerNumber {
  font-size: 48pt;
  color: var(--orange);
  margin-top: 0;
}
@media screen and (max-width: 769px) {
  #modal .content #customerNumber {
    margin-bottom: 10px;
  }
}

#modal .content .percentComplete {
  font-size: 10pt;
  color: var(--light-grey);
}

#modal .content .refer {
  font-size: 16pt;
  font-weight: bold;
}

#modal .content #referralCode {
  width: min(400px, 100% - 134px);
}
#modal .content #copy {
  width: 81px;
  padding: 6px 7px;
}

#modal .content .social {
  font-size: 15pt;
  line-height: 24pt;
}
#modal .content .social .btn {
  padding: 0;
  width: 30px;
  height: 30px;
  display: inline-block;
}

#modal .content .progress-outer {
  height: 1em;
  border: 1px solid var(--light-grey);
  margin-top: 0.5em;
  width: 216px;
  position: relative;
}

#modal .content #progressBar {
  background-color: var(--orange);
  height: 100%;
  width: 0px;
}

#modal .content #pageThanks h2 {
  font-size: 23pt;
}

/* media */

#swaye p {
  text-align: left;
  margin-bottom: 0;
  font-size: 12pt;
}

#swaye ul {
  text-align: left;
  margin-top: 0;
}

.swayeOverview {
  font-weight: bold;
}