/* PropFirm.pl — components. One class family per component (pf-<name>, pf-<name>__part, pf-<name>--variant).
   Every page uses these; page files may only arrange them. Catalogue: wp-kit/komponenty.html. */

/* ========== Buttons ========== */
.pf-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: var(--pf-control-h); padding: 0 22px;
  border: 1px solid var(--pf-action); border-radius: var(--pf-radius);
  background: var(--pf-action); color: var(--pf-action-text);
  font-size: var(--pf-fs-control); font-weight: var(--pf-fw-semibold); line-height: 1.2;
  text-decoration: none; white-space: nowrap; transition: background-color .15s ease, border-color .15s ease, color .15s ease, transform var(--pf-dur-press) var(--pf-ease-out);
}
.pf-btn:hover { background: var(--pf-action-hover); border-color: var(--pf-action-hover); color: var(--pf-action-text); }
.pf-btn--secondary { background: var(--pf-bg); border-color: var(--pf-line-strong); color: var(--pf-action); }
.pf-btn--secondary:hover { background: var(--pf-action-soft); border-color: var(--pf-action-soft-line); color: var(--pf-action); }
.pf-btn--accent { background: var(--pf-accent); border-color: var(--pf-accent); color: var(--pf-accent-text); }
.pf-btn--accent:hover { background: var(--pf-accent-hover); border-color: var(--pf-accent-hover); color: var(--pf-accent-text); }
.pf-btn--soft { background: var(--pf-action-soft); border-color: var(--pf-action-soft); color: var(--pf-action); } /* primary action repeated in lists */
.pf-btn--soft:hover { background: var(--pf-action); border-color: var(--pf-action); color: var(--pf-action-text); }
.pf-btn--sm { min-height: var(--pf-touch); padding: 0 14px; font-size: var(--pf-fs-meta); }
.pf-btn--block { width: 100%; }
.pf-btn[disabled] { opacity: .45; cursor: default; pointer-events: none; }
.pf-actions { display: flex; flex-wrap: wrap; gap: var(--pf-space-3); }

/* ========== Header ========== */
/* Smart sticky header: hides while scrolling down, returns on any scroll up (pf.js sets data-header on <html>). */
.pf-header { position: sticky; top: 0; z-index: 30; background: var(--pf-bg); border-bottom: 1px solid var(--pf-line); transition: transform var(--pf-dur) var(--pf-ease-out), box-shadow var(--pf-dur) var(--pf-ease-out); }
:root[data-header="hidden"] .pf-header { transform: translateY(-100%); }
:root[data-header="floating"] .pf-header { box-shadow: 0 1px 0 var(--pf-line), 0 6px 16px rgba(17, 19, 25, .06); }
:root[data-site-theme="dark"][data-header="floating"] .pf-header { box-shadow: 0 1px 0 var(--pf-line), 0 6px 16px rgba(0, 0, 0, .35); }
.pf-header__inner { display: flex; align-items: center; gap: var(--pf-space-5); min-height: var(--pf-header-h); }
/* Site logo: one-colour vector (mark + wordmark) in --pf-logo (indigo / near-white). Width as on propfirm.pl. */
.pf-logo { display: inline-flex; align-items: center; flex: none; color: var(--pf-logo); text-decoration: none; }
.pf-logo svg { display: block; width: var(--pf-logo-w); height: auto; }
.pf-logo:hover { color: var(--pf-logo); }
.pf-footer__logo { margin-bottom: var(--pf-space-4); }
.pf-footer__logo svg { width: var(--pf-logo-w-footer); }
.pf-nav { display: flex; align-items: center; gap: var(--pf-space-1); margin-left: auto; }
.pf-nav > a, .pf-nav summary {
  display: inline-flex; align-items: center; gap: 6px; min-height: var(--pf-touch); padding: 0 12px;
  border-radius: var(--pf-radius); color: var(--pf-text); font-size: var(--pf-fs-control); font-weight: var(--pf-fw-medium);
  text-decoration: none; cursor: pointer; list-style: none;
}
.pf-nav summary::-webkit-details-marker { display: none; }
.pf-nav summary::after { content: ""; width: 7px; height: 7px; margin-top: -4px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); opacity: .7; }
.pf-nav details[open] summary::after { margin-top: 3px; transform: rotate(225deg); }
.pf-nav > a:hover, .pf-nav summary:hover { background: var(--pf-surface); color: var(--pf-action); }
.pf-nav [aria-current="page"], .pf-nav [aria-current="true"] { color: var(--pf-action); box-shadow: inset 0 -2px 0 var(--pf-accent); border-radius: 0; }
.pf-nav details { position: relative; }
/* Pozycja z podmenu i stroną-hubem: etykieta jest linkiem do huba, osobny przycisk-strzałka rozwija podmenu (JS: pf.js, [data-pf-menu]) */
.pf-nav__split { position: relative; display: flex; align-items: center; }
.pf-nav__split > a { display: inline-flex; align-items: center; min-height: var(--pf-touch); padding: 0 6px 0 12px; border-radius: var(--pf-radius); color: var(--pf-text); font-size: var(--pf-fs-control); font-weight: var(--pf-fw-medium); text-decoration: none; }
.pf-nav__split > a:hover { background: var(--pf-surface); color: var(--pf-action); }
.pf-nav__toggle { display: inline-grid; place-items: center; width: 32px; height: var(--pf-touch); padding: 0; border: 0; border-radius: var(--pf-radius); background: transparent; color: var(--pf-text); cursor: pointer; }
.pf-nav__toggle:hover { background: var(--pf-surface); color: var(--pf-action); }
.pf-nav__toggle:focus-visible, .pf-nav__split > a:focus-visible { outline: 2px solid var(--pf-action); outline-offset: -2px; }
.pf-nav__toggle::after { content: ""; width: 7px; height: 7px; margin-top: -4px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); opacity: .7; }
.pf-nav__toggle[aria-expanded="true"]::after { margin-top: 3px; transform: rotate(225deg); }
.pf-nav__panel[hidden] { display: none; }
.pf-nav__panel {
  position: absolute; top: calc(100% + 8px); left: 0; min-width: 240px; padding: var(--pf-space-3);
  background: var(--pf-raised); border: 1px solid var(--pf-line); border-radius: var(--pf-radius-card); box-shadow: var(--pf-shadow-pop);
  display: grid; gap: 2px;
}
.pf-nav__panel a { display: flex; align-items: center; min-height: var(--pf-touch); padding: 0 12px; border-radius: var(--pf-radius); color: var(--pf-text); font-size: var(--pf-fs-control); text-decoration: none; }
.pf-nav__panel a:hover { background: var(--pf-surface); color: var(--pf-action); }
.pf-nav__panel--mega { left: auto; right: -160px; grid-template-columns: repeat(3, minmax(222px, 1fr)); gap: var(--pf-space-4); padding: var(--pf-space-5); }
.pf-nav__panel--cols-2 { left: 0; right: auto; grid-template-columns: repeat(2, minmax(210px, 1fr)); }
.pf-nav__group { margin: 0 0 var(--pf-space-2); padding: 0 12px; color: var(--pf-text-3); font-size: var(--pf-fs-eyebrow); font-weight: var(--pf-fw-heading); letter-spacing: var(--pf-ls-eyebrow); text-transform: uppercase; }
.pf-theme-toggle, .pf-menu-toggle {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: var(--pf-touch); min-height: var(--pf-touch); padding: 0 12px;
  border: 1px solid var(--pf-line); border-radius: var(--pf-radius); background: var(--pf-bg); color: var(--pf-text);
  font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-medium);
}
.pf-theme-toggle:hover, .pf-menu-toggle:hover { border-color: var(--pf-line-strong); background: var(--pf-surface); }
.pf-menu-toggle { display: none; padding: 0; }
.pf-search-toggle { display: inline-flex; align-items: center; justify-content: center; flex: none; width: var(--pf-touch); height: var(--pf-touch); padding: 0; border: 1px solid var(--pf-line); border-radius: var(--pf-radius); background: var(--pf-bg); color: var(--pf-text); }
.pf-search-toggle:hover, .pf-search-toggle[aria-expanded="true"] { border-color: var(--pf-line-strong); background: var(--pf-surface); }
.pf-search-toggle svg { width: 20px; height: 20px; }
.pf-header-search { padding: var(--pf-space-3) 0; border-top: 1px solid var(--pf-line); background: var(--pf-bg); }
.pf-header-search .pf-search { max-width: var(--pf-main); }
.pf-menu-toggle svg { width: 22px; height: 22px; }

@media (max-width: 980px) {
  .pf-header__inner { gap: var(--pf-space-2); }
  .pf-theme-toggle { margin-left: auto; padding: 0; }
  .pf-theme-toggle { order: 1; } .pf-search-toggle { order: 2; } .pf-menu-toggle { order: 3; } /* phone: search next to the menu button */
  .pf-theme-toggle__label { display: none; }
  .pf-menu-toggle { display: inline-flex; }
  .pf-nav {
    display: none; position: absolute; top: 100%; left: 0; right: 0; margin: 0;
    flex-direction: column; align-items: stretch; gap: 0; padding: var(--pf-space-2) var(--pf-gutter) var(--pf-space-5);
    background: var(--pf-bg); border-bottom: 1px solid var(--pf-line); box-shadow: var(--pf-shadow-pop);
    max-height: calc(100dvh - var(--pf-header-h)); overflow-y: auto; overscroll-behavior: contain;
  }
  .pf-header.is-open .pf-nav { display: flex; }
  .pf-nav__split { display: grid; grid-template-columns: minmax(0, 1fr) 52px; }
  .pf-nav__split > a { min-height: 52px; padding: 0 4px; border-bottom: 1px solid var(--pf-line); border-radius: 0; font-size: var(--pf-fs-body); }
  .pf-nav__toggle { width: 52px; height: 52px; border-bottom: 1px solid var(--pf-line); border-radius: 0; }
  .pf-nav__split > .pf-nav__panel { grid-column: 1 / -1; }
  .pf-nav > a, .pf-nav summary { display: flex; justify-content: space-between; min-height: 52px; padding: 0 4px; border-bottom: 1px solid var(--pf-line); border-radius: 0; font-size: var(--pf-fs-body); }
  .pf-nav [aria-current="page"], .pf-nav [aria-current="true"] { box-shadow: inset 3px 0 0 var(--pf-accent); padding-left: 12px; }
  .pf-nav__panel, .pf-nav__panel--mega { position: static; min-width: 0; padding: var(--pf-space-2) 0 var(--pf-space-3) var(--pf-space-3); border: 0; box-shadow: none; background: transparent; grid-template-columns: 1fr; gap: 0; }
  .pf-nav__group { margin-top: var(--pf-space-3); padding: 0; }
  .pf-nav__panel a { padding: 0; font-size: var(--pf-fs-body); }
}

/* ========== Breadcrumb ========== */
.pf-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: var(--pf-space-5) 0 0; color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-breadcrumb a { color: var(--pf-text-2); text-decoration: none; }
.pf-breadcrumb a:hover { color: var(--pf-action); text-decoration: underline; }
.pf-breadcrumb [aria-current] { color: var(--pf-text-3); max-width: 46ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pf-breadcrumb__sep { color: var(--pf-line-strong); }

/* ========== Page head (title block of every page except home hero) ========== */
.pf-page-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--pf-space-6); align-items: end; padding: var(--pf-space-7) 0 var(--pf-space-6); }
.pf-page-head h1 { max-width: 18ch; }
.pf-page-head .pf-lead { margin-top: var(--pf-space-4); }
.pf-page-head__aside { max-width: 360px; }
@media (max-width: 800px) { .pf-page-head { grid-template-columns: 1fr; padding-top: var(--pf-space-6); gap: var(--pf-space-5); } }
/* H1 na pełną szerokość kontenera (ranking): karta .pf-page-head__aside zostaje po prawej przy podtytule i statystykach; mobile bez zmian */
@media (min-width: 801px) {
  .pf-page-head--title-wide { row-gap: 0; align-items: end; }
  .pf-page-head--title-wide > div:first-child { display: contents; }
  .pf-page-head--title-wide > div:first-child > .pf-eyebrow, .pf-page-head--title-wide > div:first-child > h1 { grid-column: 1 / -1; }
  .pf-page-head--title-wide > div:first-child > h1 { max-width: 28ch; }
  .pf-page-head--title-wide > div:first-child > .pf-lead, .pf-page-head--title-wide > div:first-child > .pf-stats { grid-column: 1; }
  .pf-page-head--title-wide > .pf-page-head__aside { grid-column: 2; grid-row: 3 / span 2; }
}

/* ========== Hero (home only) ========== */
.pf-hero { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: var(--pf-space-8); align-items: center; padding-block: var(--pf-space-8) var(--pf-space-6); }
.pf-hero .pf-display { margin: 0; }
.pf-hero .pf-lead { margin: var(--pf-space-5) 0 0; }
.pf-hero .pf-actions { margin-top: var(--pf-space-6); }
.pf-hero__links { display: flex; flex-wrap: wrap; gap: var(--pf-space-2) var(--pf-space-5); margin-top: var(--pf-space-5); }
/* Key figures under the hero — typography only */
.pf-stats { display: flex; flex-wrap: wrap; gap: var(--pf-space-4) var(--pf-space-7); margin: var(--pf-space-6) 0 0; padding-top: var(--pf-space-5); border-top: 1px solid var(--pf-line); }
.pf-stats__item { display: flex; flex-direction: column-reverse; gap: 2px; }
.pf-stats dd { margin: 0; color: var(--pf-text); font-size: var(--pf-fs-h2); font-weight: var(--pf-fw-heading); line-height: 1; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.pf-stats dt { color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
@media (max-width: 640px) { .pf-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--pf-space-4); } }
@media (max-width: 980px) { .pf-hero { grid-template-columns: 1fr; gap: var(--pf-space-6); padding-block: var(--pf-space-6); } }
@media (max-width: 640px) { .pf-hero .pf-actions .pf-btn { width: 100%; } }

/* ========== Panel (surface box with a title) ========== */
.pf-panel { padding: var(--pf-space-5); background: var(--pf-surface); border-radius: var(--pf-radius-card); }
.pf-panel__title { display: flex; justify-content: space-between; margin: 0 0 var(--pf-space-2); font-size: var(--pf-fs-control); font-weight: var(--pf-fw-semibold); }

/* ========== Link list (kicker + title + arrow) ========== */
.pf-link-list { display: grid; }
.pf-link-list a { display: grid; grid-template-columns: 1fr auto; gap: 2px var(--pf-space-4); align-items: center; padding: var(--pf-space-4) 0; border-bottom: 1px solid var(--pf-line); color: var(--pf-text); text-decoration: none; }
.pf-link-list a:last-child { border-bottom: 0; }
.pf-link-list small { grid-column: 1; color: var(--pf-text-3); font-size: var(--pf-fs-eyebrow); font-weight: var(--pf-fw-semibold); letter-spacing: var(--pf-ls-eyebrow); text-transform: uppercase; }
.pf-link-list strong { grid-column: 1; font-size: var(--pf-fs-h4); font-weight: var(--pf-fw-semibold); line-height: var(--pf-lh-snug); letter-spacing: -0.01em; }
.pf-link-list span[aria-hidden] { grid-column: 2; grid-row: 1 / span 2; color: var(--pf-action); }
.pf-link-list a:hover strong { color: var(--pf-action); }

/* ========== Section head accent (short yellow rule) ========== */
.pf-section-head--accent { padding-top: var(--pf-space-5); position: relative; }
.pf-section-head--accent::before { content: ""; position: absolute; top: 0; left: 0; width: 48px; height: 3px; border-radius: 2px; background: var(--pf-accent); }

