/* Minimal styling for sauna booking */
#sauna-booking-root {font-family: 'Public Sans', Helvetica, Arial, Lucida, sans-serif; width: 400px; max-width: 100%; margin: 0 auto;  background-color: #F3EFE5; padding: 2rem 23px;}
.sb-table { width:100%; border-collapse: collapse; margin-top: 10px; }
.sb-table th, .sb-table td { border: 1px solid #ddd; padding: 6px; text-align: left; }
.sb-controls input { margin-right:6px; }

.sb-guest-row {justify-content: center;
   div {
        width: 100%;

      .sb-guest-label {
        width: 260px;
        line-height: 1.3;
      }

      .sb-guest-counter {
        justify-content: flex-end;
      }
   }
}
.sb-guest-control { border: solid 1px #5a6d38; display:flex; justify-content:space-between; align-items: center; padding: 0.5rem 1rem; margin: 1rem 0; background-color: transparent; border-radius:15px; height:70px;touch-action: manipulation;}

.sb-calendar { max-width: 100%; background:transparent; border-radius:12px; padding:12px; font-family: inherit; }
.sb-cal-title {font-family: 'IM Fell DW Pica', Georgia, "Times New Roman", serif; color:#19332C; text-transform: capitalize; font-weight: 400; font-size: 22px; }
.sb-cal-nav button { background:none; border: none; padding:6px 8px; cursor:pointer; border-radius:6px; color:#5a6d38; }
.sb-cal-nav button[disabled] { opacity:0.35; cursor:not-allowed; }
.sb-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.sb-cal-weekday { text-align:center; font-size:12px; color: #19332C; padding:4px 0; }
.sb-cal-day {
  position: relative;
  text-align:center;
  padding:10px 6px;
  border-radius:8px;
  cursor:pointer;
  user-select:none;
  transition: all .12s ease;
  background:transparent;
  color:#333;
  border:1px solid transparent;
  font-weight: 200;
  transition: all ease-in-out 250ms;
}
.sb-cal-day:hover {
  &:before {
      content: "";
      border-radius: 100%;
      height: 48px;
      width: 48px;
      position: absolute;
      top: 0px;
      left: -6px;
      right: 0;
      z-index: 0;
      border: 1px solid #19332C;
      transition: all ease-in-out 250ms;
  }
} 
.sb-cal-day.disabled { opacity:0.35; cursor:not-allowed; transform:none; box-shadow:none; }
.sb-cal-day.today { position: relative;
  &::after {
    display: block;
    content: "";
    border-radius: 100%;
    height: 5px;
    width: 5px;
    background:#19332C;
    position: absolute;
    left: 0;
    right: 0;
    z-index: 1;
    margin: auto;
  }
}
.sb-cal-day.available { background:#fff; }
.sb-cal-footer { margin-top:10px; display:flex; justify-content:flex-end; }

/* Sisäinen tyylittely — siirrä myöhemmin sauna-booking.css:ään jos haluat */

.sb-root { max-width: 820px; border: none; padding:18px; border-radius:14px; background:#fff; }
.sb-guest-row { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:12px; }

.sb-guest-label { font-weight:600; color:#243023; margin-right:20px;}
.sb-guest-counter { display:flex; align-items:center; gap:8px; }
.sb-guest-counter .sb-count { min-width:28px; text-align:center; font-weight:400; color:#2d4630; }
.sb-guest-counter button { border: none; background: #19332C; color: #fff; width:40px; height:40px;padding: 0; border-radius:50%; font-size:18px; cursor:pointer; line-height:1; }
.sb-actions { margin-top:14px; display:flex; gap:10px; justify-content:flex-end; }
.sb-actions .button {border-radius: 999px; border: 2px solid #19332C; cursor: pointer; transition: all ease-in-out 250ms;}
.sb-actions .button:hover {color: #fff; background-color: #19332C; transition: all ease-in-out 250ms;}
.sb-continue-button { background:#19332C; color:#fff; border:none; padding:10px 18px; border-radius:999px; cursor:pointer; font-weight:400; }
.sb-continue-button[disabled], .sb-continue-button.disabled { opacity:0.45; cursor:not-allowed; pointer-events:none; }

/* Calendar */
.sb-calendar {border-radius:12px; padding:12px; font-family: inherit; }
.sb-cal-header { text-align:center; color:#19332C; font-weight:700; display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.sb-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.sb-cal-weekday { text-align:center; font-size:16px; padding:4px 0; font-family: 'IM Fell DW Pica', Georgia, "Times New Roman", serif;}
.sb-cal-day { text-align:center; padding:10px 6px; border-radius:8px; cursor:pointer; user-select:none; transition: all .12s ease; background:transparent; color:#333; border:1px solid transparent; word-break: normal;}
.sb-cal-day.disabled { opacity:0.35; cursor:not-allowed; transform:none; box-shadow:none; }
.sb-cal-day.available { background:#fff; }
.sb-cal-day.selected { color:hsl(0, 0%, 100%); box-shadow:none; position: relative; z-index: 1;
&:after {
  display: block;
  content: "";
  border-radius: 100%;
  height: 50px;
  width: 50px;
  background:#19332C;
  position: absolute;
  top: 0px;
  left: -6px;
  right: 0;
  z-index: -1;
}}
.sb-cal-note { font-size:13px; color:#6f6f6f; margin-top:8px; line-height: 1.6;}

/* Time list */
.sb-times { max-width: 420px; display:flex; flex-direction:column; gap:8px; margin-top:8px; color: #19332C;}
.sb_times_time {margin-bottom: 20px;font-size: 24px;color: #19332C; font-family: 'IM Fell DW Pica', Georgia, "Times New Roman", serif;}
.sb-time-row { display:flex; align-items:center; justify-content:space-between; padding:8px 12px; border-radius:12px; background:#fafaf8; border:1px solid #eee; cursor:pointer; transition: box-shadow .12s ease, transform .08s ease; margin-bottom: 6px; }
.sb-time-row:hover { transform: translateY(-2px); box-shadow:0 6px 18px rgba(0,0,0,0.06); }
.sb-time-left { display:flex; gap:12px; align-items:center; }
.sb-time-start { font-weight:400; color:#2d4630; font-size: 16px;}
.sb-time-price { font-weight:400; color:#243023; font-size: 16px;}
.sb-time-row.disabled { opacity:0.45; cursor:not-allowed; transform:none; box-shadow:none; }
.sb-time-row.disabled .sb-check, .sb-time-row.disabled .sb-time-price { display:none}
.sb-time-row .sb-check { width:34px; height:34px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; background:#e8ebe9; color:#fff; transition: all 0.15s ease; }
.sb-time-row .sb-check .icon { color: #fff; font-weight:700;}
.sb-time-row.selected { border: 2px solid #19332C; background: #fff; }
.sb-time-row.selected .sb-check { background:#19332C; }
#sb-step-3 { width: 100%;}
.sb-wrap-times::-webkit-scrollbar {display: none;}	
.sb-wrap-times {
    height: 500px; overflow-y: scroll;
    -ms-overflow-style: none;  /* IE and Edge */
    scrollbar-width: none;  /* Firefox */
}
.sb-wrap-times-wrapper {
  position:relative;
  isolation: isolate;
}
.sb-wrap-times-wrapper .child {
  position: relative;
  z-index: 1;
}

/* small responsive */
@media (max-width:640px) {
  .sb-calendar, .sb-times { width:100%; }
  .sb-guest-row { gap:0;justify-content:center;}
  .sb-guest-control {margin: 0 0 10px 0; width: 300px;}
  #sb-step-3 { width: 100%;}
  #sauna-booking-root { margin: 0}
  .sb-wrap-times {height: 400px}

  .sb-cal-day.selected {
    &:after {
      top: 2px;
      height: 43px;
      width: 43px;
    }
  }

  .sb-cal-day:hover {
    &:before {
      height: 41px;
      width: 41px;
      top: 2px;
    }
}
}

/*WOO*/
.woocommerce-cart .product-name a {
  pointer-events: none;
  cursor: unset;
  text-decoration: none !important;
  font-weight: 700;
}

.woocommerce-cart .shop_table th {
  color: #19332C;
  font-weight: 400;
  font-size: 16px;
}

#pwgc-redeem-button {
  padding: 6px 12px !important;
  font-size: 14px;
}

#pwgc-redeem-gift-card-form #pwgc-redeem-gift-card-number {
  display: inline-block;
  width: 50%;
  font-size: 14px;
  padding: 1px 10px 3px 10px;
}

#pwgc-redeem-gift-card-form #pwgc-redeem-gift-card-number {
  &:active, &:focus {
    background-color: RGBA(255,255,255,50%)
  }
}

.pwgc-redeem-gift-card-number {
  color: #19332c;
  font-size: 14px;
}

#pwgc-redeem-gift-card-form #pwgc-redeem-button {
  display: inline-block !important;
  border-radius: 19px;
  padding: 0.3em 1em !important;
  font-size: 14px;
}

.woocommerce-checkout #payment .paytrail-woocommerce-payment-fields--list-item:hover .paytrail-woocommerce-payment-fields--list-item--wrapper {
  border: 2px solid #19332C !important;
}

.sb-section-title {
  font-size: 19px;
  text-align: center;
}

.woocommerce .et_pb_wc_checkout_billing_0 .select2-container--default .select2-selection--single, .woocommerce .et_pb_wc_checkout_billing_0 form .form-row input.input-text {
  padding: 0.3em 1em !important;

  &:active, &:focus {
    background-color: RGBA(255,255,255,50%)
  }
}