/* ============================================================
   BF Health Systems — arkusz wspólny
   Paleta: Fresh Greens Refined
   Typografia: Poppins (nagłówki) / Inter (interfejs, tekst)
   ============================================================ */

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("assets/fonts/inter-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url("assets/fonts/inter-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/fonts/poppins-600-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("assets/fonts/poppins-600-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/fonts/poppins-700-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("assets/fonts/poppins-700-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --forest: #203729;
  --forest-deep: #16271d;
  --olive: #5c7240;
  --leaf: #8da84e;
  --lime: #bdd865;
  --paper: #f2ecd9;
  --paper-light: #faf7ee;
  --burgundy: #b63d4d;
  --ink: #223a2c;
  --body: #45524a;
  --muted: #6a756c;
  --line: rgba(32, 55, 41, .18);
  --line-strong: rgba(32, 55, 41, .32);

  --shell: min(1180px, calc(100vw - 80px));
  --rail: 172px;
  --rail-gap: 52px;
  --measure: 66ch;

  --font-body: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-display: "Poppins", "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;

  --r-plate: 16px;
  --r-ctl: 6px;
  --track: .14em;
  --paper-72: rgba(242, 236, 217, .72);
  --paper-56: rgba(242, 236, 217, .56);
  --hair-dark: rgba(242, 236, 217, .14);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--body);
  background: var(--paper-light);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.62;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
button { font: inherit; }
h1, h2, h3 { color: var(--ink); }
::selection { background: var(--lime); color: var(--forest-deep); }
html { scrollbar-color: var(--olive) var(--paper); }
a { text-underline-offset: .22em; text-decoration-thickness: 1px; }

.skip-link {
  position: fixed;
  top: 10px;
  left: 10px;
  z-index: 500;
  padding: 10px 16px;
  color: var(--forest);
  background: var(--paper);
  transform: translateY(-160%);
}
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 3px solid var(--lime); outline-offset: 3px; }

.site-shell { width: var(--shell); margin-inline: auto; }

/* Wspólny układ sekcji: wąska szyna z etykietą + kolumna treści.
   Każda sekcja zaczyna treść w tym samym miejscu w poziomie. */
.section { padding: 72px 0; }
.sec { display: block; }
.sec > .section-label { display: block; margin-bottom: 16px; }
.sec-body { max-width: 860px; }

/* Sekcja tekst + grafika z prawej */
.sec.has-media .sec-media { position: relative; margin: 32px 0 0; border-radius: var(--r-plate); overflow: hidden; }
.sec.has-media .sec-media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  filter: saturate(.8) brightness(.9);
}
.sec.has-media .sec-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(22,39,29,.08), rgba(22,39,29,.34));
  pointer-events: none;
}
@media (min-width: 900px) {
  .sec.has-media {
    display: grid;
    grid-template-columns: minmax(0, 1fr) clamp(320px, 38%, 480px);
    column-gap: clamp(48px, 6vw, 104px);
    align-items: start;
  }
  .sec.has-media > .section-label,
  .sec.has-media > .sec-body { grid-column: 1; }
  .sec.has-media .sec-body { max-width: none; }
  .sec.has-media .sec-media {
    position: relative;
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: stretch;
    margin: 0;
    overflow: hidden;
  }
  .sec.has-media .sec-media img {
    height: 100%;
    min-height: 520px;
    aspect-ratio: auto;
    object-position: center;
  }
}

/* Wejście grafiki przy przewijaniu */
[data-reveal] { opacity: 0; transform: translateY(16px); }
[data-reveal].is-in {
  opacity: 1;
  transform: none;
  transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1);
}
@media (prefers-reduced-motion: reduce) {
  [data-reveal], [data-reveal].is-in { opacity: 1; transform: none; transition: none; }
}
.sec-body > * { max-width: var(--measure); }
.sec-body > .full,
.sec-body > h2.head,
.sec-body > .product-name,
.sec-body > .product-byline { max-width: none; }

.section-label {
  margin: 0;
  color: var(--olive);
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: var(--track);
  text-transform: uppercase;
}
.section-label.light { color: var(--lime); }

.lead {
  margin: 0 0 22px;
  color: var(--ink);
  font-size: 1.08rem;
  line-height: 1.55;
  text-wrap: pretty;
}
.sec-body p { margin: 0 0 14px; text-wrap: pretty; }
.sec-body p:last-child { margin-bottom: 0; }
.sec-body strong { color: var(--ink); font-weight: 600; }
.page-lead, .page-head p { text-wrap: pretty; }

h2.head {
  margin: 0 0 24px;
  font-family: var(--font-display);
  font-size: clamp(1.9rem, 3.1vw, 2.85rem);
  font-weight: 600;
  letter-spacing: -.035em;
  text-wrap: balance;
  line-height: 1.05;
}
h3.sub {
  margin: 30px 0 10px;
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: -.02em;
}

/* ---------- Header ---------- */
.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 100;
  color: #fff;
  background: var(--forest);
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.header-row {
  min-height: 74px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}
