/* ==========================================================================
   VMA Life Clinic – główny arkusz stylów
   Tokeny 1:1 z Figmy (kolekcje VMA / Primitives, Semantic, Metrics)
   ========================================================================== */

:root {
	/* 1 jednostka = 1 px ramki Figma 1440; poniżej 1440 maleje proporcjonalnie */
	--u: min(1px, calc((100vw - var(--sbw, 0px)) / 1440));
	/* Primitives */
	--cream-100: #FFFDF7;
	--cream-200: #FBF7EC;
	--cream-300: #F8F0DE;
	--cream-400: #F3ECDA;
	--neutral-300: #D9D0BE;
	--neutral-400: #D8D0BF;
	--neutral-500: #B5AC99;
	--neutral-700: #686054;
	--neutral-900: #26231E;
	--burgundy-600: #65141D;
	--burgundy-700: #4C0F16;
	--slate-blue: #5B7482;
	--dusty-blue: #799AAC;
	--soft-sand: #E0D9C9;
	--warm-ivory: #F3ECDA;
	--charcoal: #26231E;

	/* Semantic */
	--color-bg-canvas: var(--cream-400);
	--color-bg-surface: var(--cream-100);
	--color-bg-elevated: var(--cream-200);
	--color-text-primary: var(--neutral-900);
	--color-text-secondary: var(--neutral-700);
	--color-text-on-dark: var(--cream-300);
	--color-border-default: var(--neutral-500);
	--color-border-subtle: var(--neutral-300);
	--color-action-primary: var(--burgundy-600);
	--color-action-hover: var(--burgundy-700);
	--color-state-disabled: var(--neutral-400);
	--color-error: #A8412F; /* DS › Input › Error */

	/* Metrics */
	--space-4: calc(4 * var(--u));
	--space-8: calc(8 * var(--u));
	--space-12: calc(12 * var(--u));
	--space-16: calc(16 * var(--u));
	--space-24: calc(24 * var(--u));
	--space-32: calc(32 * var(--u));
	--space-48: calc(48 * var(--u));
	--space-64: calc(64 * var(--u));
	--space-96: calc(96 * var(--u));
	--radius-sm: calc(4 * var(--u));
	--radius-md: calc(10 * var(--u));
	--radius-lg: calc(20 * var(--u));
	--radius-pill: 999px;

	/* Layout (ramka 1440, marginesy 40, siatka 3 × 440 + 2 × 20) */
	--page-max: calc(1440 * var(--u));
	--page-gutter: calc(40 * var(--u));
	--grid-gap: calc(20 * var(--u));

	--font-sans: "General Sans", "General Sans Variable", system-ui, -apple-system, "Segoe UI", sans-serif;
}

