/* ewardega v3 "Meridian": strona główna (ui/front-page.php, helpery inc/ui/home.php).
   Wspólne klocki (arkusz, pasek dowodu, karuzela, karty, płyty, finał) są w ui.css; tu tylko układ i wyjątki głównej.
   Runda 3 (2026-10-12): nadpisania kolejnych rund scalone w jedną regułę na komponent. */

/* 1. Hero (ciemne): poster LCP bez JS, wideo w oknie .ui-hero__vbox (górne 75% kadru, ta sama skala co poster,
   więc wideo nie przejmuje LCP). Desktop: kadr przesunięty w prawo, tekst w wolnym polu. */
.ui-stage { position: relative; timeline-scope: --over; }
/* Odbiór 3: bez JS nagłówek nad hero staje pod paskiem promocji (top: auto = pozycja statyczna), jak w harmonogramie
   i stronach; propozycja do ui.css 418, wtedy ta reguła jest zbędna. */
html:not(.ui-js) .ui-hd--over { top: auto; }
a.ui-hero__film, a.ui-ewa__play { text-decoration: none; }
.ui-hero {
	position: relative; isolation: isolate; z-index: 0;
	min-height: max(680px, 100svh); padding-top: calc(var(--ui-hd) + clamp(56px, 8vh, 96px)); padding-bottom: clamp(56px, 7vh, 84px);
	display: flex; flex-direction: column; justify-content: flex-end;
	color: var(--ui-snow); background: var(--ui-noir); overflow: clip;
}
.js .ui-hero.is-sticky { position: sticky; top: min(0px, calc(100svh - var(--hero-h, 100svh))); }
.ui-hero__media { position: absolute; inset: 0; z-index: -2; }
.ui-hero__pic, .ui-hero__pic img, .ui-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ui-hero__pic img, .ui-hero__video { object-position: 50% 0%; }
.ui-hero__video { opacity: 0; transition: opacity .45s ease; }
.ui-hero__vbox { position: absolute; inset: 0 0 auto 0; height: 75%; overflow: clip; -webkit-mask: linear-gradient(#000 69%, transparent); mask: linear-gradient(#000 69%, transparent); }
.ui-hero__vbox > .ui-hero__video { position: absolute; inset: 0 0 auto 0; width: 100%; height: calc(100% / .75); }
.ui-hero__pic { transition: opacity .9s ease .45s; }
.ui-hero__frame:has(.ui-hero__video.is-on) .ui-hero__pic { opacity: 0; }
.ui-hero__video.is-on { opacity: 1; }
.ui-hero__shade { position: absolute; inset: 0; background:
	linear-gradient(180deg, rgba(11, 9, 7, .55) 0%, rgba(11, 9, 7, .05) 16%, rgba(11, 9, 7, .2) 26%, rgba(11, 9, 7, .62) 38%, rgba(11, 9, 7, .86) 52%, var(--ui-noir) 68%); }
/* Kadr wyłania się z noir przy pełnym wejściu (html.ui-intro: 1. wizyta w sesji). */
.ui-hero__media::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: var(--ui-noir); opacity: 0; }
@keyframes ui-home-curtain { from { opacity: .55; } to { opacity: 0; } }
@media (pointer: fine) { .ui-hero__media[data-cursor] { cursor: pointer; } }
.ui-hero .il--hero { position: absolute; inset: 0; width: 100%; height: 100%; color: var(--ui-gold); pointer-events: none; }
.ui-hero .il--hero .il__d--echo { opacity: .4; stroke-width: 1; }
.ui-hero .il--hero-m { display: none; }
/* Meridian telefonu stoi; rysuje się tylko przy pełnym wejściu. */
.ui-hero .il .il__d, .ui-hero .il .il__pt { transition: none; }
.js .ui-hero .il:not(.in) .il__d { stroke-dashoffset: 0; }
.js .ui-hero .il:not(.in) .il__pt { opacity: 1; }
.ui-hero__in { position: relative; display: grid; gap: 36px; align-items: end; }
.ui-hero__copy { position: relative; display: grid; gap: 22px; justify-items: start; }
.ui-hero h1 { max-width: 11.5em; }
.ui-hero h1 .ui-dot { display: inline-block; }
/* H1 "Ucz się masażu / od Mistrzyni Polski.": drugi wiersz ok. 8,1 em, stopień wg kolumny (maks. --ui-h1-hero, min. 40 px). */
@supports (font-size: 1cqi) {
	.ui-hero__copy { container-type: inline-size; }
	.ui-hero h1 { font-size: max(2.5rem, min(var(--ui-h1-hero), 100cqi / 8.35)); }
}
.ui-hero__lead { font-size: var(--ui-fs-lead); color: var(--ui-snow-2); max-width: 30em; line-height: 1.5; text-wrap: pretty; }
.ui-hero__lead b { color: var(--ui-snow); font-weight: 600; }
.ui-hero__cta { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
/* Audyt Magdy: podpis z twarzą Ewy pod leadem (okrągła miniatura w złotym obrysie, link do /o-mnie/). */
a.ui-hero__who { display: inline-flex; align-items: center; gap: 12px; min-height: 48px; color: var(--ui-snow); text-decoration: none; }
.ui-hero__who-img { flex: none; width: 48px; height: 48px; border-radius: 50%; object-fit: cover; background: var(--ui-noir); box-shadow: 0 0 0 1px rgba(201, 164, 106, .9), 0 0 0 5px rgba(201, 164, 106, .14); }
.ui-hero__who-t { display: grid; gap: 2px; line-height: 1.3; }
.ui-hero__who-t b { font-size: var(--ui-fs-s); font-weight: 600; letter-spacing: -.005em; transition: color var(--ui-t2); }
.ui-hero__who-t span { font-size: var(--ui-fs-xs); color: var(--ui-snow-2); }
.ui-hero__who:hover b { color: var(--ui-gold-hi); }
.ui-hero__who:focus-visible { outline: 2px solid var(--ui-gold-hi); outline-offset: 4px; border-radius: 999px; }
@media (min-width: 900px) { .ui-hero__who-img { width: 56px; height: 56px; } }
/* Kontrola po rundzie 1: na telefonie podpis dokładał 62 px i spychał pod pierwszy ekran wiersz TVP2 i brzeg karty
   "Najbliższy kurs". Mniejsza miniatura, ciaśniej pod leadem, kopia startuje 36 px wyżej (tylko gdy podpis jest). */
@media (max-width: 899px) {
	a.ui-hero__who { min-height: 44px; margin-top: -4px; }
	.ui-hero__who-img { width: 44px; height: 44px; }
	.ui-hero:has(.ui-hero__who) { padding-top: calc(var(--ui-hd) + clamp(110px, 25svh - 36px, 186px)); }
}
.ui-hero__scroll { position: absolute; left: 50%; bottom: 18px; width: 1px; height: 44px; overflow: hidden; display: none; }
.ui-hero__scroll::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent, var(--ui-gold)); }
.ui-hero__mer, .ui-hero__film { display: none; }
@media (prefers-reduced-motion: no-preference) {
	.ui-hero__scroll::after { animation: ui-scrollcue 2.4s var(--ui-ease) 3; } /* 2.2.1: 3 razy i stop */
	html.ui-intro .ui-hero__media::after { animation: ui-home-curtain 1s var(--ui-ease-curtain) both; }
	html.ui-intro .ui-hero .il__d { animation: ui-draw 1.1s var(--ui-ease-out-expo) .3s both; }
	html.ui-intro .ui-hero .il__d--echo { animation-delay: .45s; }
	html.ui-intro .ui-hero .il__pt { animation: ui-fade .5s ease both; animation-delay: calc(.8s + var(--i, 0) * .1s); }
	/* Pełne wejście kończy się do ok. 1,4 s po pierwszym malowaniu: karta od 760 ms przez 600 ms. */
	html.ui-intro .ui-next.ui-enter { --enter-d: 760ms; animation-duration: .6s; }
}
/* Hero przygasa pod pierwszym jasnym arkuszem (scroll-driven) */
@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		.ui-over { view-timeline: --over block; }
		.ui-hero__dim { animation: ui-hero-dim linear both; animation-timeline: --over; animation-range: entry 0% entry 100%; }
	}
}
@media (min-width: 900px) {
	.ui-hero__frame { position: absolute; inset: 0 0 0 22%; }
	/* Odbiór 3: kadr przesunięty w lewo (było 0% 18%), żeby w drugiej połowie pętli twarz nie wychodziła za prawą
	   krawędź okna; 900-1349 px mniej, bo tam ten sam procent przesuwa kadr dalej (twarz przy końcu meridianu). */
	.ui-hero__pic img, .ui-hero__video { object-position: 26% 18%; }
	.ui-hero__shade::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 32% 44% at 100% 0, rgba(11, 9, 7, .78), rgba(11, 9, 7, .32) 55%, rgba(11, 9, 7, 0) 100%); }
	.ui-hero__shade { background:
		linear-gradient(90deg, var(--ui-noir) 21%, rgba(11, 9, 7, .82) 30%, rgba(11, 9, 7, .2) 48%, rgba(11, 9, 7, 0) 62%),
		linear-gradient(180deg, rgba(11, 9, 7, .6) 0%, rgba(11, 9, 7, 0) 22%, rgba(11, 9, 7, 0) 58%, rgba(11, 9, 7, .9) 100%); }
	.ui-hero__in { grid-template-columns: minmax(0, 7fr) minmax(0, 4.4fr); gap: 48px; }
	@media (min-width: 1350px) { .ui-hero__pic img, .ui-hero__video { object-position: 30% 18%; } }
	.ui-hero__in--solo { grid-template-columns: minmax(0, 1fr); }
	.ui-hero__scroll { display: block; }
	.ui-hero__cta .hide-d { display: none; }
	.ui-next.ui-enter { --enter-x: 24px; --enter-y: 0px; }
	.ui-next__acts .ui-btn { white-space: nowrap; }
	/* Meridian w kolumnie tekstu (ewardega_ui_home_hero_line): od lewej krawędzi okna w pasie nad eyebrow, koniec przy
	   85% kolumny, przed strefą twarzy w wideo. Rysuje się raz przy pełnym wejściu (clip-path), potem stoi. */
	.ui-hero__mer {
		--off: max(var(--ui-g), (100vw - var(--ui-max)) / 2);
		display: block; position: absolute; z-index: -1; pointer-events: none; color: var(--ui-gold);
		left: calc(-1 * var(--off)); width: calc(var(--off) + 72%); top: -88px; height: 96px; /* odbiór 4: 72% (było 85%), kropka końca nie siada na twarzy w kadrze */
		-webkit-mask: linear-gradient(90deg, transparent, #000 min(12%, 120px)); mask: linear-gradient(90deg, transparent, #000 min(12%, 120px));
	}
	.ui-hero__mer svg { display: block; width: 100%; height: 100%; overflow: visible; }
	.ui-hero__mer path { fill: none; stroke: currentColor; stroke-width: 1.25; stroke-linecap: round; vector-effect: non-scaling-stroke; }
	.ui-hero__mer .ui-hero__mer-echo { stroke-width: 1; opacity: .4; }
	.ui-hero__mer::after { content: ""; position: absolute; right: -4px; top: calc(50% - 4px); width: 8px; height: 8px; border-radius: 50%; background: var(--ui-gold); box-shadow: 0 0 0 5px rgba(201, 164, 106, .18); } /* odbiór 2026-10-12: węzeł na końcu linii */
	/* Pigułka "Film" (przycisk 44 px, magnes); nad kadrem kursor "Odtwórz", klik w kadr otwiera ten sam film. */
	.ui-hero__film {
		position: absolute; z-index: 2; right: var(--ui-g); top: calc(var(--ui-hd) + var(--ui-promo) + 3vh); /* odbiór 3: było 9vh (przy podbródku w 5. sekundzie pętli) */
		display: inline-flex; align-items: center; gap: 12px; min-height: 44px; padding: 4px 20px 4px 4px; border-radius: 999px;
		font: inherit; font-size: var(--ui-fs-xs); font-weight: 600; letter-spacing: .16em; text-transform: uppercase; line-height: 1;
		color: var(--ui-snow); background: rgba(11, 9, 7, .55); border: 1px solid var(--ui-hair-2); cursor: pointer;
		transition: translate .5s var(--ui-ease), background-color var(--ui-t2), border-color var(--ui-t2);
	}
	.ui-hero__film .ui-play__i { width: 36px; height: 36px; }
	.ui-hero__film .ui-play__i .ui-ic { width: 14px; height: 14px; }
	.ui-hero__film:hover { background: rgba(11, 9, 7, .78); border-color: var(--ui-gold); }
	.ui-hero__film:hover .ui-play__i { transform: scale(1.08); }
	.ui-hero__film:focus-visible { outline: 2px solid var(--ui-gold-hi); outline-offset: 3px; }
}
@media (min-width: 900px) and (prefers-reduced-motion: no-preference) {
	html.ui-intro .ui-hero__mer svg { animation: ui-home-mer 1.1s var(--ui-ease-out-expo) .3s both; }
	html.ui-intro .ui-hero__mer::after { animation: ui-fade .4s ease 1s both; }
}
@keyframes ui-home-mer { from { clip-path: inset(-10px 100% -10px 0); } to { clip-path: inset(-10px 0 -10px 0); } }
/* 900-1099 px (iPad poziomo): przyciski w jednym rzędzie, szersza karta, linia nad eyebrow. */
@media (min-width: 900px) and (max-width: 1099px) {
	.ui-hero__in { grid-template-columns: minmax(0, 1fr) minmax(348px, .9fr); gap: 32px; }
	.ui-hero__cta { flex-wrap: nowrap; gap: 8px; }
	.ui-hero__cta .ui-btn { min-height: 48px; padding-inline: 18px; gap: 8px; font-size: .9375rem; white-space: nowrap; }
	.ui-next__price small { white-space: nowrap; }
	.ui-hero .ui-trust__sep { display: none; }
	.ui-hero__mer { top: -100px; height: 84px; width: calc(var(--off) + 92%); }
}
/* Telefon: kadr od górnej krawędzi (twarz i dłonie w górnej części ekranu), scrim ciemny dopiero nad eyebrow, meridian
   jako linia między przyciskami a dowodem, karta "Najbliższy kurs" wystaje na pierwszym ekranie. */