.brand { width: 190px; height: 46px; display: flex; align-items: center; }
.brand img { width: 190px; height: 46px; object-fit: contain; object-position: left center; }
.main-navigation { display: flex; align-items: center; gap: 34px; }
.main-navigation a {
  position: relative;
  color: var(--paper-72);
  font-size: .75rem;
  font-weight: 500;
  letter-spacing: var(--track);
  text-decoration: none;
  text-transform: uppercase;
  transition: color .16s ease, border-color .16s ease, background-color .16s ease;
}
.main-navigation a:hover { color: var(--lime); }
.main-navigation a[href="kontakt.html"] {
  padding: 10px 16px;
  border: 1px solid rgba(242, 236, 217, .3);
  border-radius: var(--r-ctl);
}
.main-navigation a[href="kontakt.html"]:hover { border-color: var(--lime); }
.main-navigation a[href="kontakt.html"][aria-current="page"] { background: var(--burgundy); border-color: var(--burgundy); color: #fff; }
.main-navigation a[href="kontakt.html"][aria-current="page"]::after { display: none; }
.main-navigation a[aria-current="page"] { color: #fff; }
.main-navigation a[aria-current="page"]::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -7px;
  height: 2px;
  background: var(--burgundy);
}
.menu-button { display: none; }

/* ---------- Hero (strona główna) ---------- */
.hero {
  position: relative;
  min-height: 600px;
  padding: 116px 0 44px;
  overflow: hidden;
  color: #fff;
  background: var(--forest);
}
.hero::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--leaf) 0 56%, var(--lime) 56% 78%, var(--burgundy) 78% 81%, transparent 81%);
}
.hero-grid {
  min-height: 400px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
}
.kicker {
  margin: 0 0 22px;
  color: var(--lime);
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: var(--track);
  text-transform: uppercase;
}
.hero h1 {
  margin: 0;
  display: flex;
  align-items: baseline;
  gap: .24em;
  font-family: var(--font-display);
  font-size: clamp(2.3rem, 3.7vw, 3.4rem);
  font-weight: 600;
  letter-spacing: -.02em;
  line-height: 1.0;
  color: #fff;
}
.better { flex: 0 0 auto; }
.word-rotator {
  position: relative;
  width: 6.6em;
  height: 1.1em;
  display: inline-block;
  overflow: hidden;
  vertical-align: bottom;
}
.rotating-word {
  position: absolute;
  inset: 0 auto auto 0;
  line-height: 1;
  opacity: 0;
  transform: translateY(.5em);
  transition: opacity .12s ease, transform .5s cubic-bezier(.2,.75,.2,1);
  white-space: nowrap;
}
.rotating-word.is-active {
  opacity: 1;
  transform: translateY(0);
  transition: opacity .14s ease .12s, transform .55s cubic-bezier(.2,.75,.2,1) .08s;
}
.rotating-word.is-leaving {
  opacity: 0;
  transform: translateY(-.5em);
  transition: opacity .1s ease, transform .38s ease;
}
.word-flow, .word-information { color: var(--lime); }
.word-healthcare { color: var(--paper); }
.word-decisions { color: var(--burgundy); }
.hero-intro {
  max-width: 48ch;
  margin: 22px 0 24px;
  color: var(--paper-72);
  font-size: .98rem;
}
.hero-intro p { margin: 0 0 10px; }
.hero-intro p:last-child { margin: 0; }
.hero-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 24px;
}
.hero-cta .btn { padding: 14px 24px; }
.text-link {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  padding: 10px 0 8px;
  border-bottom: 1px solid currentColor;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: var(--track);
  text-decoration: none;
  text-transform: uppercase;
  transition: color .16s ease;
}
.text-link.light { color: #fff; }
.text-link:hover { color: var(--lime); }
.hero-footnote {
  display: flex;
  justify-content: space-between;
  margin-top: 30px;
  color: var(--paper-72);
  font-size: .75rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

/* Hero strony głównej — wyśrodkowany stos treści nad rysowaną w kodzie siecią. */
.hero.has-bg {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100svh;
  padding: 74px 0 0;
  background: var(--forest-deep);
}
.hero-net {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  display: block;
}
.hero.has-bg::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: radial-gradient(ellipse 62% 52% at 50% 38%, rgba(22,39,29,.9) 0%, rgba(22,39,29,.62) 48%, rgba(22,39,29,0) 82%);
}
.hero.has-bg::after { z-index: 3; }
.hero.has-bg > .site-shell { position: relative; z-index: 2; }
.hero.has-bg .hero-grid {
  flex: 1 0 auto;
  min-height: 0;
  justify-items: center;
  align-content: start;
  padding: clamp(40px, 8vh, 110px) 0 clamp(120px, 18vh, 220px);
  text-align: center;
}
.hero.has-bg .hero-content { max-width: 780px; }
.hero.has-bg h1 {
  flex-direction: column;
  align-items: center;
  gap: 0;
  font-size: clamp(3rem, 7.2vw, 6rem);
  letter-spacing: -.04em;
  line-height: .98;
}
.hero.has-bg .word-rotator { width: 100%; height: 1.06em; }
.hero.has-bg .rotating-word { left: 0; right: 0; text-align: center; }
.hero.has-bg .hero-intro { max-width: 56ch; margin: 30px auto 34px; font-size: 1.04rem; }
.hero.has-bg .hero-cta { justify-content: center; }
.hero.has-bg .hero-footnote { margin: 0 auto; padding: 0 0 30px; }

/* ---------- Page-header (podstrony) ---------- */
.page-head {
  position: relative;
  padding: 148px 0 76px;
  color: #fff;
  background: var(--forest);
  overflow: hidden;
}
.page-head::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--leaf) 0 58%, var(--lime) 58% 80%, var(--burgundy) 80% 83%, transparent 83%);
}
.page-head > .site-shell { position: relative; z-index: 2; }
.page-head .crumb {
  margin-bottom: 30px;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: var(--track);
  text-transform: uppercase;
  color: rgba(255,255,255,.38);
}
.page-head .crumb a { color: rgba(255,255,255,.58); text-decoration: none; }
.page-head .crumb a:hover { color: var(--lime); }
.page-head .crumb span { margin: 0 9px; }
.page-head .kicker { margin: 0 0 16px; }
.page-head .ph-body { max-width: 1000px; }
.page-head h1 { max-width: none; }
.page-head .page-lead { max-width: 62ch; }
.page-head h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(2.3rem, 4.6vw, 4rem);
  font-weight: 600;
  letter-spacing: -.04em;
  line-height: 1.02;
  text-wrap: balance;
  color: #fff;
}
.page-head .page-lead {
  max-width: 60ch;
  margin: 26px 0 0;
  color: var(--paper-72);
  font-size: 1.06rem;
}

