/* Industry Medium — nagłówki marki. Pliki hostowane na nsca.pl. */
@font-face {
	font-family: "Industry";
	src: url("//nsca.pl/wp-content/uploads/fonts/Industry-Medium.eot");
	src: url("//nsca.pl/wp-content/uploads/fonts/Industry-Medium.eot?#iefix") format("embedded-opentype"),
		url("//nsca.pl/wp-content/uploads/fonts/Industry-Medium.woff") format("woff"),
		url("//nsca.pl/wp-content/uploads/fonts/Industry-Medium.ttf") format("truetype");
	font-style: normal;
	font-weight: 500;
	font-display: block;
}

/* =========================================================================
   NSCA SHOP & EVENTS — TOKENY
   =========================================================================

   JEDYNY plik, w którym zmieniasz kolory, rozmiary i odstępy.
   Ładowany zawsze, gdy użyty jest dowolny shortcode wtyczki, przed
   shop.css i events.css.

   Rodziny fontów są również tokenami. Domyślny tekst nadal dziedziczy
   z motywu/Elementora, a nagłówki display mają osobny, łatwy do zmiany stos.

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

:root {

	/* --- KOLORY -------------------------------------------------------- */

	/* Kanoniczne zloto marki. Jedna wartosc dla tla przyciskow, ramek,
	   tekstow akcentowych i elementow dekoracyjnych. */
	--nsca-gold: rgb(202, 168, 73);
	--nsca-gold-text: rgb(202, 168, 73);
	--nsca-gold-on-dark: rgb(202, 168, 73);

	--nsca-black: #0A0A0A;
	--nsca-white: #FFFFFF;

	--nsca-text: #111111;        /* tekst podstawowy */
	--nsca-text-muted: #5F5F5F;  /* opisy, kontrast 6.4:1 na bieli */
	--nsca-label: #6B6B6B;       /* etykiety uppercase */

	--nsca-border: #E3E3E3;
	--nsca-border-strong: #111111;
	--nsca-surface: #F5F5F5;     /* tlo placeholderow */
	--nsca-placeholder: #1A1A1A; /* ciemne tlo miniatur */

	--nsca-success: #1F7A3D;
	--nsca-danger: #A32020;

	/* Warianty dla sekcji na ciemnym tle */
	--nsca-dark-bg: #0A0A0A;
	--nsca-dark-text: #FFFFFF;
	--nsca-dark-muted: #A8A8A8;
	--nsca-dark-border: #2A2A2A;

	/* --- TYPOGRAFIA ----------------------------------------------------- */

	/* Globalne stosy fontów. Zmieniaj tutaj, nie w plikach komponentów.
	   Fonty są ładowane raz przez loader zasobów; fallbacki zostają lokalne. */
	--nsca-font-body: "Inter", sans-serif;
	--nsca-font-heading: "Industry", "Bebas Neue", sans-serif;
	--nsca-font-display: "Bebas Neue", sans-serif;
	--nsca-font-ui: "Inter", sans-serif;
	--nsca-font-price: "Bebas Neue", sans-serif;
	--nsca-fw-heading: 700;
	--nsca-fw-display: 600;

	/* Globalny standard naglowkow H2 / naglowkow sekcji.
	   Desktop: 6em, tablet + mobile: 4em. Waga 600 jest celowo
	   trzymana w tokenie, zeby cala witryna byla sterowana z jednego miejsca. */
	--nsca-fs-h2: 6em;
	--nsca-mobile-heading-size: 38px;
	--nsca-fw-h2: var(--nsca-fw-heading);

	--nsca-fs-hero: 2.75rem;   /* 44px - tytul w hero */
	--nsca-fw-hero: var(--nsca-fw-display);

	--nsca-fs-card: 1.0625rem; /* 17px - tytul karty */
	--nsca-fs-card-sm: 0.9375rem;

	/* Sklep / koszyk / zamówienie — wspólna hierarchia produktu. */
	--nsca-product-title-size: 2em;
	--nsca-single-product-title-size: 2.5em;
	--nsca-order-product-title-size: 1.5em;
	--nsca-store-price-size: 16px;
	--nsca-store-table-cell-x: 18px;
	--nsca-store-panel-padding: 28px;
	--nsca-store-thumb-size: 110px;
	--nsca-store-thumb-mobile: 84px;
	--nsca-store-heading-weight: 500;
	--nsca-store-section-heading-size: 1.5rem;
	--nsca-store-checkout-cta-height: 56px;
	--nsca-store-cart-remove-clearance: 52px;
	--nsca-fw-card: 600;

	--nsca-fs-body: 14px;
	--nsca-fw-body: 400;

	--nsca-fs-eyebrow: 16px;
	--nsca-fs-menu: 14px;
	--nsca-fw-eyebrow: 700;
	--nsca-ls-eyebrow: 0.14em;

	--nsca-fs-btn: 14px;
	--nsca-fw-btn: 700;
	--nsca-ls-btn: 0.08em;

	--nsca-fs-price-lg: 2.75rem; /* 44px — hero / single */
	--nsca-fs-price-md: 1.5rem;
	--nsca-fs-price-sm: 1.125rem;
	--nsca-fw-price: 500;

	--nsca-fs-small: 14px;
	--nsca-fs-list: 14px; /* treść wypunktowań / numerowanych list */
	--nsca-ev-benefit-title-size: 18px;
	--nsca-ev-benefit-title-weight: 600;

	--nsca-lh-tight: 1.05;
	--nsca-lh-snug: 1.25;
	--nsca-lh-body: 1.6;

	/* --- SIATKA I ODSTEPY ----------------------------------------------- */

	--nsca-container: 1600px;
	--nsca-gutter: 24px;   /* margines boczny */
	--nsca-mobile-gutter: 20px;
	--nsca-gap: 24px;      /* odstep miedzy kaflami */

	--nsca-space-xs: 8px;
	--nsca-space-sm: 16px;
	--nsca-space-md: 24px;
	--nsca-space-lg: 40px;
	--nsca-space-xl: 64px;
	--nsca-space-2xl: 96px;

	/* --- KOMPONENTY ------------------------------------------------------ */

	--nsca-radius: 0;        /* projekt bez zaokraglen */

	/* Kadrowanie zdjec w karuzeli.
	   cover   = wypelnia kafel, przycina gore i dol (brak czarnych pasow)
	   contain = caly obrazek widoczny, wolna przestrzen wypelnia tlo */
	--nsca-card-fit: cover;
	--nsca-card-fit-pad: 0;
	--nsca-border-width: 1px;
	--nsca-btn-padding: 16px 28px;
	--nsca-btn-padding-sm: 10px 18px;

	/* Sklep: geometria komponentow z makiety. */
	--nsca-shop-carousel-card-w: calc((100% - var(--nsca-gap) - var(--nsca-gap)) / 3);
	--nsca-shop-book-media-ratio: 4 / 5;
	--nsca-shop-book-card-pad: 12px;
	--nsca-shop-card-body-space: 12px;
	--nsca-shop-card-footer-space: 12px;
	/* Sklep: rytm kart karuzeli i hero. Trzymane jako tokeny, żeby
	   kolejne korekty nie wymagały grzebania w komponencie. */
	--nsca-shop-carousel-footer-gap: 24px;
	--nsca-shop-featured-pad-x: 32px;
	--nsca-shop-featured-pad-y: 36px;
	--nsca-shop-featured-title-size: 2.5em;
	--nsca-shop-featured-price-size: 5.5rem; /* 88px — cena hero sklepu */
	--nsca-shop-featured-copy-shift: 10px; /* optyczne wyrownanie Inter do Bebas Neue */
	--nsca-shop-panel-top-space: 32px;
	--nsca-shop-toolbar-gap: 28px;

	/* Strona główna: responsywne karuzele naszych shortcode'ów. */
	--nsca-upcoming-carousel-gap: 16px;
	--nsca-upcoming-tablet-card: min(72vw, 520px);
	--nsca-upcoming-mobile-card: min(88vw, 420px);
	--nsca-gallery-carousel-gap: 10px;
	--nsca-gallery-tablet-card: calc((100% - var(--nsca-gallery-carousel-gap)) / 2);
	--nsca-gallery-mobile-card: 88%;
	--nsca-mb-cta-mobile-pad-y: 48px;

	/* Globalne mikrointerakcje CTA: lekki zoom bez naruszania lokalnych
	   zmian koloru/obramowania poszczegolnych komponentow. */
	--nsca-btn-hover-scale: 1.025;
	--nsca-btn-active-scale: 0.99;

	/* Strona glowna — rytm sekcji certyfikacji i galerii. */
	--nsca-home-cert-bar-title-size: 2rem;
	--nsca-home-event-title-size: 2.125rem; /* złoty tytuł karty wydarzenia: ~2x */
	--nsca-home-event-meta-size: 14px;
	--nsca-home-cert-logo-size: 144px; /* znak certyfikacji na stronie głównej: 2x */
	--nsca-home-cert-copy-size: 14px;
	--nsca-home-gallery-head-gap: 4em;
	--nsca-home-gallery-head-gap-mobile: 2em;

	--nsca-transition: 180ms ease;
	--nsca-focus-width: 2px;
	--nsca-focus-offset: 2px;
	--nsca-focus-color: var(--nsca-gold-text);

	/* --- WARSTWY INTERFEJSU --------------------------------------------
	   Jedno miejsce do strojenia kolejności elementów pływających.
	   Host menu jest niżej niż sam komponent, a dropdown najwyżej w menu. */
	--nsca-z-menu-host: 9000;
	--nsca-z-menu: 9010;
	--nsca-z-menu-dropdown: 9100;
	--nsca-z-toast: 9800;
	--nsca-z-floating-actions: 9700;

	/* Globalny komunikat po dodaniu produktu do koszyka. */
	--nsca-cart-toast-width: 420px;

	/* Plywajace konto / koszyk. */
	--nsca-floating-action-size: 50px;
	--nsca-floating-actions-gap: 8px;
	--nsca-floating-actions-offset: 20px;

	/* Zespół — typografia kart osób zgodna z mockupem. */
	--nsca-team-person-name-size: 2rem;
	--nsca-team-person-role-size: 11px;
	--nsca-team-person-role-gap: 8px;
}