/* ========== Tabs / chips (segmented filters) ========== */
.pf-tabs { display: flex; flex-wrap: wrap; gap: var(--pf-space-2); margin-bottom: var(--pf-space-5); }
.pf-tab {
  display: inline-flex; align-items: center; gap: 8px; min-height: var(--pf-touch); padding: 0 16px;
  border: 1px solid var(--pf-line); border-radius: var(--pf-radius); background: var(--pf-bg); color: var(--pf-text-2);
  font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); text-decoration: none;
}
.pf-tab:hover { border-color: var(--pf-line-strong); color: var(--pf-text); }
.pf-tab[aria-selected="true"], .pf-tab[aria-pressed="true"], .pf-tab[aria-current="page"] { background: var(--pf-action-soft); border-color: var(--pf-action-soft-line); color: var(--pf-action); }
.pf-tab__count { padding: 1px 7px; border-radius: var(--pf-radius-sm); background: var(--pf-surface); color: var(--pf-text-2); font-size: var(--pf-fs-eyebrow); }
.pf-tab[aria-selected="true"] .pf-tab__count, .pf-tab[aria-pressed="true"] .pf-tab__count { background: var(--pf-action); color: var(--pf-action-text); }
.pf-tabs--large .pf-tab { min-height: var(--pf-control-h); padding: 0 20px; font-size: var(--pf-fs-control); }

/* ========== Form fields ========== */
.pf-field { display: grid; gap: 6px; min-width: 0; }
.pf-field__label { color: var(--pf-text-2); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); }
.pf-input, .pf-select {
  width: 100%; min-height: var(--pf-control-h); padding: 0 14px;
  border: 1px solid var(--pf-line-strong); border-radius: var(--pf-radius); background: var(--pf-bg); color: var(--pf-text);
  font-size: var(--pf-fs-control);
}
.pf-select { padding-right: 36px; appearance: none; -webkit-appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: calc(100% - 19px) 50%, calc(100% - 14px) 50%; background-size: 5px 5px; background-repeat: no-repeat; }
.pf-input::placeholder { color: var(--pf-text-3); }
.pf-input:focus, .pf-select:focus { outline: 3px solid var(--pf-focus); outline-offset: 0; border-color: var(--pf-action); }
.pf-check { display: inline-flex; align-items: center; gap: 10px; min-height: var(--pf-touch); color: var(--pf-text); font-size: var(--pf-fs-control); cursor: pointer; }
.pf-check input { width: 20px; height: 20px; accent-color: var(--pf-action); }
.pf-search { display: flex; gap: var(--pf-space-2); }
.pf-search .pf-input { min-height: var(--pf-touch); }
.pf-search .pf-btn { min-height: var(--pf-touch); padding: 0 16px; }
@media (max-width: 800px) { .pf-input, .pf-select { font-size: var(--pf-fs-input); } }

/* ========== Logo tile ========== */
.pf-logo-tile { display: inline-grid; place-items: center; flex: none; width: 48px; height: 48px; padding: 6px; border: 1px solid var(--pf-line); border-radius: var(--pf-radius-logo); background: var(--pf-logo-plate); overflow: hidden; }
.pf-logo-tile img { width: 100%; height: 100%; object-fit: contain; border-radius: 0; }
.pf-logo-tile--sm { width: 36px; height: 36px; padding: 4px; border-radius: var(--pf-radius); }
.pf-logo-tile--lg { width: 72px; height: 72px; padding: 9px; }

/* ========== Badges, tags ========== */
.pf-badge { display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px; border-radius: var(--pf-radius-sm); background: var(--pf-surface); color: var(--pf-text-2); font-size: var(--pf-fs-eyebrow); font-weight: var(--pf-fw-semibold); line-height: 1.4; text-decoration: none; white-space: nowrap; }
.pf-badge--brand { background: var(--pf-action-soft); color: var(--pf-action); }
.pf-badge--promo { background: var(--pf-promo-bg); color: var(--pf-promo-text); }
.pf-badge--contest { background: var(--pf-contest-bg); color: var(--pf-contest-text); }
.pf-badge--outline { background: transparent; border: 1px solid var(--pf-line); }
.pf-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.pf-tag { display: inline-flex; padding: 2px 8px; border: 1px solid var(--pf-line); border-radius: var(--pf-radius-sm); color: var(--pf-text-2); font-size: var(--pf-fs-meta); line-height: 1.5; }
.pf-platforms { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.pf-platforms img { width: 28px; height: 28px; padding: 3px; border: 1px solid var(--pf-line); border-radius: var(--pf-radius-sm); background: var(--pf-logo-plate); object-fit: contain; }
.pf-verified { display: inline-grid; place-items: center; width: 28px; height: 28px; color: var(--pf-action); vertical-align: middle; }
.pf-verified svg { width: 22px; height: 22px; }

/* Discount — always small; amount, never a large graphic */
.pf-discount { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: var(--pf-radius-sm); background: var(--pf-promo-bg); color: var(--pf-promo-text); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-heading); font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ========== Score (PropIndeks, community, VideoWiedza) ========== */
.pf-score { display: inline-grid; gap: 2px; font-variant-numeric: tabular-nums; }
.pf-score__value { color: var(--pf-action); font-size: var(--pf-fs-score); font-weight: var(--pf-fw-heading); line-height: 1; letter-spacing: -0.02em; }
.pf-score__value small { color: var(--pf-text-3); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-medium); letter-spacing: 0; }
.pf-score__label { color: var(--pf-text-3); font-size: var(--pf-fs-eyebrow); font-weight: var(--pf-fw-medium); }
.pf-score--lg .pf-score__value { font-size: var(--pf-fs-score-lg); }
.pf-score--sm .pf-score__value { font-size: var(--pf-fs-h4); }

/* ========== Coupon code with copy ========== */
.pf-code { display: inline-flex; align-items: stretch; min-height: var(--pf-touch); border: 1px dashed var(--pf-action-soft-line); border-radius: var(--pf-radius); background: var(--pf-action-soft); overflow: hidden; }
.pf-code__label { display: inline-flex; align-items: center; padding: 0 0 0 12px; color: var(--pf-text-2); font-size: var(--pf-fs-eyebrow); font-weight: var(--pf-fw-semibold); letter-spacing: var(--pf-ls-eyebrow); text-transform: uppercase; }
.pf-code__value { display: inline-flex; align-items: center; padding: 0 10px; color: var(--pf-text); font-family: var(--pf-font-mono); font-size: var(--pf-fs-control); font-weight: var(--pf-fw-semibold); letter-spacing: .04em; }
.pf-code__copy { display: inline-flex; align-items: center; gap: 6px; padding: 0 12px; border: 0; border-left: 1px dashed var(--pf-action-soft-line); background: transparent; color: var(--pf-action); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); }
.pf-code__copy:hover { background: var(--pf-bg); }
.pf-code--block { display: flex; width: 100%; }
.pf-code--block .pf-code__value { flex: 1; }
@container (max-width: 240px) { /* very narrow offer card: code on one line, „Kopiuj” below */
  .pf-code__label { display: none; }
  .pf-code--block { flex-wrap: wrap; }
  .pf-code--block .pf-code__value { justify-content: center; min-height: var(--pf-touch); }
  .pf-code--block .pf-code__copy { flex-basis: 100%; justify-content: center; min-height: var(--pf-touch); border-left: 0; border-top: 1px dashed var(--pf-action-soft-line); }
}

/* ========== Firm list (ranking rows: home + ranking page) ========== */
.pf-firm-list { border-top: 1px solid var(--pf-line); --pf-firm-cols: 40px minmax(0, 1.6fr) 100px minmax(0, 1fr) 236px; }
.pf-firm-list__labels { display: grid; grid-template-columns: var(--pf-firm-cols); gap: var(--pf-space-4); padding: var(--pf-space-3) var(--pf-space-4); background: var(--pf-surface); color: var(--pf-text-3); font-size: var(--pf-fs-eyebrow); font-weight: var(--pf-fw-semibold); }
.pf-firm { border-bottom: 1px solid var(--pf-line); }
.pf-firm__row { display: grid; grid-template-columns: var(--pf-firm-cols); gap: var(--pf-space-4); align-items: center; padding: var(--pf-space-4); }
.pf-firm__rank { color: var(--pf-text-3); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); font-variant-numeric: tabular-nums; }
.pf-firm__identity { display: flex; align-items: center; gap: var(--pf-space-3); min-width: 0; }
.pf-firm__name { display: flex; align-items: center; gap: 4px; font-size: var(--pf-fs-body); font-weight: var(--pf-fw-semibold); line-height: 1.3; }
.pf-firm__name a { color: var(--pf-text); text-decoration: none; }
.pf-firm__name a:hover { color: var(--pf-action); text-decoration: underline; }
.pf-firm__name .pf-verified { width: 24px; height: 24px; }
.pf-firm__name .pf-verified svg { width: 18px; height: 18px; }
.pf-firm__sub { display: block; margin-top: 2px; color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-firm__info { display: flex; flex-wrap: wrap; gap: 6px var(--pf-space-3); align-items: center; min-width: 0; }
.pf-firm__toggle { display: inline-flex; align-items: center; gap: 6px; min-height: var(--pf-touch); padding: 0; border: 0; background: none; color: var(--pf-action); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); }
.pf-firm__toggle:hover { color: var(--pf-action-hover); text-decoration: underline; }
.pf-firm__actions { display: grid; grid-template-columns: 1fr 1fr; gap: var(--pf-space-2); }
.pf-firm__actions .pf-btn { padding: 0 12px; }
.pf-firm__detail { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--pf-space-5); padding: 0 var(--pf-space-4) var(--pf-space-5) calc(40px + var(--pf-space-4) * 2); }
.pf-firm__detail h3 { margin-bottom: var(--pf-space-2); color: var(--pf-text-3); font-size: var(--pf-fs-eyebrow); font-weight: var(--pf-fw-semibold); letter-spacing: var(--pf-ls-eyebrow); text-transform: uppercase; }
.pf-firm__mobile-only { display: none; }
.pf-firm-list__foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--pf-space-3); padding-top: var(--pf-space-4); }
.pf-firm-list__foot p { max-width: 520px; color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
@media (min-width: 901px) { .pf-firm-list__labels ~ .pf-firm .pf-score__label { display: none; } }

/* Full ranking: + community score, code and "Szczegóły" in the data column */
.pf-firm-list--full { --pf-firm-cols: 32px minmax(0, 1.5fr) 84px 96px minmax(0, 1.4fr) 236px; }
@media (min-width: 901px) { .pf-rank-embed .pf-firm-list, .pf-rank-embed .pf-firm-list--full { --pf-firm-cols: 28px minmax(0, 1.4fr) 92px 100px minmax(0, 1fr) 188px; } .pf-rank-embed .pf-firm__row, .pf-rank-embed .pf-firm-list__labels { gap: var(--pf-space-3); padding-inline: var(--pf-space-3); } } /* lista firm w treści wpisu: węższa kolumna niż pełny ranking */
.pf-firm__community .pf-score__value { color: var(--pf-text); }
.pf-firm__code { margin-left: -6px; }

/* Phone: three lines — rank·logo·name | score+discount, then Recenzja | Oferta | details */
@media (max-width: 900px) {
  .pf-firm-list, .pf-firm-list--full { --pf-firm-cols: 1fr; }
  .pf-firm-list__labels { display: none; }
  .pf-firm__row { grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "rank id score" "rank id promo" "act act more"; gap: var(--pf-space-1) var(--pf-space-3); padding: var(--pf-space-4) 0; }
  .pf-firm__rank { grid-area: rank; align-self: center; min-width: 18px; font-size: var(--pf-fs-meta); }
  .pf-firm__identity { grid-area: id; align-self: center; }
  .pf-firm__identity .pf-logo-tile { width: 40px; height: 40px; padding: 5px; }
  .pf-firm__row > .pf-score { grid-area: score; align-self: end; text-align: right; }
  .pf-firm__row > .pf-score .pf-score__value { font-size: var(--pf-fs-score-row); }
  .pf-firm__info { display: contents; }
  .pf-firm__info > .pf-discount { grid-area: promo; justify-self: end; align-self: start; }
  .pf-firm__community, .pf-firm__code, .pf-firm__nopromo { display: none; }
  .pf-firm__toggle { grid-area: more; justify-content: center; width: var(--pf-touch); border: 1px solid var(--pf-line); border-radius: var(--pf-radius); }
  .pf-firm__toggle span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .pf-firm__actions { grid-area: act; margin-top: var(--pf-space-3); }
  .pf-firm__toggle { margin-top: var(--pf-space-3); }
  .pf-firm__detail { padding: 0 0 var(--pf-space-5); }
  .pf-firm__mobile-only { display: block; }
}

/* ========== Offer card (promotion with code) ========== */
.pf-offer-card { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--pf-space-4); align-content: start; padding: var(--pf-space-5); border: 1px solid var(--pf-line); border-radius: var(--pf-radius-card); background: var(--pf-raised); container-type: inline-size; }
.pf-offer-card__head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--pf-space-2) var(--pf-space-3); } /* narrow card (960 px, 3-4 columns): the score drops under the name */
.pf-offer-card__name { flex: 1; min-width: 0; overflow-wrap: anywhere; color: var(--pf-text); font-size: var(--pf-fs-body); font-weight: var(--pf-fw-semibold); text-decoration: none; }
.pf-offer-card__name:hover { color: var(--pf-action); }
.pf-offer-card__deal { display: flex; flex-wrap: wrap; align-items: center; gap: var(--pf-space-2); color: var(--pf-text-2); font-size: var(--pf-fs-meta); }
.pf-offer-card .pf-btn { width: 100%; }
.pf-offer-card__note { display: flex; align-items: center; min-height: var(--pf-touch); margin: 0; padding: 0 12px; border-radius: var(--pf-radius); background: var(--pf-surface); color: var(--pf-text-2); font-size: var(--pf-fs-meta); }

/* ========== News item (firm logo + firm + title [+ date]) ========== */
.pf-news-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--pf-space-6); }
.pf-news-columns__title { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--pf-space-2); padding-bottom: var(--pf-space-3); border-bottom: 2px solid var(--pf-text); color: var(--pf-text); font-size: var(--pf-fs-control); font-weight: var(--pf-fw-semibold); text-decoration: none; }
.pf-news-columns__title:hover { color: var(--pf-action); }
.pf-news-item { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: var(--pf-space-3); padding: var(--pf-space-4) 0; border-bottom: 1px solid var(--pf-line); color: var(--pf-text); text-decoration: none; }
.pf-news-item__firm { display: block; color: var(--pf-text-3); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); }
.pf-news-item__title { display: block; margin-top: 2px; font-size: var(--pf-fs-control); font-weight: var(--pf-fw-medium); line-height: var(--pf-lh-snug); }
.pf-news-item__date { display: block; margin-top: 4px; color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-news-item:hover .pf-news-item__title { color: var(--pf-action); }
.pf-news-item--plain { grid-template-columns: 1fr; }
@media (max-width: 900px) { .pf-news-columns { grid-template-columns: 1fr; gap: var(--pf-space-5); } }

/* ========== Editorial card (article / guide / analysis) ========== */
.pf-card { display: grid; gap: var(--pf-space-3); align-content: start; color: var(--pf-text); }
.pf-card__media { display: block; aspect-ratio: var(--pf-ratio-post); overflow: hidden; border-radius: var(--pf-radius-card); background: var(--pf-surface); }
.pf-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--pf-dur) var(--pf-ease-out); }
@media (hover: hover) and (pointer: fine) { .pf-card:hover .pf-card__media img { transform: scale(1.02); } } /* no sticky zoom after a tap */
.pf-card__title { font-size: var(--pf-fs-h4); font-weight: var(--pf-fw-semibold); line-height: var(--pf-lh-snug); letter-spacing: -0.01em; }
.pf-card__title a { color: inherit; text-decoration: none; }
.pf-card__title a:hover { color: var(--pf-action); }
.pf-card__excerpt { color: var(--pf-text-2); font-size: var(--pf-fs-control); line-height: var(--pf-lh-body); }
.pf-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--pf-space-2) var(--pf-space-3); color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-card--featured .pf-card__title { font-size: var(--pf-fs-h3); }
.pf-card--row { grid-template-columns: 160px minmax(0, 1fr); gap: var(--pf-space-4); align-items: start; padding: var(--pf-space-4) 0; border-bottom: 1px solid var(--pf-line); }
.pf-card--row:first-child { padding-top: 0; }
.pf-card--row .pf-card__body { display: grid; gap: 6px; }
.pf-card--row .pf-card__title { font-size: var(--pf-fs-body); }
.pf-editorial { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--pf-space-7); }
@media (max-width: 900px) { .pf-editorial { grid-template-columns: 1fr; gap: var(--pf-space-5); } }
@media (max-width: 480px) { .pf-card--row { grid-template-columns: 112px minmax(0, 1fr); } }