.page-head.has-media .ph-bg { position: absolute; inset: 0; z-index: 0; }
.page-head.has-media .ph-bg img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 35%;
  opacity: .22;
}
.page-head.has-media::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, var(--forest) 0%, var(--forest) 34%, rgba(32,55,41,.72) 70%, rgba(32,55,41,.55) 100%);
}

/* ---------- Sekcja „O firmie" / statement ---------- */
.statement { background: var(--paper); }
.principles {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 26px;
  margin: 26px 0 0;
  padding: 20px 0 0;
  border-top: 1px solid var(--line);
  list-style: none;
}
.principles li {
  margin: 0;
  font-size: .875rem;
  font-weight: 600;
  color: var(--ink);
}
.principles li::before {
  content: "";
  display: inline-block;
  width: 5px; height: 5px;
  margin-right: 9px;
  border-radius: 50%;
  background: var(--burgundy);
  vertical-align: middle;
}

/* ---------- Lista obszarów ---------- */
.fields { background: var(--paper-light); }
.section-head { margin-bottom: 40px; }
.section-head .section-label { margin-bottom: 16px; }
.section-head h2 {
  max-width: 30ch;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.9rem, 3.1vw, 2.85rem);
  font-weight: 600;
  letter-spacing: -.035em;
  line-height: 1.05;
  text-wrap: balance;
}
.field-list { border-top: 1px solid var(--line-strong); }
.field-list article {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) 240px;
  grid-template-rows: auto 1fr;
  column-gap: 28px;
  align-items: start;
  padding: 26px 0;
  border-bottom: 1px solid var(--line);
}
.field-list article > .idx {
  grid-column: 1; grid-row: 1;
  color: var(--burgundy);
  font-size: .75rem;
  font-weight: 700;
  padding-top: .3em;
}
.field-list h3 { grid-column: 2; grid-row: 1; margin: 0 0 8px; font-family: var(--font-display); font-size: 1.08rem; font-weight: 600; }
.field-list p { grid-column: 2; grid-row: 2; margin: 0; max-width: 54ch; font-size: .95rem; }
.field-list .field-thumb { grid-column: 3; grid-row: 1 / span 2; }
.field-list .field-thumb { border-radius: var(--r-plate); overflow: hidden; }
.field-list .field-thumb img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; filter: saturate(.8) brightness(.9); }

