/* =============================================================
   TREJKA Blocks — wspólny arkusz frontendu
   Wartości przeniesione 1:1 z mockupu wptrejka-mockup-v3.
   Zmienne i style są izolowane w zasięgu .trejka-block,
   żeby nie kolidować z motywem klienta.
   ============================================================= */

.trejka-block {
	/* Czerwień marki */
	--tb-red:        #bc0000;
	--tb-red-h:      #9a0000;
	--tb-red-dark:   #6a0000;
	--tb-red-tint:   #fff0f0;
	--tb-red-mid:    #fce4e4;
	--tb-red-soft:   #ffe5e5;
	--tb-red-glow:   #ffd6d6;

	/* Tekst */
	--tb-text:       #1a1a1a;
	--tb-text2:      #4a4a4a;
	--tb-text3:      #6b6b76;
	--tb-text4:      #b8b8b8;

	/* Jasna ciepła paleta */
	--tb-bg:         #ffffff;
	--tb-bg2:        #faf7f7;
	--tb-bg3:        #f3eded;
	--tb-cream:      #fefaf7;
	--tb-blush:      #fff5f5;
	--tb-rose:       #fff0f0;

	/* Obramowania */
	--tb-border:     #ece4e4;
	--tb-border2:    #ddd0d0;

	/* Statusy */
	--tb-green:      #1f8a4c;
	--tb-green-tint: #e8f5ee;
	--tb-amber:      #d97706;
	--tb-blue:       #1e6fa6;

	/* Cienie */
	--tb-shadow-sm:  0 1px 2px rgba(120,30,30,0.04);
	--tb-shadow:     0 2px 12px rgba(120,30,30,0.06);
	--tb-shadow-lg:  0 12px 40px rgba(120,30,30,0.10);
	--tb-shadow-red: 0 8px 32px rgba(188,0,0,0.18);

	/* Czcionki — dołączone lokalnie przez wtyczkę (assets/trejka-fonts.css, RODO: bez Google Fonts CDN) */
	--tb-font-d:     'Figtree', system-ui, -apple-system, sans-serif;
	--tb-font-b:     'Open Sans', system-ui, -apple-system, sans-serif;

	/* Rozstrzelenie liter na nagłówkach/tytułach — globalnie. 'normal' = brak.
	   Ustaw np. '-0.02em' tu albo w „Custom CSS", by globalnie zacisnąć tytuły. */
	--tb-title-ls:   normal;

	/* Rozstrzelenie liter na wersalikowych etykietach (eyebrow, tagi). 'normal' = brak.
	   Ustaw np. '0.08em' tu albo w „Custom CSS", by globalnie rozstrzelić etykiety. */
	--tb-label-ls:   normal;

	/* Boczna rynna kontenerów sekcji (.X__inner). 0 = brak (gdy motyw/kontener
	   sam daje margines). Ustaw np. '28px' tu albo w „Custom CSS", by przywrócić. */
	--tb-gutter:     0px;

	/* Szerokość kontentu — kontroluje wtyczka (spójność na każdym motywie).
	   Zmiana per strona: filtr PHP 'trejka_blocks_container_width'. */
	--tb-wrap:       1240px;

	font-family: var(--tb-font-b);
	color: var(--tb-text);
	font-size: 14px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

.trejka-block *,
.trejka-block *::before,
.trejka-block *::after { box-sizing: border-box; }

.trejka-block :where(p, h1, h2, h3, h4, h5, h6, ul, ol, figure) { margin: 0; }
.trejka-block a { text-decoration: none; color: inherit; }
.trejka-block img { max-width: 100%; height: auto; display: block; }

/* ---- Współdzielone: nagłówek sekcji ---- */
.tb-head { text-align: center; max-width: 720px; margin: 0 auto 48px; }
.tb-head--split { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; text-align: left; max-width: none; margin-bottom: 36px; }
.tb-eyebrow { display: inline-block; font-size: 11px; color: var(--tb-red); font-weight: 700; letter-spacing: var(--tb-label-ls, normal); text-transform: uppercase; margin-bottom: 14px; position: relative; }
.tb-head .tb-eyebrow { padding: 6px 16px; background: var(--tb-red-tint); border: 1px solid var(--tb-red-mid); border-radius: 100px; box-shadow: 0 2px 8px rgba(188,0,0,0.06); }
.tb-head .tb-eyebrow::before,
.tb-head .tb-eyebrow::after { content: none; display: none; }
.tb-title { font-family: var(--tb-font-d); font-size: clamp(26px, 5vw, 42px); font-weight: 700; color: var(--tb-text); line-height: 1.1; letter-spacing: var(--tb-title-ls, normal); margin-bottom: 16px; }
.tb-title .tb-hl { color: var(--tb-red); }
.tb-sub { font-size: 16px; color: var(--tb-text2); line-height: 1.65; }
.tb-head--split .tb-title { font-size: clamp(24px, 4.5vw, 36px); margin-bottom: 8px; }
.tb-head--split .tb-sub { font-size: 14px; max-width: 540px; }
.tb-head__link { font-size: 13px; font-weight: 700; color: var(--tb-red); display: inline-flex; align-items: center; gap: 7px; padding: 10px 16px; border-radius: 6px; transition: background 0.15s; white-space: nowrap; }
.tb-head__link:hover { background: var(--tb-blush); }
.tb-headwrap { max-width: var(--tb-wrap); margin: 0 auto; padding: 28px 28px 0; }

/* ---- Współdzielone: pigułka/eyebrow z kropką ---- */
.tb-badge { display: inline-flex; align-items: center; gap: 7px; background: #fff; border: 1px solid var(--tb-red-mid); border-radius: 100px; padding: 6px 14px; font-size: 11px; color: var(--tb-red); font-weight: 700; letter-spacing: var(--tb-label-ls, normal); text-transform: uppercase; margin-bottom: 18px; box-shadow: 0 2px 8px rgba(188,0,0,0.06); }
.tb-badge__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--tb-red); }

