/* ============================================================================
   Central Serwis — style motywu
   Wszystkie wartości z prototypu (01-design-tokens.md). Bez frameworka, bez buildu.
   Spis: 1 tokeny · 2 reset i baza · 3 keyframes · 4 elementy współdzielone
         5 header i menu · 6 stopka · 7 strona główna · 8 hero podstron
         9 o firmie · 10 usługi · 11 podstrona usługi · 12 realizacje
         13 serwis · 14 kontakt · 15 granty · 16 formularze · 17 RWD
   ========================================================================== */

/* ---------------------------------------------------------------- 1 tokeny */
:root {
	/* Marka */
	--cs-navy: #0a1e3f;
	--cs-navy-deep: #081936;
	--cs-navy-mid: #0c264f;
	--cs-navy-blue: #1c4b8f;
	--cs-footer: #07142c;
	--cs-orange: #ff6a1a;
	--cs-orange-dark: #f45f00;
	--cs-orange-light: #ff7a1a;
	--cs-orange-300: #ff8a3d;
	--cs-orange-200: #ff9a5c;
	--cs-orange-alt: #f2721c;
	--cs-orange-alt-hover: #d95f0c;
	--cs-link-hover: #e25406;

	/* Tekst */
	--cs-ink: #0f1b30;
	--cs-heading: #0a1e3f;
	--cs-heading-alt: #14243d;
	--cs-body: #5b6b82;
	--cs-body-alt: #4a5568;
	--cs-body-strong: #26344b;
	--cs-chip: #33455f;
	--cs-muted: #8a97ab;
	--cs-muted-2: #8494a9;
	--cs-muted-3: #9fadc1;
	--cs-footer-text: rgba(255, 255, 255, .72);
	--cs-footer-dim: #6b7c96;

	/* Tła */
	--cs-bg: #fff;
	--cs-bg-values: #f6f8fb;
	--cs-bg-usl: #f7f9fc;
	--cs-bg-qual: #f8fafc;
	--cs-bg-granty: #f6f6f4;
	--cs-bg-icon-usl: #fff3ea;
	--cs-bg-awaria: #fff8f3;
	--cs-bg-chip: #fbfcfe;

	/* Obrysy */
	--cs-line: #eef1f6;
	--cs-line-2: #e7ecf3;
	--cs-line-3: #e6ebf3;
	--cs-line-input: #dbe2ec;
	--cs-line-4: #dde4ee;
	--cs-line-5: #d8e0ec;
	--cs-line-orange: #ffd9bf;
	--cs-line-orange-2: #ffd9c2;

	/* Sukces */
	--cs-ok-bg: #eef8f0;
	--cs-ok-line: #c9e8d1;
	--cs-ok-text: #1c6b34;

	/* Gradienty */
	--cs-grad-cta: linear-gradient(135deg, #ff7a1a, #f45f00);
	--cs-grad-icon: linear-gradient(145deg, #0a1e3f, #1c4b8f);
	--cs-grad-dark: linear-gradient(160deg, #081936, #0c264f);

	/* Cienie */
	--cs-sh-card: 0 24px 48px -24px rgba(10, 30, 63, .35);
	--cs-sh-usl: 0 22px 40px -26px rgba(10, 30, 63, .55);
	--cs-sh-cta: 0 16px 34px -12px rgba(244, 95, 0, .9);
	--cs-sh-cta-head: 0 10px 24px -10px rgba(244, 95, 0, .8);
	--cs-sh-mega: 0 40px 80px -30px rgba(5, 14, 32, .8);
	--cs-sh-form: 0 30px 60px -36px rgba(10, 30, 63, .35);
	--cs-sh-form-awaria: 0 24px 50px -34px rgba(244, 95, 0, .5);

	/* Typografia */
	--cs-sans: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--cs-head: 'Sora', var(--cs-sans);
	--cs-mono: 'DM Mono', ui-monospace, SFMono-Regular, monospace;

	/* Układ */
	--cs-max: 1280px;
	--cs-gutter: 28px;
	--cs-header-h: 82px;
}

/* -------------------------------------------------------- 2 reset i baza */
*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--cs-sans);
	color: var(--cs-ink);
	background: var(--cs-bg);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

h1, h2, h3, h4 {
	font-family: var(--cs-head);
	margin: 0;
	line-height: 1.08;
	letter-spacing: -.02em;
}

p { margin: 0; line-height: 1.65; }

ul, ol { margin: 0; padding: 0; list-style: none; }

img { max-width: 100%; height: auto; }

a { color: var(--cs-orange); text-decoration: none; }
a:hover { color: var(--cs-link-hover); }

a, button {
	transition: transform .2s ease, box-shadow .22s ease, filter .2s ease,
		background .2s ease, color .2s ease, border-color .2s ease;
}
a:hover, button:hover { transform: translateY(-2px); filter: brightness(1.05); }
a:active, button:active { transform: translateY(0); }

::selection { background: var(--cs-orange); color: #fff; }

:focus-visible {
	outline: 2px solid var(--cs-orange-200);
	outline-offset: 2px;
}

button { font: inherit; color: inherit; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.cs-skip {
	position: absolute;
	left: -9999px;
	z-index: 200;
	padding: 12px 18px;
	background: #fff;
	color: var(--cs-navy);
	font-weight: 700;
	border-radius: 0 0 11px 0;
}
.cs-skip:focus { left: 0; top: 0; }

.is-hidden { display: none !important; }

.cs-shell { min-height: 100vh; display: flex; flex-direction: column; }
.cs-main { flex: 1; }

/* -------------------------------------------------------------- 3 keyframes */
@keyframes kb {
	0%   { transform: scale(1) translate(0, 0); }
	100% { transform: scale(1.14) translate(-2%, -1%); }
}
@keyframes fadeUp {
	0%   { opacity: 0; transform: translateY(24px); }
	100% { opacity: 1; transform: translateY(0); }
}
@keyframes slideInL {
	0%   { opacity: 0; transform: translateX(-56px); }
	100% { opacity: 1; transform: translateX(0); }
}
@keyframes slideInR {
	0%   { opacity: 0; transform: translateX(56px); }
	100% { opacity: 1; transform: translateX(0); }
}
@keyframes pulseCta {
	0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(244, 95, 0, .28); }
	50%      { transform: scale(1.012); box-shadow: 0 0 0 5px rgba(244, 95, 0, 0); }
}
@keyframes pulseCtaLine {
	0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(10, 30, 63, .16); }
	50%      { transform: scale(1.012); box-shadow: 0 0 0 4px rgba(10, 30, 63, 0); }
}
@keyframes dotPing {
	0%            { box-shadow: 0 0 0 0 rgba(255, 255, 255, .6); }
	7%            { box-shadow: 0 0 0 7px rgba(255, 255, 255, 0); }
	10%, 10.001%  { box-shadow: 0 0 0 0 rgba(255, 255, 255, .6); }
	17%           { box-shadow: 0 0 0 7px rgba(255, 255, 255, 0); }
	20%, 20.001%  { box-shadow: 0 0 0 0 rgba(255, 255, 255, .6); }
	27%           { box-shadow: 0 0 0 7px rgba(255, 255, 255, 0); }
	30%, 100%     { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); }
}
@keyframes badgePulse {
	0%            { box-shadow: 0 0 0 0 rgba(255, 106, 26, .55); }
	7%            { box-shadow: 0 0 0 10px rgba(255, 106, 26, 0); }
	10%, 10.001%  { box-shadow: 0 0 0 0 rgba(255, 106, 26, .55); }
	17%           { box-shadow: 0 0 0 10px rgba(255, 106, 26, 0); }
	20%, 20.001%  { box-shadow: 0 0 0 0 rgba(255, 106, 26, .55); }
	27%           { box-shadow: 0 0 0 10px rgba(255, 106, 26, 0); }
	30%, 100%     { box-shadow: 0 0 0 0 rgba(255, 106, 26, 0); }
}

/* ------------------------------------------- 4 elementy współdzielone */
.cs-wrap,
.cs-trust__grid,
.cs-services,
.cs-why__grid,
.cs-brands,
.cs-ctaband,
.cs-hero__inner,
.cs-hero-sub__inner,
.cs-uhero__inner,
.cs-history__grid,
.cs-values__inner,
.cs-statcard,
.cs-usllist,
.cs-darkcta,
.cs-uintro__grid,
.cs-uscope__inner,
.cs-ucomp,
.cs-uwhy__inner,
.cs-usteps,
.cs-uothers,
.cs-usplit__inner,
.cs-realcats,
.cs-realgrid,
.cs-realsingle__inner,
.cs-sopis__grid,
.cs-squals__grid,
.cs-sproces__inner,
.cs-smarki__grid,
.cs-sforms__grid,
.cs-kontakt__grid,
.cs-oze__grid,
.cs-granty__grid,
.cs-footer__grid,
.cs-page__inner {
	max-width: var(--cs-max);
	margin-left: auto;
	margin-right: auto;
}

/* Nadnagłówek (kicker) */
.cs-kicker {
	color: var(--cs-orange);
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	font-size: 13px;
}

/* Breadcrumb / etykieta DM Mono */
.cs-crumb {
	font-family: var(--cs-mono);
	font-size: 12px;
	letter-spacing: .14em;
	color: var(--cs-orange-200);
	text-transform: uppercase;
}
.cs-crumb--center { text-align: center; }
.cs-crumb a { color: var(--cs-orange-200); }
.cs-crumb a:hover { color: #ffc9a5; }
.cs-crumb__sep { opacity: .5; margin: 0 6px; }

/* Nagłówki sekcji */
.cs-h2 {
	font-family: var(--cs-head);
	font-size: clamp(24px, 2.6vw, 32px);
	font-weight: 800;
	color: var(--cs-heading);
}
.cs-h2--sm { font-size: clamp(22px, 2.4vw, 28px); }
.cs-h2--center { text-align: center; }
.cs-h2--light { color: #fff; }

.cs-sechead__title {
	font-size: clamp(28px, 3.6vw, 44px);
	margin-top: 14px;
	color: var(--cs-heading);
}
.cs-sechead__lead {
	color: var(--cs-body);
	margin-top: 18px;
	font-size: 17px;
}
.cs-sechead--center {
	text-align: center;
	max-width: 680px;
	margin: 0 auto 56px;
}
.cs-sechead--dark .cs-kicker { color: #ff8a4d; }
.cs-sechead--dark .cs-sechead__title {
	color: #fff;
	font-size: clamp(28px, 3.4vw, 42px);
}
.cs-sechead--dark .cs-sechead__lead {
	color: rgba(255, 255, 255, .72);
	font-size: 16.5px;
}

/* Przyciski */
.cs-btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 16px 28px;
	border: none;
	border-radius: 12px;
	font-family: var(--cs-sans);
	font-weight: 700;
	font-size: 16px;
	cursor: pointer;
	text-align: center;
}
.cs-btn--grad {
	background: var(--cs-grad-cta);
	color: #fff;
	box-shadow: var(--cs-sh-cta);
}
.cs-btn--grad:hover { color: #fff; transform: translateY(-2px); }
.cs-btn--glass {
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(255, 255, 255, .3);
	color: #fff;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}
.cs-btn--glass:hover { background: rgba(255, 255, 255, .16); color: #fff; }
.cs-btn--outline {
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(255, 255, 255, .28);
	color: #fff;
}
.cs-btn--outline:hover { background: rgba(255, 255, 255, .16); color: #fff; }
.cs-btn--navy { background: var(--cs-navy); color: #fff; }
.cs-btn--navy:hover { color: #fff; }
.cs-btn--white-orange { background: #fff; color: var(--cs-orange-dark); }
.cs-btn--white-navy { background: #fff; color: var(--cs-navy); }
.cs-btn--full { display: flex; justify-content: center; width: 100%; }

/* Pastylka (Granty — zaznacz/wyczyść) */
.cs-pill {
	font-family: var(--cs-mono);
	font-size: 11.5px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--cs-muted-2);
	background: transparent;
	border: 1px solid var(--cs-line);
	padding: 8px 14px;
	border-radius: 20px;
	cursor: pointer;
}
.cs-pill:hover { color: var(--cs-navy); border-color: var(--cs-line-4); }
.cs-pill--dark { color: var(--cs-navy); border-color: var(--cs-line-4); }
.cs-pill--dark:hover { border-color: var(--cs-navy); }

/* Karta ogólna */
.cs-card {
	display: block;
	border: 1px solid var(--cs-line);
	border-radius: 18px;
	padding: 30px;
	background: #fff;
	color: inherit;
	transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
a.cs-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--cs-sh-card);
	border-color: #dfe6f0;
	color: inherit;
}
.cs-card--flat { transition: none; }
.cs-card--soft { background: var(--cs-bg-qual); }
.cs-card__icon {
	width: 54px;
	height: 54px;
	border-radius: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 24px;
	color: #fff;
	margin-bottom: 20px;
}
.cs-card__icon--navy { background: var(--cs-grad-icon); }
.cs-card__icon--orange {
	background: rgba(255, 106, 26, .12);
	color: var(--cs-orange-dark);
	width: 52px; height: 52px;
	border-radius: 13px;
	font-size: 22px;
	margin-bottom: 18px;
}
.cs-card__icon--sm {
	width: 50px; height: 50px;
	border-radius: 13px;
	font-size: 22px;
	margin-bottom: 18px;
}
.cs-card__title { font-size: 20px; color: var(--cs-heading); }
.cs-card__title--sm { font-size: 19px; }
.cs-card__desc { color: var(--cs-body); margin-top: 12px; font-size: 15px; }
.cs-card--flat .cs-card__desc,
.cs-card--soft .cs-card__desc { margin-top: 10px; }

/* Chip */
.cs-chip {
	padding: 11px 20px;
	border: 1px solid var(--cs-line-2);
	border-radius: 11px;
	font-family: var(--cs-head);
	font-weight: 700;
	color: var(--cs-chip);
	background: var(--cs-bg-chip);
}

/* Plakietka */
.cs-badge {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	color: #fff;
	font-weight: 700;
	padding: 8px 16px;
	border-radius: 24px;
	font-size: 13.5px;
}
.cs-badge--orange { background: var(--cs-orange); }
.cs-badge--orange.is-pulsing { animation: badgePulse 5s ease-out infinite; }
.cs-badge--navy { background: var(--cs-navy); }

/* Treść z edytora */
.cs-prose p {
	color: var(--cs-body);
	font-size: 16.5px;
	line-height: 1.65;
	margin-top: 18px;
}
.cs-prose p:first-child { margin-top: 18px; }
.cs-prose p + p { margin-top: 14px; }
.cs-prose ul, .cs-prose ol { margin: 18px 0 0 22px; color: var(--cs-body); }
.cs-prose ul { list-style: disc; }
.cs-prose ol { list-style: decimal; }
.cs-prose li { margin-top: 8px; line-height: 1.65; }
.cs-prose h2, .cs-prose h3 { margin-top: 32px; color: var(--cs-heading); }

/* Paginacja */
.cs-pag {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin-top: 48px;
}
.cs-pag a,
.cs-pag .current {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 46px;
	height: 46px;
	padding: 0 14px;
	border: 1px solid var(--cs-line-2);
	border-radius: 12px;
	background: #fff;
	color: var(--cs-navy);
	font-weight: 700;
}
.cs-pag a:hover {
	border-color: #d4dbe6;
	box-shadow: 0 12px 26px -18px rgba(10, 30, 63, .35);
	color: var(--cs-navy);
}
.cs-pag .current {
	background: var(--cs-orange);
	border-color: var(--cs-orange);
	color: #fff;
}

/* Strony ogólne */
.cs-page { padding: 74px var(--cs-gutter); }
.cs-page__inner { max-width: 860px; }
.cs-page__actions { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 26px; }
.cs-page__empty { color: var(--cs-body); font-size: 16.5px; }
.cs-arch__item { padding: 24px 0; border-bottom: 1px solid var(--cs-line); }
.cs-arch__title { font-size: 22px; }
.cs-arch__title a { color: var(--cs-heading); }
.cs-arch__title a:hover { color: var(--cs-orange); }
.cs-arch__excerpt { color: var(--cs-body); margin-top: 8px; }

/* Wyszukiwanie */
.cs-search { display: flex; gap: 10px; max-width: 520px; }
.cs-search input {
	flex: 1;
	padding: 14px 16px;
	border: 1px solid var(--cs-line-input);
	border-radius: 11px;
	font-family: inherit;
	font-size: 15px;
}
.cs-search__btn {
	padding: 0 20px;
	background: var(--cs-grad-cta);
	color: #fff;
	border: none;
	border-radius: 11px;
	cursor: pointer;
}

/* ------------------------------------------------------- 5 header i menu */
.cs-header {
	position: sticky;
	top: 0;
	z-index: 60;
	background: linear-gradient(180deg, rgba(20, 46, 92, .78), rgba(8, 22, 48, .72));
	-webkit-backdrop-filter: blur(26px) saturate(180%);
	backdrop-filter: blur(26px) saturate(180%);
	will-change: backdrop-filter;
	border-bottom: 1px solid rgba(255, 255, 255, .14);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, .22),
		inset 0 -1px 0 rgba(255, 255, 255, .06),
		0 18px 40px -28px rgba(4, 12, 28, .9);
}

/* Fallback bez backdrop-filter */
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
	.cs-header { background: rgba(10, 30, 63, .92); }
}

.cs-header__glow {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		radial-gradient(120% 90% at 12% -30%, rgba(255, 255, 255, .14), transparent 55%),
		radial-gradient(90% 80% at 88% -20%, rgba(255, 138, 61, .16), transparent 60%);
}
.cs-header__line {
	position: absolute;
	left: 0; right: 0; bottom: -1px;
	height: 1px;
	pointer-events: none;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .35), transparent);
}

.cs-header__inner {
	position: relative;
	max-width: var(--cs-max);
	margin: 0 auto;
	padding: 0 var(--cs-gutter);
	height: var(--cs-header-h);
	display: flex;
	align-items: center;
	gap: 24px;
}

.cs-logo { display: flex; align-items: center; color: inherit; }
.cs-logo:hover { transform: none; }
.cs-logo__img,
.cs-logo .custom-logo {
	height: 32px;
	width: auto;
	display: block;
}

.cs-nav-desktop {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 4px;
}

.cs-nav { display: flex; align-items: center; gap: 4px; }

.cs-nav__item { position: relative; display: flex; align-items: center; }

.cs-nav__link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 10px 15px;
	font-weight: 600;
	font-size: 15px;
	color: #fff;
	border-radius: 9px;
}
.cs-nav__link:hover,
.cs-nav__item:hover > .cs-nav__link,
.cs-nav__item:focus-within > .cs-nav__link {
	background: rgba(255, 255, 255, .16);
	color: #fff;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3);
	transform: none;
}
.cs-nav__dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--cs-orange);
	flex: none;
}
.cs-nav__arrow { font-size: 10px; opacity: .9; }

.cs-nav__toggle {
	display: inline-flex;
	align-items: center;
	background: none;
	border: none;
	color: #fff;
	padding: 10px 8px 10px 0;
	margin-left: -8px;
	cursor: pointer;
}
.cs-nav__toggle:hover { transform: none; }

/* Prosty dropdown (pozycja bez mega-menu) */
.cs-drop {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	min-width: 230px;
	background: #fff;
	border: 1px solid var(--cs-line);
	border-radius: 14px;
	padding: 8px;
	box-shadow: 0 24px 48px -20px rgba(10, 30, 63, .28);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: all .22s ease;
	z-index: 70;
}
.cs-nav__item--drop:hover > .cs-drop,
.cs-nav__item--drop:focus-within > .cs-drop {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
.cs-drop__link {
	display: block;
	padding: 10px 12px;
	border-radius: 10px;
	color: var(--cs-navy);
	font-weight: 600;
	font-size: 15px;
}
.cs-drop__link:hover { background: var(--cs-bg-values); color: var(--cs-navy); transform: none; }

/* Mega-menu — panel wyśrodkowany względem okna (celowo, jak w projekcie) */
.cs-mega {
	position: fixed;
	top: 90px;
	left: 50%;
	width: min(760px, calc(100vw - 56px));
	margin-left: calc(min(760px, 100vw - 56px) / -2);
	background: linear-gradient(170deg, #10243f, #0b1b32);
	border-radius: 18px;
	border: 1px solid rgba(255, 255, 255, .09);
	box-shadow: var(--cs-sh-mega);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-8px);
	transition: opacity .2s ease, transform .2s ease, visibility .2s;
	z-index: 80;
}
.cs-nav__item--mega.is-open > .cs-mega {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.cs-mega__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
	padding: 26px 26px 22px;
}
.cs-mega__col { display: flex; flex-direction: column; gap: 4px; }
.cs-mega__coltitle {
	display: flex;
	align-items: center;
	gap: 8px;
	font-family: var(--cs-mono);
	font-size: 11.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--cs-orange-200);
	padding: 0 10px 10px;
}
.cs-mega__link {
	display: flex;
	align-items: center;
	gap: 13px;
	padding: 10px;
	border-radius: 12px;
	color: #eaf0fa;
	font-size: 15.5px;
	font-weight: 600;
}
.cs-mega__link:hover {
	background: rgba(255, 255, 255, .07);
	color: #fff;
	transform: none;
}
.cs-mega__link--desc { align-items: flex-start; padding: 11px; }
.cs-mega__icon {
	width: 38px;
	height: 38px;
	flex: none;
	border-radius: 11px;
	background: rgba(255, 255, 255, .92);
	color: var(--cs-orange);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 15px;
}
.cs-mega__text { display: block; }
.cs-mega__desc {
	display: block;
	font-weight: 400;
	font-size: 13px;
	color: rgba(255, 255, 255, .6);
	margin-top: 3px;
}
.cs-mega__footer {
	border-top: 1px solid rgba(255, 255, 255, .1);
	padding: 16px;
	display: flex;
	justify-content: center;
}
.cs-mega__all {
	font-family: var(--cs-mono);
	font-size: 12px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--cs-orange-300);
	display: inline-flex;
	align-items: center;
	gap: 9px;
}
.cs-mega__all:hover { color: #ffb27a; }

/* CTA „Zgłoś awarię” */
.cs-cta-awaria {
	margin-left: 10px;
	padding: 12px 20px;
	background: var(--cs-grad-cta);
	color: #fff;
	font-weight: 700;
	font-size: 14.5px;
	border-radius: 11px;
	display: flex;
	align-items: center;
	gap: 8px;
	box-shadow: var(--cs-sh-cta-head);
}
.cs-cta-awaria:hover {
	color: #fff;
	transform: translateY(-2px);
	box-shadow: 0 16px 30px -10px rgba(244, 95, 0, .9);
}
.cs-cta-awaria__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #fff;
	flex: none;
}
.cs-cta-awaria__dot.is-pulsing { animation: dotPing 7s ease-out infinite; }

/* Hamburger */
.cs-nav-toggle {
	display: none;
	margin-left: auto;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	background: rgba(255, 255, 255, .14);
	border: 1px solid rgba(255, 255, 255, .22);
	color: #fff;
	border-radius: 11px;
	font-size: 20px;
	cursor: pointer;
}

/* Menu mobilne */
.cs-mnav {
	display: none;
	flex-direction: column;
	padding: 12px var(--cs-gutter) 24px;
	border-top: 1px solid var(--cs-line);
	background: #fff;
	position: relative;
	z-index: 65;
	max-height: calc(100vh - var(--cs-header-h));
	overflow-y: auto;
}
.cs-mnav.is-open { display: flex; }
.cs-mnav__link {
	color: var(--cs-navy);
	border-bottom: 1px solid var(--cs-line);
}
.cs-mnav__link--l0 { padding: 14px 8px; font-weight: 600; }
.cs-mnav__link--l1,
.cs-mnav__link--l2 {
	padding: 10px 8px 10px 22px;
	font-size: 14px;
	color: var(--cs-body);
	border-bottom: none;
}
.cs-mnav__link--l1::before,
.cs-mnav__link--l2::before { content: '— '; }
.cs-mnav__link.is-current { color: var(--cs-orange); }
.cs-mnav__link:hover { transform: none; }
.cs-mnav__cta {
	margin-top: 14px;
	padding: 15px;
	text-align: center;
	background: var(--cs-grad-cta);
	color: #fff;
	font-weight: 700;
	border-radius: 11px;
}
.cs-mnav__cta:hover { color: #fff; }

body.cs-mnav-open { overflow: hidden; }

/* ------------------------------------------------------------- 6 stopka */
.cs-footer {
	background: var(--cs-footer);
	color: var(--cs-footer-text);
}
.cs-footer__grid {
	padding: 64px var(--cs-gutter) 0;
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
	gap: 40px;
}
.cs-footer__logo { height: 30px; width: auto; display: block; }
.cs-footer__desc {
	margin-top: 18px;
	font-size: 12.5px;
	max-width: 300px;
	color: rgba(107, 124, 150, .72);
	font-style: italic;
}
.cs-footer__title {
	color: #fff;
	font-family: var(--cs-head);
	font-weight: 700;
	font-size: 15px;
	margin: 0 0 16px;
}
.cs-footer__links,
.cs-footer__contact {
	display: flex;
	flex-direction: column;
	gap: 11px;
	font-size: 14.5px;
}
.cs-footer__links a,
.cs-footer__contact a,
.cs-footer__contact li {
	color: var(--cs-footer-text);
}
.cs-footer__links a:hover,
.cs-footer__contact a:hover { color: var(--cs-orange); }
.cs-footer__ico { width: 18px; color: var(--cs-orange); }

.cs-footer__bar {
	position: relative;
	max-width: var(--cs-max);
	margin: 40px auto 0;
	padding: 22px var(--cs-gutter);
	border-top: 1px solid rgba(255, 255, 255, .1);
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: center;
	justify-content: center;
}
.cs-footer__copy {
	font-size: 13px;
	color: var(--cs-footer-dim);
	text-align: center;
	flex: 1 1 auto;
}
.cs-footer__social {
	position: absolute;
	right: var(--cs-gutter);
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	gap: 12px;
}
.cs-footer__soc {
	width: 40px;
	height: 40px;
	border-radius: 10px;
	background: rgba(255, 255, 255, .08);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-weight: 700;
}
.cs-footer__soc:hover { background: var(--cs-orange); color: #fff; }
.cs-footer__tail { height: 22px; }

/* ------------------------------------------------------- 7 strona główna */
/* Hero ze sliderem */
.cs-hero {
	position: relative;
	height: min(78vh, 720px);
	min-height: 540px;
	overflow: hidden;
	background: var(--cs-navy);
}
.cs-hero__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	z-index: 1;
	transition: opacity 1.6s ease;
}
.cs-hero__slide.is-active { opacity: 1; z-index: 2; }
.cs-hero__bg {
	position: absolute;
	inset: 0;
	background-color: var(--cs-navy);
	background-size: cover;
	background-position: center;
	filter: brightness(1.4);
	animation: kb 14s ease-out infinite alternate;
	transform: translateZ(0);
}
.cs-hero--static .cs-hero__bg { animation: none; }
.cs-hero__tint {
	position: absolute;
	inset: 0;
	background: linear-gradient(100deg,
		rgba(6, 17, 38, .92) 0%,
		rgba(8, 25, 55, .78) 42%,
		rgba(8, 25, 55, .35) 100%);
}
.cs-hero__tag {
	position: absolute;
	right: 26px;
	bottom: 20px;
	font-family: var(--cs-mono);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .5);
	border: 1px solid rgba(255, 255, 255, .22);
	padding: 6px 12px;
	border-radius: 20px;
}
.cs-hero__inner {
	position: relative;
	z-index: 5;
	padding: 0 var(--cs-gutter);
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.cs-hero__content { max-width: 760px; }
.cs-hero__title {
	color: #fff;
	font-size: clamp(34px, 5.2vw, 60px);
	font-weight: 800;
}
.cs-hero__lead {
	color: rgba(255, 255, 255, .82);
	font-size: clamp(16px, 1.8vw, 20px);
	margin-top: 22px;
	max-width: 620px;
}
.cs-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 34px;
}
.cs-hero__dots {
	position: absolute;
	z-index: 6;
	left: 0; right: 0;
	bottom: 26px;
	display: flex;
	justify-content: center;
	gap: 10px;
}
.cs-hero__dot {
	width: 10px;
	height: 10px;
	border: none;
	border-radius: 20px;
	background: rgba(255, 255, 255, .45);
	cursor: pointer;
	padding: 0;
	transition: all .4s ease;
}
.cs-hero__dot.is-active { width: 30px; background: var(--cs-orange); }
.cs-hero__dot:hover { transform: none; }

/* Pasek zaufania */
.cs-trust {
	background: var(--cs-navy);
	border-top: 1px solid rgba(255, 255, 255, .08);
}
.cs-trust__grid {
	padding: 26px var(--cs-gutter);
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}
.cs-trust__item { text-align: center; }
.cs-trust__num {
	font-family: var(--cs-head);
	font-weight: 800;
	font-size: clamp(26px, 3vw, 38px);
	color: #fff;
}
.cs-trust__label {
	font-size: 13.5px;
	color: rgba(255, 255, 255, .6);
	margin-top: 4px;
	letter-spacing: .02em;
}

/* Zakres usług */
.cs-services { padding: 96px var(--cs-gutter); }
.cs-services__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
}

