/* ─────────────────────────────────────────────────────────────────────────
   ETA — Shell boxed layout: full-width tło, treść max 1280px (header + footer)
   Wersja 1.5.3 / 2026-07-21
   ───────────────────────────────────────────────────────────────────────── */

:root {
	--eta-shell-max: 1280px;
	--eta-shell-gutter-min: 20px;
	/* Minimum oddychania treści od krawędzi viewportu (wszystkie podstrony) */
	--eta-shell-content-gutter: max(4vw, 24px);
	/* Footer navy lock — #001429 (rgb 0,20,41); nie mylić z brand #001f3f */
	--eta-shell-footer-bg: #001429;
	--eta-shell-footer-bg-hover: #0b2c52;
	--eta-scroll-top-size: 47px;
	--eta-scroll-top-inset: 24px;
	--eta-scroll-top-clearance: calc(var(--eta-scroll-top-size) + var(--eta-scroll-top-inset) + 8px);
}

/* ── Treść stron: nigdy 0px od lewej/prawej krawędzi ─────────────────────
   Jedna warstwa guttera (tylko top-level e-parent) — bez podwójnego pad
   na e-con-inner. max() zachowuje większy padding Elementora.
   Tło sekcji nadal full-bleed (background maluje się w padding). */
.page_content_wrap .content > .elementor > .e-con.e-parent {
	box-sizing: border-box !important;
	padding-left: max(
		var(--eta-shell-content-gutter),
		env(safe-area-inset-left, 0px),
		var(--padding-left, 0px)
	) !important;
	padding-right: max(
		var(--eta-shell-content-gutter),
		env(safe-area-inset-right, 0px),
		var(--padding-right, 0px)
	) !important;
}

/* Nested boxed, gdy parent ma 0 — rzadki przypadek flush panelu w środku */
.page_content_wrap .elementor .e-con.e-parent[style*="padding-left:0"] > .e-con-boxed > .e-con-inner,
.page_content_wrap .elementor .e-con.e-parent[style*="padding-left: 0"] > .e-con-boxed > .e-con-inner {
	box-sizing: border-box !important;
	padding-left: max(var(--eta-shell-content-gutter), env(safe-area-inset-left, 0px)) !important;
	padding-right: max(var(--eta-shell-content-gutter), env(safe-area-inset-right, 0px)) !important;
}

/* Motyw / archiwa / single — tylko gdy NIE ma Elementora w .content
   (unika double-pad z regułą e-parent powyżej). */
.page_content_wrap .content_wrap:not(.content_wrap_fullscreen) > .content:not(:has(> .elementor)),
.page_content_wrap .content_wrap_fullscreen > .content > article,
.page_content_wrap .post_item .post_content,
.page_content_wrap .comments_list {
	box-sizing: border-box;
	padding-left: max(var(--eta-shell-content-gutter), env(safe-area-inset-left, 0px));
	padding-right: max(var(--eta-shell-content-gutter), env(safe-area-inset-right, 0px));
}

body.blog .page_content_wrap .content:not(:has(> .elementor)),
body.archive .page_content_wrap .content:not(:has(> .elementor)),
body.search .page_content_wrap .content:not(:has(> .elementor)),
body.single-post .page_content_wrap .content:not(:has(> .elementor)) {
	box-sizing: border-box;
	padding-left: max(var(--eta-shell-content-gutter), env(safe-area-inset-left, 0px));
	padding-right: max(var(--eta-shell-content-gutter), env(safe-area-inset-right, 0px));
}

/* WooCommerce — treść sklepu / koszyk / konto (bez Elementora) */
body.woocommerce-page .page_content_wrap .content:not(:has(> .elementor)),
body.woocommerce .page_content_wrap .content:not(:has(> .elementor)),
.woocommerce-cart .page_content_wrap .content:not(:has(> .elementor)),
.woocommerce-checkout .page_content_wrap .content:not(:has(> .elementor)) {
	box-sizing: border-box;
	padding-inline: max(var(--eta-shell-content-gutter), env(safe-area-inset-left, 0px));
}

/* Pełna szerokość sekcji tła */
.top_panel,
.top_panel .elementor-275,
.footer_wrap,
.footer_wrap .elementor-21 {
	width: 100%;
	max-width: none !important;
}

