/* Strona główna – sekcje. Ładowane tylko na stronie głównej. */

/* ---------- Hero ----------
   Jak na starej stronie: zdjęcie osoby na całą wysokość, pasek logotypów przyklejony do dołu
   i przesuwający się ZA postacią (zdjęcie jest wycięte, warstwa nad paskiem). */
.gf-hero {
	/* 600 px przy 1440 → 830 px przy 1920 (jak stara strona), max ~990 px */
	--gf-hero-h: clamp(520px, calc(47.9vw - 90px), 990px);
	--gf-logo-h: clamp(40px, 4.33vw, 110px); /* 62 → 83 → 110 px */
	--gf-marquee-h: calc(var(--gf-logo-h) + 2rem);
	position: relative; overflow: hidden; background: var(--gf-color-surface); isolation: isolate;
}
/* Szkic gór (z oryginału SVG, krycie ~9% wtopione w obraz):
   mountains.webp 2560 px (58 KB) – telefon i zwykły komputer; mountains-3840.webp (155 KB) – od 1920 px i ekrany retina.
   Telefon: góry od dołu w naturalnej skali (bez rozciągania na wysoki ekran = bez rozmycia). */
.gf-hero::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: var(--gf-hero-bg, none) center bottom / 260% auto no-repeat;
}
@media (min-width: 961px) {
	.gf-hero::before { background-position: center; background-size: cover; }
}
@media (min-width: 1920px), (min-width: 961px) and (min-resolution: 1.5dppx) {
	.gf-hero::before { background-image: var(--gf-hero-bg-lg, var(--gf-hero-bg, none)); }
}

.gf-hero__grid { display: grid; gap: var(--gf-space-6); grid-template-columns: minmax(0, 1fr); padding-top: var(--gf-space-8); }
.gf-hero__text { align-self: center; }
.gf-hero__title { max-width: 36rem; margin: 0; font-size: clamp(1.875rem, 1.625rem + 0.833vw, 2.625rem); line-height: 1.2; } /* 38 → 42 px */
@media (min-width: 1600px) { .gf-hero__title { max-width: 39rem; } }
.gf-hero__accent { color: var(--gf-color-accent); }
.gf-hero__lead { max-width: 42rem; font-size: calc(var(--gf-fs-body) * 0.875); color: var(--gf-color-text); }
.gf-hero__lead strong { font-weight: 700; color: var(--gf-color-heading); } /* w jednej linii z dalszym tekstem */
.gf-hero__media { justify-self: center; position: relative; z-index: 2; }
.gf-hero .gf-hero__img { display: block; width: auto; height: clamp(340px, 90vw, 460px); max-width: 100%; object-fit: contain; object-position: bottom; }

/* „Analizuję…" – jak na starej stronie: tylko na komputerze */
@media (max-width: 1024px) { .gf-hero__lead { display: none; } }

/* Telefon: pasek logotypów też wchodzi pod dół zdjęcia (logotypy przesuwają się za postacią) */
@media (max-width: 899px) {
	.gf-hero > .gf-marquee { position: relative; z-index: 1; margin-top: calc(var(--gf-marquee-h) * -1); min-height: var(--gf-marquee-h); display: flex; align-items: center; }
}

@media (min-width: 900px) {
	.gf-hero__grid {
		position: relative; z-index: 2; pointer-events: none;
		grid-template-columns: minmax(0, 1fr) auto; align-items: stretch;
		min-height: var(--gf-hero-h); padding-top: 0;
	}
	.gf-hero__grid > * { pointer-events: auto; }
	.gf-hero__text { padding-block: var(--gf-space-8) calc(var(--gf-marquee-h) + var(--gf-space-5)); }
	/* Postać rośnie z hero, ale (jak na starej stronie) najwyżej ~860 px.
	   Na szerokich ekranach wchodzi w prawy margines (ok. 1/3 marginesu, max 9rem) – tytuł ma dłuższe linie. */
	.gf-hero__media {
		align-self: end; height: min(var(--gf-hero-h), 860px);
		margin-right: calc(clamp(0px, (100vw - var(--gf-content-width)) * 0.18, 9rem) * -1);
	}
	.gf-hero .gf-hero__img { height: 100%; max-width: none; }
	/* Pasek logotypów pod postacią */
	.gf-hero > .gf-marquee { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; min-height: var(--gf-marquee-h); display: flex; align-items: center; }
}

