/* =========================================================================
   NSCA EVENTS — sekcje stron wydarzeń
   =========================================================================

   Tokeny (kolory, rozmiary, odstępy) są w assets/tokens.css.
   Ten plik zawiera wyłącznie style komponentów.

   Klasy współdzielone ze sklepem (.nsca-btn, .nsca-eyebrow,
   .nsca-section__word) pochodzą z shop.css, który ładuje się razem
   z tym plikiem — sekcja biletów używa przycisku koszyka ze sklepu.

   ========================================================================= */

.nsca-ev-hero,
.nsca-ev-bar,
.nsca-ev-benefits,
.nsca-ev-agenda,
.nsca-ev-audience,
.nsca-ev-speakers,
.nsca-ev-partners,
.nsca-ev-cert,
.nsca-ev-tickets,
.nsca-ev-promo,
.nsca-ev-faq {
	box-sizing: border-box;
}

.nsca-ev-hero *,
.nsca-ev-bar *,
.nsca-ev-benefits *,
.nsca-ev-agenda *,
.nsca-ev-audience *,
.nsca-ev-speakers *,
.nsca-ev-partners *,
.nsca-ev-cert *,
.nsca-ev-tickets *,
.nsca-ev-promo *,
.nsca-ev-faq * {
	box-sizing: inherit;
}

/* --- Nagłówek sekcji ------------------------------------------------------
   Jednokolorowy, ze złotą kreską pod spodem. W makietach wydarzeń nie ma
   podziału na dwa kolory — ten zostaje wyłącznie w tytule hero.

   Kreska jest osobnym elementem, nie pseudoelementem. Powód: przy
   `flex: 0 0 100%` na pseudoelemencie baza flex wygrywa z `width`
   i kreska rozciągała się na całą szerokość sekcji. */

.nsca-ev-heading {
	margin: 0 0 var(--nsca-space-lg);
	font-family: var(--nsca-font-heading);
	font-stretch: condensed;
	font-weight: var(--nsca-fw-heading);
	line-height: var(--nsca-lh-tight);
	letter-spacing: -0.015em;
	text-transform: uppercase;
	color: var(--nsca-text);
}

.nsca-ev-heading--lg {
	font-size: clamp(2rem, 3.4vw, 3rem);
}

.nsca-ev-heading--sm {
	font-size: clamp(1.5rem, 2.5vw, 2rem);
}

.nsca-ev-heading__text {
	display: block;
}

.nsca-ev-heading__rule {
	display: block;
	width: 56px;
	height: 3px;
	margin-top: 14px;
	background: var(--nsca-gold);
}

.nsca-ev-heading--center {
	text-align: center;
}

.nsca-ev-heading--center .nsca-ev-heading__rule {
	margin-left: auto;
	margin-right: auto;
}

/* Na ciemnym tle nagłówek jest złoty, a kreska przygaszona,
   żeby nie zlewała się z tekstem. */
.nsca--dark .nsca-ev-heading,
.nsca-ev-benefits .nsca-ev-heading,
.nsca-ev-audience .nsca-ev-heading,
.nsca-ev-promo .nsca-ev-heading {
	color: var(--nsca-gold-on-dark);
}

.nsca--dark .nsca-ev-heading__rule,
.nsca-ev-benefits .nsca-ev-heading__rule,
.nsca-ev-audience .nsca-ev-heading__rule,
.nsca-ev-promo .nsca-ev-heading__rule {
	background: rgba(255, 255, 255, 0.28);
}

/* --- Lista z haczykami ----------------------------------------------------
   Znacznik rysowany CSS-em: dwie kreski złożone w ptaszek. Brak obrazka
   oznacza brak dodatkowego requestu i skalowanie razem z tekstem. */

.nsca-ev-checklist {
	margin: 0;
	padding: 0;
	list-style: none;
}

.nsca-ev-checklist__item {
	position: relative;
	padding-left: 26px;
	margin-bottom: 10px;
	font-size: var(--nsca-fs-list, 14px);
	line-height: 1.5;
	color: var(--nsca-text-muted);
}

.nsca-ev-checklist__item::before,
.nsca-ev-checklist__item::after {
	content: "";
	position: absolute;
	background: var(--nsca-gold);
}

.nsca-ev-checklist__item::before {
	left: 3px;
	top: 10px;
	width: 5px;
	height: 2px;
	transform: rotate(45deg);
}

.nsca-ev-checklist__item::after {
	left: 6px;
	top: 8px;
	width: 10px;
	height: 2px;
	transform: rotate(-45deg);
}

.nsca--dark .nsca-ev-checklist__item {
	color: var(--nsca-dark-muted);
}

/* =========================================================================
   HERO
   ========================================================================= */

.nsca-ev-hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(24px, 4vw, 72px);
	align-items: center;
	padding: var(--nsca-space-xl) 0;
}

.nsca-ev-hero__overline {
	display: inline-block;
	margin: 0 0 var(--nsca-space-md);
	padding: 7px 14px;
	border: 1px solid var(--nsca-gold);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--nsca-gold-text);
}

.nsca-ev-hero__title {
	display: flex;
	font-family: var(--nsca-font-heading);
	font-stretch: condensed;
	flex-wrap: wrap;
	gap: 0.22em;
	margin: 0 0 var(--nsca-space-sm);
	font-size: clamp(3rem, 5.4vw, 4.8rem);
	font-weight: var(--nsca-fw-heading);
	line-height: 0.98;
	letter-spacing: -0.025em;
	text-transform: uppercase;
}

.nsca-ev-hero__when {
	display: flex;
	font-family: var(--nsca-font-ui);
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 0 0 var(--nsca-space-md);
	font-size: var(--nsca-fs-small);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nsca-text);
}

.nsca-ev-hero__sep {
	color: var(--nsca-border);
}

.nsca-ev-hero__lead {
	max-width: 52ch;
	margin: 0 0 var(--nsca-space-lg);
	font-size: var(--nsca-fs-body);
	line-height: var(--nsca-lh-body);
	color: var(--nsca-text-muted);
}

.nsca-ev-hero__lead p:last-child {
	margin-bottom: 0;
}

.nsca-ev-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: var(--nsca-space-lg);
}


.nsca-ev-hero .nsca-btn,
.nsca-ev-tickets .nsca-btn,
.nsca-ev-promo .nsca-btn,
.nsca-ev-speakers .nsca-btn {
	font-family: var(--nsca-font-ui);
	font-stretch: condensed;
}

/* Wiersz statystyk pod przyciskami. */
.nsca-ev-stats {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nsca-space-xl);
	margin: 0;
	padding-top: var(--nsca-space-md);
	border-top: 1px solid var(--nsca-border);
}

.nsca-ev-stats__item {
	min-width: 0;
}

.nsca-ev-stats__value {
	margin: 0;
	font-family: var(--nsca-font-display);
	font-stretch: condensed;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.1;
	color: var(--nsca-gold-text);
}

.nsca-ev-stats__label {
	margin: 4px 0 0;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--nsca-label);
}

/* Ciemny blok po prawej. */
.nsca-ev-hero__media {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 340px;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--nsca-ev-dark);
}

/* Zdjecie wypelnia caly ciemny blok. !important, bo motywy i WooCommerce
   ustawiaja img { height: auto }, co zostawialoby pas pod spodem. */
.nsca-ev-hero__img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	object-fit: cover;
	object-position: center;
	display: block;
}

/* Przyciemnienie nad zdjeciem. Renderuje sie tylko wtedy, gdy zdjecie
   jest wgrane - bez niego blok jest po prostu czarny. */
.nsca-ev-hero__scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(
		180deg,
		rgba(10, 10, 10, var(--nsca-ev-scrim-top, 0.35)) 0%,
		rgba(10, 10, 10, var(--nsca-ev-scrim-bottom, 0.7)) 100%
	);
}

/* Bez napisu przyciemnienie jest delikatniejsze - zdjecie ma byc widoczne. */
.nsca-ev-hero__media.has-image:not(:has(.nsca-ev-hero__watermark)) .nsca-ev-hero__scrim {
	background: linear-gradient(
		180deg,
		rgba(10, 10, 10, 0.1) 0%,
		rgba(10, 10, 10, 0.35) 100%
	);
}

/* Napis znakowy na ciemnym tle — przygaszony, dekoracyjny. */
.nsca-ev-hero__watermark {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
	padding: var(--nsca-space-lg);
	text-align: center;
	font-size: clamp(0.875rem, 1.6vw, 1.25rem);
	font-weight: 700;
	letter-spacing: 0.4em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.16);
}

/* =========================================================================
   PASEK INFORMACYJNY
   ========================================================================= */

.nsca-ev-bar {
	background: var(--nsca-ev-dark);
	color: var(--nsca-dark-text);
	border-top: 2px solid var(--nsca-gold);
}

.nsca-ev-bar__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: var(--nsca-space-md) var(--nsca-space-lg);
	margin: 0;
	padding: 16px 0;
	list-style: none;
}

.nsca-ev-bar__item {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.86);
}

.nsca-ev-bar__dot {
	flex: none;
	width: 6px;
	height: 6px;
	background: var(--nsca-gold);
}

/* =========================================================================
   CO ZYSKASZ / DLACZEGO WARTO
   ========================================================================= */

.nsca-ev-benefits {
	padding: var(--nsca-space-2xl) 0;
	background: var(--nsca-ev-dark);
	color: var(--nsca-dark-text);
}

.nsca-ev-benefits__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--nsca-space-xl) var(--nsca-space-lg);
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Ikona po lewej, tekst po prawej. Bez ramek i bez kafli — same pozycje
   na czarnym tle, tak jak w makiecie. */
.nsca-ev-benefit {
	display: grid;
	grid-template-columns: 30px minmax(0, 1fr);
	gap: 14px;
	align-items: start;
}

.nsca-ev-benefit__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	margin-top: 2px;
	color: var(--nsca-gold-on-dark);
}

.nsca-ev-benefit__icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.nsca-ev-benefit__dot {
	width: 10px;
	height: 10px;
	background: var(--nsca-gold);
}

.nsca-ev-benefit__title {
	margin: 0 0 6px;
	font-size: var(--nsca-fs-card-sm);
	font-weight: 700;
	line-height: var(--nsca-lh-snug);
	color: var(--nsca-white);
}

.nsca-ev-benefit__desc {
	margin: 0;
	max-width: 42ch;
	font-size: var(--nsca-fs-small);
	line-height: 1.6;
	color: var(--nsca-dark-muted);
}

/* =========================================================================
   HARMONOGRAM
   ========================================================================= */

.nsca-ev-agenda {
	max-width: var(--nsca-ev-agenda-max);
	margin-inline: auto;
	padding: var(--nsca-space-2xl) 0;
	background: var(--nsca-ev-surface);
	box-shadow: 0 0 0 100vmax var(--nsca-ev-surface);
	clip-path: inset(0 -100vmax);
}

.nsca-ev-agenda__meta {
	margin: 0 0 8px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--nsca-gold-text);
}

.nsca-ev-agenda__content {
	width: 100%;
}

.nsca-ev-agenda__box {
	background: var(--nsca-white);
	border: 1px solid var(--nsca-ev-line);
	border-top: 3px solid var(--nsca-gold);
	box-shadow: var(--nsca-ev-card-shadow);
}

