/* ===========================================================================
   pz-artysci — moduł "Nasi Artyści" (porównywarka)
   Mobile-first. Wszystko scoped do .pz-artysci (poza .pz-lightbox).
   =========================================================================== */

/* Stabilna szerokość viewportu — bez tego layout skacze gdy scrollbar pojawia się
   i znika przy przełączaniu trybu (różne ilości kontentu między przedszkola/urodziny). */
html {
	scrollbar-gutter: stable;
}

.pz-artysci,
.pz-artysci * {
	box-sizing: border-box;
}

.pz-artysci {
	--pz-blue:        #0050E6;
	--pz-blue-700:    #1d4ed8;
	--pz-blue-800:    #1e40af;
	--pz-blue-900:    #1e3a8a;
	--pz-blue-50:     #eff6ff;
	--pz-blue-100:    #dbeafe;
	--pz-blue-200:    #bfdbfe;
	--pz-amber:       #f59e0b;
	--pz-amber-500:   #f59e0b;
	--pz-amber-600:   #d97706;
	--pz-amber-700:   #b45309;
	--pz-amber-900:   #78350f;
	--pz-amber-50:    #fffbeb;
	--pz-amber-100:   #fef3c7;
	--pz-amber-200:   #fde68a;
	--pz-amber-300:   #fcd34d;
	--pz-amber-400:   #fbbf24;
	--pz-green-500:   #22c55e;
	--pz-green-600:   #16a34a;
	--pz-green-700:   #15803d;
	--pz-green-200:   #bbf7d0;
	--pz-green-100:   #dcfce7;
	--pz-green-50:    #f0fdf4;
	--pz-gray-50:     #f9fafb;
	--pz-gray-100:    #f3f4f6;
	--pz-gray-200:    #e5e7eb;
	--pz-gray-300:    #d1d5db;
	--pz-gray-400:    #9ca3af;
	--pz-gray-500:    #6b7280;
	--pz-gray-600:    #4b5563;
	--pz-gray-700:    #374151;
	--pz-gray-800:    #1f2937;
	--pz-shadow:      0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -1px rgba(0,0,0,.06);
	--pz-shadow-lg:   0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -2px rgba(0,0,0,.05);

	/* Mobile: wybijamy się z kontenera Oxygenu — tło rozciągnięte na cały
	   viewport, bez zaokrągleń (#1). Wzór „full bleed" zakłada że parent jest
	   wycentrowany w viewporcie (typowy Oxygen container). Padding boczny zawężony
	   do 0.5rem — daje więcej miejsca na jednolinijkowe zasięg/wiek karty artysty. */
	width: auto;
	max-width: none;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding: 1rem max(.5rem, calc(50vw - 50%));
	border-radius: 0;
	font-family: inherit;
	color: var(--pz-gray-800);
	font-size: 16px;
	line-height: 1.5;
	background: transparent;
	transition: background-color .3s;
}

/* Tło sekcji — łagodne zabarwienie zgodne z trybem */
.pz-artysci[data-mode="przedszkola"] { background-color: var(--pz-blue-50); }
.pz-artysci[data-mode="urodziny"]    { background-color: var(--pz-amber-50); }

/* ---------- helpery widoczności wg trybu ---------- */
.pz-artysci[data-mode="przedszkola"] [data-mode-show="urodziny"],
.pz-artysci[data-mode="urodziny"]    [data-mode-show="przedszkola"] {
	display: none !important;
}
.is-hidden { display: none !important; }

/* ===========================================================================
   Header
   =========================================================================== */
.pz-artysci__header {
	text-align: center;
	margin-bottom: 1.25rem;
}
.pz-artysci__title {
	font-size: 1.875rem;
	font-weight: 800;
	color: var(--pz-blue-900);
	margin: 0 0 .5rem;
	letter-spacing: -0.025em;
}
.pz-artysci__subtitle {
	color: var(--pz-gray-600);
	margin: 0 0 .75rem;
	font-size: .9375rem;
}
.pz-artysci__rating {
	display: inline-flex;
	gap: .5rem;
	align-items: center;
	background: #fff;
	border: 1px solid var(--pz-gray-200);
	border-radius: 999px;
	padding: .5rem 1rem;
	box-shadow: 0 1px 2px rgba(0,0,0,.04);
	font-size: .875rem;
}
.pz-artysci__rating strong { color: var(--pz-gray-800); }
.pz-artysci__rating .pz-stars {
	color: var(--pz-amber-400);
	letter-spacing: -.05em;
	font-size: 1rem;
}

/* ===========================================================================
   Mode toggle
   =========================================================================== */
.pz-modetoggle {
	background: #fff;
	border-radius: 1rem;
	box-shadow: var(--pz-shadow);
	padding: .75rem 1rem;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .75rem;
	margin-bottom: .75rem;
}
.pz-modetoggle__label {
	font-size: .875rem;
	font-weight: 600;
	color: var(--pz-gray-400);
	transition: color .2s;
}
.pz-artysci[data-mode="przedszkola"] .pz-modetoggle__label--przedszkola { color: var(--pz-blue-700); }
.pz-artysci[data-mode="urodziny"]    .pz-modetoggle__label--urodziny    { color: var(--pz-amber-700); }

.pz-modetoggle__switch {
	width: 3.5rem;
	height: 1.75rem;
	border-radius: 999px;
	border: 0;
	background: var(--pz-blue);
	position: relative;
	cursor: pointer;
	transition: background-color .3s;
	flex-shrink: 0;
	padding: 0;
}
.pz-artysci[data-mode="urodziny"] .pz-modetoggle__switch { background: var(--pz-amber-500); }
.pz-modetoggle__knob {
	position: absolute;
	top: .125rem;
	left: .125rem;
	width: 1.5rem;
	height: 1.5rem;
	background: #fff;
	border-radius: 50%;
	box-shadow: 0 2px 4px rgba(0,0,0,.2);
	transition: transform .3s;
}
.pz-artysci[data-mode="urodziny"] .pz-modetoggle__knob { transform: translateX(1.75rem); }

/* Banner */
.pz-banner {
	border-radius: .75rem;
	padding: .875rem 1rem;
	text-align: center;
	font-weight: 700;
	font-size: 1.125rem;
	margin-bottom: 1rem;
	box-shadow: 0 1px 2px rgba(0,0,0,.05);
	border: 2px solid;
}
.pz-banner--przedszkola { background: var(--pz-blue-100); color: var(--pz-blue-900); border-color: var(--pz-blue-200); }
.pz-banner--urodziny    { background: var(--pz-amber-100); color: var(--pz-amber-900); border-color: var(--pz-amber-200); }

.pz-artysci__info {
	font-size: .8125rem;
	color: var(--pz-gray-500);
	text-align: center;
	margin: 0 0 1rem;
	padding: 0 .5rem;
	line-height: 1.6;
}

/* ===========================================================================
   Categories
   =========================================================================== */
.pz-artysci__categories {
	display: flex;
	flex-direction: column;
	gap: .75rem;
}
.pz-category {
	background: #fff;
	border-radius: 1rem;
	box-shadow: var(--pz-shadow-lg);
	overflow: hidden;
}
.pz-category__toggle {
	width: 100%;
	background: var(--pz-blue-700);
	color: #fff;
	border: 0;
	padding: 1rem 1.25rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 1.125rem;
	font-weight: 600;
	cursor: pointer;
	transition: background-color .2s;
	text-align: left;
}
.pz-category__toggle:hover { background: var(--pz-blue-800); }
.pz-category__content { display: none; }
.pz-category[data-open="1"] .pz-category__content { display: flex; flex-direction: column; }