/* --- WYDARZENIA ----------------------------------------------------------- */

:root {
	/* Tło bloków hero i sekcji ciemnych na stronach wydarzeń. */
	--nsca-ev-dark: #0A0A0A;
	--nsca-ev-surface: #F5F5F3;
	--nsca-ev-line: #E6E2D8;

	/* Oś czasu harmonogramu: kreska po lewej i znacznik pozycji. */
	--nsca-ev-rail: #E6E2D8;
	--nsca-ev-rail-active: var(--nsca-gold);

	/* Karty biletów. */
	--nsca-ev-card-border: #E3E3E3;
	--nsca-ev-card-featured: var(--nsca-gold);

	/* O ile wyróżniony kafel biletu wystaje ponad i poniżej pozostałych. */
	--nsca-ev-featured-lift: 36px;

	/* Szerokość osi godzin w harmonogramie. */
	--nsca-ev-time-col: 110px;

	/* Przyciemnienie zdjęcia w hero. 0 = czyste zdjęcie, 1 = czarny blok.
	   Podnieś, jeśli napis na zdjęciu będzie słabo czytelny. */
	--nsca-ev-scrim-top: 0.35;
	--nsca-ev-scrim-bottom: 0.7;

	/* Geometria sekcji konferencji. Wszystkie limity szerokości w jednym miejscu. */
	--nsca-ev-agenda-max: 980px;
	--nsca-ev-speakers-max: 1200px;
	--nsca-ev-partners-max: 1040px;
	--nsca-ev-promo-max: 860px;
	--nsca-ev-speaker-head-min: 240px;
	--nsca-ev-speaker-body-min: 210px;

	/* Subtelny cień kart z makiety konferencji. */
	--nsca-ev-card-shadow: 0 14px 30px rgba(10, 10, 10, 0.10);

	/* Członkostwo — rytm i typografia sekcji. Tła/full-width pozostają po stronie
	   layoutu Elementora; te tokeny sterują tylko wnętrzem komponentów. */
	--nsca-mb-hero-min: 640px;
	--nsca-mb-hero-tablet-min: 560px;
	--nsca-mb-hero-pad-top: 88px;
	--nsca-mb-hero-body-max: 620px;
	--nsca-mb-hero-title-size: clamp(3.25rem, 4.2vw, 4.5rem);
	--nsca-mb-head-size: clamp(2.5rem, 3.2vw, 3.25rem);
	--nsca-mb-head-gap: 48px;
	--nsca-mb-section-y: 112px;
	--nsca-mb-after-hero: 104px;
	--nsca-mb-stat-box-w: 150px;
	--nsca-mb-stat-box-h: 88px;
	--nsca-mb-plan-check-size: 18px;
	--nsca-mb-quote-avatar-size: 40px;
	--nsca-mb-quote-min: 220px;

	/* Certyfikacja — rytm i proporcje strony szczegółowej. Hero i sekcje
	   pozostają w strukturze Elementora; tokeny sterują wyłącznie wnętrzem. */
	--nsca-ce-hero-min: 620px;
	--nsca-ce-hero-pad-y: 88px;
	--nsca-ce-hero-title-size: clamp(4rem, 5vw, 5.5rem);
	--nsca-ce-head-size: clamp(2.75rem, 3.4vw, 4rem);
	--nsca-ce-section-y: 112px;
	--nsca-ce-exam-card-min: 300px;
	--nsca-ce-fees-pad-y: 112px;
	--nsca-ce-res-max: 980px;
	--nsca-ce-cta-max: 680px;
	--nsca-ce-req-title-size: 1.75rem;
	--nsca-ce-req-icon-box: 48px;
	--nsca-ce-req-icon-size: 28px;
	--nsca-ce-bar-icon-size: 16px;
	--nsca-ce-bar-border-width: 2px;
	--nsca-ce-bar-pad-y: 13px;
	--nsca-ce-fees-head-size: 18px;
	--nsca-ce-fees-cell-size: 16px;

	/* Archiwa CPT — wspolny shortcode [nsca_archive]. Elementor kontroluje
	   otoczenie sekcji, a te tokeny tylko geometrie komponentu listy. */
	--nsca-ar-max: 1180px;
	--nsca-ar-header-max: 820px;
	--nsca-ar-pad-y: 72px;
	--nsca-ar-pad-x: 0px;
	--nsca-ar-header-gap: 48px;
	--nsca-ar-filter-gap: 32px;
	--nsca-ar-card-gap: 20px;
	--nsca-ar-card-min: 286px;
	--nsca-ar-card-pad: 30px 36px 28px;
	--nsca-ar-media-col: 34%;
	--nsca-ar-title-size: clamp(3.75rem, 6vw, 5.5rem);
	--nsca-ar-card-title: clamp(2.25rem, 3.5vw, 3.25rem);
	--nsca-ar-pagination-gap: 48px;

	/* Warsztat — geometria względem osobnej makiety. Wszystkie wartości
	   pozostają tutaj, żeby strojenie nie wymagało szukania po events.css. */
	--nsca-ev-workshop-max: 1180px;
	--nsca-ev-workshop-agenda-max: 780px;
	--nsca-ev-workshop-speakers-max: 980px;
	--nsca-ev-workshop-cert-max: 980px;
	--nsca-ev-workshop-faq-max: 780px;
	--nsca-ev-workshop-section-y: 80px;

	/* Workshop: ciemny wariant sekcji „Co zyskasz?”. */
	--nsca-ev-workshop-benefits-bg: var(--nsca-ev-dark);
	--nsca-ev-workshop-benefit-card-bg: #111111;
	--nsca-ev-workshop-benefit-border: var(--nsca-dark-border);
	--nsca-ev-workshop-benefit-title: var(--nsca-white);
	--nsca-ev-workshop-benefit-text: var(--nsca-dark-muted);

	/* Hero warsztatu ma osobną geometrię od konferencji. Wartości są
	   dobrane do makiety 1440 px, ale płynnie skalują się na szerokim desktopie. */
	--nsca-ev-workshop-hero-padding-y: 40px;
	--nsca-ev-workshop-hero-body-col: clamp(500px, 34vw, 540px);
	--nsca-ev-workshop-hero-gap: clamp(44px, 4vw, 64px);
	--nsca-ev-workshop-hero-title-size: clamp(54px, 3.4vw, 64px);
	--nsca-ev-workshop-hero-media-min: 520px;
	--nsca-ev-workshop-hero-media-ratio: 4 / 3;
	--nsca-ev-workshop-hero-mobile-ratio: 4 / 3;
	--nsca-ev-workshop-hero-bg-size: contain;
	--nsca-ev-workshop-hero-bg-position: center center;
	--nsca-ev-faq-duration: 300ms;
	--nsca-mobile-section-y: 48px;
}