/* Zakładki dni. */
.nsca-ev-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: var(--nsca-space-lg);
	margin: 0 0 var(--nsca-space-lg);
	padding: 0;
	border-bottom: 1px solid var(--nsca-ev-line);
}

.nsca-ev-tab {
	position: relative;
	font-family: var(--nsca-font-ui);
	font-stretch: condensed;
	display: flex;
	align-items: baseline;
	gap: 8px;
	padding: 0 0 14px;
	border: 0;
	background: transparent;
	font-family: inherit;
	cursor: pointer;
	color: var(--nsca-label);
	transition: color var(--nsca-transition);
}

.nsca-ev-tab__name {
	font-size: var(--nsca-fs-small);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.nsca-ev-tab__date {
	font-size: 11px;
	letter-spacing: 0.06em;
}

.nsca-ev-tab:hover {
	color: var(--nsca-text);
}

.nsca-ev-tab:focus {
	outline: none;
	box-shadow: none;
}

/* Aktywna zakładka: kolor plus kreska. Sam kolor nie wystarczy. */
.nsca-ev-tab.is-active {
	color: var(--nsca-text);
}

.nsca-ev-tab.is-active::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 2px;
	background: var(--nsca-gold);
}

.nsca-ev-tab:focus-visible {
	outline: var(--nsca-focus-width) solid var(--nsca-focus-color);
	outline-offset: var(--nsca-focus-offset);
}

/* Oś czasu. */
.nsca-ev-timeline {
	margin: 0;
	padding: var(--nsca-space-md) var(--nsca-space-lg) var(--nsca-space-lg);
	list-style: none;
	counter-reset: none;
}

.nsca-ev-timeline__item {
	display: grid;
	grid-template-columns: var(--nsca-ev-time-col) minmax(0, 1fr);
	gap: var(--nsca-space-md);
	padding: 16px 0 16px var(--nsca-space-sm);
	border-left: 2px solid var(--nsca-ev-rail-active);
	margin-left: 2px;
}

.nsca-ev-timeline__item + .nsca-ev-timeline__item {
	border-top: 1px solid var(--nsca-ev-line);
}

/* Przerwy: bez złotej kreski, przygaszone. */
.nsca-ev-timeline__item.is-break {
	border-left-color: transparent;
	padding-top: 12px;
	padding-bottom: 12px;
}

.nsca-ev-timeline__time {
	font-family: var(--nsca-font-display);
	font-stretch: condensed;
	font-size: 1.2rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--nsca-gold-text);
	white-space: nowrap;
}

.nsca-ev-timeline__item.is-break .nsca-ev-timeline__time {
	font-weight: 400;
	color: var(--nsca-label);
}

.nsca-ev-timeline__title {
	margin: 0;
	font-size: 1rem;
	font-weight: 700;
	line-height: var(--nsca-lh-snug);
	color: var(--nsca-text);
}

.nsca-ev-timeline__item.is-break .nsca-ev-timeline__title {
	font-weight: 400;
	color: var(--nsca-text-muted);
}

.nsca-ev-timeline__speaker {
	margin: 0 0 4px;
	font-size: 1rem;
	font-weight: 600;
	color: var(--nsca-text);
}

.nsca-ev-timeline__desc {
	margin: 6px 0 0;
	max-width: 78ch;
	font-size: 0.9375rem;
	font-style: italic;
	line-height: 1.55;
	color: var(--nsca-text-muted);
}

/* =========================================================================
   DLA KOGO
   ========================================================================= */

.nsca-ev-audience {
	padding: var(--nsca-space-2xl) 0;
	background: var(--nsca-ev-dark);
	color: var(--nsca-dark-text);
}

.nsca-ev-audience .nsca-section__word {
	color: var(--nsca-dark-text);
}

.nsca-ev-audience .nsca-section__word--accent {
	color: var(--nsca-gold-on-dark);
}

.nsca-ev-audience__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--nsca-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.nsca-ev-audience__item {
	padding: var(--nsca-space-md);
	border: 1px solid var(--nsca-dark-border);
	border-top: 2px solid var(--nsca-gold);
}

.nsca-ev-audience__title {
	margin: 0 0 8px;
	font-size: var(--nsca-fs-card-sm);
	font-weight: 700;
	line-height: var(--nsca-lh-snug);
	color: var(--nsca-gold-on-dark);
}

.nsca-ev-audience__desc {
	margin: 0;
	font-size: var(--nsca-fs-small);
	line-height: 1.55;
	color: var(--nsca-dark-muted);
}

/* =========================================================================
   PRELEGENCI
   ========================================================================= */

.nsca-ev-speakers {
	max-width: var(--nsca-ev-speakers-max);
	margin-inline: auto;
	padding: var(--nsca-space-2xl) 0;
}

.nsca-ev-speakers__track {
	display: flex;
	gap: var(--nsca-gap);
	margin: 0;
	padding: 0 0 var(--nsca-space-sm);
	list-style: none;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
}

.nsca-ev-speakers__track::-webkit-scrollbar {
	display: none;
}

.nsca-ev-speakers__track:focus-visible {
	outline: var(--nsca-focus-width) solid var(--nsca-focus-color);
	outline-offset: 4px;
}

.nsca-ev-speaker {
	flex: 0 0 calc(50% - var(--nsca-gap) / 2);
	max-width: calc(50% - var(--nsca-gap) / 2);
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	background: var(--nsca-ev-surface);
	border: 1px solid var(--nsca-ev-line);
	border-left: 3px solid var(--nsca-gold);
}

.nsca-ev-speaker__head {
	position: relative;
	display: flex;
	align-items: center;
	gap: 16px;
	min-height: var(--nsca-ev-speaker-head-min);
	padding: var(--nsca-space-lg) var(--nsca-space-md) var(--nsca-space-md);
	background-color: var(--nsca-ev-dark);
	background-image: repeating-linear-gradient(
		45deg,
		rgba(201, 162, 39, 0.12) 0,
		rgba(201, 162, 39, 0.12) 1px,
		transparent 1px,
		transparent 9px
	);
	overflow: hidden;
	align-content: flex-end;
	flex-wrap: wrap;
}

.nsca-ev-speaker__avatar {
	position: relative;
	z-index: 1;
	flex: none;
	align-self: flex-start;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 80px;
	height: 80px;
	border-radius: 50%;
	overflow: hidden;
	background: #1C1C1C;
	border: 1px solid var(--nsca-gold);
}

.nsca-ev-speaker__avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nsca-ev-speaker__initials {
	font-size: 1.0625rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--nsca-gold-on-dark);
}

/* Duże inicjały w tle kafla. */
.nsca-ev-speaker__ghost {
	position: absolute;
	right: 20px;
	top: 24px;
	font-size: 3.5rem;
	font-weight: 700;
	color: rgba(255, 255, 255, 0.07);
	pointer-events: none;
}

.nsca-ev-speaker__name {
	position: relative;
	font-family: var(--nsca-font-heading);
	font-stretch: condensed;
	z-index: 1;
	flex: 1 1 100%;
	margin: 0;
	font-size: 1.45rem;
	font-weight: var(--nsca-fw-heading);
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--nsca-white);
}

.nsca-ev-speaker__body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	min-height: var(--nsca-ev-speaker-body-min);
	padding: var(--nsca-space-md);
}

.nsca-ev-speaker__role {
	margin: 0 0 4px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--nsca-gold-text);
}

.nsca-ev-speaker__bio {
	margin: 0 0 10px;
	font-size: var(--nsca-fs-small);
	line-height: 1.55;
	color: var(--nsca-text-muted);
}

/* Cytat bez złotej kreski — zostaje sama kursywa. */
.nsca-ev-speaker__quote {
	margin: 0;
	font-size: var(--nsca-fs-small);
	font-style: italic;
	line-height: 1.55;
	color: var(--nsca-text-muted);
}

.nsca-ev-speaker__link {
	width: 100%;
	justify-content: center;
	margin-top: var(--nsca-space-md);
}

/* --- Wspólna nawigacja karuzel -------------------------------------------- */

.nsca-ev-carousel-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--nsca-space-md);
	margin-top: var(--nsca-space-md);
}

.nsca-ev-carousel-nav__arrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 8px 14px;
	border: 0;
	background: transparent;
	font-family: inherit;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--nsca-text);
	cursor: pointer;
}

.nsca-ev-carousel-nav__arrow[disabled] {
	opacity: 0.3;
	cursor: default;
}

.nsca-ev-carousel-nav__arrow:focus-visible {
	outline: var(--nsca-focus-width) solid var(--nsca-focus-color);
	outline-offset: var(--nsca-focus-offset);
}


/* Focus kontrolek wydarzenia: twarde odcięcie stylu :focus z Elementora.
   Reguły są celowo ograniczone do zakładek harmonogramu oraz nawigacji
   karuzel prelegentów/partnerów. Kliknięcie myszą nie dostaje obcego ringu,
   natomiast klawiatura nadal otrzymuje złoty :focus-visible. */
.nsca-ev-agenda button.nsca-ev-tab:focus,
.nsca-ev-speakers button.nsca-ev-carousel-nav__arrow:focus,
.nsca-ev-partners button.nsca-ev-carousel-nav__arrow:focus,
.nsca-ev-speakers button.nsca-ev-dots__dot:focus,
.nsca-ev-partners button.nsca-ev-dots__dot:focus {
	outline: none !important;
	box-shadow: none !important;
	-webkit-box-shadow: none !important;
	border-color: transparent !important;
}

.nsca-ev-agenda button.nsca-ev-tab:focus,
.nsca-ev-speakers button.nsca-ev-carousel-nav__arrow:focus,
.nsca-ev-partners button.nsca-ev-carousel-nav__arrow:focus {
	background: transparent !important;
	background-color: transparent !important;
}

.nsca-ev-agenda button.nsca-ev-tab:focus-visible,
.nsca-ev-speakers button.nsca-ev-carousel-nav__arrow:focus-visible,
.nsca-ev-partners button.nsca-ev-carousel-nav__arrow:focus-visible,
.nsca-ev-speakers button.nsca-ev-dots__dot:focus-visible,
.nsca-ev-partners button.nsca-ev-dots__dot:focus-visible {
	outline: var(--nsca-focus-width) solid var(--nsca-focus-color) !important;
	outline-offset: 4px !important;
	box-shadow: none !important;
	-webkit-box-shadow: none !important;
}

/* Hover kontrolek wydarzenia: motyw/Elementor nie może zamieniać
   przycisków na własny kolor akcentu (np. czerwony). Celowo obejmujemy
   wyłącznie zakładki harmonogramu oraz nawigację karuzel eventu. */
.nsca-ev-agenda button.nsca-ev-tab:hover,
.nsca-ev-agenda button.nsca-ev-tab:focus:hover,
.nsca-ev-speakers button.nsca-ev-carousel-nav__arrow:hover,
.nsca-ev-speakers button.nsca-ev-carousel-nav__arrow:focus:hover,
.nsca-ev-partners button.nsca-ev-carousel-nav__arrow:hover,
.nsca-ev-partners button.nsca-ev-carousel-nav__arrow:focus:hover {
	background: transparent !important;
	background-color: transparent !important;
	border-color: transparent !important;
	box-shadow: none !important;
	-webkit-box-shadow: none !important;
	color: var(--nsca-gold-text) !important;
}