/* --------------------------------------------------------------------------
   Reset / baza
   -------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
/* Lenis */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }
body {
	margin: 0;
	overflow-x: clip;
	font-family: var(--font-sans);
	font-weight: 400;
	font-size: calc(16 * var(--u));
	line-height: 1.4;
	color: var(--color-text-primary);
	background: var(--cream-200);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
img, svg { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
ul { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4, p { margin: 0; font-weight: 400; }
button { font: inherit; }

.skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 1000;
	padding: calc(12 * var(--u)) calc(16 * var(--u)); background: var(--neutral-900); color: var(--cream-300);
}
.skip-link:focus { left: calc(16 * var(--u)); top: calc(16 * var(--u)); }

.container {
	width: 100%;
	max-width: var(--page-max);
	margin-inline: auto;
	padding-inline: var(--page-gutter);
}

/* --------------------------------------------------------------------------
   Przyciski (pill, calc(14 * var(--u)) Medium, letter-spacing 1%)
   -------------------------------------------------------------------------- */
.btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: calc(44 * var(--u)); padding: calc(13 * var(--u)) calc(20 * var(--u));
	border: 0; border-radius: var(--radius-pill);
	font-size: calc(14 * var(--u)); font-weight: 500; line-height: 1.3; letter-spacing: 0.01em;
	cursor: pointer; white-space: nowrap;
	transition: background-color .2s ease, color .2s ease, transform .2s ease;
}
/* Stany z Figmy (DS › Button / VMA): Default, Hover, Focus (obrys 2 px na zewnątrz), Clicked */
.btn:focus-visible { outline: 2px solid var(--btn-ring, var(--slate-blue)); outline-offset: 0; }
.btn--dark { --btn-ring: #A8B0B0; background: var(--neutral-900); color: var(--cream-400); }
.btn--dark:hover { background: #383633; }
.btn--dark:active { background: #171612; }
.btn--sand { --btn-ring: #484037; background: var(--soft-sand); color: var(--neutral-900); }
.btn--sand:hover { background: #C5BBA8; }
.btn--sand:active { background: #B6AD9C; }
.btn--dusty { background: var(--dusty-blue); color: var(--cream-400); }
.btn--dusty:hover { background: #88A7B8; }

/* --------------------------------------------------------------------------
   Nawigacja (w hero, nad zdjęciem)
   -------------------------------------------------------------------------- */
.nav {
	position: absolute; inset: 0 0 auto 0; z-index: 10;
	display: flex; align-items: flex-start; justify-content: space-between;
	padding: calc(40 * var(--u)) var(--page-gutter) 0;
	color: var(--cream-400);
}
.nav__logo { display: block; width: calc(118 * var(--u)); color: var(--cream-400); }
.nav__logo svg { width: 100%; height: auto; }
.nav__list { display: flex; align-items: center; gap: calc(40 * var(--u)); margin-top: calc(1 * var(--u)); }
.nav__link {
	display: inline-flex; align-items: center; gap: calc(8 * var(--u));
	font-size: calc(20 * var(--u)); line-height: 1.3; color: var(--cream-400);
	border-bottom: 1px solid transparent; padding-bottom: calc(2 * var(--u));
	transition: opacity .2s ease, border-color .2s ease;
}
.nav__link:hover { opacity: .8; }
.nav__item--cta { margin-left: calc(24 * var(--u)); }
.nav__item--cta .nav__link { border-bottom-color: var(--cream-400); }
.nav__chevron {
	width: calc(8 * var(--u)); height: calc(8 * var(--u)); margin-top: calc(2 * var(--u));
	border-left: calc(1.5 * var(--u)) solid currentColor; border-top: calc(1.5 * var(--u)) solid currentColor;
	transform: translateY(calc(-3 * var(--u))) rotate(-135deg);
	transition: transform .35s var(--ease-out, cubic-bezier(.22,1,.36,1));
}
.nav__item--mega.is-open .nav__chevron { transform: translateY(calc(2 * var(--u))) rotate(45deg); }
.nav__toggle { display: none; }
.mnav { display: none; }

/* --------------------------------------------------------------------------
   Panel "Oferta" (ramka Figma "Menu"): 1130 × 427, od y 96, do prawej krawędzi siatki.
   Lewa kolumna 357 (Slate Blue), prawa Cream 400 z filtrem, kategoriami i podkategoriami.
   -------------------------------------------------------------------------- */
.mega {
	position: absolute; top: calc(96 * var(--u)); right: var(--page-gutter); z-index: 20;
	display: grid; grid-template-columns: calc(357 * var(--u)) 1fr;
	width: calc(1130 * var(--u)); min-height: calc(427 * var(--u));
	color: var(--neutral-900); text-align: left;
	opacity: 0; visibility: hidden; transform: translateY(calc(-10 * var(--u)));
	transition: opacity .3s ease, transform .45s cubic-bezier(.22,1,.36,1), visibility 0s linear .45s;
}
/* most tylko pod "Oferta" (szczelina do panelu), żeby hover nie gasł po drodze – nie zasłania innych linków */
.nav__trigger { position: relative; }
.nav__item--mega.is-open .nav__trigger::after { content: ""; position: absolute; left: calc(-16 * var(--u)); right: calc(-16 * var(--u)); top: 100%; height: calc(48 * var(--u)); }
.nav__item--mega.is-open .mega { opacity: 1; visibility: visible; transform: none; transition: opacity .3s ease, transform .45s cubic-bezier(.22,1,.36,1), visibility 0s; }
/* zamykanie szybsze niż otwieranie */
.mega { transition: opacity .18s ease, transform .3s cubic-bezier(.22,1,.36,1), visibility 0s linear .3s; }

.mega__start {
	display: flex; flex-direction: column; justify-content: flex-start;
	padding: calc(105 * var(--u)) calc(40 * var(--u)) calc(40 * var(--u)); background: var(--slate-blue); color: var(--cream-400);
}
.mega__title { font-size: calc(20 * var(--u)); line-height: calc(26 * var(--u)); font-weight: 400; }
.mega__shortcuts {
	display: grid; grid-auto-flow: column; grid-template-rows: repeat(var(--rows, 4), auto);
	grid-template-columns: repeat(2, max-content); column-gap: calc(34 * var(--u)); row-gap: calc(15 * var(--u));
	margin-top: calc(21 * var(--u));
}
.mega__shortcut {
	display: flex; align-items: center; justify-content: space-between; gap: calc(24 * var(--u));
	font-size: calc(16 * var(--u)); line-height: calc(22 * var(--u)); color: var(--cream-400);
}
.mega__arrow { flex: none; width: calc(12 * var(--u)); height: auto; opacity: .85; transition: transform .3s ease, opacity .3s ease; }
.mega__shortcut:hover .mega__arrow, .mega__shortcut:focus-visible .mega__arrow { transform: translateX(calc(4 * var(--u))); opacity: 1; }

.mega__offer { padding: calc(40 * var(--u)) calc(40 * var(--u)) calc(41 * var(--u)); background: var(--cream-400); }
.mega__filters {
	display: inline-grid; grid-auto-flow: column; grid-auto-columns: calc(94 * var(--u));
	padding: calc(3 * var(--u)); background: #FFFAEC; border-radius: var(--radius-pill);
}
.mega__filter {
	height: calc(29 * var(--u)); padding: 0 calc(8 * var(--u)); border: 0; border-radius: var(--radius-pill);
	background: transparent; color: var(--neutral-900); font: inherit; font-size: calc(12 * var(--u)); font-weight: 400;
	cursor: pointer; transition: background-color .25s ease, color .25s ease;
}
.mega__filter:first-child { width: calc(96 * var(--u)); }
.mega__filter.is-active { background: var(--slate-blue); color: var(--cream-400); }
.mega__filter:not(.is-active):hover, .mega__filter:not(.is-active):focus-visible { color: var(--slate-blue); }

.mega__body { display: grid; grid-template-columns: calc(230 * var(--u)) 1fr; margin-top: calc(26 * var(--u)); }
.mega__cat {
	display: flex; align-items: center; gap: calc(14 * var(--u));
	height: calc(46 * var(--u)); padding: 0 calc(20 * var(--u));
	font-size: calc(14 * var(--u)); line-height: calc(20 * var(--u)); color: var(--neutral-900);
	transition: background-color .25s ease;
}
/* Podświetlenie to stan hover: kategoria pod kursorem albo ta, której podkategorie są wskazywane */
.mega__cat:hover, .mega__cat:focus-visible,
.mega__body:hover .mega__cat.is-active { background: var(--soft-sand); }
.mega__icon { flex: none; width: calc(12 * var(--u)); height: auto; }
.mega__cat span { padding-top: calc(4 * var(--u)); white-space: nowrap; }

.mega__subs {
	display: flex; flex-direction: column; min-height: calc(285 * var(--u));
	margin-left: calc(25 * var(--u)); padding-left: calc(25 * var(--u)); border-left: 1px solid var(--soft-sand);
}
.mega__sub { display: none; }
.mega__sub.is-active { display: block; animation: mega-in .35s ease both; }
@keyframes mega-in { from { opacity: 0; transform: translateY(calc(4 * var(--u))); } to { opacity: 1; transform: none; } }
.mega__sub-label { margin-top: calc(-1 * var(--u)); font-size: calc(12 * var(--u)); line-height: calc(14 * var(--u)); color: var(--neutral-700); }
.mega__items {
	display: grid; grid-auto-flow: column; grid-template-rows: repeat(var(--rows, 4), auto);
	grid-template-columns: repeat(2, calc(200 * var(--u))); row-gap: calc(15 * var(--u));
	margin-top: calc(22 * var(--u));
}
.mega__item { display: block; font-size: calc(14 * var(--u)); line-height: calc(20 * var(--u)); color: var(--neutral-900); transition: opacity .2s ease; }
.mega__item:hover { opacity: .65; }
.mega__offer[data-filter="her"] [data-aud="him"],
.mega__offer[data-filter="him"] [data-aud="her"] { display: none; }
.mega__link {
	align-self: flex-start; margin-top: auto;
	font-size: calc(18.5 * var(--u)); line-height: 1.3; color: var(--neutral-900);
	border-bottom: 1px solid currentColor; padding-bottom: calc(4 * var(--u));
	transition: opacity .2s ease;
}
.mega__link:hover { opacity: .7; }

/* --------------------------------------------------------------------------
   Sekcja: HERO (ramka "hero", 1440 × 860)
   -------------------------------------------------------------------------- */
.hero {
	position: relative;
	min-height: calc(860 * var(--u));
	display: flex; align-items: flex-end;
	color: var(--cream-400);
	overflow: hidden; isolation: isolate;
}
.hero__bg {
	position: absolute; inset: 0; z-index: -1;
	background: var(--neutral-900) center / cover no-repeat;
}
.hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero__inner {
	position: relative;
	display: grid;
	grid-template-columns: calc(255 * var(--u)) 1fr calc(621 * var(--u));
	align-items: end;
	column-gap: calc(40 * var(--u));
	width: 100%;
	padding-bottom: calc(60 * var(--u));
}

/* Karta "Umów konsultację" – 255 × 278, padding 24, fill 908A78 @ ~50% */
.hero__card {
	grid-column: 1; grid-row: 1; /* w kodzie po tekście (kolejność czytania), na desktopie po lewej */
	display: flex; flex-direction: column; justify-content: space-between;
	width: calc(255 * var(--u)); min-height: calc(278 * var(--u)); padding: var(--space-24);
	background: rgba(144, 138, 120, .45);
	backdrop-filter: blur(calc(6 * var(--u))); -webkit-backdrop-filter: blur(calc(6 * var(--u)));
}
.hero__card-title { font-size: calc(24 * var(--u)); line-height: calc(30 * var(--u)); color: var(--cream-400); }
.hero__card-actions { display: flex; flex-direction: column; align-items: flex-start; gap: calc(12 * var(--u)); }
.hero__card .btn--outline { color: var(--cream-400); border-color: var(--cream-400); }
.hero__card .btn--outline:hover { background: var(--cream-400); color: var(--neutral-900); }

/* Tekst hero – h1 calc(51 * var(--u)) / 130% / -1% */
.hero__content { grid-column: 3; grid-row: 1; max-width: calc(621 * var(--u)); margin-right: calc(49 * var(--u)); }
.hero__title {
	font-size: calc(51 * var(--u)); line-height: 1.3; letter-spacing: -0.01em;
	color: var(--cream-400);
}
.hero__lead {
	margin-top: calc(20 * var(--u));
	font-size: calc(22 * var(--u)); line-height: calc(32 * var(--u)); font-weight: 500;
	color: var(--cream-400);
}

/* --------------------------------------------------------------------------
   Sekcja 1: "Od czego chcesz zacząć?" (bg cream-200, 3 karty 440 × 440)
   -------------------------------------------------------------------------- */
.start {
	background: var(--cream-200);
	padding: calc(120 * var(--u)) 0 calc(120 * var(--u));
}
.start__title {
	font-size: calc(64 * var(--u)); line-height: 1.2; letter-spacing: -0.01em;
	color: var(--neutral-900);
}
.start__lead {
	margin-top: calc(24 * var(--u));
	font-size: calc(20 * var(--u)); line-height: 1.4;
	color: #565147;
}
.start__cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--grid-gap);
	margin-top: calc(60 * var(--u));
}
.card {
	display: flex; flex-direction: column; justify-content: space-between;
	min-height: calc(440 * var(--u));
	padding: calc(28 * var(--u)) calc(20 * var(--u)) calc(28 * var(--u));
	background: var(--cream-400);
	color: var(--neutral-900);
	transition: background-color .7s ease, color .7s ease;
}
.card__title { font-size: calc(34 * var(--u)); line-height: 1.27; letter-spacing: -0.005em; }
.card__body { margin-top: auto; padding-top: calc(48 * var(--u)); }
.card__text { font-size: calc(15 * var(--u)); line-height: calc(22 * var(--u)); }
.card .btn { margin-top: calc(24 * var(--u)); transition: background-color .7s ease, color .7s ease, transform .2s ease; }
/* Stan hover z projektu (pierwsza karta w Figmie): Slate Blue, powolna zmiana koloru */
.card:focus-within { background: var(--slate-blue); color: var(--cream-400); }
.card:focus-within .btn { background: var(--dusty-blue); color: var(--cream-400); }
@media (hover: hover) {
	.card:hover { background: var(--slate-blue); color: var(--cream-400); }
	.card:hover .btn { background: var(--dusty-blue); color: var(--cream-400); }
	.card:hover .btn:hover { background: #88A7B8; }
}

/* --------------------------------------------------------------------------
   Link z podkreśleniem (np. "Więcej o naszej filozofii")
   -------------------------------------------------------------------------- */
.link-underline {
	display: inline-block;
	padding-bottom: calc(6 * var(--u));
	border-bottom: 1px solid var(--neutral-900);
	font-size: calc(20 * var(--u)); line-height: 1.2;
	color: var(--neutral-900);
	transition: opacity .2s ease;
}
/* DS › Tertiary: hover bez zmiany, Clicked = pogrubienie (cieniem, bez przesuwania tekstu), Focus = ramka Slate Blue */
.link-underline:active { text-shadow: 0 0 .35px currentColor, 0 0 .35px currentColor; }
.link-underline:focus-visible { outline: 2px solid var(--slate-blue); outline-offset: 5px; }

/* --------------------------------------------------------------------------
   Sekcja 2: "By znaleźć źródło zdrowia…" (wcięcie 64 px, 3 filary z separatorami)
   -------------------------------------------------------------------------- */
.philosophy {
	background: var(--cream-200);
	padding: calc(58 * var(--u)) 0 calc(96 * var(--u));
}
.philosophy__inner { padding-left: calc(24 * var(--u)); }
.philosophy__title {
	font-size: calc(64 * var(--u)); line-height: 1.2; letter-spacing: -0.01em;
	color: var(--neutral-900);
}
.philosophy__lead {
	margin-top: calc(22 * var(--u));
	font-size: calc(20 * var(--u)); line-height: 1.4;
	color: #565147;
}
.philosophy__link { margin-top: calc(20 * var(--u)); }

.pillars {
	display: grid;
	grid-template-columns: calc(376 * var(--u)) calc(491 * var(--u)) 1fr;
	margin: calc(60 * var(--u)) 0 0; padding: 0; list-style: none;
}
.pillar { position: relative; }
.pillar + .pillar { padding-left: calc(60 * var(--u)); }
.pillar + .pillar::before {
	content: ""; position: absolute; left: 0; top: 0;
	width: 1px; height: calc(115 * var(--u)); background: #000;
}
.pillar__num {
	display: block;
	font-size: calc(63 * var(--u)); line-height: calc(46 * var(--u)); font-weight: 400; font-style: italic;
	color: #D3CDBF;
}
.pillar__title {
	margin-top: calc(33 * var(--u));
	font-size: calc(28 * var(--u)); line-height: calc(36 * var(--u));
	color: var(--neutral-900);
}
.pillar__title s { text-decoration-thickness: 1px; }
.pillar__text {
	max-width: calc(300 * var(--u)); margin-top: calc(14 * var(--u));
	font-size: calc(15.5 * var(--u)); line-height: calc(21 * var(--u));
	color: #000;
}

/* --------------------------------------------------------------------------
   Sekcja 3: "Twoje ciało wysyła sygnały" (nagłówek do prawej, linia, karuzela)
   -------------------------------------------------------------------------- */
.signals {
	background: var(--cream-200);
	padding: calc(46 * var(--u)) 0 calc(184 * var(--u));
	overflow: hidden;
}
.signals__head {
	display: flex; flex-direction: column; align-items: flex-end;
	text-align: right;
}
.signals__title {
	font-size: calc(48 * var(--u)); line-height: 1.2; letter-spacing: -0.01em;
	color: var(--neutral-900);
}
.signals__lead {
	margin-top: calc(22 * var(--u));
	font-size: calc(20 * var(--u)); line-height: 1.4;
	color: #565147;
}
.signals__cta { margin-top: calc(20 * var(--u)); }

.signals__slider {
	position: relative;
	margin-top: calc(37 * var(--u));
	padding-top: calc(32 * var(--u)); /* + 8 zapasu w .signals__track na podniesienie karty */
	border-top: 1px solid #958E7E;
}
.signals__track {
	display: flex; gap: calc(20 * var(--u));
	margin: 0; padding: calc(8 * var(--u)) calc(40 * var(--u)) 0 calc(191 * var(--u)); list-style: none;
	/* Bez natywnego przewijania (kółko/trackpad szłyby w poziomie i blokowały Lenis).
	   Sterowanie tylko strzałkami i przeciąganiem – patrz main.js. */
	overflow: hidden; scrollbar-width: none;
	cursor: grab; touch-action: pan-y; user-select: none; -webkit-user-select: none;
}
.signals__track.is-dragging { cursor: grabbing; }
.signals__track.is-dragging .signal__link { pointer-events: none; }
.signals__track::-webkit-scrollbar { display: none; }
.signal { flex: 0 0 calc(355 * var(--u)); transform: translate3d(var(--tx, 0px), 0, 0); will-change: transform; }
.signal__link { display: block; color: var(--neutral-900); transition: transform .6s cubic-bezier(.22, 1, .36, 1); }
@media (hover: hover) {
	.signal__link:hover { transform: translateY(calc(-6 * var(--u))); }
}
.signal__link:focus-visible { transform: translateY(calc(-6 * var(--u))); }
.signal__img { width: calc(355 * var(--u)); height: calc(355 * var(--u)); object-fit: cover; }
.signal__head {
	display: flex; align-items: flex-start; justify-content: space-between; gap: calc(16 * var(--u));
	margin-top: calc(18 * var(--u));
}
.signal__title { font-size: calc(28 * var(--u)); line-height: calc(34 * var(--u)); font-weight: 500; letter-spacing: -0.005em; }
.signal__plus {
	position: relative; flex: 0 0 calc(16 * var(--u)); width: calc(16 * var(--u)); height: calc(16 * var(--u)); margin-top: calc(6 * var(--u));
}
.signal__plus::before, .signal__plus::after {
	content: ""; position: absolute; left: 50%; top: 50%;
	background: var(--neutral-900); transform: translate(-50%, -50%);
}
.signal__plus::before { width: calc(16 * var(--u)); height: 1px; }
.signal__plus::after { width: 1px; height: calc(16 * var(--u)); }
.signal__text {
	display: block; max-width: calc(320 * var(--u)); margin-top: calc(2 * var(--u));
	font-size: calc(15.8 * var(--u)); line-height: calc(21 * var(--u));
	color: #4A463F;
}

.slider-arrow {
	position: absolute; top: calc(calc(40 * var(--u)) + calc(177 * var(--u))); z-index: 2;
	display: inline-flex; align-items: center; justify-content: center;
	width: calc(38 * var(--u)); height: calc(38 * var(--u)); padding: 0;
	border-radius: 50%; border: 1px solid currentColor; background: transparent;
	color: var(--cream-400); cursor: pointer;
	transform: translateY(-50%);
	transition: opacity .2s ease, background-color .2s ease;
}
.slider-arrow:hover:not(:disabled) { background: rgba(243, 236, 218, .15); }
.slider-arrow--prev { left: calc(40 * var(--u)); color: var(--neutral-500); }
.slider-arrow--next { right: calc(61 * var(--u)); }
.slider-arrow:disabled { opacity: .25; cursor: default; }

/* --------------------------------------------------------------------------
   Sekcja 4: ścieżka pacjenta – karty przypięte do ekranu, kolejna nachodzi na poprzednią.
   Pozycje poziome 1:1 z ramki "Homepage" (zdjęcie 400 × 534 na x 81 / 960, tekst na x 578 / 272).
   --e: wjazd karty (0 pod ekranem → 1 przypięta), --p: przykrycie przez następną (0 → 1).
   -------------------------------------------------------------------------- */
.steps {
	position: relative;
	margin: calc(68 * var(--u)) 0 calc(44 * var(--u));
	background: var(--slate-blue);
	color: #FFFFFF;
}
.steps__inner { margin: 0; padding: 0; list-style: none; }
.step {
	position: sticky; top: 0; z-index: calc(var(--i) + 1);
	height: 100vh; height: 100svh; min-height: calc(640 * var(--u));
	overflow: hidden; background: var(--slate-blue);
}
.step + .step { box-shadow: 0 calc(-30 * var(--u)) calc(60 * var(--u)) rgba(38, 35, 30, calc(var(--e, 1) * .2)); } /* cień rośnie, gdy karta wjeżdża */
/* Przykryta karta ciemnieje */
.step::after { content: ""; position: absolute; inset: 0; z-index: 2; background: var(--neutral-900); opacity: calc(var(--p, 0) * .5); pointer-events: none; }
.step__in {
	position: relative; height: 100%; max-width: var(--page-max); margin: 0 auto;
	transform: translateY(calc(var(--p, 0) * -4%)) scale(calc(1 - var(--p, 0) * .06));
	transform-origin: 50% 100%;
}
.step__media {
	position: absolute; left: calc(var(--x) * var(--u)); top: 50%;
	width: calc(400 * var(--u)); height: calc(534 * var(--u)); margin-top: calc(-267 * var(--u));
}
.step__frame { width: 100%; height: 100%; overflow: hidden; background: var(--neutral-700); }
.step__img {
	display: block; width: 100%; height: 100%; max-width: none;
	object-fit: cover; will-change: transform;
}
/* Zapas kadru: zdjęcie przesuwa się w ramce, gdy karta wjeżdża */
.has-motion .step__img { height: 118%; transform: translateY(calc(var(--e, 1) * -15%)); }
.has-motion .team__img { height: 118%; }
.step__body {
	position: absolute; left: calc(var(--tx) * var(--u)); top: 50%;
	width: calc(597 * var(--u)); transform: translateY(-50%);
}
.step__of { opacity: .45; }
.step__num { display: block; font-size: calc(30 * var(--u)); line-height: calc(34 * var(--u)); font-weight: 400; }
.step__title { margin-top: calc(23 * var(--u)); font-size: calc(49 * var(--u)); line-height: calc(58 * var(--u)); letter-spacing: -0.005em; }
.step__text { margin-top: calc(20 * var(--u)); font-size: calc(24 * var(--u)); line-height: calc(32 * var(--u)); }

/* --------------------------------------------------------------------------
   Sekcja 5: "Wiele specjalizacji. Jeden cel." (zdjęcie 440 × 588, tekst od x 585)
   -------------------------------------------------------------------------- */
.team { padding: calc(170 * var(--u)) 0 0; }
.team__inner {
	display: grid; grid-template-columns: calc(440 * var(--u)) calc(600 * var(--u));
	column-gap: calc(105 * var(--u)); align-items: center;
}
.team__media { width: calc(440 * var(--u)); height: calc(588 * var(--u)); }
.team__parallax, .team__frame { width: 100%; height: 100%; }
.team__parallax { will-change: transform; }
.team__frame { overflow: hidden; background: var(--neutral-300); }
.team__img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; will-change: transform; }
.team__title { font-size: calc(50 * var(--u)); line-height: calc(58 * var(--u)); letter-spacing: -0.01em; color: var(--neutral-900); }
.team__text { margin-top: calc(33 * var(--u)); font-size: calc(24 * var(--u)); line-height: calc(31.5 * var(--u)); color: var(--neutral-900); }
.team__cta { margin-top: calc(33 * var(--u)); }

/* --------------------------------------------------------------------------
   CTA: "Zrób pierwszy krok…" (wyśrodkowane, łuki 450 × 480 w tle)
   -------------------------------------------------------------------------- */
.cta { padding: calc(328 * var(--u)) 0 calc(227 * var(--u)); overflow: hidden; }
.cta__inner { position: relative; text-align: center; }
.cta__ring {
	position: absolute; left: 50%; top: -131px; z-index: 0;
	width: calc(450 * var(--u)); height: calc(480 * var(--u)); max-width: none;
	margin-left: -225px; pointer-events: none;
}
.cta__body { position: relative; z-index: 1; }
.cta__title { font-size: calc(64 * var(--u)); line-height: 1.2; letter-spacing: -0.01em; color: var(--neutral-900); }
.cta__actions { display: flex; justify-content: center; gap: calc(25 * var(--u)); margin-top: calc(25 * var(--u)); }
.btn--slate { --btn-ring: #A8CBD7; background: var(--slate-blue); color: #fff; }
.btn--slate:hover { background: #405D6E; }
.btn--slate:active { background: #314D5D; }

/* --------------------------------------------------------------------------
   Stopka (ramka "footer" 1360 × 519, marginesy 40, kolumny 693 / 920 / 1150)
   -------------------------------------------------------------------------- */
.site-footer {
	width: calc(100% - calc(80 * var(--u))); max-width: calc(1360 * var(--u));
	margin: 0 auto calc(40 * var(--u));
	background: var(--neutral-900); color: var(--cream-400);
	font-size: calc(16 * var(--u)); line-height: calc(20 * var(--u));
}
.site-footer a { color: inherit; transition: opacity .2s ease; }
.site-footer a:hover { opacity: .7; }
.site-footer__inner {
	display: grid;
	grid-template-columns: calc(653 * var(--u)) calc(227 * var(--u)) calc(230 * var(--u)) 1fr;
	grid-template-rows: calc(238 * var(--u)) calc(137 * var(--u)) auto;
	padding: calc(60 * var(--u)) calc(40 * var(--u)) calc(64 * var(--u));
}
.site-footer__logo { grid-column: 1; grid-row: 1 / 3; align-self: start; display: block; width: calc(168 * var(--u)); color: #F1EDE4; }
.site-footer__col--1 { grid-column: 2; grid-row: 1; }
.site-footer__col--2 { grid-column: 3; grid-row: 1; }
.site-footer__col--3 { grid-column: 4; grid-row: 1; }
.site-footer__logo svg { width: 100%; height: auto; }
.site-footer__heading { color: var(--dusty-blue); }
.site-footer__list { display: flex; flex-direction: column; gap: calc(13 * var(--u)); margin-top: calc(17 * var(--u)); }
.site-footer__address { grid-column: 2; grid-row: 2; margin-left: -4px; }
.site-footer__address address { margin-top: calc(12 * var(--u)); font-style: normal; line-height: calc(21 * var(--u)); }
.site-footer__mail { grid-column: 3; grid-row: 2; align-self: start; margin-top: calc(32 * var(--u)); line-height: calc(21 * var(--u)); }
.site-footer__phone { grid-column: 4; grid-row: 2; align-self: start; margin-top: calc(32 * var(--u)); margin-left: -3px; line-height: calc(21 * var(--u)); }
.site-footer__copy { grid-column: 1; grid-row: 3; }
.site-footer .site-footer__legal { grid-row: 3; color: #8C877C; }
.site-footer__legal--1 { grid-column: 2; margin-left: -4px; }
.site-footer__legal--2 { grid-column: 3; }
.site-footer__legal--3 { grid-column: 4; margin-left: -3px; }

/* ==========================================================================
   Strona CENNIK (ramka Figma "Cennik")
   ========================================================================== */
/* Hero podstrony 1440 × 800, treść wyśrodkowana */
.page-hero {
	position: relative; height: calc(760 * var(--u)); /* Figma 11.11: 760 (wcześniej 800) */
	display: flex; align-items: center; justify-content: center;
	text-align: center; color: var(--cream-400);
	overflow: hidden; isolation: isolate;
}
.page-hero__content { position: relative; padding-top: calc(8 * var(--u)); }
.page-hero__title { font-size: calc(66 * var(--u)); line-height: calc(79 * var(--u)); letter-spacing: -0.01em; }
.page-hero__lead { margin-top: calc(27 * var(--u)); font-size: calc(23.3 * var(--u)); line-height: calc(35 * var(--u)); }
.page-hero__actions { display: flex; justify-content: center; gap: calc(24 * var(--u)); margin-top: calc(24 * var(--u)); }

/* Ceny usług – kategorie rozwijane */
.prices { background: var(--cream-200); padding: calc(97 * var(--u)) 0 calc(96 * var(--u)); }
.prices__inner { width: calc(1248 * var(--u)); margin-left: calc(60 * var(--u)); }
.prices__title { font-size: calc(39 * var(--u)); line-height: calc(48 * var(--u)); letter-spacing: -0.01em; color: var(--neutral-900); }
.prices__groups { margin-top: calc(30 * var(--u)); }
.price-group { border-bottom: 1px solid #E0D9C9; transition: border-color .3s ease; }
/* linia zostaje (1 px), tylko znika kolorem – bez skoku po zwinięciu */
.price-group[open]:not(.is-closing) { border-bottom-color: transparent; }
.price-group__head {
	display: flex; align-items: center; justify-content: space-between;
	height: calc(89 * var(--u)); padding: 0 calc(41 * var(--u)) 0 calc(24 * var(--u));
	list-style: none; cursor: pointer;
	font-size: calc(25 * var(--u)); line-height: calc(30 * var(--u)); color: var(--neutral-900);
}
.price-group__head::-webkit-details-marker { display: none; }
.price-group__head:hover .price-group__title { opacity: .75; }
.price-group__icon { position: relative; width: calc(14 * var(--u)); height: calc(14 * var(--u)); flex: 0 0 auto; }
.price-group__icon::before, .price-group__icon::after {
	content: ""; position: absolute; left: 50%; top: 50%;
	background: var(--neutral-900); transform: translate(-50%, -50%);
	transition: transform .3s ease;
}
.price-group__icon::before { width: calc(14 * var(--u)); height: calc(1.5 * var(--u)); }
.price-group__icon::after { width: calc(1.5 * var(--u)); height: calc(14 * var(--u)); }
.price-group[open]:not(.is-closing) .price-group__icon::after { transform: translate(-50%, -50%) scaleY(0); }
/* Ciało kategorii: zewnętrzny element animuje wysokość, wewnętrzny trzyma odstępy */
.price-group__body { overflow: hidden; }
.price-group__inner { padding: 0 calc(20 * var(--u)) calc(58 * var(--u)) calc(28 * var(--u)); margin-top: calc(-5 * var(--u)); }
.price-list { margin: 0; padding: 0; list-style: none; }
.price-list__item {
	display: flex; align-items: center; justify-content: space-between; gap: calc(24 * var(--u));
	height: calc(84 * var(--u)); padding-right: calc(9 * var(--u));
	border-bottom: 1px solid #E0D9C9;
	font-size: calc(19.6 * var(--u)); line-height: calc(26 * var(--u));
}
.price-list__item:last-child { border-bottom: 0; }
.price-list__name { color: var(--neutral-900); }
.price-list__price { color: #565147; white-space: nowrap; }
.price-group__actions { display: flex; gap: calc(25 * var(--u)); margin-top: calc(16 * var(--u)); }

/* Ceny pakietów – karty na niebieskim tle */
.packages { background: var(--dusty-blue); padding: calc(81 * var(--u)) 0 calc(100 * var(--u)); color: var(--cream-400); }
.packages__inner { width: calc(1248 * var(--u)); margin-left: calc(40 * var(--u)); }
.packages__title { font-size: calc(40 * var(--u)); line-height: calc(48 * var(--u)); letter-spacing: -0.01em; }
.packages__lead { margin-top: calc(17 * var(--u)); font-size: calc(20 * var(--u)); line-height: calc(28 * var(--u)); }
.packages__grid {
	display: grid; grid-template-columns: repeat(2, 1fr); gap: calc(24 * var(--u));
	margin: calc(32 * var(--u)) 0 0; padding: 0; list-style: none;
}
.pkg {
	display: flex; flex-direction: column;
	min-height: calc(320 * var(--u)); padding: calc(24 * var(--u));
	background: #6F8D9E;
	transition: background-color .35s ease;
}
.pkg:hover { background: var(--slate-blue); }
.pkg__title { font-size: calc(23.3 * var(--u)); line-height: calc(30 * var(--u)); }
.pkg__bottom { margin-top: auto; }
.pkg__price { font-size: calc(49.5 * var(--u)); line-height: calc(52 * var(--u)); letter-spacing: -0.01em; }
.pkg__label { margin-top: calc(14 * var(--u)); font-size: calc(15 * var(--u)); line-height: calc(20 * var(--u)); opacity: .85; }
.pkg__chips { display: flex; flex-direction: column; gap: calc(8 * var(--u)); margin-top: calc(6 * var(--u)); }
.pkg__chip-row { display: flex; flex-wrap: wrap; gap: calc(8 * var(--u)); margin: 0; padding: 0; list-style: none; }
.pkg__chip {
	display: inline-flex; align-items: center; height: calc(32 * var(--u)); padding: 0 calc(13 * var(--u));
	border: 1px solid var(--cream-400); border-radius: var(--radius-pill);
	font-size: calc(12.4 * var(--u)); line-height: 1; font-weight: 400;
}
.packages__footer { display: flex; align-items: center; justify-content: space-between; margin-top: calc(53 * var(--u)); }
.packages__ask { font-size: calc(24 * var(--u)); line-height: calc(30 * var(--u)); }

/* Pakiety › "Sprawdź skład pakietów" (ramka "Pakiety", plik 11.11): Slate Blue, karty 630 × 320 z obrysem */
.packages--page { background: var(--slate-blue); padding: calc(82 * var(--u)) 0 calc(161 * var(--u)); }
.packages--page .packages__inner { width: auto; margin: 0 calc(40 * var(--u)); }
.packages--page .packages__head .btn { margin-top: calc(14 * var(--u)); }
.packages--page .packages__grid { gap: calc(20 * var(--u)); margin-top: calc(31 * var(--u)); }
.packages--page .pkg { background: transparent; border: 1px solid rgba(255, 255, 255, .28); }
.packages--page .pkg:hover, .packages--page .pkg:target { background: rgba(255, 255, 255, .085); } /* :target – karta z linku w menu */

/* Filozofia (ramka "Filozofia", plik 11.11): baner na jasnym tle ze zdjęciem 1360 × 600 */
.fl-hero { position: relative; padding-top: calc(238 * var(--u)); }
.fl-hero__title { font-size: calc(64 * var(--u)); line-height: calc(72 * var(--u)); font-weight: 400; letter-spacing: -0.02em; }
.fl-hero__lead { margin-top: calc(13 * var(--u)); font-size: calc(20 * var(--u)); line-height: calc(27 * var(--u)); color: var(--k-text); }
.fl-hero__media { height: calc(600 * var(--u)); margin-top: calc(77 * var(--u)); overflow: hidden; background: var(--neutral-500); }
.fl-hero__media img { width: 100%; height: 100%; object-fit: cover; }

/* Manifest: nagłówek do prawej w kolumnie 621, tekst w kolumnie 585 po odstępie 120 */
.fl-manifest { padding: calc(78 * var(--u)) 0 calc(119 * var(--u)); }
.fl-manifest__inner { display: grid; grid-template-columns: calc(621 * var(--u)) calc(585 * var(--u)); column-gap: calc(120 * var(--u)); align-items: start; }
.fl-manifest__title { margin-top: calc(1 * var(--u)); text-align: right; font-size: calc(48 * var(--u)); line-height: calc(56 * var(--u)); font-weight: 400; letter-spacing: -0.01em; }
.fl-manifest__text p { font-size: calc(20 * var(--u)); line-height: calc(28 * var(--u)); color: var(--k-text); }
.fl-manifest__text p + p { margin-top: calc(28 * var(--u)); }
.fl-manifest__text .fl-manifest__end { font-weight: 500; color: var(--k-text); }

/* Wartości: blok Slate Blue 1360 × 600, znak VMA (181 × 180) i link po lewej, siatka 2 × 2 od x 472 */
.fl-values__box { position: relative; display: flex; height: calc(600 * var(--u)); padding: calc(119 * var(--u)) 0 0 calc(432 * var(--u)); background: var(--slate-blue); color: var(--cream-400); }
.fl-values__mark { position: absolute; left: calc(61 * var(--u)); top: calc(60 * var(--u)); width: calc(181 * var(--u)); height: auto; }
.fl-values__link { position: absolute; left: calc(61 * var(--u)); bottom: calc(93 * var(--u)); color: var(--cream-400); border-bottom-color: var(--cream-400); }
.fl-values__grid { display: grid; grid-template-columns: calc(380 * var(--u)) calc(380 * var(--u)); column-gap: calc(83 * var(--u)); row-gap: calc(72 * var(--u)); align-content: start; margin: 0; padding: 0; list-style: none; }
.fl-value__num { display: block; font-size: calc(14 * var(--u)); line-height: calc(18 * var(--u)); opacity: .75; }
.fl-value__title { margin-top: calc(12 * var(--u)); font-size: calc(20 * var(--u)); line-height: calc(28 * var(--u)); font-weight: 500; }
.fl-value__text { margin-top: calc(10 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(22 * var(--u)); }

/* "VMA to ludzie…": ramka 1360 × 600 z cytatem, zdjęcia 420 × 560 (x 645, −70) i 315 × 420 (x 1005, 371) */
.fl-people { padding: calc(120 * var(--u)) 0 calc(242 * var(--u)); }
.fl-people__title { font-size: calc(48 * var(--u)); line-height: calc(58 * var(--u)); font-weight: 400; letter-spacing: -0.01em; }
.fl-people__lead { margin-top: calc(22 * var(--u)); font-size: calc(20 * var(--u)); line-height: calc(28 * var(--u)); color: var(--k-text); }
.fl-people__box { position: relative; height: calc(600 * var(--u)); margin-top: calc(39 * var(--u)); padding: calc(193 * var(--u)) calc(40 * var(--u)) 0; border: 1px solid #B0ADA4; }
.fl-people__quote { width: calc(500 * var(--u)); }
.fl-people__quote blockquote { margin: 0; }
.fl-people__quote p { font-size: calc(20 * var(--u)); line-height: calc(30 * var(--u)); font-style: italic; color: var(--neutral-900); }
.fl-people__quote .btn { margin-top: calc(27 * var(--u)); }
.fl-person { position: absolute; margin: 0; overflow: hidden; background: var(--neutral-500); }
.fl-person--1 { z-index: 2; left: calc(644 * var(--u)); top: calc(-70 * var(--u)); width: calc(420 * var(--u)); height: calc(560 * var(--u)); }
.fl-person--2 { left: calc(1004 * var(--u)); top: calc(371 * var(--u)); width: calc(315 * var(--u)); height: calc(420 * var(--u)); }
.fl-person img { width: 100%; height: 100%; object-fit: cover; }
.fl-person__name, .fl-person__spec { position: absolute; display: flex; align-items: center; white-space: nowrap; }
.fl-person__name { top: 0; height: calc(46 * var(--u)); padding: 0 calc(20 * var(--u)); background: var(--neutral-900); color: var(--cream-400); font-size: calc(20 * var(--u)); }
.fl-person__spec { bottom: 0; height: calc(37 * var(--u)); padding: 0 calc(14 * var(--u)); background: var(--slate-blue); color: #FFFFFF; font-size: calc(14 * var(--u)); }
.fl-person--1 .fl-person__name { left: 0; }
.fl-person--1 .fl-person__spec { right: 0; }
.fl-person--2 .fl-person__name { right: 0; }
.fl-person--2 .fl-person__spec { left: 0; }

/* Pakiety › "Jak wybrać pakiet?": karty 440 × 440, odstęp 20; najechanie = Slate Blue (karta 01 w projekcie) */
.pk-steps { padding: calc(80 * var(--u)) 0 calc(119 * var(--u)); }
.pk-steps__title { font-size: calc(64 * var(--u)); line-height: calc(77 * var(--u)); font-weight: 400; letter-spacing: -0.02em; }
.pk-steps__lead { margin-top: calc(21 * var(--u)); font-size: calc(20 * var(--u)); line-height: calc(30 * var(--u)); color: #565147; }
.pk-steps__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(20 * var(--u)); margin: calc(60 * var(--u)) 0 0; padding: 0; list-style: none; }
.pk-step__in {
	display: flex; flex-direction: column; justify-content: space-between;
	height: calc(440 * var(--u)); padding: calc(42 * var(--u)) calc(25 * var(--u)) calc(30 * var(--u));
	background: var(--cream-400); color: var(--neutral-900);
	transition: background-color .7s ease, color .7s ease;
}
.pk-step__num { font-size: calc(94 * var(--u)); line-height: 1; letter-spacing: -0.02em; }
.pk-step__title { display: block; font-size: calc(32 * var(--u)); line-height: calc(40 * var(--u)); letter-spacing: -0.01em; }
.pk-step__text { display: block; margin-top: calc(14 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(22 * var(--u)); }
/* CTA "Nie wiesz, od czego zacząć?" – jak w Cenniku, inne odstępy w ramce Pakiety */
.cta.cta--pakiety { padding: calc(259 * var(--u)) 0 calc(217 * var(--u)); }
.cta--pakiety .cta__body .cta__lead { margin-top: calc(22 * var(--u)); }
.cta--pakiety .cta__body .cta__actions { margin-top: calc(24 * var(--u)); }
.pk-step__in:focus-visible { background: var(--slate-blue); color: var(--cream-400); }
@media (hover: hover) {
	.pk-step__in:hover { background: var(--slate-blue); color: var(--cream-400); }
}
.btn--lg { min-height: calc(62 * var(--u)); padding: 0 calc(28 * var(--u)); font-size: calc(18 * var(--u)); }

/* CTA w wersji podstrony */
.cta--compact { padding: calc(218 * var(--u)) 0 calc(219 * var(--u)); }
.cta__lead { margin-top: calc(25 * var(--u)); font-size: calc(22 * var(--u)); line-height: calc(31 * var(--u)); color: var(--neutral-900); }
.btn--outline { background: transparent; color: var(--neutral-900); border: 1px solid var(--neutral-900); }
.btn--outline:hover { background: var(--neutral-900); color: var(--cream-400); }

/* Wejście tekstu (tylko gdy JS i ruch są dozwolone) */
.has-motion [data-reveal] > * {
	opacity: 0; transform: translateY(calc(32 * var(--u)));
	transition: opacity 1.1s cubic-bezier(.22,.61,.36,1), transform 1.4s cubic-bezier(.16,1,.3,1);
}
.has-motion [data-reveal] > :nth-child(2) { transition-delay: .12s; }
.has-motion [data-reveal] > :nth-child(3) { transition-delay: .24s; }
.has-motion [data-reveal].is-visible > * { opacity: 1; transform: none; }
.has-motion .step__frame { opacity: 0; transition: opacity 1.4s ease; }
.has-motion .step__media.is-visible .step__frame { opacity: 1; }

/* --------------------------------------------------------------------------
   Responsywność (projekt jest desktop-only, poniżej dopasowania własne)
   -------------------------------------------------------------------------- */

/* --------------------------------------------------------------------------
   Pasek menu na jasnym tle (np. Kontakt)
   -------------------------------------------------------------------------- */
.nav--dark, .nav--dark .nav__logo, .nav--dark .nav__link { color: var(--neutral-900); }
.nav--dark .nav__item--cta .nav__link { border-bottom-color: var(--neutral-900); }
.nav--dark .nav__link:hover { opacity: 1; color: #405D6E; } /* DS › Link button › Hover */

.accent { color: var(--slate-blue); }

/* --------------------------------------------------------------------------
   Kontakt (Figma "VMA Life Clinic copy 02.11" › Kontakt, 1440 × 3289)
   -------------------------------------------------------------------------- */
.site-main--light { --k-text: #565147; --k-line: #E0D9C9; --k-input: #C4BCAB; }

/* Hero: tekst + karty (638) | galeria (680 × 652), od y 110 */
.k-hero { position: relative; padding-top: calc(110 * var(--u)); }
.k-hero__inner { display: grid; grid-template-columns: calc(638 * var(--u)) calc(680 * var(--u)); column-gap: calc(42 * var(--u)); }
.k-hero__main { display: flex; flex-direction: column; justify-content: space-between; gap: calc(40 * var(--u)); }
.k-hero__title { margin-top: calc(18 * var(--u)); font-size: calc(64 * var(--u)); line-height: calc(78 * var(--u)); font-weight: 400; letter-spacing: -0.01em; }
.k-hero__lead { margin-top: calc(18 * var(--u)); font-size: calc(19.5 * var(--u)); line-height: calc(30 * var(--u)); color: #565147; }
.k-hero__cards { display: grid; grid-template-columns: 1fr 1fr; gap: calc(20 * var(--u)); }
.k-card {
	position: relative; display: flex; flex-direction: column;
	height: calc(158 * var(--u)); padding: calc(20 * var(--u));
	color: var(--neutral-900); transition: background-color .5s ease, border-color .5s ease, color .5s ease;
}
.k-card--slate { background: var(--slate-blue); color: var(--cream-400); }
.k-card--outline { border: 1px solid #DAD6CB; }
.k-card__label { font-size: calc(14.5 * var(--u)); line-height: calc(18 * var(--u)); color: #B9C4C8; }
.k-card--outline .k-card__label { color: #918D84; }
.k-card__title { margin-top: calc(4 * var(--u)); font-size: calc(23.3 * var(--u)); line-height: calc(26 * var(--u)); }
.k-card__icon { position: absolute; right: calc(20 * var(--u)); bottom: calc(20 * var(--u)); width: calc(28 * var(--u)); height: auto; transition: transform .4s cubic-bezier(.22,1,.36,1); }
a.k-card:hover .k-card__icon, a.k-card:focus-visible .k-card__icon { transform: translateX(calc(4 * var(--u))); }
a.k-card--outline:hover { border-color: var(--neutral-900); }

.k-gallery { position: relative; height: calc(652 * var(--u)); overflow: hidden; background: var(--neutral-300); }
.k-gallery__slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.2s ease; }
.k-gallery__slide.is-active { opacity: 1; }
.k-gallery__img { width: 100%; height: 100%; object-fit: cover; }
.k-gallery__bars { position: absolute; top: calc(30 * var(--u)); right: calc(40 * var(--u)); z-index: 2; display: flex; gap: calc(10 * var(--u)); }
.k-gallery__bar {
	position: relative; width: calc(46 * var(--u)); height: calc(4 * var(--u)); padding: 0; border: 0;
	border-radius: var(--radius-pill); background: var(--soft-sand); overflow: hidden; cursor: pointer;
}
.k-gallery__bar::after { content: ""; position: absolute; inset: calc(-10 * var(--u)) 0; } /* większe pole kliknięcia */
.k-gallery__bar span { position: absolute; inset: 0; background: var(--dusty-blue); transform: scaleX(0); transform-origin: 0 50%; }
.k-gallery__bar.is-done span { transform: scaleX(1); }
.k-gallery__bar.is-active span { transform: scaleX(1); }
.k-gallery.is-playing .k-gallery__bar.is-active span { animation: k-progress var(--k-dur, 6s) linear both; }
@keyframes k-progress { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* Jak do nas trafić: mapa 816 | info 400, odstęp 80 */
.k-visit { padding-top: calc(120 * var(--u)); }
.k-visit__title { font-size: calc(48 * var(--u)); line-height: calc(58 * var(--u)); font-weight: 400; letter-spacing: -0.02em; }
.k-visit__grid { display: grid; grid-template-columns: calc(816 * var(--u)) calc(400 * var(--u)); column-gap: calc(80 * var(--u)); margin-top: calc(38 * var(--u)); }
.k-map { position: relative; display: flex; flex-direction: column; align-items: center; height: calc(440 * var(--u)); overflow: hidden; background: #F3EEE0; }
.k-map__rings i { position: absolute; left: 50%; top: calc(183.5 * var(--u)); border: 1px solid #D8D8CF; border-radius: 50%; transform: translate(-50%, -50%); }
.k-map__rings i:nth-child(1) { width: calc(200 * var(--u)); height: calc(200 * var(--u)); }
.k-map__rings i:nth-child(2) { width: calc(320 * var(--u)); height: calc(320 * var(--u)); }
.k-map__rings i:nth-child(3) { width: calc(440 * var(--u)); height: calc(440 * var(--u)); }
.k-map__center { position: relative; display: flex; flex-direction: column; align-items: center; margin-top: calc(156 * var(--u)); }
.k-map__pin { display: grid; place-items: center; width: calc(56 * var(--u)); height: calc(56 * var(--u)); border-radius: 50%; background: var(--slate-blue); color: var(--cream-400); }
.k-map__pin svg { width: calc(20 * var(--u)); height: auto; }
.k-map__title { margin-top: calc(11 * var(--u)); font-size: calc(23.6 * var(--u)); line-height: calc(30 * var(--u)); }
.k-map__actions { position: absolute; bottom: calc(27 * var(--u)); left: 0; right: 0; display: flex; justify-content: center; gap: calc(12 * var(--u)); }
/* Mapa na żywo (Leaflet): kafelki OSM w odcieniach kremu, pinezki i podpisy w kolorach marki */
.k-map__actions { z-index: 500; }
.k-map__actions { pointer-events: none; }
.k-map__actions .btn { pointer-events: auto; }
.k-map--live .k-map__canvas { position: absolute; inset: 0; z-index: 0; background: #F3EEE0; font: inherit; }
.k-map__canvas .leaflet-tile-pane { filter: grayscale(1) sepia(.22) contrast(.88) brightness(1.06); }
.k-map__canvas .leaflet-control-zoom { margin: calc(20 * var(--u)) calc(20 * var(--u)) 0 0; border: 0; box-shadow: none; }
.k-map__canvas .leaflet-control-zoom a { width: calc(36 * var(--u)); height: calc(36 * var(--u)); line-height: calc(34 * var(--u)); border: 0; border-radius: 50%; background: var(--cream-200); color: var(--neutral-900); font: 300 calc(20 * var(--u)) / calc(34 * var(--u)) var(--font-sans); }
.k-map__canvas .leaflet-control-zoom a + a { margin-top: calc(6 * var(--u)); }
.k-map__canvas .leaflet-control-zoom a:hover { background: var(--slate-blue); color: var(--cream-400); }
.k-map__canvas .leaflet-control-attribution { background: rgba(251, 247, 236, .8); font-size: 10px; color: var(--neutral-700); }
.k-map__canvas .leaflet-control-attribution a { color: inherit; }
.k-pin { position: relative; }
.k-pin__dot { position: absolute; left: calc(-28 * var(--u)); top: calc(-28 * var(--u)); display: grid; place-items: center; width: calc(56 * var(--u)); height: calc(56 * var(--u)); border-radius: 50%; background: var(--slate-blue); color: var(--cream-400); box-shadow: 0 0 0 calc(10 * var(--u)) rgba(91, 116, 130, .18); }
.k-pin__dot svg { width: calc(20 * var(--u)); height: auto; }
.k-pin__title { position: absolute; left: 0; top: calc(40 * var(--u)); transform: translateX(-50%); padding: calc(6 * var(--u)) calc(14 * var(--u)); white-space: nowrap; background: var(--cream-200); border-radius: var(--radius-pill); font-size: calc(16 * var(--u)); line-height: calc(22 * var(--u)); color: var(--neutral-900); }
.k-pin__park { position: absolute; left: calc(-18 * var(--u)); top: calc(-18 * var(--u)); display: flex; align-items: center; justify-content: center; gap: 1px; width: calc(36 * var(--u)); height: calc(36 * var(--u)); border: 1px solid var(--slate-blue); border-radius: 50%; background: var(--cream-200); color: var(--slate-blue); font-size: calc(13 * var(--u)); line-height: 1; font-weight: 500; transition: background-color .3s ease, color .3s ease, transform .3s ease; }
.k-pin__park b { font-weight: 600; }
.k-pin:hover .k-pin__park, .k-pin.is-active .k-pin__park, .k-pin:focus-visible .k-pin__park { background: var(--slate-blue); color: var(--cream-400); transform: scale(1.12); }
.k-popup .leaflet-popup-content-wrapper { border-radius: calc(8 * var(--u)); background: var(--cream-200); box-shadow: 0 calc(8 * var(--u)) calc(24 * var(--u)) rgba(38, 35, 30, .14); }
.k-popup .leaflet-popup-content { margin: calc(12 * var(--u)) calc(16 * var(--u)); font: inherit; font-size: calc(14 * var(--u)); line-height: calc(20 * var(--u)); color: var(--k-text); }
.k-popup .leaflet-popup-content strong { display: block; font-weight: 500; color: var(--neutral-900); }
.k-popup .leaflet-popup-tip { background: var(--cream-200); }
[data-map-spot] { cursor: pointer; }
[data-map-spot]:hover .k-list__name, [data-map-spot]:focus-visible .k-list__name { color: var(--slate-blue); }

.k-label { font-size: calc(14 * var(--u)); line-height: calc(18 * var(--u)); font-weight: 500; color: var(--slate-blue); }
.k-visit__lists { display: grid; grid-template-columns: calc(400 * var(--u)) 1fr; column-gap: calc(24 * var(--u)); margin-top: calc(38 * var(--u)); }
.k-list__items { margin: calc(17 * var(--u)) 0 0; padding: 0; list-style: none; }
.k-list__items li { display: flex; flex-direction: column; font-size: calc(15.7 * var(--u)); line-height: calc(24 * var(--u)); color: var(--k-text); }
.k-list__items li + li { margin-top: calc(24 * var(--u)); }
.k-list__num { display: inline-block; margin-right: calc(8 * var(--u)); }
.k-list__note { margin-top: calc(24 * var(--u)); font-size: calc(15.7 * var(--u)); line-height: calc(24 * var(--u)); color: var(--k-text); }

.k-info__block { padding: calc(24 * var(--u)) 0 calc(24 * var(--u)); border-bottom: 1px solid var(--k-line); }
.k-info__block:first-child { padding-top: 0; }
.k-info__block:last-child { border-bottom: 0; }
.k-info__address { margin-top: calc(12 * var(--u)); font-style: normal; font-size: calc(27.5 * var(--u)); line-height: calc(36 * var(--u)); }
.k-info__phone { display: inline-block; margin-top: calc(14 * var(--u)); font-size: calc(28 * var(--u)); line-height: calc(36 * var(--u)); color: var(--neutral-900); }
.k-info__email { display: block; margin-top: calc(14 * var(--u)); font-size: calc(15.4 * var(--u)); line-height: calc(24 * var(--u)); color: var(--k-text); }
.k-info__phone:hover, .k-info__email:hover { opacity: .7; }
.k-hours { margin: calc(12 * var(--u)) 0 0; }
.k-hours div { display: flex; justify-content: space-between; gap: calc(16 * var(--u)); font-size: calc(15.2 * var(--u)); line-height: calc(36 * var(--u)); }
.k-hours dd { margin: 0; }
.k-info__text { margin-top: calc(14 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(24 * var(--u)); color: var(--k-text); }
.k-info__btn { margin-top: calc(24 * var(--u)); }

/* Formularz: nagłówek | formularz 660 */
.k-form { padding: calc(183 * var(--u)) 0 calc(160 * var(--u)); }
.k-form__inner { display: grid; grid-template-columns: 1fr calc(660 * var(--u)); column-gap: calc(40 * var(--u)); align-items: start; }
.k-form__title { margin-top: calc(1 * var(--u)); font-size: calc(50.2 * var(--u)); line-height: calc(57 * var(--u)); font-weight: 400; letter-spacing: -0.02em; }
.k-form__form { display: flex; flex-direction: column; gap: calc(24 * var(--u)); }
.k-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: calc(16 * var(--u)); }
.k-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.k-field { display: flex; flex-direction: column; gap: calc(6 * var(--u)); }
.k-field__label { font-size: calc(12 * var(--u)); line-height: calc(16 * var(--u)); font-weight: 500; }
.k-field__input {
	width: 100%; height: calc(52 * var(--u)); padding: 0 calc(16 * var(--u));
	border: 1px solid var(--k-input); border-radius: 0; background: transparent;
	font: inherit; font-size: calc(15.6 * var(--u)); color: var(--neutral-900);
	transition: border-color .25s ease, background-color .25s ease;
	-webkit-appearance: none; appearance: none;
}
.k-field__input::placeholder { color: var(--neutral-700); opacity: 1; }
/* DS › Input / Dropdown: Default (Neutral 300), Hover (Neutral 700), Focus (Slate Blue), Error, Disabled */
.k-field__input { background: var(--cream-100); border-color: var(--neutral-300); }
.k-field__input:hover { border-color: var(--neutral-700); }
.k-field__input:focus { outline: none; border-color: var(--slate-blue); box-shadow: inset 0 0 0 1px var(--slate-blue); background: var(--cream-100); }
.k-field__input:disabled { background: #EAE3D6; border-color: #E1DACC; color: var(--neutral-500); cursor: not-allowed; }
.k-field:has(.k-field__input:disabled) .k-field__label { color: var(--neutral-500); }
.k-field.is-invalid .k-field__input { border-color: var(--color-error); box-shadow: none; }
.k-field.is-invalid .k-field__input:focus { box-shadow: inset 0 0 0 1px var(--color-error); }
.k-field__error, .k-field__help { font-size: calc(12 * var(--u)); line-height: calc(16 * var(--u)); color: var(--neutral-700); }
.k-field__error { color: var(--color-error); }
.k-consent.is-invalid .k-consent__box { border-color: var(--color-error); }
.k-field__input--area { height: calc(160 * var(--u)); padding-top: calc(14 * var(--u)); padding-bottom: calc(14 * var(--u)); resize: none; line-height: calc(24 * var(--u)); }
.k-field__select { position: relative; display: block; }
.k-field__select select { padding-right: calc(48 * var(--u)); cursor: pointer; color: #686054; }
.k-field__select svg { position: absolute; right: calc(18 * var(--u)); top: 50%; width: calc(14 * var(--u)); height: auto; transform: translateY(-50%); pointer-events: none; color: var(--neutral-900); }
.k-consent { position: relative; display: flex; align-items: flex-start; gap: calc(10 * var(--u)); cursor: pointer; }
.k-consent input { position: absolute; opacity: 0; width: calc(20 * var(--u)); height: calc(20 * var(--u)); margin: 0; }
.k-consent__box { flex: none; width: calc(20 * var(--u)); height: calc(20 * var(--u)); border: 1px solid var(--slate-blue); border-radius: calc(2 * var(--u)); transition: background-color .2s ease, border-color .2s ease; }
.k-consent input:checked + .k-consent__box { background: var(--slate-blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='m5.5 10.2 3 3 6-6.4' fill='none' stroke='%23F3ECDA' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% no-repeat; border-color: var(--slate-blue); }
.k-consent input:focus-visible + .k-consent__box { outline: 2px solid var(--slate-blue); outline-offset: 2px; }
.k-consent__text { margin-top: calc(1 * var(--u)); font-size: calc(13.2 * var(--u)); letter-spacing: -0.015em; line-height: calc(20 * var(--u)); color: var(--k-text); }
.k-form__submit { align-self: flex-start; margin-top: calc(-1 * var(--u)); }
.k-form__notice { padding: calc(14 * var(--u)) calc(16 * var(--u)); font-size: calc(15 * var(--u)); line-height: calc(22 * var(--u)); }
.k-form__notice--ok { background: #E3EAEE; color: var(--slate-blue); }
.k-form__notice--error { background: #F3E3E3; color: var(--burgundy-600, #65141D); }


/* --------------------------------------------------------------------------
   Podstrona oferty (szablon wielokrotnego użytku; wzór: Figma › Diagnostyka 1440 × 4069)
   -------------------------------------------------------------------------- */
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Baner 1440 × 800: tytuł po lewej, opis + przycisk od x 783 */
.o-hero { position: relative; height: calc(800 * var(--u)); overflow: hidden; color: var(--cream-400); background: var(--neutral-500); }
.o-hero__bg { position: absolute; inset: 0; }
.o-hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.o-hero__inner {
	position: absolute; left: 0; right: 0; bottom: calc(49 * var(--u));
	display: grid; grid-template-columns: calc(743 * var(--u)) 1fr; align-items: start;
}
.o-hero__title { margin-top: calc(-16 * var(--u)); font-size: calc(96 * var(--u)); line-height: 1; font-weight: 400; letter-spacing: -0.02em; }
.o-hero__side { display: flex; flex-direction: column; align-items: flex-start; max-width: calc(560 * var(--u)); }
.o-hero__lead { font-size: calc(19.5 * var(--u)); line-height: calc(28 * var(--u)); }
.o-hero__side .btn { margin-top: calc(24 * var(--u)); }

/* Zakres: nagłówek | opis, potem zdjęcie 680 × 652 | akordeon */
.o-scope { padding-top: calc(160 * var(--u)); }
.o-scope__head { display: grid; grid-template-columns: calc(744 * var(--u)) 1fr; align-items: start; }
.o-scope__title { font-size: calc(48.3 * var(--u)); line-height: calc(59 * var(--u)); font-weight: 400; letter-spacing: -0.02em; }
.o-scope__lead { max-width: calc(570 * var(--u)); margin-top: calc(2 * var(--u)); font-size: calc(19.5 * var(--u)); line-height: calc(28 * var(--u)); color: var(--k-text); }
.o-scope__body { display: grid; grid-template-columns: calc(680 * var(--u)) 1fr; column-gap: calc(56 * var(--u)); align-items: start; margin-top: calc(78 * var(--u)); }
.o-scope__body--no-img { grid-template-columns: 1fr; }
.o-scope__media { height: calc(652 * var(--u)); overflow: hidden; background: var(--neutral-300); }
.o-scope__img { width: 100%; height: 100%; object-fit: cover; }

.o-acc__item { border-bottom: 1px solid var(--k-line); }
.o-acc__head {
	display: flex; align-items: center; justify-content: space-between; gap: calc(24 * var(--u));
	padding: calc(27 * var(--u)) calc(6 * var(--u)) calc(26 * var(--u)) 0; cursor: pointer; list-style: none;
}
.o-acc__head::-webkit-details-marker { display: none; }
.o-acc__item:first-child .o-acc__head { padding-top: calc(3 * var(--u)); }
/* dolny odstęp nagłówka zmienia się razem z animacją treści (main.js), więc nic nie przeskakuje */
.o-acc__head { transition: padding-bottom var(--acc-dur, .45s) cubic-bezier(.22,.61,.36,1); }
.o-acc__item[open]:not(.is-closing) .o-acc__head { padding-bottom: 0; }
.o-acc__title { font-size: calc(24 * var(--u)); line-height: calc(30 * var(--u)); font-weight: 500; letter-spacing: -0.015em; transition: opacity .2s ease; }
.o-acc__head:hover .o-acc__title { opacity: .7; }
.o-acc__chev { flex: none; width: calc(14 * var(--u)); height: auto; transition: transform .45s cubic-bezier(.22,1,.36,1); }
.o-acc__item[open]:not(.is-closing) .o-acc__chev { transform: rotate(180deg); }
.o-acc__body { overflow: hidden; }
.o-acc__inner { padding: calc(15 * var(--u)) 0 calc(23 * var(--u)); }
.o-acc__text { max-width: calc(470 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(23.5 * var(--u)); }
.o-acc__btn { margin-top: calc(22 * var(--u)); }

/* Powiązane pakiety: nagłówek do prawej, linia od lewej krawędzi do 1400, 3 karty 400 × 471 */
.o-pkg { padding-top: calc(160 * var(--u)); }
.o-pkg__head { display: flex; flex-direction: column; align-items: flex-end; text-align: right; }
.o-pkg__title { font-size: calc(50 * var(--u)); line-height: calc(58 * var(--u)); font-weight: 400; letter-spacing: -0.02em; }
.o-pkg__lead { max-width: calc(720 * var(--u)); margin-top: calc(14 * var(--u)); font-size: calc(19.5 * var(--u)); line-height: calc(28 * var(--u)); }
.o-pkg__head .btn { margin-top: calc(22 * var(--u)); }
.o-pkg__line { width: calc(100% - var(--page-gutter)); height: 1px; margin-top: calc(40 * var(--u)); background: #ABA596; }
.o-pkg__cards {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(21 * var(--u));
	width: calc(1243 * var(--u)); margin: calc(37 * var(--u)) auto 0; padding: 0; list-style: none;
}
.o-card {
	position: relative; display: flex; flex-direction: column; justify-content: flex-end;
	min-height: calc(471 * var(--u)); padding: calc(40 * var(--u));
	background: var(--cream-400); color: var(--neutral-900);
	transition: background-color .6s ease, color .6s ease, padding-bottom .6s cubic-bezier(.22,1,.36,1);
}
.o-card:not(.is-active) { padding-bottom: calc(34 * var(--u)); }
.o-card.is-active { background: var(--slate-blue); color: var(--cream-400); }
.o-card__toggle { position: absolute; inset: 0; z-index: 1; width: 100%; padding: 0; border: 0; background: none; cursor: pointer; }
.o-card__toggle:focus-visible { outline: 2px solid var(--slate-blue); outline-offset: 3px; }
.o-card__icon { position: absolute; top: calc(41 * var(--u)); left: calc(40 * var(--u)); width: calc(23 * var(--u)); height: calc(23 * var(--u)); }
.o-card__icon::before, .o-card__icon::after { content: ""; position: absolute; left: 50%; top: 50%; background: currentColor; transform: translate(-50%, -50%); transition: transform .45s cubic-bezier(.22,1,.36,1), opacity .3s ease; }
.o-card__icon::before { width: 100%; height: 1.5px; }
.o-card__icon::after { width: 1.5px; height: 100%; }
.o-card.is-active .o-card__icon::after { transform: translate(-50%, -50%) scaleY(0); }
.o-card.is-active .o-card__icon { top: calc(27 * var(--u)); }
.o-card__content { position: relative; z-index: 2; pointer-events: none; }
.o-card__content a { pointer-events: auto; color: inherit; }
.o-card__title { font-size: calc(28.5 * var(--u)); line-height: calc(36 * var(--u)); font-weight: 500; letter-spacing: -0.015em; }
.o-card__body { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .6s cubic-bezier(.22,1,.36,1), opacity .4s ease; }
.o-card__clip { min-height: 0; overflow: hidden; }
.o-card.is-active .o-card__body { grid-template-rows: 1fr; opacity: 1; }
.o-card__text { max-width: calc(275 * var(--u)); padding-top: calc(14 * var(--u)); font-size: calc(16.5 * var(--u)); line-height: calc(23 * var(--u)); }

/* CTA: zdjęcie 1360 × 601 z treścią po lewej */
.o-cta { padding: calc(159 * var(--u)) 0 calc(40 * var(--u)); }
.o-cta__box { position: relative; display: flex; align-items: flex-end; min-height: calc(601 * var(--u)); overflow: hidden; background: #8E877B; color: var(--cream-400); }
.o-cta__bg { position: absolute; inset: 0; }
.o-cta__bg img { width: 100%; height: 100%; object-fit: cover; }
.o-cta__content { position: relative; padding: 0 calc(78 * var(--u)) calc(147 * var(--u)); }
.o-cta__title { font-size: calc(49 * var(--u)); line-height: calc(57 * var(--u)); font-weight: 400; letter-spacing: -0.02em; }
.o-cta__text { max-width: calc(625 * var(--u)); margin-top: calc(14 * var(--u)); font-size: calc(17 * var(--u)); line-height: calc(24 * var(--u)); }
.o-cta__btns { display: flex; flex-wrap: wrap; gap: calc(16 * var(--u)); margin-top: calc(25 * var(--u)); }

/* --------------------------------------------------------------------------
   Specjaliści (Figma "VMA Life Clinic copy 02.11" › Specjaliści, 1440 × 3555 + panel otwarty)
   -------------------------------------------------------------------------- */
/* Baner: tekst | zdjęcie 670 × 661 od y 230 */
.sp-hero { position: relative; padding-top: calc(230 * var(--u)); }
.sp-hero__inner { display: grid; grid-template-columns: 1fr calc(670 * var(--u)); column-gap: calc(40 * var(--u)); }
.sp-hero__title { margin-top: calc(20 * var(--u)); font-size: calc(65.5 * var(--u)); line-height: calc(78 * var(--u)); font-weight: 400; letter-spacing: -0.01em; }
.sp-hero__lead { margin-top: calc(15 * var(--u)); font-size: calc(20 * var(--u)); line-height: calc(30 * var(--u)); color: #565147; }
.sp-hero__btns { display: flex; flex-wrap: wrap; gap: calc(17 * var(--u)); margin-top: calc(29 * var(--u)); }
.sp-hero__media { height: calc(661 * var(--u)); overflow: hidden; background: var(--neutral-300); }
.sp-hero__media img { width: 100%; height: 100%; object-fit: cover; }

/* Zespół: siatka 3 × 400 + 24 (1248, na środku) */
.sp-team { padding-top: calc(40 * var(--u)); }
.sp-team__title { font-size: calc(49 * var(--u)); line-height: calc(57 * var(--u)); font-weight: 400; letter-spacing: -0.02em; }
.sp-team__lead { margin-top: calc(13 * var(--u)); font-size: calc(20 * var(--u)); line-height: calc(30 * var(--u)); color: #565147; }
.sp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(24 * var(--u)); width: calc(1248 * var(--u)); margin: calc(46 * var(--u)) auto 0; }
.sp-card { position: relative; display: flex; flex-direction: column; padding: calc(24 * var(--u)); background: var(--cream-400); transition: background-color .6s ease; }
.sp-card__photo { aspect-ratio: 1; overflow: hidden; background: var(--neutral-300); }
.sp-card__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.22,1,.36,1); }
.sp-card__name { margin-top: calc(25 * var(--u)); font-size: calc(24.5 * var(--u)); line-height: calc(30 * var(--u)); font-weight: 400; letter-spacing: -0.01em; }
.sp-card__spec { margin-top: calc(11 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(22 * var(--u)); font-weight: 600; }
.sp-card__more {
	display: flex; align-items: center; justify-content: space-between; width: 100%;
	margin-top: calc(9 * var(--u)); padding: 0; border: 0; background: none; color: inherit;
	font-size: calc(15 * var(--u)); line-height: calc(20 * var(--u)); text-align: left; cursor: pointer;
}
.sp-card__more::after { content: ""; position: absolute; inset: 0; } /* cała karta otwiera panel */
.sp-card__more:focus-visible { outline: none; }
.sp-card:has(.sp-card__more:focus-visible) { outline: 2px solid var(--slate-blue); outline-offset: 3px; }
.sp-card__plus { width: calc(14 * var(--u)); height: calc(14 * var(--u)); transition: transform .5s cubic-bezier(.22,1,.36,1); }
@media (hover: hover) {
	.sp-card:hover { background: var(--soft-sand); }
	.sp-card:hover .sp-card__photo img { transform: scale(1.03); }
	.sp-card:hover .sp-card__plus { transform: rotate(90deg); }
}
.has-motion .sp-card { opacity: 0; transform: translateY(calc(32 * var(--u))); transition: opacity 1.1s cubic-bezier(.22,.61,.36,1), transform 1.4s cubic-bezier(.16,1,.3,1), background-color .6s ease; }
.has-motion .sp-card:nth-child(3n+2) { transition-delay: .1s, .1s, 0s; }
.has-motion .sp-card:nth-child(3n) { transition-delay: .2s, .2s, 0s; }
.has-motion .sp-card.is-visible { opacity: 1; transform: none; }
.sp-team__book { display: flex; flex-direction: column; align-items: center; margin-top: calc(60 * var(--u)); text-align: center; }
.sp-team__note { margin-top: calc(16 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(20 * var(--u)); color: var(--k-text); }
.o-cta--spec { padding-top: calc(81 * var(--u)); }
.o-cta--spec .o-cta__content { padding-bottom: calc(216 * var(--u)); }
.o-cta--spec .o-cta__title { font-size: calc(51 * var(--u)); line-height: calc(59 * var(--u)); }
.o-cta--spec .o-cta__text { max-width: none; font-size: calc(18 * var(--u)); line-height: calc(25 * var(--u)); }

/* Panel specjalisty: 560 z prawej, przyciemnienie strony */
.sp-drawer { position: fixed; inset: 0; z-index: 200; }
.sp-drawer[hidden] { display: none; }
.sp-drawer__overlay { position: absolute; inset: 0; background: rgba(38, 35, 30, .32); opacity: 0; transition: opacity .5s ease; }
.sp-panel {
	position: absolute; top: 0; right: 0; bottom: 0; width: max(calc(560 * var(--u)), 480px); max-width: 100%;
	overflow-y: auto; overscroll-behavior: contain; padding: calc(32 * var(--u)) calc(32 * var(--u)) calc(48 * var(--u));
	background: var(--cream-200); color: var(--neutral-900);
	transform: translateX(100%); transition: transform .6s cubic-bezier(.22,1,.36,1);
}
.sp-drawer.is-open .sp-drawer__overlay { opacity: 1; }
.sp-drawer.is-open .sp-panel { transform: none; }
.sp-panel__bar { display: flex; align-items: center; justify-content: space-between; }
.sp-panel__label { font-size: calc(16 * var(--u)); line-height: calc(22 * var(--u)); font-weight: 500; color: var(--slate-blue); }
.sp-panel__close {
	display: inline-flex; align-items: center; gap: calc(10 * var(--u)); padding: 0; border: 0; background: none; color: inherit;
	margin-right: calc(6 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(22 * var(--u)); cursor: pointer;
}
.sp-panel__close svg { width: calc(12 * var(--u)); height: calc(12 * var(--u)); transition: transform .4s ease; }
.sp-panel__close:hover svg { transform: rotate(90deg); }
.sp-panel__head { display: grid; grid-template-columns: calc(124 * var(--u)) 1fr; column-gap: calc(24 * var(--u)); margin-top: calc(34 * var(--u)); }
.sp-panel__photo { height: calc(160 * var(--u)); overflow: hidden; background: var(--neutral-300); }
.sp-panel__photo img { width: 100%; height: 100%; object-fit: cover; }
.sp-panel__name { margin-top: calc(4 * var(--u)); font-size: calc(28.5 * var(--u)); line-height: calc(36 * var(--u)); font-weight: 400; letter-spacing: -0.01em; }
.sp-panel__sub { margin-top: calc(2 * var(--u)); font-size: calc(20 * var(--u)); line-height: calc(26 * var(--u)); color: var(--k-text); }
.sp-panel__secs { margin-top: calc(20 * var(--u)); }
.sp-panel__sec { padding: calc(4 * var(--u)) 0 calc(11 * var(--u)); }
.sp-panel__sec + .sp-panel__sec { border-top: 1px solid var(--k-line); }
.sp-panel__h { font-size: calc(18 * var(--u)); line-height: calc(24 * var(--u)); font-weight: 500; color: var(--slate-blue); }
.sp-panel__text { margin-top: calc(8 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(22 * var(--u)); color: var(--k-text); }
.sp-panel__text + .sp-panel__text { margin-top: calc(10 * var(--u)); }
.sp-panel__btns { display: flex; flex-wrap: wrap; gap: calc(12 * var(--u)); margin-top: calc(16 * var(--u)); }
html.is-panel-open { overflow: hidden; }


/* --------------------------------------------------------------------------
   Strefa wiedzy (Figma 11.11, ramka Strefa wiedzy / desktop): nagłówek 56/67 z akcentem,
   filtry-pigułki 43 px, wiersze 280 × 280 co 360, kafelki 440 × 300 + opis, pytania od x 680
   -------------------------------------------------------------------------- */
.sw-hero { position: relative; padding-top: calc(189 * var(--u)); }
.sw-hero__title, .art-head__title { font-size: calc(56 * var(--u)); line-height: calc(67 * var(--u)); font-weight: 400; letter-spacing: -0.01em; }
.sw-hero__lead { margin-top: calc(24 * var(--u)); font-size: calc(20 * var(--u)); line-height: calc(29 * var(--u)); color: var(--neutral-700); }
.sw-filters { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: calc(16 * var(--u)); margin-top: calc(40 * var(--u)); }
.sw-filters__row { display: flex; align-items: center; }
.sw-filters__label { flex: none; width: calc(112 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(20 * var(--u)); color: var(--k-text); }
.sw-chips { display: flex; flex-wrap: wrap; gap: calc(12 * var(--u)); }
.sw-chip {
	display: inline-flex; align-items: center; height: calc(43 * var(--u)); padding: 0 calc(24 * var(--u));
	border-radius: var(--radius-pill); background: var(--soft-sand); color: var(--neutral-900);
	font-size: calc(14 * var(--u)); line-height: 1; white-space: nowrap;
	transition: background-color .25s ease, color .25s ease;
}
.sw-chip:hover { background: var(--neutral-400); }
.sw-chip.is-active { background: var(--slate-blue); color: var(--cream-400); }
.sw-chip:focus-visible, .sw-row__title a:focus-visible, .sw-card__link:focus-visible { outline: 2px solid var(--slate-blue); outline-offset: 3px; }

.sw-list { padding-top: calc(40 * var(--u)); scroll-margin-top: calc(24 * var(--u)); }
.sw-list.is-loading [data-sw-items], .sw-list.is-loading .sw-empty { opacity: .45; transition: opacity .2s ease; }
.sw-rows { border-top: 1px solid var(--neutral-300); }
.sw-row {
	position: relative; display: grid; grid-template-columns: calc(280 * var(--u)) 1fr; column-gap: calc(40 * var(--u));
	padding: calc(39 * var(--u)) 0 calc(40 * var(--u)); border-bottom: 1px solid var(--neutral-300);
}
.sw-row__media { display: block; height: calc(280 * var(--u)); overflow: hidden; background: var(--cream-400); }
.sw-row__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.22,1,.36,1); }
.sw-row__body { padding: calc(2 * var(--u)) calc(100 * var(--u)) 0 0; }
.sw-row__title { max-width: calc(670 * var(--u)); font-size: calc(40 * var(--u)); line-height: calc(48.5 * var(--u)); font-weight: 400; letter-spacing: -0.01em; }
.sw-row__title a::after { content: ""; position: absolute; inset: 0; } /* cały wiersz jest linkiem */
.sw-row__excerpt { margin-top: calc(18 * var(--u)); font-size: calc(18 * var(--u)); line-height: calc(26 * var(--u)); color: var(--neutral-700); }
.sw-meta { display: flex; flex-wrap: wrap; align-items: center; margin-top: calc(18 * var(--u)); font-size: calc(14 * var(--u)); line-height: calc(20 * var(--u)); color: var(--k-text); }
.sw-meta__cat { color: var(--slate-blue); }
.sw-meta__cat + .sw-meta__time::before { content: ""; display: inline-block; width: 3px; height: 3px; margin: 0 calc(16 * var(--u)) 0 calc(17 * var(--u)); border-radius: 50%; background: var(--neutral-500); vertical-align: middle; }
.sw-row__arrow {
	position: absolute; right: 0; bottom: calc(30 * var(--u)); display: grid; place-items: center;
	width: calc(60 * var(--u)); height: calc(60 * var(--u)); background: var(--cream-400); color: var(--neutral-900);
	transition: background-color .35s ease, color .35s ease;
}
.sw-row__arrow svg { width: calc(20 * var(--u)); height: auto; transition: transform .35s cubic-bezier(.22,1,.36,1); }
@media (hover: hover) {
	.sw-row:hover .sw-row__media img, .sw-card__link:hover .sw-card__media img { transform: scale(1.04); }
	.sw-row:hover .sw-row__arrow { background: var(--neutral-900); color: var(--cream-400); }
	.sw-row:hover .sw-row__arrow svg { transform: translateX(calc(3 * var(--u))); }
	.sw-card__link:hover .sw-card__plus { transform: rotate(90deg); }
}
.sw-empty { padding: calc(40 * var(--u)) 0; border-top: 1px solid var(--neutral-300); border-bottom: 1px solid var(--neutral-300); font-size: calc(18 * var(--u)); line-height: calc(26 * var(--u)); color: var(--neutral-700); }
.sw-empty__reset { color: var(--neutral-900); border-bottom: 1px solid currentColor; }
.sw-more { padding-top: calc(47 * var(--u)); text-align: center; }
.sw-more .link-underline[aria-busy="true"] { opacity: .5; pointer-events: none; }

.sw-latest { padding-top: calc(118 * var(--u)); scroll-margin-top: calc(24 * var(--u)); }
.sw-latest__title, .sw-faq__title { font-size: calc(48 * var(--u)); line-height: calc(58 * var(--u)); font-weight: 400; letter-spacing: -0.01em; }
.sw-latest .sw-cards { margin-top: calc(52 * var(--u)); }
.sw-latest .sw-more { padding-top: calc(42 * var(--u)); }
.sw-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(20 * var(--u)); }
.sw-card__link { display: flex; flex-direction: column; height: 100%; color: var(--neutral-900); }
.sw-card__media { display: block; height: calc(300 * var(--u)); overflow: hidden; background: var(--cream-400); }
.sw-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.22,1,.36,1); }
.sw-card__body { display: flex; flex: 1; flex-direction: column; padding: calc(23 * var(--u)) calc(20 * var(--u)) calc(24 * var(--u)); background: var(--cream-400); }
.sw-card__cat { font-size: calc(12 * var(--u)); line-height: calc(16 * var(--u)); color: var(--slate-blue); }
.sw-card__title { display: -webkit-box; margin-top: calc(16 * var(--u)); overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; font-size: calc(24 * var(--u)); line-height: calc(30 * var(--u)); }
.sw-card__text { display: -webkit-box; margin-top: calc(7 * var(--u)); overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: calc(14 * var(--u)); line-height: calc(20 * var(--u)); color: var(--neutral-700); }
.sw-card__foot { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: calc(20 * var(--u)); font-size: calc(12 * var(--u)); line-height: calc(16 * var(--u)); color: var(--neutral-700); }
.sw-card__plus { position: relative; width: calc(14 * var(--u)); height: calc(14 * var(--u)); transition: transform .4s cubic-bezier(.22,1,.36,1); }
.sw-card__plus::before, .sw-card__plus::after, .sw-faq__icon::before, .sw-faq__icon::after { content: ""; position: absolute; left: 0; top: 50%; width: 100%; height: 1.2px; margin-top: -0.6px; background: var(--neutral-900); }
.sw-card__plus::after, .sw-faq__icon::after { transform: rotate(90deg); transition: transform .35s ease; }

.sw-faq { padding: calc(111 * var(--u)) 0 calc(140 * var(--u)); }
.sw-faq__inner { display: grid; grid-template-columns: calc(640 * var(--u)) 1fr; align-items: start; }
.sw-faq__title { margin-top: calc(-6 * var(--u)); }
.sw-faq__item { border-top: 1px solid var(--k-line); }
.sw-faq__item:last-child { border-bottom: 1px solid var(--k-line); }
.sw-faq__q {
	display: flex; align-items: center; justify-content: space-between; gap: calc(24 * var(--u));
	padding: calc(33 * var(--u)) 0 calc(32 * var(--u)); cursor: pointer; list-style: none;
	font-size: calc(20 * var(--u)); line-height: calc(26 * var(--u)); color: var(--neutral-900);
}
.sw-faq__q::-webkit-details-marker { display: none; }
.sw-faq__icon { position: relative; flex: none; width: calc(14 * var(--u)); height: calc(14 * var(--u)); }
.sw-faq__item[open]:not(.is-closing) .sw-faq__icon::after { transform: rotate(0deg); }
.sw-faq__body { overflow: hidden; }
.sw-faq__a { max-width: calc(620 * var(--u)); padding-bottom: calc(32 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(24 * var(--u)); color: var(--neutral-700); }

/* --------------------------------------------------------------------------
   Artykuł (Figma 11.11, ramka Strefa wiedzy - post): etykiety 30 px, tytuł 56/67 (do 960),
   autor 80 px, zdjęcie 1360 × 520, kolumny 264 | 120 | 720
   -------------------------------------------------------------------------- */
.art-head { position: relative; padding-top: calc(190 * var(--u)); }
.art-tags { display: flex; flex-wrap: wrap; align-items: center; gap: calc(12 * var(--u)); font-size: calc(12 * var(--u)); line-height: calc(16 * var(--u)); }
.art-tag { display: inline-flex; align-items: center; height: calc(30 * var(--u)); padding: 0 calc(16 * var(--u)); border-radius: var(--radius-pill); background: var(--cream-400); }
.art-tags__time { margin-left: calc(4 * var(--u)); }
.art-head__title { max-width: calc(960 * var(--u)); margin-top: calc(22 * var(--u)); }
.art-head__lead { max-width: calc(760 * var(--u)); margin-top: calc(26 * var(--u)); font-size: calc(20 * var(--u)); line-height: calc(29 * var(--u)); color: var(--neutral-700); }
.art-byline { display: flex; align-items: center; justify-content: space-between; gap: calc(24 * var(--u)); margin-top: calc(32 * var(--u)); padding-top: calc(23 * var(--u)); border-top: 1px solid var(--neutral-300); }
.art-author { display: flex; align-items: center; gap: calc(13 * var(--u)); }
.art-author__photo { flex: none; width: calc(80 * var(--u)); height: calc(80 * var(--u)); overflow: hidden; border-radius: 50%; background: var(--cream-400); }
.art-author__photo img { width: 100%; height: 100%; object-fit: cover; }
.art-author__name { font-size: calc(20 * var(--u)); line-height: calc(26 * var(--u)); }
.art-author__role, .art-author__date { font-size: calc(14 * var(--u)); line-height: calc(20 * var(--u)); color: var(--neutral-700); }
.art-author__role { margin-top: calc(5 * var(--u)); }
.art-author__date { margin-top: calc(4 * var(--u)); }
.art-share { display: flex; gap: calc(12 * var(--u)); }
.art-share__btn {
	position: relative; display: grid; place-items: center; width: calc(40 * var(--u)); height: calc(40 * var(--u)); padding: 0;
	border: 1px solid var(--neutral-300); border-radius: 50%; background: transparent; color: var(--neutral-900); cursor: pointer;
	transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}
.art-share__btn svg { width: calc(18 * var(--u)); height: auto; }
.art-share__btn:hover { background: var(--neutral-900); border-color: var(--neutral-900); color: var(--cream-400); }
.art-share__btn.is-done::after {
	content: attr(data-done); position: absolute; right: 0; top: calc(100% + 8px); padding: 4px 10px; border-radius: 4px;
	background: var(--neutral-900); color: var(--cream-400); font-size: 12px; line-height: 16px; white-space: nowrap;
}
.art-hero { height: calc(520 * var(--u)); margin: calc(40 * var(--u)) 0 0; overflow: hidden; background: var(--cream-400); }
.art-hero img { width: 100%; height: 100%; object-fit: cover; }

.art-layout { display: grid; grid-template-columns: calc(264 * var(--u)) calc(720 * var(--u)); column-gap: calc(120 * var(--u)); align-items: start; padding-top: calc(80 * var(--u)); padding-bottom: calc(80 * var(--u)); }
.art-aside { align-self: stretch; }
.art-aside__in { position: sticky; top: calc(40 * var(--u)); }
.art-toc__title { font-size: calc(12 * var(--u)); line-height: calc(16 * var(--u)); font-weight: 500; }
.art-toc__list { margin: calc(18 * var(--u)) 0 0; padding: 0; list-style: none; border-left: 1px solid #E6E4E2; }
.art-toc__link {
	position: relative; display: flex; align-items: center; min-height: calc(44 * var(--u)); padding: calc(4 * var(--u)) 0 calc(4 * var(--u)) calc(16 * var(--u));
	font-size: calc(14 * var(--u)); line-height: calc(18 * var(--u)); color: var(--k-text); transition: color .25s ease;
}
.art-toc__link::before { content: ""; position: absolute; left: -1px; top: 0; bottom: 0; width: 2px; background: var(--neutral-900); transform: scaleY(0); transition: transform .35s cubic-bezier(.22,1,.36,1); }
.art-toc__link:hover { color: var(--neutral-900); }
.art-toc__link.is-active { color: var(--neutral-900); font-weight: 500; }
.art-toc__link.is-active::before { transform: none; }
.art-pkg { margin-top: calc(32 * var(--u)); }
.art-toc + .art-pkg { margin-top: calc(32 * var(--u)); }
.art-pkg__box { padding: calc(24 * var(--u)) calc(20 * var(--u)); background: var(--neutral-900); color: var(--cream-400); }
.art-pkg__name { font-size: calc(16 * var(--u)); line-height: calc(22 * var(--u)); font-weight: 500; }
.art-pkg__text { margin-top: calc(8 * var(--u)); font-size: calc(14 * var(--u)); line-height: calc(24 * var(--u)); opacity: .85; }
.art-pkg__link { margin-top: calc(16 * var(--u)); font-size: calc(14 * var(--u)); }

/* Treść z edytora blokowego */
.art-content { font-size: calc(16 * var(--u)); line-height: calc(24 * var(--u)); color: var(--neutral-900); }
.art-content > * { margin: 0; }
.art-content > * + * { margin-top: calc(20 * var(--u)); }
.art-content h2 { margin-top: calc(48 * var(--u)); font-size: calc(32 * var(--u)); line-height: calc(40 * var(--u)); font-weight: 400; letter-spacing: -0.01em; scroll-margin-top: calc(40 * var(--u)); }
.art-content > h2:first-child { margin-top: 0; }
.art-content h3 { margin-top: calc(36 * var(--u)); font-size: calc(24 * var(--u)); line-height: calc(32 * var(--u)); font-weight: 400; }
.art-content h2 + *, .art-content h3 + * { margin-top: calc(18 * var(--u)); }
.art-content a { color: var(--slate-blue); text-decoration: underline; text-underline-offset: 3px; }
.art-content strong { font-weight: 600; }
.art-content ul, .art-content ol { padding-left: calc(24 * var(--u)); }
.art-content ul { list-style: none; }
.art-content ul > li { position: relative; }
.art-content ul > li::before { content: ""; position: absolute; left: calc(-22 * var(--u)); top: calc(10 * var(--u)); width: 5px; height: 5px; border-radius: 50%; background: var(--neutral-900); }
.art-content li + li { margin-top: calc(11 * var(--u)); }
.art-content blockquote, .art-content .wp-block-quote { margin: calc(40 * var(--u)) 0; padding: calc(33 * var(--u)) 0 calc(34 * var(--u)) calc(30 * var(--u)); border-left: 2px solid var(--slate-blue); }
.art-content blockquote p { font-size: calc(24 * var(--u)); line-height: calc(34 * var(--u)); }
.art-content blockquote p::before { content: "„"; }
.art-content blockquote p::after { content: "”"; }
.art-content blockquote cite { display: block; margin-top: calc(12 * var(--u)); font-size: calc(14 * var(--u)); font-style: normal; color: var(--neutral-700); }
.art-content blockquote + h2 { margin-top: calc(48 * var(--u)); }
.art-content figure { margin: calc(40 * var(--u)) 0; }
.art-content figure img { width: 100%; height: auto; }
.art-content figcaption { margin-top: calc(12 * var(--u)); font-size: calc(12 * var(--u)); line-height: calc(16 * var(--u)); color: var(--slate-blue); }
.art-content figure + p { margin-top: calc(40 * var(--u)); }
.art-content .is-style-vma-alert { position: relative; padding: calc(28 * var(--u)) calc(28 * var(--u)) calc(28 * var(--u)) calc(66 * var(--u)); border: 1px solid #E6E4E2; }
.art-content .is-style-vma-alert::before {
	content: "!"; position: absolute; left: calc(28 * var(--u)); top: calc(29 * var(--u)); display: grid; place-items: center;
	width: calc(20 * var(--u)); height: calc(20 * var(--u)); border: 1.2px solid var(--slate-blue); border-radius: 50%;
	color: var(--slate-blue); font-size: calc(12 * var(--u)); line-height: 1; font-weight: 500;
}
.art-content .is-style-vma-alert > * + * { margin-top: calc(12 * var(--u)); }
.art-content .is-style-vma-alert ul { padding-left: calc(22 * var(--u)); }
.art-content .is-style-vma-alert li + li { margin-top: calc(10 * var(--u)); }
.art-content .vma-note { font-size: calc(13 * var(--u)); line-height: calc(18 * var(--u)); color: var(--slate-blue); }

.art-cta { margin-top: calc(48 * var(--u)); padding: calc(40 * var(--u)); background: var(--slate-blue); color: var(--cream-400); }
.art-cta__label { font-size: calc(12 * var(--u)); line-height: calc(16 * var(--u)); font-weight: 500; }
.art-cta__title { max-width: calc(600 * var(--u)); margin-top: calc(24 * var(--u)); font-size: calc(40 * var(--u)); line-height: calc(48 * var(--u)); letter-spacing: -0.01em; }
.art-cta__btn { margin-top: calc(22 * var(--u)); padding: 0 calc(24 * var(--u)); border: 1px solid var(--cream-400); background: transparent; color: var(--cream-400); }
.art-cta__btn:hover { background: var(--cream-400); color: var(--neutral-900); }

.art-related { padding: calc(77 * var(--u)) 0 calc(80 * var(--u)); }
.art-related__head { display: flex; align-items: flex-end; justify-content: space-between; gap: calc(24 * var(--u)); }
.art-related__title { font-size: calc(40 * var(--u)); line-height: calc(48 * var(--u)); font-weight: 400; letter-spacing: -0.01em; }
.art-related .sw-cards { margin-top: calc(33 * var(--u)); }

/* --------------------------------------------------------------------------
   Problemy (Figma 11.11): nagłówek jak Strefa wiedzy, spis 2 × 600 (wiersz 68) od x 80,
   sekcje 100 / treść 544 | 80 | karta 624 od x 96, CTA 1360 × 600, przycisk "do góry" 60 px
   -------------------------------------------------------------------------- */
.pr-hero { position: relative; padding: calc(189 * var(--u)) 0 calc(105 * var(--u)); }
.pr-hero__lead { margin-top: calc(25 * var(--u)); line-height: calc(28.5 * var(--u)); }
.pr-index { margin-top: calc(37 * var(--u)); padding: 0 calc(40 * var(--u)); }
.pr-index__list { display: grid; grid-template-columns: 1fr 1fr; column-gap: calc(80 * var(--u)); margin: 0; padding: 0; list-style: none; }
.pr-index__link {
	display: grid; grid-template-columns: calc(53 * var(--u)) 1fr auto; align-items: center;
	padding: calc(27 * var(--u)) calc(30 * var(--u)) calc(10 * var(--u)) 0; border-bottom: 1px solid #D1CDC2; color: var(--neutral-900);
}
.pr-index__num { align-self: start; margin-top: calc(5 * var(--u)); font-size: calc(12 * var(--u)); line-height: calc(16 * var(--u)); color: var(--neutral-700); }
.pr-index__label { font-size: calc(24 * var(--u)); line-height: calc(30 * var(--u)); }
.pr-index__arrow { display: grid; transition: transform .35s cubic-bezier(.22,1,.36,1); }
.pr-index__arrow svg { width: calc(17 * var(--u)); height: auto; }
.pr-index__link:hover .pr-index__arrow, .pr-index__link:focus-visible .pr-index__arrow { transform: translateY(calc(4 * var(--u))); }
.pr-index__link:focus-visible { outline: 2px solid var(--slate-blue); outline-offset: 2px; }

.pr-item { padding: calc(100 * var(--u)) 0; scroll-margin-top: 0; }
.pr-item--slate { background: var(--slate-blue); color: var(--cream-100); }
.pr-item__inner { display: grid; grid-template-columns: calc(544 * var(--u)) calc(624 * var(--u)); column-gap: calc(80 * var(--u)); align-items: start; padding: 0 calc(56 * var(--u)); }
.pr-item__title { font-size: calc(40 * var(--u)); line-height: calc(48 * var(--u)); font-weight: 400; letter-spacing: -0.01em; }
.pr-item__lead { margin-top: calc(20 * var(--u)); font-size: calc(20 * var(--u)); line-height: calc(30 * var(--u)); color: var(--neutral-700); }
.pr-item--slate .pr-item__lead { color: var(--cream-100); }
.pr-card { padding: calc(28 * var(--u)) calc(32 * var(--u)) calc(31 * var(--u)); border-radius: var(--radius-sm); background: var(--cream-400); color: var(--neutral-900); }
.pr-item--slate .pr-card { background: var(--cream-200); }
.pr-card__label { font-size: calc(24 * var(--u)); line-height: calc(30 * var(--u)); }
.pr-card__title { margin-top: calc(16 * var(--u)); font-size: calc(24 * var(--u)); line-height: calc(30 * var(--u)); font-weight: 500; }
.pr-card__text { margin-top: calc(18 * var(--u)); font-size: calc(20 * var(--u)); line-height: calc(30 * var(--u)); color: var(--neutral-700); }
.pr-card .btn { margin-top: calc(18 * var(--u)); }

.o-cta--problemy { padding-top: calc(40 * var(--u)); }
.o-cta--problemy .o-cta__box { min-height: calc(600 * var(--u)); background: #5E6A72; }
.o-cta--problemy .o-cta__content { padding-bottom: calc(170 * var(--u)); }
.o-cta--problemy .o-cta__btns { margin-top: calc(20 * var(--u)); }
.o-cta--problemy .o-cta__title { font-size: calc(48 * var(--u)); line-height: calc(58 * var(--u)); letter-spacing: -0.01em; }
.o-cta--problemy .o-cta__text { max-width: none; margin-top: calc(19 * var(--u)); font-size: calc(20 * var(--u)); line-height: calc(28 * var(--u)); }

.to-top {
	position: fixed; right: calc(16 * var(--u)); bottom: calc(24 * var(--u)); z-index: 30; display: grid; place-items: center;
	width: calc(60 * var(--u)); height: calc(60 * var(--u)); border-radius: 50%; background: var(--cream-400); color: var(--burgundy-700);
	box-shadow: 0 4px 18px rgba(38,35,30,.12); opacity: 0; visibility: hidden; transform: translateY(12px);
	transition: opacity .35s ease, transform .45s cubic-bezier(.22,1,.36,1), visibility 0s linear .45s, background-color .25s ease;
}
.to-top svg { width: calc(22 * var(--u)); height: auto; }
.to-top.is-visible { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.to-top:hover { background: var(--soft-sand); }
.to-top:focus-visible { outline: 2px solid var(--slate-blue); outline-offset: 3px; }

@media (max-width: 1024px) {
	.sp-hero { padding-top: 150px; }
	.sp-hero__inner { grid-template-columns: 1fr 1fr; column-gap: 32px; align-items: start; }
	.sp-hero__title { margin-top: 0; font-size: 52px; line-height: 62px; }
	.sp-hero__lead br { display: none; }
	.sp-hero__media { height: auto; aspect-ratio: 670 / 661; }
	.sp-team { padding-top: 80px; }
	.sp-grid { width: auto; gap: 16px; }
	.sp-card { padding: 16px; }
	.sp-card__name { margin-top: 18px; font-size: 22px; }
	.sp-card__spec { font-size: 15px; }
	.o-cta--spec .o-cta__content { padding-bottom: 96px; }
	.o-hero { height: 640px; }
	.o-hero__inner { grid-template-columns: 1fr 1fr; column-gap: 32px; align-items: end; }
	.o-hero__title { margin-top: 0; font-size: 72px; }
	.o-scope__head, .o-scope__body { grid-template-columns: 1fr 1fr; column-gap: 32px; }
	.o-scope__media { height: auto; aspect-ratio: 680 / 652; }
	.o-pkg__cards { width: calc(100% - 2 * var(--page-gutter)); }
	.k-hero__inner { grid-template-columns: 1fr 1fr; column-gap: 32px; }
	.k-gallery { height: auto; aspect-ratio: 680 / 652; }
	.k-hero__title { font-size: 52px; line-height: 62px; }
	.k-visit__grid { grid-template-columns: 1fr 320px; column-gap: 40px; }
	.k-visit__lists { grid-template-columns: 1fr 1fr; }
	.k-form__inner { grid-template-columns: 1fr 1fr; }
	.k-form__title { font-size: 42px; line-height: 48px; }
	.mega { width: calc(100vw - var(--sbw, 0px) - 2 * var(--page-gutter)); grid-template-columns: 300px 1fr; }
	.mega__body { grid-template-columns: 210px 1fr; }
	.mega__items { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; }
	.mega__shortcuts { grid-auto-flow: row; grid-template-rows: none; grid-template-columns: minmax(0, 220px); }
	/* Poniżej 1025 px wyłączamy skalowanie, działają wartości tabletowe/mobilne */
	:root { --u: 1px; --page-gutter: 24px; }
	.steps { margin: 0; }
	.step__in { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 48px; padding: 0 var(--page-gutter); }
	.step__media, .step__body { position: static; width: auto; height: auto; margin: 0; transform: none; }
	.step__media { width: 100%; max-width: 400px; aspect-ratio: 400 / 534; max-height: 80svh; }
	.step--alt .step__media { order: 2; justify-self: end; }
	.step__title { font-size: 40px; line-height: 48px; margin-top: 12px; }
	.step__text { font-size: 20px; line-height: 28px; margin-top: 12px; }
	.team { padding-top: 96px; }
	.team__inner { grid-template-columns: 1fr 1fr; column-gap: 48px; }
	.team__media { width: auto; height: auto; aspect-ratio: 440 / 588; }
	.team__title { font-size: 40px; line-height: 48px; }
	.team__text { font-size: 20px; line-height: 28px; margin-top: 24px; }
	.team__cta { margin-top: 24px; }
	.cta { padding: 160px 0 120px; }
	.cta__ring { top: -100px; }
	.cta__title { font-size: 52px; }
	.page-hero { height: 640px; }
	.page-hero__title { font-size: 52px; line-height: 62px; }
	.page-hero__lead { font-size: 20px; line-height: 28px; }
	.prices__inner, .packages__inner { width: auto; margin-left: 0; }
	.pkg { min-height: 280px; }
	.packages--page .packages__inner { margin: 0; }
	.o-hero__lead br { display: none; }
	.fl-hero { padding-top: 170px; }
	.fl-hero__title { font-size: 52px; line-height: 60px; }
	.fl-hero__lead br { display: none; }
	.fl-hero__media { height: 480px; }
	.fl-manifest__inner { grid-template-columns: 1fr 1.6fr; column-gap: 48px; }
	.fl-values__box { height: auto; min-height: 560px; padding: 64px 40px 64px 260px; }
	.fl-values__mark { left: 40px; top: 64px; width: 160px; }
	.fl-values__link { left: 40px; bottom: 64px; }
	.fl-values__grid { grid-template-columns: 1fr 1fr; column-gap: 40px; row-gap: 48px; }
	.fl-people__quote { width: 42%; }
	.fl-person--1 { left: 47%; top: 40px; width: 300px; height: 400px; }
	.fl-person--2 { left: auto; right: 24px; top: 360px; width: 220px; height: 293px; }
	.fl-people { padding-bottom: 200px; }
	.pk-step__in { height: auto; min-height: 320px; padding: 36px 24px 28px; }
	.pk-step__num { font-size: 72px; }
	.pk-step__title { font-size: 26px; line-height: 32px; }
	.cta--compact { padding: 140px 0 120px; }
	.cta.cta--pakiety { padding: 140px 0 120px; }
	/* Stopka – tablet: logo, 3 kolumny linków, kontakt, pasek prawny */
	.site-footer { width: calc(100% - 48px); margin-bottom: 24px; }
	.site-footer .site-footer__inner {
		grid-template-columns: repeat(3, 1fr); grid-template-rows: none; gap: 32px 24px; padding: 48px 32px;
		grid-template-areas:
			"logo logo logo"
			"c1 c2 c3"
			"addr mail phone"
			"l1 l2 l3"
			"copy copy copy";
	}
	.site-footer .site-footer__inner > * { grid-column: auto; grid-row: auto; margin-left: 0; margin-top: 0; }
	.site-footer .site-footer__logo { grid-area: logo; }
	.site-footer .site-footer__col--1 { grid-area: c1; }
	.site-footer .site-footer__col--2 { grid-area: c2; }
	.site-footer .site-footer__col--3 { grid-area: c3; }
	.site-footer .site-footer__address { grid-area: addr; }
	.site-footer .site-footer__mail { grid-area: mail; }
	.site-footer .site-footer__phone { grid-area: phone; }
	.site-footer .site-footer__legal--1 { grid-area: l1; }
	.site-footer .site-footer__legal--2 { grid-area: l2; }
	.site-footer .site-footer__legal--3 { grid-area: l3; }
	.site-footer .site-footer__copy { grid-area: copy; }
	.nav__list { gap: 24px; }
	.nav__link { font-size: 16px; }
	.hero { min-height: 760px; }
	.hero__title { font-size: 44px; }
	.hero__lead { font-size: 20px; line-height: 28px; }
	.start__cards { grid-template-columns: 1fr 1fr; }
	.card { min-height: 380px; }
	.philosophy__inner { padding-left: 0; }
	.philosophy__title { font-size: 48px; }
	.pillars { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.pillar + .pillar { padding-left: 32px; }
	.pillar__title { font-size: 24px; line-height: 30px; }
	.pillar + .pillar::before { height: 104px; }
	.signals__track { padding-left: 24px; }
	.slider-arrow--prev { left: 12px; }
	.slider-arrow--next { right: 12px; }
}
@media (max-width: 950px) {
	.sp-hero { padding-top: 128px; }
	.sp-hero__inner { grid-template-columns: 1fr; row-gap: 32px; }
	.sp-hero__title { font-size: 40px; line-height: 48px; }
	.sp-hero__lead { margin-top: 16px; font-size: 17px; line-height: 26px; }
	.sp-hero__btns { margin-top: 24px; gap: 12px; }
	.sp-team { padding-top: 64px; }
	.sp-team__title { font-size: 32px; line-height: 38px; }
	.sp-team__lead { margin-top: 8px; font-size: 17px; line-height: 24px; }
	.sp-grid { grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 28px; }
	.sp-card { padding: 12px 12px 16px; }
	.sp-card__name { margin-top: 14px; font-size: 19px; line-height: 24px; }
	.sp-card__spec { margin-top: 6px; font-size: 14px; line-height: 19px; }
	.sp-card__more { margin-top: 8px; font-size: 14px; }
	.sp-team__book { margin-top: 40px; }
	.sp-team__note { margin-top: 12px; font-size: 15px; }
	.o-cta--spec { padding-top: 64px; }
	.o-cta--spec .o-cta__content { padding-bottom: 32px; }
	.o-cta--spec .o-cta__title { font-size: 32px; line-height: 38px; }
	.o-cta--spec .o-cta__text { font-size: 16px; line-height: 23px; }
	.sp-panel { width: 100%; padding: 20px 16px 32px; }
	.sp-panel__close { margin-right: 0; }
	.sp-panel__head { grid-template-columns: 96px 1fr; column-gap: 16px; margin-top: 24px; }
	.sp-panel__photo { height: 124px; }
	.sp-panel__name { margin-top: 0; font-size: 24px; line-height: 30px; }
	.sp-panel__sub { font-size: 17px; line-height: 23px; }
	/* Podstrona oferty */
	.o-hero { height: min(100svh, 720px); }
	.o-hero__inner { grid-template-columns: 1fr; row-gap: 20px; bottom: 32px; }
	.o-hero__title { font-size: 52px; }
	.o-hero__lead { font-size: 17px; line-height: 25px; }
	.o-scope { padding-top: 80px; }
	.o-scope__head, .o-scope__body { grid-template-columns: 1fr; row-gap: 24px; }
	.o-scope__title { font-size: 34px; line-height: 42px; }
	.o-scope__title br { display: none; }
	.o-scope__lead { font-size: 17px; line-height: 25px; }
	.o-scope__body { margin-top: 32px; }
	.o-acc__title { font-size: 20px; line-height: 26px; }
	.o-acc__head { padding: 20px 0; }
	.o-acc__item:first-child .o-acc__head { padding-top: 20px; }
	.o-pkg { padding-top: 80px; }
	.o-pkg__head { align-items: flex-start; text-align: left; }
	.o-pkg__title { font-size: 34px; line-height: 42px; }
	.o-pkg__lead { font-size: 17px; line-height: 25px; }
	.o-pkg__lead br { display: none; }
	.o-pkg__line { width: 100%; }
	.o-pkg__cards { grid-template-columns: 1fr; gap: 12px; width: auto; margin: 24px var(--page-gutter) 0; }
	.o-card, .o-card:not(.is-active) { min-height: 0; padding: 72px 24px 28px; }
	.o-card__icon { top: 24px; left: 24px; }
	.o-card.is-active .o-card__icon { top: 24px; }
	.o-card__title { font-size: 24px; line-height: 30px; }
	.o-card__text { max-width: none; }
	.o-cta { padding: 80px 0 24px; }
	.o-cta__box { min-height: 520px; }
	.o-cta__content { padding: 0 24px 32px; }
	.o-cta__title { font-size: 32px; line-height: 38px; }
	.o-cta__title br { display: none; }
	/* Kontakt */
	.k-hero { padding-top: 128px; }
	.k-hero__inner { grid-template-columns: 1fr; row-gap: 32px; }
	.k-hero__title { margin-top: 0; font-size: 40px; line-height: 48px; }
	.k-hero__lead { margin-top: 16px; font-size: 17px; line-height: 26px; }
	.k-hero__lead br, .k-form__title br { display: none; }
	.k-hero__cards { grid-template-columns: 1fr; gap: 12px; }
	.k-card { height: auto; min-height: 120px; }
	.k-gallery__bars { top: 16px; right: 16px; }
	.k-visit { padding-top: 72px; }
	.k-visit__title { font-size: 34px; line-height: 42px; }
	.k-visit__grid { grid-template-columns: 1fr; row-gap: 48px; margin-top: 24px; }
	.k-map { height: 360px; }
	.k-map__rings i { top: 150px; }
	.k-map__center { margin-top: 122px; }
	.k-map__title { font-size: 18px; line-height: 24px; text-align: center; padding: 0 16px; }
	.k-map__actions { flex-wrap: wrap; padding: 0 16px; bottom: 20px; }
	.k-pin__dot { left: -22px; top: -22px; width: 44px; height: 44px; box-shadow: 0 0 0 8px rgba(91, 116, 130, .18); }
	.k-pin__dot svg { width: 18px; }
	.k-pin__title { top: 32px; padding: 4px 10px; font-size: 13px; line-height: 18px; }
	.k-pin__park { left: -15px; top: -15px; width: 30px; height: 30px; font-size: 12px; }
	.k-map--live { height: auto; overflow: visible; background: none; }
	.k-map--live .k-map__canvas { position: relative; width: 100%; height: 340px; }
	.k-map--live .k-map__actions { position: static; justify-content: flex-start; padding: 0; margin-top: 12px; }
	.k-map--live 	.k-map__canvas .leaflet-control-zoom { margin: 12px 12px 0 0; }
	.k-map__canvas .leaflet-control-zoom a { width: 34px; height: 34px; font-size: 18px; line-height: 32px; }
	.k-popup .leaflet-popup-content { margin: 10px 14px; font-size: 13px; line-height: 18px; }
	.k-visit__lists { grid-template-columns: 1fr; row-gap: 32px; }
	.k-info__address, .k-info__phone { font-size: 24px; line-height: 32px; }
	.k-form { padding: 80px 0 72px; }
	.k-form__inner { grid-template-columns: 1fr; row-gap: 32px; }
	.k-form__title { font-size: 34px; line-height: 40px; }
	.k-form__row { grid-template-columns: 1fr; gap: 24px; }
	/* Menu mobilne (.mnav): pełnoekranowy panel Neutral 900 pod paskiem z logo; hamburger zmienia się w X */
	:root { --page-gutter: 16px; --mnav-bar: 92px; }
	.nav { padding-top: 24px; align-items: center; }
	/* Otwarte (i zamykające się) menu: pasek z logo przypięty do ekranu, nawet gdy strona jest przewinięta */
	.nav.is-open, .nav.is-closing { position: fixed; }
	.nav__list { display: none; }
	.nav__logo { position: relative; z-index: 2; width: 90px; transition: color .4s ease; }
	.nav__toggle {
		display: inline-flex; align-items: center; justify-content: center; margin-left: auto; position: relative; z-index: 2;
		width: 44px; height: 44px; padding: 0; background: none; border: 1px solid rgba(243,236,218,.5);
		border-radius: var(--radius-pill); color: var(--cream-400); cursor: pointer;
		transition: color .4s ease, border-color .4s ease, background-color .4s ease;
	}
	.nav__bars { position: relative; width: 18px; height: 12px; }
	.nav__bars i { position: absolute; left: 0; right: 0; height: 1.5px; background: currentColor; border-radius: 1px; transition: transform .45s var(--ease-out, cubic-bezier(.22,1,.36,1)), opacity .25s ease; }
	.nav__bars i:nth-child(1) { top: 0; }
	.nav__bars i:nth-child(2) { top: 5.25px; }
	.nav__bars i:nth-child(3) { bottom: 0; }
	.nav.is-open .nav__bars i:nth-child(1) { transform: translateY(5.25px) rotate(45deg); }
	.nav.is-open .nav__bars i:nth-child(2) { opacity: 0; transform: scaleX(.3); }
	.nav.is-open .nav__bars i:nth-child(3) { transform: translateY(-5.25px) rotate(-45deg); }
	.nav.is-open .nav__logo, .nav.is-open .nav__toggle { color: var(--cream-400); }
	.nav.is-open .nav__toggle { border-color: rgba(243,236,218,.35); }
	.nav--dark .nav__toggle { color: var(--neutral-900); border-color: rgba(38,35,30,.35); }
	.nav--dark.is-open .nav__toggle { border-color: rgba(243,236,218,.35); }

	.mnav {
		display: flex; flex-direction: column; position: fixed; inset: 0; z-index: 1;
		padding-top: var(--mnav-bar); background: var(--neutral-900); color: var(--cream-300);
		visibility: hidden; opacity: 0; clip-path: inset(0 0 100% 0);
		transition: clip-path .6s var(--ease-out, cubic-bezier(.22,1,.36,1)), opacity .3s ease .3s, visibility 0s linear .6s;
	}
	.nav.is-open .mnav { visibility: visible; opacity: 1; clip-path: inset(0 0 0 0); transition: clip-path .6s var(--ease-out, cubic-bezier(.22,1,.36,1)), opacity 0s, visibility 0s; }
	.mnav__scroll {
		display: flex; flex-direction: column; flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain;
		padding: 8px var(--page-gutter) calc(24px + env(safe-area-inset-bottom)); border-top: 1px solid rgba(248,240,222,.12);
	}
	.mnav__list { margin: 0; padding: 0; list-style: none; }
	.mnav__item, .mnav__foot { opacity: 0; transform: translateY(14px); transition: opacity .3s ease, transform .3s ease; }
	.nav.is-open .mnav__item, .nav.is-open .mnav__foot {
		opacity: 1; transform: none;
		transition: opacity .5s ease calc(.12s + var(--i, 0) * .045s), transform .7s var(--ease-out, cubic-bezier(.22,1,.36,1)) calc(.12s + var(--i, 0) * .045s);
	}
	.mnav__item { border-bottom: 1px solid rgba(248,240,222,.12); }
	.mnav__link {
		display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; padding: 15px 0;
		font-size: 28px; line-height: 34px; font-weight: 400; letter-spacing: -0.01em; color: var(--cream-300);
		cursor: pointer; list-style: none; -webkit-tap-highlight-color: transparent;
	}
	.mnav__link::-webkit-details-marker { display: none; }
	.mnav__arrow { flex: none; width: 14px; height: auto; opacity: .45; transition: transform .3s ease, opacity .3s ease; }
	.mnav__link:active .mnav__arrow, .mnav__link:focus-visible .mnav__arrow { transform: translateX(4px); opacity: 1; }
	.mnav__link[aria-current="page"] { color: var(--dusty-blue); }
	.mnav__link[aria-current="page"] .mnav__arrow { opacity: 1; }
	.mnav__plus { position: relative; flex: none; width: 14px; height: 14px; }
	.mnav__plus::before, .mnav__plus::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1.2px; margin-top: -.6px; background: currentColor; transition: transform .45s var(--ease-out, cubic-bezier(.22,1,.36,1)); }
	.mnav__plus::after { transform: rotate(90deg); }
	details[open]:not(.is-closing) > summary .mnav__plus::after { transform: rotate(0deg); }
	.mnav__plus--sm { width: 11px; height: 11px; opacity: .7; }

	.mnav__body { overflow: hidden; }
	.mnav__offer { padding: 4px 0 24px; }
	.mnav__label { font-size: 13px; line-height: 18px; color: rgba(248,240,222,.6); }
	.mnav__chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; }
	.mnav__chip { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border: 1px solid rgba(248,240,222,.25); border-radius: var(--radius-pill); font-size: 15px; color: var(--cream-300); transition: background-color .2s ease, border-color .2s ease; }
	.mnav__chip:active { background: var(--slate-blue); border-color: var(--slate-blue); }
	.mnav__filters { display: flex; gap: 4px; width: fit-content; margin-top: 24px; padding: 4px; border-radius: var(--radius-pill); background: rgba(248,240,222,.07); }
	.mnav__filter { min-height: 32px; padding: 0 14px; border: 0; border-radius: var(--radius-pill); background: none; font: inherit; font-size: 13px; color: rgba(248,240,222,.75); cursor: pointer; transition: background-color .3s ease, color .3s ease; }
	.mnav__filter.is-active { background: var(--slate-blue); color: var(--cream-400); }
	.mnav__cats { margin: 12px 0 0; padding: 0; list-style: none; }
	.mnav__cats > li { border-bottom: 1px solid rgba(248,240,222,.08); }
	.mnav__cat { display: flex; align-items: center; gap: 12px; width: 100%; padding: 14px 0; font-size: 18px; line-height: 24px; color: var(--cream-300); cursor: pointer; list-style: none; -webkit-tap-highlight-color: transparent; }
	.mnav__cat::-webkit-details-marker { display: none; }
	.mnav__cat .mega__icon { width: 12px; opacity: .6; }
	.mnav__cat > span:not(.mnav__plus) { flex: 1; }
	.mnav__subs { margin: 0; padding: 0 0 14px 24px; list-style: none; }
	.mnav__sub { display: flex; align-items: center; gap: 10px; padding: 7px 0; font-size: 16px; line-height: 22px; color: rgba(248,240,222,.75); }
	.mnav__sub--all { margin-top: 4px; color: var(--cream-300); }
	.mnav__sub--all .mnav__arrow { opacity: .7; }
	.mnav__offer[data-filter="her"] [data-aud="him"],
	.mnav__offer[data-filter="him"] [data-aud="her"] { display: none; }
	.mnav__more { display: inline-flex; align-items: center; gap: 10px; margin-top: 20px; padding-bottom: 2px; border-bottom: 1px solid currentColor; font-size: 16px; color: var(--cream-300); }
	.mnav__more .mnav__arrow { opacity: 1; }

	.mnav__foot { margin-top: auto; padding-top: 32px; }
	.mnav__cta { width: 100%; min-height: 52px; font-size: 16px; }
	.hero { min-height: min(100svh, 760px); padding-top: calc(var(--mnav-bar) + 16px); } /* treść nigdy pod logo */
	.hero__inner { grid-template-columns: 1fr; row-gap: 32px; padding-bottom: 40px; }
	.hero__content, .hero__card { grid-column: 1; grid-row: auto; } /* telefon: karta pod tekstem wprowadzającym */
	.hero__card { width: 100%; min-height: 0; gap: 32px; }
	.hero__title { font-size: 36px; }
	.hero__lead { font-size: 18px; line-height: 26px; }
	.start { padding: 72px 0; }
	.start__title { font-size: 40px; }
	.start__cards { grid-template-columns: 1fr; margin-top: 40px; }
	.card { min-height: 0; gap: 40px; }
	.card__title { font-size: 28px; }
	.card__body { padding-top: 0; }
	.philosophy { padding: 24px 0 72px; }
	.philosophy__title { font-size: 36px; }
	.philosophy__lead { font-size: 18px; }
	.link-underline { font-size: 18px; }
	.pillars { grid-template-columns: 1fr; row-gap: 40px; margin-top: 48px; }
	.pillar + .pillar { padding-left: 0; padding-top: 40px; border-top: 1px solid var(--neutral-300); }
	.pillar + .pillar::before { display: none; }
	.pillar__num { font-size: 48px; line-height: 48px; }
	.signals { padding: 24px 0 96px; }
	.signals__head { align-items: flex-start; text-align: left; }
	.signals__title { font-size: 34px; }
	.signals__lead { font-size: 18px; }
	.signals__track { padding-left: 16px; padding-right: 16px; }
	.signal { flex-basis: 78vw; }
	.signal__img { width: 100%; height: auto; aspect-ratio: 1; }
	.signal__title { font-size: 24px; line-height: 30px; }
	.slider-arrow { display: none; }
	.step__in { grid-template-columns: 1fr; align-content: center; gap: 20px; padding: 0 var(--page-gutter); }
	.step__media, .step--alt .step__media { order: 0; justify-self: stretch; max-width: none; aspect-ratio: auto; height: 44svh; max-height: none; }
	.step__num { font-size: 22px; }
	.step__title { font-size: 36px; line-height: 44px; margin-top: 8px; }
	.step__text { font-size: 18px; line-height: 27px; margin-top: 12px; }
	.team { padding-top: 64px; }
	.team__inner { grid-template-columns: 1fr; row-gap: 32px; }
	.team__title { font-size: 34px; line-height: 42px; }
	.team__text { font-size: 18px; line-height: 27px; }
	.cta { padding: 120px 0 96px; }
	.cta__ring { width: 300px; height: 320px; margin-left: -150px; top: -70px; }
	.cta__title { font-size: 36px; }
	.cta__actions { flex-wrap: wrap; gap: 12px; }
	.page-hero { height: min(100svh, 640px); padding: 0 var(--page-gutter); }
	.page-hero__title { font-size: 44px; line-height: 52px; }
	.page-hero__lead { font-size: 18px; line-height: 26px; }
	.page-hero__actions { flex-wrap: wrap; gap: 12px; }
	.prices { padding: 64px 0; }
	.prices__title, .packages__title { font-size: 32px; line-height: 40px; }
	.price-group__head { height: 72px; padding: 0 8px; font-size: 20px; }
	.price-group__inner { padding: 0 0 40px; margin-top: 0; }
	.price-list__item { height: auto; min-height: 64px; padding: 14px 0; font-size: 16px; line-height: 22px; }
	.price-group__actions { flex-wrap: wrap; gap: 12px; }
	.packages { padding: 64px 0 72px; }
	.packages__grid { grid-template-columns: 1fr; gap: 16px; }
	.pkg { min-height: 0; gap: 32px; }
	.pkg__price { font-size: 40px; line-height: 44px; }
	.packages__footer { flex-direction: column; align-items: flex-start; gap: 20px; }
	.pk-steps { padding: 56px 0 64px; }
	.pk-steps__title { font-size: 36px; line-height: 44px; }
	.pk-steps__lead { margin-top: 12px; font-size: 17px; line-height: 26px; }
	.pk-steps__lead br { display: none; }
	.fl-hero { padding-top: 128px; }
	.fl-hero__title { font-size: 40px; line-height: 48px; }
	.fl-hero__lead { margin-top: 12px; font-size: 17px; line-height: 26px; }
	.fl-hero__lead br, .fl-people__title br { display: none; }
	.fl-hero__media { height: auto; aspect-ratio: 4 / 3; margin-top: 32px; }
	.fl-manifest { padding: 56px 0 64px; }
	.fl-manifest__inner { grid-template-columns: 1fr; row-gap: 20px; }
	.fl-manifest__title { margin-top: 0; text-align: left; font-size: 36px; line-height: 44px; }
	.fl-manifest__text p { font-size: 17px; line-height: 26px; }
	.fl-manifest__text p + p { margin-top: 20px; }
	.fl-values__box { flex-direction: column; height: auto; padding: 32px 20px 36px; }
	.fl-values__side { display: contents; } /* link pod wartościami */
	.fl-values__mark { position: static; width: 96px; }
	.fl-values__grid { grid-template-columns: 1fr; row-gap: 32px; margin-top: 32px; }
	.fl-values__link { position: static; align-self: flex-start; order: 2; margin-top: 36px; }
	.fl-people { padding: 64px 0 72px; }
	.fl-people__title { font-size: 34px; line-height: 42px; }
	.fl-people__lead { font-size: 17px; line-height: 26px; }
	.fl-people__box { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; height: auto; margin-top: 24px; padding: 28px 20px; }
	.fl-people__quote { grid-column: 1 / -1; width: auto; margin-bottom: 16px; }
	.fl-people__quote p { font-size: 18px; line-height: 27px; }
	.fl-person, .fl-person--1, .fl-person--2 { position: relative; left: auto; right: auto; top: auto; width: auto; height: auto; aspect-ratio: 3 / 4; }
	.fl-person__name { height: 34px; padding: 0 12px; font-size: 15px; }
	.fl-person__spec { height: 30px; padding: 0 10px; font-size: 12px; }
	.pk-steps__grid { grid-template-columns: 1fr; gap: 12px; margin-top: 32px; }
	.pk-step__in { min-height: 220px; padding: 28px 20px 24px; }
	.pk-step__num { font-size: 56px; }
	.cta__lead { font-size: 18px; }
	/* Stopka – telefon: 2 kolumny linków, potem adres i kontakt, pasek prawny jeden pod drugim */
	.site-footer { width: calc(100% - 32px); margin-bottom: 16px; }
	.site-footer .site-footer__inner {
		grid-template-columns: 1fr 1fr; gap: 28px 20px; padding: 40px 24px;
		grid-template-areas:
			"logo logo"
			"c1 c2"
			"c3 addr"
			"mail mail"
			"phone phone"
			"l1 l1"
			"l2 l2"
			"l3 l3"
			"copy copy";
	}
	.site-footer .site-footer__mail, .site-footer .site-footer__phone { margin-top: -12px; }
	.site-footer .site-footer__legal--2, .site-footer .site-footer__legal--3 { margin-top: -16px; }
	.site-footer .site-footer__logo { width: 132px; }
}

html.is-menu-open { overflow: hidden; }
/* Niski ekran (telefon poziomo): etapy jeden pod drugim, bez przypinania */
@media (max-height: 560px) {
	.step { position: relative; height: auto; min-height: 0; padding: 48px 0; box-shadow: none; }
	.step::after { display: none; }
	.step__in { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 48px; padding: 0 var(--page-gutter); transform: none; }
	.step__media, .step__body { position: static; width: auto; margin: 0; transform: none; }
	.step__media { max-width: 400px; height: auto; aspect-ratio: 400 / 534; max-height: none; }
	.step--alt .step__media { order: 2; justify-self: end; }
}
@media (prefers-reduced-motion: reduce) {
	.mnav, .nav.is-open .mnav, .mnav__item, .mnav__foot, .nav.is-open .mnav__item, .nav.is-open .mnav__foot, .nav__bars i { transition: none; }
}

@media (max-width: 480px) {
	.sp-grid { grid-template-columns: 1fr; }
	.sp-card__name { font-size: 22px; line-height: 28px; }
}

/* --------------------------------------------------------------------------
   Strefa wiedzy i artykuł – tablet i telefon (brak ramki tabletu; telefon wg ramki "UX low-fi / mobile")
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
	.sw-hero, .art-head { padding-top: 170px; }
	.sw-hero__title, .art-head__title { font-size: 48px; line-height: 58px; }
	.sw-row { grid-template-columns: 220px 1fr; column-gap: 32px; }
	.sw-row__media { height: 220px; }
	.sw-row__body { padding-right: 76px; }
	.sw-row__title { max-width: none; font-size: 32px; line-height: 40px; }
	.sw-row__excerpt { margin-top: 14px; font-size: 17px; line-height: 25px; }
	.sw-row__arrow { bottom: 40px; width: 52px; height: 52px; }
	.sw-latest { padding-top: 96px; }
	.sw-latest__title, .sw-faq__title { font-size: 40px; line-height: 48px; }
	.sw-latest .sw-cards { margin-top: 40px; }
	.sw-cards { gap: 16px; }
	.sw-card__media { height: auto; aspect-ratio: 440 / 300; }
	.sw-faq { padding: 96px 0 120px; }
	.sw-faq__inner { grid-template-columns: 1fr 1.5fr; column-gap: 40px; }
	.sw-faq__title { margin-top: 0; }
	.art-hero { height: auto; aspect-ratio: 1360 / 520; }
	.art-layout { grid-template-columns: 220px minmax(0, 720px); column-gap: 48px; padding-top: 64px; }
	.art-related { padding-top: 64px; }
}

@media (max-width: 950px) {
	.sw-hero, .art-head { padding-top: 128px; }
	.sw-hero__title, .art-head__title { font-size: 36px; line-height: 44px; }
	.sw-hero__lead { margin-top: 16px; font-size: 17px; line-height: 26px; }
	.sw-hero__lead br { display: none; }
	.sw-filters { row-gap: 20px; margin-top: 32px; }
	.sw-filters__row { display: block; }
	.sw-filters__label { display: block; width: auto; margin-bottom: 10px; font-size: 14px; }
	/* pigułki w jednym rzędzie z przewijaniem w bok, do krawędzi ekranu */
	.sw-chips {
		flex-wrap: nowrap; gap: 8px; margin: 0 calc(-1 * var(--page-gutter)); padding: 0 var(--page-gutter);
		overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; scroll-padding-inline: var(--page-gutter);
	}
	.sw-chips::-webkit-scrollbar { display: none; }
	.sw-chip { height: 40px; padding: 0 18px; }
	.sw-list { padding-top: 32px; }
	.sw-row { grid-template-columns: 1fr; row-gap: 20px; padding: 24px 0 28px; }
	.sw-row__media { height: auto; aspect-ratio: 4 / 3; }
	.sw-row__body { padding: 0; }
	.sw-row__title { font-size: 26px; line-height: 32px; }
	.sw-row__title br { display: none; }
	.sw-row__excerpt { margin-top: 10px; font-size: 16px; line-height: 24px; }
	.sw-meta { margin-top: 12px; }
	.sw-row__arrow { display: none; }
	.sw-more { padding-top: 32px; }
	.sw-latest { padding-top: 72px; }
	.sw-latest__title, .sw-faq__title, .art-related__title { font-size: 30px; line-height: 38px; }
	.sw-latest .sw-cards { margin-top: 28px; }
	.sw-latest .sw-more { padding-top: 32px; }
	.sw-cards { grid-template-columns: repeat(2, 1fr); }
	.sw-card__title { font-size: 20px; line-height: 26px; }
	.sw-faq { padding: 72px 0 88px; }
	.sw-faq__inner { grid-template-columns: 1fr; row-gap: 24px; }
	.sw-faq__q { padding: 22px 0; font-size: 17px; line-height: 24px; }
	.sw-faq__a { padding-bottom: 24px; }

	.art-tags { gap: 8px; }
	.art-head__title { margin-top: 18px; }
	.art-head__lead { margin-top: 16px; font-size: 17px; line-height: 26px; }
	.art-byline { flex-direction: column; align-items: flex-start; gap: 20px; margin-top: 24px; padding-top: 20px; }
	.art-author__photo { width: 64px; height: 64px; }
	.art-author__name { font-size: 18px; line-height: 24px; }
	.art-hero { aspect-ratio: 4 / 3; margin-top: 28px; }
	.art-layout { display: flex; flex-direction: column; row-gap: 40px; padding-top: 40px; padding-bottom: 56px; }
	.art-aside { width: 100%; }
	.art-aside__in { position: static; display: grid; gap: 24px; }
	.art-pkg, .art-toc + .art-pkg { margin-top: 0; }
	.art-pkg__link { font-size: 15px; }
	.art-toc__link { min-height: 38px; }
	.art-main { width: 100%; }
	.art-content { font-size: 16px; line-height: 26px; }
	.art-content h2 { margin-top: 40px; font-size: 26px; line-height: 32px; scroll-margin-top: 24px; }
	.art-content blockquote, .art-content .wp-block-quote { margin: 32px 0; padding: 20px 0 20px 20px; }
	.art-content blockquote p { font-size: 20px; line-height: 28px; }
	.art-content figure { margin: 32px 0; }
	.art-content .is-style-vma-alert { padding: 20px 20px 20px 52px; }
	.art-content .is-style-vma-alert::before { left: 20px; top: 22px; }
	.art-cta { margin-top: 40px; padding: 28px 24px 32px; }
	.art-cta__title { margin-top: 16px; font-size: 26px; line-height: 32px; }
	.art-related { padding: 56px 0 64px; }
	.art-related__head { flex-wrap: wrap; align-items: baseline; }
	.art-related .sw-cards { margin-top: 24px; }
}

@media (max-width: 600px) {
	.sw-cards { grid-template-columns: 1fr; }
	.art-related .sw-card:nth-child(n+3) { display: none; } /* na telefonie dwa powiązane wystarczą */
}

/* Problemy – tablet i telefon */
@media (max-width: 1024px) {
	.pr-hero { padding: 170px 0 88px; }
	.pr-index { padding: 0; }
	.pr-index__list { column-gap: 48px; }
	.pr-index__link { padding-right: 8px; }
	.pr-item { padding: 80px 0; }
	.pr-item__inner { grid-template-columns: 1fr 1.15fr; column-gap: 40px; padding: 0; }
	.o-cta--problemy .o-cta__content { padding-bottom: 96px; }
	.o-cta--problemy .o-cta__title { font-size: 40px; line-height: 48px; }
	.to-top { width: 52px; height: 52px; }
}
@media (max-width: 950px) {
	.pr-hero { padding: 128px 0 64px; }
	.pr-hero__lead { margin-top: 16px; }
	.pr-index { margin-top: 24px; }
	.pr-index__list { grid-template-columns: 1fr; }
	.pr-index__link { grid-template-columns: 40px 1fr auto; padding: 18px 4px 12px 0; }
	.pr-index__label { font-size: 20px; line-height: 26px; }
	.pr-item { padding: 64px 0; }
	.pr-item__inner { grid-template-columns: 1fr; row-gap: 28px; }
	.pr-item__title { font-size: 30px; line-height: 36px; }
	.pr-item__lead { margin-top: 14px; font-size: 17px; line-height: 26px; }
	.pr-card { padding: 24px; }
	.pr-card__label, .pr-card__title { font-size: 20px; line-height: 26px; }
	.pr-card__title { margin-top: 10px; }
	.pr-card__text { margin-top: 12px; font-size: 16px; line-height: 24px; }
	.o-cta--problemy { padding-top: 24px; }
	.o-cta--problemy .o-cta__box { min-height: 480px; }
	.o-cta--problemy .o-cta__content { padding: 0 24px 40px; }
	.o-cta--problemy .o-cta__title { font-size: 30px; line-height: 36px; }
	.o-cta--problemy .o-cta__title br { display: none; }
	.o-cta--problemy .o-cta__text { font-size: 16px; line-height: 23px; }
	.to-top { right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); width: 52px; height: 52px; }
	.to-top svg { width: 19px; }
}

/* DS › Card (artykuł): Hover – jasne tło, obrys Burgundy, cień, kategoria Burgundy, strzałka ↗ zamiast „+” */
.sw-card__link { position: relative; border-radius: var(--radius-sm); outline: 1px solid transparent; outline-offset: -1px; transition: outline-color .3s ease, box-shadow .4s ease; }
.sw-card__media, .sw-card__body { transition: background-color .3s ease; }
.sw-card__body { border-radius: 0 0 var(--radius-sm) var(--radius-sm); }
.sw-card__cat { transition: color .3s ease; }
.sw-card__plus::before, .sw-card__plus::after { transition: transform .35s cubic-bezier(.22,1,.36,1), opacity .25s ease; }
.sw-go { position: absolute; inset: -1px; width: calc(16 * var(--u)); height: auto; opacity: 0; transform: translate(-3px, 3px); transition: opacity .3s ease, transform .35s cubic-bezier(.22,1,.36,1); }
@media (hover: hover) {
	.sw-card__link:hover .sw-card__plus { transform: none; }
}
.sw-card__link:hover, .sw-card__link:focus-visible { outline-color: var(--burgundy-600); box-shadow: 0 10px 24px rgba(38, 35, 30, .12); }
.sw-card__link:hover .sw-card__body, .sw-card__link:focus-visible .sw-card__body { background: var(--cream-100); }
.sw-card__link:hover .sw-card__cat, .sw-card__link:focus-visible .sw-card__cat { color: var(--burgundy-600); }
.sw-card__link:hover .sw-card__plus::before, .sw-card__link:hover .sw-card__plus::after,
.sw-card__link:focus-visible .sw-card__plus::before, .sw-card__link:focus-visible .sw-card__plus::after { opacity: 0; transform: scale(.4); }
.sw-card__link:hover .sw-go, .sw-card__link:focus-visible .sw-go { opacity: 1; transform: none; }
.sw-card__link:focus-visible { outline-width: 2px; outline-offset: -2px; }
.k-consent { display: grid; grid-template-columns: auto 1fr; column-gap: calc(10 * var(--u)); row-gap: calc(6 * var(--u)); }
.k-consent .k-field__error { grid-column: 2; }

/* Rezerwacja online (Medfile) – okienko z widgetem / stroną rejestracji */
.booking { width: min(760px, calc(100vw - 32px)); max-width: none; max-height: calc(100svh - 48px); padding: 0; border: 0; border-radius: var(--radius-sm); background: var(--cream-100); color: var(--neutral-900); box-shadow: 0 24px 60px rgba(38, 35, 30, .25); overflow: hidden; }
.booking::backdrop { background: rgba(38, 35, 30, .55); }
.booking[open] { display: flex; animation: booking-in .35s cubic-bezier(.22,1,.36,1); }
.booking[open]::backdrop { animation: booking-fade .35s ease; }
@keyframes booking-in { from { opacity: 0; transform: translateY(12px); } }
@keyframes booking-fade { from { opacity: 0; } }
.booking__box { display: flex; flex-direction: column; width: 100%; max-height: inherit; }
.booking__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 24px; border-bottom: 1px solid var(--neutral-300); }
.booking__title { font-size: 22px; line-height: 28px; }
.booking__close { position: relative; flex: none; width: 40px; height: 40px; padding: 0; border: 1px solid var(--neutral-300); border-radius: 50%; background: transparent; cursor: pointer; transition: background-color .2s ease; }
.booking__close:hover { background: var(--soft-sand); }
.booking__close:focus-visible { outline: 2px solid var(--slate-blue); outline-offset: 2px; }
.booking__close span::before, .booking__close span::after { content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 1.4px; background: var(--neutral-900); transform: translate(-50%, -50%) rotate(45deg); }
.booking__close span::after { transform: translate(-50%, -50%) rotate(-45deg); }
.booking__body { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 24px; }
.booking__pane[hidden] { display: none; }
.booking__frame { display: block; width: 100%; height: min(720px, calc(100svh - 220px)); border: 0; background: #fff; }
.booking__body:has(.booking__pane:not([hidden]) > .booking__frame) { padding: 0; }
.booking__foot { padding: 14px 24px 18px; border-top: 1px solid var(--neutral-300); font-size: 14px; }
.booking__foot .link-underline { font-size: 14px; }
@media (max-width: 950px) {
	.booking { width: 100vw; max-height: 100svh; height: 100svh; border-radius: 0; }
	.booking__head { padding: 14px 16px; }
	.booking__body { padding: 16px; }
	.booking__frame { height: calc(100svh - 140px); }
}
.k-info__admin { margin-top: 12px; padding: 10px 12px; border: 1px dashed var(--color-error); font-size: 13px; line-height: 19px; color: var(--color-error); }
.k-info__admin a { text-decoration: underline; }

/* ==========================================================================
   Dokument prawny (page-legal.php) – układ artykułu, numerowane rozdziały
   ========================================================================== */
.legal-head .art-head__title { margin-top: 0; }
.legal-meta { display: flex; flex-wrap: wrap; gap: calc(12 * var(--u)) calc(48 * var(--u)); margin: calc(40 * var(--u)) 0 0; padding-top: calc(23 * var(--u)); border-top: 1px solid var(--neutral-300); font-size: calc(14 * var(--u)); line-height: calc(20 * var(--u)); }
.legal-meta div { display: flex; gap: calc(8 * var(--u)); }
.legal-meta dt { color: var(--neutral-700); }
.legal-meta dt::after { content: ":"; }
.legal-meta dd { margin: 0; color: var(--neutral-900); }

.legal-docs + .legal-toc { margin-top: calc(40 * var(--u)); }
.legal-docs__list { display: grid; gap: calc(8 * var(--u)); margin: calc(18 * var(--u)) 0 0; padding: 0; list-style: none; }
.legal-docs__link {
	display: flex; align-items: center; justify-content: space-between; gap: calc(12 * var(--u)); min-height: calc(48 * var(--u)); padding: calc(10 * var(--u)) calc(16 * var(--u));
	border: 1px solid var(--neutral-300); font-size: calc(14 * var(--u)); line-height: calc(18 * var(--u)); color: var(--k-text);
	transition: border-color .25s ease, background-color .25s ease, color .25s ease;
}
.legal-docs__link::after { content: ""; flex: none; width: 6px; height: 6px; border-top: 1px solid currentColor; border-right: 1px solid currentColor; transform: rotate(45deg); opacity: .6; transition: transform .3s cubic-bezier(.22,1,.36,1); }
.legal-docs__link:hover { border-color: var(--neutral-900); color: var(--neutral-900); }
.legal-docs__link:hover::after { transform: translateX(3px) rotate(45deg); }
.legal-docs__link:focus-visible { outline: 2px solid var(--slate-blue); outline-offset: 2px; }
.legal-docs__link.is-current { border-color: var(--neutral-900); background: var(--neutral-900); color: var(--cream-400); font-weight: 500; }
.legal-docs__link.is-current::after { content: none; }

.legal-toc__num { flex: none; width: calc(28 * var(--u)); font-size: calc(12 * var(--u)); color: var(--slate-blue); font-variant-numeric: tabular-nums; }

.legal-content { counter-reset: legal; }
.legal-content h2 { counter-increment: legal; padding-top: calc(48 * var(--u)); border-top: 1px solid var(--neutral-300); }
.legal-content > h2:first-child { padding-top: 0; border-top: 0; }
.legal-content h2::before { content: counter(legal, decimal-leading-zero); display: block; margin-bottom: calc(14 * var(--u)); font-size: calc(14 * var(--u)); line-height: calc(20 * var(--u)); letter-spacing: 0; color: var(--slate-blue); font-variant-numeric: tabular-nums; }
.legal-content p, .legal-content li { color: var(--k-text); }
.legal-content strong { color: var(--neutral-900); }
.legal-content table { width: 100%; border-collapse: collapse; font-size: calc(14 * var(--u)); line-height: calc(20 * var(--u)); }
.legal-content th, .legal-content td { padding: calc(12 * var(--u)) calc(16 * var(--u)) calc(12 * var(--u)) 0; border-bottom: 1px solid var(--neutral-300); text-align: left; vertical-align: top; }
.legal-content th { font-weight: 500; color: var(--neutral-900); }

.legal-box { display: flex; align-items: flex-end; justify-content: space-between; gap: calc(32 * var(--u)); margin-top: calc(72 * var(--u)); padding: calc(36 * var(--u)) calc(40 * var(--u)); background: var(--cream-400); }
.legal-box__title { font-size: calc(24 * var(--u)); line-height: calc(32 * var(--u)); }
.legal-box__lead { margin-top: calc(8 * var(--u)); font-size: calc(14 * var(--u)); line-height: calc(20 * var(--u)); color: var(--neutral-700); }
.legal-box__mail { display: inline-block; margin-top: calc(20 * var(--u)); font-size: calc(16 * var(--u)); }
.legal-box__print { flex: none; }

@media (max-width: 950px) {
	.legal-meta { flex-direction: column; gap: 6px; margin-top: 24px; padding-top: 20px; font-size: 14px; line-height: 20px; }
	.legal-meta div { gap: 6px; }
	.legal-docs + .legal-toc { margin-top: 0; }
	.legal-docs__list { margin-top: 14px; gap: 8px; }
	.legal-docs__link { min-height: 48px; padding: 10px 16px; font-size: 15px; line-height: 20px; }
	.legal-toc__num { width: 28px; font-size: 12px; }
	.legal-content h2 { padding-top: 40px; }
	.legal-content h2::before { margin-bottom: 10px; font-size: 13px; line-height: 18px; }
	.legal-content table { font-size: 14px; line-height: 20px; }
	.legal-box { flex-direction: column; align-items: flex-start; gap: 24px; margin-top: 48px; padding: 28px 20px; }
	.legal-box__title { font-size: 22px; line-height: 28px; }
	.legal-box__lead { font-size: 14px; line-height: 20px; }
	.legal-box__mail { margin-top: 16px; font-size: 16px; }
	.legal-box__print { width: 100%; }
}

@media print {
	.legal ~ *, .site-header, .site-nav, .site-footer, .legal-aside, .legal-box__print, .to-top, .booking { display: none !important; }
	.legal .art-head { padding-top: 0; }
	.legal .art-layout { display: block; padding: 24px 0 0; }
	.legal [data-reveal] { opacity: 1 !important; transform: none !important; }
	.legal-content h2 { break-after: avoid; }
	.legal-box { background: none; padding: 16px 0 0; border-top: 1px solid #999; }
}

/* Kontakt › blok "Kontakty" (lista osób i działów) */
.k-contacts { display: grid; gap: calc(20 * var(--u)); margin: calc(14 * var(--u)) 0 0; padding: 0; list-style: none; }
.k-contact__role { font-size: calc(12 * var(--u)); line-height: calc(16 * var(--u)); color: var(--slate-blue); }
.k-contact__name { margin-top: calc(4 * var(--u)); font-size: calc(16 * var(--u)); line-height: calc(22 * var(--u)); color: var(--neutral-900); }
.k-contact__desc { color: var(--k-text); }
.k-contact__links { display: flex; flex-direction: column; align-items: flex-start; gap: calc(2 * var(--u)); margin-top: calc(4 * var(--u)); font-size: calc(15 * var(--u)); line-height: calc(22 * var(--u)); color: var(--k-text); }
.k-contact__links a { overflow-wrap: anywhere; transition: color .2s ease; }
.k-contact__links a:hover { color: var(--neutral-900); }
@media (max-width: 950px) {
	.k-contacts { gap: 18px; margin-top: 12px; }
	.k-contact__role { font-size: 12px; line-height: 16px; }
	.k-contact__name { font-size: 16px; line-height: 22px; }
	.k-contact__links { font-size: 15px; line-height: 23px; }
}
