/* IBWR na jutro - arkusz stylów strony i panelu.
   Kierunek (od 21.10.2026, prośba Macieja): styl Apple - biel i jasna szarość (#f5f5f7), prawie czarny tekst,
   duże nagłówki wyśrodkowane, jeden akcent (niebieski #0071e3) w przyciskach i linkach, zaokrąglone kafelki,
   szczegóły zwinięte w "Pokaż więcej". Tryb ciemny czarny (#000) jak na ciemnych stronach Apple.
   Kartka IBWR z pieczątką zostaje jako "zdjęcie produktu" w nagłówku. */

/* Interfejs: systemowy krój urządzenia (SF Pro na iPhonie i Macu, Segoe UI na Windows, Roboto na Androidzie) -
   najlepiej czytelny na danym ekranie i bez pobierania. Fragmenty dokumentu: IBWR Dok (metryka Calibri), jak w Wordzie,
   który klient dostanie. */
@font-face {
  font-family: 'IBWR Dok';
  src: url('/assets/fonts/ibwr-dok-400.woff') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'IBWR Dok';
  src: url('/assets/fonts/ibwr-dok-700.woff') format('woff');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

:root {
  /* Kolory: styl Apple - biel i jasna szarość, prawie czarny tekst, jeden akcent (niebieski) */
  --tusz: #1d1d1f;
  --tusz-2: #6e6e73;
  --tlo: #ffffff;
  --tlo-2: #f5f5f7;
  --powierzchnia: #ffffff;
  --linia: #d2d2d7;
  --linia-mocna: #86868b;
  --sygnal: #0071e3;
  --sygnal-hover: #0077ed;
  --na-sygnale: #ffffff;
  --stempel: #0071e3;
  --link: #0066cc;
  --fokus: #0071e3;
  --blad: #d70015;
  --blad-tlo: #fff2f4;
  --ok: #1d7a3a;
  --ok-tlo: #eaf7ee;
  --uwaga-tlo: #f5f5f7;
  --ryz-m-tlo: #e8f6ec;
  --ryz-m: #1d7a3a;
  --ryz-s-tlo: #fff4e0;
  --ryz-s: #8a5300;
  --ryz-d-tlo: #ffecec;
  --ryz-d: #c4161c;
  --pole-tlo: #ffffff;
  --siatka: transparent;
  --kartka-cien: 0 2px 6px rgba(0, 0, 0, 0.04), 0 18px 48px -24px rgba(0, 0, 0, 0.22);
  --promien: 18px;
  --promien-maly: 12px;

  /* Dokument (kartka zostaje papierowa także w trybie ciemnym) */
  --dok-papier: #ffffff;
  --dok-tusz: #1c1f23;
  --dok-szary: #5b6670;
  --dok-linia: #9aa5b0;

  /* Typografia */
  --font: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif;
  /* nagłówki, ceny i liczby: ten sam krój systemowy w wersji do tytułów */
  --font-wasko: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif;
  --font-dok: 'IBWR Dok', Calibri, Carlito, Arial, sans-serif;

  /* Układ */
  --tekst-max: 40rem;
  --ramka-max: 72rem;
  --margines: 16px;
  --odstep-sekcji: 4rem;
  /* kolumna treści sekcji (nagłówek, tekst, tabele) - jedna szerokość, wyśrodkowana */
  --kolumna-max: 56rem;
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root {
    --tusz: #f5f5f7;
    --tusz-2: #a1a1a6;
    --tlo: #000000;
    --tlo-2: #161617;
    --powierzchnia: #1d1d1f;
    --linia: #424245;
    --linia-mocna: #6e6e73;
    --stempel: #0071e3;
    --link: #2997ff;
    --fokus: #2997ff;
    --blad: #ff6961;
    --blad-tlo: #3a1414;
    --ok: #30d158;
    --ok-tlo: #0f2a17;
    --uwaga-tlo: #1d1d1f;
    --ryz-m-tlo: #0f2a17;
    --ryz-m: #30d158;
    --ryz-s-tlo: #2e2208;
    --ryz-s: #ffd60a;
    --ryz-d-tlo: #3a1414;
    --ryz-d: #ff6961;
    --pole-tlo: #1d1d1f;
    --kartka-cien: none;
    color-scheme: dark;
  }
}

@media (min-width: 640px) {
  :root {
    --margines: 24px;
    --odstep-sekcji: 5rem;
  }
}
@media (min-width: 1024px) {
  :root {
    --margines: 40px;
    --odstep-sekcji: 7rem;
  }
}

/* ---------- Podstawy ---------- */

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

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: 5rem;
}