/* Tryb urodziny: niedostępni artyści lądują na końcu kategorii (#9). */
.pz-artysci[data-mode="urodziny"] .pz-artist[data-urodziny-dostepny="0"] { order: 1; }
.pz-chevron { transition: transform .2s; flex-shrink: 0; }
.pz-category[data-open="1"] .pz-category__toggle .pz-chevron { transform: rotate(180deg); }

/* ===========================================================================
   Artist card
   =========================================================================== */
.pz-artist {
	border-top: 1px solid var(--pz-gray-100);
	transition: opacity .2s;
	scroll-margin-top: 5rem; /* nagłówek Oxygen nie zasłaniał głowy karty po scrollu (#5) */
}
.pz-artist:first-child { border-top: 0; }

.pz-artist__head {
	width: 100%;
	background: transparent;
	border: 0;
	padding: .75rem .75rem;
	display: flex;
	align-items: flex-start;
	gap: .625rem;
	cursor: pointer;
	transition: background-color .2s;
	text-align: left;
}
.pz-artist__head:hover { background: var(--pz-blue-50); }
.pz-artist__avatar {
	width: 6rem;
	height: 6rem;
	border-radius: 50%;
	overflow: hidden;
	flex-shrink: 0;
	border: 2px solid var(--pz-blue-200);
	background: linear-gradient(135deg, var(--pz-blue), var(--pz-blue-700));
	display: flex;
	align-items: center;
	justify-content: center;
}
.pz-artist__avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.pz-artist__avatar-fallback {
	font-size: 2.5rem;
}
.pz-artist__head-body {
	flex: 1;
	min-width: 0;
}
.pz-artist__pseudonim {
	margin: 0 0 .25rem;
	font-size: 1rem;
	font-weight: 600;
	color: var(--pz-gray-800);
}
.pz-artist__meta {
	margin: .125rem 0;
	font-size: .75rem;
	color: var(--pz-gray-500);
	display: flex;
	flex-wrap: nowrap;
	gap: .25rem;
	align-items: center;
	white-space: nowrap;
	overflow: hidden;
	min-width: 0;
}
.pz-artist__meta > span { min-width: 0; }
/* Zasięg (dojazd) i wiek — pojedyncza linia z elipsą jeśli za długi. Mniejszy font
   na mobile żeby zmieściło się „Żłobki, przedszkola, klasy 1–8" bez przycinania. */