@media (max-width: 899px) {
	.ui-hero { justify-content: flex-start; padding-top: calc(var(--ui-hd) + clamp(134px, 25svh, 222px)); padding-bottom: calc(var(--ui-dock) + 28px + var(--ui-safe)); }
	/* 2.2.1: kadr przesunięty o 40 px zamiast 104 (oczy schodziły pod logo): twarz na posterze ok. 110 px, w pętli 150 do 270 px,
	   czyli pod nagłówkiem i nad zasłoną eyebrow */
	.ui-hero__frame { position: absolute; inset: -40px 0 auto; height: min(780px, 92svh); }
	.ui-hero__pic img, .ui-hero__video { object-position: 42% 0%; }
	.ui-hero__shade { background: linear-gradient(180deg,
		rgba(11, 9, 7, .5) 0, rgba(11, 9, 7, .04) 96px, rgba(11, 9, 7, .02) calc(var(--ui-hd) + clamp(40px, 9svh, 90px)),
		rgba(11, 9, 7, .58) calc(var(--ui-hd) + clamp(120px, 21svh, 186px)), rgba(11, 9, 7, .8) calc(var(--ui-hd) + clamp(190px, 31svh, 276px)),
		rgba(11, 9, 7, .9) calc(var(--ui-hd) + clamp(260px, 49svh, 420px)), var(--ui-noir) calc(var(--ui-hd) + clamp(380px, 70svh, 600px))); }
	/* Odbiór 3: szwy tła studia w prawym górnym rogu (w każdej klatce pętli) gasną w cieniu rogu. */
	.ui-hero__shade::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 50% 30% at 100% 0, rgba(11, 9, 7, .78), rgba(11, 9, 7, .32) 55%, rgba(11, 9, 7, 0) 100%); }
	.ui-hero__in { gap: 20px; }
	.ui-hero__copy { gap: 14px; }
	.ui-hero .ui-hero__cta { order: 1; }
	.ui-hero .il--hero.il--hero-m { order: 2; display: block; position: relative; inset: auto; justify-self: stretch; width: auto; height: 34px; aspect-ratio: 390 / 844; margin: -8px calc(-1 * var(--ui-g)) -6px; }
	.ui-hero .ui-hero__copy > .ui-trust { order: 3; row-gap: 2px; }
	.ui-hero .ui-eyebrow { text-shadow: 0 0 14px rgba(11, 9, 7, .95), 0 1px 3px rgba(11, 9, 7, .9); }
	.ui-hero h1, .ui-hero__lead { text-shadow: 0 1px 22px rgba(11, 9, 7, .6); }
}
@media (max-width: 599px) {
	.ui-hero__cta { display: grid; grid-template-columns: minmax(0, 1fr) 52px; width: 100%; }
	.ui-hero__cta .ui-btn--cta { grid-column: 1 / -1; }
}