/* ========== Feature (one highlighted publication, e.g. Prop Monitor) ========== */
.pf-feature { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: var(--pf-space-5); align-items: center; margin-top: var(--pf-space-6); padding: var(--pf-space-5); border: 1px solid var(--pf-line); border-radius: var(--pf-radius-card); background: var(--pf-surface); }
.pf-feature__top { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: var(--pf-space-3); }
.pf-feature__top .pf-eyebrow { margin: 0; }
.pf-feature .pf-card__media { aspect-ratio: var(--pf-ratio-post); }
.pf-feature__body { display: grid; gap: var(--pf-space-2); }
@media (max-width: 640px) { .pf-feature { grid-template-columns: 1fr; } }

/* ========== Video card ========== */
.pf-video-card { display: grid; gap: var(--pf-space-3); align-content: start; }
.pf-video-card__media { position: relative; display: block; text-decoration: none; aspect-ratio: var(--pf-ratio-video); overflow: hidden; border-radius: var(--pf-radius-card); background: var(--pf-surface); }
.pf-video-card__media img { width: 100%; height: 100%; object-fit: cover; }
.pf-video-card__duration { position: absolute; right: 8px; bottom: 8px; padding: 2px 7px; border-radius: var(--pf-radius-sm); background: var(--pf-overlay); color: var(--pf-on-overlay); font-size: var(--pf-fs-eyebrow); font-weight: var(--pf-fw-semibold); font-variant-numeric: tabular-nums; }
.pf-video-card__title { font-size: var(--pf-fs-control); font-weight: var(--pf-fw-semibold); line-height: var(--pf-lh-snug); letter-spacing: 0; }
.pf-video-card__title a { color: var(--pf-text); text-decoration: none; }
.pf-video-card__title a:hover { color: var(--pf-action); }
.pf-video-card__meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px var(--pf-space-3); color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-video-card__meta strong { color: var(--pf-action); }

/* ========== More (reveal additional items) ========== */
.pf-more { margin-top: var(--pf-space-5); }
.pf-more > summary { display: inline-flex; align-items: center; gap: 8px; min-height: var(--pf-control-h); padding: 0 22px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-radius); color: var(--pf-action); font-size: var(--pf-fs-control); font-weight: var(--pf-fw-semibold); list-style: none; cursor: pointer; }
.pf-more > summary::-webkit-details-marker { display: none; }
.pf-more > summary::after { content: "↓" / ""; }
.pf-more[open] > summary { display: none; }
.pf-more > :not(summary) { margin-top: var(--pf-space-5); }

/* ========== FAQ (details list) ========== */
.pf-faq { border-top: 1px solid var(--pf-line); }
.pf-faq details { border-bottom: 1px solid var(--pf-line); }
.pf-faq summary, .pf-content details > summary {
  position: relative; display: block; min-height: 58px; padding: 17px 44px 17px 0;
  color: var(--pf-text); font-size: var(--pf-fs-h4); font-weight: var(--pf-fw-medium); line-height: 1.5; list-style: none; cursor: pointer;
}
.pf-faq summary::-webkit-details-marker, .pf-content details > summary::-webkit-details-marker { display: none; }
.pf-faq summary::after, .pf-content details > summary::after { position: absolute; right: 8px; top: 50%; width: 14px; height: 14px; margin-top: -7px; color: var(--pf-text-2); }
.pf-faq details[open] summary::after, .pf-content details[open] > summary::after { color: var(--pf-action); }
.pf-faq summary:hover, .pf-content details > summary:hover { color: var(--pf-action); }
.pf-faq__answer, .pf-content details > :not(summary) { padding: 0 44px var(--pf-space-5) 0; color: var(--pf-text-2); font-size: var(--pf-fs-body); line-height: var(--pf-lh-reading); }
.pf-faq-layout { display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: var(--pf-space-8); }
.pf-faq-layout__intro p { margin-top: var(--pf-space-3); color: var(--pf-text-2); }
.pf-faq-layout__intro .pf-btn { margin-top: var(--pf-space-5); }
@media (max-width: 900px) { .pf-faq-layout { grid-template-columns: 1fr; gap: var(--pf-space-5); } }

/* ========== CTA band ========== */
.pf-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--pf-space-5); padding: var(--pf-space-6); border-radius: var(--pf-radius-card); background: var(--pf-surface); border: 1px solid var(--pf-line); }
.pf-cta h2 { font-size: var(--pf-fs-h3); }
.pf-cta p { margin-top: var(--pf-space-2); color: var(--pf-text-2); }
@media (max-width: 640px) { .pf-cta { padding: var(--pf-space-5); } .pf-cta .pf-actions { width: 100%; } .pf-cta .pf-btn { width: 100%; } }

/* ========== Facts (key figures row) ========== */
.pf-facts { display: grid; grid-template-columns: repeat(var(--pf-facts-cols, 4), minmax(0, 1fr)); border-top: 1px solid var(--pf-line); border-bottom: 1px solid var(--pf-line); }
.pf-facts__item { display: grid; gap: 4px; align-content: start; padding: var(--pf-space-4) var(--pf-space-5) var(--pf-space-4) 0; }
.pf-facts__item + .pf-facts__item { padding-left: var(--pf-space-5); border-left: 1px solid var(--pf-line); }
.pf-facts__label { color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-facts__value { min-height: calc(2em * 1.4); /* two lines reserved: rows keep one height whatever the data */ color: var(--pf-text); font-size: var(--pf-fs-body); font-weight: var(--pf-fw-semibold); line-height: var(--pf-lh-snug); }
.pf-facts__value a { color: var(--pf-action); text-decoration: none; }
@media (max-width: 800px) {
  .pf-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pf-facts__item, .pf-facts__item + .pf-facts__item { padding: var(--pf-space-3) var(--pf-space-3) var(--pf-space-3) 0; border-left: 0; }
  .pf-facts__item:nth-child(even) { padding-left: var(--pf-space-3); border-left: 1px solid var(--pf-line); }
  .pf-facts__item:nth-child(n+3) { border-top: 1px solid var(--pf-line); }
}

/* ========== Scoreboard (review aside) ========== */
.pf-scoreboard { display: grid; gap: var(--pf-space-4); padding: var(--pf-space-5); border: 1px solid var(--pf-line); border-radius: var(--pf-radius-card); background: var(--pf-raised); }
.pf-scoreboard__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--pf-space-3); align-items: end; }
.pf-scoreboard__row + .pf-scoreboard__row { padding-top: var(--pf-space-4); border-top: 1px solid var(--pf-line); }
.pf-scoreboard__label { display: flex; align-items: center; gap: var(--pf-space-2); color: var(--pf-text); font-size: var(--pf-fs-control); font-weight: var(--pf-fw-semibold); }
.pf-scoreboard p { grid-column: 1 / -1; margin: 0; color: var(--pf-text-3); font-size: var(--pf-fs-meta); }

/* ========== Table of contents ========== */
.pf-toc { position: sticky; top: calc(var(--pf-sticky-top) + var(--pf-space-5)); align-self: start; transition: top var(--pf-dur) var(--pf-ease-out); } /* moves with the header */
.pf-toc__title { margin: 0 0 var(--pf-space-2); color: var(--pf-text-3); font-size: var(--pf-fs-eyebrow); font-weight: var(--pf-fw-semibold); letter-spacing: var(--pf-ls-eyebrow); text-transform: uppercase; }
.pf-toc nav { display: grid; border-left: 1px solid var(--pf-line); }
.pf-toc a { display: flex; align-items: center; min-height: 38px; margin-left: -1px; padding: 0 var(--pf-space-3); border-left: 2px solid transparent; color: var(--pf-text-2); font-size: var(--pf-fs-meta); text-decoration: none; }
.pf-toc a:hover { color: var(--pf-action); }
.pf-toc a[aria-current="true"] { border-left-color: var(--pf-action); color: var(--pf-action); font-weight: var(--pf-fw-semibold); }
@media (max-width: 1080px) {
  .pf-toc { position: sticky; top: var(--pf-sticky-top); z-index: 5; margin: 0 calc(var(--pf-gutter) * -1); padding: 0 var(--pf-gutter); background: var(--pf-bg); border-bottom: 1px solid var(--pf-line); }
  .pf-toc__title { display: none; }
  .pf-toc nav { display: flex; gap: var(--pf-space-1); overflow-x: auto; border: 0; scrollbar-width: none; }
  .pf-toc nav::-webkit-scrollbar { display: none; }
  /* wskazówka przewijania (PFQA-01): spis wychodzi poza ekran — prawa krawędź zanika, ostatni link ma zapas; przewijanie dotykiem, scroll-snap */
  .pf-toc nav { padding-right: 28px; scroll-snap-type: x proximity; -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 32px), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 32px), transparent); }
  .pf-toc a { scroll-snap-align: start; }
  .pf-toc a { flex: none; min-height: var(--pf-touch); margin: 0; border-left: 0; border-bottom: 2px solid transparent; white-space: nowrap; }
  .pf-toc a[aria-current="true"] { border-bottom-color: var(--pf-action); }
}

/* ========== Pros / cons ========== */
.pf-pros-cons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--pf-space-5); }
.pf-pros-cons__col { padding: var(--pf-space-5); border: 1px solid var(--pf-line); border-radius: var(--pf-radius-card); }
.pf-pros-cons__col h3 { display: flex; align-items: center; gap: var(--pf-space-2); margin-bottom: var(--pf-space-3); font-size: var(--pf-fs-h4); }
.pf-pros-cons__col h3::before { content: ""; flex: none; width: 22px; height: 22px; border-radius: 50%; color: var(--pf-positive);
  background: linear-gradient(currentColor, currentColor) center / 10px 2px no-repeat, linear-gradient(currentColor, currentColor) center / 2px 10px no-repeat, var(--pf-contest-bg); }
.pf-pros-cons__col--cons h3::before { color: var(--pf-negative); background: linear-gradient(currentColor, currentColor) center / 10px 2px no-repeat, var(--pf-surface); }
.pf-pros-cons ul { display: grid; gap: var(--pf-space-2); list-style: none; }
.pf-pros-cons li { position: relative; padding-left: 16px; color: var(--pf-text-2); font-size: var(--pf-fs-control); line-height: var(--pf-lh-body); }
.pf-pros-cons li::before { content: ""; position: absolute; left: 0; top: .7em; width: 6px; height: 6px; border-radius: 50%; background: var(--pf-line-strong); }
.pf-pros-cons details { margin-top: var(--pf-space-3); }
.pf-pros-cons details summary { display: inline-flex; align-items: center; gap: 6px; min-height: var(--pf-touch); color: var(--pf-action); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); list-style: none; cursor: pointer; }
.pf-pros-cons details summary::-webkit-details-marker { display: none; }
.pf-pros-cons details[open] summary { display: none; }
.pf-pros-cons details ul { margin-top: var(--pf-space-2); }
@media (max-width: 700px) { .pf-pros-cons { grid-template-columns: 1fr; } }

/* ========== Fold (collapsible review section with preview) ========== */
.pf-fold { border-bottom: 1px solid var(--pf-line); }
.pf-fold > summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--pf-space-4); align-items: start; padding: var(--pf-space-5) 0; list-style: none; cursor: pointer; }
.pf-fold > summary::-webkit-details-marker { display: none; }
.pf-fold__title { font-size: var(--pf-fs-h2); }
.pf-fold__preview { display: block; margin-top: var(--pf-space-2); color: var(--pf-text-2); font-size: var(--pf-fs-control); font-weight: var(--pf-fw-regular); line-height: var(--pf-lh-body); }
.pf-fold[open] .pf-fold__preview { display: none; }
.pf-fold__action { display: inline-flex; align-items: center; gap: 6px; min-height: calc(var(--pf-fs-h2) * 1.2); /* same height as the title line, so text and icon sit on its centre */ color: var(--pf-action); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); white-space: nowrap; }
.pf-fold__content { padding-bottom: var(--pf-space-6); }
.pf-fold-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--pf-space-2); padding: var(--pf-space-3) 0; border-bottom: 1px solid var(--pf-line); color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-fold-tools button { min-height: var(--pf-touch); padding: 0 var(--pf-space-2); border: 0; background: none; color: var(--pf-action); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); }
.pf-fold-tools button:hover { color: var(--pf-action-hover); text-decoration: underline; }

/* ========== Price table (review pricing) ========== */
.pf-filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: var(--pf-space-3); align-items: end; margin: var(--pf-space-4) 0; }
.pf-filters--pricing { grid-template-columns: repeat(4, minmax(0, 1fr)) auto; }
.pf-filters--pricing > .pf-btn { align-self: end; }
@media (max-width: 760px) { .pf-filters--pricing { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pf-filters--pricing > .pf-btn { grid-column: 1 / -1; } }
.pf-table.pf-price-table { min-width: 760px; }
.pf-price-table td, .pf-price-table th { vertical-align: middle; }
.pf-price-table strong { font-weight: var(--pf-fw-semibold); }
.pf-price-table small { display: block; color: var(--pf-text-3); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-regular); }
.pf-price-table__price { white-space: nowrap; }
.pf-price-table__line { display: block; }
.pf-price-table__price a { display: inline-block; margin-top: 2px; font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); text-decoration: none; }
.pf-price-table__toggle { margin-top: 4px; padding: 0; border: 0; background: none; color: var(--pf-action); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); min-height: 32px; }
.pf-price-table__toggle:hover { color: var(--pf-action-hover); text-decoration: underline; }
.pf-price-table__detail > td { background: var(--pf-surface); }
.pf-price-table__detail dl { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(8ch, 1fr); gap: 4px var(--pf-space-4); margin: 0 0 var(--pf-space-4); } /* 1.4.3: was max-content 1fr — a long label pushed the value out of the column */
.pf-price-table__detail dt { color: var(--pf-text-3); min-width: 0; overflow-wrap: anywhere; }
.pf-price-table__detail dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.pf-price-table__detail section { min-width: 0; }
.pf-price-table__detail h3 { margin: 0 0 var(--pf-space-2); font-size: var(--pf-fs-control); }
.pf-price-table__sections { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: var(--pf-space-5); } /* 1.4.3: columns never narrower than 300 px: 3–4 wide, 2 around 900–1100 px, 1 below ~650 px */
.pf-reveal__btn::after { content: ""; width: 8px; height: 8px; margin-top: -4px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); }
.pf-reveal__btn[aria-expanded="true"]::after { margin-top: 4px; transform: rotate(225deg); }
.pf-reveal { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--pf-space-3); margin-top: var(--pf-space-4); color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-reveal--end { justify-content: flex-end; }
.pf-results-count { margin: var(--pf-space-3) 0 var(--pf-space-3); }
@media (max-width: 800px) {
  .pf-table.pf-price-table { min-width: 0; }
  .pf-price-table__toggle { min-height: var(--pf-touch); }
  .pf-price-table thead { display: none; }
  .pf-price-table tbody { display: block; border-bottom: 1px solid var(--pf-line); }
  .pf-price-table tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pf-price-table .pf-price-table__main > * { border: 0; padding: 6px 14px; }
  .pf-price-table .pf-price-table__main > :first-child { grid-column: 1 / -1; padding-top: 14px; }
  .pf-price-table .pf-price-table__main > [data-label]:not(:first-child)::before { content: attr(data-label); display: block; color: var(--pf-text-3); font-size: var(--pf-fs-eyebrow); }
  .pf-price-table .pf-price-table__price { grid-column: 1 / -1; padding-bottom: 14px; }
  .pf-price-table__detail { grid-template-columns: 1fr; }
  .pf-price-table__detail > td { display: block; }
}

/* ========== Promo box (current offer with code) ========== */
.pf-promo { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--pf-space-5); align-items: center; padding: var(--pf-space-5); border: 1px solid var(--pf-line); border-left: 3px solid var(--pf-accent); border-radius: var(--pf-radius-card); }
.pf-promo h3 { display: flex; align-items: center; gap: var(--pf-space-2); margin: 0 0 4px; font-size: var(--pf-fs-h4); }
.pf-promo p { color: var(--pf-text-2); font-size: var(--pf-fs-control); }
.pf-promo__actions { display: flex; flex-wrap: wrap; gap: var(--pf-space-3); align-items: center; }
@media (max-width: 700px) { .pf-promo { grid-template-columns: 1fr; } .pf-promo__actions { display: grid; grid-template-columns: 1fr; } .pf-promo__actions .pf-code { display: flex; } .pf-promo__actions .pf-code__value { flex: 1; } }