.pz-artist__zasieg,
.pz-artist__wiek {
	margin: .125rem 0;
	font-size: .75rem;
	color: var(--pz-gray-500);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.pz-pin { color: var(--pz-gray-500); flex-shrink: 0; }
.pz-sep { color: var(--pz-gray-300); }
.pz-artist__price-from { font-weight: 600; color: var(--pz-blue-700); }
.pz-artysci[data-mode="urodziny"] .pz-artist__price-from { color: var(--pz-amber-700); }
.pz-artist__wyroznik {
	margin: .25rem 0 0;
	font-size: .75rem;
	font-style: italic;
	color: var(--pz-blue-700);
}
.pz-artysci[data-mode="urodziny"] .pz-artist__wyroznik { color: var(--pz-amber-700); }

.pz-artist__head .pz-chevron {
	color: var(--pz-gray-400);
	margin-left: auto;
	margin-top: .25rem;
}
.pz-artist[data-open="1"] .pz-artist__head .pz-chevron { transform: rotate(180deg); }

/* Wyszarzenie nieaktywnych w trybie urodziny */
/* Wyszarzenie tylko na głowie karty (avatar + tekst po prawej). Reroute box zostaje czytelny. */
.pz-artysci[data-mode="urodziny"] .pz-artist[data-urodziny-dostepny="0"] .pz-artist__head { opacity: .6; }
.pz-artysci[data-mode="urodziny"] .pz-artist[data-urodziny-dostepny="0"] .pz-artist__head {
	cursor: not-allowed;
}
.pz-artysci[data-mode="urodziny"] .pz-artist[data-urodziny-dostepny="0"] .pz-artist__head .pz-chevron {
	display: none;
}

/* Artist body — domyślnie zwinięty. Animacja przez grid-template-rows 0fr → 1fr
   (Chrome 117+/Firefox 121+; graceful degradation dla starszych: pokazuje się bez animacji). */
.pz-artist__body {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows .3s ease;
	background: linear-gradient(to bottom, var(--pz-blue-50), #fff);
}
.pz-artist__body-inner {
	overflow: hidden;
	min-height: 0;
	padding: 0 .75rem;
	/* Padding-bottom animowany razem z gridem, żeby zwijanie/rozwijanie
	   nie miało instant layout shiftu 20px. */
	transition: padding-bottom .3s ease;
}
.pz-artysci[data-mode="urodziny"] .pz-artist__body {
	background: linear-gradient(to bottom, var(--pz-amber-50), #fff);
}
.pz-artist[data-open="1"] .pz-artist__body { grid-template-rows: 1fr; }
.pz-artist[data-open="1"] .pz-artist__body-inner { padding-bottom: 1.25rem; }

/* Instant collapse — wyłącza transition na zwijanej karcie tak żeby layout shift
   zaszedł w jednej klatce (browser scroll-anchoring wtedy działa). */
.pz-artist.is-collapsing-instant .pz-artist__body,
.pz-artist.is-collapsing-instant .pz-artist__body-inner {
	transition: none !important;
}

/* Scroll anchoring — mówimy browserowi że listę kategorii traktuje jako scroll anchor.
   Domyślne 'auto' powinno działać, ale niektóre style Oxygenu mogą je wyłączać. */
.pz-artysci__categories { overflow-anchor: auto; }
/* W trybie urodziny niedostępni nigdy nie rozwijają body */
.pz-artysci[data-mode="urodziny"] .pz-artist[data-urodziny-dostepny="0"][data-open="1"] .pz-artist__body { grid-template-rows: 0fr; }

/* ===========================================================================
   Sekcje wewnątrz karty
   =========================================================================== */
.pz-section { margin-bottom: 1rem; }
.pz-section__title {
	margin: 0 0 .5rem;
	font-size: .9375rem;
	font-weight: 600;
	color: var(--pz-blue-900);
	display: flex;
	align-items: center;
	gap: .5rem;
}
.pz-prose {
	color: var(--pz-gray-700);
	font-size: .875rem;
	line-height: 1.6;
}
.pz-prose p { margin: 0 0 .5rem; }
.pz-prose p:last-child { margin-bottom: 0; }

/* Opinia */
.pz-opinia {
	margin: 0 0 1rem;
	background: var(--pz-amber-50);
	border-left: 4px solid var(--pz-amber-400);
	border-radius: 0 .5rem .5rem 0;
	padding: .75rem;
}
.pz-opinia__stars { color: var(--pz-amber-400); font-size: .875rem; letter-spacing: -.05em; margin-bottom: .25rem; }
.pz-opinia__tekst {
	margin: 0;
	font-size: .875rem;
	font-style: italic;
	color: var(--pz-gray-700);
	line-height: 1.5;
}
.pz-opinia__autor {
	margin-top: .25rem;
	font-size: .75rem;
	color: var(--pz-gray-500);
}

/* Video */
.pz-section--video { margin-bottom: 1rem; }
.pz-video {
	display: block;
	width: 100%;
	position: relative;
	padding: 0;
	border: 0;
	background: #000;
	border-radius: .75rem;
	overflow: hidden;
	box-shadow: var(--pz-shadow);
	cursor: pointer;
	padding-bottom: 56.25%; /* 16:9 default */
}
/* Miniatura zawsze 16:9 (uniform layout). YouTube serwuje tylko poziome miniaturki,
   więc wpychanie ich w pionową ramkę i tak by je przycinało. Orientacja 9:16 wpływa
   tylko na lightbox poniżej. */
.pz-video img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.pz-video::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,.2);
	transition: background-color .2s;
}
.pz-video:hover::after { background: rgba(0,0,0,.3); }
.pz-video__playbtn {
	position: absolute;
	top: 50%; left: 50%;
	transform: translate(-50%, -50%);
	width: 3.5rem; height: 3.5rem;
	border-radius: 50%;
	background: rgba(255,255,255,.9);
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 8px 24px rgba(0,0,0,.4);
	transition: transform .2s, background-color .2s;
	z-index: 2;
}
.pz-video:hover .pz-video__playbtn { background: #fff; transform: translate(-50%, -50%) scale(1.1); }
.pz-video__triangle {
	margin-left: 6px;
	width: 0; height: 0;
	border-left: 18px solid var(--pz-blue-700);
	border-top: 11px solid transparent;
	border-bottom: 11px solid transparent;
}
.pz-video-placeholder {
	background: var(--pz-gray-100);
	border: 2px dashed var(--pz-gray-300);
	border-radius: .75rem;
	padding: 1.5rem;
	text-align: center;
	color: var(--pz-gray-500);
	font-size: .875rem;
}

/* ===========================================================================
   Cennik — warianty (kafelki czas/cena)
   =========================================================================== */
.pz-weekend {
	margin-bottom: .75rem;
	background: #fff;
	border-radius: .5rem;
	padding: .25rem;
	display: flex;
	gap: .25rem;
	box-shadow: 0 1px 2px rgba(0,0,0,.05);
}
.pz-weekend__btn {
	flex: 1;
	background: transparent;
	border: 0;
	padding: .5rem .75rem;
	border-radius: .375rem;
	font-size: .75rem;
	font-weight: 600;
	color: var(--pz-gray-600);
	cursor: pointer;
	transition: background-color .2s, color .2s;
}
.pz-weekend__btn:hover { background: var(--pz-gray-100); }
.pz-weekend__btn.is-active {
	background: var(--pz-blue);
	color: #fff;
}
.pz-weekend__btn[data-weekend="1"].is-active { background: var(--pz-amber-500); }
.pz-weekend__plus { color: var(--pz-amber-600); }
.pz-weekend__btn[data-weekend="1"].is-active .pz-weekend__plus { color: var(--pz-amber-100); }

.pz-variants {
	display: grid;
	gap: .5rem;
}
.pz-variants--three { grid-template-columns: repeat(3, 1fr); }
.pz-variants--one   { grid-template-columns: 1fr; }

.pz-variant {
	position: relative;
	background: #fff;
	border: 1px solid var(--pz-blue-100);
	border-radius: .5rem;
	padding: .5rem;
	text-align: center;
	cursor: pointer;
	transition: border-color .15s, background-color .15s, transform .05s;
	display: flex;
	flex-direction: column;
	gap: .25rem;
}
.pz-variant:hover { border-color: var(--pz-blue-200); }
.pz-variant:active { transform: scale(.98); }
.pz-variant.is-selected {
	background: var(--pz-blue);
	border-color: var(--pz-blue-700);
	box-shadow: 0 0 0 2px var(--pz-blue-100);
	color: #fff;
}
.pz-variant--urodziny { border-color: var(--pz-amber-100); }
.pz-variant--urodziny:hover { border-color: var(--pz-amber-200); }
.pz-variant--urodziny.is-selected {
	background: var(--pz-amber-500);
	border-color: var(--pz-amber-700);
	box-shadow: 0 0 0 2px var(--pz-amber-200);
}

.pz-variant__czas {
	font-size: .75rem;
	color: var(--pz-gray-600);
}
.pz-variant.is-selected .pz-variant__czas { color: var(--pz-blue-100); }
.pz-variant--urodziny.is-selected .pz-variant__czas { color: var(--pz-amber-100); }
.pz-variant__cena {
	font-weight: 700;
	font-size: .875rem;
	color: var(--pz-blue-700);
}
.pz-variant--urodziny .pz-variant__cena { color: var(--pz-amber-700); }
.pz-variant.is-selected .pz-variant__cena { color: #fff; }

.pz-variant__best {
	position: absolute;
	top: -.5rem;
	left: 50%;
	transform: translateX(-50%);
	background: var(--pz-amber-400);
	color: var(--pz-amber-900);
	font-size: .5625rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .025em;
	padding: .125rem .375rem;
	border-radius: 999px;
	white-space: nowrap;
	display: flex;
	align-items: center;
	gap: .25rem;
	box-shadow: 0 1px 2px rgba(0,0,0,.1);
}

.pz-variant-dopisek {
	font-size: .75rem;
	color: var(--pz-gray-600);
	font-style: italic;
	text-align: center;
	margin: .5rem 0 0;
}

/* ===========================================================================
   Suwak liczby dzieci + kalkulator
   =========================================================================== */
.pz-slider {
	margin-top: 1rem;
	background: var(--pz-blue-50);
	border-radius: .5rem;
	padding: 1rem;
	border: 1px solid var(--pz-blue-200);
}
.pz-slider__header {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin-bottom: .75rem;
	color: var(--pz-blue-700);
	font-size: .875rem;
	font-weight: 600;
}
.pz-slider__input {
	width: 100%;
	height: .5rem;
	background: var(--pz-blue-200);
	border-radius: 999px;
	appearance: none;
	cursor: pointer;
	outline: 0;
}
.pz-slider__input::-webkit-slider-thumb {
	appearance: none;
	width: 1.5rem; height: 1.5rem;
	background: var(--pz-blue);
	border-radius: 50%;
	cursor: pointer;
	box-shadow: 0 2px 4px rgba(0,0,0,.2);
}
.pz-slider__input::-moz-range-thumb {
	width: 1.5rem; height: 1.5rem;
	background: var(--pz-blue);
	border-radius: 50%;
	border: 0;
	cursor: pointer;
	box-shadow: 0 2px 4px rgba(0,0,0,.2);
}
.pz-slider__labels {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: .25rem;
	font-size: .75rem;
	color: var(--pz-gray-600);
}
.pz-slider__value {
	font-weight: 700;
	color: var(--pz-blue-700);
	font-size: 1rem;
}

.pz-note {
	font-size: .75rem;
	margin-top: .5rem;
	padding: .5rem .75rem;
	border-radius: .375rem;
	line-height: 1.5;
}
.pz-note--many { background: var(--pz-blue-100); color: var(--pz-blue-800); }
.pz-note--huge {
	background: var(--pz-amber-50);
	border-left: 4px solid var(--pz-amber-400);
	color: var(--pz-amber-900);
}

.pz-calc {
	margin-top: .75rem;
	background: #fff;
	border-radius: .5rem;
	padding: .75rem;
	border: 2px solid var(--pz-blue);
	box-shadow: var(--pz-shadow);
}
.pz-calc.is-weekend { border-color: var(--pz-amber-500); }
.pz-calc__title {
	font-size: .9375rem;
	font-weight: 600;
	margin-bottom: .5rem;
	color: var(--pz-blue-900);
	line-height: 1.35;
}
.pz-calc.is-weekend .pz-calc__title { color: var(--pz-amber-900); }
.pz-calc__weekend-suffix { color: var(--pz-amber-700); font-weight: 700; }
.pz-calc__line {
	font-size: .75rem;
	display: flex;
	justify-content: space-between;
	margin: .25rem 0;
	color: var(--pz-gray-600);
}
.pz-calc__line--discount { color: var(--pz-green-600); }
.pz-calc__line--total {
	border-top: 1px solid var(--pz-blue-200);
	padding-top: .375rem;
	margin-top: .375rem;
}
.pz-calc.is-weekend .pz-calc__line--total { border-color: var(--pz-amber-200); }
.pz-calc__line--total strong:first-child { color: var(--pz-blue-900); font-size: .875rem; }
.pz-calc.is-weekend .pz-calc__line--total strong:first-child { color: var(--pz-amber-900); }
.pz-calc__total { color: var(--pz-blue-700); font-size: 1rem; }
.pz-calc.is-weekend .pz-calc__total { color: var(--pz-amber-700); }

.pz-dojazd {
	font-size: .75rem;
	color: var(--pz-gray-600);
	font-style: italic;
	margin-top: .5rem;
}

/* Stepper liczby pokazów (#17) */
.pz-stepper-shows {
	margin-top: .5rem;
	background: #fff;
	border: 1px solid var(--pz-blue-200);
	border-radius: .5rem;
	padding: .5rem .75rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
}
.pz-stepper-shows__info { display: flex; flex-direction: column; gap: .125rem; }
.pz-stepper-shows__label { font-size: .8125rem; font-weight: 600; color: var(--pz-blue-900); }
.pz-stepper-shows__discount { font-size: .75rem; color: var(--pz-green-600); }
.pz-stepper-shows__max-note {
	font-size: .75rem;
	color: var(--pz-gray-600);
	margin-top: .375rem;
	line-height: 1.5;
}

/* Suwak dojazdu (#15) */
.pz-dojazd-slider {
	margin-top: .75rem;
	padding: .5rem 0;
}
.pz-dojazd-slider__header {
	display: flex;
	align-items: center;
	gap: .375rem;
	margin-bottom: .375rem;
	color: var(--pz-blue-700);
}
.pz-artysci[data-mode="urodziny"] .pz-dojazd-slider__header { color: var(--pz-amber-700); }
.pz-dojazd-slider__title {
	font-size: .8125rem;
	font-weight: 600;
	color: var(--pz-blue-900);
}
.pz-artysci[data-mode="urodziny"] .pz-dojazd-slider__title { color: var(--pz-amber-900); }
.pz-dojazd-slider__input {
	width: 100%;
	height: .5rem;
	background: var(--pz-blue-200);
	border-radius: .5rem;
	appearance: none;
	cursor: pointer;
}
.pz-artysci[data-mode="urodziny"] .pz-dojazd-slider__input { background: var(--pz-amber-200); }
.pz-dojazd-slider__labels {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: .6875rem;
	color: var(--pz-gray-600);
	margin-top: .375rem;
	gap: .5rem;
}
.pz-dojazd-slider__value {
	font-weight: 700;
	color: var(--pz-blue-700);
	font-size: .75rem;
	text-align: center;
	flex: 1;
}
.pz-artysci[data-mode="urodziny"] .pz-dojazd-slider__value { color: var(--pz-amber-700); }

/* Linia dojazdu w kalkulatorze (przedszkola) */
.pz-calc__line--dojazd { color: var(--pz-gray-600); }
.pz-calc__line--dojazd.is-zero .pz-calc__dojazd-amount { color: var(--pz-gray-500); }

/* Podsumowanie urodzin z dojazdem */
.pz-summary--urodziny__razem {
	background: #fff;
	border: 1px solid var(--pz-amber-200);
	border-radius: .5rem;
	padding: .5rem .75rem;
	margin-top: .5rem;
	font-size: .8125rem;
	color: var(--pz-gray-700);
}
.pz-summary--urodziny__razem .pz-summary__line { border: 0; padding: 0; }
.pz-summary--urodziny__razem .pz-summary__line--total {
	border-top: 1px solid var(--pz-amber-200);
	padding-top: .375rem;
	margin-top: .375rem;
}
.pz-summary--urodziny__razem .pz-summary__razem { color: var(--pz-amber-700); font-size: 1rem; }

.pz-summary {
	width: 100%;
	margin-top: .75rem;
	background: #fff;
	border-radius: .5rem;
	padding: .75rem;
	border: 2px solid var(--pz-amber-500);
	box-shadow: var(--pz-shadow);
}
.pz-summary__title { font-size: .9375rem; font-weight: 600; color: var(--pz-amber-900); margin-bottom: .5rem; line-height: 1.35; }
.pz-summary__line {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: .875rem;
	margin: .25rem 0;
	color: var(--pz-gray-700);
}
.pz-summary__line--total {
	border-top: 1px solid var(--pz-amber-200);
	padding-top: .375rem;
	margin-top: .5rem;
}
.pz-summary__label { color: var(--pz-gray-600); }
.pz-summary__total { color: var(--pz-gray-800); font-weight: 600; }
.pz-summary__razem { color: var(--pz-amber-700); font-size: 1.25rem; }
.pz-summary__line--total strong:first-child { color: var(--pz-amber-900); font-size: 1rem; }

/* ===========================================================================
   Warsztaty (Profesorek)
   =========================================================================== */
.pz-warsztaty {
	margin-top: 1rem;
	background: var(--pz-green-50);
	border: 2px solid var(--pz-green-200);
	border-radius: .5rem;
	padding: .75rem;
}
.pz-warsztaty__header {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin-bottom: .5rem;
	color: var(--pz-green-700);
	font-size: .875rem;
}
.pz-warsztaty__icon { font-size: 1rem; }
.pz-warsztaty__opis {
	font-size: .75rem;
	color: var(--pz-gray-700);
	line-height: 1.6;
	margin: 0 0 .75rem;
}
.pz-warsztaty__box {
	background: #fff;
	border-radius: .5rem;
	padding: .75rem;
	border: 1px solid var(--pz-green-200);
}
.pz-warsztaty__row,
.pz-warsztaty__total-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: .875rem;
}
.pz-warsztaty__total-row {
	padding-top: .5rem;
	margin-top: .5rem;
	border-top: 1px solid var(--pz-green-200);
	font-size: .75rem;
	color: var(--pz-gray-600);
}
.pz-warsztaty__total { color: var(--pz-green-700); font-size: 1rem; }
.pz-warsztaty__weekend { color: var(--pz-amber-700); }
.pz-warsztaty__minimum {
	font-size: .6875rem;
	color: var(--pz-gray-500);
	font-style: italic;
	margin-top: .5rem;
	line-height: 1.5;
}
.pz-warsztaty__note {
	font-size: .75rem;
	background: var(--pz-amber-50);
	border-left: 4px solid var(--pz-amber-400);
	padding: .5rem .75rem;
	margin-top: .5rem;
	color: var(--pz-amber-900);
	border-radius: 0 .375rem .375rem 0;
	line-height: 1.5;
}

/* Stepper */
.pz-stepper {
	display: inline-flex;
	align-items: center;
	background: var(--pz-green-50);
	border: 1px solid var(--pz-green-200);
	border-radius: .5rem;
	padding: .25rem;
	box-shadow: 0 1px 2px rgba(0,0,0,.05);
}
.pz-stepper button {
	width: 2.25rem; height: 2.25rem;
	border: 0;
	background: transparent;
	color: var(--pz-green-700);
	font-size: 1.25rem;
	font-weight: 700;
	border-radius: .375rem;
	cursor: pointer;
	transition: background-color .15s, color .15s;
}
.pz-stepper button:hover { background: var(--pz-green-100); }
.pz-stepper button:disabled {
	color: var(--pz-gray-300);
	cursor: not-allowed;
}
.pz-stepper button:disabled:hover { background: transparent; }
.pz-stepper__value {
	min-width: 2rem;
	text-align: center;
	font-weight: 700;
	color: var(--pz-green-700);
	font-size: 1.125rem;
	padding: 0 .5rem;
}

/* ===========================================================================
   Rerouting
   =========================================================================== */
.pz-rerouting {
	margin: 0 1.25rem 1rem;
	background: var(--pz-amber-50);
	border-left: 4px solid var(--pz-amber-400);
	border-radius: 0 .375rem .375rem 0;
	padding: .75rem;
}
.pz-rerouting__tekst {
	font-size: .75rem;
	color: var(--pz-gray-700);
	margin: 0 0 .5rem;
	line-height: 1.6;
}
.pz-rerouting__buttons {
	display: flex;
	gap: .5rem;
	flex-wrap: wrap;
}
.pz-rerouting__btn {
	background: #fff;
	border: 1px solid var(--pz-amber-300);
	color: var(--pz-amber-700);
	font-size: .75rem;
	font-weight: 600;
	padding: .25rem .75rem;
	border-radius: 999px;
	cursor: pointer;
	transition: background-color .15s;
}
.pz-rerouting__btn:hover { background: var(--pz-amber-100); }

/* ===========================================================================
   CTA
   =========================================================================== */
.pz-cta {
	display: block;
	width: 100%;
	background: linear-gradient(to right, var(--pz-green-500), var(--pz-green-600));
	color: #fff;
	text-align: center;
	font-weight: 600;
	padding: .75rem 1rem;
	border: 0;
	border-radius: .75rem;
	text-decoration: none;
	box-shadow: var(--pz-shadow-lg);
	transition: filter .15s;
	margin-top: 1rem;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.pz-cta:hover { filter: brightness(1.08); color: #fff; }
.pz-cta:focus { outline: 3px solid var(--pz-green-200); outline-offset: 2px; }

.pz-cta-secondary {
	display: block;
	text-align: center;
	margin-top: .5rem;
	font-size: .8125rem;
	color: var(--pz-gray-600);
	text-decoration: underline;
}
.pz-cta-secondary:hover { color: var(--pz-blue-700); }

/* ===========================================================================
   Footer CTA (#19) — inline link zamiast buttona
   =========================================================================== */
.pz-footer-cta {
	margin-top: 1.5rem;
	text-align: center;
	border-radius: .75rem;
	padding: 1rem 1.25rem;
	background: var(--pz-blue-50);
	border: 1px solid var(--pz-blue-200);
	font-size: .9375rem;
	color: var(--pz-gray-700);
	line-height: 1.6;
}
.pz-artysci[data-mode="urodziny"] .pz-footer-cta {
	background: var(--pz-amber-50);
	border-color: var(--pz-amber-200);
}

/* Underlined inline link „Napisz do nas" w treści (#19) */
.pz-link-napisz {
	color: var(--pz-blue-700);
	text-decoration: underline;
	text-underline-offset: 2px;
	font-weight: 600;
	cursor: pointer;
}
.pz-link-napisz:hover { color: var(--pz-blue-800); text-decoration-thickness: 2px; }
.pz-artysci[data-mode="urodziny"] .pz-link-napisz { color: var(--pz-amber-700); }
.pz-artysci[data-mode="urodziny"] .pz-link-napisz:hover { color: var(--pz-amber-800); }

/* ===========================================================================
   Lightbox YouTube
   =========================================================================== */
.pz-lightbox {
	position: fixed;
	inset: 0;
	z-index: 99999;
	background: rgba(0,0,0,.85);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
}
.pz-lightbox[hidden] { display: none; }
.pz-lightbox__close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	width: 2.5rem; height: 2.5rem;
	border-radius: 50%;
	background: rgba(255,255,255,.9);
	border: 0;
	color: var(--pz-gray-800);
	font-size: 1.5rem;
	font-weight: 300;
	cursor: pointer;
	box-shadow: var(--pz-shadow-lg);
	z-index: 2;
}
.pz-lightbox__close:hover { background: #fff; }
.pz-lightbox__inner {
	width: 100%;
	max-width: 48rem;
}
.pz-lightbox__iframe-wrap {
	position: relative;
	border-radius: .75rem;
	overflow: hidden;
	box-shadow: 0 25px 50px -12px rgba(0,0,0,.5);
	background: #000;
	width: 100%;
	aspect-ratio: 16 / 9;
	max-height: calc(100vh - 4rem);
}
.pz-lightbox__iframe-wrap[data-orientation="9:16"] {
	aspect-ratio: 9 / 16;
	width: auto;
	height: min(85vh, 720px);
	max-height: none;
	margin: 0 auto;
}
.pz-lightbox__iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* ===========================================================================
   Pola rezerwacji w formularzu kontaktowym (Fluent Forms).
   Domyślnie ukryte; pokazują się tylko gdy ktoś przyszedł z porównywarki
   (JS dodaje klasę .pz-rezerwacja-mode do <form> po kliknięciu „Zarezerwuj").
   Klient w Fluent Forms ustawia te 3 pola z Container Class = "pz-rezerwacja-field".
   =========================================================================== */
.pz-rezerwacja-field {
	display: none !important;
}
form.pz-rezerwacja-mode .pz-rezerwacja-field {
	display: block !important;
}

/* ===========================================================================
   Empty state
   =========================================================================== */
.pz-empty {
	text-align: center;
	color: var(--pz-gray-500);
	padding: 2rem;
}
.pz-cennik__empty {
	background: var(--pz-amber-50);
	border: 1px solid var(--pz-amber-200);
	border-radius: .5rem;
	padding: .75rem;
	font-size: .875rem;
	color: var(--pz-amber-700);
	text-align: center;
	font-style: italic;
}

/* ===========================================================================
   Responsive — desktop (większy układ)
   =========================================================================== */
@media (min-width: 768px) {
	.pz-artysci {
		padding: 1.5rem;
	}
	.pz-artysci__title { font-size: 2.25rem; }
}

@media (min-width: 1024px) {
	.pz-artysci {
		/* Desktop: wycentrowane w kontenerze 1160px, zaokrąglone rogi */
		max-width: 1160px;
		margin-left: auto;
		margin-right: auto;
		padding: 2rem;
		border-radius: 1.5rem;
	}

	/* #12 — większe czcionki w głowach kart na desktop */
	.pz-artist__avatar { width: 8rem; height: 8rem; }
	.pz-artist__pseudonim { font-size: 1.25rem; }
	.pz-artist__meta,
	.pz-artist__zasieg,
	.pz-artist__wiek { font-size: 1rem; }
	.pz-artist__wyroznik { font-size: .875rem; }
	.pz-artist__head { gap: 1.25rem; padding: 1.25rem 1.5rem; }

	/* #3 — konfigurator (suwak + kalkulator) 2-kolumnowy: suwak/stepper/dojazd po lewej, kalkulator po prawej */
	.pz-slider {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 1.25rem;
		align-items: stretch;
	}
	.pz-slider__right { display: flex; }
	.pz-slider__right .pz-calc {
		flex: 1;
		margin-top: 0;
		display: flex;
		flex-direction: column;
		justify-content: center;
	}

	/* #3 — opis+opinia (lewa) obok wideo (prawa) na desktop */
	.pz-artist__overview {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 1.5rem;
		align-items: start;
	}

	/* Czytelniejszy tytuł kalkulatora i linie cen na desktop (więcej miejsca w prawej kolumnie) */
	.pz-calc__title { font-size: 1.0625rem; margin-bottom: .75rem; }
	.pz-calc__line { font-size: .875rem; }
	.pz-calc__line--total strong:first-child { font-size: 1rem; }
	.pz-calc__total { font-size: 1.25rem; }
}

/* ===========================================================================
   Popup rezerwacji (#18)
   =========================================================================== */
.pz-popup {
	position: fixed;
	inset: 0;
	z-index: 99998;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
}
.pz-popup[hidden] { display: none; }
.pz-popup__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .55);
	backdrop-filter: blur(2px);
	cursor: pointer;
}
.pz-popup__modal {
	position: relative;
	background: #fff;
	border-radius: 1rem;
	box-shadow: 0 25px 50px -12px rgba(0,0,0,.25);
	max-width: 56rem;
	width: 100%;
	max-height: 92vh;
	overflow-y: auto;
	padding: 1.25rem;
	color: var(--pz-gray-800);
}
.pz-popup__close {
	position: absolute;
	top: .75rem;
	right: .75rem;
	width: 2.5rem;
	height: 2.5rem;
	background: var(--pz-gray-100);
	border: 0;
	border-radius: 50%;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1;
	color: var(--pz-gray-700);
	cursor: pointer;
	transition: background-color .15s;
}
.pz-popup__close:hover { background: var(--pz-gray-200); }
.pz-popup__title {
	margin: 0 2.5rem 1rem 0;
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--pz-blue-900);
	line-height: 1.3;
}
.pz-artysci[data-mode="urodziny"] .pz-popup__title { color: var(--pz-amber-900); }

.pz-popup__grid {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.pz-popup__summary {
	background: var(--pz-blue-50);
	border: 1px solid var(--pz-blue-200);
	border-radius: .75rem;
	padding: 1rem;
}
.pz-artysci[data-mode="urodziny"] .pz-popup__summary {
	background: var(--pz-amber-50);
	border-color: var(--pz-amber-200);
}
.pz-popup__summary-title {
	margin: 0 0 .75rem;
	font-size: .8125rem;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--pz-blue-700);
	font-weight: 700;
}
.pz-artysci[data-mode="urodziny"] .pz-popup__summary-title { color: var(--pz-amber-700); }

.pz-popup__summary-list {
	margin: 0;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: .375rem .75rem;
	font-size: .875rem;
}
.pz-popup__summary-list dt {
	color: var(--pz-gray-600);
	font-weight: 500;
}
.pz-popup__summary-list dd {
	margin: 0;
	color: var(--pz-gray-800);
	font-weight: 600;
}
.pz-popup__summary-list dd.is-discount { color: var(--pz-green-600); }

.pz-popup__summary-razem {
	margin-top: .75rem;
	padding-top: .75rem;
	border-top: 1px solid var(--pz-blue-200);
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	font-size: .9375rem;
	color: var(--pz-gray-800);
}
.pz-artysci[data-mode="urodziny"] .pz-popup__summary-razem { border-color: var(--pz-amber-200); }
.pz-popup__summary-razem strong {
	font-size: 1.25rem;
	color: var(--pz-blue-700);
}
.pz-artysci[data-mode="urodziny"] .pz-popup__summary-razem strong { color: var(--pz-amber-700); }
.pz-popup__summary-note {
	margin: .5rem 0 0;
	font-size: .75rem;
	color: var(--pz-gray-500);
	font-style: italic;
}

.pz-popup__form .frm-fluent-form .ff-el-input--label label {
	font-size: .875rem;
	font-weight: 600;
}

/* Desktop: summary po lewej, formularz po prawej */
@media (min-width: 768px) {
	.pz-popup__modal { padding: 2rem; }
	.pz-popup__title { font-size: 1.5rem; }
	.pz-popup__grid {
		flex-direction: row;
		gap: 1.5rem;
	}
	.pz-popup__summary {
		flex: 0 0 18rem;
		align-self: flex-start;
		position: sticky;
		top: 0;
	}
	.pz-popup__form { flex: 1; min-width: 0; }
}

/* Popup „Napisz do nas" (#19) — wariant bez summary panelu, węższy modal */
.pz-popup__modal--napisz { max-width: 32rem; }
.pz-popup__lead {
	margin: 0 0 1rem;
	font-size: .9375rem;
	color: var(--pz-gray-700);
	line-height: 1.5;
}
.pz-popup--napisz .pz-popup__grid { display: block; }

/* Batch 6 — mniejsza czcionka GDPR w popupach */
.pz-popup .ff_gdpr_field + span,
.pz-popup label:has(.ff_gdpr_field),
.pz-popup .ff-el-form-check-label {
	font-size: .75rem;
	line-height: 1.4;
	color: var(--pz-gray-600);
}

/* Batch 6 — notka 4+ pokazów (identyczny styl jak pz-note--huge) */
.pz-note--stepper-max {
	background: var(--pz-amber-50);
	border-left: 4px solid var(--pz-amber-400);
	color: var(--pz-amber-900);
	font-size: .75rem;
	margin-top: .5rem;
	padding: .5rem .75rem;
	border-radius: .375rem;
	line-height: 1.5;
}

/* Odstęp między summary a przyciskiem submit gdy summary jest w formie (mobile relocated) */
.pz-popup__form .pz-popup__summary { margin-bottom: 1.25rem; margin-top: .5rem; }

/* ===========================================================================
   Cennik na single page CPT artysta ([pz_cennik])
   Reuse Oxygenowych klas .pricelist-* z universal.css. Tu tylko rzeczy
   scoped do .pz-cennik: toggle, przełączanie trybów, drobne dopisania.
   =========================================================================== */

/* Toggle Przedszkola/Urodziny — duże, wyraziste, ikona OBOK tekstu */
/* Wrapper toggle + hint powyżej */
.pz-cennik-toggle-wrap {
	max-width: 48rem;
	margin: 0 auto 2rem;
	padding: 0 1rem;
}
.pz-cennik-toggle-hint {
	text-align: center;
	font-size: 1rem;
	color: #152767;
	font-weight: 600;
	margin-bottom: .75rem;
}
.pz-cennik-toggle {
	display: flex;
	gap: .5rem;
	background: #eef1f5;
	border-radius: 1.5rem;
	padding: .5rem;
	position: relative;
}
.pz-cennik-toggle__btn {
	flex: 1 1 0;
	min-height: 3.75rem;
	background: transparent;
	border: 2px dashed #b0b3b8;
	border-radius: 1rem;
	cursor: pointer;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: .75rem;
	padding: .875rem 1rem;
	font-family: inherit;
	color: #374151;
	font-weight: 700;
	transition: transform .15s, box-shadow .15s, background-color .2s, border-color .2s, color .2s;
	position: relative;
}
/* Chevron „>" na nieaktywnym — wizualnie sugeruje przełącznik */
.pz-cennik-toggle__btn:not(.is-active)::after {
	content: '';
	position: absolute;
	right: .875rem;
	top: 50%;
	width: .625rem;
	height: .625rem;
	border-right: 3px solid #6b7280;
	border-top: 3px solid #6b7280;
	transform: translateY(-50%) rotate(45deg);
	opacity: .55;
}
.pz-cennik-toggle__btn:not(.is-active):hover {
	background: #fff;
	border-color: #0050E6;
	color: #0050E6;
	transform: translateY(-1px);
	box-shadow: 0 4px 10px rgba(0, 0, 0, .08);
}
.pz-cennik-toggle__btn:not(.is-active):hover::after { border-color: #0050E6; opacity: 1; }
.pz-cennik-toggle__btn[data-mode="urodziny"]:not(.is-active):hover {
	border-color: #f59e0b;
	color: #b45309;
}
.pz-cennik-toggle__btn[data-mode="urodziny"]:not(.is-active):hover::after { border-color: #b45309; }
.pz-cennik-toggle__icon { font-size: 2rem; line-height: 1; flex-shrink: 0; }
.pz-cennik-toggle__label { font-size: 1.25rem; font-weight: 700; text-align: left; line-height: 1.2; }

/* Aktywny stan — przedszkola (niebieski, wyraźny cień) */
.pz-cennik-toggle__btn[data-mode="przedszkola"].is-active {
	background: #0050E6;
	border: 2px solid #0050E6;
	color: #fff;
	box-shadow: 0 6px 16px rgba(0, 80, 230, .35);
	transform: translateY(-1px);
}
/* Aktywny stan — urodziny (żółto-pomarańczowy) */
.pz-cennik-toggle__btn[data-mode="urodziny"].is-active {
	background: #f59e0b;
	border: 2px solid #f59e0b;
	color: #152767;
	box-shadow: 0 6px 16px rgba(245, 158, 11, .4);
	transform: translateY(-1px);
}

/* Przełączanie trybów: pokazuj tylko elementy z data-mode-show matching data-mode */
.pz-cennik[data-mode="przedszkola"] [data-mode-show="urodziny"],
.pz-cennik[data-mode="urodziny"]    [data-mode-show="przedszkola"] {
	display: none !important;
}

/* Drobne domknięcia inline dla .pz-cennik — żeby SVG time/dojazd renderowały się poprawnie
   jeśli theme CSS ich nie stylizuje (fallback do rozmiaru z universal.css). */
.pz-cennik .pricelist-col-time img { width: 20px; height: 20px; }
.pz-cennik .pricelist-drive img { width: 40px; height: auto; }

/* Opis dodatkowy (wciśnięty między czasem trwania a ceną, tą samą czcionką) */
.pz-cennik .pricelist-col-time-text--extra {
	margin-top: .25rem;
	font-style: italic;
	color: inherit;
	opacity: .85;
	max-width: 90%;
	text-align: center;
	line-height: 1.3;
}

/* Mobile — toggle 2 kolumny, mniejsze fonty, ikona nad tekstem (w row się nie mieści) */
@media (max-width: 600px) {
	.pz-cennik-toggle-wrap { padding: 0 .5rem; }
	.pz-cennik-toggle-hint { font-size: .9375rem; margin-bottom: .625rem; }
	.pz-cennik-toggle { gap: .5rem; padding: .5rem; }
	.pz-cennik-toggle__btn {
		min-height: 3.75rem;
		padding: .75rem 1.5rem .75rem .625rem;
		flex-direction: row;
		gap: .5rem;
	}
	.pz-cennik-toggle__btn:not(.is-active)::after { right: .625rem; width: .5rem; height: .5rem; border-width: 2px; }
	.pz-cennik-toggle__icon { font-size: 1.5rem; }
	.pz-cennik-toggle__label { font-size: 1rem; text-align: center; line-height: 1.1; }

	/* Karta cennika ultra-kompaktowo — 3 karty mają mieścić się w viewport.
	   Layout jednorzędowy: [tytuł/czas] | [cena] | [ZAMÓW] — wszystko w jednej linii. */
	.pz-cennik .pricelist-col {
		padding: 1.125rem 1rem !important;
		gap: .75rem !important;
		flex-direction: row !important;
		align-items: center !important;
		justify-content: space-between !important;
		flex-wrap: nowrap !important;
		border-width: 3px !important;
	}
	.pz-cennik .pricelist-col-title-time {
		flex-direction: column !important;
		align-items: flex-start !important;
		gap: .125rem !important;
		flex: 1 1 auto !important;
		min-width: 0 !important;
	}
	.pz-cennik .pricelist-col-title { font-size: 1.375rem !important; margin: 0 !important; line-height: 1.1 !important; }
	.pz-cennik .pricelist-col-time { gap: .375rem !important; }
	.pz-cennik .pricelist-col-time-text { font-size: .9375rem !important; }
	.pz-cennik .pricelist-col-time img { width: 14px !important; height: 14px !important; }
	.pz-cennik .pricelist-col-time-text--extra {
		font-size: .8125rem !important;
		width: 100% !important;
		margin-top: 0 !important;
		line-height: 1.2 !important;
		text-align: left !important;
	}
	.pz-cennik .pricelist-col-price {
		font-size: 1.625rem !important;
		margin: 0 !important;
		flex: 0 0 auto !important;
		line-height: 1 !important;
		white-space: nowrap !important;
	}
	.pz-cennik .pricelist-col-button {
		padding: .625rem 1rem !important;
		font-size: .9375rem !important;
		min-width: 0 !important;
		margin: 0 !important;
		flex: 0 0 auto !important;
		text-align: center !important;
		white-space: nowrap !important;
	}
	/* Na mobile nazwa MINI/STANDARD/EXTRA w buttonie duplikuje tytuł karty — ukrywamy */
	.pz-cennik .pricelist-col-button .pz-cta-name { display: none; }
	/* Dopisek (label absolute) — mały żeby nie dominował */
	.pz-cennik .pricelist-label { font-size: .75rem !important; padding: .25rem .625rem !important; }
	.pz-cennik .pricelist-label__best { padding-right: 10px !important; }
	.pz-cennik .pricelist-label__best::after {
		width: 24px !important;
		height: 36px !important;
		background-size: contain !important;
		background-repeat: no-repeat !important;
		right: -10px !important;
	}
	/* Ciasny gap między kartami, mały margines od góry */
	.pz-cennik .pricelist-cols { gap: 20px 0 !important; margin-top: 20px !important; }
	/* Nagłówek trybu i dojazd */
	.pz-cennik .pricelist-row-heading { font-size: 20px !important; margin-bottom: .5rem !important; }
	.pz-cennik .lp-about-person-heading {
		font-size: 28px !important;
		line-height: 1.2 !important;
		padding: 0 .5rem !important;
		margin-top: 1.5rem !important;
		margin-bottom: 1.25rem !important;
		background: transparent !important;
	}
	.pz-cennik .lp-pricelist-dis-title { font-size: 20px !important; }
	.pz-cennik .pricelist-drive img { width: 24px !important; }
	.pz-cennik .pz-cennik-section-opis { font-size: .875rem !important; }
	.pz-cennik .pz-cennik-info { font-size: .8125rem !important; }
}

/* Małe telefony (iPhone SE / std mobile) — dokręcamy padding, ale nadal czytelnie */
@media (max-width: 420px) {
	.pz-cennik .pricelist-col { padding: .875rem .625rem !important; gap: .5rem !important; }
	.pz-cennik .pricelist-col-title { font-size: 1.125rem !important; }
	.pz-cennik .pricelist-col-time-text { font-size: .8125rem !important; }
	.pz-cennik .pricelist-col-price { font-size: 1.375rem !important; }
	.pz-cennik .pricelist-col-button { padding: .5rem .75rem !important; font-size: .8125rem !important; }
	.pz-cennik .pz-cennik-toggle__label { font-size: .8125rem !important; }
	/* nagłówek „Cennik pokazów..." zostaje 28px także tutaj */
}

/* Label karty (dopisek) — pozycjonowany absolutnie środkiem na górnej krawędzi karty.
   Bez tego (Oxygen ma margin-top: -34px) długie 2-liniowe dopiski rozjeżdżają layout. */
.pz-cennik .pricelist-col { position: relative; }
.pz-cennik .pricelist-label {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
	margin: 0;
	/* width max-content = label ma naturalną szerokość tekstu (1 linia gdy mieści).
	   max-width 95% karty = dłuższy tekst łamie się na 2 linie w karcie. */
	width: max-content;
	max-width: 95%;
	z-index: 1;
	text-align: center;
	line-height: 1.3;
}
/* Best-seller label — usuwamy extra padding-right z Oxygena (53px na selera).
   Seler nadal wystaje w prawy dolny róg jako ozdoba, ale content ma pełen padding. */
.pz-cennik .pricelist-label__best { padding-right: 20px !important; }
/* Pietruszka „selera" wystaje w prawo poza label (jak w Oxygen -18px klienta) */
.pz-cennik .pricelist-label__best::after { right: -18px !important; }

/* Wymuszamy 3 równe kolumny. Oxygen ma minmax(350px, 1fr) !important w
   universal.css — musimy nadpisać z !important + minmax(0, 1fr) (dowolna
   minimalna szerokość, żeby na węższych kontenerach karty zawsze mieściły
   się w 3 kolumnach zamiast rozjeżdżać się do 2+1). Mobile → 1 kolumna. */
.pz-cennik .pricelist-cols {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 250px)) !important;
	align-items: stretch !important;
	justify-content: center !important;
	gap: 20px 20px !important;
	margin-top: 50px !important;
}
/* Tablet: 3 kolumny robią się za wąskie → 1 kolumna wycentrowana, bez marginesu górnego. */
@media (max-width: 900px) {
	.pz-cennik .pricelist-cols {
		grid-template-columns: minmax(0, 22rem) !important;
		justify-content: center !important;
		max-width: 22rem;
		margin: 0 auto !important;
	}
}

/* Karty w rzędzie muszą mieć tę samą wysokość (grid stretch) — button zawsze u dołu */
.pz-cennik .pricelist-col {
	display: flex;
	flex-direction: column;
}
.pz-cennik .pricelist-col-button { margin-top: auto; cursor: pointer; }

.pz-cennik .ct-section-inner-wrap {
	padding: 0;
}
/* Sekcja: klip poziomego overflowu (długi nagłówek na wąskim viewport nie może rozpychać body) */
.pz-cennik { max-width: 100%; overflow-x: hidden; box-sizing: border-box; }

.pz-cennik-info, .pz-cennik-drive {
	text-align: center;
}

/* Opis sekcji pod nagłówkiem (opcjonalny) */
.pz-cennik .pz-cennik-section-opis {
	max-width: 42rem;
	margin: .5rem auto 1rem;
	text-align: center;
	color: #4b5563;
	line-height: 1.6;
	font-size: 1rem;
}

/* Notka weekendowa (auto gdy weekend_mnoznik > 1, np. Profesorek) */
.pz-cennik .pz-cennik-weekend {
	max-width: 42rem;
	margin: .5rem auto 1rem;
	text-align: center;
	color: #152767;
	font-weight: 600;
	font-size: .9375rem;
}

/* Sekcja warsztatów — jedna karta wycentrowana (nie 3 kolumny) */
.pz-cennik .pz-cennik-cols--warsztaty,
.pz-cennik .pz-cennik-cols--1 {
	grid-template-columns: minmax(0, 22rem) !important;
	justify-content: center !important;
	max-width: 22rem;
	margin: 0 auto;
}
/* 2 karty (np. Błażej gdyby miał 2 warianty) — obok siebie, wycentrowane */
.pz-cennik .pz-cennik-cols--2 {
	grid-template-columns: repeat(2, minmax(0, 22rem)) !important;
	justify-content: center !important;
	max-width: 46rem;
	margin: 0 auto;
}
.pz-cennik .pz-cennik-warsztaty-note {
	font-size: .875rem;
	color: #6b7280;
	text-align: center;
	margin-top: -.5rem;
	margin-bottom: .5rem;
	font-style: italic;
}

/* Mobile — mniejszy font weekend i opis */
@media (max-width: 600px) {
	.pz-cennik .pz-cennik-section-opis { font-size: .875rem !important; padding: 0 .5rem; }
	.pz-cennik .pz-cennik-weekend { font-size: .8125rem !important; }
}

/* Kompaktowe rozmieszczenie sekcji cennika — Oxygen ma gap:60px, redukujemy */
.pz-cennik .pricelist-row {
	gap: 1.25rem !important;
	margin-bottom: 2rem !important;
}
.pz-cennik .lp-about-person-heading { margin-bottom: 1.5rem !important; }
.pz-cennik .pricelist-row-heading {
	margin: 0 !important;
	padding: 0 !important;
}
.pz-cennik .pz-cennik-section-opis {
	margin: 0 auto !important;
	max-width: 48rem;
	font-size: 1rem;
}
.pz-cennik .pz-cennik-info {
	margin: 0 auto !important;
	max-width: 48rem;
	text-align: center;
	color: #4b5563;
	font-size: .9375rem;
	line-height: 1.5;
}
.pz-cennik .pz-cennik-weekend {
	margin: 0 auto !important;
}
.pz-cennik .pricelist-drive {
	gap: .5rem !important;
	margin-bottom: 1.5rem !important;
	margin-top: .5rem !important;
}
.pz-cennik .pricelist-drive img { margin-bottom: 0 !important; }

/* Toggle blisko nagłówka głównego */
.pz-cennik-toggle-wrap { margin-top: 0 !important; margin-bottom: 1.5rem !important; }
.pz-cennik-toggle { margin: 0 !important; }