body {
  margin: 0;
  background: var(--tlo);
  color: var(--tusz);
  font-family: var(--font);
  font-size: 1.0625rem;
  line-height: 1.6;
  font-kerning: normal;
  overflow-wrap: break-word;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
@media (min-width: 1024px) {
  body {
    font-size: 1.125rem;
  }
}

img,
svg {
  max-width: 100%;
  height: auto;
}

h1,
h2,
h3 {
  margin: 0 0 0.5em;
  font-weight: 700;
  text-wrap: balance;
}
h1,
h2 {
  font-family: var(--font-wasko);
}
h1 {
  font-size: clamp(2.5rem, 6.6vw, 4.5rem);
  line-height: 1.04;
  letter-spacing: -0.028em;
}
h2 {
  font-size: clamp(1.9rem, 3.9vw, 2.75rem);
  line-height: 1.1;
  letter-spacing: -0.022em;
}
h3 {
  font-size: 1.2rem;
  line-height: 1.3;
  letter-spacing: -0.01em;
}

p,
ul,
ol,
dl,
table {
  margin: 0 0 1em;
}

a {
  color: var(--link);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}
a:hover {
  text-decoration-thickness: 2px;
}

:focus-visible {
  outline: 3px solid var(--fokus);
  outline-offset: 3px;
  border-radius: 2px;
}
main:focus {
  outline: none;
}

strong {
  font-weight: 700;
}

.ukryte-wizualnie {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

[hidden] {
  display: none !important;
}

.przeskocz {
  position: absolute;
  left: 8px;
  top: -100px;
  z-index: 100;
  background: var(--sygnal);
  color: var(--na-sygnale);
  padding: 0.6rem 1rem;
  font-weight: 700;
}
.przeskocz:focus {
  top: 8px;
}

/* ---------- Układ ---------- */

.ramka {
  max-width: var(--ramka-max);
  margin-inline: auto;
  padding-inline: var(--margines);
}

.ramka--tekst > * {
  max-width: var(--tekst-max);
}

/* Sekcje: jedna wyśrodkowana kolumna - nagłówek nad treścią, tekst do 40rem, tabele i kartki na całą kolumnę */
.sekcja > .ramka {
  max-width: calc(var(--kolumna-max) + 2 * var(--margines));
}
.ramka--tekst > h2 {
  max-width: 24ch;
}
.ramka--tekst > h2 + p {
  font-size: 1.125em;
  color: var(--tusz-2);
  margin-bottom: 1.4rem;
}

.sekcja {
  padding-block: var(--odstep-sekcji);
  border-top: 1px solid var(--linia);
}
.sekcja--papier {
  background: var(--powierzchnia);
}
.sekcja--pierwsza {
  border-top: 0;
}

/* ---------- Pasek podglądu i nagłówek ---------- */

.pasek-podgladu {
  margin: 0;
  background: var(--tusz);
  color: var(--tlo);
  font-size: 0.8125rem;
  text-align: center;
  padding: 0.35rem var(--margines);
}

.naglowek {
  position: sticky;
  top: 0;
  z-index: 10;
  background: var(--tlo);
  border-bottom: 1px solid var(--linia);
}
@supports ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .naglowek {
    background: color-mix(in srgb, var(--tlo) 80%, transparent);
    -webkit-backdrop-filter: saturate(180%) blur(16px);
    backdrop-filter: saturate(180%) blur(16px);
  }
}
.naglowek__wnetrze {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 3.75rem;
}
.naglowek__opis {
  margin: 0;
  color: var(--tusz-2);
  font-size: 0.9375rem;
}

.znak {
  display: inline-flex;
  align-items: baseline;
  gap: 0.4rem;
  color: var(--tusz);
  text-decoration: none;
  font-size: 1.25rem;
  line-height: 1;
  white-space: nowrap;
}
.znak__tag {
  font-family: var(--font-wasko);
  font-weight: 700;
  background: var(--sygnal);
  color: var(--na-sygnale);
  padding: 0.22em 0.38em 0.16em;
  letter-spacing: 0.02em;
}
.znak__reszta {
  font-weight: 400;
}

.menu {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}
.menu__link {
  color: var(--tusz);
  text-decoration: none;
  font-size: 0.9375rem;
  padding: 0.6rem 0.15rem;
}
.menu__link:hover {
  text-decoration: underline;
}
.menu__jezyk {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.75rem;
  min-height: 2.25rem;
  padding: 0.3rem 0.65rem;
  border: 1px solid var(--linia);
  border-radius: 999px;
  color: var(--tusz);
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-decoration: none;
}
.menu__jezyk:hover {
  border-color: var(--tusz);
  text-decoration: none;
}
@media (max-width: 759px) {
  .menu {
    gap: 1rem;
  }
  .menu__link:not(.menu__link--zawsze) {
    display: none;
  }
}
/* Najwęższe telefony (360-399 px): znak, przełącznik języka i przycisk; cennik jest pod przyciskiem w nagłówku strony */
@media (max-width: 399px) {
  .menu {
    gap: 0.6rem;
  }
  .menu__link--zawsze {
    display: none;
  }
}

/* ---------- Przyciski ---------- */

.przycisk {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding: 0.7rem 1.4rem;
  border: 0;
  border-radius: 999px;
  background: var(--sygnal);
  color: var(--na-sygnale);
  font: 700 1rem/1.2 var(--font);
  letter-spacing: -0.005em;
  text-decoration: none;
  text-align: center;
  cursor: pointer;
  transition: background-color 0.15s ease, transform 0.1s ease;
}
.przycisk:hover {
  background: var(--sygnal-hover);
  text-decoration: none;
}
.przycisk:active {
  transform: scale(0.98);
}
.przycisk:disabled,
.przycisk[aria-disabled='true'] {
  opacity: 0.55;
  cursor: not-allowed;
}
.przycisk--duzy {
  min-height: 3.5rem;
  padding-inline: 1.9rem;
  font-size: 1.0625rem;
}
.przycisk--maly {
  white-space: nowrap;
  min-height: 2.5rem;
  padding: 0.45rem 0.9rem;
  font-size: 0.9375rem;
}
.przycisk--drugi {
  background: transparent;
  color: var(--tusz);
  box-shadow: inset 0 0 0 1.5px var(--linia-mocna);
}
.przycisk--drugi:hover {
  background: var(--powierzchnia);
}
.przycisk--niebezpieczny {
  background: transparent;
  color: var(--blad);
  box-shadow: inset 0 0 0 1.5px var(--blad);
}

/* ---------- Hero i kartka IBWR ---------- */

.hero {
  padding-block: 2.5rem var(--odstep-sekcji);
  overflow: hidden;
  position: relative;
  isolation: isolate;
}
/* Tło nagłówka: delikatna siatka jak papier kreślarski, wygaszana ku brzegom (tylko dekoracja) */
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image:
    linear-gradient(to right, var(--siatka) 1px, transparent 1px),
    linear-gradient(to bottom, var(--siatka) 1px, transparent 1px);
  background-size: 32px 32px;
  background-position: center top;
  -webkit-mask-image: radial-gradient(ellipse 75% 70% at 72% 42%, #000 25%, transparent 72%);
  mask-image: radial-gradient(ellipse 75% 70% at 72% 42%, #000 25%, transparent 72%);
}
.hero__siatka {
  display: grid;
  gap: 2.75rem;
}
@media (min-width: 960px) {
  .hero {
    padding-top: 4.5rem;
  }
  .hero__siatka {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
    gap: 4rem;
    align-items: center;
  }
}
.hero h1 {
  max-width: 17ch;
  margin-bottom: 0.45em;
  text-wrap: pretty;
}
@media (min-width: 960px) {
  .hero h1 {
    font-size: clamp(3rem, 5vw, 4.25rem);
  }
}
.hero__linia {
  display: block;
  text-wrap: balance;
}
.hero__lead {
  font-size: 1.125rem;
  max-width: 34rem;
  color: var(--tusz);
}
@media (min-width: 1024px) {
  .hero__lead {
    font-size: 1.25rem;
  }
}
.hero__fakty {
  list-style: none;
  padding: 0;
  margin: 1.5rem 0 2rem;
  display: grid;
  gap: 0.35rem;
  border-left: 3px solid var(--sygnal);
  padding-left: 1rem;
}
.hero__fakty strong {
  font-family: var(--font-wasko);
  font-size: 1.2em;
}
.hero__przyciski {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem 1.6rem;
}
.hero__drugi {
  color: var(--tusz);
  font-weight: 700;
  padding: 0.6rem 0;
  text-decoration-thickness: 2px;
  text-decoration-color: var(--sygnal);
  text-underline-offset: 0.3em;
}
.hero__drugi:hover {
  text-decoration-color: var(--tusz);
}
.hero__notka {
  margin: 1rem 0 0;
  max-width: 30rem;
  color: var(--tusz-2);
  font-size: 0.9375rem;
}

.arkusz {
  margin: 0;
  position: relative;
  justify-self: center;
  width: 100%;
  max-width: 30rem;
}
.arkusz__kartka {
  position: relative;
  background: var(--dok-papier);
  color: var(--dok-tusz);
  font-family: var(--font-dok);
  font-size: 0.78rem;
  line-height: 1.35;
  padding: 1.6rem 1.4rem 1.3rem;
  box-shadow: 0 1px 2px rgba(23, 33, 43, 0.1), 0 18px 40px -12px rgba(23, 33, 43, 0.28);
  transform: rotate(-1.2deg);
  border-radius: 1px;
}
@media (min-width: 480px) {
  .arkusz__kartka {
    font-size: 0.85rem;
    padding: 2rem 1.9rem 1.5rem;
  }
}
.arkusz__metryka {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  color: var(--dok-szary);
  font-size: 0.85em;
  border-bottom: 1px solid var(--dok-linia);
  padding-bottom: 0.4rem;
  margin-bottom: 1.1rem;
}
.arkusz__tytul {
  font-weight: 700;
  font-size: 1.45em;
  line-height: 1.15;
  margin-bottom: 0.3rem;
}
.arkusz__podtytul {
  color: var(--dok-szary);
  margin-bottom: 1rem;
}
.arkusz__dane,
.arkusz__podpisy {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95em;
}
.arkusz__dane th,
.arkusz__dane td {
  border: 1px solid var(--dok-linia);
  padding: 0.3rem 0.45rem;
  text-align: left;
  vertical-align: top;
}
.arkusz__dane th {
  width: 38%;
  font-weight: 700;
  background: #f1f3f5;
}
.arkusz__podpisy {
  margin-top: 0.9rem;
  table-layout: fixed;
}
.arkusz__podpisy th,
.arkusz__podpisy td {
  border: 1px solid var(--dok-linia);
  padding: 0.25rem 0.3rem;
  font-weight: 400;
  font-size: 0.85em;
  color: var(--dok-szary);
  text-align: left;
}
.arkusz__podpisy td {
  height: 2.6rem;
}
.arkusz__stopka {
  margin: 0.9rem 0 0;
  font-size: 0.72em;
  color: var(--dok-szary);
  border-top: 1px solid var(--dok-linia);
  padding-top: 0.4rem;
}
.arkusz__opis {
  margin-top: 1.1rem;
  font-size: 0.8125rem;
  color: var(--tusz-2);
  text-align: center;
}

.pieczatka {
  position: absolute;
  right: 6%;
  bottom: 17%; /* jak prawdziwa pieczątka: przy podpisach, nie na danych budowy */
  margin: 0;
  display: grid;
  justify-items: center;
  padding: 0.45rem 0.9rem 0.4rem;
  border: 3px double var(--stempel);
  border-radius: 6px;
  color: var(--stempel);
  font-family: var(--font-wasko);
  font-weight: 700;
  line-height: 1.05;
  transform: rotate(-9deg);
  mix-blend-mode: multiply;
  animation: przybicie 0.42s cubic-bezier(0.2, 0.9, 0.3, 1.25) 0.55s both;
}
.pieczatka__gora {
  font-size: 1.55rem;
  letter-spacing: 0.03em;
}
.pieczatka__dol {
  font-family: var(--font);
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
}
@keyframes przybicie {
  0% {
    opacity: 0;
    transform: rotate(-9deg) scale(1.7);
  }
  65% {
    opacity: 1;
    transform: rotate(-9deg) scale(0.95);
  }
  100% {
    opacity: 1;
    transform: rotate(-9deg) scale(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  .pieczatka {
    animation: none;
  }
}

/* ---------- Treść sekcji ---------- */

/* Kartka: treść, która jest częścią dokumentu, leży na szarym tle jak papier na biurku budowy */
.kartka {
  background: var(--powierzchnia);
  border: 1px solid var(--linia);
  border-radius: 2px;
  box-shadow: var(--kartka-cien);
  padding: clamp(1rem, 2.6vw, 1.75rem);
}
.wyroznienie {
  border-left: 3px solid var(--sygnal);
  padding-left: 1rem;
}

.powody {
  list-style: none;
  padding: 0;
}
.powody li {
  position: relative;
  padding: 0.5rem 0 0.5rem 1.9rem;
  border-bottom: 1px solid var(--linia);
}
.powody li::before {
  content: '';
  position: absolute;
  left: 0.15rem;
  top: 0.95rem;
  width: 0.85rem;
  height: 0.85rem;
  background: var(--ryz-d);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M1 1l8 8M9 1L1 9' stroke='black' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M1 1l8 8M9 1L1 9' stroke='black' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.przewijana {
  overflow-x: auto;
  margin: 1.5rem 0 1rem;
}
.przewijana.kartka {
  padding-block: 0.5rem;
}
@media (max-width: 759px) {
  .przewijana.kartka {
    padding-block: 0;
  }
}

.tabela-ryzyka {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-dok);
  font-size: 1rem;
  line-height: 1.4;
}
.tabela-ryzyka th,
.tabela-ryzyka td {
  text-align: left;
  vertical-align: top;
  padding: 0.75rem 0.8rem;
  border-bottom: 1px solid var(--linia);
}
.tabela-ryzyka thead th {
  font-family: var(--font);
  font-size: 0.875rem;
  color: var(--tusz-2);
  border-bottom: 2px solid var(--tusz);
}
.tabela-ryzyka td:first-child {
  font-weight: 700;
  width: 24%;
}
.tabela-ryzyka td:nth-child(3) {
  width: 46%;
}
@media (max-width: 759px) {
  .tabela-ryzyka thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
  }
  .tabela-ryzyka,
  .tabela-ryzyka tbody {
    display: block;
  }
  .tabela-ryzyka tr {
    display: grid;
    grid-template-columns: auto auto 1fr;
    grid-template-areas:
      'zag zag zag'
      'przed po kto'
      'srodki srodki srodki';
    gap: 0.45rem 0.6rem;
    align-items: center;
    padding: 1rem 0;
    border-bottom: 1px solid var(--linia);
  }
  .tabela-ryzyka td {
    display: block;
    padding: 0;
    border: 0;
    width: auto !important;
  }
  .tabela-ryzyka td:nth-child(1) {
    grid-area: zag;
  }
  .tabela-ryzyka td:nth-child(2) {
    grid-area: przed;
  }
  .tabela-ryzyka td:nth-child(3) {
    grid-area: srodki;
  }
  .tabela-ryzyka td:nth-child(4) {
    grid-area: po;
  }
  .tabela-ryzyka td:nth-child(5) {
    grid-area: kto;
    justify-self: end;
    color: var(--tusz-2);
    font-size: 0.9375rem;
  }
  .tabela-ryzyka td:nth-child(2)::before {
    content: 'przed ';
    font-family: var(--font);
    font-size: 0.8125rem;
    color: var(--tusz-2);
  }
  .tabela-ryzyka td:nth-child(4)::before {
    content: 'po ';
    font-family: var(--font);
    font-size: 0.8125rem;
    color: var(--tusz-2);
  }
}

.ryzyko {
  display: inline-block;
  min-width: 2.6em;
  padding: 0.12em 0.45em 0.08em;
  border-radius: 2px;
  font-family: var(--font-wasko);
  font-weight: 700;
  font-size: 0.95em;
  text-align: center;
  white-space: nowrap;
}
.ryzyko--m {
  background: var(--ryz-m-tlo);
  color: var(--ryz-m);
}
.ryzyko--s {
  background: var(--ryz-s-tlo);
  color: var(--ryz-s);
}
.ryzyko--d {
  background: var(--ryz-d-tlo);
  color: var(--ryz-d);
}
.legenda {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 1.5rem;
  font-size: 0.9375rem;
  color: var(--tusz-2);
}

.kroki {
  list-style: none;
  padding: 0;
  counter-reset: krok;
}
/* Kroki jako oś: numer w kółku, cienka linia łączy etapy */
.kroki li {
  counter-increment: krok;
  position: relative;
  padding: 0.35rem 0 1.9rem 3.75rem;
}
.kroki li:last-child {
  padding-bottom: 0.35rem;
}
.kroki li::before {
  content: counter(krok);
  position: absolute;
  left: 0;
  top: 0;
  width: 2.5rem;
  height: 2.5rem;
  display: grid;
  place-items: center;
  border: 1.5px solid var(--tusz);
  border-radius: 50%;
  background: var(--powierzchnia);
  font-family: var(--font-wasko);
  font-weight: 700;
  font-size: 1.125rem;
  line-height: 1;
  color: var(--tusz);
}
.kroki li:not(:last-child)::after {
  content: '';
  position: absolute;
  left: calc(1.25rem - 0.75px);
  top: 2.85rem;
  bottom: 0.35rem;
  width: 1.5px;
  background: var(--linia-mocna);
}
.kroki h3 {
  margin-bottom: 0.25em;
}
.kroki p {
  margin: 0;
  color: var(--tusz-2);
}
.spis {
  font-family: var(--font-dok);
  margin-bottom: 1.5rem;
}
.spis.kartka {
  padding-block: 1rem 0.5rem;
}
.spis__lista li:last-child {
  border-bottom: 0;
}
.spis__wstep {
  color: var(--tusz-2);
  border-bottom: 1px solid var(--linia);
  padding-bottom: 0.6rem;
  margin-bottom: 0;
}
.spis__lista {
  list-style: none;
  padding: 0;
  margin: 0;
}
.spis__lista li {
  display: grid;
  grid-template-columns: 3rem 1fr;
  padding: 0.55rem 0;
  border-bottom: 1px solid var(--linia);
}
.spis__nr {
  font-weight: 700;
}

.roboty {
  list-style: none;
  padding: 0;
  display: grid;
  gap: 0.6rem;
}
@media (min-width: 640px) {
  .roboty {
    grid-template-columns: 1fr 1fr;
  }
}
.roboty li {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  padding: 0.75rem 1rem;
  border: 1px solid var(--linia);
  border-radius: 12px;
  background: var(--powierzchnia);
  line-height: 1.4;
}
/* Ikony rodzajów robót: cienka linia jak na rysunku technicznym, kolor pieczątki */
.roboty__ikona {
  flex: none;
  width: 1.75rem;
  height: 1.75rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  color: var(--link);
}

/* Cennik i porównanie */
.cennik,
.porownanie {
  width: 100%;
  border-collapse: collapse;
  margin: 1.5rem 0 2rem;
}
.cennik th,
.cennik td,
.porownanie th,
.porownanie td {
  text-align: left;
  vertical-align: top;
  padding: 0.95rem 1rem 0.95rem 0;
  border-bottom: 1px solid var(--linia);
}
.cennik thead th,
.porownanie thead th {
  font-size: 0.875rem;
  color: var(--tusz-2);
  font-weight: 700;
  border-bottom: 2px solid var(--tusz);
}
.cennik tbody th {
  font-family: var(--font-wasko);
  font-size: 1.35rem;
  width: 22%;
}
.cennik td:nth-child(2) {
  width: 22%;
  white-space: nowrap;
}
.cennik td strong {
  font-family: var(--font-wasko);
  font-size: 1.6rem;
  line-height: 1.15;
  display: block;
}
.cennik tbody tr:last-child th,
.cennik tbody tr:last-child td {
  border-bottom: 0;
}
.kartka--cennik {
  margin: 1.5rem 0;
}
.kartka--cennik .cennik {
  margin: 0;
}
.cennik__dopisek {
  margin: 0.75rem 0 0;
  padding-top: 0.75rem;
  border-top: 1px solid var(--linia);
  font-size: 0.9375rem;
  color: var(--tusz-2);
}
.oferta-startowa {
  background: var(--uwaga-tlo);
  border-left: 4px solid var(--sygnal);
  padding: 0.9rem 1.1rem;
}
.cena-brutto {
  display: block;
  font-size: 0.875rem;
  color: var(--tusz-2);
}
.cennik__podtytul {
  margin: 0 0 0.25rem;
  font-family: var(--font-wasko);
  font-size: 1.35rem;
}
.cennik__uwagi {
  margin-top: 1.5rem;
}
.cennik__uwagi p {
  margin: 0 0 0.6rem;
}
.porownanie tbody th {
  font-weight: 700;
  width: 22%;
}
.porownanie__nasze {
  font-weight: 700;
}
th.porownanie__nasze {
  color: var(--tusz);
}
td.porownanie__nasze {
  box-shadow: inset 3px 0 0 var(--sygnal);
  padding-left: 0.9rem;
}
.przypis {
  font-size: 0.875rem;
  color: var(--tusz-2);
}
@media (max-width: 719px) {
  .cennik thead,
  .porownanie thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
  }
  .cennik,
  .cennik tbody,
  .cennik tr,
  .porownanie,
  .porownanie tbody,
  .porownanie tr {
    display: block;
  }
  .cennik tr {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.2rem 1rem;
    padding: 1rem 0;
    border-bottom: 1px solid var(--linia);
  }
  .cennik th,
  .cennik td {
    display: block;
    padding: 0;
    border: 0;
    width: auto !important;
  }
  .cennik td:nth-child(2) {
    text-align: right;
  }
  .cennik td:nth-child(3) {
    grid-column: 1 / -1;
    color: var(--tusz-2);
  }
  .porownanie tr {
    padding: 1rem 0;
    border-bottom: 1px solid var(--linia);
  }
  .porownanie th,
  .porownanie td {
    display: block;
    padding: 0.15rem 0;
    border: 0;
    width: auto !important;
  }
  .porownanie tbody th {
    font-family: var(--font-wasko);
    font-size: 1.25rem;
    margin-bottom: 0.3rem;
  }
  .porownanie td::before {
    content: attr(data-etykieta) ': ';
    color: var(--tusz-2);
    font-weight: 400;
  }
  td.porownanie__nasze {
    padding-left: 0.6rem;
    margin-top: 0.2rem;
  }
}

.odpowiedzialnosc {
  display: grid;
  grid-template-columns: 3rem 1fr;
  gap: 0;
}
.odpowiedzialnosc dt,
.odpowiedzialnosc dd {
  margin: 0;
  padding: 0.7rem 0;
  border-bottom: 1px solid var(--linia);
}
.odpowiedzialnosc dt {
  font-family: var(--font-wasko);
  font-weight: 700;
  font-size: 1.1rem;
}

.pytania details {
  border-bottom: 1px solid var(--linia);
}
.pytania details:first-child {
  border-top: 1px solid var(--linia);
}
.pytania summary {
  cursor: pointer;
  padding: 1.05rem 2.4rem 1.05rem 0;
  font-weight: 700;
  list-style: none;
  position: relative;
}
.pytania summary:hover {
  color: var(--link);
}
.pytania summary::-webkit-details-marker {
  display: none;
}
.pytania summary::after {
  content: '';
  position: absolute;
  right: 0.45rem;
  top: 1.35rem;
  width: 0.6rem;
  height: 0.6rem;
  border-right: 2px solid var(--tusz-2);
  border-bottom: 2px solid var(--tusz-2);
  transform: rotate(45deg);
  transition: transform 0.2s ease;
}
.pytania details[open] summary::after {
  transform: translateY(0.25rem) rotate(-135deg);
}
@media (prefers-reduced-motion: reduce) {
  .pytania summary::after,
  .przycisk {
    transition: none;
  }
}
.pytania details p {
  margin: 0 0 1.1rem;
  color: var(--tusz-2);
}

/* ---------- Formularze ---------- */

.sekcja--zapis {
  background: var(--tlo);
}
.formularz {
  margin-top: 1.5rem;
}
.formularz .siatka-pol--2 {
  align-items: end;
}
@media (max-width: 639px) {
  .formularz .przycisk--duzy {
    width: 100%;
  }
}
.pole {
  margin: 0 0 1.25rem;
  padding: 0;
  border: 0;
  min-width: 0;
}
.pole > label:not(.wybor):not(.plan-wybor),
.pole legend,
.pole__etykieta {
  display: block;
  font-weight: 700;
  margin-bottom: 0.35rem;
  padding: 0;
}
.opcjonalne {
  font-weight: 400;
  color: var(--tusz-2);
}
.pole__pomoc {
  margin: 0.3rem 0 0;
  font-size: 0.875rem;
  color: var(--tusz-2);
}
input[type='text'],
input[type='email'],
input[type='tel'],
input[type='number'],
input[type='date'],
input[type='password'],
select,
textarea {
  width: 100%;
  min-height: 3rem;
  padding: 0.6rem 0.85rem;
  border: 1.5px solid var(--linia-mocna);
  border-radius: 10px;
  background: var(--pole-tlo);
  color: var(--tusz);
  font: inherit;
  font-size: 1rem;
}
textarea {
  min-height: 6rem;
  resize: vertical;
}
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--fokus);
  outline-offset: 1px;
  border-color: var(--tusz);
}
[aria-invalid='true'] {
  border-color: var(--blad) !important;
}
.pole__blad {
  margin: 0.35rem 0 0;
  color: var(--blad);
  font-size: 0.9375rem;
  font-weight: 700;
}
.wybor {
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
  padding: 0.45rem 0;
  font-weight: 400;
  cursor: pointer;
}
.wybor input,
.pole--zgoda input {
  flex: none;
  width: 1.25rem;
  height: 1.25rem;
  margin: 0.15rem 0 0;
  accent-color: var(--tusz);
}
.pole--zgoda {
  display: grid;
  grid-template-columns: 1.25rem 1fr;
  gap: 0.65rem;
  align-items: start;
}
.pole.pole--zgoda > label:not(.wybor):not(.plan-wybor) {
  font-weight: 400;
  margin: 0;
}
/* Wybór planu na liście: całe pole jest klikalne, jak w formularzu zamówienia */
.pole--grupa .wybor {
  align-items: flex-start;
  padding: 0.8rem 0.95rem;
  margin-bottom: 0.5rem;
  border: 1.5px solid var(--linia);
  border-radius: 12px;
  background: var(--pole-tlo);
}
.pole--grupa .wybor:hover {
  border-color: var(--linia-mocna);
}
.pole--grupa .wybor:has(input:checked) {
  border-color: var(--tusz);
  box-shadow: inset 4px 0 0 var(--sygnal);
}
.pole--zgoda .pole__blad {
  grid-column: 2;
}
.formularz__rodo {
  font-size: 0.875rem;
  color: var(--tusz-2);
}
.formularz__akceptacja {
  font-size: 0.9375rem;
  margin-bottom: 0.75rem;
}
.formularz__komunikat {
  margin-top: 1rem;
  font-weight: 700;
}
.formularz__komunikat:empty {
  display: none;
}
.formularz__komunikat.blad {
  color: var(--blad);
}
.ukryte-pole {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.podziekowanie {
  margin-top: 1.5rem;
  padding: 1.25rem 1.25rem 0.5rem;
  border-left: 4px solid var(--ok);
  background: var(--ok-tlo);
}
.podziekowanie:focus {
  outline: none;
}

/* Ankieta po potwierdzeniu zapisu */
.ankieta {
  margin-top: 2.5rem;
  padding-top: 1.5rem;
  border-top: 2px solid var(--tusz);
}
.ankieta:focus {
  outline: none;
}

/* Cennik: zapis z wybranym planem */
.cennik__wybor {
  display: flex;
  align-items: center;
  width: fit-content;
  min-height: 2.75rem;
  margin-top: 0.6rem;
  padding: 0.45rem 1.1rem;
  border: 1.5px solid var(--tusz);
  border-radius: 999px;
  color: var(--tusz);
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
}
.cennik__wybor:hover {
  background: var(--sygnal);
  border-color: var(--sygnal);
  color: var(--na-sygnale);
  text-decoration: none;
}

/* Pasek z przyciskiem zapisu - tylko wąskie ekrany, pokazuje go skrypt */
.pasek-zapisu {
  position: fixed;
  left: var(--margines);
  right: var(--margines);
  bottom: calc(12px + env(safe-area-inset-bottom, 0px));
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 3.25rem;
  padding: 0.7rem 1rem;
  border-radius: 999px;
  background: var(--sygnal);
  color: var(--na-sygnale);
  font: 700 1rem/1.2 var(--font);
  text-align: center;
  text-decoration: none;
  box-shadow: 0 8px 24px -8px rgba(23, 33, 43, 0.45);
}
.pasek-zapisu:hover {
  background: var(--sygnal-hover);
  text-decoration: none;
}
.pasek-zapisu[hidden] {
  display: none;
}
body.z-paskiem {
  padding-bottom: 5rem;
}
@media (min-width: 760px) {
  .pasek-zapisu {
    display: none;
  }
  body.z-paskiem {
    padding-bottom: 0;
  }
}

/* Formularz zamówienia */
.formularz--zamowienie fieldset {
  border: 0;
  border-top: 2px solid var(--tusz);
  margin: 0 0 2rem;
  padding: 1rem 0 0;
  min-width: 0;
}
.formularz--zamowienie fieldset > legend {
  font-family: var(--font-wasko);
  font-size: 1.5rem;
  font-weight: 700;
  padding: 0;
  float: left;
  width: 100%;
  margin-bottom: 1rem;
}
.formularz--zamowienie fieldset > legend + * {
  clear: both;
}
.formularz--zamowienie fieldset fieldset {
  border: 0;
  padding: 0;
  margin: 0 0 1.25rem;
}
.formularz--zamowienie fieldset fieldset > legend,
.pole--grupa > legend {
  font-family: var(--font);
  font-size: 1rem;
  font-weight: 700;
  float: none;
  width: auto;
  margin-bottom: 0.35rem;
}
.siatka-pol {
  display: grid;
  gap: 0 1rem;
}
@media (min-width: 640px) {
  .siatka-pol--2 {
    grid-template-columns: 1fr 1fr;
  }
  .siatka-pol--kod {
    grid-template-columns: 9rem 1fr;
  }
}
.plan-wybor {
  display: grid;
  grid-template-columns: 1.25rem 1fr auto;
  gap: 0.15rem 0.75rem;
  padding: 0.9rem 0.9rem;
  border: 1.5px solid var(--linia);
  border-radius: 3px;
  margin-bottom: 0.6rem;
  cursor: pointer;
  background: var(--pole-tlo);
}
.plan-wybor:has(input:checked) {
  border-color: var(--tusz);
  box-shadow: inset 4px 0 0 var(--sygnal);
}
.plan-wybor input {
  width: 1.2rem;
  height: 1.2rem;
  margin: 0.2rem 0 0;
  accent-color: var(--tusz);
}
.plan-wybor__nazwa {
  font-weight: 700;
}
.plan-wybor__cena {
  font-family: var(--font-wasko);
  font-weight: 700;
  font-size: 1.15rem;
  white-space: nowrap;
}
.plan-wybor__opis {
  grid-column: 2 / -1;
  font-size: 0.9375rem;
  color: var(--tusz-2);
}
.kolumny-wyboru {
  display: grid;
  gap: 0 1.5rem;
}
@media (min-width: 720px) {
  .kolumny-wyboru {
    grid-template-columns: 1fr 1fr;
  }
}
.szczegoly {
  border-top: 2px solid var(--tusz);
  margin: 0 0 2rem;
  padding-top: 1rem;
}
.szczegoly > summary {
  cursor: pointer;
  font-family: var(--font-wasko);
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 1rem;
}
.podsumowanie {
  border-top: 2px solid var(--tusz);
  padding: 1rem 0 0.5rem;
  margin-bottom: 1rem;
}
.podsumowanie p {
  margin: 0 0 0.25rem;
}
.podsumowanie__kwota {
  font-family: var(--font-wasko);
  font-weight: 700;
  font-size: 2rem;
  line-height: 1.1;
}
.podsumowanie__szczegoly,
.podsumowanie__kod {
  color: var(--tusz-2);
  font-size: 0.9375rem;
}
.komunikat {
  padding: 0.9rem 1rem;
  border-left: 4px solid;
  margin: 1rem 0 1.5rem;
}
.komunikat--test {
  border-color: var(--sygnal);
  background: var(--uwaga-tlo);
}
.komunikat--blad {
  border-color: var(--blad);
  background: var(--blad-tlo);
}
.komunikat--ok {
  border-color: var(--ok);
  background: var(--ok-tlo);
}
.podsumowanie-bledow {
  border: 2px solid var(--blad);
  padding: 1rem 1.1rem 0.4rem;
  margin: 1rem 0 1.5rem;
  background: var(--blad-tlo);
}
.podsumowanie-bledow h2 {
  font-size: 1.35rem;
}
.podsumowanie-bledow a {
  color: var(--blad);
  font-weight: 700;
}

/* Strony tekstowe (polityka, zasady, regulamin) */
.dokument h2 {
  font-size: 1.6rem;
  margin-top: 2rem;
}
.dokument h3 {
  margin-top: 1.5rem;
}
.dokument li {
  margin-bottom: 0.4rem;
}
.dokument .wersja {
  color: var(--tusz-2);
  font-size: 0.9375rem;
}
.wstep {
  font-size: 1.125rem;
}
.podtytul-strony {
  font-size: 1.6rem;
  margin-top: 2rem;
}
@media (min-width: 1024px) {
  .ramka--tekst > .podtytul-strony {
    grid-column: 2;
    grid-row: auto;
  }
}
.lista-zwykla li {
  margin-bottom: 0.35rem;
}

/* ---------- Stopka ---------- */

.stopka {
  border-top: 2px solid var(--tusz);
  padding-block: 2.5rem 3rem;
  font-size: 0.9375rem;
  color: var(--tusz-2);
}
.stopka__wnetrze {
  display: grid;
  gap: 1.5rem;
}
@media (min-width: 760px) {
  .stopka__wnetrze {
    grid-template-columns: 1fr auto;
  }
  .stopka__notka {
    grid-column: 1 / -1;
  }
}
.stopka p {
  margin: 0 0 0.3rem;
}
.stopka__marka {
  font-weight: 700;
  color: var(--tusz);
}
.stopka__linki {
  display: grid;
  gap: 0.4rem;
  align-content: start;
}
.stopka a {
  color: var(--tusz-2);
}

/* ---------- Styl Apple (21.10.2026): warstwa nadpisująca komponenty strony ---------- */

body {
  font-size: 1.0625rem;
  line-height: 1.47;
  letter-spacing: -0.012em;
}
@media (min-width: 1024px) {
  body {
    font-size: 1.0625rem;
  }
}
h1,
h2,
h3 {
  font-weight: 600;
}
h1 {
  font-size: clamp(2.5rem, 7vw, 4.5rem);
  line-height: 1.05;
  letter-spacing: -0.03em;
}
h2 {
  font-size: clamp(2rem, 4.6vw, 3rem);
  line-height: 1.08;
  letter-spacing: -0.025em;
}
h3 {
  font-size: 1.1875rem;
  letter-spacing: -0.015em;
}
a {
  text-decoration: none;
}
a:hover {
  text-decoration: underline;
  text-decoration-thickness: 1px;
}
:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--fokus) 55%, transparent);
  outline-offset: 2px;
  border-radius: 6px;
}

