/*
 * Strona obozu (single product): hero, grupy, program, hotel, bezpieczeństwo,
 * cennik, formularz zapisu, sticky CTA.
 *
 * Tylko zmienne z tokens.css. Zero !important, zero zaokrągleń.
 * Wspólne klocki (.mk-wrap, .mk-btn, .mk-eyebrow, .mk-sekcja) są tu
 * zawężone do .mk-camp, żeby nie wchodzić w drogę base.css.
 */

/* =====================================================================
 * 0. Wspólne klocki strony obozu
 * ================================================================== */

.mk-camp {
	background: var(--mk-bg-dark);
	color: var(--mk-ink-light);
	font-family: var(--mk-font-body);
	font-size: var(--mk-fs-body);
	line-height: var(--mk-lh-body);
}

.mk-camp *,
.mk-camp *::before,
.mk-camp *::after {
	box-sizing: border-box;
}

.mk-camp .mk-wrap {
	width: 100%;
	max-width: var(--mk-wrap-max);
	margin: 0 auto;
	padding: 0 var(--mk-gutter-desktop);
}

.mk-camp .mk-sekcja {
	position: relative;
	padding: var(--mk-section-pad) 0;
	overflow: hidden;
}

.mk-camp .mk-sekcja--dark {
	background: var(--mk-bg-dark);
	color: var(--mk-ink-light);
	--mk-ink: var(--mk-ink-light);
	--mk-ink-dim: var(--mk-ink-dim-on-dark);
	--mk-ink-mute: var(--mk-ink-mute-on-dark);
	--mk-line: var(--mk-line-on-dark);
	--mk-panel: var(--mk-glass-dark);
}

.mk-camp .mk-sekcja--light {
	background: var(--mk-bg-light);
	color: var(--mk-ink-dark);
	--mk-ink: var(--mk-ink-dark);
	--mk-ink-dim: var(--mk-ink-dim-on-light);
	--mk-ink-mute: var(--mk-ink-mute-on-light);
	--mk-line: var(--mk-line-on-light);
	--mk-panel: var(--mk-chip-bg);
}

.mk-camp .mk-sekcja__naglowek {
	max-width: 760px;
	margin-bottom: 48px;
}

.mk-camp .mk-sekcja__tytul {
	margin: 12px 0 0;
	font-family: var(--mk-font-display);
	font-weight: 400;
	font-size: var(--mk-fs-h2);
	line-height: .95;
	letter-spacing: -.005em;
	text-transform: uppercase;
	color: var(--mk-ink);
}

.mk-camp .mk-sekcja__lead {
	margin: 20px 0 0;
	max-width: 620px;
	font-size: var(--mk-fs-lead);
	color: var(--mk-ink-dim);
}

.mk-camp .mk-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	font-size: var(--mk-fs-eyebrow);
	font-weight: 700;
	letter-spacing: var(--mk-ls-eyebrow);
	text-transform: uppercase;
	color: var(--mk-accent);
}

.mk-camp .mk-sekcja--light .mk-eyebrow {
	/* Żółty tekst na białym jest zakazany: na jasnym eyebrow jest ciemny, żółta zostaje kreska. */
	color: var(--mk-ink-dark);
}

.mk-camp .mk-eyebrow__kreska {
	display: inline-block;
	width: 32px;
	height: 2px;
	background: var(--mk-accent);
}

.mk-camp h1,
.mk-camp h2,
.mk-camp h3,
.mk-camp h4,
.mk-camp p,
.mk-camp ul,
.mk-camp ol,
.mk-camp dl,
.mk-camp dd,
.mk-camp figure {
	margin: 0;
	padding: 0;
}

.mk-camp ul,
.mk-camp ol {
	list-style: none;
}

.mk-camp a {
	color: inherit;
}

.mk-camp :focus-visible,
.mk-sticky :focus-visible {
	outline: 2px solid var(--mk-accent);
	outline-offset: 3px;
}

/* Przycisk */
.mk-camp .mk-btn,
.mk-sticky .mk-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 56px;
	padding: 0 32px;
	border: 2px solid var(--mk-accent);
	border-radius: var(--mk-radius);
	background: transparent;
	color: var(--mk-ink-light);
	font-family: var(--mk-font-body);
	font-size: 14px;
	font-weight: 800;
	letter-spacing: var(--mk-ls-btn);
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: background var(--mk-dur) var(--mk-ease-out), color var(--mk-dur) var(--mk-ease-out), transform var(--mk-dur) var(--mk-ease-out), box-shadow var(--mk-dur) var(--mk-ease-out);
}

.mk-camp .mk-btn--zolty,
.mk-sticky .mk-btn--zolty {
	background: var(--mk-accent);
	color: var(--mk-ink-dark); /* tekst na żółtym zawsze ciemny */
}

.mk-camp .mk-btn--zolty:hover,
.mk-sticky .mk-btn--zolty:hover {
	background: var(--mk-accent-dark);
	border-color: var(--mk-accent-dark);
	box-shadow: var(--mk-shadow-yellow);
	transform: translateY(-2px);
}

.mk-camp .mk-btn:disabled,
.mk-camp .mk-btn--czeka {
	opacity: .6;
	cursor: wait;
	transform: none;
	box-shadow: none;
}

