/* =========================================================================
   NSCA BASE — globalna typografia + bezpieczna baza responsywna
   =========================================================================

   Ten plik jest ladowany po arkuszach komponentow. Wartosci zmieniamy
   wylacznie w tokens.css. Tutaj jest kontrakt calego serwisu:
   - naglowki H1-H6: Industry,
   - tekst opisowy: Inter 14px,
   - przyciski: Inter 14px, uppercase,
   - na mobile nie pozwalamy kontenerom Elementora / NSCA wymuszac
     szerokosci wiekszej od viewportu.

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

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

body {
	font-family: var(--nsca-font-body);
	font-size: var(--nsca-fs-body);
	font-weight: var(--nsca-fw-body);
	line-height: var(--nsca-lh-body);
}

/* Elementy formularzy nie dziedzicza fontu we wszystkich przegladarkach. */
body input,
body select,
body textarea {
	font-family: var(--nsca-font-body);
}

/* Komponenty NSCA dziedzicza podstawowy Inter z body.

   UWAGA: nie przypisujemy font-family do kazdego elementu z klasa nsca-*.
   Wczesniejsza regula robila to rowniez dzieciom naglowkow (np. spanom
   .nsca-section__word / .nsca-mb-head__line), przez co nadpisywala
   odziedziczony Bebas Neue i wizualnie tytuly wracaly do Intera.

   Dziedziczenie z body jest wystarczajace dla zwyklego tekstu, a ponizej
   jawnie spinamy elementy display z tokenem --nsca-font-display. */

/* Globalny kontrakt marki: wszystkie naglowki korzystaja z Industry.
   !important jest celowe — Elementor potrafi zapisywac font bezposrednio
   na widgetach i w globalnym Site Kit. Waga 600 jest wspolnym tokenem;
   Industry Medium jest ladowany lokalnie z nsca.pl; nie syntetyzujemy wagi. */
body h1,
body h2,
body h3,
body h4,
body h5,
body h6,
body .elementor h1.elementor-heading-title,
body .elementor h2.elementor-heading-title,
body .elementor h3.elementor-heading-title,
body .elementor h4.elementor-heading-title,
body .elementor h5.elementor-heading-title,
body .elementor h6.elementor-heading-title {
	font-family: var(--nsca-font-heading) !important;
	font-weight: var(--nsca-fw-heading) !important;
	font-synthesis-weight: auto;
}

/* Tekst redakcyjny Elementora ma byc Interem tak samo jak komponenty NSCA.
   Ograniczamy sie do widgetow tekstowych i pol formularzy, zeby nie dotykac
   fontow ikon ani zewnetrznych bibliotek. */
body .elementor-widget-text-editor,
body .elementor-widget-text-editor p,
body .elementor-widget-text-editor li {
	font-family: var(--nsca-font-body) !important;
	font-size: var(--nsca-fs-body) !important;
}

body .elementor-field,
body .elementor-field-textual {
	font-family: var(--nsca-font-body) !important;
}

/* Globalny kontrakt tekstu opisowego. Elementy typu lead/desc/bio/copy maja
   miec 14px Inter niezaleznie od starszych, lokalnych wartosci 11-13px.
   Nie obejmuje etykiet, metadanych, cen ani elementow nawigacyjnych. */
body .nsca-acc-panel__lead,
body .nsca-ar__description,
body .nsca-ar-card__desc,
body .nsca-ce-hero__lead,
body .nsca-ce-req__desc,
body .nsca-ce-syllabus__lead,
body .nsca-ce-fees__lead,
body .nsca-ce-res__desc,
body .nsca-ce-cta__lead,
body .nsca-ce-card__desc,
body .nsca-ce-bar-cta__text,
body .nsca-ev-hero__lead,
body .nsca-ev-benefit__desc,
body .nsca-ev-timeline__desc,
body .nsca-ev-audience__desc,
body .nsca-ev-speaker__bio,
body .nsca-ev-speaker__quote,
body .nsca-ev-partner__desc,
body .nsca-ev-cert__text,
body .nsca-ev-early__text,
body .nsca-ev-speaker-modal__text,
body .nsca-ev-promo__lead,
body .nsca-ev-faq__a,
body .nsca-ev-up__desc,
body .nsca-mb-hero__lead,
body .nsca-mb-benefit__desc,
body .nsca-mb-plans__lead,
body .nsca-mb-plan__desc,
body .nsca-mb-quote__text,
body .nsca-mb-join__lead,
body .nsca-mb-step__desc,
body .nsca-mb-cta__lead,
body .nsca-featured__desc,
body .nsca-card__subtitle,
body .nsca-single__desc,
body .nsca-info__text,
body .nsca-tm-hero__lead,
body .nsca-tm-person__desc,
body .nsca-tm-partner__desc {
	font-family: var(--nsca-font-body) !important;
	font-size: var(--nsca-fs-body) !important;
}

/* Kanoniczny standard H2 na calej witrynie. !important jest tu celowe:
   Elementor i czesc modulow zapisuje rozmiar/wage bardziej specyficznymi
   selektorami. Globalny token ma byc jednym zrodlem prawdy. */
