:root {
  --primaryColor: #D24670;
  --textColor: #333333;
}

body {
  font-family: "Fira Sans", "Helvetica Neue", Helvetica, Arial;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  padding: 15px;
}

.float-right {
  float: right;
}
.d-flex {
  display: flex!important;
}
.flex-fill {
  flex: 1 1 auto!important;
}
.text-right {
  text-align: right;
}

.lh-1 {
  line-height: 1;
}

.mb-1 {
  margin-bottom:5px;
}
.mb-2 {
  margin-bottom:10px;
}
.mb-3 {
  margin-bottom:15px;
}

.mr-1 {
  margin-right:5px;
}
.mr-2 {
  margin-right:10px;
}
.mr-3 {
  margin-right:15px;
}

.table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 15px;
  margin-top:-15px;
}

.table th {
  vertical-align: bottom;
  background-color: white;
  border-bottom:none !important;
  color: #555;
}

.table td, .table th {
  text-align:left;
  padding: .75rem;
  border-top:none !important;
  vertical-align: middle;
}

.table td {
  background-color: #F4F6F4;
}

.btn {
  border-radius: 100px;
  text-transform: uppercase;
  font-size: .7rem;
  padding: .6rem 1.5rem;
  line-height: 1;
}
.text-link {
  color: var(--primaryColor);
  cursor:pointer;
}

.btn-book {
  background-color: var(--primaryColor);
  border-color: var(--primaryColor);
  color: white;
}
.btn-book:hover {
  background-color: rgb(103,54,149);
  border-color: rgb(103,54,149);
  color:white;
}

.pointer {
  cursor:pointer;
}

.rounded-left {
  border-top-left-radius: 15px !important;
  border-bottom-left-radius: 15px !important;
}
.rounded-right {
  border-top-right-radius: 15px !important;
  border-bottom-right-radius: 15px !important;
}

.badge-pill {
  border-radius: 10rem;
  color: white;
  border: 2px solid var(--primaryColor);
  background-color:var(--primaryColor);
}
.badge-pill.active,.badge-pill:hover {
  color: black;
  border-color: black;
  background-color: white;
}

.badge {
  font-size:100%;
  padding: .5em 1em;
}

.custom-control-input:checked~.custom-control-label::before {
  color: #fff;
  border-color: black;
  background-color: black;
}

.table tr[data-available="1"] td.WidgetAvailability::before {
  content: '';
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: 6px;
  border-radius: 50%;
  background-color: #2e7d32;
}

@media (max-width: 600px) {

  body {
    padding: 10px;
  }

  .table {
    border-spacing: 0;
    margin-top: 0;
  }

  .table thead {
    display: none;
  }

  .table, .table tbody, .table tr, .table td {
    display: block;
    width: 100%;
  }

  .table tr {
    display: grid;
    grid-template-columns: 1fr auto;
    column-gap: 1rem;
    row-gap: 0;
    align-items: start;
    background-color: #F4F6F4;
    border-radius: 15px;
    padding: .85rem 1rem;
    margin-bottom: 12px;
  }

  .table td {
    background-color: transparent;
    padding: 0;
    border-radius: 0 !important;
    width: auto;
  }

  /* Column A: date, location, language */
  .table td:nth-child(1) {
    grid-column: 1;
    grid-row: 1;
    font-weight: 600;
    font-size: 1.05rem;
  }

  .table td:nth-child(3) {
    grid-column: 1;
    grid-row: 2;
    margin-top: .35rem;
    color: #666666;
    font-size: .85rem;
  }
  .table td:nth-child(3):not(:empty)::before {
    content: 'Location: ';
  }

  .table td:nth-child(2) {
    grid-column: 1;
    grid-row: 3;
    color: #666666;
    font-size: .85rem;
  }
  .table td:nth-child(2):not(:empty)::before {
    content: 'Language: ';
  }

  /* Column B: availability, cta button */
  .table td:nth-child(4) {
    grid-column: 2;
    grid-row: 1;
    text-align: right;
    font-size: .8rem;
  }

  .table td:nth-child(5) {
    grid-column: 2;
    grid-row: 2;
    margin-top: .35rem;
    text-align: right;
  }

  .table td:nth-child(5) .btn-book {
    float: none;
    display: inline-block;
  }

}