/* Lista z żółtymi ptaszkami */
.mk-camp .mk-lista-ptaszki li {
	position: relative;
	padding-left: 22px;
	margin-bottom: 6px;
}

.mk-camp .mk-lista-ptaszki li::before {
	content: '';
	position: absolute;
	left: 0;
	top: .55em;
	width: 10px;
	height: 6px;
	border-left: 2px solid var(--mk-accent);
	border-bottom: 2px solid var(--mk-accent);
	transform: rotate(-45deg);
}

/* Znacznik brakującej treści: ma kłuć w oczy w podglądzie, nie ma prawa wyjść na produkcję. */
.mk-camp .mk-brak,
.mk-camp [data-mk-brak] {
	display: inline-block;
	padding: 2px 8px;
	border: 1px dashed var(--mk-accent);
	background: var(--mk-bignum-color);
	color: var(--mk-ink);
	font-size: var(--mk-fs-small);
	font-weight: 600;
	line-height: 1.5;
}

/* Sygnatura marki: żółte narożniki */
.mk-camp .mk-narozniki {
	position: relative;
}

.mk-camp .mk-narozniki::before,
.mk-camp .mk-narozniki::after {
	content: '';
	position: absolute;
	width: var(--mk-corner-size);
	height: var(--mk-corner-size);
	z-index: 3;
	pointer-events: none;
}

.mk-camp .mk-narozniki::before {
	top: -1px;
	left: -1px;
	border-top: var(--mk-corner-width) solid var(--mk-accent);
	border-left: var(--mk-corner-width) solid var(--mk-accent);
}

.mk-camp .mk-narozniki::after {
	bottom: -1px;
	right: -1px;
	border-bottom: var(--mk-corner-width) solid var(--mk-accent);
	border-right: var(--mk-corner-width) solid var(--mk-accent);
}

/* Komunikaty Woo nad stroną (błędy walidacji formularza) */
.mk-camp .mk-camp__komunikaty:empty {
	display: none;
}

.mk-camp .mk-camp__komunikaty {
	position: relative;
	z-index: 5;
	max-width: var(--mk-wrap-max);
	margin: 0 auto;
	padding: 16px var(--mk-gutter-desktop) 0;
}

.mk-camp .mk-camp__komunikaty .woocommerce-error,
.mk-camp .mk-camp__komunikaty .woocommerce-message,
.mk-camp .mk-camp__komunikaty .woocommerce-info {
	margin: 0 0 8px;
	padding: 14px 18px;
	border-left: 4px solid var(--mk-accent);
	background: var(--mk-glass-dark);
	color: var(--mk-ink-light);
	list-style: none;
}

/* Okruszki */
.mk-camp .mk-camp__okruchy {
	background: var(--mk-bg-dark);
	border-bottom: 1px solid var(--mk-line-on-dark);
}

.mk-camp .mk-okruchy {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	padding: 14px 0;
	font-size: var(--mk-fs-small);
	color: var(--mk-ink-mute-on-dark);
}

.mk-camp .mk-okruchy a {
	color: var(--mk-ink-dim-on-dark);
	text-decoration: none;
}

.mk-camp .mk-okruchy a:hover {
	color: var(--mk-ink-light);
}

.mk-camp .mk-okruchy__sep {
	color: var(--mk-accent);
}

/* =====================================================================
 * 1. Hero
 * ================================================================== */

.mk-camp .mk-hero-camp {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: clamp(560px, 92vh, 920px);
	padding: 140px 0 72px;
	overflow: hidden;
	background: var(--mk-bg-dark);
	color: var(--mk-ink-light);
}

