/* ===== Montserrat (self-hosted, variable) ===== */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/assets/montserrat-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('/assets/montserrat-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ===== Baza ===== */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;
  color: #333;
  background: #fff;
  -webkit-font-smoothing: antialiased;
}
a { text-decoration: none; color: inherit; }
img { max-width: 100%; }
input, textarea, button { font-family: inherit; }
::placeholder { color: #9fb0b3; }
section { scroll-margin-top: 88px; }

:focus-visible { outline: 3px solid #0e7e82; outline-offset: 2px; border-radius: 6px; }

.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 200;
  background: #fff; color: #0e7e82; font-weight: 700; padding: 12px 18px; border-radius: 0 0 10px 0;
}
.skip-link:focus { left: 0; }

@keyframes pulseDot { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .35; transform: scale(.6); } }
@keyframes floatY { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }

/* ===== Nawigacja ===== */
.nav-mobile { display: none; }
@media (max-width: 1059px) {
  .nav-desktop { display: none; }
  .nav-mobile { display: block; }
}
@media (min-width: 1060px) {
  #mobileMenu { display: none !important; }
}
.mobile-menu[hidden], .sticky-bar[hidden], .fab-wrap[hidden], [hidden] { display: none; }

/* ===== Karty usług (hover) ===== */
.card-hover:hover {
  transform: translateY(-7px);
  box-shadow: 0 28px 50px -24px rgba(16, 80, 82, .34);
  border-color: #bfe7e7;
}

/* ===== Formularz ===== */
.field:focus { border-color: #1CB5B9; background: #fff; }
.field.invalid { border-color: #e0556b; }
.field-error { color: #e0556b; font-weight: 600; font-size: 12.5px; margin-top: 6px; }
#submitBtn:hover:not(:disabled) { background: #179a9e; }
#submitBtn:disabled { opacity: .65; cursor: progress; }
.form-status { font-weight: 600; font-size: 13.5px; margin-top: 14px; text-align: center; }
.form-status.error { color: #e0556b; }
.hp-field {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap;
}

/* ===== Pływający przycisk / pasek ===== */
.fab-wrap a:hover { background: #179a9e; }
@media (max-width: 1059px) { #fab { display: none !important; } }
@media (min-width: 1060px) { #mobileBar { display: none !important; } }

/* ===== Animacje wejścia ===== */
[data-reveal] {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity .7s cubic-bezier(.2, .7, .3, 1), transform .7s cubic-bezier(.2, .7, .3, 1);
}
[data-reveal].revealed { opacity: 1; transform: none; }
.no-js [data-reveal] { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  [data-reveal] { opacity: 1; transform: none; }
}

@media print {
  #fab, #mobileBar, header { display: none !important; }
}
