/*
Theme Name: BAIC Plichta
Theme URI: https://kolaboracja.com/
Author: kolaboracja.com
Author URI: https://kolaboracja.com/
Description: Motyw potomny Twenty Twenty-Five dla dealera BAIC Plichta. Wygląd na wzór baicglobal.com – kolory, fonty, rozmiary, odstępy, przyciski i pola formularzy w theme.json (Style globalne), układ z natywnych bloków, bez dodatkowych klas. Made by kolaboracja.com.
Template: twentytwentyfive
Requires at least: 7.1
Tested up to: 7.1
Requires PHP: 8.0
Version: 1.4.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: baic-plichta-child
Tags: full-site-editing, custom-colors, custom-menu, wide-blocks
*/

/* ==========================================================================
   1. Tokeny marki – aliasy presetów z theme.json.
   Wartości zmienia się w Stylach globalnych (theme.json); tu są tylko nazwy
   używane przez poniższe reguły i bloki wtyczki BAIC Plichta.
   ========================================================================== */
:root {
	--bp-color-base: var(--wp--preset--color--base);
	--bp-color-contrast: var(--wp--preset--color--contrast);
	--bp-color-ink: var(--wp--preset--color--ink);
	--bp-color-heading: var(--wp--preset--color--heading);
	--bp-color-muted: var(--wp--preset--color--muted);
	--bp-color-soft: var(--wp--preset--color--soft);
	--bp-color-line: var(--wp--preset--color--line);
	--bp-color-accent: var(--wp--preset--color--accent);
	--bp-color-brand: var(--wp--preset--color--brand);
	--bp-color-navy: var(--wp--preset--color--navy);
	--bp-color-night: var(--wp--preset--color--night);
	--bp-color-glass: var(--wp--preset--color--glass);
	--bp-font: var(--wp--preset--font-family--arial);
	--bp-space-side: var(--wp--preset--spacing--50);
	--bp-space-section: var(--wp--preset--spacing--90);
	--bp-header-height: var(--wp--custom--header--height);
	--bp-ease: var(--wp--custom--motion--ease);
	--bp-speed-fast: var(--wp--custom--motion--fast);
	--bp-speed-slow: var(--wp--custom--motion--slow);
}

/* ==========================================================================
   2. Zgodność z motywem nadrzędnym. Bloki i style Twenty Twenty-Five używają
   jego nazw kolorów i fontów – mapujemy je na nasze.
   ========================================================================== */
