/* ==========================================================================
   ewardega.pl v3 "Meridian": strony (klucz "strony"): kontakt, newsletter, strony prawne, 404, strony zwykłe
   i Moje konto. Ładowany po ui.css. Tylko tokeny z ui.css (sekcja 1), bez bibliotek.
   Mapa tonów: docs/redesign/v3/system.md §3. Kontrakt: docs/redesign/v3/kontrakt.md.
   Spis: 1. Wspólne  2. Kontakt  3. Newsletter  4. Strony prawne i zwykłe  5. Moje konto  6. 404
   ========================================================================== */

/* 1. Wspólne ---------------------------------------------------------------- */
/* Przycisk jasny na ciemnym (kontakt w hero). Propozycja do fundamentu: wariant "snow" w ewardega_ui_btn. */
.ui-ph .ui-crumbs [aria-current] { color: inherit; }
.ui-ph .ui-eyebrow .ui-sep::before { margin-inline: 0; }
@media (max-width: 599px) { .ui-ph .ui-eyebrow .ui-sep::before { margin-inline: .5em; } }
/* Pierwszy jasny arkusz po ciemnym hero (kontakt): sekcja zaczyna się zaraz pod uchwytem */
.ui-over > .ui-sec:first-of-type { padding-top: clamp(28px, 4vw, 56px); }
/* Nagłówek FAQ z boku: mniej powietrza nad kartą kontaktu */
.ui-faqs__side .ui-head { margin-bottom: 28px; }
.ui-faqs__side { display: grid; gap: 16px; align-content: start; }

/* 2. Kontakt (elewacja 2.2.0, elewacja.md §3.9, §4.8) ------------------------------------------------- */
/* Hero: okno z jasnym kadrem Ewy (om-ewa-jasny) w --ui-r-l i jedna złota hairline odsunięta o 12 px w prawo i w dół.
   Desktop: tekst 7/12, okno 5/12, karta z telefonem zachodzi na dolny lewy róg okna. Telefon: okno 64vw nad H1.
   Tekst nigdy na zdjęciu; kadr stoi od pierwszej klatki (LCP), rusza się tylko maska wierszy H1 i karta. */
.ui-kh { padding-bottom: clamp(56px, 6vw, 96px);
	background-image: radial-gradient(52% 64% at 80% 42%, rgba(201, 164, 106, .11), transparent 72%); }
.ui-kh__in { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; }
.ui-kh__in > .ui-crumbs { justify-self: start; }
.ui-kh__win { position: relative; isolation: isolate; justify-self: start; width: min(64vw, 360px); margin: 6px 12px 12px 0; }
.ui-kh__win::before { content: ""; position: absolute; inset: 12px -12px -12px 12px; z-index: -1; pointer-events: none;
	border: 1px solid rgba(201, 164, 106, .55); border-radius: var(--ui-r-l); }
.ui-kh__img { overflow: clip; aspect-ratio: 4 / 5; border-radius: var(--ui-r-l); background: var(--ui-noir-3); box-shadow: var(--ui-sh-d); }
.ui-kh__img img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 24%; }
.ui-kh__txt { gap: 20px; }
.ui-kh h1 { max-width: 9.5em; }
.ui-kh .ui-lead { max-width: 33em; text-wrap: pretty; }
.ui-kh .ui-chips { flex-wrap: wrap; gap: 8px; }
.ui-kh .ui-chip { min-height: 36px; padding-inline: 14px; }
.ui-kh__quick { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; width: min(100%, 440px); }
.ui-kh__quick .ui-btn { min-height: 52px; padding-inline: 16px; }
.ui-kh__card { display: none; }
/* v4: pigułka "Posłuchaj Ewy" (film na klik) pod chipami, wyrównana do lewej, bez rozciągania w kolumnie */
.ui-kh__play { justify-self: start; }
@media (max-width: 599px) {
	/* Telefon: kadr kwadratowy (twarz w górnej części), chip pod akcjami */
	.ui-kh__img { aspect-ratio: 1; }
	.ui-kh__img img { object-position: 50% 18%; }
	.ui-kh__in { gap: 18px; }
	.ui-kh__txt { gap: 16px; }
	.ui-kh__quick { width: 100%; }
	.ui-kh .ui-chip { min-height: 34px; padding-inline: 11px; white-space: nowrap; }
	.ui-kh .ui-chip .ui-ic { display: none; }
}
@media (min-width: 1024px) {
	.ui-kh__in { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-areas: "cr win" "txt win"; grid-template-rows: auto 1fr;
		column-gap: clamp(48px, 6vw, 112px); row-gap: 28px; }
	.ui-kh__in > .ui-crumbs { grid-area: cr; }
	.ui-kh__txt { grid-area: txt; align-self: center; }
	.ui-kh__win { grid-area: win; justify-self: end; align-self: start; width: min(100%, 440px); margin: 0 12px 52px 0; }
	.ui-kh__quick { display: none; }
	/* Karta z telefonem: szkło na kadrze (dozwolone backdrop-filter: karta hero), wjazd z prawej (.ui-enter) */
	.ui-kh__card {
		--enter-x: 24px; --enter-y: 0;
		grid-area: win; align-self: end; justify-self: end; position: relative; z-index: 2; display: grid; gap: 14px;
		width: min(100%, 340px); margin-right: calc(min(100%, 440px) - 340px + 12px + clamp(40px, 4.6vw, 72px)); padding: 22px 24px 24px;
		border-radius: var(--ui-r-l); background: rgba(21, 17, 13, .72); border: 1px solid var(--ui-hair);
		-webkit-backdrop-filter: blur(16px) saturate(1.2); backdrop-filter: blur(16px) saturate(1.2); box-shadow: var(--ui-sh-d);
	}
}
.ui-kh__who b { display: block; font-size: 1.0625rem; font-weight: 600; letter-spacing: -.01em; }
.ui-kh__who span { display: block; font-size: var(--ui-fs-xs); color: var(--ui-snow-2); line-height: 1.4; }
.ui-kh__tel {
	display: inline-flex; align-items: center; min-height: 48px; justify-self: start;
	font-size: clamp(1.75rem, 1.35rem + 1.3vw, 2.25rem); font-weight: 300; letter-spacing: -.035em; line-height: 1.05;
	background: linear-gradient(var(--ui-gold), var(--ui-gold)) 0 100% / 0 1px no-repeat; transition: background-size var(--ui-t3) var(--ui-ease);
}
.ui-kh__tel:hover { background-size: 100% 1px; }
.ui-kh__acts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.ui-kh__acts .ui-btn { min-height: 48px; padding-inline: 14px; }