.nsca-ev-agenda button.nsca-ev-tab.is-active:hover {
	color: var(--nsca-text) !important;
}

.nsca-ev-speakers button.nsca-ev-carousel-nav__arrow[disabled]:hover,
.nsca-ev-partners button.nsca-ev-carousel-nav__arrow[disabled]:hover {
	color: var(--nsca-text) !important;
}

.nsca-ev-speakers button.nsca-ev-dots__dot:hover,
.nsca-ev-partners button.nsca-ev-dots__dot:hover {
	background: var(--nsca-gold) !important;
	background-color: var(--nsca-gold) !important;
	box-shadow: none !important;
}

/* Kropki zachowują swój stan także podczas fokusa — motyw nie może nadać
   im koloru akcentu z ustawień globalnych. */
.nsca-ev-speakers button.nsca-ev-dots__dot:focus,
.nsca-ev-partners button.nsca-ev-dots__dot:focus {
	background: var(--nsca-border) !important;
}

.nsca-ev-speakers button.nsca-ev-dots__dot.is-active:focus,
.nsca-ev-partners button.nsca-ev-dots__dot.is-active:focus {
	background: var(--nsca-gold) !important;
}

/* Focus karuzel: motyw/Elementor nie może nadpisywać kontrolek na czerwono.
   Mysz nie dostaje sztucznego ringu; klawiatura zachowuje wyraźny złoty focus. */
.nsca-ev-carousel-nav__arrow:focus,
.nsca-ev-dots__dot:focus,
.nsca-ev-speakers__track:focus,
.nsca-ev-partners__track:focus {
	outline: none;
	box-shadow: none;
}

.nsca-ev-carousel-nav__arrow:focus-visible,
.nsca-ev-dots__dot:focus-visible,
.nsca-ev-speakers__track:focus-visible,
.nsca-ev-partners__track:focus-visible {
	outline: var(--nsca-focus-width) solid var(--nsca-focus-color);
	outline-offset: 4px;
	box-shadow: none;
}

/* Kreski pozycji: aktywna złota, pozostałe szare.
   Liczba kresek = liczba slajdów. */
.nsca-ev-dots {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0;
}

.nsca-ev-dots__dot {
	width: 18px;
	height: 3px;
	background: var(--nsca-border);
	transition: background-color var(--nsca-transition);
}

.nsca-ev-dots__dot.is-active {
	background: var(--nsca-gold);
}

/* =========================================================================
   PARTNERZY
   ========================================================================= */

.nsca-ev-partners {
	max-width: var(--nsca-ev-partners-max);
	margin-inline: auto;
	padding: var(--nsca-space-2xl) 0;
	background: var(--nsca-ev-surface);
	box-shadow: 0 0 0 100vmax var(--nsca-ev-surface);
	clip-path: inset(0 -100vmax);
}

.nsca-ev-partners__track {
	display: flex;
	gap: var(--nsca-gap);
	margin: 0;
	padding: 0 0 var(--nsca-space-sm);
	list-style: none;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
}

.nsca-ev-partners__track::-webkit-scrollbar {
	display: none;
}

.nsca-ev-partners__track:focus-visible {
	outline: var(--nsca-focus-width) solid var(--nsca-focus-color);
	outline-offset: 4px;
}

.nsca-ev-partner {
	flex: 0 0 100%;
	max-width: 100%;
	scroll-snap-align: start;
	display: grid;
	grid-template-columns: 250px minmax(0, 1fr);
	gap: 0;
	align-items: stretch;
	background: var(--nsca-white);
	border: 1px solid var(--nsca-ev-line);
}

.nsca-ev-partner__logo {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 180px;
	padding: var(--nsca-space-md);
	background: var(--nsca-ev-dark);
	border-right: 3px solid var(--nsca-gold);
}

.nsca-ev-partner__logo img {
	max-width: 100%;
	max-height: 120px;
	object-fit: contain;
}

.nsca-ev-partner__mark {
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--nsca-white);
}

.nsca-ev-partner__role {
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--nsca-gold-on-dark);
}

.nsca-ev-partner__body {
	padding: var(--nsca-space-md) var(--nsca-space-lg);
}

.nsca-ev-partner__desc {
	margin: 0 0 10px;
	font-size: var(--nsca-fs-small);
	line-height: 1.65;
	color: var(--nsca-text-muted);
}

.nsca-ev-partner__link {
	font-size: var(--nsca-fs-small);
	font-weight: 700;
	color: var(--nsca-gold-text);
}


.nsca-ev-partners__progress {
	display: flex;
	justify-content: flex-start;
	margin: -34px 0 0 290px;
	position: relative;
	z-index: 1;
	pointer-events: none;
}

.nsca-ev-partners__progress .nsca-ev-dots {
	pointer-events: auto;
}

.nsca-ev-carousel-nav--partners {
	margin-top: var(--nsca-space-md);
}

.nsca-ev-carousel-counter {
	font-family: var(--nsca-font-ui);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--nsca-label);
}

/* =========================================================================
   CERTYFIKAT
   ========================================================================= */

.nsca-ev-cert {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(24px, 4vw, 72px);
	align-items: center;
	padding: var(--nsca-space-2xl) 0;
	background: var(--nsca-ev-surface);
}

.nsca-ev-cert__media {
	display: flex;
	align-items: center;
	justify-content: center;
}

.nsca-ev-cert__logo {
	max-width: 260px;
	height: auto;
}

.nsca-ev-cert__text {
	margin-bottom: var(--nsca-space-md);
	font-size: var(--nsca-fs-small);
	line-height: 1.7;
	color: var(--nsca-text-muted);
}

.nsca-ev-cert__text p:last-child {
	margin-bottom: 0;
}

/* =========================================================================
   BILETY
   ========================================================================= */

.nsca-ev-tickets {
	padding: var(--nsca-space-2xl) 0;
}

/* Pasek early bird. */
.nsca-ev-early {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 14px;
	margin: 0 0 var(--nsca-space-lg);
	padding: 14px var(--nsca-space-md);
	background: var(--nsca-ev-dark);
	color: var(--nsca-dark-text);
	border-left: 4px solid var(--nsca-gold);
}

.nsca-ev-early__label {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--nsca-gold-on-dark);
}

.nsca-ev-early__text {
	font-size: var(--nsca-fs-small);
	color: rgba(255, 255, 255, 0.86);
}

.nsca-ev-early__save {
	margin-left: auto;
	font-size: var(--nsca-fs-small);
	font-weight: 700;
	color: var(--nsca-gold-on-dark);
}

/* Kafle są węższe i wyższe niż domyślna siatka, dlatego cennik ma własny
   kontener o ograniczonej szerokości. Przy pełnych 1600 px kafle byłyby
   przysadziste i nie przypominałyby makiety. */
.nsca-ev-tickets__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--nsca-gap);
	align-items: stretch;
	max-width: 1040px;
	margin: 0 auto;
	padding: var(--nsca-space-md) 0;
	list-style: none;
}

.nsca-ev-tickets__grid--1 { grid-template-columns: minmax(0, 340px); justify-content: center; }
.nsca-ev-tickets__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 720px; }
.nsca-ev-tickets__grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); max-width: 1320px; }

.nsca-ev-ticket {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--nsca-white);
	border: 1px solid var(--nsca-ev-card-border);
}

/* Wyróżniony kafel wychodzi poza linię pozostałych.
   Realizowane ujemnym marginesem, a nie wyrównaniem siatki: przy
   align-items: center kafle i tak wyrównują się do najwyższego, więc
   wyróżnienie znikało. Ujemny margines działa niezależnie od tego,
   ile pozycji ma lista cech. */
.nsca-ev-ticket.is-featured {
	margin-top: calc(var(--nsca-ev-featured-lift) * -1);
	margin-bottom: calc(var(--nsca-ev-featured-lift) * -1);
	border: 2px solid var(--nsca-ev-card-featured);
	box-shadow: 0 18px 44px rgba(10, 10, 10, 0.14);
	z-index: 2;
}

.nsca-ev-ticket.is-soldout {
	opacity: 0.6;
}

.nsca-ev-ticket__badge {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
	margin: 0;
	padding: 6px 16px;
	background: var(--nsca-gold);
	color: var(--nsca-black);
	font-size: 9px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	white-space: nowrap;
}

.nsca-ev-ticket__inner {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: var(--nsca-space-lg) var(--nsca-space-md) var(--nsca-space-md);
}

.nsca-ev-ticket__name {
	font-family: var(--nsca-font-heading);
	font-stretch: condensed;
	margin: 0;
	font-size: var(--nsca-fs-card);
	font-weight: var(--nsca-fw-heading);
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--nsca-text);
}

.nsca-ev-ticket__sub {
	margin: 8px 0 0;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--nsca-label);
}

.nsca-ev-ticket__price {
	font-family: var(--nsca-font-display);
	font-stretch: condensed;
	margin: var(--nsca-space-md) 0 0;
	font-size: 2.75rem;
	font-weight: 700;
	line-height: 1;
	color: var(--nsca-text);
}

/* Cena wyróżnionego biletu jest złota. */
.nsca-ev-ticket.is-featured .nsca-ev-ticket__price {
	color: var(--nsca-gold-text);
}

/* Jednostka waluty mniejsza od kwoty. */
.nsca-ev-ticket__price .woocommerce-Price-currencySymbol {
	font-size: 0.45em;
	font-weight: 700;
	margin-left: 4px;
	vertical-align: baseline;
}

.nsca-ev-ticket__rise,
.nsca-ev-ticket__omnibus {
	margin: 10px 0 0;
	font-size: 11px;
	font-weight: 700;
	line-height: 1.4;
	color: var(--nsca-gold-text);
}

.nsca-ev-ticket__omnibus {
	font-weight: 400;
	color: var(--nsca-text-muted);
}

.nsca-ev-ticket__features {
	margin-top: var(--nsca-space-md);
	padding-top: var(--nsca-space-md);
	border-top: 1px solid var(--nsca-border);
}

/* Pozycja z ostrzeżeniem: wykrzyknik zamiast haczyka. */
.nsca-ev-checklist__item.is-warning::before {
	left: 7px;
	top: 3px;
	width: 2px;
	height: 7px;
	transform: none;
	background: var(--nsca-danger);
}

.nsca-ev-checklist__item.is-warning::after {
	left: 7px;
	top: 12px;
	width: 2px;
	height: 2px;
	transform: none;
	background: var(--nsca-danger);
}

.nsca-ev-ticket__left {
	margin: 0 0 12px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--nsca-danger);
}

.nsca-ev-ticket__action {
	margin-top: auto;
	padding-top: var(--nsca-space-md);
}

.nsca-ev-ticket__action .nsca-btn {
	width: 100%;
	justify-content: center;
	min-height: 54px;
}

.nsca-ev-ticket__note {
	margin: 10px 0 0;
	font-size: 10px;
	line-height: 1.5;
	color: var(--nsca-text-muted);
}

