/* =========================================================================
   NSCA TEAM — zespół, pasek CTA, partnerzy
   =========================================================================

   Tokeny są w assets/tokens.css. Karuzela partnerów korzysta z nawigacji
   i skryptu z events.css, dlatego ten arkusz ładuje się po nim.

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

.nsca-tm-hero,
.nsca-tm-grid-wrap,
.nsca-tm-band,
.nsca-tm-partners {
	box-sizing: border-box;
}

.nsca-tm-hero *,
.nsca-tm-grid-wrap *,
.nsca-tm-band *,
.nsca-tm-partners * {
	box-sizing: inherit;
}

/* =========================================================================
   NAGŁÓWEK DWULINIOWY
   ========================================================================= */

.nsca-stack-head {
	margin-bottom: var(--nsca-space-lg);
}

.nsca-stack-head--center {
	text-align: center;
}

.nsca-stack-head__eyebrow {
	margin: 0 0 10px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--nsca-gold-text);
}

.nsca-stack-head__title {
	margin: 0;
	font-size: clamp(1.75rem, 3.2vw, 2.5rem);
	font-weight: var(--nsca-fw-h2);
	line-height: 1.08;
	letter-spacing: -0.015em;
	text-transform: uppercase;
}

.nsca-stack-head__line {
	display: block;
	color: var(--nsca-text);
}

.nsca-stack-head__line--accent {
	color: var(--nsca-gold);
}

.nsca-stack-head--dark .nsca-stack-head__eyebrow {
	color: var(--nsca-gold-on-dark);
}

.nsca-stack-head--dark .nsca-stack-head__line {
	color: var(--nsca-white);
}

.nsca-stack-head--dark .nsca-stack-head__line--accent {
	color: var(--nsca-gold-on-dark);
}

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

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

.nsca-tm-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 0.85fr);
	gap: clamp(24px, 4vw, 72px);
	align-items: center;
}

.nsca-tm-hero__lead {
	max-width: 54ch;
	margin-top: var(--nsca-space-md);
	font-size: 12px;
	line-height: 1.8;
	color: rgba(255, 255, 255, 0.72);
}

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

/* Statystyki w ramce, nie jako pasek — tak jest w makiecie. */
.nsca-tm-stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 0;
	border: 1px solid var(--nsca-dark-border);
}

.nsca-tm-stats__item {
	padding: var(--nsca-space-md) 12px;
	text-align: center;
}

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

.nsca-tm-stats__value {
	margin: 0;
	font-size: 1.125rem;
	font-weight: 700;
	line-height: 1.1;
	color: var(--nsca-gold-on-dark);
}

.nsca-tm-stats__label {
	margin: 6px 0 0;
	font-size: 8px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.45);
}

/* =========================================================================
   SIATKA OSÓB
   ========================================================================= */

.nsca-tm-grid-wrap {
	padding: var(--nsca-space-2xl) 0;
	background: var(--nsca-white);
}

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

.nsca-tm-grid--cols-1 { --nsca-tm-cols: 1; }
.nsca-tm-grid--cols-2 { --nsca-tm-cols: 2; }
.nsca-tm-grid--cols-3 { --nsca-tm-cols: 3; }
.nsca-tm-grid--cols-4 { --nsca-tm-cols: 4; }

.nsca-tm-person {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.nsca-tm-person__media {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--nsca-ev-dark);
}

.nsca-tm-person__img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	object-fit: cover;
	object-position: center top;
	display: block;
}

/* Inicjały w tle, gdy nie ma zdjęcia. */
.nsca-tm-person__ghost {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: clamp(2.5rem, 5vw, 3.75rem);
	font-weight: 700;
	letter-spacing: 0.04em;
	color: rgba(255, 255, 255, 0.08);
}

.nsca-tm-person__badge {
	position: absolute;
	top: 10px;
	right: 10px;
	padding: 5px 10px;
	background: var(--nsca-gold);
	color: var(--nsca-black);
	font-size: 8px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	white-space: nowrap;
	max-width: calc(100% - 20px);
	overflow: hidden;
	text-overflow: ellipsis;
}

.nsca-tm-person__body {
	flex: 1 1 auto;
	padding: 14px 0 0;
	border-top: 2px solid var(--nsca-gold);
	margin-top: 0;
}

.nsca-tm-person__role {
	margin: 0 0 var(--nsca-team-person-role-gap);
	font-family: var(--nsca-font-ui);
	font-size: var(--nsca-team-person-role-size);
	font-weight: 700;
	letter-spacing: 0.16em;
	line-height: 1.45;
	text-transform: uppercase;
	color: var(--nsca-gold-text);
}

