/**
 * Contact Form 7 — Dark theme overrides
 * Matches Rivett's Japanese minimalist aesthetic
 *
 * CF7 Form Template (paste into WP Admin → Contact → Add New):
 * ─────────────────────────────────────────────────────────────
 * <div class="cf7-form__row">
 *   <div class="cf7-form__group">
 *     <label class="cf7-form__label">お名前 <span class="cf7-form__required">*</span></label>
 *     [text* your-name]
 *   </div>
 *   <div class="cf7-form__group">
 *     <label class="cf7-form__label">会社名</label>
 *     [text your-company]
 *   </div>
 * </div>
 * <div class="cf7-form__group">
 *   <label class="cf7-form__label">メールアドレス <span class="cf7-form__required">*</span></label>
 *   [email* your-email]
 * </div>
 * <div class="cf7-form__group">
 *   <label class="cf7-form__label">件名</label>
 *   [text your-subject]
 * </div>
 * <div class="cf7-form__group">
 *   <label class="cf7-form__label">お問い合わせ内容 <span class="cf7-form__required">*</span></label>
 *   [textarea* your-message rows:8]
 * </div>
 * [submit "送信する"]
 * ─────────────────────────────────────────────────────────────
 */

/* ============================================ */
/* CF7 Form Reset                               */
/* ============================================ */
.wpcf7 {
  max-width: 100%;
}

.wpcf7-form {
  margin: 0;
  padding: 0;
}

.wpcf7-form br {
  display: none;
}

.wpcf7-form p {
  margin: 0;
}

/* ============================================ */
/* Form Layout (matches theme's grid pattern)   */
/* ============================================ */
.cf7-form__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
}

.cf7-form__group {
  margin-bottom: var(--space-lg);
}

.cf7-form__label {
  display: block;
  font-size: var(--font-size-xs);
  letter-spacing: 0.05em;
  margin-bottom: var(--space-xs);
  color: var(--color-text-secondary);
}

.cf7-form__required {
  color: var(--color-text-muted);
}

/* ============================================ */
/* Input & Textarea Controls                    */
/* ============================================ */
.wpcf7-form-control-wrap {
  display: block;
}

.wpcf7-form-control.wpcf7-text,
.wpcf7-form-control.wpcf7-email,
.wpcf7-form-control.wpcf7-textarea {
  width: 100%;
  padding: 12px 0;
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  color: var(--color-text-primary);
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--color-border-light);
  border-radius: 0;
  outline: none;
  transition: border-color var(--transition-base);
  -webkit-appearance: none;
}

.wpcf7-form-control.wpcf7-text:focus,
.wpcf7-form-control.wpcf7-email:focus,
.wpcf7-form-control.wpcf7-textarea:focus {
  border-color: var(--color-text-primary);
}

.wpcf7-form-control.wpcf7-text:focus-visible,
.wpcf7-form-control.wpcf7-email:focus-visible,
.wpcf7-form-control.wpcf7-textarea:focus-visible {
  outline: 2px solid var(--color-text-primary);
  outline-offset: 2px;
}

.wpcf7-form-control.wpcf7-textarea {
  resize: vertical;
  min-height: 150px;
}

/* ============================================ */
/* Submit Button (extends .btn from theme)      */
/* ============================================ */
.wpcf7-form-control.wpcf7-submit {
  display: inline-block;
  padding: 12px 32px;
  font-family: var(--font-primary);
  font-size: var(--font-size-xs);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--color-text-primary);
  background: transparent;
  border: 1px solid var(--color-border);
  border-radius: 0;
  cursor: pointer;
  margin-top: var(--space-lg);
  transition: all var(--transition-base);
  -webkit-appearance: none;
}

.wpcf7-form-control.wpcf7-submit:hover {
  background-color: var(--color-text-primary);
  color: var(--color-bg-primary);
  border-color: var(--color-text-primary);
}

/* ============================================ */
/* Validation & Response Messages               */
/* ============================================ */
.wpcf7-not-valid-tip {
  font-size: var(--font-size-xs);
  color: #e74c3c;
  margin-top: var(--space-xs);
}

.wpcf7-not-valid {
  border-color: #e74c3c !important;
}

.wpcf7-response-output {
  font-family: var(--font-secondary);
  font-size: var(--font-size-sm);
  padding: var(--space-md) !important;
  margin: var(--space-lg) 0 0 !important;
  border-radius: 0 !important;
}

.wpcf7-mail-sent-ok,
.wpcf7 form.sent .wpcf7-response-output {
  border-color: var(--color-border) !important;
  color: var(--color-text-secondary);
  background: rgba(255, 255, 255, 0.03);
}

.wpcf7-validation-errors,
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output {
  border-color: #e74c3c !important;
  color: #e74c3c;
  background: rgba(231, 76, 60, 0.05);
}

.wpcf7 form.failed .wpcf7-response-output {
  border-color: #e74c3c !important;
  color: #e74c3c;
  background: rgba(231, 76, 60, 0.05);
}

/* Spinner */
.wpcf7-spinner {
  margin-left: var(--space-sm);
}

/* ============================================ */
/* Tablet+ (768px)                              */
/* ============================================ */
@media (min-width: 768px) {
  .cf7-form__row {
    grid-template-columns: 1fr 1fr;
  }
}