/* ========== Callout (analysis, quote, deadline, note) ========== */
.pf-callout { padding: var(--pf-space-5); border-radius: var(--pf-radius-card); background: var(--pf-surface); border: 1px solid var(--pf-line); color: var(--pf-text); font-size: var(--pf-fs-body); line-height: var(--pf-lh-body); }
.pf-callout > :last-child { margin-bottom: 0; }
.pf-callout__title { display: block; margin: 0 0 var(--pf-space-2); color: var(--pf-action); font-size: var(--pf-fs-eyebrow); font-weight: var(--pf-fw-heading); letter-spacing: var(--pf-ls-eyebrow); text-transform: uppercase; }
.pf-content .pf-callout { font-size: var(--pf-fs-body); }
.pf-content blockquote.pf-callout { padding: var(--pf-space-5); border: 1px solid var(--pf-line); border-left: 3px solid var(--pf-action); font-size: var(--pf-fs-body); }
.pf-callout--opinion { background: var(--pf-action-soft); border-color: var(--pf-action-soft-line); }
.pf-content blockquote.pf-callout--opinion { border-color: var(--pf-action-soft-line); border-left-color: var(--pf-action); font-size: var(--pf-fs-reading); }
.pf-callout--deadline { display: flex; gap: var(--pf-space-3); align-items: center; background: var(--pf-promo-bg); border-color: transparent; color: var(--pf-promo-text); }
.pf-callout--deadline strong { display: block; color: var(--pf-text); }
.pf-callout--deadline > span[aria-hidden] { font-size: var(--pf-fs-icon); line-height: 1; }

/* ========== Company card inside article ========== */
.pf-company-card__side { display: grid; justify-items: end; gap: var(--pf-space-3); }
.pf-company-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--pf-space-4); align-items: center; padding: var(--pf-space-5); border: 1px solid var(--pf-line); border-radius: var(--pf-radius-card); background: var(--pf-raised); }
.pf-company-card__name { font-size: var(--pf-fs-h4); font-weight: var(--pf-fw-semibold); }
.pf-company-card__body { display: grid; gap: 4px; }
.pf-company-card__body .pf-tags { margin-top: 4px; }
.pf-company-card .pf-actions { justify-content: flex-end; }
@media (max-width: 700px) { .pf-company-card { grid-template-columns: auto minmax(0, 1fr); } .pf-company-card__side { grid-column: 1 / -1; justify-items: start; } .pf-company-card .pf-actions { width: 100%; } .pf-company-card .pf-btn { flex: 1; } }

/* ========== Article head (single post / analysis) ========== */
.pf-article-head { display: grid; gap: var(--pf-space-4); padding: var(--pf-space-6) 0 var(--pf-space-5); }
.pf-article-head :is(h1, .pf-h1) { text-wrap: pretty; font-size: var(--pf-fs-h1-article); line-height: 1.12; letter-spacing: -0.03em; }
.pf-article-head__firm { display: inline-flex; align-items: center; gap: var(--pf-space-3); color: var(--pf-text); font-size: var(--pf-fs-control); font-weight: var(--pf-fw-semibold); text-decoration: none; }
.pf-article-head__firm:hover { color: var(--pf-action); }
.pf-article-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--pf-space-2) var(--pf-space-3); color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-article-meta .pf-share { margin-left: auto; }
.pf-back-link { display: inline-flex; align-items: center; gap: 6px; color: var(--pf-text-2); font-size: var(--pf-fs-meta); text-decoration: none; }
.pf-back-link:hover { color: var(--pf-action); }
.pf-share { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: var(--pf-touch); min-height: var(--pf-touch); padding: 0 12px; border: 1px solid var(--pf-line); border-radius: var(--pf-radius); background: var(--pf-bg); color: var(--pf-text-2); font-size: var(--pf-fs-meta); }
.pf-share:hover { color: var(--pf-action); border-color: var(--pf-line-strong); }
.pf-article-cover { margin: var(--pf-space-2) 0 var(--pf-space-6); }
.pf-article-cover img { width: 100%; border-radius: var(--pf-radius-card); border: 1px solid var(--pf-line); }
.pf-source-note { display: flex; align-items: center; gap: var(--pf-space-3); min-height: var(--pf-touch); padding: var(--pf-space-2) var(--pf-space-3); border-radius: var(--pf-radius); background: var(--pf-surface); color: var(--pf-text-2); font-size: var(--pf-fs-meta); text-decoration: none; width: fit-content; }
.pf-source-note:hover { color: var(--pf-action); }
.pf-disclosure { color: var(--pf-text-3); font-size: var(--pf-fs-meta); line-height: var(--pf-lh-snug); }
* + .pf-disclosure { margin-top: var(--pf-space-4); }
.pf-related-link { display: flex; justify-content: space-between; gap: var(--pf-space-3); padding: var(--pf-space-4) 0; border-top: 1px solid var(--pf-line); border-bottom: 1px solid var(--pf-line); color: var(--pf-text); font-size: var(--pf-fs-control); text-decoration: none; }
.pf-related-link span { color: var(--pf-action); white-space: nowrap; }
.pf-related-link:hover strong { color: var(--pf-action); }

/* ========== Prev / next ========== */
.pf-prevnext { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--pf-space-5); }
.pf-prevnext a { display: grid; gap: 4px; padding: var(--pf-space-4) 0; border-top: 1px solid var(--pf-line); color: var(--pf-text); font-size: var(--pf-fs-control); font-weight: var(--pf-fw-semibold); line-height: var(--pf-lh-snug); text-decoration: none; }
.pf-prevnext a:last-child { text-align: right; }
.pf-prevnext small { color: var(--pf-text-3); font-size: var(--pf-fs-eyebrow); font-weight: var(--pf-fw-semibold); letter-spacing: var(--pf-ls-eyebrow); text-transform: uppercase; }
.pf-prevnext a:hover { color: var(--pf-action); }
@media (max-width: 640px) { .pf-prevnext { grid-template-columns: 1fr; gap: 0; } .pf-prevnext a:last-child { text-align: left; } }

/* ========== Sidebar + widgets ========== */
.pf-sidebar { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--pf-space-6); padding-top: var(--pf-space-6); }
.pf-widget { padding-bottom: var(--pf-space-5); border-bottom: 1px solid var(--pf-line); }
.pf-widget:last-child { border-bottom: 0; }
.pf-widget__title { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0 var(--pf-space-2); margin-bottom: var(--pf-space-3); font-size: var(--pf-fs-h4); }
.pf-widget__title a { font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); text-decoration: none; letter-spacing: 0; white-space: nowrap; }
.pf-widget p { color: var(--pf-text-2); font-size: var(--pf-fs-control); }
.pf-widget .pf-text-link { min-height: 0; margin-top: var(--pf-space-3); }
.pf-widget-list { display: grid; list-style: none; }
.pf-widget-list a { display: block; padding: 10px 0; border-bottom: 1px solid var(--pf-line); color: var(--pf-text); font-size: var(--pf-fs-control); font-weight: var(--pf-fw-medium); line-height: var(--pf-lh-snug); text-decoration: none; }
.pf-widget-list li:last-child a { border-bottom: 0; }
.pf-widget-list a:hover { color: var(--pf-action); }
.pf-widget-list small { display: block; margin-bottom: 2px; color: var(--pf-text-3); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); }
.pf-widget--box { padding: var(--pf-space-5); border: 0; border-radius: var(--pf-radius-card); background: var(--pf-surface); }
.pf-widget--box .pf-widget__title { font-size: var(--pf-fs-h4); }
.pf-widget--box .pf-actions { margin-top: var(--pf-space-4); }
.pf-widget--partners { padding: var(--pf-space-4); border: 1px solid var(--pf-line); border-radius: var(--pf-radius-card); }
.pf-widget--partners:last-child { border-bottom: 1px solid var(--pf-line); }
.pf-widget .pf-widget__label { margin-bottom: var(--pf-space-1); color: var(--pf-text-3); font-size: var(--pf-fs-eyebrow); font-weight: var(--pf-fw-heading); letter-spacing: var(--pf-ls-eyebrow); text-transform: uppercase; }
.pf-widget .pf-widget__note { margin-top: var(--pf-space-3); color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-partner { display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: var(--pf-space-3); align-items: center; padding: 10px 0; border-bottom: 1px solid var(--pf-line); text-decoration: none; }
.pf-partner:last-of-type { border-bottom: 0; }
.pf-partner:hover .pf-partner__name { color: var(--pf-action); }
/* Signifiers (also on touch, where there is no hover): linked rows carry an arrow after the name. */
.pf-partner__arrow { color: var(--pf-action); }
/* Contextual firm box (first widget on news, analysis, video): same order as the firm card in articles. */
.pf-side-firm__head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--pf-space-3); align-items: center; }
.pf-side-firm__name { min-width: 0; color: var(--pf-text); font-size: var(--pf-fs-control); font-weight: var(--pf-fw-semibold); line-height: var(--pf-lh-snug); text-decoration: none; overflow-wrap: anywhere; }
.pf-side-firm__name span { color: var(--pf-action); }
.pf-side-firm__name:hover { color: var(--pf-action); }
.pf-widget .pf-side-firm__deal { display: flex; align-items: center; gap: var(--pf-space-2); margin-top: var(--pf-space-3); color: var(--pf-text-2); font-size: var(--pf-fs-meta); }
.pf-side-firm .pf-code { margin-top: var(--pf-space-2); }
@media (min-width: 901px) and (max-width: 1180px) { .pf-side-firm .pf-code__label { display: none; } } /* 248 px sidebar: „z kodem” above already says it */
.pf-side-firm .pf-actions { display: grid; grid-template-columns: 1fr 1fr; gap: var(--pf-space-2); margin-top: var(--pf-space-4); }
.pf-side-firm .pf-actions .pf-btn { padding: 0 8px; }
.pf-widget .pf-tags a.pf-tag { text-decoration: none; }
.pf-widget .pf-tags a.pf-tag:hover { border-color: var(--pf-action-soft-line); color: var(--pf-action); }
@media (max-width: 800px) { .pf-widget .pf-tags a.pf-tag { align-items: center; min-height: var(--pf-touch); padding: 0 12px; } }
.pf-partner__name { color: var(--pf-text); font-size: var(--pf-fs-control); font-weight: var(--pf-fw-semibold); text-decoration: none; }
.pf-partner__name small { display: block; color: var(--pf-text-3); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-regular); }
.pf-market { display: grid; gap: var(--pf-space-3); padding: var(--pf-space-4); border-radius: var(--pf-radius-card); background: var(--pf-surface); }
.pf-market__head { display: flex; justify-content: space-between; align-items: center; }
.pf-market__live { display: inline-flex; align-items: center; gap: 6px; color: var(--pf-text-3); font-size: var(--pf-fs-eyebrow); font-weight: var(--pf-fw-semibold); letter-spacing: var(--pf-ls-eyebrow); text-transform: uppercase; }
.pf-market__live::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--pf-live); }
.pf-market__sessions { display: grid; gap: 6px; font-size: var(--pf-fs-meta); }
.pf-market__session { display: grid; grid-template-columns: 76px 1fr; gap: var(--pf-space-2); align-items: center; color: var(--pf-text-2); }
.pf-market__now { margin: 0; color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-market__now strong { color: var(--pf-text); }
.pf-market .pf-text-link { min-height: 0; margin: 0; }
.pf-market__bar { position: relative; height: 8px; border-radius: 4px; background: var(--pf-line); overflow: hidden; }
.pf-market__bar span { position: absolute; top: 0; bottom: 0; border-radius: 4px; background: var(--pf-action); opacity: .35; }
.pf-market__bar span.is-active { opacity: 1; }
@media (max-width: 900px) { .pf-sidebar { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--pf-space-6); padding-top: var(--pf-space-7); border-top: 1px solid var(--pf-line); } }

/* ========== Pagination ========== */
.pf-pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--pf-space-2); margin-top: var(--pf-space-6); }
.pf-pagination a, .pf-pagination button, .pf-pagination span { display: inline-grid; place-items: center; min-width: var(--pf-touch); min-height: var(--pf-touch); padding: 0 12px; border: 1px solid var(--pf-line); border-radius: var(--pf-radius); background: var(--pf-bg); color: var(--pf-text); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); text-decoration: none; }
.pf-pagination [aria-current="page"] { background: var(--pf-action); border-color: var(--pf-action); color: var(--pf-action-text); }
.pf-pagination [disabled] { opacity: .4; }

/* ========== Empty state, toast ========== */
.pf-empty { padding: var(--pf-space-7) var(--pf-space-5); border: 1px dashed var(--pf-line-strong); border-radius: var(--pf-radius-card); text-align: center; }
.pf-empty p { margin-top: var(--pf-space-2); color: var(--pf-text-2); }
.pf-empty .pf-btn { margin-top: var(--pf-space-4); }
.pf-toast { position: fixed; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom)); max-width: calc(100% - 136px); z-index: 60; transform: translateX(-50%); padding: 12px 18px; border-radius: var(--pf-radius); background: var(--pf-text); color: var(--pf-bg); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); box-shadow: var(--pf-shadow-pop); }

/* ========== Applied filters ========== */
.pf-applied { display: flex; flex-wrap: wrap; gap: var(--pf-space-2); margin-bottom: var(--pf-space-4); }
.pf-applied button { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 12px; border: 1px solid var(--pf-action-soft-line); border-radius: var(--pf-radius); background: var(--pf-action-soft); color: var(--pf-action); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); }
.pf-applied button:hover { background: var(--pf-action); border-color: var(--pf-action); color: var(--pf-action-text); }
@media (max-width: 800px) { .pf-applied button { min-height: var(--pf-touch); } }

/* ========== Footer ========== */
.pf-footer { margin-top: var(--pf-space-9); padding: var(--pf-space-7) 0 var(--pf-space-6); background: var(--pf-surface); border-top: 1px solid var(--pf-line); }
.pf-page + .pf-footer { margin-top: 0; }
.pf-footer__top { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--pf-space-7); padding-bottom: var(--pf-space-7); border-bottom: 1px solid var(--pf-line); }
.pf-footer__top h2 { margin-bottom: var(--pf-space-2); font-size: var(--pf-fs-h3); }
.pf-footer__top p { color: var(--pf-text-2); font-size: var(--pf-fs-control); }
.pf-footer__form { display: flex; gap: var(--pf-space-2); margin: var(--pf-space-4) 0 var(--pf-space-3); max-width: 480px; }
.pf-footer__form .pf-input { min-height: var(--pf-touch); }
.pf-footer__form .pf-btn { min-height: var(--pf-touch); border: 0; } /* bez ramki: jak przycisk MailPoet na stagingu (wzorzec: staging, decyzja właściciela) */
.pf-footer__actions { margin-top: var(--pf-space-4); }
/* ========== Social icons (one component: footer, Kontakt, Partnerzy) ========== */
.pf-social, .pf-footer__cols .pf-social { display: flex; flex-wrap: wrap; gap: var(--pf-space-2); margin-top: var(--pf-space-3); list-style: none; padding: 0; }
.pf-social__link { display: inline-grid; place-items: center; width: var(--pf-touch); height: var(--pf-touch); border: 1px solid var(--pf-line); border-radius: var(--pf-radius); color: var(--pf-text-2); background: transparent; text-decoration: none; transition: color .15s, border-color .15s, background-color .15s; }
.pf-social__link:hover { color: var(--pf-action); border-color: var(--pf-action-soft-line); background: var(--pf-action-soft); }
.pf-social__link:focus-visible { outline: 2px solid var(--pf-action); outline-offset: 2px; }
.pf-social__link svg { display: block; width: 20px; height: 20px; }
.pf-widget--contact .pf-social, .pf-widget--partnership p { margin-top: var(--pf-space-4); }
.pf-widget--partnership p { margin-top: var(--pf-space-2); color: var(--pf-text-2); font-size: var(--pf-fs-control); }
.pf-footer__note { color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-footer__cols { display: grid; grid-template-columns: minmax(0, 1.6fr) repeat(3, minmax(0, 1fr)); gap: var(--pf-space-7); padding: var(--pf-space-7) 0; }
.pf-footer__cols h2 { margin-bottom: var(--pf-space-3); font-size: var(--pf-fs-control); }
.pf-footer__cols p { color: var(--pf-text-2); font-size: var(--pf-fs-meta); line-height: var(--pf-lh-body); }
.pf-footer__cols ul { display: grid; gap: 2px; list-style: none; }
.pf-footer__cols a:where(:not(.pf-social__link)) { display: inline-flex; align-items: center; min-height: 32px; color: var(--pf-text-2); font-size: var(--pf-fs-meta); text-decoration: none; }
.pf-footer__cols a:where(:not(.pf-social__link)):hover { color: var(--pf-action); text-decoration: underline; }
.pf-footer__cols .pf-logo, .pf-footer__cols .pf-logo:hover { color: var(--pf-logo); text-decoration: none; } /* footer links rule must not recolour the logo */
.pf-footer__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--pf-space-3); padding-top: var(--pf-space-5); border-top: 1px solid var(--pf-line); color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
@media (max-width: 800px) {
  .pf-footer__top, .pf-footer__cols { grid-template-columns: 1fr; gap: var(--pf-space-6); }
  .pf-footer__form { flex-direction: column; }
  .pf-footer__cols a { min-height: var(--pf-touch); }
}