.nsca-ev-tickets__footnote {
	margin: var(--nsca-space-lg) 0 0;
	text-align: center;
	font-size: 11px;
	font-style: italic;
	color: var(--nsca-text-muted);
}

/* =========================================================================
   OKNO PRELEGENTA
   ========================================================================= */

body.nsca-ev-modal-open {
	overflow: hidden;
}

.nsca-ev-modal {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--nsca-gutter);
}

.nsca-ev-modal[hidden] {
	display: none;
}

.nsca-ev-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(10, 10, 10, 0.75);
	cursor: pointer;
}

.nsca-ev-modal__dialog {
	position: relative;
	width: 100%;
	max-width: 620px;
	max-height: 85vh;
	overflow-y: auto;
	padding: var(--nsca-space-lg);
	background: var(--nsca-white);
	border: 1px solid var(--nsca-border-strong);
}

.nsca-ev-modal__close {
	position: absolute;
	top: 8px;
	right: 8px;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
	font-size: 28px;
	line-height: 1;
	color: var(--nsca-text);
	cursor: pointer;
}

.nsca-ev-modal__close:hover {
	color: var(--nsca-gold-text);
}

.nsca-ev-speaker-modal__head {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: var(--nsca-space-md);
	padding-right: 44px;
	padding-bottom: var(--nsca-space-md);
	border-bottom: 1px solid var(--nsca-border);
}

.nsca-ev-speaker-modal__avatar {
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--nsca-ev-dark);
	border: 1px solid var(--nsca-gold);
	color: var(--nsca-gold-on-dark);
	font-weight: 700;
}

.nsca-ev-speaker-modal__avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nsca-ev-speaker-modal__name {
	display: block;
	font-size: 1.25rem;
	font-weight: 700;
	text-transform: uppercase;
	color: var(--nsca-text);
}

.nsca-ev-speaker-modal__role {
	display: block;
	margin-top: 4px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--nsca-gold-text);
}

.nsca-ev-speaker-modal__text {
	font-size: var(--nsca-fs-small);
	line-height: 1.7;
	color: var(--nsca-text-muted);
}

.nsca-ev-speaker-modal__text p:last-child {
	margin-bottom: 0;
}

.nsca-ev-speaker-modal__link {
	margin: var(--nsca-space-md) 0 0;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.nsca-ev-speaker-modal__link a {
	color: var(--nsca-gold-text);
	text-decoration: none;
}

/* =========================================================================
   PROMOCJA WARSZTATU
   ========================================================================= */

.nsca-ev-promo {
	padding: clamp(64px, 8vw, 104px) 0;
	background: var(--nsca-ev-dark);
	color: var(--nsca-dark-text);
	border-top: 2px solid var(--nsca-gold);
	box-shadow: 0 0 0 100vmax var(--nsca-ev-dark);
	clip-path: inset(0 -100vmax);
}

.nsca-ev-promo__body {
	width: min(100%, var(--nsca-ev-promo-max));
	margin-inline: auto;
	text-align: center;
}

.nsca-ev-promo__title {
	margin: 0 0 var(--nsca-space-md);
	font-family: var(--nsca-font-heading);
	font-stretch: condensed;
	font-size: clamp(2rem, 3.6vw, 3rem);
	font-weight: var(--nsca-fw-heading);
	line-height: 1;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	color: var(--nsca-gold-on-dark);
}

.nsca-ev-promo__when {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 7px;
	margin: 0 0 var(--nsca-space-lg);
	padding: 7px 12px;
	border: 1px solid var(--nsca-dark-border);
	font-family: var(--nsca-font-ui);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: rgba(255, 255, 255, 0.9);
}

.nsca-ev-promo__tag {
	text-transform: none;
	color: var(--nsca-white);
}

.nsca-ev-promo__lead {
	max-width: 68ch;
	margin: 0 auto var(--nsca-space-lg);
	font-size: var(--nsca-fs-small);
	line-height: 1.7;
	color: var(--nsca-dark-muted);
}

.nsca-ev-promo__lead p:last-child {
	margin-bottom: 0;
}

.nsca-ev-promo__offers {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: stretch;
	gap: 0;
	max-width: 720px;
	margin: 0 auto;
}

.nsca-ev-promo__offers--1 {
	grid-template-columns: minmax(0, 360px);
	justify-content: center;
}

.nsca-ev-promo__offer {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 0 var(--nsca-space-lg);
}

.nsca-ev-promo__offer + .nsca-ev-promo__offer {
	border-left: 1px solid var(--nsca-dark-border);
}

.nsca-ev-promo__label {
	margin: 0 0 6px;
	font-family: var(--nsca-font-ui);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--nsca-dark-muted);
}

.nsca-ev-promo__offer.is-bundle .nsca-ev-promo__label {
	color: var(--nsca-gold-on-dark);
}

.nsca-ev-promo__price {
	margin: 0 0 var(--nsca-space-md);
	font-family: var(--nsca-font-display);
	font-stretch: condensed;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1;
	color: var(--nsca-white);
}

.nsca-ev-promo__offer.is-bundle .nsca-ev-promo__price {
	color: var(--nsca-gold-on-dark);
}

.nsca-ev-promo__was {
	margin-left: 6px;
	font-family: var(--nsca-font-body);
	font-size: 10px;
	font-weight: 400;
	color: var(--nsca-dark-muted);
}

.nsca-ev-promo__offer .nsca-btn {
	width: 100%;
	min-height: 52px;
	justify-content: center;
	margin-top: auto;
}

.nsca-ev-promo .nsca-btn--outline {
	border-color: var(--nsca-gold);
	color: var(--nsca-gold-on-dark);
}

.nsca-ev-promo .nsca-btn--outline:hover {
	background: var(--nsca-gold);
	color: var(--nsca-black);
}

.nsca-ev-promo .nsca-btn:focus {
	box-shadow: none;
}

.nsca-ev-promo .nsca-btn:focus-visible {
	outline-color: var(--nsca-gold-on-dark);
}

/* =========================================================================
   FAQ
   ========================================================================= */

.nsca-ev-faq {
	padding: var(--nsca-space-2xl) 0;
}

.nsca-ev-faq__item {
	border-bottom: 1px solid var(--nsca-border);
}

.nsca-ev-faq__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--nsca-space-md);
	padding: 18px 0;
	list-style: none;
	cursor: pointer;
	font-size: var(--nsca-fs-body);
	font-weight: 600;
	color: var(--nsca-text);
}

/* Domyślny trójkącik przeglądarki zastępujemy własną strzałką. */
.nsca-ev-faq__q::-webkit-details-marker {
	display: none;
}

.nsca-ev-faq__q:focus-visible {
	outline: var(--nsca-focus-width) solid var(--nsca-focus-color);
	outline-offset: var(--nsca-focus-offset);
}

.nsca-ev-faq__chevron {
	position: relative;
	flex: none;
	width: 12px;
	height: 12px;
}

.nsca-ev-faq__chevron::before,
.nsca-ev-faq__chevron::after {
	content: "";
	position: absolute;
	top: 5px;
	width: 12px;
	height: 2px;
	background: var(--nsca-gold);
	transition: transform var(--nsca-transition);
}

.nsca-ev-faq__chevron::after {
	transform: rotate(90deg);
}

.nsca-ev-faq__item[open] .nsca-ev-faq__chevron::after {
	transform: rotate(0deg);
}

.nsca-ev-faq__a {
	padding: 0 0 20px;
	max-width: 80ch;
	font-size: var(--nsca-fs-small);
	line-height: 1.7;
	color: var(--nsca-text-muted);
}

.nsca-ev-faq__a p:last-child {
	margin-bottom: 0;
}

/* =========================================================================
   RESPONSYWNOŚĆ
   ========================================================================= */

@media (max-width: 1200px) {

	.nsca-ev-benefits__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 1024px) {

	.nsca-ev-hero {
		grid-template-columns: minmax(0, 1fr);
	}

	.nsca-ev-hero__media {
		order: -1;
		aspect-ratio: 16 / 9;
		min-height: 0;
	}

	.nsca-ev-cert,
	.nsca-ev-partner {
		grid-template-columns: minmax(0, 1fr);
	}

	.nsca-ev-partner__logo {
		border-right: 0;
		border-bottom: 3px solid var(--nsca-gold);
	}

	/* Cennik schodzi do dwóch kolumn; wyróżniony przestaje wystawać,
	   bo w dwóch kolumnach środek nie istnieje. */
	.nsca-ev-tickets__grid,
	.nsca-ev-tickets__grid--4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: stretch;
		max-width: 720px;
	}

	.nsca-ev-ticket.is-featured .nsca-ev-ticket__inner {
		padding-top: var(--nsca-space-lg);
	}

	.nsca-ev-speaker {
		flex: 0 0 72%;
		max-width: 72%;
	}
}

@media (max-width: 768px) {

	.nsca-ev-benefits__grid,
	.nsca-ev-audience__grid,
	.nsca-ev-tickets__grid,
	.nsca-ev-tickets__grid--2,
	.nsca-ev-tickets__grid--4 {
		grid-template-columns: minmax(0, 1fr);
		max-width: 420px;
	}

	.nsca-ev-speaker {
		flex: 0 0 88%;
		max-width: 88%;
	}

	.nsca-ev-stats {
		gap: var(--nsca-space-lg);
	}

	.nsca-ev-ticket.is-featured {
		box-shadow: none;
	}

	.nsca-ev-timeline__item {
		grid-template-columns: minmax(0, 1fr);
		gap: 6px;
	}

	.nsca-ev-timeline {
		padding: var(--nsca-space-md);
	}

	.nsca-ev-tabs {
		padding: var(--nsca-space-md) var(--nsca-space-md) 0;
		gap: var(--nsca-space-md);
	}

	.nsca-ev-early__save {
		margin-left: 0;
	}

	.nsca-ev-speaker__ghost {
		display: none;
	}

	.nsca-ev-carousel-nav__text {
		display: none;
	}
}

@media (max-width: 480px) {

	.nsca-ev-speaker {
		flex: 0 0 100%;
		max-width: 100%;
	}

	.nsca-ev-speaker-modal__head {
		flex-wrap: wrap;
	}
}


@media (max-width: 1024px) {
	.nsca-ev-partners__progress {
		margin-left: var(--nsca-space-md);
	}
}

@media (max-width: 768px) {
	.nsca-ev-promo__offers {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--nsca-space-lg);
		max-width: 420px;
	}

	.nsca-ev-promo__offer {
		padding: 0;
	}

	.nsca-ev-promo__offer + .nsca-ev-promo__offer {
		padding-top: var(--nsca-space-lg);
		border-left: 0;
		border-top: 1px solid var(--nsca-dark-border);
	}

	.nsca-ev-promo__when {
		display: flex;
	}

	.nsca-ev-partners__progress {
		margin-top: var(--nsca-space-sm);
		margin-left: 0;
	}
}

@media (prefers-reduced-motion: reduce) {

	.nsca-ev-speakers__track,
	.nsca-ev-partners__track {
		scroll-behavior: auto;
	}

	.nsca-ev-dots__dot,
	.nsca-ev-faq__chevron::before,
	.nsca-ev-faq__chevron::after {
		transition: none;
	}
}

/* =========================================================================
   BILETY — korekty 2.1.1
   ========================================================================= */