body h2,
body .elementor h2.elementor-heading-title {
	font-size: var(--nsca-fs-h2) !important;
	font-weight: var(--nsca-fw-h2) !important;
	font-synthesis-weight: auto;
}

/* Jawne zabezpieczenie tytulow komponentow. Czesc z nich jest renderowana
   jako H1-H3, ale lista chroni typografie takze po zmianie markupu szablonu. */
body .nsca-ev-hero__title,
body .nsca-ev-heading,
body .nsca-ev-promo__title,
body .nsca-section__title,
body .nsca-featured__title,
body .nsca-single__title,
body .nsca-info__title,
body .nsca-stack-head__title,
body .nsca-ce-hero__title,
body .nsca-ce-head__title,
body .nsca-ce-req__title,
body .nsca-ce-res__title,
body .nsca-ce-card__title,
body .nsca-ce-bar-cta__title,
body .nsca-mb-hero__title,
body .nsca-mb-head__title,
body .nsca-ar__title,
body .nsca-ar-card__title,
body .nsca-acc-panel__title,
body .nsca-section__word,
body .nsca-mb-head__line,
body .nsca-stack-head__line,
body .nsca-ce-head__line {
	font-family: var(--nsca-font-heading) !important;
	font-weight: var(--nsca-fw-heading) !important;
	font-synthesis-weight: auto;
}

/* Globalny kontrakt cen: kwoty sa elementem displayowym i wszedzie
   korzystaja z Bebas Neue. Rozmiar pozostaje odpowiedzialnoscia konkretnego
   komponentu (sklep, bilet, plan, checkout), dzieki czemu nie zmieniamy
   geometrii stron. */
body .woocommerce-Price-amount,
body .nsca-price__current,
body .nsca-price__regular,
body .nsca-ev-ticket__price,
body .nsca-ev-promo__price,
body .nsca-mb-plan__amount,
body .nsca-mb-pick__price,
body .nsca-ce-fees__table tbody .nsca-ce-fees__num {
	font-family: var(--nsca-font-price) !important;
	font-weight: var(--nsca-fw-price);
}

/* Jeden standard przyciskow na calym froncie. Nie zmieniamy kolorow ani
   geometrii obcych komponentow — tylko typografie, o ktora chodzi w projekcie. */
body button,
body input[type="button"],
body input[type="submit"],
body input[type="reset"],
body .button,
body .nsca-btn,
body .elementor-button {
	font-family: var(--nsca-font-ui) !important;
	font-size: var(--nsca-fs-btn) !important;
	font-weight: var(--nsca-fw-btn) !important;
	letter-spacing: var(--nsca-ls-btn);
	text-transform: uppercase;
}

/* =========================================================================
   GLOBALNA MIKROINTERAKCJA PRZYCISKOW
   =========================================================================
   Kolory pozostaja w gestii komponentow (np. czarny -> zloty). Warstwa
   globalna dodaje tylko delikatne powiekszenie. Uzywamy osobnej wlasciwosci
   `scale`, wiec nie nadpisujemy lokalnych transformacji (np. przesuniecia
   strzalki lub translateY).
   ========================================================================= */

body .nsca-btn,
body .button,
body .elementor-button,
body button.button,
body input[type="button"],
body input[type="submit"],
body input[type="reset"],
body .nsca-ce-card__cta,
body .nsca-ce-bar-cta__link,
body .nsca-ar-card__cta,
body .nsca-ev-up__cta {
	scale: 1;
	transform-origin: center;
	transition: scale var(--nsca-transition),
		transform var(--nsca-transition),
		background-color var(--nsca-transition),
		color var(--nsca-transition),
		border-color var(--nsca-transition),
		box-shadow var(--nsca-transition),
		opacity var(--nsca-transition) !important;
}

body .nsca-btn:hover,
body .button:hover,
body .elementor-button:hover,
body button.button:hover,
body input[type="button"]:hover,
body input[type="submit"]:hover,
body input[type="reset"]:hover,
body .nsca-ce-card__cta:hover,
body .nsca-ce-bar-cta__link:hover,
body .nsca-ar-card__cta:hover,
body .nsca-ev-up__cta:hover {
	scale: var(--nsca-btn-hover-scale);
}

body .nsca-btn:active,
body .button:active,
body .elementor-button:active,
body button.button:active,
body input[type="button"]:active,
body input[type="submit"]:active,
body input[type="reset"]:active,
body .nsca-ce-card__cta:active,
body .nsca-ce-bar-cta__link:active,
body .nsca-ar-card__cta:active,
body .nsca-ev-up__cta:active {
	scale: var(--nsca-btn-active-scale);
}

/* Media nigdy nie powinny poszerzac kolumny na telefonie. */
body img,
body video,
body iframe,
body canvas {
	max-width: 100%;
}

/* =========================================================================
   MOBILE HARDENING
   ========================================================================= */