/* ========== Ranking directory helpers ========== */
.pf-page-head__aside .pf-eyebrow { margin-bottom: var(--pf-space-2); }
.pf-page-head__aside p:not(.pf-eyebrow) { font-size: var(--pf-fs-control); color: var(--pf-text-2); }
.pf-page-head__aside .pf-text-link { min-height: 0; margin-top: var(--pf-space-3); }
.pf-filters--ranking { grid-template-columns: minmax(200px, 1.4fr) repeat(3, minmax(150px, 1fr)); }
.pf-filters__checks { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 0 var(--pf-space-5); }
.pf-filters__more { display: none; }
.pf-results-head { margin: var(--pf-space-6) 0 var(--pf-space-4); align-items: center; }
.pf-results-head h2 { font-size: var(--pf-fs-h3); }
.pf-results-head p { margin-top: 4px; }
@media (max-width: 900px) {
  .pf-filters--ranking { grid-template-columns: 1fr 1fr; }
  .pf-filters__search { grid-column: 1 / -1; }
  .pf-filters__more { display: inline-flex; }
  /* phones: search + sort visible, the rest behind "Więcej filtrów" */
  .pf-filters--ranking > .pf-field:has(#pf-rk-platform), .pf-filters--ranking > .pf-field:has(#pf-rk-asset), .pf-filters--ranking > .pf-filters__checks { display: none; }
  .pf-filters--ranking.is-open > .pf-field, .pf-filters--ranking.is-open > .pf-filters__checks { display: grid; }
  .pf-filters--ranking.is-open > .pf-filters__checks { display: flex; }
}

/* ========== Split (text + figures) ========== */
.pf-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: var(--pf-space-8); align-items: start; }
.pf-split h2 + p { margin-top: var(--pf-space-3); }
.pf-split .pf-text-link { margin-top: var(--pf-space-2); }
@media (max-width: 900px) { .pf-split { grid-template-columns: 1fr; gap: var(--pf-space-5); } }
.pf-facts--2 { --pf-facts-cols: 2; }
.pf-facts--2 .pf-facts__item:nth-child(odd) { padding-left: 0; border-left: 0; }
.pf-facts--2 .pf-facts__item:nth-child(even) { padding-left: var(--pf-space-5); border-left: 1px solid var(--pf-line); }
.pf-facts--2 .pf-facts__item:nth-child(n+3) { border-top: 1px solid var(--pf-line); }
.pf-facts__value--lg { color: var(--pf-action); font-size: var(--pf-fs-h2); font-weight: var(--pf-fw-heading); letter-spacing: -0.02em; }
.pf-facts--guide { --pf-facts-cols: 5; }
.pf-facts--guide .pf-facts__label { font-size: var(--pf-fs-control); color: var(--pf-text-2); }
@media (max-width: 1080px) { .pf-facts--guide { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pf-after { margin-top: var(--pf-space-4); }

/* Link list in a grid (knowledge base links) */
.pf-link-list--grid { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: var(--pf-space-6); border-top: 1px solid var(--pf-line); }
.pf-link-list--grid a:last-child { border-bottom: 1px solid var(--pf-line); }
.pf-link-list--grid a { align-content: start; }
.pf-link-list--grid strong { font-size: var(--pf-fs-body); }
@media (max-width: 900px) { .pf-link-list--grid { grid-template-columns: 1fr; } }

/* ========== Review page parts ========== */
.pf-review-head { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: var(--pf-space-7); align-items: start; padding: var(--pf-space-6) 0 var(--pf-space-6); }
.pf-review-head__firm { display: flex; align-items: center; gap: var(--pf-space-4); margin-bottom: var(--pf-space-4); }
.pf-review-head__firm .pf-eyebrow { margin: 0; color: var(--pf-text-3); }
.pf-review-head h1 { display: flex; align-items: center; gap: var(--pf-space-2); }
/* badge never makes the title line taller: sized in em, centred on the cap height */
.pf-review-head h1 .pf-verified { width: 0.66em; height: 0.66em; flex: none; }
.pf-review-head h1 .pf-verified svg { width: 100%; height: 100%; }
.pf-review-head .pf-lead { margin-top: var(--pf-space-4); }
.pf-review-head .pf-lead strong { color: var(--pf-text); font-weight: var(--pf-fw-semibold); }
.pf-review-head .pf-actions { margin-top: var(--pf-space-5); }
.pf-score__value--neutral { color: var(--pf-text); }
.pf-review-body { margin-top: var(--pf-space-7); }
.pf-review-section { padding-top: var(--pf-space-6); }
.pf-review-section > h2 { margin-bottom: var(--pf-space-4); }
.pf-review-section > .pf-muted { margin-bottom: 0; }
#podsumowanie { padding-top: var(--pf-space-4); }
.pf-review-section .pf-prevnext { margin-top: var(--pf-space-6); }
.pf-review-body .pf-prevnext { margin-top: var(--pf-space-7); }
@media (max-width: 980px) { .pf-review-head { grid-template-columns: 1fr; gap: var(--pf-space-5); } }

/* Spec grid (label / value tiles) */
.pf-spec { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); margin: 0; border-top: 1px solid var(--pf-line); border-left: 1px solid var(--pf-line); }
.pf-spec__item { display: grid; gap: 6px; align-content: start; padding: var(--pf-space-4); border-right: 1px solid var(--pf-line); border-bottom: 1px solid var(--pf-line); }
.pf-spec dt { color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-spec dd { margin: 0; color: var(--pf-text); font-size: var(--pf-fs-body); font-weight: var(--pf-fw-semibold); line-height: var(--pf-lh-snug); }
.pf-spec dd .pf-tag { font-weight: var(--pf-fw-regular); }

/* Note (small disclosure for remarks, history) */
.pf-note { margin-top: var(--pf-space-4); border-top: 1px solid var(--pf-line); border-bottom: 1px solid var(--pf-line); }
.pf-note > summary::after { color: var(--pf-action); }
.pf-note > summary { display: flex; justify-content: space-between; align-items: center; min-height: var(--pf-touch); color: var(--pf-text-2); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); list-style: none; cursor: pointer; }
.pf-note > summary::-webkit-details-marker { display: none; }
.pf-note > :not(summary) { margin-bottom: var(--pf-space-4); color: var(--pf-text-2); font-size: var(--pf-fs-control); }

/* Video placeholder when a post has no thumbnail */
.pf-video-card__placeholder { display: grid; place-items: center; width: 100%; height: 100%; background: var(--pf-action-soft); color: var(--pf-action); font-size: var(--pf-fs-icon); }

/* Main column next to the sidebar */
.pf-main { min-width: 0; }
.pf-main > .pf-content { margin-top: var(--pf-space-2); }
.pf-content .pf-related-link { text-decoration: none; }
.pf-content .pf-actions { margin: var(--pf-space-6) 0 var(--pf-space-3); }
.pf-content .pf-actions .pf-btn { text-decoration: none; }
.pf-content .pf-code { margin: var(--pf-space-5) 0; }
.pf-content .pf-callout--deadline { margin: var(--pf-space-5) 0; font-size: var(--pf-fs-control); }
.pf-offer-card .pf-card__title { margin: 0; }
.pf-offer-card .pf-text-link { min-height: 0; }
.pf-article-head + .pf-source-note { margin-bottom: var(--pf-space-5); }

/* Callout — PropIndeks analysis (C19): first bold line acts as the title */
.pf-content blockquote.pf-callout--analysis { border-left-color: var(--pf-accent); background: var(--pf-surface); }
.pf-callout--analysis > p > strong:first-child { display: block; margin-bottom: var(--pf-space-2); color: var(--pf-text); font-size: var(--pf-fs-h4); }
.pf-content .pf-company-card .pf-tags { margin: 0; }
.pf-content .pf-company-card .pf-btn { text-decoration: none; }
.pf-content .pf-faq { margin: var(--pf-space-5) 0; border-top: 1px solid var(--pf-line); }
.pf-content .pf-faq details:first-of-type { border-top: 0; }
.pf-content .pf-faq__answer p { margin: 0; }

/* Author box */
.pf-author { display: grid; gap: var(--pf-space-2); margin-top: var(--pf-space-7); padding: var(--pf-space-5); border-radius: var(--pf-radius-card); background: var(--pf-surface); }
.pf-author h2 { font-size: var(--pf-fs-h4); }
.pf-author p { color: var(--pf-text-2); font-size: var(--pf-fs-control); }
.pf-author .pf-text-link { min-height: 0; }

/* ========== Archive (lists of posts, videos, tools) ========== */
.pf-archive-head { display: grid; gap: var(--pf-space-3); padding: var(--pf-space-6) 0 var(--pf-space-5); }
.pf-archive-head .pf-eyebrow { margin: 0; }
.pf-archive-head .pf-text-link { min-height: 0; }
.pf-archive .pf-tabs { margin-bottom: var(--pf-space-2); }
.pf-archive .pf-results-head { margin: var(--pf-space-6) 0 var(--pf-space-4); padding-top: var(--pf-space-5); border-top: 1px solid var(--pf-line); }
.pf-archive .pf-results-head > span { color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-archive .pf-pagination { margin-top: var(--pf-space-7); }
.pf-pagination--start { justify-content: flex-start; }
.pf-pagination span[aria-hidden] { border: 0; min-width: 24px; padding: 0; color: var(--pf-text-3); }
.pf-pagination a:hover, .pf-pagination button:not([disabled]):not([aria-current]):hover { border-color: var(--pf-line-strong); color: var(--pf-action); }

/* Archive list card: image left, text right */
.pf-card--list { grid-template-columns: 300px minmax(0, 1fr); gap: var(--pf-space-5); align-items: center; /* image centred against texts of different length */ padding: var(--pf-space-5) 0; border-bottom: 1px solid var(--pf-line); }
.pf-card--list:first-child { padding-top: 0; }
.pf-card--list.pf-card--no-media { grid-template-columns: minmax(0, 1fr); } /* karta bez obrazka: treść na całą szerokość, bez pustego slotu miniatury */
.pf-card--list .pf-card__body { display: grid; gap: var(--pf-space-2); }
.pf-card__body > * { margin: 0; } /* spacing comes from the grid gap only */
.pf-card--list .pf-card__title { font-size: var(--pf-fs-h3); line-height: 1.3; }
.pf-card__author { color: var(--pf-text-2); text-decoration: none; }
.pf-card__author:hover { color: var(--pf-action); text-decoration: underline; }
.pf-card__tags { margin: 0; color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-card__tags a { color: var(--pf-text-2); }
@media (max-width: 640px) { .pf-card--list .pf-card__title { font-size: var(--pf-fs-body); } }

/* Video channel line */
.pf-video-card__channel { color: var(--pf-text-3); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); text-decoration: none; }
a.pf-video-card__channel:hover { color: var(--pf-action); }
.pf-video-card__channel + .pf-video-card__title { margin-top: -6px; }

/* Filter panel (many checkbox groups) */
.pf-filter-panel { border: 1px solid var(--pf-line); border-radius: var(--pf-radius-card); }
.pf-filter-panel > summary::after { color: var(--pf-action); }
.pf-filter-panel > summary { display: flex; justify-content: space-between; align-items: center; min-height: var(--pf-control-h); padding: 0 var(--pf-space-4); font-size: var(--pf-fs-control); font-weight: var(--pf-fw-semibold); list-style: none; cursor: pointer; }
.pf-filter-panel > summary::-webkit-details-marker { display: none; }
.pf-filter-panel__body { display: grid; gap: var(--pf-space-4); padding: 0 var(--pf-space-4) var(--pf-space-4); }
.pf-filter-panel__body > p { margin: 0; color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-filter-groups { display: grid; gap: 0; }
.pf-filter-group { border-top: 1px solid var(--pf-line); }
.pf-filter-group > summary { display: flex; justify-content: space-between; align-items: center; min-height: var(--pf-touch); color: var(--pf-text); font-size: var(--pf-fs-control); font-weight: var(--pf-fw-semibold); list-style: none; cursor: pointer; }
.pf-filter-group > summary::-webkit-details-marker { display: none; }
.pf-filter-group__options { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 0 var(--pf-space-3); max-height: 260px; overflow-y: auto; overscroll-behavior: contain; padding-bottom: var(--pf-space-3); }
.pf-filter-group .pf-check { min-height: 36px; font-size: var(--pf-fs-meta); }
.pf-filter-group .pf-check input { width: 18px; height: 18px; }
@media (max-width: 800px) { .pf-filter-group .pf-check { min-height: var(--pf-touch); } }
.pf-filter-group__count { margin-left: auto; padding-right: var(--pf-space-2); color: var(--pf-action); font-size: var(--pf-fs-meta); }
.pf-archive-controls { display: grid; gap: var(--pf-space-3); }
.pf-archive-controls > form { display: flex; flex-direction: column; gap: inherit; } /* wrapper <aside> + <form> (WP): ten sam rytm co samodzielny <form class="pf-archive-controls"> */
.pf-archive-controls__row { display: grid; grid-template-columns: minmax(0, 1fr) 260px; gap: var(--pf-space-3); align-items: end; }
@media (max-width: 640px) { .pf-archive-controls__row { grid-template-columns: 1fr; } }

/* Archive on phones: compact rows instead of full-width cards (same rule as the firm row) */
@media (max-width: 640px) {
  .pf-archive .pf-tabs { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(var(--pf-gutter) * -1); padding: 0 var(--pf-gutter) 4px; scrollbar-width: none; }
  .pf-archive .pf-tabs::-webkit-scrollbar { display: none; }
  .pf-archive .pf-tab { flex: none; }
  .pf-grid > .pf-video-card { grid-template-columns: 136px minmax(0, 1fr); column-gap: var(--pf-space-3); row-gap: 2px; align-content: start; }
  .pf-grid > .pf-video-card > .pf-video-card__media { grid-row: 1 / span 3; }
  .pf-grid > .pf-video-card .pf-video-card__title { font-size: var(--pf-fs-meta); }
  .pf-grid > .pf-video-card .pf-video-card__channel + .pf-video-card__title { margin-top: 0; }
  .pf-grid > .pf-video-card .pf-video-card__meta { flex-direction: column; gap: 0; font-size: var(--pf-fs-eyebrow); }
  /* post images carry text, so on phones they stay full width at their own ratio */
  .pf-card--list { grid-template-columns: 1fr; gap: var(--pf-space-3); }
  .pf-card--list .pf-card__excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: var(--pf-fs-meta); }
  .pf-card--list .pf-card__tags { display: none; }
}


/* ========== Disclosure icon (+ / −) ==========
   One drawn icon for every expandable element, optically centred on the text line.
   Never use a "+" character: font glyphs sit on the math axis and look lower than arrows. */
.pf-firm__toggle::after, .pf-fold__action::after, .pf-note > summary::after, .pf-filter-panel > summary::after,
.pf-filter-group > summary::after, .pf-pros-cons details summary::after, .pf-price-table__toggle::after,
.pf-faq summary::after, .pf-content details > summary::after {
  content: ""; flex: none; display: inline-block; width: 12px; height: 12px;
  background: linear-gradient(currentColor, currentColor) center / 100% 1.5px no-repeat,
              linear-gradient(currentColor, currentColor) center / 1.5px 100% no-repeat;
}
.pf-faq summary::after, .pf-content details > summary::after { width: 14px; height: 14px; }
.pf-firm__toggle[aria-expanded="true"]::after, .pf-fold[open] .pf-fold__action::after, .pf-note[open] > summary::after,
.pf-filter-panel[open] > summary::after, .pf-filter-group[open] > summary::after, .pf-price-table__toggle[aria-expanded="true"]::after,
.pf-faq details[open] summary::after, .pf-content details[open] > summary::after { background-size: 100% 1.5px, 0 0; }
.pf-filter-group > summary::after { color: var(--pf-text-3); }
.pf-price-table__toggle { display: inline-flex; align-items: center; gap: 6px; }
@media (max-width: 900px) { .pf-firm__toggle::after { width: 14px; height: 14px; } }


/* ========== Back to top ========== */
.pf-to-top {
  position: fixed; right: max(16px, env(safe-area-inset-right)); bottom: calc(16px + env(safe-area-inset-bottom)); z-index: 40;
  display: grid; place-items: center; width: var(--pf-touch); height: var(--pf-touch); padding: 0;
  border: 1px solid var(--pf-line-strong); border-radius: var(--pf-radius); background: var(--pf-bg); color: var(--pf-action);
  box-shadow: var(--pf-shadow-pop); opacity: 0; transform: translateY(8px); pointer-events: none; transition: opacity var(--pf-dur) var(--pf-ease-out), transform var(--pf-dur) var(--pf-ease-out);
}
.pf-to-top.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.pf-to-top:hover { background: var(--pf-action-soft); border-color: var(--pf-action-soft-line); }
.pf-to-top svg { width: 18px; height: 18px; display: block; }
@media (min-width: 1300px) { .pf-to-top { right: max(24px, calc((100vw - var(--pf-container)) / 2 - 64px)); bottom: 32px; } }

/* ========== News archive row (Aktualności) ========== */
.pf-story { display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; gap: var(--pf-space-4); align-items: start; padding: var(--pf-space-5) 0; border-bottom: 1px solid var(--pf-line); }
.pf-story:first-child { padding-top: 0; }
.pf-story__body { display: grid; gap: var(--pf-space-2); min-width: 0; }
.pf-story__body > * { margin: 0; }
.pf-story__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px var(--pf-space-3); color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-story__meta strong { color: var(--pf-text); font-weight: var(--pf-fw-semibold); }
.pf-story__title { font-size: var(--pf-fs-h4); font-weight: var(--pf-fw-semibold); line-height: var(--pf-lh-snug); letter-spacing: -0.01em; }
.pf-story__title a { color: var(--pf-text); text-decoration: none; }
.pf-story__title a:hover { color: var(--pf-action); }
.pf-story__excerpt { color: var(--pf-text-2); font-size: var(--pf-fs-control); line-height: var(--pf-lh-body); }
.pf-story__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--pf-space-5); }
.pf-story__actions .pf-text-link { min-height: 36px; }
@media (max-width: 800px) { .pf-story__actions .pf-text-link, .pf-story__actions .pf-quiet-link { display: inline-flex; align-items: center; min-height: var(--pf-touch); } }
@media (max-width: 640px) {
  .pf-story { grid-template-columns: 36px minmax(0, 1fr) auto; gap: var(--pf-space-3); }
  .pf-story .pf-logo-tile { width: 36px; height: 36px; padding: 4px; border-radius: var(--pf-radius); }
  .pf-story__excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: var(--pf-fs-meta); }
}