/* 01 Trzy kanały: karty-linki, pierwsza ciemna (telefon, najszybsza droga); ikona kanału 40 px statyczna */
.ui-ch { display: grid; gap: 12px; }
@media (min-width: 900px) { .ui-ch { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } }
.ui-ch__i { position: relative; overflow: hidden; isolation: isolate; transition: transform var(--ui-t3) var(--ui-ease), box-shadow var(--ui-t3) var(--ui-ease), border-color var(--ui-t2); }
.ui-ch__i.ui-dark { background: var(--ui-noir-2); border-color: var(--ui-noir-2); box-shadow: var(--ui-sh-2); }
.ui-ch__i.ui-dark::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: var(--ui-grain) 0 0 / 96px; opacity: .06; mix-blend-mode: screen; }
.ui-ch__a { position: relative; display: grid; grid-template-rows: auto auto 1fr auto; gap: 10px; height: 100%; padding: clamp(20px, 2.2vw, 28px); border-radius: inherit; }
.ui-ch__a:focus-visible { outline-offset: -4px; border-radius: inherit; }
.ui-ch__top { display: flex; align-items: center; gap: 12px; min-height: 44px; }
.ui-ch__ic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--ui-gold-a); color: var(--ui-gold-ink); flex: none; }
.ui-dark .ui-ch__ic { color: var(--ui-gold); }
.ui-ch__tag { margin-left: auto; }
.ui-dark .ui-chip--gold { color: var(--ui-gold-hi); background: rgba(201, 164, 106, .12); border-color: var(--ui-gold-a); }
.ui-ch__v { margin-top: clamp(28px, 3.6vw, 52px); font-size: clamp(1.5rem, 1.15rem + 1.1vw, 2rem); font-weight: 300; letter-spacing: -.03em; line-height: 1.12; overflow-wrap: anywhere; }
.ui-ch__v--s { font-size: clamp(1.25rem, 1.05rem + .65vw, 1.5rem); letter-spacing: -.02em; }
.ui-ch__n { font-size: var(--ui-fs-s); color: var(--ui-ink-2); line-height: 1.55; max-width: 30em; }
.ui-dark .ui-ch__n { color: var(--ui-snow-2); }
.ui-ch__go { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; margin-top: 10px; padding-top: 14px; border-top: 1px solid var(--ui-line); font-weight: 600; font-size: .9688rem; }
.ui-dark .ui-ch__go { border-top-color: var(--ui-hair); }
.ui-ch__arr { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--ui-line-2); transition: background-color var(--ui-t2), border-color var(--ui-t2), color var(--ui-t2); }
.ui-dark .ui-ch__arr { border-color: var(--ui-hair-2); }
.ui-ch__arr .ui-ic { width: 18px; height: 18px; transition: transform var(--ui-t2) var(--ui-ease); }
@media (hover: hover) {
	.ui-ch__i:hover { transform: translateY(-4px); box-shadow: var(--ui-sh-2); border-color: var(--ui-line-2); }
	.ui-ch__i:hover .ui-ch__arr { color: var(--ui-snow); background: var(--ui-ink); border-color: var(--ui-ink); }
	.ui-ch__i.ui-dark:hover .ui-ch__arr { color: var(--ui-noir); background: var(--ui-snow); border-color: var(--ui-snow); }
}
.ui-ch__i:active { transform: scale(.985); }
@media (max-width: 599px) { .ui-ch__v { margin-top: 24px; } .ui-kt-ch .ui-chap__x { display: none; } }

/* 02 Studio i dojazd: sygnatura "Mapa studia". Desktop: tekst, adres i lista miast 5/12, duża mapa 7/12 na papierze
   (bez karty). Telefon: nagłówek, mapa, lista, adres. */
.ui-kt-st__grid { display: grid; gap: 28px; }
@media (max-width: 1023px) {
	.ui-kt-st__txt { display: contents; }
	.ui-kt-st__grid > .ui-kmap { order: 1; }
	.ui-kt-st__grid .ui-kmap__list { order: 2; }
	.ui-kt-st__grid .ui-kt-addr { order: 3; }
	.ui-kt-st__grid .ui-kt-st__more { order: 4; margin-top: -8px; }
	.ui-kt-st__txt .ui-head { margin-bottom: 0; }
}
@media (min-width: 1024px) {
	.ui-kt-st__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(48px, 6vw, 112px); align-items: start; }
	.ui-kt-st__txt { display: grid; gap: 24px; }
	.ui-kt-st__txt .ui-head { margin-bottom: 4px; }
	.ui-kmap { position: sticky; top: calc(var(--ui-hd) + 24px); }
}
.ui-kt-addr { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 14px 16px; align-items: start; padding: 20px; }
.ui-kt-addr__ic { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: var(--ui-plate); color: var(--ui-gold-ink); }
.ui-kt-addr address { margin: 4px 0 6px; font-style: normal; font-size: 1.125rem; line-height: 1.45; color: var(--ui-ink); }
.ui-kt-addr__go { grid-column: 1 / -1; justify-self: start; }
@media (min-width: 600px) { .ui-kt-addr__go { grid-column: 2; } }
.ui-kmap__list li { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 13px 0; border-top: 1px solid var(--ui-line); font-size: var(--ui-fs-s); }
.ui-kmap__list li:last-child { border-bottom: 1px solid var(--ui-line); }
.ui-kmap__list b { font-weight: 600; color: var(--ui-ink); }
.ui-kmap__list small { display: block; font-size: var(--ui-fs-xs); color: var(--ui-ink-3); line-height: 1.4; }
.ui-kmap__n { flex: none; font-weight: 600; color: var(--ui-ink); white-space: nowrap; }
/* Mapa: kontur hairline, punkty miast, łuki od miast do Solca po kolei (co 300 ms), na końcu ensō wokół studia */
.ui-kmap { display: grid; gap: 16px; margin: 0; }
.ui-kmap__hd { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; padding-bottom: 14px; border-bottom: 1px solid var(--ui-line); }
.ui-kmap__hd .ui-label { text-wrap: balance; }
.ui-kmap__fig { position: relative; width: 100%; margin: 0; }
.ui-kmap__svg { display: block; width: 100%; height: auto; color: var(--ui-gold-ink); }
/* Grubości w jednostkach rysunku (bez non-scaling-stroke: z pathLength=1 Chromium rysował linię tylko częściowo):
   telefon skala ok. 0,9, od 600 px ok. 1,5 do 1,75. */
.ui-kmap__svg { --pl: 1.1; --rt: 1.4; }
@media (min-width: 600px) { .ui-kmap__svg { --pl: .62; --rt: .8; } }
.ui-kmap__svg .il__pl { stroke-width: var(--pl); opacity: .75; }
.ui-kmap__svg .il__route { stroke-width: var(--rt); opacity: .9; }
.ui-kmap__svg .il__enso { stroke-width: calc(var(--rt) * 1.4); }
.ui-kmap__svg .il__city { fill: var(--ui-ink); }
.ui-kmap__svg .il__city--home { fill: var(--ui-gold-ink); }
.ui-kmap__svg .il__camp { fill: none; stroke: currentColor; stroke-width: var(--rt); stroke-linejoin: round; }
@media (prefers-reduced-motion: no-preference) {
	.ui-kmap__svg .il__pl { transition: stroke-dashoffset 1.8s var(--ui-ease-out-expo); }
	/* łuki i ensō niewidoczne do startu rysowania (okrągłe zakończenia zostawiały kropki) */
	.js .ui-kmap__svg:not(.in) :is(.il__route, .il__enso) { opacity: 0; }
	.ui-kmap__svg .il__route { --t: calc(1.1s + var(--i, 0) * 300ms); transition: stroke-dashoffset 1.2s var(--ui-ease-out-expo) var(--t), opacity 0s linear var(--t); }
	.ui-kmap__svg .il__enso { transition: stroke-dashoffset 1.2s var(--ui-ease-out-expo) 2.3s, opacity 0s linear 2.3s; }
	.ui-kmap__svg .il__city { transition: opacity .6s ease calc(.7s + var(--i, 0) * 120ms); }
	.js .ui-kmap__svg:not(.in) .il__camp { opacity: 0; }
	.ui-kmap__svg .il__camp { transition: opacity .6s ease 1.2s; }
	.js .ui-kmap__fig:has(.ui-kmap__svg:not(.in)) .ui-map__lbl { opacity: 0; }
	.ui-kmap__fig .ui-map__lbl { transition: opacity .5s ease calc(.9s + var(--i, 0) * 120ms); }
}
/* Etykiety HTML 13 px na płytkach (kontur ani łuk nie przechodzą przez litery), liczba wolnych terminów atramentem */
.ui-kmap .ui-map__lbl {
	display: inline-flex; align-items: baseline; gap: 6px; margin: 0; padding: 3px 9px; border-radius: 999px; line-height: 1.35;
	font-size: var(--ui-fs-xs); color: var(--ui-ink); background: var(--ui-card); box-shadow: 0 0 0 1px var(--ui-line), 0 4px 12px -6px rgba(26, 21, 16, .25); text-shadow: none;
}
.ui-kmap .ui-map__lbl small { margin: 0; color: var(--ui-ink-2); font-weight: 600; }
.ui-kmap .ui-map__lbl--l { transform: translate(calc(-100% - 14px), -50%); }
.ui-kmap .ui-map__lbl--r { transform: translate(14px, -50%); }
.ui-kmap .ui-map__lbl--b { transform: translate(-50%, 12px); }
.ui-kmap .ui-map__lbl--t { transform: translate(-50%, calc(-100% - 28px)); }
.ui-kmap .ui-map__lbl--home { color: var(--ui-snow); background: var(--ui-noir); box-shadow: 0 6px 16px -8px rgba(26, 21, 16, .5); }
.ui-kmap .ui-map__lbl--home small { color: var(--ui-gold-hi); }
.ui-kmap .ui-map__lbl--camp { transform: translate(-50%, 10px); color: var(--ui-ink-2); font-weight: 600; }

