/* =========================================================
   Component / Form
   ========================================================= */
.c-form { display: flex; flex-direction: column; gap: 20px; }

/*
 * c-form-group / c-required は Contact Form 7 の管理画面（フォームの内容）側で
 * 直接手書きされているラップ用クラス（functions.php の wpcf7_autop_or_not
 * フィルタ参照）。CSS側をリネームしたら、管理画面のフォーム本文も同じ
 * クラス名に書き換えること。
 */
.c-form-group { display: flex; flex-direction: column; gap: 8px; }
.c-form-group label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text-muted);
}
.c-required { color: var(--accent-1); }
.c-form-group input,
.c-form-group select,
.c-form-group textarea {
  background: rgba(255,255,255,0.05);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  padding: 12px 16px;
  color: var(--text);
  font-size: 0.9375rem;
  transition: var(--transition);
  resize: vertical;
}
.c-form-group input:focus,
.c-form-group select:focus,
.c-form-group textarea:focus {
  outline: none;
  border-color: var(--accent-1);
  background: rgba(124,58,237,0.05);
  box-shadow: 0 0 0 3px rgba(124,58,237,0.15);
}
.c-form-group input::placeholder,
.c-form-group textarea::placeholder { color: var(--text-faint); }
.c-form-group select option { background: var(--bg-2); }

.c-form__result {
  font-size: 0.9375rem;
  padding: 12px 16px;
  border-radius: var(--radius-md);
  display: none;
}
.c-form__result--success {
  display: block;
  background: rgba(34, 197, 94, 0.1);
  border: 1px solid rgba(34, 197, 94, 0.3);
  color: #22c55e;
}
.c-form__result--error {
  display: block;
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.3);
  color: #ef4444;
}

/* ── Contact Form 7（ベンダー由来のクラスはリネームせずそのまま上書き） ── */
.wpcf7 { width: 100%; }

.wpcf7 .c-form-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 20px;
}
.wpcf7 .c-form-group:last-of-type { margin-bottom: 0; }

.wpcf7 label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text);
}

.wpcf7 input:not([type="submit"]),
.wpcf7 select,
.wpcf7 textarea {
  width: 100%;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 12px 16px;
  color: var(--text);
  font-size: 0.9375rem;
  transition: border-color var(--transition), background var(--transition), box-shadow var(--transition);
  resize: vertical;
}

.wpcf7 input:not([type="submit"]):focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
  outline: none;
  border-color: var(--accent-1);
  background: rgba(255, 255, 255, 0.07);
  box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.15);
}

.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder { color: var(--text-faint); }
.wpcf7 select option { background: var(--bg-2); }

.wpcf7 .wpcf7-form-control-wrap { display: block; }

.wpcf7 input[type="submit"] {
  width: 100%;
  padding: 14px 28px;
  background: linear-gradient(135deg, var(--accent-1), var(--accent-2));
  border: none;
  border-radius: var(--radius-md);
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: opacity var(--transition), transform var(--transition);
  margin-top: 4px;
}
.wpcf7 input[type="submit"]:hover {
  opacity: 0.88;
  transform: translateY(-1px);
}
.wpcf7 input[type="submit"]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

.wpcf7 .wpcf7-not-valid {
  border-color: #ef4444 !important;
}
.wpcf7 .wpcf7-not-valid-tip {
  font-size: 0.8125rem;
  color: #ef4444;
  margin-top: 4px;
  display: block;
}

.wpcf7 .wpcf7-response-output {
  margin: 16px 0 0 !important;
  padding: 12px 16px !important;
  border-radius: var(--radius-md) !important;
  font-size: 0.9375rem !important;
  border-width: 1px !important;
  border-style: solid !important;
}
.wpcf7 .wpcf7-mail-sent-ok {
  background: rgba(34, 197, 94, 0.1) !important;
  border-color: rgba(34, 197, 94, 0.3) !important;
  color: #22c55e !important;
}
.wpcf7 .wpcf7-mail-sent-ng,
.wpcf7 .wpcf7-validation-errors,
.wpcf7 .wpcf7-spam-blocked,
.wpcf7 .wpcf7-acceptance-missing {
  background: rgba(239, 68, 68, 0.1) !important;
  border-color: rgba(239, 68, 68, 0.3) !important;
  color: #ef4444 !important;
}

.wpcf7 .wpcf7-spinner { display: none !important; }

/* ── CF7未インストール時のプレースホルダー ─────────────── */
.c-cf7-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 48px 24px;
  border: 1px dashed var(--border);
  border-radius: var(--radius-lg);
  color: var(--text-faint);
  text-align: center;
}
.c-cf7-placeholder svg { opacity: 0.4; }
.c-cf7-placeholder p { font-size: 0.9375rem; line-height: 1.7; margin: 0; }
.c-cf7-notice {
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  color: var(--text-muted);
  font-size: 0.9375rem;
}