/* Promotion card (selected offers) */
.pf-offer-card--promo .pf-offer-card__head > div { flex: 1; display: grid; }
.pf-offer-card--promo .pf-offer-card__head small { color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-offer-card--promo .pf-card__excerpt { margin: 0; }
.pf-offer-card__actions { display: grid; grid-template-columns: 1fr 1fr; gap: var(--pf-space-2); margin-top: auto; }
.pf-offer-card .pf-offer-card__actions .pf-btn { width: auto; padding: 0 12px; }
.pf-offer-card--promo { grid-template-rows: auto auto auto 1fr auto; }

/* Company catalogue with search */
.pf-firm-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--pf-space-2); }
.pf-firm-link { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: var(--pf-space-3); align-items: center; min-height: 56px; padding: 10px 14px 10px 10px; border: 1px solid var(--pf-line); border-radius: var(--pf-radius-card); color: var(--pf-text); font-size: var(--pf-fs-control); font-weight: var(--pf-fw-semibold); text-decoration: none; }
.pf-firm-link > span[aria-hidden] { color: var(--pf-action); }
.pf-firm-link:hover { border-color: var(--pf-action-soft-line); background: var(--pf-action-soft); color: var(--pf-action); }
.pf-list-search { display: grid; gap: var(--pf-space-4); }
.pf-list-search__bar { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: var(--pf-space-3); }
.pf-list-search__bar .pf-field { flex: 1 1 280px; max-width: 420px; }

/* Link list with descriptions */
.pf-link-list__desc { grid-column: 1; color: var(--pf-text-2); font-size: var(--pf-fs-meta); }

/* In-page jump links (top of long pages) */
.pf-jump { display: flex; flex-wrap: wrap; gap: var(--pf-space-2); margin-top: var(--pf-space-5); }
.pf-filters--news { grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); margin-top: 0; } /* 1.4.3: fields never narrower than their longest option („Wszystkie rodzaje”); wraps to 2 rows instead of cutting text */
/* phones: search + "Filtry", the selects open below (same pattern as the ranking) */
@media (max-width: 640px) {
  .pf-filters--news { grid-template-columns: minmax(0, 1fr) auto; }
  .pf-filters--news .pf-filters__search { order: -1; grid-column: auto; }
  .pf-filters--news .pf-filters__more { display: inline-flex; }
  .pf-filters--news > .pf-field:not(.pf-filters__search) { display: none; grid-column: 1 / -1; }
  .pf-filters--news.is-open > .pf-field { display: grid; }
  .pf-story__meta > span:not(.pf-badge) { display: none; } /* topic label is secondary on phones */
}
.pf-news-columns--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--pf-space-6); row-gap: 0; }
@media (max-width: 640px) { .pf-news-columns--2 { grid-template-columns: 1fr; } }
.pf-after-section { margin-top: var(--pf-space-2); }
.pf-page-head .pf-disclosure { margin-top: var(--pf-space-4); }

.pf-page-head + .pf-section { margin-top: var(--pf-space-5); }
/* Review without a price list: fallback block in place of the table */
.pf-callout--prices { display: grid; gap: var(--pf-space-4); }
.pf-callout--prices p { margin: 0; color: var(--pf-text-2); font-size: var(--pf-fs-control); }
.pf-review-section > .pf-widget-list { margin-top: var(--pf-space-3); }
.pf-review-section > .pf-text-link { margin-top: var(--pf-space-2); }

/* ========== Long article (guide) ========== */
.pf-share-links { display: flex; flex-wrap: wrap; gap: 4px var(--pf-space-3); color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-share-links a { color: var(--pf-text-2); text-decoration: none; }
.pf-share-links a:hover { color: var(--pf-action); text-decoration: underline; }
.pf-article-meta > a:not(.pf-badge) { color: var(--pf-text-2); text-decoration: none; }
.pf-article-meta > a:not(.pf-badge):hover { color: var(--pf-action); text-decoration: underline; }
.pf-article-toc { margin: 0 0 var(--pf-space-6); border: 1px solid var(--pf-line); border-radius: var(--pf-radius-card); }
.pf-article-toc > summary { display: flex; justify-content: space-between; align-items: center; min-height: var(--pf-control-h); padding: 0 var(--pf-space-4); font-size: var(--pf-fs-control); font-weight: var(--pf-fw-semibold); list-style: none; cursor: pointer; }
.pf-article-toc > summary::-webkit-details-marker { display: none; }
.pf-article-toc > summary::after { content: ""; width: 12px; height: 12px; color: var(--pf-action);
  background: linear-gradient(currentColor, currentColor) center / 100% 1.5px no-repeat, linear-gradient(currentColor, currentColor) center / 1.5px 100% no-repeat; }
.pf-article-toc[open] > summary::after { background-size: 100% 1.5px, 0 0; }
.pf-article-toc ol { margin: 0; padding: 0 var(--pf-space-4) var(--pf-space-4) calc(var(--pf-space-4) + 1.4em); display: grid; gap: 6px; }
.pf-article-toc li::marker { color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-article-toc a { color: var(--pf-text); font-size: var(--pf-fs-control); text-decoration: none; }
.pf-article-toc a:hover { color: var(--pf-action); text-decoration: underline; }
.pf-author h2 a { color: inherit; text-decoration: none; }

/* ========== Single video ========== */
.pf-video-player { position: relative; aspect-ratio: var(--pf-ratio-video); margin: var(--pf-space-2) 0 var(--pf-space-5); overflow: hidden; border-radius: var(--pf-radius-card); background: var(--pf-media-bg); }
.pf-video-player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.pf-video-info { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--pf-space-4); padding-bottom: var(--pf-space-4); }
.pf-video-info > div { display: grid; gap: 2px; }
.pf-video-info__channel { color: var(--pf-text); font-size: var(--pf-fs-h4); font-weight: var(--pf-fw-semibold); text-decoration: none; }
.pf-video-info__channel:hover { color: var(--pf-action); }
.pf-video-info__score { display: flex; align-items: center; gap: var(--pf-space-4); padding: var(--pf-space-3) var(--pf-space-4); border: 1px solid var(--pf-line); border-radius: var(--pf-radius-card); color: var(--pf-text); text-decoration: none; }
.pf-video-info__score span { display: grid; font-size: var(--pf-fs-control); font-weight: var(--pf-fw-semibold); }
.pf-video-info__score small { color: var(--pf-text-3); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-regular); }
.pf-video-info__score strong { color: var(--pf-action); font-size: var(--pf-fs-h2); font-weight: var(--pf-fw-heading); line-height: 1; font-variant-numeric: tabular-nums; }
.pf-video-info__score:hover { border-color: var(--pf-action-soft-line); }
.pf-spec--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 520px) { .pf-spec--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pf-spec--3 .pf-spec__item:last-child:nth-child(odd) { grid-column: 1 / -1; } }
.pf-video-links { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--pf-space-3); margin-top: var(--pf-space-4); }
.pf-video-links .pf-text-link { min-height: 0; }
.pf-video-topics { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--pf-space-5); margin-top: var(--pf-space-4); }
.pf-video-topics h3 { margin-bottom: var(--pf-space-2); font-weight: var(--pf-fw-regular); letter-spacing: 0; }
a.pf-tag { color: var(--pf-text); text-decoration: none; }
a.pf-tag:hover { border-color: var(--pf-action-soft-line); color: var(--pf-action); }
.pf-fold--transcript { border-top: 1px solid var(--pf-line); }
.pf-fold--transcript .pf-fold__action { min-height: calc(var(--pf-fs-h3) * 1.35); }
@media (max-width: 640px) { .pf-video-info__score { width: 100%; justify-content: space-between; } }

/* Content pages: grids inside editor content, page search, partner cards */
.pf-content .pf-content__grid { display: grid; margin: var(--pf-space-5) 0; }
.pf-content .pf-content__grid .pf-card__title a, .pf-content .pf-content__grid .pf-video-card__title a { text-decoration: none; }
.pf-content .pf-card, .pf-content .pf-video-card, .pf-content .pf-offer-card { font-size: var(--pf-fs-body); }
/* Company news inside editor content (Prop trading hub): component spacing, not article headings */
.pf-content .pf-story-list, .pf-content .pf-news-columns { margin: var(--pf-space-5) 0; font-size: var(--pf-fs-body); line-height: var(--pf-lh-body); }
.pf-content .pf-story__body > * { margin: 0; }
.pf-content .pf-story__title { font-size: var(--pf-fs-h4); line-height: var(--pf-lh-snug); }
.pf-content .pf-story a, .pf-content .pf-news-item { text-decoration: none; }
.pf-content .pf-card__media img, .pf-content .pf-video-card__media img { border: 0; border-radius: 0; }
.pf-search--page { max-width: 560px; margin-bottom: var(--pf-space-5); }
.pf-search--page .pf-input, .pf-search--page .pf-btn { min-height: var(--pf-control-h); }
.pf-partner-card small { display: block; color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-partner-card .pf-text-link { min-height: 0; text-decoration: none; }

/* ========== Tool card (technology catalogue) ========== */
.pf-logo-tile--dark { background: var(--pf-logo-plate-dark); } /* white wordmarks only */
.pf-tool { display: grid; grid-template-rows: auto auto 1fr auto; gap: var(--pf-space-3); padding: var(--pf-space-5); border: 1px solid var(--pf-line); border-radius: var(--pf-radius-card); background: var(--pf-raised); }
.pf-tool__head { display: flex; align-items: center; gap: var(--pf-space-3); min-width: 0; }
.pf-tool__head > a { flex: none; }
.pf-tool__head > div { display: grid; gap: 4px; min-width: 0; }
.pf-tool__name { font-size: var(--pf-fs-h4); font-weight: var(--pf-fw-semibold); line-height: var(--pf-lh-snug); }
.pf-tool__name a { color: var(--pf-text); text-decoration: none; }
.pf-tool__name a:hover { color: var(--pf-action); text-decoration: underline; }
.pf-tool__badges { display: flex; flex-wrap: wrap; gap: 4px; min-width: 0; }
.pf-tool__badges .pf-badge { max-width: 100%; white-space: normal; } /* long labels wrap inside the card at mid widths */
.pf-tool__excerpt { margin: 0; color: var(--pf-text-2); font-size: var(--pf-fs-control); line-height: var(--pf-lh-body); }
.pf-tool .pf-text-link { min-height: 0; }
.pf-tool .pf-tag { font-size: var(--pf-fs-eyebrow); }
/* phones: compact rows (logo · name · badges, two-line excerpt), the name is the link */
@media (max-width: 640px) {
  .pf-tool-grid { gap: 0; border-top: 1px solid var(--pf-line); }
  .pf-tool { grid-template-rows: none; gap: var(--pf-space-2); padding: var(--pf-space-4) 0; border: 0; border-bottom: 1px solid var(--pf-line); border-radius: 0; background: none; }
  .pf-tool .pf-logo-tile { width: 40px; height: 40px; padding: 5px; }
  .pf-tool .pf-tags { display: none; }
  .pf-tool__excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: var(--pf-fs-meta); }
  .pf-tool > .pf-text-link { display: none; }
}

/* ========== Tool page (technology single) ========== */
.pf-tool-head { display: flex; align-items: center; gap: var(--pf-space-4); }
.pf-tool-head > div { display: grid; gap: 6px; justify-items: start; }
.pf-tool-head .pf-eyebrow { margin: 0; }
.pf-facts--3 { --pf-facts-cols: 3; }
.pf-facts--3 + .pf-actions { margin-top: var(--pf-space-4); }
@media (max-width: 800px) { .pf-facts--3 .pf-facts__item:last-child:nth-child(odd) { grid-column: 1 / -1; padding-left: 0; border-left: 0; } }

