/**
 * Component: Button - c-button-001
 * 汎用ボタンコンポーネント - テーマカラー対応
 */

/* ========================================
   テーマカラー変数定義
======================================== */

.c-button-001 {
  /* デフォルト: グレーベース */
  --button-bg: var(--wp--preset--color--base-gray);
  --button-color: var(--wp--preset--color--white);
  --button-border: var(--wp--preset--color--base-gray);
  --button-hover-bg: var(--wp--preset--color--gray-darker);
  --button-hover-border: var(--wp--preset--color--gray-darker);

  /* アウトライン用 */
  --button-outline-color: var(--wp--preset--color--base-gray);
  --button-outline-border: var(--wp--preset--color--base-gray);
  --button-outline-hover-bg: var(--wp--preset--color--gray-lightest);
}

/* Clinic theme: Gold/Tertiary */
.c-button-001--theme-gold {
  --button-bg: var(--wp--preset--color--tertiary);
  --button-color: var(--wp--preset--color--white);
  --button-border: var(--wp--preset--color--tertiary);
  --button-hover-bg: var(--wp--preset--color--tertiary-dark);
  --button-hover-border: var(--wp--preset--color--tertiary-dark);
  --button-outline-color: var(--wp--preset--color--tertiary);
  --button-outline-border: var(--wp--preset--color--tertiary);
  --button-outline-hover-bg: var(--wp--preset--color--tertiary-lightest);
}

/* Treatment theme: Pink/Primary */
.c-button-001--theme-pink {
  --button-bg: var(--wp--preset--color--primary);
  --button-color: var(--wp--preset--color--white);
  --button-border: var(--wp--preset--color--primary);
  --button-hover-bg: var(--wp--preset--color--primary-dark);
  --button-hover-border: var(--wp--preset--color--primary-dark);
  --button-outline-color: var(--wp--preset--color--primary);
  --button-outline-border: var(--wp--preset--color--primary);
  --button-outline-hover-bg: var(--wp--preset--color--primary-lightest);
}

/* Column theme: Green/Success */
.c-button-001--theme-green {
  --button-bg: var(--wp--preset--color--success);
  --button-color: var(--wp--preset--color--white);
  --button-border: var(--wp--preset--color--success);
  --button-hover-bg: var(--wp--preset--color--success-dark);
  --button-hover-border: var(--wp--preset--color--success-dark);
  --button-outline-color: var(--wp--preset--color--success);
  --button-outline-border: var(--wp--preset--color--success);
  --button-outline-hover-bg: var(--wp--preset--color--success-lightest);
}

/* ========================================
   基本ボタンスタイル（ソリッド）
======================================== */

.c-button-001 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--wp--preset--spacing--xs);
  padding: var(--wp--preset--spacing--sm) var(--wp--preset--spacing--xl);
  font-size: var(--wp--preset--font-size--base);
  font-weight: var(--wp--custom--font-weight--medium);
  line-height: var(--wp--custom--line-height--tight);
  text-decoration: none;
  text-align: center;
  white-space: nowrap;
  border: 2px solid var(--button-border);
  border-radius: var(--wp--custom--border--radius--base);
  background: var(--button-bg);
  color: var(--button-color);
  cursor: pointer;
  transition: all var(--wp--custom--transition--duration--fast)
    var(--wp--custom--transition--timing--ease-in-out);
}

.c-button-001:hover {
  background: var(--button-hover-bg);
  border-color: var(--button-hover-border);
  opacity: 0.9;
}

.c-button-001:active {
  opacity: 1;
  transform: none;
}

.c-button-001:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

/* ========================================
   アウトラインスタイル
======================================== */

.c-button-001--outline {
  background: transparent;
  color: var(--button-outline-color);
  border-color: var(--button-outline-border);
}

.c-button-001--outline:hover {
  background: var(--button-outline-hover-bg);
  border-color: var(--button-outline-border);
  color: var(--button-outline-color);
  opacity: 1;
}

/* ========================================
   ゴーストスタイル
======================================== */

.c-button-001--ghost {
  background: transparent;
  border-color: transparent;
  color: var(--button-outline-color);
}

.c-button-001--ghost:hover {
  background: var(--button-outline-hover-bg);
  border-color: transparent;
  opacity: 1;
}

/* ========================================
   サイズバリエーション
======================================== */

/* Small */
.c-button-001--sm {
  padding: var(--wp--preset--spacing--xs) var(--wp--preset--spacing--base);
  font-size: var(--wp--preset--font-size--sm);
  gap: var(--wp--preset--spacing--2-xs);
}

/* Large */
.c-button-001--lg {
  padding: var(--wp--preset--spacing--base) var(--wp--preset--spacing--2-xl);
  font-size: var(--wp--preset--font-size--lg);
  gap: var(--wp--preset--spacing--sm);
}

/* Full Width */
.c-button-001--full {
  width: 100%;
}

/* ========================================
   角丸バリエーション
======================================== */

/* Rounded */
.c-button-001--rounded {
  border-radius: var(--wp--custom--border--radius--full);
}

/* ========================================
   アイコン付きボタン
======================================== */

.c-button-001__icon {
  font-size: 1.2rem;
  line-height: 1;
}

.c-button-001--sm .c-button-001__icon {
  font-size: 1.2rem;
}

.c-button-001--lg .c-button-001__icon {
  font-size: 1.2rem;
}

/* ========================================
   レスポンシブ調整
======================================== */

@media (max-width: 767px) {
  .c-button-001 {
    padding: var(--wp--preset--spacing--xs) var(--wp--preset--spacing--base);
    font-size: var(--wp--preset--font-size--sm);
  }

  .c-button-001--lg {
    padding: var(--wp--preset--spacing--sm) var(--wp--preset--spacing--xl);
    font-size: var(--wp--preset--font-size--base);
  }
}

/* ========================================
   ボタングループ
======================================== */

.c-button-001-group {
  display: flex;
  gap: var(--wp--preset--spacing--sm);
  flex-wrap: wrap;
}

.c-button-001-group--center {
  justify-content: center;
}

.c-button-001-group--right {
  justify-content: flex-end;
}

.c-button-001-group--stack {
  flex-direction: column;
  align-items: stretch;
}

@media (max-width: 767px) {
  .c-button-001-group {
    gap: var(--wp--preset--spacing--xs);
  }

  .c-button-001-group--stack-mobile {
    flex-direction: column;
    align-items: stretch;
  }
}