.mk-camp .mk-hero-camp__tlo {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.mk-camp .mk-hero-camp__foto,
.mk-camp .mk-hero-camp__wideo {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.mk-camp .mk-hero-camp__cien {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(
			to top,
			var(--mk-bg-dark) 0%,
			color-mix(in srgb, var(--mk-bg-dark) 72%, transparent) 42%,
			color-mix(in srgb, var(--mk-bg-dark) 30%, transparent) 100%
		);
}

.mk-camp .mk-hero-camp__numer {
	position: absolute;
	right: -.04em;
	top: 4%;
	font-family: var(--mk-font-display);
	font-size: clamp(240px, 38vw, 560px);
	line-height: 1;
	letter-spacing: -.05em;
	color: var(--mk-bignum-color);
	user-select: none;
}

.mk-camp .mk-hero-camp__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 48px 64px;
	align-items: end;
}

.mk-camp .mk-hero-camp__eyebrow {
	grid-column: 1 / -1;
}

.mk-camp .mk-hero-camp__tytul {
	grid-column: 1 / -1;
	font-family: var(--mk-font-display);
	font-weight: 400;
	font-size: var(--mk-fs-h1);
	line-height: var(--mk-lh-display);
	letter-spacing: var(--mk-ls-display);
	text-transform: uppercase;
	max-width: 12ch;
}

.mk-camp .mk-hero-camp__fakty {
	display: grid;
	grid-template-columns: repeat(3, auto);
	gap: 24px 40px;
	grid-column: 1 / 2;
	padding-top: 28px;
	border-top: 1px solid var(--mk-line-on-dark);
}

.mk-camp .mk-hero-camp__fakt {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.mk-camp .mk-hero-camp__etykieta {
	font-size: var(--mk-fs-eyebrow);
	font-weight: 700;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--mk-ink-mute-on-dark);
}

.mk-camp .mk-hero-camp__wartosc {
	font-size: 18px;
	font-weight: 700;
}

.mk-camp .mk-hero-camp__wartosc--cena {
	font-family: var(--mk-font-display);
	font-size: 28px;
	font-weight: 400;
	letter-spacing: -.02em;
	color: var(--mk-accent);
}

.mk-camp .mk-hero-camp__lead {
	grid-column: 2 / 3;
	grid-row: 3;
	font-size: var(--mk-fs-lead);
	color: var(--mk-ink-dim-on-dark);
}

.mk-camp .mk-hero-camp__lead p + p {
	margin-top: 12px;
}

.mk-camp .mk-hero-camp__akcje {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 28px;
}

.mk-camp .mk-hero-camp__nota {
	font-size: var(--mk-fs-small);
	color: var(--mk-ink-dim-on-dark);
}

/* Wejście hero */
.mk-camp .mk-hero-camp__eyebrow,
.mk-camp .mk-hero-camp__tytul,
.mk-camp .mk-hero-camp__fakty,
.mk-camp .mk-hero-camp__lead,
.mk-camp .mk-hero-camp__akcje {
	animation: mkCampReveal var(--mk-dur-reveal) var(--mk-ease-out) both;
}

.mk-camp .mk-hero-camp__tytul { animation-delay: .08s; }
.mk-camp .mk-hero-camp__fakty { animation-delay: .18s; }
.mk-camp .mk-hero-camp__lead { animation-delay: .26s; }
.mk-camp .mk-hero-camp__akcje { animation-delay: .34s; }

@keyframes mkCampReveal {
	from { opacity: 0; transform: translateY(24px); }
	to { opacity: 1; transform: translateY(0); }
}

/* =====================================================================
 * 2. Grupy: ELITE / ROOKIE / OPEN 18+
 * ================================================================== */

.mk-camp .mk-grupy__lista {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	background: var(--mk-line-on-light);
	border: 1px solid var(--mk-line-on-light);
}

.mk-camp .mk-grupy__karta {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding: 40px 32px 32px;
	background: var(--mk-bg-light);
	transition: background var(--mk-dur) var(--mk-ease-out);
}

.mk-camp .mk-grupy__karta::before {
	content: '';
	position: absolute;
	top: -1px;
	left: -1px;
	width: var(--mk-corner-size);
	height: var(--mk-corner-size);
	border-top: var(--mk-corner-width) solid var(--mk-accent);
	border-left: var(--mk-corner-width) solid var(--mk-accent);
	opacity: 0;
	transition: opacity var(--mk-dur) var(--mk-ease-out);
}

.mk-camp .mk-grupy__karta:hover::before,
.mk-camp .mk-grupy__karta:focus-within::before {
	opacity: 1;
}

.mk-camp .mk-grupy__karta--elite {
	background: var(--mk-bg-cream);
}

.mk-camp .mk-grupy__nazwa {
	font-family: var(--mk-font-display);
	font-weight: 400;
	font-size: var(--mk-fs-stat);
	line-height: .95;
	letter-spacing: -.01em;
	text-transform: uppercase;
}

.mk-camp .mk-grupy__dla-kogo {
	min-height: 3em;
	color: var(--mk-ink-dim-on-light);
}

.mk-camp .mk-grupy__dane dt {
	margin: 12px 0 8px;
	font-size: var(--mk-fs-eyebrow);
	font-weight: 700;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--mk-ink-mute-on-light);
}

.mk-camp .mk-grupy__dane dd {
	font-weight: 600;
}

.mk-camp .mk-grupy__cta {
	margin-top: auto;
	padding-top: 20px;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: var(--mk-ls-btn);
	text-transform: uppercase;
	text-decoration: none;
	background-image: linear-gradient(transparent 62%, var(--mk-accent) 62%);
	background-repeat: no-repeat;
	background-size: 0% 100%;
	transition: background-size var(--mk-dur-marker) var(--mk-ease-out);
}

.mk-camp .mk-grupy__cta:hover,
.mk-camp .mk-grupy__cta:focus-visible {
	background-size: 100% 100%;
}

.mk-camp .mk-grupy__decyzja {
	margin-top: 24px;
	max-width: 760px;
}

/* =====================================================================
 * 3. Program
 * ================================================================== */

.mk-camp .mk-program__uklad {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 64px;
	align-items: start;
}

.mk-camp .mk-program__bloki {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1px;
	background: var(--mk-line-on-dark);
	border: 1px solid var(--mk-line-on-dark);
}

.mk-camp .mk-program__blok {
	position: relative;
	padding: 32px 28px 28px;
	background: var(--mk-bg-dark);
	overflow: hidden;
}

.mk-camp .mk-program__blok:last-child:nth-child(odd) {
	grid-column: 1 / -1;
}

