/* PropFirm.pl — adapter WP → kit 1.5.0 (etap 2b).
   Tłumaczy znaczniki generowane przez Astrę (Customizer, bloki core), Spectrę (uagb-faq) i portal-core (shortcode .pfv2)
   na tokeny kitu w obrębie .pf-content oraz pól formularza. Reguły dotyczą KOMPONENTÓW wspólnych dla wielu widoków (nagłówki, tabele,
   cytaty, separatory, podpisy, FAQ, cennik, pola) — nie pojedynczych stron. Ładowany po kicie; kit (design/wp-kit/css) bez zmian. */

/* ===== etap 2b: treść wpisów w tokenach kitu (nadpisanie Astra/Spectra/legacy; zakres: szablony pf-template-*) ===== */
/* Czcionka: Astra (Customizer) ustawia Space Grotesk na nagłówkach; kit używa stosu systemowego. */
:root body[class*="pf-template-"] :is(h1,h2,h3,h4,h5,h6) { font-family: var(--pf-font); }
/* Tabele (wp-block-table / .propfirm-table) */
:root .pf-content .wp-block-table, :root .pf-content figure.propfirm-table { margin: var(--pf-space-6) 0; overflow-x: auto; border: 1px solid var(--pf-line); border-radius: var(--pf-radius-card); }
:root :is(.pf-content, .pf-review-section) table:not(.pf-table) { width: 100%; min-width: 520px; border: 0; border-collapse: collapse; font-size: var(--pf-fs-meta); line-height: var(--pf-lh-snug); table-layout: auto; }
:root :is(.pf-content, .pf-review-section) table:not(.pf-table) :is(th,td) { padding: 12px 14px; border: 0; border-bottom: 1px solid var(--pf-line); text-align: left; vertical-align: top; text-transform: none; letter-spacing: normal; font-size: var(--pf-fs-meta); line-height: var(--pf-lh-snug); color: var(--pf-text); }
:root :is(.pf-content, .pf-review-section) table:not(.pf-table) th { background: var(--pf-surface); font-weight: var(--pf-fw-semibold); white-space: nowrap; }
:root :is(.pf-content, .pf-review-section) table:not(.pf-table) td { font-weight: var(--pf-fw-regular, 400); background: transparent; }
:root :is(.pf-content, .pf-review-section) table:not(.pf-table) tbody tr:last-child > * { border-bottom: 0; }
:root :is(.pf-content, .pf-review-section) table:not(.pf-table) :is(tbody th, td:first-child) { font-weight: var(--pf-fw-semibold); }

