/*
Theme Name: Instytut Finansowania Szkolen
Theme URI: https://instytutfinansowaniaszkolen.pl
Author: Witalni
Description: Motyw blokowy marki Instytut Finansowania Szkolen. Granat, mosiadz i krem, Cormorant Garamond i Hanken Grotesk z wlasnego serwera. Caly wyglad stron siedzi w tym pliku, strony maja tylko tresc.
Version: 1.4.1
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ifs
Tags: full-site-editing, block-patterns, one-column, custom-colors, custom-logo, custom-menu
*/

/* Fonty deklaruje theme.json (pliki w assets/fonts). Brak zaokraglen i cieni w calym projekcie. */

/* ================================================================ podstawy */

html { overflow-x: clip; }
body {
  overflow-x: clip;
  background: #f3efe6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* Naglowek, tresc i stopka stykaja sie bez kremowych szczelin */
.wp-site-blocks > * { margin-block-start: 0; }
a { color: inherit; text-underline-offset: 3px; text-decoration-thickness: 1px; }

/* ================================================================ naglowek */

.ifs-naglowek {
  background: #0e1a2e;
  color: #f1ece2;
  border-bottom: 1px solid rgba(200, 164, 106, .22);
  font-family: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
}
.ifs-naglowek-pasek {
  box-sizing: border-box;
  max-width: 1280px;
  margin: 0 auto;
  padding: 28px 64px;
  display: flex;
  align-items: center;
  gap: 34px;
}
.ifs-naglowek-pasek > * { margin: 0 !important; }
.ifs-marka {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-right: auto !important;
  color: #f1ece2;
  text-decoration: none;
}
.ifs-monogram {
  box-sizing: border-box;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #c8a46a;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 600;
  font-size: 16px;
  letter-spacing: .06em;
  color: #c8a46a;
}
.ifs-marka-tekst { display: flex; flex-direction: column; gap: 3px; }
.ifs-marka-nazwa {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 600;
  font-size: 23px;
  line-height: 1.1;
}
.ifs-marka-pod {
  font-size: 11.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #a6b0c2;
}

/* menu: wlasny kod zamiast bloku nawigacji WordPressa (motyw 1.4, projekt 3a).
   Na komputerze "Dofinansowania" otwiera panel na cala szerokosc okna, ponizej 1024 px
   wszystko chowa sie pod przyciskiem, a "Dofinansowania" rozwija sie jak akordeon.
   Zachowanie (opoznienia, Esc, nakladka) jest w assets/menu.js. */
.ifs-naglowek { position: relative; z-index: 100; }
.ifs-nav { font-size: 14.5px; color: #d9d4c8; }
.ifs-nav ul { list-style: none; margin: 0; padding: 0; }
.ifs-nav a { color: inherit; text-decoration: none; }
.ifs-nav button {
  font: inherit;
  letter-spacing: inherit;
  color: inherit;
  background: none;
  border: 0;
  border-radius: 0;
  margin: 0;
  padding: 0;
  cursor: pointer;
  text-align: left;
}
.ifs-naglowek a:focus-visible,
.ifs-naglowek button:focus-visible { outline: 1px solid #c8a46a; outline-offset: 3px; }
.ifs-nav-strzalka {
  flex: 0 0 auto;
  width: 6px;
  height: 6px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  margin-top: -4px;
  transition: transform .18s ease-out, margin-top .18s ease-out;
}
.ifs-nav-dof.otwarte .ifs-nav-strzalka { transform: rotate(-135deg); margin-top: 4px; }
.ifs-nav-otworz,
.ifs-nav-zamknij { display: none; }

/* Reszta strony przyciemniona, gdy panel jest otwarty. Element dokłada menu.js. */
.ifs-mega-tlo {
  position: fixed;
  inset: 0;
  z-index: 99;
  background: rgba(9, 18, 31, .62);
  opacity: 0;
  visibility: hidden;
  transition: opacity .18s ease-out, visibility 0s linear .18s;
}
.ifs-mega-tlo.widoczne { opacity: 1; visibility: visible; transition: opacity .18s ease-out, visibility 0s; }

@media (min-width: 1024px) {
  /* Menu siega od gornej do dolnej krawedzi naglowka, zeby kreska pod "Dofinansowania"
     lezala na jego dolnej linii. */
  .ifs-naglowek-pasek > .ifs-nav { align-self: stretch; margin-top: -28px !important; margin-bottom: -28px !important; }
  .ifs-nav-lista,
  .ifs-nav-pozycje { height: 100%; }
  .ifs-nav-pozycje { display: flex; align-items: stretch; gap: 34px; }
  .ifs-nav-pozycje > li { display: flex; align-items: center; }
  .ifs-nav-pozycje > li > a:hover { color: #f1ece2; text-decoration: underline; }
  .ifs-nav-przycisk { position: relative; align-self: stretch; display: flex; align-items: center; gap: 9px; }
  .ifs-nav-przycisk:hover { color: #f1ece2; }
  .ifs-nav-dof.otwarte .ifs-nav-przycisk { color: #e6cf9f; }
  .ifs-nav-dof.otwarte .ifs-nav-przycisk::after {
    content: "";
    position: absolute;
    left: 0;
    right: 15px;
    bottom: -1px;
    height: 2px;
    background: #c8a46a;
  }

  .ifs-mega {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 1px);
    background: #09121f;
    border-bottom: 1px solid rgba(200, 164, 106, .22);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity .18s ease-out, transform .18s ease-out, visibility 0s linear .18s;
  }
  .ifs-nav-dof.otwarte .ifs-mega,
  html:not(.ifs-js) .ifs-nav-dof:hover .ifs-mega,
  html:not(.ifs-js) .ifs-nav-dof:focus-within .ifs-mega {
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: opacity .18s ease-out, transform .18s ease-out, visibility 0s;
  }
  .ifs-mega-srodek {
    box-sizing: border-box;
    max-width: 1280px;
    margin: 0 auto;
    padding: 44px 64px 40px;
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 56px;
  }
  .ifs-mega-lewa {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
    padding-right: 48px;
    border-right: 1px solid rgba(200, 164, 106, .18);
  }
  .ifs-mega-nad,
  .ifs-mega-etykieta {
    font-size: 11.5px;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: #c8a46a;
  }
  .ifs-mega-etykieta { color: #a6b0c2; margin-bottom: 10px; }
  .ifs-nav .ifs-mega-tytul {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-weight: 500;
    font-size: 32px;
    line-height: 1.08;
    color: #f1ece2;
    transition: color .15s;
  }
  .ifs-nav .ifs-mega-tytul:hover { color: #e6cf9f; }
  .ifs-mega-opis { margin: 0; font-size: 14.5px; line-height: 1.6; color: #a6b0c2; }
  .ifs-nav .ifs-mega-dalej { margin-top: 4px; font-weight: 500; color: #e6cf9f; transition: color .15s; }
  .ifs-nav .ifs-mega-dalej:hover { color: #f1ece2; }
  .ifs-nav .ifs-mega-woj {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-template-rows: repeat(4, auto);
    grid-auto-flow: column;
    column-gap: 40px;
  }
  .ifs-nav .ifs-mega-woj a {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 11px 0;
    border-bottom: 1px solid rgba(200, 164, 106, .14);
    font-size: 15px;
    line-height: 1.4;
    color: #d9d4c8;
    transition: color .15s;
  }
  .ifs-mega-woj a span { font-size: 13px; color: #c8a46a; opacity: 0; transition: opacity .15s; }
  .ifs-nav .ifs-mega-woj a:hover,
  .ifs-nav .ifs-mega-woj a:focus-visible { color: #e6cf9f; }
  .ifs-mega-woj a:hover span,
  .ifs-mega-woj a:focus-visible span { opacity: 1; }
  .ifs-mega-pasek { border-top: 1px solid rgba(200, 164, 106, .14); }
  .ifs-mega-pasek-srodek {
    box-sizing: border-box;
    max-width: 1280px;
    margin: 0 auto;
    padding: 18px 64px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    font-size: 14px;
    line-height: 1.5;
    color: #a6b0c2;
  }
  .ifs-nav .ifs-mega-pasek a { font-weight: 500; color: #e6cf9f; white-space: nowrap; transition: color .15s; }
  .ifs-nav .ifs-mega-pasek a:hover { color: #f1ece2; }
}
/* Waski komputer: te same cztery kolumny, mniejsze odstepy. */
@media (min-width: 1024px) and (max-width: 1180px) {
  .ifs-naglowek-pasek > .ifs-nav { margin-top: -24px !important; margin-bottom: -24px !important; }
  .ifs-nav-pozycje { gap: 24px; }
  .ifs-mega-srodek { padding: 40px 40px 36px; grid-template-columns: 220px minmax(0, 1fr); gap: 40px; }
  .ifs-mega-lewa { padding-right: 32px; }
  .ifs-nav .ifs-mega-tytul { font-size: 28px; }
  .ifs-nav .ifs-mega-woj { column-gap: 24px; }
  .ifs-nav .ifs-mega-woj a { font-size: 14.5px; gap: 8px; }
  .ifs-mega-pasek-srodek { padding: 18px 40px; }
}
/* Telefon i tablet: menu na calym ekranie pod przyciskiem. */
@media (max-width: 1023px) {
  .ifs-nav-otworz,
  .ifs-nav-zamknij {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    color: #f1ece2;
  }
  .ifs-nav-otworz { margin-right: -10px; }
  .ifs-nav-lista {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1000;
    box-sizing: border-box;
    overflow-y: auto;
    overscroll-behavior: contain;
    background: #0e1a2e;
    color: #f1ece2;
    padding: 18px 24px 40px;
  }
  .ifs-nav-lista.otwarta { display: block; }
  .ifs-nav-zamknij { margin: 0 -10px 12px auto; }
  .ifs-nav-pozycje { display: flex; flex-direction: column; font-size: 20px; line-height: 1.3; }
  .ifs-nav-pozycje > li > a,
  .ifs-nav-przycisk {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    min-height: 54px;
    color: #f1ece2;
  }
  .ifs-nav-przycisk { justify-content: space-between; }
  .ifs-nav-przycisk .ifs-nav-strzalka { color: #c8a46a; margin-right: 6px; }
  .ifs-nav-dof.otwarte .ifs-nav-przycisk { color: #e6cf9f; }
  .ifs-mega { display: none; padding: 2px 0 14px 16px; }
  .ifs-nav-dof.otwarte .ifs-mega { display: block; }
  .ifs-mega-nad,
  .ifs-mega-opis,
  .ifs-mega-dalej,
  .ifs-mega-etykieta,
  .ifs-mega-dopisek,
  .ifs-mega-pasek { display: none; }
  .ifs-nav .ifs-mega-tytul,
  .ifs-nav .ifs-mega-woj a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 44px;
    border-bottom: 1px solid rgba(200, 164, 106, .14);
    font-size: 17px;
    color: #c3cad6;
  }
  .ifs-nav .ifs-mega-tytul { color: #e6cf9f; }
  .ifs-mega-woj a span { font-size: 14px; color: #c8a46a; }
  html.ifs-menu-otwarte { overflow: hidden; }
}
@media (prefers-reduced-motion: reduce) {
  .ifs-mega,
  .ifs-mega-tlo,
  .ifs-nav-strzalka,
  .ifs-mega-woj a,
  .ifs-mega-woj a span { transition: none !important; }
}

/* telefon */
.ifs-tel,
.ifs-tel:visited {
  box-sizing: border-box;
  border: 1px solid #c8a46a;
  color: #e6cf9f;
  padding: 12px 20px;
  font-size: 14.5px;
  font-weight: 500;
  line-height: 1.3;
  white-space: nowrap;
  text-decoration: none;
  transition: background-color .15s ease, color .15s ease;
}
.ifs-tel:hover { background: #c8a46a; color: #0e1a2e; }

@media (max-width: 1180px) {
  .ifs-naglowek-pasek { padding: 24px 40px; gap: 24px; }
}
@media (max-width: 640px) {
  .ifs-naglowek-pasek { padding: 18px 24px 20px; gap: 14px 16px; flex-wrap: wrap; }
  .ifs-marka { gap: 12px; }
  .ifs-monogram { width: 38px; height: 38px; flex-basis: 38px; font-size: 14px; }
  .ifs-marka-nazwa { font-size: 19px; }
  .ifs-marka-pod { display: none; }
  .ifs-tel { order: 3; flex: 1 0 100%; text-align: center; padding: 13px 16px; font-size: 15.5px; }
}

/* ================================================================ stopka */

.ifs-stopka {
  background: #0e1a2e;
  color: #a6b0c2;
  padding: 0 64px;
  font-family: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 13.5px;
  line-height: 1.7;
}
.ifs-stopka-siatka {
  box-sizing: border-box;
  max-width: 1152px;
  margin: 0 auto;
  padding: 36px 0 44px;
  border-top: 1px solid rgba(200, 164, 106, .22);
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
  gap: 40px;
}
.ifs-stopka-nazwa {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 600;
  font-size: 20px;
  line-height: 1.3;
  color: #f1ece2;
}
.ifs-stopka a,
.ifs-stopka a:visited { color: #d9d4c8; }
.ifs-stopka a:hover { color: #f1ece2; }
.ifs-stopka-metryka { font-variant-numeric: tabular-nums; }
@media (max-width: 1024px) {
  .ifs-stopka { padding: 0 40px; }
  .ifs-stopka-siatka { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 40px; }
}
@media (max-width: 640px) {
  .ifs-stopka { padding: 0 24px; }
  .ifs-stopka-siatka { grid-template-columns: 1fr; gap: 20px; padding: 32px 0 40px; }
}

/* ================================================================ strony: kolory */

/* Kazda strona to jeden blok .ifs. Kolory sa zmiennymi: jasne na kremie,
   a w ciemnych elementach (.ciemna i kilka stalych) te same nazwy dostaja wartosci na granat. */
.ifs {
  --tlo: #f3efe6;
  --pole: #ebe5d8;
  --naglowek: #142540;
  --mocny: #142540;
  --tekst: #3d4658;
  --cichy: #545d6e;
  --lista: #2c3547;
  --linia: rgba(20, 37, 64, .15);
  --linia-mocna: #142540;
  --akcent: #7a5c2b;
  --liczba: #7a5c2b;
  --krok: #8a6a35;
  --obrys: rgba(20, 37, 64, .35);
  --mosiadz: #c8a46a;
  --mosiadz-hover: #d8b77f;
}
.ifs .ciemna,
.ifs .naglowek,
.ifs .foto-naglowek,
.ifs .kontakt,
.ifs .pieczec,
.ifs .prog.wyroznik,
.ifs .powiadom:not(.maly) {
  --tlo: #0e1a2e;
  --pole: #142540;
  --naglowek: #f1ece2;
  --mocny: #f1ece2;
  --tekst: #c3cad6;
  --cichy: #a6b0c2;
  --lista: #c3cad6;
  --linia: rgba(200, 164, 106, .22);
  --linia-mocna: rgba(200, 164, 106, .3);
  --akcent: #c8a46a;
  --liczba: #e6cf9f;
  --krok: #c8a46a;
  --obrys: rgba(241, 236, 226, .35);
  background: var(--tlo);
  color: var(--tekst);
}

/* ================================================================ strony: uklad i typografia */

.ifs {
  background: var(--tlo);
  color: var(--tekst);
  font-family: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  /* rozciagniecie na pelna szerokosc okna z waskiej kolumny tresci */
  position: relative;
  width: 100vw;
  max-width: none;
  left: 50%;
  transform: translateX(-50%);
}
.ifs * { box-sizing: border-box; }
/* uklad "constrained" WordPressa daje dzieciom tresci max-width, tu wygrywa pelna szerokosc */
body .ifs { max-width: none; }
.ifs h1, .ifs h2, .ifs h3 {
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-weight: 500;
  color: var(--naglowek);
  line-height: 1.08;
  margin: 0;
  text-wrap: balance;
}
.ifs p { margin: 0; }
.ifs a { color: inherit; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.ifs strong { font-weight: 600; }
.ifs .wrap { max-width: 1280px; margin: 0 auto; padding: 0 64px; }
.ifs .waski { max-width: 960px; margin: 0 auto; padding: 0 64px; }

.ifs .nad {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .2em;
  line-height: 1.5;
  text-transform: uppercase;
  color: var(--akcent);
  margin-bottom: 20px;
}
.ifs section { padding: 96px 0 0; }
/* strona bez bloku kontaktu na koncu (np. Kontakt) nie moze dotykac stopki */
.ifs > section:last-child { padding-bottom: 104px; }
.ifs h2 { font-size: 46px; line-height: 1.06; margin-bottom: 20px; }
.ifs h3 { font-size: 26px; font-weight: 600; line-height: 1.2; margin-bottom: 10px; }
.ifs .pod { font-size: 17px; line-height: 1.7; color: var(--tekst); max-width: 46em; margin-bottom: 40px; text-wrap: pretty; }
.ifs .pod strong, .ifs .tresc p strong { color: var(--mocny); }
.ifs .tresc p { font-size: 17px; line-height: 1.7; color: var(--tekst); max-width: 60em; margin-bottom: 16px; text-wrap: pretty; }
.ifs .tresc h3 { margin-top: 36px; }
.ifs .tresc h3:first-child { margin-top: 0; }
.ifs .zrodlo { font-size: 13.5px; line-height: 1.6; color: var(--cichy); max-width: 60em; margin-top: 26px; }

/* przyciski */
.ifs .btn,
.ifs .btn:visited {
  display: inline-block;
  background: var(--mosiadz);
  color: #0e1a2e;
  border: 0;
  border-radius: 0;
  padding: 18px 28px;
  font-size: 15.5px;
  font-weight: 600;
  line-height: 1.3;
  text-decoration: none;
  transition: background-color .15s ease, border-color .15s ease;
}
.ifs .btn:hover { background: var(--mosiadz-hover); color: #0e1a2e; }
.ifs .btn2,
.ifs .btn2:visited {
  background: transparent;
  color: var(--naglowek);
  border: 1px solid var(--obrys);
  padding: 17px 26px;
  font-weight: 500;
}
.ifs .btn2:hover { background: transparent; color: var(--naglowek); border-color: var(--naglowek); }
.ifs .cta { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 40px; }

/* ================================================================ naglowki stron */

/* bez zdjecia: /dofinansowania/, /jak-dzialamy/ */
.ifs .naglowek { padding: 96px 0 104px; }
.ifs .naglowek h1 { font-size: 64px; line-height: 1.02; letter-spacing: -.01em; max-width: 15em; }
.ifs .naglowek .lead { font-size: 18px; line-height: 1.65; color: var(--tekst); max-width: 36em; margin-top: 28px; text-wrap: pretty; }

/* ze zdjeciem: strony wojewodzkie. Kadr ustawia style="object-position" na samym zdjeciu. */
.ifs .foto-naglowek {
  position: relative;
  min-height: clamp(440px, 34vw, 680px);
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
.ifs .foto-naglowek img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}
.ifs .foto-naglowek::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(14, 26, 46, .12) 0%, rgba(14, 26, 46, .38) 45%, rgba(14, 26, 46, .93) 100%);
}
.ifs .foto-tresc { position: relative; z-index: 1; width: 100%; padding: 88px 0 56px; }
.ifs .foto-naglowek .nad { color: #e6cf9f; text-shadow: 0 1px 10px rgba(9, 18, 31, .8); }
.ifs .foto-naglowek h1 {
  font-size: 64px;
  line-height: 1.02;
  letter-spacing: -.01em;
  max-width: 15em;
  text-shadow: 0 2px 18px rgba(9, 18, 31, .6);
}
.ifs .foto-naglowek .lead {
  font-size: 18px;
  line-height: 1.65;
  color: #f1ece2;
  max-width: 36em;
  margin-top: 24px;
  text-shadow: 0 1px 12px rgba(9, 18, 31, .75);
  text-wrap: pretty;
}
.ifs .podpis-foto { position: absolute; right: 16px; bottom: 8px; z-index: 2; font-size: 11px; color: rgba(241, 236, 226, .45); }
/* artykul poradnika: autor i data pod naglowkiem, notka o autorze na koncu */
.ifs .foto-naglowek .autor-linia {
  margin-top: 22px;
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: .02em;
  color: #d9d4c8;
  text-shadow: 0 1px 10px rgba(9, 18, 31, .8);
}
.ifs .autor-linia strong { color: #f1ece2; font-weight: 600; }
.ifs .o-autorze {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 28px;
  align-items: start;
  max-width: 760px;
  border-top: 1px solid var(--linia);
  padding-top: 32px;
}
.ifs .o-autorze img { width: 112px; height: 140px; object-fit: cover; object-position: center top; display: block; }
.ifs .o-autorze .osoba { font-size: 26px; margin-bottom: 8px; }
.ifs .o-autorze p { font-size: 16px; line-height: 1.65; color: var(--cichy); margin: 0; }
@media (max-width: 640px) {
  .ifs .o-autorze { grid-template-columns: 80px minmax(0, 1fr); gap: 18px; }
  .ifs .o-autorze img { width: 80px; height: 100px; }
}

/* ================================================================ liczby */

.ifs .liczby,
.ifs .limity {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--linia-mocna);
}
.ifs .limity { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 28px; }
.ifs .liczby > div,
.ifs .limity > div { padding: 28px 28px 0 0; }
.ifs .liczby > div + div,
.ifs .limity > div + div { padding-left: 28px; border-left: 1px solid var(--linia); }
.ifs .duza,
.ifs .limity .krot {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: 42px;
  line-height: 1;
  color: var(--liczba);
  white-space: nowrap;
}
.ifs .liczby .opis,
.ifs .limity .opis { font-size: 14.5px; line-height: 1.6; color: var(--cichy); margin-top: 14px; }

/* ================================================================ tabele */

.ifs table.operatorzy,
.ifs table.zrodla,
.ifs table.cennik,
.ifs table.nabory-lista { width: 100%; border-collapse: collapse; margin-top: 8px; }
.ifs table.operatorzy th,
.ifs table.zrodla th,
.ifs table.cennik th,
.ifs table.nabory-lista th {
  text-align: left;
  vertical-align: bottom;
  padding: 0 24px 14px 0;
  border-bottom: 2px solid var(--linia-mocna);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--akcent);
}
.ifs table.operatorzy td,
.ifs table.zrodla td,
.ifs table.cennik td,
.ifs table.nabory-lista td {
  text-align: left;
  vertical-align: top;
  padding: 20px 24px 20px 0;
  border-bottom: 1px solid var(--linia);
  font-size: 15px;
  line-height: 1.6;
  color: var(--tekst);
}
.ifs table.zrodla td { font-size: 15.5px; line-height: 1.65; }
.ifs table.operatorzy td:first-child,
.ifs table.zrodla td:first-child,
.ifs table.cennik td:first-child {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 600;
  font-size: 22px;
  line-height: 1.2;
  color: var(--naglowek);
  width: 26%;
  padding-right: 32px;
}
.ifs table.zrodla td:first-child { width: 22%; }
.ifs table.zrodla td:first-child span { display: block; margin-top: 4px; font-family: "Hanken Grotesk", system-ui, sans-serif; font-weight: 400; line-height: 1.4; }
.ifs table.cennik td:first-child { width: 34%; }
.ifs table.operatorzy td:last-child { font-size: 13.5px; color: var(--cichy); width: 24%; }
.ifs table.zrodla td strong,
.ifs table.cennik td strong { color: var(--mocny); font-variant-numeric: tabular-nums; }
.ifs table.porownanie th:not(:first-child) {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 21px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  color: var(--naglowek);
}
.ifs table.porownanie td:first-child { width: 20%; font-size: 19px; }
.ifs table.porownanie td:last-child { font-size: 15px; color: var(--tekst); width: auto; }

/* ================================================================ poziomy wsparcia */

.ifs .progi {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: var(--linia);
  border: 1px solid var(--linia);
  margin-top: 8px;
  overflow: visible;
}
.ifs .prog { background: var(--tlo); padding: 32px 30px 30px; position: relative; }
.ifs .prog .ile {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: 54px;
  line-height: 1;
  color: var(--liczba);
}
.ifs .prog .kiedy { font-size: 15px; line-height: 1.6; color: var(--tekst); margin-top: 14px; }
.ifs .wstazka {
  position: absolute;
  top: 0;
  right: 24px;
  transform: translateY(-50%);
  background: var(--mosiadz);
  color: #0e1a2e;
  padding: 6px 12px;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .14em;
  line-height: 1.4;
  text-transform: uppercase;
}

/* ================================================================ wyroznienia i ramki */

.ifs .uwaga { border-left: 2px solid var(--mosiadz); padding: 4px 0 4px 22px; margin: 30px 0 0; max-width: 60em; }
.ifs .uwaga p { font-size: 16px; line-height: 1.7; color: var(--lista); margin: 0; }
.ifs .uwaga strong { color: var(--mocny); }

.ifs .z-pieczecia { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 64px; align-items: start; }
.ifs .z-pieczecia .tresc p { max-width: none; }
.ifs .pieczec { border: 1px solid var(--mosiadz); padding: 32px 28px 28px; text-align: center; position: relative; }
.ifs .pieczec::before { content: ""; position: absolute; inset: 5px; border: 1px solid rgba(200, 164, 106, .3); pointer-events: none; }
.ifs .pieczec-znak { display: block; margin: 0 auto 18px; }
.ifs .pieczec-nad { font-size: 11px; font-weight: 600; letter-spacing: .16em; line-height: 1.6; text-transform: uppercase; color: var(--akcent); }
.ifs .pieczec-nr { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 600; font-size: 26px; color: var(--naglowek); margin-top: 10px; }
.ifs .pieczec-linia { height: 1px; background: var(--linia); margin: 18px 0 16px; }
.ifs .pieczec-kwota { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: 40px; line-height: 1; color: var(--liczba); margin-bottom: 8px; white-space: nowrap; }
.ifs .pieczec-pod { font-size: 13.5px; line-height: 1.55; color: var(--cichy); }

/* rozwijana tabela */
.ifs details.rozwin { margin-top: 8px; }
.ifs details.rozwin > summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  border: 1px solid var(--obrys);
  color: var(--naglowek);
  padding: 15px 22px;
  font-size: 15px;
  font-weight: 500;
  transition: border-color .15s ease;
}
.ifs details.rozwin > summary::-webkit-details-marker { display: none; }
.ifs details.rozwin > summary::after { content: "+"; font-size: 18px; line-height: 1; color: var(--akcent); }
.ifs details.rozwin[open] > summary::after { content: "\2212"; }
.ifs details.rozwin > summary:hover { border-color: var(--naglowek); }
.ifs details.rozwin[open] > summary { margin-bottom: 26px; }

/* karty z punktami premii (slaskie) */
.ifs .dwie-premie { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; margin-top: 30px; }
.ifs .karta-premii .etykieta,
.ifs .karta .etykieta,
.ifs .blok h3 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 600;
  font-size: 28px;
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: none;
  color: var(--naglowek);
  margin: 0 0 6px;
  padding-bottom: 14px;
  border-bottom: 2px solid var(--linia-mocna);
}
.ifs .karta-premii ul,
.ifs .karta ul,
.ifs .blok ul { list-style: none; margin: 0; padding: 0; }
.ifs .karta-premii li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 18px;
  padding: 15px 0;
  border-bottom: 1px solid var(--linia);
  font-size: 15.5px;
  line-height: 1.55;
  color: var(--lista);
}
.ifs .karta-premii li strong {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: 26px;
  line-height: 1;
  color: var(--liczba);
  white-space: nowrap;
}

/* /dofinansowania/: bylo i jest */
.ifs .karty { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; margin-top: 8px; }
.ifs .karta:first-child .etykieta { color: var(--cichy); border-bottom-color: var(--obrys); }
.ifs .karta p { font-size: 15.5px; line-height: 1.65; color: var(--tekst); margin-bottom: 14px; }
.ifs .karta li,
.ifs .blok li { padding: 15px 0; border-bottom: 1px solid var(--linia); font-size: 15.5px; line-height: 1.6; color: var(--lista); }
.ifs .karta:first-child li { color: var(--cichy); }
.ifs .karta li strong { color: var(--mocny); font-variant-numeric: tabular-nums; }

/* /jak-dzialamy/ */
.ifs .dwie { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; }
.ifs ol.etapy { list-style: none; counter-reset: e; margin: 0; padding: 0; border-top: 1px solid var(--linia-mocna); }
.ifs ol.etapy li {
  counter-increment: e;
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr) 200px;
  gap: 32px;
  padding: 30px 0;
  border-bottom: 1px solid var(--linia);
  align-items: start;
}
.ifs ol.etapy li::before {
  content: counter(e, decimal-leading-zero);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: 44px;
  line-height: 1;
  color: var(--krok);
  font-variant-numeric: lining-nums;
}
.ifs ol.etapy h3 { font-size: 26px; margin-bottom: 10px; }
.ifs ol.etapy p { font-size: 15.5px; line-height: 1.65; color: var(--tekst); }
.ifs ol.etapy .czas { font-size: 14px; line-height: 1.7; color: var(--cichy); padding-top: 6px; }
.ifs ol.etapy .kto { display: block; margin-bottom: 6px; font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--akcent); }

.ifs .podpis { display: grid; grid-template-columns: 240px minmax(0, 1.15fr) minmax(0, 1fr); gap: 48px; align-items: start; margin-top: 36px; }
.ifs .portret { width: 100%; height: auto; display: block; }
.ifs .osoba { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 600; font-size: 28px; color: var(--naglowek); margin-bottom: 12px; }
.ifs .dane { font-size: 16px; line-height: 2; }
.ifs .adres { font-size: 15px; line-height: 1.8; color: var(--cichy); }
.ifs .metryka { border-top: 1px solid var(--linia); margin-top: 22px; padding-top: 18px; font-size: 13.5px; line-height: 2; color: var(--cichy); font-variant-numeric: tabular-nums; }

/* ================================================================ kontakt na dole kazdej strony */

.ifs .kontakt { margin-top: 112px; padding: 104px 0 96px; }
.ifs .kontakt h2 { font-size: 54px; line-height: 1.04; }
.ifs .kontakt-siatka { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 64px; align-items: start; }
.ifs .kontakt-siatka .portret { width: 100%; height: auto; display: block; }
.ifs .kto-rozmawia { margin-top: 20px; font-size: 14.5px; color: var(--cichy); }
.ifs .kto-rozmawia strong { color: var(--naglowek); }

/* ================================================================ nabory */

.ifs table.nabory-lista td.termin { font-weight: 500; color: var(--naglowek); white-space: nowrap; font-size: 14.5px; font-variant-numeric: tabular-nums; }
.ifs table.nabory-lista td.pula { font-weight: 500; color: var(--akcent); white-space: nowrap; font-size: 14.5px; font-variant-numeric: tabular-nums; }
.ifs .znacznik {
  display: inline-block;
  font-family: "Hanken Grotesk", system-ui, sans-serif;
  margin-left: 8px;
  padding: 3px 8px;
  vertical-align: middle;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .12em;
  line-height: 1.4;
  text-transform: uppercase;
}
.ifs .znacznik.trwa { background: #2e5e45; color: #e8f3ec; }
.ifs .znacznik.wkrotce { border: 1px solid var(--mosiadz); color: var(--akcent); }
.ifs .otwarte {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: var(--linia);
  border: 1px solid var(--linia);
  margin: 8px 0 40px;
}
.ifs .otwarte > div { background: var(--pole); padding: 22px 26px; }
/* przy nieparzystej liczbie obszarow ostatnia karta zajmuje cala szerokosc, bez pustego pola obok */
.ifs .otwarte > div:last-child:nth-child(odd) { grid-column: 1 / -1; }
.ifs .otwarte .obszar { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 600; font-size: 23px; line-height: 1.25; color: var(--naglowek); margin-bottom: 6px; }
.ifs .otwarte .kto { font-size: 14.5px; line-height: 1.6; color: var(--tekst); }
.ifs .stan-naborow { font-size: 13.5px; line-height: 1.6; color: var(--cichy); margin-top: 22px; max-width: 60em; }

.ifs .powiadom {
  margin-top: 32px;
  padding: 28px 32px;
  border: 1px solid var(--mosiadz);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 24px 32px;
}
.ifs .powiadom.maly { border-color: var(--linia); background: transparent; padding: 20px 24px; }
.ifs .powiadom-tekst { max-width: 42em; }
.ifs .powiadom-tytul { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 600; font-size: 27px; line-height: 1.2; color: var(--naglowek); margin-bottom: 6px; }
.ifs .powiadom.maly .powiadom-tytul { font-size: 22px; }
.ifs .powiadom-opis { font-size: 15px; line-height: 1.6; color: var(--tekst); }
.ifs .powiadom .btn { white-space: nowrap; }

/* ================================================================ wojewodztwa */

/* kafle ze zdjeciami: /dofinansowania/ i sasiednie wojewodztwa */
.ifs .woj-kafle { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 8px; }
.ifs a.woj-kafel {
  display: block;
  text-decoration: none;
  color: inherit;
  background: var(--tlo);
  border: 1px solid var(--linia);
  transition: background-color .15s ease, border-color .15s ease;
}
.ifs a.woj-kafel:hover { background: var(--pole); border-color: var(--linia-mocna); }
.ifs .woj-foto { position: relative; aspect-ratio: 16 / 10; overflow: hidden; }
.ifs .woj-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ifs .woj-foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14, 26, 46, 0) 45%, rgba(14, 26, 46, .85) 100%); }
.ifs .woj-nazwa {
  position: absolute;
  left: 22px;
  bottom: 14px;
  z-index: 1;
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 500;
  font-size: 30px;
  line-height: 1.1;
  color: #f1ece2;
  text-shadow: 0 2px 12px rgba(9, 18, 31, .7);
}
.ifs .woj-opis { padding: 20px 22px 22px; font-size: 15px; line-height: 1.6; color: var(--tekst); }
.ifs .woj-dalej { display: block; margin-top: 14px; font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--akcent); }
.ifs .woj-wszystkie { margin-top: 30px; font-size: 16px; color: var(--tekst); }

/* wiersze: strona glowna */
.ifs .woj-wiersze { margin-top: 52px; border-top: 2px solid var(--linia-mocna); }
.ifs a.woj-wiersz {
  display: grid;
  grid-template-columns: 300px 220px minmax(0, 1fr) 40px;
  gap: 32px;
  align-items: baseline;
  padding: 26px 0;
  border-bottom: 1px solid var(--linia);
  color: var(--naglowek);
  text-decoration: none;
  transition: background-color .15s ease;
}
/* tlo pod kursorem wychodzi 20 px poza linie, a same linie zostaja rowno z trescia */
.ifs a.woj-wiersz:hover { background: var(--pole); box-shadow: -20px 0 0 var(--pole), 20px 0 0 var(--pole); }
.ifs .woj-wiersz-nazwa { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: 34px; line-height: 1; }
.ifs .woj-wiersz-proc { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 400; font-size: 26px; line-height: 1.1; color: var(--akcent); }
.ifs .woj-wiersz-opis { font-size: 15px; line-height: 1.55; color: var(--tekst); }
.ifs .woj-wiersz-strzalka { text-align: right; font-size: 18px; }

/* ================================================================ strona glowna */

.ifs .hero-g { padding: 88px 0 0; }
.ifs .hero-siatka { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 72px; }
.ifs .hero-tekst { display: flex; flex-direction: column; padding-bottom: 72px; }
.ifs .hero-tekst .nad { margin-bottom: 0; }
.ifs .hero-g h1 { font-size: 80px; line-height: 1.02; letter-spacing: -.01em; margin: 28px 0 30px; }
.ifs .hero-g .lead { font-size: 18px; line-height: 1.65; color: var(--tekst); max-width: 560px; text-wrap: pretty; }
.ifs .hero-liczby { margin-top: auto; padding-top: 72px; }
.ifs .hero-liczby-siatka { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--linia); }
.ifs .hero-liczby-siatka > div { padding: 24px 24px 0; }
.ifs .hero-liczby-siatka > div:first-child { padding-left: 0; }
.ifs .hero-liczby-siatka > div:last-child { padding-right: 0; }
.ifs .hero-liczby-siatka > div + div { border-left: 1px solid var(--linia); }
.ifs .hero-liczby-siatka p { font-size: 13.5px; line-height: 1.5; color: var(--cichy); margin-top: 12px; }
.ifs .hero-portret { margin: 0; display: flex; flex-direction: column; }
.ifs .hero-portret img { width: 100%; height: 600px; object-fit: cover; object-position: center top; display: block; }
.ifs .hero-portret figcaption {
  line-height: 1.3;
  background: #09121f;
  padding: 22px 26px;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
}
.ifs .hero-portret figcaption span:first-child { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 600; font-size: 24px; color: var(--naglowek); }
.ifs .hero-portret figcaption span:last-child { font-size: 13.5px; color: var(--cichy); }

.ifs .dwie-kolumny { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 80px; align-items: end; }
.ifs .dwie-kolumny h2 { font-size: 54px; margin-bottom: 0; }
.ifs .dwie-kolumny > p { font-size: 17px; line-height: 1.7; color: var(--tekst); text-wrap: pretty; }
.ifs .przebieg-g { padding-top: 112px; }
.ifs ol.kroki { list-style: none; margin: 64px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; }
.ifs ol.kroki li { border-top: 1px solid var(--linia-mocna); padding-top: 20px; }
.ifs .krok-nr { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: 44px; line-height: 1; color: var(--krok); font-variant-numeric: lining-nums; }
.ifs ol.kroki h3 { font-family: "Hanken Grotesk", system-ui, sans-serif; font-size: 17px; font-weight: 600; line-height: 1.4; margin: 18px 0 8px; }
.ifs ol.kroki p { font-size: 15px; line-height: 1.6; color: var(--cichy); }

.ifs .pas-g { margin: 88px 0 0; position: relative; }
.ifs .pas-g img { width: 100%; height: 440px; object-fit: cover; display: block; }
.ifs .pas-g figcaption {
  position: absolute;
  left: max(64px, calc((100% - 1152px) / 2));
  bottom: 0;
  max-width: 488px;
  padding: 22px 28px 0 0;
  background: var(--tlo);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-style: italic;
  font-weight: 500;
  font-size: 22px;
  line-height: 1.35;
  color: var(--naglowek);
}

.ifs .zakres-g { margin-top: 104px; padding: 104px 0; }
.ifs .zakres-siatka { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 80px; }
.ifs .zakres-siatka h2 { font-size: 54px; }
.ifs .zakres-siatka > div > p { font-size: 16px; line-height: 1.7; color: var(--cichy); }
.ifs .zakres-wiersz { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 32px; padding: 28px 0; border-top: 1px solid var(--linia-mocna); }
.ifs .zakres-wiersz:last-child { border-bottom: 1px solid var(--linia-mocna); }
.ifs .zakres-wiersz h3 { font-size: 32px; font-weight: 500; line-height: 1.2; color: var(--liczba); margin: 0; }
.ifs .zakres-wiersz p { font-size: 15.5px; line-height: 1.65; color: var(--tekst); }

.ifs .sekcja-g { padding-top: 112px; }
.ifs .sekcja-g h2 { font-size: 54px; }
#kwalifikacja h2 { margin-bottom: 14px; }
.ifs .kwal-siatka { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; margin-top: 52px; }
.ifs .kwal-siatka h3 { font-size: 28px; font-weight: 600; margin: 0 0 6px; padding-bottom: 14px; border-bottom: 2px solid var(--linia-mocna); }
.ifs .kwal-siatka .kwal-nie h3 { color: var(--cichy); border-bottom-color: var(--obrys); }
.ifs .kwal-siatka ul { list-style: none; margin: 0; padding: 0; font-size: 15.5px; line-height: 1.6; color: var(--lista); }
.ifs .kwal-siatka .kwal-nie ul { color: var(--cichy); }
.ifs .kwal-siatka li { padding: 16px 0; border-bottom: 1px solid var(--linia); }

.ifs .pytania-g { padding: 112px 0; }
.ifs .pytania-g h2 { font-size: 54px; margin-bottom: 52px; }
.ifs .pytania-siatka { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px 64px; }
.ifs .pytania-siatka > div { border-top: 1px solid var(--linia-mocna); padding-top: 22px; }
.ifs .pytania-siatka h3 { font-size: 27px; font-weight: 600; margin: 0 0 12px; }
.ifs .pytania-siatka p { font-size: 15px; line-height: 1.7; color: var(--tekst); }

.ifs .kontakt-g { padding: 104px 0 88px; }
.ifs .kontakt-g-siatka { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 80px; align-items: start; }
.ifs .kontakt-g h2 { font-size: 64px; line-height: 1.02; margin: 22px 0 24px; }
.ifs .kontakt-g .nad { margin-bottom: 0; }
.ifs .kontakt-g-siatka > div > p { font-size: 17px; line-height: 1.7; color: var(--tekst); max-width: 520px; }
.ifs .karta-kontaktu { border: 1px solid rgba(200, 164, 106, .4); padding: 36px; display: flex; flex-direction: column; gap: 10px; line-height: 1.3; }
.ifs .karta-kontaktu .osoba { margin: 0; font-size: 28px; }
.ifs .karta-kontaktu .tel { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: 44px; line-height: 1.1; color: var(--liczba); text-decoration: none; }
.ifs .karta-kontaktu .mail { font-size: 14.5px; color: var(--tekst); overflow-wrap: anywhere; }
.ifs .karta-kontaktu .btn { margin-top: 18px; padding: 16px 24px; font-size: 15px; text-align: center; }

/* ================================================================ polityka prywatnosci */

.ifs-dok {
  --krawedz: rgba(20, 37, 64, .15);
  max-width: 760px;
  padding: 88px 0 112px;
  font-family: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.75;
  color: #3d4658;
}
.ifs-dok * { box-sizing: border-box; }
.ifs-dok h1 { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: 56px; line-height: 1.04; color: #142540; margin: 0 0 22px; }
.ifs-dok h2 { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 600; font-size: 28px; line-height: 1.2; color: #142540; margin: 44px 0 12px; }
.ifs-dok h2:first-of-type { margin-top: 30px; }
.ifs-dok p { margin: 0 0 14px; max-width: 66ch; }
.ifs-dok ul { margin: 0 0 14px; padding-left: 22px; }
.ifs-dok li { margin-bottom: 8px; }
.ifs-dok strong { color: #142540; font-weight: 600; }
.ifs-dok a { color: inherit; text-underline-offset: 3px; }
.ifs-dok .stan { font-size: 13.5px; color: #545d6e; border-bottom: 1px solid var(--krawedz); padding-bottom: 18px; }
.ifs-dok .metryka { font-size: 15px; line-height: 2; color: #2c3547; font-variant-numeric: tabular-nums; border-left: 2px solid #c8a46a; padding-left: 20px; margin: 18px 0 26px; }
.ifs-dok .wyroz { border-left: 2px solid #c8a46a; padding-left: 20px; margin: 22px 0; }
.ifs-dok .wyroz p { margin-bottom: 0; }

/* ================================================================ wersja na tablet */

@media (max-width: 1024px) {
  .ifs .wrap, .ifs .waski { padding: 0 40px; }
  .ifs .hero-siatka { grid-template-columns: 1fr; gap: 0; }
  .ifs .hero-g h1 { font-size: 64px; }
  .ifs .hero-tekst { padding-bottom: 56px; }
  .ifs .hero-liczby { padding-top: 56px; }
  .ifs .hero-portret { margin: 0 -40px; }
  .ifs .hero-portret img { height: 420px; object-position: center 18%; }
  .ifs .hero-portret figcaption { padding: 20px 40px; }
  .ifs .dwie-kolumny, .ifs .zakres-siatka, .ifs .kontakt-g-siatka { grid-template-columns: 1fr; gap: 28px; }
  .ifs ol.kroki { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 32px; margin-top: 52px; }
  .ifs .zakres-siatka { gap: 40px; }
  .ifs .kwal-siatka, .ifs .pytania-siatka, .ifs .karty, .ifs .dwie, .ifs .dwie-premie { grid-template-columns: 1fr; gap: 48px; }
  .ifs .pytania-siatka { gap: 40px; }
  .ifs .pas-g figcaption { left: 40px; }
  .ifs a.woj-wiersz { grid-template-columns: 220px 150px minmax(0, 1fr) 24px; gap: 24px; }
  .ifs .woj-kafle { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ifs .z-pieczecia { grid-template-columns: minmax(0, 1fr) 260px; gap: 40px; }
  .ifs .podpis { grid-template-columns: 200px minmax(0, 1fr); }
  .ifs .podpis > div:last-child { grid-column: 2; }
  .ifs .limity { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ifs .limity > div:nth-child(3) { padding-left: 0; border-left: 0; }
  .ifs .limity > div { padding-bottom: 24px; }
  .ifs-dok { padding: 64px 0 88px; }
}

/* ================================================================ wersja na telefon */

@media (max-width: 860px) {
  .ifs { font-size: 16px; }
  .ifs section { padding-top: 72px; }
  .ifs > section:last-child { padding-bottom: 72px; }
  .ifs h2, .ifs .sekcja-g h2, .ifs .dwie-kolumny h2, .ifs .zakres-siatka h2 { font-size: 38px; }
  .ifs .kontakt h2 { font-size: 42px; }
  .ifs .naglowek { padding: 64px 0 72px; }
  .ifs .naglowek h1, .ifs .foto-naglowek h1 { font-size: 46px; }
  .ifs .foto-naglowek { min-height: 420px; }
  .ifs .foto-tresc { padding: 56px 0 40px; }
  .ifs .foto-naglowek .lead, .ifs .naglowek .lead { font-size: 17px; }
  .ifs .liczby { grid-template-columns: 1fr; }
  .ifs .liczby > div, .ifs .liczby > div + div { padding: 22px 0; border-left: 0; border-bottom: 1px solid var(--linia); }
  .ifs .progi { grid-template-columns: 1fr; }
  .ifs .otwarte { grid-template-columns: 1fr; }
  .ifs .z-pieczecia, .ifs .kontakt-siatka, .ifs .podpis { grid-template-columns: 1fr; gap: 32px; }
  .ifs .podpis > div:last-child { grid-column: auto; }
  .ifs .pieczec { max-width: 340px; }
  .ifs .kontakt-siatka .portret, .ifs .podpis .portret { max-width: 220px; }
  .ifs .kontakt { margin-top: 88px; padding: 72px 0 72px; }
  .ifs .woj-kafle { grid-template-columns: 1fr; }
  .ifs ol.etapy li { grid-template-columns: 56px minmax(0, 1fr); gap: 18px; }
  .ifs ol.etapy li::before { font-size: 36px; }
  .ifs ol.etapy .czas { grid-column: 2; padding-top: 0; }

  /* tabele ukladaja sie w karty */
  .ifs table.operatorzy, .ifs table.operatorzy tbody, .ifs table.operatorzy tr, .ifs table.operatorzy td,
  .ifs table.zrodla, .ifs table.zrodla tbody, .ifs table.zrodla tr, .ifs table.zrodla td,
  .ifs table.cennik, .ifs table.cennik tbody, .ifs table.cennik tr, .ifs table.cennik td,
  .ifs table.nabory-lista, .ifs table.nabory-lista tbody, .ifs table.nabory-lista tr, .ifs table.nabory-lista td { display: block; width: 100% !important; }
  .ifs table.operatorzy thead, .ifs table.zrodla thead, .ifs table.cennik thead, .ifs table.nabory-lista thead { display: none; }
  .ifs table.operatorzy, .ifs table.zrodla, .ifs table.cennik, .ifs table.nabory-lista { border-top: 2px solid var(--linia-mocna); }
  .ifs table.operatorzy td, .ifs table.zrodla td, .ifs table.cennik td, .ifs table.nabory-lista td { border-bottom: 0; padding: 3px 0; }
  .ifs table.operatorzy tr, .ifs table.zrodla tr, .ifs table.cennik tr, .ifs table.nabory-lista tr { padding: 18px 0; border-bottom: 1px solid var(--linia); }
  .ifs table.operatorzy td:first-child, .ifs table.zrodla td:first-child, .ifs table.cennik td:first-child { padding-bottom: 6px; }
}

@media (max-width: 640px) {
  .ifs .wrap, .ifs .waski { padding: 0 24px; }
  .ifs h2, .ifs .sekcja-g h2, .ifs .dwie-kolumny h2, .ifs .zakres-siatka h2, .ifs .kontakt h2 { font-size: 36px; }
  .ifs .naglowek h1, .ifs .foto-naglowek h1 { font-size: 40px; }
  .ifs .hero-g { padding-top: 56px; }
  .ifs .hero-g h1 { font-size: 44px; margin: 22px 0 22px; }
  .ifs .hero-g .lead { font-size: 17px; }
  .ifs .cta .btn { flex: 1 1 100%; text-align: center; }
  .ifs .hero-liczby { padding-top: 48px; }
  .ifs .hero-liczby-siatka { grid-template-columns: 1fr; }
  .ifs .hero-liczby-siatka > div, .ifs .hero-liczby-siatka > div + div { padding: 18px 0; border-left: 0; border-bottom: 1px solid var(--linia); display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
  .ifs .hero-liczby-siatka .duza { font-size: 36px; }
  .ifs .hero-liczby-siatka p { margin-top: 0; text-align: right; }
  .ifs .hero-portret { margin: 0 -24px; }
  .ifs .hero-portret img { height: 420px; }
  .ifs .hero-portret figcaption { padding: 18px 24px; }
  .ifs .przebieg-g, .ifs .sekcja-g { padding-top: 80px; }
  .ifs ol.kroki { grid-template-columns: 1fr; gap: 28px; }
  .ifs .pas-g { margin-top: 64px; }
  .ifs .pas-g img { height: 300px; }
  .ifs .pas-g figcaption { position: static; max-width: none; padding: 20px 24px 0; font-size: 20px; }
  .ifs .zakres-g { margin-top: 80px; padding: 72px 0; }
  .ifs .zakres-wiersz { grid-template-columns: 1fr; gap: 10px; padding: 24px 0; }
  .ifs .zakres-wiersz h3 { font-size: 28px; }
  .ifs .kwal-siatka { margin-top: 36px; }
  .ifs .woj-wiersze { margin-top: 36px; }
  .ifs a.woj-wiersz { grid-template-columns: minmax(0, 1fr) auto; gap: 6px 16px; padding: 22px 0; }
  .ifs .woj-wiersz-nazwa { font-size: 30px; }
  .ifs .woj-wiersz-proc { font-size: 23px; text-align: right; }
  .ifs .woj-wiersz-opis { grid-column: 1 / -1; }
  .ifs .woj-wiersz-strzalka { display: none; }
  .ifs .pytania-g { padding: 80px 0; }
  .ifs .pytania-g h2 { margin-bottom: 36px; }
  .ifs .kontakt-g { padding: 72px 0 64px; }
  .ifs .kontakt-g h2 { font-size: 42px; }
  .ifs .karta-kontaktu { padding: 28px 24px; }
  .ifs .karta-kontaktu .tel { font-size: 38px; }
  .ifs .powiadom { padding: 24px; }
  .ifs .powiadom .btn { width: 100%; text-align: center; }
  .ifs .dwie-premie, .ifs .karty, .ifs .dwie { gap: 40px; }
  .ifs .limity { grid-template-columns: 1fr; }
  .ifs .limity > div, .ifs .limity > div + div { padding: 18px 0; border-left: 0; border-bottom: 1px solid var(--linia); }
  .ifs-dok { padding: 48px 0 72px; font-size: 16px; }
  .ifs-dok h1 { font-size: 42px; }
}

/* ================================================================ wpisy (blog, jeszcze nieuzywany) */

.wp-block-post-title a { text-decoration: none; }