/* Dlaczego my */
.cs-why { background: linear-gradient(160deg, #081936, #0a1e3f 55%, #0c264f); }
.cs-why__grid {
	padding: 90px var(--cs-gutter);
	display: grid;
	grid-template-columns: 1.05fr 1fr;
	gap: 64px;
	align-items: center;
}
.cs-why__list { display: grid; gap: 16px; margin-top: 30px; }
.cs-why__item { display: flex; gap: 14px; align-items: flex-start; }
.cs-why__check {
	flex: none;
	width: 26px;
	height: 26px;
	border-radius: 8px;
	background: rgba(255, 106, 26, .2);
	color: var(--cs-orange-200);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 14px;
}
.cs-why__item > span:last-child {
	color: rgba(255, 255, 255, .88);
	font-size: 16px;
	font-weight: 500;
}
.cs-why__cta { margin-top: 34px; padding: 15px 26px; }
.cs-why__media {
	position: relative;
	border-radius: 22px;
	overflow: hidden;
	aspect-ratio: 4 / 5;
	box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .6);
	background: var(--cs-navy-deep);
}
.cs-why__img {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	animation: kb 18s ease-out infinite alternate;
	transform: translateZ(0);
}
.cs-why__shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 50%, rgba(8, 20, 45, .6));
}