:root :is(.pf-content, .pf-review-section) table:not(.pf-table) tr:hover > td { background: transparent; }
/* Zwykły cytat → kit: pull-quote z paskiem (callouty .pf-callout--* zostają z kitu) */
:root .pf-content :is(blockquote, .wp-block-quote):not(.pf-callout) { margin: var(--pf-space-6) 0; padding: var(--pf-space-1) 0 var(--pf-space-1) var(--pf-space-5); border: 0; border-left: 3px solid var(--pf-action); border-radius: 0; background: none; color: var(--pf-text); font-size: var(--pf-fs-lead); font-style: normal; line-height: var(--pf-lh-body); }
:root .pf-content blockquote:not(.pf-callout) > :last-child { margin-bottom: 0; }
:root .pf-content blockquote:not(.pf-callout) cite { display: block; color: var(--pf-text-3); font-size: var(--pf-fs-meta); font-style: normal; }
/* Podpisy */
:root .pf-content :is(figcaption, .wp-element-caption) { margin: var(--pf-space-2) 0 0; padding: 0; color: var(--pf-text-3); font-size: var(--pf-fs-meta); line-height: var(--pf-lh-snug); text-align: center; }
:root .pf-content .wp-block-table figcaption { padding: 0 14px 12px; text-align: left; }
/* FAQ Spectra → wygląd .pf-faq */
:root .pf-content .wp-block-uagb-faq { display: block; margin: var(--pf-space-5) 0; border-top: 1px solid var(--pf-line); padding: 0; }
:root .pf-content .wp-block-uagb-faq-child { margin: 0; padding: 0; border: 0; border-bottom: 1px solid var(--pf-line); border-radius: 0; background: transparent; box-shadow: none; }
:root .pf-content .uagb-faq-questions-button { position: relative; display: block; min-height: 58px; padding: 17px 44px 17px 0; margin: 0; background: transparent; cursor: pointer; }
:root .pf-content .uagb-faq-questions-button .uagb-question { margin: 0; padding: 0; color: var(--pf-text); font-size: var(--pf-fs-h4); font-weight: var(--pf-fw-medium); line-height: 1.5; letter-spacing: normal; text-transform: none; }
:root .pf-content .uagb-question strong { font-weight: inherit; }
:root .pf-content .uagb-faq-questions-button:hover .uagb-question { color: var(--pf-action); }
:root .pf-content .uagb-faq-questions-button .uagb-icon, :root .pf-content .uagb-faq-questions-button .uag-icon { position: absolute; right: 8px; top: 50%; margin-top: -7px; width: 14px; height: 14px; color: var(--pf-text-2); }
:root .pf-content .uagb-faq-questions-button .uagb-icon svg, :root .pf-content .uagb-faq-questions-button .uag-icon svg { width: 14px; height: 14px; fill: currentColor; }
:root .pf-content .uagb-faq-item.uagb-faq-item-active .uagb-icon, :root .pf-content .uagb-faq-item.uagb-faq-item-active .uag-icon { color: var(--pf-action); }
:root .pf-content .uagb-faq-content { margin: 0; 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); }
:root .pf-content .uagb-faq-content > :last-child { margin-bottom: 0; }
/* Separator: pełna szerokość jak w kicie */
:root .pf-content :is(hr, .wp-block-separator) { width: 100%; max-width: none; margin: var(--pf-space-7) 0; border: 0; border-top: 1px solid var(--pf-line); background: transparent; opacity: 1; }
:root :is(.pf-content, .pf-review-section) table { color: var(--pf-text); }
:root .pf-content :is(.wp-block-table, .propfirm-table, table) { box-shadow: none; }
/* Pola formularza kitu (Astra zeruje obramowanie input[type=search]) */
:root .pf-input, :root .pf-select { border: 1px solid var(--pf-line-strong); border-radius: var(--pf-radius); background-color: var(--pf-bg); color: var(--pf-text); box-shadow: none; }
:root .pf-input, :root .pf-select { min-height: var(--pf-control-h); padding: 0 14px; font-size: var(--pf-fs-control); line-height: normal; }
:root .pf-select { padding-right: 36px; }
/* Shortcode cennika programów (portal-core, .pfv2) → tokeny kitu (tabela cen: .pf-price-table) */
:root :is(.pf-content, .pf-review-section) .pfv2 { max-width: 100%; font-family: inherit; }
:root :is(.pf-content, .pf-review-section) .pfv2 :is(.pfv2-program, th[scope="row"]) { background: transparent; white-space: normal; font-weight: var(--pf-fw-semibold); }
:root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-program small, :root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-price small { display: block; color: var(--pf-text-3); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-regular); }
:root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-details { margin: 4px 0 0; border: 0; }
:root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-details > summary { display: inline-block; min-height: 32px; padding: 0; margin: 0; border: 0; background: none; color: var(--pf-action); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); line-height: 32px; text-decoration: none; cursor: pointer; }
:root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-details > summary::after { content: none; }
:root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-details > summary:hover { color: var(--pf-action-hover); text-decoration: underline; }
:root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-details > :not(summary) { padding: 0; color: var(--pf-text); font-size: var(--pf-fs-meta); }
:root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-detail-section h3 { margin: 0 0 var(--pf-space-2); font-size: var(--pf-fs-control); line-height: 1.35; }
:root :is(.pf-content, .pf-review-section) .pfv2 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); }
:root :is(.pf-content, .pf-review-section) .pfv2 dt { color: var(--pf-text-3); }
:root :is(.pf-content, .pf-review-section) .pfv2 dd { margin: 0; }
:root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-buy { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 0 14px; border: 0; 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); text-decoration: none; }
:root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-buy:hover { background: var(--pf-action-hover); }
:root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-note, :root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-results { color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
:root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-filters { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) auto; gap: var(--pf-space-3); align-items: end; margin: var(--pf-space-4) 0; padding: 0; }
:root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-filters > label { display: grid; gap: 6px; margin: 0; min-width: 0; color: var(--pf-text-2); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); }
:root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-filters > label[hidden] { display: none; }
:root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-filters select { width: 100%; padding: 0 36px 0 14px; font-weight: var(--pf-fw-regular); 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; }
@media (max-width: 760px) { :root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); } :root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-filters > button { grid-column: 1 / -1; } }
:root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-filters :is(select, input) { min-height: var(--pf-control-h); border: 1px solid var(--pf-line-strong); border-radius: var(--pf-radius); background-color: var(--pf-bg); color: var(--pf-text); font-size: var(--pf-fs-control); }
:root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-filters button { min-height: var(--pf-control-h); border: 1px solid var(--pf-line-strong); border-radius: var(--pf-radius); background: var(--pf-bg); color: var(--pf-action); font-size: var(--pf-fs-control); font-weight: var(--pf-fw-semibold); }
/* Reguły „tabel w treści” powyżej nie dotyczą komponentów kitu (table.pf-table, np. cennik) — te mają własny wygląd z pf-components.css. */
/* Wiersze tabel: Astra/legacy dają tr białe tło i obramowania (ciemny motyw: białe pasy) */
:root :is(.pf-content, .pf-review-section) table :is(tr, thead, tbody, tfoot, tr:nth-child(even), tr:nth-child(odd)) { background: transparent; border: 0; }
/* Astra: kursywa w cytatach (kit: callout bez kursywy) */
:root .pf-content blockquote { font-style: normal; }
/* Astra: kursywa w podpisach, vertical-align obrazów, znaczniki zagnieżdżonych list, font-size wrappera tabeli */
:root .pf-content :is(figcaption, .wp-element-caption) { font-style: normal; }
:root .pf-content img:not(.emoji) { vertical-align: baseline; }
:root .pf-content :is(ul, ol) ul { list-style-type: circle; }
:root .pf-content figure.wp-block-table { font-size: inherit; line-height: inherit; }
/* Długie etykiety przycisków zawijają się na wąskich ekranach (kit: .pf-btn nowrap → poziome przewijanie przy 320 px).
   Kandydat do poprawki w kicie (wątek 1C); do tego czasu tu, nie w stage1-compat.css. */
