/* =====================================================================
   KATERING BAZYLIA
   Formularz newslettera (Forminator).

   Forminator wnosi wlasny arkusz z motywem "default". Zamiast go
   wylaczac, nadpisuje tylko to, co musi zgadzac sie z reszta serwisu.
   Selektory sa celowo dluzsze niz zwykle: musza wygrac z regulami
   wtyczki bez uzywania !important.
   ===================================================================== */

.bz-news__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--gap);
	align-items: center;
}

.bz-news__text > * + * { margin-top: 1.25rem; }

.bz-news__form { min-width: 0; }

/* Pusty kontener, ktory wtyczka renderuje przed formularzem. */
.bz-news__form > .forminator-ui:not(form) { display: none; }

/* Odnosnik do edycji formularza widoczny dla zalogowanego administratora.
   Na froncie nie ma czego szukac. */
.bz-news__form .forminator-edit-module,
.bz-news__form .forminator-module-edit-link { display: none; }

/* ---------------------------------------------------------------------
   UKLAD
   --------------------------------------------------------------------- */

.bz-news__form form.forminator-ui .forminator-row { margin: 0; }

.bz-news__form form.forminator-ui .forminator-row + .forminator-row {
	margin-top: 1rem;
}

.bz-news__form form.forminator-ui .forminator-col {
	padding: 0;
	width: 100%;
}

.bz-news__form form.forminator-ui .forminator-field { margin: 0; }

/* ---------------------------------------------------------------------
   ETYKIETY I POLE E-MAIL
   --------------------------------------------------------------------- */

.bz-news__form form.forminator-ui .forminator-label {
	display: block;
	margin-bottom: 0.5rem;
	font-family: var(--font-body);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--ink-mute);
}

/* Gwiazdka pola wymaganego w kolorze akcentu, nie w czerwieni wtyczki. */
.bz-news__form form.forminator-ui .forminator-required { color: var(--accent-ink); }

.bz-news__form form.forminator-ui input.forminator-input {
	width: 100%;
	height: auto;
	padding: 17px 24px;
	border: 1px solid rgba(0, 0, 0, 0.14);
	border-radius: var(--radius-pill);
	background-color: var(--bg-card);
	font-family: var(--font-body);
	font-size: 1rem;
	line-height: 1.3;
	color: var(--ink);
	box-shadow: none;
	transition: border-color 0.25s var(--ease), box-shadow 0.25s var(--ease);
}

.bz-news__form form.forminator-ui input.forminator-input::placeholder {
	color: var(--ink-mute);
	opacity: 1;
}

.bz-news__form form.forminator-ui input.forminator-input:focus {
	border-color: var(--accent);
	outline: 2px solid var(--accent-ink);
	outline-offset: 2px;
}

/* ---------------------------------------------------------------------
   ZGODA
   Wtyczka rysuje wlasny kwadracik. Podmieniam go na miedziany,
   zeby nie odstawal od reszty interfejsu.
   --------------------------------------------------------------------- */

/* Naglówek "Zgoda" nad checkboxem tylko dubluje jego tresc. */
.bz-news__form form.forminator-ui .forminator-field-consent > .forminator-field > .forminator-label {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.bz-news__form form.forminator-ui .forminator-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	cursor: pointer;
}

.bz-news__form form.forminator-ui .forminator-checkbox-box {
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	margin-top: 2px;
	border: 1px solid rgba(0, 0, 0, 0.28);
	border-radius: 5px;
	background-color: var(--bg-card);
	transition: background-color 0.2s var(--ease), border-color 0.2s var(--ease);
}

.bz-news__form form.forminator-ui input[type="checkbox"]:checked + .forminator-checkbox-box {
	background-color: var(--accent);
	border-color: var(--accent);
}

/* Focus musi byc widoczny: prawdziwy input jest ukryty przez wtyczke,
   wiec obrys przejmuje jego zastepnik. */
.bz-news__form form.forminator-ui input[type="checkbox"]:focus-visible + .forminator-checkbox-box {
	outline: 2px solid var(--accent-ink);
	outline-offset: 2px;
}

.bz-news__form form.forminator-ui .forminator-checkbox__label,
.bz-news__form form.forminator-ui .forminator-consent__label {
	font-family: var(--font-body);
	font-size: 0.8125rem;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 0;
	text-transform: none;
	color: var(--ink-soft);
}

/* ---------------------------------------------------------------------
   PRZYCISK
   Ten sam ksztalt i kolor co wszystkie CTA w serwisie.
   --------------------------------------------------------------------- */

.bz-news__form form.forminator-ui button.forminator-button-submit {
	width: 100%;
	margin-top: 0.5rem;
	padding: 18px 36px;
	border: 0;
	border-radius: var(--radius-pill);
	background-color: var(--accent);
	/* Czern na miedzi daje 5.5:1, krem tylko 3.4:1. */
	color: var(--color-black);
	font-family: var(--font-body);
	font-size: 0.9375rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.2;
	text-transform: none;
	cursor: pointer;
	transition: background-color 0.25s var(--ease), transform 0.25s var(--ease);
}

