/* Asiakassivun vapaat ajat */

/* Desktopissa kaksi korttia rinnakkain */

.booking-page
  #available-times
  .customer-slot-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

/* Yksittäinen varauskortti */

.booking-page
  #available-times
  .customer-slot-card {
  display: flex;
  min-width: 0;
  height: 100%;
  padding: 18px;
  gap: 16px;
  align-items: stretch;
  flex-direction: column;

  background: #eef8fe;
  border: 1px solid #add8f1;
  border-radius: 16px;
  box-shadow: 0 5px 14px rgba(13, 111, 184, 0.06);

  text-align: left;
}

/* Kortin sisältö */

.booking-page
  #available-times
  .customer-slot-details {
  width: 100%;
  min-width: 0;
  margin: 0;
  text-align: left;
}

.booking-page
  #available-times
  .customer-slot-service {
  width: 100%;
  margin: 0 0 12px;
  padding: 0;

  color: #063f82;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 1.05rem;
  line-height: 1.35;
  text-align: left;
}

/* Kellonajan, hinnan ja paikan tietolaatikot */

.booking-page
  #available-times
  .customer-slot-meta {
  display: grid;
  width: 100%;
  min-width: 0;
  margin: 0;

  grid-template-columns:
    minmax(120px, 155px)
    minmax(90px, 120px);

  justify-content: start;
  justify-items: stretch;
  gap: 8px;
}

.booking-page
  #available-times
  .customer-slot-time,
.booking-page
  #available-times
  .customer-slot-price,
.booking-page
  #available-times
  .customer-slot-location {
  display: grid;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 9px 10px;
  gap: 2px;
  justify-self: stretch;

  background: #ffffff;
  border: 1px solid #c7e4f5;
  border-radius: 10px;

  color: #12345a;
  line-height: 1.35;
  text-align: left;
}

.booking-page
  #available-times
  .customer-slot-location {
  grid-column: 1 / -1;
}

.booking-page
  #available-times
  .customer-slot-label {
  display: block;
  color: #5e7d99;
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.booking-page
  #available-times
  .customer-slot-time strong,
.booking-page
  #available-times
  .customer-slot-price strong,
.booking-page
  #available-times
  .customer-slot-location strong {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
  color: #12345a;
  font-size: 0.94rem;
}

.booking-page
  #available-times
  .customer-slot-time strong {
  color: #0d6fb8;
}

/* Valitse aika -painike */

.booking-page
  #available-times
  .customer-slot-action {
  display: flex;
  width: 100%;
  margin: auto 0 0;
  justify-content: flex-start;
}

.booking-page
  #available-times
  .customer-slot-action
  .primary-button {
  width: auto;
  min-width: 126px;
}

/* Mobiilissa kortit allekkain */

@media (max-width: 700px) {
  .booking-page
    #available-times
    .customer-slot-list {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  .booking-page
    #available-times
    .customer-slot-card {
    padding: 18px;
    background: #e4f3fc;
    border-color: #8fc7e9;
  }

  .booking-page
    #available-times
    .customer-slot-meta {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: stretch;
  }

  .booking-page
    #available-times
    .customer-slot-action
    .primary-button {
    width: 100%;
    min-width: 0;
  }
}

.booking-page
  #available-times
  .customer-slot-details {
  width: 100%;
  text-align: left;
}

.booking-page
  #available-times
  .customer-slot-service {
  width: 100%;
  margin-right: 0;
  margin-left: 0;
  text-align: left;
}

.booking-page
  #available-times
  .customer-slot-meta {
  width: 100%;
  max-width: 290px;
  margin-right: auto;
  margin-left: 0;
  justify-items: stretch;
}

.booking-page
  #available-times
  .customer-slot-time,
.booking-page
  #available-times
  .customer-slot-price,
.booking-page
  #available-times
  .customer-slot-location {
  justify-self: start;
  text-align: left;
}

.booking-page
  #available-times
  .customer-slot-action {
  width: 100%;
  margin-right: 0;
  margin-left: 0;
  justify-content: flex-start;
}

/* Mobiilissa kortit allekkain */

@media (max-width: 700px) {
  .booking-page #available-times .customer-slot-list {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  .booking-page #available-times .customer-slot-card {
    padding: 18px;
    background: #e4f3fc;
    border-color: #8fc7e9;
  }

  .booking-page
    #available-times
    .customer-slot-action
    .primary-button {
    width: 100%;
    min-width: 0;
  }
}

/* Desktopin varauskorttien sisältö vasempaan reunaan */
@media (min-width: 701px) {
  .booking-page
    #available-times
    .customer-slot-card {
    align-items: stretch;
    text-align: left;
  }

  .booking-page
    #available-times
    .customer-slot-details {
    width: 100%;
    margin: 0;
    text-align: left;
  }

  .booking-page
    #available-times
    .customer-slot-service {
    width: 100%;
    margin: 0 0 12px;
    padding: 0;
    text-align: left;
  }

  .booking-page
    #available-times
    .customer-slot-meta {
    width: 100%;
    max-width: none;
    margin: 0;
    justify-content: start;
    justify-items: stretch;
  }

  .booking-page
    #available-times
    .customer-slot-time,
  .booking-page
    #available-times
    .customer-slot-price,
  .booking-page
    #available-times
    .customer-slot-location {
    margin: 0;
    justify-self: stretch;
    text-align: left;
  }

  .booking-page
    #available-times
    .customer-slot-action {
    width: 100%;
    margin: auto 0 0;
    justify-content: flex-start;
  }
}