.mk-camp .mk-program__numer {
	position: absolute;
	right: 12px;
	top: 4px;
	font-family: var(--mk-font-display);
	font-size: 96px;
	line-height: 1;
	letter-spacing: -.05em;
	color: var(--mk-bignum-color);
}

.mk-camp .mk-program__tytul {
	position: relative;
	margin-bottom: 10px;
	font-family: var(--mk-font-display);
	font-weight: 400;
	font-size: var(--mk-fs-h3);
	line-height: 1;
	text-transform: uppercase;
}

.mk-camp .mk-program__opis {
	position: relative;
	color: var(--mk-ink-dim-on-dark);
}

.mk-camp .mk-program__dzien {
	position: sticky;
	top: 96px;
	padding: 32px;
	border: 1px solid var(--mk-line-on-dark);
	background: var(--mk-glass-dark);
	backdrop-filter: blur(var(--mk-blur-glass));
	-webkit-backdrop-filter: blur(var(--mk-blur-glass));
}

.mk-camp .mk-program__dzien::before {
	content: '';
	position: absolute;
	top: -1px;
	left: -1px;
	width: var(--mk-corner-size);
	height: var(--mk-corner-size);
	border-top: var(--mk-corner-width) solid var(--mk-accent);
	border-left: var(--mk-corner-width) solid var(--mk-accent);
}

.mk-camp .mk-program__dzien-tytul {
	margin-bottom: 20px;
	font-family: var(--mk-font-display);
	font-weight: 400;
	font-size: var(--mk-fs-h3);
	text-transform: uppercase;
}

.mk-camp .mk-program__punkt {
	display: grid;
	grid-template-columns: 64px 1fr;
	gap: 16px;
	padding: 12px 0;
	border-top: 1px solid var(--mk-line-on-dark);
}

.mk-camp .mk-program__godzina {
	font-family: var(--mk-font-display);
	font-size: 18px;
	color: var(--mk-accent);
}

.mk-camp .mk-program__dzien-brak {
	color: var(--mk-ink-dim-on-dark);
}

/* =====================================================================
 * 4. Hotel
 * ================================================================== */

.mk-camp .mk-hotel__uklad {
	display: grid;
	grid-template-columns: 1fr 1.4fr;
	gap: 64px;
	align-items: start;
}

.mk-camp .mk-hotel__wiersz {
	padding: 18px 0;
	border-top: 1px solid var(--mk-line-on-light);
}

.mk-camp .mk-hotel__wiersz:last-child {
	border-bottom: 1px solid var(--mk-line-on-light);
}

.mk-camp .mk-hotel__wiersz dt {
	margin-bottom: 6px;
	font-size: var(--mk-fs-eyebrow);
	font-weight: 700;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--mk-ink-mute-on-light);
}

.mk-camp .mk-hotel__wiersz dd {
	font-weight: 600;
}

.mk-camp .mk-hotel__link {
	margin-top: 20px;
	font-weight: 700;
}

.mk-camp .mk-hotel__link a {
	background-image: linear-gradient(transparent 62%, var(--mk-accent) 62%);
	text-decoration: none;
}

.mk-camp .mk-hotel__galeria {
	display: grid;
	grid-template-columns: 2fr 1fr;
	grid-auto-rows: 240px;
	gap: 12px;
}

.mk-camp .mk-hotel__foto {
	position: relative;
	overflow: hidden;
	background: var(--mk-chip-bg);
}

.mk-camp .mk-hotel__foto:first-child {
	grid-row: span 2;
}

.mk-camp .mk-hotel__foto:first-child::before,
.mk-camp .mk-hotel__foto:first-child::after {
	content: '';
	position: absolute;
	width: var(--mk-corner-size);
	height: var(--mk-corner-size);
	z-index: 3;
}

.mk-camp .mk-hotel__foto:first-child::before {
	top: -1px;
	left: -1px;
	border-top: var(--mk-corner-width) solid var(--mk-accent);
	border-left: var(--mk-corner-width) solid var(--mk-accent);
}

.mk-camp .mk-hotel__foto:first-child::after {
	bottom: -1px;
	right: -1px;
	border-bottom: var(--mk-corner-width) solid var(--mk-accent);
	border-right: var(--mk-corner-width) solid var(--mk-accent);
}

.mk-camp .mk-hotel__obraz {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform var(--mk-dur-reveal) var(--mk-ease-out);
}

.mk-camp .mk-hotel__foto:hover .mk-hotel__obraz {
	transform: scale(1.04);
}

.mk-camp .mk-hotel__foto--brak {
	grid-column: 1 / -1;
	grid-row: span 2;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 32px;
	text-align: center;
	border: 1px dashed var(--mk-line-strong-on-light);
}

/* =====================================================================
 * 5. Bezpieczeństwo i kadra
 * ================================================================== */

.mk-camp .mk-bezp__filary {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 32px;
	margin-bottom: 72px;
}

.mk-camp .mk-bezp__filar {
	padding-top: 20px;
	border-top: 2px solid var(--mk-accent);
}

.mk-camp .mk-bezp__filar-tytul {
	margin-bottom: 10px;
	font-family: var(--mk-font-display);
	font-weight: 400;
	font-size: var(--mk-fs-card-title);
	text-transform: uppercase;
	letter-spacing: .02em;
}

