/* ============================================
   s-cv-modal-01 — 予約分岐モーダル（中央寄せ）
   href="#cv-modal" で開く。美容施術 / 一般診療の2分岐 + 電話。
   ============================================ */

.s-cv-modal-01 {
  position: fixed;
  inset: 0;
  z-index: 110;
  display: none;
  align-items: center;
  justify-content: center;
  padding: var(--space-xl);
}

.s-cv-modal-01.is-active,
.s-cv-modal-01.is-closing {
  display: flex;
}

/* --- オーバーレイ --- */
.s-cv-modal-01__overlay {
  position: absolute;
  inset: 0;
  background: rgba(61, 61, 61, 0.55);
  backdrop-filter: blur(var(--space-3-xs));
  opacity: 0;
  transition: opacity var(--transition-normal);
}

.s-cv-modal-01.is-active .s-cv-modal-01__overlay {
  opacity: 1;
}

.s-cv-modal-01.is-closing .s-cv-modal-01__overlay {
  opacity: 0;
}

/* --- コンテンツ（中央・カード） --- */
.s-cv-modal-01__content {
  position: relative;
  container-type: inline-size;
  width: 100%;
  max-width: var(--content-width-md, 46rem);
  max-height: 86vh;
  overflow-y: auto;
  background: var(--color-white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-xl);
  opacity: 0;
  transform: scale(0.96) translateY(var(--space-sm));
  transition: opacity var(--transition-normal), transform var(--transition-normal);
}

.s-cv-modal-01.is-active .s-cv-modal-01__content {
  opacity: 1;
  transform: scale(1) translateY(0);
}

.s-cv-modal-01.is-closing .s-cv-modal-01__content {
  opacity: 0;
  transform: scale(0.96) translateY(var(--space-sm));
}

/* --- ヘッダー: ロゴ中央 + 閉じる --- */
.s-cv-modal-01__header {
  position: relative;
  padding: var(--space-3-xl) var(--space-3-xl) var(--space-xl);
  text-align: center;
}

.s-cv-modal-01__logo {
  width: auto;
  height: var(--space-8-xl);
  margin: 0 auto var(--space-md);
}

.s-cv-modal-01__title {
  font-family: var(--font-family-jp);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
  margin: 0;
}

.s-cv-modal-01__lead {
  margin-top: var(--space-2-xs);
  font-size: var(--font-size-sm);
  color: var(--color-text-light);
}

.s-cv-modal-01__close {
  position: absolute;
  top: var(--space-lg);
  right: var(--space-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--space-7-xl);
  height: var(--space-7-xl);
  border: none;
  background: transparent;
  border-radius: var(--radius-pill);
  color: var(--color-text-light);
  cursor: pointer;
  transition: background var(--transition-fast), color var(--transition-fast);
}

.s-cv-modal-01__close:hover {
  background: var(--color-bg);
  color: var(--color-text);
}

.s-cv-modal-01__close .material-icons {
  font-size: var(--font-size-3-xl);
}

/* --- ボディ: 分岐カード --- */
.s-cv-modal-01__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  padding: 0 var(--space-3-xl);
}

.s-cv-modal-01__card {
  display: flex;
  align-items: center;
  gap: var(--space-lg);
  padding: var(--space-xl);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  text-decoration: none;
  color: var(--color-text);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
}

.s-cv-modal-01__card:hover {
  border-color: var(--color-primary-light);
  background: var(--color-bg-sub);
  box-shadow: var(--shadow-sm);
}

.s-cv-modal-01__card-photo {
  width: var(--space-10-xl);
  height: var(--space-10-xl);
  border-radius: var(--radius-md);
  object-fit: cover;
  flex-shrink: 0;
  background: var(--color-bg-sub);
}

.s-cv-modal-01__card-body {
  flex: 1;
  min-width: 0;
}

.s-cv-modal-01__card-title {
  display: block;
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
  margin-bottom: var(--space-4-xs);
}

.s-cv-modal-01__card-desc {
  display: block;
  font-size: var(--font-size-xs);
  color: var(--color-text-light);
  line-height: var(--line-height-normal);
}

.s-cv-modal-01__card-arrow {
  font-size: var(--font-size-2-xl);
  color: var(--color-border);
  flex-shrink: 0;
}

.s-cv-modal-01__card:hover .s-cv-modal-01__card-arrow {
  color: var(--color-primary);
}

/* --- 一般皮膚科の診療内容への誘導リンク（カード下の補助導線） --- */
.s-cv-modal-01__textlink {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  margin-top: var(--space-sm);
  padding: var(--space-md) var(--space-xl);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--color-text-light);
  text-decoration: none;
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius-md);
  transition: color var(--transition-fast), border-color var(--transition-fast);
}

.s-cv-modal-01__textlink:hover {
  color: var(--color-primary);
  border-color: var(--color-primary);
}

.s-cv-modal-01__textlink-icon {
  font-size: var(--font-size-xl);
  flex-shrink: 0;
}

.s-cv-modal-01__textlink-arrow {
  font-size: var(--font-size-lg);
  color: var(--color-border);
  flex-shrink: 0;
  margin-left: auto;
}

/* --- フッター: 電話 --- */
.s-cv-modal-01__footer {
  padding: var(--space-xl) var(--space-3-xl) var(--space-3-xl);
  text-align: center;
}

.s-cv-modal-01__phone {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2-xs);
  font-size: var(--font-size-sm);
  color: var(--color-text-light);
  text-decoration: none;
  transition: color var(--transition-fast);
}

.s-cv-modal-01__phone:hover {
  color: var(--color-primary);
}

.s-cv-modal-01__phone-num {
  font-weight: var(--font-weight-bold);
  color: var(--color-text);
}

.s-cv-modal-01__phone .material-icons {
  font-size: var(--font-size-lg);
  color: var(--color-primary);
}

/* --- SP --- */
@container (max-width: 420px) {
  .s-cv-modal-01__card {
    gap: var(--space-md);
    padding: var(--space-lg);
  }

  .s-cv-modal-01__card-photo {
    width: var(--space-9-xl);
    height: var(--space-9-xl);
  }

  .s-cv-modal-01__card-title {
    font-size: var(--font-size-md);
  }
}

/* ── 電話は美容診療・保険診療の2系統 ── */
.s-cv-modal-01__footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2-xs);
}

.s-cv-modal-01__phone-heading {
  margin: 0;
  font-size: var(--font-size-sm);
  color: var(--color-text-light);
}

.s-cv-modal-01__phone-label {
  font-size: var(--font-size-xs);
  color: var(--color-text-light);
}
