/**************************************************
 * エンティティ共通ボタン
 **************************************************/
.sm-entity-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 14px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  border: 1px solid transparent;
  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease;
  white-space: nowrap;
}

/* プライマリボタン（メインアクション） */
.sm-entity-btn--primary {
  background-color: #016fcd;
  color: #ffffff;
  border-color: #016fcd;
  box-shadow: 0 2px 6px rgba(1, 111, 205, 0.25);
}

.sm-entity-btn--primary:hover {
  background-color: #005da9;
  border-color: #005da9;
}

/* アウトラインボタン（セカンダリアクション） */
.sm-entity-btn--outline {
  background-color: #ffffff;
  color: #016fcd;
  border-color: #016fcd;
}

.sm-entity-btn--outline:hover {
  background-color: #e8f2ff;
}

/**************************************************
 * 問い合わせフォーム
 **************************************************/
.sm-entity-section--contact-form {
  margin-top: 4px;
}

.sm-entity-section--contact-form .sm-entity-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.sm-entity-form-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.sm-entity-form-row label {
  font-size: 13px;
  font-weight: 600;
  color: #333;
}

.sm-entity-form-required {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 8px;
  border-radius: 999px;
  background: #fee2e2;
  color: #b91c1c;
  font-size: 11px;
  line-height: 1.4;
}

.sm-entity-input,
.sm-entity-textarea {
  width: 100%;
  border-radius: 8px;
  border: 1px solid #d4d8e5;
  padding: 9px 11px;
  font-size: 14px;
  box-sizing: border-box;
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  background-color: #fbfcff;
  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease,
    background-color 0.15s ease;
}

.sm-entity-input::placeholder,
.sm-entity-textarea::placeholder {
  color: #a0a4b5;
  font-size: 13px;
}

.sm-entity-input:focus,
.sm-entity-textarea:focus {
  border-color: #016fcd;
  box-shadow: 0 0 0 1px rgba(1, 111, 205, 0.16);
  outline: none;
  background-color: #f9fbff;
}

.sm-entity-textarea {
  resize: vertical;
  min-height: 180px;
  line-height: 1.6;
}

.sm-entity-form-help {
  margin: 0;
  font-size: 12px;
  color: #777;
}

.sm-entity-form-row--readonly .sm-entity-form-static {
  font-size: 13px;
  color: #222;
  padding: 7px 10px;
  border-radius: 8px;
  background: #f5f7fb;
  border: 1px solid #e0e4f0;
}

/* 送信ボタンエリア */
.sm-entity-form-actions {
  margin-top: 10px;
  display: flex;
  justify-content: flex-start;
  margin-bottom: 24px;   /* ← ★ これを追加 */
}

/* 送信ボタンのレイアウトだけ上書き（見た目は .sm-entity-btn に任せる） */
.sm-entity-form-actions .sm-entity-btn {
  width: 100%;
  justify-content: center;
  margin-top: 2px;
}

@media (min-width: 640px) {
  .sm-entity-form-actions .sm-entity-btn {
    width: auto;
    min-width: 220px;
  }
}

/**************************************************
 * フォーム用メッセージ
 **************************************************/
.sm-entity-notice {
  margin-bottom: 16px;
  padding: 10px 12px 12px;
  border-radius: 10px;
  border-left: 4px solid transparent;
}

.sm-entity-notice--success {
  border-left-color: #16a34a;
  background: #ecfdf3;
}

.sm-entity-notice--error {
  border-left-color: #dc2626;
  background: #fef2f2;
}

.sm-entity-notice-text {
  margin: 0 0 4px;
  font-size: 13px;
  color: #111827;
}

/* スマホ用微調整 */
@media (max-width: 768px) {
  .sm-entity-form-row--readonly .sm-entity-form-static {
    font-size: 12px;
  }

  .sm-entity-section--contact-form .sm-entity-form {
    gap: 14px;
  }
}