/* Wyróżniony kafel jest wyraźnie większy: szerszy w siatce, wyższy
   przez większe odstępy i większa typografia. Siatka ma align-items:
   center, więc rośnie symetrycznie w górę i w dół. */

.nsca-ev-tickets__grid {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.16fr) minmax(0, 1fr);
	max-width: 1100px;
	/* Zapas na wystający kafel, inaczej cień i ramka byłyby przycięte. */
	padding: calc(var(--nsca-ev-featured-lift) + var(--nsca-space-md)) 0;
}

.nsca-ev-tickets__grid--1,
.nsca-ev-tickets__grid--2,
.nsca-ev-tickets__grid--4 {
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.nsca-ev-tickets__grid--1 { max-width: 360px; }
.nsca-ev-tickets__grid--2 { max-width: 760px; }
.nsca-ev-tickets__grid--4 { max-width: 1320px; }

/* Kafel zwykły: przygaszone tło, żeby wyróżniony odcinał się bielą. */
.nsca-ev-ticket {
	background: var(--nsca-ev-surface);
	border-color: var(--nsca-ev-line);
}

.nsca-ev-ticket.is-featured {
	background: var(--nsca-white);
}

.nsca-ev-ticket.is-featured .nsca-ev-ticket__inner {
	padding:
		calc(var(--nsca-space-lg) + var(--nsca-ev-featured-lift))
		var(--nsca-space-lg)
		calc(var(--nsca-space-md) + var(--nsca-ev-featured-lift));
}

.nsca-ev-ticket.is-featured .nsca-ev-ticket__name {
	font-size: 1.25rem;
}

.nsca-ev-ticket.is-featured .nsca-ev-ticket__price {
	font-size: 3.25rem;
}

.nsca-ev-ticket.is-featured .nsca-ev-checklist__item {
	font-size: var(--nsca-fs-body);
	margin-bottom: 12px;
}

.nsca-ev-ticket.is-featured .nsca-ev-ticket__action .nsca-btn {
	min-height: 60px;
}

/* Ostrzeżenie widoczne tylko dla redaktora. */
.nsca-ev-ticket__warn {
	margin: var(--nsca-space-sm) 0 0;
	padding: 10px 12px;
	border-left: 3px solid var(--nsca-danger);
	background: rgba(163, 32, 32, 0.07);
	font-size: 10px;
	line-height: 1.5;
	color: var(--nsca-danger);
}

/* =========================================================================
   BILETY NA CIEMNYM TLE (warsztat)
   ========================================================================= */

.nsca-ev-tickets--dark {
	background: var(--nsca-ev-dark);
	color: var(--nsca-dark-text);
	border-top: 2px solid var(--nsca-gold);
}

.nsca-ev-tickets--dark .nsca-ev-heading {
	color: var(--nsca-gold-on-dark);
}

.nsca-ev-tickets--dark .nsca-ev-heading__rule {
	background: rgba(255, 255, 255, 0.28);
}

/* Pasek early bird na ciemnym tle potrzebuje własnej ramki,
   inaczej zlewa się z tłem sekcji. */
.nsca-ev-tickets--dark .nsca-ev-early {
	background: transparent;
	border: 1px solid var(--nsca-dark-border);
	border-left: 4px solid var(--nsca-gold);
}

.nsca-ev-tickets--dark .nsca-ev-ticket {
	background: #121212;
	border-color: var(--nsca-dark-border);
}

.nsca-ev-tickets--dark .nsca-ev-ticket.is-featured {
	background: #161616;
	border-color: var(--nsca-gold);
}

.nsca-ev-tickets--dark .nsca-ev-ticket__name {
	color: var(--nsca-white);
}

.nsca-ev-tickets--dark .nsca-ev-ticket__sub {
	color: var(--nsca-dark-muted);
}

.nsca-ev-tickets--dark .nsca-ev-ticket__price {
	color: var(--nsca-white);
}

.nsca-ev-tickets--dark .nsca-ev-ticket.is-featured .nsca-ev-ticket__price {
	color: var(--nsca-gold-on-dark);
}

.nsca-ev-tickets--dark .nsca-ev-ticket__rise {
	color: var(--nsca-gold-on-dark);
}

.nsca-ev-tickets--dark .nsca-ev-ticket__omnibus,
.nsca-ev-tickets--dark .nsca-ev-ticket__note,
.nsca-ev-tickets--dark .nsca-ev-tickets__footnote {
	color: var(--nsca-dark-muted);
}

.nsca-ev-tickets--dark .nsca-ev-checklist__item {
	color: rgba(255, 255, 255, 0.84);
}

.nsca-ev-tickets--dark .nsca-ev-ticket__features {
	border-top-color: var(--nsca-dark-border);
}

.nsca-ev-tickets--dark .nsca-btn--outline {
	border-color: var(--nsca-gold);
	color: var(--nsca-gold-on-dark);
}

.nsca-ev-tickets--dark .nsca-btn--outline:hover {
	background: var(--nsca-gold);
	color: var(--nsca-black);
}

.nsca-ev-tickets--dark .nsca-btn--dark {
	background: var(--nsca-white);
	border-color: var(--nsca-white);
	color: var(--nsca-black);
}

.nsca-ev-tickets--dark a:focus-visible,
.nsca-ev-tickets--dark .nsca-btn:focus-visible {
	outline-color: var(--nsca-gold-on-dark);
}

@media (max-width: 1024px) {

	.nsca-ev-tickets__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: stretch;
		max-width: 760px;
	}

	/* Przy dwóch kolumnach nie ma środka, więc kafel przestaje wystawać. */
	.nsca-ev-ticket.is-featured {
		margin-top: 0;
		margin-bottom: 0;
	}

	.nsca-ev-ticket.is-featured .nsca-ev-ticket__price {
		font-size: 2.75rem;
	}
}

@media (max-width: 768px) {

	.nsca-ev-tickets__grid,
	.nsca-ev-tickets__grid--2,
	.nsca-ev-tickets__grid--4 {
		grid-template-columns: minmax(0, 1fr);
		max-width: 420px;
	}
}

/* =========================================================================
   CENNIK — NADPISANIA RESPONSYWNE
   =========================================================================

   Blok celowo na samym końcu pliku. Reguły desktopowe wyróżnionego kafla
   są deklarowane niżej niż wcześniejsze zapytania medialne, więc bez tego
   wygrywałyby również na wąskich ekranach.

   ========================================================================= */

@media (max-width: 1024px) {

	/* Przy dwóch kolumnach nie ma środka, więc kafel przestaje wystawać
	   i wraca do zwykłych odstępów. */
	.nsca-ev-ticket.is-featured {
		margin-top: 0;
		margin-bottom: 0;
	}

	.nsca-ev-ticket.is-featured .nsca-ev-ticket__inner {
		padding: var(--nsca-space-lg) var(--nsca-space-md) var(--nsca-space-md);
	}

	.nsca-ev-ticket.is-featured .nsca-ev-ticket__name {
		font-size: var(--nsca-fs-card);
	}

	.nsca-ev-ticket.is-featured .nsca-ev-ticket__price {
		font-size: 2.75rem;
	}

	.nsca-ev-ticket.is-featured .nsca-ev-checklist__item {
		font-size: var(--nsca-fs-small);
		margin-bottom: 10px;
	}

	.nsca-ev-ticket.is-featured .nsca-ev-ticket__action .nsca-btn {
		min-height: 54px;
	}

	.nsca-ev-tickets__grid {
		padding: var(--nsca-space-md) 0;
	}
}

@media (max-width: 768px) {

	.nsca-ev-ticket.is-featured {
		box-shadow: none;
	}
}

/* Kreski pozycji są teraz przyciskami budowanymi przez JavaScript —
   ich liczba zależy od tego, ile kafli mieści się w widoku, a to wie
   dopiero przeglądarka. */

.nsca-ev-dots__dot {
	padding: 0;
	border: 0;
	border-radius: 0;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
}

.nsca-ev-dots__dot:hover {
	background: var(--nsca-label);
}

.nsca-ev-dots__dot.is-active:hover {
	background: var(--nsca-gold);
}

.nsca-ev-dots__dot:focus-visible {
	outline: var(--nsca-focus-width) solid var(--nsca-focus-color);
	outline-offset: 4px;
}

/* Cel dotykowy 44 px przy zachowaniu wizualnych 18x3 px. */
.nsca-ev-dots__dot::before {
	content: "";
	position: absolute;
	inset: -20px -3px;
}

.nsca-ev-dots__dot {
	position: relative;
}

.nsca-ev-dots[hidden] {
	display: none;
}

/* =========================================================================
   WARIANTY WARSZTATU — korekty 2.2.1
   =========================================================================

   Makiety warsztatu i konferencji różnią się w trzech sekcjach. Zamiast
   budować osobne szablony, jeden szablon dostaje modyfikator klasy
   zależny od typu wydarzenia.

   ========================================================================= */

/* --- Co zyskasz: układ warsztatu ------------------------------------------
   Tło jest ciemne w obu typach wydarzeń — różni się wyłącznie układ.
   Warsztat: nagłówek wyśrodkowany, kafle w ramkach, ikona nad tytułem.
   Konferencja: nagłówek po lewej, bez ramek, ikona obok tekstu.

   Sekcja maluje własne ciemne tło, więc pozostaje czytelna także wtedy,
   gdy kontener w Elementorze nie ma ustawionego koloru. Gdy ma, oba
   kolory są takie same i nic się nie gryzie. */

.nsca-ev-benefits--boxed .nsca-ev-heading__rule {
	background: var(--nsca-gold);
}

.nsca-ev-benefits--boxed .nsca-ev-benefits__grid {
	gap: var(--nsca-gap);
}

.nsca-ev-benefits--boxed .nsca-ev-benefit {
	display: block;
	padding: var(--nsca-space-md);
	background: #121212;
	border: 1px solid var(--nsca-dark-border);
}

.nsca-ev-benefits--boxed .nsca-ev-benefit__icon {
	width: 26px;
	height: 26px;
	margin: 0 0 var(--nsca-space-md);
	color: var(--nsca-gold-on-dark);
}

.nsca-ev-benefits--boxed .nsca-ev-benefit__desc {
	max-width: none;
}

/* --- Dla kogo: krótka złota kreska nad tytułem ----------------------------
   W makiecie kafel ma cienką ramkę dookoła i osobną kreskę w środku,
   nie złotą ramkę górną na całą szerokość. */

.nsca-ev-audience__item {
	border: 1px solid var(--nsca-dark-border);
	border-top: 1px solid var(--nsca-dark-border);
	padding: var(--nsca-space-md);
}

.nsca-ev-audience__dash {
	display: block;
	width: 22px;
	height: 2px;
	margin-bottom: 14px;
	background: var(--nsca-gold);
}

.nsca-ev-audience__title {
	color: var(--nsca-white);
	letter-spacing: 0.01em;
	text-transform: none;
}

/* --- Prowadzący: wariant prosty (warsztat) --------------------------------
   Jasne kafle obok siebie, bez karuzeli i bez ciemnego paska z nazwiskiem.
   Awatar po lewej, treść po prawej. */

