* {
  margin: 0;
  padding: 0
}

html,
body {
  height: 100%
}

body {
  background-color: #141414;
  font-family: Helvetica, Arial, sans-serif;
  padding-bottom: 40px;
}

a {
  text-decoration: none;
}

/* Header: logo left, current academy right */

header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 30px;
  background-color: #0B0B0B;
  border-bottom: 4px solid #A91834;
}

.logo img {
  display: block;
  height: 150px;
  width: auto;
}

#current-gym {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 16px 22px 16px 30px;
  color: #FFF;
  background-color: #1F1F1F;
  border: 2px solid #333;
  border-radius: 999px;
  transition: all 0.3s ease;
}

#current-gym:hover {
  border-color: #A91834;
}

#current-gym-name {
  font-size: 220%;
  font-weight: bold;
}

.chevron {
  width: 32px;
  height: 32px;
  fill: none;
  stroke: #A91834;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Day navigation */

nav {
  display: flex;
  gap: 10px;
  padding: 24px 20px 0;
}

nav a {
  flex: 1;
  padding: 14px 0;
  cursor: pointer;
  color: #FFF;
  text-align: center;
  border-radius: 14px;
  background-color: #262626;
  transition: all 0.3s ease;
}

nav a .letter {
  display: block;
  font-size: 280%;
  font-weight: bold;
}

nav a .date {
  display: block;
  font-size: 170%;
  font-weight: bold;
  color: #BBB;
}

nav a .date sup {
  font-size: 60%;
  margin-left: 1px;
}

nav a .month {
  display: block;
  font-size: 120%;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #777;
}

nav a.active {
  background-color: #A91834;
}

nav a.active .date,
nav a.active .month {
  color: #FFF;
}

h1 {
  color: #FFF;
  font-size: 280%;
  margin: 24px 20px;
  text-align: center;
}

h2 {
  color: #A91834;
  font-size: 180%;
  text-transform: uppercase;
  letter-spacing: 4px;
  margin: 30px 20px 6px;
}

/* Class cards */

p {
  margin: 0 20px 14px;
  color: #141414;
  font-size: 230%;
  line-height: 1.35;
  padding: 18px 24px;
  background-color: #FFF;
  border-radius: 14px;
  border-left: 10px solid #A91834;
}

p strong small {
  color: #555;
  font-size: 80%;
}

em {
  font-style: normal;
  font-size: 120%;
  color: #A91834;
}

p > small {
  color: #666;
  font-size: 75%;
}

p.cancelled {
  color: #999;
  border-left-color: #CCC;
  text-decoration: line-through;
}

p.cancelled em {
  color: #999;
}

p.unavailable {
  margin-top: 24px;
}

p.unavailable a {
  color: #A91834;
  text-decoration: underline;
}

/* Academy selector */

#gym-select h1 {
  font-size: 320%;
  margin-top: 40px;
}

.gym-option {
  display: block;
  margin: 12px 20px;
  padding: 24px 30px;
  font-size: 280%;
  font-weight: bold;
  color: #FFF;
  background-color: #262626;
  border-radius: 14px;
  border-left: 10px solid #A91834;
  transition: all 0.3s ease;
}

.gym-option:hover,
.gym-option:active {
  background-color: #A91834;
}

.gym-option small {
  display: block;
  margin-top: 4px;
  font-size: 55%;
  font-weight: normal;
  color: #999;
}

.gym-option:hover small,
.gym-option:active small {
  color: #FFF;
}