/* Sekcje: bez linii, naprzemiennie biel i jasna szarość; nagłówki i wstęp wyśrodkowane */
.sekcja {
  border-top: 0;
}
.sekcja--papier {
  background: var(--tlo-2);
}
.ramka--tekst > * {
  margin-inline: auto;
}
.ramka--tekst > h2 {
  max-width: 20ch;
  text-align: center;
}
.ramka--tekst > h2 + p {
  text-align: center;
  font-size: 1.1875rem;
  line-height: 1.42;
  color: var(--tusz-2);
  margin-bottom: 2rem;
}

/* Nagłówek strony: cienki, półprzezroczysty, znak bez żółtego pola */
.naglowek {
  border-bottom: 1px solid color-mix(in srgb, var(--tusz) 10%, transparent);
}
.naglowek__wnetrze {
  min-height: 3.25rem;
}
.znak {
  font-size: 1.125rem;
  gap: 0.3rem;
}
.znak__tag {
  background: none;
  color: var(--tusz);
  padding: 0;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.znak__reszta {
  color: var(--tusz-2);
}
.menu__link {
  font-size: 0.875rem;
  color: color-mix(in srgb, var(--tusz) 80%, transparent);
}
.menu__link:hover {
  color: var(--tusz);
  text-decoration: none;
}
.menu__jezyk {
  font-size: 0.75rem;
  min-height: 2rem;
  min-width: 2.5rem;
  border-color: var(--linia);
  color: var(--tusz-2);
}

/* Przyciski: niebieska pigułka, zwykła grubość pisma */
.przycisk {
  min-height: 2.75rem;
  padding: 0.7rem 1.35rem;
  border-radius: 980px;
  background: var(--sygnal);
  color: var(--na-sygnale);
  font: 400 1.0625rem/1.2 var(--font);
  letter-spacing: -0.01em;
}
.przycisk:hover {
  background: var(--sygnal-hover);
}
.przycisk--duzy {
  min-height: 3.25rem;
  padding: 0.85rem 1.7rem;
  font-size: 1.0625rem;
}
.przycisk--maly {
  min-height: 2.25rem;
  padding: 0.35rem 0.95rem;
  font-size: 0.875rem;
}
.przycisk--drugi {
  background: transparent;
  color: var(--link);
  box-shadow: inset 0 0 0 1px var(--sygnal);
}
.przycisk--drugi:hover {
  background: color-mix(in srgb, var(--sygnal) 8%, transparent);
}

/* Hero: wszystko wyśrodkowane, kartka dokumentu pod tekstem jak zdjęcie produktu */
.hero {
  padding-block: 3rem 4rem;
  text-align: center;
}
.hero::before {
  display: none;
}
.hero__siatka {
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  gap: 3rem;
}
@media (min-width: 960px) {
  .hero {
    padding-top: 4.5rem;
  }
  .hero__siatka {
    grid-template-columns: minmax(0, 1fr);
    gap: 3.5rem;
  }
  .hero h1 {
    font-size: clamp(3.5rem, 6.2vw, 5rem);
  }
}
.hero h1 {
  max-width: 14ch;
  margin-inline: auto;
}
.hero__lead {
  max-width: 38rem;
  margin-inline: auto;
  font-size: 1.1875rem;
  line-height: 1.42;
  color: var(--tusz-2);
}
@media (min-width: 1024px) {
  .hero__lead {
    font-size: 1.3125rem;
  }
}
.hero__fakty {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.5rem 1.75rem;
  margin: 1.5rem 0 2rem;
  padding: 0;
  border: 0;
  color: var(--tusz-2);
}
.hero__fakty strong {
  color: var(--tusz);
  font-weight: 600;
  font-size: 1.05em;
}
.hero__przyciski {
  justify-content: center;
  gap: 0.75rem 1.75rem;
}
.hero__drugi {
  color: var(--link);
  font-weight: 400;
  text-decoration: none;
}
.hero__drugi::after {
  content: ' \203A';
}
.hero__drugi:hover {
  text-decoration: underline;
}
.hero__notka {
  max-width: 34rem;
  margin: 1.25rem auto 0;
  font-size: 0.875rem;
}
.arkusz {
  max-width: 34rem;
}
.arkusz__kartka {
  transform: none;
  border-radius: 10px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06), 0 40px 80px -30px rgba(0, 0, 0, 0.35);
  text-align: left;
}