.nsca-ev-speakers--plain .nsca-ev-speakers__track {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--nsca-gap);
	overflow: visible;
	scroll-snap-type: none;
	padding-bottom: 0;
}

.nsca-ev-speakers--plain .nsca-ev-speaker {
	flex: none;
	max-width: none;
	display: block;
	padding: var(--nsca-space-md);
	background: var(--nsca-white);
	border: 1px solid var(--nsca-ev-line);
	border-left: 1px solid var(--nsca-ev-line);
}

.nsca-ev-speakers--plain .nsca-ev-speaker__head {
	display: grid;
	grid-template-columns: 52px minmax(0, 1fr);
	gap: 14px;
	align-items: center;
	min-height: 0;
	padding: 0;
	background: transparent;
	overflow: visible;
}

.nsca-ev-speakers--plain .nsca-ev-speaker__avatar {
	width: 52px;
	height: 52px;
	border-color: transparent;
	background: var(--nsca-ev-dark);
}

.nsca-ev-speakers--plain .nsca-ev-speaker__ghost {
	display: none;
}

.nsca-ev-speakers--plain .nsca-ev-speaker__name {
	flex: none;
	font-size: 1rem;
	letter-spacing: 0.01em;
	text-transform: none;
	color: var(--nsca-text);
}

.nsca-ev-speakers--plain .nsca-ev-speaker__body {
	padding: 12px 0 0;
	margin-left: 66px;
}

/* Rola stoi bezpośrednio pod nazwiskiem, więc wciągamy ją do kolumny
   tekstu zamiast zostawiać pod awatarem. */
.nsca-ev-speakers--plain .nsca-ev-speaker__role {
	margin-top: 0;
}

.nsca-ev-speakers--plain .nsca-ev-speaker__quote {
	font-style: normal;
	color: var(--nsca-text-muted);
}

.nsca-ev-speakers--plain .nsca-ev-speaker__link {
	width: auto;
}

/* --- FAQ: każde pytanie w osobnej ramce ----------------------------------- */

.nsca-ev-faq__list {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.nsca-ev-faq__item {
	border: 1px solid var(--nsca-ev-line);
	background: var(--nsca-white);
}

.nsca-ev-faq__q {
	padding: 16px var(--nsca-space-md);
	font-size: var(--nsca-fs-small);
	font-weight: 700;
}

.nsca-ev-faq__item[open] .nsca-ev-faq__q {
	border-bottom: 1px solid var(--nsca-ev-line);
}

.nsca-ev-faq__a {
	padding: var(--nsca-space-md);
}

@media (max-width: 768px) {

	.nsca-ev-speakers--plain .nsca-ev-speakers__track {
		grid-template-columns: minmax(0, 1fr);
	}

	.nsca-ev-speakers--plain .nsca-ev-speaker__body {
		margin-left: 0;
	}
}

/* =========================================================================
   NAJBLIŻSZE WYDARZENIA (2.9.0)
   =========================================================================

   Karta: zdjęcie w tle, przyciemnienie, treść dosunięta do dołu.
   Warsztat dostaje złotą krawędź u góry, konferencja nie — tak jak
   w makiecie.

   ========================================================================= */

.nsca-ev-upcoming {
	display: grid;
	grid-template-columns: repeat(var(--nsca-up-cols, 2), minmax(0, 1fr));
	gap: var(--nsca-space-lg);
	margin: 0;
	padding: 0;
	list-style: none;
}

.nsca-ev-upcoming--cols-1 { --nsca-up-cols: 1; }
.nsca-ev-upcoming--cols-2 { --nsca-up-cols: 2; }
.nsca-ev-upcoming--cols-3 { --nsca-up-cols: 3; }
.nsca-ev-upcoming--cols-4 { --nsca-up-cols: 4; }

.nsca-ev-up {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 340px;
	overflow: hidden;
	background: var(--nsca-ev-dark);
	isolation: isolate;
}

/* Warsztat wyróżniony złotą krawędzią. */
.nsca-ev-up--warsztat {
	border-top: 2px solid var(--nsca-gold);
}

.nsca-ev-up__img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	object-fit: cover;
	display: block;
	z-index: -2;
	transition: transform 400ms ease;
}

/* Przyciemnienie od dołu: treść czytelna na dowolnym zdjęciu,
   góra kadru zostaje widoczna. */
.nsca-ev-up__scrim {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(
		180deg,
		rgba(10, 10, 10, 0.35) 0%,
		rgba(10, 10, 10, 0.72) 45%,
		rgba(10, 10, 10, 0.92) 100%
	);
}

.nsca-ev-up:hover .nsca-ev-up__img {
	transform: scale(1.04);
}

.nsca-ev-up__body {
	position: relative;
	width: 100%;
	padding: var(--nsca-space-lg);
	color: var(--nsca-white);
}

/* Data w złotej ramce. */
.nsca-ev-up__date {
	display: inline-block;
	margin: 0 0 var(--nsca-space-md);
	padding: 6px 12px;
	border: 1px solid var(--nsca-gold);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--nsca-gold-on-dark);
}

.nsca-ev-up__label {
	margin: 0 0 4px;
	font-size: 1.375rem;
	font-weight: var(--nsca-fw-h2);
	letter-spacing: -0.01em;
	line-height: 1.1;
	text-transform: uppercase;
	color: var(--nsca-white);
}

.nsca-ev-up__title {
	margin: 0 0 var(--nsca-space-md);
	font-size: var(--nsca-home-event-title-size);
	font-weight: var(--nsca-fw-h2);
	letter-spacing: 0.01em;
	line-height: 1.25;
	text-transform: uppercase;
	color: var(--nsca-gold-on-dark);
}

/* --- Wiersze z ikonami ----------------------------------------------------- */

.nsca-ev-up__meta {
	margin: 0 0 var(--nsca-space-md);
	padding: 0;
	list-style: none;
}

.nsca-ev-up__meta-item {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin-bottom: 6px;
	font-size: var(--nsca-home-event-meta-size);
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.86);
}

.nsca-ev-up__icon {
	flex: none;
	margin-top: 2px;
	color: var(--nsca-gold-on-dark);
}

.nsca-ev-up__icon--image {
	width: 14px;
	height: 14px;
	object-fit: contain;
}

.nsca-ev-up__meta-text {
	overflow-wrap: anywhere;
}

.nsca-ev-up__desc {
	margin: 0 0 var(--nsca-space-lg);
	max-width: 46ch;
	font-size: var(--nsca-fs-body);
	line-height: 1.7;
	color: rgba(255, 255, 255, 0.72);
}

/* --- Przycisk -------------------------------------------------------------- */

.nsca-ev-up__action {
	margin: 0;
}

.nsca-ev-up__cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 13px 20px;
	border: 1px solid var(--nsca-gold);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--nsca-gold-on-dark);
	transition: background-color var(--nsca-transition), color var(--nsca-transition);
}

/* Cały kafel klikalny: link rozciąga się niewidocznym obszarem.
   Przycisk zostaje jako sygnał wizualny, a czytnik ekranu dostaje
   jeden link opisany tytułem wydarzenia, nie dwa. */
.nsca-ev-up__cta::after {
	content: "";
	position: absolute;
	inset: 0;
}

.nsca-ev-up:hover .nsca-ev-up__cta,
.nsca-ev-up__cta:hover {
	background: var(--nsca-gold);
	color: var(--nsca-black);
}

.nsca-ev-up__cta:focus-visible {
	outline: var(--nsca-focus-width) solid var(--nsca-gold-on-dark);
	outline-offset: 3px;
}

.nsca-ev-up__arrow {
	font-size: 16px;
	line-height: 1;
}

@media (prefers-reduced-motion: reduce) {

	.nsca-ev-up__img,
	.nsca-ev-up:hover .nsca-ev-up__img {
		transition: none;
		transform: none;
	}
}

@media (max-width: 900px) {

	.nsca-ev-upcoming {
		--nsca-up-cols: 1;
		gap: var(--nsca-space-md);
	}

	.nsca-ev-up {
		min-height: 300px;
	}

	.nsca-ev-up__body {
		padding: var(--nsca-space-md);
	}
}

/* =========================================================================
   WARSZTAT — dopasowanie do makiety (2.15.0)
   =========================================================================

   Jeden CPT i jeden Single Template Elementora obsługują konferencję oraz
   warsztat. Wszystkie poniższe reguły są więc ograniczone modyfikatorami
   dodawanymi wyłącznie dla typu `warsztat`; konferencja zachowuje swój
   dotychczasowy layout.

   ========================================================================= */

/* Hero warsztatu ma własną, stabilną geometrię. Prawa grafika jest
   dekoracyjnym tłem panelu (nie elementem <img> rozciągającym grid), więc
   nie może wypchnąć sekcji poza viewport ani wejść pod tekst. */
.nsca-ev-hero--workshop {
	width: 100%;
	max-width: var(--nsca-ev-workshop-max);
	margin-inline: auto;
	grid-template-columns: minmax(0, var(--nsca-ev-workshop-hero-body-col)) minmax(0, 1fr);
	gap: var(--nsca-ev-workshop-hero-gap);
	padding-block: var(--nsca-ev-workshop-hero-padding-y);
	overflow: visible;
}

.nsca-ev-hero--workshop .nsca-ev-hero__body {
	min-width: 0;
	max-width: 100%;
	align-self: center;
}

.nsca-ev-hero--workshop .nsca-ev-hero__title {
	display: grid;
	gap: 0;
	width: 100%;
	max-width: 100%;
	margin-inline: 0;
	font-family: var(--nsca-font-heading);
	font-size: var(--nsca-ev-workshop-hero-title-size);
	font-weight: var(--nsca-fw-heading);
	font-synthesis-weight: none;
	line-height: 0.96;
	letter-spacing: 0;
}

.nsca-ev-hero--workshop .nsca-ev-hero__title .nsca-section__word {
	display: block;
	min-width: 0;
	max-width: 100%;
	white-space: normal;
}

.nsca-ev-hero--workshop .nsca-ev-hero__media {
	width: 100%;
	min-width: 0;
	max-width: 100%;
	min-height: var(--nsca-ev-workshop-hero-media-min);
	height: 100%;
	aspect-ratio: var(--nsca-ev-workshop-hero-media-ratio);
	margin: 0;
	background-color: var(--nsca-ev-dark);
	background-image: var(--nsca-ev-workshop-hero-bg-image, none);
	background-repeat: no-repeat;
	background-size: var(--nsca-ev-workshop-hero-bg-size);
	background-position: var(--nsca-ev-workshop-hero-bg-position);
}

/* Warsztat nie renderuje już <img>; ta reguła jest zabezpieczeniem przy
   cache'u starego HTML / niestandardowym override szablonu. */
.nsca-ev-hero--workshop .nsca-ev-hero__img {
	display: none !important;
}

/* Dla logo/znaku bez watermarku nie przyciemniamy grafiki tak mocno jak
   fotografii konferencyjnej. */
.nsca-ev-hero--workshop .nsca-ev-hero__media.has-image:not(:has(.nsca-ev-hero__watermark)) .nsca-ev-hero__scrim {
	background: linear-gradient(
		180deg,
		rgba(10, 10, 10, 0.02) 0%,
		rgba(10, 10, 10, 0.12) 100%
	);
}

