/* ==========================================================================
   Buttons
   ========================================================================== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 32px;
  border-radius: var(--radius-full);
  font-size: .9375rem;
  font-weight: var(--fw-bold);
  letter-spacing: .04em;
  cursor: pointer;
  border: 2px solid transparent;
  transition: background var(--transition), color var(--transition),
              border-color var(--transition), box-shadow var(--transition),
              transform var(--transition);
  white-space: nowrap;
  text-decoration: none;
}

.btn:active { transform: translateY(1px); }

.btn--primary {
  background: var(--color-primary);
  color: var(--color-white);
  border-color: var(--color-primary);
  box-shadow: 0 4px 16px rgba(0,91,172,.3);
}
.btn--primary:hover {
  background: var(--color-primary-dark);
  border-color: var(--color-primary-dark);
  box-shadow: 0 6px 24px rgba(0,91,172,.4);
  color: var(--color-white);
}

.btn--accent {
  background: linear-gradient(135deg, #00A8E8 0%, var(--color-primary) 100%);
  color: var(--color-white);
  box-shadow: 0 4px 20px rgba(0,168,232,.4);
}
.btn--accent:hover {
  box-shadow: 0 6px 28px rgba(0,168,232,.5);
  filter: brightness(1.05);
  color: var(--color-white);
}

.btn--outline {
  background: transparent;
  color: var(--color-primary);
  border-color: var(--color-primary);
}
.btn--outline:hover {
  background: var(--color-primary);
  color: var(--color-white);
}

.btn--white {
  background: var(--color-white);
  color: var(--color-primary);
  border-color: var(--color-white);
  box-shadow: var(--shadow-md);
}
.btn--white:hover {
  background: var(--color-bg-light);
  box-shadow: var(--shadow-lg);
  color: var(--color-primary-dark);
}

/* 公式LINE用ボタン */
.btn--line {
  background: #06C755;
  color: var(--color-white);
  border-color: #06C755;
  box-shadow: 0 2px 12px rgba(6,199,85,.35);
}
.btn--line:hover {
  background: #05b04c;
  border-color: #05b04c;
  color: var(--color-white);
  box-shadow: 0 4px 16px rgba(6,199,85,.4);
}

.btn--lg {
  padding: 18px 48px;
  font-size: 1.0625rem;
}

.btn--sm {
  padding: 10px 22px;
  font-size: .875rem;
}
