/* ==========================================================================
   Contact Form 7 — overrides & integration
   Visually matches prototype (html/contact.html) at all breakpoints and
   in both light/dark modes. Enqueued after main.css.
   ========================================================================== */

/* --- Layout reset --- */
.wpcf7 { margin: 0; }
.wpcf7 form { margin: 0; }
.wpcf7 .wpcf7-form-control-wrap { display: block; }
.wpcf7 br { display: none; }

/* CF7 default CSS is disabled — restore accessibility + empty-state hiding */
.wpcf7 .screen-reader-response {
  position: absolute;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  width: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  word-wrap: normal !important;
}

.wpcf7 form.init .wpcf7-response-output,
.wpcf7 form.resetting .wpcf7-response-output {
  display: none;
}

.wpcf7 .hidden-fields-container {
  display: none;
}

/* --- Fields --- */
.wpcf7-form .form-group input[type="text"],
.wpcf7-form .form-group input[type="email"],
.wpcf7-form .form-group textarea {
  width: 100%;
  padding: 0.85rem 1rem;
  font-family: var(--font-family);
  font-size: 1rem;
  color: var(--color-text);
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  transition:
    border-color var(--transition),
    background var(--transition),
    box-shadow var(--transition);
}

.wpcf7-form .form-group input:focus,
.wpcf7-form .form-group textarea:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px var(--color-primary-light);
}

.wpcf7-form .form-group textarea {
  height: 200px;
  resize: none;
}

/* --- Submit button --- */
.wpcf7-form input[type="submit"].btn-primary {
  margin-top: 0.25rem;
}

.wpcf7-form input[type="submit"].btn-primary:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

/* --- Validation states --- */
.wpcf7-form .form-group input.wpcf7-not-valid,
.wpcf7-form .form-group textarea.wpcf7-not-valid {
  border-color: #c0392b;
  box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.25);
}

.wpcf7-form .form-group input.wpcf7-not-valid:focus,
.wpcf7-form .form-group textarea.wpcf7-not-valid:focus {
  border-color: #c0392b;
  box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.35);
}

[data-mode="dark"] .wpcf7-form .form-group input.wpcf7-not-valid,
[data-mode="dark"] .wpcf7-form .form-group textarea.wpcf7-not-valid {
  border-color: #e74c3c;
  box-shadow: 0 0 0 3px rgba(231, 76, 60, 0.3);
}

[data-mode="dark"] .wpcf7-form .form-group input.wpcf7-not-valid:focus,
[data-mode="dark"] .wpcf7-form .form-group textarea.wpcf7-not-valid:focus {
  border-color: #e74c3c;
  box-shadow: 0 0 0 3px rgba(231, 76, 60, 0.4);
}

.wpcf7-form .wpcf7-not-valid-tip {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.85rem;
  font-weight: 500;
  color: #c0392b;
}

[data-mode="dark"] .wpcf7-form .wpcf7-not-valid-tip {
  color: #e74c3c;
}

.wpcf7-form .wpcf7-response-output {
  margin: 1.25rem 0 0;
  padding: 0.85rem 1rem;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-border);
  font-size: 0.95rem;
}

.wpcf7-form .wpcf7-mail-sent-ok {
  border-color: var(--color-primary);
  background: var(--color-primary-light);
  color: var(--color-text);
}

.wpcf7-form .wpcf7-validation-errors,
.wpcf7-form .wpcf7-mail-sent-ng {
  border-color: var(--color-primary);
  background: var(--color-bg);
  color: var(--color-text);
}

/* --- Spinner --- */
.wpcf7 .wpcf7-spinner { display: none; }

/* --- Responsive (≤480px) — prevent iOS input zoom --- */
@media (max-width: 480px) {
  .wpcf7-form .form-group input[type="text"],
  .wpcf7-form .form-group input[type="email"],
  .wpcf7-form .form-group textarea {
    font-size: 16px;
  }
}