/* 03 FAQ */
.ui-kt-faq__hd .ui-d2 { font-size: clamp(2.25rem, 1.5rem + 2.6vw, 4rem); }

/* 3. Newsletter (elewacja 2.2.0, elewacja.md §3.10, §4.9) ------------------------------------------------ */
/* Ciemne hero: noir z ciepłą poświatą i ziarnem (token --ui-grain); karta formularza i bilet jasne */
.ui-ph.ui-nh--d { padding-top: calc(var(--ui-hd) + var(--ui-hero-pt)); padding-bottom: clamp(64px, 7vw, 120px); color: var(--ui-snow);
	background: radial-gradient(70% 60% at 22% 78%, rgba(201, 164, 106, .13), transparent 66%), radial-gradient(70% 60% at 100% 0%, rgba(239, 133, 11, .05), transparent 60%), var(--ui-noir); }
.ui-ph.ui-nh--d::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: var(--ui-grain) repeat 0 0 / 96px; opacity: .06; mix-blend-mode: screen; }
.ui-nh--d .ui-nh__txt.ui-dark { background: none; } /* .ui-dark daje tylko ton tekstu; tło niesie sekcja */
.ui-nh--d .ui-nh__card { color: var(--ui-ink); box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .7); }
.ui-nh__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; }
.ui-nh__txt { display: grid; gap: 20px; justify-items: start; }
.ui-nh__txt > * { max-width: 100%; }
.ui-nh__h { max-width: 10.5em; }
.ui-nh .ui-lead { max-width: 38em; }
.ui-nh__eb-x { display: contents; } /* kwota w eyebrow jako dalsze elementy flex eyebrow */
/* Desktop (runda 3): jedna opowieść w lewej kolumnie 7/12 (nagłówek, lead pod H1, podpis Ewy, bilet), karta
   formularza 5/12 obok, na środku wysokości lewej kolumny. */
@media (min-width: 1024px) {
	.ui-nh__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-areas: "txt form" "cp form"; column-gap: clamp(48px, 5vw, 96px); row-gap: clamp(32px, 3vw, 44px); align-items: start; }
	.ui-nh__txt { grid-area: txt; gap: 18px; }
	.ui-nh__h { font-size: var(--ui-fs-d2); max-width: 11em; }
	.ui-nh__cp { grid-area: cp; }
	.ui-nh__card { grid-area: form; align-self: center; }
}
.ui-nh .ui-nh__lead { max-width: 46ch; }

/* Sygnatura: Bilet 100 zł. Jasny bilet (kość słoniowa) z wycięciami i perforacją, jedna statyczna hairline,
   "100 zł" jako .ui-num w atramencie. Desktop: obrót 3D za kursorem maks. 3° ([data-tilt], ui-strony.js), bez połysku
   i bez ziarna; telefon: -2° i wejście raz (.ui-enter). Cień przez drop-shadow na opakowaniu (maska ucina box-shadow). */