/* Marki */
.cs-brands { padding: 70px var(--cs-gutter); }
.cs-brands__title {
	text-align: center;
	color: var(--cs-muted);
	font-family: var(--cs-sans);
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	font-size: 12.5px;
	margin: 0 0 30px;
	line-height: 1.5;
}
.cs-brands__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 14px;
}
.cs-brands__tile {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 74px;
	width: 150px;
	padding: 16px 22px;
	border: 1px solid var(--cs-line-2);
	border-radius: 12px;
	background: #fff;
}
.cs-brands__tile:hover {
	border-color: #d4dbe6;
	box-shadow: 0 12px 26px -18px rgba(10, 30, 63, .35);
}
.cs-brands__logo {
	max-height: 100%;
	max-width: 100%;
	width: auto;
	object-fit: contain;
}
.cs-brands__text {
	font-family: var(--cs-head);
	font-weight: 800;
	letter-spacing: .04em;
	color: var(--cs-muted);
	font-size: 19px;
	transition: color .25s;
}
.cs-brands__tile:hover .cs-brands__text { color: var(--cs-navy); }
.cs-brands__text--blue { color: #00529b; }
.cs-brands__tile:hover .cs-brands__text--blue { color: #003b70; }

/* Pasek CTA */
.cs-ctaband { margin: 0 auto 96px; padding: 0 var(--cs-gutter); }
.cs-ctaband__card {
	position: relative;
	border-radius: 26px;
	overflow: hidden;
	background: linear-gradient(120deg, #f45f00, #ff8a3d);
	padding: 56px;
	display: flex;
	flex-wrap: wrap;
	gap: 28px;
	align-items: center;
	justify-content: space-between;
	box-shadow: 0 30px 60px -30px rgba(244, 95, 0, .6);
}
.cs-ctaband__circle {
	position: absolute;
	right: -40px;
	top: -40px;
	width: 260px;
	height: 260px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .12);
}
.cs-ctaband__text { position: relative; max-width: 640px; }
.cs-ctaband__title { color: #fff; font-size: clamp(26px, 3vw, 38px); }
.cs-ctaband__lead {
	color: rgba(255, 255, 255, .92);
	margin-top: 14px;
	font-size: 17px;
}
.cs-ctaband__actions {
	position: relative;
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
}

/* ------------------------------------------------- 8 hero podstron */
.cs-hero-sub {
	position: relative;
	padding: 88px var(--cs-gutter) 78px;
	background: var(--cs-navy);
	overflow: hidden;
}
.cs-hero-sub__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	animation: kb 22s ease-out infinite alternate;
	transform: translateZ(0);
}
.cs-hero-sub__tint,
.cs-hero-sub__shade,
.cs-hero-sub__accent { position: absolute; inset: 0; }
.cs-hero-sub__shade { background: #061024; }
.cs-hero-sub__inner { position: relative; }
.cs-hero-sub__title {
	color: #fff;
	font-size: clamp(32px, 4.4vw, 52px);
	margin-top: 16px;
	max-width: 860px;
}
.cs-hero-sub__lead {
	color: rgba(255, 255, 255, .8);
	font-size: 18px;
	margin-top: 18px;
	max-width: 720px;
}

/* Warianty warstw — wartości dokładnie z prototypu */
.cs-hero-sub--o-firmie .cs-hero-sub__bg { opacity: .35; animation-duration: 20s; }
.cs-hero-sub--o-firmie .cs-hero-sub__tint {
	background: linear-gradient(120deg, rgba(8, 20, 45, .26), rgba(8, 25, 55, .2));
}

.cs-hero-sub--granty .cs-hero-sub__bg { opacity: .82; }
.cs-hero-sub--granty .cs-hero-sub__tint {
	background: linear-gradient(120deg, rgba(8, 20, 45, .25), rgba(8, 25, 55, .11));
}
.cs-hero-sub--granty .cs-hero-sub__accent {
	background: radial-gradient(1000px 500px at 80% -10%, rgba(255, 106, 26, .22), transparent);
}

.cs-hero-sub--realizacje .cs-hero-sub__bg { opacity: .32; }
.cs-hero-sub--realizacje .cs-hero-sub__tint {
	background: linear-gradient(120deg, rgba(8, 20, 45, .25), rgba(8, 25, 55, .19));
}
.cs-hero-sub--realizacje .cs-hero-sub__accent {
	background: radial-gradient(1000px 500px at 20% -10%, rgba(28, 75, 143, .6), transparent);
}

.cs-hero-sub--uslugi .cs-hero-sub__bg { opacity: .3; }
.cs-hero-sub--uslugi .cs-hero-sub__tint {
	background: linear-gradient(120deg, rgba(8, 20, 45, .5), rgba(8, 25, 55, .36));
}
.cs-hero-sub--uslugi .cs-hero-sub__accent {
	background: radial-gradient(900px 480px at 80% 0%, rgba(255, 106, 26, .2), transparent);
}

.cs-hero-sub--serwis .cs-hero-sub__bg { opacity: .68; filter: brightness(1.6); }
.cs-hero-sub--serwis .cs-hero-sub__tint {
	background: linear-gradient(120deg, rgba(8, 20, 45, .33), rgba(8, 25, 55, .2));
}
.cs-hero-sub--serwis .cs-hero-sub__accent {
	background: radial-gradient(900px 480px at 85% 0%, rgba(255, 106, 26, .24), transparent);
}

.cs-hero-sub--kontakt .cs-hero-sub__bg { opacity: .44; }
.cs-hero-sub--kontakt .cs-hero-sub__tint {
	background: linear-gradient(120deg, rgba(8, 20, 45, .25), rgba(8, 25, 55, .19));
}
.cs-hero-sub--kontakt .cs-hero-sub__accent {
	background: radial-gradient(900px 480px at 80% 0%, rgba(28, 75, 143, .55), transparent);
}

/* ------------------------------------------------------------ 9 o firmie */
.cs-history__grid {
	padding: 80px var(--cs-gutter);
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	gap: 56px;
	align-items: center;
}
.cs-history__media {
	position: relative;
	border-radius: 20px;
	overflow: hidden;
	aspect-ratio: 1 / 1;
	box-shadow: 0 30px 60px -30px rgba(10, 30, 63, .4);
	background: var(--cs-navy-deep);
}
.cs-history__img {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	animation: kb 16s ease-out infinite alternate;
	transform: translateZ(0);
}
.cs-history__caption {
	position: absolute;
	left: 18px;
	bottom: 16px;
	font-family: var(--cs-mono);
	font-size: 11px;
	letter-spacing: .12em;
	color: rgba(255, 255, 255, .7);
	border: 1px solid rgba(255, 255, 255, .25);
	padding: 6px 11px;
	border-radius: 18px;
}

.cs-values { background: var(--cs-bg-values); }
.cs-values__inner { padding: 78px var(--cs-gutter); }
.cs-values .cs-sechead--center { max-width: 640px; margin-bottom: 48px; }
.cs-values .cs-sechead__title { font-size: clamp(26px, 3.2vw, 38px); }
.cs-values .cs-sechead__lead { font-size: 16.5px; margin-top: 14px; }
.cs-values__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
}

.cs-statcard { padding: 78px var(--cs-gutter); }
.cs-statcard__card {
	border-radius: 24px;
	background: var(--cs-grad-dark);
	padding: 56px;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 28px;
}
.cs-statcard__item { text-align: center; }
.cs-statcard__num {
	font-family: var(--cs-head);
	font-weight: 800;
	font-size: clamp(28px, 3vw, 42px);
	color: #fff;
}
.cs-statcard__label {
	font-size: 14px;
	color: rgba(255, 255, 255, .62);
	margin-top: 6px;
}

/* Sekcja historii — nagłówek bez wyśrodkowania */
.cs-history .cs-sechead__title { font-size: clamp(26px, 3.2vw, 38px); }
.cs-history .cs-sechead { margin-bottom: 0; }

/* ------------------------------------------------- 10 usługi (lista) */
.cs-usllist { padding: 78px var(--cs-gutter) 20px; }
.cs-usllist__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 20px;
}
.cs-usltile {
	display: flex;
	flex-direction: column;
	gap: 14px;
	border: 1px solid var(--cs-line);
	border-radius: 18px;
	background: #fff;
	padding: 30px;
	color: inherit;
	transition: transform .25s ease, box-shadow .25s ease;
}
.cs-usltile:hover {
	transform: translateY(-4px);
	box-shadow: var(--cs-sh-usl);
	color: inherit;
}
.cs-usltile__icon {
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: var(--cs-bg-icon-usl);
	color: var(--cs-orange);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
	flex: none;
}
.cs-usltile__icon--sm {
	width: 46px; height: 46px;
	border-radius: 13px;
	font-size: 19px;
}
.cs-usltile__title {
	font-family: var(--cs-head);
	font-size: 20px;
	color: var(--cs-heading);
	margin: 0;
}
.cs-usltile__title--sm { font-size: 18.5px; }
.cs-usltile__desc { color: var(--cs-body); font-size: 15.5px; line-height: 1.6; }
.cs-usltile--sm { padding: 28px; gap: 12px; }
.cs-usltile--sm .cs-usltile__desc { font-size: 15px; }
.cs-usltile__foot {
	margin-top: auto;
	padding-top: 8px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
.cs-usltile__meta {
	font-family: var(--cs-mono);
	font-size: 12px;
	letter-spacing: .1em;
	color: var(--cs-muted);
	text-transform: uppercase;
}
.cs-usltile__arrow { color: var(--cs-orange); font-size: 18px; }

.cs-darkcta { margin: 60px auto 90px; padding: 0 var(--cs-gutter); }
.cs-darkcta__card {
	border-radius: 24px;
	background: var(--cs-grad-dark);
	padding: 48px;
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	align-items: center;
	justify-content: space-between;
}
.cs-darkcta__text { max-width: 620px; }
.cs-darkcta__title { color: #fff; font-size: clamp(24px, 3vw, 34px); }
.cs-darkcta__lead {
	color: rgba(255, 255, 255, .78);
	margin-top: 12px;
	font-size: 16.5px;
}
.cs-darkcta__actions { display: flex; gap: 14px; flex-wrap: wrap; }

/* ------------------------------------------ 11 podstrona usługi */
.cs-uhero {
	position: relative;
	background: var(--cs-navy);
	overflow: hidden;
}
.cs-uhero__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	opacity: .3;
	animation: kb 22s ease-out infinite alternate;
	transform: translateZ(0);
}
.cs-uhero__tint {
	position: absolute;
	inset: 0;
	background: linear-gradient(110deg, rgba(6, 16, 36, .94), rgba(8, 25, 55, .6));
}
.cs-uhero__accent {
	position: absolute;
	inset: 0;
	background: radial-gradient(900px 460px at 88% 0%, rgba(255, 106, 26, .22), transparent);
}
.cs-uhero__inner {
	position: relative;
	padding: 78px var(--cs-gutter) 0;
}
.cs-uhero__title {
	color: #fff;
	font-size: clamp(32px, 4.4vw, 54px);
	font-weight: 800;
	margin-top: 20px;
	max-width: 820px;
	text-wrap: pretty;
}
.cs-uhero__lead {
	color: rgba(255, 255, 255, .8);
	font-size: 17.5px;
	line-height: 1.7;
	margin-top: 18px;
	max-width: 680px;
	text-wrap: pretty;
}
.cs-uhero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 32px;
}
.cs-uhero__actions .cs-btn { padding: 15px 26px; }
.cs-uhero__actions .cs-btn--outline {
	background: transparent;
	border-color: rgba(255, 255, 255, .26);
}
.cs-uhero__actions .cs-btn--outline:hover { background: rgba(255, 255, 255, .12); }

.cs-facts {
	margin: 44px 0 0;
	border-top: 1px solid rgba(255, 255, 255, .14);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}
.cs-facts__cell { padding: 22px 24px 26px 0; }
.cs-facts__key {
	font-family: var(--cs-mono);
	font-size: 11px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .45);
}
.cs-facts__val {
	color: #fff;
	font-weight: 700;
	font-size: 16px;
	margin: 9px 0 0;
}