/* --- NADPISANIA RESPONSYWNE ------------------------------------------------
   Mniejsze odstępy na telefonie. Trzymane tu, przy resztcie tokenów,
   żeby nie trzeba było ich szukać po plikach komponentów. */

@media (max-width: 1024px) {
	:root {
		--nsca-single-product-title-size: 2.15em;
	}

	:root {
		--nsca-fs-h2: 4em;
		--nsca-shop-carousel-card-w: calc((100% - var(--nsca-gap)) / 2);
	}
}

@media (max-width: 640px) {
	:root {
		--nsca-fs-h2: var(--nsca-mobile-heading-size);
		--nsca-fs-hero: var(--nsca-mobile-heading-size);
		--nsca-mb-hero-title-size: var(--nsca-mobile-heading-size);
		--nsca-mb-head-size: var(--nsca-mobile-heading-size);
		--nsca-gutter: 18px;
		--nsca-mobile-gutter: 18px;
		--nsca-gap: 16px;
		--nsca-space-lg: 32px;
		--nsca-space-xl: 48px;
		--nsca-space-2xl: 56px;
		--nsca-fs-hero: 3rem;
		--nsca-shop-carousel-card-w: 86vw;
		--nsca-shop-panel-top-space: 24px;
		--nsca-ev-time-col: 76px;
		--nsca-mb-hero-min: 0px;
		--nsca-mb-hero-pad-top: 48px;
		--nsca-mb-hero-title-size: 3rem;
		--nsca-mb-head-size: 2.75rem;
		--nsca-mb-head-gap: 32px;
		--nsca-mb-section-y: 56px;
		--nsca-mb-after-hero: 48px;
		--nsca-mb-quote-min: 0px;
		--nsca-ce-hero-min: 0px;
		--nsca-ce-hero-pad-y: 48px;
		--nsca-ce-hero-title-size: clamp(3rem, 14vw, 4.25rem);
		--nsca-ce-head-size: clamp(2.4rem, 11vw, 3.25rem);
		--nsca-ce-section-y: 56px;
		--nsca-ce-exam-card-min: 0px;
		--nsca-ce-fees-pad-y: 64px;
		--nsca-ce-req-title-size: 1.55rem;
		--nsca-ce-req-icon-box: 44px;
		--nsca-ce-req-icon-size: 24px;
		--nsca-ar-pad-y: 44px;
		--nsca-ar-header-gap: 32px;
		--nsca-ar-card-gap: 16px;
		--nsca-ar-card-min: 0px;
		--nsca-ar-card-pad: 22px 20px 20px;
		--nsca-ar-title-mobile: clamp(3.1rem, 16vw, 4.2rem);
		--nsca-ar-pagination-gap: 32px;
		--nsca-team-person-name-size: 1.75rem;
		--nsca-team-person-role-size: 10px;
	}
}

/* --- TRYB WYSOKIEGO KONTRASTU ----------------------------------------------
   Systemowe ustawienie dostępności. Przyciemniamy szarości, wzmacniamy ramki. */

@media (prefers-contrast: more) {
	:root {
		--nsca-text-muted: #3A3A3A;
		--nsca-label: #3A3A3A;
		--nsca-border: #767676;
		--nsca-ev-line: #767676;
	}
}