@media (max-width: 767px) {

	html,
	body {
		max-width: 100%;
		min-width: 0;
	}

	/* Elementorowe flex/grid children domyslnie potrafia trzymac szerokosc
	   zawartosci. min-width:0 jest bezpieczna korekta — nie ucina tresci i nie
	   maskuje bledu przez globalne overflow:hidden. */
	body .elementor,
	body .elementor .e-con,
	body .elementor .e-con-inner,
	body .elementor .elementor-element,
	body .elementor .elementor-widget,
	body .elementor .elementor-widget-container {
		min-width: 0;
	}

	/* To samo dla komponentow wtyczki. Nie ustawiamy overflow:hidden,
	   wiec karuzele, sticky i dropdowny nadal zachowuja swoje funkcje. */
	body [class^="nsca-"],
	body [class*=" nsca-"] {
		min-width: 0;
	}

	body h1,
	body h2,
	body h3,
	body h4,
	body h5,
	body h6 {
		max-width: 100%;
		overflow-wrap: normal;
		text-wrap: balance;
	}

	body p {
		overflow-wrap: break-word;
	}

	/* Pola pozostaja 16px na mobile, aby Safari iOS nie uruchamialo auto-zoomu.
	   To celowy wyjątek od 14px dla tekstu opisowego. */
	body input:not([type="button"]):not([type="submit"]):not([type="reset"]),
	body select,
	body textarea {
		font-size: 16px;
	}
}


/* =========================================================================
   2.18.9 — GLOBALNY NADTYTUL / EYEBROW
   =========================================================================
   Jeden kontrakt dla napisu nad naglowkami: Inter 16px / 700,
   kanoniczne zloto marki. Lista jest jawna, zeby nie zmieniac zwyklych
   etykiet produktowych i metadanych, ktore nie pelnia roli nadtytulu.
   ========================================================================= */

body .nsca-ev-hero__overline,
body .nsca-mb-hero__overline,
body .nsca-ce-hero__overline,
body .nsca-mb-head__eyebrow,
body .nsca-ce-head__eyebrow,
body .nsca-stack-head__eyebrow,
body .nsca-ar__eyebrow,
body .nsca-eyebrow--rule,
body .nsca-eyebrow--gold {
	font-family: var(--nsca-font-body) !important;
	font-size: var(--nsca-fs-eyebrow) !important;
	font-weight: var(--nsca-fw-eyebrow) !important;
	line-height: 1.25 !important;
	letter-spacing: var(--nsca-ls-eyebrow) !important;
	text-transform: uppercase;
	color: var(--nsca-gold) !important;
}

@media (prefers-reduced-motion: reduce) {
	body .nsca-btn,
	body .button,
	body .elementor-button,
	body button.button,
	body input[type="button"],
	body input[type="submit"],
	body input[type="reset"],
	body .nsca-ce-card__cta,
	body .nsca-ce-bar-cta__link,
	body .nsca-ar-card__cta,
	body .nsca-ev-up__cta {
		scale: 1 !important;
		transition: none !important;
	}
}


/* =========================================================================
   2.19.30 — GLOBALNA TYPOGRAFIA WYPUNKTOWAŃ
   =========================================================================
   Treściowe listy NSCA mają wspólny rozmiar 14 px. Celowo nie obejmujemy
   list technicznych (menu, karuzele, siatki kart, nawigacja konta), żeby
   zmiana nie ingerowała w ich układ.
   ========================================================================= */
.nsca-ar-card__points li,
.nsca-ce-card__point,
.nsca-ce-syllabus__item,
.nsca-ev-checklist__item,
.nsca-mb-plan__feature,
.nsca-mb-perk,
.nsca-mb-cta__point-title,
.nsca-mb-cta__point-desc {
	font-size: var(--nsca-fs-list, 14px);
}

/* Numerowane/złote markery należą do tej samej warstwy treściowej. */
.nsca-ce-syllabus__item::before,
.nsca-mb-step::before {
	font-size: var(--nsca-fs-list, 14px);
}


/* =========================================================================
   2.19.35 — MOBILE: DUZE NAGLOWKI 38PX
   =========================================================================
   Industry jest szerszy optycznie od poprzedniego kroju, dlatego na telefonie
   glowne H1/H2 dostaja wspolny, czytelny rozmiar 38px. Nie dotykamy H3-H6 ani
   tytulow kart / produktow — zmiana dotyczy tylko glownych naglowkow stron i
   sekcji.
   ========================================================================= */
@media (max-width: 640px) {
	body h1,
	body h2,
	body .elementor h1.elementor-heading-title,
	body .elementor h2.elementor-heading-title,
	body .nsca-ev-hero__title,
	body .nsca-ev-heading,
	body .nsca-ev-promo__title,
	body .nsca-section__title,
	body .nsca-stack-head__title,
	body .nsca-ce-hero__title,
	body .nsca-ce-head__title,
	body .nsca-mb-hero__title,
	body .nsca-mb-head__title,
	body .nsca-tm-hero__title,
	body .nsca-ar__title {
		font-size: var(--nsca-mobile-heading-size) !important;
	}
}