:root .pf-main .pf-actions .pf-btn, :root .pf-widget .pf-actions .pf-btn { white-space: normal; max-width: 100%; text-align: center; }
/* Stopka: formularz newslettera MailPoet (id 3) w wyglądzie .pf-footer__form kitu. Nagłówek, opis i nota są już w szablonie stopki
   (duplikaty z formularza ukryte); funkcjonalność MailPoet (pola, walidacja, komunikaty) bez zmian. Popup MailPoet nie jest ruszany
   (zakres: .pf-footer). !important tylko tam, gdzie MailPoet wstrzykuje style inline (width, padding, font, height). */
:root .pf-footer .mailpoet_form :is(.mailpoet-heading, p.mailpoet_form_paragraph) { display: none; }
:root .pf-footer .mailpoet_form .mailpoet_form_columns { display: flex; flex-wrap: nowrap; gap: var(--pf-space-2); margin-top: var(--pf-space-4); margin-bottom: var(--pf-space-3); max-width: 480px; align-items: stretch; }
:root .pf-footer .mailpoet_form .mailpoet_form_column { margin: 0; flex: 1 1 auto; min-width: 0; }
:root .pf-footer .mailpoet_form .mailpoet_form_column:last-child { flex: 0 0 auto; }
:root .pf-footer .mailpoet_form .mailpoet_paragraph { margin: 0; line-height: normal; }
:root .pf-footer .mailpoet_form input.mailpoet_text { width: 100% !important; min-height: var(--pf-touch); height: auto !important; padding: 0 14px !important; margin: 0 !important; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-radius); background: var(--pf-bg); color: var(--pf-text); font-family: inherit !important; font-size: var(--pf-fs-control) !important; line-height: normal !important; box-shadow: none; }
/* Przycisk wysyłki MailPoet w kicie — jedna reguła dla wszystkich formularzy (stopka, popup, wstawki w treści). Wymiary/układ zostają
   w regułach stopki poniżej; konfiguracja popupu bez zmian. !important tylko dla stylów inline wstrzykiwanych przez MailPoet. */