/* Wprowadzenie */
.cs-uintro__grid {
	padding: 74px var(--cs-gutter);
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	gap: 52px;
	align-items: center;
}
.cs-uintro__img {
	min-height: 380px;
	border-radius: 20px;
	border: 1px solid var(--cs-line);
	background-color: var(--cs-bg-usl);
	background-size: cover;
	background-position: center;
}
.cs-uintro__title {
	font-family: var(--cs-head);
	font-size: clamp(25px, 2.8vw, 34px);
	font-weight: 800;
	color: var(--cs-heading);
	text-wrap: pretty;
}
.cs-uintro__p {
	color: var(--cs-body);
	font-size: 16.5px;
	line-height: 1.75;
	margin-top: 20px;
}
.cs-uintro__p + .cs-uintro__p { margin-top: 16px; }

/* Zakres prac */
.cs-uscope {
	background: var(--cs-bg-usl);
	border-top: 1px solid var(--cs-line);
	border-bottom: 1px solid var(--cs-line);
}
.cs-uscope__inner { padding: 70px var(--cs-gutter); }
.cs-uscope__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 0 44px;
	margin-top: 26px;
}
.cs-uscope__row {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 16px 0;
	border-bottom: 1px solid var(--cs-line-3);
}
.cs-uscope__mark {
	width: 23px;
	height: 23px;
	flex: none;
	margin-top: 1px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid var(--cs-line-orange);
	color: var(--cs-orange);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 10px;
}
.cs-uscope__text { color: var(--cs-body-strong); font-size: 16px; line-height: 1.55; }

