/* ==========================================================================
   Contact Form 7 styling — shared field structure + dark/light context skins.
   (CF7 assets only load on pages with a form; see inc/contact-form-7.php.)
   ========================================================================== */

.wpcf7-form { display: block; }
.wpcf7-form p { margin: 0 0 16px; }
.wpcf7 .wpcf7-form label { display: block; font-size: 0.95rem; font-weight: 600; margin-bottom: 6px; }

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form input[type="number"],
.wpcf7-form textarea,
.wpcf7-form select {
  width: 100%;
  font-family: var(--d55-font-body);
  font-size: 1rem;
  padding: 13px 15px;
  border: 1px solid var(--d55-border);
  border-radius: var(--d55-radius);
  background: #fff;
  color: var(--d55-ink);
  transition: border-color 0.2s var(--d55-ease), box-shadow 0.2s var(--d55-ease);
}
.wpcf7-form textarea { min-height: 130px; resize: vertical; }
.wpcf7-form input:focus,
.wpcf7-form textarea:focus,
.wpcf7-form select:focus {
  outline: none;
  border-color: var(--d55-accent);
  box-shadow: 0 0 0 3px rgba(43, 185, 217, 0.18);
}
.wpcf7-form input::placeholder,
.wpcf7-form textarea::placeholder { color: var(--d55-text-subtle); }

/* Consent checkbox row (free-trial) */
.wpcf7-form .wpcf7-acceptance,
.wpcf7-form .wpcf7-checkbox { display: block; }
.wpcf7-form .wpcf7-list-item { margin: 0; display: flex; gap: 10px; align-items: flex-start; }
.wpcf7-form .wpcf7-list-item label { display: flex; gap: 10px; font-weight: 400; font-size: 0.9rem; }
.wpcf7-form .wpcf7-list-item input[type="checkbox"] { width: auto; margin-top: 3px; }

/* Submit button — matches .d55-btn--primary */
.wpcf7-form .wpcf7-submit,
.wpcf7-form input[type="submit"] {
  width: auto;
  font-family: var(--d55-font-display);
  font-size: 1.1rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
  background: var(--d55-accent);
  border: 0;
  border-radius: var(--d55-radius);
  padding: 13px 34px;
  cursor: pointer;
  transition: background-color 0.2s var(--d55-ease), transform 0.2s var(--d55-ease);
}
.wpcf7-form .wpcf7-submit:hover { background: var(--d55-accent-dark); transform: translateY(-2px); }

/* CF7 status / validation messages */
.wpcf7-form .wpcf7-response-output {
  margin: 14px 0 0; padding: 12px 16px; border-radius: var(--d55-radius);
  font-size: 0.92rem; border: 1px solid;
}
.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7-form.unaccepted .wpcf7-response-output { border-color: #E53E3E; color: #E53E3E; background: rgba(229,62,62,0.08); }
.wpcf7-form.sent .wpcf7-response-output { border-color: #38A169; color: #2F855A; background: rgba(56,161,105,0.08); }
.wpcf7-not-valid-tip { color: #E53E3E; font-size: 0.85rem; margin-top: 4px; }
.wpcf7-spinner { margin-left: 10px; }

/* --- Dark context (contact block) --- */
.d55-contact .wpcf7-form input[type="text"],
.d55-contact .wpcf7-form input[type="email"],
.d55-contact .wpcf7-form input[type="tel"],
.d55-contact .wpcf7-form textarea {
  background: rgba(255,255,255,0.06);
  border-color: rgba(255,255,255,0.18);
  color: #fff;
}
.d55-contact .wpcf7-form input::placeholder,
.d55-contact .wpcf7-form textarea::placeholder { color: rgba(255,255,255,0.55); }
.d55-contact .wpcf7-form label { color: #E2E8F0; }
.d55-contact .wpcf7-form input:focus,
.d55-contact .wpcf7-form textarea:focus { border-color: var(--d55-accent); box-shadow: 0 0 0 3px rgba(43,185,217,0.25); }

@media (prefers-reduced-motion: reduce) {
  .wpcf7-form .wpcf7-submit:hover { transform: none; }
}
