/* Tea Store — Newsletter. Kolory z motywu teastore-szmaragd (--tsz-*), z wartościami zapasowymi. */

.tsn-band { padding: 32px 16px; }
.tsn-band__in {
	display: grid; gap: 18px; align-items: center;
	max-width: 1160px; margin: 0 auto; padding: 28px clamp(20px, 4vw, 48px);
	border-radius: 18px; color: #f6f6ef;
	background: radial-gradient(120% 140% at 0% 0%, #1b5442 0%, var(--tsz-green, #113c30) 55%, var(--tsz-dark-green, #102d24) 100%);
	box-shadow: 0 10px 30px rgba(16, 45, 36, .18);
}
@media (min-width: 900px) {
	.tsn-band__in { grid-template-columns: 1fr 1.15fr; gap: 40px; padding-top: 36px; padding-bottom: 36px; }
}
.tsn-band__title { margin: 0 0 6px; color: var(--tsz-gold, #c3a349); font-size: clamp(1.35rem, 3vw, 1.9rem); line-height: 1.2; }
.tsn-band__text { margin: 0; opacity: .92; line-height: 1.5; }

.tsn-form__row { display: flex; flex-wrap: wrap; gap: 8px; }
.tsn-form__email {
	flex: 1 1 220px; min-width: 0; height: 50px; padding: 0 20px;
	border: 1.5px solid var(--tsz-gold, #c3a349); border-radius: 999px;
	background: #fff; color: var(--tsz-ink, #182d25); font: inherit;
}
.tsn-form__email:focus { outline: 0; box-shadow: 0 0 0 3px rgba(195, 163, 73, .35); }
.tsn-form__btn {
	flex: 0 0 auto; height: 50px; padding: 0 26px; border: 0; border-radius: 999px; cursor: pointer;
	background: var(--tsz-gold, #c3a349); color: var(--tsz-dark-green, #102d24);
	font: inherit; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
}
.tsn-form__btn:hover { filter: brightness(1.06); }
.tsn-form__btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.tsn-form.is-loading .tsn-form__btn { opacity: .6; cursor: progress; }
@media (max-width: 480px) { .tsn-form__btn { flex-basis: 100%; } }

.tsn-form__consent { display: flex; gap: 10px; align-items: flex-start; margin-top: 12px; font-size: .8rem; line-height: 1.45; cursor: pointer; }
.tsn-form__consent input { flex: none; width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--tsz-gold, #c3a349); }
.tsn-form__consent a { color: inherit; text-decoration: underline; }
.tsn-form__msg { margin: 10px 0 0; font-size: .92rem; line-height: 1.4; }
.tsn-form__msg:empty { display: none; }
.tsn-form--band .tsn-form__msg.is-ok { color: #cdebd5; }
.tsn-form--band .tsn-form__msg.is-error { color: #ffc2b8; }

.tsn-box { padding: 20px; border: 1px solid var(--tsz-line, #dedfd5); border-radius: 14px; background: #fff; color: var(--tsz-ink, #182d25); }
.tsn-form--inline .tsn-form__msg.is-ok { color: #1d6b3a; }
.tsn-form--inline .tsn-form__msg.is-error { color: #a3261a; }

.tsn-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.tsn-toast {
	position: fixed; left: 50%; bottom: 20px; z-index: 99999; transform: translateX(-50%);
	display: flex; gap: 12px; align-items: flex-start; width: max-content; max-width: min(92vw, 540px);
	padding: 14px 14px 14px 18px; border-radius: 12px; border-left: 4px solid var(--tsz-gold, #c3a349);
	background: var(--tsz-green, #113c30); color: #fff; box-shadow: 0 12px 32px rgba(0, 0, 0, .25);
}
.tsn-toast.is-error { background: #6e1d15; }
.tsn-toast p { margin: 0; line-height: 1.45; }
.tsn-toast__close { flex: none; width: 28px; height: 28px; padding: 0; border: 0; background: none; color: inherit; font-size: 22px; line-height: 1; cursor: pointer; }

.tsn-page { max-width: 640px; margin: 56px auto; padding: 0 16px; text-align: center; }
.tsn-page .tsn-form__btn { background: var(--tsz-green, #113c30); color: #fff; }
