/* Treść podstron generowanych przez setup/content.php i setup/pages.php */
.fg-check { list-style: none; margin: 0; padding: 0; }
.fg-check li { position: relative; padding-left: 26px; margin: 0 0 8px; }
.fg-check li::before { content: "✓"; position: absolute; left: 0; top: 0; font-weight: 800; color: var(--e-global-color-accent); }
.fg-map iframe { display: block; width: 100%; border: 0; border-radius: 12px; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* ---- Hero podstron ($hero w setup/lib.php) ---- */
.fg-hero { position: relative; overflow: hidden; isolation: isolate; }
.fg-hero > .e-con-inner { position: relative; z-index: 2; }
/* siatka z wygaszeniem ku krawędziom (w wersji ze zdjęciem ::before to nakładka Elementora) */
.fg-hero:not(.fg-hero--photo)::before {
	content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
	background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
	background-size: 56px 56px;
	-webkit-mask-image: radial-gradient(ellipse 70% 80% at 75% 30%, #000 10%, transparent 75%);
	mask-image: radial-gradient(ellipse 70% 80% at 75% 30%, #000 10%, transparent 75%);
}
/* znak „24/7” w tle */
.fg-hero::after {
	content: "24/7"; position: absolute; z-index: 1; right: -1.5vw; bottom: -0.22em; pointer-events: none;
	font-size: clamp(160px, 24vw, 380px); font-weight: 900; font-style: italic; line-height: 1; letter-spacing: -0.04em;
	color: transparent; -webkit-text-stroke: 2px rgba(198,40,32,.22);
}
.fg-hero--photo::after { -webkit-text-stroke-color: rgba(255,255,255,.12); }

.fg-accent { color: var(--e-global-color-accent); }
.fg-hero .elementor-button { border: 2px solid transparent; }

.fg-crumbs { display: flex; flex-wrap: wrap; gap: 8px; font-size: 13px; letter-spacing: .3px; color: #8A8A8A; }
.fg-crumbs a { color: #B5B5B5; text-decoration: none; }
.fg-crumbs a:hover { color: #fff; }
.fg-crumbs [aria-current] { color: #fff; }

.fg-kicker .elementor-heading-title { display: flex; align-items: center; gap: 12px; }
.fg-kicker .elementor-heading-title::before { content: ""; width: 36px; height: 2px; background: currentColor; flex: none; }

.fg-facts { list-style: none; margin: 0; padding: 24px 0 0; display: flex; flex-wrap: wrap; gap: 20px 0; border-top: 1px solid rgba(255,255,255,.1); }
.fg-facts li { display: flex; flex-direction: column; padding: 0 28px; border-left: 1px solid rgba(255,255,255,.1); }
.fg-facts li:first-child { padding-left: 0; border-left: 0; }
.fg-facts li:last-child { padding-right: 0; }
.fg-facts strong { font-size: 28px; font-weight: 800; line-height: 1.1; color: #fff; }
.fg-facts .fg-cards { flex-wrap: nowrap; gap: 12px; min-height: 31px; }
.fg-facts .fg-cards .fg-cards__logo--ms { height: 18px; }
.fg-facts .fg-cards .fg-cards__logo--mc { height: 23px; }
.fg-facts li > span { margin-top: 4px; font-size: 13px; color: #9A9A9A; text-transform: uppercase; letter-spacing: 1px; }
@media (max-width: 1359px) {
	.fg-facts .fg-cards { flex-direction: column; align-items: flex-start; gap: 6px; min-height: 0; }
}
@media (max-width: 767px) {
	.fg-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.fg-facts li { padding: 0 12px; }
	.fg-facts strong { font-size: 19px; }
	.fg-facts li > span { font-size: 11px; }
	.fg-facts .fg-cards .fg-cards__logo { max-width: 100%; }
	.fg-facts .fg-cards .fg-cards__logo--ms { height: 14px; }
	.fg-facts .fg-cards .fg-cards__logo--mc { height: 18px; }
	.fg-hero::after { font-size: 150px; right: -20px; bottom: -24px; }
}

/* karta w prawej kolumnie hero */
.fg-hero-card { box-shadow: 0 30px 80px -20px rgba(198,40,32,.35), 0 0 0 1px rgba(255,255,255,.04); backdrop-filter: blur(6px); }
.fg-badge { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; background: rgba(46,204,113,.12); color: #5BE38F; font-size: 13px; font-weight: 700; }
.fg-badge::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #2ECC71; box-shadow: 0 0 0 0 rgba(46,204,113,.7); animation: fg-pulse 2s infinite; }
@keyframes fg-pulse { 70% { box-shadow: 0 0 0 10px rgba(46,204,113,0); } 100% { box-shadow: 0 0 0 0 rgba(46,204,113,0); } }
@media (prefers-reduced-motion: reduce) { .fg-badge::before { animation: none; } }
.fg-rows { list-style: none; margin: 0; padding: 0; }
.fg-rows li { line-height: 1.35; display: grid; grid-template-columns: 84px 1fr; gap: 4px 14px; padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.07); }
.fg-rows li:last-child { border-bottom: 0; }
.fg-rows b { color: var(--e-global-color-accent); font-size: 13px; text-transform: uppercase; letter-spacing: 1px; padding-top: 2px; }
.fg-rows span { color: #fff; font-weight: 700; }
.fg-rows small { grid-column: 2; color: #9A9A9A; font-size: 13px; }

/* kolaż trenerów */
.fg-team { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; align-items: end; }
.fg-team figure { margin: 0; position: relative; border-radius: 10px; overflow: hidden; box-shadow: 0 24px 60px -18px rgba(0,0,0,.9); }
.fg-team figure:nth-child(2) { transform: translateY(-36px); box-shadow: 0 30px 80px -20px rgba(198,40,32,.55); }
.fg-team img { display: block; width: 100%; aspect-ratio: 4 / 5.6; object-fit: cover; object-position: center top; }
.fg-team figcaption { font-style: normal; position: absolute; inset: auto 0 0; padding: 36px 12px 12px; background: linear-gradient(transparent, rgba(0,0,0,.85)); color: #fff; font-weight: 800; font-size: 16px; }
.fg-team figcaption small { display: block; font-style: normal; font-weight: 500; font-size: 12px; color: #C8C8C8; }
@media (max-width: 767px) {
	.fg-team { gap: 8px; }
	.fg-team figure:nth-child(2) { transform: translateY(-16px); }
	.fg-team figcaption { padding: 24px 8px 8px; font-size: 13px; }
	.fg-team figcaption small { display: none; }
}

/* Hero strony głównej (zdjęcie w tle) – na tablecie i telefonie tekst idzie przez całe zdjęcie, więc mocniejsze przyciemnienie */
.fg-home-hero > .e-con-inner { position: relative; z-index: 2; }
@media (max-width: 1024px) {
	.fg-home-hero.e-con::before,
	.fg-hero--photo.e-con::before { background-image: linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.78) 55%, #000 100%) !important; }
}

/* ---- Telefon (≤767 px) ---- */
@media (max-width: 767px) {
	/* przyciski na całą szerokość, tekst wyśrodkowany */
	.elementor-widget-button { width: 100%; }
	.elementor-widget-button .elementor-button { width: 100%; justify-content: center; }

	/* karta po prawej w hero dubluje treść tuż pod nią – na telefonie znika (kolaż trenerów zostaje) */
	.fg-hero .e-con:has(> .fg-hero-card) { display: none; }

	/* siatka → karuzela z przewijaniem w bok; kolejna karta wystaje, żeby było widać, że da się przesunąć */
	.fg-swipe.e-con {
		display: flex !important; flex-wrap: nowrap; gap: 14px;
		overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
		width: calc(100% + 40px) !important; max-width: none; margin: 0 -20px; padding: 0 20px 6px; scroll-padding: 0 20px; scrollbar-width: none;
	}
	.fg-swipe.e-con::-webkit-scrollbar { display: none; }
	.fg-swipe.e-con > .e-con { flex: 0 0 84%; max-width: 84%; scroll-snap-align: start; }

	/* proste karty cenowe w jednym wierszu: nazwa i dopisek po lewej, cena po prawej */
	.fg-price--row.e-con { display: grid; grid-template-columns: 1fr auto; column-gap: 16px; align-items: center; }
	.fg-price--row.e-con > .elementor-element { margin: 0; }
	.fg-price--row.e-con > .elementor-element:nth-child(1) { grid-column: 1; grid-row: 1; }
	.fg-price--row.e-con > .elementor-element:nth-child(2) { grid-column: 2; grid-row: 1 / span 2; }
	.fg-price--row.e-con > .elementor-element:nth-child(3) { grid-column: 1; grid-row: 2; margin-top: 2px; }
	.fg-price div.elementor-heading-title { font-size: 36px !important; }
	.fg-price--row div.elementor-heading-title { font-size: 30px !important; white-space: nowrap; }

	/* zdjęcia trenerów w kartach: kwadrat zamiast 4:5 */
	.fg-trainer-photo img { aspect-ratio: 1 / 1; object-fit: cover; object-position: center 12%; }

	/* liczby w jednym rzędzie */
	.fg-stat-label { font-size: 10.5px; letter-spacing: .5px !important; line-height: 1.35; }

	/* FAQ */
	.e-n-accordion-item-title-text { font-size: 16px; line-height: 1.35; }

	/* /aplikacja/ */
	.fg-app { padding: 48px 20px 64px; }
	.fg-app__links { flex-direction: column; }
	.fg-app__links .fg-header__cta { width: 100%; justify-content: center; }
}
/* /aplikacja/ – nagłówek w stylu reszty strony */
.fg-app h1 { font-size: clamp(32px, 6vw, 48px); font-weight: 800; line-height: 1.1; color: #fff; margin: 0 0 16px; }
.fg-app p { color: #C8C8C8; font-size: 18px; line-height: 1.6; }
.fg-app__h2 { font-size: clamp(24px, 4vw, 30px); font-weight: 800; line-height: 1.2; color: #fff; margin: 64px 0 8px; }
.fg-app__video { display: block; width: 100%; max-width: 360px; height: auto; aspect-ratio: 9 / 16; margin: 24px auto 0; border-radius: 14px; background: #000; box-shadow: 0 30px 80px -20px rgba(198,40,32,.35), 0 0 0 1px rgba(255,255,255,.08); }
.fg-app__ig { display: inline-flex; align-items: center; gap: 8px; margin-top: 24px; color: #fff; font-weight: 700; text-decoration: none; border-bottom: 2px solid var(--e-global-color-accent, #C62820); padding-bottom: 2px; }
.fg-app__ig:hover { color: var(--e-global-color-accent, #C62820); }

/* ---- Galeria /zdjecia/ (Elementor „Galeria podstawowa” z klasą fg-gallery) – cegiełki bez przycinania ---- */
.fg-gallery .gallery { display: block !important; columns: 3; column-gap: 12px; }
.fg-gallery .gallery br { display: none; }
.fg-gallery .gallery-item { display: block; width: 100% !important; max-width: none !important; margin: 0 0 12px !important; padding: 0 !important; break-inside: avoid; }
.fg-gallery .gallery-icon a { display: block; overflow: hidden; border-radius: 10px; background: #111; }
.fg-gallery .gallery-icon img { display: block; width: 100%; height: auto; border: 0 !important; transition: transform .5s ease, filter .3s ease; }
.fg-gallery .gallery-icon a:hover img { transform: scale(1.04); filter: brightness(1.08); }
@media (prefers-reduced-motion: reduce) { .fg-gallery .gallery-icon img { transition: none; } }
@media (max-width: 1024px) { .fg-gallery .gallery { columns: 2; } }
@media (max-width: 767px) { .fg-gallery .gallery { columns: 2; column-gap: 8px; } .fg-gallery .gallery-item { margin-bottom: 8px !important; } .fg-gallery .gallery-icon a { border-radius: 8px; } }
/* Spis treści galerii – pasek przyklejony pod menu (kotwice sekcji .fg-gsec, aktywny link: assets/gallery.js) */
.fg-toc { position: sticky; top: 80px; z-index: 90; background: rgba(0,0,0,.88); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-bottom: 1px solid rgba(255,255,255,.08); }
.admin-bar .fg-toc { top: 112px; }
.fg-toc .elementor-widget-html { width: 100%; }
.fg-toc__nav { display: flex; justify-content: center; gap: 8px; max-width: 1240px; margin: 0 auto; padding: 12px 20px; overflow-x: auto; scrollbar-width: none; scroll-behavior: smooth; }
.fg-toc__nav::-webkit-scrollbar { display: none; }
.fg-toc__nav a { flex: none; display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; border-radius: 999px; border: 1px solid rgba(255,255,255,.14); color: #fff; font-size: 14px; font-weight: 700; line-height: 1; white-space: nowrap; text-decoration: none; transition: background .2s, border-color .2s; }
.fg-toc__nav a small { font-size: 12px; font-weight: 600; color: #B5B5B5; }
.fg-toc__nav a:hover { border-color: var(--e-global-color-accent, #C62820); }
.fg-toc__nav a.is-active { background: var(--e-global-color-accent, #C62820); border-color: var(--e-global-color-accent, #C62820); }
.fg-toc__nav a.is-active small { color: rgba(255,255,255,.8); }
.fg-gsec { scroll-margin-top: 140px; }
.admin-bar .fg-gsec { scroll-margin-top: 172px; }
html:has(.fg-toc) { scroll-behavior: smooth; }
@media (max-width: 1100px) { .fg-toc__nav { justify-content: flex-start; } }
@media (max-width: 782px) { .admin-bar .fg-toc { top: 80px; } }
@media (max-width: 767px) {
	.fg-toc, .admin-bar .fg-toc { top: 68px; }
	.fg-toc__nav { padding: 10px 16px; gap: 6px; }
	.fg-toc__nav a { padding: 8px 13px; font-size: 13px; }
	.fg-gsec, .admin-bar .fg-gsec { scroll-margin-top: 118px; }
}
@media (prefers-reduced-motion: reduce) { html:has(.fg-toc), .fg-toc__nav { scroll-behavior: auto; } }
/* Siatka bez dziur (włącza ją assets/gallery.js: .is-grid, pionowe .is-tall = 2 wiersze, .is-wide = 2 kolumny, kolejność przez style.order) */
.fg-gallery .gallery.is-grid {
	--cols: 3; --gap: 12px;
	display: grid !important; columns: auto; gap: var(--gap);
	grid-template-columns: repeat(var(--cols), 1fr);
	grid-auto-rows: var(--row, 220px); /* --row ustawia gallery.js: szerokość kolumny × 2/3 */
	grid-auto-flow: row dense;
}
.fg-gallery .is-grid .gallery-item { margin: 0 !important; }
.fg-gallery .is-grid .gallery-item.is-tall { grid-row: span 2; }
.fg-gallery .is-grid .gallery-item.is-wide { grid-column: span 2; }
.fg-gallery .is-grid .gallery-icon, .fg-gallery .is-grid .gallery-icon a { height: 100%; }
.fg-gallery .is-grid .gallery-icon img { height: 100% !important; object-fit: cover; }
@media (max-width: 1024px) { .fg-gallery .gallery.is-grid { --cols: 2; } }
@media (max-width: 767px) { .fg-gallery .gallery.is-grid { --gap: 8px; } }

/* ---- Grafik tygodnia (setup/content.php $week) ---- */
.fg-week { --tone: var(--e-global-color-accent); --line: rgba(255,255,255,.07); }
.fg-tone-1 { --tone: #C62820; }   /* Daria */
.fg-tone-2 { --tone: #E8913A; }   /* Weronika */
.fg-tone-3 { --tone: #8FA3B8; }   /* Mateusz */
.fg-tone-4 { --tone: #7FB77E; }   /* inni trenerzy */

.fg-week__legend { list-style: none; margin: 0 0 20px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; font-size: 14px; color: #B5B5B5; }
.fg-week__legend li { display: flex; align-items: center; gap: 8px; }
.fg-week__legend li::before { content: ""; width: 10px; height: 10px; border-radius: 3px; background: var(--tone); }
.fg-week__legend .fg-week__legend-today::before { background: transparent; border: 2px solid #fff; border-radius: 50%; width: 8px; height: 8px; }

.fg-week__grid {
	display: grid; grid-template-columns: 64px repeat(7, minmax(0, 1fr));
	grid-template-rows: auto repeat(var(--rows), minmax(96px, auto));
	background: #0B0B0B; border: 1px solid rgba(255,255,255,.08); border-radius: 14px; overflow: hidden;
}
.fg-week__grid > * { grid-row: 1; }
.fg-week__corner { grid-column: 1; border-bottom: 1px solid var(--line); }
.fg-week__day { padding: 18px 12px 14px; text-align: center; font-weight: 800; font-size: 15px; color: #fff; border-bottom: 1px solid var(--line); border-left: 1px solid var(--line); position: relative; z-index: 1; }
.fg-week__day-short { display: none; }
.fg-week__day.is-today { color: var(--e-global-color-accent); }
.fg-week__day.is-today::after { content: "dziś"; display: block; margin-top: 4px; font-size: 11px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: #fff; opacity: .7; }
.fg-week__col { grid-row: 1 / -1 !important; border-left: 1px solid var(--line); }
.fg-week__col.is-today { background: linear-gradient(180deg, rgba(198,40,32,.16), rgba(198,40,32,.04)); }
.fg-week__hour { grid-column: 1; padding: 12px 10px 0 0; text-align: right; font-size: 13px; font-weight: 700; color: #8A8A8A; border-top: 1px solid var(--line); font-variant-numeric: tabular-nums; }
.fg-week__rowline { grid-column: 2 / -1; border-top: 1px solid var(--line); pointer-events: none; }
.fg-week__break { grid-column: 1 / -1; display: flex; align-items: center; justify-content: center; min-height: 40px; border-top: 1px solid var(--line); position: relative; z-index: 1;
	background: repeating-linear-gradient(135deg, rgba(255,255,255,.025) 0 8px, transparent 8px 16px), #0B0B0B; }
.fg-week__break span { font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; color: #6F6F6F; }

.fg-week__event {
	position: relative; z-index: 1; margin: 6px; padding: 10px 10px 10px 13px; border-radius: 8px;
	display: flex; flex-direction: column; gap: 3px; min-width: 0;
	background: linear-gradient(180deg, color-mix(in srgb, var(--tone) 22%, #141414), color-mix(in srgb, var(--tone) 10%, #111));
	box-shadow: inset 3px 0 0 var(--tone), 0 0 0 1px color-mix(in srgb, var(--tone) 28%, transparent);
	transition: transform .2s ease, box-shadow .2s ease;
}
.fg-week__grid .fg-week__event:hover { transform: translateY(-2px); box-shadow: inset 3px 0 0 var(--tone), 0 0 0 1px var(--tone), 0 12px 24px -10px color-mix(in srgb, var(--tone) 60%, transparent); }
.fg-week__time { font-size: 12px; font-weight: 700; color: var(--tone); font-variant-numeric: tabular-nums; filter: brightness(1.25); }
.fg-week__name { font-size: 14px; line-height: 1.25; color: #fff; overflow-wrap: anywhere; hyphens: auto; }
.fg-week__meta { font-size: 12px; color: #A8A8A8; }

.fg-week__list { display: none; }

/* grafik na żywo (inc/schedule.php): zakładki tygodni, daty, wolne miejsca */
.fg-week__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; margin-bottom: 20px; }
.fg-week__bar .fg-week__legend { margin: 0; }
.fg-week__tabs { display: inline-flex; padding: 4px; gap: 4px; border-radius: 10px; background: #111; border: 1px solid rgba(255,255,255,.08); }
.fg-week button.fg-week__tab { appearance: none; border: 0; border-radius: 7px; padding: 9px 16px; background: transparent; color: #B5B5B5; font: inherit; font-size: 14px; font-weight: 700; cursor: pointer; line-height: 1.2; }
.fg-week button.fg-week__tab small { font-weight: 500; opacity: .7; margin-left: 4px; }
.fg-week button.fg-week__tab:hover, .fg-week button.fg-week__tab:focus { background: rgba(255,255,255,.06); color: #fff; }
.fg-week button.fg-week__tab.is-active { background: var(--e-global-color-accent); color: #fff; }
.fg-week button.fg-week__tab:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.fg-week__date { display: block; margin-top: 2px; font-size: 12px; font-weight: 600; color: #8A8A8A; font-variant-numeric: tabular-nums; }
.fg-week__lname .fg-week__date { display: inline; margin: 0 0 0 4px; }
.fg-week__spots { font-size: 12px; font-weight: 700; color: #DADADA; }
.fg-week__event.is-full .fg-week__spots { color: var(--e-global-color-accent); filter: brightness(1.3); }
.fg-week__event.is-past { opacity: .45; }
.fg-week__event.is-canceled { opacity: .55; }
.fg-week__event.is-canceled .fg-week__name { text-decoration: line-through; }
.fg-week__empty { padding: 28px; text-align: center; color: #B5B5B5; border: 1px solid rgba(255,255,255,.08); border-radius: 14px; background: #0B0B0B; }
.fg-rows__more { margin: 12px 0 0; font-size: 14px; color: #9A9A9A; }

@media (max-width: 1200px) {
	.fg-week__grid { grid-template-columns: 52px repeat(7, minmax(0, 1fr)); }
	.fg-week__day-long { display: none; } .fg-week__day-short { display: inline; text-transform: capitalize; }
	.fg-week__event { margin: 4px; padding: 8px 6px 8px 10px; }
	.fg-week__name { font-size: 13px; } .fg-week__meta { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) { .fg-week__event { transition: none; } }

/* telefon i mały tablet: lista dzień po dniu */
@media (max-width: 899px) {
	.fg-week__grid { display: none; }
	.fg-week__list { display: block; list-style: none; margin: 0; padding: 0; border: 1px solid rgba(255,255,255,.08); border-radius: 14px; overflow: hidden; background: #0B0B0B; }
	.fg-week__lday { display: grid; grid-template-columns: 92px 1fr; gap: 12px; padding: 14px 14px 14px 16px; border-top: 1px solid var(--line); align-items: start; }
	.fg-week__lday:first-child { border-top: 0; }
	.fg-week__lname { font-weight: 800; color: #fff; font-size: 15px; padding-top: 8px; }
	.fg-week__lday.is-today { background: linear-gradient(90deg, rgba(198,40,32,.18), transparent 70%); }
	.fg-week__lday.is-today .fg-week__lname { color: var(--e-global-color-accent); }
	.fg-week__lday.is-today .fg-week__lname::after { content: "dziś"; display: block; font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; color: #fff; opacity: .7; margin-top: 2px; }
	.fg-week__lday.is-empty { align-items: center; padding-top: 10px; padding-bottom: 10px; }
	.fg-week__lday.is-empty .fg-week__lname { padding-top: 0; color: #8A8A8A; }
	.fg-week__lnone { font-size: 13px; color: #6F6F6F; }
	.fg-week__levents { display: flex; flex-direction: column; gap: 8px; }
	.fg-week__levents .fg-week__event { margin: 0; }
	.fg-week__name { font-size: 15px; }
	.fg-week__legend { font-size: 13px; gap: 6px 16px; }
	.fg-week__tabs { width: 100%; } .fg-week button.fg-week__tab { flex: 1; padding: 9px 8px; }
}
@media (max-width: 380px) { .fg-week__lday { grid-template-columns: 1fr; gap: 8px; } .fg-week__lname { padding-top: 0; } }

/* ---- Opinie na stronie głównej ($reviews_html) ---- */
.fg-reviews { display: grid; grid-template-columns: 1fr 2fr; gap: 20px; }
.fg-reviews__rest { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.fg-review__stars { color: #FFC107; font-size: 18px; letter-spacing: 3px; line-height: 1; }

.fg-reviews__summary {
	position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; justify-content: center;
	padding: 36px 32px; border-radius: 16px; border: 2px solid var(--e-global-color-accent);
	background: radial-gradient(120% 90% at 0% 0%, #4A0806 0%, #160303 55%, #0E0E0E 100%);
}
.fg-reviews__g { position: absolute; right: -18px; top: -40px; font-size: 220px; font-weight: 900; line-height: 1; color: rgba(255,255,255,.03); pointer-events: none; }
.fg-reviews__score { font-size: 84px; font-weight: 900; line-height: .95; color: #fff; letter-spacing: -2px; font-variant-numeric: tabular-nums; }
.fg-reviews__score small { font-size: 24px; font-weight: 700; color: #9A9A9A; letter-spacing: 0; margin-left: 6px; }
.fg-reviews__summary .fg-review__stars { font-size: 24px; margin: 12px 0 10px; }
.fg-reviews__summary p { margin: 0 0 24px; color: #C8C8C8; font-size: 15px; }
.fg-reviews__btn { display: inline-block; padding: 13px 22px; border-radius: 6px; background: var(--e-global-color-accent); color: #fff !important; font-weight: 700; font-size: 15px; text-decoration: none; transition: background .2s; }
.fg-reviews__btn:hover { background: #A8211A; }
.fg-reviews__link { margin-top: 14px; font-size: 14px; color: #C8C8C8 !important; text-decoration: none; }
.fg-reviews__link:hover { color: #fff !important; }

.fg-review {
	position: relative; margin: 0; display: flex; flex-direction: column; gap: 16px;
	padding: 28px; border-radius: 16px; background: #141414; border: 1px solid rgba(255,255,255,.07);
	transition: border-color .2s, transform .2s;
}
.fg-review:hover { border-color: rgba(198,40,32,.45); transform: translateY(-2px); }
.fg-review::before { content: "”"; position: absolute; right: 22px; top: 2px; font-size: 110px; font-weight: 900; line-height: 1; color: rgba(198,40,32,.18); font-family: Georgia, serif; pointer-events: none; }
.fg-review__text { margin: 0; padding: 0; border: 0; flex: 1; }
.fg-review__text p { margin: 0; color: #E2E2E2; font-size: 16px; line-height: 1.65; font-style: normal; }
.fg-review--featured { padding: 36px 40px; justify-content: center; background: linear-gradient(160deg, #1A1A1A, #111); }
.fg-review--featured::before { font-size: 180px; right: 34px; top: -6px; }
.fg-review--featured .fg-review__text p { font-size: 20px; line-height: 1.6; color: #fff; font-weight: 500; }
.fg-review__author { font-style: normal; display: flex; align-items: center; gap: 12px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.07); }
.fg-review__author strong { display: block; color: #fff; font-size: 15px; }
.fg-review__author small { display: block; color: #8A8A8A; font-size: 13px; }
.fg-review__avatar { flex: none; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: 15px; color: #fff; background: linear-gradient(135deg, #C62820, #6E0F0B) !important; font-style: normal; }
.fg-reviews__rest .fg-review:nth-child(2) .fg-review__avatar { background: linear-gradient(135deg, #E8913A, #8A4A12) !important; }
.fg-reviews__rest .fg-review:nth-child(3) .fg-review__avatar { background: linear-gradient(135deg, #8FA3B8, #3E4C5B) !important; }
.fg-review__g { margin-left: auto; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: #4285F4; font-weight: 900; font-size: 15px; font-family: Arial, sans-serif; }
@media (prefers-reduced-motion: reduce) { .fg-review { transition: none; } }

@media (max-width: 1024px) {
	.fg-reviews { grid-template-columns: 1fr; }
	.fg-reviews__summary { display: grid; grid-template-columns: auto 1fr; column-gap: 24px; align-items: center; }
	.fg-reviews__score { grid-row: 1 / span 3; }
	.fg-reviews__summary .fg-review__stars { margin: 0; }
	.fg-reviews__summary p { margin: 6px 0 0; }
	.fg-reviews__btn { grid-column: 1 / -1; margin-top: 20px; text-align: center; }
	.fg-reviews__link { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
	.fg-reviews { gap: 14px; }
	.fg-reviews__summary { padding: 24px 20px; }
	.fg-reviews__score { font-size: 64px; }
	.fg-reviews__btn { display: block; }
	.fg-review--featured { padding: 24px 20px; }
	.fg-review--featured .fg-review__text p { font-size: 17px; }
	.fg-review--featured::before { font-size: 120px; right: 16px; }
	/* krótkie opinie: karuzela */
	.fg-reviews__rest { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 -20px; padding: 0 20px 4px; scroll-padding: 0 20px; scrollbar-width: none; }
	.fg-reviews__rest::-webkit-scrollbar { display: none; }
	.fg-reviews__rest .fg-review { flex: 0 0 82%; scroll-snap-align: start; padding: 22px 20px; }
}

/* stopka: podpis wykonawcy */
.fg-credit { margin-left: 10px; padding-left: 12px; border-left: 1px solid rgba(255,255,255,.15); white-space: nowrap; }
.fg-credit a { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.25); transition: color .2s, border-color .2s; }
.fg-credit a:hover { color: #fff; border-color: var(--e-global-color-accent); }
@media (max-width: 767px) { .fg-credit { display: block; margin: 6px 0 0; padding: 0; border: 0; } }

/* ---- Przycisk „Zadzwoń” przyklejony do dołu ekranu – tylko telefon (footer.php .fg-callbar) ---- */
.fg-callbar { display: none; }
@media (max-width: 767px) {
	.fg-callbar {
		position: fixed; z-index: 990; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom));
		display: flex; align-items: center; justify-content: center; gap: 10px;
		min-height: 54px; padding: 0 20px; border-radius: 12px;
		background: var(--e-global-color-accent, #C62820); color: #fff !important; text-decoration: none;
		font-size: 16px; font-weight: 600; letter-spacing: .2px;
		box-shadow: 0 10px 30px -6px rgba(198,40,32,.6), 0 0 0 1px rgba(255,255,255,.08) inset;
		transition: transform .25s ease, opacity .25s ease, background .2s;
	}
	.fg-callbar strong { font-weight: 800; }
	.fg-callbar:active { background: #A8211A; transform: scale(.98); }
	.fg-callbar__icon { flex: none; animation: fg-ring 3.2s ease-in-out 1.5s infinite; }
	@keyframes fg-ring { 0%, 86%, 100% { transform: rotate(0); } 88%, 92%, 96% { transform: rotate(-14deg); } 90%, 94%, 98% { transform: rotate(14deg); } }
	/* miejsce na pasek pod treścią stopki */
	body { padding-bottom: calc(78px + env(safe-area-inset-bottom)); }
	/* przy otwartym menu pasek znika */
	html.fg-menu-open .fg-callbar { opacity: 0; transform: translateY(20px); pointer-events: none; }
}
@media (max-width: 767px) and (prefers-reduced-motion: reduce) { .fg-callbar__icon { animation: none; } .fg-callbar { transition: none; } }

/* ---- Loga kart sportowych [fitgym_karty] ---- */
.fg-cards { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; }
.fg-cards__label { font-size: 13px; letter-spacing: 1px; text-transform: uppercase; color: #B5B5B5; }
.fg-cards .fg-cards__logo { display: block; width: auto; opacity: .9; }
.fg-cards .fg-cards__logo--ms { height: 24px; }
.fg-cards .fg-cards__logo--mc { height: 30px; }
.fg-cards--sm { gap: 10px 18px; }
.fg-cards--sm .fg-cards__label { flex-basis: 100%; font-size: 12px; }
.fg-cards.fg-cards--sm .fg-cards__logo--ms { height: 18px; }
.fg-cards.fg-cards--sm .fg-cards__logo--mc { height: 23px; }
@media (max-width: 767px) {
	.fg-cards { gap: 10px 20px; }
	.fg-cards__label { flex-basis: 100%; font-size: 12px; }
	.fg-cards .fg-cards__logo--ms { height: 20px; }
	.fg-cards .fg-cards__logo--mc { height: 25px; }
}

/* ---- Baner cookies (assets/consent.js) ---- */
.fg-consent {
	position: fixed; z-index: 1000; left: 16px; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom));
	max-width: 760px; margin: 0 auto; padding: 18px 20px;
	display: flex; align-items: center; gap: 16px 24px;
	background: #111; color: #D9D9D9; border: 1px solid rgba(255,255,255,.12); border-radius: 14px;
	box-shadow: 0 18px 50px -10px rgba(0,0,0,.8), 0 0 40px -20px rgba(198,40,32,.6);
	font-size: 14px; line-height: 1.55;
}
.fg-consent[hidden] { display: none; }
.fg-consent__text { margin: 0; flex: 1; }
.fg-consent__text a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.fg-consent__actions { display: flex; gap: 10px; flex: none; }
.fg-consent__btn {
	min-height: 44px; min-width: 120px; padding: 0 18px; border-radius: 10px; cursor: pointer;
	font: inherit; font-weight: 700; color: #fff; background: transparent; border: 2px solid var(--e-global-color-accent, #C62820);
	transition: background .2s;
}
.fg-consent__btn:hover, .fg-consent__btn:focus-visible { background: var(--e-global-color-accent, #C62820); }
.fg-consent__btn:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
@media (max-width: 767px) {
	.fg-consent { flex-direction: column; align-items: stretch; left: 12px; right: 12px; bottom: calc(78px + env(safe-area-inset-bottom)); padding: 16px; }
	.fg-consent__btn { flex: 1; min-width: 0; }
	html.fg-menu-open .fg-consent { display: none; }
}
