/* Szablon K (Kontakt): formularz na jasnym tle, blok „Kontakt” z danymi i miejsce na mapę. Style obliczone na starej stronie. */
.contact { padding: 50px 0; background: var(--c-bg-soft); }
.contact__head { margin-bottom: 50px; text-align: center; }
.contact__title { margin: 0 0 4px; font-size: 1.5rem; font-weight: var(--fw-heading-strong); line-height: 1.2; }
/* Ozdobnik pod tytułem: trzy kreski (jak title-border-3 z dema motywu, którego nie przenosimy). */
.contact__title::after {
  content: "";
  display: block;
  width: 117px; height: 3px;
  margin: 16px auto 12px;
  background:
    linear-gradient(90deg, var(--c-navy) 0 20px, transparent 20px 30px, var(--c-blue-text-bg) 30px 87px, transparent 87px 97px, var(--c-navy) 97px);
}
.contact__lead { margin: 0; color: var(--c-heading); }
.contact .contact-form__field { margin-bottom: 31px; }
.contact .contact-form__info { margin-top: var(--s-6); }
.contact .contact-form__consent { margin-bottom: var(--s-5); }
.contact .contact-form__required { margin-top: var(--s-5); }

@media (min-width: 768px) {
  .contact { padding: 103px 0 50px; }
  .contact__head { margin-bottom: 57px; }
  .contact__title { font-size: 2.1875rem; }
  .contact .container { padding-inline: 25px; }
  .contact .contact-form__info { margin-top: 0; }
}

/* Blok „Kontakt”: telefon jedna kolumna (wyśrodkowana), od 768 px tekst po lewej, mapa po prawej. */
.contact-info { padding: 50px 0 100px; }
.contact-info__grid { display: grid; gap: var(--s-6); }
.contact-info__text { text-align: center; }
.contact-info__title { margin: 0 0 5px; font-size: 1.5rem; line-height: 1.2; }
.contact-info__links { margin-bottom: 36px; }
.contact-info__links a { color: var(--c-heading); }

.map-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--s-3);
  min-height: 300px;
  padding: var(--s-6) var(--s-4);
  border-radius: var(--radius-card);
  background: var(--c-bg-soft);
  border: 1px solid var(--c-line);
  text-align: center;
}
.map-box:has(.map-frame) { padding: 0; border: 0; }
.map-box p { margin: 0; }
.map-box__address { color: var(--c-heading); font-family: var(--font-heading); font-weight: var(--fw-heading); }
.map-box__note { font-size: 0.875rem; }
.map-box__link { color: var(--c-link); text-decoration: underline; font-size: 0.875rem; }
.map-box .map-frame { min-height: 380px; border-radius: var(--radius-card); }

@media (min-width: 768px) {
  .contact-info__grid { grid-template-columns: 1fr 1fr; gap: 22px; padding-inline: 25px; }
  .contact-info__text { text-align: left; }
  .map-box { min-height: 380px; }
}