.nsca-tm-person__name {
	margin: 0 0 12px;
	font-family: var(--nsca-font-heading);
	font-size: var(--nsca-team-person-name-size);
	font-weight: var(--nsca-fw-heading);
	letter-spacing: 0.01em;
	line-height: 1.02;
	text-transform: uppercase;
	color: var(--nsca-text);
}

.nsca-tm-person__desc {
	margin: 0 0 12px;
	font-size: 12px;
	line-height: 1.7;
	color: var(--nsca-text-muted);
}

/* Chipy z klubami i organizacjami. */
.nsca-tm-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: auto 0 0;
	padding: 0;
	list-style: none;
}

.nsca-tm-tag {
	padding: 4px 9px;
	background: var(--nsca-ev-surface);
	border: 1px solid var(--nsca-ev-line);
	font-size: 8px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--nsca-text-muted);
}

/* =========================================================================
   PASEK CTA
   ========================================================================= */

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

.nsca-tm-band__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--nsca-space-lg);
}

.nsca-tm-band .nsca-stack-head {
	margin-bottom: 0;
}

.nsca-tm-band__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

/* Jasny przycisk na ciemnym tle. */
.nsca-btn--light {
	background: var(--nsca-white);
	border-color: var(--nsca-white);
	color: var(--nsca-black);
}

.nsca-btn--light:hover {
	background: transparent;
	border-color: var(--nsca-white);
	color: var(--nsca-white);
}

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

.nsca-tm-partners {
	padding: var(--nsca-space-2xl) 0;
	background: var(--nsca-ev-surface);
}

.nsca-tm-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-tm-partners__track::-webkit-scrollbar {
	display: none;
}

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

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

.nsca-tm-partner__logo {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 150px;
	padding: var(--nsca-space-md);
	background: var(--nsca-white);
	border: 1px solid var(--nsca-gold);
}

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

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

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

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

.nsca-tm-partner__desc {
	margin: 0 0 12px;
	font-size: 12px;
	line-height: 1.75;
	color: var(--nsca-text-muted);
}

.nsca-tm-partner__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-decoration: none;
	color: var(--nsca-gold-text);
}

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

@media (max-width: 1024px) {

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

	.nsca-tm-grid {
		--nsca-tm-cols: 2;
	}

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

	.nsca-tm-partner__logo {
		border: 1px solid var(--nsca-gold);
	}
}

@media (max-width: 768px) {

	.nsca-tm-grid {
		--nsca-tm-cols: 1;
	}

	.nsca-tm-band__inner {
		flex-direction: column;
		align-items: flex-start;
	}

	.nsca-tm-band__actions {
		width: 100%;
	}

	.nsca-tm-band__actions .nsca-btn {
		flex: 1 1 100%;
		justify-content: center;
	}

	.nsca-tm-stats {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 420px) {

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

	.nsca-tm-stats__item + .nsca-tm-stats__item {
		border-left: 0;
		border-top: 1px solid var(--nsca-dark-border);
	}
}

/* =========================================================================
   2.19.19 — HERO: STATYSTYKI PRZY DOLNEJ KRAWĘDZI + PARTNERZY FOCUS
   ========================================================================= */

/* W makiecie ramka statystyk domyka prawą część hero przy jego dolnej osi,
   a nie jest wyśrodkowana pionowo względem treści. Zmieniamy wyłącznie
   desktopowy układ dwóch kolumn; tablet/mobile pozostają stackiem. */
@media (min-width: 1025px) {
	.nsca-tm-hero__inner {
		align-items: end;
	}

	.nsca-tm-stats {
		align-self: end;
	}
}

/* Partnerzy korzystają ze wspólnej nawigacji eventów, ale żyją poza
   .nsca-ev-partners, więc motyw/Elementor mógł nadal narzucać czerwony
   hover/focus. Tutaj odcinamy wyłącznie kontrolki karuzeli zespołu. */
body .nsca-tm-partners button.nsca-ev-carousel-nav__arrow:focus,
body .nsca-tm-partners button.nsca-ev-dots__dot:focus {
	outline: none !important;
	box-shadow: none !important;
	-webkit-box-shadow: none !important;
	border-color: transparent !important;
}

body .nsca-tm-partners button.nsca-ev-carousel-nav__arrow:focus {
	background: transparent !important;
	background-color: transparent !important;
	color: var(--nsca-text) !important;
}

body .nsca-tm-partners button.nsca-ev-carousel-nav__arrow:hover,
body .nsca-tm-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;
}

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

body .nsca-tm-partners button.nsca-ev-carousel-nav__arrow:focus-visible,
body .nsca-tm-partners button.nsca-ev-dots__dot:focus-visible,
body .nsca-tm-partners [data-nsca-carousel-track]: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;
}

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

body .nsca-tm-partners button.nsca-ev-dots__dot:focus {
	background: var(--nsca-border) !important;
}

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