/* ============================================================
   Firmy Lokalne (firmy-lokalne.eu) — szablon „lokalna gazeta”
   Ciepły papier, butelkowa zieleń, terakota jako akcent. Szeryfowe
   nagłówki (Fraunces) + Manrope. Ostre krawędzie (2–4 px), linie
   i twarde cienie zamiast rozmytych — układ oparty na regułach i kolumnach.

   Ładowany PO app.css: sekcja 1 przestawia tokeny app.css, dzięki czemu
   podstrony (jeszcze niezmienione) przejmują paletę i typografię marki.
   Komponenty szablonu mają prefiks „fl-”.
   ============================================================ */

/* ---------- 1. Tokeny marki + mapowanie na zmienne app.css ---------- */
:root {
  --fl-paper:   #f6f1e7;
  --fl-paper-2: #eee6d6;
  --fl-card:    #fffdf8;
  --fl-ink:     #1c2421;
  --fl-muted:   #5c645f;
  --fl-line:    #d9cfbb;
  --fl-green:   #1f5a45;
  --fl-green-d: #143e30;
  --fl-green-l: #e3ece6;
  --fl-rust:    #c14b1f;
  --fl-rust-d:  #9f3b15;
  --fl-rust-l:  #f7e3d8;
  --fl-serif:   'Fraunces', Georgia, 'Times New Roman', serif;
  --fl-sans:    'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --fl-hard:    4px 4px 0 var(--fl-ink);

  /* app.css — marka */
  --c-plum:       #1f5a45;
  --c-plum-dark:  #143e30;
  --c-plum-soft:  #2d7a5f;
  --c-mint:       #c14b1f;
  --c-mint-dark:  #9f3b15;
  --c-mint-soft:  #f7e3d8;
  --c-lilac:      #f6f1e7;

  /* app.css — aliasy komponentów podstron */
  --c-accent:         #1f5a45;
  --c-accent-dark:    #143e30;
  --c-accent-light:   #d6e4db;
  --c-accent-xlight:  #e3ece6;
  --c-badge:          #143e30;
  --c-hero-mid:       #2d7a5f;
  --c-on-dark:        #dfe9e3;
  --c-on-dark-soft:   #a9c2b6;
  --c-border-accent:  #c4b89f;
  --c-star:           #c14b1f;
  --c-success:        #1f5a45;
  --c-phone-bg:       #f7e3d8;
  --c-phone-border:   #e9b9a0;
  --c-text:           #1c2421;
  --c-muted:          #5c645f;
  --c-border:         #e2d9c6;
  --c-bg-soft:        #f6f1e7;

  --radius:       3px;
  --radius-lg:    4px;
  --radius-pill:  3px;
  --shadow-sm:    0 0 0 1px #e2d9c6;
  --shadow:       3px 3px 0 #1c2421;
  --shadow-lg:    5px 5px 0 #1c2421;

  --font:      var(--fl-sans);
  --font-head: var(--fl-serif);
  --header-h:  78px;
}