/* Pasek logotypów – nieskończona pętla w CSS (bez karuzeli JS) */
.gf-marquee {
	position: relative; overflow: hidden; padding-block: var(--gf-space-4);
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.gf-marquee__track { display: flex; width: max-content; animation: gf-marquee var(--gf-marquee-speed, 55s) linear infinite; }
.gf-marquee:hover .gf-marquee__track { animation-play-state: paused; }
.gf-marquee__list { display: flex; align-items: center; gap: clamp(var(--gf-space-4), 2vw, var(--gf-space-6)); margin: 0; padding: 0 clamp(var(--gf-space-4), 2vw, var(--gf-space-6)) 0 0; list-style: none; }
.gf-marquee__list > li { flex: none; }
.gf-marquee .gf-marquee__logo { width: auto; max-width: none; height: var(--gf-logo-h, clamp(40px, 4.33vw, 110px)); filter: grayscale(1); opacity: 0.75; transition: filter 0.4s, opacity 0.4s; }
.gf-marquee__logo:hover { filter: none; opacity: 1; }
@keyframes gf-marquee { to { transform: translate3d(-50%, 0, 0); } }
@media (prefers-reduced-motion: reduce) {
	.gf-marquee__track { animation: none; flex-wrap: wrap; width: auto; }
	.gf-marquee__list[aria-hidden] { display: none; }
}

/* ---------- Pasek usług ---------- */
.gf-bar { position: relative; isolation: isolate; background: var(--gf-color-navy, var(--gf-color-dark)); color: #fff; }
.gf-bar::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--gf-bar-bg, none) center / cover no-repeat; opacity: 0.19; }
.gf-bar__list { display: flex; flex-wrap: wrap; gap: var(--gf-space-3) clamp(var(--gf-space-6), 5vw, var(--gf-space-9)); margin: 0; padding: var(--gf-space-6) 0; list-style: none; }
.gf-bar a { display: inline-flex; align-items: baseline; gap: var(--gf-space-3); color: var(--gf-color-accent-soft); text-decoration: none; font-family: var(--gf-font-heading); font-style: italic; font-size: var(--gf-fs-h5); transition: color var(--gf-transition); }
.gf-bar a:hover { color: #fff; }
.gf-bar .gf-num { font-style: normal; font-size: 1.25rem; }

/* ---------- Wstęp ---------- */
.gf-intro__inner { max-width: 62rem; }
.gf-intro__statement { font-size: clamp(1.5rem, 1.2rem + 1.1vw, 2.125rem); line-height: 1.3; color: var(--gf-color-heading); }
.gf-intro__body > p:not(.gf-eyebrow) { max-width: 70ch; }
/* Układ „Deklaracja z lewej, tekst z prawej" (pole „Układ" w widżecie) */
@media (min-width: 900px) {
	.gf-intro--split .gf-intro__inner {
		display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start;
		column-gap: clamp(var(--gf-space-7), 7vw, var(--gf-space-10)); max-width: none;
	}
	.gf-intro--split .gf-intro__inner > .gf-intro__body { margin-top: 0; }
}

/* ---------- Jak mogę wesprzeć ---------- */
.gf-support__grid { display: grid; gap: clamp(var(--gf-space-7), 6vw, var(--gf-space-9)); grid-template-columns: minmax(0, 1fr); align-items: center; }
@media (min-width: 768px) { .gf-support__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }
.gf-support__head { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--gf-space-6); }
.gf-support__head .gf-section-head { flex: 1; }
.gf-support__media { aspect-ratio: 4 / 5; }
/* Małe zdjęcie obok nagłówka (jak na starej stronie: 200 × 200 w prawym górnym rogu) */
.gf-support__inset { flex: none; width: clamp(96px, 11vw, 200px); aspect-ratio: 1; }
.gf-numlist { margin: 0; padding: 0; list-style: none; }
.gf-numlist__item { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: var(--gf-space-4); padding-block: var(--gf-space-5); border-bottom: 1px solid var(--gf-color-line); }
.gf-numlist__item:first-child { padding-top: 0; }
.gf-numlist .gf-num { font-size: 1.625rem; line-height: 1.1; }
html body .gf-numlist h3 { margin-bottom: var(--gf-space-2); font-weight: 400; font-size: clamp(1.25rem, 1rem + 0.42vw, 1.5rem); } /* 22 → 24 px */
.gf-numlist p { margin: 0; font-size: 0.9375rem; line-height: 1.5; font-style: italic; color: var(--gf-color-ink); } /* 15 px jak na starej stronie */