.mk-camp .mk-bezp__filar-opis {
	color: var(--mk-ink-dim-on-dark);
}

.mk-camp .mk-bezp__kadra-tytul {
	margin-bottom: 28px;
	font-family: var(--mk-font-display);
	font-weight: 400;
	font-size: var(--mk-fs-h3);
	text-transform: uppercase;
}

.mk-camp .mk-bezp__kadra {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 24px;
}

.mk-camp .mk-bezp__trener:first-child {
	grid-column: span 1;
}

.mk-camp .mk-bezp__portret {
	position: relative;
	aspect-ratio: 3 / 4;
	margin-bottom: 16px;
	overflow: hidden;
	background: var(--mk-glass-dark);
}

.mk-camp .mk-bezp__trener:first-child .mk-bezp__portret::before,
.mk-camp .mk-bezp__trener:first-child .mk-bezp__portret::after {
	content: '';
	position: absolute;
	width: var(--mk-corner-size);
	height: var(--mk-corner-size);
	z-index: 3;
}

.mk-camp .mk-bezp__trener:first-child .mk-bezp__portret::before {
	top: -1px;
	left: -1px;
	border-top: var(--mk-corner-width) solid var(--mk-accent);
	border-left: var(--mk-corner-width) solid var(--mk-accent);
}

.mk-camp .mk-bezp__trener:first-child .mk-bezp__portret::after {
	bottom: -1px;
	right: -1px;
	border-bottom: var(--mk-corner-width) solid var(--mk-accent);
	border-right: var(--mk-corner-width) solid var(--mk-accent);
}

.mk-camp .mk-bezp__foto {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: grayscale(1);
	transition: filter var(--mk-dur) var(--mk-ease-out);
}

.mk-camp .mk-bezp__trener:hover .mk-bezp__foto {
	filter: grayscale(0);
}

.mk-camp .mk-bezp__portret-brak {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	text-align: center;
	border: 1px dashed var(--mk-accent);
	color: var(--mk-ink-dim-on-dark);
	font-size: var(--mk-fs-small);
}

.mk-camp .mk-bezp__imie {
	font-family: var(--mk-font-display);
	font-weight: 400;
	font-size: var(--mk-fs-card-title);
	text-transform: uppercase;
	letter-spacing: .02em;
}

.mk-camp .mk-bezp__rola {
	margin: 4px 0 8px;
	font-size: var(--mk-fs-eyebrow);
	font-weight: 700;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--mk-accent);
}

.mk-camp .mk-bezp__skrot {
	font-size: var(--mk-fs-small);
	color: var(--mk-ink-dim-on-dark);
}

.mk-camp .mk-bezp__nota {
	margin-top: 40px;
	max-width: 760px;
}

/* =====================================================================
 * 6. Cennik
 * ================================================================== */

.mk-camp .mk-cennik {
	padding: 96px 0;
}

.mk-camp .mk-cennik__warianty {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 24px;
	margin-bottom: 40px;
}

.mk-camp .mk-cennik__wariant {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 36px 32px 32px;
	border: 1px solid var(--mk-line-strong-on-light);
	background: var(--mk-bg-light);
	box-shadow: var(--mk-shadow-card);
}

.mk-camp .mk-cennik__wariant::before,
.mk-camp .mk-cennik__wariant::after {
	content: '';
	position: absolute;
	width: var(--mk-corner-size);
	height: var(--mk-corner-size);
	z-index: 3;
	pointer-events: none;
}

.mk-camp .mk-cennik__wariant::before {
	top: -1px;
	left: -1px;
	border-top: var(--mk-corner-width) solid var(--mk-accent);
	border-left: var(--mk-corner-width) solid var(--mk-accent);
}

.mk-camp .mk-cennik__wariant::after {
	bottom: -1px;
	right: -1px;
	border-bottom: var(--mk-corner-width) solid var(--mk-accent);
	border-right: var(--mk-corner-width) solid var(--mk-accent);
}

.mk-camp .mk-cennik__wariant--brak {
	opacity: .55;
}

.mk-camp .mk-cennik__nazwa {
	font-family: var(--mk-font-display);
	font-weight: 400;
	font-size: var(--mk-fs-h3);
	line-height: 1;
	text-transform: uppercase;
}

.mk-camp .mk-cennik__opis {
	color: var(--mk-ink-dim-on-light);
}

.mk-camp .mk-cennik__pelna {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding: 16px 0;
	border-top: 1px solid var(--mk-line-on-light);
	border-bottom: 1px solid var(--mk-line-on-light);
}

.mk-camp .mk-cennik__kwota {
	font-family: var(--mk-font-display);
	font-size: var(--mk-fs-stat);
	line-height: 1;
	letter-spacing: -.02em;
}

.mk-camp .mk-cennik__za {
	font-size: var(--mk-fs-small);
	color: var(--mk-ink-mute-on-light);
}

.mk-camp .mk-cennik__wiersz {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 6px 0;
}

.mk-camp .mk-cennik__wiersz dt {
	color: var(--mk-ink-dim-on-light);
}

.mk-camp .mk-cennik__wiersz dd {
	font-weight: 800;
}

