/* ── 比較表コンポーネント ────────────────────────── */
.c-comparison-table { overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: var(--radius-md); border: 1px solid var(--color-border); }
.c-comparison-table__table { width: 100%; min-width: 560px; border-collapse: collapse; }

/* 業者名ヘッダー行 */
.c-comparison-table__th-label {
  position: sticky; left: 0;
  background: var(--color-bg-section);
  z-index: 2; /* コーナーセルはz-index 2 で前面に */
  padding: 12px;
  min-width: 80px;
  border-bottom: 2px solid var(--color-primary);
  border-right: 1px solid var(--color-border);
}
.c-comparison-table__th-company {
  background: var(--color-primary);
  color: #fff;
  padding: 12px 8px;
  text-align: center;
  min-width: 120px;
  border-bottom: 2px solid var(--color-primary-dark);
  font-size: 0.8rem;
  font-weight: var(--font-weight-bold);
}

/* ラベル列（左端固定）*/
.c-comparison-table__td-label {
  position: sticky; left: 0;
  background: var(--color-bg-light);
  font-size: 0.8rem;
  font-weight: var(--font-weight-medium);
  color: var(--color-text-secondary);
  padding: 10px 12px;
  min-width: 80px;
  border-right: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border-light);
  z-index: 1;
}

/* データセル */
.c-comparison-table__td {
  padding: 10px 8px;
  text-align: center;
  border-bottom: 1px solid var(--color-border-light);
  font-size: 0.875rem;
  vertical-align: middle;
}

/* CTA行 */
.c-comparison-table__cta-row td { padding: 16px 8px; border-bottom: none; }
.c-comparison-table__cta-cell { display: flex; flex-direction: column; gap: 6px; }

/* 業者選択UI */
.c-compare-selector { display: flex; flex-direction: column; gap: var(--spacing-sm); margin-bottom: var(--spacing-lg); }
.c-compare-selector__item {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
  padding: var(--spacing-md);
  border: 2px solid var(--color-border);
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: border-color var(--transition-base), background var(--transition-base);
}
.c-compare-selector__item.is-selected {
  border-color: var(--color-primary);
  background: var(--color-primary-pale);
}
.c-compare-selector__item.is-disabled { opacity: 0.4; pointer-events: none; }
.c-compare-selector__check { width: 20px; height: 20px; border: 2px solid var(--color-border); border-radius: 4px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.c-compare-selector__item.is-selected .c-compare-selector__check { background: var(--color-primary); border-color: var(--color-primary); color: #fff; }
.c-compare-selector__check::after { content: '✓'; font-size: 0.75rem; }
.c-compare-selector__name { font-weight: var(--font-weight-medium); flex: 1; }
.c-compare-selector__score { font-size: 0.875rem; color: var(--color-secondary-dark); }
.c-compare-selector__count {
  background: var(--color-bg-light);
  border-radius: var(--radius-sm);
  padding: var(--spacing-sm) var(--spacing-md);
  font-size: 0.875rem;
  color: var(--color-text-secondary);
  text-align: center;
}
.c-compare-btn {
  background: var(--color-primary);
  color: #fff;
  border: none;
  border-radius: var(--radius-sm);
  padding: var(--spacing-md) var(--spacing-lg);
  font-weight: var(--font-weight-bold);
  cursor: pointer;
  width: 100%;
  font-size: var(--fs-cta);
  transition: filter var(--transition-base);
}
.c-compare-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.c-compare-btn:not(:disabled):hover { filter: brightness(0.9); }