/* Pasek pod hero: tło wychodzi poza kontener Elementora bez zmiany szerokości
   DOM i bez globalnego overflow-x:hidden. */
.nsca-ev-bar--workshop {
	box-shadow: 0 0 0 100vmax var(--nsca-ev-dark);
	clip-path: inset(0 -100vmax);
}

/* Co zyskasz: kolejność sekcji zostaje taka jak w obecnym Single Template,
   zmieniamy tylko wariant wizualny na warsztatowy z makiety. */
.nsca-ev-benefits--workshop {
	max-width: var(--nsca-ev-workshop-max);
	margin-inline: auto;
	padding-block: var(--nsca-ev-workshop-section-y);
	background: var(--nsca-ev-workshop-benefits-bg);
	color: var(--nsca-white);
	box-shadow: 0 0 0 100vmax var(--nsca-ev-workshop-benefits-bg);
	clip-path: inset(0 -100vmax);
}

.nsca-ev-benefits--workshop .nsca-ev-heading {
	color: var(--nsca-white);
}

.nsca-ev-benefits--workshop .nsca-ev-heading__rule {
	background: var(--nsca-gold);
}

.nsca-ev-benefits--workshop .nsca-ev-benefits__grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--nsca-gap);
}

.nsca-ev-benefits--workshop .nsca-ev-benefit {
	min-height: 150px;
	padding: 28px;
	background: var(--nsca-ev-workshop-benefit-card-bg);
	border: 1px solid var(--nsca-ev-workshop-benefit-border);
}

.nsca-ev-benefits--workshop .nsca-ev-benefit__icon {
	width: 28px;
	height: 28px;
	margin-bottom: 20px;
	color: var(--nsca-gold-on-dark);
}

.nsca-ev-benefits--workshop .nsca-ev-benefit__title {
	color: var(--nsca-ev-workshop-benefit-title);
}

.nsca-ev-benefits--workshop .nsca-ev-benefit__desc {
	color: var(--nsca-ev-workshop-benefit-text);
}

/* Program pozostaje w obecnej kolejności. Warsztat ma węższy blok niż
   konferencja, zgodnie z osobną makietą. */
.nsca-ev-agenda--workshop {
	max-width: var(--nsca-ev-workshop-agenda-max);
	padding-block: var(--nsca-ev-workshop-section-y);
}

.nsca-ev-agenda--workshop .nsca-ev-heading {
	margin-bottom: 28px;
}

/* Dla kogo: pełne ciemne tło viewportu, ale treść pozostaje w kontrolowanej
   szerokości. */
.nsca-ev-audience--workshop {
	max-width: var(--nsca-ev-workshop-max);
	margin-inline: auto;
	padding-block: var(--nsca-ev-workshop-section-y);
	box-shadow: 0 0 0 100vmax var(--nsca-ev-dark);
	clip-path: inset(0 -100vmax);
}

.nsca-ev-audience--workshop .nsca-ev-audience__grid {
	gap: var(--nsca-gap);
}

.nsca-ev-audience--workshop .nsca-ev-audience__item {
	min-height: 118px;
	padding: 24px 28px;
}

/* Prowadzący: warsztat korzysta z prostego, jasnego wariantu zamiast
   konferencyjnej karuzeli. */
.nsca-ev-speakers--plain {
	max-width: var(--nsca-ev-workshop-speakers-max);
	padding-block: var(--nsca-ev-workshop-section-y);
}

.nsca-ev-speakers--plain .nsca-ev-heading {
	margin-bottom: 32px;
}

.nsca-ev-speakers--plain .nsca-ev-speaker {
	padding: 28px;
}

.nsca-ev-speakers--plain .nsca-ev-speaker__role {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--nsca-gold-text);
}

.nsca-ev-speakers--plain .nsca-ev-speaker__bio,
.nsca-ev-speakers--plain .nsca-ev-speaker__quote {
	line-height: 1.65;
}

/* Zachowujemy dostęp do pełnego opisu, ale nie robimy z niego wielkiego CTA. */
.nsca-ev-speakers--plain .nsca-ev-speaker__link {
	min-height: 0;
	margin-top: 14px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--nsca-gold-text);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-decoration: none;
}

.nsca-ev-speakers--plain .nsca-ev-speaker__link:hover {
	background: transparent;
	color: var(--nsca-text);
}

/* Certyfikat: więcej oddechu, ale bez zmiany skali znaku. */
.nsca-ev-cert--workshop {
	max-width: var(--nsca-ev-workshop-cert-max);
	margin-inline: auto;
	padding-block: var(--nsca-ev-workshop-section-y);
	box-shadow: 0 0 0 100vmax var(--nsca-ev-surface);
	clip-path: inset(0 -100vmax);
}

.nsca-ev-cert--workshop .nsca-ev-cert__body {
	max-width: 520px;
}

/* Cennik warsztatu: pełne czarne tło i zwarty środek. Nagłówek dla tego
   wariantu jest pominięty w PHP, zgodnie z makietą. */
.nsca-ev-tickets--dark {
	max-width: var(--nsca-ev-workshop-max);
	margin-inline: auto;
	padding-block: var(--nsca-ev-workshop-section-y);
	box-shadow: 0 0 0 100vmax var(--nsca-ev-dark);
	clip-path: inset(0 -100vmax);
}

.nsca-ev-tickets--dark .nsca-ev-early {
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
}

/* FAQ z makiety jest wyraźnie węższe od pozostałych bloków i ma większy
   rytm pionowy. Sama animacja jest progresywnym rozszerzeniem w events.js. */
.nsca-ev-faq--workshop {
	max-width: var(--nsca-ev-workshop-faq-max);
	margin-inline: auto;
	padding-block: var(--nsca-space-2xl);
}

.nsca-ev-faq--workshop .nsca-ev-heading {
	margin-bottom: 32px;
}

.nsca-ev-faq--workshop .nsca-ev-faq__list {
	gap: 12px;
}

.nsca-ev-faq--workshop .nsca-ev-faq__q {
	min-height: 64px;
	padding: 20px 24px;
	font-family: var(--nsca-font-body);
	font-size: 14px;
	line-height: 1.45;
}

.nsca-ev-faq--workshop .nsca-ev-faq__a {
	max-width: none;
	padding: 16px 24px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	font-size: 13px;
	line-height: 1.6;
}

/* Odpowiedź ma wyglądać jak osobny, równomiernie wycentrowany w pionie
   wiersz. Reset marginesów treści jest celowy — wpautop()/motyw potrafił
   dodawać własny margin-top i optycznie przyklejać tekst do górnej krawędzi. */
.nsca-ev-faq--workshop .nsca-ev-faq__a > :first-child {
	margin-top: 0;
}

.nsca-ev-faq--workshop .nsca-ev-faq__a > :last-child {
	margin-bottom: 0;
}

.nsca-ev-faq--workshop .nsca-ev-faq__a > p:only-child {
	margin-block: 0;
}

.nsca-ev-faq__item.is-animating .nsca-ev-faq__a {
	overflow: hidden;
}

@media (max-width: 1200px) {
	.nsca-ev-benefits--workshop .nsca-ev-benefits__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 1024px) {
	.nsca-ev-hero--workshop {
		max-width: 100%;
		grid-template-columns: minmax(0, 1fr);
		gap: var(--nsca-space-lg);
		padding-block: var(--nsca-space-xl);
	}

	.nsca-ev-hero--workshop .nsca-ev-hero__title {
		font-size: clamp(44px, 7vw, 60px);
	}

	.nsca-ev-hero--workshop .nsca-ev-hero__media {
		width: 100%;
		min-height: 0;
		height: auto;
		margin: 0;
		aspect-ratio: var(--nsca-ev-workshop-hero-mobile-ratio);
	}

	.nsca-ev-benefits--workshop,
	.nsca-ev-audience--workshop,
	.nsca-ev-cert--workshop,
	.nsca-ev-tickets--dark {
		padding-block: var(--nsca-space-xl);
	}
}

@media (max-width: 768px) {
	.nsca-ev-benefits--workshop .nsca-ev-benefits__grid {
		grid-template-columns: minmax(0, 1fr);
		max-width: 520px;
		margin-inline: auto;
	}

	.nsca-ev-audience--workshop .nsca-ev-audience__grid {
		max-width: 520px;
		margin-inline: auto;
	}

	.nsca-ev-faq--workshop .nsca-ev-faq__q {
		min-height: 58px;
		padding: 17px 18px;
	}

	.nsca-ev-faq--workshop .nsca-ev-faq__a {
		padding: 14px 18px;
	}
}

/* =========================================================================
   TYPOGRAFIA + MOBILE — 2.16.0
   =========================================================================
   Inter 14px jest bazą dla zwykłej treści. Drobne etykiety, metadata i
   pomocnicze elementy UI zachowują mniejszą skalę z komponentów.
   ========================================================================= */

.nsca-ev-hero__lead,
.nsca-ev-benefit__desc,
.nsca-ev-timeline__desc,
.nsca-ev-audience__desc,
.nsca-ev-speaker__bio,
.nsca-ev-speaker__quote,
.nsca-ev-partner__desc,
.nsca-ev-cert__text,
.nsca-ev-faq__a {
	font-family: var(--nsca-font-body);
	font-size: var(--nsca-fs-body);
	line-height: var(--nsca-lh-body);
}

.nsca-ev-faq--workshop .nsca-ev-faq__q {
	font-family: var(--nsca-font-body);
	font-size: var(--nsca-fs-body);
}

@media (max-width: 767px) {

	/* Sekcje eventowe nie mogą wymuszać szerokości desktopowej wewnątrz
	   responsywnego kontenera Elementora. */
	.nsca-ev-hero,
	.nsca-ev-bar,
	.nsca-ev-benefits,
	.nsca-ev-agenda,
	.nsca-ev-audience,
	.nsca-ev-speakers,
	.nsca-ev-partners,
	.nsca-ev-cert,
	.nsca-ev-tickets,
	.nsca-ev-promo,
	.nsca-ev-faq,
	.nsca-ev-upcoming {
		min-width: 0;
		max-width: 100%;
	}

	.nsca-ev-hero__body,
	.nsca-ev-hero__media,
	.nsca-ev-agenda__content,
	.nsca-ev-speakers__wrap,
	.nsca-ev-partners__wrap,
	.nsca-ev-cert__body,
	.nsca-ev-tickets__grid {
		min-width: 0;
		max-width: 100%;
	}

	/* Statystyki i pasek informacyjny mają pozostać czytelne także na
	   bardzo wąskim telefonie zamiast ściskać cztery kolumny w jednym rzędzie. */
	.nsca-ev-stats {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px 16px;
	}

	.nsca-ev-bar__list {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px 16px;
	}

	.nsca-ev-bar__item {
		min-width: 0;
		white-space: normal;
	}

	/* Warsztat: telefon ma ciaśniejszy rytm pionowy niż desktop, ale nadal
	   zachowuje wyraźne separacje sekcji. */
	.nsca-ev-hero--workshop,
	.nsca-ev-benefits--workshop,
	.nsca-ev-agenda--workshop,
	.nsca-ev-audience--workshop,
	.nsca-ev-speakers--plain,
	.nsca-ev-cert--workshop,
	.nsca-ev-tickets--dark,
	.nsca-ev-faq--workshop {
		padding-block: var(--nsca-mobile-section-y);
	}

	.nsca-ev-hero--workshop .nsca-ev-hero__media {
		width: 100%;
		max-width: 100%;
		aspect-ratio: var(--nsca-ev-workshop-hero-mobile-ratio);
	}

	.nsca-ev-hero--workshop .nsca-ev-hero__title {
		font-size: clamp(36px, 12vw, 50px);
		line-height: 0.94;
	}

	.nsca-ev-hero--workshop .nsca-ev-hero__title .nsca-section__word {
		overflow-wrap: anywhere;
		word-break: normal;
		hyphens: auto;
	}

	.nsca-ev-speakers--plain .nsca-ev-speaker {
		padding: 20px;
	}

	.nsca-ev-speakers--plain .nsca-ev-speaker__head {
		grid-template-columns: 48px minmax(0, 1fr);
	}

	.nsca-ev-speakers--plain .nsca-ev-speaker__avatar {
		width: 48px;
		height: 48px;
	}

	.nsca-ev-benefits--workshop .nsca-ev-benefit,
	.nsca-ev-audience--workshop .nsca-ev-audience__item {
		min-height: 0;
		padding: 20px;
	}

	.nsca-ev-faq--workshop .nsca-ev-faq__q {
		padding: 18px;
	}

	.nsca-ev-faq--workshop .nsca-ev-faq__a {
		padding: 14px 18px;
	}
}

