*,
*::before,
*::after {
  box-sizing: border-box;
}

* {
  margin: 0;
}

html {
  -webkit-text-size-adjust: 100%;
  -moz-tab-size: 4;
  tab-size: 4;
}

body {
  font-family: var(--font-sans);
  color: var(--color-text);
  background: var(--color-surface);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/* Strona: min. wysokość ekranu + miejsce na sticky widget kontaktu (mobile).
   Na desktopie widget jest z boku, więc dolny padding znika. */
.page {
  min-height: 100vh;
  padding-bottom: 6rem;          /* dawne pb-24 */
}
@media (min-width: 1024px) {
  .page {
    padding-bottom: 0;           /* dawne lg:pb-0 */
  }
}

/* Media domyślnie blokowe i responsywne */
img,
svg,
iframe {
  display: block;
  max-width: 100%;
}
img {
  height: auto;
}

/* Listy i przyciski — neutralne domyślne */
button {
  font-family: inherit;
  font-size: 100%;
  line-height: inherit;
  color: inherit;
}

/* Linki — domyślnie bez podkreślenia, dziedziczą kolor (jak w oryginale) */
a {
  color: inherit;
  text-decoration: none;
}

/* Nagłówki — bez narzuconej wagi/rozmiaru (sterują nimi komponenty) */
h1, h2, h3, h4 {
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}

/* Spójny focus dla nawigacji klawiaturą */
:focus-visible {
  outline: 2px solid var(--color-morski);
  outline-offset: 2px;
}

/* Dostępność: treść tylko dla czytników ekranu (dawne .sr-only) */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