/* Dwa warianty */
.cs-ucomp { padding: 74px var(--cs-gutter); }
.cs-ucomp__frame {
	margin-top: 26px;
	border: 1px solid var(--cs-line);
	border-radius: 18px;
	overflow: hidden;
}
.cs-ucomp__table { width: 100%; border-collapse: collapse; }
.cs-ucomp__table thead tr { background: var(--cs-bg-usl); }
.cs-ucomp__table th,
.cs-ucomp__table td {
	padding: 18px 22px;
	text-align: left;
	vertical-align: top;
	font-size: 15.5px;
}
.cs-ucomp__table thead th {
	font-family: var(--cs-sans);
	font-weight: 700;
	color: var(--cs-heading);
	border-bottom: 1px solid var(--cs-line);
}
.cs-ucomp__table thead th:first-child { width: 22%; }
.cs-ucomp__table th + th,
.cs-ucomp__table td { border-left: 1px solid var(--cs-line); }
.cs-ucomp__table tbody tr { border-bottom: 1px solid var(--cs-line); }
.cs-ucomp__table tbody tr:last-child { border-bottom: none; }
.cs-ucomp__key {
	font-family: var(--cs-mono);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--cs-muted);
}
.cs-ucomp__table td { color: var(--cs-body-strong); }

/* Dlaczego (usługa) */
.cs-uwhy {
	background: var(--cs-bg-usl);
	border-top: 1px solid var(--cs-line);
}
.cs-uwhy__inner { padding: 70px var(--cs-gutter); }
.cs-uwhy__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 4px 48px;
	margin-top: 26px;
}
.cs-uwhy__row {
	padding: 22px 0;
	border-bottom: 1px solid var(--cs-line-3);
	display: flex;
	gap: 14px;
	align-items: flex-start;
}
.cs-uwhy__sq {
	width: 9px;
	height: 9px;
	flex: none;
	margin-top: 8px;
	border-radius: 2px;
	background: var(--cs-orange);
}
.cs-uwhy__title {
	font-family: var(--cs-sans);
	font-weight: 700;
	color: var(--cs-heading);
	font-size: 16.5px;
	letter-spacing: normal;
	line-height: 1.4;
}
.cs-uwhy__desc { color: var(--cs-body); font-size: 15px; line-height: 1.6; margin-top: 7px; }

/* Kroki */
.cs-usteps { padding: 74px var(--cs-gutter); }
.cs-usteps__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: 24px;
	margin-top: 32px;
}
.cs-usteps__item { display: flex; flex-direction: column; gap: 12px; }
.cs-usteps__head { display: flex; align-items: center; gap: 12px; }
.cs-usteps__num {
	width: 38px;
	height: 38px;
	flex: none;
	border-radius: 50%;
	background: var(--cs-navy);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--cs-mono);
	font-size: 12.5px;
}
.cs-usteps__line { flex: 1; height: 1px; background: var(--cs-line); }
.cs-usteps__title { font-family: var(--cs-head); font-size: 18px; color: var(--cs-heading); }
.cs-usteps__desc { color: var(--cs-body); font-size: 15px; line-height: 1.6; }