:root {
	--wp--preset--color--accent-1: var(--wp--preset--color--accent);
	--wp--preset--color--accent-2: var(--wp--preset--color--line);
	--wp--preset--color--accent-3: var(--wp--preset--color--navy);
	--wp--preset--color--accent-4: var(--wp--preset--color--muted);
	--wp--preset--color--accent-5: color-mix(in srgb, var(--wp--preset--color--line) 35%, var(--wp--preset--color--base));
	--wp--preset--color--accent-6: color-mix(in srgb, currentColor 20%, transparent);
	--wp--preset--font-family--manrope: var(--wp--preset--font-family--arial);
	--wp--preset--font-family--fira-code: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

/* ==========================================================================
   3. Elementy, których nie da się opisać w theme.json.
   ========================================================================== */
html {
	/* Kotwice (np. /kontakt/#formularz) nie chowają się pod przyklejonym nagłówkiem. */
	scroll-padding-top: calc(var(--bp-header-h, var(--wp--custom--header--height, 64px)) + var(--wp--preset--spacing--30));
}

html,
body {
	overflow-x: clip;
}

/* Obramowanie fokusu tylko przy obsłudze klawiaturą (motyw nadrzędny pokazuje je też po kliknięciu myszą). */
:where(.wp-site-blocks *:focus:not(:focus-visible)) {
	outline: none;
}

/* Przyciski: wygląd w Stylach globalnych (Elementy → Przycisk); tu tylko płynne przejście i lekkie uniesienie. */
:where(.wp-element-button, .wp-block-button__link) {
	transition:
		background-color var(--bp-speed-fast, 0.3s) ease,
		border-color var(--bp-speed-fast, 0.3s) ease,
		color var(--bp-speed-fast, 0.3s) ease,
		box-shadow var(--bp-speed-fast, 0.3s) ease,
		transform var(--bp-speed-fast, 0.3s) var(--bp-ease, ease);
}

:where(.wp-element-button, .wp-block-button__link):where(:hover, :focus-visible) {
	transform: translateY(var(--wp--custom--button--hover-lift, -2px));
}

/* Tekst na ciemnych okładkach (zdjęcia) dostaje delikatny cień – wartość w theme.json (custom.textShadow.onImage). */
:where(.wp-block-cover:not(.is-light)) {
	text-shadow: var(--wp--custom--text-shadow--on-image);
}

:where(.wp-block-cover:not(.is-light)) :where(.wp-element-button, .wp-block-button__link, input, select, textarea) {
	text-shadow: none;
}

/* Okładki na telefonie: tekst zajmuje całą szerokość, więc przyciemnienie z boku (gradienty „od lewej/od prawej”)
   staje się równe, a „od dołu” mocniejsze. Wybrany gradient w bloku się nie zmienia; wartości: theme.json
   (custom.overlayMobile). */
@media (max-width: 781px) {
	.wp-block-cover {
		--wp--preset--gradient--fade-left: var(--wp--custom--overlay-mobile--side);
		--wp--preset--gradient--fade-right: var(--wp--custom--overlay-mobile--side);
		--wp--preset--gradient--fade-bottom: var(--wp--custom--overlay-mobile--bottom);
	}
}

/* Separator (kreska pod tytułem kolumny): pełny kolor zamiast półprzezroczystości starszych separatorów. */
:where(.wp-block-separator) {
	opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
	:where(.wp-element-button, .wp-block-button__link) {
		transition: none;
	}

	:where(.wp-element-button, .wp-block-button__link):where(:hover, :focus-visible) {
		transform: none;
	}
}

/* ==========================================================================
   4. Formularze Forminatora (styl „Brak”): układ, etykiety, zgody i komunikaty.
   Pola i przycisk biorą wygląd ze Stylów globalnych (Elementy → Pole tekstowe,
   Lista wyboru, Przycisk).
   ========================================================================== */
.forminator-ui.forminator-custom-form {
	margin: 0;
	font-family: var(--bp-font);
	color: inherit;
}

.forminator-ui.forminator-custom-form .forminator-row {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--custom--form--gap, 20px);
	margin: 0 0 var(--wp--custom--form--gap, 20px);
}

.forminator-ui.forminator-custom-form .forminator-col {
	flex: 1 1 100%;
	min-width: 0;
	padding: 0;
}

@media (min-width: 600px) {
	.forminator-ui.forminator-custom-form .forminator-col-6 {
		flex-basis: calc(50% - var(--wp--custom--form--gap, 20px) / 2);
	}
}

.forminator-ui.forminator-custom-form .forminator-label {
	display: block;
	margin: 0 0 6px;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	line-height: 1.4;
	color: inherit;
}

.forminator-ui.forminator-custom-form .forminator-required {
	color: var(--wp--custom--form--error, var(--bp-color-accent));
}

.forminator-ui.forminator-custom-form :where(.forminator-input, .forminator-textarea, select) {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
}

.forminator-ui.forminator-custom-form .forminator-textarea {
	min-height: var(--forminator-textarea-min-height, 140px);
	resize: vertical;
}

.forminator-ui.forminator-custom-form :where(.forminator-input, .forminator-textarea, select):focus {
	border-color: var(--wp--custom--form--focus, var(--bp-color-accent));
	outline: 2px solid var(--wp--custom--form--focus, var(--bp-color-accent));
	outline-offset: 0;
}

.forminator-ui.forminator-custom-form .forminator-description {
	display: block;
	margin-top: 4px;
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--bp-color-muted);
	text-align: right;
}

/* Lista wyboru (Select2) – jak pole tekstowe. */
.forminator-ui.forminator-custom-form .select2-container {
	width: 100% !important;
}