:root .mailpoet_form input.mailpoet_submit { border: 0; border-radius: var(--pf-radius); background: var(--pf-action) !important; color: var(--pf-action-text) !important; font-family: inherit !important; font-size: var(--pf-fs-control) !important; font-weight: var(--pf-fw-semibold) !important; cursor: pointer; }
:root .mailpoet_form input.mailpoet_submit:hover { background: var(--pf-action-hover) !important; }
:root .mailpoet_form input.mailpoet_submit:focus-visible { outline: 2px solid var(--pf-focus, currentColor); outline-offset: 2px; }
:root .pf-footer .mailpoet_form input.mailpoet_submit { width: auto !important; min-height: var(--pf-touch); height: auto !important; padding: 0 22px !important; margin: 0 !important; border: 0; border-radius: var(--pf-radius); background: var(--pf-action); color: var(--pf-action-text); font-family: inherit !important; font-size: var(--pf-fs-control) !important; font-weight: var(--pf-fw-semibold); line-height: normal !important; white-space: nowrap; cursor: pointer; }
:root .pf-footer .mailpoet_form input.mailpoet_submit:hover { background: var(--pf-action-hover); }
@media (max-width: 640px) { :root .pf-footer .mailpoet_form .mailpoet_form_columns { flex-direction: column; } :root .pf-footer .mailpoet_form .mailpoet_form_column:last-child { flex: 1 1 auto; } :root .pf-footer .mailpoet_form input.mailpoet_submit { width: 100% !important; } }
:root .pf-footer .mailpoet_form, :root .pf-footer .mailpoet_form form, :root .pf-footer .mailpoet_form_columns_container { margin: 0; padding: 0; max-width: none; background: none; border: 0; }
:root .pf-footer .mailpoet_form .mailpoet_form_columns { overflow: visible; width: 100%; padding: 0; }
:root .pf-footer .mailpoet_form .mailpoet_message { margin: 0; padding: 0; }
:root .pf-footer .mailpoet_form .mailpoet_form_loading { display: none; }
/* MailPoet wstrzykuje reguły z #id (np. #mailpoet_form_3 .mailpoet_form_column:not(:first-child){margin-left:20px}) — przebicie tylko !important */
:root .pf-footer .mailpoet_form .mailpoet_form_column { margin: 0 !important; }
:root .pf-footer .mailpoet_form .mailpoet_paragraph { margin: 0 !important; line-height: normal !important; }
:root .pf-footer .mailpoet_form_columns_container, :root .pf-footer .mailpoet_form .mailpoet_form_columns { margin-left: 0 !important; margin-right: 0 !important; }
:root .pf-footer .mailpoet_form form.mailpoet_form { padding: 0 !important; }
:root .pf-footer .mailpoet_form .mailpoet_form_column { display: block !important; max-width: none !important; }
:root .pf-footer .mailpoet_form .mailpoet_form_column:last-child { flex: 0 0 auto !important; }
:root .pf-footer .mailpoet_form .mailpoet_paragraph { max-width: none !important; }
:root .pf-footer .mailpoet_form input.mailpoet_submit { min-width: max-content; overflow: visible; }
:root .pf-footer .mailpoet_form .mailpoet_form_column:first-child { flex: 1 1 0% !important; min-width: 0; }
:root .pf-footer .mailpoet_form .mailpoet_form_columns { max-width: 480px !important; }
:root .pf-footer .mailpoet_form_columns_container { max-width: 480px !important; width: 100%; } /* szerokość pola jak .pf-footer__form kitu (480 px) — ogranicza też kontener, gdyby wiersz został rozciągnięty */
/* Kit: .pf-page + .pf-footer { margin-top: 0 } — w motywie WP .pf-page nie sąsiaduje ze stopką (wrapper Astry), więc reguła nie działa. */
:root body[class*="pf-template-"] .pf-footer { margin-top: 0; }
:root .pf-footer .mailpoet_form_columns_container { margin-bottom: var(--pf-space-3) !important; }
:root .pf-footer .mailpoet_form .mailpoet_form_column:last-child { flex: 0 0 auto !important; width: max-content !important; } /* MailPoet daje kolumnie `container: inline-size` (zero szerokości wewnętrznej) — bez tego przycisk miał 0 px i wystawał poza wiersz, a pole zajmowało całe 480 px */
:root .pf-footer .mailpoet_form .mailpoet_form_column { container-type: normal !important; }
:root .pf-footer .mailpoet_form .mailpoet_form_column:last-child .mailpoet_paragraph, :root .pf-footer .mailpoet_form .mailpoet_form_column:last-child .mailpoet_paragraph { width: auto !important; }
:root .pf-footer .mailpoet_form .mailpoet_form_column:last-child input.mailpoet_submit { width: auto !important; min-width: max-content; white-space: nowrap; }
@media (max-width: 640px) { :root .pf-footer .mailpoet_form .mailpoet_form_column:last-child { flex: 1 1 auto !important; width: 100% !important; } :root .pf-footer .mailpoet_form .mailpoet_form_column:last-child input.mailpoet_submit { width: 100% !important; } }
/* Kit: .pf-search .pf-input { min-height: var(--pf-touch) } — generyczna reguła pól powyżej ma taką samą specyficzność, więc przywracamy */
:root .pf-search .pf-input { min-height: var(--pf-touch); }
/* Bloki grup/kontenerów edytora w treści stron (Astra: globalne tła, alignfull): w kicie treść jest bez własnych teł i pełnych szerokości */
:root .pf-content :is(.wp-block-group.has-background, .wp-block-group.alignfull, .wp-block-uagb-container.alignfull) { background: transparent; max-width: 100%; margin-inline: 0; padding: var(--pf-space-6) 0; }
/* Cytaty ze stylem inline w starej treści stron (np. „O nas”: border #007bff, kursywa, #555) — jedyny sposób to !important */
:root .pf-content blockquote[style]:not(.pf-callout) { border-left: 3px solid var(--pf-action) !important; font-style: normal !important; color: var(--pf-text) !important; font-size: var(--pf-fs-lead) !important; background: none !important; padding-left: var(--pf-space-5) !important; }
@media (max-width: 640px) { :root .pf-content blockquote[style]:not(.pf-callout) { padding-left: var(--pf-space-4) !important; } }
:root .pf-content blockquote[style]:not(.pf-callout) :is(p, cite) { font-style: normal !important; color: inherit !important; }
/* Okładki tekstowe edytora (core/cover z gradientem, ciemny tekst na granatowym tle): w kicie hero treści to zwykły nagłówek i tekst */
:root .pf-content .wp-block-cover:not(:has(img)) { min-height: 0; padding: 0; background: none; color: inherit; }
:root .pf-content .wp-block-cover:not(:has(img)) > .wp-block-cover__background { display: none; }
:root .pf-content .wp-block-cover:not(:has(img)) .wp-block-cover__inner-container { color: inherit; }
/* Huby (strony z szerokimi listami/shortcode'ami): jedna kolumna na pełną szerokość kontenera (bez sidebaru) */
:root .pf-layout--wide { display: block; }
:root .pf-layout--wide > .pf-main { max-width: none; }