@media (max-width: 420px) {
	.nsca-ev-stats,
	.nsca-ev-bar__list {
		grid-template-columns: minmax(0, 1fr);
	}

	.nsca-ev-hero__actions .nsca-btn {
		width: 100%;
		justify-content: center;
	}

	.nsca-ev-hero--workshop .nsca-ev-hero__title {
		font-size: clamp(32px, 13vw, 42px);
	}
}

/* =========================================================================
   STRONA GŁÓWNA — najbliższe wydarzenia: stabilny mobile/tablet (2.18.1)
   =========================================================================
   Desktop pozostaje siatką. Na mniejszych ekranach lista staje się natywną
   karuzelą scroll-snap, więc karta nie może rozciągnąć dokumentu ani zostawić
   sztucznej wysokości po sekcji. Sterowanie korzysta z istniejącego,
   dostępnego mechanizmu karuzel events.js.
   ========================================================================= */

.nsca-ev-upcoming-wrap {
	width: 100%;
	min-width: 0;
	max-width: 100%;
	overflow-x: clip;
}

.nsca-ev-upcoming-wrap > .nsca-ev-upcoming {
	width: 100%;
	min-width: 0;
	max-width: 100%;
}

.nsca-ev-upcoming__nav {
	display: none;
}

.nsca-ev-upcoming:focus {
	outline: none;
	box-shadow: none;
}

.nsca-ev-upcoming:focus-visible {
	outline: var(--nsca-focus-width) solid var(--nsca-focus-color);
	outline-offset: 4px;
}

@media (max-width: 1024px) {

	.nsca-ev-upcoming {
		display: flex;
		grid-template-columns: none;
		gap: var(--nsca-upcoming-carousel-gap);
		overflow-x: auto;
		overflow-y: hidden;
		padding: 0 0 2px;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: 1px;
		overscroll-behavior-inline: contain;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	.nsca-ev-upcoming::-webkit-scrollbar {
		display: none;
	}

	.nsca-ev-upcoming > .nsca-ev-up {
		flex: 0 0 var(--nsca-upcoming-tablet-card);
		width: auto;
		min-width: 0;
		max-width: 100%;
		min-height: 340px;
		scroll-snap-align: start;
		scroll-snap-stop: always;
	}

	.nsca-ev-upcoming__nav {
		display: flex;
		margin-top: 18px;
	}

	/* Elementor/motyw nie może narzucić czerwonego hover/focus. */
	.nsca-ev-upcoming-wrap button.nsca-ev-carousel-nav__arrow:focus,
	.nsca-ev-upcoming-wrap button.nsca-ev-dots__dot:focus {
		outline: none !important;
		box-shadow: none !important;
		-webkit-box-shadow: none !important;
	}

	.nsca-ev-upcoming-wrap button.nsca-ev-carousel-nav__arrow:hover,
	.nsca-ev-upcoming-wrap button.nsca-ev-carousel-nav__arrow:focus:hover {
		background: transparent !important;
		background-color: transparent !important;
		border-color: transparent !important;
		box-shadow: none !important;
		color: var(--nsca-gold-text) !important;
	}

	.nsca-ev-upcoming-wrap button.nsca-ev-dots__dot:hover,
	.nsca-ev-upcoming-wrap button.nsca-ev-dots__dot.is-active:focus {
		background: var(--nsca-gold) !important;
		background-color: var(--nsca-gold) !important;
	}

	.nsca-ev-upcoming-wrap button.nsca-ev-carousel-nav__arrow:focus-visible,
	.nsca-ev-upcoming-wrap button.nsca-ev-dots__dot:focus-visible {
		outline: var(--nsca-focus-width) solid var(--nsca-focus-color) !important;
		outline-offset: 4px !important;
		box-shadow: none !important;
	}
}

@media (max-width: 640px) {

	.nsca-ev-upcoming > .nsca-ev-up {
		flex-basis: var(--nsca-upcoming-mobile-card);
		min-height: 320px;
	}

	.nsca-ev-up__body {
		padding: 20px;
	}

	.nsca-ev-upcoming__nav {
		gap: 10px;
	}

	.nsca-ev-upcoming__nav .nsca-ev-carousel-nav__text {
		display: none;
	}

	.nsca-ev-upcoming__nav .nsca-ev-carousel-nav__arrow {
		width: 44px;
		height: 44px;
		justify-content: center;
		padding: 0;
	}
}


/* =========================================================================
   2.18.9 — KONFERENCJA: TYTULY W SEKCJI "CO ZYSKASZ"
   =========================================================================
   W mockupie naglowki pozycji sa czytelniejsze od opisu, ale nadal naleza
   do warstwy UI/body, nie do display fontu. Warsztat ma osobny wariant.
   ========================================================================= */

.nsca-ev-benefits:not(.nsca-ev-benefits--workshop) .nsca-ev-benefit__title {
	font-family: var(--nsca-font-body) !important;
	font-size: var(--nsca-ev-benefit-title-size) !important;
	font-weight: var(--nsca-ev-benefit-title-weight) !important;
	line-height: 1.28;
	letter-spacing: 0;
	color: var(--nsca-white);
}

/* ==========================================================================
   2.19.16 — PRELEGENCI: spójny focus i zamknięcie modala
   ========================================================================== */

/* Elementor/motyw potrafi narzucić czerwony :focus na zwykłe <button>.
   Dla przycisku otwierającego modal pozostawiamy wariant outline, a focus
   klawiaturowy pokazujemy wyłącznie w kolorze NSCA. */
body .nsca-ev-speakers button.nsca-ev-speaker__link,
body .nsca-ev-speakers button.nsca-ev-speaker__link:focus,
body .nsca-ev-speakers button.nsca-ev-speaker__link:hover,
body .nsca-ev-speakers button.nsca-ev-speaker__link:active {
	box-shadow: none !important;
	outline: none !important;
}

body .nsca-ev-speakers button.nsca-ev-speaker__link:focus {
	border-color: var(--nsca-border-strong) !important;
}

body .nsca-ev-speakers button.nsca-ev-speaker__link:focus-visible {
	outline: 2px solid var(--nsca-gold) !important;
	outline-offset: 3px !important;
	border-color: var(--nsca-gold) !important;
	box-shadow: none !important;
}

/* X modala jest komponentem NSCA, więc nie dziedziczy czerwonych stanów
   button:hover/button:focus z Elementora. Normalnie: czarny + biała ikona,
   hover/focus: złoty + czarna ikona. */
body .nsca-ev-modal button.nsca-ev-modal__close,
body .nsca-ev-modal button.nsca-ev-modal__close:focus,
body .nsca-ev-modal button.nsca-ev-modal__close:hover,
body .nsca-ev-modal button.nsca-ev-modal__close:active {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 44px !important;
	height: 44px !important;
	padding: 0 !important;
	border: 1px solid var(--nsca-gold) !important;
	border-radius: 0 !important;
	background: var(--nsca-black) !important;
	color: var(--nsca-white) !important;
	box-shadow: none !important;
	outline: none !important;
	line-height: 1 !important;
}

body .nsca-ev-modal button.nsca-ev-modal__close:hover,
body .nsca-ev-modal button.nsca-ev-modal__close:focus {
	background: var(--nsca-gold) !important;
	border-color: var(--nsca-gold) !important;
	color: var(--nsca-black) !important;
}

body .nsca-ev-modal button.nsca-ev-modal__close:focus-visible {
	background: var(--nsca-gold) !important;
	border-color: var(--nsca-gold) !important;
	color: var(--nsca-black) !important;
	outline: 2px solid var(--nsca-gold) !important;
	outline-offset: 3px !important;
	box-shadow: none !important;
}


/* =========================================================================
   2.19.31 — HERO: KONFERENCJA / WARSZTAT
   ========================================================================= */
/* Warsztat: grafika ma byc czysta — bez czarnego tla panelu i bez gradientu.
   Zachowujemy background-image, bo stabilizuje geometrie hero, ale wolna
   przestrzen przy `contain` jest przezroczysta zamiast czarna. */
.nsca-ev-hero--workshop .nsca-ev-hero__media {
	background-color: transparent;
}

.nsca-ev-hero--workshop .nsca-ev-hero__scrim {
	display: none !important;
	background: none !important;
}

/* Konferencja: trzy statystyki pozostaja w jednym rzedzie na telefonie. */
@media (max-width: 767px) {
	.nsca-ev-hero:not(.nsca-ev-hero--workshop) .nsca-ev-stats {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 12px;
	}

	.nsca-ev-hero:not(.nsca-ev-hero--workshop) .nsca-ev-stats__item {
		min-width: 0;
	}

	.nsca-ev-hero:not(.nsca-ev-hero--workshop) .nsca-ev-stats__label {
		overflow-wrap: anywhere;
	}
}

@media (max-width: 420px) {
	.nsca-ev-hero:not(.nsca-ev-hero--workshop) .nsca-ev-stats {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 8px;
	}
}

/* 2.19.47: optional rich-text introduction below the agenda heading. */
.nsca-ev-agenda__intro {
	min-width: 0;
	max-width: 100%;
	margin: 0 0 var(--nsca-space-lg);
	font-family: var(--nsca-font-body);
	font-size: var(--nsca-fs-body);
	line-height: var(--nsca-lh-body);
	color: var(--nsca-text);
	overflow-wrap: anywhere;
}

.nsca-ev-agenda__intro > :first-child { margin-top: 0; }
.nsca-ev-agenda__intro > :last-child { margin-bottom: 0; }
.nsca-ev-agenda__intro p { margin-block: 0 1em; }
.nsca-ev-agenda__intro ul,
.nsca-ev-agenda__intro ol { margin-block: 0 1em; padding-inline-start: 1.5em; }
.nsca-ev-agenda__intro img { max-width: 100%; height: auto; }