/* Kafelki i karty */
.kartka {
  border: 0;
  border-radius: var(--promien);
  box-shadow: var(--kartka-cien);
}
.sekcja:not(.sekcja--papier) .kartka {
  background: var(--tlo-2);
  box-shadow: none;
}
.wyroznienie {
  border: 0;
  padding: 1.25rem 1.5rem;
  border-radius: var(--promien);
  background: var(--powierzchnia);
  text-align: center;
}
.sekcja:not(.sekcja--papier) .wyroznienie {
  background: var(--tlo-2);
}

/* Powody odrzucenia: dwie kolumny na komputerze, bez linii */
.powody {
  display: grid;
  gap: 0.25rem 2rem;
}
@media (min-width: 760px) {
  .ramka--tekst > .powody {
    max-width: var(--kolumna-max);
    grid-template-columns: 1fr 1fr;
  }
}
.powody li {
  border-bottom: 0;
  padding: 0.45rem 0 0.45rem 1.7rem;
}
.powody li::before {
  top: 0.85rem;
  width: 0.75rem;
  height: 0.75rem;
}

/* "Pokaż więcej": zwinięte szczegóły, wyśrodkowany link z chevronem */
.wiecej {
  margin: 1.5rem auto;
}
.wiecej > summary {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  width: fit-content;
  margin-inline: auto;
  padding: 0.6rem 1.2rem;
  border-radius: 980px;
  color: var(--link);
  font-size: 1.0625rem;
  cursor: pointer;
  list-style: none;
}
.wiecej > summary::-webkit-details-marker {
  display: none;
}
.wiecej > summary::after {
  content: '';
  width: 0.5rem;
  height: 0.5rem;
  margin-top: -0.25rem;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  transition: transform 0.2s ease;
}
.wiecej[open] > summary::after {
  margin-top: 0.2rem;
  transform: rotate(-135deg);
}
.wiecej > summary:hover {
  background: color-mix(in srgb, var(--sygnal) 8%, transparent);
}
.wiecej[open] > summary {
  margin-bottom: 1rem;
}
.ramka--tekst > .wiecej {
  max-width: var(--kolumna-max);
}
@media (prefers-reduced-motion: reduce) {
  .wiecej > summary::after {
    transition: none;
  }
}

