/*
  VARIABLES
*/

:root {
  --text-primary: #363a97;
  --text-secondary: #00ac83;
  --text-tertiary: #ee4a9a;
  --font-family-text: "Barlow Condensed", sans-serif;
  --font-family-strong: "Bangers", cursive;
}

/*
  ANIMATIONS
*/

@keyframes pulse {
  0% {
    transform: scale(1);
  }

  30% {
    transform: scale(0.9);
  }

  100% {
    transform: scale(1);
  }
}

@keyframes wiggle {
  0% {
    transform: rotate(15deg);
  }

  50% {
    transform: rotate(-15deg);
  }

  100% {
    transform: rotate(15deg);
  }
}

@keyframes rumble {
  0% {
    transform: translate(0);
  }

  25% {
    transform: translate(2px, 2px);
  }

  50% {
    transform: translate(1px, -1px);
  }

  75% {
    transform: translate(-1px, 1px);
  }

  100% {
    transform: translate(0);
  }
}

@keyframes delayed-stamp {
  0% {
    transform: scale(1);
  }

  5% {
    transform: scale(0.9);
  }

  10% {
    transform: scale(1);
  }
}

@keyframes delayed-twinkle {
  0% {
    transform: scale(1) rotate(0deg);
  }

  5% {
    transform: scale(1.2) rotate(10deg);
  }

  10% {
    transform: scale(0.8) rotate(-10deg);
  }

  15% {
    transform: scale(1) rotate(0deg);
  }
}

@keyframes delayed-wiggle {
  0% {
    transform: rotate(0deg);
  }

  5% {
    transform: rotate(15deg);
  }

  10% {
    transform: rotate(-10deg);
  }

  15% {
    transform: rotate(0deg);
  }
}

/*
  GENERAL TAGS / STYLES
*/

body {
  color: var(--text-primary);
  font-family: var(--font-family-text);
  font-size: 2.1em;
  font-weight: 300;
  line-height: 1.4;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--font-family-strong);
  font-size: 0.8em;
}

h1 {
  font-size: 1.2em;
}

h2 {
  font-size: 1em;
}

p,
ul,
ol,
dl,
table {
  font-size: 0.8em;
}

a,
a:active,
a:visited {
  color: var(--text-secondary);
  font-weight: 400;
  text-decoration: underline;
  transition: color 0.5s;
}

a:hover {
  color: var(--text-tertiary);
}

strong a,
strong a:active,
strong a:visited {
  color: var(--text-primary);
}

strong a:hover {
  color: var(--text-tertiary);
}

strong {
  font-weight: 600;
}

img {
  max-width: 100%;
}

/*
  GRID OVERRIDES
*/

.grid.center-align {
  align-items: center;
}

/*
  PAGE STYLES
*/

.bean-container {
  border-radius: 10em 5em 6em 4em;
  padding: 1em 0;
  transform: rotate(12deg);
}

.bean-container-content {
  transform: rotate(-12deg);
}

.drawing {
  display: block;
  position: absolute;
}

.content {
  display: block;
  position: relative;
  z-index: 10;
}

.page {
  max-width: 1000px;
  margin: 0 auto;
}

header .banner {
  position: relative;
}

header .banner .free {
  animation: 5s delayed-stamp infinite;
  left: 0%;
  top: 2%;
  width: 23%;
}

header .banner .rocket {
  animation: 5s 1.5s delayed-wiggle infinite;
  left: 46%;
  top: 9%;
  width: 18%;
}

header .banner .star {
  animation: 5s 3s delayed-twinkle infinite;
  left: 33%;
  top: 71%;
  width: 7%;
}

header .sign-up {
  left: 1em;
  margin: -10% auto 11%;
  position: relative;
  z-index: 15;
}

header h1 {
  color: var(--text-secondary);
  font-size: 2.5em;
  margin: -0.5em 0 0;
  text-align: center;
}

@media (max-width: 768px) {
  header h1 {
    margin: 0 0 -1em;
    font-size: 1.5em;
  }
}

.sign-up {
  display: block;
  margin: 0 auto;
  max-width: 160px;
  min-width: 80px;
  position: relative;
  width: 30%;
}

.sign-up .button {
  display: block;
  transform: 1;
}

.sign-up a:hover .button,
.sign-up a:hover .arrow {
  animation: 1s pulse infinite;
}

.sign-up .arrow {
  transform: 1;
}

.sign-up .arrow-1 {
  top: 45%;
  left: -60%;
  width: 45%;
}

.sign-up .arrow-2 {
  width: 70%;
  left: -75%;
  top: 90%;
}

.sign-up .arrow-3 {
  width: 20%;
  left: 60%;
  top: 103%;
}

.sign-up .arrow-4 {
  width: 44%;
  left: 113%;
  top: 42%;
}

.summary .boat {
  animation: 7s wiggle infinite;
  left: 13%;
  top: -12%;
  width: 24%;
}

.summary .star {
  width: 13%;
  left: 52%;
  top: 78%;
}

.dates-and-times .bean-container {
  background-color: var(--text-secondary);
}

.dates-and-times p {
  color: white;
  font-family: var(--font-family-strong);
  font-size: 1em;
  text-align: center;
  text-align-last: center;
  margin: 0.5em 0.75em;
}

.dates-and-times .times,
.dates-and-times .dates {
  color: white;
  text-align: auto;
  text-align-last: auto;
}

.dates-and-times .times {
  font-size: 1.35em;
  font-style: italic;
  font-weight: 800;
  text-align: center;
  text-transform: uppercase;
}

.dates-and-times .dates {
  display: block;
  font-family: var(--font-family-strong);
  font-size: 1.75em;
  line-height: 1;
  list-style: none;
  margin: 10% 18% 4% 2%;
  padding: 0;
  text-align: right;
}

.dates-and-times .dates li {
  display: inline-block;
  margin-left: 7%;
  white-space: nowrap;
}

.dates-and-times .dates .numbers {
  font-family: var(--font-family-text);
  font-size: 1.2em;
  font-style: italic;
  font-weight: 800;
}

.dates-and-times .boy {
  left: 75%;
  top: -13%;
  width: 25%;
}

.ages .car {
  animation: 0.4s rumble infinite;
  top: -20%;
  left: 65%;
  width: 33%;
}

.details.grid {
  align-items: start;
  margin-top: 1em;
  margin-bottom: 1em;
}

.details h1 {
  margin-top: 0;
}

.prov-church .bean-container {
  background-color: var(--text-primary);
}

.prov-church .prov-church-logo {
  display: block;
  max-width: 80%;
  margin: 1em auto;
}

.prov-church .star {
  animation: 5s delayed-twinkle infinite;
  left: 78%;
  top: -6%;
  width: 18%;
}

.cta {
  padding: 1em 0 3em;
}

/*
  HOME OVERRIDES
*/

.home strong {
  font-family: var(--font-family-strong);
  font-size: 1.2em;
}

@media (max-width: 768px) {
  .home .grid {
    padding-top: 1em;
    padding-bottom: 1em;
  }
}
