/**
 * TKO Orkiestra — zmienne globalne (custom properties).
 * Paleta marki: czarny #0F0E0E, biały #FCFCF6, szary #929292, akcent
 * pomarańczowy #ffc133 (jedyny kolor akcentu w całej wtyczce — patrz --tko-accent).
 * Font: Supreme (lokalny WOFF2 z fallbackiem Fontshare). Typografia fluid przez clamp() — bez media
 * query dla samego rozmiaru tekstu, tylko dla layoutu tam gdzie naprawdę
 * trzeba.
 */

:root {
	/* === Kolory === */
	/* Dokładne wartości z projektu Figma (Hero) — źródło prawdy dla całej wtyczki. */
	--tko-black: #0f0e0e;
	--tko-white: #fcfcf6;
	--tko-black-soft: #1a1918;
	--tko-white-soft: #ececea;
	--tko-gray-500: #6f6f6c;
	--tko-gray-700: #3a3a38;
	/* Szary marki (Figma) — neutralny akcent tekstowy/tło pośrednie,
	   pomiędzy --tko-white-soft a --tko-gray-500. */
	--tko-gray: #929292;
	/* Pomarańczowy akcent marki — jedyny kolor akcentu w całej wtyczce: CTA,
	   progress bar odtwarzacza, ikony/znak graficzny ("Szacunek dla
	   słuchacza" w About). Jedno źródło prawdy — patrz komentarz w
	   nagłówku pliku. */
	--tko-accent: #ffc133;
	--tko-accent-ink: #0f0e0e; /* kolor treści/ikon NA --tko-accent — kontrast AA */
	--tko-border: rgba(252, 252, 246, 0.14);
	--tko-border-on-light: rgba(15, 14, 14, 0.12);
	--tko-overlay: rgba(15, 14, 14, 0.72);

	/* Tła/teksty domyślne (tryb ciemny jako baza — orkiestra, sceniczny klimat) */
	--tko-bg: var(--tko-black);
	--tko-fg: var(--tko-white);

	/* === Typografia === */
	/* Supreme — 1.7.45 preferuje lokalny Supreme-Variable.woff2 preloadowany
	   z własnej domeny; Fontshare pozostaje wyłącznie awaryjnym fallbackiem. */
	--tko-font-primary: 'Supreme', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

	/* Fluid type scale — clamp(min, preferred, max), skalowane po viewport width */
	--tko-fs-marquee: clamp(2.75rem, 1.2rem + 8vw, 8rem); /* duży pętlący nagłówek Hero — cel ~128px na desktopie */
	--tko-fs-subheading: clamp(1.5rem, 1.2rem + 1.6vw, 2rem); /* nagłówki 32px z sekcji tekstowych (np. "O nas") */
	--tko-fs-display: clamp(2.75rem, 1.6rem + 5.5vw, 7rem);
	--tko-fs-h1: clamp(2.25rem, 1.5rem + 3.5vw, 4.5rem);
	--tko-fs-h2: clamp(1.75rem, 1.3rem + 2.2vw, 3rem);
	--tko-fs-h3: clamp(1.25rem, 1.05rem + 1vw, 1.75rem);
	--tko-fs-h4: clamp(1.1rem, 1rem + 0.5vw, 1.4rem);
	--tko-fs-body-lg: clamp(1.05rem, 0.95rem + 0.4vw, 1.25rem);
	--tko-fs-body: clamp(0.95rem, 0.9rem + 0.2vw, 1.05rem);
	--tko-fs-small: clamp(0.8rem, 0.78rem + 0.1vw, 0.875rem);

	--tko-lh-tight: 1.05;
	--tko-lh-heading: 1.15;
	--tko-lh-body: 1.6;

	--tko-fw-regular: 400;
	--tko-fw-medium: 500;
	--tko-fw-semibold: 600;
	--tko-fw-bold: 700;

	--tko-tracking-tighter: -0.04em; /* duża typografia display — Hero marquee, karty */
	--tko-tracking-tight: -0.02em;
	--tko-tracking-normal: 0;
	--tko-tracking-wide: 0.08em;


	/* === 1.7.43 — kanoniczny system typografii ============================
	 * Wzorzec: sekcja „Kto tworzy TKO”. Wszystkie widgety mapują tekst do
	 * jednej z poniższych ról zamiast definiować własne wagi/interlinie. */
	--tko-type-display-size: clamp(3rem, 7vw, 7rem);
	--tko-type-display-weight: var(--tko-fw-medium);
	--tko-type-display-line: 0.91;
	--tko-type-display-track: -0.055em;

	--tko-type-statement-size: clamp(2.25rem, 1.1rem + 5vw, 5.5rem);
	--tko-type-statement-weight: var(--tko-fw-medium);
	--tko-type-statement-line: 1.04;
	--tko-type-statement-track: var(--tko-tracking-tighter);

	--tko-type-card-heading-size: clamp(2rem, 1.5rem + 2.2vw, 3.4rem);
	--tko-type-card-heading-weight: var(--tko-fw-medium);
	--tko-type-card-heading-line: 1.04;
	--tko-type-card-heading-track: var(--tko-tracking-tighter);

	--tko-type-eyebrow-size: var(--tko-fs-small);
	--tko-type-eyebrow-weight: var(--tko-fw-medium);
	--tko-type-eyebrow-line: 1.6;
	--tko-type-eyebrow-track: var(--tko-tracking-wide);

	--tko-type-lead-size: var(--tko-fs-body-lg);
	--tko-type-lead-weight: var(--tko-fw-regular);
	--tko-type-lead-line: 1.35;
	--tko-type-lead-track: 0;

	--tko-type-body-size: 17px;
	--tko-type-body-weight: var(--tko-fw-regular);
	--tko-type-body-line: var(--tko-lh-body);
	--tko-type-body-track: -0.04em;

	--tko-type-large-copy-size: clamp(1.15rem, 1rem + 0.7vw, 1.75rem);
	--tko-type-large-copy-weight: var(--tko-fw-regular);
	--tko-type-large-copy-line: 1.35;
	--tko-type-large-copy-track: -0.025em;

	--tko-type-item-title-size: var(--tko-fs-body-lg);
	--tko-type-item-title-weight: var(--tko-fw-medium);
	--tko-type-item-title-line: 1.35;
	--tko-type-item-title-track: var(--tko-tracking-tight);

	--tko-type-meta-size: var(--tko-fs-small);
	--tko-type-meta-weight: var(--tko-fw-regular);
	--tko-type-meta-line: 1.6;
	--tko-type-meta-track: 0;

	--tko-type-micro-size: 0.75rem;
	--tko-type-micro-weight: var(--tko-fw-medium);
	--tko-type-micro-line: 1.4;
	--tko-type-micro-track: 0.12em;

	--tko-type-action-size: var(--tko-fs-small);
	--tko-type-action-weight: var(--tko-fw-medium);
	--tko-type-action-line: 1.35;
	--tko-type-action-track: 0;

	--tko-type-button-size: var(--tko-fs-body-lg);
	--tko-type-button-weight: var(--tko-fw-medium);
	--tko-type-button-line: 1.2;
	--tko-type-button-track: var(--tko-tracking-tight);

	/* === Spacing scale (fluid) === */
	--tko-space-2xs: clamp(0.5rem, 0.45rem + 0.2vw, 0.625rem);
	--tko-space-xs: clamp(0.75rem, 0.68rem + 0.3vw, 1rem);
	--tko-space-sm: clamp(1rem, 0.9rem + 0.5vw, 1.5rem);
	--tko-space-md: clamp(1.75rem, 1.5rem + 1.2vw, 2.5rem);
	--tko-space-lg: clamp(2.5rem, 2rem + 2.2vw, 4rem);
	--tko-space-xl: clamp(4rem, 3rem + 4vw, 7rem);
	--tko-space-2xl: clamp(6rem, 4.5rem + 6vw, 11rem);

	/* === Layout === */
	--tko-container-max: 1440px;
	--tko-container-pad: clamp(1.25rem, 1rem + 2vw, 3rem);
	--tko-radius-sm: 6px;
	--tko-radius-md: 14px;
	--tko-radius-full: 999px;

	/* === Motion === */
	--tko-ease: cubic-bezier(0.19, 1, 0.22, 1);
	--tko-ease-out-soft: cubic-bezier(0.16, 1, 0.3, 1);
	--tko-dur-fast: 0.25s;
	--tko-dur-base: 0.5s;
	--tko-dur-slow: 0.9s;

	/* === Z-index scale — jedno źródło prawdy, żeby preloader/offcanvas/
	   page-transitions nigdy się nie gryzły === */
	--tko-z-base: 1;
	--tko-z-header: 100;
	--tko-z-offcanvas: 200;
	--tko-z-transition: 300;
	--tko-z-preloader: 400;
}

/* Paleta jest zarządzana wyłącznie przez wtyczkę. Stare wartości zapisane
   przez kontrolki kolorów Elementora nie mogą nadpisywać akcentu marki. */
/* Elementor przechowuje globalny akcent także we własnej zmiennej.
   Nadpisanie jej tutaj usuwa różową naleciałość #CC3366 z elementów, które
   dziedziczą kolor z Site Settings zamiast z lokalnych zmiennych TKO. */
:root,
body,
.elementor {
	--e-global-color-accent: #ffc133 !important;
}

.tko-section,
.tko-header,
#tko-preloader,
#tko-page-transition {
	--tko-accent: #ffc133 !important;
	--tko-accent-ink: #0f0e0e !important;
	--e-global-color-accent: #ffc133 !important;
}

/* Reset skoncentrowany na tym, czego realnie potrzebujemy — bez ciężkiego
   normalize.css, zgodnie z zasadą "unikaj zbędnych bibliotek". */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	min-height: 100%;
	background: var(--tko-bg);
	scrollbar-gutter: stable;
	scroll-behavior: auto; /* Kotwice wygładza tko-header.js; główny scroll pozostaje natywny. */
	/* Pozostawiamy naturalne zachowanie krawędzi przewijania. */
	overscroll-behavior-y: auto;
	max-width: 100%;
	overflow-x: clip;
}

/* 1.7.0 (J-1): usuniete martwe reguly html.tko-natural-section-snap -
   klasa nie byla nadawana przez zaden modul JS/PHP wtyczki. */

/* 1.7.1 - oslona anty-FOUC dla animacji wejscia. Stany poczatkowe reveal
   ustawia JS (gsap.set w tko-reveal.js), wiec miedzy pierwszym paintem a
   inicjalizacja tresc byla widoczna i "migala" (zgloszone dla sekcji
   Bilety, dotyczylo kazdej sekcji z reveal). Ukrywamy elementy TYLKO:
   - gdy JS na pewno dziala (html.tko-js z krytycznego skryptu w <head>),
   - dopoki grupa nie zostanie uzbrojona (tko-reveal.js ZAWSZE nadaje
     data-tko-reveal-ready - takze w trybach reduced-motion/editor,
     w ktorych natychmiast odslania tresc). Po uzbrojeniu selektor gasnie
   i wladze przejmuja style inline GSAP, wiec clearProps po animacji
   niczego z powrotem nie chowa. Bez JS (brak tko-js) tresc jest widoczna
   od razu - progressive enhancement bez zmian. */
html.tko-js [data-tko-reveal-group]:not([data-tko-reveal-ready]) [data-tko-reveal] {
	opacity: 0;
}

/* Wspólna blokada preloadera i paneli. Style geometryczne body są ustawiane
   inline przez tko-global.js; klasy zapewniają stabilne zachowanie krawędzi
   i brak rubber-bandingu podczas aktywnej blokady na iOS. */
html.tko-native-scroll-locked,
body.tko-native-scroll-locked {
	overscroll-behavior: none;
}

body {
	margin: 0;
	min-height: 100%;
	background: var(--tko-bg);
	color: var(--tko-fg);
	font-family: var(--tko-font-primary);
	font-size: var(--tko-fs-body);
	line-height: var(--tko-lh-body);
	font-weight: var(--tko-fw-regular);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	max-width: 100%;
	overflow-x: clip;
}

img,
video,
svg {
	display: block;
	max-width: 100%;
	height: auto;
}

@supports not (overflow: clip) {
	html,
	body {
		overflow-x: hidden;
	}
}

/* Focus states — dostępność. Widoczny tylko przy nawigacji klawiaturą. */
:focus-visible {
	outline: 2px solid var(--tko-accent);
	outline-offset: 3px;
	border-radius: var(--tko-radius-sm);
}

a,
button {
	color: inherit;
	font: inherit;
}

button {
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
}

/**
 * === System marginesów bocznych ("nigdy nie musisz o tym myśleć") ========
 *
 * Zasada: SEKCJA jest full-bleed (tło/wideo od krawędzi do krawędzi ekranu),
 * a TREŚĆ w środku dostaje automatyczny, responsywny margines boczny przez
 * .tko-section__inner. Każdy widget budowany na Tko_Base_Widget (patrz
 * includes/widgets/class-tko-base-widget.php -> tko_open_container() /
 * tko_close_container()) dostaje to automatycznie w markupie — nie trzeba
 * pamiętać o tym przy każdej nowej sekcji.
 *
 * .tko-section        -> pełna szerokość, ZERO paddingu (dla tła/wideo)
 * .tko-section__inner -> max-width + automatyczny padding-inline (dla treści)
 * .tko-container       -> to samo co __inner, do użycia poza widgetami
 *                         (np. w customowym markupie, shortcode itp.)
 */

.tko-section {
	position: relative;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	z-index: var(--tko-section-order, var(--tko-z-base));
}

/* Sekcja z jasnym tłem (np. "O nas") — odwraca kolory względem domyślnego
   ciemnego motywu strony. Guzik/akcenty (czarne na białym) definiowane są
   lokalnie w CSS danego widgetu, bo są odwrotne względem reszty strony. */
.tko-section--light {
	background: var(--tko-white);
	color: var(--tko-black);
}

/* Odwrócenie palety na poziomie zmiennych zachowuje istniejący layout i kod
   animacji. Lokalne reguły sekcji używające czerni/bieli automatycznie
   zamieniają się miejscami, natomiast pomarańczowy akcent pozostaje bez zmian. */
.tko-section.tko-section--invert-colors {
	--tko-black: #fcfcf6;
	--tko-white: #0f0e0e;
	--tko-black-soft: #ececea;
	--tko-white-soft: #1a1918;
	--tko-border: rgba(15, 14, 14, 0.14);
	--tko-border-on-light: rgba(252, 252, 246, 0.14);
	--tko-bg: var(--tko-black);
	--tko-fg: var(--tko-white);
}

/* Klasy poprzedniego (własnoręcznie liczonego) silnika przejść — nie są
   już nadawane od cofnięcia do natywnego pin+scrub (patrz
   tko-stack-transitions.js), reguły pozostają neutralne dla zgodności
   z cache HTML. */
.tko-section--transition-source,
.tko-section--transition-target {
	isolation: isolate;
	backface-visibility: hidden;
	transform-style: preserve-3d;
}

.tko-section--transition-running {
	will-change: transform, opacity, filter, clip-path;
}

.tko-section-transition__overlay {
	position: absolute;
	inset: 0;
	z-index: 1000;
	pointer-events: none;
	opacity: 0;
	contain: paint;
}

.tko-text-reveal__word {
	display: inline-block;
	vertical-align: baseline;
	backface-visibility: hidden;
}

/* Klasa nie jest już nadawana od 1.4.1 (usunięto blokadę wejścia scrolla),
   reguła pozostaje neutralna dla zgodności z cache HTML starszych wersji. */
html.tko-motion-scroll-locked {
	overscroll-behavior: none;
}

/* Dodawana przez tko-stack-transitions.js na sekcji NASTĘPUJĄCEJ po tej
   z `data-tko-stack-pin` — musi mieć wyższy z-index, żeby wjeżdżając od
   dołu wizualnie przykrywała przypiętą (pinned) sekcję pod spodem, zamiast
   chować się za nią. Patrz assets/js/tko-stack-transitions.js. */
.tko-section--covers-prev {
	z-index: 3;
	position: relative;
	isolation: isolate;
}

.tko-section--stack-active {
	backface-visibility: hidden;
	transform: translateZ(0);
	isolation: isolate;
}

/* Na mobile sekcja wchodząca zachowuje się jak pełnoekranowa karta.
   Radius jest animowany przez GSAP do zera, a overflow:clip zapobiega
   wystawaniu dzieci poza zaokrągloną krawędź w pierwszej fazie coveru. */
@media (max-width: 1023px), (pointer: coarse) {
	.tko-section--mobile-cover {
		overflow: clip;
		backface-visibility: hidden;
		transform-origin: 50% 0%;
	}
}

.tko-section--stack-covered {
	pointer-events: none;
}

.tko-section__inner,
.tko-container {
	width: 100%;
	min-width: 0;
	max-width: var(--tko-container-max);
	margin-inline: auto;
	padding-inline: var(--tko-container-pad);
}

/* Wariant "narrow" — dla sekcji tekstowych (np. Case Study), gdzie pełne
   1440px byłoby za szerokie do czytania. Dopisujesz klasę obok __inner. */
.tko-section__inner--narrow {
	max-width: 860px;
}

.tko-visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* Redukcja ruchu — respektujemy preferencję systemową, ograniczamy GSAP
   smooth scroll w tko-global.js gdy to jest ustawione (patrz prefersReducedMotion). */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Kotwice sekcji — wspólny margines bezpieczeństwa dla sticky headera. */
[data-tko-hero],
[data-tko-about],
[data-tko-project],
[data-tko-orchestra],
[data-tko-program],
[data-tko-tickets],
[data-tko-contact],
[data-tko-footer] {
	scroll-margin-top: clamp(72px, 8vw, 112px);
}

/* Runway i warstwy animowane nie mogą przejmować browser scroll anchoringu. */
.tko-page-transition,
.tko-preloader,
.tko-project__lightbox {
	overflow-anchor: none;
}

/* ========================================================================
   1.7.31 — globalna siatka bezpieczeństwa dla `.pin-spacer` (GSAP).
   ========================================================================
   Każdy `pin: element` z `pinSpacing: true` (domyślne dla Biletów i
   przypiętego Overlapu w "O nas") automatycznie owija przypinany element w
   `div.pin-spacer`, którego wysokość ma dokładnie odpowiadać długości
   scrolla pina. Sam spacer nie ma domyślnie żadnego tła — jeśli jego
   wysokość na moment nie pokryje się z wysokością przypiętej treści (np.
   tuż po doładowaniu fontu/obrazu, zanim `invalidateOnRefresh` przeliczy
   ją ponownie), przez przezroczysty spacer prześwituje tło strony pod
   spodem zamiast tła sekcji — widoczne jako krótka szczelina w niespójnym
   kolorze między sekcjami. Dajemy KAŻDEMU spacerowi jawne tło zamiast
   polegać na przezroczystości; Bilety mają dodatkowo własną, bardziej
   szczegółową regułę w tko-tickets.css (z !important, zachowana bez zmian). */
.pin-spacer {
	background: var(--tko-bg);
}

.pin-spacer:has(> [data-tko-overlap-stack]) {
	background: var(--tko-white);
}


/* 1.7.43 — mobilne wartości tych samych ról, bez osobnych systemów per widget. */
@media (max-width: 767px) {
	:root {
		--tko-type-display-size: clamp(2.75rem, 14vw, 4.6rem);
		--tko-type-statement-size: clamp(2rem, 10vw, 3.8rem);
		--tko-type-card-heading-size: clamp(1.85rem, 8vw, 2.7rem);
		--tko-type-large-copy-size: 1.125rem;
	}
}
/** Premium overlay przejść między podstronami. */
.tko-page-transition {
	position: fixed;
	inset: 0;
	z-index: var(--tko-z-transition);
	display: grid;
	place-items: center;
	background: var(--tko-black);
	color: var(--tko-white);
	pointer-events: none;
	opacity: 0;
	visibility: hidden;
	transform: translate3d(0, 0, 0);
	will-change: auto;
	--tko-transition-duration: 520ms;
}

/* Klasa jest ustawiana w <head> przed pierwszym paintem po nawigacji. */
html.tko-page-transition-entering .tko-page-transition,
.tko-page-transition.is-active {
	opacity: 1;
	will-change: opacity;
	visibility: visible;
	pointer-events: all;
}

.tko-page-transition.is-ready {
	transition:
		opacity var(--tko-transition-duration) var(--tko-ease),
		visibility 0s linear var(--tko-transition-duration);
}

.tko-page-transition.is-ready.is-active {
	transition:
		opacity var(--tko-transition-duration) var(--tko-ease),
		visibility 0s linear 0s;
}

.tko-page-transition__brand {
	font-family: var(--tko-font-primary);
	font-weight: var(--tko-fw-medium);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-size: clamp(0.82rem, 0.75rem + 0.25vw, 1rem);
	opacity: 0;
	transform: translate3d(0, 12px, 0);
	transition:
		opacity 420ms var(--tko-ease-out-soft),
		transform 620ms var(--tko-ease-out-soft);
}

.tko-page-transition.is-navigating .tko-page-transition__brand,
.tko-page-transition.is-entering .tko-page-transition__brand,
html.tko-page-transition-entering .tko-page-transition__brand {
	opacity: 1;
	transform: translate3d(0, 0, 0);
	transition-delay: 80ms;
}

html.tko-transition-lock {
	overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
	.tko-page-transition,
	.tko-page-transition__brand {
		transition: none !important;
	}
}


/* === 1.7.43 — spójna typografia page transition ========================= */
#tko-page-transition { font-family:var(--tko-font-primary) !important; }
.tko-page-transition__brand { font-size:var(--tko-type-eyebrow-size) !important;font-weight:var(--tko-type-eyebrow-weight) !important;line-height:var(--tko-type-eyebrow-line) !important;letter-spacing:var(--tko-type-eyebrow-track) !important;text-transform:uppercase !important; }
.cmplz-video.cmplz-iframe-styles{background-color:transparent}.cmplz-video.cmplz-hidden{visibility:hidden !important}.cmplz-blocked-content-notice{display:none}.cmplz-placeholder-parent{height:inherit}.cmplz-optin .cmplz-blocked-content-container .cmplz-blocked-content-notice,.cmplz-optin .cmplz-wp-video .cmplz-blocked-content-notice,.cmplz-optout .cmplz-blocked-content-container .cmplz-blocked-content-notice,.cmplz-optout .cmplz-wp-video .cmplz-blocked-content-notice{display:block}.cmplz-blocked-content-container,.cmplz-wp-video{animation-name:cmplz-fadein;animation-duration:600ms;background:#FFF;border:0;border-radius:3px;box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15);display:flex;justify-content:center;align-items:center;background-repeat:no-repeat !important;background-size:cover !important;height:inherit;position:relative}.cmplz-blocked-content-container.gmw-map-cover,.cmplz-wp-video.gmw-map-cover{max-height:100%;position:absolute}.cmplz-blocked-content-container.cmplz-video-placeholder,.cmplz-wp-video.cmplz-video-placeholder{padding-bottom:initial}.cmplz-blocked-content-container iframe,.cmplz-wp-video iframe{visibility:hidden;max-height:100%;border:0 !important}.cmplz-blocked-content-container .cmplz-custom-accept-btn,.cmplz-wp-video .cmplz-custom-accept-btn{white-space:normal;text-transform:initial;cursor:pointer;position:absolute !important;width:100%;top:50%;left:50%;transform:translate(-50%,-50%);max-width:200px;font-size:14px;padding:10px;background-color:rgba(0,0,0,0.5);color:#fff;text-align:center;z-index:98;line-height:23px}.cmplz-blocked-content-container .cmplz-custom-accept-btn:focus,.cmplz-wp-video .cmplz-custom-accept-btn:focus{border:1px dotted #cecece}.cmplz-blocked-content-container .cmplz-blocked-content-notice,.cmplz-wp-video .cmplz-blocked-content-notice{white-space:normal;text-transform:initial;position:absolute !important;width:100%;top:50%;left:50%;transform:translate(-50%,-50%);max-width:300px;font-size:14px;padding:10px;background-color:rgba(0,0,0,0.5);color:#fff;text-align:center;z-index:98;line-height:23px}.cmplz-blocked-content-container .cmplz-blocked-content-notice .cmplz-links,.cmplz-wp-video .cmplz-blocked-content-notice .cmplz-links{display:block;margin-bottom:10px}.cmplz-blocked-content-container .cmplz-blocked-content-notice .cmplz-links a,.cmplz-wp-video .cmplz-blocked-content-notice .cmplz-links a{color:#fff}.cmplz-blocked-content-container .cmplz-blocked-content-notice .cmplz-blocked-content-notice-body,.cmplz-wp-video .cmplz-blocked-content-notice .cmplz-blocked-content-notice-body{display:block}.cmplz-blocked-content-container div div{display:none}.cmplz-wp-video .cmplz-placeholder-element{width:100%;height:inherit}@keyframes cmplz-fadein{from{opacity:0}to{opacity:1}}html{line-height:1.15;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:border-box}body{background-color:#fff;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{color:inherit;font-family:inherit;font-weight:500;line-height:1.2;margin-block-end:1rem;margin-block-start:.5rem}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-block-end:.9rem;margin-block-start:0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em;white-space:pre-wrap}a{background-color:#fff0;color:#c36;text-decoration:none}a:active,a:hover{color:#336}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}abbr[title]{border-block-end:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none;height:auto;max-width:100%}details{display:block}summary{display:list-item}figcaption{color:#333;font-size:16px;font-style:italic;font-weight:400;line-height:1.4}[hidden],template{display:none}@media print{*,:after,:before{background:transparent!important;box-shadow:none!important;color:#000!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre{white-space:pre-wrap!important}blockquote,pre{-moz-column-break-inside:avoid;border:1px solid #ccc;break-inside:avoid}thead{display:table-header-group}img,tr{-moz-column-break-inside:avoid;break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{-moz-column-break-after:avoid;break-after:avoid}}label{display:inline-block;line-height:1;vertical-align:middle}button,input,optgroup,select,textarea{font-family:inherit;font-size:1rem;line-height:1.5;margin:0}input[type=date],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],select,textarea{border:1px solid #666;border-radius:3px;padding:.5rem 1rem;transition:all .3s;width:100%}input[type=date]:focus,input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,select:focus,textarea:focus{border-color:#333}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;width:auto}[type=button],[type=submit],button{background-color:#fff0;border:1px solid #c36;border-radius:3px;color:#c36;display:inline-block;font-size:1rem;font-weight:400;padding:.5rem 1rem;text-align:center;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}[type=button]:focus:not(:focus-visible),[type=submit]:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none}[type=button]:focus,[type=button]:hover,[type=submit]:focus,[type=submit]:hover,button:focus,button:hover{background-color:#c36;color:#fff;text-decoration:none}[type=button]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto;resize:vertical}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}select{display:block}table{background-color:#fff0;border-collapse:collapse;border-spacing:0;font-size:.9em;margin-block-end:15px;width:100%}table td,table th{border:1px solid hsl(0 0% 50% / .502);line-height:1.5;padding:15px;vertical-align:top}table th{font-weight:700}table tfoot th,table thead th{font-size:1em}table caption+thead tr:first-child td,table caption+thead tr:first-child th,table colgroup+thead tr:first-child td,table colgroup+thead tr:first-child th,table thead:first-child tr:first-child td,table thead:first-child tr:first-child th{border-block-start:1px solid hsl(0 0% 50% / .502)}table tbody>tr:nth-child(odd)>td,table tbody>tr:nth-child(odd)>th{background-color:hsl(0 0% 50% / .071)}table tbody tr:hover>td,table tbody tr:hover>th{background-color:hsl(0 0% 50% / .102)}table tbody+tbody{border-block-start:2px solid hsl(0 0% 50% / .502)}@media(max-width:767px){table table{font-size:.8em}table table td,table table th{line-height:1.3;padding:7px}table table th{font-weight:400}}dd,dl,dt,li,ol,ul{background:#fff0;border:0;font-size:100%;margin-block-end:0;margin-block-start:0;outline:0;vertical-align:baseline}.comments-area a,.page-content a{text-decoration:underline}.alignright{float:right;margin-left:1rem}.alignleft{float:left;margin-right:1rem}.aligncenter{clear:both;display:block;margin-inline:auto}.alignwide{margin-inline:-80px}.alignfull{margin-inline:calc(50% - 50vw);max-width:100vw}.alignfull,.alignfull img{width:100vw}.wp-caption{margin-block-end:1.25rem;max-width:100%}.wp-caption.alignleft{margin:5px 20px 20px 0}.wp-caption.alignright{margin:5px 0 20px 20px}.wp-caption img{display:block;margin-inline:auto}.wp-caption-text{margin:0}.gallery-caption{display:block;font-size:.8125rem;line-height:1.5;margin:0;padding:.75rem}.pagination{display:flex;justify-content:space-between;margin:20px auto}.sticky{display:block;position:relative}.bypostauthor{font-size:inherit}.hide{display:none!important}.post-password-form{margin:50px auto;max-width:500px}.post-password-form p{align-items:flex-end;display:flex;width:100%}.post-password-form [type=submit]{margin-inline-start:3px}.screen-reader-text{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;width:1px;word-wrap:normal!important}.screen-reader-text:focus{background-color:#eee;clip:auto!important;clip-path:none;color:#333;display:block;font-size:1rem;height:auto;left:5px;line-height:normal;padding:12px 24px;text-decoration:none;top:5px;width:auto;z-index:100000}.post .entry-title a{text-decoration:none}.post .wp-post-image{max-height:500px;-o-object-fit:cover;object-fit:cover;width:100%}@media(max-width:991px){.post .wp-post-image{max-height:400px}}@media(max-width:575px){.post .wp-post-image{max-height:300px}}#comments .comment-list{font-size:.9em;list-style:none;margin:0;padding:0}#comments .comment,#comments .pingback{position:relative}#comments .comment .comment-body,#comments .pingback .comment-body{border-block-end:1px solid #ccc;display:flex;flex-direction:column;padding-block-end:30px;padding-block-start:30px;padding-inline-end:0;padding-inline-start:60px}#comments .comment .avatar,#comments .pingback .avatar{border-radius:50%;left:0;margin-inline-end:10px;position:absolute}body.rtl #comments .comment .avatar,body.rtl #comments .pingback .avatar,html[dir=rtl] #comments .comment .avatar,html[dir=rtl] #comments .pingback .avatar{left:auto;right:0}#comments .comment-meta{display:flex;justify-content:space-between;margin-block-end:.9rem}#comments .comment-metadata,#comments .reply{font-size:11px;line-height:1}#comments .children{list-style:none;margin:0;padding-inline-start:30px;position:relative}#comments .children li:last-child{padding-block-end:0}#comments ol.comment-list .children:before{content:"↪";display:inline-block;font-size:1em;font-weight:400;left:0;line-height:100%;position:absolute;top:45px;width:auto}body.rtl #comments ol.comment-list .children:before,html[dir=rtl] #comments ol.comment-list .children:before{content:"↩";left:auto;right:0}@media(min-width:768px){#comments .comment-author,#comments .comment-metadata{line-height:1}}@media(max-width:767px){#comments .comment .comment-body{padding:30px 0}#comments .children{padding-inline-start:20px}#comments .comment .avatar{float:left;position:inherit}body.rtl #comments .comment .avatar,html[dir=rtl] #comments .comment .avatar{float:right}}.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{margin-inline-end:auto;margin-inline-start:auto;width:100%}@media(max-width:575px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{padding-inline-end:10px;padding-inline-start:10px}}@media(min-width:576px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:500px}.site-footer.footer-full-width .footer-inner,.site-header.header-full-width .header-inner{max-width:100%}}@media(min-width:768px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:600px}.site-footer.footer-full-width,.site-header.header-full-width{max-width:100%}}@media(min-width:992px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:800px}.site-footer.footer-full-width,.site-header.header-full-width{max-width:100%}}@media(min-width:1200px){.page-header .entry-title,.site-footer .footer-inner,.site-footer:not(.dynamic-footer),.site-header .header-inner,.site-header:not(.dynamic-header),body:not([class*=elementor-page-]) .site-main{max-width:1140px}.site-footer.footer-full-width,.site-header.header-full-width{max-width:100%}}.site-header+.elementor{min-height:calc(100vh - 320px)}.site-header{display:flex;flex-wrap:wrap;justify-content:space-between;padding-block-end:1rem;padding-block-start:1rem;position:relative}.site-header .site-title{font-size:2.5rem;font-weight:500;line-height:1.2}.site-header .site-branding{display:flex;flex-direction:column;gap:.5rem;justify-content:center}.site-header .header-inner{display:flex;flex-wrap:wrap;justify-content:space-between}.site-header .header-inner .custom-logo-link{display:block}.site-header .header-inner .site-branding .site-description,.site-header .header-inner .site-branding .site-title{margin:0}.site-header .header-inner .site-branding .site-logo img{display:block}.site-header .header-inner .site-branding.show-logo .site-title,.site-header .header-inner .site-branding.show-title .site-logo{display:none!important}.site-header.header-inverted .header-inner{flex-direction:row-reverse}.site-header.header-inverted .header-inner .site-branding{text-align:end}.site-header.header-stacked .header-inner{align-items:center;flex-direction:column;text-align:center}.site-footer{padding-block-end:1rem;padding-block-start:1rem;position:relative}.site-footer .site-title{font-size:1.5rem;font-weight:500;line-height:1.2}.site-footer .site-branding{display:flex;flex-direction:column;gap:.5rem;justify-content:center}.site-footer .footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between}.site-footer .footer-inner .custom-logo-link{display:block}.site-footer .footer-inner .site-branding .site-description,.site-footer .footer-inner .site-branding .site-title{margin:0}.site-footer .footer-inner .site-branding .site-logo img{display:block}.site-footer .footer-inner .site-branding.show-logo .site-title,.site-footer .footer-inner .site-branding.show-title .site-logo{display:none!important}.site-footer .footer-inner .copyright{align-items:center;display:flex;justify-content:flex-end}.site-footer .footer-inner .copyright p{margin:0}.site-footer.footer-inverted .footer-inner{flex-direction:row-reverse}.site-footer.footer-inverted .footer-inner .site-branding{text-align:end}.site-footer.footer-stacked .footer-inner{align-items:center;flex-direction:column;text-align:center}.site-footer.footer-stacked .footer-inner .site-branding .site-title{text-align:center}.site-footer.footer-stacked .footer-inner .site-navigation .menu{padding:0}@media(max-width:576px){.site-footer:not(.footer-stacked) .footer-inner .copyright,.site-footer:not(.footer-stacked) .footer-inner .site-branding,.site-footer:not(.footer-stacked) .footer-inner .site-navigation{display:block;max-width:none;text-align:center;width:100%}.site-footer .footer-inner .site-navigation ul.menu{justify-content:center}.site-footer .footer-inner .site-navigation ul.menu li{display:inline-block}}.site-header.header-stacked .site-navigation-toggle-holder{justify-content:center;max-width:100%}.site-header.menu-layout-dropdown .site-navigation{display:none}.site-navigation-toggle-holder{align-items:center;display:flex;padding:8px 15px}.site-navigation-toggle-holder .site-navigation-toggle{align-items:center;background-color:rgb(0 0 0 / .05);border:0 solid;border-radius:3px;color:#494c4f;cursor:pointer;display:flex;justify-content:center;padding:.5rem}.site-navigation-toggle-holder .site-navigation-toggle-icon{display:block;width:1.25rem}.site-navigation-toggle-holder .site-navigation-toggle-icon:after,.site-navigation-toggle-holder .site-navigation-toggle-icon:before{background-color:currentColor;border-radius:3px;content:"";display:block;height:3px;transition:all .2s ease-in-out}.site-navigation-toggle-holder .site-navigation-toggle-icon:before{box-shadow:0 .35rem 0 currentColor;margin-block-end:.5rem}.site-navigation-toggle-holder .site-navigation-toggle[aria-expanded=true] .site-navigation-toggle-icon:before{box-shadow:none;transform:translateY(.35rem) rotate(45deg)}.site-navigation-toggle-holder .site-navigation-toggle[aria-expanded=true] .site-navigation-toggle-icon:after{transform:translateY(-.35rem) rotate(-45deg)}.site-navigation{align-items:center;display:flex}.site-navigation ul.menu,.site-navigation ul.menu ul{list-style-type:none;padding:0}.site-navigation ul.menu{display:flex;flex-wrap:wrap}.site-navigation ul.menu li{display:flex;position:relative}.site-navigation ul.menu li a{display:block;padding:8px 15px}.site-navigation ul.menu li.menu-item-has-children{padding-inline-end:15px}.site-navigation ul.menu li.menu-item-has-children:after{align-items:center;color:#666;content:"▾";display:flex;font-size:1.5em;justify-content:center;text-decoration:none}.site-navigation ul.menu li.menu-item-has-children:focus-within>ul{display:block}.site-navigation ul.menu li ul{background:#fff;display:none;left:0;min-width:150px;position:absolute;top:100%;z-index:2}.site-navigation ul.menu li ul li{border-block-end:1px solid #eee}.site-navigation ul.menu li ul li:last-child{border-block-end:none}.site-navigation ul.menu li ul li.menu-item-has-children a{flex-grow:1}.site-navigation ul.menu li ul li.menu-item-has-children:after{transform:translateY(-50%) rotate(-90deg)}.site-navigation ul.menu li ul ul{left:100%;top:0}.site-navigation ul.menu li:hover>ul{display:block}footer .site-navigation ul.menu li ul{bottom:100%;top:auto}footer .site-navigation ul.menu li ul ul{bottom:0}footer .site-navigation ul.menu a{padding:5px 15px}.site-navigation-dropdown{bottom:0;left:0;margin-block-start:10px;position:absolute;transform-origin:top;transition:max-height .3s,transform .3s;width:100%;z-index:10000}.site-navigation-toggle-holder:not(.elementor-active)+.site-navigation-dropdown{max-height:0;transform:scaleY(0)}.site-navigation-toggle-holder.elementor-active+.site-navigation-dropdown{max-height:100vh;transform:scaleY(1)}.site-navigation-dropdown ul{padding:0}.site-navigation-dropdown ul.menu{background:#fff;margin:0;padding:0;position:absolute;width:100%}.site-navigation-dropdown ul.menu li{display:block;position:relative;width:100%}.site-navigation-dropdown ul.menu li a{background:#fff;box-shadow:inset 0 -1px 0 rgb(0 0 0 / .102);color:#55595c;display:block;padding:20px}.site-navigation-dropdown ul.menu li.current-menu-item a{background:#55595c;color:#fff}.site-navigation-dropdown ul.menu>li li{max-height:0;transform:scaleY(0);transform-origin:top;transition:max-height .3s,transform .3s}.site-navigation-dropdown ul.menu li.elementor-active>ul>li{max-height:100vh;transform:scaleY(1)}@media(max-width:576px){.site-header.menu-dropdown-mobile:not(.menu-layout-dropdown) .site-navigation{display:none!important}}@media(min-width:768px){.site-header.menu-dropdown-mobile:not(.menu-layout-dropdown) .site-navigation-toggle-holder{display:none!important}}@media(min-width:576px)and (max-width:767px){.site-header.menu-dropdown-mobile:not(.menu-layout-dropdown) .site-navigation{display:none!important}}@media(min-width:992px){.site-header.menu-dropdown-tablet:not(.menu-layout-dropdown) .site-navigation-toggle-holder{display:none!important}}@media(max-width:992px){.site-header.menu-dropdown-tablet:not(.menu-layout-dropdown) .site-navigation{display:none!important}}.site-header.menu-dropdown-none:not(.menu-layout-dropdown) .site-navigation-toggle-holder{display:none!important}:root{--direction-multiplier:1}body.rtl,html[dir=rtl]{--direction-multiplier:-1}.elementor-hidden{display:none}.elementor-visibility-hidden{visibility:hidden}.elementor-screen-only,.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;top:-10000em;width:1px;clip:rect(0,0,0,0);border:0}.elementor-clearfix:after{clear:both;content:"";display:block;height:0;width:0}.e-logo-wrapper{display:inline-block;line-height:1}.e-logo-wrapper i{color:var(--e-a-color-circle-logo);font-size:2.5em}.elementor *,.elementor :after,.elementor :before{box-sizing:border-box}.elementor a{box-shadow:none;text-decoration:none}.elementor hr{background-color:transparent;margin:0}.elementor img{border:none;border-radius:0;box-shadow:none;height:auto;max-width:100%}.elementor .elementor-widget:not(.elementor-widget-text-editor):not(.elementor-widget-theme-post-content) figure{margin:0}.elementor embed,.elementor iframe,.elementor object,.elementor video{border:none;line-height:1;margin:0;max-width:100%;width:100%}.elementor .elementor-background,.elementor .elementor-background-holder,.elementor .elementor-background-video-container{direction:ltr;inset:0;overflow:hidden;position:absolute;z-index:0}.elementor .elementor-background-video-container{pointer-events:none;transition:opacity 1s}.elementor .elementor-background-video-container.elementor-loading{opacity:0}.elementor .elementor-background-video,.elementor .elementor-background-video-embed{max-width:none}.elementor .elementor-background-video,.elementor .elementor-background-video-embed,.elementor .elementor-background-video-hosted{inset-block-start:50%;inset-inline-start:50%;position:absolute;transform:translate(-50%,-50%)}.elementor .elementor-background-video-hosted{-o-object-fit:cover;object-fit:cover}.elementor .elementor-background-overlay{inset:0;position:absolute}.elementor .elementor-background-slideshow{inset:0;position:absolute;z-index:0}.elementor .elementor-background-slideshow__slide__image{background-position:50%;background-size:cover;height:100%;width:100%}.e-con-inner>.elementor-element.elementor-absolute,.e-con>.elementor-element.elementor-absolute,.elementor-widget-wrap>.elementor-element.elementor-absolute{position:absolute}.e-con-inner>.elementor-element.elementor-fixed,.e-con>.elementor-element.elementor-fixed,.elementor-widget-wrap>.elementor-element.elementor-fixed{position:fixed}.elementor-widget-wrap .elementor-element.elementor-widget__width-auto,.elementor-widget-wrap .elementor-element.elementor-widget__width-initial{max-width:100%}@media (max-width:1024px){.elementor-widget-wrap .elementor-element.elementor-widget-tablet__width-auto,.elementor-widget-wrap .elementor-element.elementor-widget-tablet__width-initial{max-width:100%}}@media (max-width:767px){.elementor-widget-wrap .elementor-element.elementor-widget-mobile__width-auto,.elementor-widget-wrap .elementor-element.elementor-widget-mobile__width-initial{max-width:100%}}.elementor-element.elementor-absolute,.elementor-element.elementor-fixed{z-index:1}.elementor-element{--flex-direction:initial;--flex-wrap:initial;--justify-content:initial;--align-items:initial;--align-content:initial;--gap:initial;--flex-basis:initial;--flex-grow:initial;--flex-shrink:initial;--order:initial;--align-self:initial;align-self:var(--align-self);flex-basis:var(--flex-basis);flex-grow:var(--flex-grow);flex-shrink:var(--flex-shrink);order:var(--order)}.elementor-element:where(.e-con-full,.elementor-widget){align-content:var(--align-content);align-items:var(--align-items);flex-direction:var(--flex-direction);flex-wrap:var(--flex-wrap);gap:var(--row-gap) var(--column-gap);justify-content:var(--justify-content)}.elementor-invisible{visibility:hidden}.elementor-custom-embed-play{inset-block-start:50%;inset-inline-start:50%;position:absolute;transform:translate(calc(-50% * var(--direction-multiplier)),-50%)}.elementor-custom-embed-play i{color:#fff;font-size:100px;text-shadow:1px 0 6px rgba(0,0,0,.3)}.elementor-custom-embed-play svg{fill:#fff;filter:drop-shadow(1px 0 6px rgba(0,0,0,.3));height:100px;width:100px}.elementor-custom-embed-play i,.elementor-custom-embed-play svg{opacity:.8;transition:all .5s}.elementor-custom-embed-play.elementor-playing i{font-family:eicons}.elementor-custom-embed-play.elementor-playing i:before{content:"\e8fb"}.elementor-custom-embed-play.elementor-playing i,.elementor-custom-embed-play.elementor-playing svg{animation:eicon-spin 2s linear infinite}.elementor-tag{display:inline-flex}.elementor-ken-burns{transition-duration:10s;transition-property:transform;transition-timing-function:linear}.elementor-ken-burns--out{transform:scale(1.3)}.elementor-ken-burns--active{transition-duration:20s}.elementor-ken-burns--active.elementor-ken-burns--out{transform:scale(1)}.elementor-ken-burns--active.elementor-ken-burns--in{transform:scale(1.3)}.elementor-align-center{text-align:center}.elementor-align-right{text-align:right}.elementor-align-left{text-align:left}.elementor-align-center .elementor-button,.elementor-align-left .elementor-button,.elementor-align-right .elementor-button{width:auto}.elementor-align-justify .elementor-button{width:100%}@media (min-width:-1){.elementor-widescreen-align-center{text-align:center}.elementor-widescreen-align-right{text-align:right}.elementor-widescreen-align-left{text-align:left}.elementor-widescreen-align-center .elementor-button,.elementor-widescreen-align-left .elementor-button,.elementor-widescreen-align-right .elementor-button{width:auto}.elementor-widescreen-align-justify .elementor-button{width:100%}}@media (max-width:-1){.elementor-laptop-align-center{text-align:center}.elementor-laptop-align-right{text-align:right}.elementor-laptop-align-left{text-align:left}.elementor-laptop-align-center .elementor-button,.elementor-laptop-align-left .elementor-button,.elementor-laptop-align-right .elementor-button{width:auto}.elementor-laptop-align-justify .elementor-button{width:100%}.elementor-tablet_extra-align-center{text-align:center}.elementor-tablet_extra-align-right{text-align:right}.elementor-tablet_extra-align-left{text-align:left}.elementor-tablet_extra-align-center .elementor-button,.elementor-tablet_extra-align-left .elementor-button,.elementor-tablet_extra-align-right .elementor-button{width:auto}.elementor-tablet_extra-align-justify .elementor-button{width:100%}}@media (max-width:1024px){.elementor-tablet-align-center{text-align:center}.elementor-tablet-align-right{text-align:right}.elementor-tablet-align-left{text-align:left}.elementor-tablet-align-center .elementor-button,.elementor-tablet-align-left .elementor-button,.elementor-tablet-align-right .elementor-button{width:auto}.elementor-tablet-align-justify .elementor-button{width:100%}}@media (max-width:-1){.elementor-mobile_extra-align-center{text-align:center}.elementor-mobile_extra-align-right{text-align:right}.elementor-mobile_extra-align-left{text-align:left}.elementor-mobile_extra-align-center .elementor-button,.elementor-mobile_extra-align-left .elementor-button,.elementor-mobile_extra-align-right .elementor-button{width:auto}.elementor-mobile_extra-align-justify .elementor-button{width:100%}}@media (max-width:767px){.elementor-mobile-align-center{text-align:center}.elementor-mobile-align-right{text-align:right}.elementor-mobile-align-left{text-align:left}.elementor-mobile-align-center .elementor-button,.elementor-mobile-align-left .elementor-button,.elementor-mobile-align-right .elementor-button{width:auto}.elementor-mobile-align-justify .elementor-button{width:100%}}:root{--page-title-display:block}.elementor-page-title,h1.entry-title{display:var(--page-title-display)}@keyframes eicon-spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.eicon-animation-spin{animation:eicon-spin 2s linear infinite}.elementor-section{position:relative}.elementor-section .elementor-container{display:flex;margin-inline:auto;position:relative}@media (max-width:1024px){.elementor-section .elementor-container{flex-wrap:wrap}}.elementor-section.elementor-section-boxed>.elementor-container{max-width:1140px}.elementor-section.elementor-section-stretched{position:relative;width:100%}.elementor-section.elementor-section-items-top>.elementor-container{align-items:flex-start}.elementor-section.elementor-section-items-middle>.elementor-container{align-items:center}.elementor-section.elementor-section-items-bottom>.elementor-container{align-items:flex-end}@media (min-width:768px){.elementor-section.elementor-section-height-full{height:100vh}.elementor-section.elementor-section-height-full>.elementor-container{height:100%}}.elementor-bc-flex-widget .elementor-section-content-top>.elementor-container>.elementor-column>.elementor-widget-wrap{align-items:flex-start}.elementor-bc-flex-widget .elementor-section-content-middle>.elementor-container>.elementor-column>.elementor-widget-wrap{align-items:center}.elementor-bc-flex-widget .elementor-section-content-bottom>.elementor-container>.elementor-column>.elementor-widget-wrap{align-items:flex-end}.elementor-widget-wrap{align-content:flex-start;flex-wrap:wrap;position:relative;width:100%}.elementor:not(.elementor-bc-flex-widget) .elementor-widget-wrap{display:flex}.elementor-widget-wrap>.elementor-element{width:100%}.elementor-widget-wrap.e-swiper-container{width:calc(100% - (var(--e-column-margin-left, 0px) + var(--e-column-margin-right, 0px)))}.elementor-widget{position:relative}.elementor-widget:not(:last-child){margin-block-end:var(--kit-widget-spacing,20px)}.elementor-widget:not(:last-child).elementor-absolute,.elementor-widget:not(:last-child).elementor-widget__width-auto,.elementor-widget:not(:last-child).elementor-widget__width-initial{margin-block-end:0}.elementor-column{display:flex;min-height:1px;position:relative}.elementor-column-gap-narrow>.elementor-column>.elementor-element-populated{padding:5px}.elementor-column-gap-default>.elementor-column>.elementor-element-populated{padding:10px}.elementor-column-gap-extended>.elementor-column>.elementor-element-populated{padding:15px}.elementor-column-gap-wide>.elementor-column>.elementor-element-populated{padding:20px}.elementor-column-gap-wider>.elementor-column>.elementor-element-populated{padding:30px}.elementor-inner-section .elementor-column-gap-no .elementor-element-populated{padding:0}@media (min-width:768px){.elementor-column.elementor-col-10,.elementor-column[data-col="10"]{width:10%}.elementor-column.elementor-col-11,.elementor-column[data-col="11"]{width:11.111%}.elementor-column.elementor-col-12,.elementor-column[data-col="12"]{width:12.5%}.elementor-column.elementor-col-14,.elementor-column[data-col="14"]{width:14.285%}.elementor-column.elementor-col-16,.elementor-column[data-col="16"]{width:16.666%}.elementor-column.elementor-col-20,.elementor-column[data-col="20"]{width:20%}.elementor-column.elementor-col-25,.elementor-column[data-col="25"]{width:25%}.elementor-column.elementor-col-30,.elementor-column[data-col="30"]{width:30%}.elementor-column.elementor-col-33,.elementor-column[data-col="33"]{width:33.333%}.elementor-column.elementor-col-40,.elementor-column[data-col="40"]{width:40%}.elementor-column.elementor-col-50,.elementor-column[data-col="50"]{width:50%}.elementor-column.elementor-col-60,.elementor-column[data-col="60"]{width:60%}.elementor-column.elementor-col-66,.elementor-column[data-col="66"]{width:66.666%}.elementor-column.elementor-col-70,.elementor-column[data-col="70"]{width:70%}.elementor-column.elementor-col-75,.elementor-column[data-col="75"]{width:75%}.elementor-column.elementor-col-80,.elementor-column[data-col="80"]{width:80%}.elementor-column.elementor-col-83,.elementor-column[data-col="83"]{width:83.333%}.elementor-column.elementor-col-90,.elementor-column[data-col="90"]{width:90%}.elementor-column.elementor-col-100,.elementor-column[data-col="100"]{width:100%}}@media (max-width:479px){.elementor-column.elementor-xs-10{width:10%}.elementor-column.elementor-xs-11{width:11.111%}.elementor-column.elementor-xs-12{width:12.5%}.elementor-column.elementor-xs-14{width:14.285%}.elementor-column.elementor-xs-16{width:16.666%}.elementor-column.elementor-xs-20{width:20%}.elementor-column.elementor-xs-25{width:25%}.elementor-column.elementor-xs-30{width:30%}.elementor-column.elementor-xs-33{width:33.333%}.elementor-column.elementor-xs-40{width:40%}.elementor-column.elementor-xs-50{width:50%}.elementor-column.elementor-xs-60{width:60%}.elementor-column.elementor-xs-66{width:66.666%}.elementor-column.elementor-xs-70{width:70%}.elementor-column.elementor-xs-75{width:75%}.elementor-column.elementor-xs-80{width:80%}.elementor-column.elementor-xs-83{width:83.333%}.elementor-column.elementor-xs-90{width:90%}.elementor-column.elementor-xs-100{width:100%}}@media (max-width:767px){.elementor-column.elementor-sm-10{width:10%}.elementor-column.elementor-sm-11{width:11.111%}.elementor-column.elementor-sm-12{width:12.5%}.elementor-column.elementor-sm-14{width:14.285%}.elementor-column.elementor-sm-16{width:16.666%}.elementor-column.elementor-sm-20{width:20%}.elementor-column.elementor-sm-25{width:25%}.elementor-column.elementor-sm-30{width:30%}.elementor-column.elementor-sm-33{width:33.333%}.elementor-column.elementor-sm-40{width:40%}.elementor-column.elementor-sm-50{width:50%}.elementor-column.elementor-sm-60{width:60%}.elementor-column.elementor-sm-66{width:66.666%}.elementor-column.elementor-sm-70{width:70%}.elementor-column.elementor-sm-75{width:75%}.elementor-column.elementor-sm-80{width:80%}.elementor-column.elementor-sm-83{width:83.333%}.elementor-column.elementor-sm-90{width:90%}.elementor-column.elementor-sm-100{width:100%}}@media (min-width:768px) and (max-width:1024px){.elementor-column.elementor-md-10{width:10%}.elementor-column.elementor-md-11{width:11.111%}.elementor-column.elementor-md-12{width:12.5%}.elementor-column.elementor-md-14{width:14.285%}.elementor-column.elementor-md-16{width:16.666%}.elementor-column.elementor-md-20{width:20%}.elementor-column.elementor-md-25{width:25%}.elementor-column.elementor-md-30{width:30%}.elementor-column.elementor-md-33{width:33.333%}.elementor-column.elementor-md-40{width:40%}.elementor-column.elementor-md-50{width:50%}.elementor-column.elementor-md-60{width:60%}.elementor-column.elementor-md-66{width:66.666%}.elementor-column.elementor-md-70{width:70%}.elementor-column.elementor-md-75{width:75%}.elementor-column.elementor-md-80{width:80%}.elementor-column.elementor-md-83{width:83.333%}.elementor-column.elementor-md-90{width:90%}.elementor-column.elementor-md-100{width:100%}}@media (min-width:-1){.elementor-reverse-widescreen>.elementor-container>:first-child{order:10}.elementor-reverse-widescreen>.elementor-container>:nth-child(2){order:9}.elementor-reverse-widescreen>.elementor-container>:nth-child(3){order:8}.elementor-reverse-widescreen>.elementor-container>:nth-child(4){order:7}.elementor-reverse-widescreen>.elementor-container>:nth-child(5){order:6}.elementor-reverse-widescreen>.elementor-container>:nth-child(6){order:5}.elementor-reverse-widescreen>.elementor-container>:nth-child(7){order:4}.elementor-reverse-widescreen>.elementor-container>:nth-child(8){order:3}.elementor-reverse-widescreen>.elementor-container>:nth-child(9){order:2}.elementor-reverse-widescreen>.elementor-container>:nth-child(10){order:1}}@media (min-width:1025px) and (max-width:-1){.elementor-reverse-laptop>.elementor-container>:first-child{order:10}.elementor-reverse-laptop>.elementor-container>:nth-child(2){order:9}.elementor-reverse-laptop>.elementor-container>:nth-child(3){order:8}.elementor-reverse-laptop>.elementor-container>:nth-child(4){order:7}.elementor-reverse-laptop>.elementor-container>:nth-child(5){order:6}.elementor-reverse-laptop>.elementor-container>:nth-child(6){order:5}.elementor-reverse-laptop>.elementor-container>:nth-child(7){order:4}.elementor-reverse-laptop>.elementor-container>:nth-child(8){order:3}.elementor-reverse-laptop>.elementor-container>:nth-child(9){order:2}.elementor-reverse-laptop>.elementor-container>:nth-child(10){order:1}}@media (min-width:-1) and (max-width:-1){.elementor-reverse-laptop>.elementor-container>:first-child{order:10}.elementor-reverse-laptop>.elementor-container>:nth-child(2){order:9}.elementor-reverse-laptop>.elementor-container>:nth-child(3){order:8}.elementor-reverse-laptop>.elementor-container>:nth-child(4){order:7}.elementor-reverse-laptop>.elementor-container>:nth-child(5){order:6}.elementor-reverse-laptop>.elementor-container>:nth-child(6){order:5}.elementor-reverse-laptop>.elementor-container>:nth-child(7){order:4}.elementor-reverse-laptop>.elementor-container>:nth-child(8){order:3}.elementor-reverse-laptop>.elementor-container>:nth-child(9){order:2}.elementor-reverse-laptop>.elementor-container>:nth-child(10){order:1}}@media (min-width:1025px) and (max-width:-1){.elementor-reverse-laptop>.elementor-container>:first-child,.elementor-reverse-laptop>.elementor-container>:nth-child(10),.elementor-reverse-laptop>.elementor-container>:nth-child(2),.elementor-reverse-laptop>.elementor-container>:nth-child(3),.elementor-reverse-laptop>.elementor-container>:nth-child(4),.elementor-reverse-laptop>.elementor-container>:nth-child(5),.elementor-reverse-laptop>.elementor-container>:nth-child(6),.elementor-reverse-laptop>.elementor-container>:nth-child(7),.elementor-reverse-laptop>.elementor-container>:nth-child(8),.elementor-reverse-laptop>.elementor-container>:nth-child(9){order:0}.elementor-reverse-tablet_extra>.elementor-container>:first-child{order:10}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(2){order:9}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(3){order:8}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(4){order:7}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(5){order:6}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(6){order:5}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(7){order:4}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(8){order:3}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(9){order:2}.elementor-reverse-tablet_extra>.elementor-container>:nth-child(10){order:1}}@media (min-width:768px) and (max-width:1024px){.elementor-reverse-tablet>.elementor-container>:first-child{order:10}.elementor-reverse-tablet>.elementor-container>:nth-child(2){order:9}.elementor-reverse-tablet>.elementor-container>:nth-child(3){order:8}.elementor-reverse-tablet>.elementor-container>:nth-child(4){order:7}.elementor-reverse-tablet>.elementor-container>:nth-child(5){order:6}.elementor-reverse-tablet>.elementor-container>:nth-child(6){order:5}.elementor-reverse-tablet>.elementor-container>:nth-child(7){order:4}.elementor-reverse-tablet>.elementor-container>:nth-child(8){order:3}.elementor-reverse-tablet>.elementor-container>:nth-child(9){order:2}.elementor-reverse-tablet>.elementor-container>:nth-child(10){order:1}}@media (min-width:-1) and (max-width:1024px){.elementor-reverse-tablet>.elementor-container>:first-child{order:10}.elementor-reverse-tablet>.elementor-container>:nth-child(2){order:9}.elementor-reverse-tablet>.elementor-container>:nth-child(3){order:8}.elementor-reverse-tablet>.elementor-container>:nth-child(4){order:7}.elementor-reverse-tablet>.elementor-container>:nth-child(5){order:6}.elementor-reverse-tablet>.elementor-container>:nth-child(6){order:5}.elementor-reverse-tablet>.elementor-container>:nth-child(7){order:4}.elementor-reverse-tablet>.elementor-container>:nth-child(8){order:3}.elementor-reverse-tablet>.elementor-container>:nth-child(9){order:2}.elementor-reverse-tablet>.elementor-container>:nth-child(10){order:1}}@media (min-width:768px) and (max-width:-1){.elementor-reverse-tablet>.elementor-container>:first-child,.elementor-reverse-tablet>.elementor-container>:nth-child(10),.elementor-reverse-tablet>.elementor-container>:nth-child(2),.elementor-reverse-tablet>.elementor-container>:nth-child(3),.elementor-reverse-tablet>.elementor-container>:nth-child(4),.elementor-reverse-tablet>.elementor-container>:nth-child(5),.elementor-reverse-tablet>.elementor-container>:nth-child(6),.elementor-reverse-tablet>.elementor-container>:nth-child(7),.elementor-reverse-tablet>.elementor-container>:nth-child(8),.elementor-reverse-tablet>.elementor-container>:nth-child(9){order:0}.elementor-reverse-mobile_extra>.elementor-container>:first-child{order:10}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(2){order:9}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(3){order:8}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(4){order:7}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(5){order:6}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(6){order:5}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(7){order:4}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(8){order:3}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(9){order:2}.elementor-reverse-mobile_extra>.elementor-container>:nth-child(10){order:1}}@media (max-width:767px){.elementor-reverse-mobile>.elementor-container>:first-child{order:10}.elementor-reverse-mobile>.elementor-container>:nth-child(2){order:9}.elementor-reverse-mobile>.elementor-container>:nth-child(3){order:8}.elementor-reverse-mobile>.elementor-container>:nth-child(4){order:7}.elementor-reverse-mobile>.elementor-container>:nth-child(5){order:6}.elementor-reverse-mobile>.elementor-container>:nth-child(6){order:5}.elementor-reverse-mobile>.elementor-container>:nth-child(7){order:4}.elementor-reverse-mobile>.elementor-container>:nth-child(8){order:3}.elementor-reverse-mobile>.elementor-container>:nth-child(9){order:2}.elementor-reverse-mobile>.elementor-container>:nth-child(10){order:1}.elementor-column{width:100%}}.elementor-grid{display:grid;grid-column-gap:var(--grid-column-gap);grid-row-gap:var(--grid-row-gap)}.elementor-grid .elementor-grid-item{min-width:0}.elementor-grid-0 .elementor-grid{display:inline-block;margin-block-end:calc(-1 * var(--grid-row-gap));width:100%;word-spacing:var(--grid-column-gap)}.elementor-grid-0 .elementor-grid .elementor-grid-item{display:inline-block;margin-block-end:var(--grid-row-gap);word-break:break-word}.elementor-grid-1 .elementor-grid{grid-template-columns:repeat(1,1fr)}.elementor-grid-2 .elementor-grid{grid-template-columns:repeat(2,1fr)}.elementor-grid-3 .elementor-grid{grid-template-columns:repeat(3,1fr)}.elementor-grid-4 .elementor-grid{grid-template-columns:repeat(4,1fr)}.elementor-grid-5 .elementor-grid{grid-template-columns:repeat(5,1fr)}.elementor-grid-6 .elementor-grid{grid-template-columns:repeat(6,1fr)}.elementor-grid-7 .elementor-grid{grid-template-columns:repeat(7,1fr)}.elementor-grid-8 .elementor-grid{grid-template-columns:repeat(8,1fr)}.elementor-grid-9 .elementor-grid{grid-template-columns:repeat(9,1fr)}.elementor-grid-10 .elementor-grid{grid-template-columns:repeat(10,1fr)}.elementor-grid-11 .elementor-grid{grid-template-columns:repeat(11,1fr)}.elementor-grid-12 .elementor-grid{grid-template-columns:repeat(12,1fr)}@media (min-width:-1){.elementor-grid-widescreen-0 .elementor-grid{display:inline-block;margin-block-end:calc(-1 * var(--grid-row-gap));width:100%;word-spacing:var(--grid-column-gap)}.elementor-grid-widescreen-0 .elementor-grid .elementor-grid-item{display:inline-block;margin-block-end:var(--grid-row-gap);word-break:break-word}.elementor-grid-widescreen-1 .elementor-grid{grid-template-columns:repeat(1,1fr)}.elementor-grid-widescreen-2 .elementor-grid{grid-template-columns:repeat(2,1fr)}.elementor-grid-widescreen-3 .elementor-grid{grid-template-columns:repeat(3,1fr)}.elementor-grid-widescreen-4 .elementor-grid{grid-template-columns:repeat(4,1fr)}.elementor-grid-widescreen-5 .elementor-grid{grid-template-columns:repeat(5,1fr)}.elementor-grid-widescreen-6 .elementor-grid{grid-template-columns:repeat(6,1fr)}.elementor-grid-widescreen-7 .elementor-grid{grid-template-columns:repeat(7,1fr)}.elementor-grid-widescreen-8 .elementor-grid{grid-template-columns:repeat(8,1fr)}.elementor-grid-widescreen-9 .elementor-grid{grid-template-columns:repeat(9,1fr)}.elementor-grid-widescreen-10 .elementor-grid{grid-template-columns:repeat(10,1fr)}.elementor-grid-widescreen-11 .elementor-grid{grid-template-columns:repeat(11,1fr)}.elementor-grid-widescreen-12 .elementor-grid{grid-template-columns:repeat(12,1fr)}}@media (max-width:-1){.elementor-grid-laptop-0 .elementor-grid{display:inline-block;margin-block-end:calc(-1 * var(--grid-row-gap));width:100%;word-spacing:var(--grid-column-gap)}.elementor-grid-laptop-0 .elementor-grid .elementor-grid-item{display:inline-block;margin-block-end:var(--grid-row-gap);word-break:break-word}.elementor-grid-laptop-1 .elementor-grid{grid-template-columns:repeat(1,1fr)}.elementor-grid-laptop-2 .elementor-grid{grid-template-columns:repeat(2,1fr)}.elementor-grid-laptop-3 .elementor-grid{grid-template-columns:repeat(3,1fr)}.elementor-grid-laptop-4 .elementor-grid{grid-template-columns:repeat(4,1fr)}.elementor-grid-laptop-5 .elementor-grid{grid-template-columns:repeat(5,1fr)}.elementor-grid-laptop-6 .elementor-grid{grid-template-columns:repeat(6,1fr)}.elementor-grid-laptop-7 .elementor-grid{grid-template-columns:repeat(7,1fr)}.elementor-grid-laptop-8 .elementor-grid{grid-template-columns:repeat(8,1fr)}.elementor-grid-laptop-9 .elementor-grid{grid-template-columns:repeat(9,1fr)}.elementor-grid-laptop-10 .elementor-grid{grid-template-columns:repeat(10,1fr)}.elementor-grid-laptop-11 .elementor-grid{grid-template-columns:repeat(11,1fr)}.elementor-grid-laptop-12 .elementor-grid{grid-template-columns:repeat(12,1fr)}.elementor-grid-tablet_extra-0 .elementor-grid{display:inline-block;margin-block-end:calc(-1 * var(--grid-row-gap));width:100%;word-spacing:var(--grid-column-gap)}.elementor-grid-tablet_extra-0 .elementor-grid .elementor-grid-item{display:inline-block;margin-block-end:var(--grid-row-gap);word-break:break-word}.elementor-grid-tablet_extra-1 .elementor-grid{grid-template-columns:repeat(1,1fr)}.elementor-grid-tablet_extra-2 .elementor-grid{grid-template-columns:repeat(2,1fr)}.elementor-grid-tablet_extra-3 .elementor-grid{grid-template-columns:repeat(3,1fr)}.elementor-grid-tablet_extra-4 .elementor-grid{grid-template-columns:repeat(4,1fr)}.elementor-grid-tablet_extra-5 .elementor-grid{grid-template-columns:repeat(5,1fr)}.elementor-grid-tablet_extra-6 .elementor-grid{grid-template-columns:repeat(6,1fr)}.elementor-grid-tablet_extra-7 .elementor-grid{grid-template-columns:repeat(7,1fr)}.elementor-grid-tablet_extra-8 .elementor-grid{grid-template-columns:repeat(8,1fr)}.elementor-grid-tablet_extra-9 .elementor-grid{grid-template-columns:repeat(9,1fr)}.elementor-grid-tablet_extra-10 .elementor-grid{grid-template-columns:repeat(10,1fr)}.elementor-grid-tablet_extra-11 .elementor-grid{grid-template-columns:repeat(11,1fr)}.elementor-grid-tablet_extra-12 .elementor-grid{grid-template-columns:repeat(12,1fr)}}@media (max-width:1024px){.elementor-grid-tablet-0 .elementor-grid{display:inline-block;margin-block-end:calc(-1 * var(--grid-row-gap));width:100%;word-spacing:var(--grid-column-gap)}.elementor-grid-tablet-0 .elementor-grid .elementor-grid-item{display:inline-block;margin-block-end:var(--grid-row-gap);word-break:break-word}.elementor-grid-tablet-1 .elementor-grid{grid-template-columns:repeat(1,1fr)}.elementor-grid-tablet-2 .elementor-grid{grid-template-columns:repeat(2,1fr)}.elementor-grid-tablet-3 .elementor-grid{grid-template-columns:repeat(3,1fr)}.elementor-grid-tablet-4 .elementor-grid{grid-template-columns:repeat(4,1fr)}.elementor-grid-tablet-5 .elementor-grid{grid-template-columns:repeat(5,1fr)}.elementor-grid-tablet-6 .elementor-grid{grid-template-columns:repeat(6,1fr)}.elementor-grid-tablet-7 .elementor-grid{grid-template-columns:repeat(7,1fr)}.elementor-grid-tablet-8 .elementor-grid{grid-template-columns:repeat(8,1fr)}.elementor-grid-tablet-9 .elementor-grid{grid-template-columns:repeat(9,1fr)}.elementor-grid-tablet-10 .elementor-grid{grid-template-columns:repeat(10,1fr)}.elementor-grid-tablet-11 .elementor-grid{grid-template-columns:repeat(11,1fr)}.elementor-grid-tablet-12 .elementor-grid{grid-template-columns:repeat(12,1fr)}}@media (max-width:-1){.elementor-grid-mobile_extra-0 .elementor-grid{display:inline-block;margin-block-end:calc(-1 * var(--grid-row-gap));width:100%;word-spacing:var(--grid-column-gap)}.elementor-grid-mobile_extra-0 .elementor-grid .elementor-grid-item{display:inline-block;margin-block-end:var(--grid-row-gap);word-break:break-word}.elementor-grid-mobile_extra-1 .elementor-grid{grid-template-columns:repeat(1,1fr)}.elementor-grid-mobile_extra-2 .elementor-grid{grid-template-columns:repeat(2,1fr)}.elementor-grid-mobile_extra-3 .elementor-grid{grid-template-columns:repeat(3,1fr)}.elementor-grid-mobile_extra-4 .elementor-grid{grid-template-columns:repeat(4,1fr)}.elementor-grid-mobile_extra-5 .elementor-grid{grid-template-columns:repeat(5,1fr)}.elementor-grid-mobile_extra-6 .elementor-grid{grid-template-columns:repeat(6,1fr)}.elementor-grid-mobile_extra-7 .elementor-grid{grid-template-columns:repeat(7,1fr)}.elementor-grid-mobile_extra-8 .elementor-grid{grid-template-columns:repeat(8,1fr)}.elementor-grid-mobile_extra-9 .elementor-grid{grid-template-columns:repeat(9,1fr)}.elementor-grid-mobile_extra-10 .elementor-grid{grid-template-columns:repeat(10,1fr)}.elementor-grid-mobile_extra-11 .elementor-grid{grid-template-columns:repeat(11,1fr)}.elementor-grid-mobile_extra-12 .elementor-grid{grid-template-columns:repeat(12,1fr)}}@media (max-width:767px){.elementor-grid-mobile-0 .elementor-grid{display:inline-block;margin-block-end:calc(-1 * var(--grid-row-gap));width:100%;word-spacing:var(--grid-column-gap)}.elementor-grid-mobile-0 .elementor-grid .elementor-grid-item{display:inline-block;margin-block-end:var(--grid-row-gap);word-break:break-word}.elementor-grid-mobile-1 .elementor-grid{grid-template-columns:repeat(1,1fr)}.elementor-grid-mobile-2 .elementor-grid{grid-template-columns:repeat(2,1fr)}.elementor-grid-mobile-3 .elementor-grid{grid-template-columns:repeat(3,1fr)}.elementor-grid-mobile-4 .elementor-grid{grid-template-columns:repeat(4,1fr)}.elementor-grid-mobile-5 .elementor-grid{grid-template-columns:repeat(5,1fr)}.elementor-grid-mobile-6 .elementor-grid{grid-template-columns:repeat(6,1fr)}.elementor-grid-mobile-7 .elementor-grid{grid-template-columns:repeat(7,1fr)}.elementor-grid-mobile-8 .elementor-grid{grid-template-columns:repeat(8,1fr)}.elementor-grid-mobile-9 .elementor-grid{grid-template-columns:repeat(9,1fr)}.elementor-grid-mobile-10 .elementor-grid{grid-template-columns:repeat(10,1fr)}.elementor-grid-mobile-11 .elementor-grid{grid-template-columns:repeat(11,1fr)}.elementor-grid-mobile-12 .elementor-grid{grid-template-columns:repeat(12,1fr)}}@media (min-width:1025px){#elementor-device-mode:after{content:"desktop"}}@media (min-width:-1){#elementor-device-mode:after{content:"widescreen"}}@media (max-width:-1){#elementor-device-mode:after{content:"laptop";content:"tablet_extra"}}@media (max-width:1024px){#elementor-device-mode:after{content:"tablet"}}@media (max-width:-1){#elementor-device-mode:after{content:"mobile_extra"}}@media (max-width:767px){#elementor-device-mode:after{content:"mobile"}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}.e-con{--border-radius:0;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:0px;--border-left-width:0px;--border-style:initial;--border-color:initial;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--content-width:min(100%,var(--container-max-width,1140px));--width:100%;--min-height:initial;--height:auto;--text-align:initial;--margin-top:0px;--margin-right:0px;--margin-bottom:0px;--margin-left:0px;--padding-top:var(--container-default-padding-top,10px);--padding-right:var(--container-default-padding-right,10px);--padding-bottom:var(--container-default-padding-bottom,10px);--padding-left:var(--container-default-padding-left,10px);--position:relative;--z-index:revert;--overflow:visible;--gap:var(--widgets-spacing,20px);--row-gap:var(--widgets-spacing-row,20px);--column-gap:var(--widgets-spacing-column,20px);--overlay-mix-blend-mode:initial;--overlay-opacity:1;--overlay-transition:0.3s;--e-con-grid-template-columns:repeat(3,1fr);--e-con-grid-template-rows:repeat(2,1fr);border-radius:var(--border-radius);height:var(--height);min-height:var(--min-height);min-width:0;overflow:var(--overflow);position:var(--position);width:var(--width);z-index:var(--z-index);--flex-wrap-mobile:wrap}.e-con:where(:not(.e-div-block-base)){transition:background var(--background-transition,.3s),border var(--border-transition,.3s),box-shadow var(--border-transition,.3s),transform var(--e-con-transform-transition-duration,.4s)}.e-con{--margin-block-start:var(--margin-top);--margin-block-end:var(--margin-bottom);--margin-inline-start:var(--margin-left);--margin-inline-end:var(--margin-right);--padding-inline-start:var(--padding-left);--padding-inline-end:var(--padding-right);--padding-block-start:var(--padding-top);--padding-block-end:var(--padding-bottom);--border-block-start-width:var(--border-top-width);--border-block-end-width:var(--border-bottom-width);--border-inline-start-width:var(--border-left-width);--border-inline-end-width:var(--border-right-width)}body.rtl .e-con{--padding-inline-start:var(--padding-right);--padding-inline-end:var(--padding-left);--margin-inline-start:var(--margin-right);--margin-inline-end:var(--margin-left);--border-inline-start-width:var(--border-right-width);--border-inline-end-width:var(--border-left-width)}.e-con{margin-block-end:var(--margin-block-end);margin-block-start:var(--margin-block-start);margin-inline-end:var(--margin-inline-end);margin-inline-start:var(--margin-inline-start);padding-inline-end:var(--padding-inline-end);padding-inline-start:var(--padding-inline-start)}.e-con.e-flex{--flex-direction:column;--flex-basis:auto;--flex-grow:0;--flex-shrink:1;flex:var(--flex-grow) var(--flex-shrink) var(--flex-basis)}.e-con-full,.e-con>.e-con-inner{padding-block-end:var(--padding-block-end);padding-block-start:var(--padding-block-start);text-align:var(--text-align)}.e-con-full.e-flex,.e-con.e-flex>.e-con-inner{flex-direction:var(--flex-direction)}.e-con,.e-con>.e-con-inner{display:var(--display)}.e-con.e-grid{--grid-justify-content:start;--grid-align-content:start;--grid-auto-flow:row}.e-con.e-grid,.e-con.e-grid>.e-con-inner{align-content:var(--grid-align-content);align-items:var(--align-items);grid-auto-flow:var(--grid-auto-flow);grid-template-columns:var(--e-con-grid-template-columns);grid-template-rows:var(--e-con-grid-template-rows);justify-content:var(--grid-justify-content);justify-items:var(--justify-items)}.e-con-boxed.e-flex{align-content:normal;align-items:normal;flex-direction:column;flex-wrap:nowrap;justify-content:normal}.e-con-boxed.e-grid{grid-template-columns:1fr;grid-template-rows:1fr;justify-items:legacy}.e-con-boxed{gap:initial;text-align:initial}.e-con.e-flex>.e-con-inner{align-content:var(--align-content);align-items:var(--align-items);align-self:auto;flex-basis:auto;flex-grow:1;flex-shrink:1;flex-wrap:var(--flex-wrap);justify-content:var(--justify-content)}.e-con.e-grid>.e-con-inner{align-items:var(--align-items);justify-items:var(--justify-items)}.e-con>.e-con-inner{gap:var(--row-gap) var(--column-gap);height:100%;margin:0 auto;max-width:var(--content-width);padding-inline-end:0;padding-inline-start:0;width:100%}:is(.elementor-section-wrap,[data-elementor-id])>.e-con{--margin-left:auto;--margin-right:auto;max-width:min(100%,var(--width))}:is([data-widget_type="e-component.default"],[data-widget_type="e-component.default"]>.elementor-section-wrap)>.e-con{--margin-right:0px;--margin-left:0px}.e-con .elementor-widget.elementor-widget{margin-block-end:0}.e-con:before,.e-con>.elementor-background-slideshow:before,.e-con>.elementor-motion-effects-container>.elementor-motion-effects-layer:before,:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container:before{border-block-end-width:var(--border-block-end-width);border-block-start-width:var(--border-block-start-width);border-color:var(--border-color);border-inline-end-width:var(--border-inline-end-width);border-inline-start-width:var(--border-inline-start-width);border-radius:var(--border-radius);border-style:var(--border-style);content:var(--background-overlay);display:block;height:max(100% + var(--border-top-width) + var(--border-bottom-width),100%);left:calc(0px - var(--border-left-width));mix-blend-mode:var(--overlay-mix-blend-mode);opacity:var(--overlay-opacity);position:absolute;top:calc(0px - var(--border-top-width));transition:var(--overlay-transition,.3s);width:max(100% + var(--border-left-width) + var(--border-right-width),100%)}.e-con:before{transition:background var(--overlay-transition,.3s),border-radius var(--border-transition,.3s),opacity var(--overlay-transition,.3s)}.e-con>.elementor-background-slideshow,:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container{border-block-end-width:var(--border-block-end-width);border-block-start-width:var(--border-block-start-width);border-color:var(--border-color);border-inline-end-width:var(--border-inline-end-width);border-inline-start-width:var(--border-inline-start-width);border-radius:var(--border-radius);border-style:var(--border-style);height:max(100% + var(--border-top-width) + var(--border-bottom-width),100%);left:calc(0px - var(--border-left-width));top:calc(0px - var(--border-top-width));width:max(100% + var(--border-left-width) + var(--border-right-width),100%)}@media (max-width:767px){:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container.elementor-hidden-mobile{display:none}}:is(.e-con,.e-con>.e-con-inner)>.elementor-background-video-container:before{z-index:1}:is(.e-con,.e-con>.e-con-inner)>.elementor-background-slideshow:before{z-index:2}.e-con .elementor-widget{min-width:0}.e-con .elementor-widget-empty,.e-con .elementor-widget-google_maps,.e-con .elementor-widget-video,.e-con .elementor-widget.e-widget-swiper{width:100%}.e-con>.e-con-inner>.elementor-widget>.elementor-widget-container,.e-con>.elementor-widget>.elementor-widget-container{height:100%}.e-con.e-con>.e-con-inner>.elementor-widget,.elementor.elementor .e-con>.elementor-widget{max-width:100%}.e-con .elementor-widget:not(:last-child){--kit-widget-spacing:0px}@media (max-width:767px){.e-con.e-flex{--width:100%;--flex-wrap:var(--flex-wrap-mobile)}.e-con.e-flex .elementor-widget-archive-posts{width:100%}}.elementor-form-fields-wrapper{display:flex;flex-wrap:wrap}.elementor-form-fields-wrapper.elementor-labels-above .elementor-field-group .elementor-field-subgroup,.elementor-form-fields-wrapper.elementor-labels-above .elementor-field-group>.elementor-select-wrapper,.elementor-form-fields-wrapper.elementor-labels-above .elementor-field-group>input,.elementor-form-fields-wrapper.elementor-labels-above .elementor-field-group>textarea{flex-basis:100%;max-width:100%}.elementor-form-fields-wrapper.elementor-labels-inline>.elementor-field-group .elementor-select-wrapper,.elementor-form-fields-wrapper.elementor-labels-inline>.elementor-field-group>input{flex-grow:1}.elementor-field-group{align-items:center;flex-wrap:wrap}.elementor-field-group.elementor-field-type-submit{align-items:flex-end}.elementor-field-group .elementor-field-textual{background-color:transparent;border:1px solid #69727d;color:#1f2124;flex-grow:1;max-width:100%;vertical-align:middle;width:100%}.elementor-field-group .elementor-field-textual:focus{box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);outline:0}.elementor-field-group .elementor-field-textual::-moz-placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-field-group .elementor-field-textual::placeholder{color:inherit;font-family:inherit;opacity:.6}.elementor-field-group .elementor-select-wrapper{display:flex;position:relative;width:100%}.elementor-field-group .elementor-select-wrapper select{-webkit-appearance:none;-moz-appearance:none;appearance:none;color:inherit;flex-basis:100%;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;padding-inline-end:20px;text-transform:inherit}.elementor-field-group .elementor-select-wrapper:before{content:"\e92a";font-family:eicons;font-size:15px;inset-block-start:50%;inset-inline-end:10px;pointer-events:none;position:absolute;text-shadow:0 0 3px rgba(0,0,0,.3);transform:translateY(-50%)}.elementor-field-group.elementor-field-type-select-multiple .elementor-select-wrapper:before{content:""}.elementor-field-subgroup{display:flex;flex-wrap:wrap}.elementor-field-subgroup .elementor-field-option label{display:inline-block}.elementor-field-subgroup.elementor-subgroup-inline .elementor-field-option{padding-inline-end:10px}.elementor-field-subgroup:not(.elementor-subgroup-inline) .elementor-field-option{flex-basis:100%}.elementor-field-type-acceptance .elementor-field-subgroup .elementor-field-option input,.elementor-field-type-acceptance .elementor-field-subgroup .elementor-field-option label,.elementor-field-type-checkbox .elementor-field-subgroup .elementor-field-option input,.elementor-field-type-checkbox .elementor-field-subgroup .elementor-field-option label,.elementor-field-type-radio .elementor-field-subgroup .elementor-field-option input,.elementor-field-type-radio .elementor-field-subgroup .elementor-field-option label{display:inline}.elementor-field-label{cursor:pointer}.elementor-mark-required .elementor-field-label:after{color:red;content:"*";padding-inline-start:.2em}.elementor-field-textual{border-radius:3px;font-size:15px;line-height:1.4;min-height:40px;padding:5px 14px}.elementor-field-textual.elementor-size-xs{border-radius:2px;font-size:13px;min-height:33px;padding:4px 12px}.elementor-field-textual.elementor-size-md{border-radius:4px;font-size:16px;min-height:47px;padding:6px 16px}.elementor-field-textual.elementor-size-lg{border-radius:5px;font-size:18px;min-height:59px;padding:7px 20px}.elementor-field-textual.elementor-size-xl{border-radius:6px;font-size:20px;min-height:72px;padding:8px 24px}.elementor-button-align-stretch .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button{flex-basis:100%}.elementor-button-align-stretch .e-form__buttons__wrapper{flex-basis:50%;flex-grow:1}.elementor-button-align-stretch .e-form__buttons__wrapper__button{flex-basis:100%}.elementor-button-align-center .e-form__buttons,.elementor-button-align-center .elementor-field-type-submit{justify-content:center}.elementor-button-align-start .e-form__buttons,.elementor-button-align-start .elementor-field-type-submit{justify-content:flex-start}.elementor-button-align-end .e-form__buttons,.elementor-button-align-end .elementor-field-type-submit,[dir=rtl] .elementor-button-align-start .e-form__buttons,[dir=rtl] .elementor-button-align-start .elementor-field-type-submit{justify-content:flex-end}[dir=rtl] .elementor-button-align-end .e-form__buttons,[dir=rtl] .elementor-button-align-end .elementor-field-type-submit{justify-content:flex-start}.elementor-button-align-center .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button,.elementor-button-align-end .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button,.elementor-button-align-start .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button{flex-basis:auto}.elementor-button-align-center .e-form__buttons__wrapper,.elementor-button-align-end .e-form__buttons__wrapper,.elementor-button-align-start .e-form__buttons__wrapper{flex-grow:0}.elementor-button-align-center .e-form__buttons__wrapper,.elementor-button-align-center .e-form__buttons__wrapper__button,.elementor-button-align-end .e-form__buttons__wrapper,.elementor-button-align-end .e-form__buttons__wrapper__button,.elementor-button-align-start .e-form__buttons__wrapper,.elementor-button-align-start .e-form__buttons__wrapper__button{flex-basis:auto}@media screen and (max-width:1024px){.elementor-tablet-button-align-stretch .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button{flex-basis:100%}.elementor-tablet-button-align-stretch .e-form__buttons__wrapper{flex-basis:50%;flex-grow:1}.elementor-tablet-button-align-stretch .e-form__buttons__wrapper__button{flex-basis:100%}.elementor-tablet-button-align-center .e-form__buttons,.elementor-tablet-button-align-center .elementor-field-type-submit{justify-content:center}.elementor-tablet-button-align-start .e-form__buttons,.elementor-tablet-button-align-start .elementor-field-type-submit{justify-content:flex-start}.elementor-tablet-button-align-end .e-form__buttons,.elementor-tablet-button-align-end .elementor-field-type-submit,[dir=rtl] .elementor-tablet-button-align-start .e-form__buttons,[dir=rtl] .elementor-tablet-button-align-start .elementor-field-type-submit{justify-content:flex-end}[dir=rtl] .elementor-tablet-button-align-end .e-form__buttons,[dir=rtl] .elementor-tablet-button-align-end .elementor-field-type-submit{justify-content:flex-start}.elementor-tablet-button-align-center .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button,.elementor-tablet-button-align-end .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button,.elementor-tablet-button-align-start .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button{flex-basis:auto}.elementor-tablet-button-align-center .e-form__buttons__wrapper,.elementor-tablet-button-align-end .e-form__buttons__wrapper,.elementor-tablet-button-align-start .e-form__buttons__wrapper{flex-grow:0}.elementor-tablet-button-align-center .e-form__buttons__wrapper,.elementor-tablet-button-align-center .e-form__buttons__wrapper__button,.elementor-tablet-button-align-end .e-form__buttons__wrapper,.elementor-tablet-button-align-end .e-form__buttons__wrapper__button,.elementor-tablet-button-align-start .e-form__buttons__wrapper,.elementor-tablet-button-align-start .e-form__buttons__wrapper__button{flex-basis:auto}}@media screen and (max-width:767px){.elementor-mobile-button-align-stretch .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button{flex-basis:100%}.elementor-mobile-button-align-stretch .e-form__buttons__wrapper{flex-basis:50%;flex-grow:1}.elementor-mobile-button-align-stretch .e-form__buttons__wrapper__button{flex-basis:100%}.elementor-mobile-button-align-center .e-form__buttons,.elementor-mobile-button-align-center .elementor-field-type-submit{justify-content:center}.elementor-mobile-button-align-start .e-form__buttons,.elementor-mobile-button-align-start .elementor-field-type-submit{justify-content:flex-start}.elementor-mobile-button-align-end .e-form__buttons,.elementor-mobile-button-align-end .elementor-field-type-submit,[dir=rtl] .elementor-mobile-button-align-start .e-form__buttons,[dir=rtl] .elementor-mobile-button-align-start .elementor-field-type-submit{justify-content:flex-end}[dir=rtl] .elementor-mobile-button-align-end .e-form__buttons,[dir=rtl] .elementor-mobile-button-align-end .elementor-field-type-submit{justify-content:flex-start}.elementor-mobile-button-align-center .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button,.elementor-mobile-button-align-end .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button,.elementor-mobile-button-align-start .elementor-field-type-submit:not(.e-form__buttons__wrapper) .elementor-button{flex-basis:auto}.elementor-mobile-button-align-center .e-form__buttons__wrapper,.elementor-mobile-button-align-end .e-form__buttons__wrapper,.elementor-mobile-button-align-start .e-form__buttons__wrapper{flex-grow:0}.elementor-mobile-button-align-center .e-form__buttons__wrapper,.elementor-mobile-button-align-center .e-form__buttons__wrapper__button,.elementor-mobile-button-align-end .e-form__buttons__wrapper,.elementor-mobile-button-align-end .e-form__buttons__wrapper__button,.elementor-mobile-button-align-start .e-form__buttons__wrapper,.elementor-mobile-button-align-start .e-form__buttons__wrapper__button{flex-basis:auto}}.elementor-error .elementor-field{border-color:#d9534f}.elementor-error .help-inline{color:#d9534f;font-size:.9em}.elementor-message{font-size:1em;line-height:1;margin:10px 0}.elementor-message:before{content:"\e90e";display:inline-block;font-family:eicons;font-style:normal;font-weight:400;margin-inline-end:5px;vertical-align:middle}.elementor-message.elementor-message-danger{color:#d9534f}.elementor-message.elementor-message-danger:before{content:"\e87f"}.elementor-message.form-message-success{color:#5cb85c}.elementor-form .elementor-button{border:none;padding-block-end:0;padding-block-start:0}.elementor-form .elementor-button-content-wrapper,.elementor-form .elementor-button>span{display:flex;flex-direction:row;gap:5px;justify-content:center}.elementor-form .elementor-button.elementor-size-xs{min-height:33px}.elementor-form .elementor-button.elementor-size-sm{min-height:40px}.elementor-form .elementor-button.elementor-size-md{min-height:47px}.elementor-form .elementor-button.elementor-size-lg{min-height:59px}.elementor-form .elementor-button.elementor-size-xl{min-height:72px}.elementor-element:where(:not(.e-con)):where(:not(.e-div-block-base)) .elementor-widget-container,.elementor-element:where(:not(.e-con)):where(:not(.e-div-block-base)):not(:has(.elementor-widget-container)){transition:background .3s,border .3s,border-radius .3s,box-shadow .3s,transform var(--e-transform-transition-duration,.4s)}.elementor-heading-title{line-height:1;margin:0;padding:0}.elementor-button{background-color:#69727d;border-radius:3px;color:#fff;display:inline-block;fill:#fff;font-size:15px;line-height:1;padding:12px 24px;text-align:center;transition:all .3s}.elementor-button:focus,.elementor-button:hover,.elementor-button:visited{color:#fff}.elementor-button-content-wrapper{display:flex;flex-direction:row;gap:5px;justify-content:center}.elementor-button-icon{align-items:center;display:flex}.elementor-button-icon svg{height:auto;width:1em}.elementor-button-icon .e-font-icon-svg{height:1em}.elementor-button-text{display:inline-block}.elementor-button.elementor-size-xs{border-radius:2px;font-size:13px;padding:10px 20px}.elementor-button.elementor-size-md{border-radius:4px;font-size:16px;padding:15px 30px}.elementor-button.elementor-size-lg{border-radius:5px;font-size:18px;padding:20px 40px}.elementor-button.elementor-size-xl{border-radius:6px;font-size:20px;padding:25px 50px}.elementor-button span{text-decoration:inherit}.elementor-element.elementor-button-info .elementor-button{background-color:#5bc0de}.elementor-element.elementor-button-success .elementor-button{background-color:#5cb85c}.elementor-element.elementor-button-warning .elementor-button{background-color:#f0ad4e}.elementor-element.elementor-button-danger .elementor-button{background-color:#d9534f}.elementor-widget-button .elementor-button .elementor-button-info{background-color:#5bc0de}.elementor-widget-button .elementor-button .elementor-button-success{background-color:#5cb85c}.elementor-widget-button .elementor-button .elementor-button-warning{background-color:#f0ad4e}.elementor-widget-button .elementor-button .elementor-button-danger{background-color:#d9534f}.elementor-view-stacked .elementor-icon{background-color:#69727d;color:#fff;fill:#fff;padding:.5em}.elementor-view-framed .elementor-icon{background-color:transparent;border:3px solid #69727d;color:#69727d;padding:.5em}.elementor-icon{color:#69727d;display:inline-block;font-size:50px;line-height:1;text-align:center;transition:all .3s}.elementor-icon:hover{color:#69727d}.elementor-icon i,.elementor-icon svg{display:block;height:1em;position:relative;width:1em}.elementor-icon i:before,.elementor-icon svg:before{left:50%;position:absolute;transform:translateX(-50%)}.elementor-icon i.fad{width:auto}.elementor-shape-square .elementor-icon{border-radius:0}.elementor-shape-rounded .elementor-icon{border-radius:10%}.elementor-shape-circle .elementor-icon{border-radius:50%}.e-transform .elementor-widget-container,.e-transform:not(:has(.elementor-widget-container)){transform:perspective(var(--e-transform-perspective,0)) rotate(var(--e-transform-rotateZ,0)) rotateX(var(--e-transform-rotateX,0)) rotateY(var(--e-transform-rotateY,0)) translate(var(--e-transform-translate,0)) translateX(var(--e-transform-translateX,0)) translateY(var(--e-transform-translateY,0)) scaleX(calc(var(--e-transform-flipX, 1) * var(--e-transform-scaleX, var(--e-transform-scale, 1)))) scaleY(calc(var(--e-transform-flipY, 1) * var(--e-transform-scaleY, var(--e-transform-scale, 1)))) skewX(var(--e-transform-skewX,0)) skewY(var(--e-transform-skewY,0));transform-origin:var(--e-transform-origin-y) var(--e-transform-origin-x)}.e-con.e-transform{transform:perspective(var(--e-con-transform-perspective,0)) rotate(var(--e-con-transform-rotateZ,0)) rotateX(var(--e-con-transform-rotateX,0)) rotateY(var(--e-con-transform-rotateY,0)) translate(var(--e-con-transform-translate,0)) translateX(var(--e-con-transform-translateX,0)) translateY(var(--e-con-transform-translateY,0)) scaleX(calc(var(--e-con-transform-flipX, 1) * var(--e-con-transform-scaleX, var(--e-con-transform-scale, 1)))) scaleY(calc(var(--e-con-transform-flipY, 1) * var(--e-con-transform-scaleY, var(--e-con-transform-scale, 1)))) skewX(var(--e-con-transform-skewX,0)) skewY(var(--e-con-transform-skewY,0));transform-origin:var(--e-con-transform-origin-y) var(--e-con-transform-origin-x)}.animated{animation-duration:1.25s}.animated.animated-slow{animation-duration:2s}.animated.animated-fast{animation-duration:.75s}.animated.infinite{animation-iteration-count:infinite}.animated.reverse{animation-direction:reverse;animation-fill-mode:forwards}@media (prefers-reduced-motion:reduce){.animated{animation:none!important}html *{transition-delay:0s!important;transition-duration:0s!important}}@media (max-width:767px){.elementor .elementor-hidden-mobile,.elementor .elementor-hidden-phone{display:none}}@media (min-width:-1) and (max-width:-1){.elementor .elementor-hidden-mobile_extra{display:none}}@media (min-width:768px) and (max-width:1024px){.elementor .elementor-hidden-tablet{display:none}}@media (min-width:-1) and (max-width:-1){.elementor .elementor-hidden-laptop,.elementor .elementor-hidden-tablet_extra{display:none}}@media (min-width:1025px) and (max-width:99999px){.elementor .elementor-hidden-desktop{display:none}}@media (min-width:-1){.elementor .elementor-hidden-widescreen{display:none}}.elementor-kit-6{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500}.elementor-kit-6 e-page-transition{background-color:#FFBC7D}.elementor-section.elementor-section-boxed>.elementor-container{max-width:1440px}.e-con{--container-max-width:1440px}.elementor-widget:not(:last-child){--kit-widget-spacing:20px}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px}{}h1.entry-title{display:var(--page-title-display)}.site-header .site-branding{flex-direction:column;align-items:stretch}.site-header{padding-inline-end:0;padding-inline-start:0}.site-footer .site-branding{flex-direction:column;align-items:stretch}@media(max-width:1024px){.elementor-section.elementor-section-boxed>.elementor-container{max-width:1024px}.e-con{--container-max-width:1024px}}@media(max-width:767px){.elementor-section.elementor-section-boxed>.elementor-container{max-width:767px}.e-con{--container-max-width:767px}}.tko-header {
	--tko-header-height: 82px;
	--tko-header-logo-height: clamp(26px, 3vw, 44px);
	--tko-header-sound-icon-size: 14px;
	--tko-header-sound-font-size: 10px;
	--tko-header-light: var(--tko-white) !important;
	--tko-header-dark: var(--tko-black) !important;
	--tko-header-panel-bg: var(--tko-black) !important;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: var(--tko-z-header);
	color: var(--tko-header-dark);
	transition: translate var(--tko-header-motion-duration, 0.55s) var(--tko-header-motion-ease, var(--tko-ease)), color 0.35s ease, background-color 0.35s ease;
	translate: 0 0;
	will-change: translate;
	pointer-events: none;
}

.tko-header.is-light { color: var(--tko-header-light); }
.tko-header.is-dark { color: var(--tko-header-dark); }
.tko-header.is-hidden { translate: 0 -110%; }
.tko-header.is-panel-open { translate: 0 0; }

.tko-header__inner {
	min-height: var(--tko-header-height);
	width: 100%;
	max-width: var(--tko-container-max);
	margin-inline: auto;
	padding-inline: var(--tko-container-pad);
	display: grid;
	grid-template-columns: minmax(160px, 1fr) auto minmax(160px, 1fr);
	align-items: center;
	gap: var(--tko-space-md);
	pointer-events: auto;
}

.tko-header__brand-stack {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-self: start;
	gap: 0.28rem;
	min-width: 0;
}

.tko-header__brand {
	display: inline-flex;
	align-items: center;
	justify-self: start;
	text-decoration: none;
	min-width: 0;
}

.tko-header__logo {
	display: block;
	width: auto;
	height: var(--tko-header-logo-height, clamp(26px, 3vw, 44px));
	max-width: min(46vw, 440px);
	max-height: calc(var(--tko-header-height) - 12px);
	object-fit: contain;
	object-position: left center;
	flex: 0 1 auto;
}
.tko-header__logo--dark { display: block; }
.tko-header__logo--light { display: none; }
.tko-header.is-light .tko-header__logo--light { display: block; }
.tko-header.is-light .tko-header__logo--dark { display: none; }
.tko-header__brand-text {
	font-size: var(--tko-widget-body, var(--tko-fs-body));
	font-weight: 600;
	letter-spacing: 0.08em;
	white-space: nowrap;
}


.tko-header__sound-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.38rem;
	max-width: min(46vw, 260px);
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font-size: var(--tko-header-sound-font-size);
	font-weight: var(--tko-fw-medium);
	line-height: 1;
	letter-spacing: 0.045em;
	text-transform: uppercase;
	white-space: nowrap;
	opacity: 0.68;
	cursor: pointer;
	transition:
		opacity 0.25s var(--tko-ease),
		color 0.25s var(--tko-ease),
		transform 0.25s var(--tko-ease-out-soft);
}

.tko-header__sound-toggle:hover,
.tko-header__sound-toggle:focus-visible {
	opacity: 1;
	transform: translateX(2px);
}

.tko-header__sound-toggle.is-enabled {
	color: var(--tko-accent);
	opacity: 1;
}

.tko-header__sound-toggle.is-error {
	color: currentColor;
	opacity: 0.45;
}

.tko-header__sound-icon {
	display: inline-grid;
	place-items: center;
	flex: 0 0 var(--tko-header-sound-icon-size);
	width: var(--tko-header-sound-icon-size);
	height: var(--tko-header-sound-icon-size);
}

.tko-header__sound-icon svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.65;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.tko-header__sound-icon--on {
	display: none;
}

.tko-header__sound-toggle.is-enabled .tko-header__sound-icon--off {
	display: none;
}

.tko-header__sound-toggle.is-enabled .tko-header__sound-icon--on {
	display: inline-grid;
}

.tko-header__sound-label {
	overflow: hidden;
	text-overflow: ellipsis;
}

.tko-header__brand-stack audio[data-tko-jingle] {
	display: none;
}

.tko-header.has-sound-toggle .tko-header__logo {
	max-height: calc(var(--tko-header-height) - 30px);
}

.tko-header__desktop-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(1rem, 2.2vw, 2.5rem);
}
.tko-header__nav-link {
	position: relative;
	font-size: var(--tko-widget-body, var(--tko-fs-body));
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
	color: currentColor;
	opacity: 0.62;
	transition:
		opacity 0.25s var(--tko-ease),
		color 0.25s var(--tko-ease),
		transform 0.25s var(--tko-ease-out-soft);
}

.tko-header__nav-link:hover,
.tko-header__nav-link:focus-visible,
.tko-header__nav-link.is-active {
	color: currentColor;
	opacity: 1;
}

.tko-header__nav-link:hover,
.tko-header__nav-link:focus-visible {
	transform: translateY(-1px);
}
.tko-header__nav-link::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: -7px;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.35s var(--tko-ease);
}
.tko-header__nav-link:hover::after,
.tko-header__nav-link:focus-visible::after,
.tko-header__nav-link.is-active::after {
	transform: scaleX(1);
	transform-origin: left;
}

.tko-header__actions {
	display: flex;
	align-items: center;
	justify-self: end;
	gap: 0.55rem;
}
.tko-header__icon-button,
.tko-panel__close {
	width: 44px;
	height: 44px;
	display: inline-grid;
	place-items: center;
	border: 1px solid currentColor;
	border-radius: 999px;
	color: inherit;
	transition: background-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}
.tko-header__icon-button:hover,
.tko-panel__close:hover { transform: scale(1.04); }
.tko-header__icon-button svg,
.tko-panel__close svg {
	width: 19px;
	height: 19px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.tko-header__menu-button { display: none; }

.tko-header-backdrop {
	position: fixed;
	inset: 0;
	z-index: calc(var(--tko-z-offcanvas) - 1);
	background: rgba(0, 0, 0, 0.48);
	opacity: 0;
	pointer-events: none;
	transition: opacity var(--tko-panel-motion-duration, 0.7s) var(--tko-header-motion-ease, var(--tko-ease));
}
.tko-header-backdrop.is-open { opacity: 1; pointer-events: auto; }

.tko-mobile-nav,
.tko-player-panel {
	position: fixed;
	top: 0;
	right: 0;
	height: 100vh;
	height: 100dvh;
	z-index: var(--tko-z-offcanvas);
	background: var(--tko-header-panel-bg, var(--tko-black));
	color: var(--tko-white);
	box-shadow: -30px 0 80px rgba(0, 0, 0, 0.25);
	translate: 100% 0;
	visibility: hidden;
	transition: translate var(--tko-panel-motion-duration, 0.7s) var(--tko-header-motion-ease, var(--tko-ease)), visibility 0s linear var(--tko-panel-motion-duration, 0.7s);
	overflow-y: auto;
	overscroll-behavior: contain;
}
.tko-mobile-nav.is-open,
.tko-player-panel.is-open {
	translate: 0 0;
	visibility: visible;
	transition-delay: 0s;
}
.tko-mobile-nav { width: min(88vw, 430px); padding: var(--tko-space-md); }
.tko-player-panel { width: min(92vw, 520px); padding: var(--tko-space-md); }

.tko-panel__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-bottom: var(--tko-space-md);
	border-bottom: 1px solid rgba(255,255,255,0.16);
}
.tko-panel__head h2 {
	font-size: var(--tko-widget-h2, var(--tko-fs-h2));
	line-height: 1;
	margin: 0;
	font-weight: 500;
}
.tko-mobile-nav__links {
	display: flex;
	flex-direction: column;
	padding-top: var(--tko-space-lg);
}
.tko-mobile-nav__link {
	font-size: var(--tko-widget-h2, clamp(2rem, 9vw, 4rem));
	line-height: 1;
	letter-spacing: -0.04em;
	text-decoration: none;
	padding-block: 0.5em;
	border-bottom: 1px solid rgba(255,255,255,0.14);
	color: var(--tko-white);
	opacity: 0.58;
	transition:
		opacity 0.25s var(--tko-ease),
		color 0.25s var(--tko-ease),
		padding-left 0.3s var(--tko-ease-out-soft);
}

.tko-mobile-nav__link:hover,
.tko-mobile-nav__link:focus-visible,
.tko-mobile-nav__link.is-active {
	color: var(--tko-white);
	opacity: 1;
	padding-left: 0.18em;
}

.tko-player-panel__current {
	font-size: var(--tko-widget-h3, var(--tko-fs-h3));
	margin: var(--tko-space-lg) 0 var(--tko-space-sm);
}
.tko-player-panel__audio { width: 100%; }
.tko-player-panel__tracks {
	display: grid;
	gap: 0;
	margin-top: var(--tko-space-lg);
}
.tko-player-panel__track {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.1rem 0;
	color: inherit;
	text-align: left;
	border-bottom: 1px solid rgba(255,255,255,0.14);
}
.tko-player-panel__track span { font-size: var(--tko-widget-body, var(--tko-fs-body)); }
.tko-player-panel__track small { color: rgba(255,255,255,0.6); }
.tko-player-panel__track.is-active span { color: var(--tko-accent); text-decoration: underline; text-underline-offset: 5px; }

html.tko-panel-scroll-lock,
body.tko-panel-scroll-lock { overflow: hidden; }

@media (max-width: 1023px) {
	.tko-header__inner {
		grid-template-columns: 1fr auto;
		min-height: calc(var(--tko-header-height) + env(safe-area-inset-top, 0px));
		padding-top: env(safe-area-inset-top, 0px);
	}

	.tko-mobile-nav,
	.tko-player-panel {
		padding-top: max(var(--tko-space-md), env(safe-area-inset-top, 0px));
		padding-right: max(var(--tko-space-md), env(safe-area-inset-right, 0px));
		padding-bottom: max(var(--tko-space-md), env(safe-area-inset-bottom, 0px));
		padding-left: max(var(--tko-space-md), env(safe-area-inset-left, 0px));
	}
	.tko-header__sound-toggle {
		max-width: min(52vw, 210px);
		letter-spacing: 0.03em;
	}

	.tko-header__desktop-nav { display: none; }
	.tko-header__menu-button { display: inline-grid; }

	/* Push menu: używamy individual transform property `translate`, więc nie
	   nadpisujemy transformów używanych przez Elementor/GSAP. */
	body > *:not(.tko-mobile-nav):not(.tko-player-panel):not(.tko-header-backdrop):not(#tko-preloader):not(#tko-page-transition):not(#wpadminbar):not(script):not(style) {
		transition: translate var(--tko-panel-motion-duration, 0.7s) var(--tko-header-motion-ease, var(--tko-ease));
	}
	body.tko-nav-open > *:not(.tko-mobile-nav):not(.tko-player-panel):not(.tko-header-backdrop):not(#tko-preloader):not(#tko-page-transition):not(#wpadminbar):not(script):not(style) {
		translate: calc(-1 * min(88vw, 430px)) 0;
	}
}

@media (max-width: 480px) {
	.tko-header__inner { gap: 0.5rem; }
	/* 1.7.30: przycisk hamburgera (i pozostałe .tko-header__icon-button, np.
	   odtwarzacz muzyki) NIE może być mniejszy niż 44x44px — to minimalny
	   dotykowy touch-target (wytyczne iOS/Android). Poprzednie 40px na
	   najwęższych telefonach schodziło poniżej tego progu; ikona w środku
	   jest teraz też nieznacznie większa dla lepszej czytelności. */
	.tko-header__icon-button {
		width: 46px;
		height: 46px;
	}
	.tko-header__icon-button svg {
		width: 21px;
		height: 21px;
	}
	.tko-header__brand-text { max-width: 45vw; overflow: hidden; text-overflow: ellipsis; }
	.tko-header__sound-toggle { max-width: 48vw; }
	.tko-header__sound-label { max-width: 34vw; }
}

@media (prefers-reduced-motion: reduce) {
	.tko-header,
	.tko-mobile-nav,
	.tko-player-panel,
	.tko-header-backdrop,
	body.tko-nav-open > * { transition-duration: 0.01ms !important; }
}


/* Edytor Elementora: header pozostaje w przepływie i nie zasłania panelu. */
.elementor-editor-active .tko-header {
	position: relative;
	translate: none !important;
	background: var(--tko-white);
	color: var(--tko-black);
}
.elementor-editor-active .tko-mobile-nav,
.elementor-editor-active .tko-player-panel,
.elementor-editor-active .tko-header-backdrop { display: none !important; }

/* === 1.6.18.19: tekstowy przełącznik dźwięku ==============================
   Wysoka specyficzność i !important są celowe — Elementor oraz motyw mogą
   definiować globalne style button:hover/button:active po CSS widgetu. */

.tko-header .tko-header__brand-stack button.tko-header__sound-toggle,
.tko-header .tko-header__brand-stack button.tko-header__sound-toggle:hover,
.tko-header .tko-header__brand-stack button.tko-header__sound-toggle:focus,
.tko-header .tko-header__brand-stack button.tko-header__sound-toggle:focus-visible,
.tko-header .tko-header__brand-stack button.tko-header__sound-toggle:active,
.tko-header .tko-header__brand-stack button.tko-header__sound-toggle.is-enabled {
	width: auto !important;
	min-width: 0 !important;
	min-height: 0 !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	box-shadow: none !important;
	outline: 0 !important;
	text-decoration: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	-webkit-tap-highlight-color: transparent;
}

.tko-header .tko-header__brand-stack button.tko-header__sound-toggle::before,
.tko-header .tko-header__brand-stack button.tko-header__sound-toggle::after,
.tko-header .tko-header__brand-stack button.tko-header__sound-toggle:hover::before,
.tko-header .tko-header__brand-stack button.tko-header__sound-toggle:hover::after,
.tko-header .tko-header__brand-stack button.tko-header__sound-toggle:focus::before,
.tko-header .tko-header__brand-stack button.tko-header__sound-toggle:focus::after,
.tko-header .tko-header__brand-stack button.tko-header__sound-toggle:active::before,
.tko-header .tko-header__brand-stack button.tko-header__sound-toggle:active::after,
.tko-header .tko-header__brand-stack button.tko-header__sound-toggle.is-enabled::before,
.tko-header .tko-header__brand-stack button.tko-header__sound-toggle.is-enabled::after {
	content: none !important;
	display: none !important;
	width: 0 !important;
	height: 0 !important;
	background: none !important;
	box-shadow: none !important;
	transform: none !important;
}

.tko-header .tko-header__brand-stack button.tko-header__sound-toggle {
	color: inherit !important;
	opacity: 0.68;
}

.tko-header .tko-header__brand-stack button.tko-header__sound-toggle:hover,
.tko-header .tko-header__brand-stack button.tko-header__sound-toggle:focus-visible,
.tko-header .tko-header__brand-stack button.tko-header__sound-toggle:active,
.tko-header .tko-header__brand-stack button.tko-header__sound-toggle.is-enabled {
	color: var(--tko-accent) !important;
	opacity: 1;
}

.tko-header .tko-header__brand-stack button.tko-header__sound-toggle:focus-visible {
	text-decoration: underline !important;
	text-decoration-thickness: 1px !important;
	text-underline-offset: 3px !important;
}

.tko-header .tko-header__brand-stack button.tko-header__sound-toggle.is-error {
	color: inherit !important;
	opacity: 0.45;
	text-decoration: none !important;
}

/* === 1.6.18.21: Header interaktywny, ale pod intro =======================
   Sekcje/piny/lightboxy mają niższe warstwy. Page transition ma 300,
   a preloader 400, dlatego oba prawidłowo przykrywają Header podczas intro. */

.tko-header {
	z-index: 250 !important;
	isolation: isolate;
}

.tko-header__inner {
	position: relative;
	z-index: 3;
	pointer-events: auto !important;
}

.tko-header__brand-stack,
.tko-header__brand,
.tko-header__desktop-nav,
.tko-header__actions,
.tko-header__nav-link,
.tko-header__sound-toggle,
.tko-header__icon-button {
	position: relative;
	pointer-events: auto !important;
	touch-action: manipulation;
}

.tko-header-backdrop {
	z-index: 260 !important;
}

.tko-mobile-nav,
.tko-player-panel {
	z-index: 270 !important;
	pointer-events: auto !important;
}

.tko-mobile-nav__link,
.tko-player-panel a,
.tko-player-panel button,
.tko-panel__close {
	pointer-events: auto !important;
	touch-action: manipulation;
}

/* === 1.6.18.22.9 — marka HOME ========================================== */

.tko-header {
	--tko-header-brand-offset-y: 10px;
}

.tko-header__brand-stack {
	transform: translateY(var(--tko-header-brand-offset-y));
}

.tko-header__logo-canvas {
	position: relative;
	display: inline-flex;
	align-items: center;
	max-width: 100%;
	clip-path: inset(0 0 0 0);
}

.tko-header__logo-canvas.is-drawing {
	animation: tko-header-logo-draw 0.88s cubic-bezier(0.19, 1, 0.22, 1) both;
}

@keyframes tko-header-logo-draw {
	0% {
		clip-path: inset(0 100% 0 0);
		opacity: 0.45;
		filter: blur(1.5px);
	}
	55% {
		opacity: 1;
	}
	100% {
		clip-path: inset(0 0 0 0);
		opacity: 1;
		filter: blur(0);
	}
}

.tko-header__brand:hover .tko-header__logo-canvas,
.tko-header__brand:focus-visible .tko-header__logo-canvas {
	will-change: clip-path, opacity, filter;
}

.tko-header__brand-text--full {
	font-size: clamp(0.7rem, 0.58rem + 0.45vw, 0.94rem);
	font-weight: var(--tko-fw-medium);
	letter-spacing: 0.12em;
	line-height: 1.15;
	white-space: nowrap;
}

.tko-header--brand-corners .tko-header__brand-stack {
	transform: translateY(var(--tko-header-brand-offset-y));
}

.tko-header__corner-mark {
	position: fixed;
	z-index: calc(var(--tko-z-header) - 1);
	right: clamp(1.25rem, 4vw, 4rem);
	bottom: clamp(1.25rem, 4vw, 3.5rem);
	display: block;
	width: clamp(90px, 13vw, 190px);
	color: var(--tko-white);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translate3d(0, 18px, 0) rotate(-2deg);
	transition:
		opacity 0.45s var(--tko-ease),
		transform 0.65s var(--tko-ease-out-soft),
		visibility 0s linear 0.45s;
}

.tko-header.is-hero-zone ~ .tko-header__corner-mark,
.tko-header__corner-mark.is-hero-zone {
	opacity: 0.82;
	visibility: visible;
	pointer-events: auto;
	transform: translate3d(0, 0, 0) rotate(-2deg);
	transition-delay: 0s;
}

.tko-header__corner-mark img,
.tko-header__corner-mark svg {
	display: block;
	width: 100%;
	height: auto;
	max-height: 28vh;
	object-fit: contain;
	filter: brightness(0) invert(1);
}

.tko-header__nav-link.is-active,
.tko-mobile-nav__link.is-active {
	color: var(--tko-accent) !important;
	opacity: 1;
}

.tko-header__nav-link.is-active::after {
	background: var(--tko-accent);
}

@media (max-width: 767px) {
	.tko-header {
		--tko-header-brand-offset-y: 7px;
	}

	.tko-header__corner-mark {
		right: 1rem;
		bottom: 1.25rem;
		width: clamp(76px, 24vw, 118px);
		opacity: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tko-header__logo-canvas.is-drawing {
		animation: none;
		clip-path: none;
	}
}


/* === 1.7.7 — wyraźny hover/focus nawigacji ============================ */
.tko-header__nav-link:hover,
.tko-header__nav-link:focus,
.tko-header__nav-link:focus-visible,
.tko-mobile-nav__link:hover,
.tko-mobile-nav__link:focus,
.tko-mobile-nav__link:focus-visible {
	color: var(--tko-accent, #ffc133) !important;
	opacity: 1;
}

.tko-header__nav-link:hover::after,
.tko-header__nav-link:focus::after,
.tko-header__nav-link:focus-visible::after {
	background: var(--tko-accent, #ffc133);
}


/* === 1.7.43 — spójna typografia headera ================================= */
.tko-header,.tko-mobile-nav,.tko-player-panel { font-family:var(--tko-font-primary) !important; }
.tko-header__brand-text { font-size:var(--tko-type-item-title-size) !important;font-weight:var(--tko-type-item-title-weight) !important;line-height:var(--tko-type-item-title-line) !important;letter-spacing:var(--tko-type-item-title-track) !important; }
.tko-header__brand-text--full { font-size:var(--tko-type-micro-size) !important;font-weight:var(--tko-type-micro-weight) !important;line-height:var(--tko-type-micro-line) !important;letter-spacing:var(--tko-type-micro-track) !important; }
.tko-header__sound-label { font-size:var(--tko-type-eyebrow-size) !important;font-weight:var(--tko-type-eyebrow-weight) !important;line-height:var(--tko-type-eyebrow-line) !important;letter-spacing:var(--tko-type-eyebrow-track) !important;text-transform:uppercase !important; }
.tko-header__desktop-nav a,.tko-header__menu-button,.tko-panel__close { font-size:var(--tko-type-body-size) !important;font-weight:var(--tko-fw-medium) !important;line-height:1.35 !important;letter-spacing:0 !important; }
.tko-mobile-nav__links a { font-size:var(--tko-type-statement-size) !important;font-weight:var(--tko-type-statement-weight) !important;line-height:var(--tko-type-statement-line) !important;letter-spacing:var(--tko-type-statement-track) !important; }
.tko-panel__head { font-size:var(--tko-type-eyebrow-size) !important;font-weight:var(--tko-type-eyebrow-weight) !important;line-height:var(--tko-type-eyebrow-line) !important;letter-spacing:var(--tko-type-eyebrow-track) !important;text-transform:uppercase !important; }
.tko-player-panel__current { font-size:var(--tko-type-item-title-size) !important;font-weight:var(--tko-type-item-title-weight) !important;line-height:var(--tko-type-item-title-line) !important;letter-spacing:var(--tko-type-item-title-track) !important; }
.tko-player-panel__track span { font-size:var(--tko-type-body-size) !important;font-weight:var(--tko-type-body-weight) !important;line-height:var(--tko-type-body-line) !important;letter-spacing:var(--tko-type-body-track) !important; }
/**
 * TKO Footer — 1.7.38
 * Minimal: logo + nawigacja / firma + polityka + autor strony.
 */

.tko-footer {
	min-height: 0 !important;
	background: var(--tko-white);
	color: var(--tko-black);
	padding-block: clamp(30px, 4vw, 58px) 20px;
	border-top: 1px solid var(--tko-border-on-light);
	isolation: isolate;
}

.tko-footer::before,
.tko-footer::after {
	display: none !important;
}

.tko-footer > .tko-section__inner {
	display: block;
	min-height: 0;
}

.tko-footer__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
}

.tko-footer__brand {
	display: inline-flex;
	align-items: center;
	flex: 0 1 auto;
	min-width: 0;
	max-width: min(42vw, 360px);
	color: inherit;
	text-decoration: none;
}

/*
 * Logo ma własny, ograniczony slot. Naturalne wymiary pliku (także ogromnego
 * PNG/SVG) nigdy nie biorą udziału w wyliczaniu layoutu footera.
 */
.tko-footer__logo-frame {
	display: grid;
	place-items: center start;
	width: min(var(--tko-footer-logo-width, 180px), 42vw);
	height: clamp(24px, var(--tko-footer-logo-height, 48px), 72px);
	max-width: 100%;
	overflow: hidden;
	line-height: 0;
	flex: 0 0 auto;
}

.tko-footer__logo {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	min-width: 0 !important;
	max-width: 100% !important;
	min-height: 0 !important;
	max-height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	object-fit: contain;
	object-position: left center;
}

.tko-footer__brand-text {
	font-family: var(--tko-font-primary);
	font-size: clamp(1.15rem, 0.95rem + 0.7vw, 1.55rem);
	font-weight: 600;
	line-height: 1;
	letter-spacing: -0.03em;
}

.tko-footer__nav {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 10px clamp(18px, 2vw, 32px);
}

.tko-footer__nav-link,
.tko-footer__meta-link,
.tko-footer__company {
	font-family: var(--tko-font-primary);
	font-size: clamp(0.78rem, 0.74rem + 0.12vw, 0.88rem);
	line-height: 1.25;
}

.tko-footer__nav-link,
.tko-footer__meta-link {
	color: inherit;
	text-decoration: none;
	transition: color 180ms ease, opacity 180ms ease;
}

.tko-footer__nav-link:hover,
.tko-footer__nav-link:focus-visible,
.tko-footer__meta-link:hover,
.tko-footer__meta-link:focus-visible {
	color: var(--tko-accent);
	outline: none;
}

.tko-footer__nav-link.is-disabled,
.tko-footer__meta-link.is-disabled {
	opacity: 0.48;
	cursor: default;
}

.tko-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px 32px;
	margin-top: clamp(52px, 7vw, 96px);
	padding-top: 16px;
	border-top: 1px solid var(--tko-border-on-light);
}

.tko-footer__company {
	color: var(--tko-gray-700);
}

.tko-footer__meta {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
	gap: 12px 26px;
}

/* Stare elementy nie są już renderowane, ale chowamy je także w podglądzie
   Elementora/cache, aby stopka nie odziedziczyła dawnego dużego layoutu. */
.tko-footer__main,
.tko-footer__lead,
.tko-footer__column,
.tko-footer__cta,
.tko-footer__status,
.tko-footer__legal,
.tko-footer__bottom-end,
.tko-footer__to-top,
.tko-footer__wordmark,
.tko-footer__closing,
.tko-footer__directory {
	display: none !important;
}

@media (max-width: 767px) {
	.tko-footer {
		padding-block: 28px 18px;
	}

	.tko-footer__top {
		align-items: flex-start;
		flex-direction: column;
		gap: 28px;
	}

	.tko-footer__nav {
		justify-content: flex-start;
		gap: 10px 20px;
	}

	.tko-footer__brand {
		max-width: 78vw;
	}

	.tko-footer__logo-frame {
		width: min(var(--tko-footer-logo-width, 150px), 78vw);
	}

	.tko-footer__bottom {
		align-items: flex-start;
		flex-direction: column;
		margin-top: 48px;
		gap: 14px;
	}

	.tko-footer__meta {
		justify-content: flex-start;
		gap: 10px 20px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tko-footer__nav-link,
	.tko-footer__meta-link {
		transition: none;
	}
}


/* === 1.7.43 — spójna typografia minimalistycznego footera =============== */
.tko-footer,.tko-footer a,.tko-footer button { font-family:var(--tko-font-primary) !important; }
.tko-footer__brand-text { font-size:var(--tko-type-item-title-size) !important;font-weight:var(--tko-type-item-title-weight) !important;line-height:var(--tko-type-item-title-line) !important;letter-spacing:var(--tko-type-item-title-track) !important; }
.tko-footer__nav a,.tko-footer__company,.tko-footer__meta a { font-size:var(--tko-type-meta-size) !important;line-height:var(--tko-type-meta-line) !important;letter-spacing:var(--tko-type-meta-track) !important; }
.tko-footer__nav a,.tko-footer__meta a { font-weight:var(--tko-fw-medium) !important; }
.tko-footer__company { font-weight:var(--tko-fw-regular) !important; }
/**
 * TKO Orkiestra — Hero.
 * Struktura 1:1 z Figmą, przepisana na fluid/mobile-first:
 *  - .tko-hero__bg          -> full-bleed tło (video/image), opcjonalne,
 *                              domyślnie opacity:0 -> kontrakt z preloaderem
 *  - .tko-hero__top         -> eyebrow + karta, wewnątrz automatycznego
 *                              kontenera z marginesami (tko_open_container())
 *  - .tko-hero__marquee     -> pętlący się w lewo duży nagłówek (dekoracyjny,
 *                              prawdziwy <h1> jest osobno, visually-hidden)
 */


/* Elementor opakowuje widget we własny .elementor-widget-container. Podczas
   pinowania to wrapper jest elementem pozostającym w normalnym flow, dlatego
   musi od pierwszej klatki zachować dokładnie tę samą wysokość co Hero. Bez
   tego krótkie przeliczenie ScrollTriggera mogło odsłonić sekcję poniżej. */
.elementor-widget-tko-hero > .elementor-widget-container {
	min-height: var(--tko-viewport-height, 100vh);
	background: var(--tko-black);
}

.tko-hero {
	position: relative;
	width: 100%;
	margin: 0;
	/* Jedno źródło wysokości od pierwszej klatki. Zmienna jest ustawiana
	   krytycznym skryptem w <head>; fallback nie wymaga późnego JS. */
	min-height: var(--tko-viewport-height, 100vh);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	background: var(--tko-black);
	overflow: hidden;
	color: var(--tko-white);
}

/* === Tło (opcjonalne) ================================================== */

.tko-hero__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	opacity: 0; /* kontrakt z preloaderem */
	background-color: var(--tko-black);
	background-image: var(--tko-hero-poster, none);
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}

.tko-hero__bg-media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.tko-hero__bg--video .tko-hero__bg-media {
	opacity: 0;
	transition: opacity 0.28s var(--tko-ease);
	background: transparent;
}

/* Gotowa klatka pozostaje widoczna również wtedy, gdy film został
   celowo zapauzowany poza viewportem. Po powrocie play() może ruszyć w
   następnej klatce bez czarnego mignięcia i bez utraty tła Hero. */
.tko-hero__bg--video.is-video-ready .tko-hero__bg-media,
.tko-hero__bg--video.is-video-playing .tko-hero__bg-media {
	opacity: 1;
	visibility: visible;
}

.tko-hero__bg--video.is-video-fallback .tko-hero__bg-media {
	opacity: 0;
}

/* Preloader steruje opacity Hero tylko podczas aktywnego intro. Po jego
   zamknięciu żaden pozostawiony inline style ani przerwany tween nie może
   ponownie ukryć całej warstwy tła. */
html:not([data-tko-preloader-active])
	.tko-hero__bg[data-tko-hero-visual] {
	opacity: 1 !important;
	visibility: visible !important;
}

.tko-hero__bg-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15, 14, 14, 0.15) 0%, rgba(15, 14, 14, 0.55) 100%);
}

/* === Górna część: eyebrow + karta ====================================== */

.tko-hero__top {
	position: relative;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
	gap: var(--tko-space-lg);
	padding-top: var(--tko-space-xl);
}

.tko-hero__eyebrow {
	font-weight: var(--tko-fw-semibold);
	font-size: var(--tko-widget-body, var(--tko-fs-body));
	line-height: 0.93;
	letter-spacing: var(--tko-tracking-tighter);
	color: var(--tko-white);
	white-space: nowrap;
}

.tko-hero__card {
	display: flex;
	flex-direction: column;
	gap: var(--tko-space-md);
	width: min(340px, 100%);
	/* Karta zawsze kotwiczy się do prawej krawędzi. Dzięki temu usunięcie
	   eyebrow nie zmienia jej pozycji ani szerokości. */
	margin-inline-start: auto;
}

.tko-hero__card-image-frame {
	position: relative;
	width: 100%;
	aspect-ratio: 340 / 260;
	overflow: hidden;
	background-color: var(--tko-black-soft);
	border-radius: var(--tko-radius-sm);
	isolation: isolate;
}

.tko-hero__card-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	background-color: var(--tko-black-soft);
	background-size: cover;
	background-position: center;
	border-radius: inherit;
	transform-origin: center center;
}

/* Stan pierwszej klatki niezależnej animacji obrazu. Klasa tko-js jest
   dodawana synchronicznie w <head>, więc obraz nie zdąży pojawić się przed
   inicjalizacją GSAP. Bez JavaScript obraz pozostaje normalnie widoczny. */
html.tko-js .tko-hero__card-image[data-tko-hero-image-reveal]:not(.is-revealed) {
	opacity: 0;
	will-change: transform, opacity, clip-path;
}

html.tko-js .tko-hero__card-image[data-tko-image-effect='fade-scale']:not(.is-revealed) {
	transform: scale(var(--tko-hero-image-scale, 1.08));
}

html.tko-js .tko-hero__card-image[data-tko-image-effect='zoom-out']:not(.is-revealed) {
	transform: scale(1.14);
}

html.tko-js .tko-hero__card-image[data-tko-image-effect='slide-up']:not(.is-revealed) {
	transform: translate3d(0, var(--tko-hero-image-distance, 36px), 0);
}

html.tko-js .tko-hero__card-image[data-tko-image-effect='slide-left']:not(.is-revealed) {
	transform: translate3d(var(--tko-hero-image-distance, 36px), 0, 0);
}

html.tko-js .tko-hero__card-image[data-tko-image-effect='clip-up']:not(.is-revealed) {
	opacity: 1;
	-webkit-clip-path: inset(100% 0 0 0);
	clip-path: inset(100% 0 0 0);
	transform: scale(var(--tko-hero-image-scale, 1.08));
}

html.tko-js .tko-hero__card-image[data-tko-image-effect='clip-left']:not(.is-revealed) {
	opacity: 1;
	-webkit-clip-path: inset(0 0 0 100%);
	clip-path: inset(0 0 0 100%);
	transform: scale(var(--tko-hero-image-scale, 1.08));
}

.tko-hero__card-heading,
.tko-hero__card-text {
	margin: 0;
	font-weight: var(--tko-fw-regular);
	line-height: 1.1;
	letter-spacing: var(--tko-tracking-tighter);
	color: var(--tko-white);
}

.tko-hero__card-heading { font-size: var(--tko-widget-h3, 1rem); }
.tko-hero__card-text { font-size: var(--tko-widget-body, 1rem); }



/* === Marquee — pętlący się nagłówek ==================================== */

/*
 * WYDAJNOŚĆ: `mask-image` na kontenerze + ciągła animacja dziecka to
 * klasyczna kombinacja, która na części GPU/przeglądarek (zwłaszcza
 * mobile Safari) nie dostaje własnej, izolowanej warstwy kompozytora —
 * przez co maska bywa przeliczana w software przy KAŻDEJ klatce animacji
 * potomka, zamiast raz. `transform: translateZ(0)` + `contain: paint`
 * to jawna podpowiedź dla przeglądarki: "to jest osobna warstwa, nie
 * przeliczaj tego, co poza nią" — odizolowuje repaint do samego marquee,
 * zamiast ryzykować, że wpłynie na resztę Hero przy każdej klatce.
 */
.tko-hero__marquee {
	position: relative;
	z-index: 1;
	overflow: hidden;
	padding-block: var(--tko-space-md) var(--tko-space-lg);
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%);
	transform: translateZ(0);
	contain: paint;
}

.tko-hero__marquee-track {
	--tko-marquee-duration: 32s;
	display: flex;
	width: max-content;
	will-change: transform;
	transform: translateZ(0);
	animation: tko-marquee var(--tko-marquee-duration) linear infinite;
	animation-play-state: paused; /* start/stop steruje tko-hero.js — po preloaderze ORAZ w zależności od widoczności Hero (patrz komentarz w JS: pauza poza viewportem to główna oszczędność przy scrollu) */
}

.tko-hero__marquee-track.is-playing {
	animation-play-state: running;
}

.tko-hero__marquee-group {
	flex: none;
	white-space: nowrap;
	font-family: var(--tko-font-primary);
	font-weight: var(--tko-fw-regular);
	font-size: var(--tko-widget-h1, var(--tko-fs-marquee));
	line-height: 0.93;
	letter-spacing: var(--tko-tracking-tighter);
	color: var(--tko-white);
}

@keyframes tko-marquee {
	from {
		transform: translate3d(0, 0, 0);
	}
	to {
		transform: translate3d(-50%, 0, 0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.tko-hero__marquee-track {
		animation: none;
	}
}

/* === Deterministyczna sekwencja Hero =====================================
   Stan pending istnieje już w HTML, zanim uruchomi się JS. Zapobiega to
   pojedynczej klatce z gotową treścią przed ustawieniem timeline'u. */

html.tko-js
	.tko-hero[data-tko-hero-sequence-state="pending"]
	.tko-hero__marquee,
html.tko-js
	.tko-hero[data-tko-hero-sequence-state="pending"]
	.tko-hero__eyebrow,
html.tko-js
	.tko-hero[data-tko-hero-sequence-state="pending"]
	.tko-hero__card-image,
html.tko-js
	.tko-hero[data-tko-hero-sequence-state="pending"]
	.tko-hero__card-heading,
html.tko-js
	.tko-hero[data-tko-hero-sequence-state="pending"]
	.tko-hero__card-text {
	opacity: 0;
}

.tko-hero[data-tko-hero-sequence-state="ready"]
	.tko-hero__marquee-track {
	animation-play-state: paused;
}

.tko-hero[data-tko-hero-sequence-state="playing"] {
	--tko-hero-sequence-active: 1;
}

@media (prefers-reduced-motion: reduce) {
	html.tko-js
		.tko-hero[data-tko-hero-sequence-state]
		.tko-hero__marquee,
	html.tko-js
		.tko-hero[data-tko-hero-sequence-state]
		.tko-hero__eyebrow,
	html.tko-js
		.tko-hero[data-tko-hero-sequence-state]
		.tko-hero__card-image,
	html.tko-js
		.tko-hero[data-tko-hero-sequence-state]
		.tko-hero__card-heading,
	html.tko-js
		.tko-hero[data-tko-hero-sequence-state]
		.tko-hero__card-text {
		opacity: 1;
		transform: none;
		filter: none;
		clip-path: none;
	}
}


/* === 1.7.43 — spójna typografia Hero ==================================== */
.tko-hero,.tko-hero button,.tko-hero a { font-family:var(--tko-font-primary) !important; }
.tko-hero__eyebrow { font-size:var(--tko-type-eyebrow-size) !important;font-weight:var(--tko-type-eyebrow-weight) !important;line-height:var(--tko-type-eyebrow-line) !important;letter-spacing:var(--tko-type-eyebrow-track) !important;text-transform:uppercase !important; }
.tko-hero__card-heading { font-size:var(--tko-type-item-title-size) !important;font-weight:var(--tko-type-item-title-weight) !important;line-height:var(--tko-type-item-title-line) !important;letter-spacing:var(--tko-type-item-title-track) !important; }
.tko-hero__card-text { font-size:var(--tko-type-body-size) !important;font-weight:var(--tko-type-body-weight) !important;line-height:var(--tko-type-body-line) !important;letter-spacing:var(--tko-type-body-track) !important; }
.tko-hero__marquee { font-size:var(--tko-fs-marquee) !important;font-weight:var(--tko-type-display-weight) !important;line-height:var(--tko-type-display-line) !important;letter-spacing:var(--tko-type-display-track) !important; }
/**
 * TKO Orkiestra — sekcja osób stojących za projektem.
 * Domyślnie responsywna galeria wszystkich portretów; opcjonalnie karuzela.
 * Zdjęcia są monochromatyczne, a kolor wraca na hover, focus lub tap.
 */

.tko-orchestra {
	padding-block: var(--tko-space-2xl) var(--tko-space-xl);
	background: var(--tko-bg);
	color: var(--tko-fg);
	overflow: hidden; /* trzyma drag karuzeli w obrębie sekcji, bez poziomego scrolla strony */
}

/* === Duże hasło (opcjonalne, nad nagłówkiem/karuzelą) =====================
   Odsłania się słowo po słowie — patrz `initStatement()` w tko-orchestra.js.
   Progresywne wzbogacanie: `html.tko-js` jest dodawana synchronicznie w
   <head> (patrz class-tko-assets.php -> print_critical_layout_bootstrap),
   więc bez JS/przy błędzie ładowania GSAP tekst jest od razu w pełni
   widoczny — nigdy nie zostaje trwale ukryty. */

.tko-orchestra__statement {
	margin: 0 0 var(--tko-space-xl);
	max-width: 62rem;
	font-weight: var(--tko-fw-medium);
	font-size: clamp(2.25rem, 1.1rem + 5vw, 5.5rem);
	line-height: 1.04;
	letter-spacing: var(--tko-tracking-tighter);
	color: var(--tko-fg);
}

.tko-orchestra__statement-word {
	display: inline-block;
	vertical-align: baseline;
	backface-visibility: hidden;
}

html.tko-js .tko-orchestra__statement:not(.is-revealed) .tko-orchestra__statement-word {
	opacity: 0;
	transform: translateY(22px);
	filter: blur(6px);
}

html.tko-js .tko-orchestra__statement.is-revealed .tko-orchestra__statement-word {
	opacity: 1;
	transform: none;
	filter: none;
}


@media (hover: none), (pointer: coarse), (max-width: 767px) {
	html.tko-js .tko-orchestra__statement:not(.is-revealed) .tko-orchestra__statement-word {
		transform: translateY(16px);
		filter: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	html.tko-js .tko-orchestra__statement:not(.is-revealed) .tko-orchestra__statement-word,
	html.tko-js .tko-orchestra__statement.is-revealed .tko-orchestra__statement-word {
		opacity: 1;
		transform: none;
		filter: none;
	}
}

/* === Nagłówek ============================================================ */

.tko-orchestra__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--tko-space-lg);
	margin-bottom: var(--tko-space-lg);
}

.tko-orchestra__head-col {
	display: flex;
	flex-direction: column;
	gap: var(--tko-space-xs);
	flex: 1 1 320px;
}

.tko-orchestra__eyebrow {
	display: inline-flex;
	font-size: var(--tko-fs-small);
	font-weight: var(--tko-fw-medium);
	letter-spacing: var(--tko-tracking-wide);
	text-transform: uppercase;
	color: var(--tko-gray-500);
}

.tko-orchestra__heading {
	margin: 0;
	font-weight: var(--tko-fw-medium);
	font-size: var(--tko-widget-h2, var(--tko-fs-h2));
	line-height: var(--tko-lh-tight);
	letter-spacing: var(--tko-tracking-tighter);
	color: var(--tko-fg);
}

.tko-orchestra__intro {
	margin: 0;
	max-width: 40ch;
	flex: 1 1 280px;
	font-size: var(--tko-widget-body, var(--tko-fs-body-lg));
	line-height: var(--tko-lh-body);
	color: var(--tko-white-soft);
}

/* === Karuzela ============================================================= */

.tko-orchestra__carousel {
	position: relative;
	outline: none;
	max-width: 100%;
	overflow-x: clip;
}

.tko-orchestra__track {
	display: flex;
	gap: var(--tko-space-md);
	cursor: grab;
	touch-action: pan-y;
	user-select: none;
	will-change: auto;
}

.tko-orchestra__track.is-dragging {
	cursor: grabbing;
}

.tko-orchestra__slide {
	flex: 0 0 auto;
	width: clamp(200px, 24vw, 320px);
	display: flex;
	flex-direction: column;
	gap: var(--tko-space-xs);
}

.tko-orchestra--compact .tko-orchestra__slide {
	width: clamp(160px, 18vw, 240px);
}

.tko-orchestra--large .tko-orchestra__slide {
	width: clamp(240px, 30vw, 420px);
}

.tko-orchestra__portrait {
	position: relative;
	width: 100%;
	aspect-ratio: 3 / 4;
	border-radius: var(--tko-radius-md);
	overflow: hidden;
	background: var(--tko-black-soft);
	border: 1px solid var(--tko-border);
}

.tko-orchestra__portrait img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: grayscale(1) contrast(1.05);
	transform: scale(1.001); /* unika subpikselowej krawędzi przy filter+radius w niektórych przeglądarkach */
	transition: opacity 0.5s var(--tko-ease-out-soft), filter 0.7s var(--tko-ease-out-soft), transform 0.8s var(--tko-ease-out-soft);
	pointer-events: none;
	backface-visibility: hidden;
}

.tko-orchestra__portrait.has-preview-video {
	cursor: pointer;
	isolation: isolate;
}

.tko-orchestra__portrait.has-preview-video:focus-visible {
	outline: 1px solid currentColor;
	outline-offset: 4px;
}

.tko-orchestra__portrait.has-preview-video:is(:hover, :focus-visible, .is-preview-loading, .is-previewing) img,
.tko-orchestra__portrait.has-preview-video:is(:hover, :focus-visible, .is-preview-loading, .is-previewing) .tko-orchestra__portrait-video {
	will-change: opacity, transform;
}

.tko-orchestra__portrait-video {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transform: scale(1.025);
	filter: saturate(0.94) contrast(1.02);
	transition: opacity 0.48s var(--tko-ease-out-soft), transform 0.8s var(--tko-ease-out-soft);
	pointer-events: none;
	backface-visibility: hidden;
}

.tko-orchestra__portrait.has-preview-video::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 3;
	background: linear-gradient(180deg, transparent 62%, rgba(12, 11, 11, 0.22));
	opacity: 0;
	transition: opacity 0.45s var(--tko-ease-out-soft);
	pointer-events: none;
}

.tko-orchestra__portrait.is-preview-loading::before {
	content: '';
	position: absolute;
	z-index: 4;
	left: 50%;
	top: 50%;
	width: 1.6rem;
	height: 1.6rem;
	margin: -0.8rem 0 0 -0.8rem;
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-top-color: rgba(255, 255, 255, 0.9);
	border-radius: 50%;
	animation: tko-orchestra-preview-spin 0.8s linear infinite;
}

@keyframes tko-orchestra-preview-spin {
	to { transform: rotate(360deg); }
}

.tko-orchestra__slide.is-active .tko-orchestra__portrait:not(.is-previewing) img,
.tko-orchestra__portrait:not(.has-preview-video):hover img,
.tko-orchestra__portrait.has-preview-video:focus-visible:not(.is-previewing) img {
	filter: grayscale(0) contrast(1);
	transform: scale(1.04);
}

.tko-orchestra__portrait.is-previewing img,
.tko-orchestra__portrait.is-previewing .tko-orchestra__portrait-placeholder {
	opacity: 0;
	transform: scale(1.045);
}

.tko-orchestra__portrait.is-previewing .tko-orchestra__portrait-video {
	opacity: 1;
	transform: scale(1.001);
}

.tko-orchestra__portrait.is-previewing::after {
	opacity: 1;
}

.tko-orchestra__portrait-placeholder {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: clamp(2.5rem, 6vw, 4rem);
	font-weight: var(--tko-fw-semibold);
	color: var(--tko-gray-500);
}

.tko-orchestra__caption {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
}

.tko-orchestra__name {
	font-size: var(--tko-fs-body-lg);
	font-weight: var(--tko-fw-medium);
	color: var(--tko-fg);
	letter-spacing: var(--tko-tracking-tight);
}

.tko-orchestra__instrument {
	font-size: var(--tko-fs-body);
	color: var(--tko-white-soft);
}

.tko-orchestra__section-label {
	font-size: var(--tko-fs-small);
	color: var(--tko-gray-500);
	text-transform: uppercase;
	letter-spacing: var(--tko-tracking-wide);
}

/* === Galeria ==============================================================
   Wszystkie osoby są widoczne jednocześnie. Nie ma track transform, klonów,
   licznika ani oczekiwania na następny slajd. */

.tko-orchestra--gallery {
	overflow: visible;
}

.tko-orchestra--gallery .tko-orchestra__carousel {
	overflow: visible;
}

.tko-orchestra--gallery .tko-orchestra__track {
	display: grid;
	grid-template-columns: repeat(
		auto-fit,
		minmax(min(100%, 220px), 1fr)
	);
	gap: clamp(1rem, 2vw, 1.75rem);
	cursor: default;
	touch-action: auto;
	user-select: auto;
	transform: none !important;
	will-change: auto !important;
}

.tko-orchestra--gallery.tko-orchestra--compact .tko-orchestra__track {
	grid-template-columns: repeat(
		auto-fit,
		minmax(min(100%, 180px), 1fr)
	);
}

.tko-orchestra--gallery.tko-orchestra--large .tko-orchestra__track {
	grid-template-columns: repeat(
		auto-fit,
		minmax(min(100%, 280px), 1fr)
	);
}

.tko-orchestra--gallery .tko-orchestra__slide,
.tko-orchestra--gallery.tko-orchestra--compact .tko-orchestra__slide,
.tko-orchestra--gallery.tko-orchestra--large .tko-orchestra__slide {
	width: auto;
	min-width: 0;
}

.tko-orchestra--gallery .tko-orchestra__slide:focus-visible {
	outline: 1px solid currentColor;
	outline-offset: 5px;
}

/* W galerii żaden element nie jest kolorowy tylko dlatego, że wcześniej
   posiadał klasę is-active z karuzeli. */
.tko-orchestra--gallery
	.tko-orchestra__slide.is-active
	.tko-orchestra__portrait:not(.is-previewing)
	img {
	filter: grayscale(1) contrast(1.05);
	transform: scale(1.001);
}

.tko-orchestra--gallery
	.tko-orchestra__slide:is(
		:hover,
		:focus,
		:focus-within,
		.is-color-active
	)
	.tko-orchestra__portrait:not(.is-previewing)
	img {
	filter: grayscale(0) contrast(1);
	transform: scale(1.035);
}

.tko-orchestra--gallery .tko-orchestra__controls {
	display: none;
}

@media (max-width: 767px) {
	.tko-orchestra--gallery .tko-orchestra__track,
	.tko-orchestra--gallery.tko-orchestra--compact .tko-orchestra__track,
	.tko-orchestra--gallery.tko-orchestra--large .tko-orchestra__track {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0.85rem;
	}

	.tko-orchestra--gallery .tko-orchestra__caption {
		gap: 0.08rem;
	}

	.tko-orchestra--gallery .tko-orchestra__name {
		font-size: var(--tko-fs-body);
	}
}

@media (max-width: 460px) {
	.tko-orchestra--gallery .tko-orchestra__track,
	.tko-orchestra--gallery.tko-orchestra--compact .tko-orchestra__track,
	.tko-orchestra--gallery.tko-orchestra--large .tko-orchestra__track {
		grid-template-columns: 1fr;
	}
}

/* === Kontrolki (strzałki / licznik / progress) =========================== */

.tko-orchestra__controls {
	display: flex;
	align-items: center;
	gap: var(--tko-space-sm);
	margin-top: var(--tko-space-lg);
}

.tko-orchestra__arrow {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	border: 1px solid var(--tko-border);
	color: var(--tko-fg);
	background: transparent;
	transition: background var(--tko-dur-fast) var(--tko-ease), border-color var(--tko-dur-fast) var(--tko-ease);
}


.tko-orchestra__arrow:disabled,
.tko-orchestra__arrow[aria-disabled="true"] {
	opacity: 0.32;
	cursor: default;
	pointer-events: none;
}

.tko-orchestra__arrow:hover,
.tko-orchestra__arrow:focus-visible {
	background: var(--tko-white-soft);
	color: var(--tko-black);
	border-color: transparent;
}

.tko-orchestra__progress {
	position: relative;
	flex: 1 1 auto;
	height: 1px;
	background: var(--tko-border);
}

.tko-orchestra__progress-fill {
	position: absolute;
	inset-block: 0;
	left: 0;
	width: 100%;
	background: var(--tko-fg);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.65s var(--tko-ease-out-soft);
	will-change: transform;
}

.tko-orchestra__counter {
	flex: 0 0 auto;
	font-variant-numeric: tabular-nums;
	font-size: var(--tko-fs-small);
	letter-spacing: var(--tko-tracking-wide);
	color: var(--tko-white-soft);
	min-width: 4.5rem;
	text-align: right;
}

@media (max-width: 640px) {
	.tko-orchestra__controls {
		flex-wrap: wrap;
	}
	.tko-orchestra__progress {
		order: 1;
		flex-basis: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tko-orchestra__portrait img,
	.tko-orchestra__portrait-video,
	.tko-orchestra__progress-fill {
		transition: none !important;
		animation: none !important;
		transform: none !important;
	}
	.tko-orchestra__portrait-video { display: none; }
}

/* === 1.6.18.22.9 — O nas / galeria zespołu ============================== */

.tko-orchestra {
	padding-block: clamp(5rem, 9vw, 9rem);
}

.tko-orchestra__head {
	align-items: flex-start;
	margin-bottom: clamp(2rem, 4vw, 4rem);
}

.tko-orchestra__heading {
	max-width: 12ch;
	font-size: clamp(3rem, 7vw, 7rem);
	line-height: 0.91;
	letter-spacing: -0.055em;
}

.tko-orchestra__intro {
	max-width: 34rem;
	padding-top: 0.45rem;
	line-height: 1.35;
}

.tko-orchestra--gallery .tko-orchestra__portrait {
	border-radius: clamp(0.45rem, 1vw, 0.9rem);
	border-color: rgba(252, 252, 246, 0.14);
}

.tko-orchestra--gallery .tko-orchestra__slide {
	transform-origin: 50% 70%;
}

.tko-orchestra__description {
	display: grid;
	grid-template-columns: minmax(150px, 0.75fr) minmax(0, 2.25fr);
	gap: clamp(2rem, 7vw, 8rem);
	align-items: start;
	margin-top: clamp(4rem, 8vw, 8rem);
	padding-top: clamp(1.5rem, 3vw, 2.5rem);
	border-top: 1px solid rgba(252, 252, 246, 0.2);
}

.tko-orchestra__description-label {
	font-size: 0.75rem;
	font-weight: var(--tko-fw-medium);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--tko-gray-500);
}

.tko-orchestra__description-copy {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1.5rem, 4vw, 4rem);
}

.tko-orchestra__description-copy p {
	margin: 0;
	font-size: clamp(1.15rem, 1rem + 0.7vw, 1.75rem);
	line-height: 1.35;
	letter-spacing: -0.025em;
	color: var(--tko-fg);
}

@media (max-width: 767px) {
	.tko-orchestra {
		padding-block: 4.25rem;
	}

	.tko-orchestra__heading {
		font-size: clamp(2.75rem, 14vw, 4.6rem);
	}

	.tko-orchestra__description {
		grid-template-columns: 1fr;
		gap: 1.25rem;
		margin-top: 3.5rem;
	}

	.tko-orchestra__description-copy {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}

	.tko-orchestra__description-copy p {
		font-size: 1.125rem;
	}
}

/* Reveal zamykający sekcję „Kto tworzy projekt”.
   Korzysta z tego samego initStatement() i tej samej animacji słowo po
   słowie, która była używana we wcześniejszej wersji wtyczki. */
.tko-orchestra__statement--closing {
	margin:
		clamp(4rem, 8vw, 8rem)
		0
		0;
	padding-top: clamp(1.75rem, 4vw, 3.5rem);
	max-width: 68rem;
	border-top: 1px solid rgba(252, 252, 246, 0.22);
	color: var(--tko-white);
	font-size: clamp(2.25rem, 1.1rem + 5vw, 5.5rem);
	line-height: 1.04;
	letter-spacing: var(--tko-tracking-tighter);
}

@media (max-width: 700px) {
	.tko-orchestra__statement--closing {
		margin-top: 4rem;
		font-size: clamp(2rem, 10vw, 3.8rem);
	}
}


/* === 1.7.43 — kanoniczna typografia: wzorzec całej wtyczki ============== */
.tko-orchestra,
.tko-orchestra button,
.tko-orchestra a { font-family: var(--tko-font-primary) !important; }
.tko-orchestra__eyebrow { font-size:var(--tko-type-eyebrow-size) !important;font-weight:var(--tko-type-eyebrow-weight) !important;line-height:var(--tko-type-eyebrow-line) !important;letter-spacing:var(--tko-type-eyebrow-track) !important;text-transform:uppercase !important; }
.tko-orchestra__heading { font-size:var(--tko-type-display-size) !important;font-weight:var(--tko-type-display-weight) !important;line-height:var(--tko-type-display-line) !important;letter-spacing:var(--tko-type-display-track) !important; }
.tko-orchestra__intro { font-size:var(--tko-type-lead-size) !important;font-weight:var(--tko-type-lead-weight) !important;line-height:var(--tko-type-lead-line) !important;letter-spacing:var(--tko-type-lead-track) !important; }
.tko-orchestra__name { font-size:var(--tko-type-item-title-size) !important;font-weight:var(--tko-type-item-title-weight) !important;line-height:var(--tko-type-item-title-line) !important;letter-spacing:var(--tko-type-item-title-track) !important; }
.tko-orchestra__instrument { font-size:var(--tko-type-body-size) !important;font-weight:var(--tko-type-body-weight) !important;line-height:var(--tko-type-body-line) !important;letter-spacing:var(--tko-type-body-track) !important; }
.tko-orchestra__section-label,.tko-orchestra__counter { font-size:var(--tko-type-eyebrow-size) !important;font-weight:var(--tko-type-meta-weight) !important;line-height:var(--tko-type-meta-line) !important;letter-spacing:var(--tko-type-eyebrow-track) !important; }
.tko-orchestra__description-label { font-size:var(--tko-type-micro-size) !important;font-weight:var(--tko-type-micro-weight) !important;line-height:var(--tko-type-micro-line) !important;letter-spacing:var(--tko-type-micro-track) !important;text-transform:uppercase !important; }
.tko-orchestra__description-copy p { font-size:var(--tko-type-large-copy-size) !important;font-weight:var(--tko-type-large-copy-weight) !important;line-height:var(--tko-type-large-copy-line) !important;letter-spacing:var(--tko-type-large-copy-track) !important; }
.tko-orchestra__statement,.tko-orchestra__statement--closing { font-size:var(--tko-type-statement-size) !important;font-weight:var(--tko-type-statement-weight) !important;line-height:var(--tko-type-statement-line) !important;letter-spacing:var(--tko-type-statement-track) !important; }

.tko-orchestra .tko-orchestra__portrait-placeholder { font-weight:var(--tko-type-display-weight) !important;line-height:var(--tko-type-display-line) !important;letter-spacing:var(--tko-type-display-track) !important; }
/**
 * TKO — O nas / overlap cards.
 * Desktop: przypięty overlap kart. Mobile/tablet: zwykła responsywna kolumna
 * bez pinningu i transformacji układu. Widoczność mobilna jest fail-safe —
 * treść nie zależy od IntersectionObservera ani stanu animacji.
 */

.tko-about {
	padding-block: 0;
	background: var(--tko-white);
	overflow: clip;
}

.tko-about > .tko-section__inner {
	max-width: 1440px;
	padding-inline: clamp(1.25rem, 5.56vw, 5rem);
}

.tko-about__stack {
	position: relative;
	width: 100%;
}

.tko-about__card {
	position: relative;
	width: 100%;
	min-height: clamp(610px, 49.8vw, 717px);
	padding-top: clamp(3.75rem, 6.53vw, 5.875rem);
	background: var(--tko-white);
	color: var(--tko-black);
	border-radius: 0;
	transform-origin: 50% 0%;
}

.tko-about__card-media {
	width: 100%;
	aspect-ratio: 1280 / 280;
	min-height: 220px;
	background-color: #e8e8e1;
	background-position: center;
	background-size: cover;
	border-radius: 6px;
	overflow: hidden;
}

.tko-about__card-body {
	display: flex;
	flex-direction: column;
	gap: 2.6875rem;
	padding-block: 5rem;
}

.tko-about__card-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 2rem;
	min-height: 4rem;
	padding-top: 0;
}

.tko-about__card-heading {
	width: min(600px, 75%);
	margin: 0;
	font-family: var(--tko-font-primary);
	font-size: var(--tko-widget-h2, clamp(2rem, 1.72rem + 1.4vw, 2.625rem));
	font-weight: var(--tko-fw-medium);
	line-height: 0.98;
	letter-spacing: -0.04em;
	color: var(--tko-black);
}

.tko-about__card-icon {
	--tko-about-icon-bg: var(--tko-accent) !important;
	--tko-about-icon-ink: var(--tko-accent-ink) !important;
	flex: 0 0 auto;
	width: clamp(48px, 4.1vw, 59px);
	height: clamp(52px, 4.45vw, 64px);
}

.tko-about__card-icon img,
.tko-about__card-icon svg {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.tko-about__card-copy {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 406px));
	gap: 2.3125rem;
	width: min(849px, 100%);
}

.tko-about__card-copy p {
	margin: 0;
	font-family: var(--tko-font-primary);
	font-size: var(--tko-widget-body, 1.0625rem);
	font-weight: var(--tko-fw-regular);
	line-height: 1.1;
	letter-spacing: -0.04em;
	color: var(--tko-black);
}

/* Wysokość zdjęcia 280 px + dokładne 43 px do nagłówka z Figmy. */
.tko-about__card-media + .tko-about__card-body {
	gap: 2.6875rem;
}

.tko-about__card-head {
	margin-top: 0;
}

/* Fallback bez pinningu — fail-open. Karty są ukrywane dopiero wtedy,
   gdy JS skutecznie utworzył IntersectionObserver i nadał stan pending. */
html.tko-js .tko-about__stack.is-reveal-pending:not(.is-overlap-active) .tko-about__card {
	opacity: 0;
	transform: translate3d(0, 24px, 0);
}

.tko-about__stack.is-revealed:not(.is-overlap-active) .tko-about__card {
	opacity: 1;
	transform: none;
	transition: opacity 0.7s var(--tko-ease-out-soft), transform 0.7s var(--tko-ease-out-soft);
}

/* Pełny overlap działa wyłącznie na desktopie z precyzyjnym wskaźnikiem.
   Wysokość jest stabilizowana przez JS na czas desktopowego pinningu. */
.tko-about__stack.is-overlap-active {
	display: grid;
	min-height: max(clamp(610px, 49.8vw, 717px), var(--tko-overlap-viewport-height, 100svh));
	isolation: isolate;
	overflow: clip;
}

.tko-about__stack.is-overlap-active .tko-about__card {
	grid-area: 1 / 1;
	z-index: 1;
	min-height: inherit;
	opacity: 0;
	transform: translate3d(0, 44px, 0) scale(0.985);
	filter: blur(0);
	pointer-events: none;
	will-change: transform, opacity;
	backface-visibility: hidden;
	transition:
		opacity 0.58s var(--tko-ease-out-soft),
		transform 0.72s var(--tko-ease-out-soft),
		filter 0.48s var(--tko-ease-out-soft);
}

.tko-about__stack[data-tko-overlap-mode="cards"].is-overlap-active .tko-about__card {
	opacity: 1;
	transform: none;
	filter: none;
	transition: none;
}

.tko-about__stack.is-overlap-active .tko-about__card.is-active {
	z-index: 3;
	opacity: 1;
	transform: translate3d(0, 0, 0) scale(1);
	filter: blur(0);
	pointer-events: auto;
}

.tko-about__stack.is-overlap-active .tko-about__card.is-covered {
	z-index: 2;
	opacity: 0.28;
	transform: translate3d(0, -28px, 0) scale(0.975);
	filter: blur(2px);
}

@media (max-width: 1024px) {
	/*
	 * Mobile/tablet: About jest zwykłą sekcją dokumentu. Nawet jeżeli klasa
	 * `is-overlap-active` pozostałaby chwilowo po zmianie breakpointu, CSS
	 * defensywnie zeruje grid, wysokość viewportu, transformacje i warstwy.
	 */
	.tko-about {
		display: block;
		padding-block: 0;
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
		filter: none !important;
		clip-path: none !important;
		border-radius: 0 !important;
		overflow: visible;
	}

	.tko-about > .tko-section__inner {
		padding-inline: clamp(1rem, 4.5vw, 2.5rem);
	}

	.tko-about__stack,
	.tko-about__stack.is-overlap-active,
	.tko-about__stack.is-about-static {
		display: flex;
		flex-direction: column;
		place-items: initial;
		width: 100%;
		height: auto;
		min-height: 0;
		padding-block: clamp(1.5rem, 4vw, 2.5rem) clamp(3.5rem, 8vw, 5rem);
		gap: clamp(2rem, 6vw, 4rem);
		isolation: auto;
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
		filter: none !important;
		overflow: visible;
	}

	.tko-about__stack .tko-about__card,
	.tko-about__stack.is-overlap-active .tko-about__card,
	.tko-about__stack.is-overlap-active .tko-about__card.is-active,
	.tko-about__stack.is-overlap-active .tko-about__card.is-covered {
		position: relative;
		display: block;
		grid-area: auto;
		align-self: auto;
		justify-self: auto;
		z-index: auto;
		width: 100%;
		height: auto;
		min-height: 0;
		padding-top: 0;
		border-radius: 10px;
		opacity: 1 !important;
		visibility: visible !important;
		filter: none !important;
		transform: none !important;
		transform-origin: initial;
		pointer-events: auto;
		will-change: auto;
		overflow: hidden;
	}

	/*
	 * Mobilna widoczność jest fail-safe. Nawet jeśli w DOM pozostała klasa
	 * is-reveal-pending po starszym cache lub przerwanym observerze, karta
	 * pozostaje widoczna. Lekkie globalne reveale innych elementów nie są
	 * wyłączane — reset dotyczy tylko kart istniejącej sekcji About.
	 */
	html.tko-js .tko-about__stack.is-reveal-pending:not(.is-overlap-active) .tko-about__card,
	.tko-about__stack.is-revealed:not(.is-overlap-active) .tko-about__card,
	.tko-about__stack.is-about-static .tko-about__card {
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
		filter: none !important;
		transition: none;
	}

	.tko-about__card-media {
		width: 100%;
		min-height: 0;
		aspect-ratio: 16 / 7;
		border-radius: 8px;
	}

	.tko-about__card-body {
		gap: clamp(1.25rem, 3.5vw, 2rem);
		padding-block: clamp(1.25rem, 3.5vw, 2rem) clamp(1.75rem, 5vw, 3rem);
	}

	.tko-about__card-head {
		align-items: flex-start;
		gap: 1rem;
		min-height: 0;
	}

	.tko-about__card-heading {
		width: min(100%, 600px);
		font-size: clamp(1.75rem, 5.2vw, 2.4rem);
	}

	.tko-about__card-icon {
		width: clamp(42px, 7vw, 54px);
		height: clamp(46px, 7.6vw, 59px);
	}

	.tko-about__card-copy {
		width: 100%;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: clamp(1rem, 3vw, 2rem);
	}

	.tko-about__card-copy p {
		font-size: clamp(0.9rem, 2.2vw, 1rem);
		line-height: 1.25;
	}
}

@media (max-width: 700px) {
	.tko-about__card-media {
		aspect-ratio: 4 / 3;
	}

	.tko-about__card-heading {
		width: auto;
		font-size: clamp(1.6rem, 7vw, 2.15rem);
	}

	.tko-about__card-copy {
		grid-template-columns: 1fr;
		gap: 1rem;
	}

	.tko-about__card-copy p {
		font-size: clamp(0.9rem, 3.8vw, 1rem);
	}
}

@media (prefers-reduced-motion: reduce) {
	html.tko-js .tko-about__stack .tko-about__card,
	.tko-about__stack .tko-about__card {
		opacity: 1;
		transform: none;
		filter: none;
		transition: none;
	}
}

/* === Czytelniejszy overlap „O nas” =======================================
   Zachowujemy poprzedni układ i animację, zwiększając jedynie typografię
   oraz dekoracyjną grafikę po prawej stronie. */

.tko-about__card-heading {
	font-size: clamp(2.2rem, 1.8rem + 1.9vw, 3.4rem);
	line-height: 0.96;
}

.tko-about__card-copy p {
	font-size: clamp(1.05rem, 0.98rem + 0.34vw, 1.25rem);
	line-height: 1.24;
}

.tko-about__card-icon {
	width: clamp(72px, 6.4vw, 98px);
	height: clamp(78px, 6.9vw, 106px);
}

@media (max-width: 767px) {
	.tko-about__card-heading {
		font-size: clamp(2rem, 9vw, 3rem);
	}

	.tko-about__card-copy p {
		font-size: 1.08rem;
		line-height: 1.34;
	}

	.tko-about__card-icon {
		width: 72px;
		height: 78px;
	}
}

/* === 1.6.18.22.15 — wyższe zdjęcia About na desktopie ==================
   Zmiana dotyczy tylko desktopowego overlapu. Tablet i mobile zachowują
   wcześniejsze proporcje 16/7 oraz 4/3. */
@media (min-width: 1025px) {
	.tko-about__card-media {
		aspect-ratio: 1280 / 320;
		min-height: clamp(240px, 22vw, 320px);
	}
}

/* === 1.6.18.22.16 — tekst bliżej zdjęcia w About ========================
   Zmiana dotyczy tylko desktopu i nie narusza overlapu ani mobile. */
@media (min-width: 1025px) {
	.tko-about__card-body {
		padding-top: clamp(2.75rem, 3.2vw, 3.5rem);
		padding-bottom: 4.5rem;
	}
}

/* === 1.7.5 — kompaktowy overlap About na mniejszych ekranach desktopowych ===
   Overlap nadal działa od 1025 px, ale na laptopach / niskich viewportach
   karta nie może zachowywać wymiarów projektowanych pod 1440 × 717. Zmniejszamy
   przede wszystkim zdjęcie i pionowe odstępy, a tekst pozostaje czytelny.
   Dzięki temu cały content aktywnej karty mieści się w przypiętym kadrze i nie
   jest obcinany przez overflow stosu. */
@media (min-width: 1025px) and (max-width: 1366px),
       (min-width: 1025px) and (max-height: 820px) {
	.tko-about__stack.is-overlap-active {
		min-height: max(520px, var(--tko-overlap-viewport-height, 100svh));
	}

	.tko-about__stack.is-overlap-active .tko-about__card {
		padding-top: clamp(1.25rem, 3.4vh, 2.25rem);
	}

	.tko-about__stack.is-overlap-active .tko-about__card-media {
		height: clamp(165px, 28vh, 235px);
		min-height: 0;
		aspect-ratio: auto;
	}

	.tko-about__stack.is-overlap-active .tko-about__card-body {
		gap: clamp(1rem, 2.5vh, 1.5rem);
		padding-top: clamp(1rem, 2.6vh, 1.65rem);
		padding-bottom: clamp(1.1rem, 2.8vh, 1.85rem);
	}

	.tko-about__stack.is-overlap-active .tko-about__card-head {
		align-items: flex-start;
		min-height: 0;
		gap: clamp(1rem, 2.2vw, 1.75rem);
	}

	.tko-about__stack.is-overlap-active .tko-about__card-heading {
		width: min(680px, 78%);
		font-size: clamp(1.9rem, 1.52rem + 1.35vw, 2.65rem);
		line-height: 0.99;
	}

	.tko-about__stack.is-overlap-active .tko-about__card-icon {
		width: clamp(54px, 5.2vw, 72px);
		height: clamp(59px, 5.65vw, 78px);
	}

	.tko-about__stack.is-overlap-active .tko-about__card-copy {
		width: 100%;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: clamp(1rem, 2.3vw, 1.75rem);
	}

	.tko-about__stack.is-overlap-active .tko-about__card-copy p {
		font-size: clamp(0.96rem, 0.9rem + 0.2vw, 1.06rem);
		line-height: 1.27;
		letter-spacing: -0.025em;
	}
}

/* Bardzo niski ekran (np. laptop z otwartymi paskami przeglądarki): nadal
   zachowujemy overlap, ale oddajemy przestrzeń tekstowi zamiast ucinać dół. */
@media (min-width: 1025px) and (max-height: 650px) {
	.tko-about__stack.is-overlap-active {
		min-height: max(460px, var(--tko-overlap-viewport-height, 100svh));
	}

	.tko-about__stack.is-overlap-active .tko-about__card {
		padding-top: clamp(0.75rem, 2.2vh, 1.15rem);
	}

	.tko-about__stack.is-overlap-active .tko-about__card-media {
		height: clamp(120px, 23vh, 150px);
	}

	.tko-about__stack.is-overlap-active .tko-about__card-body {
		gap: clamp(0.75rem, 1.8vh, 1rem);
		padding-top: clamp(0.7rem, 1.8vh, 1rem);
		padding-bottom: clamp(0.8rem, 2vh, 1.1rem);
	}

	.tko-about__stack.is-overlap-active .tko-about__card-heading {
		font-size: clamp(1.7rem, 1.42rem + 1vw, 2.2rem);
		line-height: 1;
	}

	.tko-about__stack.is-overlap-active .tko-about__card-icon {
		width: clamp(46px, 4.5vw, 60px);
		height: clamp(50px, 4.9vw, 65px);
	}

	.tko-about__stack.is-overlap-active .tko-about__card-copy p {
		font-size: clamp(0.92rem, 0.88rem + 0.14vw, 1rem);
		line-height: 1.24;
	}
}



/* === 1.7.7 — dwa komponowane overlapy + jeden duży maziaj =============
   Pierwszy overlap: blok 1 po lewej, blok 2 po prawej.
   Drugi overlap: blok 3 po lewej, cytat po prawej. Małe ikony z poprzedniego
   wariantu nie są renderowane; jeden duży znak łączy wizualnie obie plansze. */
.tko-about__stack--composed {
	isolation: isolate;
}

.tko-about__card--composed .tko-about__card-body {
	position: relative;
	z-index: 2;
}

.tko-about__content-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(2rem, 5vw, 5.25rem);
	width: 100%;
	align-items: start;
}

.tko-about__content-block {
	position: relative;
	z-index: 2;
	min-width: 0;
}

.tko-about__content-block .tko-about__card-heading {
	width: 100%;
	max-width: 34rem;
	margin-bottom: clamp(1rem, 1.6vw, 1.5rem);
}

.tko-about__content-block-copy {
	display: flex;
	flex-direction: column;
	gap: 0.72rem;
	max-width: 32rem;
}

.tko-about__content-block-copy p {
	margin: 0;
	font-family: var(--tko-font-primary);
	font-size: var(--tko-widget-body, clamp(1.05rem, 0.98rem + 0.34vw, 1.25rem));
	font-weight: var(--tko-fw-regular);
	line-height: 1.24;
	letter-spacing: -0.035em;
	color: var(--tko-black);
}

.tko-about__quote {
	position: relative;
	z-index: 2;
	align-self: end;
	max-width: 34rem;
	margin: 0;
	padding: 0;
	border: 0;
	font-family: var(--tko-font-primary);
	font-size: clamp(1.8rem, 1.28rem + 1.7vw, 3.15rem);
	font-weight: var(--tko-fw-medium);
	line-height: 1.04;
	letter-spacing: -0.045em;
	color: var(--tko-black);
}

.tko-about__bridge-mark {
	position: absolute;
	z-index: 8;
	top: 50%;
	right: clamp(-8rem, -7vw, -3rem);
	width: clamp(250px, 31vw, 455px);
	max-height: 78%;
	pointer-events: none;
	opacity: 0.78;
	transform: translateY(-50%) rotate(-7deg);
	transform-origin: 50% 50%;
}

.tko-about__bridge-mark img,
.tko-about__bridge-mark svg {
	display: block;
	width: 100%;
	height: auto;
	max-height: 72svh;
	object-fit: contain;
}

.tko-about__bridge-mark svg {
	color: var(--tko-accent, #ffc133);
}

/* Laptop / niższy viewport: mniej miejsca na dekorację, priorytet ma tekst. */
@media (min-width: 1025px) and (max-width: 1366px),
       (min-width: 1025px) and (max-height: 820px) {
	.tko-about__content-grid {
		gap: clamp(1.5rem, 3vw, 3rem);
	}
	.tko-about__content-block .tko-about__card-heading {
		margin-bottom: clamp(0.7rem, 1.5vh, 1rem);
	}
	.tko-about__content-block-copy {
		gap: 0.5rem;
	}
	.tko-about__content-block-copy p {
		font-size: clamp(0.96rem, 0.9rem + 0.2vw, 1.06rem);
		line-height: 1.27;
	}
	.tko-about__quote {
		font-size: clamp(1.55rem, 1.2rem + 1.2vw, 2.35rem);
		line-height: 1.06;
	}
	.tko-about__bridge-mark {
		right: clamp(-7rem, -7vw, -3rem);
		width: clamp(210px, 28vw, 350px);
		opacity: 0.68;
	}
}

@media (min-width: 1025px) and (max-height: 650px) {
	.tko-about__content-grid { gap: clamp(1.25rem, 2.5vw, 2.4rem); }
	.tko-about__content-block .tko-about__card-heading { margin-bottom: 0.55rem; }
	.tko-about__content-block-copy { gap: 0.38rem; }
	.tko-about__content-block-copy p { font-size: clamp(0.91rem, 0.87rem + 0.13vw, 0.99rem); line-height: 1.22; }
	.tko-about__quote { font-size: clamp(1.4rem, 1.14rem + 0.95vw, 2rem); }
	.tko-about__bridge-mark { width: clamp(180px, 24vw, 290px); opacity: 0.58; }
}

/* Tablet/mobile: karty pozostają w naturalnym dokumencie, a maziaj jest
   fizycznie pomiędzy nimi. Ujemny margines daje efekt przenikania bez
   absolutnego pozycjonowania względem zmiennej wysokości tekstu. */
@media (max-width: 1024px) {
	.tko-about__card--composed .tko-about__card-body {
		padding-inline: 0;
	}
	.tko-about__content-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: clamp(1.25rem, 4vw, 2.5rem);
	}
	.tko-about__content-block .tko-about__card-heading {
		margin-bottom: 0.9rem;
	}
	.tko-about__content-block-copy p {
		font-size: clamp(0.96rem, 2.2vw, 1.06rem);
		line-height: 1.3;
	}
	.tko-about__quote {
		font-size: clamp(1.65rem, 4.6vw, 2.5rem);
		line-height: 1.08;
	}
	.tko-about__bridge-mark {
		position: relative;
		top: auto;
		right: auto;
		z-index: 3;
		align-self: flex-end;
		width: min(38vw, 300px);
		max-height: none;
		margin: clamp(-4.5rem, -6vw, -2.5rem) clamp(-2.5rem, -4vw, -1rem) clamp(-4.5rem, -6vw, -2.5rem) auto;
		opacity: 0.5;
		transform: rotate(-8deg);
	}
	.tko-about__bridge-mark img,
	.tko-about__bridge-mark svg {
		max-height: none;
	}
}

@media (max-width: 700px) {
	.tko-about__content-grid {
		grid-template-columns: 1fr;
		gap: clamp(2rem, 8vw, 3.25rem);
	}
	.tko-about__content-block .tko-about__card-heading {
		font-size: clamp(1.85rem, 8vw, 2.7rem);
		margin-bottom: 0.8rem;
	}
	.tko-about__content-block-copy p {
		font-size: 1.02rem;
		line-height: 1.34;
	}
	.tko-about__quote {
		max-width: 92%;
		font-size: clamp(1.7rem, 8vw, 2.55rem);
	}
	.tko-about__bridge-mark {
		width: min(58vw, 250px);
		margin-top: -3rem;
		margin-right: -1.6rem;
		margin-bottom: -3rem;
		opacity: 0.38;
	}
}

/* === 1.7.11 — responsywność komponowanego About ========================
   Wyłącznie tablet/mobile. Desktop pozostaje nietknięty.
   - przywraca naturalne, równe odstępy między overlapami i blokami treści,
   - cytat zachowuje tę samą semantykę/typografię co na desktopie,
   - duży maziaj jest absolutnym tłem całej sekcji i nie uczestniczy w flow,
     więc nie może wypychać drugiego overlapa ani zmieniać jego wysokości. */
@media (max-width: 1024px) {
	.tko-about__stack--composed,
	.tko-about__stack--composed.is-overlap-active,
	.tko-about__stack--composed.is-about-static {
		position: relative;
		isolation: isolate;
		gap: clamp(2.25rem, 5.5vw, 3.75rem);
		padding-block: clamp(1.75rem, 4.5vw, 2.75rem) clamp(3.75rem, 8vw, 5rem);
	}

	.tko-about__stack--composed > .tko-about__card,
	.tko-about__stack--composed.is-overlap-active > .tko-about__card,
	.tko-about__stack--composed.is-about-static > .tko-about__card {
		position: relative;
		z-index: 2;
		background: transparent;
	}

	.tko-about__card--composed .tko-about__card-body {
		position: relative;
		z-index: 2;
		gap: 0;
		padding-block: clamp(1.5rem, 4vw, 2.25rem) clamp(2rem, 5vw, 3rem);
	}

	.tko-about__content-grid {
		gap: clamp(1.5rem, 4vw, 2.5rem);
		align-items: start;
	}

	.tko-about__content-block {
		position: relative;
		z-index: 2;
	}

	.tko-about__quote {
		position: relative;
		z-index: 2;
		display: block;
		width: 100%;
		margin: 0;
		padding: 0;
		border: 0;
		font-family: var(--tko-font-primary);
		font-weight: var(--tko-fw-medium);
		line-height: 1.06;
		letter-spacing: -0.045em;
		color: var(--tko-black);
	}

	.tko-about__bridge-mark {
		position: absolute;
		top: auto;
		right: clamp(-0.75rem, -1.2vw, -0.15rem);
		bottom: clamp(1.25rem, 4vw, 2.5rem);
		z-index: 0;
		align-self: auto;
		width: min(42vw, 280px);
		max-height: none;
		margin: 0;
		pointer-events: none;
		opacity: 0.22;
		transform: rotate(-8deg);
		transform-origin: 50% 50%;
	}

	.tko-about__bridge-mark img,
	.tko-about__bridge-mark svg {
		width: 100%;
		height: auto;
		max-height: none;
	}
}

@media (max-width: 700px) {
	.tko-about__stack--composed,
	.tko-about__stack--composed.is-overlap-active,
	.tko-about__stack--composed.is-about-static {
		gap: clamp(2rem, 8vw, 3rem);
		padding-block: clamp(1.5rem, 6vw, 2rem) clamp(3rem, 11vw, 4.25rem);
	}

	.tko-about__card--composed .tko-about__card-body {
		padding-block: clamp(1.25rem, 5vw, 1.75rem) clamp(2rem, 7vw, 2.75rem);
	}

	.tko-about__content-grid {
		grid-template-columns: 1fr;
		gap: clamp(1.75rem, 7vw, 2.5rem);
	}

	.tko-about__content-block .tko-about__card-heading {
		margin-bottom: clamp(0.75rem, 3vw, 1rem);
	}

	.tko-about__content-block-copy {
		gap: clamp(0.55rem, 2.5vw, 0.8rem);
	}

	.tko-about__quote {
		align-self: start;
		justify-self: start;
		max-width: 100%;
		font-size: clamp(1.7rem, 8vw, 2.55rem);
		line-height: 1.06;
	}

	.tko-about__bridge-mark {
		right: clamp(-1rem, -2vw, -0.25rem);
		bottom: clamp(1rem, 5vw, 1.75rem);
		width: min(58vw, 245px);
		opacity: 0.18;
		transform: rotate(-8deg);
	}
}

/* === 1.7.21 — brak poziomego overflow od dekoracyjnego Maziaja ========= */
@media (max-width: 1024px) {
	.tko-about__stack--composed .tko-about__bridge-mark { right: 0.25rem; }
}
@media (max-width: 700px) {
	.tko-about__stack--composed .tko-about__bridge-mark { right: 0; }
}

/* === 1.7.27 — desktop: pełna typografia komponowanego Overlapu =========
   Niski viewport może nadal kompresować zdjęcie i pionowe spacingi, ale nie
   zmniejsza nagłówków, tekstów ani cytatu. Awaryjny wariant <=650px wysokości
   pozostaje bez zmian, żeby nie przycinać treści na ekstremalnie niskich ekranach. */
@media (min-width: 1025px) and (min-height: 651px) {
	.tko-about__stack--composed.is-overlap-active .tko-about__content-block .tko-about__card-heading {
		font-size: clamp(2.2rem, 1.8rem + 1.9vw, 3.4rem);
		line-height: 0.96;
	}

	.tko-about__stack--composed.is-overlap-active .tko-about__content-block-copy p {
		font-size: clamp(1.05rem, 0.98rem + 0.34vw, 1.25rem);
		line-height: 1.24;
		letter-spacing: -0.035em;
	}

	.tko-about__stack--composed.is-overlap-active .tko-about__quote {
		font-size: clamp(1.8rem, 1.28rem + 1.7vw, 3.15rem);
		line-height: 1.04;
	}
}

/* === 1.7.28 — desktop: przywrócenie pozycji Maziaja z 1.7.10 ===========
   Wyłącznie pozycja/warstwa dekoracji. Bez zmian typografii, layoutu,
   animacji oraz breakpointów tablet/mobile. */
@media (min-width: 1025px) {
	.tko-about__stack--composed .tko-about__bridge-mark {
		top: 68%;
		right: clamp(0.5rem, 1.5vw, 1.5rem);
		z-index: 4;
		opacity: 0.46;
	}
}

@media (min-width: 1441px) {
	.tko-about__stack--composed .tko-about__bridge-mark {
		top: 71%;
	}
}

/* === 1.7.29 — desktop: pionowe centrowanie zawartości Overlapu ==========
   Zdjęcie + treść są centrowane w wysokości przypiętego viewportu zamiast
   zaczynać się od stałego padding-top. Nie ingerujemy w transformacje GSAP,
   pozycję Maziaja ani breakpointy tablet/mobile. */
@media (min-width: 1025px) and (min-height: 651px) {
	.tko-about__stack--composed.is-overlap-active .tko-about__card--composed {
		display: flex;
		flex-direction: column;
		justify-content: center;
		padding-top: 0;
	}
}


/* === 1.7.35 — Maziaj jako tło każdej karty Overlapu na desktopie =======
   Desktop: dekoracja jest dzieckiem każdej karty, więc porusza się razem
   z kartą w timeline GSAP. Jest nad białym tłem karty, ale pod zdjęciem i
   treścią. Wersja stosowa pozostaje dla tablet/mobile bez zmian. */
.tko-about__bridge-mark--card {
	display: none;
}

@media (min-width: 1025px) {
	.tko-about__stack--composed > .tko-about__bridge-mark--stack {
		display: none;
	}

	.tko-about__card--composed {
		isolation: isolate;
	}

	.tko-about__card--composed .tko-about__bridge-mark--card {
		display: block;
		top: 68%;
		right: clamp(0.5rem, 1.5vw, 1.5rem);
		z-index: 0;
		opacity: 0.46;
	}

	.tko-about__card--composed .tko-about__card-media,
	.tko-about__card--composed .tko-about__card-body {
		position: relative;
		z-index: 1;
	}
}

@media (min-width: 1441px) {
	.tko-about__card--composed .tko-about__bridge-mark--card {
		top: 71%;
	}
}

@media (max-width: 1024px) {
	.tko-about__bridge-mark--card {
		display: none !important;
	}
}

/* === 1.7.39 — desktop: jeden duży Maziaj jako parallax tła =============
   Założenia klienta:
   - jeden wspólny znak na cały komponowany Overlap,
   - prawa część świadomie wychodzi poza viewport i jest przycinana dopiero
     przez pełnoszeroką sekcję, bez poziomego scrollbara,
   - dekoracja porusza się wolniej niż scroll (wartość CSS ustawia JS),
   - karty / zdjęcia / tekst pozostają wyżej w hierarchii i są klikalne,
   - tablet/mobile zachowują dotychczasowy układ. */
@media (min-width: 1025px) {
    .tko-about {
        /* Sekcja jest pełną maską viewportu: pozwalamy znakowi wyjść poza
           wewnętrzny kontener, ale nie tworzymy poziomego scrollbara. */
        overflow-x: clip;
        overflow-y: clip;
    }

    .tko-about__stack--composed,
    .tko-about__stack--composed.is-overlap-active {
        overflow: visible;
        isolation: isolate;
    }

    /* Stare kopie per-karta są definitywnie wyłączone. */
    .tko-about__stack--composed .tko-about__bridge-mark--card {
        display: none !important;
    }

    /* Jeden wspólny znak — tło całego overlapu. */
    .tko-about__stack--composed > .tko-about__bridge-mark--stack {
        display: block;
        position: absolute;
        top: 64%;
        right: calc(((100vw - 100%) / -2) - clamp(6.5rem, 8vw, 10rem));
        z-index: 0;
        width: clamp(520px, 46vw, 780px);
        max-height: none;
        margin: 0;
        opacity: 0.36;
        pointer-events: none;
        transform: translate3d(0, -50%, 0)
                   translate3d(0, var(--tko-bridge-parallax-y, 0px), 0)
                   rotate(-7deg);
        transform-origin: 50% 50%;
        will-change: transform;
        filter: saturate(0.78) brightness(0.82);
    }

    .tko-about__stack--composed > .tko-about__bridge-mark--stack img,
    .tko-about__stack--composed > .tko-about__bridge-mark--stack svg {
        display: block;
        width: 100%;
        height: auto;
        max-height: 82svh;
        object-fit: contain;
    }

    .tko-about__stack--composed > .tko-about__bridge-mark--stack svg {
        color: color-mix(in srgb, var(--tko-accent, #ffc133) 78%, #8c6b16 22%);
    }

    /* Karty nie mogą przykryć wspólnego tła pełnym białym prostokątem.
       Ich rzeczywista zawartość pozostaje wyżej i zachowuje czytelność. */
    .tko-about__stack--composed.is-overlap-active > .tko-about__card--composed {
        background: transparent;
    }

    .tko-about__stack--composed.is-overlap-active .tko-about__card-media,
    .tko-about__stack--composed.is-overlap-active .tko-about__card-body,
    .tko-about__stack--composed.is-overlap-active .tko-about__content-grid,
    .tko-about__stack--composed.is-overlap-active .tko-about__content-block,
    .tko-about__stack--composed.is-overlap-active .tko-about__quote {
        position: relative;
        z-index: 2;
    }
}

@media (min-width: 1600px) {
    .tko-about__stack--composed > .tko-about__bridge-mark--stack {
        top: 66%;
        width: clamp(620px, 43vw, 840px);
    }
}


/* === 1.7.40 — desktop: izolacja tła Overlapu ============================
   Wspólny Maziaj pozostaje na warstwie 0, ale cały przypięty stos dostaje
   własną pełnoekranową białą bazę pod dekoracją. Dzięki temu transparentne
   karty nie odsłaniają poprzedniej sekcji podczas scrollowania. */
@media (min-width: 1025px) {
    .tko-about__stack--composed {
        isolation: isolate;
    }

    .tko-about__stack--composed::before {
        content: '';
        position: absolute;
        top: 0;
        bottom: 0;
        left: 50%;
        width: 100vw;
        transform: translateX(-50%);
        background: var(--tko-white);
        z-index: -1;
        pointer-events: none;
    }
}


/* === 1.7.41 — stabilna baza wspólnego Maziaja + pełne ukrycie poprzedniej planszy ===
   Jeden Maziaj pozostaje nad białym tłem stosu i pod treścią kart. Sam stos
   jest nieprzezroczystą powierzchnią, więc nic spoza About nie może przez
   niego prześwitywać. Pseudo-warstwa z 1.7.40 nie jest już potrzebna. */
@media (min-width: 1025px) {
    .tko-about__stack--composed,
    .tko-about__stack--composed.is-overlap-active {
        background: var(--tko-white);
    }

    .tko-about__stack--composed::before {
        content: none !important;
        display: none !important;
    }

    .tko-about__stack--composed > .tko-about__bridge-mark--stack {
        z-index: 0;
    }

    .tko-about__stack--composed.is-overlap-active > .tko-about__card--composed {
        background: transparent;
    }
}


/* === 1.7.44 — kanoniczna typografia Overlap ==============================
   Layout/GSAP/Maziaj pozostają niezależne od typografii. */
.tko-about,.tko-about button,.tko-about a { font-family:var(--tko-font-primary) !important; }
.tko-about__card-heading,.tko-about__content-block .tko-about__card-heading { font-size:var(--tko-type-card-heading-size) !important;font-weight:var(--tko-type-card-heading-weight) !important;line-height:var(--tko-type-card-heading-line) !important;letter-spacing:var(--tko-type-card-heading-track) !important; }
.tko-about__card-copy p,.tko-about__content-block-copy p { font-family:var(--tko-font-primary) !important;font-size:17px !important;font-style:normal !important;font-weight:400 !important;line-height:1.35 !important;letter-spacing:-0.04em !important; }
.tko-about__quote { font-size:clamp(1.8rem,1.28rem + 1.7vw,3.15rem) !important;font-weight:var(--tko-type-statement-weight) !important;line-height:var(--tko-type-statement-line) !important;letter-spacing:var(--tko-type-statement-track) !important; }
@media (max-width:767px){.tko-about__quote{font-size:clamp(1.7rem,8vw,2.55rem) !important;}.tko-about__card-copy p,.tko-about__content-block-copy p{font-size:17px !important;font-weight:400 !important;font-style:normal !important;line-height:1.35 !important;letter-spacing:-0.04em !important;}}
/**
 * TKO Orkiestra — sekcja „Projekty”.
 *
 * Tryb zapisany historycznie jako `scatter` renderuje teraz Ticker Scroll:
 * cztery pionowe, zapętlone kolumny projektów sterowane scrollem na desktopie.
 * Tablet zachowuje poziome taśmy, a mobile korzysta z wybranego układu
 * pionowego lub poziomego. Bez dodatkowego pina i sztucznej wysokości.
 */

.tko-project {
	padding-block: var(--tko-space-2xl) var(--tko-space-xl);
	background: var(--tko-bg);
	color: var(--tko-fg);
	overflow-x: clip;
}


.tko-project[id] {
	scroll-margin-top: clamp(72px, 9vh, 112px);
}

.tko-project__gallery-nav {
	position: relative;
	z-index: 12;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.65rem;
	width: min(1280px, calc(100vw - 64px));
	margin: 0 auto clamp(2rem, 4vw, 4rem);
	padding: 0;
}

.tko-project__gallery-nav-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 38px;
	padding: 0.65rem 1rem;
	border: 1px solid color-mix(in srgb, var(--tko-fg) 28%, transparent);
	border-radius: 999px;
	background: color-mix(in srgb, var(--tko-bg) 86%, transparent);
	color: var(--tko-fg);
	font-size: 0.82rem;
	font-weight: var(--tko-fw-medium);
	line-height: 1;
	letter-spacing: 0.02em;
	text-decoration: none;
	backdrop-filter: blur(12px);
	transition:
		border-color 0.25s var(--tko-ease),
		background 0.25s var(--tko-ease),
		color 0.25s var(--tko-ease),
		transform 0.25s var(--tko-ease-out-soft);
}

.tko-project__gallery-nav-link:hover,
.tko-project__gallery-nav-link:focus-visible {
	border-color: var(--tko-accent);
	background: var(--tko-accent);
	color: var(--tko-accent-ink);
	transform: translateY(-2px);
}


.elementor-widget-tko-project,
.elementor-widget-tko-project > .elementor-widget-container {
	overflow: visible !important;
}



/* === Ticker Scroll ======================================================= */

.tko-project--ticker {
	--tko-ticker-card-width: 300px;
	--tko-ticker-card-ratio: 1 / 1;
	--tko-ticker-desktop-card-ratio: 4 / 5;
	--tko-ticker-gap: 24px;
	--tko-ticker-row-gap: 72px;
	--tko-ticker-radius: 14px;
	--tko-ticker-heading-width: 1240px;
	--tko-ticker-heading-offset-y: 0px;
	position: relative;
	isolation: isolate;
	padding-block: clamp(4.5rem, 8vw, 8rem);
	background: var(--tko-bg);
	color: var(--tko-fg);
	overflow: clip;
}

.tko-project--ticker > .tko-section__inner {
	width: 100%;
	max-width: none;
	padding-inline: 0;
}

.tko-project__ticker {
	position: relative;
	isolation: isolate;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--tko-ticker-row-gap);
	width: 100%;
	min-height: calc(var(--tko-ticker-card-width) + clamp(12rem, 22vw, 24rem));
	padding-block: clamp(1.5rem, 3vw, 3rem);
	overflow: clip;
}

.tko-project__ticker[data-tko-ticker-columns] {
	min-height: calc((var(--tko-ticker-card-width) * 2) + var(--tko-ticker-row-gap));
}

.tko-project__ticker-head {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-width: 0;
	padding-inline: 2vw;
	text-align: center;
	pointer-events: none;
}

/* Ważne dla mix-blend-mode: na żadnym przodku warstwy tekstowej nie może
   znajdować się transform/translate tworzący odseparowany bufor kompozytora.
   Offset realizujemy przez zwykłe pozycjonowanie względne. */
.tko-project__ticker-copy {
	position: relative;
	top: var(--tko-ticker-heading-offset-y);
	display: flex;
	flex-direction: column;
	align-items: center;
	width: min(var(--tko-ticker-heading-width), 96vw);
	min-width: 0;
	pointer-events: none;
}

.tko-project__ticker--heading-above .tko-project__ticker-head {
	z-index: 8;
}

/* Premium contrast mode. W 1.6.11 blend był przypisany do trzech osobnych
   elementów znajdujących się wewnątrz transformowanego rodzica. Chromium i
   Safari kompozytowały taki rodzic do osobnego bufora, przez co tekst nie
   widział kart znajdujących się pod nim. Od 1.6.12 cały blok copy jest jedną
   warstwą blendującą, bez transformowanego przodka. CTA pozostaje osobnym
   rodzeństwem i zachowuje pomarańczowy kolor. */
.tko-project__ticker--blend-difference .tko-project__ticker-head {
	z-index: 20;
}

.tko-project__ticker--blend-difference .tko-project__ticker-copy {
	z-index: 1;
	color: #fff;
	mix-blend-mode: difference;
	-webkit-font-smoothing: antialiased;
	text-rendering: geometricPrecision;
	text-shadow: none;
}

.tko-project__ticker--blend-difference .tko-project__ticker-copy .tko-project__eyebrow,
.tko-project__ticker--blend-difference .tko-project__ticker-copy .tko-project__heading,
.tko-project__ticker--blend-difference .tko-project__ticker-copy .tko-project__intro {
	color: inherit;
	mix-blend-mode: normal;
}

.tko-project__ticker--blend-difference .tko-project__head-cta {
	position: relative;
	z-index: 2;
	mix-blend-mode: normal;
	isolation: isolate;
}

@supports not (mix-blend-mode: difference) {
	.tko-project__ticker--blend-difference .tko-project__ticker-copy {
		color: var(--tko-fg);
		text-shadow: 0 2px 18px color-mix(in srgb, var(--tko-bg) 78%, transparent);
	}
}

.tko-project__ticker-head .tko-project__eyebrow {
	margin-bottom: clamp(0.65rem, 1.2vw, 1rem);
	font-size: clamp(0.7rem, 0.8vw, 0.9rem);
	font-weight: var(--tko-fw-medium);
	line-height: 1;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--tko-accent);
}

.tko-project__ticker-head .tko-project__heading {
	max-width: none;
	margin: 0;
	font-size: clamp(4.25rem, 10.8vw, 12rem);
	font-weight: var(--tko-fw-medium);
	line-height: 0.78;
	letter-spacing: -0.075em;
	color: var(--tko-fg);
	text-wrap: balance;
}

.tko-project__ticker-head .tko-project__intro {
	max-width: 44ch;
	margin: clamp(1rem, 2vw, 1.75rem) 0 0;
	font-size: clamp(0.88rem, 1vw, 1.0625rem);
	line-height: 1.35;
	letter-spacing: -0.025em;
	color: color-mix(in srgb, var(--tko-fg) 68%, transparent);
}

.tko-project__ticker-head .tko-project__head-cta {
	position: relative;
	top: var(--tko-ticker-heading-offset-y);
	z-index: 2;
	margin-top: clamp(1rem, 1.8vw, 1.5rem);
	border-color: var(--tko-accent);
	background: var(--tko-accent);
	color: var(--tko-accent-ink);
	pointer-events: auto;
}

.tko-project__ticker-head .tko-project__head-cta:hover,
.tko-project__ticker-head .tko-project__head-cta:focus-visible {
	border-color: var(--tko-fg);
	background: var(--tko-fg);
	color: var(--tko-bg);
}


/* Domyślny wariant galerii: nagłówek jest osobnym blokiem nad obrazami.
   Nie przecina tickerów i nie korzysta z mix-blend-mode. */
.tko-project__ticker--heading-top .tko-project__ticker-head {
	position: relative;
	inset: auto;
	z-index: 8;
	grid-column: 1 / -1;
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	width: 100%;
	margin: 0;
	padding: 0;
	text-align: left;
	pointer-events: auto;
}

.tko-project__ticker--heading-top .tko-project__ticker-copy {
	top: auto;
	align-items: flex-start;
	width: min(var(--tko-ticker-heading-width), 100%);
	color: var(--tko-fg);
	mix-blend-mode: normal;
}

.tko-project__ticker--heading-top .tko-project__ticker-copy .tko-project__eyebrow {
	color: var(--tko-accent);
}

.tko-project__ticker--heading-top .tko-project__ticker-copy .tko-project__heading {
	max-width: 12ch;
	font-size: clamp(3.25rem, 6.8vw, 7.5rem);
	line-height: 0.88;
	color: var(--tko-fg);
}

.tko-project__ticker--heading-top .tko-project__ticker-copy .tko-project__intro {
	max-width: 52ch;
	color: color-mix(in srgb, var(--tko-fg) 72%, transparent);
}

.tko-project__ticker--heading-top .tko-project__head-cta {
	top: auto;
}

.tko-project__ticker-lane {
	position: relative;
	z-index: 3;
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	overflow: hidden;
	contain: layout paint;
}

.tko-project__ticker--heading-above .tko-project__ticker-lane {
	z-index: 2;
}

.tko-project__ticker-lane.has-edge-fade {
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 clamp(1rem, 4vw, 5rem), #000 calc(100% - clamp(1rem, 4vw, 5rem)), transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0, #000 clamp(1rem, 4vw, 5rem), #000 calc(100% - clamp(1rem, 4vw, 5rem)), transparent 100%);
}

.tko-project__ticker-track {
	display: flex;
	align-items: stretch;
	width: max-content;
	min-width: max-content;
	gap: var(--tko-ticker-gap);
	transform: translate3d(0, 0, 0);
	will-change: transform;
	backface-visibility: hidden;
}

.tko-project__ticker-group {
	display: flex;
	flex: 0 0 auto;
	align-items: stretch;
	gap: var(--tko-ticker-gap);
	min-width: max-content;
}

/* 1.7.2/1.7.3: klony tickera SA klikalne NA KAZDYM urzadzeniu (desktop
   i mobile - problem byl calosciowy). pointer-events:none odcinalo je od
   delegacji klikniec dodanej w 1.7.1 (JS nigdy nie dostawal zdarzenia),
   przez co zdublowane kafle nie otwieraly lightboxa. 1.7.3 dodaje jawne
   pointer-events:auto (pancerz przed regula motywu/custom CSS, ktora
   moglaby po cichu przywrocic blokade). Klawiatura i czytniki ekranu
   nadal pomijaja klony (tabindex=-1 + aria-hidden nadawane w
   stripCloneInteractions) - dostepnym odpowiednikiem pozostaje oryginal.
   Klikalnosc klonow jest pokryta testem behawioralnym (jsdom): pierwszy
   klik w klon musi otworzyc lightbox i zbudowac medium z jego atrybutow. */
.tko-project__ticker-group[data-tko-ticker-clone] {
	pointer-events: auto;
	user-select: none;
}

.tko-project__ticker-group[data-tko-ticker-clone] .tko-project__ticker-preview {
	pointer-events: auto;
	cursor: pointer;
}

.tko-project--ticker .tko-project__ticker-item {
	position: relative;
	flex: 0 0 var(--tko-ticker-card-width);
	width: var(--tko-ticker-card-width);
	max-width: none;
	aspect-ratio: var(--tko-ticker-card-ratio);
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: var(--tko-ticker-radius);
	overflow: hidden;
	background: var(--tko-black-soft);
	color: var(--tko-white);
	box-shadow: 0 22px 60px -34px rgba(0, 0, 0, 0.78);
	transform: translate3d(0, 0, 0);
	transition: transform 0.45s var(--tko-ease-out-soft), box-shadow 0.45s var(--tko-ease);
	contain: layout paint;
}

.tko-project--ticker .tko-project__ticker-item:hover,
.tko-project--ticker .tko-project__ticker-item:focus-within {
	z-index: 4;
	transform: translate3d(0, -6px, 0);
	box-shadow: 0 34px 80px -38px rgba(0, 0, 0, 0.9);
}

.tko-project__ticker-preview {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: inherit;
	overflow: hidden;
	background: transparent;
	color: inherit;
	text-align: left;
	appearance: none;
	cursor: pointer;
}

.tko-project--ticker .tko-project__tile-media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1.01);
	transition: transform 0.75s var(--tko-ease-out-soft), filter 0.45s var(--tko-ease);
}

.tko-project--ticker .tko-project__ticker-item:hover .tko-project__tile-media,
.tko-project--ticker .tko-project__ticker-item:focus-within .tko-project__tile-media {
	transform: scale(1.065);
}

.tko-project--ticker .tko-project__tile-overlay {
	position: absolute;
	inset: 0;
	z-index: 2;
	background: linear-gradient(180deg, rgba(15, 14, 14, 0.02) 34%, rgba(15, 14, 14, 0.88) 100%);
	opacity: 0.74;
	transition: opacity 0.35s var(--tko-ease);
}

.tko-project--ticker .tko-project__ticker-item:hover .tko-project__tile-overlay,
.tko-project--ticker .tko-project__ticker-item:focus-within .tko-project__tile-overlay {
	opacity: 0.92;
}

.tko-project--ticker .tko-project__tile-expand {
	z-index: 5;
}

.tko-project__project-info {
	position: absolute;
	left: clamp(0.85rem, 2vw, 1.25rem);
	right: clamp(0.85rem, 2vw, 1.25rem);
	bottom: clamp(0.85rem, 2vw, 1.25rem);
	z-index: 4;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.34rem;
	color: var(--tko-white);
	pointer-events: none;
	transform: translate3d(0, 8px, 0);
	transition: transform 0.4s var(--tko-ease-out-soft);
}

.tko-project__project-category {
	font-size: 0.68rem;
	font-weight: var(--tko-fw-medium);
	line-height: 1;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--tko-accent);
}

.tko-project__project-title {
	margin: 0;
	font-size: clamp(1rem, 1.35vw, 1.45rem);
	font-weight: var(--tko-fw-medium);
	line-height: 1.02;
	letter-spacing: -0.035em;
	color: var(--tko-white);
}

.tko-project__project-description {
	display: -webkit-box;
	max-width: 34ch;
	margin: 0.1rem 0 0;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	font-size: clamp(0.72rem, 0.8vw, 0.88rem);
	line-height: 1.25;
	color: rgba(252, 252, 246, 0.82);
	opacity: 0;
	transform: translateY(5px);
	transition: opacity 0.35s var(--tko-ease), transform 0.35s var(--tko-ease);
}

.tko-project__project-link {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	margin-top: 0.3rem;
	padding: 0.45rem 0.7rem;
	border: 1px solid rgba(252, 252, 246, 0.38);
	border-radius: 999px;
	background: rgba(15, 14, 14, 0.34);
	backdrop-filter: blur(8px);
	font-size: 0.72rem;
	font-weight: var(--tko-fw-medium);
	line-height: 1;
	color: var(--tko-white);
	text-decoration: none;
	pointer-events: auto;
	opacity: 0;
	transform: translateY(5px);
	transition: opacity 0.35s var(--tko-ease), transform 0.35s var(--tko-ease), background 0.25s var(--tko-ease);
}

.tko-project__project-link:hover,
.tko-project__project-link:focus-visible {
	border-color: var(--tko-accent);
	background: var(--tko-accent);
	color: var(--tko-accent-ink);
}

.tko-project--ticker .tko-project__ticker-item:hover .tko-project__project-info,
.tko-project--ticker .tko-project__ticker-item:focus-within .tko-project__project-info,
.tko-project--ticker .tko-project__ticker-item:hover .tko-project__project-description,
.tko-project--ticker .tko-project__ticker-item:hover .tko-project__project-link,
.tko-project--ticker .tko-project__ticker-item:focus-within .tko-project__project-description,
.tko-project--ticker .tko-project__ticker-item:focus-within .tko-project__project-link {
	transform: translate3d(0, 0, 0);
}

.tko-project--ticker .tko-project__ticker-item:hover .tko-project__project-description,
.tko-project--ticker .tko-project__ticker-item:hover .tko-project__project-link,
.tko-project--ticker .tko-project__ticker-item:focus-within .tko-project__project-description,
.tko-project--ticker .tko-project__ticker-item:focus-within .tko-project__project-link {
	opacity: 1;
}

.tko-project--ticker .tko-project__ticker.is-ticker-paused .tko-project__ticker-item {
	will-change: auto;
}

/* Edytor Elementora i fallback bez JS: pozostawiamy czytelną, poziomą listę. */
.tko-project__ticker:not(.is-ticker-ready) .tko-project__ticker-lane {
	overflow-x: auto;
	overflow-y: hidden;
	scrollbar-width: none;
	overscroll-behavior-inline: contain;
	scroll-snap-type: inline proximity;
}

.tko-project__ticker:not(.is-ticker-ready) .tko-project__ticker-lane::-webkit-scrollbar {
	display: none;
}

.tko-project--ticker .tko-project__ticker:not(.is-ticker-ready) .tko-project__ticker-item {
	scroll-snap-align: center;
}


/* === Desktop: cztery pionowe taśmy ========================================
   Każda kolumna ma własny track przesuwany w osi Y. Nagłówek pozostaje
   nieruchomo za kartami, dzięki czemu układ odpowiada referencji portfolio. */
@media (min-width: 1024px) {
	.tko-project--ticker.tko-project--ticker {
		min-height: clamp(920px, 116svh, 1280px);
	}

	.tko-project__ticker--heading-top {
		grid-template-rows: auto minmax(0, 1fr);
		row-gap: clamp(2rem, 4vw, 4.5rem);
		height: clamp(900px, 112svh, 1240px);
		min-height: 0;
	}

	.tko-project__ticker--heading-top .tko-project__ticker-head {
		grid-row: 1;
	}

	.tko-project__ticker--heading-top .tko-project__ticker-lane {
		grid-row: 2;
	}

	.tko-project--ticker {
		min-height: clamp(760px, 100svh, 1080px);
		padding-block: 0;
	}

	.tko-project--ticker > .tko-section__inner {
		width: min(1280px, calc(100vw - 64px));
		max-width: 1280px;
		margin-inline: auto;
		padding-inline: 0;
	}

	.tko-project__ticker {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		align-items: stretch;
		justify-content: center;
		column-gap: min(var(--tko-ticker-row-gap), 5vw);
		width: 100%;
		height: clamp(760px, 100svh, 1080px);
		min-height: 0;
		padding-block: clamp(1.5rem, 3vw, 3rem);
		overflow: hidden;
	}

	.tko-project__ticker[data-tko-ticker-columns="3"] {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		max-width: 1040px;
		margin-inline: auto;
	}

	.tko-project__ticker-head {
		z-index: 1;
	}

	.tko-project__ticker--heading-above .tko-project__ticker-head {
		z-index: 8;
	}

	.tko-project__ticker-lane {
		width: 100%;
		max-width: none;
		height: 100%;
		min-height: 0;
		margin-left: 0;
		overflow: hidden;
		contain: layout paint;
	}

	.tko-project__ticker-lane.has-edge-fade {
		-webkit-mask-image: linear-gradient(180deg, transparent 0, #000 clamp(1rem, 4vh, 3.5rem), #000 calc(100% - clamp(1rem, 4vh, 3.5rem)), transparent 100%);
		mask-image: linear-gradient(180deg, transparent 0, #000 clamp(1rem, 4vh, 3.5rem), #000 calc(100% - clamp(1rem, 4vh, 3.5rem)), transparent 100%);
	}

	.tko-project__ticker-track,
	.tko-project__ticker-group {
		flex-direction: column;
		align-items: stretch;
		width: 100%;
		min-width: 0;
		height: max-content;
		min-height: max-content;
		gap: var(--tko-ticker-gap);
	}

	.tko-project--ticker .tko-project__ticker-item {
		flex: 0 0 auto;
		width: 100%;
		max-width: 100%;
		aspect-ratio: var(--tko-ticker-desktop-card-ratio);
	}

	.tko-project__ticker:not(.is-ticker-ready) .tko-project__ticker-lane {
		overflow: hidden;
		scroll-snap-type: none;
	}
}

/* Tablet korzysta nadal z dwóch poziomych taśm. Dodatkowe desktopowe
   kolumny pozostają w DOM wyłącznie dla bezpiecznej zmiany breakpointu. */
@media (max-width: 1023px) {
	.tko-project__ticker-lane[data-tko-ticker-column="3"],
	.tko-project__ticker-lane[data-tko-ticker-column="4"] {
		display: none;
	}
}

@media (max-width: 900px) {
	.tko-project--ticker {
		--tko-ticker-card-width: 240px;
		--tko-ticker-gap: 18px;
		--tko-ticker-row-gap: 48px;
		padding-block: clamp(3.75rem, 9vw, 6rem);
	}

	.tko-project__ticker-head .tko-project__heading {
		font-size: clamp(3.8rem, 12vw, 7rem);
	}
}

@media (max-width: 560px) {
	.tko-project--ticker {
		--tko-ticker-card-width: 72vw;
		--tko-ticker-gap: 12px;
		--tko-ticker-row-gap: 28px;
		--tko-ticker-radius: 10px;
		padding-block: 3.5rem;
	}

	.tko-project__ticker {
		padding-block: 1rem;
	}

	.tko-project__ticker-head {
		width: min(var(--tko-ticker-heading-width), 92vw);
	}

	.tko-project__ticker-head .tko-project__heading {
		font-size: clamp(3.35rem, 15vw, 5.8rem);
		line-height: 0.82;
	}

	.tko-project__ticker-head .tko-project__intro {
		display: none;
	}

	.tko-project__project-description,
	.tko-project__project-link {
		display: none;
	}

	.tko-project__ticker-lane.has-edge-fade {
		-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 0.75rem, #000 calc(100% - 0.75rem), transparent 100%);
		mask-image: linear-gradient(90deg, transparent 0, #000 0.75rem, #000 calc(100% - 0.75rem), transparent 100%);
	}
}


/* === Mobile Projects: wariant pionowy =====================================
   Ten układ wykorzystuje istniejący markup pierwszej taśmy. Nie tworzy
   duplikatów, nie uruchamia autoplay i pozostawia dokładnie cztery pierwsze
   realizacje jako pełnoszerokościowe rzędy. Wariant poziomy zachowuje
   dotychczasowy ticker bez zmian. */
@media (max-width: 767px) {
	.tko-project--ticker[data-tko-project-mobile-layout="vertical"] {
		--tko-ticker-card-width: 100%;
		padding-block: clamp(3rem, 10vw, 4.5rem);
		overflow: clip;
	}

	.tko-project--ticker[data-tko-project-mobile-layout="vertical"] > .tko-section__inner {
		padding-inline: clamp(1rem, 5vw, 1.5rem);
	}

	.tko-project--ticker[data-tko-project-mobile-layout="vertical"] .tko-project__ticker {
		display: block;
		min-height: 0;
		padding-block: 0;
		overflow: visible;
	}

	.tko-project--ticker[data-tko-project-mobile-layout="vertical"] .tko-project__ticker-head {
		position: relative;
		inset: auto;
		z-index: 5;
		align-items: flex-start;
		width: 100%;
		margin: 0 0 clamp(1.75rem, 8vw, 2.75rem);
		padding-inline: 0;
		text-align: left;
		pointer-events: auto;
	}

	.tko-project--ticker[data-tko-project-mobile-layout="vertical"] .tko-project__ticker-copy,
	.tko-project--ticker[data-tko-project-mobile-layout="vertical"] .tko-project__head-cta {
		top: auto;
	}

	.tko-project--ticker[data-tko-project-mobile-layout="vertical"] .tko-project__ticker-copy {
		align-items: flex-start;
		width: 100%;
	}

	.tko-project--ticker[data-tko-project-mobile-layout="vertical"] .tko-project__ticker--blend-difference .tko-project__ticker-copy {
		color: var(--tko-fg);
		mix-blend-mode: normal;
	}

	.tko-project--ticker[data-tko-project-mobile-layout="vertical"] .tko-project__ticker-head .tko-project__heading {
		max-width: 9ch;
		font-size: clamp(2.8rem, 14vw, 4.8rem);
		line-height: 0.86;
		letter-spacing: -0.065em;
	}

	.tko-project--ticker[data-tko-project-mobile-layout="vertical"] .tko-project__ticker-head .tko-project__intro {
		display: block;
		max-width: 34ch;
		margin-top: 1rem;
		font-size: clamp(0.9rem, 4vw, 1rem);
		line-height: 1.35;
	}

	.tko-project--ticker[data-tko-project-mobile-layout="vertical"] .tko-project__ticker-lane {
		width: 100%;
		max-width: none;
		margin-left: 0;
		overflow: visible;
		contain: none;
		-webkit-mask-image: none;
		mask-image: none;
	}

	.tko-project--ticker[data-tko-project-mobile-layout="vertical"] .tko-project__ticker-lane:not([data-tko-ticker-column="1"]) {
		display: none;
	}

	.tko-project--ticker[data-tko-project-mobile-layout="vertical"] .tko-project__ticker-track,
	.tko-project--ticker[data-tko-project-mobile-layout="vertical"] .tko-project__ticker-group {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		gap: clamp(1rem, 5vw, 1.5rem);
		width: 100%;
		min-width: 0;
		transform: none !important;
		will-change: auto;
	}

	.tko-project--ticker[data-tko-project-mobile-layout="vertical"] .tko-project__ticker-group[data-tko-ticker-clone] {
		display: none;
	}

	.tko-project--ticker[data-tko-project-mobile-layout="vertical"] .tko-project__ticker-item {
		display: block;
		width: 100%;
		max-width: 100%;
		flex: none;
		aspect-ratio: var(--tko-ticker-card-ratio);
		border-radius: var(--tko-ticker-radius);
		box-shadow: 0 22px 55px -34px rgba(0, 0, 0, 0.72);
		contain: layout paint;
	}

	.tko-project--ticker[data-tko-project-mobile-layout="vertical"] .tko-project__ticker-item:nth-child(n+5) {
		display: none;
	}

	.tko-project--ticker[data-tko-project-mobile-layout="vertical"] .tko-project__project-info {
		transform: none;
	}

	.tko-project--ticker[data-tko-project-mobile-layout="vertical"] .tko-project__project-description {
		display: -webkit-box;
		opacity: 1;
		transform: none;
	}

	.tko-project--ticker[data-tko-project-mobile-layout="vertical"] .tko-project__project-link {
		display: inline-flex;
		opacity: 1;
		transform: none;
		backdrop-filter: none;
	}

	.tko-project--ticker[data-tko-project-mobile-layout="vertical"] .tko-project__tile-overlay {
		opacity: 0.88;
	}
}


@media (max-width: 767px) {
	.tko-project__gallery-nav {
		gap: 0.5rem;
		width: calc(100% - 2rem);
		margin-bottom: 2rem;
	}

	.tko-project__gallery-nav-link {
		min-height: 36px;
		padding: 0.6rem 0.85rem;
		font-size: 0.76rem;
	}

	.tko-project__ticker--heading-top .tko-project__ticker-head {
		margin-bottom: clamp(1.75rem, 8vw, 2.75rem);
	}

	.tko-project__ticker--heading-top .tko-project__ticker-copy .tko-project__heading {
		font-size: clamp(2.8rem, 14vw, 4.8rem);
	}
}

@media (min-width: 1024px) and (prefers-reduced-motion: reduce) {
	.tko-project__ticker-lane {
		overflow: hidden;
	}

	.tko-project__ticker-track {
		transform: none !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tko-project__ticker-lane {
		overflow-x: auto;
		scrollbar-width: none;
		scroll-snap-type: inline mandatory;
	}

	.tko-project__ticker-lane::-webkit-scrollbar {
		display: none;
	}

	.tko-project__ticker-track {
		transform: none !important;
		will-change: auto;
	}

	.tko-project--ticker .tko-project__ticker-item {
		scroll-snap-align: center;
		transition: none;
	}
}

/* === Nagłówek ============================================================ */

.tko-project__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--tko-space-lg);
	margin-bottom: var(--tko-space-lg);
}

.tko-project__head-col {
	flex: 1 1 320px;
	max-width: 620px;
	display: flex;
	flex-direction: column;
	gap: var(--tko-space-xs);
}

.tko-project__head-col--end {
	align-items: flex-start;
}

.tko-project__eyebrow {
	display: inline-flex;
	align-items: center;
	font-size: var(--tko-fs-small);
	font-weight: var(--tko-fw-medium);
	letter-spacing: var(--tko-tracking-wide);
	text-transform: uppercase;
	color: var(--tko-gray-500);
}

.tko-project__heading {
	margin: 0;
	font-weight: var(--tko-fw-medium);
	font-size: var(--tko-widget-h2, var(--tko-fs-h2));
	line-height: var(--tko-lh-tight);
	letter-spacing: var(--tko-tracking-tighter);
	color: var(--tko-fg);
}

.tko-project__intro {
	margin: 0;
	font-size: var(--tko-widget-body, var(--tko-fs-body-lg));
	line-height: var(--tko-lh-body);
	color: var(--tko-white-soft);
	max-width: 46ch;
}

.tko-project__head-cta {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.6rem 1.1rem;
	border: 1px solid var(--tko-border);
	border-radius: var(--tko-radius-full);
	color: var(--tko-fg);
	font-size: var(--tko-fs-small);
	font-weight: var(--tko-fw-medium);
	text-decoration: none;
	transition: background var(--tko-dur-fast) var(--tko-ease), border-color var(--tko-dur-fast) var(--tko-ease);
}

.tko-project__head-cta:hover,
.tko-project__head-cta:focus-visible {
	background: var(--tko-white-soft);
	color: var(--tko-black);
	border-color: transparent;
}

/* === Siatka =============================================================== */

.tko-project__grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: var(--tko-space-sm);
}

@media (max-width: 900px) {
	.tko-project__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.tko-project__grid {
		grid-template-columns: 1fr;
	}
}

.tko-project__tile {
	position: relative;
	display: block;
	width: 100%;
	min-width: 0;
	aspect-ratio: 4 / 5;
	border-radius: var(--tko-radius-md);
	overflow: hidden;
	background: var(--tko-black-soft);
	border: 1px solid var(--tko-border);
	text-align: left;
	appearance: none;
	color: inherit;
	text-decoration: none;
	cursor: pointer;
	background-size: cover;
	background-position: center;
}

/* === Rozmiary: Mała / Średnia / Duża =====================================
   Siatka bazowa ma 6 kolumn — daje 3 realnie różne szerokości zamiast
   dawnego "1 albo 2 z 3". Proporcje dobrane tak, żeby "Mała" odpowiadała
   dawnej domyślnej szerokości, a "Duża" — dawnemu wariantowi "szerokiemu"
   (2 z 3 kolumn, ~66%). */
.tko-project__tile--small {
	grid-column: span 2; /* 1/3 szerokości — jak dawny wariant domyślny */
	aspect-ratio: 4 / 5;
}

.tko-project__tile--medium {
	grid-column: span 3; /* 1/2 szerokości */
	aspect-ratio: 1 / 1;
}

.tko-project__tile--large {
	grid-column: span 4; /* 2/3 szerokości — jak dawny wariant "szeroki" */
	aspect-ratio: 8 / 5;
}

@media (max-width: 900px) {
	.tko-project__tile--small,
	.tko-project__tile--medium {
		grid-column: span 1;
		aspect-ratio: 4 / 5;
	}
	.tko-project__tile--large {
		grid-column: span 2;
		aspect-ratio: 8 / 5;
	}
}

@media (max-width: 560px) {
	/* Jedna kolumna — wymuszamy span:1, inaczej span:3/4 z desktopu
	   tworzyłby niejawne (implicit) kolumny i poziomy scroll. */
	.tko-project__tile--small,
	.tko-project__tile--medium,
	.tko-project__tile--large {
		grid-column: span 1;
		aspect-ratio: 4 / 5;
	}
}

.tko-project__tile-media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1);
	transition: transform var(--tko-dur-slow) var(--tko-ease-out-soft);
}

.tko-project__tile:hover .tko-project__tile-media,
.tko-project__tile:focus-visible .tko-project__tile-media {
	transform: scale(1.06);
}

.tko-project__tile-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15, 14, 14, 0) 45%, rgba(15, 14, 14, 0.82) 100%);
	opacity: 0.85;
	transition: opacity var(--tko-dur-base) var(--tko-ease);
	pointer-events: none;
}

.tko-project__tile:hover .tko-project__tile-overlay,
.tko-project__tile:focus-visible .tko-project__tile-overlay {
	opacity: 1;
}

.tko-project__tile-expand {
	position: absolute;
	top: var(--tko-space-sm);
	right: var(--tko-space-sm);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 50%;
	background: rgba(252, 252, 246, 0.14);
	backdrop-filter: blur(6px);
	color: var(--tko-white);
	opacity: 0;
	transform: scale(0.85);
	transition: opacity var(--tko-dur-fast) var(--tko-ease), transform var(--tko-dur-fast) var(--tko-ease);
}

.tko-project__tile:hover .tko-project__tile-expand,
.tko-project__tile:focus-visible .tko-project__tile-expand {
	opacity: 1;
	transform: scale(1);
}

.tko-project__tile-meta {
	position: absolute;
	left: var(--tko-space-sm);
	right: var(--tko-space-sm);
	bottom: var(--tko-space-sm);
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
}

.tko-project__tile-title {
	font-size: var(--tko-fs-body);
	font-weight: var(--tko-fw-medium);
	color: var(--tko-white);
	letter-spacing: var(--tko-tracking-tight);
}

.tko-project__tile-cat {
	font-size: var(--tko-fs-small);
	color: var(--tko-white-soft);
	opacity: 0.75;
	text-transform: uppercase;
	letter-spacing: var(--tko-tracking-wide);
}

/* === Karta teaser case study ============================================= */

.tko-project__tile--teaser {
	grid-column: span 4; /* jak "Duża" — 2/3 szerokości siatki 6-kolumnowej */
	aspect-ratio: 8 / 5;
	display: flex;
	align-items: flex-end;
	background-color: var(--tko-gray-700);
}

@media (max-width: 900px) {
	.tko-project__tile--teaser {
		grid-column: span 2;
	}
}

@media (max-width: 560px) {
	.tko-project__tile--teaser {
		grid-column: span 1;
		aspect-ratio: 4 / 5;
	}
}

.tko-project__tile-overlay--teaser {
	background: linear-gradient(180deg, rgba(15, 14, 14, 0.1) 0%, rgba(15, 14, 14, 0.92) 100%);
	opacity: 1;
}

.tko-project__teaser-body {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding: var(--tko-space-md);
	max-width: 34rem;
}

.tko-project__teaser-title {
	font-size: var(--tko-fs-h4);
	font-weight: var(--tko-fw-semibold);
	color: var(--tko-white);
	letter-spacing: var(--tko-tracking-tight);
}

.tko-project__teaser-text {
	font-size: var(--tko-fs-body);
	color: var(--tko-white-soft);
	line-height: var(--tko-lh-body);
}

.tko-project__teaser-cta {
	margin-top: 0.35rem;
	display: inline-flex;
	align-items: center;
	font-size: var(--tko-fs-small);
	font-weight: var(--tko-fw-semibold);
	color: var(--tko-white);
	letter-spacing: var(--tko-tracking-tight);
	transition: transform var(--tko-dur-fast) var(--tko-ease);
}

.tko-project__tile--teaser:hover .tko-project__teaser-cta,
.tko-project__tile--teaser:focus-visible .tko-project__teaser-cta {
	transform: translateX(4px);
}

/* === Lightbox — FLIP wzorowany na TechLab (EYVI) ==========================
   Bez widocznego przycisku zamknięcia — celowo (patrz tko-project.js):
   klik poza treścią / wideo / Esc zamyka widok.

   `.tko-project__lightbox` to WYŁĄCZNIE ciemne tło (backdrop), fade
   opacity. `.tko-project__lightbox-stage` to sam box — jego top/left/
   width/height/border-radius są sterowane customowymi property
   (--tko-lightbox-*), które JS animuje od pozycji/rozmiaru klikniętego
   kafla (FLIP "First") do docelowego okna (FLIP "Last": prawie pełny
   ekran dla wideo, mniejszy wyśrodkowany box dla zdjęć). Dzięki temu box
   dosłownie "wyrasta" z kafla, zamiast pojawiać się w wyśrodkowanym miejscu. */

.tko-project__lightbox {
	position: fixed;
	inset: 0;
	z-index: var(--tko-z-offcanvas);
	background: rgba(15, 14, 14, 0.94);
	opacity: 0;
	visibility: hidden;
	outline: none;
	overflow: hidden;
	max-width: 100%;
	transition: opacity 0.52s var(--tko-ease-out-soft), visibility 0s linear 0.52s;
}

.tko-project__lightbox[data-open] {
	opacity: 1;
	visibility: visible;
	transition: opacity 0.52s var(--tko-ease-out-soft);
}


.tko-project__lightbox[data-closing] {
	opacity: 0;
	visibility: visible;
	pointer-events: auto;
	transition: opacity 0.58s var(--tko-ease-out-soft), visibility 0s linear 0.58s;
}

.tko-project__lightbox-stage {
	position: fixed;
	top: var(--tko-lightbox-top, 0px);
	left: var(--tko-lightbox-left, 0px);
	width: var(--tko-lightbox-width, 100%);
	height: var(--tko-lightbox-height, 100%);
	max-width: 100vw;
	max-height: 100dvh;
	border-radius: var(--tko-lightbox-radius, 14px);
	overflow: hidden;
	background: var(--tko-black-soft);
	isolation: isolate;
	contain: layout paint;
	cursor: default;
	backface-visibility: hidden;
	box-shadow: 0 40px 90px -30px rgba(0, 0, 0, 0.6);
}

.tko-project__lightbox[data-open] .tko-project__lightbox-stage,
.tko-project__lightbox-stage.is-closing {
	will-change: top, left, width, height, opacity;
}

/* --- Treść: wideo (cover, edge-to-edge na docelowym boksie) --------------- */

.tko-project__lightbox-media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.tko-project__lightbox-video {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate3d(-50%, -50%, 0);
	object-fit: cover;
	pointer-events: none;
}

/* Delikatny gradient od dołu — dodatkowe (poza text-shadow) zabezpieczenie
   czytelności podpisu na jasnych/ruchliwych kadrach wideo. */
.tko-project__lightbox-media::after {
	content: '';
	position: absolute;
	inset: auto 0 0 0;
	z-index: 1;
	height: clamp(180px, 42%, 480px);
	pointer-events: none;
	background: linear-gradient(180deg, rgba(15, 14, 14, 0) 0%, rgba(15, 14, 14, 0.1) 30%, rgba(15, 14, 14, 0.35) 58%, rgba(15, 14, 14, 0.68) 82%, rgba(15, 14, 14, 0.86) 100%);
}

.tko-project__lightbox-caption {
	position: absolute;
	right: var(--tko-space-lg);
	bottom: var(--tko-space-lg);
	left: var(--tko-space-lg);
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.3rem;
	text-align: right;
	max-width: 32rem;
	margin-left: auto;
	opacity: 0;
	transform: translate3d(0, 16px, 0);
	transition: opacity var(--tko-dur-slow) var(--tko-ease-out-soft), transform var(--tko-dur-slow) var(--tko-ease-out-soft);
	/* Cień zamiast pełnego tła — tekst zostaje czytelny bez zasłaniania wideo. */
	text-shadow: 0 2px 18px rgba(0, 0, 0, 0.7), 0 1px 6px rgba(0, 0, 0, 0.55);
}

/* Podpis doczytuje się DOPIERO gdy box się ustabilizuje (is-text-ready
   dodawane w JS dwa rAF-y po zakończeniu animacji FLIP) — ten sam
   staggered reveal co w TechLab. */
.tko-project__lightbox-stage.is-open.is-text-ready .tko-project__lightbox-caption {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

.tko-project__lightbox-eyebrow {
	font-size: var(--tko-fs-small);
	font-weight: var(--tko-fw-medium);
	letter-spacing: var(--tko-tracking-wide);
	text-transform: uppercase;
	color: var(--tko-white-soft);
}

.tko-project__lightbox-title {
	font-size: var(--tko-fs-h3);
	font-weight: var(--tko-fw-medium);
	letter-spacing: var(--tko-tracking-tight);
	line-height: var(--tko-lh-tight);
	color: var(--tko-white);
}

.tko-project__lightbox-note-text {
	max-width: 34ch;
	font-size: var(--tko-fs-body);
	line-height: var(--tko-lh-body);
	color: var(--tko-white-soft);
}

@media (max-width: 640px) {
	.tko-project__lightbox-caption {
		right: var(--tko-space-sm);
		bottom: var(--tko-space-sm);
		left: var(--tko-space-sm);
		align-items: flex-start;
		text-align: left;
		max-width: none;
	}
}

/* --- Treść: zdjęcie (contain — bez kadrowania fotografii) ----------------- */

.tko-project__lightbox-media--contain {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--tko-black-soft);
}

.tko-project__lightbox-image {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
}

/* prefers-reduced-motion: kafle w siatce bez scale na hover (tylko opacity);
   box lightboxa nadal zmienia rozmiar (to nośnik informacji "co się otwiera"),
   ale bez dodatkowych przesunięć podpisu. */
@media (prefers-reduced-motion: reduce) {
	.tko-project__tile-media {
		transition-property: opacity;
		transform: none !important;
	}

	.tko-project__lightbox-caption {
		transition-property: opacity;
		transform: none !important;
	}
}

.tko-project__lightbox[data-content-type="video"] .tko-project__lightbox-stage,
.tko-project__lightbox[data-content-type="video"] .tko-project__lightbox-media {
	cursor: zoom-out;
}

.tko-project__lightbox-stage.is-closing .tko-project__lightbox-caption {
	opacity: 0;
	transform: translate3d(0, 10px, 0);
	transition-duration: 0.22s;
}

.tko-project__lightbox-project-link {
	display: inline-flex;
	align-items: center;
	margin-top: 0.65rem;
	padding: 0.55rem 0.85rem;
	border: 1px solid rgba(252, 252, 246, 0.42);
	border-radius: 999px;
	background: var(--tko-accent);
	color: var(--tko-accent-ink);
	font-size: var(--tko-fs-small);
	font-weight: var(--tko-fw-medium);
	text-decoration: none;
	text-shadow: none;
}

.tko-project__lightbox-project-link:hover,
.tko-project__lightbox-project-link:focus-visible {
	background: var(--tko-white);
	border-color: var(--tko-white);
	color: var(--tko-black);
}

/* === 1.6.18.11: cztery pionowe taśmy z nagłówkiem nad zdjęciami =========== */

.tko-project__category-filters {
	position: relative;
	z-index: 12;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem;
	width: 100%;
	margin: 0;
}

.tko-project__category-filter {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 0.7rem 1.05rem;
	border: 1px solid color-mix(in srgb, var(--tko-fg) 26%, transparent);
	border-radius: 999px;
	background: transparent;
	color: color-mix(in srgb, var(--tko-fg) 76%, transparent);
	font: inherit;
	font-size: 0.8rem;
	font-weight: var(--tko-fw-medium);
	line-height: 1;
	letter-spacing: 0.015em;
	cursor: pointer;
	appearance: none;
	transition:
		color 0.24s var(--tko-ease),
		background 0.24s var(--tko-ease),
		border-color 0.24s var(--tko-ease),
		transform 0.24s var(--tko-ease-out-soft);
}

.tko-project__category-filter:hover,
.tko-project__category-filter:focus-visible {
	border-color: var(--tko-accent);
	color: var(--tko-fg);
	transform: translateY(-1px);
}

.tko-project__category-filter.is-active {
	border-color: var(--tko-accent);
	background: var(--tko-accent);
	color: var(--tko-accent-ink);
}

.tko-project__ticker-item[hidden] {
	display: none !important;
}

[data-tko-project-filter-grid].is-filtering {
	pointer-events: none;
}

@media (min-width: 1024px) {
	.tko-project--ticker.tko-project--top-columns {
		--tko-project-columns-viewport: clamp(820px, 82vw, 1180px);
		min-height: calc(
			var(--tko-project-columns-viewport) +
			clamp(290px, 30vw, 430px)
		);
		padding-block: 0;
	}

	.tko-project--top-columns > .tko-section__inner {
		width: min(1360px, calc(100vw - 64px));
		max-width: 1360px;
		margin-inline: auto;
		padding-inline: 0;
	}

	.tko-project--top-columns .tko-project__ticker--heading-top {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		grid-template-rows:
			auto
			auto
			var(--tko-project-columns-viewport);
		align-items: stretch;
		justify-content: center;
		column-gap: min(var(--tko-ticker-row-gap), 5vw);
		row-gap: clamp(1.25rem, 2.4vw, 2.5rem);
		width: 100%;
		height: auto;
		min-height: 0;
		padding-block: clamp(3rem, 5vw, 5rem);
		overflow: hidden;
	}

	.tko-project--top-columns .tko-project__ticker--heading-top .tko-project__ticker-head {
		position: relative;
		inset: auto;
		grid-column: 1 / -1;
		grid-row: 1;
		z-index: 8;
		display: flex;
		align-items: flex-start;
		justify-content: space-between;
		width: 100%;
		margin: 0;
		padding: 0;
		text-align: left;
		pointer-events: auto;
	}

	.tko-project--top-columns .tko-project__ticker--heading-top .tko-project__ticker-copy {
		top: auto;
		align-items: flex-start;
		width: min(var(--tko-ticker-heading-width), 100%);
		color: var(--tko-fg);
		mix-blend-mode: normal;
	}

	.tko-project--top-columns .tko-project__category-filters {
		grid-column: 1 / -1;
		grid-row: 2;
	}

	.tko-project--top-columns .tko-project__ticker-lane {
		grid-row: 3;
		width: 100%;
		max-width: none;
		height: var(--tko-project-columns-viewport);
		min-height: var(--tko-project-columns-viewport);
		margin-left: 0;
		overflow: hidden;
		contain: layout paint;
	}

	.tko-project--top-columns .tko-project__ticker-track,
	.tko-project--top-columns .tko-project__ticker-group {
		flex-direction: column;
		align-items: stretch;
		width: 100%;
		min-width: 0;
		height: max-content;
		min-height: max-content;
		gap: var(--tko-ticker-gap);
	}

	.tko-project--top-columns .tko-project__ticker-item {
		flex: 0 0 auto;
		width: 100%;
		max-width: 100%;
		aspect-ratio: var(--tko-ticker-desktop-card-ratio);
	}
}

@media (min-width: 768px) and (max-width: 1023px) {
	.tko-project--top-columns .tko-project__category-filters {
		margin-inline: clamp(1.25rem, 4vw, 2.5rem);
	}
}

@media (max-width: 767px) {
	.tko-project--top-columns .tko-project__category-filters {
		gap: 0.45rem;
		margin: 0 1rem 1.5rem;
	}

	.tko-project__category-filter {
		min-height: 36px;
		padding: 0.62rem 0.85rem;
		font-size: 0.75rem;
	}
}

@media (min-width: 1024px) and (max-width: 1199px) {
	.tko-project--ticker.tko-project--top-columns {
		--tko-project-columns-viewport: clamp(820px, 86vw, 980px);
	}
}

/* === Projekty i realizacje — dopracowanie bez zmiany układu ============== */

/* Markery, etykiety i filtry nie są pokazywane, ale kategorie pozostają
   zapisane w data-attributes i służą do nawigacji lightboxa. */
.tko-project__category-filters,
.tko-project__tile-meta,
.tko-project__project-info {
	display: none !important;
}

/* Nagłówek i tekst pozostają nad czterema taśmami. */
.tko-project__ticker--heading-top .tko-project__ticker-head {
	position: relative;
	z-index: 5;
}

/* Ozdobny znak pod centralną częścią projektów. */
.tko-project__decorative-mark {
	display: grid;
	place-items: center;
	width: min(62vw, 720px);
	margin: clamp(2.5rem, 7vw, 7rem) auto 0;
	color: var(--tko-white);
	opacity: 0.18;
	transform: rotate(-6deg);
	pointer-events: none;
}

.tko-project__decorative-mark img,
.tko-project__decorative-mark svg {
	display: block;
	width: 100%;
	height: auto;
	max-height: 38vh;
	object-fit: contain;
	filter: brightness(0) invert(1);
}

/* Nawigacja wszystkich materiałów z aktualnie otwartej kategorii. */
.tko-project__lightbox-nav {
	position: fixed;
	z-index: 3;
	top: 50%;
	display: grid;
	place-items: center;
	width: clamp(2.75rem, 4vw, 3.75rem);
	height: clamp(2.75rem, 4vw, 3.75rem);
	padding: 0;
	border: 1px solid rgba(252, 252, 246, 0.34);
	border-radius: 50%;
	background: rgba(15, 14, 14, 0.42);
	color: var(--tko-white);
	backdrop-filter: blur(8px);
	transform: translateY(-50%);
	cursor: pointer;
	transition:
		background var(--tko-dur-fast) var(--tko-ease),
		color var(--tko-dur-fast) var(--tko-ease),
		border-color var(--tko-dur-fast) var(--tko-ease),
		transform var(--tko-dur-fast) var(--tko-ease-out-soft);
}

.tko-project__lightbox-nav[hidden] {
	display: none !important;
}

.tko-project__lightbox-nav:hover,
.tko-project__lightbox-nav:focus-visible {
	background: var(--tko-white);
	color: var(--tko-black);
	border-color: var(--tko-white);
	outline: none;
}

.tko-project__lightbox-nav--prev {
	left: clamp(0.75rem, 2.5vw, 2.5rem);
}

.tko-project__lightbox-nav--next {
	right: clamp(0.75rem, 2.5vw, 2.5rem);
}

.tko-project__lightbox-nav--prev:hover,
.tko-project__lightbox-nav--prev:focus-visible {
	transform: translateY(-50%) translateX(-3px);
}

.tko-project__lightbox-nav--next:hover,
.tko-project__lightbox-nav--next:focus-visible {
	transform: translateY(-50%) translateX(3px);
}

.tko-project__lightbox-count {
	position: absolute;
	right: clamp(0.75rem, 2vw, 1.5rem);
	bottom: clamp(0.65rem, 1.5vw, 1rem);
	z-index: 4;
	padding: 0.4rem 0.6rem;
	border-radius: var(--tko-radius-full);
	background: rgba(15, 14, 14, 0.56);
	color: var(--tko-white);
	font-size: 0.72rem;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.08em;
	backdrop-filter: blur(6px);
}

.tko-project__lightbox-count[hidden] {
	display: none !important;
}

@media (max-width: 767px) {
	.tko-project__decorative-mark {
		width: min(92vw, 520px);
		margin-top: 3rem;
		opacity: 0.15;
	}

	.tko-project__lightbox-nav {
		top: auto;
		bottom: max(1rem, env(safe-area-inset-bottom));
		transform: none;
	}

	.tko-project__lightbox-nav--prev {
		left: 1rem;
	}

	.tko-project__lightbox-nav--next {
		right: 1rem;
	}

	.tko-project__lightbox-nav--prev:hover,
	.tko-project__lightbox-nav--prev:focus-visible,
	.tko-project__lightbox-nav--next:hover,
	.tko-project__lightbox-nav--next:focus-visible {
		transform: none;
	}

	.tko-project__lightbox-count {
		left: 50%;
		right: auto;
		bottom: max(1.55rem, calc(env(safe-area-inset-bottom) + 0.55rem));
		transform: translateX(-50%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.tko-project__lightbox-nav {
		transition: none;
	}

	.tko-project__decorative-mark {
		transform: none;
	}
}

/* 1.7.1 - lekka blokada scrolla przy otwartym lightboxie. Wersja 1.7.0
   uzywala body:fixed (TKO.holdScroll) i overflow:hidden - obie sciezki
   zeruja/ruszaja pozycje scrolla albo chowaja pasek przewijania, co na
   stronie z pinowanymi sekcjami ScrollTriggera resetowalo animacje
   ("reset strony") i konczylo sie naglym skokiem po zamknieciu.
   Teraz strona i pasek zostaja nietkniete: wheel/touchmove/klawisze
   wygasza JS na overlayu (tko-project.js), a touch-action domyka
   natywne panowanie na iOS. Klasa body.tko-project-lightbox-open
   pozostaje jako hook stylistyczny. */
.tko-project__lightbox[data-open] {
	touch-action: none;
}


/* === 1.7.43 — spójna typografia Projektów =============================== */
.tko-project,.tko-project button,.tko-project a { font-family:var(--tko-font-primary) !important; }
.tko-project__eyebrow,.tko-project__ticker-head .tko-project__eyebrow,.tko-project__lightbox-eyebrow,.tko-project__tile-overlay .tko-project__tile-category { font-size:var(--tko-type-eyebrow-size) !important;font-weight:var(--tko-type-eyebrow-weight) !important;line-height:var(--tko-type-eyebrow-line) !important;letter-spacing:var(--tko-type-eyebrow-track) !important;text-transform:uppercase !important; }
.tko-project__heading,.tko-project__ticker-copy h2 { font-size:var(--tko-type-display-size) !important;font-weight:var(--tko-type-display-weight) !important;line-height:var(--tko-type-display-line) !important;letter-spacing:var(--tko-type-display-track) !important; }
.tko-project__intro,.tko-project__ticker-copy p { font-size:var(--tko-type-lead-size) !important;font-weight:var(--tko-type-lead-weight) !important;line-height:var(--tko-type-lead-line) !important;letter-spacing:var(--tko-type-lead-track) !important; }
.tko-project__tile-overlay h3,.tko-project__teaser-title { font-size:var(--tko-type-item-title-size) !important;font-weight:var(--tko-type-item-title-weight) !important;line-height:var(--tko-type-item-title-line) !important;letter-spacing:var(--tko-type-item-title-track) !important; }
.tko-project__tile-overlay p,.tko-project__teaser-text,.tko-project__lightbox-note-text { font-size:var(--tko-type-body-size) !important;font-weight:var(--tko-type-body-weight) !important;line-height:var(--tko-type-body-line) !important;letter-spacing:var(--tko-type-body-track) !important; }
.tko-project__head-cta,.tko-project__teaser-cta,.tko-project__lightbox-project-link,.tko-project__gallery-nav-link,.tko-project__category-filter { font-size:var(--tko-type-action-size) !important;font-weight:var(--tko-type-action-weight) !important;line-height:var(--tko-type-action-line) !important;letter-spacing:var(--tko-type-action-track) !important; }
.tko-project__lightbox-title { font-size:var(--tko-fs-h3) !important;font-weight:var(--tko-fw-medium) !important;line-height:var(--tko-lh-tight) !important;letter-spacing:var(--tko-tracking-tight) !important; }
.tko-project__lightbox-count { font-size:var(--tko-type-meta-size) !important;font-weight:var(--tko-type-meta-weight) !important;line-height:var(--tko-type-meta-line) !important;letter-spacing:var(--tko-type-eyebrow-track) !important; }
/**
 * TKO Orkiestra — sekcja "Program koncertu" (jasne tło, akordeon utworów).
 * Rozwijanie opisu animowane w tko-program.js (GSAP height auto, fallback
 * CSS). Wiersz bez opisu renderuje się jako statyczny (bez przycisku/chevronu).
 */

.tko-program {
	--tko-program-icon-size: 14px;
	padding-block: var(--tko-space-2xl) var(--tko-space-xl);
	background: var(--tko-white);
	color: var(--tko-black);
}

/* === Nagłówek ============================================================ */

.tko-program__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--tko-space-lg);
	margin-bottom: var(--tko-space-lg);
	padding-bottom: var(--tko-space-md);
	border-bottom: 1px solid var(--tko-border-on-light);
}

.tko-program__head-col {
	display: flex;
	flex-direction: column;
	gap: var(--tko-space-xs);
	flex: 1 1 320px;
}

.tko-program__eyebrow {
	display: inline-flex;
	font-size: var(--tko-fs-small);
	font-weight: var(--tko-fw-medium);
	letter-spacing: var(--tko-tracking-wide);
	text-transform: uppercase;
	color: var(--tko-gray-500);
}

.tko-program__heading {
	margin: 0;
	font-weight: var(--tko-fw-medium);
	font-size: var(--tko-widget-h2, var(--tko-fs-h2));
	line-height: var(--tko-lh-tight);
	letter-spacing: var(--tko-tracking-tighter);
	color: var(--tko-black);
}

.tko-program__intro {
	margin: 0;
	max-width: 34ch;
	flex: 0 1 320px;
	font-size: var(--tko-widget-body, var(--tko-fs-body));
	line-height: var(--tko-lh-body);
	color: var(--tko-gray-700);
}

/* === Lista =============================================================== */

.tko-program__list {
	display: flex;
	min-width: 0;
	flex-direction: column;
}

.tko-program__item {
	border-bottom: 1px solid var(--tko-border-on-light);
}

.tko-program__row {
	position: relative;
	width: 100%;
	display: grid;
	grid-template-columns: 2.5rem minmax(0, 1fr) auto auto;
	align-items: center;
	gap: var(--tko-space-md);
	padding-block: var(--tko-space-sm);
	background: none;
	border: none;
	text-align: left;
	appearance: none;
	color: inherit;
	cursor: pointer;
}

.tko-program__item--static .tko-program__row {
	grid-template-columns: 2.5rem minmax(0, 1fr) auto;
	cursor: default;
}

.tko-program__index {
	font-variant-numeric: tabular-nums;
	font-size: var(--tko-fs-small);
	color: var(--tko-gray-500);
}

.tko-program__titles {
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
	min-width: 0;
}

.tko-program__title {
	font-size: var(--tko-fs-h4);
	font-weight: var(--tko-fw-medium);
	color: var(--tko-black);
	letter-spacing: var(--tko-tracking-tight);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.tko-program__composer {
	font-size: var(--tko-fs-small);
	color: var(--tko-gray-500);
}

.tko-program__duration {
	font-variant-numeric: tabular-nums;
	font-size: var(--tko-fs-body);
	color: var(--tko-gray-500);
	white-space: nowrap;
}

.tko-program__chevron {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: calc(var(--tko-program-icon-size, 14px) + 0.875rem);
	height: calc(var(--tko-program-icon-size, 14px) + 0.875rem);
	border-radius: 50%;
	color: var(--tko-black);
	transition: transform var(--tko-dur-base) var(--tko-ease), background var(--tko-dur-fast) var(--tko-ease);
}

.tko-program__chevron svg {
	display: block;
	width: var(--tko-program-icon-size, 14px);
	height: var(--tko-program-icon-size, 14px);
	flex: 0 0 auto;
}

.tko-program__row:hover .tko-program__chevron,
.tko-program__row:focus-visible .tko-program__chevron {
	background: var(--tko-white-soft);
}

.tko-program__row[aria-expanded='true'] .tko-program__chevron {
	transform: rotate(180deg);
}

.tko-program__panel {
	overflow: hidden;
	height: 0;
}

.tko-program__description {
	margin: 0;
	padding-bottom: var(--tko-space-md);
	padding-left: calc(2.5rem + var(--tko-space-md));
	max-width: 60ch;
	font-size: var(--tko-fs-body);
	line-height: var(--tko-lh-body);
	color: var(--tko-black);
	transition: color var(--tko-dur-fast) var(--tko-ease);
}

/* Opis jest widoczny wyłącznie po rozwinięciu. Użycie bazowego koloru
   sekcji daje czarny tekst na jasnym tle i biały po odwróceniu palety. */
.tko-program .tko-program__row[aria-expanded='true'] + .tko-program__panel .tko-program__description {
	color: var(--tko-black);
}

@media (max-width: 640px) {
	.tko-program__row,
	.tko-program__item--static .tko-program__row {
		grid-template-columns: 2rem minmax(0, 1fr) auto;
		gap: var(--tko-space-sm);
	}
	.tko-program__row .tko-program__chevron {
		grid-column: 3;
	}
	.tko-program__duration {
		grid-row: 2;
		grid-column: 2 / span 2;
		font-size: var(--tko-fs-small);
	}
	.tko-program__description {
		padding-left: calc(2rem + var(--tko-space-sm));
	}

	.tko-program__title {
		white-space: normal;
		overflow: visible;
		text-overflow: clip;
		line-height: 1.08;
		overflow-wrap: anywhere;
	}
}

/* === Hover preview przypisany do etapu programu ========================= */

.tko-program {
	position: relative;
	isolation: isolate;
	max-width: 100%;
	overflow-x: clip;
}

.tko-program__item {
	position: relative;
	transition: background-color 0.34s var(--tko-ease-out-soft);
}

.tko-program__item--has-preview:is(:hover, :focus-within, .is-preview-active) {
	background: rgba(17, 17, 17, 0.035);
}

.tko-program__item--has-preview .tko-program__title,
.tko-program__item--has-preview .tko-program__index {
	transition: transform 0.42s var(--tko-ease-out-soft), color 0.34s var(--tko-ease-out-soft);
}

.tko-program__item--has-preview:is(:hover, :focus-within, .is-preview-active) .tko-program__title {
	transform: translate3d(8px, 0, 0);
}

.tko-program__item--has-preview:is(:hover, :focus-within, .is-preview-active) .tko-program__index {
	color: var(--tko-black);
}

.tko-program__hover-preview {
	--tko-program-preview-x: 16px;
	--tko-program-preview-y: 16px;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 20;
	width: clamp(210px, 24vw, 360px);
	aspect-ratio: 4 / 3;
	border-radius: clamp(12px, 1.4vw, 20px);
	overflow: hidden;
	background: var(--tko-black-soft);
	box-shadow: 0 28px 70px -28px rgba(0, 0, 0, 0.48);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translate3d(var(--tko-program-preview-x), var(--tko-program-preview-y), 0) scale(0.965);
	transform-origin: center;
	transition: opacity 0.34s var(--tko-ease-out-soft), transform 0.46s var(--tko-ease-out-soft), visibility 0s linear 0.46s;
	backface-visibility: hidden;
}

.tko-program__hover-preview.is-visible {
	opacity: 1;
	visibility: visible;
	transform: translate3d(var(--tko-program-preview-x), var(--tko-program-preview-y), 0) scale(1);
	transition: opacity 0.34s var(--tko-ease-out-soft), transform 0.46s var(--tko-ease-out-soft), visibility 0s linear 0s;
}

.tko-program__hover-preview img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transform: scale(1.045);
	transition: opacity 0.42s var(--tko-ease-out-soft), transform 0.72s var(--tko-ease-out-soft);
	backface-visibility: hidden;
}

.tko-program__hover-preview img.is-active {
	opacity: 1;
	transform: scale(1.001);
}

@media (hover: none), (pointer: coarse), (max-width: 767px) {
	.tko-program__hover-preview {
		display: none;
	}
	.tko-program__item--has-preview:is(:hover, :focus-within, .is-preview-active) .tko-program__title {
		transform: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tko-program__item,
	.tko-program__item--has-preview .tko-program__title,
	.tko-program__item--has-preview .tko-program__index,
	.tko-program__hover-preview,
	.tko-program__hover-preview img {
		transition: none !important;
	}
}

/* 1.7.12 — mobile: akordeon nie może przekraczać szerokości viewportu.
   Reguły są ograniczone do telefonów, więc desktop i tablet pozostają bez zmian. */
@media (max-width: 767px) {
	.tko-program__list,
	.tko-program__item,
	.tko-program__row,
	.tko-program__panel,
	.tko-program__titles,
	.tko-program__title,
	.tko-program__composer,
	.tko-program__description {
		min-width: 0;
		max-width: 100%;
		box-sizing: border-box;
	}

	.tko-program__list,
	.tko-program__item,
	.tko-program__row,
	.tko-program__panel {
		width: 100%;
	}

	.tko-program__title,
	.tko-program__composer,
	.tko-program__description {
		overflow-wrap: anywhere;
		word-break: break-word;
	}

	.tko-program__description {
		width: 100%;
		padding-right: var(--tko-space-sm);
	}

	.tko-program__duration {
		min-width: 0;
		max-width: 100%;
	}
}



/* 1.7.14 — mobile: pole Elementora „Kompozytor / autor aranżacji”.
   Zachowujemy je w kolumnie tytułów, ale dajemy mu realny oddech od prawej
   krawędzi i od tytułu oraz wymuszamy bezpieczne zawijanie długiej treści. */
@media (max-width: 767px) {
	.tko-program__composer {
		display: block;
		width: auto;
		min-width: 0;
		max-width: 100%;
		margin-top: 0.35rem;
		margin-right: var(--tko-space-xs);
		white-space: normal;
		line-height: 1.35;
		overflow-wrap: anywhere;
		word-break: normal;
	}
}


/* === 1.7.43 — spójna typografia Programu ================================= */
.tko-program,.tko-program button,.tko-program a { font-family:var(--tko-font-primary) !important; }
.tko-program__eyebrow { font-size:var(--tko-type-eyebrow-size) !important;font-weight:var(--tko-type-eyebrow-weight) !important;line-height:var(--tko-type-eyebrow-line) !important;letter-spacing:var(--tko-type-eyebrow-track) !important;text-transform:uppercase !important; }
.tko-program__heading { font-size:var(--tko-type-display-size) !important;font-weight:var(--tko-type-display-weight) !important;line-height:var(--tko-type-display-line) !important;letter-spacing:var(--tko-type-display-track) !important; }
.tko-program__intro { font-size:var(--tko-type-lead-size) !important;font-weight:var(--tko-type-lead-weight) !important;line-height:var(--tko-type-lead-line) !important;letter-spacing:var(--tko-type-lead-track) !important; }
.tko-program__index,.tko-program__duration { font-size:var(--tko-type-meta-size) !important;font-weight:var(--tko-type-meta-weight) !important;line-height:var(--tko-type-meta-line) !important;letter-spacing:var(--tko-type-meta-track) !important; }
.tko-program__title { font-size:var(--tko-fs-h4) !important;font-weight:var(--tko-type-item-title-weight) !important;line-height:1.25 !important;letter-spacing:var(--tko-type-item-title-track) !important; }
.tko-program__composer,.tko-program__description { font-size:var(--tko-type-body-size) !important;font-weight:var(--tko-type-body-weight) !important;line-height:var(--tko-type-body-line) !important;letter-spacing:var(--tko-type-body-track) !important; }
/**
 * TKO Orkiestra — sekcja "Bilety" (cinematic scroll-carousel wydarzeń).
 *
 * Warstwy tła (`__bg-layer`) i panele treści (`__panel`) są nałożone na
 * siebie (CSS Grid stacking: wszystkie dzieci we wspólnej komórce grida),
 * więc kontener zawsze dopasowuje wysokość do najwyższego WIDOCZNEGO
 * panelu — crossfade między wydarzeniami nigdy nie powoduje layout shiftu,
 * nawet gdy teksty (data/miejsce/cena) mają różną długość.
 *
 * Tryb "pinned" (desktop, tablet i mobile, patrz tko-tickets.js) jest sterowany WYŁĄCZNIE
 * dodaniem klasy `.tko-tickets--pinned` przez JS po utworzeniu
 * ScrollTriggera — CSS nie zgaduje trybu z media query, żeby zostać
 * spójny z faktycznym stanem GSAP (np. po zmianie orientacji).
 */

.tko-tickets {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: clamp(560px, 92vh, 960px);
	padding-block: var(--tko-space-2xl);
	background: var(--tko-black);
	color: var(--tko-white);
	overflow: hidden;
	isolation: isolate;
}

.tko-tickets--pinned {
	min-height: var(--tko-tickets-pin-height, var(--tko-viewport-height, 100svh));
	height: var(--tko-tickets-pin-height, var(--tko-viewport-height, 100svh));
	max-height: none;
	width: 100%;
	margin: 0;
	touch-action: pan-y;
}

/* Tło spacera jest częścią jednej cinematic planszy. Chroni to przed
   przebłyskiem jasnego tła Elementora przy końcu mobilnego pina. */
.tko-tickets-pin-spacer,
.pin-spacer:has(> .tko-tickets) {
	/* `!important` zabezpiecza spacer przed jasnym backgroundem kontenera
	   Elementora. Selektor :has() działa od razu po utworzeniu spacera,
	   jeszcze zanim JS zdąży nadać klasę pomocniczą. */
	background: var(--tko-black) !important;
	overflow: clip;
}

/* === Tło (full-bleed, crossfade między wydarzeniami) ====================== */

.tko-tickets__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
}

.tko-tickets__bg-layer {
	position: absolute;
	inset: 0;
	opacity: 0;
	transform: scale(1.04);
}

.tko-tickets__bg-layer.is-active {
	opacity: 1;
	transform: scale(1);
}

/* Bez JS/GSAP: żadna warstwa nie dostaje inline-opacity z tweenów, więc
   CSS-owy fallback musi sam pokazać aktywną warstwę — patrz `.is-active`
   wyżej (ustawiane też server-side w PHP dla pierwszego wydarzenia). */
html:not(.tko-js) .tko-tickets__bg-layer {
	transition: none;
}

.tko-tickets__bg-picture {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
}

.tko-tickets__bg-media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: var(--tko-tickets-fit-desktop, cover);
	object-position: var(--tko-tickets-position-desktop, center center);
	background: var(--tko-black);
}

.tko-tickets__bg-overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(15, 14, 14, 0.35) 0%, rgba(15, 14, 14, var(--tko-tickets-overlay, 0.55)) 55%, rgba(15, 14, 14, 0.88) 100%);
}


/* Tablet i mobile mogą korzystać z niezależnego punktu kadrowania.
   Sam plik pionowy jest wybierany przez <picture> lub responsive poster JS
   zgodnie z breakpointem ustawionym w Elementorze. */
@media (max-width: 1023px) {
	.tko-tickets__bg-media {
		object-fit: var(--tko-tickets-fit-mobile, cover);
		object-position: var(--tko-tickets-position-mobile, center center);
	}
}

/* Poziome fotografie na pionowym ekranie zawsze wypełniają cały kadr.
   `cover` zachowuje proporcje obrazu — nie rozciąga postaci, tylko
   proporcjonalnie przycina lewy i prawy bok zdjęcia. */
@media (orientation: portrait) {
	.tko-tickets__bg-picture,
	.tko-tickets__bg-picture .tko-tickets__bg-media {
		width: 100%;
		height: 100%;
		min-width: 100%;
		min-height: 100%;
	}

	.tko-tickets__bg-picture .tko-tickets__bg-media.is-landscape-source {
		object-fit: cover !important;
		object-position: var(
			--tko-tickets-position-mobile,
			center center
		) !important;
	}
}

/* === Treść ================================================================ */

.tko-tickets__content {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: var(--tko-space-sm);
	max-width: 46rem;
	margin-inline: auto;
	width: 100%;
}

.tko-tickets__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	font-size: var(--tko-fs-small);
	font-weight: var(--tko-fw-medium);
	letter-spacing: var(--tko-tracking-wide);
	text-transform: uppercase;
	color: var(--tko-white-soft);
	opacity: 0.85;
	font-variant-numeric: tabular-nums;
}

.tko-tickets__heading {
	margin: 0;
	font-weight: var(--tko-fw-medium);
	font-size: var(--tko-widget-h2, var(--tko-fs-display));
	line-height: var(--tko-lh-tight);
	letter-spacing: var(--tko-tracking-tighter);
	color: var(--tko-white);
}

/* === Panele wydarzeń — grid stacking, crossfade bez layout shiftu ========= */

.tko-tickets__panels {
	display: grid;
	width: 100%;
	justify-items: center;
}

.tko-tickets__panel {
	grid-column: 1 / -1;
	grid-row: 1 / 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--tko-space-sm);
	width: 100%;
	opacity: 0;
}

.tko-tickets__panel.is-active {
	opacity: 1;
}

/* Bez JS: `hidden` (atrybut HTML, ustawiany server-side) wystarcza do
   pokazania tylko pierwszego wydarzenia — reguła niżej to tylko spójność
   wizualna, gdyby atrybut `hidden` został kiedyś usunięty ręcznie. */
.tko-tickets__panel[hidden] {
	display: none;
}

.tko-tickets__event {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	font-size: var(--tko-fs-body-lg);
	color: var(--tko-white-soft);
}

.tko-tickets__event-sep {
	opacity: 0.5;
}

.tko-tickets__cta-row {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--tko-space-xs);
}

.tko-tickets__cta {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	padding: 1rem 2rem;
	border-radius: var(--tko-radius-full);
	background: var(--tko-accent);
	color: var(--tko-accent-ink);
	font-weight: var(--tko-fw-semibold);
	font-size: var(--tko-fs-body-lg);
	letter-spacing: var(--tko-tracking-tight);
	text-decoration: none;
	transition: transform var(--tko-dur-fast) var(--tko-ease-out-soft), filter var(--tko-dur-fast) var(--tko-ease);
}

.tko-tickets__cta svg {
	transition: transform var(--tko-dur-fast) var(--tko-ease);
}

.tko-tickets__cta:hover,
.tko-tickets__cta:focus-visible {
	background: var(--tko-accent);
	filter: brightness(1.12);
	transform: translateY(-2px);
}

.tko-tickets__cta:hover svg,
.tko-tickets__cta:focus-visible svg {
	transform: translateX(3px);
}

.tko-tickets__cta--disabled {
	padding: 1rem 2rem;
	border-radius: var(--tko-radius-full);
	background: rgba(252, 252, 246, 0.15);
	color: var(--tko-white-soft);
	font-weight: var(--tko-fw-semibold);
	cursor: not-allowed;
}

.tko-tickets__price-note {
	font-size: var(--tko-fs-small);
	color: var(--tko-white-soft);
	opacity: 0.75;
}

/* === Kropki nawigacji ====================================================== */

.tko-tickets__dots {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 0.25rem;
}

.tko-tickets__dot {
	width: 0.4rem;
	height: 0.4rem;
	border-radius: 50%;
	background: rgba(252, 252, 246, 0.32);
	transition: background var(--tko-dur-fast) var(--tko-ease), transform var(--tko-dur-fast) var(--tko-ease-out-soft), width var(--tko-dur-fast) var(--tko-ease);
}

.tko-tickets__dot:hover,
.tko-tickets__dot:focus-visible {
	background: rgba(252, 252, 246, 0.6);
}

.tko-tickets__dot.is-active {
	width: 1.4rem;
	border-radius: var(--tko-radius-full);
	background: var(--tko-white);
}

/* === Strzałki — kołowy przycisk 48px, lekko powiększony ================ */

.tko-tickets__arrow {
	position: absolute;
	top: 50%;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	border: 0.5px solid rgba(252, 252, 246, 0.42);
	border-radius: 50%;
	color: var(--tko-white);
	background: rgba(15, 14, 14, 0.18);
	backdrop-filter: blur(6px);
	transform: translateY(-50%);
	transition: background var(--tko-dur-fast) var(--tko-ease), border-color var(--tko-dur-fast) var(--tko-ease), transform var(--tko-dur-fast) var(--tko-ease-out-soft);
	touch-action: manipulation;
	cursor: pointer;
}

.tko-tickets__arrow svg {
	width: 1rem;
	height: 1rem;
}

.tko-tickets__arrow:hover,
.tko-tickets__arrow:focus-visible {
	background: var(--tko-white);
	color: var(--tko-black);
	border-color: transparent;
}

.tko-tickets__arrow--prev {
	left: clamp(0.75rem, 3vw, 2.5rem);
}

.tko-tickets__arrow--prev:hover,
.tko-tickets__arrow--prev:focus-visible {
	transform: translateY(-50%) translateX(-3px);
}

.tko-tickets__arrow--next {
	right: clamp(0.75rem, 3vw, 2.5rem);
}

.tko-tickets__arrow--next:hover,
.tko-tickets__arrow--next:focus-visible {
	transform: translateY(-50%) translateX(3px);
}

/* Scrollbar-hijack "swipe hint" dyskretnie zaznaczony na krawędziach kropek —
   wyłącznie na desktopie w trybie pinned, jako podpowiedź, że scroll działa. */
.tko-tickets--pinned .tko-tickets__dots::before,
.tko-tickets--pinned .tko-tickets__dots::after {
	content: '';
}

@media (max-width: 640px) {
	.tko-tickets {
		min-height: clamp(480px, 88vh, 760px);
	}
	.tko-tickets--pinned {
		/* JS aktualizuje tę wartość z visualViewport bez przebudowywania
		   ScrollTriggera. Sekcja zawsze wypełnia aktualnie widoczny ekran. */
		min-height: var(--tko-tickets-pin-height, 100dvh);
		height: var(--tko-tickets-pin-height, 100dvh);
		max-height: var(--tko-tickets-pin-height, 100dvh);
		padding-block:
			max(1.25rem, env(safe-area-inset-top))
			max(1.25rem, env(safe-area-inset-bottom));
	}

	.tko-tickets--pinned > .tko-section__inner {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 0;
	}
	.tko-tickets__cta,
	.tko-tickets__cta--disabled {
		width: 100%;
		justify-content: center;
	}
	/* 1.7.30: min. 44x44px (wytyczne dotykowe iOS/Android) zamiast 42x42px —
	   strzałki są teraz wyraźnie widoczne i łatwiejsze do trafienia palcem. */
	.tko-tickets__arrow {
		width: 3rem;
		height: 3rem;
	}
	.tko-tickets__arrow svg {
		width: 1.15rem;
		height: 1.15rem;
	}
	.tko-tickets__arrow--prev {
		left: 0.5rem;
	}
	.tko-tickets__arrow--next {
		right: 0.5rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tko-tickets__cta,
	.tko-tickets__cta svg,
	.tko-tickets__bg-layer,
	.tko-tickets__panel,
	.tko-tickets__dot,
	.tko-tickets__arrow {
		transition-property: opacity, background, color, border-color;
		transform: none !important;
	}
}

@media (orientation: portrait) {
	.tko-tickets__bg-picture .tko-tickets__bg-media:not([data-tko-image-orientation]),
	.tko-tickets__bg-picture .tko-tickets__bg-media[data-tko-image-orientation="unknown"] {
		object-fit: cover !important;
	}
}

/* === Graficzne „maziaje” zamiast kropek slidera ========================= */

.tko-tickets__dots {
	gap: clamp(0.6rem, 1.4vw, 1rem);
	margin-top: 0.5rem;
}

.tko-tickets__dot {
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2rem;
	padding: 0.25rem;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: rgba(252, 252, 246, 0.38);
	opacity: 0.76;
	transform: scale(0.88) rotate(-3deg);
	transition:
		color var(--tko-dur-fast) var(--tko-ease),
		opacity var(--tko-dur-fast) var(--tko-ease),
		transform var(--tko-dur-fast) var(--tko-ease-out-soft);
}

.tko-tickets__dot-mark,
.tko-tickets__dot-mark svg {
	display: block;
	width: 100%;
	height: 100%;
}

.tko-tickets__dot-mark svg {
	overflow: visible;
	/* 1.7.30: tak jak <img> niżej — dotknięcie/kliknięcie zawsze trafia w
	   rodzica <button>, nigdy w zagnieżdżony <path>, spójnie na wszystkich
	   urządzeniach (mobile i desktop). */
	pointer-events: none;
}

.tko-tickets__dot-mark path {
	fill: none;
	stroke: currentColor;
	stroke-width: 2.1;
	stroke-linecap: round;
	stroke-linejoin: round;
	vector-effect: non-scaling-stroke;
}

.tko-tickets__dot:first-child .tko-tickets__dot-mark path {
	fill: currentColor;
	stroke: none;
}

.tko-tickets__dot:hover,
.tko-tickets__dot:focus-visible {
	width: 2.75rem;
	background: transparent;
	color: rgba(252, 252, 246, 0.82);
	opacity: 1;
	transform: scale(1) rotate(0deg);
	outline: none;
}

.tko-tickets__dot.is-active {
	width: 3.25rem;
	border-radius: 0;
	background: transparent;
	color: var(--tko-accent);
	opacity: 1;
	transform: scale(1.08) rotate(0deg);
}

.tko-tickets--pinned .tko-tickets__dots::before,
.tko-tickets--pinned .tko-tickets__dots::after {
	display: none;
}

@media (prefers-reduced-motion: reduce) {
	.tko-tickets__dot {
		transform: none !important;
	}
}

/* PNG logos for ticket indicators */
.tko-tickets__dot-mark img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
	pointer-events: none;
}

.tko-tickets__dot-mark img,
.tko-tickets__dot-mark svg {
	filter: brightness(0) invert(1);
	transition:
		filter var(--tko-dur-fast) var(--tko-ease),
		opacity var(--tko-dur-fast) var(--tko-ease),
		transform var(--tko-dur-fast) var(--tko-ease-out-soft);
}

.tko-tickets__dot:hover .tko-tickets__dot-mark img,
.tko-tickets__dot:focus-visible .tko-tickets__dot-mark img,
.tko-tickets__dot:hover .tko-tickets__dot-mark svg,
.tko-tickets__dot:focus-visible .tko-tickets__dot-mark svg {
	filter: brightness(0) invert(1);
}

.tko-tickets__dot.is-active .tko-tickets__dot-mark img,
.tko-tickets__dot.is-active .tko-tickets__dot-mark svg {
	filter: brightness(0) saturate(100%) invert(78%) sepia(87%) saturate(888%) hue-rotate(339deg) brightness(102%) contrast(102%);
}


/* === 1.7.7 — nieznacznie większe graficzne maziaje nawigacji ========== */
.tko-tickets__dot {
	width: 3.05rem;
	height: 2.2rem;
	padding: 0.24rem;
}

.tko-tickets__dot:hover,
.tko-tickets__dot:focus-visible {
	width: 3.05rem;
}

.tko-tickets__dot.is-active {
	width: 3.55rem;
	transform: scale(1.07) rotate(0deg);
}

@media (max-width: 767px) {
	/* 1.7.30: wysokość dotykowego obszaru podniesiona do min. 44px (z ~33px) —
	   zgodnie z wytycznymi dostępności dotykowej; szerokość skalowana razem z
	   wysokością, żeby proporcje graficznych "maziajów" zostały zachowane. */
	.tko-tickets__dot {
		width: 3.4rem;
		height: 2.75rem;
		padding: 0.4rem;
	}
	.tko-tickets__dot:hover,
	.tko-tickets__dot:focus-visible { width: 3.4rem; }
	.tko-tickets__dot.is-active { width: 3.85rem; }
}


/* === 1.7.43 — spójna typografia Biletów ================================== */
.tko-tickets,.tko-tickets button,.tko-tickets a { font-family:var(--tko-font-primary) !important; }
.tko-tickets__eyebrow { font-size:var(--tko-type-eyebrow-size) !important;font-weight:var(--tko-type-eyebrow-weight) !important;line-height:var(--tko-type-eyebrow-line) !important;letter-spacing:var(--tko-type-eyebrow-track) !important;text-transform:uppercase !important; }
.tko-tickets__heading { font-size:var(--tko-type-display-size) !important;font-weight:var(--tko-type-display-weight) !important;line-height:var(--tko-type-display-line) !important;letter-spacing:var(--tko-type-display-track) !important; }
.tko-tickets__event { font-size:var(--tko-type-lead-size) !important;font-weight:var(--tko-type-lead-weight) !important;line-height:var(--tko-type-lead-line) !important;letter-spacing:var(--tko-type-lead-track) !important; }
.tko-tickets__cta { font-size:var(--tko-type-button-size) !important;font-weight:var(--tko-type-button-weight) !important;line-height:var(--tko-type-button-line) !important;letter-spacing:var(--tko-type-button-track) !important; }
.tko-tickets__price-note { font-size:var(--tko-type-meta-size) !important;font-weight:var(--tko-type-meta-weight) !important;line-height:var(--tko-type-meta-line) !important;letter-spacing:var(--tko-type-meta-track) !important; }


/* === 1.7.44 — precyzyjna typografia nagłówka Bilety ====================== */
.tko-tickets__heading {
	font-family: var(--tko-font-primary) !important;
	font-size: 42px !important;
	font-style: normal !important;
	font-weight: 500 !important;
	line-height: 0.98 !important;
	letter-spacing: -0.04em !important;
	text-align: center !important;
}
/** TKO — kontakt zgodny z makietą Figma. */

.tko-contact {
	position: relative;
	padding-block: 1.25rem 5rem;
	background: var(--tko-black);
	color: var(--tko-white);
	overflow: clip;
	isolation: isolate;
}

.tko-contact > .tko-section__inner {
	position: relative;
	z-index: 2;
	max-width: 1440px;
	padding-inline: clamp(1.25rem, 5.56vw, 5rem);
}

.tko-contact__top {
	position: relative;
	display: grid;
	grid-template-columns: minmax(300px, 396px) minmax(420px, 617px);
	justify-content: start;
	align-items: center;
	gap: clamp(2rem, 4.86vw, 4.375rem);
	min-height: 349px;
	isolation: isolate;
}

.tko-contact__intro-block {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: 1.5rem;
	width: 100%;
	max-width: 396px;
}

.tko-contact__title-group {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.tko-contact__eyebrow,
.tko-contact__detail dt {
	font-family: var(--tko-font-primary);
	font-size: 0.875rem;
	font-weight: var(--tko-fw-regular);
	line-height: 0.98;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--tko-gray);
}

.tko-contact__heading {
	margin: 0;
	font-family: var(--tko-font-primary);
	font-size: var(--tko-widget-h2, 2.625rem);
	font-weight: var(--tko-fw-medium);
	line-height: 0.98;
	letter-spacing: -0.04em;
	color: var(--tko-white);
}

.tko-contact__intro {
	margin: 0;
	max-width: 396px;
	font-family: var(--tko-font-primary);
	font-size: var(--tko-widget-body, 1.0625rem);
	font-weight: var(--tko-fw-regular);
	line-height: 1.1;
	letter-spacing: -0.04em;
	color: var(--tko-white);
}

.tko-contact__connect {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 2.25rem;
	width: 100%;
	max-width: 617px;
	padding-top: 5rem;
}

.tko-contact__details {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	width: 100%;
	margin: 0;
}

.tko-contact__detail {
	display: grid;
	grid-template-columns: 79px minmax(0, 1fr);
	align-items: baseline;
	gap: 1rem;
}

.tko-contact__detail dt,
.tko-contact__detail dd {
	margin: 0;
}

.tko-contact__detail dd,
.tko-contact__detail a {
	font-family: var(--tko-font-primary);
	font-size: var(--tko-widget-body, 1.0625rem);
	font-weight: var(--tko-fw-regular);
	line-height: 1.1;
	letter-spacing: -0.04em;
	color: var(--tko-white);
}

.tko-contact__detail a {
	text-decoration: none;
}

.tko-contact__detail:first-child a {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.tko-contact__socials {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
}

.tko-contact__social {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 25px;
	padding: 0.375rem 0.625rem;
	border: 0.5px solid var(--tko-gray);
	border-radius: 3px;
	font-family: var(--tko-font-primary);
	font-size: 0.75rem;
	font-weight: var(--tko-fw-regular);
	line-height: 1.1;
	letter-spacing: -0.04em;
	text-decoration: none;
	color: var(--tko-gray);
	transition: color var(--tko-dur-fast) var(--tko-ease), border-color var(--tko-dur-fast) var(--tko-ease), background var(--tko-dur-fast) var(--tko-ease);
}

.tko-contact__social:hover,
.tko-contact__social:focus-visible {
	border-color: var(--tko-accent);
	background: var(--tko-accent);
	color: var(--tko-accent-ink);
}

.tko-contact__social--disabled {
	pointer-events: none;
}

.tko-contact__mark {
	position: absolute;
	z-index: 0;
	top: -7.125rem;
	right: -10.5rem;
	width: min(57vw, 819px);
	color: var(--tko-accent);
	opacity: 1;
	pointer-events: none;
}

.tko-contact__mark img,
.tko-contact__mark svg {
	width: 100%;
	height: auto;
	object-fit: contain;
}

.tko-contact__map {
	position: relative;
	z-index: 2;
	width: 100%;
	margin-bottom: 2rem;
	aspect-ratio: 16 / 5;
	border-radius: 14px;
	overflow: hidden;
	border: 1px solid rgba(252, 252, 246, 0.12);
}

.tko-contact__map iframe {
	width: 100%;
	height: 100%;
	border: 0;
	filter: grayscale(0.5) invert(0.92) contrast(0.9);
}

.tko-contact__form-wrap {
	position: relative;
	z-index: 3;
	width: 100%;
}

.tko-contact__form-card {
	width: 100%;
	min-height: 378px;
	padding: 1.5rem;
	border-radius: 14px;
	background: linear-gradient(0deg, rgba(252, 252, 246, 0.06), rgba(252, 252, 246, 0.06)), var(--tko-black);
	border: 0;
}

.tko-contact__form-title {
	margin: 0 0 1.5rem;
	font-size: var(--tko-fs-h3);
	font-weight: var(--tko-fw-medium);
	color: var(--tko-white);
}

.tko-contact__form-placeholder {
	margin: 0;
	padding: 1.5rem;
	border: 1px dashed rgba(252, 252, 246, 0.2);
	border-radius: 8px;
	font-size: 0.875rem;
	color: var(--tko-gray);
}

/* Elementor Pro Forms */
.tko-contact__form .elementor-form-fields-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem 1rem;
}

.tko-contact__form .elementor-field-group {
	grid-column: 1 / -1;
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
}

.tko-contact__form .elementor-field-group:nth-of-type(1),
.tko-contact__form .elementor-field-group:nth-of-type(2) {
	grid-column: span 1;
}

.tko-contact__form .elementor-field-label {
	margin-bottom: 0.5rem !important;
	font-family: var(--tko-font-primary);
	font-size: 0.875rem !important;
	font-weight: var(--tko-fw-regular) !important;
	line-height: 0.98 !important;
	letter-spacing: 0.03em !important;
	text-transform: uppercase;
	color: var(--tko-white) !important;
}

.tko-contact__form .elementor-field-textual,
.tko-contact__form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.tko-contact__form textarea,
.tko-contact__form select {
	width: 100%;
	min-height: 36px;
	padding: 0.25rem 0.75rem !important;
	background: rgba(15, 14, 14, 0.5) !important;
	border: 0 !important;
	border-radius: 8px !important;
	box-shadow: none !important;
	font-family: var(--tko-font-primary);
	font-size: 0.875rem !important;
	line-height: 0.98 !important;
	color: var(--tko-white) !important;
}

.tko-contact__form textarea {
	min-height: 64px !important;
	padding-block: 0.5rem !important;
	resize: vertical;
}

.tko-contact__form .elementor-field-textual::placeholder,
.tko-contact__form input::placeholder,
.tko-contact__form textarea::placeholder {
	color: var(--tko-gray) !important;
	opacity: 1;
}

.tko-contact__form .elementor-field-textual:focus,
.tko-contact__form input:focus,
.tko-contact__form textarea:focus,
.tko-contact__form select:focus {
	outline: 1px solid var(--tko-accent) !important;
	outline-offset: 0;
}

.tko-contact__form .elementor-field-type-submit,
.tko-contact__form .e-form__buttons {
	grid-column: 1 / -1;
	width: 100%;
}

.tko-contact__form .elementor-button,
.tko-contact__form button[type="submit"] {
	width: 100%;
	min-height: 36px;
	padding: 0.5rem 0.75rem;
	border: 0;
	border-radius: 8px;
	background: var(--tko-accent) !important;
	font-family: var(--tko-font-primary);
	font-size: 1.0625rem;
	font-weight: var(--tko-fw-medium);
	line-height: 1.1;
	letter-spacing: -0.04em;
	color: var(--tko-accent-ink) !important;
}

.tko-contact__form .elementor-button:hover,
.tko-contact__form button[type="submit"]:hover {
	opacity: 0.86;
}

@media (max-width: 960px) {
	.tko-contact__top {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 2rem;
	}

	.tko-contact__mark {
		right: -18rem;
		opacity: 0.55;
	}
}

@media (max-width: 760px) {
	.tko-contact {
		padding-block: 3rem;
	}

	.tko-contact__top {
		grid-template-columns: 1fr;
		justify-items: start;
		min-height: 0;
		padding-bottom: 3rem;
	}

	.tko-contact__intro-block,
	.tko-contact__connect {
		max-width: 100%;
	}

	.tko-contact__connect {
		padding-top: 0;
	}

	.tko-contact__detail dd,
	.tko-contact__detail a {
		min-width: 0;
		overflow-wrap: anywhere;
		word-break: break-word;
	}

	.tko-contact__map {
		min-height: 240px;
		aspect-ratio: 4 / 3;
	}

	.tko-contact__mark {
		top: 2rem;
		right: -12rem;
		width: 34rem;
		opacity: 0.22;
	}

	.tko-contact__form .elementor-form-fields-wrapper {
		grid-template-columns: 1fr;
	}

	.tko-contact__form .elementor-field-group:nth-of-type(1),
	.tko-contact__form .elementor-field-group:nth-of-type(2) {
		grid-column: 1;
	}
}

@media (max-width: 520px) {
	.tko-contact__detail {
		grid-template-columns: 1fr;
		gap: 0.35rem;
	}

	.tko-contact__form-card {
		padding: 1rem;
	}
}

/* === 1.6.18.22.9 — kontakt + sprzedaż ================================== */

.tko-contact {
	padding-block: clamp(4.5rem, 8vw, 8rem);
}

.tko-contact__top {
	grid-template-columns: minmax(280px, 0.85fr) minmax(360px, 1.15fr);
	min-height: 0;
	align-items: start;
}

.tko-contact__intro-block {
	max-width: 34rem;
}

.tko-contact__heading {
	font-size: clamp(3rem, 7vw, 7rem);
	line-height: 0.9;
	letter-spacing: -0.06em;
}

.tko-contact__intro {
	max-width: 34rem;
	font-size: clamp(1rem, 0.92rem + 0.35vw, 1.28rem);
	line-height: 1.42;
	letter-spacing: -0.02em;
}

.tko-contact__connect {
	max-width: none;
	padding-top: 0.5rem;
}

.tko-contact__detail {
	grid-template-columns: 92px minmax(0, 1fr);
	padding-bottom: 0.9rem;
	border-bottom: 1px solid rgba(252, 252, 246, 0.14);
}

.tko-contact__detail dd,
.tko-contact__detail a {
	font-size: clamp(1.05rem, 0.95rem + 0.4vw, 1.35rem);
}

.tko-contact__social {
	min-height: 34px;
	padding: 0.55rem 0.85rem;
	font-size: 0.78rem;
}

.tko-contact__mark {
	top: -12rem;
	right: -20rem;
	width: min(76vw, 1060px);
	color: var(--tko-white);
	opacity: 0.065;
	transform: rotate(-8deg);
}

.tko-contact__form-wrap {
	margin-top: clamp(3rem, 7vw, 7rem);
}

.tko-contact__form-card {
	min-height: 0;
	padding: clamp(1.25rem, 3vw, 2.5rem);
	border: 1px solid rgba(252, 252, 246, 0.13);
	background:
		linear-gradient(
			135deg,
			rgba(252, 252, 246, 0.065),
			rgba(252, 252, 246, 0.018)
		);
}

.tko-contact__form-title {
	margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
	font-size: clamp(2rem, 4vw, 4.25rem);
	line-height: 0.95;
	letter-spacing: -0.05em;
}

.tko-contact__native-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.2rem 1rem;
}

.tko-contact__native-form label {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	min-width: 0;
}

.tko-contact__native-form label > span {
	font-size: 0.72rem;
	font-weight: var(--tko-fw-medium);
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(252, 252, 246, 0.68);
}

.tko-contact__native-form input:not([type="checkbox"]),
.tko-contact__native-form textarea {
	width: 100%;
	min-height: 48px;
	padding: 0.8rem 0.9rem;
	border: 1px solid rgba(252, 252, 246, 0.16);
	border-radius: 0.55rem;
	background: rgba(15, 14, 14, 0.56);
	color: var(--tko-white);
	font: inherit;
	box-shadow: none;
}

.tko-contact__native-form textarea {
	min-height: 150px;
	resize: vertical;
}

.tko-contact__native-form input:focus,
.tko-contact__native-form textarea:focus {
	outline: 1px solid var(--tko-accent);
	outline-offset: 1px;
	border-color: var(--tko-accent);
}

.tko-contact__native-form-message,
.tko-contact__native-form-consent,
.tko-contact__native-form button {
	grid-column: 1 / -1;
}

.tko-contact__native-form-consent {
	display: grid !important;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: start;
	gap: 0.75rem !important;
}

.tko-contact__native-form-consent input {
	margin-top: 0.15rem;
	accent-color: var(--tko-accent);
}

.tko-contact__native-form-consent span {
	text-transform: none !important;
	letter-spacing: 0 !important;
	line-height: 1.35;
}

.tko-contact__native-form button {
	min-height: 52px;
	border: 0;
	border-radius: 0.55rem;
	background: var(--tko-accent);
	color: var(--tko-accent-ink);
	font-size: 1rem;
	font-weight: var(--tko-fw-semibold);
	cursor: pointer;
	transition:
		transform 0.25s var(--tko-ease-out-soft),
		filter 0.25s var(--tko-ease);
}

.tko-contact__native-form button:hover,
.tko-contact__native-form button:focus-visible {
	transform: translateY(-2px);
	filter: brightness(1.08);
}

.tko-contact__form-message {
	margin: 0 0 1.5rem;
	padding: 0.9rem 1rem;
	border-radius: 0.55rem;
	font-size: 0.9rem;
}

.tko-contact__form-message.is-success {
	background: rgba(81, 194, 135, 0.12);
	border: 1px solid rgba(81, 194, 135, 0.42);
}

.tko-contact__form-message.is-error {
	background: rgba(255, 105, 105, 0.1);
	border: 1px solid rgba(255, 105, 105, 0.38);
}

@media (max-width: 760px) {
	.tko-contact__heading {
		font-size: clamp(2.8rem, 14vw, 4.8rem);
	}

	.tko-contact__native-form {
		grid-template-columns: 1fr;
	}

	.tko-contact__native-form label,
	.tko-contact__native-form-message,
	.tko-contact__native-form-consent,
	.tko-contact__native-form button {
		grid-column: 1;
	}
}

.tko-contact__website-field {
	position: absolute !important;
	left: -10000px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

/* === AJAX form — no page reload ======================================== */

.tko-contact__form-message[hidden] {
	display: none !important;
}

.tko-contact__form-message {
	scroll-margin-top: calc(var(--tko-header-height, 80px) + 1rem);
}

.tko-contact__native-form.is-submitting {
	pointer-events: none;
}

.tko-contact__native-form.is-submitting
	input,
.tko-contact__native-form.is-submitting
	textarea,
.tko-contact__native-form.is-submitting
	label {
	opacity: 0.72;
}

.tko-contact__native-form button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.7rem;
}

.tko-contact__native-form button:disabled {
	cursor: wait;
	transform: none;
	filter: none;
	opacity: 0.82;
}

.tko-contact__submit-spinner {
	display: none;
	width: 1rem;
	height: 1rem;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: tko-contact-spinner 0.7s linear infinite;
}

.tko-contact__native-form.is-submitting
	.tko-contact__submit-spinner {
	display: inline-block;
}

@keyframes tko-contact-spinner {
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.tko-contact__submit-spinner {
		animation-duration: 1.4s;
	}
}

/* === 1.6.18.22.14 — finalny responsive fix sekcji Kontakt ===============
   Te reguły są celowo umieszczone na końcu pliku. Wcześniejszy breakpoint
   mobilny był nadpisywany przez późniejszą deklarację desktopową:
   minmax(280px, .85fr) minmax(360px, 1.15fr). */

@media (max-width: 767px) {
	.elementor-widget-tko-contact,
	.elementor-widget-tko-contact > .elementor-widget-container,
	.tko-contact,
	.tko-contact > .tko-section__inner,
	.tko-contact__top,
	.tko-contact__intro-block,
	.tko-contact__connect,
	.tko-contact__details,
	.tko-contact__socials,
	.tko-contact__form-wrap,
	.tko-contact__form-card,
	.tko-contact__form,
	.tko-contact__native-form {
		min-width: 0;
		max-width: 100%;
		box-sizing: border-box;
	}

	.elementor-widget-tko-contact,
	.elementor-widget-tko-contact > .elementor-widget-container {
		width: 100%;
		overflow-x: clip;
	}

	.tko-contact {
		width: 100%;
		padding-block: 4rem;
	}

	.tko-contact > .tko-section__inner {
		width: 100%;
		padding-inline:
			max(
				1rem,
				env(safe-area-inset-left)
			)
			max(
				1rem,
				env(safe-area-inset-right)
			);
	}

	.tko-contact__top {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		justify-content: stretch;
		justify-items: stretch;
		align-items: start;
		width: 100%;
		gap: clamp(2rem, 8vw, 3rem);
		min-height: 0;
		padding-bottom: 0;
	}

	.tko-contact__intro-block,
	.tko-contact__connect {
		width: 100%;
	}

	.tko-contact__intro-block {
		align-items: stretch;
		gap: 1.25rem;
	}

	.tko-contact__title-group,
	.tko-contact__intro {
		width: 100%;
		max-width: 100%;
	}

	.tko-contact__heading {
		max-width: 100%;
		font-size: clamp(2.65rem, 13vw, 4.65rem);
		overflow-wrap: anywhere;
	}

	.tko-contact__intro {
		font-size: clamp(1rem, 4.2vw, 1.15rem);
		line-height: 1.42;
	}

	.tko-contact__connect {
		align-items: stretch;
		gap: 1.5rem;
		padding-top: 0;
	}

	.tko-contact__details {
		width: 100%;
		gap: 0;
	}

	.tko-contact__detail {
		grid-template-columns: minmax(68px, 82px) minmax(0, 1fr);
		width: 100%;
		gap: 0.75rem;
		padding-block: 0.9rem;
	}

	.tko-contact__detail:first-child {
		padding-top: 0;
	}

	.tko-contact__detail dt,
	.tko-contact__detail dd,
	.tko-contact__detail a {
		min-width: 0;
		max-width: 100%;
	}

	.tko-contact__detail dd,
	.tko-contact__detail a {
		font-size: clamp(1rem, 4.5vw, 1.2rem);
		line-height: 1.25;
		overflow-wrap: anywhere;
		word-break: normal;
	}

	.tko-contact__socials {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		width: 100%;
		gap: 0.75rem;
	}

	.tko-contact__social {
		display: flex;
		width: 100%;
		min-width: 0;
		max-width: 100%;
		min-height: 44px;
		padding: 0.7rem 0.75rem;
		box-sizing: border-box;
		text-align: center;
		white-space: normal;
		overflow-wrap: anywhere;
		word-break: normal;
	}

	.tko-contact__mark {
		top: 1rem;
		right: -9rem;
		width: min(31rem, 135vw);
		max-width: none;
		opacity: 0.1;
	}

	.tko-contact__form-wrap {
		width: 100%;
		margin-top: 3rem;
	}

	.tko-contact__form-card {
		width: 100%;
		padding: clamp(1rem, 4vw, 1.35rem);
		overflow: hidden;
	}

	.tko-contact__native-form,
	.tko-contact__form .elementor-form-fields-wrapper {
		grid-template-columns: minmax(0, 1fr);
		width: 100%;
	}

	.tko-contact__native-form label,
	.tko-contact__native-form-message,
	.tko-contact__native-form-consent,
	.tko-contact__native-form button,
	.tko-contact__form .elementor-field-group,
	.tko-contact__form .elementor-field-group:nth-of-type(1),
	.tko-contact__form .elementor-field-group:nth-of-type(2) {
		grid-column: 1;
		min-width: 0;
		max-width: 100%;
	}

	.tko-contact__native-form input:not([type="checkbox"]),
	.tko-contact__native-form textarea,
	.tko-contact__form input,
	.tko-contact__form textarea,
	.tko-contact__form select,
	.tko-contact__form button {
		min-width: 0;
		max-width: 100%;
		box-sizing: border-box;
	}
}

@media (max-width: 480px) {
	.tko-contact > .tko-section__inner {
		padding-inline:
			max(
				0.875rem,
				env(safe-area-inset-left)
			)
			max(
				0.875rem,
				env(safe-area-inset-right)
			);
	}

	.tko-contact__detail {
		grid-template-columns: minmax(0, 1fr);
		gap: 0.35rem;
	}

	.tko-contact__detail dt {
		font-size: 0.72rem;
	}

	.tko-contact__socials {
		grid-template-columns: minmax(0, 1fr);
	}

	.tko-contact__social {
		justify-content: flex-start;
		text-align: left;
	}

	.tko-contact__form-title {
		font-size: clamp(2rem, 10vw, 3rem);
	}
}


/* === 1.7.43 — spójna typografia Kontaktu + formularzy ==================== */
.tko-contact,.tko-contact button,.tko-contact input,.tko-contact textarea,.tko-contact select,.tko-contact a { font-family:var(--tko-font-primary) !important; }
.tko-contact__eyebrow,.tko-contact__detail dt { font-size:var(--tko-type-eyebrow-size) !important;font-weight:var(--tko-type-eyebrow-weight) !important;line-height:var(--tko-type-eyebrow-line) !important;letter-spacing:var(--tko-type-eyebrow-track) !important;text-transform:uppercase !important; }
.tko-contact__heading { font-size:var(--tko-type-display-size) !important;font-weight:var(--tko-type-display-weight) !important;line-height:var(--tko-type-display-line) !important;letter-spacing:var(--tko-type-display-track) !important; }
.tko-contact__intro { font-size:var(--tko-type-lead-size) !important;font-weight:var(--tko-type-lead-weight) !important;line-height:var(--tko-type-lead-line) !important;letter-spacing:var(--tko-type-lead-track) !important; }
.tko-contact__detail dd,.tko-contact__detail a { font-size:var(--tko-type-lead-size) !important;font-weight:var(--tko-type-lead-weight) !important;line-height:var(--tko-type-lead-line) !important;letter-spacing:var(--tko-type-lead-track) !important; }
.tko-contact__social { font-size:var(--tko-type-action-size) !important;font-weight:var(--tko-type-action-weight) !important;line-height:var(--tko-type-action-line) !important;letter-spacing:var(--tko-type-action-track) !important; }
.tko-contact__form-title { font-size:var(--tko-type-card-heading-size) !important;font-weight:var(--tko-type-card-heading-weight) !important;line-height:var(--tko-type-card-heading-line) !important;letter-spacing:var(--tko-type-card-heading-track) !important; }
.tko-contact__native-form label > span,.tko-contact .elementor-field-group > label { font-size:var(--tko-type-micro-size) !important;font-weight:var(--tko-type-micro-weight) !important;line-height:var(--tko-type-micro-line) !important;letter-spacing:var(--tko-type-micro-track) !important;text-transform:uppercase !important; }
.tko-contact__native-form input:not([type="checkbox"]),.tko-contact__native-form textarea,.tko-contact .elementor-field,.tko-contact .elementor-field-textual { font-size:var(--tko-type-body-size) !important;font-weight:var(--tko-type-body-weight) !important;line-height:var(--tko-type-body-line) !important;letter-spacing:var(--tko-type-body-track) !important; }
.tko-contact input::placeholder,.tko-contact textarea::placeholder { font-family:var(--tko-font-primary) !important;font-size:inherit !important;font-weight:inherit !important;line-height:inherit !important;letter-spacing:inherit !important;opacity:.62; }
.tko-contact__native-form-consent span,.tko-contact .elementor-field-type-acceptance label,.tko-contact .elementor-field-type-acceptance label span { font-size:var(--tko-type-body-size) !important;font-weight:var(--tko-type-body-weight) !important;line-height:var(--tko-type-body-line) !important;letter-spacing:var(--tko-type-body-track) !important;text-transform:none !important; }
.tko-contact__native-form button,.tko-contact .elementor-button,.tko-contact button[type="submit"] { font-size:var(--tko-type-button-size) !important;font-weight:var(--tko-type-button-weight) !important;line-height:var(--tko-type-button-line) !important;letter-spacing:var(--tko-type-button-track) !important; }
.tko-contact__form-message,.tko-contact__native-form-message,.tko-contact .elementor-message,.tko-contact .elementor-message-danger,.tko-contact .elementor-message-success { font-size:var(--tko-type-body-size) !important;font-weight:var(--tko-type-body-weight) !important;line-height:var(--tko-type-body-line) !important;letter-spacing:var(--tko-type-body-track) !important; }
.elementor-7 .elementor-element.elementor-element-f1ad230>.elementor-widget-container{margin:0 0 0 0;padding:0 0 0 0}.elementor-7 .elementor-element.elementor-element-f1ad230 .tko-hero__marquee-track{--tko-marquee-duration:90s}.elementor-7 .elementor-element.elementor-element-9443681>.elementor-widget-container{margin:0 0 0 0;padding:0 0 0 0}.elementor-7 .elementor-element.elementor-element-b499fff>.elementor-widget-container{margin:0 0 0 0;padding:0 0 0 0}.elementor-7 .elementor-element.elementor-element-7cc5da5 .tko-project--ticker{--tko-ticker-card-width:300px;--tko-ticker-gap:24px;--tko-ticker-row-gap:72px;--tko-ticker-radius:14px;--tko-ticker-heading-width:1240px}.elementor-7 .elementor-element.elementor-element-7cc5da5 .tko-project__category-filters{justify-content:flex-start}.elementor-7 .elementor-element.elementor-element-453b853 .tko-program{--tko-program-icon-size:14px}:root{--page-title-display:none}@media(max-width:1024px){.elementor-7 .elementor-element.elementor-element-7cc5da5 .tko-project--ticker{--tko-ticker-card-width:240px;--tko-ticker-gap:18px;--tko-ticker-row-gap:48px;--tko-ticker-radius:12px;--tko-ticker-heading-width:92vw;--tko-ticker-heading-offset-y:0px}}@media(max-width:767px){.elementor-7 .elementor-element.elementor-element-7cc5da5 .tko-project--ticker{--tko-ticker-card-width:72vw;--tko-ticker-gap:12px;--tko-ticker-row-gap:28px;--tko-ticker-radius:10px;--tko-ticker-heading-width:92vw;--tko-ticker-heading-offset-y:0px}}.elementor .e-div-block-base{min-width:30px;padding:10px;display:block}.elementor .e-flexbox-base{padding:10px;display:flex;flex-direction:row}.elementor .e-tabs-base{padding-block-start:0;display:flex;flex-direction:column;gap:30px}.elementor .e-tabs-menu-base{display:flex;justify-content:center}.elementor .e-tab-base{width:160px;color:#0C0D0E;cursor:pointer;padding:8px;border-width:2px;border-color:#E0E0E0;border-style:solid;background-color:#FFF;display:block}.elementor .e-tab-base.e--selected{border-color:#0C0D0E;outline-width:0}.elementor .e-tab-base:focus{border-color:#0C0D0E;outline-width:0}.elementor .e-tab-base:hover,.elementor .e-tab-base:focus-visible{background-color:#E0E0E0}.elementor .e-tabs-content-area-base{display:block}.elementor .e-tab-content-base{min-width:30px;padding:10px;display:block}.elementor .e-form-base{padding:20px;display:flex;flex-direction:row;gap:10px;flex-wrap:wrap;align-content:start;align-items:flex-start}.elementor .e-form-base .e-form-checkbox-row{padding:0;gap:8px;align-items:center}.elementor .e-form-success-message-base{font-size:12px;color:#2F532E;text-align:center;padding:12px;background-color:#D4E9D6;display:none}.elementor .e-form-error-message-base{font-size:12px;color:#870000;text-align:center;padding:12px;background-color:#ffdede;display:none}.elementor .e-heading-base{margin:0}.elementor .e-heading-link-base{all:unset;cursor:pointer}.elementor .e-image-link-base{width:fit-content;all:unset;cursor:pointer;display:inherit}.elementor .e-image-base{display:block}.elementor .e-paragraph-base{margin:0}.elementor .e-paragraph-link-base{all:unset;cursor:pointer}.elementor .e-svg-base{width:65px;height:65px;display:inline-block}.elementor .e-button-base{text-align:center;padding-block-start:12px;padding-block-end:12px;padding-inline-start:24px;padding-inline-end:24px;border-radius:2px;border-width:0;background-color:#375EFB;display:inline-block}.elementor .e-youtube-base{overflow:hidden;aspect-ratio:16/9}.elementor .e-divider-base{height:1px;border-width:0;border-color:#fff0;border-style:none;background-color:#000}.elementor .e-self-hosted-video-base{max-width:100vw;aspect-ratio:16/9;display:inline-block}.elementor .e-form-input-base{height:36px;font-size:12px;color:#0c0d0e;border-radius:0;border-color:#D6D5D5}.elementor .e-form-input-base:focus{border-color:#706F6F;outline-style:none}.elementor .e-form-input-base::placeholder{color:#9DA5AE}.elementor .e-form-label-base{font-size:14px;color:#0c0d0e}.elementor .e-form-textarea-base{font-size:12px;border-radius:0;border-color:#D6D5D5}.elementor .e-form-textarea-base:focus{border-color:#706F6F;outline-style:none}.elementor .e-form-textarea-base::placeholder{color:#9DA5AE}.elementor .e-form-submit-button-base{color:#fff;padding-block-start:10px;padding-block-end:10px;padding-inline-start:28px;padding-inline-end:30px;border-radius:0;border-width:0;background-color:#000;display:flex;justify-content:center;align-items:center}.elementor .e-form-submit-button-base:hover,.elementor .e-form-submit-button-base:focus-visible{background-color:#323232}.elementor .e-form-checkbox-base{width:1.15em;height:1.15em;color:#fff;border-radius:0;border-width:1px;border-color:#D6D5D5;border-style:solid;background-color:#fff0;transition:background-color 200ms;display:grid;justify-items:center;align-items:center;appearance:none}.elementor .e-form-checkbox-base:focus{border-color:#706F6F;outline-style:none}.elementor .e-form-checkbox-base:checked{background-color:#69727D}.elementor .e-form-checkbox-base::before{width:65%;height:65%;background-color:currentColor;opacity:0%;transform-origin:0% 100% 0;transition:opacity 200ms;content:"";clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%)}.elementor .e-form-checkbox-base:checked::before{opacity:100%}.elementor .e-form-radio-button-base{width:1.15em;height:1.15em;color:#fff;border-radius:50%;border-width:1px;border-color:#D6D5D5;border-style:solid;background-color:#fff0;display:grid;justify-items:center;align-items:center;appearance:none}.elementor .e-form-radio-button-base:focus{border-color:#706F6F;outline-style:none}.elementor .e-form-radio-button-base:checked{background-color:#fff0}.elementor .e-form-radio-button-base::before{width:65%;height:65%;border-radius:50%;background-color:#706F6F;opacity:0%;transition:opacity 200ms;content:""}.elementor .e-form-radio-button-base:checked::before{opacity:100%}.elementor .e-form-date-picker-base{width:100%;height:36px;font-size:12px;color:#0c0d0e;border-radius:0;border-width:1px;border-color:#D6D5D5;border-style:solid}.elementor .e-form-date-picker-base:focus{border-color:#706F6F;outline-style:none}.elementor .e-form-time-picker-base{width:100%;height:36px;font-size:12px;color:#0c0d0e;border-radius:0;border-width:1px;border-color:#D6D5D5;border-style:solid}.elementor .e-form-time-picker-base:focus{border-color:#706F6F;outline-style:none}.elementor .e-form-select-base{font-size:12px;border-width:1px;border-color:#D6D5D5;border-style:solid;background-color:#fff0}.elementor .e-form-select-base:focus{border-color:#706F6F;outline-style:none}.elementor .e-form-file-upload-base{height:36px;font-size:12px;color:#0c0d0e;border-radius:0;border-color:#D6D5D5}.elementor .e-form-file-upload-base:focus{border-color:#706F6F;outline-style:none}.elementor .e-cf34ecf{padding:0;margin:0;flex-direction:column}.elementor .e-53c0e7b{padding:0;margin:0;flex-direction:column}.elementor .e-fec0823{padding-block-start:0;padding-block-end:0;padding-inline-start:0;padding-inline-end:0;margin-block-start:0;margin-block-end:0;margin-inline-start:0;margin-inline-end:0;flex-direction:column}.elementor .e-69f4315{padding:0;margin:0;background-color:#000;flex-direction:column}.elementor .e-5f7f69e{padding:0;margin:0;flex-direction:column}.elementor .e-c17f791{padding:0;margin:0;flex-direction:column}.elementor .e-d31e973{padding:0;flex-direction:column}.elementor .e-cc55858{padding:0;margin:0;flex-direction:column}.elementor .e-32f4f02{padding:0;flex-direction:column}@media (max-width:767px){@media(max-width:767px){.elementor .e-fec0823{margin-block-start:0}}}.elementor-59 .elementor-element.elementor-element-472ce2f .tko-header{--tko-header-brand-offset-y:10px;--tko-header-height:100px;--tko-header-logo-height:70px;--tko-header-sound-icon-size:14px;--tko-header-sound-font-size:10px}.elementor-theme-builder-content-area{height:400px}.elementor-location-header:before,.elementor-location-footer:before{content:"";display:table;clear:both}@media(max-width:1024px){.elementor-59 .elementor-element.elementor-element-472ce2f .tko-header{--tko-header-brand-offset-y:8px;--tko-header-logo-height:38px;--tko-header-sound-icon-size:13px;--tko-header-sound-font-size:10px}}@media(max-width:767px){.elementor-59 .elementor-element.elementor-element-472ce2f .tko-header{--tko-header-brand-offset-y:7px;--tko-header-logo-height:32px;--tko-header-sound-icon-size:12px;--tko-header-sound-font-size:9px}}.elementor-401 .elementor-element.elementor-element-34bc94c .tko-footer{--tko-footer-min-height:70vh;--tko-footer-heading-width:420px;--tko-footer-logo-height:72px;--tko-footer-logo-width:360px;--tko-footer-brand-size:12vw}.elementor-theme-builder-content-area{height:400px}.elementor-location-header:before,.elementor-location-footer:before{content:"";display:table;clear:both}@media(max-width:1024px){.elementor-401 .elementor-element.elementor-element-34bc94c .tko-footer{--tko-footer-min-height:680px;--tko-footer-heading-width:90vw;--tko-footer-logo-height:44px;--tko-footer-logo-width:170px;--tko-footer-brand-size:18vw}}@media(max-width:767px){.elementor-401 .elementor-element.elementor-element-34bc94c .tko-footer{--tko-footer-min-height:650px;--tko-footer-heading-width:92vw;--tko-footer-logo-height:40px;--tko-footer-logo-width:150px;--tko-footer-brand-size:22vw}}/**
 * TKO Orkiestra — preloader, 4 warianty cinematic intro.
 * Wybór wariantu: patrz komentarz w tko-preloader.js i
 * class-tko-assets.php -> render_preloader_markup() (filtr tko_preloader_style).
 *
 *   .tko-preloader--shared-element  -> sekwencja zdjęć + FLIP morph.
 *   .tko-preloader--curtain         -> dwa panele rozsuwają się na boki.
 *   .tko-preloader--counter-mask    -> duży licznik + iris wipe (clip-path).
 *   .tko-preloader--video-only      -> jedno pełnoekranowe wideo.
 *
 * 1.7.30: niezależnie od wariantu, ZNIKNIĘCIE preloadera (moment odsłonięcia
 * strony) idzie teraz przez wspólny STRIP REVEAL — patrz sekcja niżej i
 * runStripReveal()/stripRevealFinish() w tko-preloader.js.
 */

/**
 * KONTRAKT preloader <-> Hero: każdy element oznaczony `data-tko-hero-visual`
 * jest domyślnie niewidoczny — JS (tko-preloader.js -> finish()) ZAWSZE
 * odsłania go na końcu intro, niezależnie od wybranego wariantu. Dzięki temu
 * można swobodnie przełączać style bez ryzyka "zapomnianego" elementu.
 */
[data-tko-hero-visual] {
	opacity: 0;
}

/* 1.7.0 (W-3) - tryb "intro raz na sesje": klasa nadawana w <head> zanim
   powstanie body, wiec overlay jest niewidoczny od pierwszego paintu, a
   elementy wspoldzielone z Hero od razu widoczne. JS tylko sprzata markup
   i dispatchuje tko:preloader:dismissed. */
html.tko-intro-skip #tko-preloader {
	display: none !important;
}

html.tko-intro-skip [data-tko-hero-visual] {
	opacity: 1;
}

/* 1.7.30 - strip reveal final (stripRevealFinish w tko-preloader.js):
   scena znika poziomymi paskami od gory do dolu, odslaniajac Hero grajace
   juz swoja animacje wejscia. Wspolne dla wszystkich 4 wariantow. */
.tko-preloader.is-strip-exit {
	pointer-events: none;
}

/* ========================================================================
   STRIP REVEAL — warstwa pasków budowana dynamicznie w JS tuż przed
   zniknięciem preloadera (patrz runStripReveal w tko-preloader.js).
   Warstwa leży NAD całą dotychczasową treścią wariantu (klatki/wideo/
   panele), każdy pasek wypełnia dokładnie 1/N wysokości sceny (flex),
   a JS animuje `scaleY` (transform, compositor-only) z narastającym
   opóźnieniem — pasek znika, poczynając od góry, sekwencyjnie w dół.
   ======================================================================== */
.tko-preloader__strip-layer {
	position: absolute;
	inset: 0;
	z-index: 50;
	display: flex;
	flex-direction: column;
	pointer-events: none;
}

.tko-preloader__strip {
	flex: 1 1 0%;
	width: 100%;
	background: var(--tko-black, #0f0e0e);
	transform-origin: bottom center;
	will-change: transform;
	backface-visibility: hidden;
}

.tko-preloader {
	position: fixed;
	inset: 0;
	z-index: var(--tko-z-preloader);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	background: var(--tko-black);
	color: var(--tko-white);
	overflow: hidden;
	opacity: 1;
	transition: opacity var(--tko-dur-slow) var(--tko-ease);
}

.tko-preloader.is-dismissed {
	opacity: 0;
	pointer-events: none;
}

/* === Scena z klatkami ================================================= */

.tko-preloader__stage {
	position: relative;
	pointer-events: none;
	width: min(46vw, 460px);
	height: min(46vw, 460px);
	max-width: 76vw;
	max-height: 48vh;
}

/* Wyśrodkowany stos — wszystkie klatki dokładnie na sobie (bez rozproszenia),
   JS (revealFrames) crossfade'uje je jedna po drugiej: poprzednia gaśnie w
   tym samym momencie, gdy następna się pojawia — "talia kart" na środku
   ekranu. Ostatnia zostaje i przechodzi do fazy exit/morph. */
.tko-preloader__frame {
	position: absolute;
	inset: 0;
	margin: auto;
	width: clamp(200px, 34vw, 380px);
	height: clamp(140px, 24vw, 265px);
	background-color: var(--tko-black-soft);
	background-size: cover;
	background-position: center;
	border-radius: var(--tko-radius-sm);
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.45);
	opacity: 0;
	will-change: transform, opacity;
	transform: scale(0.92);
}

/* Placeholder gdy filtr tko_preloader_images nie ma jeszcze zdjęcia —
   subtelny gradient zamiast pustego, "zepsutego" prostokąta. */
.tko-preloader__frame:not([style*='background-image']) {
	background-image: linear-gradient(135deg, var(--tko-black-soft), var(--tko-gray-700));
}

.tko-preloader__frame--hero {
	width: clamp(220px, 38vw, 420px);
	height: clamp(155px, 27vw, 295px);
	z-index: 2;
}

/* Klatka jako wideo (autodetekcja po rozszerzeniu — patrz PHP) — wypełnia
   dokładnie ten sam box co zdjęciowe klatki, więc morph/FLIP w JS działa
   identycznie niezależnie od typu medium. */
.tko-preloader__frame-media {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	display: block;
}

/* Klatka "hero" po morphie: position fixed sterowany inline transformem z JS
   (translate+scale liczone dynamicznie do rect celu). Klasa tylko markuje
   fazę, żeby wyłączyć box-shadow/radius w trakcie zajmowania pełnego ekranu. */
.tko-preloader__frame--morphing {
	box-shadow: none;
	z-index: 3;
}

/* === Meta (brand + licznik %) ========================================= */

.tko-preloader__meta {
	position: absolute;
	left: var(--tko-container-pad);
	bottom: max(var(--tko-space-md), env(safe-area-inset-bottom));
	display: flex;
	align-items: baseline;
	gap: var(--tko-space-sm);
	z-index: 4;
	opacity: 1;
	transition: opacity var(--tko-dur-base) var(--tko-ease);
}

.tko-preloader.is-morphing .tko-preloader__meta {
	opacity: 0;
}

.tko-preloader__brand {
	font-family: var(--tko-font-primary);
	font-size: var(--tko-fs-small);
	font-weight: var(--tko-fw-semibold);
	letter-spacing: var(--tko-tracking-wide);
	text-transform: uppercase;
}

.tko-preloader__percent {
	font-size: var(--tko-fs-small);
	font-variant-numeric: tabular-nums;
	color: var(--tko-gray-500);
}

/* === Skip ============================================================== */

.tko-preloader__skip {
	position: absolute;
	right: var(--tko-container-pad);
	bottom: max(var(--tko-space-md), env(safe-area-inset-bottom));
	z-index: 20;
	pointer-events: none;
	touch-action: manipulation;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	padding: var(--tko-space-2xs) var(--tko-space-sm);
	border: 1px solid var(--tko-border);
	border-radius: var(--tko-radius-full);
	font-size: var(--tko-fs-small);
	letter-spacing: var(--tko-tracking-wide);
	text-transform: uppercase;
	color: var(--tko-white);
	opacity: 0;
	transition: opacity var(--tko-dur-fast) var(--tko-ease), background var(--tko-dur-fast) var(--tko-ease), color var(--tko-dur-fast) var(--tko-ease);
}

.tko-preloader__skip.is-visible {
	opacity: 1;
	pointer-events: auto;
}

.tko-preloader__skip:hover,
.tko-preloader__skip:focus-visible {
	background: var(--tko-white);
	color: var(--tko-black);
}

.tko-preloader.is-morphing .tko-preloader__skip {
	opacity: 0;
	pointer-events: none;
}

/* ========================================================================
   WARIANT: curtain — dwa panele, rozsuwane w JS przez gsap (xPercent).
   ======================================================================== */

.tko-preloader--curtain .tko-preloader__panel {
	position: absolute;
	inset: 0;
	width: 50%;
	background: var(--tko-black);
	z-index: 1;
}

.tko-preloader--curtain .tko-preloader__panel--left {
	left: 0;
	border-right: 1px solid var(--tko-border);
}

.tko-preloader--curtain .tko-preloader__panel--right {
	left: 50%;
	border-left: 1px solid var(--tko-border);
}

.tko-preloader--curtain .tko-preloader__meta,
.tko-preloader--curtain .tko-preloader__skip {
	z-index: 2;
}

/* ========================================================================
   WARIANT: counter-mask — duży wyśrodkowany licznik + iris wipe.
   Domknięcie maski (--tko-iris: 150% -> 0%) animowane w JS przez gsap
   jako custom property, więc clip-path pozostaje pojedynczym, czytelnym
   źródłem prawdy zamiast osobnych wartości start/end rozsianych w JS.
   ======================================================================== */

.tko-preloader--counter-mask {
	--tko-iris: 150%;
	clip-path: circle(var(--tko-iris) at 50% 50%);
}

.tko-preloader--counter-mask .tko-preloader__meta {
	position: static;
	flex-direction: column;
	align-items: center;
	gap: var(--tko-space-xs);
}

.tko-preloader--counter-mask .tko-preloader__brand {
	order: 2;
	color: var(--tko-gray-500);
}

.tko-preloader--counter-mask .tko-preloader__percent {
	order: 1;
	font-size: clamp(3.5rem, 2rem + 9vw, 10rem);
	font-weight: var(--tko-fw-semibold);
	letter-spacing: var(--tko-tracking-tighter);
	color: var(--tko-white);
}

/* ========================================================================
   WARIANT: video-only — samo wideo na pełnym ekranie.
   ======================================================================== */

.tko-preloader--video-only {
	display: block;
	background: var(--tko-black, #0f0e0e);
	cursor: pointer;
}

.tko-preloader__video-only {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	min-width: 100%;
	min-height: 100%;
	object-fit: cover;
	object-position: center center;
	background: var(--tko-black, #0f0e0e);
	opacity: 0;
	transform: translateZ(0);
	backface-visibility: hidden;
	transition: opacity 0.28s var(--tko-ease);
}

.tko-preloader--video-only.is-video-ready .tko-preloader__video-only {
	opacity: 1;
}

.tko-preloader--video-only.is-morphing .tko-preloader__video-only {
	pointer-events: none;
}

.tko-preloader--video-only.is-crossfading {
	will-change: opacity;
	pointer-events: none;
}

.tko-preloader--video-only.is-crossfading .tko-preloader__video-only {
	transform-origin: 50% 50%;
	will-change: transform, opacity;
	backface-visibility: hidden;
}

@media (prefers-reduced-motion: reduce) {
	.tko-preloader,
	.tko-preloader__frame,
	.tko-preloader__meta,
	.tko-preloader__skip,
	.tko-preloader--curtain .tko-preloader__panel {
		transition-duration: 0.01ms !important;
	}
}

/* Stabilne skalowanie wideo bez zmniejszania samego overlaya.
   Overlay zawsze wypełnia viewport przez position:fixed + inset:0. W wersji
   1.2.1 jego width/height były ustawiane według visualViewport, który może
   być węższy o scrollbar albo niższy o mobilny pasek przeglądarki. To
   odsłaniało na moment tło dokumentu jako biały pasek. Zamrożony rozmiar
   dotyczy teraz wyłącznie sceny mobilnej, a nie warstwy przykrywającej. */
html[data-tko-preloader-active],
html[data-tko-preloader-active] body {
	background-color: var(--tko-black, #0f0e0e) !important;
	overscroll-behavior: none;
}

.tko-preloader {
	width: auto;
	height: auto;
	min-width: 0;
	min-height: 0;
	max-width: none;
	max-height: none;
	background-color: var(--tko-black, #0f0e0e);
	overscroll-behavior: none;
	transform: translateZ(0);
}

.tko-preloader__frame {
	overflow: hidden;
	isolation: isolate;
	contain: layout paint;
	backface-visibility: hidden;
}

.tko-preloader__frame-media {
	max-width: none;
	min-width: 100%;
	min-height: 100%;
	transform: none;
	backface-visibility: hidden;
	will-change: auto;
}

.tko-preloader__frame--morphing {
	will-change: transform, left, top, width, height, border-radius, opacity;
	background: var(--tko-black);
}

@media (max-width: 767px) {
	.tko-preloader__stage {
		position: absolute;
		left: 50%;
		top: 50%;
		width: var(--tko-preloader-stage-width, 100%);
		height: var(--tko-preloader-stage-height, 100%);
		max-width: none;
		max-height: none;
		transform: translate3d(-50%, -50%, 0);
	}

	.tko-preloader__frame {
		width: min(76vw, 360px);
		height: min(50vw, 238px);
	}

	.tko-preloader__frame--hero {
		width: min(82vw, 390px);
		height: min(55vw, 262px);
	}
}

/* === 1.7.22 — viewport guard / usunięcie dolnego szarego paska ============
   Dolny pasek był widoczny już podczas intro, więc nie może pochodzić z
   Biletów ani Overlapu. Zabezpieczamy sam viewport przed poziomowym overflow
   oraz wyłączamy rezerwowany gutter na czas pełnoekranowego preloadera.
   Nie zmienia to pionowego scrolla po zakończeniu intro. */
html,
body {
	width: 100%;
	max-width: 100%;
	overflow-x: clip !important;
}

@supports not (overflow: clip) {
	html,
	body {
		overflow-x: hidden !important;
	}
}

html[data-tko-preloader-active] {
	scrollbar-gutter: auto !important;
	overflow: hidden !important;
	background: var(--tko-black, #0f0e0e) !important;
}

html[data-tko-preloader-active] body {
	overflow: hidden !important;
	background: var(--tko-black, #0f0e0e) !important;
}

html[data-tko-preloader-active] #tko-preloader {
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	min-width: 100% !important;
	min-height: 100% !important;
	max-width: none !important;
	max-height: none !important;
}


/* === 1.7.33 — Complianz dopiero po preloaderze ============================
   Complianz może wyrenderować baner zanim cinematic intro TKO się zakończy.
   Nie blokujemy inicjalizacji CMP ani zapisu zgód — ukrywamy tylko warstwę
   wizualną na czas, gdy #tko-preloader faktycznie istnieje w DOM. Po usunięciu
   preloadera reguła przestaje pasować i Complianz natychmiast odzyskuje swój
   własny stan/animację. */
body:has(#tko-preloader) #cmplz-cookiebanner-container,
body:has(#tko-preloader) .cmplz-cookiebanner-container,
body:has(#tko-preloader) .cmplz-cookiebanner,
body:has(#tko-preloader) .cmplz-soft-cookiewall,
html[data-tko-preloader-active] #cmplz-cookiebanner-container,
html[data-tko-preloader-active] .cmplz-cookiebanner-container,
html[data-tko-preloader-active] .cmplz-cookiebanner,
html[data-tko-preloader-active] .cmplz-soft-cookiewall {
	opacity: 0 !important;
	visibility: hidden !important;
	pointer-events: none !important;
}


/* === 1.7.43 — spójna typografia preloadera ============================== */
#tko-preloader,#tko-preloader button { font-family:var(--tko-font-primary) !important; }
.tko-preloader__brand,.tko-preloader__skip,.tko-preloader__percent { font-size:var(--tko-type-eyebrow-size) !important;font-weight:var(--tko-type-eyebrow-weight) !important;line-height:var(--tko-type-eyebrow-line) !important;letter-spacing:var(--tko-type-eyebrow-track) !important; }
.tko-preloader--counter-mask .tko-preloader__percent { font-weight:var(--tko-type-display-weight) !important;line-height:var(--tko-type-display-line) !important;letter-spacing:var(--tko-type-display-track) !important; }
input[type="checkbox"].cmplz-category{width:initial;-webkit-appearance:checkbox}input[type="checkbox"].cmplz-category:checked::before{content:''}.cmplz-cookiebanner{box-sizing:border-box}:root{--cmplz_banner_width:523px;--cmplz_banner_background_color:#ffffff;--cmplz_banner_border_color:#f2f2f2;--cmplz_banner_border_width:0px 0px 0px 0px;--cmplz_banner_border_radius:4px 4px 4px 4px;--cmplz_banner_margin:10px;--cmplz_categories-height:163px;--cmplz_title_font_size:15px;--cmplz_text_line_height:calc(var(--cmplz_text_font_size) * 1.5);--cmplz_text_color:#222222;--cmplz_hyperlink_color:#ffc133;--cmplz_text_font_size:12px;--cmplz_link_font_size:12px;--cmplz_category_body_font_size:12px;--cmplz_button_accept_background_color:#ffc133;--cmplz_button_accept_border_color:#ffc133;--cmplz_button_accept_text_color:#ffffff;--cmplz_button_deny_background_color:#f9f9f9;--cmplz_button_deny_border_color:#f2f2f2;--cmplz_button_deny_text_color:#222222;--cmplz_button_settings_background_color:#f9f9f9;--cmplz_button_settings_border_color:#f2f2f2;--cmplz_button_settings_text_color:#333333;--cmplz_button_border_radius:6px 6px 6px 6px;--cmplz_button_font_size:15px;--cmplz_category_header_always_active_color:green;--cmplz_category_header_title_font_size:14px;--cmplz_category_header_active_font_size:12px;--cmplz-manage-consent-height:50px;--cmplz-manage-consent-offset:-35px;--cmplz_slider_active_color:#ffc133;--cmplz_slider_inactive_color:#555;--cmplz_slider_bullet_color:#ffffff}body.cmplz-banner-active *:not(.cmplz-cookiebanner):not(.cmplz-cookiebanner *){pointer-events:none!important;user-select:none!important}.cmplz-cookiebanner *{pointer-events:auto!important;user-select:auto!important}#cmplz-manage-consent .cmplz-manage-consent{margin:unset;z-index:9998;color:var(--cmplz_text_color);background-color:var(--cmplz_banner_background_color);border-style:solid;border-color:var(--cmplz_banner_border_color);border-width:var(--cmplz_banner_border_width);border-radius:var(--cmplz_banner_border_radius);border-bottom-left-radius:0;border-bottom-right-radius:0;line-height:initial;position:fixed;bottom:var(--cmplz-manage-consent-offset);min-width:100px;height:var(--cmplz-manage-consent-height);right:40px;padding:15px;cursor:pointer;animation:mc_slideOut 0.5s forwards}#cmplz-manage-consent .cmplz-manage-consent:active{outline:none;border:none}#cmplz-manage-consent .cmplz-manage-consent.cmplz-dismissed{display:none}#cmplz-manage-consent .cmplz-manage-consent:hover,#cmplz-manage-consent .cmplz-manage-consent:focus{animation:mc_slideIn 0.5s forwards;animation-delay:0}@-webkit-keyframes mc_slideIn{100%{bottom:0}}@keyframes mc_slideIn{100%{bottom:0}}@-webkit-keyframes mc_slideOut{100%{bottom:var(--cmplz-manage-consent-offset)}}@keyframes mc_slideOut{100%{bottom:var(--cmplz-manage-consent-offset)}}@media (max-width:425px){.cmplz-cookiebanner .cmplz-header .cmplz-title{display:none}}.cmplz-cookiebanner{max-height:calc(100vh - 20px);overflow-y:auto;position:fixed;height:auto;left:50%;top:50%;-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);grid-template-rows:minmax(0,1fr);z-index:99999;background:var(--cmplz_banner_background_color)}.cmplz-cookiebanner a{transition:initial}.cmplz-cookiebanner .cmplz-buttons a.cmplz-btn.tcf{display:none}.cmplz-cookiebanner.cmplz-dismissed{display:none}.cmplz-cookiebanner .cmplz-body{width:100%;grid-column:span 3;overflow-y:auto;overflow-x:hidden;max-height:55vh}.cmplz-cookiebanner .cmplz-body::-webkit-scrollbar-track{border-radius:10px;-webkit-box-shadow:inset 0 0 2px #fff0;background-color:#fff0}.cmplz-cookiebanner .cmplz-body::-webkit-scrollbar{width:5px;background-color:#fff0}.cmplz-cookiebanner .cmplz-body::-webkit-scrollbar-thumb{background-color:var(--cmplz_button_accept_background_color);border-radius:10px}@media (min-width:350px){.cmplz-cookiebanner .cmplz-body{min-width:300px}}@media (max-height:400px){.cmplz-cookiebanner{height:calc(100vh - 20px);display:flex;flex-direction:column;overflow:hidden;gap:1px;grid-row-gap:1px;padding:7px 12px!important;zoom:.6}.cmplz-cookiebanner .cmplz-body{flex:1;min-height:0;overflow-y:auto;max-height:none;margin-top:15px!important}.cmplz-cookiebanner .cmplz-header,.cmplz-cookiebanner .cmplz-divider,.cmplz-cookiebanner .cmplz-links,.cmplz-cookiebanner .cmplz-buttons,.cmplz-cookiebanner .cmplz-documents{flex-shrink:0}.cmplz-cookiebanner .cmplz-header{margin-bottom:15px!important;max-height:10px}.cmplz-close{zoom:0.6!important}.cmplz-cookiebanner .cmplz-buttons{gap:1px!important}.cmplz-cookiebanner .cmplz-buttons .cmplz-btn{height:15vh!important;min-height:unset!important;padding:0!important;white-space:nowrap!important;font-size:1.1rem!important;line-height:14px!important;zoom:0.5!important}.cmplz-cookiebanner .cmplz-documents,.cmplz-cookiebanner .cmplz-information{zoom:0.5!important}}@media (max-height:400px) and (max-width:768px){.cmplz-cookiebanner{gap:1px}}.cmplz-cookiebanner{border-style:solid;border-color:var(--cmplz_banner_border_color);border-width:var(--cmplz_banner_border_width);border-radius:var(--cmplz_banner_border_radius);padding:15px 20px;display:grid;grid-gap:10px}.cmplz-cookiebanner .cmplz-divider{margin-left:-20px;margin-right:-20px}.cmplz-cookiebanner .cmplz-header{grid-template-columns:100px 1fr 100px;align-items:center;display:grid;grid-column:span 3}@media (max-width:399px){.cmplz-cookiebanner .cmplz-header{grid-template-columns:auto 1fr auto}}.cmplz-cookiebanner .cmplz-logo svg{max-height:35px;width:inherit}.cmplz-cookiebanner .cmplz-logo img{max-height:40px;width:inherit}.cmplz-cookiebanner .cmplz-title{justify-self:center;grid-column-start:2;font-size:var(--cmplz_title_font_size);color:var(--cmplz_text_color);font-weight:500}.cmplz-cookiebanner .cmplz-close{line-height:20px;justify-self:end;grid-column-start:3;font-size:20px;cursor:pointer;width:20px;height:20px;color:var(--cmplz_text_color)}.cmplz-cookiebanner .cmplz-close svg{width:20px;height:20px}.cmplz-cookiebanner .cmplz-close:hover{text-decoration:none;line-height:initial;font-size:18px}.cmplz-cookiebanner .cmplz-message{word-wrap:break-word;font-size:var(--cmplz_text_font_size);line-height:var(--cmplz_text_line_height);color:var(--cmplz_text_color);margin-bottom:5px}.cmplz-cookiebanner .cmplz-message a{color:var(--cmplz_hyperlink_color)}.cmplz-cookiebanner .cmplz-message,.cmplz-cookiebanner .cmplz-categories,.cmplz-cookiebanner .cmplz-links,.cmplz-cookiebanner .cmplz-buttons,.cmplz-cookiebanner .cmplz-divider{grid-column:span 3}.cmplz-cookiebanner .cmplz-categories.cmplz-tcf .cmplz-category .cmplz-category-header{grid-template-columns:1fr auto}.cmplz-cookiebanner .cmplz-categories .cmplz-category{background-color:rgb(239 239 239 / .5)}.cmplz-cookiebanner .cmplz-categories .cmplz-category:not(:last-child){margin-bottom:10px}.cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-category-header{display:grid;grid-template-columns:1fr auto 15px;grid-template-rows:minmax(0,1fr);align-items:center;grid-gap:10px;padding:10px}.cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-category-title{font-weight:500;grid-column-start:1;justify-self:start;font-size:var(--cmplz_category_header_title_font_size);color:var(--cmplz_text_color);margin:0}.cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-always-active{font-size:var(--cmplz_category_header_active_font_size);font-weight:500;color:var(--cmplz_category_header_always_active_color)}.cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-always-active label{display:none}.cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-banner-checkbox{display:flex;align-items:center;margin:0}.cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-banner-checkbox input[data-category=cmplz_functional]{display:none}.cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-category-toggle{background:none;border:none;padding:0;margin:0;cursor:pointer;grid-column-start:3;display:flex;align-items:center;justify-content:center;color:inherit}.cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-icon.cmplz-open{cursor:pointer;content:'';transform:rotate(0deg);-webkit-transition:all 0.5s ease;-moz-transition:all 0.5s ease;-o-transition:all 0.5s ease;transition:all 0.5s ease;background-size:cover;height:18px;width:18px}.cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-description{font-size:var(--cmplz_category_body_font_size);color:var(--cmplz_text_color);margin:0;max-width:100%;padding:10px}@media (max-width:425px){.cmplz-cookiebanner .cmplz-category .cmplz-category-header{grid-template-columns:1fr!important}}@media (max-width:425px){.cmplz-cookiebanner .cmplz-message{margin-right:5px}}.cmplz-cookiebanner .cmplz-buttons{display:flex;gap:var(--cmplz_banner_margin)}.cmplz-cookiebanner .cmplz-buttons .cmplz-btn{min-height:45px;padding:10px;margin:initial;width:100%;white-space:nowrap;border-radius:var(--cmplz_button_border_radius);cursor:pointer;font-size:var(--cmplz_button_font_size);font-weight:500;text-decoration:none;line-height:20px;text-align:center;flex:initial}.cmplz-cookiebanner .cmplz-buttons .cmplz-btn:hover{text-decoration:none}.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept{background-color:var(--cmplz_button_accept_background_color);border:1px solid var(--cmplz_button_accept_border_color);color:var(--cmplz_button_accept_text_color)}.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny{background-color:var(--cmplz_button_deny_background_color);border:1px solid var(--cmplz_button_deny_border_color);color:var(--cmplz_button_deny_text_color)}.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences{background-color:var(--cmplz_button_settings_background_color);border:1px solid var(--cmplz_button_settings_border_color);color:var(--cmplz_button_settings_text_color)}.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences{background-color:var(--cmplz_button_settings_background_color);border:1px solid var(--cmplz_button_settings_border_color);color:var(--cmplz_button_settings_text_color)}.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-manage-options{background-color:var(--cmplz_button_settings_background_color);border:1px solid var(--cmplz_button_settings_border_color);color:var(--cmplz_button_settings_text_color)}.cmplz-cookiebanner .cmplz-buttons a.cmplz-btn{display:flex;align-items:center;justify-content:center;padding:initial}@media (max-width:425px){.cmplz-cookiebanner .cmplz-links.cmplz-information{display:initial;text-align:center}}.cmplz-cookiebanner .cmplz-links{display:flex;gap:var(--cmplz_banner_margin)}.cmplz-cookiebanner .cmplz-links.cmplz-information{justify-content:space-between}.cmplz-cookiebanner .cmplz-links.cmplz-documents{justify-content:center}.cmplz-cookiebanner .cmplz-links .cmplz-link{color:var(--cmplz_hyperlink_color);font-size:var(--cmplz_link_font_size);text-decoration:underline;margin:0}.cmplz-cookiebanner .cmplz-links .cmplz-link.cmplz-read-more-purposes{display:none}.cmplz-cookiebanner .cmplz-links ul{margin:0;padding:0;list-style:none;display:flex;gap:var(--cmplz_banner_margin);justify-content:center}.cmplz-categories .cmplz-category .cmplz-description-statistics-anonymous{display:none}.cmplz-categories .cmplz-category .cmplz-description-statistics{display:block}.cmplz-categories .cmplz-category .cmplz-category-header .cmplz-category-toggle{background:none;border:none;padding:0;margin:0;cursor:pointer;grid-column-start:3;display:flex;align-items:center;justify-content:center;color:inherit}.cmplz-categories .cmplz-category .cmplz-category-toggle[aria-expanded="true"] .cmplz-icon.cmplz-open{transform:rotate(180deg)}.cmplz-cookiebanner{top:initial;left:10px;bottom:10px;transform:initial}@media (min-width:768px){.cmplz-cookiebanner{min-width:var(--cmplz_banner_width);max-width:100%;display:grid;grid-row-gap:10px}}@media (max-width:768px){.cmplz-cookiebanner{left:initial;right:initial;bottom:0;width:100%}.cmplz-cookiebanner .cmplz-buttons{flex-direction:column}}@media (min-width:768px){.cmplz-message,.cmplz-categories{width:calc(var(--cmplz_banner_width) - 42px)}}#cmplz-manage-consent .cmplz-manage-consent{left:40px;right:initial}.cmplz-cookiebanner .cmplz-categories,.cmplz-cookiebanner .cmplz-save-preferences,.cmplz-cookiebanner .cmplz-link.cmplz-manage-options,.cmplz-cookiebanner .cmplz-manage-vendors,.cmplz-cookiebanner .cmplz-read-more,.cmplz-cookiebanner .cmplz-btn.cmplz-manage-options{display:none}.cmplz-cookiebanner .cmplz-categories.cmplz-fade-in{animation:fadeIn 1s;-webkit-animation:fadeIn 1s;-moz-animation:fadeIn 1s;-o-animation:fadeIn 1s;-ms-animation:fadeIn 1s;display:block}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-moz-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-o-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-ms-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.cmplz-cookiebanner .cmplz-links.cmplz-information{display:none}.cmplz-cookiebanner{animation:fadeIn 2s;-webkit-animation:fadeIn 2s;-moz-animation:fadeIn 2s;-o-animation:fadeIn 2s;-ms-animation:fadeIn 2s}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-moz-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-o-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@-ms-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.cmplz-cookiebanner .cmplz-preferences,.cmplz-manage-consent-container .cmplz-preferences{display:none}@media (max-width:768px){#cmplz-manage-consent .cmplz-manage-consent{display:none}}.cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-banner-checkbox{position:relative}.cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-banner-checkbox input.cmplz-consent-checkbox{opacity:0;margin:0;margin-top:-10px;cursor:pointer;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;-khtml-opacity:0;position:absolute;z-index:1;top:0;left:0;width:40px;height:20px}.cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-banner-checkbox input.cmplz-consent-checkbox:focus+.cmplz-label:before{box-shadow:0 0 0 2px #245fcc}.cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-banner-checkbox input.cmplz-consent-checkbox:checked+.cmplz-label::before{display:block;background-color:var(--cmplz_slider_active_color);content:"";padding-left:6px}.cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-banner-checkbox input.cmplz-consent-checkbox:checked+.cmplz-label:after{left:14px}.cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-banner-checkbox .cmplz-label{position:relative;padding-left:30px;margin:0}.cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-banner-checkbox .cmplz-label:before,.cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-banner-checkbox .cmplz-label:after{box-sizing:border-box;position:absolute;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;transition:background-color 0.3s,left 0.3s}.cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-banner-checkbox .cmplz-label:before{display:block;content:"";color:#fff;box-sizing:border-box;font-family:'FontAwesome',sans-serif;padding-left:23px;font-size:12px;line-height:20px;background-color:var(--cmplz_slider_inactive_color);left:0;top:-7px;height:15px;width:28px;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px}.cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-banner-checkbox .cmplz-label:after{display:block;content:"";letter-spacing:20px;background:var(--cmplz_slider_bullet_color);left:4px;top:-5px;height:11px;width:11px}.cmplz-cookiebanner{box-shadow:rgb(0 0 0 / .19) 0 10px 20px,rgb(0 0 0 / .23) 0 6px 6px}#cmplz-manage-consent .cmplz-manage-consent{box-shadow:rgb(0 0 0 / .19) 0 10px 20px,rgb(0 0 0 / .23) 0 6px 6px}.cmplz-cookiebanner.cmplz-show{box-shadow:rgb(0 0 0 / .19) 0 10px 20px,rgb(0 0 0 / .23) 0 6px 6px}.cmplz-cookiebanner.cmplz-show:hover{transition-duration:1s;box-shadow:rgb(0 0 0 / .3) 0 19px 38px,rgb(0 0 0 / .22) 0 15px 12px}