/* ---- Współdzielone: przyciski ---- */
.tb-btn { display: inline-flex; align-items: center; gap: 8px; padding: 14px 26px; font-size: 14px; font-weight: 700; border-radius: 6px; transition: all 0.15s; letter-spacing: var(--tb-label-ls, normal); cursor: pointer; }
.tb-btn--primary { background: var(--tb-red); color: #fff; box-shadow: 0 4px 14px rgba(188,0,0,0.22); }
.tb-btn--primary:hover { background: var(--tb-red-h); transform: translateY(-1px); box-shadow: 0 6px 20px rgba(188,0,0,0.30); }
.tb-btn--ghost { background: #fff; color: var(--tb-text); border: 1px solid var(--tb-border2); }
.tb-btn--ghost:hover { border-color: var(--tb-red); color: var(--tb-red); }
.tb-btn--white { background: #fff; color: var(--tb-red); box-shadow: 0 6px 22px rgba(0,0,0,0.18); padding: 15px 30px; }
.tb-btn--white:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(0,0,0,0.24); }
.tb-btn--ghost-white { background: rgba(255,255,255,0.12); color: #fff; border: 1px solid rgba(255,255,255,0.4); padding: 15px 28px; }
.tb-btn--ghost-white:hover { background: rgba(255,255,255,0.2); border-color: rgba(255,255,255,0.6); }
.tb-btn svg { width: 16px; height: 16px; }

/* =============================================================
   HERO
   ============================================================= */
.trejka-hero { background: linear-gradient(160deg, var(--tb-cream) 0%, var(--tb-blush) 60%, var(--tb-red-tint) 100%); padding: clamp(48px, 8vw, 72px) 0 clamp(52px, 8vw, 80px); position: relative; overflow: hidden; border-bottom: 1px solid var(--tb-border); }
/* Gdy ustawiono tło z rdzenia (kolor/gradient), zdejmij domyślny gradient hero, żeby wybór był widoczny. */
.trejka-hero.has-background { background-image: none; }
.trejka-hero::before { content: ''; position: absolute; top: -200px; right: -200px; width: 600px; height: 600px; background: radial-gradient(circle, rgba(188,0,0,0.10) 0%, transparent 60%); pointer-events: none; }
.trejka-hero::after { content: ''; position: absolute; bottom: -150px; left: -150px; width: 400px; height: 400px; background: radial-gradient(circle, rgba(188,0,0,0.06) 0%, transparent 60%); pointer-events: none; }
.trejka-hero__inner { max-width: var(--tb-wrap); margin: 0 auto; padding: 0 var(--tb-gutter, 0px); position: relative; display: grid; grid-template-columns: 1.15fr 1fr; gap: 56px; align-items: center; }
.trejka-hero--no-visual .trejka-hero__inner { grid-template-columns: 1fr; max-width: 820px; text-align: center; }
.trejka-hero--no-visual .trejka-hero__ctas,
.trejka-hero--no-visual .trejka-hero__trust { justify-content: center; }
.trejka-hero__title { font-family: var(--tb-hero-ff, var(--tb-font-d)); font-size: var(--tb-hero-title-size, clamp(32px, 6vw, 56px)); font-weight: 700; color: var(--tb-text); line-height: 1.05; margin: 0 0 20px; letter-spacing: var(--tb-title-ls, normal); }
.trejka-hero__subheading { font-family: var(--tb-hero-ff, var(--tb-font-d)); font-size: var(--tb-hero-subheading-size, clamp(20px, 3vw, 28px)); font-weight: 600; color: var(--tb-text2); line-height: 1.25; margin: -6px 0 18px; letter-spacing: var(--tb-title-ls, normal); }
.trejka-hero__title .tb-hl { color: var(--tb-red); }
.trejka-hero__sub { font-family: var(--tb-hero-ff, inherit); font-size: var(--tb-hero-sub-size, 17px); color: var(--tb-text2); line-height: 1.65; max-width: 540px; margin-bottom: 32px; }
.trejka-hero--no-visual .trejka-hero__sub { margin-left: auto; margin-right: auto; }
.trejka-hero__ctas { display: flex; gap: 12px; margin-bottom: 40px; flex-wrap: wrap; }
.trejka-hero__trust { display: flex; gap: 36px; padding-top: 28px; border-top: 1px solid rgba(188,0,0,0.15); flex-wrap: wrap; }
.trejka-hero__trust-item { display: flex; flex-direction: column; gap: 4px; }
.trejka-hero__trust-item strong { font-family: var(--tb-font-d); font-size: clamp(20px, 3vw, 26px); font-weight: 700; color: var(--tb-text); letter-spacing: var(--tb-title-ls, normal); line-height: 1; }
.trejka-hero__trust-item span { font-size: 11px; color: var(--tb-text3); font-weight: 600; letter-spacing: var(--tb-label-ls, normal); text-transform: uppercase; }
.trejka-hero__visual { display: flex; justify-content: center; }
.trejka-hero__visual img { border-radius: 12px; box-shadow: var(--tb-shadow-lg); }

/* Hero z pełnym zdjęciem w tle + przyciemnieniem (overlay) */
.trejka-hero--bg { background-color: #1a1a1a; background-image: none; background-repeat: no-repeat; background-position: center; background-size: cover; padding: clamp(64px, 10vw, 104px) 0; border-bottom: none; }
.trejka-hero__bgimg { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; object-position: center; z-index: 0; margin: 0; }
.trejka-hero--bg::before { content: ''; position: absolute; inset: 0; top: 0; right: 0; bottom: 0; left: 0; width: auto; height: auto; background: rgba(0,0,0,var(--tb-ovl,0.5)); z-index: 1; }
.trejka-hero--bg::after { display: none; }
.trejka-hero--bg .trejka-hero__inner { position: relative; z-index: 2; grid-template-columns: 1fr; max-width: 860px; text-align: center; }
.trejka-hero--bg .trejka-hero__title { color: #fff; }
.trejka-hero--bg .trejka-hero__subheading { color: rgba(255,255,255,0.92); }
.trejka-hero--bg .trejka-hero__title .tb-hl { color: #fff; }
.trejka-hero--bg .trejka-hero__sub { color: rgba(255,255,255,0.9); margin-left: auto; margin-right: auto; }
.trejka-hero--bg .trejka-hero__ctas,
.trejka-hero--bg .trejka-hero__trust { justify-content: center; }
.trejka-hero--bg .trejka-hero__trust { border-top-color: rgba(255,255,255,0.25); }
.trejka-hero--bg .trejka-hero__trust-item strong { color: #fff; }
.trejka-hero--bg .trejka-hero__trust-item span { color: rgba(255,255,255,0.75); }
.trejka-hero--bg .tb-badge { background: rgba(255,255,255,0.15); color: #fff; }
.trejka-hero--bg .tb-btn--primary { background: #fff; color: var(--tb-text); }
.trejka-hero--bg .tb-btn--primary:hover { background: rgba(255,255,255,0.9); }
.trejka-hero--bg .tb-btn--ghost { border-color: rgba(255,255,255,0.6); color: #fff; }
.trejka-hero--bg .tb-btn--ghost:hover { background: rgba(255,255,255,0.12); }

/* =============================================================
   STATS
   ============================================================= */
.trejka-stats { background: #fff; padding: 36px 0; border-top: 1px solid var(--tb-border); border-bottom: 1px solid var(--tb-border); }
.trejka-stats__inner { max-width: var(--tb-wrap); margin: 0 auto; padding: 0 var(--tb-gutter, 0px); display: grid; grid-template-columns: repeat(var(--tb-cols, 4), 1fr); gap: 0; }
.trejka-stat { padding: 0 var(--tb-gutter, 0px); text-align: center; border-right: 1px solid var(--tb-border); }
.trejka-stat:last-child { border-right: none; }
.trejka-stat__num { font-family: var(--tb-font-d); font-size: clamp(28px, 5.5vw, 42px); font-weight: 700; color: var(--tb-text); line-height: 1; letter-spacing: var(--tb-title-ls, normal); margin-bottom: 8px; }
.trejka-stat__num .tb-hl { color: var(--tb-red); }
.trejka-stat__label { font-size: 12px; color: var(--tb-text3); font-weight: 700; text-transform: uppercase; letter-spacing: var(--tb-label-ls, normal); }

/* =============================================================
   FEATURE CARDS (filary)
   ============================================================= */
.trejka-features { padding: clamp(48px, 8vw, 80px) 0; }
.trejka-features__inner { max-width: var(--tb-wrap); margin: 0 auto; padding: 0 var(--tb-gutter, 0px); }
.trejka-features__grid { display: grid; grid-template-columns: repeat(var(--tb-cols, 3), 1fr); gap: 22px; }
.trejka-feature { background: #fff; border: 1px solid var(--tb-border); border-radius: 10px; padding: 32px 28px; transition: all 0.2s; position: relative; overflow: hidden; }
.trejka-feature::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--tb-red); transform: scaleX(0); transform-origin: left; transition: transform 0.3s; }
.trejka-feature:hover { box-shadow: var(--tb-shadow-lg); transform: translateY(-4px); border-color: var(--tb-red-mid); }
.trejka-feature:hover::before { transform: scaleX(1); }
.trejka-feature__icon { width: 60px; height: 60px; background: linear-gradient(135deg, var(--tb-blush) 0%, var(--tb-red-mid) 100%); border-radius: 14px; display: flex; align-items: center; justify-content: center; margin-bottom: 24px; color: var(--tb-red); }
.trejka-feature__icon svg { width: 30px; height: 30px; }
.trejka-feature__title { font-family: var(--tb-card-ff, var(--tb-font-d)); font-size: var(--tb-card-title, clamp(19px, 2.4vw, 24px)); font-weight: 700; color: var(--tb-text); margin-bottom: 12px; letter-spacing: var(--tb-title-ls, normal); }
.trejka-feature__desc { font-size: 14px; color: var(--tb-text2); line-height: 1.7; margin-bottom: 20px; }
.trejka-feature__list { list-style: none; padding: 20px 0 0; margin: 0; display: flex; flex-direction: column; gap: 10px; border-top: 1px solid var(--tb-border); }
.trejka-feature__list:empty { display: none; }
.trejka-feature__list li { font-size: 13px; color: var(--tb-text2); display: flex; align-items: flex-start; gap: 10px; line-height: 1.5; }
.trejka-feature__list li::before { content: ''; width: 16px; height: 16px; background: var(--tb-red-tint); border-radius: 50%; flex-shrink: 0; margin-top: 2px; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='%23bc0000' d='M6.5 11L3 7.5l1-1L6.5 9 12 3.5l1 1z'/></svg>"); background-repeat: no-repeat; background-position: center; }

/* =============================================================
   LINK CARDS (szybkie kategorie)
   ============================================================= */
.trejka-links { background: var(--tb-bg); padding: clamp(44px, 7vw, 64px) 0; }
.trejka-links__inner { max-width: var(--tb-wrap); margin: 0 auto; padding: 0 var(--tb-gutter, 0px); }
.trejka-links__grid { display: grid; grid-template-columns: repeat(var(--tb-cols, 4), 1fr); gap: 18px; }
.trejka-link { background: #fff; border: 1px solid var(--tb-border); border-radius: 10px; padding: 28px 24px; cursor: pointer; transition: all 0.2s; display: flex; flex-direction: column; position: relative; overflow: hidden; }
.trejka-link:hover { border-color: var(--tb-red); transform: translateY(-4px); box-shadow: var(--tb-shadow-lg); }
.trejka-link--featured { background: linear-gradient(160deg, #fff 0%, var(--tb-blush) 100%); border: 1.5px solid var(--tb-red); box-shadow: 0 4px 20px rgba(188,0,0,0.10); }
.trejka-link__icon { width: 52px; height: 52px; background: var(--tb-blush); border-radius: 12px; display: flex; align-items: center; justify-content: center; color: var(--tb-red); margin-bottom: 18px; }
.trejka-link--featured .trejka-link__icon { background: var(--tb-red); color: #fff; }
.trejka-link__icon svg { width: 26px; height: 26px; }
.trejka-link__label { font-size: 10px; font-weight: 700; color: var(--tb-red); letter-spacing: var(--tb-label-ls, normal); text-transform: uppercase; margin-bottom: 6px; }
.trejka-link__title { font-family: var(--tb-card-ff, var(--tb-font-d)); font-size: var(--tb-card-title, 19px); font-weight: 700; color: var(--tb-text); letter-spacing: var(--tb-title-ls, normal); margin-bottom: 8px; }
.trejka-link__desc { font-size: 13px; color: var(--tb-text2); line-height: 1.55; margin-bottom: 16px; flex: 1; }
.trejka-link__arrow { font-size: 12px; font-weight: 700; color: var(--tb-red); letter-spacing: var(--tb-label-ls, normal); }

/* =============================================================
   STEPS (proces)
   ============================================================= */
.trejka-steps { background: var(--tb-cream); padding: clamp(48px, 8vw, 80px) 0; border-top: 1px solid var(--tb-border); border-bottom: 1px solid var(--tb-border); }
.trejka-steps__inner { max-width: var(--tb-wrap); margin: 0 auto; padding: 0 var(--tb-gutter, 0px); }
.trejka-steps__grid { display: grid; grid-template-columns: repeat(var(--tb-cols, 4), 1fr); gap: 24px; position: relative; margin-top: 48px; }
.trejka-steps__grid::before { content: ''; position: absolute; top: 32px; left: 64px; right: 64px; height: 2px; background: linear-gradient(to right, var(--tb-red) 0%, var(--tb-red) 50%, var(--tb-border2) 50%, var(--tb-border2) 100%); background-size: 16px 2px; background-repeat: repeat-x; opacity: 0.4; }
.trejka-step { text-align: center; position: relative; }
.trejka-step__num { width: 64px; height: 64px; margin: 0 auto 22px; background: #fff; border: 2px solid var(--tb-red); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: var(--tb-font-d); font-size: 24px; font-weight: 700; color: var(--tb-red); position: relative; z-index: 2; box-shadow: 0 4px 16px rgba(188,0,0,0.15); }
.trejka-step--completed .trejka-step__num { background: var(--tb-red); color: #fff; }
.trejka-step__title { font-family: var(--tb-font-d); font-size: 17px; font-weight: 700; color: var(--tb-text); margin-bottom: 8px; letter-spacing: var(--tb-title-ls, normal); }
.trejka-step__desc { font-size: 13px; color: var(--tb-text2); line-height: 1.6; max-width: 240px; margin: 0 auto; }

/* =============================================================
   PRICING
   ============================================================= */
.trejka-pricing { padding: clamp(48px, 8vw, 80px) 0; }
.trejka-pricing__inner { max-width: var(--tb-wrap); margin: 0 auto; padding: 0 var(--tb-gutter, 0px); }
.trejka-pricing__grid { display: grid; grid-template-columns: repeat(var(--tb-cols, 3), 1fr); gap: 22px; align-items: start; }
.trejka-plan { background: #fff; border: 1px solid var(--tb-border); border-radius: 10px; overflow: hidden; display: flex; flex-direction: column; transition: all 0.2s; position: relative; }
.trejka-plan:hover { box-shadow: var(--tb-shadow-lg); transform: translateY(-3px); }
.trejka-plan--featured { border: 2px solid var(--tb-red); box-shadow: var(--tb-shadow-red); transform: scale(1.02); }
.trejka-plan--featured::before { content: attr(data-badge); position: absolute; top: 0; left: 50%; transform: translateX(-50%); background: var(--tb-red); color: #fff; font-size: 10px; font-weight: 700; letter-spacing: var(--tb-label-ls, normal); padding: 6px 18px; border-radius: 0 0 5px 5px; white-space: nowrap; }
.trejka-plan__head { padding: 32px 28px 24px; }
.trejka-plan--featured .trejka-plan__head { padding-top: 44px; }
.trejka-plan__tag { display: inline-block; font-size: 10px; font-weight: 700; padding: 4px 10px; border-radius: 3px; letter-spacing: var(--tb-label-ls, normal); text-transform: uppercase; margin-bottom: 14px; background: var(--tb-bg3); color: var(--tb-text2); }
.trejka-plan__tag--pro { background: var(--tb-red-tint); color: var(--tb-red); }
.trejka-plan__tag--accent { background: var(--tb-cream); color: var(--tb-text); border: 1px solid var(--tb-border2); }
.trejka-plan__name { font-family: var(--tb-card-ff, var(--tb-font-d)); font-size: var(--tb-card-title, clamp(22px, 3vw, 28px)); font-weight: 700; color: var(--tb-text); letter-spacing: var(--tb-title-ls, normal); margin-bottom: 6px; }
.trejka-plan__desc { font-size: 13px; color: var(--tb-text3); margin-bottom: 24px; min-height: 38px; line-height: 1.5; }
.trejka-plan__price-wrap { display: flex; align-items: baseline; gap: 4px; margin-bottom: 6px; }
.trejka-plan__currency { font-size: 18px; font-weight: 700; color: var(--tb-text2); margin-right: 2px; }
.trejka-plan__price { font-family: var(--tb-font-d); font-size: clamp(30px, 6vw, 46px); font-weight: 700; color: var(--tb-text); letter-spacing: var(--tb-title-ls, normal); line-height: 1; }
.trejka-plan__period { font-size: 13px; color: var(--tb-text3); }
.trejka-plan__note { font-size: 11px; color: var(--tb-green); font-weight: 700; margin-bottom: 22px; }
.trejka-plan__cta { display: block; width: 100%; padding: 13px; text-align: center; font-size: 13px; font-weight: 700; border-radius: 6px; transition: all 0.15s; cursor: pointer; letter-spacing: var(--tb-label-ls, normal); border: 1px solid var(--tb-border2); background: #fff; color: var(--tb-text); }
.trejka-plan__cta:hover { border-color: var(--tb-red); color: var(--tb-red); }
.trejka-plan--featured .trejka-plan__cta { background: var(--tb-red); color: #fff; border-color: var(--tb-red); box-shadow: 0 4px 14px rgba(188,0,0,0.22); }
.trejka-plan--featured .trejka-plan__cta:hover { background: var(--tb-red-h); border-color: var(--tb-red-h); transform: translateY(-1px); box-shadow: 0 6px 18px rgba(188,0,0,0.3); }
.trejka-plan__features { padding: 0 28px 32px; flex: 1; }
.trejka-plan__features-title { font-size: 11px; color: var(--tb-text3); font-weight: 700; text-transform: uppercase; letter-spacing: var(--tb-label-ls, normal); padding-top: 24px; margin-bottom: 14px; border-top: 1px solid var(--tb-border); }
.trejka-plan__features ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.trejka-plan__features li { font-size: 13px; color: var(--tb-text2); display: flex; align-items: flex-start; gap: 9px; line-height: 1.5; }
.trejka-plan__features li::before { content: ''; width: 16px; height: 16px; background: var(--tb-green-tint); border-radius: 50%; flex-shrink: 0; margin-top: 2px; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='%231f8a4c' d='M6.5 11L3 7.5l1-1L6.5 9 12 3.5l1 1z'/></svg>"); background-repeat: no-repeat; background-position: center; }
.trejka-plan__features li strong { color: var(--tb-text); font-weight: 700; }

/* =============================================================
   TESTIMONIALS
   ============================================================= */
.trejka-tests { background: var(--tb-cream); padding: clamp(48px, 8vw, 80px) 0; border-top: 1px solid var(--tb-border); }
.trejka-tests__inner { max-width: var(--tb-wrap); margin: 0 auto; padding: 0 var(--tb-gutter, 0px); }
.trejka-tests__grid { display: grid; grid-template-columns: repeat(var(--tb-cols, 3), 1fr); gap: 22px; }
.trejka-test { background: #fff; border: 1px solid var(--tb-border); border-radius: 10px; padding: 28px; position: relative; transition: all 0.2s; }
.trejka-test:hover { transform: translateY(-2px); box-shadow: var(--tb-shadow-lg); border-color: var(--tb-red-mid); }
.trejka-test::before { content: '\201C'; position: absolute; top: -12px; left: 24px; font-family: var(--tb-font-d); font-size: clamp(54px, 10vw, 90px); color: var(--tb-red); line-height: 1; opacity: 0.18; font-weight: 700; }
.trejka-test__stars { color: #f5b400; font-size: 13px; letter-spacing: var(--tb-label-ls, normal); margin-bottom: 14px; }
.trejka-test__text { font-size: 14px; color: var(--tb-text); line-height: 1.7; margin-bottom: 22px; font-style: italic; }
.trejka-test__author { display: flex; align-items: center; gap: 12px; padding-top: 18px; border-top: 1px solid var(--tb-border); }
.trejka-test__avatar { width: 42px; height: 42px; border-radius: 50%; background: linear-gradient(135deg, var(--tb-red), var(--tb-red-dark)); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px; flex-shrink: 0; font-family: var(--tb-font-d); overflow: hidden; }
.trejka-test__avatar img { width: 100%; height: 100%; object-fit: cover; }
.trejka-test__name { font-size: 13px; font-weight: 700; color: var(--tb-text); }
.trejka-test__role { font-size: 11px; color: var(--tb-text3); margin-top: 2px; }

/* =============================================================
   PORTFOLIO
   ============================================================= */
.trejka-portfolio { padding: clamp(48px, 8vw, 80px) 0; background: var(--tb-bg); }
.trejka-portfolio__inner { max-width: var(--tb-wrap); margin: 0 auto; padding: 0 var(--tb-gutter, 0px); }
.trejka-portfolio__grid { display: grid; grid-template-columns: repeat(var(--tb-cols, 4), 1fr); gap: 18px; }
.trejka-work { background: #fff; border: 1px solid var(--tb-border); border-radius: 10px; overflow: hidden; cursor: pointer; transition: all 0.2s; display: flex; flex-direction: column; }
.trejka-work:hover { border-color: var(--tb-red); transform: translateY(-3px); box-shadow: var(--tb-shadow-lg); }
.trejka-work__thumb { aspect-ratio: 4 / 3; position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; color: rgba(0,0,0,0.25); font-family: var(--tb-font-d); font-size: clamp(20px, 3vw, 28px); font-weight: 700; letter-spacing: var(--tb-title-ls, normal); background: linear-gradient(135deg, var(--tb-red-mid) 0%, var(--tb-red-glow) 100%); }
.trejka-work__thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.trejka-work--t1 .trejka-work__thumb { background: linear-gradient(135deg, #fce4e4 0%, #ffd6d6 100%); color: #bc0000; }
.trejka-work--t2 .trejka-work__thumb { background: linear-gradient(135deg, #f0f6fb 0%, #dce9f5 100%); color: #1e6fa6; }
.trejka-work--t3 .trejka-work__thumb { background: linear-gradient(135deg, #faf3eb 0%, #f0e0c8 100%); color: #a06b30; }
.trejka-work--t4 .trejka-work__thumb { background: linear-gradient(135deg, #eef5ec 0%, #d8ead4 100%); color: #1f8a4c; }
.trejka-work__pattern { position: absolute; inset: 0; opacity: 0.3; background-image: radial-gradient(circle, rgba(0,0,0,0.06) 1px, transparent 1px); background-size: 16px 16px; }
.trejka-work__body { padding: 18px 20px 20px; flex: 1; display: flex; flex-direction: column; }
.trejka-work__cat { font-size: 10px; font-weight: 700; color: var(--tb-text3); letter-spacing: var(--tb-label-ls, normal); text-transform: uppercase; margin-bottom: 8px; }
.trejka-work__title { font-family: var(--tb-card-ff, var(--tb-font-d)); font-size: var(--tb-card-title, 17px); font-weight: 700; color: var(--tb-text); letter-spacing: var(--tb-title-ls, normal); line-height: 1.25; margin-bottom: 10px; }
.trejka-work__result { font-size: 12px; color: var(--tb-text2); padding: 8px 12px; background: var(--tb-blush); border-radius: 6px; display: inline-block; margin-top: auto; align-self: flex-start; }
.trejka-work__result strong { color: var(--tb-red); font-weight: 700; }

/* =============================================================
   FAQ (akordeon — natywny <details>, bez JS)
   ============================================================= */
.trejka-faq { padding: clamp(44px, 7vw, 64px) 0; }
.trejka-faq__inner { max-width: 820px; margin: 0 auto; padding: 0 var(--tb-gutter, 0px); }
.trejka-faq__list { display: flex; flex-direction: column; gap: 10px; }
.trejka-faq-item { background: #fff; border: 1px solid var(--tb-border); border-radius: 8px; overflow: hidden; transition: all 0.15s; }
.trejka-faq-item:hover { border-color: var(--tb-border2); }
.trejka-faq-item[open] { border-color: var(--tb-red-mid); }
.trejka-faq-item__q { padding: 18px 22px; font-size: 14px; font-weight: 700; color: var(--tb-text); cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 14px; transition: background 0.15s; list-style: none; }
.trejka-faq-item__q::-webkit-details-marker { display: none; }
.trejka-faq-item__q:hover { background: var(--tb-cream); }
.trejka-faq-item__icon { width: 22px; height: 22px; flex-shrink: 0; color: var(--tb-red); transition: transform 0.2s; }
.trejka-faq-item[open] .trejka-faq-item__icon { transform: rotate(45deg); }
.trejka-faq-item__a { padding: 0 22px 18px; font-size: 13px; color: var(--tb-text2); line-height: 1.7; }

/* =============================================================
   CTA
   ============================================================= */
.trejka-cta { padding: clamp(48px, 8vw, 80px) 0; }
.trejka-cta__inner { max-width: 1100px; margin: 0 auto; padding: 0 var(--tb-gutter, 0px); }
.trejka-cta__box { background: linear-gradient(135deg, var(--tb-red) 0%, var(--tb-red-dark) 100%); border-radius: 16px; padding: clamp(40px, 7vw, 64px) clamp(24px, 5vw, 56px); text-align: center; position: relative; overflow: hidden; box-shadow: 0 20px 60px rgba(188,0,0,0.25); }
.trejka-cta__box::before { content: ''; position: absolute; top: -100px; right: -100px; width: 400px; height: 400px; background: radial-gradient(circle, rgba(255,255,255,0.15) 0%, transparent 60%); }
.trejka-cta__box::after { content: ''; position: absolute; bottom: -100px; left: -100px; width: 300px; height: 300px; background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 60%); }
.trejka-cta__content { position: relative; }
.trejka-cta__title { font-family: var(--tb-cta-ff, var(--tb-font-d)); font-size: var(--tb-cta-title-size, clamp(26px, 5vw, 42px)); font-weight: 700; color: #fff; line-height: 1.12; letter-spacing: var(--tb-title-ls, normal); margin-bottom: 16px; }
.trejka-cta__title .tb-hl { color: var(--tb-red-glow); }
.trejka-cta__sub { font-family: var(--tb-cta-ff, inherit); font-size: var(--tb-cta-sub-size, 16px); color: rgba(255,255,255,0.85); line-height: 1.65; max-width: 580px; margin: 0 auto 32px; }
.trejka-cta__btns { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.trejka-cta__box--bg { background-color: #1a1a1a; box-shadow: 0 20px 60px rgba(0,0,0,0.3); }
.trejka-cta__box--bg::before,
.trejka-cta__box--bg::after { display: none; }

/* =============================================================
   FEATURE BANNER (baner opieki)
   ============================================================= */
.trejka-banner { background: linear-gradient(135deg, var(--tb-red) 0%, var(--tb-red-dark) 100%); padding: clamp(48px, 8vw, 80px) 0; position: relative; overflow: hidden; }
.trejka-banner::before { content: ''; position: absolute; top: -100px; right: -100px; width: 500px; height: 500px; background: radial-gradient(circle, rgba(255,255,255,0.10) 0%, transparent 60%); }
.trejka-banner::after { content: ''; position: absolute; bottom: -100px; left: -100px; width: 400px; height: 400px; background: radial-gradient(circle, rgba(255,255,255,0.06) 0%, transparent 60%); }
.trejka-banner__inner { max-width: var(--tb-wrap); margin: 0 auto; padding: 0 var(--tb-gutter, 0px); display: grid; grid-template-columns: 1.2fr 1fr; gap: 56px; align-items: center; position: relative; }
.trejka-banner__badge { display: inline-flex; align-items: center; gap: 7px; background: rgba(255,255,255,0.15); border: 1px solid rgba(255,255,255,0.3); border-radius: 100px; padding: 6px 14px; font-size: 11px; color: #fff; font-weight: 700; letter-spacing: var(--tb-label-ls, normal); text-transform: uppercase; margin-bottom: 18px; }
.trejka-banner__badge .tb-badge__dot { background: #fff; }
.trejka-banner__title { font-family: var(--tb-font-d); font-size: clamp(26px, 5vw, 42px); font-weight: 700; color: #fff; line-height: 1.1; letter-spacing: var(--tb-title-ls, normal); margin: 0 0 18px; }
.trejka-banner__title .tb-hl { color: var(--tb-red-glow); }
.trejka-banner__desc { font-size: 16px; color: rgba(255,255,255,0.85); line-height: 1.65; margin-bottom: 28px; }
.trejka-banner__features { display: flex; flex-direction: column; gap: 12px; margin-bottom: 32px; }
.trejka-banner__feat { font-size: 14px; color: rgba(255,255,255,0.92); line-height: 1.5; padding-left: 28px; position: relative; }
.trejka-banner__feat::before { content: ''; position: absolute; left: 0; top: 2px; width: 18px; height: 18px; background: #fff; border-radius: 50%; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'><path fill='%23bc0000' d='M7.5 12.5L4 9l1-1 2.5 2.5L13 5l1 1z'/></svg>"); background-repeat: no-repeat; background-position: center; }
.trejka-banner__feat strong { color: #fff; font-weight: 700; }
.trejka-banner__ctas { display: flex; gap: 12px; flex-wrap: wrap; }
.trejka-banner__ctas .tb-btn--primary { background: #fff; color: var(--tb-red); }
.trejka-banner__ctas .tb-btn--primary:hover { background: var(--tb-blush); }
.trejka-banner__stats { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.trejka-banner__stat { background: rgba(255,255,255,0.10); border: 1px solid rgba(255,255,255,0.20); border-radius: 12px; padding: 26px 22px; transition: all 0.2s; }
.trejka-banner__stat:hover { background: rgba(255,255,255,0.16); transform: translateY(-2px); }
.trejka-banner__stat strong { font-family: var(--tb-font-d); display: block; font-size: clamp(24px, 4.5vw, 36px); font-weight: 700; color: #fff; letter-spacing: var(--tb-title-ls, normal); line-height: 1; margin-bottom: 8px; }
.trejka-banner__stat span { font-size: 12px; color: rgba(255,255,255,0.75); font-weight: 600; }

/* =============================================================
   RESPONSYWNOŚĆ (przeniesione z mockupu)
   ============================================================= */
@media (max-width: 1024px) {
	.trejka-hero__inner,
	.trejka-banner__inner { grid-template-columns: 1fr; gap: 40px; }
	.trejka-features__grid,
	.trejka-pricing__grid,
	.trejka-tests__grid { grid-template-columns: 1fr; }
	.trejka-links__grid,
	.trejka-portfolio__grid { grid-template-columns: repeat(2, 1fr); }
	.trejka-steps__grid { grid-template-columns: repeat(2, 1fr); }
	.trejka-steps__grid::before { display: none; }
	.trejka-plan--featured { transform: none; }
}
@media (max-width: 640px) {
	.trejka-links__grid,
	.trejka-portfolio__grid { grid-template-columns: 1fr; }
	.trejka-stats__inner { grid-template-columns: repeat(2, 1fr); gap: 28px 0; }
	.trejka-stat { border-right: none; }
	.trejka-hero__trust { gap: 20px; }
}

/* =============================================================
   HEADING (samodzielny tytuł sekcji)
   ============================================================= */
.trejka-heading__inner { max-width: var(--tb-wrap); margin: 0 auto; padding: 8px 28px; }
.trejka-heading .tb-head { margin-bottom: 0; }

/* =============================================================
   PRODUCTS (WooCommerce — dynamiczne)
   ============================================================= */
.trejka-products { padding: clamp(44px, 7vw, 64px) 0; }
.trejka-products__inner { max-width: var(--tb-wrap); margin: 0 auto; padding: 0 var(--tb-gutter, 0px); }
.trejka-products__grid { display: grid; grid-template-columns: repeat(var(--tb-cols, 4), 1fr); gap: 18px; }
.trejka-product { background: #fff; border: 1px solid var(--tb-border); border-radius: 8px; overflow: hidden; transition: all 0.2s ease; display: flex; flex-direction: column; position: relative; }
.trejka-product:hover { border-color: var(--tb-red); transform: translateY(-3px); box-shadow: var(--tb-shadow-lg); }
.trejka-product__link { display: block; }
.trejka-product__img { aspect-ratio: 16 / 10; background: var(--tb-bg3); position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.trejka-product__img img { width: 100%; height: 100%; object-fit: cover; }
.trejka-product__img-fallback { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--tb-blush) 0%, var(--tb-red-mid) 100%); color: var(--tb-red); font-family: var(--tb-font-d); font-weight: 700; font-size: clamp(22px, 3.5vw, 30px); letter-spacing: var(--tb-title-ls, normal); }
.trejka-product__badge { position: absolute; top: 12px; left: 12px; background: var(--tb-red); color: #fff; font-size: 10px; font-weight: 700; padding: 4px 9px; border-radius: 3px; letter-spacing: var(--tb-label-ls, normal); text-transform: uppercase; box-shadow: 0 2px 6px rgba(0,0,0,0.08); }
.trejka-product__cat { position: absolute; top: 12px; right: 12px; background: rgba(255,255,255,0.92); color: var(--tb-text2); font-size: 10px; font-weight: 700; padding: 4px 9px; border-radius: 3px; letter-spacing: var(--tb-label-ls, normal); text-transform: uppercase; }
.trejka-product__body { padding: 18px 20px 20px; flex: 1; display: flex; flex-direction: column; }
.trejka-product__title { font-family: var(--tb-font-d); font-size: 18px; font-weight: 700; color: var(--tb-text); line-height: 1.25; margin-bottom: 8px; letter-spacing: var(--tb-title-ls, normal); }
.trejka-product__title a { color: inherit; }
.trejka-product__title a:hover { color: var(--tb-red); }
.trejka-product__desc { font-size: 13px; color: var(--tb-text2); line-height: 1.55; margin-bottom: 16px; flex: 1; }
.trejka-product__foot { display: flex; align-items: center; justify-content: space-between; padding-top: 14px; border-top: 1px solid var(--tb-border); gap: 10px; }
.trejka-product__price { font-family: var(--tb-font-d); font-size: clamp(18px, 2.6vw, 22px); font-weight: 700; color: var(--tb-text); letter-spacing: var(--tb-title-ls, normal); line-height: 1.1; }
.trejka-product__price del { font-size: 13px; color: var(--tb-text3); font-weight: 400; margin-right: 6px; }
.trejka-product__price ins { text-decoration: none; }
.trejka-product__price .woocommerce-Price-currencySymbol { font-size: 14px; font-weight: 700; color: var(--tb-text2); }
.trejka-product__cta { background: var(--tb-text); color: #fff; padding: 10px 16px; font-size: 12px; font-weight: 700; border-radius: 4px; transition: all 0.15s; display: inline-flex; align-items: center; gap: 6px; letter-spacing: var(--tb-label-ls, normal); white-space: nowrap; }
.trejka-product__cta:hover { background: var(--tb-red); transform: translateY(-1px); }
.trejka-products__notice { color: var(--tb-text3); padding: 24px; text-align: center; border: 1px dashed var(--tb-border2); border-radius: 8px; font-size: 13px; }

@media (max-width: 1024px) {
	.trejka-products__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
	.trejka-products__grid { grid-template-columns: 1fr; }
}

/* =============================================================
   TEAM (zespół)
   ============================================================= */
.trejka-team__inner { max-width: var(--tb-wrap); margin: 0 auto; padding: 0 var(--tb-gutter, 0px); }
.trejka-team__grid { display: grid; grid-template-columns: repeat(var(--tb-cols, 3), 1fr); gap: 16px; }
.trejka-member { background: #fff; border: 1px solid var(--tb-border); border-radius: 12px; padding: 28px 24px; text-align: center; transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease; }
.trejka-member:hover { border-color: var(--tb-red); transform: translateY(-4px); box-shadow: var(--tb-shadow-lg); }
.trejka-member__avatar { transition: transform 0.2s ease; }
.trejka-member:hover .trejka-member__avatar { transform: scale(1.06); }
.trejka-member__avatar { width: 76px; height: 76px; border-radius: 50%; margin: 0 auto 14px; object-fit: cover; display: block; }
.trejka-member__avatar--fallback { display: flex; align-items: center; justify-content: center; background: var(--tb-red); color: #fff; font-family: var(--tb-font-d); font-weight: 700; font-size: 28px; letter-spacing: var(--tb-title-ls, normal); }
.trejka-member__name { font-family: var(--tb-card-ff, var(--tb-font-d)); font-size: var(--tb-card-title, 18px); font-weight: 700; color: var(--tb-text); margin: 0 0 3px; letter-spacing: var(--tb-title-ls, normal); }
.trejka-member__role { font-size: 12px; color: var(--tb-red); font-weight: 700; letter-spacing: var(--tb-label-ls, normal); text-transform: uppercase; margin: 0 0 10px; }
.trejka-member__bio { font-size: 13px; color: var(--tb-text2); line-height: 1.6; margin: 0; }
.trejka-member__avatar--fallback svg { width: 34px; height: 34px; }
.trejka-member__contact { display: flex; flex-direction: column; gap: 6px; margin-top: 14px; align-items: center; }
.trejka-member__link { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; color: var(--tb-text2); font-weight: 600; transition: color 0.15s; }
.trejka-member__link:hover { color: var(--tb-red); }
.trejka-member__link svg { width: 15px; height: 15px; flex-shrink: 0; }

/* =============================================================
   CHECKLIST (lista kontrolna)
   ============================================================= */
.trejka-checklist__inner { max-width: var(--tb-wrap); margin: 0 auto; padding: 0 var(--tb-gutter, 0px); }
.trejka-checklist__list { display: grid; grid-template-columns: repeat(var(--tb-cols, 2), 1fr); gap: 14px; }
.trejka-check { display: flex; gap: 14px; align-items: flex-start; background: #fff; border: 1px solid var(--tb-border); border-radius: 10px; padding: 18px 20px; transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease; }
.trejka-check:hover { border-color: var(--tb-red); transform: translateY(-2px); box-shadow: var(--tb-shadow-lg); }
.trejka-check__icon { transition: transform 0.2s ease; }
.trejka-check:hover .trejka-check__icon { transform: scale(1.1); }
.trejka-check__icon { flex-shrink: 0; width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.trejka-check__icon svg { width: 16px; height: 16px; }
.trejka-check__icon--check { background: var(--tb-red-tint); color: var(--tb-red); }
.trejka-check__icon--cross { background: var(--tb-bg3); color: var(--tb-text3); }
.trejka-check__body { flex: 1; min-width: 0; }
.trejka-check__title { font-family: var(--tb-font-d); font-weight: 700; color: var(--tb-text); margin: 0 0 4px; font-size: 15px; letter-spacing: var(--tb-title-ls, normal); }
.trejka-check__desc { font-size: 13px; color: var(--tb-text2); line-height: 1.55; margin: 0; }

@media (max-width: 860px) {
	.trejka-team__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
	.trejka-team__grid, .trejka-checklist__list { grid-template-columns: 1fr; }
}

/* =============================================================
   SPACER / SEPARATOR (odstęp + linie dekoracyjne)
   ============================================================= */
.trejka-spacer { width: 100%; display: flex; align-items: center; justify-content: center; }
.trejka-spacer__inner { width: 100%; }
.trejka-spacer--contained .trejka-spacer__inner { max-width: var(--tb-wrap); margin: 0 auto; padding: 0 var(--tb-gutter, 0px); }
.trejka-spacer--short .trejka-spacer__inner { width: 64px; }
.trejka-spacer__line { height: 0; border: 0; border-top-width: 1px; border-top-style: solid; }

/* Tony */
.trejka-spacer--neutral .trejka-spacer__line { border-color: var(--tb-border2); color: var(--tb-border2); }
.trejka-spacer--red .trejka-spacer__line { border-color: var(--tb-red); color: var(--tb-red); }

/* Style linii */
.trejka-spacer--solid .trejka-spacer__line { border-top-style: solid; }
.trejka-spacer--dashed .trejka-spacer__line { border-top-style: dashed; }
.trejka-spacer--dotted .trejka-spacer__line { border-top-width: 2px; border-top-style: dotted; }
.trejka-spacer--gradient .trejka-spacer__line { border: 0; height: 2px; border-radius: 2px; }
.trejka-spacer--gradient.trejka-spacer--neutral .trejka-spacer__line { background: linear-gradient(90deg, transparent, var(--tb-border2), transparent); }
.trejka-spacer--gradient.trejka-spacer--red .trejka-spacer__line { background: linear-gradient(90deg, transparent, var(--tb-red), transparent); }

/* Linia z rombem na środku */
.trejka-spacer--diamond .trejka-spacer__inner { display: flex; align-items: center; gap: 14px; }
.trejka-spacer--diamond .trejka-spacer__line { flex: 1; border-top-style: solid; opacity: 0.6; }
.trejka-spacer__diamond { width: 8px; height: 8px; flex-shrink: 0; transform: rotate(45deg); background: currentColor; }
.trejka-spacer--diamond.trejka-spacer--neutral { color: var(--tb-border2); }
.trejka-spacer--diamond.trejka-spacer--red { color: var(--tb-red); }

/* =============================================================
   TIMELINE / PROCES (poziome karty z numerem i plakietką)
   ============================================================= */
.trejka-timeline__inner { max-width: var(--tb-wrap); margin: 0 auto; padding: 0 var(--tb-gutter, 0px); }
.trejka-timeline__list { counter-reset: tstep; display: grid; gap: 14px; max-width: 880px; margin: 0 auto; }
.trejka-tstep { counter-increment: tstep; display: flex; gap: 18px; align-items: flex-start; background: #fff; border: 1px solid var(--tb-border); border-radius: 12px; padding: 22px 24px; transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease; }
.trejka-tstep:hover { border-color: var(--tb-red); transform: translateY(-2px); box-shadow: var(--tb-shadow-lg); }
.trejka-tstep__num { flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%; background: var(--tb-red); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--tb-font-d); font-weight: 700; font-size: 17px; box-shadow: 0 4px 14px rgba(188,0,0,0.18); }
.trejka-tstep__num::before { content: counter(tstep); }
.trejka-tstep__body { flex: 1; min-width: 0; }
.trejka-tstep__title { font-family: var(--tb-font-d); font-weight: 700; font-size: 18px; color: var(--tb-text); margin: 0 0 5px; letter-spacing: var(--tb-title-ls, normal); }
.trejka-tstep__desc { font-size: 14px; color: var(--tb-text2); line-height: 1.6; margin: 0; }
.trejka-tstep__meta { flex-shrink: 0; align-self: flex-start; background: var(--tb-bg3); color: var(--tb-text2); font-size: 11px; font-weight: 700; letter-spacing: var(--tb-label-ls, normal); text-transform: uppercase; padding: 6px 12px; border-radius: 100px; white-space: nowrap; }

@media (max-width: 600px) {
	.trejka-tstep { display: grid; grid-template-columns: 40px 1fr; column-gap: 14px; row-gap: 8px; align-items: start; }
	.trejka-tstep__num { grid-column: 1; grid-row: 1; }
	.trejka-tstep__body { grid-column: 2; grid-row: 1; }
	.trejka-tstep__title { overflow-wrap: break-word; }
	.trejka-tstep__meta { grid-column: 2; grid-row: 2; justify-self: start; align-self: start; margin: 0; }
}

/* =============================================================
   TAG CARDS (karty z etykietą-pigułką)
   ============================================================= */
.trejka-tagcards__inner { max-width: var(--tb-wrap); margin: 0 auto; padding: 0 var(--tb-gutter, 0px); }
.trejka-tagcards__grid { display: grid; grid-template-columns: repeat(var(--tb-cols, 3), 1fr); gap: 18px; }
.trejka-tagcard { background: #fff; border: 1px solid var(--tb-border); border-radius: 14px; padding: 28px 26px; transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease; }
.trejka-tagcard:hover { border-color: var(--tb-red); transform: translateY(-4px); box-shadow: var(--tb-shadow-lg); }
.trejka-tagcard__tag { display: inline-block; background: var(--tb-red-tint); color: var(--tb-red); font-size: 11px; font-weight: 700; letter-spacing: var(--tb-label-ls, normal); text-transform: uppercase; padding: 5px 12px; border-radius: 100px; margin-bottom: 16px; }
.trejka-tagcard__title { font-family: var(--tb-card-ff, var(--tb-font-d)); font-weight: 700; font-size: var(--tb-card-title, clamp(17px, 2.2vw, 20px)); color: var(--tb-text); margin: 0 0 10px; letter-spacing: var(--tb-title-ls, normal); }
.trejka-tagcard__desc { font-size: 14px; color: var(--tb-text2); line-height: 1.6; margin: 0; }

@media (max-width: 1024px) {
	.trejka-tagcards__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
	.trejka-tagcards__grid { grid-template-columns: 1fr; }
}

/* === Tekst sekcji (trejka/text-section) === */
.trejka-textsec { padding: clamp(48px, 8vw, 80px) 0; }
.trejka-textsec__inner { max-width: var(--tb-wrap); margin: 0 auto; padding: 0 var(--tb-gutter, 0px); }
.trejka-textsec__body { font-family: var(--tb-textsec-ff, var(--tb-font-b)); color: var(--tb-text2); font-size: var(--tb-textsec-body-size, 16px); line-height: 1.75; }
.trejka-textsec__body p { margin: 0 0 16px; }
.trejka-textsec__body p:last-child { margin-bottom: 0; }
.trejka-textsec__body strong { color: var(--tb-text); font-weight: 700; }
.trejka-textsec__body a { color: var(--tb-red); text-decoration: underline; text-underline-offset: 2px; }
.trejka-textsec--narrow .trejka-textsec__body { max-width: 760px; }
.trejka-textsec--narrow.trejka-textsec--pos-left .trejka-textsec__body { margin-left: 0; margin-right: auto; }
.trejka-textsec--narrow.trejka-textsec--pos-center .trejka-textsec__body { margin-left: auto; margin-right: auto; }
.trejka-textsec--c .trejka-textsec__body { text-align: center; }

/* === Porównanie 2 kolumny (trejka/compare) === */
.trejka-compare { padding: clamp(48px, 8vw, 80px) 0; }
.trejka-compare__inner { max-width: var(--tb-wrap); margin: 0 auto; padding: 0 var(--tb-gutter, 0px); }
.trejka-compare__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; }
.trejka-compare__col { position: relative; background: #fff; border: 1px solid var(--tb-border); border-radius: 14px; padding: 28px 26px; transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease; }
.trejka-compare__col:hover { transform: translateY(-2px); box-shadow: var(--tb-shadow-lg); }
.trejka-compare__col.is-highlight { border-color: var(--tb-red); box-shadow: var(--tb-shadow-red); }
.trejka-compare__badge { display: inline-block; font-family: var(--tb-font-d); font-size: 11px; font-weight: 700; letter-spacing: var(--tb-label-ls, normal); text-transform: uppercase; color: var(--tb-red); background: var(--tb-red-tint); border-radius: 999px; padding: 4px 12px; margin-bottom: 12px; }
.trejka-compare__col.is-highlight .trejka-compare__badge { background: var(--tb-red); color: #fff; }
.trejka-compare__title { font-family: var(--tb-font-d); font-weight: 800; font-size: 19px; color: var(--tb-text); letter-spacing: var(--tb-title-ls, normal); margin: 0 0 16px; }
.trejka-compare__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.trejka-compare__list li { display: flex; align-items: flex-start; gap: 12px; font-size: 14px; color: var(--tb-text2); line-height: 1.5; }
.trejka-compare__list li::before { flex-shrink: 0; width: 22px; height: 22px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; line-height: 1; margin-top: 1px; }
.trejka-compare__col--check .trejka-compare__list li::before { content: '✓'; background: var(--tb-red-tint); color: var(--tb-red); }
.trejka-compare__col--cross .trejka-compare__list li::before { content: '✕'; background: var(--tb-bg3); color: var(--tb-text3); }
.trejka-compare__col--neutral .trejka-compare__list li::before { content: '–'; background: var(--tb-bg3); color: var(--tb-text3); }
.trejka-compare__col.is-highlight .trejka-compare__list li::before { background: var(--tb-red); color: #fff; }

@media (max-width: 640px) {
	.trejka-compare__grid { grid-template-columns: 1fr; }
}

/* === Karta z etykietą jako link (cały box klikalny) === */
.trejka-tagcard--link { display: block; text-decoration: none; color: inherit; cursor: pointer; }
.trejka-tagcard--link:hover { color: inherit; }
.trejka-tagcard__arrow {
	display: inline-flex; align-items: center; justify-content: center;
	width: 30px; height: 30px; border-radius: 50%;
	background: var(--tb-red-tint); color: var(--tb-red);
	font-size: 15px; font-weight: 700; line-height: 1; margin-top: 16px;
	transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease;
}
.trejka-tagcard--link:hover .trejka-tagcard__arrow { transform: translateX(3px); background: var(--tb-red); color: #fff; }

/* === Karta funkcji jako link (cały box klikalny) === */
.trejka-feature--link { display: block; text-decoration: none; color: inherit; cursor: pointer; }
.trejka-feature--link:hover { color: inherit; }
.trejka-feature__arrow {
	display: inline-flex; align-items: center; justify-content: center;
	width: 30px; height: 30px; border-radius: 50%;
	background: var(--tb-red-tint); color: var(--tb-red);
	font-size: 15px; font-weight: 700; line-height: 1; margin-top: 16px;
	transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease;
}
.trejka-feature--link:hover .trejka-feature__arrow { transform: translateX(3px); background: var(--tb-red); color: #fff; }

/* ============================================================
   TREJKA Marketing/SEO — Review Box
   ============================================================ */
.trejka-review {
	max-width: var(--tb-wrap, 1240px);
	margin-left: auto; margin-right: auto;
	background: var(--tb-bg2, #fff);
	border: 1px solid var(--tb-border, #e8e8ee);
	border-radius: 16px;
	padding: 28px 30px;
	box-shadow: var(--tb-shadow, 0 4px 20px rgba(0,0,0,0.05));
}
.trejka-review__head { display: flex; align-items: center; gap: 24px; justify-content: space-between; }
.trejka-review__heading { flex: 1; min-width: 0; }
.trejka-review__title { font-family: var(--tb-font-d); font-size: 1.5rem; font-weight: 800; margin: 0 0 6px; color: var(--tb-text, #14141c); }
.trejka-review__summary { margin: 0; color: var(--tb-text2, #5a5a6a); font-size: 1rem; line-height: 1.55; }
.trejka-review__scorebox { display: flex; flex-direction: column; align-items: center; gap: 8px; flex-shrink: 0; text-align: center; }
.trejka-review__score {
	width: 78px; height: 78px; border-radius: 50%;
	display: grid; place-items: center;
	font-family: var(--tb-font-d); font-size: 1.85rem; font-weight: 800; color: #fff;
	background: var(--tb-red); box-shadow: var(--tb-shadow-red, 0 8px 24px rgba(188,0,0,0.22));
}
.trejka-review__scorelabel { font-size: 0.78rem; font-weight: 700; letter-spacing: var(--tb-label-ls, normal); text-transform: uppercase; color: var(--tb-text3, #8a8a98); }

.trejka-review__criterias { margin-top: 24px; display: grid; gap: 14px; }
.trejka-review__crhead { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 6px; gap: 12px; }
.trejka-review__crtitle { font-weight: 600; color: var(--tb-text, #14141c); }
.trejka-review__crval { font-family: var(--tb-font-d); font-weight: 800; color: var(--tb-red); white-space: nowrap; }
.trejka-review__crval small { color: var(--tb-text3, #8a8a98); font-weight: 600; font-size: 0.7em; }
.trejka-review__bar { height: 8px; border-radius: 999px; background: var(--tb-red-tint, #f6e6e6); overflow: hidden; }
.trejka-review__bar > span { display: block; height: 100%; border-radius: 999px; background: var(--tb-red); }

/* edytor: input wartości kryterium */
.trejka-review__credit { display: inline-flex; align-items: center; gap: 4px; }
.trejka-review__credit input { width: 64px; }
.trejka-review__add, .trejka-review__del { vertical-align: middle; }

.trejka-review__proscons { margin-top: 26px; display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.trejka-review__col { background: var(--tb-bg3, #fafafb); border: 1px solid var(--tb-border, #e8e8ee); border-radius: 12px; padding: 18px 20px; }
.trejka-review__coltitle { font-family: var(--tb-font-d); font-weight: 800; font-size: 1.05rem; margin-bottom: 12px; color: var(--tb-text, #14141c); }
.trejka-review__col--pos .trejka-review__coltitle { color: var(--tb-green, #16a34a); }
.trejka-review__col--neg .trejka-review__coltitle { color: var(--tb-red); }
.trejka-review__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.trejka-review__list li { position: relative; padding-left: 28px; color: var(--tb-text2, #5a5a6a); line-height: 1.45; }
.trejka-review__list li::before { position: absolute; left: 0; top: 0; font-weight: 800; }
.trejka-review__col--pos .trejka-review__list li::before { content: "✓"; color: var(--tb-green, #16a34a); }
.trejka-review__col--neg .trejka-review__list li::before { content: "✕"; color: var(--tb-red); }
.trejka-review__list li .trejka-review__del { position: absolute; right: -6px; top: -4px; }

.trejka-review__cta { margin-top: 24px; }
.trejka-review__cta .tb-btn { display: inline-flex; }

@media (max-width: 640px) {
	.trejka-review__head { flex-direction: column-reverse; align-items: flex-start; gap: 16px; }
	.trejka-review__proscons { grid-template-columns: 1fr; }
}

/* ============================================================
   TREJKA Marketing/SEO — Score Box
   ============================================================ */
.trejka-scorebox { position: relative; max-width: var(--tb-wrap, 1240px); margin-left: auto; margin-right: auto; background: var(--tb-bg2, #fff); border: 1px solid var(--tb-border, #e8e8ee); border-radius: 16px; padding: 26px 28px; box-shadow: var(--tb-shadow, 0 4px 20px rgba(0,0,0,0.05)); }
.trejka-scorebox__label { display: inline-flex; align-items: center; gap: 6px; background: var(--tb-red); color: #fff; font-weight: 700; font-size: 0.8rem; letter-spacing: var(--tb-label-ls, normal); text-transform: uppercase; padding: 6px 14px; border-radius: 999px; margin-bottom: 18px; }
.trejka-scorebox__body { display: flex; gap: 24px; align-items: flex-start; }
.trejka-scorebox__scorebox { flex-shrink: 0; text-align: center; display: flex; flex-direction: column; gap: 6px; align-items: center; }
.trejka-scorebox__score { width: 84px; height: 84px; border-radius: 18px; display: grid; place-items: center; background: var(--tb-red-tint, #f6e6e6); color: var(--tb-red); font-family: var(--tb-font-d); font-weight: 800; font-size: 2rem; }
.trejka-scorebox__scorelabel { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: var(--tb-label-ls, normal); color: var(--tb-text3, #8a8a98); }
.trejka-scorebox__content { flex: 1; min-width: 0; }
.trejka-scorebox__title { font-family: var(--tb-font-d); font-size: 1.4rem; font-weight: 800; margin: 0 0 6px; color: var(--tb-text, #14141c); }
.trejka-scorebox__desc { margin: 0 0 14px; color: var(--tb-text2, #5a5a6a); line-height: 1.55; }
.trejka-scorebox__proscons { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 14px 0; }
.trejka-scorebox__coltitle { font-weight: 800; margin-bottom: 8px; font-family: var(--tb-font-d); }
.trejka-scorebox__col--pos .trejka-scorebox__coltitle { color: var(--tb-green, #16a34a); }
.trejka-scorebox__col--neg .trejka-scorebox__coltitle { color: var(--tb-red); }
.trejka-scorebox__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; }
.trejka-scorebox__list li { position: relative; padding-left: 24px; color: var(--tb-text2, #5a5a6a); line-height: 1.4; }
.trejka-scorebox__list li::before { position: absolute; left: 0; font-weight: 800; }
.trejka-scorebox__col--pos .trejka-scorebox__list li::before { content: "✓"; color: var(--tb-green, #16a34a); }
.trejka-scorebox__col--neg .trejka-scorebox__list li::before { content: "✕"; color: var(--tb-red); }
.trejka-scorebox__buttons { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
@media (max-width: 640px) { .trejka-scorebox__body { flex-direction: column; } .trejka-scorebox__proscons { grid-template-columns: 1fr; } }

/* ============================================================
   TREJKA Marketing/SEO — How-To
   ============================================================ */
.trejka-howto { max-width: var(--tb-wrap, 1240px); margin-left: auto; margin-right: auto; }
.trejka-howto__steps { list-style: none; counter-reset: tbhowto; margin: 24px 0 0; padding: 0; display: grid; gap: 16px; }
.trejka-howto__step { counter-increment: tbhowto; position: relative; padding: 20px 22px 20px 66px; background: var(--tb-bg2, #fff); border: 1px solid var(--tb-border, #e8e8ee); border-radius: 14px; }
.trejka-howto__step::before { content: counter(tbhowto); position: absolute; left: 18px; top: 20px; width: 34px; height: 34px; border-radius: 50%; background: var(--tb-red); color: #fff; display: grid; place-items: center; font-family: var(--tb-font-d); font-weight: 800; }
.trejka-howto__steptitle { font-family: var(--tb-font-d); font-size: 1.15rem; font-weight: 800; margin: 0 0 6px; color: var(--tb-text, #14141c); }
.trejka-howto__steptext { margin: 0; color: var(--tb-text2, #5a5a6a); line-height: 1.55; }
.trejka-howto__stepimg { margin-top: 12px; max-width: 100%; height: auto; border-radius: 10px; border: 1px solid var(--tb-border, #e8e8ee); }
.trejka-howto__steptools { margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--tb-border, #e8e8ee); }
.trejka-howto__add { margin-top: 14px; }

/* ============================================================
   TREJKA Marketing/SEO — Offer Box
   ============================================================ */
.trejka-offer { position: relative; max-width: var(--tb-wrap, 1240px); margin-left: auto; margin-right: auto; display: flex; gap: 24px; align-items: center; background: var(--tb-bg2, #fff); border: 1px solid var(--tb-border, #e8e8ee); border-radius: 16px; padding: 22px 26px; box-shadow: var(--tb-shadow, 0 4px 20px rgba(0,0,0,0.05)); }
.trejka-offer__badge { position: absolute; top: -12px; left: 22px; background: var(--tb-red); color: #fff; font-weight: 800; font-size: 0.82rem; padding: 5px 12px; border-radius: 999px; box-shadow: var(--tb-shadow-red, 0 8px 24px rgba(188,0,0,0.22)); }
.trejka-offer__thumb { flex-shrink: 0; width: 120px; }
.trejka-offer__thumb img { width: 100%; height: auto; border-radius: 10px; }
.trejka-offer__main { flex: 1; min-width: 0; }
.trejka-offer__name { font-family: var(--tb-font-d); font-size: 1.3rem; font-weight: 800; margin: 0 0 6px; color: var(--tb-text, #14141c); }
.trejka-offer__desc { margin: 0 0 6px; color: var(--tb-text2, #5a5a6a); line-height: 1.5; }
.trejka-offer__disclaimer { margin: 0; color: var(--tb-text3, #8a8a98); font-size: 0.82rem; }
.trejka-offer__aside { flex-shrink: 0; text-align: center; display: flex; flex-direction: column; gap: 10px; align-items: stretch; min-width: 168px; }
.trejka-offer__prices { display: flex; flex-direction: column; align-items: center; line-height: 1.1; }
.trejka-offer__old { color: var(--tb-text3, #8a8a98); text-decoration: line-through; font-size: 0.9rem; }
.trejka-offer__price { font-family: var(--tb-font-d); font-weight: 800; font-size: 1.7rem; color: var(--tb-red); }
.trejka-offer__coupon { display: flex; align-items: center; justify-content: center; gap: 6px; border: 1px dashed var(--tb-red); border-radius: 8px; padding: 6px 10px; font-size: 0.85rem; }
.trejka-offer__coupon-label { color: var(--tb-text3, #8a8a98); }
.trejka-offer__coupon-code { font-weight: 800; color: var(--tb-red); letter-spacing: var(--tb-label-ls, normal); }
@media (max-width: 680px) { .trejka-offer { flex-direction: column; align-items: stretch; } .trejka-offer__aside { min-width: 0; } .trejka-offer__thumb { width: 100%; max-width: 200px; } }

/* ============================================================
   TREJKA Marketing/SEO — Offer Listing + Item
   ============================================================ */
.trejka-offerlist { max-width: var(--tb-wrap, 1240px); margin-left: auto; margin-right: auto; }
.trejka-offerlist__items { counter-reset: tboffer; display: grid; gap: 14px; margin-top: 24px; }
.trejka-offeritem { counter-increment: tboffer; position: relative; display: flex; gap: 20px; align-items: center; background: var(--tb-bg2, #fff); border: 1px solid var(--tb-border, #e8e8ee); border-radius: 14px; padding: 18px 22px 18px 56px; }
.trejka-offeritem::before { content: counter(tboffer); position: absolute; left: 16px; top: 50%; transform: translateY(-50%); width: 28px; height: 28px; border-radius: 50%; background: var(--tb-red-tint, #f6e6e6); color: var(--tb-red); display: grid; place-items: center; font-family: var(--tb-font-d); font-weight: 800; font-size: 0.9rem; }
.trejka-offeritem--featured { border-color: var(--tb-red); box-shadow: var(--tb-shadow-red, 0 8px 24px rgba(188,0,0,0.22)); }
.trejka-offeritem__badge { position: absolute; top: -10px; right: 18px; background: var(--tb-red); color: #fff; font-weight: 700; font-size: 0.75rem; padding: 3px 10px; border-radius: 999px; }
.trejka-offeritem__thumb { flex-shrink: 0; width: 84px; }
.trejka-offeritem__thumb img { width: 100%; height: auto; border-radius: 8px; }
.trejka-offeritem__main { flex: 1; min-width: 0; }
.trejka-offeritem__name { font-family: var(--tb-font-d); font-size: 1.15rem; font-weight: 800; margin: 0 0 4px; color: var(--tb-text, #14141c); }
.trejka-offeritem__desc { margin: 4px 0 0; color: var(--tb-text2, #5a5a6a); line-height: 1.45; }
.trejka-offeritem__stars { letter-spacing: var(--tb-label-ls, normal); font-size: 0.95rem; }
.trejka-offeritem__star { color: var(--tb-border2, #d8d8e0); }
.trejka-offeritem__star.is-on { color: #f5b301; }
.trejka-offeritem__aside { flex-shrink: 0; text-align: center; display: flex; flex-direction: column; gap: 8px; min-width: 148px; }
.trejka-offeritem__price { font-family: var(--tb-font-d); font-weight: 800; font-size: 1.3rem; color: var(--tb-red); }
.trejka-offeritem__price small { font-weight: 600; font-size: 0.6em; color: var(--tb-text3, #8a8a98); }
@media (max-width: 680px) { .trejka-offeritem { flex-direction: column; align-items: stretch; padding-left: 22px; } .trejka-offeritem::before { position: static; transform: none; margin-bottom: 8px; } .trejka-offeritem__aside { min-width: 0; } }

/* ============================================================
   TREJKA — Boks boczny (sidebar CTA / kontakt)
   ============================================================ */
.trejka-sidebar-cta { border-radius: 14px; padding: 22px; text-align: center; }
.trejka-sidebar-cta.is-card { background: var(--tb-bg2, #fff); border: 1px solid var(--tb-border, #e8e8ee); box-shadow: var(--tb-shadow, 0 4px 20px rgba(0,0,0,0.05)); }
.trejka-sidebar-cta.is-soft { background: var(--tb-red-tint, #f6e6e6); border: 1px solid var(--tb-red-soft, #f0d8d8); }
.trejka-sidebar-cta.is-solid { background: var(--tb-red); color: #fff; box-shadow: var(--tb-shadow-red, 0 8px 24px rgba(188,0,0,0.22)); }
.trejka-sidebar-cta.is-sticky { position: sticky; top: 24px; }
.trejka-sidebar-cta__icon { font-size: 2rem; line-height: 1; margin-bottom: 10px; color: var(--tb-red); }
.trejka-sidebar-cta__icon svg { width: 32px; height: 32px; display: inline-block; }
.trejka-sidebar-cta.is-solid .trejka-sidebar-cta__icon { color: #fff; }
/* Małe ikony SVG przy telefonie / e-mailu (dziedziczą kolor linku). */
.trejka-sidebar-cta__ic { display: inline-flex; vertical-align: -0.12em; margin-right: 0.3em; }
.trejka-sidebar-cta__ic svg { width: 0.9em; height: 0.9em; }
/* Wariant „Brand card” — biała karta z czerwoną krawędzią, jak w Brand cards. */
.trejka-sidebar-cta.is-brand { background: #fff; border: 1px solid var(--tb-border, #e8e8ee); border-left: 3px solid var(--tb-red); border-radius: 7px; text-align: left; box-shadow: none; transition: box-shadow 0.2s ease, transform 0.15s ease; }
.trejka-sidebar-cta.is-brand:hover { box-shadow: 0 6px 22px rgba(188,0,0,0.12); transform: translateY(-2px); }
.trejka-sidebar-cta.is-brand .trejka-sidebar-cta__icon { color: var(--tb-red); }
.trejka-sidebar-cta__eyebrow { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: var(--tb-label-ls, normal); color: var(--tb-red); margin-bottom: 6px; }
.trejka-sidebar-cta.is-solid .trejka-sidebar-cta__eyebrow { color: rgba(255,255,255,0.85); }
.trejka-sidebar-cta__title { font-family: var(--tb-font-d); font-weight: 800; font-size: 1.2rem; line-height: 1.25; color: var(--tb-text, #14141c); margin-bottom: 8px; }
.trejka-sidebar-cta.is-solid .trejka-sidebar-cta__title { color: #fff; }
.trejka-sidebar-cta__text { font-size: 0.92rem; line-height: 1.5; color: var(--tb-text2, #5a5a6a); margin: 0 0 16px; }
.trejka-sidebar-cta.is-solid .trejka-sidebar-cta__text { color: rgba(255,255,255,0.9); }
.trejka-sidebar-cta__phone { display: block; font-family: var(--tb-font-d); font-weight: 800; font-size: 1.35rem; text-decoration: none; color: var(--tb-red); margin-bottom: 6px; }
.trejka-sidebar-cta.is-solid .trejka-sidebar-cta__phone { color: #fff; }
.trejka-sidebar-cta__phone span, .trejka-sidebar-cta__email span { font-size: 0.85em; }
.trejka-sidebar-cta__email { display: inline-block; font-size: 0.9rem; text-decoration: none; color: var(--tb-text2, #5a5a6a); }
.trejka-sidebar-cta.is-solid .trejka-sidebar-cta__email { color: rgba(255,255,255,0.9); }
.trejka-sidebar-cta__email:hover { color: var(--tb-red); }
.trejka-sidebar-cta.is-solid .trejka-sidebar-cta__email:hover { color: #fff; text-decoration: underline; }
.trejka-sidebar-cta__btn { display: inline-flex; margin-top: 14px; }
.trejka-sidebar-cta.is-solid .tb-btn--primary { background: #fff; color: var(--tb-red); }
.trejka-sidebar-cta.is-solid .tb-btn--primary:hover { background: rgba(255,255,255,0.92); }

/* ============================================================
   TREJKA — Przyciski + tekst (moduł CTA)
   ============================================================ */
.trejka-actions { width: 100%; }
.trejka-actions__toptext { margin: 0 0 16px; color: var(--tb-text2, #5a5a6a); font-size: 1.05rem; line-height: 1.5; }
.trejka-actions__toptext:is(h2, h3, h4) { color: var(--tb-text, #1a1a24); font-weight: 800; line-height: 1.25; }
.trejka-actions.is-center .trejka-actions__toptext { text-align: center; }
.trejka-actions.is-right .trejka-actions__toptext { text-align: right; }
.trejka-actions.is-left .trejka-actions__toptext { text-align: left; }
.trejka-actions__buttons { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.trejka-actions.is-center .trejka-actions__buttons { justify-content: center; }
.trejka-actions.is-right .trejka-actions__buttons { justify-content: flex-end; }
.trejka-actions.is-left .trejka-actions__buttons { justify-content: flex-start; }
.trejka-actions__icon { margin-right: 7px; font-size: 0.95em; line-height: 1; }
.trejka-actions__subtext { display: flex; flex-wrap: wrap; align-items: center; margin-top: 14px; color: var(--tb-text3, #8a8a98); font-size: 0.9rem; }
.trejka-actions.is-center .trejka-actions__subtext { justify-content: center; }
.trejka-actions.is-right .trejka-actions__subtext { justify-content: flex-end; }
.trejka-actions__subitem { display: inline-flex; align-items: center; }
.trejka-actions__subitem:not(:first-child)::before { content: "•"; margin: 0 10px; color: var(--tb-border2, #d8d8e0); }
@media (max-width: 520px) { .trejka-actions__buttons { flex-direction: column; align-items: stretch; } .trejka-actions__buttons .tb-btn { justify-content: center; } }

/* ============================================================
   TREJKA — Dostępność (a11y): widoczny fokus + redukcja ruchu
   ============================================================ */
/* Wyraźny pierścień fokusu dla elementów interaktywnych (tylko klawiatura). */
.trejka-block a:focus-visible,
.trejka-block button:focus-visible,
.trejka-block summary:focus-visible,
.trejka-block [tabindex]:focus-visible,
.trejka-block input:focus-visible,
.trejka-block select:focus-visible,
.trejka-block textarea:focus-visible {
	outline: 3px solid var(--tb-red);
	outline-offset: 2px;
	border-radius: 5px;
}
/* Na czerwonym tle (CTA box, sidebar „solid") — biały kontur, by był widoczny. */
.trejka-cta__box a:focus-visible,
.trejka-cta__box button:focus-visible,
.trejka-sidebar-cta.is-solid a:focus-visible,
.trejka-sidebar-cta.is-solid button:focus-visible {
	outline-color: #fff;
}
/* Szanuj preferencję ograniczenia ruchu — wyłącz animacje/przejścia w blokach. */
@media (prefers-reduced-motion: reduce) {
	.trejka-block *,
	.trejka-block *::before,
	.trejka-block *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ============================================================
   TREJKA — Meta realizacji (pasek faktów o wdrożeniu)
   ============================================================ */
.trejka-meta { width: 100%; }
.trejka-meta__label { font-size: 11px; font-weight: 700; letter-spacing: var(--tb-label-ls, normal); text-transform: uppercase; color: var(--tb-text3); margin-bottom: 12px; }
.trejka-meta__grid { display: grid; margin: 0; padding: 0; gap: 0; }
.trejka-meta.is-cols-auto .trejka-meta__grid { grid-template-columns: repeat(var(--tb-cols, 4), minmax(0, 1fr)); }
.trejka-meta.is-cols-2 .trejka-meta__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.trejka-meta.is-cols-3 .trejka-meta__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.trejka-meta.is-cols-4 .trejka-meta__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.trejka-meta.is-card .trejka-meta__grid { background: #fff; border: 1px solid var(--tb-border); border-radius: 12px; overflow: hidden; box-shadow: var(--tb-shadow-sm); }
.trejka-meta__item { padding: 18px 26px; min-width: 0; }
/* Separatory rysowane przez kafelki (prawo + dół) — czyste przy każdej liczbie pozycji, bez pustych „kolorowych” komórek. */
.trejka-meta.is-card .trejka-meta__item { box-shadow: 1px 0 0 0 var(--tb-border), 0 1px 0 0 var(--tb-border); }
.trejka-meta__key { font-size: 11px; font-weight: 700; letter-spacing: var(--tb-label-ls, normal); text-transform: uppercase; color: var(--tb-text3); margin: 0 0 6px; }
.trejka-meta__val { font-family: var(--tb-font-d); font-size: 16px; font-weight: 700; color: var(--tb-text); margin: 0; line-height: 1.3; overflow-wrap: anywhere; word-break: break-word; }
@media (max-width: 640px) {
	.trejka-meta.is-cols-auto .trejka-meta__grid,
	.trejka-meta.is-cols-3 .trejka-meta__grid,
	.trejka-meta.is-cols-4 .trejka-meta__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 400px) {
	.trejka-meta__grid { grid-template-columns: 1fr !important; }
}

/* ============================================================
   TREJKA — Galeria (5 układów + lightbox)
   ============================================================ */
.trejka-gallery { width: 100%; --tb-g: 14px; }
.trejka-gallery.gap-sm { --tb-g: 8px; }
.trejka-gallery.gap-lg { --tb-g: 22px; }
.trejka-gallery__label { font-size: 11px; font-weight: 700; letter-spacing: var(--tb-label-ls, normal); text-transform: uppercase; color: var(--tb-text3); margin-bottom: 14px; }
.trejka-gallery__item { position: relative; margin: 0; overflow: hidden; background: var(--tb-bg3); }
.trejka-gallery.is-rounded .trejka-gallery__item { border-radius: 12px; }
.trejka-gallery__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.trejka-gallery__link { display: block; height: 100%; cursor: zoom-in; }
.trejka-gallery__cap { font-size: 12px; color: var(--tb-text3); padding: 8px 2px 0; }

/* Siatka */
.trejka-gallery.is-grid .trejka-gallery__grid { display: grid; grid-template-columns: repeat(var(--tb-cols, 3), 1fr); gap: var(--tb-g); }
.trejka-gallery.is-grid .trejka-gallery__link,
.trejka-gallery.is-grid .trejka-gallery__img { aspect-ratio: 4 / 3; width: 100%; }

/* Bento (duży + mniejsze) */
.trejka-gallery.is-bento .trejka-gallery__grid { display: grid; grid-template-columns: repeat(6, 1fr); grid-auto-rows: clamp(88px, 13vw, 160px); gap: var(--tb-g); }
.trejka-gallery.is-bento .trejka-gallery__item { grid-column: span 2; }
.trejka-gallery.is-bento .trejka-gallery__item:nth-child(6n+1) { grid-column: span 3; grid-row: span 2; }
.trejka-gallery.is-bento .trejka-gallery__item:nth-child(6n+2) { grid-column: span 3; }
.trejka-gallery.is-bento .trejka-gallery__item:nth-child(6n+3) { grid-column: span 3; }
.trejka-gallery.is-bento .trejka-gallery__link,
.trejka-gallery.is-bento .trejka-gallery__img { height: 100%; }

/* Masonry (różne wysokości) */
.trejka-gallery.is-masonry .trejka-gallery__grid { column-count: var(--tb-cols, 3); column-gap: var(--tb-g); }
.trejka-gallery.is-masonry .trejka-gallery__item { break-inside: avoid; margin-bottom: var(--tb-g); display: inline-block; width: 100%; }
.trejka-gallery.is-masonry .trejka-gallery__img { height: auto; }

/* Karuzela (przewijana) */
.trejka-gallery.is-carousel .trejka-gallery__carousel { position: relative; }
.trejka-gallery.is-carousel .trejka-gallery__track { display: flex; gap: var(--tb-g); overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; -webkit-overflow-scrolling: touch; padding-bottom: 4px; }
.trejka-gallery.is-carousel .trejka-gallery__item { flex: 0 0 auto; width: min(72%, 360px); scroll-snap-align: start; aspect-ratio: 4 / 3; }
.trejka-gallery.is-carousel .trejka-gallery__link,
.trejka-gallery.is-carousel .trejka-gallery__img { height: 100%; }
.trejka-gallery__nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--tb-border2); background: rgba(255,255,255,0.92); color: var(--tb-text); font-size: 22px; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: var(--tb-shadow); }
.trejka-gallery__nav.is-prev { left: 8px; }
.trejka-gallery__nav.is-next { right: 8px; }
.trejka-gallery__nav:hover { background: #fff; }

/* Justowany (rzędy o równej wysokości) */
.trejka-gallery.is-justified .trejka-gallery__grid { display: flex; flex-wrap: wrap; gap: var(--tb-g); }
.trejka-gallery.is-justified .trejka-gallery__item { height: var(--tb-rowh, 240px); flex: var(--tb-ar, 1.5) 1 0; min-width: 120px; }
.trejka-gallery.is-justified .trejka-gallery__link,
.trejka-gallery.is-justified .trejka-gallery__img { height: 100%; width: 100%; }

/* Podpisy jako nakładka w układach kafelkowych */
.trejka-gallery.is-bento .trejka-gallery__cap,
.trejka-gallery.is-carousel .trejka-gallery__cap,
.trejka-gallery.is-justified .trejka-gallery__cap { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 22px 12px 10px; color: #fff; background: linear-gradient(to top, rgba(0,0,0,0.6), transparent); font-size: 12px; }

/* ============================================================
   GALERIA — HUB EFEKTÓW HOVER
   Jak dodać nowy efekt:
   1) dopisz regułę .trejka-gallery.is-hover-<nazwa> ... :hover ...
   2) dodaj opcję w SelectControl w blocks/gallery/index.js
   3) dopisz nazwę do listy dozwolonych w blocks/gallery/render.php
   Efekty na samym zdjęciu (zoom/grayscale/brighten/fade/lift) działają
   w każdym układzie i w podglądzie edytora. „overlay” i „zoom-icon”
   rysują welon/lupę na linku lightboxa (widoczne na froncie).
   ============================================================ */
.trejka-gallery[class*="is-hover-"] .trejka-gallery__img { transition: transform 0.55s cubic-bezier(0.2,0.6,0.2,1), filter 0.45s ease, opacity 0.35s ease; will-change: transform; }
.trejka-gallery__link { position: relative; }

/* Powiększenie */
.trejka-gallery.is-hover-zoom .trejka-gallery__item:hover .trejka-gallery__img { transform: scale(1.07); }

/* Z szarości do koloru */
.trejka-gallery.is-hover-grayscale .trejka-gallery__img { filter: grayscale(1); }
.trejka-gallery.is-hover-grayscale .trejka-gallery__item:hover .trejka-gallery__img { filter: grayscale(0); }

/* Rozjaśnienie */
.trejka-gallery.is-hover-brighten .trejka-gallery__item:hover .trejka-gallery__img { transform: scale(1.04); filter: brightness(1.12) saturate(1.08); }

/* Delikatne przygaszenie */
.trejka-gallery.is-hover-fade .trejka-gallery__item:hover .trejka-gallery__img { opacity: 0.8; }

/* Uniesienie z cieniem */
.trejka-gallery.is-hover-lift .trejka-gallery__item { transition: transform 0.35s ease, box-shadow 0.35s ease; }
.trejka-gallery.is-hover-lift .trejka-gallery__item:hover { transform: translateY(-5px); box-shadow: var(--tb-shadow-lg); z-index: 1; }

/* Przyciemnienie + (opcjonalnie) lupa — welon na linku lightboxa */
.trejka-gallery.is-hover-overlay .trejka-gallery__link::after,
.trejka-gallery.is-hover-zoom-icon .trejka-gallery__link::after { content: ""; position: absolute; inset: 0; background: rgba(12,12,18,0); transition: background 0.4s ease; pointer-events: none; }
.trejka-gallery.is-hover-overlay .trejka-gallery__item:hover .trejka-gallery__link::after,
.trejka-gallery.is-hover-zoom-icon .trejka-gallery__item:hover .trejka-gallery__link::after { background: rgba(12,12,18,0.45); }
.trejka-gallery.is-hover-zoom-icon .trejka-gallery__item:hover .trejka-gallery__img { transform: scale(1.06); }
.trejka-gallery.is-hover-zoom-icon .trejka-gallery__link::before { content: ""; position: absolute; top: 50%; left: 50%; width: 50px; height: 50px; border-radius: 50%; border: 1.5px solid rgba(255,255,255,0.9); background: rgba(255,255,255,0.12) no-repeat center / 22px 22px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='21' y1='21' x2='16.5' y2='16.5'/%3E%3C/svg%3E"); transform: translate(-50%,-50%) scale(0.7); opacity: 0; transition: opacity 0.35s ease, transform 0.35s ease; pointer-events: none; }
.trejka-gallery.is-hover-zoom-icon .trejka-gallery__item:hover .trejka-gallery__link::before { opacity: 1; transform: translate(-50%,-50%) scale(1); }

@media (prefers-reduced-motion: reduce) {
	.trejka-gallery .trejka-gallery__img,
	.trejka-gallery.is-hover-lift .trejka-gallery__item,
	.trejka-gallery .trejka-gallery__link::after,
	.trejka-gallery .trejka-gallery__link::before { transition: none !important; }
}

@media (max-width: 600px) {
	.trejka-gallery.is-grid .trejka-gallery__grid { grid-template-columns: repeat(2, 1fr); }
	.trejka-gallery.is-masonry .trejka-gallery__grid { column-count: 2; }
	.trejka-gallery.is-bento .trejka-gallery__grid { grid-template-columns: repeat(2, 1fr); }
	.trejka-gallery.is-bento .trejka-gallery__item,
	.trejka-gallery.is-bento .trejka-gallery__item:nth-child(6n+1),
	.trejka-gallery.is-bento .trejka-gallery__item:nth-child(6n+2),
	.trejka-gallery.is-bento .trejka-gallery__item:nth-child(6n+3) { grid-column: span 1; grid-row: span 1; }
}

/* Lightbox (wspólny dla galerii) */
.trejka-lightbox { position: fixed; inset: 0; z-index: 99999; display: none; flex-direction: column; align-items: center; justify-content: center; gap: 14px; background: rgba(10,10,12,0.92); padding: 32px; }
.trejka-lightbox.is-open { display: flex; }
.trejka-lightbox__content { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; width: 100%; max-width: 94vw; flex: 1 1 auto; min-height: 0; }
.trejka-lightbox__stage { margin: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 0; flex: 1 1 auto; }
.trejka-lightbox__img { max-width: 92vw; max-height: calc(100vh - 190px); width: auto; height: auto; border-radius: 8px; box-shadow: 0 20px 60px rgba(0,0,0,0.5); object-fit: contain; }
.trejka-lightbox__cap { color: #fff; font-size: 13px; margin-top: 10px; text-align: center; max-width: 680px; }
.trejka-lightbox__thumbs { flex: 0 0 auto; display: flex; justify-content: center; gap: 8px; width: 100%; max-width: 94vw; margin: 0 auto; overflow-x: auto; padding: 4px 2px; scrollbar-width: thin; }
.trejka-lightbox__status { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.trejka-lightbox__thumb { flex: 0 0 auto; width: 66px; height: 48px; padding: 0; border: 2px solid transparent; border-radius: 6px; overflow: hidden; cursor: pointer; background: none; opacity: 0.5; transition: opacity 0.15s, border-color 0.15s; }
.trejka-lightbox__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.trejka-lightbox__thumb:hover { opacity: 0.85; }
.trejka-lightbox__thumb.is-active { opacity: 1; border-color: #fff; }
.trejka-lightbox__close { position: absolute; top: 16px; right: 20px; width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(255,255,255,0.12); color: #fff; font-size: 20px; cursor: pointer; }
.trejka-lightbox__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 52px; height: 52px; border-radius: 50%; border: 0; background: rgba(255,255,255,0.12); color: #fff; font-size: 30px; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.trejka-lightbox__nav.is-prev { left: 16px; }
.trejka-lightbox__nav.is-next { right: 16px; }
.trejka-lightbox__nav:hover, .trejka-lightbox__close:hover { background: rgba(255,255,255,0.22); }
@media (max-width: 520px) { .trejka-lightbox__nav { width: 42px; height: 42px; font-size: 24px; } .trejka-lightbox__thumb { width: 54px; height: 40px; } }

/* ============================================================
   TREJKA — Stack projektu (technologie + CTA)
   ============================================================ */
.trejka-stack { width: 100%; background: #fff; border: 1px solid var(--tb-border); border-radius: 14px; padding: 28px; box-shadow: var(--tb-shadow-sm); }
.trejka-stack__label { font-size: 11px; font-weight: 700; letter-spacing: var(--tb-label-ls, normal); text-transform: uppercase; color: var(--tb-text3); margin-bottom: 10px; }
.trejka-stack__title { font-family: var(--tb-font-d); font-size: clamp(17px, 2.2vw, 20px); font-weight: 700; color: var(--tb-text); margin: 0 0 16px; }
.trejka-stack__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.trejka-stack__item { display: flex; align-items: center; gap: 12px; padding: 11px 0; border-top: 1px solid var(--tb-border); }
.trejka-stack__item:first-child { border-top: 0; }
.trejka-stack__type { flex: 0 0 auto; font-size: 10px; font-weight: 700; letter-spacing: var(--tb-label-ls, normal); text-transform: uppercase; padding: 4px 9px; border-radius: 100px; background: var(--tb-bg3); color: var(--tb-text2); min-width: 72px; text-align: center; }
.trejka-stack__type.is-theme { background: var(--tb-red-tint); color: var(--tb-red); }
.trejka-stack__type.is-plugin { background: #eef4fb; color: var(--tb-blue); }
.trejka-stack__type.is-hosting { background: var(--tb-green-tint); color: var(--tb-green); }
.trejka-stack__type.is-service { background: #fdf3e7; color: var(--tb-amber); }
.trejka-stack__name { font-size: 15px; font-weight: 600; color: var(--tb-text); display: inline-flex; align-items: center; gap: 5px; }
a.trejka-stack__name { transition: color 0.15s; }
a.trejka-stack__name:hover { color: var(--tb-red); }
.trejka-stack__ext { font-size: 12px; color: var(--tb-text4); }
a.trejka-stack__name:hover .trejka-stack__ext { color: var(--tb-red); }
.trejka-stack__cta { margin-top: 20px; }
.trejka-stack__cta-icon { font-size: 0.95em; }
@media (max-width: 520px) { .trejka-stack__item { flex-wrap: wrap; gap: 8px; } }

/* ============================================================
   TŁO SEKCJI — wspólny hub (klasa .tb-has-bg + zmienna --tb-ovl)
   Włączane panelem „Tło sekcji”. Obejmuje sekcje kart, CTA,
   statystyki, FAQ i listę ofert. Zdjęcie wypełnia tło,
   półprzezroczysta warstwa zwiększa czytelność, a tekst
   nagłówka sekcji staje się jasny.
   ============================================================ */
.tb-has-bg { position: relative; background-size: cover; background-position: center; background-repeat: no-repeat; padding-top: clamp(44px, 8vw, 72px); padding-bottom: clamp(44px, 8vw, 72px); overflow: hidden; }
.tb-has-bg::before { content: ''; position: absolute; inset: 0; background: rgba(10,10,14,var(--tb-ovl,0.5)); pointer-events: none; z-index: 0; }
.tb-has-bg > * { position: relative; z-index: 1; }
.tb-has-bg .tb-eyebrow { color: rgba(255,255,255,0.85); }
.tb-has-bg .tb-title { color: #fff; }
.tb-has-bg .tb-title .tb-hl { color: #fff; }
.tb-has-bg .tb-sub { color: rgba(255,255,255,0.92); }
.tb-has-bg .tb-head__link { color: #fff; }

/* ============================================================
   RESPONSYWNOŚĆ — domknięcie siatek na małych ekranach
   (typografia i paddingi skalują się płynnie przez clamp())
   ============================================================ */
@media (max-width: 640px) {
	.trejka-steps__grid { grid-template-columns: 1fr; }
}
@media (max-width: 420px) {
	.trejka-stats__inner,
	.trejka-features__grid,
	.trejka-pricing__grid,
	.trejka-tests__grid,
	.trejka-team__grid,
	.trejka-tagcards__grid,
	.trejka-checklist__list,
	.trejka-links__grid,
	.trejka-portfolio__grid,
	.trejka-products__grid,
	.trejka-steps__grid { grid-template-columns: 1fr; }
}

/* ============================================================
   RESPONSYWNA TYPOGRAFIA — twarde progi (uzupełnienie clamp()).
   Wyższa specyficzność (.trejka-block …) gwarantuje zadziałanie
   także w podglądzie urządzeń edytora oraz mimo stylów motywu.
   ============================================================ */
@media (max-width: 781px) {
	.trejka-block .trejka-hero__title { font-size: 38px; }
	.trejka-block .tb-title { font-size: 28px; }
	.trejka-block .tb-head--split .tb-title { font-size: 26px; }
	.trejka-block .trejka-cta__title,
	.trejka-block .trejka-banner__title { font-size: 30px; }
	.trejka-block .trejka-stat__num { font-size: 32px; }
	.trejka-block .trejka-plan__price { font-size: 36px; }
	.trejka-block .trejka-plan__name { font-size: 24px; }
	.trejka-block .trejka-banner__stat strong { font-size: 28px; }
	.trejka-block .trejka-hero__sub,
	.trejka-block .tb-sub { font-size: 16px; }
}
@media (max-width: 481px) {
	.trejka-block .trejka-hero__title { font-size: 29px; line-height: 1.12; }
	.trejka-block .tb-title { font-size: 23px; }
	.trejka-block .tb-head--split .tb-title { font-size: 22px; }
	.trejka-block .trejka-cta__title,
	.trejka-block .trejka-banner__title { font-size: 24px; }
	.trejka-block .trejka-stat__num { font-size: 26px; }
	.trejka-block .trejka-plan__price { font-size: 30px; }
	.trejka-block .trejka-plan__name { font-size: 22px; }
	.trejka-block .trejka-feature__title { font-size: 19px; }
	.trejka-block .trejka-banner__stat strong { font-size: 26px; }
	.trejka-block .trejka-hero__sub,
	.trejka-block .tb-sub { font-size: 15px; }
	.trejka-block .trejka-textsec__body { font-size: 15px; }
}

/* ============================================================
   WIDOCZNOŚĆ PER-URZĄDZENIE + ODSTĘP MOBILNY (hub odstępów).
   Sterowane panelem „Odstępy i widoczność” w każdym bloku.
   Próg 781px = telefon/duży telefon (spójnie z typografią).
   ============================================================ */
@media (max-width: 781px) {
	.trejka-block.tb-hide-mobile { display: none !important; }
	.trejka-block.tb-mtm { margin-top: var(--tb-mt-m) !important; }
	.trejka-block.tb-mbm { margin-bottom: var(--tb-mb-m) !important; }
}
@media (min-width: 782px) {
	.trejka-block.tb-hide-desktop { display: none !important; }
}

/* ============================================================
   PRZEGLĄD MOBILNY — dodatkowe zabezpieczenia układów poziomych.
   ============================================================ */
/* Review-box: tytuł obok kółka oceny — na telefonie układaj w pionie. */
.trejka-review__crtitle { min-width: 0; overflow-wrap: break-word; }
@media (max-width: 600px) {
	.trejka-review__head { flex-direction: column; align-items: flex-start; gap: 16px; }
}
/* Stack projektu: długie nazwy/URL-e nie wypychają wiersza. */
@media (max-width: 520px) {
	.trejka-stack__name { overflow-wrap: anywhere; }
}

/* ============================================================
   LOGO SLIDER — pasek logotypów (marquee / siatka).
   Marquee: ścieżka zawiera zestaw 2× i przesuwa się o -50%
   w pętli (czysty CSS). Skala szarości + kolor na hover.
   Reduced-motion: brak ruchu, statyczny zawijany rząd.
   ============================================================ */
.trejka-logos { --tb-logo-h: 44px; --tb-logo-speed: 30s; }
.trejka-logos__viewport { overflow: hidden; position: relative; width: 100%; }
.trejka-logos__track { display: flex; align-items: center; gap: clamp(28px, 5vw, 56px); width: max-content; }
.trejka-logos.is-marquee .trejka-logos__track { animation: trejka-logos-scroll var(--tb-logo-speed, 30s) linear infinite; }
.trejka-logos.is-marquee .trejka-logos__viewport:hover .trejka-logos__track { animation-play-state: paused; }
.trejka-logos.is-grid .trejka-logos__track { flex-wrap: wrap; justify-content: center; width: 100%; gap: clamp(24px, 4vw, 48px); animation: none; }
.trejka-logos.is-grid .trejka-logos__item.is-dup { display: none; }
.trejka-logos__item { flex: 0 0 auto; display: inline-flex; align-items: center; }
.trejka-logos__item img { height: var(--tb-logo-h, 44px); width: auto; max-width: 200px; object-fit: contain; display: block; }
.trejka-logos.is-gray .trejka-logos__item img { filter: grayscale(1); opacity: 0.6; transition: filter 0.25s ease, opacity 0.25s ease; }
.trejka-logos.is-gray .trejka-logos__item:hover img { filter: none; opacity: 1; }
.trejka-logos__item--link { cursor: pointer; }
@keyframes trejka-logos-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* Edytor: zawsze statycznie (bez przewijania w podglądzie). */
.trejka-logos.is-editor .trejka-logos__track { animation: none !important; flex-wrap: wrap; width: 100%; transform: none; justify-content: center; }

@media (prefers-reduced-motion: reduce) {
	.trejka-logos .trejka-logos__track { animation: none !important; flex-wrap: wrap; width: 100%; transform: none; justify-content: center; }
	.trejka-logos .trejka-logos__item.is-dup { display: none; }
}

/* ============================================================
   ANIMACJA WEJŚCIA (reveal przy scrollu). Stan ukryty włącza
   się dopiero, gdy skrypt doda klasę .tb-reveal-on do <html>
   (bez JS treść jest widoczna). Respektuje prefers-reduced-motion.
   ============================================================ */
.tb-reveal-on .tb-reveal { opacity: 0; transition: opacity 0.6s ease, transform 0.6s ease; transition-delay: var(--tb-reveal-delay, 0s); will-change: opacity, transform; }
.tb-reveal-on .tb-reveal--up { transform: translateY(28px); }
.tb-reveal-on .tb-reveal--down { transform: translateY(-28px); }
.tb-reveal-on .tb-reveal--left { transform: translateX(28px); }
.tb-reveal-on .tb-reveal--right { transform: translateX(-28px); }
.tb-reveal-on .tb-reveal--zoom { transform: scale(0.94); }
.tb-reveal-on .tb-reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	.tb-reveal-on .tb-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ============================================================
   KOLOR TŁA SEKCJI (.tb-bg-color) + auto-kontrast (.tb-bg-dark).
   Kolor ustawiany inline; przy ciemnym kolorze nagłówek jasny.
   ============================================================ */
.tb-bg-color { background-size: cover; background-position: center; padding-top: clamp(44px, 8vw, 72px); padding-bottom: clamp(44px, 8vw, 72px); }
.tb-bg-dark .tb-eyebrow { color: rgba(255,255,255,0.85); }
.tb-bg-dark .tb-title,
.tb-bg-dark .tb-title .tb-hl { color: #fff; }
.tb-bg-dark .tb-sub { color: rgba(255,255,255,0.92); }
.tb-bg-dark .tb-head__link { color: #fff; }

/* Własne SVG ikon: span-owijka nie tworzy boksu (rozmiar nadaje kontener ikony). */
.trejka-icon-custom { display: contents; }

/* ============================================================
   OBRAZ + TEKST (media-text) — naprzemienny układ tekst/obraz.
   ============================================================ */
.trejka-mediatext__inner { max-width: var(--tb-wrap); margin: 0 auto; padding: 0 var(--tb-gutter, 0px); display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 72px); align-items: center; }
.trejka-mediatext__inner.trejka-mediatext--top { align-items: start; }
.trejka-mediatext--img-left .trejka-mediatext__media { order: -1; }
.trejka-mediatext .tb-eyebrow { padding: 6px 16px; background: var(--tb-red-tint); border: 1px solid var(--tb-red-mid); border-radius: 100px; box-shadow: 0 2px 8px rgba(188,0,0,0.06); }
.trejka-mediatext__title { font-family: var(--tb-font-d); font-size: clamp(24px, 3vw, 34px); line-height: 1.2; color: var(--tb-text); margin: 0 0 14px; }
.trejka-mediatext__text { font-size: 16px; line-height: 1.7; color: var(--tb-text2); margin: 0; }
.trejka-mediatext__cta { margin-top: 22px; }
.trejka-mediatext__img { display: block; width: 100%; height: auto; }
.trejka-mediatext__img.is-rounded { border-radius: 18px; }
.trejka-mediatext__img.is-shadow { box-shadow: var(--tb-shadow-lg); }
@media (max-width: 781px) {
	.trejka-mediatext__inner { grid-template-columns: 1fr; gap: 24px; }
	.trejka-mediatext__body { order: 1; }
	.trejka-mediatext__media,
	.trejka-mediatext--img-left .trejka-mediatext__media { order: 2; }
}

/* ============================================================
   PORTFOLIO — dodatkowe układy kart (lista / kompaktowy).
   Modyfikator na kontenerze siatki przestawia karty .trejka-work
   w poziom; liczba kolumn nadal sterowana przez --tb-cols.
   ============================================================ */
/* Lista: miniatura z boku + tytuł/treść obok (jak rekomendacje produktów). */
.trejka-portfolio__grid--list .trejka-work { flex-direction: row; align-items: stretch; }
.trejka-portfolio__grid--list .trejka-work__thumb { aspect-ratio: 1 / 1; width: 104px; flex: 0 0 104px; font-size: 18px; }
.trejka-portfolio__grid--list .trejka-work__body { padding: 16px 18px; justify-content: center; }
.trejka-portfolio__grid--list .trejka-work__title { margin-bottom: 6px; }
.trejka-portfolio__grid--list .trejka-work__result { margin-top: 6px; }

/* Kompaktowy: mała miniatura + sam tytuł/kategoria (gęsta lista). */
.trejka-portfolio__grid--compact .trejka-work { flex-direction: row; align-items: center; }
.trejka-portfolio__grid--compact .trejka-work__thumb { aspect-ratio: 1 / 1; width: 62px; flex: 0 0 62px; font-size: 15px; }
.trejka-portfolio__grid--compact .trejka-work__body { padding: 10px 14px; justify-content: center; }
.trejka-portfolio__grid--compact .trejka-work__cat { margin-bottom: 3px; }
.trejka-portfolio__grid--compact .trejka-work__title { font-size: 15px; margin-bottom: 0; }
.trejka-portfolio__grid--compact .trejka-work__result { display: none; }

/* Portfolio — opcje kart: ukrycie opisu, przycinanie tytułu, wielkość miniatury. */
.trejka-portfolio__grid--no-excerpt .trejka-work__result { display: none; }
.trejka-portfolio__grid--title-1 .trejka-work__title,
.trejka-portfolio__grid--title-2 .trejka-work__title { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
.trejka-portfolio__grid--title-1 .trejka-work__title { -webkit-line-clamp: 1; }
.trejka-portfolio__grid--title-2 .trejka-work__title { -webkit-line-clamp: 2; }
.trejka-portfolio__grid--list.trejka-portfolio__grid--thumb-sm .trejka-work__thumb { width: 80px; flex-basis: 80px; }
.trejka-portfolio__grid--list.trejka-portfolio__grid--thumb-lg .trejka-work__thumb { width: 150px; flex-basis: 150px; }
.trejka-portfolio__grid--compact.trejka-portfolio__grid--thumb-sm .trejka-work__thumb { width: 50px; flex-basis: 50px; }
.trejka-portfolio__grid--compact.trejka-portfolio__grid--thumb-lg .trejka-work__thumb { width: 92px; flex-basis: 92px; }

/* Portfolio — proporcje miniatury. Po wybraniu konkretnej proporcji miniatura
   przyjmuje ten kształt i (w liście/kompakcie) NIE rozciąga się na wysokość karty,
   więc poziome zdjęcia nie są przycinane. */
.trejka-portfolio__grid--list[class*="--ar-"] .trejka-work,
.trejka-portfolio__grid--compact[class*="--ar-"] .trejka-work { align-items: center; }
.trejka-portfolio__grid--ar-1x1 .trejka-work__thumb { aspect-ratio: 1 / 1; }
.trejka-portfolio__grid--ar-4x3 .trejka-work__thumb { aspect-ratio: 4 / 3; }
.trejka-portfolio__grid--ar-3x2 .trejka-work__thumb { aspect-ratio: 3 / 2; }
.trejka-portfolio__grid--ar-16x9 .trejka-work__thumb { aspect-ratio: 16 / 9; }

/* Portfolio — układ bez miniatury (sama treść). */
.trejka-portfolio__grid--no-thumb .trejka-work__thumb { display: none; }

/* ============================================================
   LICZBY na ciemnym tle (kolor .tb-bg-dark lub zdjęcie .tb-has-bg)
   — jasny wariant treści, żeby liczby i etykiety były czytelne.
   ============================================================ */
.tb-bg-dark.trejka-stats,
.tb-has-bg.trejka-stats { border-top-color: rgba(255,255,255,0.18); border-bottom-color: rgba(255,255,255,0.18); }
.tb-bg-dark .trejka-stat,
.tb-has-bg .trejka-stat { border-right-color: rgba(255,255,255,0.18); }
.tb-bg-dark .trejka-stat__num,
.tb-bg-dark .trejka-stat__num .tb-hl,
.tb-has-bg .trejka-stat__num,
.tb-has-bg .trejka-stat__num .tb-hl { color: #fff; }
.tb-bg-dark .trejka-stat__label,
.tb-has-bg .trejka-stat__label { color: rgba(255,255,255,0.85); }

/* --- TREJKA Freeform (blok dowolny HTML+CSS) --- */
.trejka-freeform__placeholder {
	padding: 24px;
	border: 1px dashed var(--tb-border, #d8d2c8);
	border-radius: var(--tb-radius, 12px);
	color: var(--tb-muted, #6b6b6b);
	font: 14px/1.5 var(--tb-font-body, system-ui, sans-serif);
	text-align: center;
}

/* === CTA — układy, tło, ikony w przyciskach (v1.80) === */

/* Układ: do lewej */
.trejka-cta__box--left { text-align: left; }
.trejka-cta__box--left .trejka-cta__sub { margin-left: 0; margin-right: auto; }
.trejka-cta__box--left .trejka-cta__btns { justify-content: flex-start; }

/* Układ: tekst + przyciski obok siebie */
.trejka-cta__box--split .trejka-cta__content { display: flex; align-items: center; justify-content: space-between; gap: clamp(24px, 4vw, 48px); text-align: left; }
.trejka-cta__box--split .trejka-cta__text { flex: 1 1 auto; }
.trejka-cta__box--split .trejka-cta__title { margin-bottom: 10px; }
.trejka-cta__box--split .trejka-cta__sub { margin: 0; max-width: 640px; }
.trejka-cta__box--split .trejka-cta__btns { margin: 0; flex: 0 0 auto; justify-content: flex-end; }
@media (max-width: 781px) {
	.trejka-cta__box--split .trejka-cta__content { flex-direction: column; align-items: flex-start; }
	.trejka-cta__box--split .trejka-cta__btns { justify-content: flex-start; }
}

/* Tło: jasne / przezroczyste — ciemny tekst, bez poświaty i cienia */
.trejka-cta__box--soft,
.trejka-cta__box--transparent { color: var(--tb-text, #1a1a1a); box-shadow: none; }
.trejka-cta__box--soft::before, .trejka-cta__box--soft::after,
.trejka-cta__box--transparent::before, .trejka-cta__box--transparent::after { display: none; }
.trejka-cta__box--soft { background: var(--tb-bg-soft, #fff5f5); }
.trejka-cta__box--transparent { background: none; padding-left: 0; padding-right: 0; }
.trejka-cta__box--soft .trejka-cta__title,
.trejka-cta__box--transparent .trejka-cta__title { color: var(--tb-text, #1a1a1a); }
.trejka-cta__box--soft .trejka-cta__title .tb-hl,
.trejka-cta__box--transparent .trejka-cta__title .tb-hl { color: var(--tb-red); }
.trejka-cta__box--soft .trejka-cta__sub,
.trejka-cta__box--transparent .trejka-cta__sub { color: var(--tb-muted, #555); }
/* Wariant „Brand card” — biała karta z czerwoną krawędzią (jak Brand cards). */
.trejka-cta__box--brand { background: #fff; color: var(--tb-text, #1a1a1a); box-shadow: none; border: 1px solid var(--tb-border, #e8e8ee); border-left: 4px solid var(--tb-red); }
.trejka-cta__box--brand::before, .trejka-cta__box--brand::after { display: none; }
.trejka-cta__box--brand .trejka-cta__title { color: var(--tb-text, #1a1a1a); }
.trejka-cta__box--brand .trejka-cta__title .tb-hl { color: var(--tb-red); }
.trejka-cta__box--brand .trejka-cta__sub { color: var(--tb-muted, #555); }

/* Ikony w przyciskach (opt-in klasą — nie rusza bazowego .tb-btn) */
.tb-btn--has-icon { display: inline-flex; align-items: center; gap: 8px; }
.tb-btn--has-icon.tb-btn--icon-after { flex-direction: row-reverse; }
.tb-btn__icon { display: inline-flex; width: 1.05em; height: 1.05em; flex: 0 0 auto; }
.tb-btn__icon svg { width: 100%; height: 100%; display: block; }

/* =============================================================
   trejka/brand-cards + trejka/brand-card — „Sześć stron, jedno studio”
   Karty marek/usług z opcjonalną etykietą grupy (label + linia).
   ============================================================= */
.trejka-brands__inner { max-width: var(--tb-wrap); margin: 0 auto; padding: 0 var(--tb-gutter, 0px); }

/* Nagłówek sekcji: wariant lewy „section header” (jak na landingu),
   bez pigułki przy eyebrow. */
.trejka-brands .tb-head { text-align: left; max-width: none; margin: 0 0 28px; }
.trejka-brands .tb-eyebrow { padding: 0; background: none; border: 0; box-shadow: none; border-radius: 0; letter-spacing: var(--tb-label-ls, normal); margin-bottom: 8px; }
.trejka-brands .tb-title { font-size: clamp(22px, 3.4vw, 30px); margin-bottom: 10px; }
.trejka-brands .tb-sub { font-size: 14px; max-width: 620px; }

/* Etykieta grupy z poziomą linią. */
.trejka-brands__group { font-size: 12px; font-weight: 700; color: var(--tb-text); text-transform: uppercase; letter-spacing: var(--tb-label-ls, normal); margin: 30px 0 14px; display: flex; align-items: center; gap: 12px; }
.trejka-brands__group:empty { display: none; }
.trejka-brands__group::after { content: ''; flex: 1; height: 1px; background: var(--tb-border); }
/* Etykieta grupy jako wiersz w siatce (blok trejka/brand-group). */
.trejka-brands__group--row { grid-column: 1 / -1; margin: 8px 0 0; }
.trejka-brands__group--row:first-child { margin-top: 0; }

/* Siatka kart. */
.trejka-brands__grid { display: grid; grid-template-columns: repeat(var(--tb-cols, 3), 1fr); gap: 16px; }

/* Pojedyncza karta. */
.trejka-brand { display: flex; flex-direction: column; border: 1px solid var(--tb-border); border-radius: 7px; overflow: hidden; background: #fff; height: 100%; transition: box-shadow 0.2s ease, transform 0.15s ease; }
.trejka-brand--link { cursor: pointer; color: inherit; }
.trejka-brand--link:hover { color: inherit; box-shadow: 0 6px 22px rgba(188, 0, 0, 0.12); transform: translateY(-2px); }
.trejka-brand__body { padding: 20px; border-left: 3px solid var(--tb-red); flex: 1; }
.trejka-brand__tag { font-size: 10px; color: var(--tb-red); text-transform: uppercase; letter-spacing: var(--tb-label-ls, normal); font-weight: 700; margin-bottom: 9px; }
.trejka-brand__name { font-family: var(--tb-card-ff, var(--tb-font-d)); font-size: var(--tb-card-title, 18px); font-weight: 700; color: var(--tb-text); letter-spacing: var(--tb-title-ls, normal); margin-bottom: 3px; }
.trejka-brand__role { font-size: 12px; font-weight: 700; color: var(--tb-text3); margin-bottom: 10px; }
.trejka-brand__desc { font-size: 12.5px; color: var(--tb-text2); line-height: 1.6; }
.trejka-brand__foot { background: var(--tb-bg2); padding: 11px 20px; display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--tb-border); margin-top: auto; }
.trejka-brand__badge { display: inline-block; font-size: 10px; padding: 3px 9px; border-radius: 3px; font-weight: 700; }
.trejka-brand__badge--dev { background: #fff3e0; color: #e65100; }
.trejka-brand__badge--live { background: #e8f5e9; color: #2e7d32; }
.trejka-brand__go { font-size: 12px; color: var(--tb-red); font-weight: 700; transition: transform 0.15s ease; }
.trejka-brand--link:hover .trejka-brand__go { transform: translateX(3px); }

@media (max-width: 1024px) {
	.trejka-brands__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
	.trejka-brands__inner { padding: 0 var(--tb-gutter, 0px); }
	.trejka-brands__grid { grid-template-columns: 1fr; }
}

/* =============================================================
   trejka/stack + trejka/stack-column — „Na czym pracujemy”
   Obrysowany box z kolumnami punktowanych list (czerwone kropki).
   ============================================================= */
.trejka-techstack__inner { max-width: var(--tb-wrap); margin: 0 auto; padding: 0 var(--tb-gutter, 0px); }

/* Nagłówek sekcji: wariant lewy (spójny z brand-cards). */
.trejka-techstack .tb-head { text-align: left; max-width: none; margin: 0 0 28px; }
.trejka-techstack .tb-eyebrow { padding: 0; background: none; border: 0; box-shadow: none; border-radius: 0; letter-spacing: var(--tb-label-ls, normal); margin-bottom: 8px; }
.trejka-techstack .tb-title { font-size: clamp(22px, 3.4vw, 30px); margin-bottom: 10px; }
.trejka-techstack .tb-sub { font-size: 14px; max-width: 620px; }

/* Box-siatka kolumn (klasa siatki rodzica = wizualny box). */
.trejka-techstack__grid { display: grid; grid-template-columns: repeat(var(--tb-cols, 3), 1fr); gap: 22px; background: var(--tb-bg2); border: 1px solid var(--tb-border); border-radius: 8px; padding: 26px; }

/* Pojedyncza kolumna. */
.trejka-techstack__h { font-size: 11px; font-weight: 700; color: var(--tb-red); text-transform: uppercase; letter-spacing: var(--tb-label-ls, normal); margin-bottom: 12px; }
.trejka-techstack__item { display: flex; align-items: center; gap: 9px; font-size: 13px; color: var(--tb-text2); padding: 5px 0; }
.trejka-techstack__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--tb-red); flex-shrink: 0; }
.trejka-techstack__ic { display: inline-flex; align-items: center; justify-content: center; color: var(--tb-red); flex-shrink: 0; width: 18px; }
.trejka-techstack__ic svg { width: 16px; height: 16px; }
.trejka-techstack__item--link { text-decoration: none; color: var(--tb-text2); transition: color 0.15s ease; }
.trejka-techstack__item--link:hover { color: var(--tb-red); }
.trejka-techstack__hint { font-size: 12px; color: var(--tb-text3); font-style: italic; }

@media (max-width: 781px) {
	.trejka-techstack__grid { grid-template-columns: 1fr; gap: 18px; }
}
@media (max-width: 640px) {
	.trejka-techstack__inner { padding: 0 var(--tb-gutter, 0px); }
	.trejka-techstack__grid { padding: 20px; }
}