.ui-nh__cp { --enter-y: 24px; position: relative; justify-self: start; width: min(100%, 600px); filter: drop-shadow(0 28px 40px rgba(0, 0, 0, .55)); }
.ui-nh .ui-nh__coupon {
	--cut: 66%;
	display: grid; grid-template-columns: var(--cut) minmax(0, 1fr); align-items: center; gap: 0;
	width: 100%; max-width: none; margin: 0; padding: clamp(22px, 3vw, 40px) clamp(20px, 3vw, 36px) clamp(22px, 3vw, 40px) clamp(22px, 3.2vw, 44px);
	color: var(--ui-ink); background: var(--ui-snow); border-radius: 22px; box-shadow: inset 0 0 0 1px rgba(125, 95, 46, .38);
	-webkit-mask: radial-gradient(circle 14px at var(--cut) 0, transparent 98%, #000) top / 100% 51% no-repeat, radial-gradient(circle 14px at var(--cut) 100%, transparent 98%, #000) bottom / 100% 51% no-repeat;
	mask: radial-gradient(circle 14px at var(--cut) 0, transparent 98%, #000) top / 100% 51% no-repeat, radial-gradient(circle 14px at var(--cut) 100%, transparent 98%, #000) bottom / 100% 51% no-repeat;
	rotate: 0deg; transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform .6s var(--ui-ease);
}
.ui-nh .ui-nh__coupon::after { left: var(--cut); top: 18px; bottom: 18px; border-left: 1.5px dashed rgba(125, 95, 46, .4); }
.ui-nh__cp.is-tilt .ui-nh__coupon { transition-duration: .12s; }
.ui-nh__cp[data-tilt] { perspective: 900px; }
.ui-nh__cp-l { display: grid; gap: clamp(6px, 1vw, 14px); align-content: center; }
.ui-nh .ui-nh__coupon .ui-coupon__k { color: var(--ui-ink-2); white-space: normal; }
.ui-nh .ui-nh__v { font-size: var(--ui-fs-num); color: var(--ui-ink); font-variant-numeric: proportional-nums lining-nums; font-feature-settings: "pnum" 1, "lnum" 1; }
.ui-nh .ui-nh__v small { color: var(--ui-ink-2); }
.ui-nh .ui-nh__coupon .ui-coupon__r { padding-left: clamp(16px, 2.4vw, 32px); max-width: none; font-size: var(--ui-fs-s); line-height: 1.45; color: var(--ui-ink-2); }
@media (max-width: 599px) {
	.ui-nh .ui-nh__coupon { --cut: 62%; rotate: -2deg; min-height: 0; padding: 20px 16px 20px 22px; border-radius: 18px; }
	.ui-nh .ui-nh__v { font-size: 4.5rem; }
	.ui-nh .ui-nh__coupon .ui-coupon__r { font-size: var(--ui-fs-xs); padding-left: 14px; }
	.ui-nh__cp { margin: 6px 0 10px; filter: drop-shadow(0 18px 26px rgba(0, 0, 0, .5)); }
}
@media (min-width: 1024px) { .ui-nh__cp { --enter-x: -24px; --enter-y: 0; justify-self: stretch; } }
@media (hover: hover) and (pointer: fine) { .ui-nh .ui-nh__coupon:hover { rotate: 0deg; } }

/* Karta zapisu (kontrakt formularza ewa-newsletter bez zmian) */
.ui-nh__card { display: grid; gap: 20px; padding: clamp(22px, 3vw, 36px); border-radius: var(--ui-r-xl); box-shadow: var(--ui-sh-2); scroll-margin-top: calc(var(--ui-hd) + 16px); }
.ui-nh__card-hd { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 16px; align-items: center; }
.ui-nh__card-hd .ui-h3 { margin-top: 4px; }
.ui-nh__badge { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; color: var(--ui-gold); background: var(--ui-noir); box-shadow: inset 0 0 0 1px rgba(201, 164, 106, .3); }
.ui-nh__badge .ui-ic { width: 24px; height: 24px; }
.ui-nh__form.ui-nl__form { padding: 0; gap: 14px; }
.ui-nh__notes { display: flex; flex-wrap: wrap; gap: 6px 16px; padding-top: 16px; border-top: 1px solid var(--ui-line); }
.ui-nh__notes li { display: inline-flex; align-items: center; gap: 6px; font-size: var(--ui-fs-xs); color: var(--ui-ink-2); }
.ui-nh__notes .ui-ic { color: var(--ui-free); stroke-width: 2; }
@media (max-width: 599px) {
	.ui-nh__grid { gap: 20px; }
	.ui-nh__eb-x, .ui-nh__lead-x { display: none; }
	.ui-nh .ui-lead { font-size: 1.0625rem; }
	.ui-nh__card { gap: 16px; padding: 18px 16px 20px; border-radius: var(--ui-r-l); }
	.ui-nh__card-hd { grid-template-columns: minmax(0, 1fr); }
	.ui-nh__badge { display: none; }
	.ui-nh__card-hd .ui-h3 { font-size: 1.25rem; }
}

/* 01 Co dostajesz: nagłówek po lewej (od 1024 px lepki), trzy korzyści w wierszach po prawej */
.ui-nb-grid { display: grid; gap: 36px; }
@media (min-width: 1024px) { .ui-nb-grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(48px, 6vw, 112px); align-items: start; } }
.ui-nb-sec .ui-nb { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.ui-nb-sec .ui-nb__i { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 20px; padding: clamp(22px, 2.6vw, 32px) 0; border-top: 1px solid var(--ui-line); transition: none; }
.ui-nb-sec .ui-nb__i:last-child { border-bottom: 1px solid var(--ui-line); }
.ui-nb-sec .ui-nb__i:hover { transform: none; box-shadow: none; }
.ui-nb__ic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--ui-gold-a); color: var(--ui-gold-ink); }
.ui-nb__txt { display: grid; gap: 8px; }
.ui-nb__i p { font-size: var(--ui-fs-s); color: var(--ui-ink-2); line-height: 1.6; }
.ui-nb-sec .ui-nb__i p { font-size: var(--ui-fs-body); max-width: 34em; }
/* Karty kroków (/thank-you-page/): mały numer nad złotą linią, ilustracja liniowa, tytuł i opis */
.ui-ty__steps { display: grid; gap: 12px; }
@media (min-width: 900px) { .ui-ty__steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } }
.ui-ty__steps .ui-nb__i { display: grid; align-content: start; gap: 12px; padding: clamp(22px, 2.6vw, 32px); }
.ui-nb__top { display: flex; align-items: center; padding-bottom: 12px; border-bottom: 1px solid var(--ui-gold-a); }
.ui-nb__n { font-size: var(--ui-fs-xs); font-weight: 600; letter-spacing: .14em; line-height: 1.4; color: var(--ui-gold-ink); }
.ui-nb__il { display: block; justify-self: start; width: clamp(136px, 12vw, 168px); aspect-ratio: 4 / 3; margin: 4px 0 2px -8px; color: var(--ui-gold-ink); }
.ui-nb__il .il { width: 100%; height: 100%; }
@media (max-width: 599px) {
	.ui-ty__steps .ui-nb__i { grid-template-columns: minmax(0, 1fr) 96px; grid-template-areas: "top top" "txt il"; gap: 14px 12px; padding: 20px; }
	.ui-ty__steps .ui-nb__top { grid-area: top; }
	.ui-ty__steps .ui-nb__txt { grid-area: txt; gap: 6px; align-content: start; }
	.ui-ty__steps .ui-nb__il { grid-area: il; width: 96px; margin: 0; align-self: start; }
	.ui-ty__steps .ui-nb__txt .ui-h3 { font-size: 1.1875rem; }
}
/* Pasek wolnych terminów: jeden fakt z linkiem do harmonogramu */
.ui-nb-sec { padding-bottom: calc(var(--ui-sec) * .72); }
.ui-nb__more { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 6px 16px; align-items: center; margin-top: clamp(28px, 3.4vw, 48px); padding: 16px 20px; }
.ui-nb__more-ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: var(--ui-gold-ink); box-shadow: inset 0 0 0 1px var(--ui-gold-a); }
.ui-nb__more p { font-size: var(--ui-fs-s); color: var(--ui-ink-2); line-height: 1.5; text-wrap: pretty; }
.ui-nb__more b { color: var(--ui-ink); font-weight: 600; }
.ui-nb__more .ui-link { grid-column: 2; justify-self: start; white-space: nowrap; }
@media (min-width: 760px) { .ui-nb__more { grid-template-columns: 44px minmax(0, 1fr) auto; } .ui-nb__more .ui-link { grid-column: auto; } }
.ui-nl-faq__go { margin: 0; }
/* Liczby display bez cyfr tabelarycznych (przy wadze 200 wąska jedynka dostawała szerokość cyfry: "1 00") */
.ui-ty__coupon .ui-coupon__v, .ui-eh-t .ui-dp b { font-variant-numeric: proportional-nums lining-nums; }


/* 6. 404 --------------------------------------------------------------------- */
.ui-eh { text-align: center; padding-bottom: clamp(72px, 9vw, 128px); }
.ui-eh__glow { position: absolute; z-index: -1; left: 50%; top: 18%; width: min(900px, 140vw); aspect-ratio: 1; translate: -50% -50%; pointer-events: none;
	background: radial-gradient(closest-side, rgba(201, 164, 106, .16), transparent 70%); }
