/* Shared reservation therapist selection contract.
 *
 * This file is intentionally loaded after each theme's reservation styles.
 * Every frontend theme must preserve the same selected/unselected behavior:
 * - selected therapist is visually dominant
 * - unselected therapists are clearly dimmed
 * - every unselected card remains tappable/clickable
 */
.mf-reservation-therapist-select:has(
  .mf-reservation-therapist-option__input:checked
) .mf-reservation-therapist-option:not(
  :has(.mf-reservation-therapist-option__input:checked)
),
.mf-reservation-therapist-option.is-unselected{
  opacity:.25;
  filter:grayscale(1) saturate(0);
  pointer-events:auto;
}

.mf-reservation-therapist-option:has(
  .mf-reservation-therapist-option__input:checked
),
.mf-reservation-therapist-option.is-selected{
  opacity:1;
  filter:none;
  border-color:#c7a13b;
  box-shadow:
    0 0 0 4px rgba(199,161,59,.95),
    0 10px 26px rgba(0,0,0,.30);
}

.mf-reservation-therapist-option:has(
  .mf-reservation-therapist-option__input:checked
) .mf-reservation-therapist-option__check,
.mf-reservation-therapist-option.is-selected
  .mf-reservation-therapist-option__check{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  width:auto;
  min-width:82px;
  height:34px;
  padding:0 10px;
  border-radius:999px;
  background:#a98225;
  color:#fff;
  font-size:11px;
  font-weight:800;
  letter-spacing:.04em;
  opacity:1;
  transform:scale(1);
  box-shadow:0 3px 12px rgba(0,0,0,.30);
}

.mf-reservation-therapist-option:has(
  .mf-reservation-therapist-option__input:checked
) .mf-reservation-therapist-option__check::after,
.mf-reservation-therapist-option.is-selected
  .mf-reservation-therapist-option__check::after{
  content:"選択中";
}

@media(hover:hover){
  .mf-reservation-therapist-select:has(
    .mf-reservation-therapist-option__input:checked
  ) .mf-reservation-therapist-option:not(
    :has(.mf-reservation-therapist-option__input:checked)
  ):hover,
  .mf-reservation-therapist-option.is-unselected:hover{
    opacity:.52;
    filter:grayscale(.65) saturate(.35);
  }
}