/* ========== Gallery (screenshots) + lightbox ========== */
/* Thumbnails keep the whole screenshot (contain) on a neutral plate: screenshots carry text, never crop them. */
.pf-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: var(--pf-space-3); }
.pf-gallery__item { position: relative; display: block; aspect-ratio: 16 / 10; border: 1px solid var(--pf-line); border-radius: var(--pf-radius-card); background: var(--pf-surface); overflow: hidden; }
.pf-gallery__item img { position: absolute; inset: 6px; width: calc(100% - 12px); height: calc(100% - 12px); object-fit: contain; }
.pf-gallery__item:hover { border-color: var(--pf-action-soft-line); }
@media (max-width: 640px) { /* phones: one swipeable strip instead of five rows */
  .pf-gallery { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 62%; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: var(--pf-gutter); margin-inline: calc(var(--pf-gutter) * -1); padding: 0 var(--pf-gutter) 4px; scrollbar-width: none; }
  .pf-gallery::-webkit-scrollbar { display: none; }
  .pf-gallery__item { scroll-snap-align: start; }
}
.pf-lightbox { width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: var(--pf-media-bg); color: var(--pf-on-overlay); }
.pf-lightbox[open] { display: grid; grid-template-columns: var(--pf-touch) minmax(0, 1fr) var(--pf-touch); grid-template-rows: auto minmax(0, 1fr); gap: var(--pf-space-3); padding: var(--pf-space-3) var(--pf-space-4) var(--pf-space-5); }
.pf-lightbox::backdrop { background: var(--pf-media-bg); }
.pf-lightbox__bar { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; font-size: var(--pf-fs-meta); font-variant-numeric: tabular-nums; }
.pf-lightbox__figure { grid-column: 2; grid-row: 2; display: grid; grid-template-rows: minmax(0, 1fr) auto; gap: var(--pf-space-3); min-height: 0; margin: 0; }
.pf-lightbox__figure img { width: 100%; height: 100%; object-fit: contain; }
.pf-lightbox__figure figcaption { text-align: center; font-size: var(--pf-fs-control); }
.pf-lightbox__btn { display: grid; place-items: center; width: var(--pf-touch); height: var(--pf-touch); padding: 0; border: 1px solid var(--pf-overlay); border-radius: 50%; background: var(--pf-overlay); color: var(--pf-on-overlay); }
.pf-lightbox__btn:hover { border-color: currentColor; }
.pf-lightbox__btn svg { width: 20px; height: 20px; display: block; }
.pf-lightbox__prev { grid-column: 1; grid-row: 2; align-self: center; }
.pf-lightbox__next { grid-column: 3; grid-row: 2; align-self: center; }
@media (max-width: 640px) { /* phones: arrows under the image, thumbs reach */
  .pf-lightbox[open] { grid-template-columns: 1fr 1fr; grid-template-rows: auto minmax(0, 1fr) auto; }
  .pf-lightbox__figure { grid-column: 1 / -1; }
  .pf-lightbox__prev { grid-column: 1; grid-row: 3; justify-self: start; }
  .pf-lightbox__next { grid-column: 2; grid-row: 3; justify-self: end; }
}

/* ========== A–Z bar + glossary ========== */
.pf-az { position: sticky; top: var(--pf-sticky-top); z-index: 5; display: grid; grid-template-columns: repeat(auto-fit, minmax(32px, 1fr)); gap: 4px; padding: var(--pf-space-2) 0; background: var(--pf-bg); border-bottom: 1px solid var(--pf-line); transition: top .25s ease; }
.pf-az a { display: grid; place-items: center; min-height: 36px; border: 1px solid var(--pf-line); border-radius: var(--pf-radius); color: var(--pf-action); font-size: var(--pf-fs-control); font-weight: var(--pf-fw-semibold); text-decoration: none; }
.pf-az a:hover { border-color: var(--pf-action-soft-line); background: var(--pf-action-soft); }
.pf-glossary__search { display: grid; gap: 6px; max-width: 560px; margin-bottom: var(--pf-space-4); }
.pf-glossary__search .pf-meta { color: var(--pf-text-3); }
.pf-glossary__section { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: var(--pf-space-5); padding-top: var(--pf-space-5); scroll-margin-top: var(--pf-space-8); }
.pf-glossary__letter { color: var(--pf-action); font-size: var(--pf-fs-h2); line-height: 58px; /* one line of the term summary */ }
.pf-glossary__actions { display: flex; flex-wrap: wrap; gap: 0 var(--pf-space-5); }
.pf-glossary__actions .pf-text-link { min-height: var(--pf-touch); }
.pf-faq__answer > p + p, .pf-faq__answer > p + .pf-glossary__actions { margin-top: var(--pf-space-3); }
@media (max-width: 800px) {
  .pf-az { display: flex; overflow-x: auto; overscroll-behavior-x: contain; margin-inline: calc(var(--pf-gutter) * -1); padding-inline: var(--pf-gutter); scrollbar-width: none; }
  .pf-az::-webkit-scrollbar { display: none; }
  .pf-az a { flex: none; min-width: var(--pf-touch); min-height: var(--pf-touch); }
  .pf-glossary__section { grid-template-columns: 1fr; gap: 0; }
  .pf-glossary__letter { line-height: var(--pf-lh-heading); padding-bottom: var(--pf-space-2); }
}

/* ========== Channel ranking row (YouTube channels) ========== */
.pf-channel-list { border-top: 1px solid var(--pf-line); }
.pf-channel { display: grid; grid-template-columns: 56px minmax(0, 1fr) 300px; grid-template-areas: "logo body stats" "logo body more"; gap: var(--pf-space-2) var(--pf-space-5); align-items: start; padding: var(--pf-space-5) 0; border-bottom: 1px solid var(--pf-line); }
.pf-channel__logo { grid-area: logo; display: block; width: 56px; height: 56px; border-radius: 50%; overflow: hidden; background: var(--pf-surface); }
.pf-channel__logo img { width: 100%; height: 100%; object-fit: cover; }
.pf-channel__body { grid-area: body; display: grid; gap: 4px; justify-items: start; min-width: 0; }
.pf-channel__body > * { margin: 0; }
.pf-channel__name { font-size: var(--pf-fs-h4); font-weight: var(--pf-fw-semibold); line-height: var(--pf-lh-snug); }
.pf-channel__name a { color: var(--pf-text); text-decoration: none; }
.pf-channel__name a:hover { color: var(--pf-action); text-decoration: underline; }
.pf-channel__excerpt { margin-top: var(--pf-space-1); color: var(--pf-text-2); font-size: var(--pf-fs-control); line-height: var(--pf-lh-body); }
.pf-channel__stats { grid-area: stats; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--pf-space-3); margin: 0; }
.pf-channel__stats div { display: grid; align-content: start; gap: 2px; } /* values on one line whatever the label length */
.pf-channel__stats dd { order: -1; }
.pf-channel__stats dt { color: var(--pf-text-3); font-size: var(--pf-fs-eyebrow); line-height: 1.3; }
.pf-channel__stats dd { margin: 0; color: var(--pf-text); font-size: var(--pf-fs-h4); font-weight: var(--pf-fw-semibold); line-height: 1.2; font-variant-numeric: tabular-nums; }
.pf-channel > .pf-text-link { grid-area: more; justify-self: end; min-height: 0; }
.pf-channel-sort { max-width: 260px; }
/* tablet and phones: figures under the name, compact */
@media (max-width: 900px) {
  .pf-channel { grid-template-columns: 48px minmax(0, 1fr); grid-template-areas: "logo body" "logo stats"; gap: var(--pf-space-3) var(--pf-space-4); padding: var(--pf-space-4) 0; }
  .pf-channel__logo { width: 48px; height: 48px; }
  .pf-channel > .pf-text-link { display: none; } /* the name opens the same page */
}
@media (max-width: 640px) {
  .pf-channel { grid-template-columns: 40px minmax(0, 1fr); column-gap: var(--pf-space-3); }
  .pf-channel__logo { width: 40px; height: 40px; }
  .pf-channel__excerpt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: var(--pf-fs-meta); }
  .pf-channel__stats dd { font-size: var(--pf-fs-control); }
  .pf-channel__body .pf-quiet-link { display: inline-flex; align-items: center; min-height: var(--pf-touch); margin-block: -10px; }
}

/* ========== Session chart (exchange hours on a 24 h axis) ========== */
.pf-sessions { --pf-sessions-name: 190px; display: grid; gap: var(--pf-space-4); margin: var(--pf-space-5) 0; padding: var(--pf-space-5); border: 1px solid var(--pf-line); border-radius: var(--pf-radius-card); background: var(--pf-surface); }
.pf-sessions__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: var(--pf-space-2); }
.pf-sessions__title { color: var(--pf-text); font-size: var(--pf-fs-h4); font-weight: var(--pf-fw-semibold); }
.pf-sessions__now-label { color: var(--pf-action); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); font-variant-numeric: tabular-nums; }
.pf-sessions__rows { position: relative; display: grid; gap: var(--pf-space-3); }
.pf-sessions__row { display: grid; grid-template-columns: var(--pf-sessions-name) minmax(0, 1fr); align-items: center; }
.pf-sessions__name { display: grid; color: var(--pf-text); font-size: var(--pf-fs-control); font-weight: var(--pf-fw-semibold); line-height: var(--pf-lh-snug); }
.pf-sessions__name small { color: var(--pf-text-3); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-regular); font-variant-numeric: tabular-nums; }
.pf-sessions__track { position: relative; height: 12px; border-radius: 6px; background: var(--pf-line); }
.pf-sessions__bar { position: absolute; top: 0; bottom: 0; border-radius: 6px; background: var(--pf-action); opacity: .45; }
.pf-sessions__bar.is-open { opacity: 1; }
.pf-sessions__axis { display: flex; justify-content: space-between; margin-left: var(--pf-sessions-name); color: var(--pf-text-3); font-size: var(--pf-fs-eyebrow); font-variant-numeric: tabular-nums; }
.pf-sessions__axis span { width: 0; display: flex; justify-content: center; white-space: nowrap; } /* label centred on its hour */
.pf-sessions__axis span:first-child { justify-content: flex-start; }
.pf-sessions__axis span:last-child { justify-content: flex-end; }
/* live marker: one line per track (never crosses the names), position set by pf.js in --pf-now */
.pf-sessions[data-now] .pf-sessions__track::after { content: ""; position: absolute; top: -4px; bottom: -4px; left: var(--pf-now); width: 2px; margin-left: -1px; border-radius: 1px; background: var(--pf-accent); }
.pf-sessions figcaption { color: var(--pf-text-3); font-size: var(--pf-fs-meta); line-height: var(--pf-lh-snug); }
@media (max-width: 640px) { /* phones: the name sits above its track, the axis spans the full width */
  .pf-sessions { --pf-sessions-name: 0px; padding: var(--pf-space-4); }
  .pf-sessions__row { grid-template-columns: 1fr; gap: 6px; }
  .pf-sessions__name small { white-space: nowrap; }
}