.bz-news__form form.forminator-ui button.forminator-button-submit:hover {
	background-color: var(--accent-deep);
	color: var(--color-cream);
	transform: translateY(-2px);
}

.bz-news__form form.forminator-ui button.forminator-button-submit:active {
	transform: translateY(0);
}

/* ---------------------------------------------------------------------
   KOMUNIKATY
   --------------------------------------------------------------------- */

.bz-news__form form.forminator-ui .forminator-response-message {
	margin-bottom: 1rem;
	padding: 14px 20px;
	border-radius: var(--radius-sm);
	font-family: var(--font-body);
	font-size: 0.875rem;
	line-height: 1.5;
}

.bz-news__form form.forminator-ui .forminator-response-message[aria-hidden="true"] { display: none; }

.bz-news__form form.forminator-ui .forminator-error {
	background-color: rgba(184, 115, 51, 0.12);
	color: var(--accent-ink);
}

.bz-news__form form.forminator-ui .forminator-success {
	background-color: rgba(73, 100, 51, 0.12);
	color: var(--color-olive);
}

/* Blad pod konkretnym polem. */
.bz-news__form form.forminator-ui .forminator-error-message {
	margin-top: 0.5rem;
	font-size: 0.8125rem;
	color: var(--accent-ink);
}

.bz-news__form form.forminator-ui .forminator-has_error input.forminator-input {
	border-color: var(--accent);
}

/* ---------------------------------------------------------------------
   RESPONSYWNOSC
   --------------------------------------------------------------------- */

@media (max-width: 900px) {
	.bz-news__inner { grid-template-columns: 1fr; gap: 2rem; }
}

@media (max-width: 480px) {
	.bz-news__form form.forminator-ui input.forminator-input { padding: 15px 20px; }
}


/* ---------------------------------------------------------------------
   BEZPIECZNIK

   Forminator renderuje formularz z atrybutem style="display: none"
   i odslania go dopiero wlasnym skryptem. Jesli ten skrypt nie
   wystartuje, newsletter po prostu znika ze strony i nikt tego nie
   zauwazy. Ponizej fallback dla wylaczonego JS.

   !important jest tu konieczne: regula walczy z atrybutem style,
   a tego nie da sie przebic sama specyficznoscia.
   --------------------------------------------------------------------- */

html:not(.bz-js) .bz-news__form form.forminator-ui { display: block !important; }


/* =====================================================================
   UZUPELNIENIA PO PRZEJSCIU NA MOTYW NONE

   Forminator z motywem none nie rysuje juz wlasnych kontrolek, wiec
   ptaszek w polu zgody i siatka kolumn musza powstac tutaj.
   ===================================================================== */

.bz-news__form .forminator-row { display: block; }
.bz-news__form .forminator-col { float: none; }

/* Prawdziwy checkbox zostaje dostepny dla klawiatury i czytnikow,
   ale wizualnie zastepuje go wlasny kwadracik. */
.bz-news__form .forminator-checkbox input[type="checkbox"] {
	position: absolute;
	width: 20px;
	height: 20px;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}

.bz-news__form .forminator-checkbox-box {
	position: relative;
	display: block;
}

/* Ptaszek rysowany dwiema krawedziami obroconego prostokata. */
.bz-news__form .forminator-checkbox-box::after {
	content: "";
	position: absolute;
	top: 3px;
	left: 6px;
	width: 5px;
	height: 10px;
	border: solid var(--color-cream);
	border-width: 0 2px 2px 0;
	transform: rotate(45deg) scale(0);
	transition: transform 0.18s var(--ease);
}

.bz-news__form input[type="checkbox"]:checked + .forminator-checkbox-box::after {
	transform: rotate(45deg) scale(1);
}


/* =====================================================================
   KLAUZULA INFORMACYJNA
   Zwinieta, zeby nie przykryc samej zgody sciana tekstu, ale obecna
   w kodzie od razu, wiec czytnik ekranu ma do niej dostep.
   ===================================================================== */

.bz-rodo { margin-top: 1.25rem; border-top: 1px solid var(--hairline); padding-top: 1rem; }

.bz-rodo > summary {
	cursor: pointer;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ink-mute);
	transition: color 0.2s var(--ease);
}

.bz-rodo > summary::-webkit-details-marker { display: none; }
.bz-rodo > summary::after { content: "+"; font-size: 1.1rem; color: var(--accent-ink); }
.bz-rodo[open] > summary::after { content: "\2013"; }
.bz-rodo > summary:hover { color: var(--accent-ink); }

.bz-rodo__body { margin-top: 0.9rem; }
.bz-rodo__body p { font-size: 0.75rem; line-height: 1.6; color: var(--ink-soft); }
.bz-rodo__body p + p { margin-top: 0.6rem; }

/* Brak danych administratora ma byc widoczny, a nie schowany. */
.bz-rodo__brak {
	background-color: rgba(184, 115, 51, 0.22);
	color: var(--accent-ink);
	font-weight: 700;
	padding: 1px 6px;
	border-radius: 4px;
}