body.fl-body { background: var(--fl-paper); color: var(--fl-ink); font-family: var(--fl-sans); }
.fl-body h1, .fl-body h2, .fl-body h3, .fl-body h4 { font-family: var(--fl-serif); letter-spacing: -.01em; font-weight: 600; }
.fl-wrap { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
.fl-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Podstrony: wcześniejsze fioletowe gradienty → zieleń marki */
.fu-hero, .fu-lhead, .fu-pband, .fu-final, .art-hero, .article-hero, .side-cta { background: var(--fl-green) !important; }
.fu-hero::before, .fu-hero::after, .fu-lhead::after, .fu-pband::after, .fu-final::before { display: none; }
.btn-accent, .hero-search .btn-search, .art-search button, .fu-cta-tag, .feat-flag { color: #fff !important; }
.fu-tel, .fu-chip--ok, .verified { color: var(--fl-rust-d); }
.topbar-cta, .fu-h1 em, .fu-lhead-count b, .fu-step-n, .fu-cta strong, .art-hero-eyebrow, .fu-railchip.is-on small, .fu-linklist a.is-on b { color: #f3b89b !important; }

/* ---------- 2. Przyciski ---------- */
.fl-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font-family: var(--fl-sans); font-weight: 800; font-size: .9rem; letter-spacing: .01em;
  padding: 12px 22px; border: 2px solid var(--fl-ink); border-radius: 3px; cursor: pointer;
  box-shadow: 3px 3px 0 var(--fl-ink); transition: transform .12s, box-shadow .12s, background .12s;
  white-space: nowrap;
}
.fl-btn:hover { transform: translate(-1px, -1px); box-shadow: 5px 5px 0 var(--fl-ink); }
.fl-btn:active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--fl-ink); }
.fl-btn--rust  { background: var(--fl-rust); color: #fff; }
.fl-btn--rust:hover { background: var(--fl-rust-d); }
.fl-btn--ink   { background: var(--fl-ink); color: var(--fl-paper); }
.fl-btn--ink:hover { background: var(--fl-green-d); }
.fl-btn--paper { background: var(--fl-paper); color: var(--fl-ink); }

.fl-link-arrow {
  font-weight: 800; font-size: .86rem; color: var(--fl-green); white-space: nowrap;
  border-bottom: 2px solid currentColor; padding-bottom: 2px; align-self: end;
}
.fl-link-arrow::after { content: ' →'; }
.fl-link-arrow:hover { color: var(--fl-rust); }

/* ---------- 3. Nagłówek (winieta) ---------- */
.fl-mast {
  position: sticky; top: 0; z-index: 100; background: var(--fl-paper);
  border-bottom: 3px double var(--fl-ink);
}
.fl-mast-in { max-width: 1240px; margin: 0 auto; padding: 12px 24px; display: flex; align-items: center; gap: 28px; min-height: 76px; }

.fl-brand { display: inline-flex; align-items: center; gap: 11px; flex-shrink: 0; }
.fl-brand-mark svg { display: block; }
.fl-brand-txt { display: flex; flex-direction: column; line-height: 1; }
.fl-brand-name { font-family: var(--fl-serif); font-size: 1.5rem; font-weight: 700; color: var(--fl-ink); letter-spacing: -.02em; }
.fl-brand-name i { font-style: normal; color: var(--fl-rust); margin: 0 1px; }
.fl-brand-tld { font-size: .68rem; font-weight: 700; color: var(--fl-muted); letter-spacing: .04em; margin-top: 5px; }

.fl-nav { display: flex; gap: 22px; }
.fl-nav a {
  font-size: .9rem; font-weight: 700; color: var(--fl-ink); padding: 6px 0;
  border-bottom: 2px solid transparent; transition: border-color .15s, color .15s;
}
.fl-nav a:hover { border-color: var(--fl-line); }
.fl-nav a.is-on { border-color: var(--fl-rust); color: var(--fl-rust-d); }

.fl-mast-tools { margin-left: auto; display: flex; align-items: center; gap: 18px; }
.fl-qsearch { display: flex; align-items: center; border-bottom: 2px solid var(--fl-ink); }
.fl-qsearch input { border: 0; background: transparent; font: 500 .88rem var(--fl-sans); color: var(--fl-ink); padding: 7px 4px; width: 170px; outline: none; }
.fl-qsearch input::placeholder { color: var(--fl-muted); }
.fl-qsearch button { border: 0; background: none; color: var(--fl-ink); cursor: pointer; padding: 4px; display: flex; }
.fl-qsearch button:hover { color: var(--fl-rust); }
.fl-mast-login { font-size: .88rem; font-weight: 700; color: var(--fl-green); }
.fl-mast-login:hover { color: var(--fl-rust); }

/* ---------- 4. Winieta strony głównej ---------- */
.fl-hero { padding: 42px 0 48px; border-bottom: 1px solid var(--fl-line); }
.fl-hero-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 48px; align-items: start; }
.fl-dateline {
  display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  font-size: .74rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--fl-muted);
  border-top: 2px solid var(--fl-ink); border-bottom: 1px solid var(--fl-ink); padding: 7px 0;
}
.fl-h1 { font-size: clamp(2.2rem, 4.6vw, 3.7rem); line-height: 1.04; font-weight: 700; margin: 26px 0 18px; color: var(--fl-ink); letter-spacing: -.025em; }
.fl-h1 em { font-style: italic; font-weight: 500; color: var(--fl-green); }
.fl-hero-lead { font-size: 1.06rem; line-height: 1.7; color: #3a433e; max-width: 620px; }

.fl-finder {
  margin-top: 28px; display: grid; grid-template-columns: 1.3fr 1fr auto; gap: 0;
  background: var(--fl-card); border: 2px solid var(--fl-ink); box-shadow: var(--fl-hard); border-radius: 3px;
}
.fl-finder-field { display: flex; flex-direction: column; padding: 10px 16px 8px; border-right: 1px solid var(--fl-line); min-width: 0; }
.fl-finder-field label { font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--fl-green); }
.fl-finder-field input { border: 0; outline: none; background: transparent; font: 500 1rem var(--fl-sans); color: var(--fl-ink); padding: 5px 0; width: 100%; }
.fl-finder-field input::placeholder { color: #8b918c; }
.fl-finder-field:focus-within { background: var(--fl-green-l); }
.fl-finder-go { margin: 8px; box-shadow: none; }
.fl-finder-go:hover { box-shadow: none; transform: none; }

.fl-often { margin-top: 18px; font-size: .86rem; color: var(--fl-muted); }
.fl-often span { font-weight: 800; color: var(--fl-ink); margin-right: 4px; }
.fl-often a { color: var(--fl-green); font-weight: 600; text-decoration: underline; text-decoration-color: var(--fl-line); text-underline-offset: 3px; }
.fl-often a:hover { color: var(--fl-rust); text-decoration-color: currentColor; }

/* Tablica miejscowości — ciemna, jak tablica ogłoszeń na rynku */
.fl-board { background: var(--fl-green); color: #eef3ef; border: 2px solid var(--fl-ink); box-shadow: var(--fl-hard); padding: 20px 22px 18px; }
.fl-board-head { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 1px solid rgba(255,255,255,.25); padding-bottom: 10px; margin-bottom: 6px; }
.fl-board-head span { font-family: var(--fl-serif); font-size: 1.3rem; font-weight: 600; }
.fl-board-head small { font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #a9c2b6; }
.fl-board-list { list-style: none; }
.fl-board-list a { display: flex; align-items: baseline; gap: 12px; padding: 9px 0; border-bottom: 1px dashed rgba(255,255,255,.18); }
.fl-board-list li:last-child a { border-bottom: 0; }
.fl-board-list .n { font-family: var(--fl-serif); font-size: .9rem; color: #f3b89b; width: 22px; }
.fl-board-list .c { flex: 1; font-weight: 700; font-size: .98rem; }
.fl-board-list .v { font-family: var(--fl-serif); font-size: 1.05rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.fl-board-list a:hover .c { text-decoration: underline; text-underline-offset: 3px; }
.fl-board-empty { font-size: .9rem; color: #cfe0d6; padding: 14px 0; }
.fl-board-all { display: inline-block; margin-top: 12px; font-size: .84rem; font-weight: 800; color: #f3b89b; }
.fl-board-all:hover { color: #fff; }

/* Pasek liczb */
.fl-figures { background: var(--fl-card); border-bottom: 1px solid var(--fl-line); }
.fl-figures-in { display: grid; grid-template-columns: repeat(4, 1fr); }
.fl-figures-in > div { padding: 20px 20px 18px; border-left: 1px solid var(--fl-line); }
.fl-figures-in > div:first-child { border-left: 0; padding-left: 0; }
.fl-figures b { display: block; font-family: var(--fl-serif); font-size: 2.2rem; font-weight: 600; line-height: 1; color: var(--fl-green); font-variant-numeric: tabular-nums; }
.fl-figures span { display: block; margin-top: 6px; font-size: .8rem; font-weight: 600; color: var(--fl-muted); }

/* ---------- 5. Sekcje ---------- */
.fl-sec { padding: 60px 0; border-bottom: 1px solid var(--fl-line); }
.fl-sec--paper { background: var(--fl-paper-2); }
.fl-sec--green { background: var(--fl-green-d); color: #e6eee9; border-bottom: 0; }
.fl-sec-head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 22px; align-items: start; margin-bottom: 32px; padding-bottom: 20px; border-bottom: 2px solid var(--fl-ink); }
.fl-sec-no { font-family: var(--fl-serif); font-size: 2.6rem; font-weight: 500; font-style: italic; line-height: .9; color: var(--fl-rust); }
.fl-h2 { font-size: clamp(1.55rem, 2.6vw, 2.1rem); line-height: 1.12; color: var(--fl-ink); }
.fl-sec-head p { margin-top: 8px; font-size: .92rem; line-height: 1.65; color: var(--fl-muted); max-width: 680px; }
.fl-sec-head p a { color: var(--fl-green); font-weight: 700; text-decoration: underline; }
.fl-sec--green .fl-sec-head { border-color: rgba(255,255,255,.6); }
.fl-sec--green .fl-h2 { color: #fff; }
.fl-sec--green .fl-sec-head p { color: #b9cec3; }
.fl-sec--green .fl-sec-no { color: #f3b89b; }
.fl-sec--green .fl-link-arrow { color: #f3b89b; }
.fl-sec--green .fl-link-arrow:hover { color: #fff; }
.fl-empty { border: 2px dashed var(--fl-line); padding: 28px; text-align: center; color: var(--fl-muted); background: var(--fl-card); }
.fl-empty a { color: var(--fl-rust); font-weight: 800; }

/* Spis branż — jak spis treści z kropkowanym wypełnieniem */
.fl-toc { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 44px; }
.fl-toc a { display: flex; align-items: baseline; gap: 10px; padding: 12px 0; border-bottom: 1px solid var(--fl-line); }
.fl-toc .ic { width: 24px; flex-shrink: 0; text-align: center; font-size: 1.05rem; }
.fl-toc .nm { font-weight: 700; font-size: .97rem; color: var(--fl-ink); }
.fl-toc .dots { flex: 1; border-bottom: 2px dotted #c4b89f; transform: translateY(-4px); min-width: 16px; }
.fl-toc .ct { font-family: var(--fl-serif); font-weight: 600; color: var(--fl-green); font-variant-numeric: tabular-nums; }
.fl-toc a:hover .nm { color: var(--fl-rust); }
.fl-toc li.is-empty { opacity: .5; }

/* Wizytówki-ogłoszenia */
.fl-ads { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.fl-ad {
  position: relative; display: flex; flex-direction: column; gap: 14px;
  background: var(--fl-card); border: 2px solid var(--fl-ink); padding: 22px 22px 18px;
  transition: box-shadow .15s, transform .15s;
}
.fl-ad:hover { box-shadow: var(--fl-hard); transform: translate(-2px, -2px); }
.fl-ad.is-pinned { border-top-width: 6px; border-top-color: var(--fl-rust); }
.fl-ad-pin {
  position: absolute; top: -6px; right: 18px; background: var(--fl-rust); color: #fff;
  font-size: .66rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; padding: 5px 10px 6px;
}
.fl-ad-head { display: flex; gap: 16px; align-items: flex-start; }
.fl-ad-logo {
  width: 64px; height: 64px; flex-shrink: 0; border: 1px solid var(--fl-line); background: #fff;
  display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.fl-ad-logo img { width: 100%; height: 100%; object-fit: contain; padding: 5px; }
.fl-ad-logo span { font-family: var(--fl-serif); font-size: 1.8rem; font-weight: 700; color: var(--fl-green); }
.fl-ad-id { min-width: 0; }
.fl-ad-rubric { font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--fl-rust-d); }
.fl-ad-rubric:hover { text-decoration: underline; }
.fl-ad-name { font-size: 1.28rem; line-height: 1.2; margin-top: 3px; }
.fl-ad-name a { color: var(--fl-ink); }
.fl-ad-name a:hover { color: var(--fl-green); text-decoration: underline; text-underline-offset: 3px; }
.fl-ad-addr { font-size: .83rem; color: var(--fl-muted); margin-top: 4px; }
.fl-ad-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; font-size: .82rem; padding: 8px 0; border-top: 1px solid var(--fl-line); border-bottom: 1px solid var(--fl-line); }
.fl-ad-score { color: var(--fl-muted); }
.fl-ad-score b { font-family: var(--fl-serif); font-size: 1.15rem; color: var(--fl-ink); }
.fl-ad-score.is-new { font-style: italic; }
.fl-ad-ok { font-weight: 700; color: var(--fl-green); }
.fl-ad-desc { font-size: .88rem; line-height: 1.65; color: #3a433e; }
.fl-ad-services { font-size: .84rem; line-height: 1.6; color: var(--fl-muted); }
.fl-ad-services span { font-weight: 800; color: var(--fl-ink); }
.fl-ad-services a { color: var(--fl-green); text-decoration: underline; text-decoration-color: var(--fl-line); text-underline-offset: 2px; }
.fl-ad-services a:hover { color: var(--fl-rust); text-decoration-color: currentColor; }
.fl-ad-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-top: auto; }
.fl-ad-tel {
  font: 800 .84rem var(--fl-sans); color: var(--fl-ink); background: var(--fl-rust-l);
  border: 1.5px solid var(--fl-ink); border-radius: 3px; padding: 8px 14px; cursor: pointer;
}
.fl-ad-tel:hover { background: var(--fl-rust); color: #fff; }
.fl-ad-tel.revealed { display: inline-block; background: var(--fl-green-l); }
.fl-ad-www { font-size: .82rem; font-weight: 700; color: var(--fl-muted); text-decoration: underline; }
.fl-ad-www:hover { color: var(--fl-ink); }
.fl-ad-more { margin-left: auto; font-size: .86rem; font-weight: 800; color: var(--fl-green); }
.fl-ad-more::after { content: ' →'; }
.fl-ad-more:hover { color: var(--fl-rust); }

/* Usługi A–Z */
.fl-az { columns: 4 220px; column-gap: 36px; }
.fl-az-group { break-inside: avoid; display: flex; gap: 14px; padding: 4px 0 18px; }
.fl-az-letter { font-family: var(--fl-serif); font-size: 2rem; font-weight: 700; line-height: 1; color: var(--fl-rust); width: 30px; flex-shrink: 0; }
.fl-az ul { list-style: none; flex: 1; border-left: 1px solid var(--fl-line); padding-left: 14px; }
.fl-az li { padding: 3px 0; font-size: .92rem; }
.fl-az li a { color: var(--fl-ink); font-weight: 600; }
.fl-az li a:hover { color: var(--fl-green); text-decoration: underline; }
.fl-az li small { font-size: .72rem; color: var(--fl-muted); font-weight: 700; }

/* Miejscowości w kolumnach */
.fl-places { list-style: none; columns: 5 170px; column-gap: 32px; }
.fl-places li { break-inside: avoid; display: flex; justify-content: space-between; gap: 10px; padding: 7px 0; border-bottom: 1px solid rgba(255,255,255,.14); font-size: .94rem; }
.fl-places a { color: #fff; font-weight: 700; }
.fl-places a:hover { color: #f3b89b; text-decoration: underline; }
.fl-places span { font-family: var(--fl-serif); color: #f3b89b; font-variant-numeric: tabular-nums; }
.fl-places-wait { margin-top: 28px; padding-top: 18px; border-top: 1px dashed rgba(255,255,255,.3); font-size: .86rem; line-height: 1.9; color: #b9cec3; }
.fl-places-wait strong { color: #fff; }
.fl-places-wait a { color: #dfe9e3; text-decoration: underline; text-decoration-color: rgba(255,255,255,.3); }
.fl-places-wait a:hover { color: #f3b89b; }

/* Poradnik — układ redakcyjny: czołówka + dwa teksty obok */
.fl-news { display: grid; grid-template-columns: 1.5fr 1fr; grid-template-rows: auto auto; gap: 0 36px; }
.fl-news-item { display: flex; flex-direction: column; gap: 12px; padding: 18px 0; border-bottom: 1px solid var(--fl-line); }
.fl-news-item.is-lead { grid-row: span 2; border-bottom: 0; padding-top: 0; border-right: 1px solid var(--fl-line); padding-right: 36px; }
.fl-news-item:not(.is-lead):nth-child(2) { padding-top: 0; }
.fl-news-item:not(.is-lead):last-child { border-bottom: 0; }
.fl-news-img { display: block; overflow: hidden; border: 1px solid var(--fl-line); }
.fl-news-img img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; transition: transform .3s; }
.fl-news-item:not(.is-lead) .fl-news-img { display: none; }
.fl-news-img:hover img { transform: scale(1.03); }
.fl-news-kicker { font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--fl-rust-d); }
.fl-news-body { display: flex; flex-direction: column; gap: 8px; }
.fl-news-body h3 { font-size: 1.2rem; line-height: 1.25; }
.fl-news-item.is-lead h3 { font-size: 1.75rem; line-height: 1.15; }
.fl-news-body h3 a { color: var(--fl-ink); }
.fl-news-body h3 a:hover { color: var(--fl-green); text-decoration: underline; text-underline-offset: 3px; }
.fl-news-body p { font-size: .9rem; line-height: 1.65; color: #3a433e; }
.fl-news-by { display: flex; gap: 14px; font-size: .76rem; font-weight: 700; color: var(--fl-muted); }

/* Dlaczego lokalnie — tekst w kolumnach gazety */
.fl-columns { columns: 2 320px; column-gap: 48px; column-rule: 1px solid var(--fl-line); }
.fl-columns p { font-size: .98rem; line-height: 1.8; color: #2d3632; margin-bottom: 16px; break-inside: avoid; }
.fl-columns p:first-child::first-letter { font-family: var(--fl-serif); float: left; font-size: 3.6rem; line-height: .82; font-weight: 700; color: var(--fl-rust); padding: 6px 8px 0 0; }
.fl-columns strong { color: var(--fl-ink); }
.fl-howto { list-style: none; counter-reset: krok; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin-top: 30px; border: 2px solid var(--fl-ink); background: var(--fl-card); }
.fl-howto li { counter-increment: krok; padding: 20px 22px; border-left: 1px solid var(--fl-line); }
.fl-howto li:first-child { border-left: 0; }
.fl-howto li::before { content: 'Krok ' counter(krok); display: block; font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--fl-rust-d); margin-bottom: 6px; }
.fl-howto b { display: block; font-family: var(--fl-serif); font-size: 1.15rem; font-weight: 600; margin-bottom: 6px; }
.fl-howto span { font-size: .87rem; line-height: 1.6; color: var(--fl-muted); }

/* Pytania i odpowiedzi */
.fl-faq-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.7fr); gap: 48px; align-items: start; }
.fl-sec-head--stack { grid-template-columns: auto minmax(0, 1fr); border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.fl-faq { border-top: 2px solid var(--fl-ink); }
.fl-faq details { border-bottom: 1px solid var(--fl-line); }
.fl-faq summary {
  list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 16px;
  padding: 16px 0; font-family: var(--fl-serif); font-size: 1.12rem; font-weight: 600; color: var(--fl-ink);
}
.fl-faq summary::-webkit-details-marker { display: none; }
.fl-faq summary::after { content: '+'; font-family: var(--fl-sans); font-weight: 800; color: var(--fl-rust); font-size: 1.3rem; line-height: 1; }
.fl-faq details[open] summary::after { content: '−'; }
.fl-faq summary:hover { color: var(--fl-green); }
.fl-faq details p { padding: 0 32px 18px 0; font-size: .92rem; line-height: 1.75; color: #3a433e; }

/* Pas dla przedsiębiorców */
.fl-owners { background: var(--fl-rust); color: #fff; border-top: 3px double var(--fl-ink); }
.fl-owners-in { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 48px; align-items: center; padding-top: 56px; padding-bottom: 56px; }
.fl-owners-kicker { font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #ffe0d0; }
.fl-owners h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); line-height: 1.1; margin: 10px 0 14px; color: #fff; }
.fl-owners-text > p { font-size: .98rem; line-height: 1.7; color: #fde9df; max-width: 600px; }
.fl-owners-text strong { color: #fff; }
.fl-owners-list { list-style: none; margin-top: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 24px; }
.fl-owners-list li { font-size: .88rem; font-weight: 600; padding-left: 22px; position: relative; }
.fl-owners-list li::before { content: '✔'; position: absolute; left: 0; color: var(--fl-ink); }
.fl-owners-box { background: var(--fl-card); color: var(--fl-ink); border: 2px solid var(--fl-ink); box-shadow: 6px 6px 0 var(--fl-ink); padding: 26px; display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.fl-owners-box-t { font-family: var(--fl-serif); font-size: 1.35rem; font-weight: 600; }
.fl-owners-sub { font-size: .88rem; font-weight: 800; color: var(--fl-green); }
.fl-owners-sub:hover { color: var(--fl-rust); }
.fl-owners-box small { font-size: .76rem; color: var(--fl-muted); }

/* ---------- 6. Stopka ---------- */
.fl-foot { background: var(--fl-paper); color: var(--fl-ink); border-top: 6px solid var(--fl-ink); }
.fl-foot-top { padding: 48px 0 36px; }
.fl-foot-grid { display: grid; grid-template-columns: 1.8fr 1fr 1fr 1fr; gap: 36px; }
.fl-foot-brand { font-family: var(--fl-serif); font-size: 2rem; font-weight: 700; letter-spacing: -.02em; line-height: 1; }
.fl-foot-brand i { font-style: normal; color: var(--fl-rust); }
.fl-foot-brand span { color: var(--fl-green); font-size: .6em; }
.fl-foot-about p { font-size: .87rem; line-height: 1.75; color: var(--fl-muted); margin-top: 14px; max-width: 380px; }
.fl-foot-about .fl-foot-mail a { color: var(--fl-green); font-weight: 700; text-decoration: underline; }
.fl-foot-col { display: flex; flex-direction: column; gap: 9px; }
.fl-foot-col h2 { font-family: var(--fl-sans); font-size: .72rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--fl-rust-d); padding-bottom: 8px; margin-bottom: 4px; border-bottom: 1px solid var(--fl-line); }
.fl-foot-col a { font-size: .9rem; font-weight: 600; color: var(--fl-ink); }
.fl-foot-col a:hover { color: var(--fl-green); text-decoration: underline; }
.fl-foot-disclaimer { background: var(--fl-paper-2); border-top: 1px solid var(--fl-line); border-bottom: 1px solid var(--fl-line); padding: 16px 0; font-size: .8rem; line-height: 1.7; color: var(--fl-muted); }
.fl-foot-disclaimer b { color: var(--fl-ink); }
.fl-foot-base { padding: 14px 0; font-size: .78rem; color: var(--fl-muted); }
.fl-foot-base-in { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.fl-foot-up { font-weight: 800; color: var(--fl-ink); }
.fl-foot-up:hover { color: var(--fl-rust); }

/* ---------- 7. Dostępność ---------- */
.fl-body a:focus-visible, .fl-body button:focus-visible, .fl-body input:focus-visible, .fl-body summary:focus-visible {
  outline: 3px solid var(--fl-rust); outline-offset: 2px; border-radius: 2px;
}
.fl-body .skip-link { background: var(--fl-ink); border-radius: 3px; }

/* ---------- 8. Responsywność ---------- */
@media (max-width: 1120px) {
  .fl-mast-in { gap: 20px; }
  .fl-nav { gap: 16px; }
  .fl-qsearch { display: none; }
}
@media (max-width: 980px) {
  .fl-hero-grid, .fl-faq-grid, .fl-owners-in { grid-template-columns: 1fr; gap: 32px; }
  .fl-toc { grid-template-columns: 1fr 1fr; }
  .fl-news { grid-template-columns: 1fr; }
  .fl-news-item.is-lead { grid-row: auto; border-right: 0; padding-right: 0; border-bottom: 1px solid var(--fl-line); padding-bottom: 22px; }
  .fl-news-item:not(.is-lead):nth-child(2) { padding-top: 18px; }
  .fl-foot-grid { grid-template-columns: 1fr 1fr; }
  .fl-foot-about { grid-column: 1 / -1; }
}
@media (max-width: 820px) {
  /* Na telefonach nagłówek nie jest przyklejony — dwa rzędy zajęłyby pół ekranu. */
  :root { --header-h: 0px; }
  .fl-mast { position: relative; }
  .fl-mast-in { flex-wrap: wrap; gap: 10px 14px; padding: 12px 18px 0; }
  .fl-mast-tools { gap: 12px; }
  .fl-mast-tools .fl-btn { padding: 9px 14px; font-size: .82rem; }
  .fl-nav { order: 3; width: 100%; overflow-x: auto; gap: 20px; padding: 4px 0 8px; border-top: 1px solid var(--fl-line); scrollbar-width: none; }
  .fl-nav a { white-space: nowrap; }
  .fl-brand-tld { display: none; }
  .fl-ads { grid-template-columns: 1fr; }
  .fl-figures-in { grid-template-columns: 1fr 1fr; }
  .fl-figures-in > div:nth-child(3) { border-left: 0; padding-left: 0; }
  .fl-figures-in > div:nth-child(n+3) { border-top: 1px solid var(--fl-line); }
  .fl-sec { padding: 44px 0; }
  .fl-sec-head { grid-template-columns: auto minmax(0, 1fr); }
  .fl-sec-head .fl-link-arrow { grid-column: 2; justify-self: start; }
  .fl-howto { grid-template-columns: 1fr; }
  .fl-howto li { border-left: 0; border-top: 1px solid var(--fl-line); }
  .fl-howto li:first-child { border-top: 0; }
  .fl-owners-list { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .fl-wrap { padding: 0 16px; }
  .fl-mast-login { display: none; }
  .fl-brand-name { font-size: 1.25rem; }
  .fl-brand-mark svg { width: 34px; height: 34px; }
  .fl-finder { grid-template-columns: 1fr; }
  .fl-finder-field { border-right: 0; border-bottom: 1px solid var(--fl-line); }
  .fl-finder-go { margin: 10px; }
  .fl-toc { grid-template-columns: 1fr; }
  .fl-sec-no { font-size: 2rem; }
  .fl-ad { padding: 18px 16px 16px; }
  .fl-ad-more { margin-left: 0; }
  .fl-foot-grid { grid-template-columns: 1fr; }
  .fl-news-item.is-lead h3 { font-size: 1.4rem; }
}