/* ---------- Wstęga granatowa ---------- */
.gf-band { padding-block: var(--gf-section-pad-y); background: var(--gf-color-dark); color: #fff; }
.gf-band__title { color: #fff; }
.gf-band__tags { margin-bottom: 0; color: var(--gf-color-accent-soft); }

/* ---------- Podział: zdjęcie + tekst ---------- */
.gf-split { display: grid; gap: clamp(var(--gf-space-7), 6vw, var(--gf-space-9)); grid-template-columns: minmax(0, 1fr); align-items: center; }
@media (min-width: 768px) {
	.gf-split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.gf-split--wide-media { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); }
}
.gf-split__media { aspect-ratio: 10 / 9; }
.gf-split--wide-media .gf-split__media { aspect-ratio: 3 / 2; }

/* Liczniki */
.gf-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gf-space-5); margin: var(--gf-space-7) 0 0; padding-top: var(--gf-space-7); border-top: 1px solid var(--gf-color-line); }
.gf-stack > .gf-stats { margin-top: var(--gf-space-7); }
.gf-stats__item { margin: 0; }
.gf-stats__value { font-family: var(--gf-font-heading); font-size: clamp(2.5rem, 1.8rem + 2.4vw, 3.5rem); line-height: 1; color: var(--gf-color-gold, var(--gf-color-accent)); font-variant-numeric: lining-nums tabular-nums; }
.gf-stats__label { margin: var(--gf-space-2) 0 0; font-size: 0.75rem; letter-spacing: var(--gf-eyebrow-ls); text-transform: uppercase; color: var(--gf-color-heading); }

/* ---------- Doświadczenie ---------- */
.gf-timeline { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--gf-color-line); }
.gf-timeline__row { display: grid; gap: var(--gf-space-2) var(--gf-space-6); padding-block: var(--gf-space-6); border-bottom: 1px solid var(--gf-color-line); }
@media (min-width: 800px) { .gf-timeline__row { grid-template-columns: 9rem minmax(0, 0.85fr) minmax(0, 1.15fr); column-gap: clamp(var(--gf-space-6), 4vw, var(--gf-space-8)); align-items: baseline; } }
.gf-timeline__when { margin: 0; font-family: var(--gf-font-heading); font-style: italic; font-size: 1.375rem; color: var(--gf-color-link); }
/* Rola: mniejsza niż globalny nagłówek H3 (mocniej niż „.elementor-kit h3"), długie nazwy łamią się równo w 2 linie.
   Rozmiar zmienisz w widżecie: Styl → Rola. */
.gf-timeline .gf-timeline__role { margin: 0; font-weight: 400; font-size: clamp(1.25rem, 1.05rem + 0.4vw, 1.5rem); line-height: 1.3; text-wrap: balance; }
.gf-timeline__desc { margin: 0; font-size: 1rem; }

