/**
 * Kolor podłoża dokumentu.
 *
 * Ciemne tło siedziĂo dotąd wyłącznie na <body> (z globalnego zestawu
 * Elementora). Gdy przeglądarka w trakcie szybkiego przewijania musi odmalować
 * kawałek okna, którego jeszcze nie zrasteryzowała, sięga po kolor korzenia
 * dokumentu — a ten był domyślny, czyli biały. Stąd białe błyski.
 * color-scheme dokłada ciemne paski przewijania i ciemne tło pola przewinicia.
 */
html {
	background-color: #03070B;
	color-scheme: dark;
}

/**
 * Nagrania zostają w zwykłej ścieżce składania obrazu.
 *
 * Chrome przenosi duży, nieruchomy film na sprzętową warstwę nakładki, żeby
 * nie składać go razem z resztą strony. Przy zakładaniu i zdejmowaniu tej
 * warstwy część sterowników odmalowuje całe okno przeglądarki jedną jasną
 * klatką — stąd błysk dokładnie w chwili, gdy nagranie rusza albo schodzi
 * z ekranu. Ułamek przezroczystości wyklucza tryb nakładki: dla oka różnicy
 * nie ma, dla kompozytora to już zwykła warstwa strony.
 */
.pw-reel-frame video,
.pw-reel-frame .elementor-video,
.elementor-background-video-hosted,
.elementor-background-video-container video {
	opacity: 0.999;
}

/**
 * Fixed, transparent header that solidifies once the page scrolls, plus the
 * full-height slide-in drawer that replaces Elementor's inline dropdown
 * below the tablet breakpoint. Mirrors the original static build.
 */

/* ---------------------------------------------------------------- header */
.elementor-location-header{
	position:fixed;
	top:0;
	left:0;
	right:0;
	z-index:120;
}

/* A fixed bar has to clear the WordPress toolbar for logged-in users,
   otherwise the toolbar covers the logo and the menu button. */
body.admin-bar .elementor-location-header{top:32px}
@media screen and (max-width:782px){
	body.admin-bar .elementor-location-header{top:46px}
	body.admin-bar .elementor-location-header nav.elementor-nav-menu--dropdown{top:46px !important}
	body.admin-bar.pw-nav-open .elementor-location-header .elementor-menu-toggle{top:61px}
}

.elementor-location-header > .e-con{
	background-color:transparent !important;
	border-bottom-color:transparent !important;
	transition:background-color .35s cubic-bezier(.22,1,.36,1),
	           border-color .35s cubic-bezier(.22,1,.36,1);
}

body.pw-header-solid .elementor-location-header > .e-con,
body.pw-nav-open     .elementor-location-header > .e-con{
	background-color:rgba(3,7,11,.94) !important;
	border-bottom-color:rgba(120,200,255,.12) !important;
}

/* Drawer-only items never belong in the desktop bar. Elementor styles the
   list item itself (.elementor-nav-menu>li{display:flex}), so this has to
   outrank that selector rather than merely match it. */
.elementor-nav-menu--main .elementor-nav-menu > li.pw-secondary,
.elementor-nav-menu--main .elementor-nav-menu > li.pw-cta{display:none !important}

/* ------------------------------------------------------- mobile bar sizing */
/* Elementor forces every flex container to --width:100% below 768px. Without
   this the brand block claims the whole bar and pushes the menu button past
   the right edge of the viewport, where it is invisible and unclickable. */
@media (max-width:767px){
	.elementor-location-header .e-con.e-flex{min-width:0}
	.elementor-location-header .elementor-widget-nav-menu{margin-left:auto}
}

/* ------------------------------------------------- burger + close button */
/* Scoped to the breakpoint where Elementor actually shows the toggle — an
   unscoped display rule would override its own display:none on desktop. */
@media (max-width:1024px){
	.elementor-location-header .elementor-menu-toggle{
		margin:0 !important;
		display:inline-flex;
		align-items:center;
		gap:9px;
		min-height:44px;
		line-height:1;
		/* the burger glyph is sized in em, so this has to stay the icon size */
		font-size:var(--nav-menu-icon-size,20px);
	}
	.elementor-location-header .elementor-menu-toggle::after{
		content:"Menu";
		font-family:"IBM Plex Mono",ui-monospace,monospace;
		font-size:12px;
		letter-spacing:.1em;
		text-transform:uppercase;
		line-height:1;
	}
}
/* once open, the toggle becomes the drawer's close button */
body.pw-nav-open .elementor-location-header .elementor-menu-toggle{
	position:fixed;
	top:15px;
	right:clamp(16px,5vw,20px);
	z-index:132;
	gap:0;
}
body.pw-nav-open .elementor-location-header .elementor-menu-toggle::after{
	content:none;
}

/* Przyciemnienie tła pod panelem. Wyjęte z układu na każdej szerokości:
   widget menu jest kolumną z odstępem, więc statyczna zasłona dokładała mu
   ten odstęp na dole i podnosiła pozycje menu o kilkanaście pikseli ponad
   napis z nazwą. */
.pw-nav-scrim{
	position:fixed;
	inset:0;
	opacity:0;
	visibility:hidden;
	pointer-events:none;
}