/* ========== Marketing page parts (Partner with us) ========== */
.pf-partner-head h1 { max-width: none; }
.pf-partner-head .pf-lead { max-width: 720px; }
.pf-partner-head .pf-lead strong { color: var(--pf-text); font-weight: var(--pf-fw-semibold); }
.pf-partner-head .pf-actions { margin-top: var(--pf-space-5); }
/* Logo strip (press mentions, partners): wordmarks on white plates, one row that wraps */
.pf-logo-strip__label { margin-bottom: var(--pf-space-3); color: var(--pf-text-3); font-size: var(--pf-fs-eyebrow); font-weight: var(--pf-fw-semibold); letter-spacing: var(--pf-ls-eyebrow); text-transform: uppercase; }
.pf-logo-strip { display: flex; flex-wrap: wrap; gap: var(--pf-space-3); list-style: none; }
.pf-logo-strip li { display: grid; }
.pf-logo-strip img, .pf-logo-strip a { display: grid; place-items: center; height: 56px; }
.pf-logo-strip li > img, .pf-logo-strip a { padding: 12px 18px; border: 1px solid var(--pf-line); border-radius: var(--pf-radius-card); background: var(--pf-logo-plate); }
.pf-logo-strip li > img { width: 168px; object-fit: contain; }
.pf-logo-strip a img { width: 132px; height: 32px; object-fit: contain; }
.pf-logo-strip a:hover { border-color: var(--pf-action-soft-line); }
.pf-logo-strip--dense { gap: var(--pf-space-2); }
.pf-logo-strip--dense a { height: 48px; padding: 8px 12px; }
.pf-logo-strip--dense a img { width: 96px; height: 28px; }
@media (max-width: 640px) { .pf-logo-strip--dense { display: grid; grid-auto-flow: column; grid-template-rows: repeat(2, 48px); grid-auto-columns: max-content; overflow-x: auto; margin-inline: calc(var(--pf-gutter) * -1); padding: 0 var(--pf-gutter) 4px; scrollbar-width: none; } }
/* Benefits: three short arguments under a rule */
.pf-benefits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--pf-space-6); }
.pf-benefits__item { padding-top: var(--pf-space-4); border-top: 2px solid var(--pf-text); }
.pf-benefits__item p { margin-top: var(--pf-space-2); color: var(--pf-text-2); font-size: var(--pf-fs-control); line-height: var(--pf-lh-body); }
.pf-benefits__item strong { color: var(--pf-text); }
/* Numbered steps (CSS counter, number circle centred by grid) */
.pf-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--pf-space-4); list-style: none; counter-reset: pf-step; }
.pf-steps--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pf-steps__item { counter-increment: pf-step; display: grid; grid-template-rows: auto auto 1fr auto; align-content: start; justify-items: start; gap: var(--pf-space-2); padding: var(--pf-space-5); border: 1px solid var(--pf-line); border-radius: var(--pf-radius-card); background: var(--pf-raised); }
.pf-steps__item::before { content: counter(pf-step); display: grid; place-items: center; width: 32px; height: 32px; margin-bottom: var(--pf-space-2); border-radius: 50%; background: var(--pf-action-soft); color: var(--pf-action); font-size: var(--pf-fs-control); font-weight: var(--pf-fw-heading); font-variant-numeric: tabular-nums; }
.pf-steps__item--featured { border-color: var(--pf-action-soft-line); box-shadow: inset 0 3px 0 var(--pf-accent); }
.pf-steps__item h3 { font-size: var(--pf-fs-h4); }
.pf-steps__item p { color: var(--pf-text-2); font-size: var(--pf-fs-control); line-height: var(--pf-lh-body); }
.pf-steps__badge { display: inline-flex; align-items: center; gap: 6px; color: var(--pf-action); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); }
.pf-steps__badge svg { width: 18px; height: 18px; flex: none; }
/* Touchpoint card: text + one screenshot (lightbox) */
.pf-showcase { display: grid; grid-template-rows: auto 1fr auto; gap: var(--pf-space-3); }
.pf-showcase p { color: var(--pf-text-2); font-size: var(--pf-fs-control); line-height: var(--pf-lh-body); }
.pf-showcase .pf-gallery, .pf-showcase__figure .pf-gallery { grid-template-columns: 1fr; }
.pf-showcase__figure { display: grid; gap: var(--pf-space-2); margin: 0; }
/* Packages */
.pf-plans { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--pf-space-5); align-items: start; }
.pf-plans--single { grid-template-columns: minmax(0, 640px); }
.pf-plans--center { justify-content: center; }
.pf-section--center > h2, .pf-section--center > .pf-lead { text-align: center; margin-inline: auto; }
.pf-plans--wide { grid-template-columns: minmax(0, 1fr); }
.pf-plan.pf-plan--wide { grid-template-columns: minmax(0, 1fr) minmax(240px, 300px); column-gap: var(--pf-space-7); align-items: start; }
.pf-plan__main { display: grid; gap: var(--pf-space-3); min-width: 0; }
.pf-plan__main > * { margin: 0; }
.pf-plan__aside { display: grid; gap: var(--pf-space-3); align-content: start; padding-left: var(--pf-space-6); border-left: 1px solid var(--pf-line); }
.pf-plan__aside > * { margin: 0; }
.pf-plan { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--pf-space-3); padding: var(--pf-space-6); border: 1px solid var(--pf-line); border-radius: var(--pf-radius-card); background: var(--pf-raised); }
.pf-plan--featured { border-color: var(--pf-action-soft-line); box-shadow: inset 0 3px 0 var(--pf-accent); }
.pf-plan > * { margin: 0; }
.pf-plan, .pf-steps__item { min-width: 0; overflow-wrap: break-word; }
.pf-plan__name { font-size: var(--pf-fs-h3); }
.pf-plan__kicker { color: var(--pf-text-3); font-size: var(--pf-fs-eyebrow); font-weight: var(--pf-fw-semibold); letter-spacing: var(--pf-ls-eyebrow); text-transform: uppercase; }
.pf-plan__price { color: var(--pf-action); font-size: var(--pf-fs-h2); font-weight: var(--pf-fw-heading); line-height: 1.2; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.pf-plan__vat { color: var(--pf-text-3); font-size: var(--pf-fs-meta); line-height: var(--pf-lh-snug); }
.pf-plan__desc { color: var(--pf-text-2); font-size: var(--pf-fs-control); line-height: var(--pf-lh-body); }
.pf-plan__group { padding-top: var(--pf-space-4); border-top: 1px solid var(--pf-line); }
.pf-plan__group h4 { margin-bottom: var(--pf-space-2); color: var(--pf-text-3); font-size: var(--pf-fs-eyebrow); font-weight: var(--pf-fw-semibold); letter-spacing: var(--pf-ls-eyebrow); text-transform: uppercase; }
.pf-plan .pf-btn { margin-top: var(--pf-space-2); white-space: normal; text-align: center; } /* long CTA wraps on 320 px instead of widening the card */
/* ✓ / ✗ list: marks drawn with a mask, sized to the first text line, so they sit on its centre */
.pf-plan__list { display: grid; gap: var(--pf-space-2); list-style: none; }
.pf-plan__list li { display: grid; grid-template-columns: 16px minmax(0, 1fr); column-gap: 10px; color: var(--pf-text); font-size: var(--pf-fs-control); line-height: var(--pf-lh-body); }
.pf-plan__list li::before { content: ""; height: calc(var(--pf-lh-body) * 1em); background: currentColor; -webkit-mask: var(--pf-mark) center / 14px 14px no-repeat; mask: var(--pf-mark) center / 14px 14px no-repeat; }
.pf-plan__list li > * { grid-column: 2; }
.pf-plan__yes { --pf-mark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2 7.4l3.2 3.1L12 3.6' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.pf-plan__yes::before { color: var(--pf-positive); }
.pf-plan__no { --pf-mark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3.5 3.5l7 7M10.5 3.5l-7 7' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E"); color: var(--pf-text-2); }
.pf-plan__no::before { color: var(--pf-text-3); }
.pf-plan__list small { display: block; color: var(--pf-text-3); font-size: var(--pf-fs-meta); line-height: var(--pf-lh-snug); }
.pf-plan__list a { color: var(--pf-action); }
@media (max-width: 1080px) { .pf-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 800px) {
  .pf-benefits, .pf-plans, .pf-plans--single, .pf-steps--3 { grid-template-columns: minmax(0, 1fr); gap: var(--pf-space-5); }
  .pf-plan { padding: var(--pf-space-5); }
  .pf-plan.pf-plan--wide { grid-template-columns: minmax(0, 1fr); }
  .pf-plan__aside { padding-left: 0; padding-top: var(--pf-space-4); border-left: 0; border-top: 1px solid var(--pf-line); }
  .pf-logo-strip { gap: var(--pf-space-2); }
  .pf-logo-strip li > img { width: 136px; height: 48px; padding: 10px 14px; }
  .pf-logo-strip a { height: 48px; padding: 8px 12px; }
  .pf-logo-strip a img { width: 108px; }
}
@media (max-width: 640px) { /* phones: steps as compact rows, number at the left */
  .pf-steps { grid-template-columns: 1fr; gap: 0; border-top: 1px solid var(--pf-line); }
  .pf-steps__item { grid-template-columns: 32px minmax(0, 1fr); grid-template-rows: none; column-gap: var(--pf-space-3); padding: var(--pf-space-4) 0; border: 0; border-bottom: 1px solid var(--pf-line); border-radius: 0; background: none; box-shadow: none; }
  .pf-steps__item { row-gap: 6px; }
  .pf-steps__item::before { grid-row: 1 / span 2; margin: 0; }
  .pf-steps__item > * { grid-column: 2; }
}
.pf-plan__price small { display: block; margin-top: 4px; color: var(--pf-text-2); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-medium); letter-spacing: 0; }

/* ========== Press feedback (1.4.2) ==========
   Pressable controls shrink slightly while pressed, so a tap or click is confirmed at once (most visible on touch, where there is no hover).
   Transform only; prefers-reduced-motion removes the transition (pf-base.css), the press state stays instant. */
:is(.pf-btn, .pf-search-toggle, .pf-theme-toggle, .pf-menu-toggle, .pf-share, .pf-code__copy, .pf-to-top, .pf-tab, .pf-az a,
    .pf-pagination a, .pf-applied button, .pf-lightbox__btn, .pf-firm-link, a.pf-tag) {
  transition-property: background-color, border-color, color, opacity, transform;
  transition-duration: .15s, .15s, .15s, var(--pf-dur), var(--pf-dur-press);
  transition-timing-function: ease, ease, ease, var(--pf-ease-out), var(--pf-ease-out);
}
:is(.pf-btn, .pf-search-toggle, .pf-theme-toggle, .pf-menu-toggle, .pf-share, .pf-code__copy, .pf-tab, .pf-az a,
    .pf-pagination a, .pf-applied button, .pf-lightbox__btn, .pf-firm-link, a.pf-tag):active:not([disabled]) { transform: scale(.97); }
.pf-to-top.is-visible:active { transform: scale(.97); }

/* Titles in lists: no single word left on the last line (1.4.2). */
:is(.pf-card__title, .pf-story__title, .pf-video-card__title, .pf-news-item__title, .pf-news-columns__title, .pf-offer-card .pf-card__title,
    .pf-widget-list a, .pf-related-link strong, .pf-prevnext a, .pf-tool__name, .pf-channel__name) { text-wrap: pretty; }

/* ========== Status firmy (1.5.0) — single-firma_status.php ==========
   Company outside the ranking: text column up to --pf-main (850 px), firms and promotions use the full container; no sidebar. */
.pf-firma-status__narrow { max-width: var(--pf-main); }
.pf-firma-status__head { padding-bottom: var(--pf-space-4); }
.pf-firma-status__box { margin-bottom: var(--pf-space-5); }
.pf-firma-status__box p { margin: 0 0 var(--pf-space-3); }
.pf-firma-status__box p:last-child { margin-bottom: 0; }
.pf-firma-status__sub { margin: var(--pf-space-6) 0 var(--pf-space-3); }
.pf-firma-status__back { margin: var(--pf-space-7) 0 0; }

/* Cennik: panel szczegółów (dialog modalny z prawej) — pf.js openOfferPanel() */
.pf-offer-panel { position: fixed; inset: 0 0 0 auto; margin: 0; width: min(520px, 100vw); max-width: 100vw; height: 100dvh; max-height: 100dvh; padding: 0; border: 0; border-left: 1px solid var(--pf-line); background: var(--pf-bg); color: var(--pf-text); overflow-y: auto; box-shadow: var(--pf-shadow-lg, -12px 0 32px rgba(0,0,0,.18)); }
.pf-offer-panel::backdrop { background: rgba(10, 12, 24, .45); }
.pf-offer-panel__head { position: sticky; top: 0; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: var(--pf-space-3); align-items: start; padding: var(--pf-space-4) var(--pf-space-5); border-bottom: 1px solid var(--pf-line); background: var(--pf-bg); }
.pf-offer-panel__head h2 { margin: 0; font-size: var(--pf-fs-h3); }
.pf-offer-panel__head p { margin: 2px 0 0; color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-offer-panel__price { text-align: right; white-space: nowrap; }
.pf-offer-panel__price small { display: block; color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-offer-panel__body { padding: var(--pf-space-5); }
.pf-offer-panel .pf-price-table__sections { grid-template-columns: 1fr; }
.pf-offer-panel dl { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(8ch, 1fr); gap: 4px var(--pf-space-4); margin: 0 0 var(--pf-space-4); }
.pf-offer-panel dt { color: var(--pf-text-3); overflow-wrap: anywhere; }
.pf-offer-panel dd { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 560px) { .pf-offer-panel__head { grid-template-columns: minmax(0, 1fr) auto; } .pf-offer-panel__price { grid-column: 1; text-align: left; } }

/* Popup zapisu (wzorzec dla MailPoet): wyraźna ramka, akcent u góry, cień; na telefonie bottom sheet do 40% wysokości, zamknięcie 44×44 */
.pf-sheet-demo { position: relative; padding: var(--pf-space-5); border: 1px dashed var(--pf-line-strong); border-radius: var(--pf-radius-card); background: var(--pf-surface); }
.pf-sheet { position: relative; max-width: 484px; margin: 0 auto; padding: var(--pf-space-6); border: 1px solid var(--pf-line-strong); border-top: 4px solid var(--pf-action); border-radius: var(--pf-radius-card); background: var(--pf-raised); color: var(--pf-text); box-shadow: var(--pf-shadow-pop); }
.pf-sheet__close { position: absolute; top: 0; right: 0; width: 44px; height: 44px; border: 0; background: none; color: var(--pf-text); font-size: 24px; line-height: 1; cursor: pointer; }
.pf-sheet__title { margin: 0 var(--pf-space-6) var(--pf-space-2) 0; font-size: var(--pf-fs-h3); line-height: var(--pf-lh-snug); }
.pf-sheet__text { margin: 0 0 var(--pf-space-4); color: var(--pf-text-2); }
.pf-sheet__form { display: grid; gap: var(--pf-space-2); }
.pf-sheet__note { margin: var(--pf-space-3) 0 0; color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
@media (max-width: 600px) { .pf-sheet { max-width: none; max-height: 40dvh; overflow-y: auto; padding: var(--pf-space-4) var(--pf-space-5); border-radius: var(--pf-radius-card) var(--pf-radius-card) 0 0; } .pf-sheet__title { font-size: var(--pf-fs-body); } .pf-sheet__text { font-size: var(--pf-fs-meta); margin-bottom: var(--pf-space-2); } }

/* Przełącznik wersji językowej (np. „Read in English” na metodologii): mały przycisk-link z ikoną języka, wyrównany do prawej nad treścią */
.pf-lang-switch { display: flex; justify-content: flex-end; margin: 0 0 var(--pf-space-4); }
.pf-lang-switch__link { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 var(--pf-space-3); border: 1px solid var(--pf-line-strong); border-radius: var(--pf-radius); color: var(--pf-action); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); text-decoration: none; }
.pf-lang-switch__link:hover { background: var(--pf-action-soft); }
.pf-lang-switch__link:focus-visible { outline: 3px solid var(--pf-focus); outline-offset: 2px; }

/* Huby: karty skrótów „Zacznij tutaj” (tytuł, opis, przycisk) */
.pf-hub-grid, .pf-content .pf-hub-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--pf-space-6); margin: var(--pf-space-6) 0; }
.pf-hub-card, .pf-content .pf-hub-card { display: grid; grid-template-rows: auto 1fr auto; justify-items: start; gap: var(--pf-space-3); padding: var(--pf-space-5); border: 1px solid var(--pf-line); border-radius: var(--pf-radius-card); background: var(--pf-raised); } /* ramka jak .pf-offer-card (huby: boksy skrótów) */
.pf-hub-card h3 { margin: 0; font-size: var(--pf-fs-h3); }
.pf-hub-card p { margin: 0; color: var(--pf-text-2); }
@media (max-width: 900px) { .pf-hub-grid, .pf-content .pf-hub-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .pf-hub-grid, .pf-content .pf-hub-grid { grid-template-columns: 1fr; } }

/* Źródło wpisu: „Zobacz oryginalny komunikat {firma}” + przycisk „Zobacz”, który rozwija podgląd tweeta w miejscu (ładowany dopiero po kliknięciu) */
.pf-source { margin: var(--pf-space-5) 0; border-top: 1px solid var(--pf-line); border-bottom: 1px solid var(--pf-line); }
.pf-source__bar { display: flex; justify-content: space-between; align-items: center; gap: var(--pf-space-3); padding: var(--pf-space-4) 0; font-size: var(--pf-fs-control); }
.pf-source__toggle { display: inline-flex; align-items: center; gap: 6px; padding: 0; border: 0; background: none; color: var(--pf-action); font: inherit; font-weight: var(--pf-fw-semibold); cursor: pointer; min-height: 32px; }
.pf-source__toggle::after { content: ""; width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .2s; }
.pf-source__toggle[aria-expanded="true"]::after { transform: translateY(1px) rotate(225deg); }
.pf-source__toggle:hover { color: var(--pf-action-hover); }
.pf-source__embed { padding: 0 0 var(--pf-space-4); }
.pf-source__embed .pf-source__msg { margin: 0; color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
.pf-source__embed blockquote.twitter-tweet { margin: 0; padding: var(--pf-space-4); border: 1px solid var(--pf-line); border-radius: var(--pf-radius-card); background: var(--pf-surface); color: var(--pf-text); font-size: var(--pf-fs-control); }
.pf-source__embed blockquote.twitter-tweet p { margin: 0 0 var(--pf-space-2); }
@media (prefers-reduced-motion: reduce) { .pf-source__toggle::after { transition: none; } }
@media (max-width: 800px) { .pf-tabs--scroll { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(var(--pf-gutter) * -1); padding: 0 var(--pf-gutter) 4px; scrollbar-width: none; } .pf-tabs--scroll .pf-tab { flex: none; } }
.pf-meta code, .pf-lead code { overflow-wrap: anywhere; }
.pf-rank-embed .pf-actions .pf-btn { white-space: normal; text-align: center; }

.pf-rank-embed__tools { display: flex; flex-wrap: wrap; align-items: center; gap: var(--pf-space-3); margin: 0 0 var(--pf-space-3); }
.pf-rank-embed__tools[hidden] { display: none; }
.pf-rank-embed__tools .pf-input { flex: 1 1 240px; max-width: 360px; }
.pf-firm-list__sort { display: inline-flex; align-items: center; gap: 4px; padding: 0; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.pf-firm-list__sort[hidden], .pf-firm-list__labels [hidden] { display: none; }
.pf-firm-list__sort:hover { color: var(--pf-action); }
.pf-firm-list__sort[aria-sort="ascending"]::after { content: "▲"; font-size: .8em; color: var(--pf-action); }
.pf-firm-list__sort[aria-sort="descending"]::after { content: "▼"; font-size: .8em; color: var(--pf-action); }
.pf-firm[hidden] { display: none; }

/* Godziny rynku Forex: wiersz natężenia handlu (3 stopnie z modelu OANDA 2024) w komponencie pf-sessions */
.pf-sessions__track--vol { display: grid; grid-template-columns: repeat(24, minmax(0, 1fr)); gap: 2px; height: 18px; border-radius: 4px; background: none; }
.pf-sessions__vol-cell { border-radius: 2px; background: var(--pf-action); }
.pf-sessions__vol-cell[data-lvl="1"], .pf-sessions__legend i[data-lvl="1"] { opacity: .16; }
.pf-sessions__vol-cell[data-lvl="2"], .pf-sessions__legend i[data-lvl="2"] { opacity: .45; }
.pf-sessions__vol-cell[data-lvl="3"], .pf-sessions__legend i[data-lvl="3"] { opacity: 1; }
.pf-sessions__legend { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin-right: var(--pf-space-2); white-space: nowrap; }
.pf-sessions__legend i { display: inline-block; width: 14px; height: 10px; border-radius: 2px; background: var(--pf-action); }
.pf-sessions__row--vol { margin-top: var(--pf-space-1); }
.pf-sessions[data-weekend-now] .pf-sessions__bar { opacity: .25; }
/* Lista firm w treści: `.pf-content` przycina (overflow-x: clip) — pierścień fokusu rysowany do wewnątrz (3 px), żeby nie był ucinany z lewej */
.pf-rank-embed :focus-visible, .pf-rank-embed .pf-input:focus, .pf-rank-embed .pf-select:focus { outline-offset: -3px; }
/* Znacznik „teraz” w pf-sessions: kontrastowy (kolor tekstu, obrys w kolorze tła, kropka u góry) w obu motywach; najniższy stopień natężenia nie ginie w tle */
.pf-sessions[data-now] .pf-sessions__track::after { background: var(--pf-text); box-shadow: 0 0 0 1px var(--pf-surface); top: -6px; bottom: -6px; }
.pf-sessions[data-now] .pf-sessions__row:first-child .pf-sessions__track::before { content: ""; position: absolute; top: -12px; left: var(--pf-now); width: 8px; height: 8px; margin-left: -4px; border-radius: 50%; background: var(--pf-text); box-shadow: 0 0 0 1px var(--pf-surface); }
.pf-sessions__vol-cell[data-lvl="1"], .pf-sessions__legend i[data-lvl="1"] { opacity: .24; }