/* Tabele z has-fixed-layout (blok tabeli WP) → układ auto jak w kicie: kolumna etykiet nie zawija tekstu */
:root .pf-content table.has-fixed-layout, :root .pf-review-section table.has-fixed-layout { table-layout: auto; }
:root .pf-content .wp-block-table :is(td, th) { word-break: normal; overflow-wrap: normal; }
/* Tabele wstawione bez bloku tabeli (bez .wp-block-table) — przewijane poziomo zamiast rozpychać stronę na telefonie */
:root .pf-content :not(.wp-block-table, figure) > table:not(.pf-table) { display: block; max-width: 100%; overflow-x: auto; }
:root .pf-facts__item { min-width: 0; overflow-wrap: anywhere; }
:root .pf-content { overflow-x: clip; }
:root .pf-content mark { background: var(--pf-action-soft) !important; color: var(--pf-text) !important; }
:root .pf-page mark { background: var(--pf-action-soft) !important; color: var(--pf-text) !important; }

/* Pełne karty [prop_firm_card] (style=featured/widget) — modyfikatory .pf-company-card; markup z pf_rewrite_company_cards_full(). */
.pf-company-card--featured { padding: var(--pf-space-6); border-color: var(--pf-line-strong, var(--pf-line)); }
.pf-company-card .pf-badge { justify-self: start; }
.pf-company-card__desc { margin: 0; font-size: var(--pf-fs-body-sm, 0.9375rem); color: var(--pf-text-muted, inherit); }
.pf-company-card__points { margin: var(--pf-space-2) 0 0; padding: 0; list-style: none; display: grid; gap: 4px; font-size: var(--pf-fs-body-sm, 0.9375rem); }
.pf-content .pf-company-card__points li { margin: 0; padding-left: 1.4em; position: relative; line-height: 1.4; }
.pf-company-card__points li::before { content: "✓"; position: absolute; left: 0; color: var(--pf-action, currentColor); font-weight: var(--pf-fw-semibold); }
.pf-company-card--widget { grid-template-columns: auto minmax(0, 1fr); }
.pf-company-card--widget .pf-company-card__side { grid-column: 1 / -1; grid-auto-flow: column; justify-content: space-between; align-items: center; justify-items: start; }

/* Kontakt: lista danych kontaktowych (z uagb icon-list, pf_lk_iconlist) */
.pf-contact-list { list-style: none; margin: 0 0 var(--pf-space-5); padding: 0; display: grid; gap: var(--pf-space-2); }