/* 2. Karta "Najbliższy kurs" (szkło na ciemnym): kafelki dni wg długości terminu (2-4), miasto, cena, odliczanie. */
.ui-next {
	position: relative; display: grid; gap: 16px; padding: 20px; border-radius: var(--ui-r-l);
	color: var(--ui-snow); background: rgba(21, 17, 13, .72); border: 1px solid var(--ui-hair);
	backdrop-filter: blur(18px) saturate(1.2); -webkit-backdrop-filter: blur(18px) saturate(1.2);
	box-shadow: var(--ui-sh-d);
}
@media (min-width: 900px) { .ui-next { padding: 22px; } }
.ui-next__top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.ui-next__t { font-size: 1.375rem; font-weight: 400; letter-spacing: -.02em; line-height: 1.2; }
.ui-days { display: grid; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)) minmax(0, 1.4fr); gap: 6px; }
.ui-day { display: grid; place-items: center; align-content: center; gap: 2px; min-height: 64px; border-radius: 14px; background: rgba(246, 242, 236, .06); border: 1px solid var(--ui-hair); line-height: 1; }
.ui-day small { font-size: var(--ui-fs-xs); color: var(--ui-snow-3); text-transform: lowercase; }
.ui-day b { font-size: 1.375rem; font-weight: 400; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.ui-day--city { place-items: start; padding: 0 10px; text-align: left; gap: 6px; }
.ui-day--city small { display: inline-flex; align-items: center; }
.ui-day--city b { font-size: 1rem; font-weight: 600; letter-spacing: 0; line-height: 1.15; }
.ui-next__row { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; padding-top: 14px; border-top: 1px solid var(--ui-hair); }
.ui-next__row .ui-st { padding-bottom: 2px; }
.ui-next__price b { display: block; font-size: 1.25rem; font-weight: 600; font-variant-numeric: tabular-nums; }
.ui-next__price small { display: block; margin-top: 2px; font-size: var(--ui-fs-xs); line-height: 1.35; color: var(--ui-snow-3); }
.ui-count { display: inline-flex; align-items: center; gap: 8px; font-size: var(--ui-fs-xs); color: var(--ui-snow-2); }
.ui-count svg { width: 22px; height: 22px; }
.ui-count circle { fill: none; stroke-width: 1.5; }
.ui-next__acts { display: grid; grid-template-columns: minmax(0, 1fr) 52px; gap: 8px; }

/* 3. Pasek dowodu: 1000+ i 4 jako .ui-num (atrament), PL/ENG jako etykieta 20 px. */
#dowod .ui-proof__i { align-content: end; gap: 10px; }
#dowod .ui-proof__v.ui-num { display: block; font-size: clamp(4.5rem, 2.6rem + 5.2vw, 8rem); font-weight: 200; line-height: .84; letter-spacing: -.055em; color: var(--ui-ink);
	font-variant-numeric: proportional-nums lining-nums; font-feature-settings: "pnum" 1, "lnum" 1; }