/* Ocena ryzyka i spis: spokojne linie */
.tabela-ryzyka thead th {
  border-bottom: 1px solid var(--linia);
  font-weight: 600;
}
.tabela-ryzyka th,
.tabela-ryzyka td {
  border-bottom-color: var(--linia);
}
.ryzyko {
  border-radius: 6px;
}
.legenda {
  justify-content: center;
}

/* Kroki: oś z numerami w kołach */
.kroki li::before {
  border: 0;
  background: var(--powierzchnia);
  color: var(--sygnal);
  font-weight: 600;
  box-shadow: inset 0 0 0 1px var(--linia);
}
.kroki li:not(:last-child)::after {
  background: var(--linia);
}
.kroki h3 {
  font-size: 1.1875rem;
}

/* Rodzaje robót: kafelki z ikoną nad podpisem */
.ramka--tekst > .roboty {
  max-width: var(--kolumna-max);
}
.roboty {
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}
@media (min-width: 900px) {
  .roboty {
    grid-template-columns: repeat(4, 1fr);
  }
}
.roboty li {
  flex-direction: column;
  align-items: flex-start;
  gap: 0.6rem;
  padding: 1.1rem 1.1rem 1.2rem;
  border: 0;
  border-radius: var(--promien);
  background: var(--powierzchnia);
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.3;
}
.roboty__ikona {
  width: 2rem;
  height: 2rem;
  stroke-width: 1.5;
  color: var(--sygnal);
}
.ramka--tekst > .roboty + p {
  text-align: center;
  color: var(--tusz-2);
}