.mk-camp .mk-cennik__cta {
	margin-top: auto;
	width: 100%;
}

.mk-camp .mk-cennik__wyprzedane {
	margin-top: auto;
	padding: 16px 0;
	text-align: center;
	font-weight: 700;
	color: var(--mk-ink-mute-on-light);
}

.mk-camp .mk-cennik__zaliczka {
	max-width: 620px;
	margin-bottom: 24px;
	padding: 28px 32px;
	border-left: 4px solid var(--mk-accent);
	background: var(--mk-bg-cream);
}

.mk-camp .mk-zaliczka__znacznik {
	margin-bottom: 12px;
	font-weight: 700;
}

.mk-camp .mk-zaliczka__wiersz {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 8px 0;
	border-bottom: 1px solid var(--mk-line-on-light);
}

.mk-camp .mk-zaliczka__wiersz--teraz dd {
	font-family: var(--mk-font-display);
	font-size: 22px;
}

.mk-camp .mk-zaliczka__nota {
	margin-top: 14px;
	font-size: var(--mk-fs-small);
	color: var(--mk-ink-dim-on-light);
}

.mk-camp .mk-cennik__miejsca {
	font-weight: 600;
}

/* =====================================================================
 * 7. Formularz zapisu
 * ================================================================== */

.mk-camp .mk-zapis {
	scroll-margin-top: 80px;
}

.mk-camp .mk-zapis__zamkniete {
	max-width: 620px;
	padding: 24px 28px;
	border-left: 4px solid var(--mk-accent);
	background: var(--mk-glass-dark);
	font-weight: 600;
}

.mk-camp .mk-form__uklad {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 48px;
	align-items: start;
}

.mk-camp .mk-form__grupa {
	margin: 0 0 40px;
	padding: 0;
	border: 0;
	min-width: 0;
}

.mk-camp .mk-form__legenda {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 24px;
	padding: 0;
	font-family: var(--mk-font-display);
	font-weight: 400;
	font-size: var(--mk-fs-h3);
	text-transform: uppercase;
}

.mk-camp .mk-form__krok {
	font-family: var(--mk-font-display);
	font-size: 14px;
	letter-spacing: .1em;
	color: var(--mk-accent);
}

/* Warianty jako duże karty radio */
.mk-camp .mk-form__radia--warianty {
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
}

.mk-camp .mk-form__wariant {
	position: relative;
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 18px 20px;
	border: 1px solid var(--mk-line-on-dark);
	background: var(--mk-glass-dark);
	cursor: pointer;
	transition: border-color var(--mk-dur) var(--mk-ease-out), background var(--mk-dur) var(--mk-ease-out);
}

.mk-camp .mk-form__wariant:hover {
	border-color: var(--mk-accent-dark);
}

.mk-camp .mk-form__wariant:has(input:checked) {
	border-color: var(--mk-accent);
	background: color-mix(in srgb, var(--mk-accent) 10%, transparent);
}

.mk-camp .mk-form__wariant:has(input:focus-visible) {
	outline: 2px solid var(--mk-accent);
	outline-offset: 3px;
}

.mk-camp .mk-form__wariant--brak {
	opacity: .5;
	cursor: not-allowed;
}

.mk-camp .mk-form__wariant input[type="radio"],
.mk-camp .mk-form__radio input[type="radio"] {
	appearance: none;
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	margin: 0;
	border: 2px solid var(--mk-ink-mute-on-dark);
	border-radius: 50%; /* kropka radio: jedyny dozwolony wyjątek od ostrych rogów */
	background: transparent;
	display: grid;
	place-content: center;
	cursor: inherit;
}

.mk-camp .mk-form__wariant input[type="radio"]::before,
.mk-camp .mk-form__radio input[type="radio"]::before {
	content: '';
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--mk-accent);
	transform: scale(0);
	transition: transform var(--mk-dur-fast) var(--mk-ease-out);
}

.mk-camp .mk-form__wariant input[type="radio"]:checked,
.mk-camp .mk-form__radio input[type="radio"]:checked {
	border-color: var(--mk-accent);
}

.mk-camp .mk-form__wariant input[type="radio"]:checked::before,
.mk-camp .mk-form__radio input[type="radio"]:checked::before {
	transform: scale(1);
}

.mk-camp .mk-form__radio input[type="radio"]:focus-visible {
	outline: 2px solid var(--mk-accent);
	outline-offset: 3px;
}

.mk-camp .mk-form__wariant-tresc {
	display: flex;
	flex: 1 1 auto;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 6px 16px;
}

.mk-camp .mk-form__wariant-nazwa {
	font-weight: 700;
}

.mk-camp .mk-form__wariant-cena {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	font-family: var(--mk-font-display);
	font-size: 22px;
	line-height: 1;
}

.mk-camp .mk-form__wariant-cena small {
	margin-top: 4px;
	font-family: var(--mk-font-body);
	font-size: var(--mk-fs-small);
	font-weight: 500;
	color: var(--mk-ink-dim-on-dark);
}

.mk-camp .mk-form__wariant-brak {
	flex-basis: 100%;
	font-size: var(--mk-fs-small);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--mk-ink-mute-on-dark);
}

