/* Zapis kontaktu e-mail ("Bądź na bieżąco") - komponent współdzielony przez ankietę (index.html) i stronę /zapisz-sie.
   Kolory wyłącznie z tokenów style.css (kontrasty policzone tam). Zero inline style: pole-pułapka chowa klasa .hp-field. */
.contact-box { margin-block: 1.5rem; padding: 1rem 1.25rem; background: var(--surface); border: 1px solid var(--border); border-inline-start: 4px solid var(--brand); border-radius: 4px; }
.contact-box h2 { font-size: 1.25rem; margin-bottom: 0.4rem; }
.contact-details summary { cursor: pointer; min-block-size: 44px; display: flex; align-items: center; font-weight: 700; color: var(--primary); }
.contact-info { margin: 0 0 1rem; padding-inline-start: 1.3rem; max-inline-size: 70ch; }
.contact-info li { margin-bottom: 0.4rem; }
.contact-form fieldset { margin-block: 1rem; }
.contact-form input[type="email"], .contact-form input[type="text"] {
  display: block; inline-size: 100%; max-inline-size: 28rem; min-block-size: 44px; padding: 0.5rem 0.75rem;
  border: 2px solid var(--border-ui); border-radius: 4px; background: var(--bg); color: var(--text);
}
.contact-form input[aria-invalid="true"] { border-color: var(--err); }
.field-error { color: var(--err); font-weight: 700; margin: 0.35rem 0 0; }
.field-error:empty { display: none; }
.field-error:not(:empty)::before { content: "Błąd: "; }
.contact-consent { margin-block: 1rem; }
.contact-form .check { align-items: flex-start; }
.contact-form .check input { margin-block-start: 0.15rem; }
.contact-done p:last-child { margin-bottom: 0; }
/* Pole-pułapka (honeypot): poza ekranem, niedostępne dla klawiatury i czytników (aria-hidden + tabindex=-1 w JS). */
.hp-field { position: absolute; inset-inline-start: -10000px; inset-block-start: auto; inline-size: 1px; block-size: 1px; overflow: hidden; }
@media (forced-colors: active) { .contact-box, .contact-form input[type="email"] { border-color: ButtonText; } }