/* Cennik: karty planów (pełne tabele w "Pokaż więcej") */
.plany {
  list-style: none;
  padding: 0;
  margin: 0 0 1rem;
  display: grid;
  gap: 1rem;
}
@media (min-width: 640px) {
  .plany {
    grid-template-columns: 1fr 1fr;
  }
}
@media (min-width: 1024px) {
  .plany {
    grid-template-columns: repeat(4, 1fr);
  }
}
.plan {
  display: flex;
  flex-direction: column;
  padding: 1.5rem 1.4rem 1.4rem;
  border-radius: var(--promien);
  background: var(--tlo-2);
}
.sekcja--papier .plan {
  background: var(--powierzchnia);
}
.plan__nazwa {
  margin: 0 0 0.75rem;
  font-size: 1.3125rem;
}
.plan__cena {
  margin: 0;
  font-size: 1rem;
  color: var(--tusz-2);
}
.plan__cena strong {
  font-family: var(--font-wasko);
  font-size: 2rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--tusz);
}
.plan__brutto {
  margin: 0 0 0.9rem;
  font-size: 0.875rem;
  color: var(--tusz-2);
}
.plan__opis {
  margin: 0 0 1.1rem;
  font-size: 0.9375rem;
  line-height: 1.4;
  color: var(--tusz-2);
}
.plan__wybor {
  margin-top: auto;
  color: var(--link);
  font-size: 0.9375rem;
}
.plan__wybor::after {
  content: ' \203A';
}
.cennik thead th,
.porownanie thead th {
  border-bottom: 1px solid var(--linia);
  font-weight: 600;
}
.cennik tbody th,
.cennik td strong,
.cennik__podtytul {
  font-weight: 600;
}
.cennik__wybor {
  border: 1px solid var(--sygnal);
  color: var(--link);
  font-weight: 400;
}
.cennik__wybor:hover {
  background: var(--sygnal);
  color: var(--na-sygnale);
}
.oferta-startowa {
  max-width: 40rem;
  margin-inline: auto;
  border: 0;
  border-radius: var(--promien);
  background: var(--tlo-2);
  padding: 1.1rem 1.4rem;
  text-align: center;
}
.sekcja--papier .oferta-startowa {
  background: var(--powierzchnia);
}
.cennik__uwagi {
  margin-top: 1rem;
}
td.porownanie__nasze {
  box-shadow: inset 2px 0 0 var(--sygnal);
}