.forminator-ui.forminator-custom-form .select2-selection--single {
	display: flex;
	align-items: center;
	box-sizing: border-box;
	height: auto;
	min-height: calc(1.5em + 2 * var(--wp--preset--spacing--20) + 2px);
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	border: 1px solid var(--wp--preset--color--soft);
	border-radius: var(--wp--preset--border-radius--small);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--ink);
	font-size: var(--wp--preset--font-size--medium);
	cursor: pointer;
}

.forminator-ui.forminator-custom-form .select2-container--open .select2-selection--single,
.forminator-ui.forminator-custom-form .select2-selection--single:focus {
	border-color: var(--wp--custom--form--focus, var(--bp-color-accent));
	outline: 2px solid var(--wp--custom--form--focus, var(--bp-color-accent));
}

.forminator-ui.forminator-custom-form .select2-selection__rendered {
	flex: 1;
	padding: 0;
	color: inherit;
	line-height: 1.5;
}

.forminator-ui.forminator-custom-form .select2-selection__placeholder {
	color: var(--bp-color-muted);
}

.forminator-ui.forminator-custom-form .select2-selection__arrow {
	position: static;
	width: 1em;
	height: auto;
}

.forminator-select.forminator-select-dropdown-container--open .select2-dropdown,
.select2-container--open .select2-dropdown.forminator-custom-form-dropdown {
	border: 1px solid var(--wp--preset--color--soft);
	border-radius: var(--wp--preset--border-radius--small);
	background: var(--wp--preset--color--base);
	font-family: var(--bp-font);
	font-size: var(--wp--preset--font-size--medium);
}

.select2-container--open .select2-results__option--highlighted,
.select2-container--open .select2-results__option[aria-selected="true"] {
	background: var(--wp--preset--color--line);
	color: var(--wp--preset--color--ink);
}

/* Tekst o danych osobowych i zgody – mniejszy druk. */
.forminator-ui.forminator-custom-form .forminator-field-html,
.forminator-ui.forminator-custom-form .forminator-checkbox__label,
.forminator-ui.forminator-custom-form .forminator-checkbox-label {
	font-size: var(--wp--preset--font-size--x-small);
	line-height: 1.5;
	color: inherit;
}

.forminator-ui.forminator-custom-form .forminator-field-html p,
.forminator-ui.forminator-custom-form .forminator-checkbox__label p {
	margin: 0;
}

.forminator-ui.forminator-custom-form .forminator-checkbox-label > span {
	display: block;
	margin-top: 2px;
	color: var(--bp-color-muted);
}

/* Zgody marketingowe: długie wyjaśnienie zwinięte, „Rozwiń treść zgody” je pokazuje. */
.forminator-ui.forminator-custom-form .bp-consent {
	margin: 0 0 12px;
}

.forminator-ui.forminator-custom-form .bp-consent .forminator-checkbox {
	margin-bottom: 0;
}

.forminator-ui.forminator-custom-form .bp-consent__more {
	margin: 2px 0 0 30px;
	font-size: var(--wp--preset--font-size--x-small);
	line-height: 1.5;
	color: var(--bp-color-muted);
}

.forminator-ui.forminator-custom-form .bp-consent__toggle {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	width: fit-content;
	padding: 2px 0;
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
	cursor: pointer;
	list-style: none;
}

.forminator-ui.forminator-custom-form .bp-consent__toggle::-webkit-details-marker {
	display: none;
}

.forminator-ui.forminator-custom-form .bp-consent__toggle::after {
	content: "";
	width: 0.45em;
	height: 0.45em;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	transform: translateY(-0.15em) rotate(45deg);
	transition: transform 0.2s ease;
}

.forminator-ui.forminator-custom-form .bp-consent__more[open] .bp-consent__toggle::after {
	transform: translateY(0.1em) rotate(-135deg);
}

.forminator-ui.forminator-custom-form .bp-consent__toggle:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.forminator-ui.forminator-custom-form .bp-consent__hide,
.forminator-ui.forminator-custom-form .bp-consent__more[open] .bp-consent__show {
	display: none;
}

.forminator-ui.forminator-custom-form .bp-consent__more[open] .bp-consent__hide {
	display: inline;
}