/* FAQ */
.cs-ufaq {
	background: var(--cs-bg-usl);
	border-top: 1px solid var(--cs-line);
}
.cs-ufaq__inner {
	max-width: 860px;
	margin: 0 auto;
	padding: 70px var(--cs-gutter);
}
.cs-acc { display: grid; gap: 12px; margin-top: 30px; }
.cs-acc__row {
	border: 1px solid var(--cs-line);
	background: #fff;
	border-radius: 14px;
	transition: border-color .2s ease, background .2s ease;
}
.cs-acc__row.is-open {
	border-color: var(--cs-line-orange);
	background: #fff9f4;
}
.cs-acc__h { margin: 0; font-size: inherit; letter-spacing: normal; }
.cs-acc__btn {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 18px;
	width: 100%;
	padding: 20px 22px;
	background: none;
	border: none;
	text-align: left;
	cursor: pointer;
}
.cs-acc__btn:hover { transform: none; }
.cs-acc__q {
	font-family: var(--cs-sans);
	font-weight: 700;
	color: var(--cs-heading);
	font-size: 16.5px;
	line-height: 1.5;
}
.cs-acc__mark {
	width: 28px;
	height: 28px;
	flex: none;
	border-radius: 50%;
	background: var(--cs-orange);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 15px;
	font-weight: 700;
}
.cs-acc__body {
	overflow: hidden;
	max-height: 0;
	opacity: 0;
	transition: max-height .25s ease, opacity .25s ease, padding .25s ease;
	padding: 0 22px;
}
.cs-acc__row.is-open .cs-acc__body {
	opacity: 1;
	padding: 0 22px 20px;
}
.cs-acc__body p { color: var(--cs-body); font-size: 15.5px; line-height: 1.65; margin-top: 12px; }

/* Zobacz też */
.cs-uothers { padding: 74px var(--cs-gutter); }
.cs-uothers__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
}
.cs-uothers__all {
	font-family: var(--cs-mono);
	font-size: 12px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--cs-orange);
}
.cs-uothers__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 20px;
	margin-top: 26px;
}

/* CTA dzielone */
.cs-usplit {
	position: relative;
	background: linear-gradient(100deg, #0a1e3f 0%, #0a1e3f 46%, #f45f00 46%, #ff7a1a 100%);
	overflow: hidden;
}
.cs-usplit__dots {
	position: absolute;
	inset: 0;
	background-image: radial-gradient(rgba(255, 255, 255, .28) 1.4px, transparent 1.5px);
	background-size: 14px 14px;
	background-position: 0 0;
	opacity: .55;
	pointer-events: none;
}
.cs-usplit__inner {
	position: relative;
	padding: 56px var(--cs-gutter);
	display: flex;
	flex-wrap: wrap;
	gap: 26px;
	align-items: center;
	justify-content: space-between;
}
.cs-usplit__title {
	color: #fff;
	font-size: clamp(23px, 2.6vw, 32px);
	font-weight: 800;
	max-width: 560px;
	text-wrap: pretty;
}
.cs-usplit__actions {
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
	align-items: center;
}
.cs-usplit__tel {
	color: #fff;
	font-weight: 700;
	font-size: 17px;
	display: flex;
	align-items: center;
	gap: 10px;
}
.cs-usplit__tel:hover { color: #fff; }

/* ---------------------------------------------------------- 12 realizacje */
.cs-realcats { padding: 70px var(--cs-gutter); }
.cs-realcats__grid,
.cs-realgrid__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
}

.cs-realcat {
	display: block;
	position: relative;
	height: 320px;
	border-radius: 20px;
	overflow: hidden;
	color: #fff;
	background: var(--cs-navy);
}
.cs-realcat:hover { transform: translateY(-6px); color: #fff; }
.cs-realcat__bg {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	animation: kb 18s ease-out infinite alternate;
	transform: translateZ(0);
}
.cs-realcat__tint {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(8, 20, 45, .2), rgba(8, 20, 45, .85));
}
.cs-realcat__body {
	position: absolute;
	left: 24px;
	right: 24px;
	bottom: 22px;
}
.cs-realcat__tag {
	display: block;
	font-size: 12px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--cs-orange-200);
	font-weight: 700;
}
.cs-realcat__title {
	display: block;
	font-family: var(--cs-head);
	font-size: 24px;
	line-height: 1.08;
	letter-spacing: -.02em;
	margin-top: 8px;
}
.cs-realcat__cta {
	display: block;
	margin-top: 12px;
	font-weight: 700;
	font-size: 14.5px;
}

.cs-realgrid { padding: 74px var(--cs-gutter); }
.cs-realcard {
	border: 1px solid var(--cs-line);
	border-radius: 18px;
	overflow: hidden;
	background: #fff;
	transition: transform .3s ease, box-shadow .3s ease;
}
.cs-realcard:hover {
	transform: translateY(-6px);
	box-shadow: 0 26px 50px -28px rgba(10, 30, 63, .4);
}
.cs-realcard__link { display: block; color: inherit; }
.cs-realcard__link:hover { transform: none; color: inherit; }
.cs-realcard__media {
	position: relative;
	display: block;
	height: 200px;
	background-color: var(--cs-bg-values);
	background-size: cover;
	background-position: center;
}
.cs-realcard__shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 55%, rgba(8, 20, 45, .35));
}
.cs-realcard__badge {
	position: absolute;
	left: 14px;
	top: 14px;
	background: rgba(255, 106, 26, .95);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	padding: 6px 12px;
	border-radius: 20px;
}
.cs-realcard__body { display: block; padding: 22px; }
.cs-realcard__title {
	display: block;
	font-family: var(--cs-head);
	font-size: 18px;
	line-height: 1.2;
	letter-spacing: -.02em;
	color: var(--cs-heading);
}
.cs-realcard__desc {
	display: block;
	color: var(--cs-body);
	margin-top: 9px;
	font-size: 14.5px;
	line-height: 1.6;
}
.cs-realcard__loc {
	display: block;
	margin-top: 14px;
	font-family: var(--cs-mono);
	font-size: 11px;
	color: var(--cs-muted);
	letter-spacing: .08em;
}
.cs-realgrid__cta { text-align: center; margin: 48px 0 0; }

.cs-realsingle { padding: 74px var(--cs-gutter); }
.cs-realsingle__inner { max-width: 860px; }
.cs-realsingle__loc {
	font-family: var(--cs-mono);
	font-size: 12px;
	letter-spacing: .1em;
	color: var(--cs-muted);
	text-transform: uppercase;
}
.cs-realsingle__back { margin-top: 40px; }

/* -------------------------------------------------------------- 13 serwis */
.cs-sopis__grid {
	padding: 74px var(--cs-gutter) 20px;
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	gap: 56px;
	align-items: center;
}
.cs-sopis__text .cs-h2 {
	font-size: clamp(26px, 3.2vw, 38px);
	margin-top: 14px;
}
.cs-sopis__stats { display: grid; gap: 14px; }
.cs-sstat {
	border: 1px solid var(--cs-line);
	border-radius: 16px;
	padding: 22px 24px;
	background: #fff;
	display: flex;
	gap: 18px;
	align-items: center;
}
.cs-sstat__badge {
	flex: none;
	width: 56px;
	height: 56px;
	border-radius: 14px;
	background: var(--cs-grad-icon);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--cs-head);
	font-weight: 800;
	font-size: 18px;
}
.cs-sstat__badge i { font-size: 23px; }
.cs-sstat__title {
	display: block;
	font-family: var(--cs-head);
	font-weight: 700;
	color: var(--cs-heading);
	font-size: 16px;
}
.cs-sstat__desc {
	display: block;
	color: var(--cs-body);
	font-size: 14px;
	margin-top: 3px;
	line-height: 1.5;
}

.cs-squals__grid {
	padding: 34px var(--cs-gutter) 20px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
}

.cs-sproces {
	position: relative;
	padding: 74px var(--cs-gutter) 40px;
	background: var(--cs-navy);
	overflow: hidden;
	margin-top: 40px;
}
.cs-sproces__accent {
	position: absolute;
	inset: 0;
	background: radial-gradient(1100px 520px at 85% -10%, rgba(255, 106, 26, .18), transparent);
}
.cs-sproces__inner { position: relative; }
.cs-sproces__inner .cs-h2 { margin-top: 14px; font-size: clamp(26px, 3.2vw, 38px); }
.cs-sproces__lead {
	color: rgba(255, 255, 255, .7);
	text-align: center;
	max-width: 620px;
	margin: 16px auto 0;
	font-size: 16px;
}
.cs-sproces__wrap { position: relative; margin-top: 56px; }
.cs-process-line {
	position: absolute;
	left: 6%;
	right: 6%;
	top: 34px;
	height: 2px;
	background: linear-gradient(90deg,
		rgba(255, 106, 26, .15),
		rgba(255, 106, 26, .85),
		rgba(255, 106, 26, .15));
}
.cs-sproces__grid {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 26px;
}
.cs-sstep {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}
.cs-sstep__ring {
	position: relative;
	width: 70px;
	height: 70px;
	border-radius: 50%;
	background: linear-gradient(145deg, #ff7a1a, #f45f00);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 26px;
	color: #fff;
	box-shadow: 0 14px 34px -10px rgba(244, 95, 0, .7);
	border: 4px solid var(--cs-navy);
}
.cs-sstep__title {
	font-family: var(--cs-head);
	font-size: 19px;
	color: #fff;
	margin-top: 22px;
}
.cs-sstep__desc {
	color: rgba(255, 255, 255, .68);
	margin-top: 10px;
	font-size: 14.5px;
	line-height: 1.6;
}

.cs-smarki__grid {
	padding: 50px var(--cs-gutter) 40px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
}
.cs-smarki__card {
	border: 1px solid var(--cs-line);
	border-radius: 20px;
	padding: 32px;
	background: #fff;
}
.cs-smarki__kicker {
	font-size: 13px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--cs-orange);
	font-weight: 700;
}
.cs-smarki__title {
	font-family: var(--cs-head);
	font-size: 22px;
	color: var(--cs-heading);
	margin-top: 10px;
	line-height: 1.15;
	letter-spacing: -.02em;
}
.cs-smarki__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 18px;
}