/* Kto za co odpowiada i pytania */
.odpowiedzialnosc dt {
  font-weight: 600;
  color: var(--sygnal);
}
.pytania summary {
  font-weight: 600;
}
.pytania summary:hover {
  color: var(--tusz);
}
.pytania summary::after {
  border-color: var(--tusz-2);
  border-width: 0 1.5px 1.5px 0;
}

/* Formularz: zaokrąglone pola, niebieski fokus */
input[type='text'],
input[type='email'],
input[type='tel'],
input[type='number'],
input[type='date'],
input[type='password'],
select,
textarea {
  border: 1px solid var(--linia-mocna);
  border-radius: var(--promien-maly);
  min-height: 3.25rem;
  padding: 0.75rem 1rem;
  font-size: 1.0625rem;
}
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 4px solid color-mix(in srgb, var(--fokus) 35%, transparent);
  outline-offset: 0;
  border-color: var(--fokus);
}
.pole > label:not(.wybor):not(.plan-wybor),
.pole legend,
.pole__etykieta {
  font-weight: 600;
}
.wybor input,
.pole--zgoda input,
.plan-wybor input {
  accent-color: var(--sygnal);
}
.pole--grupa .wybor {
  border: 1px solid var(--linia);
}
.pole--grupa .wybor:has(input:checked) {
  border-color: var(--sygnal);
  box-shadow: inset 0 0 0 1px var(--sygnal);
}
.podziekowanie {
  border-left: 0;
  border-radius: var(--promien);
}
.pasek-zapisu {
  font-weight: 400;
  box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.45);
}

/* Stopka: drobny szary tekst na jasnej szarości */
.stopka {
  border-top: 0;
  background: var(--tlo-2);
  font-size: 0.8125rem;
  line-height: 1.45;
}
.stopka__marka {
  font-weight: 600;
}
.stopka a:hover {
  color: var(--tusz);
}

/* Pasek podglądu (tylko wersje robocze) */
.pasek-podgladu {
  background: var(--tusz);
  color: var(--tlo);
}

/* ---------- Styl Apple, iteracja 2 (21.10.2026, Fable) ---------- */

/* Kto za co odpowiada: trzy kafelki zamiast listy definicji */
.odpowiedzialnosc {
  display: grid;
  gap: 0.75rem;
  margin: 1.5rem auto;
  max-width: var(--kolumna-max);
}
@media (min-width: 760px) {
  .odpowiedzialnosc {
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
  }
}
.odpowiedzialnosc dt,
.odpowiedzialnosc dd {
  margin: 0;
  padding: 0;
  border: 0;
}
.odpowiedzialnosc dt {
  padding: 1.25rem 1.25rem 0.25rem;
  border-radius: var(--promien) var(--promien) 0 0;
  background: var(--tlo-2);
  font-size: 1.1875rem;
  font-weight: 600;
  color: var(--tusz);
}
.sekcja--papier .odpowiedzialnosc dt,
.sekcja--papier .odpowiedzialnosc dd {
  background: var(--powierzchnia);
}
.odpowiedzialnosc dd {
  padding: 0 1.25rem 1.25rem;
  border-radius: 0 0 var(--promien) var(--promien);
  background: var(--tlo-2);
  font-size: 0.9375rem;
  line-height: 1.45;
  color: var(--tusz-2);
}
@media (min-width: 760px) {
  .odpowiedzialnosc dt {
    grid-row: 1;
  }
  .odpowiedzialnosc dd {
    grid-row: 2;
  }
}
.odpowiedzialnosc dt::before {
  content: '';
  display: block;
  width: 2rem;
  height: 3px;
  margin-bottom: 0.75rem;
  border-radius: 2px;
  background: var(--sygnal);
}
.ramka--tekst > .odpowiedzialnosc + p {
  text-align: center;
  font-size: 0.9375rem;
  color: var(--tusz-2);
}

/* Fakty w hero jako pigułki */
.hero__fakty > * {
  padding: 0.4rem 0.9rem;
  border-radius: 980px;
  background: var(--tlo-2);
  font-size: 0.9375rem;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme='light']) .hero__fakty > * {
    background: var(--powierzchnia);
  }
}

/* Pytania: szersze odstępy, spokojniejszy chevron */
.pytania {
  max-width: var(--kolumna-max);
  margin-inline: auto;
}
.pytania summary {
  padding-block: 1.1rem;
  font-size: 1.0625rem;
}
.pytania details p {
  color: var(--tusz-2);
  padding-bottom: 1.1rem;
}

/* Formularz zapisu: karta z większym oddechem */
.formularz.kartka {
  padding: 1.75rem 1.25rem 2rem;
  max-width: 40rem;
  margin-inline: auto;
}
@media (min-width: 640px) {
  .formularz.kartka {
    padding: 2.25rem 2.25rem 2.5rem;
  }
}
.formularz .pole + .pole,
.formularz .siatka-pol + .pole,
.formularz .pole + .siatka-pol,
.formularz .pole + fieldset,
.formularz fieldset + .pole {
  margin-top: 1.1rem;
}
.formularz__rodo,
.formularz__akceptacja {
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--tusz-2);
}
.formularz .przycisk--duzy {
  width: 100%;
  margin-top: 1.25rem;
}
@media (min-width: 640px) {
  .formularz .przycisk--duzy {
    width: auto;
    min-width: 16rem;
  }
}
.opcjonalne {
  font-weight: 400;
  color: var(--tusz-2);
}

/* Drobny druk pod listami i tabelami */
.drobne {
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--tusz-2);
}
.ramka--tekst > .drobne {
  max-width: var(--kolumna-max);
  text-align: center;
}

/* Powody odrzucenia: kafelki na komputerze */
@media (min-width: 760px) {
  .powody li {
    padding: 0.75rem 1rem 0.75rem 2.4rem;
    border-radius: var(--promien-maly);
    background: var(--powierzchnia);
  }
  .powody li::before {
    left: 1rem;
    top: 1.1rem;
  }
  .sekcja:not(.sekcja--papier) .powody li {
    background: var(--tlo-2);
  }
}

/* ---------- Krótsza strona główna (21.10.2026, Fable): zalety, kroki w rzędzie, linki "więcej", podstrony ---------- */

/* Trzy zalety jako kafelki */
.zalety {
  list-style: none;
  margin: 1.5rem auto 1rem;
  padding: 0;
  display: grid;
  gap: 0.75rem;
  max-width: var(--kolumna-max);
}
@media (min-width: 760px) {
  .zalety {
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
  }
}
.zaleta {
  padding: 1.4rem 1.35rem 1.5rem;
  border-radius: var(--promien);
  background: var(--powierzchnia);
  text-align: left;
}
.sekcja:not(.sekcja--papier) .zaleta {
  background: var(--tlo-2);
}
.zaleta h3 {
  margin: 0 0 0.5rem;
  font-size: 1.1875rem;
}
.zaleta h3::before {
  content: '';
  display: block;
  width: 2rem;
  height: 3px;
  margin-bottom: 0.9rem;
  border-radius: 2px;
  background: var(--sygnal);
}
.zaleta p {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.45;
  color: var(--tusz-2);
}

/* Link "więcej" pod sekcją */
.wiecej-link {
  margin: 1.25rem auto 0;
  text-align: center;
  font-size: 1.0625rem;
}
.wiecej-link a {
  color: var(--link);
}

