/* ============================================================
   Prestige Forms – wygląd formularza (rdzeń). Neutralny, działa w każdym motywie.
   Kolory, kroje i zaokrąglenia to zmienne --pcf-* : ustawiasz je w panelu (Prestige Forms → Wygląd),
   w motywie (.formularz { --pcf-akcent: … }) albo w polu „Dodatkowy CSS”. Tego pliku się nie edytuje.
   ============================================================ */
.formularz {
	--f-tekst: var(--pcf-tekst, #111827); --f-tekst-2: var(--pcf-tekst-2, #374151); --f-tekst-3: var(--pcf-tekst-3, #6b7280);
	--f-karta: var(--pcf-tlo, #fff); --f-karta-b: var(--pcf-ramka, rgba(17, 24, 39, .1)); --f-cien: var(--pcf-cien, 0 10px 30px rgba(17, 24, 39, .08));
	--f-pole: var(--pcf-pole, #f9fafb); --f-pole-b: var(--pcf-pole-ramka, rgba(17, 24, 39, .2));
	--f-akcent: var(--pcf-akcent, #2563eb); --f-akcent-2: var(--pcf-akcent-2, #1d4ed8); --f-akcent-3: var(--pcf-akcent-3, #1d4ed8);
	--f-blad: var(--pcf-blad, #d92d20); --f-blad-tekst: var(--pcf-blad-tekst, #b42318);
	--f-font-t: var(--pcf-font, inherit); --f-font-h: var(--pcf-font-naglowki, inherit); --f-promien: var(--pcf-promien, 6px);
	--f-poswiata: color-mix(in srgb, var(--f-akcent) 18%, transparent);
	position: relative; padding: var(--pcf-odstep, 44px 42px); line-height: 1.65; color: var(--f-tekst); background: var(--f-karta); border: 1px solid var(--f-karta-b); border-radius: var(--f-promien); box-shadow: var(--f-cien); }
.formularz, .formularz *, .formularz *::before, .formularz *::after { box-sizing: border-box; }
.formularz [hidden] { display: none !important; }
/* reguły z „.formularz.pcf” są mocniejsze od stylów treści wpisu/strony (np. h3, p, a, li), gdy formularz stoi w treści */
.formularz.pcf .h { display: block; margin: 0; font-weight: 700; font-size: 26px; line-height: 1.08; font-family: var(--f-font-h); }
.formularz.pcf > p { margin: 8px 0 28px; color: var(--f-tekst-2); font-size: 15px; line-height: 1.65; }
.formularz .pola { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; }
.formularz.pcf .h + .pola { margin-top: 24px; }
.formularz .pole { display: grid; gap: 7px; align-content: start; margin: 0; font-size: 13px; font-weight: 600; color: var(--f-tekst-2); letter-spacing: .3px; }
.formularz .pole--pelne { grid-column: 1 / -1; }
.formularz .pole input, .formularz .pole select, .formularz .pole textarea { width: 100%; min-height: 48px; margin: 0; padding: 12px 16px; border: 1px solid var(--f-pole-b); border-radius: var(--f-promien); background: var(--f-pole); color: var(--f-tekst); font-weight: 400; font-size: 14.5px; line-height: 1.4; font-family: var(--f-font-t); letter-spacing: 0; transition: border-color .25s, box-shadow .25s; }
.formularz .pole ::placeholder { color: var(--f-tekst-3); opacity: 1; }
.formularz .pole select { -webkit-appearance: none; appearance: none; padding-right: 46px; }
.formularz .pole textarea { min-height: 96px; resize: vertical; }
.formularz .pole :focus { outline: 0; border-color: var(--f-akcent); box-shadow: 0 0 0 3px var(--f-poswiata); }
/* nagłówek / opis między polami */
.formularz .pole--naglowek { gap: 2px; margin-top: 6px; letter-spacing: 0; }
.formularz .pole__naglowek { color: var(--f-tekst); font-size: 16px; font-weight: 700; font-family: var(--f-font-h); }
.formularz .pole__opis { color: var(--f-tekst-3); font-size: 13.5px; font-weight: 400; }

/* rozwijane listy */
.formularz .wybor { position: relative; }
.formularz .wybor select { position: absolute; inset: 0; opacity: 0; pointer-events: none; }
.wybor__pole { position: relative; display: block; width: 100%; min-height: 48px; margin: 0; padding: 12px 46px 12px 16px; border: 1px solid var(--f-pole-b); border-radius: var(--f-promien); background: var(--f-pole); color: var(--f-tekst);
	font-weight: 400; font-size: 14.5px; line-height: 1.4; font-family: var(--f-font-t); letter-spacing: 0; text-align: left; text-transform: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; transition: border-color .25s, box-shadow .25s; }
.wybor__pole.pusty { color: var(--f-tekst-3); }
/* strzałka: szewron + cienka pionowa kreska; po otwarciu obraca się */
.wybor__pole::before { content: ""; position: absolute; right: 46px; top: 50%; width: 1px; height: 22px; margin-top: -11px; background: var(--f-pole-b); transition: background .25s, box-shadow .25s; }
.wybor__pole::after { content: ""; position: absolute; right: 17px; top: 50%; width: 13px; height: 8px; margin-top: -4px; background: var(--f-tekst-3);
	clip-path: polygon(0 0, 50% 58%, 100% 0, 100% 42%, 50% 100%, 0 42%); transition: transform .35s cubic-bezier(.2, .8, .2, 1), background .25s, filter .25s; }
.wybor__pole:hover::after { background: var(--f-tekst); transform: translateY(2px); }
.wybor.otwarty .wybor__pole::after { background: var(--f-akcent); transform: rotate(180deg); }
.wybor.otwarty .wybor__pole::before, .wybor__pole:focus-visible::before { background: var(--f-akcent); }
.wybor__pole:hover { border-color: var(--f-tekst-3); }
.wybor__pole:focus-visible, .wybor.otwarty .wybor__pole { outline: 0; border-color: var(--f-akcent); box-shadow: 0 0 0 3px var(--f-poswiata); }
.wybor__pole:disabled { cursor: not-allowed; opacity: .55; }
.formularz.pcf .wybor__lista { display: block; gap: 0; position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 6px); max-height: 268px; margin: 0; padding: 6px; overflow-y: auto; list-style: none;
	border: 1px solid var(--f-pole-b); border-radius: var(--f-promien); background: var(--pcf-lista-tlo, #fff); box-shadow: 0 18px 44px rgba(9, 19, 27, .16);
	scrollbar-width: thin; scrollbar-color: var(--f-akcent) transparent;
	opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity .2s, transform .2s, visibility .2s; }
.formularz.pcf .wybor.otwarty .wybor__lista { opacity: 1; visibility: visible; transform: none; }
.formularz.pcf .wybor__lista li:not([data-kraj])::before, .formularz.pcf .wybor__lista li::after { content: none; }
.formularz.pcf .wybor__lista li { position: relative; margin: 0; padding: 10px 34px 10px 14px; border-left: 2px solid transparent; color: var(--f-tekst-2); font-size: 14.5px; font-weight: 400; line-height: 1.4; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s; }
.formularz.pcf .wybor__lista li:hover, .formularz.pcf .wybor__lista li.aktywny { background: color-mix(in srgb, var(--f-akcent) 13%, transparent); border-left-color: var(--f-akcent); color: var(--f-tekst); }
.formularz.pcf .wybor__lista li[aria-selected="true"] { color: var(--f-tekst); font-weight: 600; }
.formularz.pcf .wybor__lista li[aria-selected="true"]::after { content: ""; position: absolute; left: auto; right: 16px; top: 50%; width: 5px; height: 10px; border: solid var(--f-akcent); border-width: 0 2px 2px 0; transform: translateY(-65%) rotate(45deg); }

/* telefon: lista kierunkowych + numer; przy „inny” obok listy pole na własny kierunkowy, numer schodzi wiersz niżej */
.formularz .telefon { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; }
.formularz .telefon > select, .formularz .telefon .wybor { width: 118px; }
.formularz .telefon .wybor__pole { padding-left: 12px; padding-right: 34px; }
.formularz .telefon .wybor__pole:not([data-kraj])::before { content: none; }
.formularz .telefon .wybor__pole::after { right: 12px; }
.formularz.pcf .telefon .wybor__lista li { padding-left: 10px; padding-right: 28px; white-space: nowrap; }
.formularz.pcf .telefon .wybor__lista li[aria-selected="true"]::after { right: 11px; }
.formularz .telefon--inny .telefon__numer { grid-column: 1 / -1; }
/* flagi listy kierunkowych: mały prostokąt z gradientów przed tekstem, wg data-kraj (skrypt przepisuje go z opcji na przycisk i pozycje listy);
   pusty data-kraj = „inny” (globus). Bez obrazków z zewnątrz. Waga selektorów (0,3,2) jest dobrana celowo:
   wyższa niż ogólne reguły list i przycisku (.wybor.otwarty .wybor__pole::before, punktory list w motywie) – niezależnie od kolejności arkuszy,
   niższa niż reguła motywu .formularz.pcf .telefon [data-kraj]::before (0,4,1), którą motyw nadpisuje flagi. „div” = .wybor (dodaje skrypt). */
.formularz.pcf .telefon div :where([data-kraj])::before { content: ""; position: static; inset: auto; transform: none; filter: none; transition: none; display: inline-block; width: 21px; height: 14px; margin: 0 8px 0 0; border-radius: 2px; box-shadow: 0 0 0 1px rgba(17, 24, 39, .2); background: none; vertical-align: -2px; }
.formularz.pcf .telefon div :where([data-kraj="PL"])::before { background: linear-gradient(#fff 50%, #dc143c 0); }
.formularz.pcf .telefon div :where([data-kraj="NL"])::before { background: linear-gradient(#ae1c28 33.3%, #fff 0 66.6%, #21468b 0); }
.formularz.pcf .telefon div :where([data-kraj="DE"])::before { background: linear-gradient(#000 33.3%, #d00 0 66.6%, #ffce00 0); }
.formularz.pcf .telefon div :where([data-kraj="BE"])::before { background: linear-gradient(90deg, #000 33.3%, #fdda24 0 66.6%, #ef3340 0); }
.formularz.pcf .telefon div :where([data-kraj="LU"])::before { background: linear-gradient(#ea141d 33.3%, #fff 0 66.6%, #51add2 0); }
.formularz.pcf .telefon div :where([data-kraj=""])::before { width: 15px; height: 15px; border-radius: 0; box-shadow: none; background: currentColor; vertical-align: -3px;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3c2.6 2.8 3.9 5.8 3.9 9s-1.3 6.2-3.9 9c-2.6-2.8-3.9-5.8-3.9-9S9.4 5.8 12 3z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18M12 3c2.6 2.8 3.9 5.8 3.9 9s-1.3 6.2-3.9 9c-2.6-2.8-3.9-5.8-3.9-9S9.4 5.8 12 3z'/%3E%3C/svg%3E") center / contain no-repeat; }

/* zgoda */
.formularz .zgoda { display: flex; gap: 12px; margin: 20px 0 26px; color: var(--f-tekst-3); font-size: 13px; font-weight: 400; line-height: 1.5; }
.formularz .zgoda + .zgoda { margin-top: -14px; }
/* link do polityki: wygląda jak zwykły tekst, po najechaniu dostaje podkreślenie w kolorze wiodącym */
.formularz.pcf .zgoda a { overflow-wrap: normal; color: inherit; text-decoration: none; background: linear-gradient(var(--f-akcent), var(--f-akcent)) 0 100% / 0 1px no-repeat; transition: color .25s, background-size .35s cubic-bezier(.2, .8, .2, 1); }
.formularz.pcf .zgoda a:hover, .formularz.pcf .zgoda a:focus-visible { color: var(--f-tekst); background-size: 100% 1px; outline: 0; }
.formularz .zgoda input { flex: none; width: 18px; height: 18px; margin-top: 2px; accent-color: var(--f-akcent); }
.formularz .przycisk { width: 100%; min-height: 62px; font-size: 17px; }
.formularz .przycisk[disabled] { opacity: .7; cursor: progress; }
/* zapas, gdy motyw nie ma własnego .przycisk */
:where(.formularz) .przycisk { display: inline-flex; align-items: center; justify-content: center; padding: 0 30px; border: 1px solid var(--f-akcent-2); background: linear-gradient(to right, var(--f-akcent-3), var(--f-akcent-2)); color: #fff; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; }
:where(.formularz) .przycisk { border-radius: var(--f-promien); }

/* pola wymagane */
.formularz .wym { color: var(--f-blad); font-weight: 700; }

/* własne komunikaty błędów zamiast dymka przeglądarki */
.formularz .pole--blad input, .formularz .pole--blad textarea, .formularz .pole--blad .wybor__pole { border-color: var(--f-blad); box-shadow: 0 0 0 3px color-mix(in srgb, var(--f-blad) 15%, transparent); }
.pole__blad, .zgoda__blad, .formularz__blad { display: flex; align-items: center; gap: 9px; color: var(--f-blad-tekst, #b42318); font-weight: 500; font-size: 12.5px; line-height: 1.35; font-family: var(--f-font-t, inherit); letter-spacing: .2px; }
.pole__blad::before, .zgoda__blad::before, .formularz__blad::before { content: "!"; display: grid; place-items: center; flex: none; width: 16px; height: 16px; border-radius: 50%; color: #fff; font-weight: 700; font-size: 10px; line-height: 1; background: var(--f-blad, #d92d20); }
.zgoda__blad { margin: -16px 0 18px 30px; }
.formularz__blad { margin-top: 18px; padding: 14px 16px; border-left: 3px solid var(--f-blad); background: color-mix(in srgb, var(--f-blad) 8%, transparent); font-size: 14px; }
.formularz__blad[hidden] { display: none; }
@media (prefers-reduced-motion: no-preference) {
	.pole__blad, .zgoda__blad, .formularz__blad { animation: pcf-blad-wejscie .35s cubic-bezier(.2, .8, .2, 1) both; }
	.pole--blad.drgnij input, .pole--blad.drgnij textarea, .pole--blad.drgnij .wybor__pole { animation: pcf-blad-drgnij .4s; }
}
@keyframes pcf-blad-wejscie { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: none; } }
@keyframes pcf-blad-drgnij { 20%, 60% { transform: translateX(-4px); } 40%, 80% { transform: translateX(4px); } }

/* po wysłaniu */
.formularz__ok { display: flex; flex-wrap: wrap; gap: 4px 8px; margin-top: 18px; padding: 16px 18px; border-left: 3px solid #25d366; background: rgba(37, 211, 102, .1); color: var(--f-tekst-2); font-size: 14.5px; }
.formularz__ok[hidden] { display: none; }
.formularz__ok:focus { outline: 0; }
.formularz__ok b { color: var(--f-tekst); }
.formularz--wyslany .formularz__ok { margin-top: 0; }
.formularz.pcf > .formularz__wym { margin: 12px 0 0; color: var(--f-tekst-3); font-size: 12px; line-height: 1.65; text-align: right; }
.formularz.pcf .formularz__bezjs { line-height: 1.5; margin: 18px 0 0; padding: 14px 16px; border-left: 3px solid var(--f-blad); color: var(--f-tekst-2); font-size: 14px; }

/* przełącznik trybów formularza */
.formularz__tryb { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 26px; }
.formularz__tryb label { position: relative; margin: 0; cursor: pointer; }
.formularz__tryb input { position: absolute; opacity: 0; }
.formularz__tryb span { position: relative; isolation: isolate; overflow: hidden; display: block; padding: 9px 18px; border: 1px solid var(--f-pole-b); border-radius: var(--f-promien); background: var(--f-pole); color: var(--f-tekst-2); font-weight: 600; font-size: 13.5px; line-height: 1.2; font-family: var(--f-font-t); letter-spacing: .3px;
	transition: color .25s, background .25s, border-color .25s; }
.formularz__tryb label:hover span { color: var(--f-tekst); border-color: var(--f-akcent); }
.formularz__tryb input:checked + span { background: linear-gradient(to right, var(--f-akcent-3), var(--f-akcent-2)); border-color: var(--f-akcent-2); color: #fff; }
/* fokus z klawiatury: obrys na całym przełączniku */
.formularz__tryb label:has(input:focus-visible) { outline: 2px solid var(--f-akcent); outline-offset: 3px; }
@media (prefers-reduced-motion: no-preference) { .formularz .pola .pole { animation: none; } .formularz--zmiana .pola { animation: pcf-zmiana .45s cubic-bezier(.2, .8, .2, 1); } }
@keyframes pcf-zmiana { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }

/* pułapka na boty – poza ekranem (nie display:none, bo część botów to wykrywa) */
.formularz .pcf-p { position: absolute !important; left: -9999px !important; top: auto; width: 1px; height: 1px; overflow: hidden; }
.formularz .pcf-turnstile { margin: 0 0 20px; }
.formularz .pcf-turnstile:empty { display: none; }

@media (max-width: 640px) {
	.formularz { padding: var(--pcf-odstep-maly, 30px 22px); }
	.formularz .pola { grid-template-columns: 1fr; }
}