/* ---------- Blok projektu (WIDOK RM) ---------- */
.product { color: #fff; background: var(--forest-deep); }
.product h2.head, .product h3.sub { color: #fff; }
.product .section-label { color: var(--lime); }
.product .sec-body p { color: var(--paper-72); }
.product .sec-body p.product-name {
  margin: 0 0 4px;
  font-family: var(--font-display);
  font-size: clamp(2.3rem, 4vw, 3.1rem);
  font-weight: 700;
  letter-spacing: -.04em;
  line-height: 1;
  color: #fff;
}
.product .sec-body p.product-name strong { color: var(--burgundy); font-weight: 700; }
.product .sec-body p.product-byline { margin: 0 0 26px; color: var(--lime); font-size: .875rem; letter-spacing: .04em; }
.product-facts { margin: 26px 0 24px; border-top: 1px solid rgba(255,255,255,.16); }
.product-facts li {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 14px;
  padding: 13px 0;
  border-bottom: 1px solid rgba(255,255,255,.16);
  color: rgba(255,255,255,.86);
  font-size: .92rem;
  list-style: none;
}
.product-facts { padding: 0; }
.product-facts li > span { color: var(--lime); font-size: .75rem; font-weight: 600; letter-spacing: var(--track); padding-top: .3em; }

/* ---------- Zrzuty z WIDOK RM ---------- */
.ui-frame {
  padding: 10px;
  border: 1px solid var(--hair-dark);
  border-radius: var(--r-plate);
  overflow: hidden;
  background: var(--forest);
}
.ui-frame img { border-radius: var(--r-ctl); }
.ui-frame img { width: 100%; display: block; }

.product .sec.has-media { align-items: center; }
.product .sec.has-media .sec-media { overflow: visible; align-self: center; }
.product .sec.has-media .sec-media::after { display: none; }
.product .sec.has-media .sec-media img {
  position: static;
  height: auto;
  min-height: 0;
  aspect-ratio: auto;
  object-fit: contain;
  filter: none;
}
@media (min-width: 900px) {
  .product .sec.has-media { grid-template-columns: minmax(0, 1fr) clamp(360px, 44%, 580px); }
}

.ui-shots { background: var(--forest-deep); color: #fff; }
.ui-shots .section-head .section-label { color: var(--lime); }
.ui-shots .section-head h2 { color: #fff; }
.ui-shots .shots-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}
.ui-shots figure { margin: 0; }
.ui-shots figcaption {
  margin-top: 14px;
  color: var(--paper-56);
  font-size: .875rem;
  font-weight: 500;
  letter-spacing: .02em;
}
@media (max-width: 900px) {
  .ui-shots .shots-grid { grid-template-columns: 1fr; gap: 26px; }
}

/* ---------- Metoda ---------- */
.method { background: var(--paper); }
.method-list { margin: 8px 0 0; padding: 0; border-top: 1px solid var(--line-strong); list-style: none; }
.step-text {
  display: grid;
  grid-template-columns: 34px 1fr;
  column-gap: 18px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}
.step-text > span { color: var(--burgundy); font-size: .75rem; font-weight: 700; padding-top: .3em; }
/* Płytki schematu: każda w wierszu swojego kroku, więc wyrównanie trzyma się przy każdej długości tekstu */
.step-plate { display: none; }
@media (min-width: 900px) {
  .method { --plate-col: clamp(380px, 38%, 424px); --plate-gap: clamp(48px, 6vw, 104px); }
  .method .sec-body { max-width: none; }
  .method .sec-body > .method-list { max-width: none; border-top: 0; }
  .method .sec-body > h2.head { max-width: calc(100% - var(--plate-col) - var(--plate-gap)); }
  .method-list li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) var(--plate-col);
    column-gap: var(--plate-gap);
  }
  .method-list li:first-child .step-text { border-top: 1px solid var(--line-strong); }
  .step-plate {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 144px;
    grid-template-rows: 1fr auto auto 1fr;
    column-gap: 12px;
    align-items: center;
    min-height: 96px;
    margin: 10px 0;
    padding: 0 20px 0 28px;
    border-radius: var(--r-plate);
    color: var(--paper-light);
    background: var(--forest);
  }
  .method-list li:first-child .step-plate { margin-top: 11px; }
  .step-plate > span:first-child {
    grid-row: 2;
    margin-bottom: 4px;
    color: var(--lime);
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: var(--track);
  }
  .step-plate-word {
    grid-row: 3;
    font-family: var(--font-display);
    font-size: 1.125rem;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -.02em;
  }
  .step-plate img { grid-column: 2; grid-row: 1 / -1; width: 144px; height: auto; display: block; }
  .method-list li:not(:last-child) .step-plate::after {
    content: "";
    position: absolute;
    top: calc(100% + 4px);
    right: 91px;
    width: 1.5px;
    height: 12px;
    border-radius: 1px;
    background: var(--leaf);
  }
  .step-plate--01 { background: var(--paper-light); color: var(--ink); }
  .step-plate--02 { background: var(--paper); color: var(--ink); border: 1px solid var(--line-strong); padding: 0 19px 0 27px; }
  .step-plate--01 > span:first-child,
  .step-plate--02 > span:first-child { color: var(--olive); }
  .step-plate--03 { background: var(--olive); }
  .step-plate--05 { background: var(--forest-deep); }
}
.method-list h3 { margin: 0 0 6px; font-family: var(--font-display); font-size: 1.02rem; font-weight: 600; }
.method-list p { margin: 0; max-width: 58ch; font-size: .95rem; }

/* ---------- Nasza perspektywa (lista ról) ---------- */
.perspective { background: var(--paper); }
.roles {
  list-style: none;
  margin: 24px 0 0;
  padding: 0;
  border-top: 1px solid var(--line-strong);
}
.roles li {
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
  font-size: 1rem;
  line-height: 1.55;
  color: var(--body);
}
.roles li strong {
  display: block;
  margin-bottom: 3px;
  font-family: var(--font-display);
  font-size: 1.02rem;
  font-weight: 600;
  color: var(--ink);
}
.roles + p { margin-top: 24px; }

/* ---------- Kierunki rozwoju (kolejne projekty) ---------- */
.next-projects { background: var(--paper); }
.next-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}
.next-grid article {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 36px;
  background: var(--paper-light);
  border-radius: var(--r-plate);
}
.next-grid .idx {
  color: var(--burgundy);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.next-grid h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.24rem;
  font-weight: 700;
  letter-spacing: -.02em;
}
.next-grid p { margin: 0; color: var(--body); font-size: .94rem; line-height: 1.6; }
.next-grid .status {
  margin-top: 6px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: .75rem;
  letter-spacing: .06em;
  text-transform: uppercase;
}
@media (max-width: 800px) { .next-grid { grid-template-columns: 1fr; } }

/* Rodzina systemów WIDOK — bloki koncepcyjne (projekty.html) */
/* Karta systemu koncepcyjnego (WIDOK CZK / WIDOK SZPITAL) */
.family-card {
  margin-top: 16px;
  padding: clamp(28px, 4vw, 48px);
  background: var(--paper-light);
  border-radius: var(--r-plate);
}
.family-card:first-of-type { margin-top: 26px; }
.family-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px 20px;
  flex-wrap: wrap;
}
.family-card-head > h2.head { margin: 0; }
.family-status {
  flex: 0 0 auto;
  padding: 7px 12px;
  border: 1px solid var(--burgundy);
  border-radius: var(--r-ctl);
  color: var(--burgundy);
  font-family: var(--font-body);
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: var(--track);
  text-transform: uppercase;
  white-space: nowrap;
}
.family-card > .lead { margin: 12px 0; }
.family-card > p { max-width: 70ch; font-size: .95rem; }
.family-card > p + p { margin-top: 10px; }
.family-card > h3.sub { margin: 22px 0 0; }
.scope-panel {
  margin-top: 14px;
  padding: 20px 0 0;
  border-top: 1px solid var(--line-strong);
}
.scope-panel + p { margin-top: 16px; }