/* Kroki w jednym rzędzie na komputerze */
@media (min-width: 900px) {
  .ramka--tekst > .kroki--rzad {
    max-width: none;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
    margin-top: 2rem;
  }
  .kroki--rzad li {
    padding: 3.25rem 0 0;
  }
  .kroki--rzad li::before {
    top: 0;
    left: 0;
  }
  .kroki--rzad li:not(:last-child)::after {
    top: 1.25rem;
    left: 3rem;
    right: -1.5rem;
    bottom: auto;
    width: auto;
    height: 1.5px;
  }
  .kroki--rzad h3 {
    font-size: 1.0625rem;
  }
  .kroki--rzad p {
    font-size: 0.9375rem;
  }
}

/* Pola opcjonalne formularza zwinięte */
.wiecej--pole {
  margin: 1.1rem 0 0;
}
.wiecej--pole > summary {
  width: auto;
  margin-inline: 0;
  padding: 0.5rem 0;
  justify-content: flex-start;
  font-size: 0.9375rem;
}
.wiecej--pole > summary:hover {
  background: none;
  text-decoration: underline;
}
.wiecej--pole[open] > summary {
  margin-bottom: 0.25rem;
}
.wiecej--pole .pole + .pole,
.wiecej--pole .siatka-pol + .pole,
.wiecej--pole .pole + .siatka-pol {
  margin-top: 1rem;
}

/* Podstrony: nagłówek pierwszej sekcji jak hero, w jednej kolumnie */
.sekcja--pierwsza h1 {
  max-width: 16ch;
  margin: 0 auto 1rem;
  text-align: center;
  font-size: clamp(2.25rem, 6vw, 3.5rem);
}
.sekcja--pierwsza .ramka--tekst > h1 + p {
  text-align: center;
  font-size: 1.125rem;
  color: var(--tusz-2);
  margin-bottom: 2rem;
}
.sekcja--pierwsza .arkusz {
  margin: 1rem auto 0;
}
.sekcja--pierwsza .ramka--tekst > .arkusz {
  max-width: 34rem;
}
.lista-zwykla {
  max-width: var(--kolumna-max);
  margin-inline: auto;
}
.hero__drugi + .hero__drugi,
.przycisk + .hero__drugi {
  margin-left: 1.25rem;
}

/* Hero na komputerze: tekst po lewej, kartka dokumentu po prawej (krócej do przewijania) */
@media (min-width: 960px) {
  .hero {
    text-align: left;
    padding-block: 3.5rem 4rem;
  }
  .hero__siatka {
    grid-template-columns: 1.05fr 0.95fr;
    align-items: center;
    gap: 3rem;
    justify-items: stretch;
  }
  .hero h1 {
    margin-inline: 0;
    max-width: 12ch;
    font-size: clamp(3rem, 4.6vw, 4.25rem);
  }
  .hero__lead {
    margin-inline: 0;
    max-width: 34rem;
  }
  .hero__fakty,
  .hero__przyciski {
    justify-content: flex-start;
  }
  .hero__notka {
    margin-inline: 0;
    text-align: left;
  }
  .arkusz {
    justify-self: end;
    width: 100%;
    max-width: 30rem;
  }
}

/* Telefon: mniejsza kartka dokumentu i zwarte karty planów */
@media (max-width: 639px) {
  .arkusz__kartka {
    font-size: 0.78em;
  }
  .plan {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: baseline;
    gap: 0.15rem 1rem;
    padding: 1.1rem 1.2rem 1.2rem;
  }
  .plan__nazwa {
    grid-column: 1;
    grid-row: 1;
    margin: 0;
    font-size: 1.125rem;
  }
  .plan__cena {
    grid-column: 2;
    grid-row: 1;
    text-align: right;
    white-space: nowrap;
  }
  .plan__cena strong {
    font-size: 1.5rem;
  }
  .plan__brutto {
    grid-column: 1 / -1;
    grid-row: 2;
    margin: 0 0 0.5rem;
    text-align: right;
  }
  .plan__opis {
    grid-column: 1 / -1;
    margin: 0 0 0.75rem;
    font-size: 0.875rem;
  }
  .plan__wybor {
    grid-column: 1 / -1;
  }
}

/* ---------- Panel właściciela ---------- */

.panel-strona {
  font-size: 1rem;
}
.panel-strona main {
  padding-block: 1.5rem 4rem;
}
.panel-menu {
  position: sticky;
  top: 3.75rem;
  z-index: 5;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 1rem;
  align-items: center;
  padding: 0.6rem 0;
  background: var(--tlo);
  border-bottom: 1px solid var(--linia);
  margin-bottom: 1rem;
}
.panel-menu a {
  color: var(--tusz);
  font-size: 0.9375rem;
}
.panel-menu .przyciski {
  margin-left: auto;
  display: flex;
  gap: 0.5rem;
}
.panel-sekcja {
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--linia);
}
.panel-sekcja h2 {
  font-size: 1.75rem;
}
.panel-sekcja h3 {
  margin-top: 1.25rem;
}
.wskazniki {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr));
  gap: 0.75rem;
  margin: 1rem 0;
  padding: 0;
  list-style: none;
}
.wskaznik {
  background: var(--powierzchnia);
  border: 1px solid var(--linia);
  padding: 0.75rem 0.85rem;
}
.wskaznik__nazwa {
  display: block;
  font-size: 0.8125rem;
  color: var(--tusz-2);
}
.wskaznik__wartosc {
  display: block;
  font-family: var(--font-wasko);
  font-weight: 700;
  font-size: 1.6rem;
  line-height: 1.15;
}
.wskaznik__cel {
  display: block;
  font-size: 0.8125rem;
  color: var(--tusz-2);
}
.wskaznik--ok {
  box-shadow: inset 0 -3px 0 var(--ok);
}
.wskaznik--brak {
  box-shadow: inset 0 -3px 0 var(--linia-mocna);
}
.werdykt {
  display: inline-block;
  font-family: var(--font-wasko);
  font-weight: 700;
  font-size: 1.25rem;
  padding: 0.2rem 0.6rem;
  border-radius: 2px;
  background: var(--powierzchnia);
  border: 1.5px solid var(--linia-mocna);
}
.werdykt--GO,
.werdykt--go_wczesnie {
  background: var(--ok-tlo);
  border-color: var(--ok);
  color: var(--ok);
}
.werdykt--KILL {
  background: var(--blad-tlo);
  border-color: var(--blad);
  color: var(--blad);
}
.werdykt--PIVOT,
.werdykt--ostrzezenie {
  background: var(--uwaga-tlo);
  border-color: var(--sygnal-hover);
}
.tabela-panel {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9375rem;
}
.tabela-panel th,
.tabela-panel td {
  text-align: left;
  vertical-align: top;
  padding: 0.5rem 0.6rem 0.5rem 0;
  border-bottom: 1px solid var(--linia);
}
.tabela-panel th {
  color: var(--tusz-2);
  font-size: 0.8125rem;
}
.tabela-panel .liczba {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.status {
  display: inline-block;
  font-size: 0.8125rem;
  font-weight: 700;
  padding: 0.1rem 0.45rem;
  border-radius: 2px;
  background: var(--powierzchnia);
  border: 1px solid var(--linia-mocna);
  white-space: nowrap;
}
.status--ok {
  background: var(--ok-tlo);
  border-color: var(--ok);
  color: var(--ok);
}
.status--blad {
  background: var(--blad-tlo);
  border-color: var(--blad);
  color: var(--blad);
}
.status--uwaga {
  background: var(--uwaga-tlo);
  border-color: var(--sygnal-hover);
}
.wpis {
  border: 1px solid var(--linia);
  background: var(--powierzchnia);
  padding: 0.8rem 0.9rem;
  margin-bottom: 0.6rem;
}
.wpis__gora {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 0.8rem;
  align-items: baseline;
  justify-content: space-between;
}
.wpis__tytul {
  font-weight: 700;
  word-break: break-all;
}
.wpis__meta {
  font-size: 0.875rem;
  color: var(--tusz-2);
  margin: 0.25rem 0;
}
.wpis__akcje {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.5rem;
}
.wylacznik {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  margin: 1rem 0;
}
.formularz-wiersz {
  display: grid;
  gap: 0.6rem;
  align-items: end;
}
@media (min-width: 720px) {
  .formularz-wiersz {
    grid-template-columns: repeat(5, minmax(0, 1fr)) auto;
  }
}
.formularz-wiersz .pole {
  margin: 0;
}
.formularz-wiersz label {
  font-size: 0.875rem;
}
.przewijana-panel {
  overflow-x: auto;
}