#dowod .ui-proof__v.ui-num small { font-size: .36em; font-weight: 300; vertical-align: 1.45em; margin-left: .06em; color: var(--ui-ink-2); }
/* Odbiór 2026-10-12: PL/ENG w tej samej rodzinie co liczby (cienkie 200, ta sama linia bazowa), kolumna nie stoi pusta. */
#dowod .ui-proof__v--lbl { display: block; font-size: clamp(3rem, 1.4rem + 3.8vw, 5.25rem); font-weight: 200; letter-spacing: -.045em; line-height: .84; color: var(--ui-ink); white-space: nowrap; }
@media (min-width: 900px) { #dowod .ui-proof__i { padding-block: 28px 26px; } #dowod .ui-proof__i + .ui-proof__i { padding-left: clamp(20px, 2.4vw, 36px); } }
@media (max-width: 899px) { #dowod .ui-proof--3 .ui-proof__i:nth-child(3) { grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: 18px; } }
@media (max-width: 599px) {
	#dowod .ui-proof, #dowod .ui-proof--3 { grid-template-columns: minmax(0, 1fr); }
	#dowod .ui-proof .ui-proof__i, #dowod .ui-proof--3 .ui-proof__i:nth-child(3) {
		grid-column: auto; grid-template-columns: 10.75rem minmax(0, 1fr); align-items: end; column-gap: 12px; padding: 18px 0; border-left: 0; border-top: 0;
	}
	#dowod .ui-proof .ui-proof__i + .ui-proof__i { border-top: 1px solid var(--ui-line); padding-left: 0; }
	#dowod .ui-proof__v.ui-num { font-size: 4.5rem; }
	#dowod .ui-proof__v--lbl { font-size: 2.625rem; }
	#dowod .ui-proof__k { padding-bottom: 4px; }
}

/* 4. Szkolenia: cicha ścieżka (linia raz, punkty stoją), Adept wyróżniony, szyna kart, pasek 1:1. */
.ui-path { margin-bottom: clamp(40px, 5vw, 72px); }
.ui-path__hd { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 16px; margin-bottom: clamp(20px, 2.4vw, 28px); }
.ui-path__hd .ui-xs { color: var(--ui-ink-2); }
.ui-path__body { position: relative; }
.ui-path__ln { position: absolute; display: block; overflow: visible; pointer-events: none; --ui-draw-t: 1.6s; }
.ui-path__ln path { fill: none; stroke: var(--ui-gold-ink); stroke-width: 1; }
.ui-path__list { position: relative; display: grid; margin: 0; padding: 0; list-style: none; }
.ui-path__s { position: relative; display: grid; align-content: start; gap: 6px; }
.ui-path__p { position: absolute; width: 11px; height: 11px; border-radius: 50%; background: var(--ui-gold-ink); box-shadow: 0 0 0 5px var(--ui-ivory); }
.ui-path__s--you .ui-path__p { background: var(--ui-ink); }
.ui-path__k { font-size: var(--ui-fs-xs); font-weight: 600; letter-spacing: 1.2px; text-transform: uppercase; color: var(--ui-gold-ink); line-height: 1.4; }
.ui-path__s b { display: flex; align-items: center; gap: 8px; font-size: 1.25rem; font-weight: 600; letter-spacing: -.01em; line-height: 1.25; color: var(--ui-ink); }
.ui-path__s small { font-size: .9375rem; line-height: 1.45; color: var(--ui-ink-2); }
.ui-path__s .ui-ic--arr { width: 16px; height: 16px; color: var(--ui-ink-3); transition: translate var(--ui-t2) var(--ui-ease), color var(--ui-t2); }
.ui-path__s:hover .ui-ic--arr, .ui-path__s:focus-within .ui-ic--arr { translate: 4px 0; color: var(--ui-ink); }
.ui-path__s a { position: absolute; inset: -10px -12px; border-radius: 14px; }
.ui-path__s a:focus-visible { outline: 2px solid var(--ui-gold-ink); outline-offset: 0; }
@media (min-width: 900px) {
	.ui-path__ln--v { display: none; }
	.ui-path__ln--h { left: 0; top: 4.5px; width: 100%; height: 2px; }
	.ui-path__list { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 32px; padding-top: 52px; } /* odbiór 4: bez punktu Start */
	.ui-path__p { left: 0; top: -52px; }
}
@media (max-width: 899px) {
	.ui-path__ln--h { display: none; }
	.ui-path__ln--v { left: 4.5px; top: 10px; width: 2px; height: calc(100% - 10px); }
	.ui-path__list { gap: 24px; padding-left: 34px; }
	.ui-path__p { left: -34px; top: 4px; }
}
.ui-feat { display: grid; overflow: hidden; border-radius: var(--ui-r-l); background: var(--ui-card); border: 1px solid var(--ui-line); box-shadow: var(--ui-sh-2); }
.ui-feat__media { position: relative; min-height: 300px; }
.ui-feat__media .ui-unveil { position: absolute; inset: 0; --ui-r-l: 0px; border-radius: 0; }
/* v6: v6-feat-adept (1,2:1), zdjęcie z campu: Ewa przy stole, twarz w górnej ćwiartce kadru. */
.ui-feat__media img { object-position: 50% 30%; }
.ui-feat__badge { position: absolute; left: 16px; top: 16px; z-index: 1; }
/* Kadr dzienny (jasne niebo): plakietka na pełnym noir, nie na szkle. */
.ui-feat .ui-feat__badge { background: rgba(11, 9, 7, .82); color: var(--ui-snow); border-color: transparent; }
.ui-feat__body { display: grid; gap: 18px; align-content: center; padding: clamp(22px, 3.2vw, 44px); }
.ui-feat__body h3 { font-size: clamp(2rem, 1.6rem + 1.6vw, 3.125rem); }
.ui-feat__body h3 a { color: inherit; text-decoration: none; border-radius: 6px; }
.ui-feat__body h3 a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .14em; text-decoration-color: var(--ui-gold); }
.ui-feat__next { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; font-size: var(--ui-fs-s); color: var(--ui-ink-2); }
.ui-feat__next b { color: var(--ui-ink); font-variant-numeric: tabular-nums; }
.ui-feat__next > span:not(.ui-st) { white-space: nowrap; }
.ui-feat__acts { display: flex; flex-wrap: wrap; gap: 10px; }
.ui-feat__line { display: none; }
@media (min-width: 900px) { .ui-feat { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); } }
@media (hover: hover) and (pointer: fine) {
	.ui-feat__media img { transition: scale 1.6s var(--ui-ease-out-expo), transform 1.2s var(--ui-ease-out-expo); }
	.ui-feat:hover .ui-feat__media img { transform: scale(1.04); }
}
/* Telefon: bez chipów, cena w jednej linii, dwa przyciski w rzędzie, opis maks. 3 wiersze. */
@media (max-width: 599px) {
	.ui-feat .ui-chips, .ui-feat .ui-price-box { display: none; }
	.ui-feat__line { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 1rem; color: var(--ui-ink-2); }
	.ui-feat__line b { font-size: 1.375rem; font-weight: 600; letter-spacing: -.01em; color: var(--ui-ink); }
	.ui-feat__body { gap: 12px; }
	.ui-feat__body > .ui-p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
	.ui-feat__acts { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 8px; }
	.ui-feat__acts .ui-btn { padding-inline: 12px; }
	.ui-path__list { gap: 14px; }
	.ui-path__hd { margin-bottom: 16px; }
	/* Krok w dwóch wierszach: etykieta i nazwa w jednym, opis pod spodem. */
	.ui-path__s { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; }
	.ui-path__s small { flex-basis: 100%; }
	.ui-path__p { top: 6px; }
	/* v6, runda 2: kadr -m 4:3 (1080x810), okno tej samej proporcji, więc bez docinania. W 16:9 ponad połowę
	   zajmował jasny ekran rzutnika, a Ewa była mała; w 4:3 stoi od czubka głowy do dłoni na kursantce. */
	.ui-feat__media { min-height: 0; aspect-ratio: 4 / 3; }
	.ui-feat__media img { object-position: 50% 50%; }
}
#szkolenia .ui-rail__hd { align-items: center; }
#szkolenia .ui-rail__track { -webkit-mask: linear-gradient(90deg, #000 calc(100% - 64px), transparent); mask: linear-gradient(90deg, #000 calc(100% - 64px), transparent); }
#szkolenia .ui-rail:has([data-rail-dir="1"]:disabled) .ui-rail__track { -webkit-mask: none; mask: none; }
.ui-cc--home .ui-cc__body p { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
/* v6: karuzela łączy karty ze zdjęciem z campu (Master, Classic, Wellness) i karty z rysunkiem techniki (Deep Tissue,
   A-Shiatsu; home.php). Nagłówek z rysunkiem ma tę samą proporcję 16:11 co okno zdjęcia, żeby karty w rzędzie miały
   równą wysokość: jasny papier, chip czasu i terminów, rysunek złotym tuszem w prawym dolnym rogu, większy niż w v5. */
.ui-cc__media--t {
	position: relative; overflow: hidden; min-height: 0;
	background: linear-gradient(160deg, rgba(125, 95, 46, .085), rgba(125, 95, 46, .03) 70%); border: 1px solid var(--ui-line);
}
.ui-cc__media--t .ui-cc__il { right: 6%; bottom: 6%; width: 56%; height: auto; aspect-ratio: 4 / 3; border: 0; border-radius: 0; background: none; }
.ui-cc__media--t .ui-cc__il .il { width: 100%; height: 100%; color: var(--ui-gold-ink); }
.ui-cc__media--t .ui-chip { background: var(--ui-card); }
/* 600 do 719 px: kadr -m 4:3 w oknie min. 300 px wysokości (ok. 2:1), więc docinany z dołu, żeby nie ściąć głowy. */
@media (min-width: 600px) and (max-width: 719px) { .ui-feat__media img { object-position: 50% 6%; } }
/* v6, runda 2: na jasnym, ruchliwym zdjęciu z campu chip ze szkła (6 % bieli) ginął; pełniejsze noir jak plakietka karty Adept. */
.ui-cc--home .ui-win .ui-chip--d { background: rgba(11, 9, 7, .72); color: var(--ui-snow); border-color: transparent; }
/* Pasek 1:1 (ciemny): cennik jako lista, nazwa z lewej, kwota z prawej. */
.ui-one { position: relative; display: grid; gap: 20px; align-items: center; margin-top: 8px; padding: clamp(20px, 3vw, 32px); border-radius: var(--ui-r-l); overflow: hidden; isolation: isolate; }
.ui-one h3 { margin-top: 10px; }
.ui-one .ui-small { margin-top: 10px; color: var(--ui-snow-2); }
.ui-one__prices { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; border-top: 1px solid var(--ui-hair); }
.ui-one__prices a { display: flex; justify-content: space-between; align-items: center; gap: 16px; width: 100%; min-height: 48px; padding: 10px 2px; border: 0; border-bottom: 1px solid var(--ui-hair); border-radius: 0; background: transparent; font-size: var(--ui-fs-s); color: var(--ui-snow-2); transition: color var(--ui-t2), padding var(--ui-t2) var(--ui-ease); }
.ui-one__prices a:hover { background: transparent; border-color: var(--ui-hair-2); color: var(--ui-snow); padding-inline: 8px 2px; }
.ui-one__prices b { color: var(--ui-snow); font-size: 1rem; font-weight: 600; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.ui-one__acts { display: grid; gap: 6px; justify-items: start; }
.ui-one__acts .ui-link { color: var(--ui-snow-2); }
@media (min-width: 900px) {
	.ui-one { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) auto; gap: 32px; }
	.ui-one__prices { min-width: 250px; }
	.ui-one__acts { justify-items: end; }
}
@media (max-width: 479px) { .ui-one__d { display: none; } }

/* 4b. Pas z Tatrami (v4, jasny, między szkoleniami a metodą): kadr 16:9 w szerokości treści, telefon 4:5 z wersji -m.
   Pętla leży nad zdjęciem i pojawia się dopiero z pierwszą klatką (.is-on z ui.js), więc zdjęcie jest plakatem.
   Bez tekstu na obrazie, podpis pod kadrem. */
.ui-home-tatry.ui-sec { padding-block: clamp(8px, 2vw, 24px) clamp(56px, 7vw, 104px); }
/* .ui-fig { margin: 0 } (ui.css) stoi po .ui-wrap i kasował wyśrodkowanie: kadr kleił się do lewej krawędzi okna. */
.ui-home-fig--tatry.ui-wrap { margin-inline: auto; }
.ui-home-fig--tatry .ui-unveil { aspect-ratio: 16 / 9; --pos: 50% 50%; }
.ui-home-tatry__v { position: absolute; inset: 0; opacity: 0; transition: opacity .8s var(--ui-ease); }
.ui-home-tatry__v.is-on { opacity: 1; }
@media (max-width: 719px) { .ui-home-fig--tatry .ui-unveil { aspect-ratio: 4 / 5; --pos: 50% 50%; } }
@media (prefers-reduced-motion: reduce) { .ui-home-tatry__v { display: none; } }

/* 5. #metoda (płyta): sygnatura "Meridian w ciele". Manifest 5/12 z falą słów, rysunek 7/12 wychodzi prawą krawędzią
   płyty; telefon: rysunek na całą szerokość nad manifestem. Jedna grubość kreski 1,5 px (--sw liczy ui-home.js
   z szerokości rysunku; tu wartości startowe). Rysuje się raz (is-wait -> is-go), potem jeden złoty błysk po plecach. */
#metoda .ui-method__head { margin-bottom: clamp(32px, 4vw, 56px); }
.ui-mbody { display: grid; gap: 20px; }
.ui-mbody__il { margin-inline: calc(-1 * var(--ui-g)); min-width: 0; }
.ui-mb { display: block; width: 100%; height: auto; overflow: hidden; color: var(--ui-gold); --sw: 3;
	/* Odbiór 2026-10-12: przedramię wychodzi z ciemności (górne 30% wygaszone), meridian wpływa lewą krawędzią. */
	-webkit-mask: linear-gradient(180deg, transparent, #000 30%), linear-gradient(90deg, transparent, #000 7%); -webkit-mask-composite: source-in;
	mask: linear-gradient(180deg, transparent, #000 30%), linear-gradient(90deg, transparent, #000 7%); mask-composite: intersect; }
.ui-mb path { fill: none; stroke: currentColor; stroke-width: var(--sw); stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 0;
	transition: stroke-dashoffset var(--t, 1s) cubic-bezier(.45, .05, .2, 1) var(--d, 0s); }
.ui-mb .ui-mb__glint { display: none; }
@media (prefers-reduced-motion: no-preference) {
	.ui-mb.is-wait:not(.is-go) path { stroke-dashoffset: 1; transition: none; }
	.ui-mb.is-go .ui-mb__glint { display: block; stroke: var(--ui-gold-hi); stroke-width: calc(var(--sw) * 1.5); stroke-dasharray: .09 1.3; stroke-dashoffset: .15; transition: none;
		animation: ui-mb-glint 1.5s cubic-bezier(.45, .05, .2, 1) 2.2s both; }
}
@keyframes ui-mb-glint { from { stroke-dashoffset: .15; } to { stroke-dashoffset: -1.1; } }
.ui-mbody__q { display: grid; gap: 18px; margin: 0; }
.ui-mbody__q blockquote { margin: 0; }
.ui-mbody__w { margin: 0; font-size: clamp(1.75rem, 1.2rem + 1.9vw, 2.875rem); font-weight: 300; letter-spacing: -.025em; line-height: 1.16; color: var(--ui-snow); }
.ui-mbody__q cite { display: flex; align-items: center; gap: 12px; font-style: normal; font-size: var(--ui-fs-xs); font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--ui-gold); }
.ui-mbody__q cite::before { content: ""; width: 24px; height: 1px; background: currentColor; }
/* Telefon: rysunek 128% szerokości, prawa część (plecy i blat) wychodzi za krawędź płyty; głowa i dłoń większe. */
@media (max-width: 599px) { .ui-mb { width: 128%; max-width: none; --sw: 2.4; } }
@media (min-width: 600px) { .ui-mb { --sw: 1.7; } }
@media (min-width: 900px) {
	.ui-mbody { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-areas: "q il"; align-items: end; column-gap: clamp(28px, 3.4vw, 56px); }
	.ui-mbody__il { grid-area: il; margin: 0 calc(-1 * var(--ui-g)) 0 0; }
	.ui-mbody__q { grid-area: q; padding-bottom: 4px; }
	.ui-mbody__w { font-size: clamp(1.75rem, 1rem + 1.7vw, 2.625rem); }
}
/* Pod sygnaturą: pierścień 90% i cztery narzędzia stoją (bez rysowania i pętli). */
.ui-mbody__base { display: grid; gap: 28px; margin-top: clamp(40px, 5vw, 80px); padding-top: clamp(28px, 3vw, 44px); border-top: 1px solid var(--ui-hair); }
#metoda .ui-gauge { max-width: 220px; }
#metoda .ui-tech { margin-top: 0; }
#metoda .ui-mbody__base .il .il__d, #metoda .ui-mbody__base .il .il__arc { transition: none; animation: none; stroke-dashoffset: 0; }
.js #metoda .ui-mbody__base .il:not(.in) .il__d, .js #metoda .ui-gauge .il:not(.in) .il__arc { stroke-dashoffset: 0; }
.js #metoda .ui-mbody__base .il:not(.in) :is(.il__pt, .il__fill, .il__glow) { opacity: 1; }
#metoda .ui-mbody__base .il * { animation: none; transition: none; }
@media (min-width: 1100px) { .ui-mbody__base { grid-template-columns: minmax(180px, 2.6fr) minmax(0, 9.4fr); align-items: center; column-gap: clamp(32px, 4vw, 64px); } }
/* Odbiór 4: poniżej 1100 px cyfra z ui.css (min. 3,5rem) wychodziła na łuk, podpis za koło; tarcza 188 px i mniejszy stopień. */
@media (max-width: 1099px) {
	#metoda .ui-gauge { max-width: 188px; justify-self: start; }
	#metoda .ui-gauge__v b { font-size: 2.75rem; }
	#metoda .ui-gauge__v span { font-size: .8125rem; }
}
/* v4: narzędzia to kadry 4:5 (v4-h-*, ciemny grading płyty) w oknie .ui-win, w rogu ikona techniki home-tech-*
   jak na kartach kursów. Tytuły stoją pod kadrem w jednej linii (kadry mają tę samą proporcję). */
#metoda .ui-pillars--tech .ui-pillar__ph { position: relative; aspect-ratio: 4 / 5; width: 100%; max-width: 240px; }
/* Od 1100 px pierwsza kolumna nie ma padding-left 24 px ani kreski 1 px (ui.css), więc jej kadr wychodził większy
   i tytuł "Dłonie" stał niżej. Odejmujemy te 25 px, żeby cztery kadry miały ten sam rozmiar. */
@media (min-width: 1100px) { #metoda .ui-pillars--tech .ui-pillar:first-child .ui-pillar__ph { width: calc(100% - 25px); } }
.ui-pillar__ph img { display: block; }
/* v5: kafle bez zdjęć. Rysunek home-tool-* (narzędzie w przekroju, skóra i warstwy tkanki) na jasnej płycie, ta sama
   proporcja 4:5, więc układ i tytuły stoją jak z kadrami. Ikona techniki w rogu bez zmian. Kreski jak przed v4. */
#metoda .ui-pillars--tech .ui-pillar__ph--il { display: grid; place-items: center; padding: 8% 7% 22%; background: var(--ui-plate); color: var(--ui-gold-ink); }
.ui-pillar__ph--il .ui-pillar__il { display: block; width: 100%; }
.ui-pillar__ph--il .il { display: block; width: 100%; height: auto; }
#metoda .ui-mbody__base .il--tool .il__d { stroke-dasharray: none; }
.il--tool .il__d { stroke-width: 1.05; }
.il--tool .il__halo { stroke-width: .9; }
.il--tool .il__soft { opacity: .55; }
.il--tool .il__skin { opacity: .62; }
.il--tool .il__layer { opacity: .3; stroke-width: .7; }
.il--tool .il__ripple { opacity: .42; }
.ui-pillar__il .il--tool { -webkit-mask: linear-gradient(90deg, transparent, #000 9%, #000 91%, transparent); mask: linear-gradient(90deg, transparent, #000 9%, #000 91%, transparent); }
@media (max-width: 599px) {
	.il--tool .il__d { stroke-width: 1.4; }
	.il--tool .il__halo { stroke-width: 1.1; }
	.il--tool .il__layer { stroke-width: .9; }
}
.ui-pillar__b { position: absolute; right: 10px; bottom: 10px; z-index: 1; display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: rgba(11, 9, 7, .62); border: 1px solid rgba(201, 164, 106, .35); }
.ui-pillar__b .il { width: 40px; height: 30px; color: var(--ui-gold); }
/* Telefon: siatka 2x2, pod nazwą skrót opisu (.ui-pillar__s, 13 px); pełne zdanie zostaje dla czytników (odbiór 3). */
.ui-pillar__s { display: none; }
@media (max-width: 599px) {
	#metoda .ui-pillars--tech { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 12px; }
	#metoda .ui-pillars--tech .ui-pillar { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 10px 0 14px; border-left: 0; border-bottom: 1px solid var(--ui-hair); align-items: start; }
	#metoda .ui-pillars--tech .ui-pillar__ph { max-width: none; }
	.ui-pillar__b { right: 8px; bottom: 8px; width: 40px; height: 40px; }
	.ui-pillar__b .il { width: 28px; height: 21px; }
	#metoda .ui-pillars--tech .ui-pillar h3 { margin: 0; font-size: 1rem; }
	#metoda .ui-pillars--tech .ui-pillar p { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	#metoda .ui-pillars--tech .ui-pillar__s { display: block; margin-top: 2px; font-size: var(--ui-fs-xs); line-height: 1.4; color: var(--ui-snow-2); }
	.ui-mbody__base { margin-top: 28px; gap: 18px; padding-top: 22px; }
	#metoda .ui-gauge { justify-self: center; }
	#metoda .ui-method__head { margin-bottom: 20px; }
	.ui-mbody { gap: 16px; }
}
/* Kropka po znaku ® pod indeks (było "Flow® ."). */
.ui-main :is(.ui-d1, .ui-d2, .ui-d3) sup.r + .ui-dot { margin-left: -.3em; }

/* 6. Prowadząca: trzy osiągnięcia jako duże wiersze, reszta w "Pełna lista". */
.ui-ewa__head, .ui-camp__head { margin-bottom: 0; }
.ui-ewa__more { margin-top: 28px; }
.ui-ewa__facts { margin: 28px 0 0; padding: 0; list-style: none; border-top: 1px solid var(--ui-line-2); }
.ui-ewa__facts li { padding: 18px 0 20px; border-bottom: 1px solid var(--ui-line); font-size: clamp(1.75rem, 1.35rem + 1vw, 2.5rem); font-weight: 300; letter-spacing: -.025em; line-height: 1.14; color: var(--ui-ink); text-wrap: balance; }
.ui-ewa__all { border-bottom: 1px solid var(--ui-line); }
.ui-ewa__all summary { display: flex; align-items: center; gap: 10px; min-height: 56px; cursor: pointer; list-style: none; font-weight: 600; color: var(--ui-ink); border-radius: 8px; }
.ui-ewa__all summary::-webkit-details-marker { display: none; }
.ui-ewa__all summary small { font-size: var(--ui-fs-xs); font-weight: 600; color: var(--ui-ink-2); }
.ui-ewa__all summary .ui-ic { width: 18px; height: 18px; margin-left: auto; color: var(--ui-gold-ink); rotate: 90deg; transition: rotate var(--ui-t2) var(--ui-ease); }
.ui-ewa__all[open] summary .ui-ic { rotate: -90deg; }
.ui-ewa__all summary:focus-visible { outline: 2px solid var(--ui-focus); outline-offset: 2px; }
.ui-ewa__all ul { display: grid; gap: 10px; margin: 0 0 20px; padding: 0; list-style: none; }
.ui-ewa__all li { position: relative; padding-left: 22px; font-size: 1rem; line-height: 1.45; color: var(--ui-ink-2); }
.ui-ewa__all li::before { content: ""; position: absolute; left: 0; top: .72em; width: 10px; height: 1px; background: var(--ui-gold-ink); }

/* 7. Terminy z mapą: lista miast w mapie jest filtrem (radio data-filter="city"), is-live dokłada ui-home.js.
   Telefon i tablet: 3 wiersze, "Pokaż jeszcze" jako wiersz listy, zamiast karty mapy linia miast. */
.ui-map__list { border: 0; margin: 0; padding: 0; min-width: 0; }
.ui-map__list label { position: relative; display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 44px; padding: 6px 0 6px 18px; border-top: 1px solid var(--ui-hair); font-size: var(--ui-fs-s); color: var(--ui-snow-2); cursor: pointer; transition: color var(--ui-t2); }
.ui-map__list label::before { content: ""; position: absolute; left: 0; top: 50%; width: 7px; height: 7px; margin-top: -3.5px; border-radius: 50%; border: 1px solid var(--ui-hair-2); transition: background-color var(--ui-t2), border-color var(--ui-t2); }
.ui-map__list input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.ui-map__list b { color: var(--ui-snow); font-weight: 600; font-variant-numeric: tabular-nums; }
.ui-map__list label:hover, .ui-map__list label:has(:checked) { color: var(--ui-snow); }
.ui-map__list label:has(:checked)::before { background: var(--ui-gold); border-color: var(--ui-gold); }
.ui-map__list label:has(:focus-visible) { outline: 2px solid var(--ui-gold); outline-offset: 2px; border-radius: 6px; }
.ui-map__lbl { transition: color var(--ui-t2), opacity var(--ui-t2); text-shadow: 0 0 2px var(--ui-noir), 0 0 4px var(--ui-noir), 0 0 8px var(--ui-noir), 0 0 12px var(--ui-noir); }
.ui-map__lbl.is-empty { opacity: .55; }
.ui-map__lbl.is-on { color: var(--ui-gold-hi); }
.ui-map__lbl--camp { transform: translate(11px, -50%); margin-top: 0; max-width: none; white-space: nowrap; line-height: 1.2; }
.ui-map.is-filtered .ui-map__lbl:not(.ui-map__lbl--camp):not(.is-on) { opacity: .4; }
.ui-map.is-filtered .il__city:not(.is-on) { opacity: .35; }
.ui-map .il__city { transition: opacity var(--ui-t2); }
.ui-map__cap { display: flex; align-items: center; gap: 8px; margin: -4px 0 0; font-size: var(--ui-fs-xs); color: var(--ui-snow-2); }
.ui-map__cap svg { flex: none; width: 12px; height: 12px; fill: none; stroke: var(--ui-gold); stroke-width: 1.25; stroke-linejoin: round; }
.ui-map__cap b { margin-right: 6px; color: var(--ui-gold); font-weight: 600; }
#ui-home-tl .ui-dr__main a { min-height: 44px; }
#ui-home-tl .ui-tl__list { grid-template-columns: minmax(0, 1fr); }
#ui-home-tl:not(.is-live) .ui-tl__bar, #ui-home-tl:not(.is-live) .ui-tl__bar > * { display: none; }
#ui-home-tl:not(.is-live) .ui-map__list label { padding-left: 0; cursor: default; }
#ui-home-tl:not(.is-live) .ui-map__list label::before { display: none; }
#ui-home-tl .ui-dr.is-full .ui-dp { opacity: 1; background: transparent; border-style: dashed; border-color: var(--ui-line-2); }
#ui-home-tl .ui-dr.is-full .ui-dp b { color: var(--ui-ink-2); }
#ui-home-tl .ui-dr.is-full .ui-dp small { color: var(--ui-gold-ink); }
#ui-home-tl .ui-seg__o.is-zero small, #ui-home-tl .ui-map__list label.is-zero b { opacity: .72; }
@container (max-width: 399px) {
	#ui-home-tl .ui-dr { grid-template-areas: "dp main main main" "dp st st st" "dp city days days" "foot foot foot foot"; }
	#ui-home-tl .ui-dr .ui-price { grid-area: foot; justify-self: start; }
	#ui-home-tl .ui-dr__act { grid-area: foot; justify-self: end; }
}
.ui-tl__exp { justify-content: space-between; align-items: center; gap: 12px; width: 100%; min-height: 56px; padding: 0 20px; border-radius: var(--ui-r); border: 1px dashed var(--ui-line-2); background: transparent; color: var(--ui-ink); font: inherit; font-size: var(--ui-fs-s); font-weight: 600; cursor: pointer; transition: background-color var(--ui-t2), border-color var(--ui-t2); }
.ui-tl__exp:hover { background: var(--ui-card); border-style: solid; }
.ui-tl__exp .ui-ic { width: 18px; height: 18px; color: var(--ui-gold-ink); transform: rotate(90deg); }
.ui-tl__cities { display: none; }
#terminy.ui-sec, #camp.ui-sec, #faq.ui-sec { padding-top: calc(var(--ui-sec) * .55); }
@media (max-width: 899px) {
	#ui-home-tl .ui-tl__more { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin-top: 12px; }
	#ui-home-tl .ui-tl__all { width: 100%; justify-content: center; }
	#ui-home-tl .ui-tl__note { padding-left: 0; }
	.ui-js #ui-home-tl[data-collapsed] .ui-tl__list .ui-dr:nth-child(4) { display: none; }
	#ui-home-tl .ui-map { display: none; }
	.ui-tl__cities { display: grid; gap: 10px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--ui-line); }
	.ui-tl__cities .ui-label { color: var(--ui-gold-ink); }
	.ui-tl__cities ul { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 0; padding: 0; list-style: none; font-size: var(--ui-fs-s); color: var(--ui-ink); }
	.ui-tl__cities li { display: inline-flex; align-items: baseline; gap: 6px; }
	.ui-tl__cities b { font-weight: 600; color: var(--ui-gold-ink); }
	.ui-tl__cities-camp { align-items: center !important; color: var(--ui-ink-2); }
	.ui-tl__cities-camp svg { width: 11px; height: 11px; fill: none; stroke: var(--ui-gold-ink); stroke-width: 1.25; stroke-linejoin: round; }
	/* Mapa i pasek 1:1 poniżej 900 px to jasne karty (te same reguły .ui-dark, przemapowane tokeny). */
	.ui-map.ui-dark, .ui-one.ui-dark {
		--ui-snow: var(--ui-ink); --ui-snow-2: var(--ui-ink-2); --ui-snow-3: var(--ui-ink-3);
		--ui-hair: var(--ui-line); --ui-hair-2: var(--ui-line-2);
		--ui-gold: var(--ui-gold-ink); --ui-gold-hi: var(--ui-gold-ink); --ui-noir: var(--ui-card);
		--ui-focus: var(--ui-gold-ink);
		color: var(--ui-ink); background: var(--ui-card); border: 1px solid var(--ui-line); box-shadow: var(--ui-sh-1);
	}
	.ui-map__lbl { text-shadow: 0 0 2px var(--ui-card), 0 0 4px var(--ui-card), 0 0 8px var(--ui-card); }
	.ui-map__lbl small { color: var(--ui-gold-ink); }
	/* v5: pas 1:1 bez zdjęcia, więc bez okna kadru nad tekstem. */
	.ui-one.ui-dark { padding: 22px 0; gap: 18px; }
	.ui-one.ui-dark > * { padding-inline: 20px; }
	.ui-one h3 { margin-top: 8px; }
}
@media (max-width: 599px) {
	.ui-map__cap { justify-content: center; }
	#ui-home-tl.is-live .ui-tl__main { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px; align-items: center; }
	#ui-home-tl.is-live .ui-tl__main > * { grid-column: 1 / -1; }
	#ui-home-tl.is-live .ui-tl__bar { display: contents; }
	#ui-home-tl .ui-tl__bar > .ui-seg {
		grid-column: 1 / -1; grid-row: 1; flex-wrap: nowrap; min-width: 0; overflow-x: auto; overscroll-behavior-x: contain;
		scroll-snap-type: x proximity; scrollbar-width: none; margin: 0 calc(-1 * var(--ui-g)) 8px; padding: 4px var(--ui-g); scroll-padding-inline: var(--ui-g);
	}
	#ui-home-tl .ui-tl__bar > .ui-seg::-webkit-scrollbar { display: none; }
	#ui-home-tl .ui-tl__bar .ui-seg__o { flex: none; scroll-snap-align: start; }
	#ui-home-tl .ui-tl__bar > .ui-switch { grid-column: 2; grid-row: 2; gap: 10px; font-size: var(--ui-fs-s); white-space: nowrap; }
	#ui-home-tl.is-live .ui-tl__n { grid-column: 1; grid-row: 2; }
	#ui-home-tl .ui-tl__n .ui-tl__dep { display: none; }
	#ui-home-tl .ui-tl__list { margin-top: 12px; }
	.ui-one.ui-dark { gap: 14px; }
}

/* 8. Znane twarze: kadry home-face-* ze wspólnym gradingiem, ziarno na kaflach, lead pod nagłówkiem (od 900 px). */
.ui-plate__glow--l { inset: -30% auto auto -10%; }
.ui-viewer__bar [data-vname], .ui-viewer__bar .ui-small { color: var(--ui-snow-2); }
.ui-face__cap .ui-face__n { grid-row: 1; align-self: center; }
#twarze .ui-face::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: url("img/grain.webp") 0 0 / 96px; opacity: .12; mix-blend-mode: overlay; }
#twarze .ui-face::after { background: linear-gradient(180deg, transparent 40%, rgba(11, 9, 7, .5) 66%, rgba(11, 9, 7, .97)); }
@media (min-width: 900px) {
	#twarze .ui-head--split { grid-template-columns: minmax(0, 1fr); row-gap: 20px; }
	#twarze .ui-head--split .ui-lead { justify-self: start; max-width: 36ch; }
	#twarze .ui-head--split h2 { max-width: 13em; }
}
@media (max-width: 899px) { .ui-face__cap small { min-height: 2.8em; min-height: 2lh; } }

/* 9. Opinie: oklaski na pełną szerokość okna (2:1, telefon 4:3 z wersji -m), duży cytat bez karty, obok dwie karty. */
.ui-home-fig--clap { margin: clamp(28px, 4vw, 56px) 0 clamp(28px, 4.4vw, 64px); }
/* Odbiór 2026-10-12: pas niższy (do 560 px), kadr od głów w dół; nowy kadr od x 0,452 źródła (osoba z lewej cała). */
.ui-home-fig--clap .ui-unveil { --ui-r-l: 0px; border-radius: 0; width: 100%; height: min(50vw, 84svh, 560px); --pos: 50% 0%; }
.ui-home-fig--clap .ui-cap { width: min(100% - 2 * var(--ui-g), var(--ui-max)); margin: 14px auto 0; }
#opinie .ui-bigq.ui-bigq--bare { padding: 0; background: none; border: 0; box-shadow: none; border-radius: 0; gap: 20px; align-content: start; }
#opinie .ui-bigq--bare .ui-bigq__mark { width: 36px; height: 36px; color: var(--ui-gold-ink); }
#opinie .ui-bigq--bare blockquote p { font-size: clamp(1.625rem, 1rem + 2.2vw, 3rem); line-height: 1.14; letter-spacing: -.03em; color: var(--ui-ink); }
@media (min-width: 1024px) {
	#opinie .ui-reviews--bare { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(40px, 5vw, 80px); }
	#opinie .ui-car { display: grid; grid-template-rows: 1fr auto; }
	#opinie .ui-car__track { grid-template-rows: 1fr 1fr; grid-auto-columns: 100%; row-gap: 14px; }
	#opinie .ui-rev { min-height: 0; gap: 12px; padding: 22px 24px; }
	#opinie .ui-rev blockquote { flex: 0 1 auto; }
}
@media (max-width: 719px) { .ui-home-fig--clap .ui-unveil { aspect-ratio: 4 / 3; height: auto; --pos: 50% 50%; } }
/* Odbiór 4: telefon zostaje przy 4:3 wersji -m (16:10 cięło czoła i głowy). */
@media (max-width: 599px) { .ui-home-fig--clap { margin-block: 20px 24px; } }

/* 10. Camp: kadr Folwarku z lewej, tekst i bilet w jednej kolumnie z prawej (co najmniej jedna kolumna odstępu od kadru,
   bilet nigdy na kadrze); telefon: kadr nad nagłówkiem. */
.ui-camp__more { margin-top: 22px; }
.ui-camp-t__chip { justify-self: start; }
.ui-camp--solo { grid-template-columns: minmax(0, 1fr); }
.ui-camp--fig { align-items: start; }
.ui-home-fig--camp .ui-unveil { aspect-ratio: 4 / 5; --pos: 50% 50%; }
.ui-camp-t .ui-camp-t__top { min-height: 0; padding-top: clamp(28px, 3vw, 40px); }
.ui-camp-t__h { max-width: 7.2em; font-size: clamp(2.25rem, 1.7rem + 2.2vw, 3.5rem); font-weight: 200; letter-spacing: -.04em; line-height: 1.02; color: var(--ui-snow); }
.ui-camp-t--next .ui-camp-t__bot { grid-template-columns: minmax(0, 1fr); justify-items: start; }
/* Odbiór 4: perforacja i wycięcia dokładnie na granicy górnej i dolnej części (przy 58% wysokości linia przecinała
   etykietę "Poprzednia edycja" na telefonie); górna część ma stałą minimalną wysokość, cięcie w tym samym miejscu. */
.ui-camp-t.ui-camp-t--next { --top-h: clamp(170px, 140px + 6vw, 236px); --cut-y: var(--top-h); }
.ui-camp-t--next .ui-camp-t__top { min-height: var(--top-h); }
.ui-camp-t__past { display: grid; gap: 3px; margin: 0; font-size: var(--ui-fs-xs); color: var(--ui-snow-2); line-height: 1.45; }
.ui-camp-t__past .ui-label { display: block; margin-bottom: 4px; color: var(--ui-gold); }
.ui-camp-t__past b { color: var(--ui-snow); font-size: .9375rem; font-weight: 600; }
.ui-camp-t .ui-camp-t__cta { background: var(--ui-snow); border-color: var(--ui-snow); color: var(--ui-noir); }
.ui-camp-t .ui-camp-t__cta:hover { background: var(--ui-gold-hi); border-color: var(--ui-gold-hi); color: var(--ui-noir); }
/* v6: kadr v6-h-camp (DSC01556, Ewa przytula uczestniczkę campu), bez przybliżania. */
@media (min-width: 1024px) {
	.ui-camp.ui-camp--fig { grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; row-gap: clamp(32px, 3vw, 48px); }
	.ui-camp--fig .ui-home-fig--camp { grid-column: 1 / span 5; grid-row: 1 / span 2; align-self: center; }
	.ui-camp--fig .ui-camp__txt, .ui-camp--fig > .ui-camp-t { grid-column: 7 / -1; align-self: start; }
	.ui-camp--fig .ui-camp__txt { grid-row: 1; }
	.ui-camp--fig > .ui-camp-t { grid-row: 2; }
}
@media (min-width: 1280px) {
	/* Kadr 4:5 (Ewa z uczestniczką) wyśrodkowany w dwóch wierszach tekstu z biletem. */
	.ui-camp--fig .ui-home-fig--camp { grid-column: 1 / span 6; }
	.ui-home-fig--camp .ui-unveil { aspect-ratio: 4 / 5; }
	.ui-camp--fig .ui-camp__txt, .ui-camp--fig > .ui-camp-t { grid-column: 8 / -1; }
}
@media (max-width: 1023px) { .ui-home-fig--camp { max-width: 560px; } }
@media (max-width: 719px) { .ui-home-fig--camp .ui-unveil { aspect-ratio: 1 / 1; --pos: 50% 50%; } } /* wersja -m 1:1 */
@media (max-width: 599px) {
	.ui-camp-t--next .ui-camp-t__bot { gap: 20px; }
	.ui-camp-t .ui-camp-t__cta { width: 100%; }
	#camp .ui-ticks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 14px; }
	#camp .ui-ticks li { align-items: start; border-bottom: 0; padding-block: 7px; }
	#camp .ui-ticks li > span { font-size: .9375rem; line-height: 1.35; }
}
@media (max-width: 479px) { .ui-camp-t .ui-camp-t__cta { padding-inline: 14px; gap: 8px; font-size: .9375rem; white-space: nowrap; } }
/* Odbiór 2026-10-12: punkty campu to zdania (atrament, nie szary podpis). Poniżej 360 px przycisk biletu mówi tylko
   "Powiadom mnie", reszta zostaje w nazwie dostępnej (jak ewardega_ui_termin_short_cta na terminie). */
#camp .ui-ticks li > span { color: var(--ui-ink); }
@media (max-width: 359px) { .ui-home-long { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; } }

/* 11. FAQ, newsletter, finał, stopka. */
.ui-method__head, .ui-faqs__head { margin-bottom: 28px; }
.ui-home-nl.ui-sec { padding-top: 0; }
.ui-home-nl .ui-coupon, .ui-home-nl .ui-coupon:hover { rotate: 0deg; }
/* Odbiór 3: okno ensō na głównej to gładkie koło (maska pędzla enso-disk zostawiała poszarpany ząb na górze kadru),
   pędzel i przerwa zostają tylko na złotym pierścieniu; suche włókna pędzla (.il__dry) bez cienkiego ogonka.
   Odsłona dalej przez mask-size z ui.css 22.11. Propozycja do fundamentu: to samo dla wszystkich finałów. */
.ewa-ui--home .ui-final__disk { -webkit-mask-image: radial-gradient(circle closest-side, #000 calc(75% - 1px), transparent 75%); mask-image: radial-gradient(circle closest-side, #000 calc(75% - 1px), transparent 75%); }
.ewa-ui--home .ui-final__ring .il__dry { display: none; }
/* Odbiór 4: finał bez kroków 01-03, więc bez sztywnej wysokości ekranu (pod treścią zostawało ok. 200 px pustej czerni). */
@media (min-width: 1024px) { .ewa-ui--home .ui-final__in--win { min-height: 0; padding-block: clamp(88px, 7.5vw, 120px) clamp(48px, 4vw, 64px); } }
/* Odsłona .ui-unveil: stan końcowy inset(0), żeby clip-path miał z czego przejść (propozycja do ui.css 22.4). */
.ui-main .ui-unveil.in { clip-path: inset(0 0 0 0 round var(--ui-r-l)); }
@media (max-width: 599px) {
	/* Długość strony na telefonie: ciaśniejszy rytm sekcji, kadr Ewy 1:1, osiągnięcia mniejszym stopniem. */
	.ui-main .ui-sec:not(.ui-sec--tight) { padding-block: 40px; }
	#terminy.ui-sec, #camp.ui-sec, #faq.ui-sec { padding-top: 28px; }
	.ui-ewa__win { aspect-ratio: 5 / 4; }
	/* v6: portret v6-h-ewa (4:5, twarz na 24 do 45% wysokości): okno 5:4 pokazuje 14 do 78% pliku, cała głowa nad przyciskiem filmu. */
	.ui-ewa__win img { object-position: 50% 40%; }
	.ui-ewa__facts { margin-top: 20px; }
	.ui-ewa__facts li { padding: 12px 0 14px; font-size: 1.375rem; line-height: 1.18; }
	/* Newsletter: bez biletu 100 zł (nagłówek mówi to samo); odbiór 4: oba zdania zostają. */
	.ui-home-nl .ui-coupon { display: none; }
	.ui-final .ui-steps { display: grid; width: max-content; max-width: 100%; margin-inline: auto; justify-items: start; gap: 0; text-align: left; }
	.ui-final .ui-steps li { display: grid; grid-template-columns: 22px auto; column-gap: 12px; align-items: center; padding-top: 0; }
	.ui-final .ui-steps li + li { padding-top: 28px; }
	.ui-final .ui-steps li + li::before { top: 6px; left: 10.5px; height: 16px; margin: 0; }
	.ui-final .ui-steps small { text-align: center; }
}