.ui-eh__in { display: grid; justify-items: center; gap: 22px; }
/* Linie oddechu tylko po bokach (jak w finale): nigdy przez tekst i przyciski; na telefonie bez linii */
.ui-ph .ui-eh__breath { opacity: .34; -webkit-mask: linear-gradient(90deg, #000, #000 3%, transparent 12%, transparent 88%, #000 97%); mask: linear-gradient(90deg, #000, #000 3%, transparent 12%, transparent 88%, #000 97%); }
@media (max-width: 1199px) { .ui-ph .ui-eh__breath { display: none; } }
/* Ensō (enso-brush.svg): pociągnięcie pędzla ze zgrubieniem, zwężeniem i suchym końcem, start u góry jak maska
   odsłaniania (ui.css: conic-gradient od 4deg), więc pędzel "rysuje" koło w kierunku ruchu. Stoi w przepływie nad
   tekstem, kreska nie przechodzi przez litery. Na stronach potwierdzenia w środku złoty znak "gotowe". */
.ui-eh__mark { position: relative; display: grid; justify-items: center; justify-self: stretch; margin-bottom: -4px; }
.ui-eh__enso { position: relative; width: clamp(150px, 15vw, 200px); aspect-ratio: 1; color: var(--ui-gold); }
.ui-eh__enso .il { display: block; width: 100%; height: 100%; }
.ui-eh__chk { position: absolute; inset: 0; width: 100%; height: 100%; fill: none; stroke: var(--ui-gold-hi, var(--ui-gold)); stroke-width: 7; stroke-linecap: round; stroke-linejoin: round; }
.ui-eh__chk path { stroke-dasharray: 1; stroke-dashoffset: 0; }
@media (prefers-reduced-motion: no-preference) {
	.ui-eh__chk path { animation: ui-eh-chk .7s var(--ui-ease) 1.5s both; }
	@keyframes ui-eh-chk { from { stroke-dashoffset: 1; } }
}
/* Meridian wchodzi w ensō z lewej krawędzi okna (od 1100 px, gdzie są też linie oddechu). Koniec linii z punktem
   stoi na lewej krawędzi koła; lewy koniec wygasa maską. Rysuje się po wejściu (ui.js .in, ui.css il__d). */
.ui-eh .il--eh-mer { display: none; }
@media (min-width: 1100px) {
	.ui-eh .il--eh-mer {
		display: block; position: absolute; top: 50%; right: calc(50% + clamp(150px, 15vw, 200px) * .36 - 8px); translate: 0 -50%;
		width: min(560px, 50vw); height: auto; aspect-ratio: 560 / 40; color: var(--ui-gold); opacity: .85; pointer-events: none;
		-webkit-mask: linear-gradient(90deg, transparent, #000 45%); mask: linear-gradient(90deg, transparent, #000 45%);
	}
	.ui-eh .il--eh-mer .il__d { vector-effect: non-scaling-stroke; }
	.ui-eh .il--eh-mer .il__d--echo { opacity: .4; stroke-width: 1; }
}
.ui-eh .ui-eyebrow { justify-content: center; }
.ui-eh .ui-eyebrow::before { display: none; }
.ui-eh h1 { max-width: 11em; margin-inline: auto; }
.ui-eh .ui-lead { margin-inline: auto; max-width: 36em; }
.ui-eh__cta { justify-content: center; margin-top: 6px; }
.ui-eh-t .ui-dr__main a { min-height: 44px; }
.ui-eh__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 6px; margin-top: 8px; padding-top: 18px; border-top: 1px solid var(--ui-hair); }
.ui-eh__links a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border-radius: 999px; font-size: var(--ui-fs-s); font-weight: 500; color: var(--ui-snow-2); transition: background-color var(--ui-t1), color var(--ui-t1); }
.ui-eh__links a:hover { color: var(--ui-snow); background: rgba(246, 242, 236, .08); }
@media (max-width: 599px) {
	.ui-eh__enso { width: 128px; }
	.ui-eh__chk { stroke-width: 9; }
	/* kafelek daty: zakresy dwucyfrowe ("21-22") z oddechem od krawędzi */
	.ui-eh-t .ui-dp { min-width: 64px; width: auto; padding-inline: 6px; }
	.ui-eh-t .ui-dp b { font-size: .9375rem; }
	.ui-eh__cta { width: 100%; display: grid; }
	.ui-eh__cta .ui-btn { width: 100%; }
}

/* 9. Potwierdzenia formularzy (/thank-you-page/, /powodzenie/) i wyszukiwanie ---------------------- */
.ui-ty__hero .ui-eyebrow { gap: 8px; }
.ui-ty__hero .ui-eyebrow .ui-ic { color: var(--ui-gold); }
.ui-ty__coupon { margin: 14px auto 0; text-align: left; }
/* Kroki rabatu: karty .ui-nb (ta sama rodzina ilustracji co /newsletter/) */
.ui-ty__steps { counter-reset: none; }
.ui-ty__next { display: grid; gap: 18px; align-items: center; margin-top: clamp(20px, 3vw, 32px); padding: clamp(22px, 3vw, 36px); }
@media (min-width: 760px) { .ui-ty__next { grid-template-columns: minmax(0, 1fr) auto; } }
.ui-ty__next .ui-h3 { margin-top: 6px; }
.ui-ty__q { margin-top: 20px; display: flex; flex-wrap: wrap; align-items: center; gap: 0 8px; }
.ui-ty__acts { max-width: 720px; }
@media (max-width: 599px) { .ui-ty__acts { display: grid; width: 100%; grid-template-columns: minmax(0, 1fr); } .ui-ty__acts .ui-btn { width: 100%; } }

/* Bilet rabatu na ciemnym hero: jaśniejsza płyta i złoty obrys (bazowy bilet jest czarny, na czerni znikał) */
.ui-ty__coupon { background: var(--ui-noir-4); box-shadow: inset 0 0 0 1px rgba(201, 164, 106, .38), 0 24px 60px -30px rgba(0, 0, 0, .8); }
/* Bilet od 600 px: siatka przypięta do perforacji (70%), tekst prawej części zaczyna się za kreską */
@media (min-width: 600px) {
	.ui-ty__coupon { grid-template-columns: 70% minmax(0, 1fr); gap: 0; }
	.ui-ty__coupon { width: min(100%, 440px); max-width: 440px; }
	.ui-ty__coupon .ui-coupon__r { padding-left: 24px; max-width: none; }
}

/* /powodzenie/: cztery akcje bez osieroconego przycisku. Tablet 2 x 2, desktop jeden rząd, telefon kolumna. */
@media (min-width: 600px) {
	.ui-ty__acts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: min(100%, 560px); max-width: none; }
	.ui-ty__acts .ui-btn { width: 100%; }
}
@media (min-width: 1100px) {
	.ui-ty__acts { grid-template-columns: repeat(4, auto); width: auto; justify-content: center; }
}

/* Bilet rabatu na telefonie: perforacja na 58% (nie 68%), żeby zastrzeżenie "schodzi z dopłaty, zadatek 500 zł"
   miało dwa wiersze zamiast czterech. Dotyczy tylko biletów stron newslettera. */
