/* Formularz: Zwrot nadpłat – kolory łatwo zmienić w zmiennych poniżej */
.zn-wrap {
	--zn-accent: #097c6e;
	--zn-accent-hover: #075f55;
	--zn-text: #1f2937;
	--zn-muted: #6b7280;
	--zn-border: #d1d5db;
	--zn-bg: #ffffff;
	--zn-soft: #f6f7f9;
	--zn-error: #b42318;
	--zn-ok: #067647;
	max-width: 760px;
	margin: 0 auto;
	color: var(--zn-text);
	font-size: 16px;
	line-height: 1.5;
}
.zn-wrap *, .zn-wrap *::before, .zn-wrap *::after { box-sizing: border-box; }

.zn-form {
	background: var(--zn-bg);
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	padding: 28px;
	box-shadow: 0 1px 2px rgba(16, 24, 40, .05);
}
.zn-section {
	border: 0;
	margin: 0 0 22px;
	padding: 0 0 22px;
	border-bottom: 1px solid #eef0f3;
	min-width: 0;
}
.zn-section legend {
	padding: 0;
	margin-bottom: 14px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--zn-accent);
}
.zn-row--2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.zn-field { margin-bottom: 14px; }
.zn-field label { display: block; font-weight: 600; font-size: 14px; margin-bottom: 6px; }
.zn-req { color: var(--zn-error); }
.zn-opt { color: var(--zn-muted); font-weight: 400; }

.zn-form input[type="text"],
.zn-form input[type="email"],
.zn-form input[type="date"],
.zn-form select {
	display: block;
	width: 100%;
	height: 46px;
	padding: 10px 12px;
	font: inherit;
	font-size: 15px;
	color: var(--zn-text);
	background-color: var(--zn-bg);
	border: 1px solid var(--zn-border);
	border-radius: 8px;
	transition: border-color .15s, box-shadow .15s;
	margin: 0;
}
.zn-form select {
	appearance: none;
	-webkit-appearance: none;
	padding-right: 36px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%236b7280' stroke-width='1.8'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
}
.zn-form textarea {
	display: block;
	width: 100%;
	min-height: 110px;
	padding: 10px 12px;
	font: inherit;
	font-size: 15px;
	color: var(--zn-text);
	background: var(--zn-bg);
	border: 1px solid var(--zn-border);
	border-radius: 8px;
	resize: vertical;
	margin: 0;
	transition: border-color .15s, box-shadow .15s;
}
.zn-counter { text-align: right; }
.zn-form select:disabled { background-color: var(--zn-soft); color: var(--zn-muted); cursor: not-allowed; }
.zn-form input:focus,
.zn-form select:focus,
.zn-form textarea:focus {
	outline: none;
	border-color: var(--zn-accent);
	box-shadow: 0 0 0 3px rgba(9, 124, 110, .18);
}
.zn-form #zn_konto { font-variant-numeric: tabular-nums; letter-spacing: .03em; }

.zn-hint { display: block; margin: 6px 0 0; font-size: 13px; color: var(--zn-muted); }
#zn_adres:empty { display: none; }
#zn_adres { margin-top: -4px; padding: 8px 12px; background: var(--zn-soft); border-radius: 6px; }

.zn-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--zn-muted); margin: 4px 0 22px; cursor: pointer; padding: 6px; border-radius: 8px; }
.zn-consent input { margin-top: 3px; width: 18px; height: 18px; flex: none; accent-color: var(--zn-accent); }

.zn-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.zn-btn {
	appearance: none;
	border: 0;
	border-radius: 8px;
	background: var(--zn-accent);
	color: #fff;
	font: inherit;
	font-weight: 600;
	font-size: 15px;
	padding: 13px 26px;
	cursor: pointer;
	transition: background .15s;
}
.zn-btn:hover { background: var(--zn-accent-hover); }
.zn-btn:disabled { opacity: .6; cursor: wait; }

/* Błędy */
.zn-invalid input, .zn-invalid select { border-color: var(--zn-error); }
.zn-field.zn-invalid::after { content: "Uzupełnij lub popraw to pole."; display: block; margin-top: 5px; font-size: 13px; color: var(--zn-error); }
.zn-consent.zn-invalid { outline: 1px solid var(--zn-error); }

.zn-alert { border-radius: 10px; padding: 14px 18px; margin-bottom: 18px; font-size: 15px; }
.zn-alert ul { margin: 6px 0 0 18px; padding: 0; }
.zn-alert--ok { background: #ecfdf3; border: 1px solid #abefc6; color: var(--zn-ok); }
.zn-alert--err { background: #fef3f2; border: 1px solid #fecdca; color: var(--zn-error); }

/* Honeypot (pole-pułapka na boty) */
.zn-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 640px) {
	.zn-form { padding: 20px 16px; }
	.zn-row--2 { grid-template-columns: 1fr; }
}

/* Rozwijana wiadomość do notariusza */
.zn-toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 2px 0 6px;
	padding: 4px 0;
	background: none;
	border: 0;
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	color: var(--zn-accent);
	cursor: pointer;
	box-shadow: none;
	text-transform: none;
	letter-spacing: normal;
}
.zn-toggle:hover .zn-toggle__label,
.zn-toggle:focus-visible .zn-toggle__label { text-decoration: underline; text-underline-offset: 3px; }
.zn-toggle:hover, .zn-toggle:focus { background: none; color: var(--zn-accent); }
.zn-toggle:focus-visible { outline: 2px solid var(--zn-accent); outline-offset: 3px; border-radius: 4px; }
.zn-toggle__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	border: 1.5px solid currentColor;
	border-radius: 50%;
	font-size: 15px;
	line-height: 1;
	transition: transform .2s;
}
.zn-toggle.is-open .zn-toggle__icon { transform: rotate(45deg); }
.zn-toggle .zn-opt { font-weight: 400; }
.zn-collapse { margin-top: 6px; }
.zn-collapse.is-open { animation: zn-fade .2s ease-out; }
.zn-collapse[hidden] { display: none !important; }
@keyframes zn-fade { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.zn-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