/* Sticky header: pełna szerokość tła (TRX domyślnie dodaje offset -15px) */
.top_panel .sc_layouts_row_fixed_on,
.elementor-275 .elementor-element-90db02c.sc_layouts_row_fixed_on,
.elementor-275 .elementor-element-3ef0979.sc_layouts_row_fixed_on {
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Boxed content — header desktop */
.elementor-275 .elementor-element-90db02c {
	box-sizing: border-box;
	padding-left: max(var(--eta-shell-gutter-min), calc((100% - var(--eta-shell-max)) / 2)) !important;
	padding-right: max(var(--eta-shell-gutter-min), calc((100% - var(--eta-shell-max)) / 2)) !important;
}

/* Boxed content — header mobile */
.elementor-275 .elementor-element-3ef0979 {
	box-sizing: border-box;
	padding-left: max(var(--eta-shell-gutter-min), calc((100% - var(--eta-shell-max)) / 2)) !important;
	padding-right: max(var(--eta-shell-gutter-min), calc((100% - var(--eta-shell-max)) / 2)) !important;
}

/* Boxed content — footer (Elementor layout ID 21) */
.elementor-21 .elementor-element-1869b98 {
	box-sizing: border-box;
	padding-left: max(var(--eta-shell-gutter-min), calc((100% - var(--eta-shell-max)) / 2)) !important;
	padding-right: max(
		var(--eta-shell-gutter-min),
		calc((100% - var(--eta-shell-max)) / 2),
		var(--eta-scroll-top-clearance)
	) !important;
}

/* Dolny wiersz stopki (copyright) — nie nachodzi na fixed scroll-to-top */
.elementor-21 .elementor-element-3275624,
.elementor-21 .elementor-element-518019c {
	box-sizing: border-box;
	padding-right: max(
		0px,
		calc(var(--eta-scroll-top-clearance) - max(var(--eta-shell-gutter-min), calc((100% - var(--eta-shell-max)) / 2)))
	) !important;
}

/* NIP jest już w kolumnie Kontakt — bez duplikatu w dolnym pasku. */
.elementor-21 .elementor-element-518019c,
.elementor-21 .elementor-repeater-item-nipeta01 {
	display: none !important;
}

/* ── Stopka mobile: pełna szerokość, kompaktowy układ, jeden NIP ────────
   Root cause regresji: root rezerwował 79px po prawej, a copyright/NIP
   ponownie 59px. Treść zwężała się do 217px i tworzyła wysoki słupek. */
@media (max-width: 767px) {
	.footer_wrap,
	.footer_wrap .elementor-21,
	.elementor-21 .elementor-element-1869b98,
	.elementor-21 .elementor-element-1869b98 .e-con {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		box-sizing: border-box !important;
	}

	.footer_wrap,
	.footer_wrap .elementor-21 {
		overflow-x: clip !important;
	}

	.elementor-21 .elementor-element-1869b98 {
		--padding-top: 36px !important;
		--padding-right: 20px !important;
		--padding-bottom: 0px !important;
		--padding-left: 20px !important;
		padding: 36px 20px 0 !important;
	}

	/* Główna część: opis pełną szerokością, niżej kontakt + linki 2 kolumny. */
	.elementor-21 .elementor-element-bbb8f40 {
		--flex-direction: column !important;
		--gap: 24px !important;
		flex-direction: column !important;
		gap: 24px !important;
		padding-bottom: 20px !important;
	}

	.elementor-21 .elementor-element-f091a5f {
		--flex-direction: row !important;
		--flex-wrap: wrap !important;
		--gap: 20px 16px !important;
		flex-direction: row !important;
		flex-wrap: wrap !important;
		gap: 20px 16px !important;
	}

	.elementor-21 .elementor-element-553c670 {
		flex: 1 1 100% !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}

	.elementor-21 .elementor-element-606b851,
	.elementor-21 .elementor-element-864d010 {
		flex: 1 1 calc(50% - 8px) !important;
		width: auto !important;
		max-width: calc(50% - 8px) !important;
		min-width: 0 !important;
	}

	/* Copyright bez podwójnej rezerwy na scroll-to-top. */
	.elementor-21 .elementor-element-3275624 {
		--padding-right: 0px !important;
		padding: 14px 0 !important;
		gap: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	.elementor-21 .elementor-element-ce85316 {
		width: 100% !important;
		max-width: 100% !important;
	}

	.elementor-21 .elementor-element-1869b98 p,
	.elementor-21 .elementor-element-1869b98 li,
	.elementor-21 .elementor-element-1869b98 a,
	.elementor-21 .elementor-element-1869b98 span {
		max-width: 100%;
		overflow-wrap: anywhere;
	}
}

@media (min-width: 768px) {
	:root {
		--eta-shell-gutter-min: 30px;
	}
}

@media (min-width: 1024px) {
	:root {
		--eta-shell-gutter-min: 24px;
	}
}

/* ── Stopka / overscroll: brak białego paska przy bounce i resize chrome ── */
/* overscroll-behavior-y: none — USUNIĘTE (2026-07-18).
   Blokuje natywny "pull-to-refresh" w Chrome/Brave Android.
   Białe tło bounce/rubber-band jest już obsłużone przez background-color poniżej
   + force-visible animacji w eta-elementor-mobile-fix.css (≤1279px).
   Jeśli white-bar wróci, zawęź overscroll-behavior-y do konkretnego
   scroll-containera (np. .page_content_wrap), NIE do html. */
html {
	background-color: var(--eta-shell-footer-bg);
}

body {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
	/* Navy jak html — bez białego paska pod stopką przy wysokim viewport */
	background-color: var(--eta-shell-footer-bg) !important;
	min-height: 100dvh;
}

/* Treść nad stopką zostaje jasna; tło body/html pod stopką = navy */
.page_content_wrap {
	background-color: #ffffff;
}

.footer_wrap,
.footer_wrap .elementor-21,
.elementor-21 .elementor-element-1869b98 {
	margin-bottom: 0 !important;
	padding-bottom: 0 !important;
}

.footer_wrap {
	background-color: var(--eta-shell-footer-bg);
	/* Bez dużego spread-shadow: rozszerzał visual overflow także poziomo. */
	box-shadow: none !important;
}

/* Dolny pasek copyright — zawsze navy (nie przezroczysty → biały body) */
.elementor-21 .elementor-element-3275624,
.elementor-21 .elementor-element-1869b98 {
	background-color: var(--eta-shell-footer-bg) !important;
}

/* page_wrap nie maluje białego pod stopką — treść ma .page_content_wrap */
body > .page_wrap {
	background: transparent !important;
}

.footer_wrap::after,
.page_wrap::after,
.body_wrap::after {
	display: none !important;
	content: none !important;
	height: 0 !important;
}

/* Klon menu mobilnego TRX na końcu body — ukryty tylko gdy menu zamknięte */
body:not(.eta-mobile-menu-open) > .trx-addons-mobile-menu-outer-container,
body:not(.eta-mobile-menu-open) > .trx-addons-nav-slide-overlay {
	display: none !important;
	height: 0 !important;
	min-height: 0 !important;
	overflow: hidden !important;
	margin: 0 !important;
	padding: 0 !important;
	pointer-events: none !important;
}

/* ── Przycisk „powrót do góry” (TRX Addons) ───────────────────────────── */
.trx_addons_scroll_to_top {
	background-color: #ffffff !important;
	color: #001f3f !important;
	border: 1px solid rgba(0, 31, 63, 0.22) !important;
	border-radius: 6px !important;
	box-shadow: 0 4px 18px rgba(0, 0, 0, 0.2);
	opacity: 1;
}

.trx_addons_scroll_to_top:before {
	color: #001f3f !important;
	opacity: 1;
}

.trx_addons_scroll_to_top:hover,
.trx_addons_scroll_to_top:focus-visible {
	background-color: var(--eta-shell-footer-bg) !important;
	color: #ffffff !important;
	border-color: rgba(255, 255, 255, 0.45) !important;
	transform: translateY(-3px);
}

.trx_addons_scroll_to_top:hover:before,
.trx_addons_scroll_to_top:focus-visible:before {
	color: #ffffff !important;
}

.trx_addons_scroll_to_top .trx_addons_scroll_progress.trx_addons_scroll_progress_type_horizontal {
	display: none;
}