/* ---------- Oferta (karty) ---------- */
.gf-offer { background: var(--gf-color-dark); }
.gf-offer__grid { align-items: stretch; }
.gf-offer-card { display: flex; flex-direction: column; background: #fff; color: var(--gf-color-text); scroll-margin-top: calc(var(--gf-header-h) + var(--gf-space-6)); }
.gf-section--dark .gf-offer-card :is(h3, a:not(.gf-btn)) { color: var(--gf-color-heading); }
.gf-offer-card__media { aspect-ratio: 401 / 319; } /* jak na starej stronie (≈ 5:4) */
.gf-offer-card__body { flex: 1; display: flex; flex-direction: column; padding: var(--gf-space-6); }
.gf-offer-card__body h3 { margin: 0; }
.gf-offer-card__why { padding-bottom: var(--gf-space-2); border-bottom: 1px solid var(--gf-color-line); font-family: var(--gf-font-heading); font-style: italic; font-size: 1.375rem; color: var(--gf-color-link); }
.gf-offer-card__benefits { color: var(--gf-color-ink); font-size: 0.9375rem; }
.gf-offer-card__cta { margin-top: auto; padding-top: var(--gf-space-4); }
.gf-offer-card .gf-btn { color: #fff; }
/* Tytuł karty w jednej linii: rozmiar z motywu / zakładki Styl, ale najwyżej taki, przy którym
   ~25 znaków (np. „Audyty, badania i analizy") mieści się w szerokości karty. */
.gf-offer-card__title { container-type: inline-size; }
.gf-offer-card__title-text { display: block; font-size: min(1em, 100cqi / 10.2); }
/* Karty w rzędzie wyrównane: tytuły, opisy, „Dlaczego warto?" i przyciski na tej samej wysokości */
@supports (grid-template-rows: subgrid) {
	.gf-offer-card { display: grid; grid-row: span var(--gf-card-rows, 6); grid-template-rows: subgrid; row-gap: 0; }
	.gf-offer-card__body { grid-row: 2 / -1; display: grid; grid-template-rows: subgrid; row-gap: 0; align-content: start; }
	.gf-offer-card--no-media .gf-offer-card__body { grid-row: 1 / -1; }
	/* Odstęp pod elementem zamiast nad (zakładka Styl → „Odstęp pod spodem" go zastępuje, jak dotąd) */
	.gf-offer-card__body.gf-stack > * { margin-top: 0; margin-bottom: var(--gf-stack-gap); }
	.gf-offer-card__body.gf-stack > :last-child { margin-bottom: 0; }
	.gf-offer-card__cta { align-self: end; }
}

/* ---------- Kontakt ---------- */
.gf-contact__grid { display: grid; gap: clamp(var(--gf-space-7), 6vw, var(--gf-space-9)); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 768px) { .gf-contact__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }
.gf-contact__aside .gf-zoom { aspect-ratio: 4 / 5; }
.gf-contact__soc-title { color: var(--gf-color-link); }
.gf-contact__direct { display: flex; flex-wrap: wrap; gap: var(--gf-space-3) var(--gf-space-7); }
.gf-contact__direct a { font-family: var(--gf-font-heading); font-size: var(--gf-fs-h4); color: var(--gf-color-heading); text-decoration: none; }
.gf-contact__direct a:hover { color: var(--gf-color-accent); }
@media (min-width: 900px) { .gf-contact__main { padding-top: var(--gf-space-9); } }

/* ---------- Wejście hero: czysty CSS, startuje od razu (nie czeka na JS ani przewinięcie) ---------- */
[data-intro] { animation: gf-intro var(--gf-reveal-dur) var(--gf-ease-out) both; animation-delay: calc(80ms + var(--d, 0) * 120ms); }
[data-intro="img"] { animation-name: gf-intro-img; animation-duration: 1.6s; animation-delay: 0s; }
/* Tekst hero widoczny od pierwszego renderu (FCP/LCP), tylko lekko „wjeżdża” – bez opacity: 0 */
@keyframes gf-intro { from { transform: translate3d(0, 12px, 0); } }
/* Zdjęcie nie znika (szybki LCP), tylko lekko „osiada" */
@keyframes gf-intro-img { from { transform: scale(1.04) translate3d(0, 12px, 0); } }
@media (prefers-reduced-motion: reduce) { [data-intro] { animation: none; } }

/* Wariant: zdjęcie po prawej (pole „Strona zdjęcia" w widżecie) */
@media (min-width: 768px) {
	.gf-split--media-right .gf-split__media { order: 2; }
	.gf-split--media-right.gf-split--wide-media { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); }
}
.gf-contact .gf-section-head { margin-bottom: 0; }

/* ---------- Widżety GF w Elementorze ----------
   Sekcja sama trzyma szerokość i odstępy (tokeny), więc kontener Elementora wokół niej
   ma być „przezroczysty": pełna szerokość, bez paddingu i przerw. */
.e-con:has(> .gf-section-widget),
.e-con:has(> .e-con-inner > .gf-section-widget) {
	--padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0;
	--gap: 0; --row-gap: 0; --column-gap: 0;
	--content-width: 100%; --container-max-width: none; max-width: none;
}
.gf-section-widget { width: 100%; margin: 0 !important; }
.e-con:has(> .gf-section-widget) > .e-con-inner, .e-con:has(> .e-con-inner > .gf-section-widget) > .e-con-inner { max-width: none; padding: 0; gap: 0; }

/* Edytor Elementora: treść zawsze widoczna (widżety przeładowują się bez animacji wejścia) */
.elementor-editor-active [data-reveal],
.elementor-editor-active .gf-w > span { opacity: 1 !important; transform: none !important; }

/* ==========================================================================
   KLOCKI GF (kategoria „Grafinarnia – klocki")
   ========================================================================== */
.gf-marquee--line { border-top: 1px solid var(--gf-color-line); }

/* Nagłówek */
.gf-heading > *:last-child { margin-bottom: 0; }
.gf-heading:not(.gf-section-head) { margin-bottom: 0; }
.gf-statement { font-size: clamp(1.5rem, 1.2rem + 1.1vw, 2.125rem); line-height: 1.3; }
.gf-heading.gf-text-center :is(h1, h2, h3, h4, p) { margin-inline: auto; }
/* W kontenerze odstęp między elementami daje już „gap", więc nagłówek sekcji dokłada tylko różnicę */
.e-con .gf-section-head { margin-bottom: clamp(var(--gf-space-3), 3vw, var(--gf-space-6)); }

/* Tekst */
.gf-text > * { margin: 0; }
.gf-text--narrow > * { max-width: 65ch; }
.gf-text--ink { font-style: italic; color: var(--gf-color-ink); }
.gf-text ul, .gf-text ol { padding-left: 1.2em; }
.gf-text a { color: var(--gf-color-link); }
.gf-section--dark .gf-text a { color: var(--gf-color-accent-soft); }

/* Przycisk */
.gf-cluster--end { justify-content: flex-end; }

/* Zdjęcie z kadrem */
.gf-figure { margin: 0; }
.gf-figure img { width: 100%; height: auto; }
.gf-ratio img, .elementor .gf-ratio img { height: 100%; object-fit: cover; }
.gf-ratio--4-5 { aspect-ratio: 4 / 5; }
.gf-ratio--9-10 { aspect-ratio: 9 / 10; }
.gf-ratio--1-1 { aspect-ratio: 1; }
.gf-ratio--10-9 { aspect-ratio: 10 / 9; }
.gf-ratio--3-2 { aspect-ratio: 3 / 2; }
.gf-ratio--16-9 { aspect-ratio: 16 / 9; }

/* Liczniki jako osobny klocek: bez górnej linii, jeśli stoją same */
.elementor-widget-gf-stats:first-child .gf-stats { margin-top: 0; padding-top: 0; border-top: 0; }
.gf-section--dark .gf-stats__label { color: rgb(255 255 255 / 0.85); }

/* ---------- Zdjęcie do krawędzi ekranu (sekcja „O mnie", przełącznik w widżecie) ----------
   Zdjęcie od lewej krawędzi na pełną wysokość sekcji, tekst w prawej połowie siatki treści. */
.gf-section.gf-section--bleed { padding-block: 0; }
.gf-bleed { display: grid; grid-template-columns: minmax(0, 1fr); }
.gf-bleed > .gf-split__media { position: relative; aspect-ratio: 4 / 3; }
/* Zdjęcie wypełnia komórkę, ale nie rozpycha wysokości sekcji (wysokość daje tekst i min-height) */
.gf-bleed > .gf-split__media img, .elementor .gf-bleed > .gf-split__media img { position: absolute; inset: 0; width: 100%; height: 100%; }
.gf-bleed > .gf-split__body { padding: var(--gf-section-pad-y) var(--gf-section-pad-x); }
@media (min-width: 1025px) { /* „O mnie" do krawędzi: obok siebie od 1025 px; na tablecie jedno pod drugim (tekst za długi na wąską kolumnę) */
	.gf-bleed {
		grid-template-columns: minmax(0, 1fr) minmax(0, min(calc(var(--gf-content-width) / 2), 50%));
		column-gap: clamp(var(--gf-space-7), 6vw, var(--gf-space-9));
		padding-right: max(var(--gf-section-pad-x), calc((100% - var(--gf-content-width)) / 2));
		min-height: clamp(480px, 34vw, 760px);
	}
	.gf-bleed > .gf-split__media { aspect-ratio: auto; height: 100%; }
	.gf-bleed > .gf-split__body { align-self: center; padding: var(--gf-section-pad-y) 0; }
	.gf-bleed--right { grid-template-columns: minmax(0, min(calc(var(--gf-content-width) / 2), 50%)) minmax(0, 1fr); padding-right: 0; padding-left: max(var(--gf-section-pad-x), calc((100% - var(--gf-content-width)) / 2)); }
	.gf-bleed--right > .gf-split__media { order: 2; }
}
.gf-about__actions { gap: var(--gf-space-5); }

/* ==========================================================================
   OPINIE (wtyczka „Widgets for Google Reviews" / Trustindex) – w stylu strony.
   Bez !important przy kolorach i rozmiarach: zakładka Styl widżetu „GF Opinie Google" zawsze wygrywa.
   Krój wtyczki (Poppins z zewnętrznego serwera) zastąpiony krojami motywu – nie jest pobierany.
   W granatowej sekcji kolory jasne ustawiają się same.
   ========================================================================== */
html body .ti-widget.ti-goog {
	--gf-rev-text: var(--gf-color-text);
	--gf-rev-name: var(--gf-color-heading);
	--gf-rev-muted: var(--gf-color-muted);
	--gf-rev-summary: var(--gf-color-text);
	--gf-rev-more: var(--gf-color-accent);
	--gf-rev-arrows: var(--gf-color-dark);
	max-width: 56rem; margin-inline: auto; background: transparent;
}
.gf-section--dark .ti-widget.ti-goog {
	--gf-rev-text: rgb(255 255 255 / 0.9);
	--gf-rev-name: #fff;
	--gf-rev-muted: rgb(255 255 255 / 0.6);
	--gf-rev-summary: rgb(255 255 255 / 0.88);
	--gf-rev-more: var(--gf-color-accent-soft);
	--gf-rev-arrows: #fff;
}
html body .ti-widget.ti-goog .ti-widget-container,
html body .ti-widget.ti-goog .ti-widget-container * { font-family: var(--gf-font-body); }
html body .ti-widget.ti-goog .ti-review-item > .ti-inner { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 var(--gf-space-7) !important; text-align: center; }
html body .ti-widget.ti-goog .ti-review-header { justify-content: center; margin-bottom: var(--gf-space-3); }
html body .ti-widget.ti-goog .ti-widget-container .ti-name { padding-right: 0; font-family: var(--gf-font-heading) !important; font-size: var(--gf-fs-h4); font-weight: 500; color: var(--gf-rev-name); }
html body .ti-widget.ti-goog .ti-widget-container .ti-date { font-size: var(--gf-fs-small); color: var(--gf-rev-muted); }
html body .ti-widget.ti-goog .ti-stars { justify-content: center; margin-bottom: var(--gf-space-4); }
/* Tekst opinii: elegancki Cormorant kursywą; wysokość „zwiniętej" opinii = 4 linie w nowym rozmiarze */
html body .ti-widget.ti-goog .ti-widget-container .ti-review-content,
html body .ti-widget.ti-goog .ti-widget-container .ti-review-content * {
	font-family: var(--gf-font-heading) !important; font-style: italic; font-weight: 400; /* !important: wtyczka wymusza dziedziczenie kroju („ti-disable-font") */
	font-size: clamp(1.25rem, 1.05rem + 0.45vw, 1.5rem); line-height: 1.5; color: var(--gf-rev-text); text-align: center;
}
html body .ti-widget.ti-goog .ti-review-content { height: calc(1.5em * 4); }
html body .ti-widget.ti-goog .ti-read-more { text-align: center; }
html body .ti-widget.ti-goog .ti-read-more span {
	opacity: 1; color: var(--gf-rev-more); font-family: var(--gf-font-body);
	font-size: var(--gf-eyebrow-fs); letter-spacing: var(--gf-eyebrow-ls); text-transform: uppercase; font-style: normal;
}
html body .ti-widget.ti-goog .ti-read-more:after { display: none; }
/* Strzałki suwaka – kolor = currentColor (zmienisz w zakładce Styl → Strzałki) */
html body .ti-widget.ti-goog .ti-controls .ti-next,
html body .ti-widget.ti-goog .ti-controls .ti-prev {
	width: 44px; height: 44px; border-radius: 50%; border: 1px solid currentColor; background: transparent; opacity: 1;
	color: var(--gf-rev-arrows); transition: background var(--gf-transition);
}
html body .ti-widget.ti-goog .ti-controls :is(.ti-next, .ti-prev):hover { background: color-mix(in srgb, currentColor 14%, transparent); }
html body .ti-widget.ti-goog .ti-controls :is(.ti-next, .ti-prev)::before { border-color: currentColor; }
/* Podsumowanie oceny pod suwakiem */
html body .ti-widget.ti-goog .ti-footer,
html body .ti-widget.ti-goog .ti-footer *,
html body .ti-widget.ti-goog .ti-rating-text,
html body .ti-widget.ti-goog .ti-rating-text * { font-size: 0.9375rem; color: var(--gf-rev-summary); font-family: var(--gf-font-body); font-style: normal; }
/* :not(.ti-rating-large) – mocniej niż reguła wtyczki (czarny kolor) */
html body .ti-widget.ti-goog :is(.ti-footer, .ti-rating-text) :is(strong:not(.ti-rating-large), strong a) { color: var(--gf-rev-name); font-weight: 700; }
html body .ti-widget.ti-goog .ti-footer { margin-top: var(--gf-space-6); }
@media (max-width: 699px) { html body .ti-widget.ti-goog .ti-review-item > .ti-inner { padding: 0 var(--gf-space-5) !important; } }

/* ---------- Zdjęcia na tablecie i telefonie ----------
   Kolumny układają się tam jedna pod drugą, więc pionowe kadry robiły się ogromne.
   Klocek GF Zdjęcie: osobne proporcje dla tabletu (≤1024 px) i telefonu (≤767 px). */
@media (max-width: 1024px) {
	.gf-ratio-t--4-3 { aspect-ratio: 4 / 3; }
	.gf-ratio-t--3-2 { aspect-ratio: 3 / 2; }
	.gf-ratio-t--16-9 { aspect-ratio: 16 / 9; }
	.gf-ratio-t--1-1 { aspect-ratio: 1; }
}
@media (max-width: 767px) {
	.gf-ratio-m--4-3 { aspect-ratio: 4 / 3; }
	.gf-ratio-m--3-2 { aspect-ratio: 3 / 2; }
	.gf-ratio-m--16-9 { aspect-ratio: 16 / 9; }
	.gf-ratio-m--1-1 { aspect-ratio: 1; }
}
/* Widżety-sekcje: pionowe zdjęcia też poziome, gdy kolumny są jedna pod drugą */
@media (max-width: 767px) {
	.gf-support__media, .gf-contact__aside .gf-zoom, .gf-split__media, .gf-bleed > .gf-split__media { aspect-ratio: 3 / 2; }
}
/* Tablet: zdjęcie w kolumnie obok tekstu (układy kolumn od 768 px) zachowuje pionowy kadr z komputera
   – dotyczy tylko trybu „Automatycznie"; ręcznie wybrane proporcje dla tabletu wygrywają. */
@media (min-width: 768px) and (max-width: 1024px) {
	:is(.gf-cols--split, .gf-cols--5-7, .gf-cols--7-5, .gf-cols--3):not(.gf-cols-t--stack) .gf-ratio-t-auto.gf-ratio--4-5 { aspect-ratio: 4 / 5; }
	:is(.gf-cols--split, .gf-cols--5-7, .gf-cols--7-5, .gf-cols--3):not(.gf-cols-t--stack) .gf-ratio-t-auto.gf-ratio--9-10 { aspect-ratio: 9 / 10; }
}
/* „O mnie" do krawędzi na tablecie: jedno pod drugim, zdjęcie w szerokim kadrze 16:9 */
@media (min-width: 768px) and (max-width: 1024px) { .gf-bleed > .gf-split__media { aspect-ratio: auto; width: 100%; height: 300px; } }

/* Tablet (hero jedno pod drugim): tytuł, tekst i przycisk na środku */
@media (min-width: 768px) and (max-width: 899px) {
	.gf-hero__text { text-align: center; }
	.gf-hero__title, .gf-hero__lead { margin-inline: auto; }
}
/* Pasek „01 Szkolenia / 02 Doradztwo / 03 Audyty" wyśrodkowany na tablecie i telefonie */
@media (max-width: 1024px) { .gf-bar__list { justify-content: center; text-align: center; } }

/* Opinie: eleganckie, cienkie strzałki bez kółek (kolor = Styl → Strzałki) */
html body .ti-widget.ti-goog .ti-controls .ti-next,
html body .ti-widget.ti-goog .ti-controls .ti-prev { width: 48px; height: 32px; border: 0; border-radius: 0; background: transparent; }
html body .ti-widget.ti-goog .ti-controls :is(.ti-next, .ti-prev):hover { background: transparent; opacity: 0.6; }
html body .ti-widget.ti-goog .ti-controls :is(.ti-next, .ti-prev)::before {
	content: ""; position: absolute; inset: 0; margin: auto; width: 40px; height: 14px;
	border: 0; transform: none; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 14'%3E%3Cpath d='M0 7h39M33 1l6 6-6 6' fill='none' stroke='%23000' stroke-width='1'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 14'%3E%3Cpath d='M0 7h39M33 1l6 6-6 6' fill='none' stroke='%23000' stroke-width='1'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.35s var(--gf-ease-out);
}
html body .ti-widget.ti-goog .ti-controls .ti-prev::before { transform: scaleX(-1); }
html body .ti-widget.ti-goog .ti-controls .ti-next:hover::before { transform: translateX(4px); }
html body .ti-widget.ti-goog .ti-controls .ti-prev:hover::before { transform: scaleX(-1) translateX(4px); }

/* Dane kontaktowe – wiersze „etykieta | wartość" (GF Dane kontaktowe → Wygląd: Wiersze) */
.gf-contact-rows { margin: 0; }
.gf-contact-rows__row {
	display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: var(--gf-space-2) var(--gf-space-5);
	padding-block: var(--gf-space-5); border-bottom: 1px solid var(--gf-color-line);
}
.gf-contact-rows__row:first-child { padding-top: 0; }
.gf-contact-rows__label {
	margin: 0; font-family: var(--gf-font-heading); font-weight: 500; font-size: var(--gf-fs-h4);
	text-transform: uppercase; letter-spacing: 0.04em; line-height: 1.2; color: var(--gf-color-heading);
}
.gf-contact-rows__value { margin: 0; text-align: right; }
.gf-contact-rows__value a { color: var(--gf-color-text); text-decoration: none; transition: color var(--gf-transition); }
.gf-contact-rows__value a:hover { color: var(--gf-color-accent); }
.gf-section--dark .gf-contact-rows__label { color: #fff; }
.gf-section--dark .gf-contact-rows__value a { color: rgb(255 255 255 / 0.85); }
.gf-section--dark .gf-contact-rows__row { border-color: rgb(255 255 255 / 0.18); }
@media (max-width: 479px) { .gf-contact-rows__row { flex-direction: column; align-items: flex-start; } .gf-contact-rows__value { text-align: left; } }