.mk-camp .mk-form__jeden-wariant {
	font-size: var(--mk-fs-lead);
}

/* Pola */
.mk-camp .mk-form__pole {
	margin-bottom: 22px;
}

.mk-camp .mk-form__pole--text,
.mk-camp .mk-form__pole--date,
.mk-camp .mk-form__pole--number {
	max-width: 480px;
}

.mk-camp .mk-form__etykieta {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin-bottom: 8px;
	padding: 0;
	font-weight: 700;
}

.mk-camp .mk-form__opcjonalne {
	font-size: var(--mk-fs-eyebrow);
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--mk-ink-mute-on-dark);
}

.mk-camp .mk-form__input {
	display: block;
	width: 100%;
	min-height: 56px;
	padding: 14px 16px;
	border: 1px solid var(--mk-line-on-dark);
	border-radius: var(--mk-radius);
	background: var(--mk-glass-dark);
	color: var(--mk-ink-light);
	font-family: var(--mk-font-body);
	font-size: 16px; /* 16px minimum: iOS nie przybliża pola przy focusie */
	line-height: 1.4;
	transition: border-color var(--mk-dur) var(--mk-ease-out);
}

.mk-camp .mk-form__input::placeholder {
	color: var(--mk-ink-mute-on-dark);
}

.mk-camp .mk-form__input:focus {
	border-color: var(--mk-accent);
	outline: none;
}

.mk-camp .mk-form__input:focus-visible {
	outline: 2px solid var(--mk-accent);
	outline-offset: 2px;
}

.mk-camp .mk-form__input[aria-invalid="true"] {
	border-color: var(--mk-accent);
	border-width: 2px;
}

.mk-camp .mk-form__input--textarea {
	min-height: 120px;
	resize: vertical;
}

.mk-camp .mk-form__input[type="date"] {
	color-scheme: dark;
}

.mk-camp .mk-form__radia-zestaw {
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}