/* Blok tekstowy (Wspólny fundament) */
.family-system {
  border-top: 1px solid var(--line-strong);
  margin-top: 34px;
  padding-top: 26px;
}
.family-system > h2.head { margin: 0 0 6px; }
.family-system > .lead { margin: 0 0 14px; }
.family-system > p { max-width: 68ch; }
.family-system > p + p { margin-top: 12px; }
.family-system > h3.sub { margin: 24px 0 4px; }
.scope-list {
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
  columns: 2;
  column-gap: 44px;
}
.scope-panel .scope-list { margin: 0; }

/* Łamanie wierszy w bloku rodziny — pełniejsze linie, bez sierot */
.next-projects .section-head h2 { text-wrap: balance; }
.next-projects .sec-body > p { max-width: 74ch; text-wrap: pretty; }

/* Kierunek rozwoju — zwięzły blok domykający */
.direction .sec-body { max-width: 780px; }
.direction h2.head { margin: 0 0 20px; text-wrap: balance; }
.direction-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line-strong); }
.direction-list li {
  padding: 15px 0;
  border-bottom: 1px solid var(--line);
  font-size: 1.04rem;
  line-height: 1.5;
  color: var(--ink);
  text-wrap: pretty;
}
.direction-list strong { font-family: var(--font-display); font-weight: 600; }
.direction .sec-body p.direction-sum {
  margin-top: 24px;
  max-width: 66ch;
  font-size: 1.02rem;
  line-height: 1.6;
  color: var(--body);
  text-wrap: pretty;
}
.scope-list li {
  break-inside: avoid;
  position: relative;
  max-width: 46ch;
  padding: 5px 0 5px 18px;
  font-size: .93rem;
  line-height: 1.5;
  color: var(--body);
}
.scope-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 13px;
  width: 7px;
  height: 1px;
  background: var(--burgundy);
}
@media (max-width: 700px) {
  .scope-list { columns: 1; }
  .family-system > p { max-width: none; }
  .family-card { padding: 24px 22px; }
  .family-card > p { max-width: none; }
  .scope-panel { padding: 16px 18px; }
}

/* ---------- Więcej niż jedna aplikacja ---------- */
.outlook { background: var(--forest); color: #fff; }
.outlook .section-label { color: var(--lime); }
.outlook h2.head { color: #fff; }
.outlook .sec-body p { color: rgba(255,255,255,.74); }

/* ---------- Proza (podstrony) ---------- */
.prose { background: var(--paper-light); }
.prose.alt { background: var(--paper); }
.prose .site-shell + .site-shell { margin-top: 52px; }

/* ---------- Kafle na stronie głównej ---------- */
.tiles { background: var(--paper); }
.tile-grid {
  margin-top: 44px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}
.tile-grid a {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-height: 280px;
  padding: 36px;
  background: var(--paper-light);
  border-radius: var(--r-plate);
  text-decoration: none;
  transition: background-color .2s ease, box-shadow .2s ease;
}
.tile-grid a:hover,
.tile-grid a:focus-visible { box-shadow: inset 0 0 0 1px var(--line-strong); }
.tile-grid .idx {
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: var(--track);
  color: var(--burgundy);
}
.tile-grid h3 {
  margin: 0;
  padding-top: 36px;
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2vw, 1.7rem);
  font-weight: 600;
  letter-spacing: -.03em;
  line-height: 1.1;
}
.tile-grid p {
  margin: 0;
  max-width: 48ch;
  color: var(--body);
  font-size: .95rem;
  line-height: 1.62;
}
.tile-grid .go {
  position: absolute;
  top: 30px;
  right: 30px;
  width: 32px;
  height: 32px;
  border-radius: var(--r-ctl);
  background: rgba(32, 55, 41, .08);
  color: transparent;
  font-size: 0;
  transition: background-color .2s ease;
}
.tile-grid .go::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--forest);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 16 16 8M9.5 8H16v6.5'/%3E%3C/svg%3E") center / 18px no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 16 16 8M9.5 8H16v6.5'/%3E%3C/svg%3E") center / 18px no-repeat;
  transition: background-color .2s ease;
}
.tile-grid a:hover .go,
.tile-grid a:focus-visible .go { background: var(--burgundy); }
.tile-grid a:hover .go::before,
.tile-grid a:focus-visible .go::before { background: #fff; }

/* ---------- Pasek CTA ---------- */
.cta-band { position: relative; overflow: hidden; color: #fff; background: var(--forest); }
.cta-band .site-shell {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 34px;
  padding: clamp(80px, 10vw, 128px) 0;
  text-align: center;
}
.cta-band h2 {
  max-width: 26ch;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(1.9rem, 3.6vw, 3.2rem);
  font-weight: 600;
  letter-spacing: -.04em;
  line-height: 1.04;
  text-wrap: balance;
  color: #fff;
}
.btn {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 16px 24px;
  border-radius: var(--r-ctl);
  background: var(--burgundy);
  color: #fff;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: var(--track);
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}
.btn:hover { background: #9e3141; }
.btn.ghost { background: transparent; border: 1px solid rgba(242,236,217,.4); }
.btn.ghost:hover { border-color: var(--lime); color: var(--lime); }
.cta-band .cta-bg { position: absolute; inset: 0; z-index: 0; }
.cta-band .cta-bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 42%; opacity: .22; filter: saturate(.7); }
.cta-band.has-media::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: radial-gradient(ellipse 70% 80% at 50% 50%, rgba(32,55,41,.9), rgba(32,55,41,.55));
}

/* ---------- Kontakt ---------- */
.contact { color: #fff; background: var(--forest); }
.contact h2.head,
.contact h3.sub { color: #fff; }
.contact .section-label { color: var(--lime); }
.contact .sec-body p { color: var(--paper-72); }
.contact .mail {
  display: inline-block;
  margin: 22px 0 0;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--lime);
  color: var(--lime);
  font-family: var(--font-display);
  font-size: clamp(1.2rem, 2.6vw, 2.2rem);
  letter-spacing: -.03em;
  text-decoration: none;
  overflow-wrap: anywhere;
}
.contact .sec-body p.contact-note { margin: 10px 0 0; color: var(--paper-56); font-size: .875rem; }
.reg-details { margin: 30px 0 0; border-top: 1px solid rgba(255,255,255,.16); }
.reg-details div {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(255,255,255,.16);
  font-size: .875rem;
}
.reg-details dt { color: rgba(255,255,255,.5); }
.reg-details dd { margin: 0; color: rgba(255,255,255,.85); }

/* ---------- Materiały fotograficzne ---------- */

.media-band { padding: 40px 0 0; background: var(--forest-deep); }
.media-band img { width: 100%; aspect-ratio: 16 / 8; object-fit: cover; object-position: center 30%; border-radius: var(--r-plate); filter: saturate(.85) brightness(.92); }

.photo-row { background: var(--paper-light); }
.photo-row.alt { background: var(--paper); }
.photo-row .row-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.photo-row .row-grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-plate); filter: saturate(.8) brightness(.9); }