.forminator-ui.forminator-custom-form .bp-consent__text {
	margin-top: 6px;
}

@media (prefers-reduced-motion: reduce) {
	.forminator-ui.forminator-custom-form .bp-consent__toggle::after {
		transition: none;
	}
}

.forminator-ui.forminator-custom-form :where(.forminator-field-html, .forminator-checkbox__label, .forminator-checkbox-label) a {
	color: inherit;
	text-decoration: underline;
}

/* Pola wyboru (zgody): kwadrat w kolorze tekstu, zaznaczenie w kolorze akcentu. */
.forminator-ui.forminator-custom-form .forminator-checkbox__wrapper,
.forminator-ui.forminator-custom-form .forminator-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0 0 10px;
	cursor: pointer;
}

.forminator-ui.forminator-custom-form .forminator-checkbox input[type="checkbox"] {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: 0;
	opacity: 0;
}

.forminator-ui.forminator-custom-form .forminator-checkbox-box {
	position: relative;
	flex: 0 0 auto;
	box-sizing: border-box;
	width: 20px;
	height: 20px;
	margin-top: 1px;
	border: 1px solid var(--wp--preset--color--soft);
	border-radius: var(--wp--preset--border-radius--small);
	background: var(--wp--preset--color--base);
}

.forminator-ui.forminator-custom-form .forminator-checkbox input:checked + .forminator-checkbox-box {
	border-color: var(--bp-color-accent);
	background: var(--bp-color-accent);
}

.forminator-ui.forminator-custom-form .forminator-checkbox input:checked + .forminator-checkbox-box::after {
	content: "";
	position: absolute;
	top: 3px;
	left: 6px;
	width: 5px;
	height: 10px;
	border: solid var(--wp--preset--color--base);
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.forminator-ui.forminator-custom-form .forminator-checkbox input:focus-visible + .forminator-checkbox-box {
	outline: 2px solid var(--wp--custom--form--focus, var(--bp-color-accent));
	outline-offset: 2px;
}

.forminator-ui.forminator-custom-form .forminator-consent .forminator-checkbox-box {
	margin-right: 0;
}

/* Komunikaty: błędy pól, potwierdzenie wysłania. */
.forminator-ui.forminator-custom-form .forminator-error-message {
	display: block;
	margin-top: 6px;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--custom--form--error, var(--bp-color-accent));
}

.forminator-ui.forminator-custom-form .forminator-has_error :where(.forminator-input, .forminator-textarea, .select2-selection--single, .forminator-checkbox-box) {
	border-color: var(--wp--custom--form--error, var(--bp-color-accent));
}

.forminator-ui.forminator-custom-form .forminator-response-message:not(.forminator-hidden):not(:empty) {
	margin: 0 0 var(--wp--custom--form--gap, 20px);
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	border-left: 4px solid currentColor;
	border-radius: var(--wp--preset--border-radius--small);
	background: color-mix(in srgb, currentColor 6%, transparent);
	font-size: var(--wp--preset--font-size--medium);
}

.forminator-ui.forminator-custom-form .forminator-response-message.forminator-error {
	color: var(--wp--custom--form--error, var(--bp-color-accent));
}

.forminator-ui.forminator-custom-form .forminator-response-message.forminator-success {
	color: inherit;
}

.forminator-ui.forminator-custom-form .forminator-response-message :where(p, ul) {
	margin: 0;
}

.forminator-ui.forminator-custom-form .forminator-response-message ul {
	margin-top: 6px;
	padding-left: 1.2em;
	font-size: var(--wp--preset--font-size--small);
}

/* Przycisk wysyłania: wygląd z przycisków motywu; tu tylko układ. */
.forminator-ui.forminator-custom-form .forminator-row-last {
	margin-bottom: 0;
}

.forminator-ui.forminator-custom-form .forminator-button-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}

.forminator-ui.forminator-custom-form .forminator-button-submit[disabled] {
	cursor: progress;
	opacity: 0.7;
}

/* Pole miodu (ochrona przed spamem) pozostaje niewidoczne. */
.forminator-ui.forminator-custom-form .forminator-hidden {
	display: none !important;
}