@media (max-width: 599px) {
	.ui-ty__coupon {
		grid-template-columns: 58% minmax(0, 1fr);
		-webkit-mask: radial-gradient(circle 12px at 58% 0, transparent 98%, #000) top / 100% 51% no-repeat, radial-gradient(circle 12px at 58% 100%, transparent 98%, #000) bottom / 100% 51% no-repeat;
		mask: radial-gradient(circle 12px at 58% 0, transparent 98%, #000) top / 100% 51% no-repeat, radial-gradient(circle 12px at 58% 100%, transparent 98%, #000) bottom / 100% 51% no-repeat;
	}
	.ui-ty__coupon::after { left: 58%; }
	.ui-ty__coupon .ui-coupon__r { padding-left: 14px; max-width: none; }
	.ui-ty__coupon .ui-coupon__k { letter-spacing: .1em; }
}

/* Bilet na /thank-you-page/ ma dłuższy podpis ("Twój rabat powitalny"): na telefonie w dwóch wierszach */
@media (max-width: 599px) { .ui-ty__coupon .ui-coupon__k { white-space: normal; display: block; max-width: 9em; } }

/* 10. Runda 2 ---------------------------------------------------------------------------------------- */

/* Dwie akcje: telefon (snow) i szkolenia (ghost); e-mail i strona główna jako linki tekstowe pod spodem */
.ui-ty--ok .ui-ty__acts { width: min(100%, 520px); }
@media (min-width: 1100px) { .ui-ty--ok .ui-ty__acts { grid-template-columns: repeat(2, auto); width: auto; } }

/* Zgoda bez zaznaczenia po próbie wysłania: czerwony obrys pola i komunikat pod nim (ui-strony.js), razem z błędem
   e-maila z wtyczki, żeby użytkownik widział oba problemy naraz. */
.ui-check.is-err .ui-check__b { border-color: #a3261b; box-shadow: 0 0 0 3px rgba(163, 38, 27, .14); }
.ui-check__err { margin: -4px 0 0 34px; font-size: var(--ui-fs-s); font-weight: 600; color: #a3261b; }
.ui-check__err[hidden] { display: none; }


/* 11. Runda 3 ---------------------------------------------------------------------------------------- */
/* Pytania i nagłówki kart bez wiszących pojedynczych słów (telefon) */
:is(.ui-kt, .ui-nlp, .ui-ty, .ui-404, .ui-srch) :is(.ui-faq summary, .ui-h3) { text-wrap: balance; }
:is(.ui-kt, .ui-nlp, .ui-ty, .ui-404) :is(.ui-lead, .ui-small, .ui-ch__n, .ui-nb__i p) { text-wrap: pretty; }
/* Newsletter: błąd e-maila pod polem (ui-strony.js); komunikat wtyczki pod przyciskiem zostaje dla czytników
   (aria-live), wizualnie schowany, gdy ten sam błąd stoi już przy polu. */
.ui-field.is-err .ui-input { border-color: #a3261b; box-shadow: 0 0 0 3px rgba(163, 38, 27, .14); }
.ui-field > .ui-field__err, .ui-field__err { display: block; letter-spacing: 0; text-transform: none; margin-top: 6px; font-size: var(--ui-fs-s); font-weight: 600; line-height: 1.4; color: #a3261b; }
.ui-field__err[hidden] { display: none; }
.ui-nlp form[data-err="mail"] [data-ewanl-msg] { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* 404: "4 ensō 4". Cyfry Manrope 200 w wysokości koła, ensō jako zero; wejście wygaszeniem ze skalą (bez obrotowej
   maski, która udawała wskaźnik ładowania). Meridian kończy się przed pierwszą czwórką. */
.ui-eh__code { position: relative; display: flex; align-items: center; justify-content: center; gap: clamp(2px, .8vw, 12px); --ui-eh-e: clamp(150px, 15vw, 200px); }
.ui-eh__code .ui-eh__enso { width: var(--ui-eh-e); }
.ui-eh__dg { font-size: calc(var(--ui-eh-e) * 1.1); font-weight: 200; line-height: .8; letter-spacing: -.05em; color: var(--ui-snow); font-variant-numeric: lining-nums; translate: 0 -.02em; }
.ui-404 .ui-eh__code .il--enso, .js .ui-404 .ui-eh__code .il--enso:not(.in) { --ui-enso: 360deg; transition: none; }
/* Sygnatura 404 (elewacja.md §3.11): ensō wchodzi sprężyną z przerzutem (--ui-spring-press, jedyny wyjątek poza play),
   potem oddycha: scale 1 do 1,03 w 6 s na transform. Pętla stoi poza ekranem (data-anim), przy ograniczonym ruchu
   i w trybie ui-lite (ui.css 22.12: ui-lite zdejmuje tylko pętle, wejścia grają). */
@media (prefers-reduced-motion: no-preference) {
	.ui-eh__code > :is(.ui-eh__dg, .ui-eh__enso) { animation: ui-eh-in 1s var(--ui-ease) both; animation-delay: calc(.15s + var(--i, 0) * 120ms); }
	.ui-eh__code > .ui-eh__enso { animation-duration: .71s; animation-timing-function: var(--ui-spring-press); }
	.ui-eh__code .ui-eh__enso .il { transform-origin: 50% 50%; animation: ui-eh-breath 6s ease-in-out 1.2s infinite alternate; }
	@keyframes ui-eh-in { from { opacity: 0; transform: scale(.92); } }
	@keyframes ui-eh-breath { to { transform: scale(1.03); } }
}
@media (min-width: 1100px) { .ui-eh__code .il--eh-mer { right: calc(100% + 18px); } }
@media (max-width: 599px) { .ui-eh__code { --ui-eh-e: 118px; } }

/* /powodzenie/ "Co dalej": trzy kroki na złotej linii meridianu (desktop poziomo, telefon pionowo); linia rysuje się
   po wejściu (.in z ui.js), punkty zapalają się po kolei. Bez JS i przy ograniczonym ruchu stan końcowy. */
.ui-okt { position: relative; display: grid; gap: 28px; margin-top: 8px; padding-left: 36px; }
.ui-okt::before { content: ""; position: absolute; left: 7px; top: 8px; bottom: 8px; width: 1px; background: linear-gradient(180deg, var(--ui-gold), var(--ui-gold-a)); transform-origin: top; }
.ui-okt li { position: relative; display: grid; gap: 6px; align-content: start; }
.ui-okt__pt { position: absolute; left: -36px; top: 2px; width: 15px; height: 15px; border-radius: 50%; background: var(--ui-ivory); box-shadow: inset 0 0 0 1px var(--ui-gold), 0 0 0 5px rgba(201, 164, 106, .14); }
.ui-okt__pt::after { content: ""; position: absolute; inset: 4px; border-radius: 50%; background: var(--ui-gold-ink); }
.ui-okt__n { font-size: var(--ui-fs-xs); font-weight: 700; letter-spacing: .14em; color: var(--ui-gold-ink); }
.ui-okt p { font-size: var(--ui-fs-s); color: var(--ui-ink-2); line-height: 1.6; max-width: 26em; text-wrap: pretty; }
.ui-okt__go { margin-top: clamp(28px, 4vw, 48px); }
@media (min-width: 900px) {
	.ui-okt { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(28px, 4vw, 64px); padding: 40px 0 0; }
	.ui-okt::before { left: 0; right: 0; top: 7px; bottom: auto; width: auto; height: 1px; background: linear-gradient(90deg, var(--ui-gold), var(--ui-gold) 70%, transparent); transform-origin: left; }
	.ui-okt__pt { left: 0; top: -40px; }
}
@media (prefers-reduced-motion: no-preference) {
	.js .ui-okt:not(.in)::before { transform: scaleY(0); }
	.ui-okt::before { transition: transform 1.4s var(--ui-ease) .1s; }
	.js .ui-okt:not(.in) .ui-okt__pt { opacity: 0; transform: scale(.4); }
	.ui-okt__pt { transition: opacity .6s ease, transform .6s var(--ui-ease); transition-delay: calc(.4s + var(--i, 0) * 260ms); }
	@media (min-width: 900px) { .js .ui-okt:not(.in)::before { transform: scaleX(0); } }
}

/* 12. Noc, runda 2 (poprawki recenzji) --------------------------------------------------------------- */
/* Arkusz po ciemnym hero (kontakt, newsletter, 404): zamiast szarej pigułki "bottom sheet" złoty punkt meridianu
   z krótką linią w dół, jak szew na /thank-you-page/. Element zostaje (dok czeka na niego w ui.js). */
:is(.ui-kt, .ui-nlp, .ui-404) .ui-over__grab { position: relative; height: 40px; }
:is(.ui-kt, .ui-nlp, .ui-404) .ui-over__grab::before { width: 9px; height: 9px; border-radius: 50%; border: 1px solid var(--ui-gold); background: var(--ui-ivory); box-shadow: 0 0 0 5px rgba(201, 164, 106, .12); }
:is(.ui-kt, .ui-nlp, .ui-404) .ui-over__grab::after { content: ""; position: absolute; left: 50%; top: calc(50% + 6px); width: 1px; height: 44px; translate: -.5px 0; background: linear-gradient(var(--ui-gold), transparent); pointer-events: none; }

/* Wejście podstron do 1,1 s (lista odbioru §8): krótszy start i rytm wierszy H1, cyfry 404, ensō potwierdzeń */
:is(.ui-kt, .ui-nlp, .ui-ty, .ui-404) [data-split="lines"] { --ui-split-d: 80ms; --ui-stagger: 60ms; }
:is(.ui-kt, .ui-nlp, .ui-ty, .ui-404) .ui-lines .ui-ln__i { animation-duration: .8s; }
@media (prefers-reduced-motion: no-preference) {
	.ui-eh__code > :is(.ui-eh__dg, .ui-eh__enso) { animation-duration: .8s; animation-delay: calc(.08s + var(--i, 0) * 80ms); }
	.ui-eh__code > .ui-eh__enso { animation-duration: .7s; }
	.ui-ty .ui-eh__mark .il--enso { transition-duration: .95s; transition-delay: .05s; }
	.ui-ty .ui-eh__chk path { animation-duration: .4s; animation-delay: .62s; }
	.ui-ty .ui-seam::before { transition-duration: .9s; }
}
:is(.ui-kt, .ui-nlp, .ui-ty) .ui-enter { --enter-d: 300ms; }

/* Kontakt: karta pytań z ikoną kanału zamiast drugiego tego samego kadru Ewy */
.ui-kt-ask .ui-ch__ic { width: 56px; height: 56px; }
.ui-kt-ask .ui-ch__ic .ui-ic { width: 22px; height: 22px; }

/* Mapa studia: kontur na całą kolumnę (viewBox przycięty w helperze), kontur 1 px, łuki 1,5 px w złocie atramentowym.
   Grubości w jednostkach rysunku: telefon ok. 1,1 px na jednostkę, od 600 px ok. 2,2. */
.ui-kmap__svg { --pl: .9; --rt: 1.36; }
@media (min-width: 600px) { .ui-kmap__svg { --pl: .46; --rt: .68; } }
.ui-kmap__svg .il__pl { opacity: .55; }
.ui-kmap__svg .il__route { opacity: 1; }
.ui-kmap .ui-map__lbl small { font-weight: 600; white-space: nowrap; }
@media (max-width: 599px) { .ui-kmap__u { display: none; } }

.ui-nh__nojs { margin: 0; padding: 12px 14px; border-radius: var(--ui-r); background: var(--ui-plate); font-size: var(--ui-fs-s); line-height: 1.5; color: var(--ui-ink); }
.ui-nh__nojs a { font-weight: 600; text-decoration: underline; text-decoration-color: var(--ui-gold); text-underline-offset: 3px; overflow-wrap: anywhere; }
/* Telefon: przycisk "Odbierz kod" w pierwszym ekranie 390 x 844. Mniejszy bilet (100 ok. 56 px), krótszy hero,
   zastrzeżenie przy formularzu schowane (to samo stoi na bilecie), lead i głos Ewy pod formularzem. */
@media (max-width: 599px) {
	.ui-ph.ui-nh--d { padding-top: calc(var(--ui-hd) + 4px); }
	.ui-nh__grid { gap: 16px; }
	.ui-nh__txt { gap: 12px; }
	.ui-nh__txt { display: contents; }
	.ui-nh__txt > .ui-lead { order: 3; margin-top: 8px; }
	.ui-nh__by { order: 4; }
	.ui-nh__card { order: 2; }
	.ui-nh__cp { order: 1; margin: 2px 0 4px; }
	.ui-nh .ui-nh__coupon { padding: 14px 14px 14px 20px; border-radius: 16px; }
	.ui-nh .ui-nh__v { font-size: 3.5rem; }
	.ui-nh__cp-l { gap: 4px; }
	.ui-nh__card { gap: 14px; padding: 16px 16px 18px; }
	.ui-nh__card-hd .ui-h3 { font-size: 1.125rem; margin-top: 2px; }
	.ui-nh__form.ui-nl__form { gap: 12px; }
}

/* 13. Noc, runda 3 (poprawki recenzji) --------------------------------------------------------------- */
/* Newsletter: podpis Ewy pod leadem (awatar z campu, imię, tytuł), bez cytatu */
.ui-nh__by { display: flex; align-items: center; gap: 14px; margin: 4px 0 0; }
.ui-nh__by img { flex: none; width: 48px; height: 48px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 1px rgba(201, 164, 106, .55), 0 0 0 4px var(--ui-noir), 0 0 0 5px rgba(201, 164, 106, .3); }
.ui-nh__by > span { display: grid; gap: 2px; }
.ui-nh__by b { font-size: var(--ui-fs-s); font-weight: 600; line-height: 1.3; color: var(--ui-snow); }
.ui-nh__by > span > span { font-size: var(--ui-fs-xs); line-height: 1.4; color: var(--ui-snow-2); }

/* Bilet marki: znak EWA WARDĘGA, kwota, "na pierwsze szkolenie" nad złotą hairline meridianu; odcinek z ważnością
   i miejscem na kod (EWA- i 6 znaków). Wszystko statyczne. */
.ui-nh .ui-nh__coupon { --cut: 64%; }
/* Hairline i punkt liczone od krawędzi biletu (.ui-coupon ma position: relative): linia od lewej krawędzi do perforacji */
.ui-nh__cp-l { align-content: center; padding-bottom: 26px; }
.ui-nh__wm { font-size: var(--ui-fs-xs); font-weight: 600; letter-spacing: .24em; line-height: 1.3; text-transform: uppercase; color: var(--ui-gold-ink); }
.ui-nh__cp-on { font-size: var(--ui-fs-s); line-height: 1.4; color: var(--ui-ink-2); }
/* Warunek rabatu na bilecie (odbiór 3): pod "na pierwsze szkolenie", drobniej, nad hairline meridianu */
.ui-nh__cp-dep { margin-top: calc(4px - clamp(6px, 1vw, 14px)); font-size: var(--ui-fs-xs); line-height: 1.35; color: var(--ui-ink-2); text-wrap: balance; }
.ui-nh__mer { position: absolute; left: 0; bottom: var(--mer-b, 24px); width: var(--cut); height: 18px; fill: none; stroke: var(--ui-gold); stroke-width: 1.25; vector-effect: non-scaling-stroke; overflow: visible; }
/* punkt akupresury na 60% linii (x 240 z 400, y 15 z 24 w 18 px wysokości) jako HTML, bez zniekształcenia skali */
.ui-nh__cp-l::after { content: ""; position: absolute; left: calc(var(--cut) * .6 - 2.5px); bottom: calc(var(--mer-b, 24px) + 4.25px); width: 5px; height: 5px; border-radius: 50%; background: var(--ui-gold-ink); box-shadow: 0 0 0 4px rgba(201, 164, 106, .18); }
.ui-nh__stub { display: grid; gap: 2px; align-content: center; justify-items: start; min-width: 0; padding-left: clamp(16px, 2.4vw, 32px); }
.ui-nh .ui-nh__stub .ui-coupon__k { color: var(--ui-ink-2); }
.ui-nh__days { font-size: clamp(1.625rem, 1.1rem + 1.3vw, 2.5rem); font-weight: 200; letter-spacing: -.02em; line-height: 1.1; white-space: nowrap; color: var(--ui-ink); font-variant-numeric: lining-nums; }
.ui-nh__once { font-size: var(--ui-fs-xs); line-height: 1.4; color: var(--ui-ink-2); }
.ui-nh__code { margin-top: 14px; padding: 5px 10px; border-radius: 8px; border: 1px dashed rgba(125, 95, 46, .5); font-size: var(--ui-fs-xs); font-weight: 600; letter-spacing: .08em; line-height: 1.4; white-space: nowrap; color: var(--ui-ink-2); font-variant-numeric: tabular-nums; }
@media (min-width: 1024px) {
	.ui-nh__cp { justify-self: start; width: min(100%, 640px); }
	.ui-nh .ui-nh__coupon { min-height: 272px; padding-block: 30px 28px; }
	.ui-nh .ui-nh__v { font-size: clamp(6rem, 2.4rem + 5.4vw, 8rem); font-weight: 200; }
	.ui-nh__grid { row-gap: 28px; }
}
@media (max-width: 599px) {
	.ui-nh .ui-nh__coupon { --cut: 60%; padding: 14px 12px 14px 18px; }
	.ui-nh__cp-l { gap: 2px; padding-bottom: 18px; }
	.ui-nh__wm { letter-spacing: .16em; }
	.ui-nh__cp-on { font-size: var(--ui-fs-xs); }
	.ui-nh .ui-nh__coupon { --mer-b: 12px; }
	.ui-nh__mer { height: 14px; }
	.ui-nh__cp-l::after { bottom: calc(var(--mer-b) + 2.75px); }
	.ui-nh__stub { padding-left: 12px; }
	.ui-nh__days { font-size: 1.5rem; }
	.ui-nh__code { margin-top: 8px; padding: 4px 6px; letter-spacing: .02em; }
	.ui-nh .ui-nh__coupon { padding-block: 12px; }
	.ui-nh__grid { gap: 14px; }
	.ui-nh__cp { margin: 0 0 2px; }
	.ui-nh__card { gap: 12px; padding-top: 14px; }
	.ui-nh__code { margin-top: 6px; }
}

/* Kontakt #studio (runda 3): nagłówek z leadem nad siatką, mapa (sygnatura) dominuje: 7/12, od 1280 px 8/12.
   Adres i lista miast obok mapy, na środku jej wysokości (bez pustego papieru pod mapą). */
@media (min-width: 1024px) {
	.ui-kt-st__grid { align-items: center; }
	.ui-kmap { position: static; }
	.ui-kt-st__txt { gap: 20px; }
}
@media (min-width: 1280px) {
	.ui-kt-st__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); column-gap: clamp(48px, 5vw, 88px); }
}
/* Liczba terminów w liście miast na każdej szerokości (odbiór 2026-10-12): na telefonie objaśnia same cyfry na mapie,
   bez osobnej legendy */

/* Strony z jedną sygnaturą ruchu (404, potwierdzenia): kropki "ostatnie miejsca" bez pulsu */

/* 14. Odbiór 2026-10-12 ------------------------------------------------------------------------------- */
/* Bez JS: nagłówek nad ciemnym hero (ui.css 2.2.1, position: absolute) dziedziczył top: 0 po sticky i siadał na y=0
   pod paskiem promo (z-index 61). top: auto zostawia go na swojej pozycji pod paskiem. Propozycja do fundamentu:
   ta sama poprawka w ui.css, wtedy tę regułę można usunąć. */
html:not(.ui-js) .ui-hd--over { top: auto; }
/* Newsletter, telefon: lead i podpis nie lądują pod formularzem na dole hero. To samo mówi 01 "Co będę Ci wysyłać"
   tuż niżej, a przycisk "Odbierz kod" zostaje w pierwszym ekranie 390 x 844. */
@media (max-width: 599px) { .ui-nh__txt > .ui-nh__lead, .ui-nh__by { display: none; } }
/* Jedna nota pod formularzem: bez wiszącego "maila." w drugim wierszu na telefonie */
.ui-nh__notes li { text-wrap: balance; }

/* 15. Odbiór 2 (2026-10-12) --------------------------------------------------------------------------- */
/* Karta pytań z ikoną kanału (kontakt, newsletter). Na kontakcie telefon i e-mail jako linki w tekście, bez czwartej
   pary przycisków "Zadzwoń / Napisz" na stronie. */
.ui-kt-ask__t { font-size: var(--ui-fs-s); line-height: 1.55; }
.ui-kt-ask__t a { color: var(--ui-ink); font-weight: 600; text-decoration: underline; text-decoration-color: var(--ui-gold-a); text-underline-offset: 3px; overflow-wrap: anywhere; }
.ui-kt-ask__t a:hover { text-decoration-color: currentColor; }
/* Newsletter 01: nagłówek w lewej kolumnie (od 1024 px lepki obok listy korzyści), bez pustej połowy sekcji */
@media (min-width: 1024px) { .ui-nb-side { position: sticky; top: calc(var(--ui-hd) + 32px); } }
/* v4: portret Ewy pod nagłówkiem 01 (v4-p-nl-ewa, 4:5). Telefon: wąski kadr pod H2, desktop: szerokość kolumny do 400 px */
.ui-nb-ewa { width: min(100%, 260px); margin: 4px 0 0; }
@media (min-width: 1024px) { .ui-nb-ewa { width: min(100%, 400px); margin-top: 8px; } }
/* Newsletter hero: liczba wolnych terminów pod notą formularza (wcześniej wielka liczba w 01) */
.ui-nh__open { display: flex; align-items: center; gap: 8px; margin: 0; font-size: var(--ui-fs-xs); color: var(--ui-ink-2); }
.ui-nh__open .ui-ic { flex: none; color: var(--ui-gold-ink); }
.ui-nh__open a { display: inline-flex; align-items: center; min-height: 44px; margin-block: -12px; color: inherit; text-decoration: underline; text-decoration-color: var(--ui-gold-a); text-underline-offset: 3px; }
.ui-nh__open a:hover { color: var(--ui-ink); text-decoration-color: currentColor; }
/* Podziękowanie: odcinek biletu krótki i jasny (ważność kodu), zastrzeżenie o dopłacie przeszło do kroku 02 */
.ui-ty__coupon .ui-coupon__r { display: grid; gap: 2px; font-size: var(--ui-fs-xs); line-height: 1.3; color: var(--ui-snow-2); }
.ui-ty__coupon .ui-coupon__r b { font-size: 1.375rem; font-weight: 300; letter-spacing: -.02em; line-height: 1.1; color: var(--ui-snow); }

/* 16. Odbiór 3 (2026-10-12) --------------------------------------------------------------------------- */
/* 404 i potwierdzenia na 320 px: etykieta "Zobacz najbliższe terminy" w jednym wierszu (przycisk ma pełną szerokość) */
@media (max-width: 359px) { .ui-eh__cta .ui-btn { padding-inline: 14px; white-space: nowrap; } }
/* Newsletter, telefon: warunek rabatu na bilecie dokłada dwa wiersze, więc "Odbierz kod" wraca do pierwszego ekranu
   390 x 844 kosztem etykiety karty (pola mają własne etykiety "Imię" i "Adres e-mail") i ciaśniejszych wierszy biletu */
@media (max-width: 599px) {
	.ui-nh__card-hd .ui-label { display: none; }
	.ui-nh__cp-on, .ui-nh__cp-dep { line-height: 1.25; }
	.ui-nh__cp-l { padding-bottom: 14px; }
}
