/*
 * CF7 — widoczne błędy walidacji (WCAG 2.2: identyfikacja błędu, czytelność, kontrast).
 * Ładowane tylko gdy na stronie ładują się zasoby CF7 (sd_cf7_should_load_frontend_assets).
 */
:root {
  --sd-cf7-error-text: #9a1c1c;
  --sd-cf7-error-bg: #fff5f5;
  --sd-cf7-error-border: #e8a9a9;
}

/* Komunikat pod polem (widok wizualny; kopia dla SR jest w .screen-reader-response) */
form.wpcf7-form.sd-cf7 .wpcf7-not-valid-tip,
.wpcf7 .wpcf7-not-valid-tip {
  display: block;
  margin-top: var(--sd-space-2xs, 0.375rem);
  padding: var(--sd-space-2xs, 0.375rem) var(--sd-space-xs, 0.625rem);
  font-size: var(--sd-text-sm, 0.875rem);
  line-height: 1.45;
  color: var(--sd-cf7-error-text);
  background: var(--sd-cf7-error-bg);
  border: 1px solid var(--sd-cf7-error-border);
  border-radius: 4px;
  max-width: 100%;
}

/* Pola w stanie błędu — wyraźna obwódka + zachowany focus */
form.wpcf7-form.sd-cf7 .wpcf7-form-control.wpcf7-not-valid,
.wpcf7 .wpcf7-form-control.wpcf7-not-valid {
  border-color: var(--sd-cf7-error-border) !important;
  box-shadow: 0 0 0 1px var(--sd-cf7-error-border);
}

form.wpcf7-form.sd-cf7 .wpcf7-form-control.wpcf7-not-valid:focus,
.wpcf7 .wpcf7-form-control.wpcf7-not-valid:focus {
  outline: 2px solid var(--sd-color-green-dark, #2a7829);
  outline-offset: 2px;
}

/* Globalny komunikat formularza (AJAX aktualizuje treść) */
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  margin-top: var(--sd-space-sm, 0.875rem);
  padding: var(--sd-space-xs, 0.625rem) var(--sd-space-sm, 0.875rem);
  font-size: var(--sd-text-sm, 0.875rem);
  line-height: 1.5;
  color: var(--sd-cf7-error-text);
  background: var(--sd-cf7-error-bg);
  border: 1px solid var(--sd-cf7-error-border);
  border-radius: 4px;
}

.wpcf7 form.sent .wpcf7-response-output {
  margin-top: var(--sd-space-sm, 0.875rem);
  padding: var(--sd-space-xs, 0.625rem) var(--sd-space-sm, 0.875rem);
  border-radius: 4px;
}

/* Lista błędów dla czytników — technicznie ukryta, ale styl nie wpływa na SR */
.wpcf7 .screen-reader-response ul {
  margin: 0.35rem 0 0;
  padding-left: 1.1rem;
}