.mk-camp .mk-form__radia {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.mk-camp .mk-form__radio {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 48px;
	padding: 0 18px;
	border: 1px solid var(--mk-line-on-dark);
	cursor: pointer;
	transition: border-color var(--mk-dur) var(--mk-ease-out);
}

.mk-camp .mk-form__radio:hover,
.mk-camp .mk-form__radio:has(input:checked) {
	border-color: var(--mk-accent);
}

.mk-camp .mk-form__pomoc {
	margin-top: 8px;
	font-size: var(--mk-fs-small);
	color: var(--mk-ink-dim-on-dark);
}

/* Błąd: tekst plus ikona-prefiks, nigdy sam kolor */
.mk-camp .mk-form__blad {
	margin-top: 8px;
	font-size: var(--mk-fs-small);
	font-weight: 700;
	color: var(--mk-ink-light);
}

.mk-camp .mk-form__blad:empty {
	display: none;
}

.mk-camp .mk-form__blad::before {
	content: '!';
	display: inline-grid;
	place-content: center;
	width: 18px;
	height: 18px;
	margin-right: 8px;
	background: var(--mk-accent);
	color: var(--mk-ink-dark);
	font-family: var(--mk-font-display);
	font-size: 13px;
	vertical-align: middle;
}

.mk-camp .mk-form__pole--blad .mk-form__etykieta {
	color: var(--mk-accent);
}

/* Podsumowanie */
.mk-camp .mk-form__podsumowanie {
	position: sticky;
	top: 96px;
	padding: 32px;
	border: 1px solid var(--mk-line-on-dark);
	background: var(--mk-glass-dark);
	backdrop-filter: blur(var(--mk-blur-glass));
	-webkit-backdrop-filter: blur(var(--mk-blur-glass));
}

.mk-camp .mk-form__podsumowanie::before,
.mk-camp .mk-form__podsumowanie::after {
	content: '';
	position: absolute;
	width: var(--mk-corner-size);
	height: var(--mk-corner-size);
	z-index: 3;
	pointer-events: none;
}

.mk-camp .mk-form__podsumowanie::before {
	top: -1px;
	left: -1px;
	border-top: var(--mk-corner-width) solid var(--mk-accent);
	border-left: var(--mk-corner-width) solid var(--mk-accent);
}

.mk-camp .mk-form__podsumowanie::after {
	bottom: -1px;
	right: -1px;
	border-bottom: var(--mk-corner-width) solid var(--mk-accent);
	border-right: var(--mk-corner-width) solid var(--mk-accent);
}

.mk-camp .mk-form__podsumowanie-tytul {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 20px;
	font-family: var(--mk-font-display);
	font-weight: 400;
	font-size: var(--mk-fs-h3);
	text-transform: uppercase;
}

.mk-camp .mk-form__kwota {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	padding: 10px 0;
	border-top: 1px solid var(--mk-line-on-dark);
}

.mk-camp .mk-form__kwota dt {
	color: var(--mk-ink-dim-on-dark);
}

.mk-camp .mk-form__kwota dd {
	font-weight: 700;
	text-align: right;
}

.mk-camp .mk-form__kwota--teraz dd {
	font-family: var(--mk-font-display);
	font-size: 28px;
	font-weight: 400;
	color: var(--mk-accent);
}

.mk-camp .mk-form__submit {
	width: 100%;
	margin-top: 24px;
}

.mk-camp .mk-form__blad--ogolny {
	margin-top: 16px;
}

.mk-camp .mk-form__nota {
	margin-top: 14px;
	font-size: var(--mk-fs-small);
	color: var(--mk-ink-dim-on-dark);
}

/* =====================================================================
 * 8. Sticky CTA (tylko telefon, sterowane przez camp.js)
 * ================================================================== */

.mk-sticky {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 90;
	display: none;
	padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
	background: var(--mk-bg-dark);
	border-top: 1px solid var(--mk-line-on-dark);
	box-shadow: var(--mk-shadow-header);
	color: var(--mk-ink-light);
	font-family: var(--mk-font-body);
	transform: translateY(100%);
	transition: transform var(--mk-dur) var(--mk-ease-out);
}

.mk-sticky[hidden] {
	display: none;
}

.mk-sticky--widoczny {
	transform: translateY(0);
}

.mk-sticky__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.mk-sticky__info {
	display: flex;
	flex-direction: column;
	min-width: 0;
	line-height: 1.25;
}

.mk-sticky__nazwa {
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	font-size: var(--mk-fs-small);
	font-weight: 700;
}

.mk-sticky__cena {
	font-size: var(--mk-fs-small);
	color: var(--mk-ink-dim-on-dark);
}

.mk-sticky__cta {
	flex: 0 0 auto;
	min-height: 48px;
	padding: 0 20px;
	font-size: 13px;
}

/* =====================================================================
 * 9. Responsywność
 * ================================================================== */

@media (max-width: 1024px) {
	.mk-camp .mk-wrap,
	.mk-camp .mk-camp__komunikaty {
		padding-left: var(--mk-gutter-1024);
		padding-right: var(--mk-gutter-1024);
	}

	.mk-camp .mk-hero-camp__inner {
		grid-template-columns: 1fr;
	}

	.mk-camp .mk-hero-camp__fakty,
	.mk-camp .mk-hero-camp__lead {
		grid-column: 1 / -1;
		grid-row: auto;
	}

	.mk-camp .mk-grupy__lista {
		grid-template-columns: 1fr;
	}

	.mk-camp .mk-program__uklad,
	.mk-camp .mk-hotel__uklad,
	.mk-camp .mk-form__uklad {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.mk-camp .mk-program__dzien,
	.mk-camp .mk-form__podsumowanie {
		position: static;
	}

	.mk-camp .mk-bezp__filary {
		grid-template-columns: repeat(2, 1fr);
	}

	.mk-camp .mk-bezp__kadra {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 720px) {
	.mk-camp .mk-wrap,
	.mk-camp .mk-camp__komunikaty {
		padding-left: var(--mk-gutter-720);
		padding-right: var(--mk-gutter-720);
	}

	.mk-camp .mk-sekcja {
		padding: 56px 0;
	}

	.mk-camp .mk-cennik {
		padding: 64px 0;
	}

	.mk-camp .mk-hero-camp {
		min-height: 88vh;
		padding: 112px 0 40px;
	}

	.mk-camp .mk-hero-camp__fakty {
		grid-template-columns: 1fr 1fr;
	}

	.mk-camp .mk-hero-camp__akcje .mk-btn {
		width: 100%;
	}

	.mk-camp .mk-program__bloki {
		grid-template-columns: 1fr;
	}

	.mk-camp .mk-program__blok:last-child:nth-child(odd) {
		grid-column: auto;
	}

	.mk-camp .mk-hotel__galeria {
		grid-template-columns: 1fr;
		grid-auto-rows: 220px;
	}

	.mk-camp .mk-hotel__foto:first-child {
		grid-row: auto;
	}

	.mk-camp .mk-bezp__filary {
		grid-template-columns: 1fr;
		gap: 24px;
		margin-bottom: 48px;
	}

	.mk-camp .mk-bezp__kadra {
		grid-template-columns: repeat(2, 1fr);
		gap: 16px;
	}

	.mk-camp .mk-cennik__wariant {
		padding: 28px 20px 24px;
	}

	.mk-camp .mk-cennik__zaliczka {
		padding: 20px;
	}

	.mk-camp .mk-form__podsumowanie {
		padding: 24px 20px;
	}

	.mk-camp .mk-form__wariant-tresc {
		flex-direction: column;
		align-items: flex-start;
	}

	.mk-camp .mk-form__wariant-cena {
		align-items: flex-start;
	}

	.mk-sticky {
		display: block;
	}

	body.mk-ma-sticky {
		padding-bottom: 84px;
	}
}

/* =====================================================================
 * 10. Ruch: wyłączony na życzenie systemu
 * ================================================================== */

@media (prefers-reduced-motion: reduce) {
	.mk-camp *,
	.mk-camp *::before,
	.mk-camp *::after,
	.mk-sticky {
		animation: none;
		transition: none;
	}

	.mk-camp .mk-hotel__foto:hover .mk-hotel__obraz,
	.mk-camp .mk-btn--zolty:hover {
		transform: none;
	}

	.mk-sticky {
		transform: none;
	}
}
