:root {
  --custom-red: #f30b0b;
  --custom-black: #222222;
}

@media (max-width: 960px) {
  nav {
    order: 2;
    display: flex;
  }

  nav .nav-menu {
    position: absolute;
    top: 0;
    right: 0;

    width: 100%;
    height: calc(100vh - 60px);

    display: flex;
    flex-direction: column;

    background-color: rgb(34, 34, 34);
    color: white;

    transform: translateX(100%);

    transition: transform 0.3s;
  }

  .media-menu {
    padding: 0;
  }

  /* removes 3px from 100% to leave space for the border */

  .menu-btn {
    width: 65px;
    height: 60px;

    display: block;

    position: absolute;
    top: 0;
    right: 0;

    cursor: pointer;
  }

  .menu-checkbox {
    display: none;
  }

  /* displays nav-menu when the hamburger menu is clicked.
  Height is 100vh - the header */

  .menu-checkbox:checked ~ .nav-menu {
    transform: translateX(0);

    transition: transform 0.3s;
  }

  .nav-menu {
    margin-top: 60px;
  }

  /* Each li takes up 8% of the nav-menu's height */

  .nav-menu > li {
    height: 8%;
  }

  /* counteracts the hover desktop hover effect by making active the same colour on hover */

  .nav-menu .active:hover a {
    background-color: var(--custom-red);
  }

  .banner {
    height: 60vh;
  }

  .banner-content {
    flex-direction: column;

    gap: 0;

    margin: 0 10px;
    padding: 10px;
  }

  .banner-content > .logo-wrapper {
    flex: 0;
  }

  .banner-content > .text-wrapper {
    justify-content: start;
  }

  .banner-buttons-wrapper {
    width: 40%;

    padding: 0px;
    margin-top: 15px;
  }

  .main-content-wrapper,
  .footer-content-wrapper {
    padding: 0 25px;
  }

  .secondary-image-container {
    flex-direction: column;
  }

  .secondary-image-wrapper:last-of-type {
    margin-top: 0;
  }

  aside {
    width: 35%;
  }

  .footer-content-wrapper {
    flex-direction: column;
    gap: 0;
  }

  .footer-content-wrapper > div:first-of-type {
    padding-top: 50px;
    width: 300px;
  }

  .footer-content-wrapper > div {
    padding: 20px 0;
  }
}

@media (max-width: 768px) {
  .main-content-wrapper {
    flex-direction: column;
  }

  aside {
    width: 100%;
  }

  .secondary-image-container {
    padding-bottom: 0;
  }

  .schedule-container > .card-info,
  .secondary-image-wrapper:nth-child(2) .card-info {
    margin-top: 0;
  }

  .newsletter-content {
    margin-bottom: 25px;
  }
}