/* ---------------------------------------------------------------- drawer */
@media (max-width:1024px){

	.pw-nav-scrim{
		position:fixed;
		inset:0;
		z-index:128;
		background:rgba(3,7,11,.72);
		-webkit-backdrop-filter:blur(6px);
		backdrop-filter:blur(6px);
		opacity:0;
		visibility:hidden;
		transition:opacity .22s ease,visibility .22s ease;
	}
	body.pw-nav-open .pw-nav-scrim{opacity:1;visibility:visible;pointer-events:auto}
	body.pw-nav-open{overflow:hidden}

	/* Elementor animates this panel's height inline; override it into a panel. */
	.elementor-location-header nav.elementor-nav-menu--dropdown{
		position:fixed !important;
		top:0 !important;
		right:0 !important;
		left:auto !important;
		bottom:0 !important;
		width:min(88vw,360px) !important;
		height:100dvh !important;
		max-height:none !important;
		margin:0 !important;
		padding:74px 20px 28px !important;
		display:block !important;
		overflow-y:auto !important;
		overscroll-behavior:contain;
		border:0 !important;
		border-left:1px solid rgba(120,200,255,.14) !important;
		border-radius:0 !important;
		background-color:#071018 !important;
		z-index:130;
		/* Elementor's own scaleY() rule is more specific, so force ours. */
		transform:translateX(102%) !important;
		visibility:hidden;
		transition:transform .3s cubic-bezier(.22,1,.36,1),visibility .3s;
	}
	body.pw-nav-open .elementor-location-header nav.elementor-nav-menu--dropdown{
		transform:translateX(0) !important;
		visibility:visible;
	}

	/* "Menu" caption in the panel header */
	.elementor-location-header nav.elementor-nav-menu--dropdown::before{
		content:"Menu";
		position:absolute;
		top:26px;
		left:20px;
		font-family:"IBM Plex Mono",ui-monospace,monospace;
		font-size:11px;
		letter-spacing:.14em;
		text-transform:uppercase;
		color:#5EC8FF;
	}

	.elementor-location-header nav.elementor-nav-menu--dropdown .elementor-nav-menu{
		display:block;
	}
	.elementor-location-header nav.elementor-nav-menu--dropdown .elementor-nav-menu > li{
		border-bottom:1px solid rgba(120,200,255,.1);
	}
	.elementor-location-header nav.elementor-nav-menu--dropdown a.elementor-item{
		display:flex;
		align-items:center;
		min-height:52px;
		padding:12px 0 !important;
		font-size:18px !important;
		font-weight:500;
		background:transparent !important;
	}
	.elementor-location-header nav.elementor-nav-menu--dropdown a.elementor-sub-item{
		padding:10px 0 10px 16px !important;
		font-size:15.5px !important;
		color:#8E9BA8 !important;
	}

	/* secondary destinations sit quieter, as in the original panel */
	.elementor-location-header nav.elementor-nav-menu--dropdown .pw-secondary a.elementor-item{
		font-size:15.5px !important;
		font-weight:400;
		color:#8E9BA8 !important;
		min-height:46px;
	}

	/* the call to action renders as a button at the foot of the panel */
	.elementor-location-header nav.elementor-nav-menu--dropdown .pw-cta{
		border-bottom:0 !important;
		margin-top:22px;
	}
	.elementor-location-header nav.elementor-nav-menu--dropdown .pw-cta a.elementor-item{
		justify-content:center;
		min-height:52px;
		padding:14px 20px !important;
		border-radius:11px;
		background:#5EC8FF !important;
		color:#03070B !important;
		font-weight:600;
		font-size:16px !important;
		text-align:center;
	}
	.elementor-location-header nav.elementor-nav-menu--dropdown .pw-cta a.elementor-item:hover{
		background:#A8E4FF !important;
		color:#03070B !important;
	}

	/* Oferta rozwija się w panelu. Adres \/oferta\/ już nie istnieje, więc bez
	   tego podstrony usług byłyby na telefonie nieosiągalne z menu. Strzałka jest
	   osobnym celem dotyku o pełnej wysokości wiersza. */
	.elementor-location-header nav.elementor-nav-menu--dropdown .sub-arrow{
		display:flex;
		margin-inline-start:auto;
		margin-block:0;
		padding:14px 2px 14px 18px;
		color:#5EC8FF;
		transition:transform .25s ease;
	}
	.elementor-location-header nav.elementor-nav-menu--dropdown .sub-arrow .e-font-icon-svg{
		width:.72em;
		height:.72em;
		fill:currentColor;
	}
	.elementor-location-header nav.elementor-nav-menu--dropdown a[aria-expanded="true"] .sub-arrow{
		transform:rotate(180deg);
	}
	.elementor-location-header nav.elementor-nav-menu--dropdown ul.sub-menu{
		position:static !important;
		width:auto !important;
		min-width:0 !important;
		margin:0 !important;
		padding:2px 0 10px !important;
		background:transparent !important;
		box-shadow:none !important;
		border:0 !important;
	}
	.elementor-location-header nav.elementor-nav-menu--dropdown ul.sub-menu li{
		border-bottom:0 !important;
	}
	.elementor-location-header nav.elementor-nav-menu--dropdown ul.sub-menu a.elementor-item{
		min-height:42px;
		padding-inline-start:16px !important;
		font-size:15px !important;
		font-weight:400;
		color:#8E9BA8 !important;
		border-inline-start:1px solid rgba(120,200,255,.16);
	}
}

/* an open panel always wants a solid bar behind the close button */
.elementor-location-header nav.elementor-nav-menu--dropdown{z-index:130}

@media (prefers-reduced-motion:reduce){
	.elementor-location-header > .e-con,
	.elementor-location-header nav.elementor-nav-menu--dropdown,
	.pw-nav-scrim{transition:none}
}