/* WPForms (kontakt, partner-with-us, inne) → pola i przyciski kitu (.pf-input / .pf-btn). Logika, walidacja, zgody i wysyłka bez zmian. */
:root .wpforms-container .wpforms-form { --wpforms-button-background-color: var(--pf-action); --wpforms-button-text-color: var(--pf-action-text); --wpforms-field-border-radius: var(--pf-radius); --wpforms-label-color: var(--pf-text); --wpforms-field-text-color: var(--pf-text); --wpforms-field-border-color: var(--pf-line-strong); --wpforms-field-background-color: var(--pf-bg); --wpforms-label-error-color: var(--pf-danger, #b42318); }
:root .wpforms-container .wpforms-field { padding: 0 0 var(--pf-space-4); }
:root .wpforms-container .wpforms-field-label { margin: 0 0 6px; color: var(--pf-text-2); font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); }
:root .wpforms-container .wpforms-field-label .wpforms-required-label { color: var(--pf-action); }
:root .wpforms-container .wpforms-form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], select, textarea) { width: 100%; max-width: 100%; min-height: var(--pf-control-h); padding: 0 14px; border: 1px solid var(--pf-line-strong); border-radius: var(--pf-radius); background-color: var(--pf-bg); color: var(--pf-text); font: inherit; font-size: var(--pf-fs-control); box-shadow: none; }
:root .wpforms-container .wpforms-form textarea { min-height: 140px; padding: 12px 14px; }
:root .wpforms-container .wpforms-form :is(input, select, textarea):focus { outline: 3px solid var(--pf-focus); outline-offset: 0; border-color: var(--pf-action); box-shadow: none; }
:root .wpforms-container .wpforms-form .wpforms-submit { min-height: var(--pf-touch); padding: 0 22px; border: 0; border-radius: var(--pf-radius); background: var(--pf-action); color: var(--pf-action-text); font: inherit; font-size: var(--pf-fs-control); font-weight: var(--pf-fw-semibold); cursor: pointer; }
:root .wpforms-container .wpforms-form .wpforms-submit:hover { background: var(--pf-action-hover); }
:root .wpforms-container .wpforms-form .wpforms-submit:focus-visible { outline: 3px solid var(--pf-focus); outline-offset: 2px; }
:root .wpforms-container label.wpforms-error, :root .wpforms-container .wpforms-error-container { color: var(--pf-danger, #b42318); font-size: var(--pf-fs-meta); }
:root .wpforms-container .wpforms-confirmation-container-full { border: 1px solid var(--pf-line); border-radius: var(--pf-radius-card); background: var(--pf-bg-soft, transparent); color: var(--pf-text); }
:root .wpforms-container :is(.wpforms-field-description, .wpforms-field-sublabel) { color: var(--pf-text-3); font-size: var(--pf-fs-meta); }
:root .pf-content .pf-contact-list { padding-left: 0; }

/* ===== MailPoet: popup zapisu (formularz ID 4, wyzwalacz: exit-intent + 30 s) i komunikaty — komponenty kitu =====
   Logika wyzwalania, lista/segment, double opt-in i zgoda bez zmian; tylko wygląd (MailPoet wstrzykuje style inline → !important tam, gdzie konieczne). */
:root .mailpoet_form_popup_overlay { background: rgba(10, 12, 24, .55) !important; }
:root div.mailpoet_form_popup { box-sizing: border-box; width: min(484px, calc(100vw - 32px)) !important; max-width: calc(100vw - 32px); max-height: calc(100dvh - 32px); overflow-y: auto; background: var(--pf-raised) !important; color: var(--pf-text); border: 1px solid var(--pf-line); border-radius: var(--pf-radius-card) !important; box-shadow: var(--pf-shadow-pop); font-family: inherit !important; }
:root div.mailpoet_form_popup form.mailpoet_form { padding: var(--pf-space-6) !important; background: transparent !important; font-family: inherit !important; text-align: left; }
:root div.mailpoet_form_popup .mailpoet-heading { margin: 0 0 var(--pf-space-3) !important; color: var(--pf-text) !important; font-family: inherit !important; text-align: left !important; font-size: var(--pf-fs-h3) !important; font-weight: var(--pf-fw-heading); line-height: var(--pf-lh-snug) !important; }
:root div.mailpoet_form_popup .mailpoet-heading + .mailpoet-heading { color: var(--pf-text-2) !important; font-size: var(--pf-fs-body) !important; font-weight: var(--pf-fw-regular); }
:root div.mailpoet_form_popup .mailpoet-heading strong { font-weight: inherit; }
:root div.mailpoet_form_popup .mailpoet_spacer, :root div.mailpoet_form_popup .mailpoet_divider { display: none; }
:root div.mailpoet_form_popup .mailpoet_paragraph { margin: 0 0 var(--pf-space-3) !important; }
:root .mailpoet_form input.mailpoet_text, :root .mailpoet_form input[type="email"].mailpoet_text { box-sizing: border-box; width: 100% !important; min-height: var(--pf-touch); padding: 0 14px !important; border: 1px solid var(--pf-line-strong) !important; border-radius: var(--pf-radius) !important; background: var(--pf-bg) !important; color: var(--pf-text) !important; font-family: inherit !important; font-size: var(--pf-fs-control) !important; box-shadow: none; }
:root .mailpoet_form input.mailpoet_text::placeholder { color: var(--pf-text-3); opacity: 1; }
:root .mailpoet_form input.mailpoet_text:focus { outline: 3px solid var(--pf-focus); outline-offset: 0; border-color: var(--pf-action) !important; }
:root div.mailpoet_form_popup input.mailpoet_submit { width: 100% !important; min-height: var(--pf-touch); padding: 0 22px; border: 0; }
:root div.mailpoet_form_popup .mailpoet_form_paragraph { margin: var(--pf-space-3) 0 0 !important; color: var(--pf-text-3) !important; font-size: var(--pf-fs-meta) !important; font-style: normal; line-height: var(--pf-lh-body) !important; text-align: left !important; }
:root div.mailpoet_form_popup .mailpoet_form_paragraph :is(em, strong) { font-style: normal; font-weight: var(--pf-fw-regular); }
:root div.mailpoet_form_popup .mailpoet_form_paragraph a { color: var(--pf-action) !important; text-decoration: underline; }
/* zamknięcie: ikona z wtyczki (czarny krążek) — kontrast i focus w obu motywach */
:root .mailpoet_form_popup .mailpoet_form_close_icon { top: var(--pf-space-3) !important; right: var(--pf-space-3) !important; width: 32px !important; height: 32px !important; padding: 0; border-radius: 50%; cursor: pointer; }
:root .mailpoet_form_popup .mailpoet_form_close_icon:focus-visible { outline: 3px solid var(--pf-focus); outline-offset: 2px; }
:root[data-site-theme="dark"] .mailpoet_form_popup .mailpoet_form_close_icon { filter: invert(1); }
/* komunikaty (sukces / błąd walidacji) — wygląd .pf-callout; dotyczy popupu, stopki i wstawek */
:root .mailpoet_form .mailpoet_message { margin: var(--pf-space-3) 0 0 !important; padding: 0 !important; }
:root .mailpoet_form :is(.mailpoet_validate_success, .mailpoet_validate_error) { margin: 0; padding: var(--pf-space-3) var(--pf-space-4); border: 1px solid var(--pf-line); border-radius: var(--pf-radius); background: var(--pf-surface); color: var(--pf-text) !important; font-size: var(--pf-fs-meta); line-height: var(--pf-lh-body); }
:root .mailpoet_form .mailpoet_validate_success { border-color: var(--pf-action-soft-line); background: var(--pf-action-soft); }
:root .mailpoet_form .mailpoet_validate_error { border-color: var(--pf-danger, #b42318); }
:root .mailpoet_form .mailpoet_validate_error:empty, :root .mailpoet_form .mailpoet_validate_success:empty { display: none !important; }
:root .mailpoet_form .parsley-errors-list { margin: 6px 0 0; padding: 0; list-style: none; color: var(--pf-danger, #b42318); font-size: var(--pf-fs-meta); }
:root .mailpoet_form input.parsley-error { border-color: var(--pf-danger, #b42318) !important; }
@media (max-width: 480px) { :root div.mailpoet_form_popup form.mailpoet_form { padding: var(--pf-space-5) !important; } }
:root[data-site-theme="dark"] .mailpoet_form :is(.parsley-errors-list, .parsley-errors-list li) { color: #ff9d92; }
:root[data-site-theme="dark"] .mailpoet_form .mailpoet_validate_error { border-color: #ff9d92; }

/* Strona Partnerzy: karty .pf-partner-card (z [trusted_partners]) — akcje na dole karty, bez pustego odstępu po bloku spacer */
:root .pf-partner-card { grid-template-rows: auto 1fr auto; }
:root .pf-partner-card .pf-card__excerpt { align-self: start; }

/* ===== Popup newslettera: wyraźne oddzielenie panelu (ramka, cień, akcent), bottom sheet na telefonie, cel dotyku 44 px ===== */
:root .mailpoet_form_popup_overlay { background: rgba(10, 12, 24, .45) !important; }
:root div.mailpoet_form_popup { border: 1px solid var(--pf-line-strong) !important; border-top: 4px solid var(--pf-action) !important; box-shadow: var(--pf-shadow-pop), 0 0 0 1px rgba(10, 12, 24, .06); }
:root[data-site-theme="dark"] div.mailpoet_form_popup { border-color: var(--pf-line-strong) !important; border-top-color: var(--pf-action) !important; box-shadow: 0 -4px 32px rgba(0, 0, 0, .6), 0 0 0 1px var(--pf-line-strong); }
:root .mailpoet_form_popup .mailpoet_form_close_icon { width: 44px !important; height: 44px !important; padding: 6px; box-sizing: border-box; top: 0 !important; right: 0 !important; }
@media (max-width: 600px) {
  /* bottom sheet: przy dolnej krawędzi, max ok. 40% wysokości, górne rogi zaokrąglone; strona pod spodem pozostaje przewijalna i klikalna */
  :root .mailpoet_form_popup_overlay { pointer-events: none; }
  /* na telefonie MailPoet nie pokazuje overlayu — przyciemnienie ~45% rysuje cień panelu (poza panelem, bez blokowania dotyku) */
  :root div.mailpoet_form_popup.active { box-shadow: 0 0 0 100vmax rgba(10, 12, 24, .45), 0 -6px 28px rgba(10, 12, 24, .28) !important; }
  :root div.mailpoet_form_popup { pointer-events: auto; position: fixed !important; inset: auto 0 0 0 !important; top: auto !important; width: 100% !important; max-width: none !important; max-height: 40dvh; margin: 0 !important; transform: none !important; border-radius: var(--pf-radius-card) var(--pf-radius-card) 0 0 !important; border-left-width: 0 !important; border-right-width: 0 !important; border-bottom-width: 0 !important; padding-bottom: env(safe-area-inset-bottom); }
  :root div.mailpoet_form_popup form.mailpoet_form { padding: var(--pf-space-4) var(--pf-space-5) var(--pf-space-4) !important; }
  :root div.mailpoet_form_popup .mailpoet-heading { margin: 0 0 var(--pf-space-2) !important; padding-right: 40px; font-size: var(--pf-fs-body) !important; line-height: 1.3 !important; }
  :root div.mailpoet_form_popup .mailpoet-heading br { display: none; }
  :root div.mailpoet_form_popup .mailpoet-heading + .mailpoet-heading { padding-right: 0; font-size: var(--pf-fs-meta) !important; }
  :root div.mailpoet_form_popup .mailpoet_paragraph { margin-bottom: var(--pf-space-2) !important; }
  :root div.mailpoet_form_popup .mailpoet_form_paragraph { margin-top: var(--pf-space-2) !important; font-size: 12px !important; line-height: 1.35 !important; }
}

/* Cennik pfv2: przycisk „Pokaż wszystkie oferty (N)” (przycięta lista; pricing.js) — jak .pf-reveal kitu */
:root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-reveal { display: flex; justify-content: flex-start; margin: var(--pf-space-4) 0 0; }
:root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-reveal[hidden] { display: none; }
:root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-more { min-height: var(--pf-control-h); padding: 0 var(--pf-space-4); border: 1px solid var(--pf-line-strong); border-radius: var(--pf-radius); background: var(--pf-bg); color: var(--pf-action); font: inherit; font-size: var(--pf-fs-control); font-weight: var(--pf-fw-semibold); cursor: pointer; }
:root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-more:hover { background: var(--pf-action-soft); }
:root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-more:focus-visible { outline: 3px solid var(--pf-focus); outline-offset: 2px; }
@media (max-width: 760px) { :root :is(.pf-content, .pf-review-section) .pfv2 .pfv2-reveal .pfv2-more { width: 100%; } }

/* Cennik pfv2 w ciemnym motywie (QA2-01, QA2-11): przycisk „Kup” z tokenów (kontrast ≥ 4,5:1), panel „Szczegóły” na tokenach motywu */
:root :is(.pf-content, .pf-review-section, .pfv2) .pfv2-buy, :root dialog.pfv2-panel .pfv2-buy { background: var(--pf-action) !important; color: var(--pf-action-text) !important; }
:root :is(.pf-content, .pf-review-section, .pfv2) .pfv2-buy:hover, :root dialog.pfv2-panel .pfv2-buy:hover { background: var(--pf-action-hover) !important; color: var(--pf-action-text) !important; }
:root dialog.pfv2-panel { background: var(--pf-raised) !important; color: var(--pf-text) !important; border-left: 1px solid var(--pf-line-strong); }
:root dialog.pfv2-panel::backdrop { background: rgba(10, 12, 24, .55); }
:root dialog.pfv2-panel :is(h2, h3, h4, p, dd, strong, .pfv2-panel-price) { color: var(--pf-text) !important; }
:root dialog.pfv2-panel :is(dt, small, .pfv2-panel-heading p) { color: var(--pf-text-3) !important; }
:root dialog.pfv2-panel :is(.pfv2-panel-header, .pfv2-detail-section) { background: transparent !important; border-color: var(--pf-line) !important; }
:root dialog.pfv2-panel .pfv2-panel-close { background: var(--pf-bg) !important; color: var(--pf-action) !important; border: 1px solid var(--pf-line-strong) !important; }
/* Kod rabatowy: Geist Mono tylko dla samego kodu; etykieta „Kod” i przycisk „Kopiuj” w Interze (QA2-07) */
:root .pf-code__label, :root .pf-code__copy { font-family: var(--pf-font-inter, inherit); }
:root .pf-code__value { font-family: var(--pf-font-num); font-variant-numeric: tabular-nums; }

/* Ranking (dół): „Aktualności z firm” jak w kicie — nagłówek kolumny bez ikony, wyrównany do lewej (hubs pokazują ikony z pf-hubs.css) */
:root .pf-news-plain .pf-news-columns__title { justify-content: flex-start; text-align: left; }
:root .pf-news-plain .pf-news-columns__title svg, :root .pf-news-plain .pf-news-columns__title [class*="icon"] { display: none; }

:root .pf-news-plain .pf-news-columns__title, :root .pf-news-plain .pf-news-columns__title * { font-size: var(--pf-fs-meta); font-weight: var(--pf-fw-semibold); }
/* Ranking (dół): „Najnowsze artykuły” jak w kicie — karta z datą i tytułem (bez znaczka i zajawki) */
:root .pf-cards-plain .pf-card :is(.pf-badge, .pf-card__excerpt) { display: none; }

/* Lightbox zdjęć (prop-news-main.js tworzy #prop-news-lightbox na końcu <body>): w stanie nieaktywnym ukryty, aktywny = nakładka kitu.
   Bez tej reguły (CSS starego motywu nie jest ładowany) uszkodzony <img> wisiał pod stopką. */
#prop-news-lightbox { display: none; position: fixed; inset: 0; z-index: 100000; align-items: center; justify-content: center; padding: var(--pf-space-5); background: rgba(10, 12, 24, .8); cursor: zoom-out; }
#prop-news-lightbox.active { display: flex; }
#prop-news-lightbox img { max-width: min(100%, 1200px); max-height: 100%; object-fit: contain; border-radius: var(--pf-radius); background: var(--pf-bg); }

/* Blok VideoWiedza z shortcode'u portal-core ma własny inline margin 3rem i wyśrodkowanie: odstęp jak w kicie (nagłówek → siatka 24 px) */
:root .pf-content #prop-hp-video-block.homepage-video-block-wrapper { margin: 0 0 var(--pf-space-5); text-align: start; }
/* Galeria: kolor dominujący zdjęcia (WordPress, img[data-dominant-color]) nie zastępuje tokenowego tła kafla */
:root .pf-gallery__item img[data-dominant-color] { background-color: transparent; }
