* {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}

/* CSS */

body {
  font-family: "space grotesk", arial, sans-serif;
  font-size: 14px;
  line-height: 22px;
}

/* FILTERS */

.filters-head {
  display: flex;
  align-items: center;
}

.filters .action-close {
  margin-left: auto;
  display: none !important;
}

.filter-action {
  height: 50px;
  background: #191919;
  padding: 0 15px;
  align-items: center;
  justify-content: center;
  color: #fff;
  display: inline-flex;
  margin: 0 auto;
  width: 200px;
  cursor: pointer;
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;

  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translate(-50%, -0%);
  -moz-transform: translate(-50%, -0%);
  -webkit-transform: translate(-50%, -0%);
  -sand-transform: translate(-50%, -0%);
  -ms-transform: translate(-50%, -0%);

  display: none;
}

/* CSS */

.schedules-wrapper {
  max-width: 1400px;
  margin: 0px auto 0;
  padding: 0 20px;
  display: flex;
  flex-wrap: wrap;
  column-gap: 100px;
}

  .schedules-wrapper .filters {
    width: 200px;
  }

  .schedules-wrapper .filters span {
    display: block;
    font-size: 20px;
    margin-bottom: 20px;
    font-weight: bold;
  }

.schedules-wrapper .list-classes {
  flex: 1;
}

.day-wrapper.expander {
    border-bottom: solid 1px #191919;
}

.schedules-wrapper .day-wrapper.hidden {
	display: none;
}

  .schedules-wrapper .day-wrapper .expander-head span {
    font-size: 24px;
    font-weight: bold;
    margin-bottom: 30px;
    display: block;
    position: relative;
    cursor: pointer;
  }

  .schedules-wrapper .day-wrapper .class-item {
    padding: 20px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    border: solid 1px #D0D0D0;
    margin-bottom: 10px;
    width: 100%;
  }

  .schedules-wrapper .day-wrapper .class-item:hover {
    border: solid 1px #191919;
    transition: .3s;
  }

.schedules-wrapper .day-wrapper .class-item.hidden {
	display: none;
}

  .class-item .class-info span {
    display: block;
  }

  .class-item .class-info .time {
    font-size: 10px;
    letter-spacing: 2px;
    font-weight: bold;
  }

  .class-item .class-info .class-name {
    font-size: 18px;
    color: #C55142;
    font-weight: bold;
  }

  .class-item a {
    margin-left: auto;
  }

  

.schedules-wrapper .expander-head span:before {
  content:'';
  position: absolute;
  width: 14px;
  height: 8px;
  background: url(../img/icon-chevron-down-black.svg) no-repeat center center;
  background-size: cover;
  -moz-background-size: cover;
  -webkit-background-size: cover;
  -o-background-size: cover;
  right: 0;
  top: 50%;
  transform: rotate(0deg);
}

.schedules-wrapper .open .expander-head span:before {
  background: url(../img/icon-chevron-down-black.svg) no-repeat center center;
  background-size: cover;
  -moz-background-size: cover;
  -webkit-background-size: cover;
  -o-background-size: cover;
  transform: rotate(180deg);
  transition: all .5s ease;
}

.expander.open .expander-body {
  max-height: 2000px;
}

.expander .expander-body {
  max-height: 0;
  overflow-y: hidden;
  transition: all .5s ease;
}


/* RESPONSIVE */

@media screen and (max-width: 768px) {
  .filter-action {
    display: block;
  }

  .schedules-wrapper {
    display: block;
  }

  .filters {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    z-index: 11;
    max-width: 500px;
    width: 88vw !important;
    background-color: #fff;
    opacity: 0;
    visibility: hidden;
    transition: opacity .3s,visibility .3s,transform .3s;
    -webkit-overflow-scrolling: touch;
    transform: translate(-100%);
    padding: 20px;
  }

  .filter-wrapper.open .filters {
    opacity: 1;
    visibility: visible;
    transform: none;
  }

  .filters .action-close {
    display: block !important;
  }
}