/* ---------- Stopka ---------- */
.site-footer { padding: 88px 0 40px; color: #fff; background: #101f17; }
.footer-grid {
  display: grid;
  grid-template-columns: 200px 1fr auto;
  gap: 40px;
  align-items: center;
}
.footer-grid > img { width: 176px; filter: brightness(0) invert(1); opacity: .92; }
.footer-grid > p { margin: 0; max-width: 40ch; text-wrap: balance; color: var(--lime); font-family: var(--font-display); font-size: 1.05rem; font-weight: 600; letter-spacing: -.02em; line-height: 1.3; }
.footer-nav { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.footer-nav a { color: var(--paper-56); font-size: .75rem; font-weight: 500; text-decoration: none; letter-spacing: var(--track); text-transform: uppercase; }
.footer-nav a:hover { color: var(--lime); }
.footer-grid > div { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.footer-grid > div span { color: var(--paper-56); font-size: .875rem; letter-spacing: .06em; text-transform: uppercase; }

/* ============================================================
   Responsywność
   ============================================================ */
@media (max-width: 1080px) {
  :root { --shell: min(100% - 48px, 900px); --rail: 140px; --rail-gap: 40px; }
}

@media (max-width: 860px) {
  :root { --shell: calc(100% - 40px); }
  .section { padding: 54px 0; }
  .header-row { min-height: 64px; }
  .brand, .brand img { width: 168px; height: 44px; }

  .menu-button {
    position: relative;
    z-index: 102;
    border: 0;
    display: flex;
    align-items: center;
    gap: 10px;
    color: #fff;
    background: transparent;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
  }
  .menu-button i,
  .menu-button i::after { width: 20px; height: 1px; display: block; background: currentColor; content: ""; }
  .menu-button i::after { transform: translateY(6px); }
  .menu-button[aria-expanded="true"] i { transform: translateY(3px) rotate(45deg); }
  .menu-button[aria-expanded="true"] i::after { transform: rotate(-90deg); }
  .main-navigation {
    position: fixed;
    inset: 0;
    z-index: 101;
    padding: 100px 24px 40px;
    display: flex;
    flex-direction: column;
    gap: 0;
    visibility: hidden;
    opacity: 0;
    background: var(--forest);
    transition: opacity .16s ease, visibility .16s ease;
  }
  .main-navigation.is-open { visibility: visible; opacity: 1; }
  .main-navigation a { padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.16); font-size: 1.05rem; text-transform: none; letter-spacing: .02em; }
  .main-navigation a[aria-current="page"]::after { display: none; }
  .main-navigation a[aria-current="page"] { color: var(--lime); }

  .section-head { margin-bottom: 24px; }
  .sec-body, .sec-body > *, .page-head .ph-body, .section-head h2 { max-width: none; }
  .page-head { padding: 118px 0 56px; }
  .page-head h1 { font-size: clamp(2rem, 8.4vw, 2.6rem); }

  .hero { min-height: 0; padding: 96px 0 40px; }
  .hero.has-bg { min-height: min(100svh, 820px); padding-top: 64px; }
  .hero.has-bg .hero-grid { padding: 48px 0 clamp(200px, 34vh, 280px); }
  .hero-grid { min-height: 0; }
  .hero-footnote { display: none; }
  .main-navigation a[href="kontakt.html"] { padding: 18px 0; border: 0; border-bottom: 1px solid rgba(255,255,255,.16); border-radius: 0; }
  .main-navigation a[href="kontakt.html"][aria-current="page"] { background: transparent; color: var(--lime); }

  .field-list article { grid-template-columns: 32px 1fr; }
  .field-list .field-thumb { grid-column: 1 / -1; grid-row: auto; margin-top: 12px; }
  .field-list .field-thumb img { aspect-ratio: 16 / 9; }

  .photo-row .row-grid { grid-template-columns: 1fr; gap: 24px; }
  .media-band img { aspect-ratio: 16 / 9; }

  .cta-band .site-shell { gap: 26px; padding: 72px 0; }
  .reg-details div { grid-template-columns: 1fr; gap: 3px; }
  .footer-grid { grid-template-columns: 1fr; gap: 24px; }
  .footer-grid > div { align-items: flex-start; }
}

@media (max-width: 540px) {
  .hero h1 { font-size: clamp(2.4rem, 12vw, 3.2rem); }
  .hero.has-bg h1 { flex-direction: column; }
  .word-rotator { width: 100%; }
  .product-name { font-size: clamp(2rem, 11vw, 2.6rem); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}

/* ============================================================
   Nowe komponenty (audyt): TOC, manifest, timeline, FAQ,
   materiały, segmenty, liczby, zespół, checklista
   ============================================================ */

/* Sticky spis treści — Bezpieczeństwo */
.toc-layout > .toc { display: none; }
.toc-body > .block { padding-bottom: 44px; }
.toc-body > .block:last-child { padding-bottom: 0; }
.toc-body > .block h2 {
  margin: 0 0 16px;
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 1.8vw, 1.7rem);
  font-weight: 600;
  letter-spacing: -.015em;
  line-height: 1.25;
}
.toc-body > .block .section-label { margin-bottom: 10px; }
@media (min-width: 900px) {
  .toc-layout {
    display: grid;
    grid-template-columns: 210px minmax(0, 1fr);
    column-gap: clamp(44px, 5vw, 88px);
    align-items: start;
  }
  .toc-layout > .toc { display: block; position: sticky; top: 100px; }
  .toc ol { list-style: none; margin: 0; padding: 0; }
  .toc a {
    display: block;
    padding: 10px 0;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: .875rem;
    text-decoration: none;
    transition: color .16s ease;
  }
  .toc li:last-child a { border-bottom: 1px solid var(--line); }
  .toc a:hover,
  .toc a.is-current { color: var(--ink); }
  .toc a .n { margin-right: 10px; color: var(--burgundy); font-weight: 700; font-size: .75rem; }
}

/* Manifest — pełna szerokość, wyśrodkowany */
.manifest { background: var(--forest); color: #fff; }
.manifest .site-shell { max-width: 760px; margin-inline: auto; text-align: center; }
.manifest .section-label { color: var(--lime); }
.manifest h2 {
  margin: 14px 0 16px;
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 2.4vw, 2.1rem);
  font-weight: 600;
  line-height: 1.28;
  letter-spacing: -.015em;
  color: #fff;
}
.manifest p { margin: 0 auto; max-width: 60ch; color: rgba(255, 255, 255, .75); font-size: 1.02rem; }
.manifest p + p { margin-top: 12px; }

/* Oś czasu wdrożenia */
.timeline { list-style: none; margin: 8px 0 0; padding: 0; border-top: 1px solid var(--line-strong); }
.timeline li {
  display: grid;
  grid-template-columns: 128px minmax(0, 1fr);
  gap: 6px 26px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}
.timeline .phase {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: .75rem;
  letter-spacing: var(--track);
  text-transform: uppercase;
  color: var(--olive);
  padding-top: .2em;
}
.timeline li > div { grid-column: 2; }
.timeline h3 { margin: 0 0 5px; font-family: var(--font-display); font-size: 1.02rem; font-weight: 600; }
.timeline p { margin: 0; font-size: .93rem; color: var(--body); max-width: 60ch; }
@media (max-width: 700px) {
  .timeline li { grid-template-columns: 1fr; }
  .timeline li > div { grid-column: 1; }
}

/* FAQ */
.faq-list { border-top: 1px solid var(--line-strong); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  padding: 18px 0;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1rem;
  color: var(--ink);
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: ""; flex: 0 0 auto; width: 18px; height: 18px; margin-top: 3px; background: var(--burgundy); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%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 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / contain no-repeat; }
.faq-list details[open] summary::after { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E"); }
.faq-list details p { margin: 0 0 18px; max-width: 68ch; color: var(--body); font-size: .95rem; line-height: 1.62; }

/* Materiały do pobrania */
.downloads-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.downloads-grid a {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 26px 28px;
  background: var(--paper);
  border-radius: var(--r-plate);
  text-decoration: none;
  transition: box-shadow .16s ease;
}
.downloads-grid a:hover,
.downloads-grid a:focus-visible { box-shadow: inset 0 0 0 1px var(--line-strong); }
.downloads-grid .kind { color: var(--burgundy); font-size: .75rem; font-weight: 600; letter-spacing: var(--track); text-transform: uppercase; }
.downloads-grid h3 { margin: 0; font-family: var(--font-display); font-size: .97rem; font-weight: 600; }
.downloads-grid .meta { color: var(--muted); font-size: .875rem; }
@media (max-width: 700px) {
  .downloads-grid,
  .tile-grid { grid-template-columns: 1fr; }
  .tile-grid a { min-height: 0; padding: 28px; }
  .tile-grid .go { top: 22px; right: 22px; }
  .segments .seg-grid > div { min-height: 0; }
}

/* Dla kogo — segmenty */
.segments { background: var(--forest-deep); color: #fff; }
.segments .section-head .section-label { color: var(--lime); }
.segments .section-head h2 { color: #fff; }
.segments .seg-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 8px;
}
.segments .seg-grid > div { display: flex; flex-direction: column; gap: 10px; min-height: 220px; padding: 30px 28px; background: var(--forest); border-radius: var(--r-plate); }
.segments .seg-grid h3 { margin: 0; font-family: var(--font-display); font-size: 1.2rem; font-weight: 600; letter-spacing: -.025em; line-height: 1.15; color: #fff; }
.segments .seg-grid p { margin: 0; font-size: .88rem; line-height: 1.55; color: var(--paper-72); }
@media (max-width: 860px) { .segments .seg-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 700px) { .segments .seg-grid > div { min-height: 0; } .segments .seg-grid p { margin-top: 0; } }
@media (max-width: 520px) { .segments .seg-grid { grid-template-columns: 1fr; } }

/* Liczby / fakty */
.stats-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-top: 4px; }
.stats-row div { border-top: 1px solid var(--line-strong); padding-top: 18px; }
.stats-row .num { font-family: var(--font-display); font-size: clamp(2.6rem, 4.6vw, 4rem); font-weight: 600; letter-spacing: -.04em; line-height: 1; font-variant-numeric: tabular-nums; color: var(--ink); }
.stats-row .lbl { margin-top: 12px; font-size: .875rem; font-weight: 500; color: var(--muted); line-height: 1.45; }
.product .stats-row div { border-top-color: var(--hair-dark); }
.product .stats-row .num { color: var(--lime); }
.product .stats-row .lbl { color: var(--paper-72); }
@media (max-width: 760px) { .stats-row { grid-template-columns: 1fr 1fr; gap: 20px; } }

/* Checklista — Kontakt */
.checklist { list-style: none; margin: 22px 0 0; padding: 0; }
.checklist li {
  position: relative;
  padding: 11px 0 11px 26px;
  border-bottom: 1px solid rgba(255, 255, 255, .16);
  font-size: .93rem;
  color: rgba(255, 255, 255, .82);
}
.checklist li::before { content: ""; position: absolute; left: 0; top: 17px; width: 14px; height: 14px; background: var(--lime); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13.5 6.5 19 12l-5.5 5.5'/%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 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13.5 6.5 19 12l-5.5 5.5'/%3E%3C/svg%3E") center / contain no-repeat; }

/* Nota zgodności pod zrzutami z demo */
.ui-note { margin: 14px 0 0; color: var(--muted); font-size: .875rem; letter-spacing: .02em; }
.product .ui-note,
.ui-shots .ui-note { color: rgba(255, 255, 255, .5); }

/* Jeden system ikon: strzałki w przyciskach i linkach rysowane tym samym
   obrysem co kwadraty w kaflach; znak w treści zostaje (aria-hidden). */
.btn > span[aria-hidden="true"],
.text-link > span[aria-hidden="true"] {
  display: inline-block;
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  font-size: 0;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13.5 6.5 19 12l-5.5 5.5'/%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 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13.5 6.5 19 12l-5.5 5.5'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .2s ease;
}
.btn > span[aria-hidden="true"] { background: #fff; }
.btn.ghost > span[aria-hidden="true"] { background: currentColor; }
.btn:hover > span[aria-hidden="true"],
.text-link:hover > span[aria-hidden="true"] { transform: translateX(3px); }

/* Karty do pobrania są linkami — ten sam kwadrat ze strzałką co kafle. */
.downloads-grid a { position: relative; }
.downloads-grid .kind,
.downloads-grid h3 { padding-right: 44px; }
.downloads-grid a::after {
  content: "";
  position: absolute;
  top: 24px;
  right: 24px;
  width: 32px;
  height: 32px;
  border-radius: var(--r-ctl);
  background: rgba(32, 55, 41, .08) ;
  transition: background-color .2s ease;
}
.downloads-grid a::before {
  content: "";
  position: absolute;
  top: 24px;
  right: 24px;
  width: 32px;
  height: 32px;
  z-index: 1;
  background: var(--forest);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 16 16 8M9.5 8H16v6.5'/%3E%3C/svg%3E") center / 18px no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 16 16 8M9.5 8H16v6.5'/%3E%3C/svg%3E") center / 18px no-repeat;
}
.downloads-grid a:hover::after,
.downloads-grid a:focus-visible::after { background-color: var(--burgundy); }
.downloads-grid a:hover::before,
.downloads-grid a:focus-visible::before { background: #fff; }

/* Telefon: korona kuli za nagłówkiem, mocniejsza osłona pod tekstem. */
@media (max-width: 760px) {
  .hero.has-bg::before {
    background: radial-gradient(ellipse 95% 58% at 50% 44%, rgba(22,39,29,.9) 0%, rgba(22,39,29,.7) 55%, rgba(22,39,29,.15) 90%);
  }
}