.cs-sforms__grid {
	padding: 40px var(--cs-gutter) 90px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
}

/* ------------------------------------------------------------ 14 kontakt */
.cs-kontakt__grid {
	padding: 74px var(--cs-gutter);
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	gap: 52px;
	align-items: start;
}
.cs-kontakt__dane .cs-h2 { font-size: clamp(24px, 3vw, 32px); }
.cs-kontakt__list { display: grid; gap: 16px; margin-top: 26px; }
.cs-kcard {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	border: 1px solid var(--cs-line);
	border-radius: 14px;
	padding: 18px 20px;
	background: #fff;
}
.cs-kcard__icon {
	flex: none;
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: var(--cs-grad-icon);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 19px;
}
.cs-kcard__label {
	display: block;
	font-size: 12.5px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--cs-muted);
	font-weight: 700;
}
.cs-kcard__value {
	display: block;
	font-size: 16.5px;
	color: var(--cs-heading);
	font-weight: 600;
	margin-top: 3px;
}
.cs-kcard__value a { color: var(--cs-heading); }
.cs-kcard__value a:hover { color: var(--cs-orange); }

.cs-mapa { width: 100%; }
.cs-mapa__frame {
	width: 100%;
	border: 0;
	display: block;
	filter: saturate(.92);
}

/* -------------------------------------------------------------- 15 granty */
.cs-oze__grid {
	padding: 80px var(--cs-gutter) 40px;
	display: grid;
	grid-template-columns: 1.25fr 1fr;
	gap: 64px;
	align-items: start;
}
.cs-oze__left .cs-sechead__title { font-size: clamp(28px, 3.4vw, 40px); }
.cs-oze__left .cs-sechead__lead { max-width: 600px; margin-top: 16px; }
.cs-oze__bulk {
	display: flex;
	gap: 10px;
	margin-top: 24px;
	flex-wrap: wrap;
	align-items: center;
}
.cs-oze__list { display: grid; gap: 12px; margin-top: 34px; }

.cs-ozerow__input {
	position: absolute;
	width: 1px; height: 1px;
	opacity: 0;
	pointer-events: none;
}
.cs-ozerow__label {
	display: grid;
	grid-template-columns: 54px 1fr auto;
	gap: 18px;
	align-items: center;
	padding: 20px 22px;
	border-radius: 16px;
	cursor: pointer;
	border: 1.5px solid var(--cs-line);
	background: #fff;
	transition: all .22s ease;
}
.cs-ozerow__icon {
	width: 54px;
	height: 54px;
	border-radius: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 21px;
	flex: none;
	background: rgba(10, 30, 63, .06);
	color: var(--cs-navy);
	transition: all .22s ease;
}
.cs-ozerow__head {
	display: flex;
	gap: 10px;
	align-items: baseline;
	flex-wrap: wrap;
}
.cs-ozerow__title {
	font-family: var(--cs-head);
	font-weight: 700;
	font-size: 17px;
	color: var(--cs-navy);
	line-height: 1.3;
}
.cs-ozerow__meta {
	font-family: var(--cs-mono);
	font-size: 10.5px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cs-muted-2);
	border: 1px solid var(--cs-line-3);
	padding: 3px 8px;
	border-radius: 14px;
}
.cs-ozerow__desc {
	display: block;
	color: var(--cs-body);
	font-size: 14.5px;
	line-height: 1.5;
	margin-top: 6px;
}
.cs-ozerow__mark {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	border: 1.5px solid var(--cs-line-5);
	background: transparent;
	color: transparent;
}
/* Stan aktywny */
.cs-ozerow__input:checked + .cs-ozerow__label {
	border-color: var(--cs-orange-alt);
	background: #fff9f4;
	box-shadow: 0 18px 38px -26px rgba(242, 114, 28, .55);
}
.cs-ozerow__input:checked + .cs-ozerow__label .cs-ozerow__icon {
	background: var(--cs-grad-cta);
	color: #fff;
}
.cs-ozerow__input:checked + .cs-ozerow__label .cs-ozerow__mark {
	border: none;
	background: var(--cs-orange-alt);
	color: #fff;
}
.cs-ozerow__input:focus-visible + .cs-ozerow__label {
	outline: 2px solid var(--cs-orange-200);
	outline-offset: 2px;
}

.cs-ozepanel {
	position: sticky;
	top: 96px;
	border-radius: 22px;
	padding: 34px;
	background: linear-gradient(160deg, #0c2650, #0a1e3f 60%, #08152e);
	box-shadow: 0 34px 70px -40px rgba(10, 30, 63, .7);
	overflow: hidden;
}
.cs-ozepanel__accent {
	position: absolute;
	inset: 0;
	background: radial-gradient(520px 280px at 92% -12%, rgba(255, 106, 26, .28), transparent);
}
.cs-ozepanel__inner { position: relative; }
.cs-ozepanel__top {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
}
.cs-ozepanel__kicker {
	font-family: var(--cs-mono);
	font-size: 11.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--cs-orange-200);
}
.cs-ozepanel__count {
	font-family: var(--cs-mono);
	font-size: 12px;
	color: rgba(255, 255, 255, .55);
}
.cs-ozepanel__title {
	font-family: var(--cs-head);
	font-weight: 800;
	font-size: 24px;
	color: #fff;
	margin-top: 12px;
	line-height: 1.28;
}
.cs-ozepanel__empty {
	color: rgba(255, 255, 255, .62);
	font-size: 14.5px;
	line-height: 1.6;
	margin-top: 16px;
}
.cs-ozepanel__chosen { display: grid; gap: 8px; margin-top: 18px; }
.cs-ozepanel__chosen li {
	display: flex;
	gap: 11px;
	align-items: flex-start;
	padding: 11px 14px;
	background: rgba(255, 255, 255, .07);
	border-radius: 11px;
	color: #fff;
	font-size: 14.5px;
	line-height: 1.45;
}
.cs-ozepanel__chosen i,
.cs-ozepanel__list i {
	color: var(--cs-orange-200);
	font-size: 12px;
	margin-top: 4px;
	flex: none;
}
.cs-ozepanel .cs-btn--grad {
	margin-top: 26px;
	padding: 15px 20px;
	font-family: var(--cs-head);
	font-size: 15px;
	box-shadow: none;
}
.cs-ozepanel__note {
	font-family: var(--cs-mono);
	font-size: 11px;
	letter-spacing: .06em;
	color: rgba(255, 255, 255, .45);
	margin-top: 12px;
	text-align: center;
	line-height: 1.5;
}
.cs-ozepanel__sep {
	height: 1px;
	border: none;
	background: rgba(255, 255, 255, .12);
	margin: 28px 0 22px;
}
.cs-ozepanel__listtitle {
	font-family: var(--cs-mono);
	font-size: 11.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .5);
}
.cs-ozepanel__list { display: grid; gap: 12px; margin-top: 16px; }
.cs-ozepanel__list li {
	display: flex;
	gap: 11px;
	align-items: flex-start;
	color: rgba(255, 255, 255, .82);
	font-size: 14px;
	line-height: 1.5;
}

/* Dolna sekcja Grantów — własna paleta, zgodnie z projektem */
.cs-granty { background: var(--cs-bg-granty); }
.cs-granty__grid {
	padding: 84px var(--cs-gutter);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
	gap: 72px;
}
.cs-granty__atuty { display: grid; gap: 26px; }
.cs-granty__item { display: flex; gap: 16px; align-items: flex-start; }
.cs-granty__check {
	color: var(--cs-orange-alt);
	font-size: 16px;
	margin-top: 5px;
	flex: none;
}
.cs-granty__text {
	color: var(--cs-body-alt);
	font-size: 16.5px;
	line-height: 1.62;
}
.cs-granty__text strong { color: var(--cs-heading-alt); font-weight: 700; }
.cs-granty__h3 {
	font-family: var(--cs-head);
	font-size: 26px;
	font-weight: 800;
	color: var(--cs-heading-alt);
	margin-top: 48px;
}
.cs-granty__h2 {
	font-family: var(--cs-head);
	font-size: clamp(24px, 2.4vw, 30px);
	font-weight: 800;
	color: var(--cs-heading-alt);
	line-height: 1.32;
}
.cs-granty__hl { color: var(--cs-orange-alt); font-size: 28px; }
.cs-granty__p {
	color: var(--cs-body-alt);
	font-size: 16px;
	line-height: 1.62;
	margin-top: 16px;
}
.cs-granty__p--gap { margin-top: 26px; }
.cs-granty__dashes { display: grid; gap: 12px; margin-top: 16px; }
.cs-granty__dash { display: flex; gap: 14px; align-items: flex-start; }
.cs-granty__mdash {
	color: var(--cs-orange-alt);
	font-weight: 800;
	flex: none;
	line-height: 1.62;
}
.cs-granty__dash .cs-granty__text { font-size: 16px; }
.cs-granty__lead {
	font-family: var(--cs-head);
	font-size: 20px;
	font-weight: 700;
	color: var(--cs-heading-alt);
	margin-top: 34px;
	margin-bottom: 22px;
}
.cs-granty__cta {
	display: inline-flex;
	align-items: center;
	gap: 16px;
	margin-top: 40px;
	padding: 18px 34px;
	background: var(--cs-orange-alt);
	color: #fff;
	font-family: var(--cs-head);
	font-weight: 700;
	font-size: 15px;
	letter-spacing: .06em;
	text-transform: uppercase;
	border-radius: 4px;
}
.cs-granty__cta:hover { background: var(--cs-orange-alt-hover); color: #fff; }
.cs-granty__cta i { font-size: 14px; }

/* --------------------------------------------------------- 16 formularze */
.cs-formcard {
	border-radius: 22px;
	padding: 34px;
	background: #fff;
}
.cs-formcard--awaria {
	border: 1px solid var(--cs-line-orange-2);
	background: linear-gradient(180deg, var(--cs-bg-awaria), #fff);
	box-shadow: var(--cs-sh-form-awaria);
	scroll-margin-top: 100px;
}
.cs-formcard--przeglad {
	border: 1px solid var(--cs-line);
	box-shadow: 0 24px 50px -34px rgba(10, 30, 63, .3);
}
.cs-formcard--kontakt {
	border: 1px solid var(--cs-line);
	box-shadow: var(--cs-sh-form);
}
.cs-formcard__title {
	font-size: 24px;
	color: var(--cs-heading);
	margin-top: 18px;
}
.cs-formcard--kontakt .cs-formcard__title {
	font-size: clamp(22px, 2.6vw, 28px);
	margin-top: 0;
}
.cs-formcard__lead {
	color: var(--cs-body);
	margin-top: 8px;
	font-size: 15px;
}
.cs-formcard__tel { font-weight: 700; }

.cs-form { display: grid; gap: 12px; margin-top: 20px; }
.cs-form--kontakt { gap: 14px; margin-top: 22px; }
.cs-form__row { margin: 0; }
.cs-form__two { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cs-form--kontakt .cs-form__two { gap: 14px; }

.cs-form input[type="text"],
.cs-form input[type="tel"],
.cs-form input[type="email"],
.cs-form select,
.cs-form textarea {
	width: 100%;
	padding: 13px 15px;
	border: 1px solid var(--cs-line-input);
	border-radius: 11px;
	font-family: inherit;
	font-size: 15px;
	color: var(--cs-ink);
	background: #fff;
}
.cs-form--kontakt input[type="text"],
.cs-form--kontakt input[type="tel"],
.cs-form--kontakt input[type="email"],
.cs-form--kontakt textarea { padding: 14px 16px; }
.cs-form textarea { resize: vertical; line-height: 1.55; }
.cs-form select { color: var(--cs-chip); }

input:focus,
textarea:focus,
select:focus {
	outline: none;
	border-color: var(--cs-orange);
	box-shadow: 0 0 0 3px rgba(255, 106, 26, .16);
}
.cs-form .has-error { border-color: #e03131; }
.cs-form__fielderror {
	display: block;
	margin-top: 5px;
	font-size: 12.5px;
	color: #b02a2a;
}

.cs-form__file {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 13px 15px;
	border: 1px dashed var(--cs-line-input);
	border-radius: 11px;
	color: var(--cs-body);
	font-size: 14.5px;
	cursor: pointer;
}
.cs-form__file input[type="file"] { display: none; }

.cs-form__rodo {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	text-align: left;
	font-size: 11.5px;
	line-height: 1.55;
	color: var(--cs-body);
	cursor: pointer;
}
.cs-form__rodo input[type="checkbox"] {
	width: 16px;
	height: 16px;
	accent-color: var(--cs-orange-light);
	cursor: pointer;
	margin-top: 2px;
	flex: none;
}

.cs-form__hp {
	position: absolute;
	left: -9999px;
	margin: 0;
}

.cs-form__submit {
	padding: 15px;
	background: var(--cs-grad-cta);
	color: #fff;
	font-weight: 700;
	font-size: 15px;
	border: none;
	border-radius: 11px;
	cursor: pointer;
	font-family: inherit;
}
.cs-form__submit--przeglad { background: var(--cs-navy); }
.cs-form__submit--kontakt {
	padding: 16px;
	border-radius: 12px;
	font-size: 16px;
	box-shadow: 0 14px 30px -14px rgba(244, 95, 0, .8);
}
.cs-form__submit[disabled] { opacity: .7; cursor: progress; transform: none; }

.cs-form__ok {
	margin-top: 20px;
	padding: 24px;
	background: var(--cs-ok-bg);
	border: 1px solid var(--cs-ok-line);
	border-radius: 14px;
	color: var(--cs-ok-text);
	font-weight: 600;
}
.cs-formcard--kontakt .cs-form__ok { margin-top: 22px; padding: 26px; }

.cs-form__error {
	margin: 0;
	padding: 14px;
	background: #fff5f5;
	border: 1px solid #ffd0d0;
	color: #b02a2a;
	border-radius: 11px;
	font-size: 14.5px;
}

/* ------------------------------------------------------------------ 17 RWD */
@media (max-width: 1100px) {
	.cs-nav__link { padding: 10px 11px; font-size: 14.5px; }
	.cs-cta-awaria { padding: 12px 16px; }
}

@media (max-width: 940px) {
	.cs-nav-desktop { display: none; }
	.cs-nav-toggle { display: flex; }

	.cs-grid-services { grid-template-columns: 1fr 1fr; }
	.cs-grid-whyus { grid-template-columns: 1fr; }
	.cs-grid-stats { grid-template-columns: 1fr 1fr; }
	.cs-grid-footer,
	.cs-footer__grid { grid-template-columns: 1fr 1fr; }
	.cs-grid-two { grid-template-columns: 1fr; }
	.cs-grid-cards3 { grid-template-columns: 1fr; }
	.cs-process-line { display: none; }

	.cs-why__grid { gap: 40px; padding: 70px var(--cs-gutter); }
	.cs-why__media { max-width: 460px; }
	.cs-ctaband__card,
	.cs-statcard__card,
	.cs-darkcta__card { padding: 40px; }
	.cs-oze__grid { gap: 40px; }
	.cs-ozepanel { position: static; }
	.cs-granty__grid { gap: 48px; }
	.cs-footer__social { position: static; transform: none; }
	.cs-footer__copy { flex: 1 1 100%; }
}

@media (max-width: 760px) {
	.cs-realcats__grid,
	.cs-realgrid__grid { grid-template-columns: 1fr; }
	.cs-sproces__grid { grid-template-columns: 1fr 1fr; }
	.cs-uintro__img { min-height: 260px; }
	.cs-facts__cell { padding: 18px 18px 20px 0; }
}

@media (max-width: 600px) {
	:root { --cs-gutter: 20px; }

	.cs-grid-services { grid-template-columns: 1fr; }
	.cs-grid-stats { grid-template-columns: 1fr 1fr; }
	.cs-grid-footer,
	.cs-footer__grid { grid-template-columns: 1fr; }
	.cs-grid-forms2 { grid-template-columns: 1fr; }
	.cs-sproces__grid { grid-template-columns: 1fr; }

	.cs-hero { min-height: 480px; }
	.cs-services { padding: 64px var(--cs-gutter); }
	.cs-sechead--center { margin-bottom: 36px; }
	.cs-ctaband { margin-bottom: 64px; }
	.cs-ctaband__card,
	.cs-statcard__card,
	.cs-darkcta__card { padding: 30px; }
	.cs-formcard { padding: 24px; }
	.cs-form__two { grid-template-columns: 1fr; }
	.cs-ozerow__label {
		grid-template-columns: 44px 1fr;
		gap: 14px;
		padding: 16px;
	}
	.cs-ozerow__icon { width: 44px; height: 44px; font-size: 18px; }
	.cs-ozerow__mark { grid-column: 2; justify-self: start; margin-top: 4px; }
	.cs-granty__grid { grid-template-columns: 1fr; gap: 40px; }
	.cs-granty__cta { width: 100%; justify-content: center; }
	.cs-hero-sub { padding: 64px var(--cs-gutter) 56px; }
	.cs-uhero__inner { padding: 56px var(--cs-gutter) 0; }

	/* Tabela porównania jako karty */
	.cs-ucomp__table thead { display: none; }
	.cs-ucomp__table,
	.cs-ucomp__table tbody,
	.cs-ucomp__table tr,
	.cs-ucomp__table th,
	.cs-ucomp__table td { display: block; width: auto; }
	.cs-ucomp__table tr { padding: 4px 0 12px; }
	.cs-ucomp__table td {
		border-left: none;
		padding: 6px 22px 10px;
	}
	.cs-ucomp__table td::before {
		content: attr(data-label);
		display: block;
		font-family: var(--cs-mono);
		font-size: 11px;
		letter-spacing: .1em;
		text-transform: uppercase;
		color: var(--cs-muted);
		margin-bottom: 4px;
	}
	.cs-ucomp__key { padding-bottom: 4px; }
}

/* --------------------------------------------- reveal i reduced motion */
[data-reveal]:not([data-revealed]) { will-change: transform, opacity; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }

	*,
	*::before,
	*::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}

	[data-reveal] {
		animation: none !important;
		opacity: 1 !important;
		transform: none !important;
	}

	.cs-hero__bg,
	.cs-why__img,
	.cs-history__img,
	.cs-hero-sub__bg,
	.cs-uhero__bg,
	.cs-realcat__bg,
	.cs-cta-awaria__dot,
	.cs-badge--orange.is-pulsing { animation: none !important; }

	a:hover, button:hover { transform: none; }
}

/* Druk — najprostszy sensowny wariant */
@media print {
	.cs-header, .cs-footer, .cs-hero__dots, .cs-mapa, .cs-form { display: none; }
	body { color: #000; background: #fff; }
	.cs-hero-sub, .cs-uhero { background: #fff; color: #000; padding: 0; }
	.cs-hero-sub__title, .cs-uhero__title { color: #000; }
}
