/* LabLogic.pl — arkusz serwisu.
   Skopiowany z Personalizatora → Dodatkowy CSS 2026-08-22 10:37 UTC.
   Źródłem prawdy jest ten plik. Zmiany wprowadzać tutaj, nie w Personalizatorze.
   Kopie poprzednich wersji: assets/kopie/. */

/* =============================================================================
   LabLogic.pl — Dodatkowy CSS (Personalizator → Dodatkowy CSS)
   Porządek i optymalizacja: 20 sierpnia 2026.

   ZASADA: tego arkusza nie zmienia się bez zgody właściciela na konkretną
   zmianę. Każda sekcja jest samodzielna — wycofanie zmiany to usunięcie
   całej sekcji, nie pojedynczych reguł z różnych miejsc.

   SPIS SEKCJI (w kolejności występowania):
     1.  Przyciski formularzy kontaktowych (WPForms)
     2.  Strona główna — wspólny rytm i układ (PL 2696 + EN 3821)
     3.  CTA tylko w menu mobilnym
     4.  Globalna stopka — 2026-08-10, przebudowa 2026-08-16 (DEC-036)
     5.  Natywne widżety stopki — minimalny cel dotykowy
     6.  Globalny nagłówek — 2026-08-10
     7.  Korekta priorytetu odstępów mobilnych
     8.  LL-SPECTRA-STANDARD-2026-08-11 — rytm sekcji Spectry
     9.  LL-HERO-BALANCE-2026-08-11
     10. LL-INCIDENTS-MOBILE-SHRINK-2026-08-11
     11. LL-HERO-MOBILE-FIRST-ELEMENT-2026-08-11
     12. LL-MOBILE-WIDTH-2026-08-17 — mobilne szerokości stron usługowych
     13. LL-ARTICLE-2026-08-18 (v2) — układ i typografia artykułu
     14. LL-KB-CARDS-2026-08-18 — karty Bazy wiedzy na stronach usługowych
     15. LL-OG-THUMB-2026-08-19 — miniatury 40/21 na archiwach
     16. LL-KATEGORIE-2026-08-20 — archiwa kategorii Bazy wiedzy

   KONWENCJE PO PORZĄDKACH:
     • jeden selektor w wierszu, jedna deklaracja w wierszu, wcięcie tabulatorem;
     • pary polska/angielska zapisane jako :is(.page-id-PL, .page-id-EN) —
       ta sama specyficzność co pojedyncza klasa, jedno miejsce do poprawiania;
     • !important tylko tam, gdzie przebijamy regułę Astry z identyfikatorem
       (szablon „page builder" zeruje margines i wypełnienie #primary);
     • komentarz nad regułą tłumaczy DLACZEGO, nie CO — „co" widać w kodzie.
   ============================================================================= */

/* Przyciski formularzy kontaktowych LabLogic */
.wpforms-container .wpforms-form button.wpforms-submit {
	background-color: #074B88 !important;
	color: #FFFFFF !important;
	border: 1px solid #074B88 !important;
	border-radius: 8px !important;
	padding: 14px 24px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	cursor: pointer;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}
.wpforms-container .wpforms-form button.wpforms-submit:hover,
.wpforms-container .wpforms-form button.wpforms-submit:focus {
	background-color: #063B6E !important;
	border-color: #063B6E !important;
	color: #FFFFFF !important;
}
.wpforms-container .wpforms-form button.wpforms-submit:focus-visible {
	outline: 3px solid rgba(7, 75, 136, 0.3) !important;
	outline-offset: 3px !important;
}
/* Strona główna LabLogic — wspólny rytm i układ */
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container {
	padding: 0 24px 24px !important;
}
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section {
	box-sizing: border-box;
	width: 100%;
	max-width: 1200px;
	margin-right: auto;
	margin-left: auto;
}
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-hero {
	gap: 40px;
	padding: 0 0 64px;
}
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-panel-intro {
	padding: 32px 40px;
}
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-services,
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-cooperation,
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-experience-orgs,
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-about {
	padding-top: 64px;
	padding-bottom: 64px;
}
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-entry-situations,
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-cases,
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-contact {
	margin-top: 0;
	margin-bottom: 0;
	padding: 64px 0;
}
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-entry-situations > .is-layout-grid {
	grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
	gap: 40px;
	padding: 0;
}
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-contact > .is-layout-grid {
	gap: 40px;
}
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-panel-intro > .is-layout-grid,
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-services > .is-layout-grid,
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-entry-situations > .is-layout-grid > .wp-block-spectra-container:nth-child(2) > .is-layout-grid,
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-cooperation > .is-layout-grid,
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-experience-orgs .is-layout-grid,
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-cases > .is-layout-grid {
	gap: 24px;
}
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-entry-situations > .is-layout-grid > .wp-block-spectra-container:nth-child(2) > .is-layout-grid {
	padding: 0 !important;
}
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-services > .is-layout-grid > .wp-block-spectra-container,
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-entry-situations > .is-layout-grid > .wp-block-spectra-container:nth-child(2) > .is-layout-grid > .wp-block-spectra-container,
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-cooperation > .is-layout-grid > .wp-block-spectra-container,
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-experience-orgs .is-layout-grid > .wp-block-spectra-container,
:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-cases > .is-layout-grid > .wp-block-spectra-container {
	box-sizing: border-box;
	padding: 24px;
	border-radius: 12px;
}
@media (min-width: 768px) and (max-width: 1023px) {
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container {
		padding: 0 20px 20px !important;
	}
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-hero {
		gap: 32px;
		padding: 0 0 48px;
	}
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-panel-intro {
		padding: 24px 32px;
	}
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-services,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-cooperation,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-experience-orgs,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-about {
		padding-top: 48px;
		padding-bottom: 48px;
	}
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-entry-situations,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-cases,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-contact {
		padding: 48px 0;
	}
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-entry-situations > .is-layout-grid {
		grid-template-columns: 1fr;
	}
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-entry-situations > .is-layout-grid,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-contact > .is-layout-grid {
		gap: 32px;
	}
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-panel-intro > .is-layout-grid,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-services > .is-layout-grid,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-entry-situations > .is-layout-grid > .wp-block-spectra-container:nth-child(2) > .is-layout-grid,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-cooperation > .is-layout-grid,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-experience-orgs .is-layout-grid,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-cases > .is-layout-grid {
		gap: 20px;
	}
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-services > .is-layout-grid > .wp-block-spectra-container,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-entry-situations > .is-layout-grid > .wp-block-spectra-container:nth-child(2) > .is-layout-grid > .wp-block-spectra-container,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-cooperation > .is-layout-grid > .wp-block-spectra-container,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-experience-orgs .is-layout-grid > .wp-block-spectra-container,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-cases > .is-layout-grid > .wp-block-spectra-container {
		padding: 20px;
	}
}
@media (max-width: 767px) {
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container {
		padding: 0 16px 16px !important;
	}
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-hero {
		gap: 24px;
		padding: 0 0 32px;
	}
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-panel-intro {
		padding: 20px 24px;
	}
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-services,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-cooperation,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-experience-orgs,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-about {
		padding-top: 32px;
		padding-bottom: 32px;
	}
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-entry-situations,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-cases,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-contact {
		padding: 32px 0;
	}
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-entry-situations > .is-layout-grid {
		grid-template-columns: 1fr;
	}
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-entry-situations > .is-layout-grid,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-contact > .is-layout-grid {
		gap: 24px;
	}
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-panel-intro > .is-layout-grid,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-services > .is-layout-grid,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-entry-situations > .is-layout-grid > .wp-block-spectra-container:nth-child(2) > .is-layout-grid,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-cooperation > .is-layout-grid,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-experience-orgs .is-layout-grid,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-cases > .is-layout-grid {
		gap: 16px;
	}
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-services > .is-layout-grid > .wp-block-spectra-container,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-entry-situations > .is-layout-grid > .wp-block-spectra-container:nth-child(2) > .is-layout-grid > .wp-block-spectra-container,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-cooperation > .is-layout-grid > .wp-block-spectra-container,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-experience-orgs .is-layout-grid > .wp-block-spectra-container,
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-cases > .is-layout-grid > .wp-block-spectra-container {
		padding: 16px;
	}
	:is(.page-id-2696, .page-id-3821) .entry-content > .spectra-is-root-container > section.ll-entry-situations > .is-layout-grid > .wp-block-spectra-container:nth-child(2) > .is-layout-grid {
		grid-template-columns: 1fr;
	}
}
/* CTA tylko w menu mobilnym */
#ast-desktop-header .ll-mobile-cta {
	display: none !important;
}
@media (max-width: 921px) {
	#ast-mobile-header .ll-mobile-cta {
		display: flex !important;
		margin: 12px 20px 20px;
	}
	#ast-mobile-header .ll-mobile-cta > .menu-link {
		justify-content: center;
		height: auto;
		padding: 14px 20px;
		border-radius: 8px;
		background: #074B88;
		color: #FFFFFF !important;
		font-weight: 600;
		line-height: 1.2;
	}
	#ast-mobile-header .ll-mobile-cta > .menu-link:hover,
	#ast-mobile-header .ll-mobile-cta > .menu-link:focus {
		background: #063B6E;
		color: #FFFFFF !important;
	}
}
/* Globalna stopka LabLogic — 2026-08-10, przebudowana 2026-08-16 (DEC-036): górna część na natywnych widżetach, pasek prawny zostaje w polu Copyright */
#colophon.site-footer,
#colophon .site-below-footer-wrap {
	background: #071E3D !important;
}
#colophon .site-primary-footer-wrap {
	background: #071E3D !important;
	align-content: start;
}
/* Naprawa: natywna szerokość "content" wiersza Primary nie działa (niedopasowanie klas w Astrze 4.13.9 dla układu 2 kolumn) — wyrównanie do tej samej szerokości/wyśrodkowania co pasek prawny (.lablogic-footer-shell) */
#colophon .site-primary-footer-wrap .ast-builder-grid-row-container-inner {
	width: min(1200px, calc(100% - 48px));
	margin-left: auto;
	margin-right: auto;
}
@media (max-width: 1024px) {
	#colophon .site-primary-footer-wrap .ast-builder-grid-row-container-inner {
		width: min(1200px, calc(100% - 40px));
	}
}
@media (max-width: 767px) {
	#colophon .site-primary-footer-wrap .ast-builder-grid-row-container-inner {
		width: min(1200px, calc(100% - 32px));
	}
}
#colophon .site-below-footer-wrap {
	padding: 0 !important;
	border: 0 !important;
}
#colophon .site-below-footer-wrap .ast-builder-grid-row-container-inner,
#colophon .site-below-footer-inner-wrap {
	max-width: none !important;
	padding: 0 !important;
}
#colophon .site-below-footer-inner-wrap {
	display: block !important;
}
#colophon .site-footer-below-section-1,
#colophon .ast-footer-copyright {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
}
#colophon .site-footer-below-section-2 {
	display: none !important;
}
#colophon .lablogic-footer-shell {
	width: min(1200px, calc(100% - 48px));
	margin: 0 auto;
	padding: 32px 0 24px;
	color: #CBD5E1;
	font-size: 16px;
	line-height: 1.55;
	text-align: left;
}
#colophon .lablogic-footer-shell p {
	margin-top: 0;
}
#colophon .lablogic-footer-shell p:empty {
	display: none !important;
}
#colophon .lablogic-footer-shell a {
	color: #FFFFFF;
	text-decoration: none;
	text-underline-offset: 3px;
}
#colophon .lablogic-footer-legal a {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
}
#colophon .lablogic-footer-shell a:hover {
	color: #FFFFFF;
	text-decoration: underline;
}
#colophon .lablogic-footer-shell a:focus-visible {
	border-radius: 4px;
	outline: 3px solid #9DD9FF;
	outline-offset: 3px;
}
#colophon .lablogic-footer-legal {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 16px 32px;
	margin-top: 0;
	padding-top: 24px;
	border-top: 1px solid rgba(255,255,255,.18);
	font-size: 14px;
}
#colophon .lablogic-footer-legal > p {
	margin: 0;
	padding: 10px 0;
	color: #CBD5E1;
}
#colophon .lablogic-footer-legal nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 0 24px;
}
#colophon .lablogic-footer-legal nav br {
	display: none;
}
#ast-scroll-top.ast-scroll-to-top-right {
	right: 18px;
	bottom: 84px;
}
@media (max-width: 1024px) {
	#colophon .lablogic-footer-shell {
		width: min(1200px, calc(100% - 40px));
		padding-top: 24px;
	}
}
@media (max-width: 767px) {
	#colophon .lablogic-footer-shell {
		width: min(1200px, calc(100% - 32px));
		padding: 20px 0 20px;
	}
	#ast-scroll-top.ast-scroll-to-top-right {
		right: 16px;
		bottom: 84px;
	}
}
@media (max-width: 1248px) {
	#colophon .lablogic-footer-legal nav {
		padding-right: 64px;
	}
}
/* Natywne widżety stopki (logo/Usługi/Kontakt) — minimalny cel dotykowy linków, zgodnie ze standardem 44 px */
#colophon .footer-widget-area a {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
}
#colophon .footer-widget-area img {
	display: block;
}
/* Globalny nagłówek LabLogic — 2026-08-10 */
#masthead .ast-primary-header-bar {
	box-sizing: border-box;
	border-bottom: 0px solid #E3EAF2 !important;
	box-shadow: none;
}
#masthead #ast-desktop-header .site-primary-header-wrap {
	max-width: 1248px;
	padding-right: 24px;
	padding-left: 24px;
}
#masthead .ast-header-button-1 .ast-custom-button {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	justify-content: center;
	padding: 0 20px;
}
#masthead a:focus-visible,
#masthead button:focus-visible,
#masthead [role="button"]:focus-visible {
	border-radius: 6px;
	outline: 3px solid #9DD9FF !important;
	outline-offset: 3px !important;
}
#primary-site-navigation-desktop .current-menu-parent > a.menu-link,
#primary-site-navigation-desktop .current-menu-ancestor > a.menu-link {
	color: #074B88 !important;
	font-weight: 600;
	box-shadow: inset 0 -2px #074B88;
}
#primary-site-navigation-desktop .menu-item-has-children > a.menu-link .dropdown-menu-toggle {
	display: inline-flex;
	width: 44px;
	min-width: 44px;
	height: 44px;
	margin-left: 4px;
	padding: 0;
	align-items: center;
	justify-content: center;
	border-radius: 8px;
}
#primary-site-navigation-desktop .menu-item-has-children > a.menu-link .dropdown-menu-toggle:hover {
	color: #074B88;
	background: #F3F7FB;
}
#primary-site-navigation-desktop .menu-item-has-children > a.menu-link .dropdown-menu-toggle .ast-arrow-svg {
	width: 10px;
	height: 7px;
	transition: transform .2s ease;
}
#primary-site-navigation-desktop .menu-item-has-children > a.menu-link .dropdown-menu-toggle[aria-expanded="true"] .ast-arrow-svg {
	transform: rotate(180deg);
}
#primary-site-navigation-desktop .sub-menu {
	width: 260px;
	padding: 8px 0;
	overflow: hidden;
	border: 1px solid #D8E2EC;
	border-radius: 12px;
	box-shadow: 0 14px 34px rgba(7, 30, 61, .14);
}
#primary-site-navigation-desktop .sub-menu .menu-link {
	min-height: 48px;
	padding: 12px 18px;
	line-height: 1.35;
}
#primary-site-navigation-desktop .sub-menu .menu-link:hover,
#primary-site-navigation-desktop .sub-menu .menu-link:focus-visible {
	color: #074B88 !important;
	background: #F3F7FB !important;
}
#primary-site-navigation-desktop .sub-menu .current-menu-item > .menu-link {
	color: #074B88 !important;
	background: #EAF4FB !important;
	font-weight: 600;
}
#ast-mobile-header .ast-mobile-header-content {
	background: #FFFFFF;
	border-top: 1px solid #E3EAF2;
	box-shadow: 0 14px 30px rgba(7, 30, 61, .10);
}
#ast-mobile-header .ast-mobile-header-content .menu-link {
	min-height: 48px;
	line-height: 1.35;
}
#ast-mobile-header .ast-mobile-header-content .current-menu-parent > a.menu-link,
#ast-mobile-header .ast-mobile-header-content .current-menu-ancestor > a.menu-link {
	color: #074B88 !important;
	font-weight: 600;
}
#ast-mobile-header .ast-mobile-header-content .sub-menu .current-menu-item > a.menu-link {
	color: #074B88 !important;
	background: #EAF4FB !important;
	font-weight: 600;
}
#ast-mobile-header .menu-toggle.main-header-menu-toggle,
#ast-mobile-header .ast-mobile-header-content .ast-menu-toggle {
	width: 48px;
	min-width: 48px;
	height: 48px;
	padding: 0;
	align-items: center;
	justify-content: center;
	border-radius: 8px;
}
#ast-hf-mobile-menu > li.ll-mobile-cta > a.menu-link {
	min-height: 48px;
}
@media (max-width: 921px) {
	#ast-mobile-header .ast-primary-header-bar,
	#ast-mobile-header .ast-primary-header-bar .ast-builder-grid-row {
		min-height: 72px;
	}
	#ast-mobile-header .ast-primary-header-bar {
		padding-right: 20px;
		padding-left: 20px;
	}
	#ast-mobile-header img.custom-logo {
		width: 180px;
		max-width: 180px;
	}
}
@media (max-width: 600px) {
	#ast-mobile-header .ast-primary-header-bar,
	#ast-mobile-header .ast-primary-header-bar .ast-builder-grid-row {
		min-height: 68px;
	}
	#ast-mobile-header .ast-primary-header-bar {
		padding-right: 16px;
		padding-left: 16px;
	}
	#ast-mobile-header img.custom-logo {
		width: 160px;
		max-width: 160px;
	}
	#ast-hf-mobile-menu > li.ll-mobile-cta > a.menu-link {
		margin-right: 16px;
		margin-left: 16px;
		width: calc(100% - 32px);
	}
}
/* Korekta priorytetu odstępów mobilnych */
@media (max-width: 600px) {
	#ast-mobile-header .ast-primary-header-bar {
		padding-right: 16px !important;
		padding-left: 16px !important;
	}
}
@media (max-width: 600px) {
	#ast-hf-mobile-menu > li.ll-mobile-cta {
		width: 100%;
		margin-left: 0;
	}
}
/* LL-SPECTRA-STANDARD-2026-08-11
   Wspólne odstępy, równe karty i pełnoszerokie FAQ dla natywnych bloków. */
:is(.page-id-3514, .page-id-3837) .ast-single-post-featured-section {
	display: none !important;
}
:is(.page-id-3547, .page-id-3831, .page-id-3555, .page-id-3841) .entry-content > .spectra-is-root-container {
	box-sizing: border-box;
	width: 100% !important;
	max-width: 1200px !important;
	margin-inline: auto !important;
	min-width: 0;
}
:is(.page-id-3555, .page-id-3841) .spectra-is-root-container[style*="--spectra-background-color: #F6F8FB"],
:is(.page-id-3555, .page-id-3841) .spectra-is-root-container[style*="--spectra-background-color: #EAF2FC"] {
	border-radius: 12px;
}
:is(.page-id-3547, .page-id-3831) .wp-block-columns:has(> .wp-block-column:nth-child(3)) > .wp-block-column > .wp-block-group.has-border-color.has-background,
:is(.page-id-3555, .page-id-3841) .wp-block-columns > .wp-block-column > .wp-block-group.has-border-color.has-background {
	box-sizing: border-box;
	height: 100%;
}
.ll-responsive-columns {
	gap: 40px !important;
	align-items: stretch !important;
}
.ll-responsive-columns > .wp-block-column {
	display: flex;
	min-width: 0;
}
.ll-responsive-columns > .wp-block-column > .wp-block-spectra-container {
	flex: 1 1 auto;
	width: 100%;
	height: 100%;
	min-width: 0;
}
.ll-faq-list,
.ll-faq-list > .wp-block-spectra-container,
.ll-faq-list details.wp-block-details,
.lablogic-faq-list,
.lablogic-faq-list > details.wp-block-details {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
}
.ll-faq-list,
.lablogic-faq-list {
	gap: 12px;
}
@media (min-width: 922px) {
	:is(.page-id-3547, .page-id-3831) #primary {
		margin-top: 34px;
	}
}
@media (max-width: 921px) {
	.ll-responsive-columns {
		gap: 32px !important;
	}
}
@media (max-width: 767px) {
	.ll-responsive-columns {
		gap: 24px !important;
	}
	:is(.page-id-3547, .page-id-3831) #primary {
		margin-top: 20px;
	}
}
/* Korekta po pomiarze renderu Hero */
:is(.page-id-3514, .page-id-3837) article.ast-article-single {
	margin-top: 0 !important;
}
@media (min-width: 922px) {
	:is(.page-id-3547, .page-id-3831) #primary {
		margin-top: 34px !important;
	}
}
@media (max-width: 767px) {
	:is(.page-id-3547, .page-id-3831) #primary {
		margin-top: 20px !important;
	}
}
/* LL-HERO-BALANCE-2026-08-11 */
@media (min-width: 782px) {
	.ll-site-hero .wp-block-columns {
		align-items: stretch !important;
	}
	.ll-site-hero .wp-block-columns > .wp-block-column {
		display: flex;
		flex-direction: column;
		min-width: 0;
	}
	.ll-site-hero .wp-block-columns > .wp-block-column > :only-child {
		width: 100%;
		height: 100%;
	}
}
:is(.page-id-3479, .page-id-3834) .wp-block-details {
	width: 100%;
	max-width: 100%;
}
@media (max-width: 767px) {
	:is(.page-id-3479, .page-id-3834, .page-id-3514, .page-id-3837) article.ast-article-single {
		padding-top: 4px !important;
	}
	:is(.page-id-3547, .page-id-3831) #primary {
		margin-top: 0 !important;
	}
	:is(.page-id-3547, .page-id-3831, .page-id-3555, .page-id-3841) .ll-site-hero,
	:is(.page-id-3555, .page-id-3841) article.ast-article-single {
		padding-top: 0 !important;
	}
}
/* LL-INCIDENTS-MOBILE-SHRINK-2026-08-11 */
@media (max-width: 767px) {
	:is(.page-id-3547, .page-id-3831) .entry-content .wp-block-spectra-container > .wp-block-group {
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}
}
@media (max-width: 767px) {
	:is(.page-id-3547, .page-id-3831) .entry-content .wp-block-spectra-container > .wp-block-group > * {
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}
}
/* LL-HERO-MOBILE-FIRST-ELEMENT-2026-08-11 */
@media (max-width: 767px) {
	:is(.page-id-3547, .page-id-3831, .page-id-3555, .page-id-3841) .ll-site-hero {
		padding-top: 14px !important;
	}
}
@media (max-width: 767px) {
	#colophon .footer-widget-area .ll-footer-logo-img img {
		width: 160px;
		height: auto;
	}
}
@media (min-width: 768px) and (max-width: 1024px) {
	#colophon .footer-widget-area .ll-footer-logo-img img {
		width: 180px;
		height: auto;
	}
}
/* ===== LL-MOBILE-WIDTH-2026-08-17 — mobilne szerokości stron usługowych (PL + EN) =====
   Problem: zagnieżdżone kontenery sumowały na telefonie od 78 do 122 px odstępu
   na każdą stronę, więc formularze miały od 72 do 160 px szerokości przy ekranie 320 px.
   Zasada: kontenery strukturalne bez odstępów poziomych, jeden odstęp wewnątrz karty,
   karta w karcie nie sumuje dwóch poziomów. Zewnętrzny margines 20 px (Astra) bez zmian.
   Bez overflow: hidden. !important jest konieczne: odstępy kart pochodzą ze stylu
   wpisanego wprost w element przez edytor, a odstępy kontenerów Spectry z jej własnych reguł.
   Strony: Incydenty 3547/3831, DPO 3514/3837, NIS2 3479/3834, Szkolenia 3555/3841. */
@media (max-width: 767px) {
	/* 6. Margines od bocznej krawędzi ekranu = 16 px, zgodnie ze standardem odstępów
     responsywnych („bezpieczny odstęp od bocznej krawędzi sekcji”, telefon). Motyw Astra dawał 20 px.
     Odstęp jest na każdej stronie w innym elemencie: na Incydentach w kontenerze motywu,
     a na DPO, NIS2 i Szkoleniach w elemencie artykułu (szablon page-builder nie ma kontenera).
     Dlatego celujemy w konkretny element dla konkretnych stron — inaczej odstępy by się zsumowały.
     Strona główna ma 16 px już od wcześniejszej pracy. */
	:is(.page-id-3547,.page-id-3831) .site-content > .ast-container,
	:is(.page-id-3514,.page-id-3837,.page-id-3479,.page-id-3834,.page-id-3555,.page-id-3841) article.ast-article-single {
		padding-left: 16px !important;
		padding-right: 16px !important;
	}
	/* 1. Sekcje-korzenie i przezroczyste kontenery strukturalne — bez odstępów poziomych */
	:is(.page-id-3547,.page-id-3831,.page-id-3514,.page-id-3837,.page-id-3479,.page-id-3834,.page-id-3555,.page-id-3841) .entry-content .spectra-is-root-container,
	:is(.page-id-3547,.page-id-3831,.page-id-3514,.page-id-3837,.page-id-3479,.page-id-3834,.page-id-3555,.page-id-3841) .entry-content .spectra-is-root-container > .wp-block-spectra-container:not(.spectra-background-color) {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	/* 5. Szkolenia (PL 3555 / EN 3841): tam jasne panele #F6F8FB i #EAF2FC są sekcjami-korzeniami,
     więc reguła 1 zdejmowała im odstęp i tekst dotykał krawędzi tła (zmierzone: tekst 21–299 px
     przy panelu 20–300 px). Standard odstępów: wewnętrzny odstęp dużego panelu na telefonie = 20 px.
     Na pozostałych stronach jasne panele są kartami wewnątrz sekcji, więc ten przypadek tam nie występuje
     (sprawdzone: 0 takich sekcji na stronie głównej, DPO, NIS2 i Incydentach). */
	:is(.page-id-3555,.page-id-3841) .entry-content > .spectra-is-root-container[style*="F6F8FB"],
	:is(.page-id-3555,.page-id-3841) .entry-content > .spectra-is-root-container[style*="EAF2FC"] {
		padding-left: 20px !important;
		padding-right: 20px !important;
	}
	/* 2. Karty z tłem (Spectra i bloki Gutenberga) — jeden spójny odstęp 16 px */
	:is(.page-id-3547,.page-id-3831,.page-id-3514,.page-id-3837,.page-id-3479,.page-id-3834,.page-id-3555,.page-id-3841) .entry-content .wp-block-spectra-container.spectra-background-color:not(.spectra-is-root-container),
	:is(.page-id-3547,.page-id-3831,.page-id-3514,.page-id-3837,.page-id-3479,.page-id-3834,.page-id-3555,.page-id-3841) .entry-content .wp-block-group.has-background {
		padding-left: 16px !important;
		padding-right: 16px !important;
	}
	/* 3. Karta, w której leży kolejna karta — 12 px, żeby dwa poziomy się nie sumowały */
	:is(.page-id-3547,.page-id-3831,.page-id-3514,.page-id-3837,.page-id-3479,.page-id-3834,.page-id-3555,.page-id-3841) .entry-content .wp-block-spectra-container.spectra-background-color:not(.spectra-is-root-container):has(.wp-block-spectra-container.spectra-background-color, .wp-block-group.has-background),
	:is(.page-id-3547,.page-id-3831,.page-id-3514,.page-id-3837,.page-id-3479,.page-id-3834,.page-id-3555,.page-id-3841) .entry-content .wp-block-group.has-background:has(.wp-block-spectra-container.spectra-background-color, .wp-block-group.has-background) {
		padding-left: 12px !important;
		padding-right: 12px !important;
	}
	/* 4. Mobilny H1 — jeden rozmiar na czterech stronach usługowych, bez łamania wyrazów w środku.
     Strona główna jest świadomie pominięta: jej H1 zawiera wyraz „cyberbezpieczeństwo”, który przy
     32 px nie mieści się w kolumnie przy 320 px i wypychał stronę w poziomie (zmierzone: scrollWidth 359 px).
     Płynny rozmiar ok. 27 px, jaki ma dziś, jest tam maksimum, przy którym najdłuższy wyraz się mieści. */
	:is(.page-id-3547,.page-id-3831,.page-id-3514,.page-id-3837,.page-id-3479,.page-id-3834,.page-id-3555,.page-id-3841) .entry-content h1 {
		font-size: 32px !important;
		line-height: 1.2 !important;
		word-break: normal;
		overflow-wrap: break-word;
		hyphens: manual;
	}
}
/* =====================================================================
   LL-ARTICLE-2026-08-18 (v2) — uklad i wyglad artykulow Bazy wiedzy
   Zakres: wylacznie wpisy (body.single-post). Nie dotyka stron uslugowych.
   Wycofanie: usunac cala sekcje do znacznika KONIEC LL-ARTICLE.
   ===================================================================== */
/* --- 1. Pelna szerokosc strony, jak na zwyklych podstronach ---------- */
.single-post .site-content .ast-container {
	max-width: 1200px;
}
.single-post .site-main article.post {
	padding-left: 0;
	padding-right: 0;
}
.single-post .entry-content {
	margin-top: 0;
}
/* --- 2. Hero: nadtytul, tytul, pasek informacyjny -------------------- */
.single-post .entry-header {
	background: #F6F8FB;
	border-top: 4px solid #074B88;
	border-radius: 12px 12px 0 0;
	padding: 34px 40px 22px;
	margin: 0;
}
.single-post .entry-header::before {
	content: "Baza wiedzy";
	display: block;
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: #074B88;
	margin-bottom: 12px;
}
.single-post article.category-dpo-rodo .entry-header::before {
	content: "Baza wiedzy • DPO i RODO";
}
.single-post article.category-nis2-ksc .entry-header::before {
	content: "Baza wiedzy • NIS2 i KSC";
}
.single-post article.category-incydenty-naruszenia .entry-header::before {
	content: "Baza wiedzy • Incydenty i naruszenia";
}
.single-post article.category-szkolenia-warsztaty .entry-header::before {
	content: "Baza wiedzy • Szkolenia i warsztaty";
}
/* nadtytuly wersji angielskiej */
.single-post article.category-dpo .entry-header::before {
	content: "Knowledge base • DPO and GDPR";
}
.single-post article.category-nis2 .entry-header::before {
	content: "Knowledge base • NIS2 and KSC";
}
.single-post article.category-incidents .entry-header::before {
	content: "Knowledge base • Incidents and Breaches";
}
.single-post article.category-workshops .entry-header::before {
	content: "Knowledge base • Training and workshops";
}
.single-post .entry-title {
	font-size: clamp(28px, 3.1vw, 42px) !important;
	line-height: 1.16 !important;
	letter-spacing: -.01em;
	color: #0B2440;
	max-width: 900px;
	margin: 0;
}
.single-post .entry-header .entry-meta {
	display: none;
}
.single-post .ll-art-meta {
	background: #F6F8FB;
	border-top: 1px solid #DCE5F0;
	border-radius: 0 0 12px 12px;
	margin: 0 0 36px;
	padding: 18px 40px 24px;
	font-size: .89rem;
	color: #4A5A6A;
	max-width: none;
}
/* --- 3. Uklad: kolumna tresci + szyna nawigacyjna --------------------
   !important konieczne: rdzen WordPressa ustawia kolumnom flex-basis:0
   i max-width:100% regula o tej samej specyficznosci, ladowana pozniej. */
.single-post .ll-art-shell {
	gap: 40px;
	align-items: flex-start;
	margin: 0;
	max-width: none !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}
.single-post .ll-art-main {
	flex: 0 1 800px !important;
	max-width: 800px !important;
	min-width: 0;
}
.single-post .ll-art-rail {
	flex: 0 0 320px !important;
	max-width: 320px !important;
	min-width: 0;
}
@media (min-width: 1024px) {
	.single-post .ll-art-shell {
		flex-direction: row-reverse;
	}
	.single-post .ll-art-railinner {
		position: sticky;
		top: 24px;
	}
}
@media (max-width: 1023px) {
	.single-post .ll-art-shell {
		flex-direction: column;
	}
	.single-post .ll-art-main,
	.single-post .ll-art-rail {
		flex: 1 1 100% !important;
		max-width: 100% !important;
	}
}
.single-post .ll-art-main > * + * {
	margin-top: 26px;
}
/* --- 4. Typografia kolumny tresci ------------------------------------ */
.single-post .ll-art-main h2 {
	font-size: clamp(22px, 2vw, 27px);
	line-height: 1.28;
	letter-spacing: -.005em;
	color: #0B2440;
	margin-bottom: 0;
}
.single-post .ll-art-main > h2::after {
	content: "";
	display: block;
	width: 44px;
	height: 3px;
	border-radius: 2px;
	background: #074B88;
	margin-top: 14px;
}
.single-post .ll-art-main h3 {
	font-size: clamp(18px, 1.4vw, 20px);
	line-height: 1.35;
	color: #0B2440;
}
.single-post .ll-art-main p,
.single-post .ll-art-main li {
	font-size: 1.02rem;
	line-height: 1.75;
	color: #25384C;
}
.single-post .ll-art-main a {
	color: #074B88;
}
.single-post .ll-art-main h2:target,
.single-post .ll-art-main h3:target {
	background: #EAF2FC;
	box-shadow: 0 0 0 8px #EAF2FC;
	border-radius: 3px;
}
/* --- 5. Szyna nawigacyjna ------------------------------------------- */
.single-post .ll-art-railcard {
	background: #F6F8FB;
	border: 1px solid #DCE5F0;
	border-radius: 12px;
	padding: 20px 22px;
}
.single-post .ll-art-railcard + .ll-art-railcard {
	margin-top: 16px;
}
.single-post .ll-art-railcard > p:first-child {
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .11em;
	text-transform: uppercase;
	color: #074B88;
	margin: 0 0 12px;
}
.single-post .ll-art-railcard ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
.single-post .ll-art-railcard li {
	margin: 0 0 2px;
}
.single-post .ll-art-railcard li a {
	display: block;
	padding: 7px 10px;
	border-left: 2px solid transparent;
	border-radius: 0 8px 8px 0;
	font-size: .92rem;
	line-height: 1.35;
	color: #25384C;
	text-decoration: none;
}
.single-post .ll-art-railcard li a:hover,
.single-post .ll-art-railcard li a:focus {
	background: #EAF2FC;
	border-left-color: #074B88;
	color: #074B88;
}
.single-post .ll-art-railmeta p {
	margin: 0;
	font-size: .85rem;
	line-height: 1.55;
	color: #4A5A6A;
}
.single-post .ll-art-railmeta p + p {
	margin-top: 8px;
}
.single-post .ll-art-railmeta strong {
	color: #0B2440;
}
/* --- 6. Panele w tresci ---------------------------------------------- */
.single-post .entry-content [class*="ll-art-"] > * {
	min-width: 0;
	max-width: 100%;
}
.single-post .ll-art-main [class*="ll-art-"] > * + * {
	margin-top: 16px;
}
.single-post .ll-art-answer {
	background: #EAF2FC;
	border-radius: 12px;
	padding: 32px 36px;
}
.single-post .ll-art-answer h2 {
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .11em;
	text-transform: uppercase;
	color: #074B88;
	margin: 0;
}
.single-post .ll-art-answer h2::after {
	display: none;
}
.single-post .ll-art-answer p {
	font-size: 1.13rem;
	line-height: 1.68;
	color: #0B2440;
}
.single-post .ll-art-board {
	background: #EAF2FC;
	border-radius: 12px;
	padding: 32px 36px;
}
.single-post .ll-art-board h2 {
	color: #074B88;
	margin: 0;
}
.single-post .ll-art-board h2::after {
	display: none;
}
.single-post .ll-art-note {
	background: #F6F8FB;
	border-left: 3px solid #074B88;
	border-radius: 0 12px 12px 0;
	padding: 20px 24px;
}
.single-post .ll-art-note p {
	font-size: .97rem;
	margin: 0;
}
.single-post .ll-art-check {
	background: #F6F8FB;
	border: 1px solid #DCE5F0;
	border-radius: 12px;
	padding: 24px 28px;
}
.single-post .ll-art-check ul {
	margin: 0;
	padding-left: 20px;
}
.single-post .ll-art-check li {
	margin-bottom: 10px;
}
/* --- 7. Tabela ------------------------------------------------------- */
.single-post .ll-art-table {
	overflow-x: auto;
	margin: 0;
}
/* !important: sekcja LL-MOBILE-WIDTH zeruje min-width potomkom ukladow */
.single-post .ll-art-table table {
	border-collapse: collapse;
	min-width: 560px !important;
	width: 100%;
}
.single-post .ll-art-table th,
.single-post .ll-art-table td {
	border: 1px solid #DCE5F0;
	padding: 13px 15px;
	vertical-align: top;
	font-size: .94rem;
	line-height: 1.6;
}
.single-post .ll-art-table thead th {
	background: #074B88;
	border-color: #074B88;
	color: #FFFFFF;
	text-align: left;
	font-size: .82rem;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.single-post .ll-art-table tbody tr:nth-child(even) td {
	background: #F6F8FB;
}
/* --- 8. Najczestsze bledy -------------------------------------------- */
.single-post .ll-art-errors {
	list-style: none;
	margin: 0;
	padding: 0;
}
.single-post .ll-art-errors li {
	border-left: 2px solid #DCE5F0;
	padding: 0 0 0 18px;
	margin: 0 0 16px;
}
.single-post .ll-art-errors li strong {
	display: block;
	color: #074B88;
	margin-bottom: 2px;
}
/* --- 9. Zrodla ------------------------------------------------------- */
.single-post .ll-art-sources {
	padding-left: 22px;
}
.single-post .ll-art-sources li {
	font-size: .89rem;
	line-height: 1.6;
	margin-bottom: 12px;
	word-break: break-word;
	color: #4A5A6A;
}
/* --- 10. Autor ------------------------------------------------------- */
.single-post .ll-art-author {
	background: #F6F8FB;
	border: 1px solid #DCE5F0;
	border-radius: 12px;
	padding: 26px 30px;
	display: grid;
	grid-template-columns: 58px 1fr;
	column-gap: 20px;
	row-gap: 6px;
	align-items: start;
}
.single-post .ll-art-author::before {
	content: "MR";
	grid-row: 1 / span 2;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	background: #074B88;
	color: #FFFFFF;
	display: grid;
	place-items: center;
	font-weight: 700;
	letter-spacing: .04em;
}
.single-post .ll-art-author h2 {
	grid-column: 2;
	font-size: 1.05rem;
	margin: 0;
}
.single-post .ll-art-author h2::after {
	display: none;
}
.single-post .ll-art-author p {
	grid-column: 2;
	font-size: .95rem;
	margin: 0;
}
/* --- 11. CTA --------------------------------------------------------- */
.single-post .ll-art-cta {
	background: #EAF2FC;
	border-top: 4px solid #074B88;
	border-radius: 12px;
	padding: 34px 36px;
}
.single-post .ll-art-cta h2 {
	color: #074B88;
	margin: 0;
}
.single-post .ll-art-cta h2::after {
	display: none;
}
.single-post .ll-art-cta .wp-block-button__link {
	background: #074B88;
	border: 1px solid #074B88;
	color: #FFFFFF;
	border-radius: 8px;
	padding: 14px 24px;
	font-weight: 600;
	line-height: 1.2;
	min-height: 44px;
}
.single-post .ll-art-cta .wp-block-button__link:hover,
.single-post .ll-art-cta .wp-block-button__link:focus {
	background: #063B6E;
	border-color: #063B6E;
	color: #FFFFFF;
}
.single-post .ll-art-cta .wp-block-button__link:focus-visible {
	outline: 3px solid rgba(7, 75, 136, .3);
	outline-offset: 3px;
}
/* --- 12. Zastrzezenie ------------------------------------------------ */
.single-post .ll-art-disclaimer {
	border-top: 1px solid #DCE5F0;
	padding-top: 18px;
	font-size: .85rem;
	color: #5A6A7A;
}
.single-post .ll-art-disclaimer p {
	font-size: .85rem;
	line-height: 1.6;
	color: #5A6A7A;
}
/* --- 13. Tablet ------------------------------------------------------ */
@media (max-width: 1023px) {
	.single-post .entry-header {
		padding: 30px 32px 20px;
	}
	.single-post .ll-art-meta {
		padding: 16px 32px 22px;
		margin-bottom: 28px;
	}
	.single-post .ll-art-answer,
	.single-post .ll-art-board,
	.single-post .ll-art-cta {
		padding: 28px 32px;
	}
	.single-post .ll-art-railcard {
		padding: 18px 20px;
	}
	.single-post .ll-art-shell {
		gap: 28px;
	}
}
/* --- 14. Telefon ----------------------------------------------------- */
@media (max-width: 767px) {
	.single-post .entry-header {
		padding: 24px 20px 16px;
		border-radius: 12px 12px 0 0;
	}
	.single-post .entry-header::before {
		font-size: .68rem;
		margin-bottom: 10px;
	}
	.single-post .ll-art-meta {
		padding: 14px 20px 18px;
		margin-bottom: 24px;
		font-size: .84rem;
	}
	.single-post .ll-art-answer,
	.single-post .ll-art-board,
	.single-post .ll-art-cta {
		padding: 20px;
	}
	.single-post .ll-art-note,
	.single-post .ll-art-check,
	.single-post .ll-art-railcard {
		padding: 16px;
	}
	.single-post .ll-art-author {
		padding: 20px;
		grid-template-columns: 1fr;
		row-gap: 12px;
	}
	.single-post .ll-art-author::before {
		grid-row: auto;
		width: 48px;
		height: 48px;
		font-size: .9rem;
	}
	.single-post .ll-art-author h2,
	.single-post .ll-art-author p {
		grid-column: 1;
	}
	.single-post .ll-art-main > * + * {
		margin-top: 22px;
	}
	.single-post .ll-art-main p,
	.single-post .ll-art-main li {
		font-size: .98rem;
	}
}
/* ===== KONIEC LL-ARTICLE ============================================== */
/* =====================================================================
   LL-KB-CARDS-2026-08-18 — karty na stronie Bazy wiedzy (PL i EN)
   Powod: obie wartosci sa poprawnie ustawione w blokach, ale nie docieraja
   na front. Spectra nie generuje regul dla kontenerow renderowanych w petli
   wpisow (zostaje sama zmienna --spectra-background-color), a grupa w kolumnie
   nie dziedziczy jej wysokosci — atrybut wysokosci nie jest renderowany.
   Przypiete do klas, nie do numerow stron.
   Wycofanie: usunac cala sekcje do znacznika KONIEC LL-KB-CARDS.
   ===================================================================== */
/* 1. karta wyniku w bloku Post */
.spectra-post-loop-wrapper > li > div {
	background: #FFFFFF;
	border: 1px solid #DCE5F0;
	border-radius: 12px;
	padding: 24px;
	height: 100%;
}
/* 2. karty obszarow i sciezek — wspolna dolna linia */
.ll-kb-grid > .wp-block-column > .wp-block-group {
	height: 100%;
}
@media (max-width: 767px) {
	.spectra-post-loop-wrapper > li > div {
		padding: 16px;
	}
	.ll-kb-grid > .wp-block-column > .wp-block-group {
		height: auto;
	}
}
/* ===== KONIEC LL-KB-CARDS =========================================== */
/* LL-OG-THUMB-2026-08-19 — miniatury wpisów na archiwach.
   Motyw wymusza 16/9 z object-fit: fill, przez co grafika Open Graph 1200x630
   jest sciskana w pionie o ok. 6%. Ustawiamy proporcje pliku i cover jako zabezpieczenie
   dla obrazkow o innej proporcji. Wycofanie zmiany = usuniecie tej sekcji. */
/* Kadr miniatury ma pokazywać CAŁĄ grafikę. Astra ustawia tu regułą własną
   aspect-ratio: 16/9 (specyficzność 0,3,0) — dokładamy body, żeby nasza reguła
   wygrywała zawsze, niezależnie od kolejności arkuszy. object-fit: contain
   zamiast cover: nawet gdyby ramka kiedykolwiek miała inną proporcję, grafika
   zmieści się w całości, a nadmiar wypełni granat #0B2440 — czyli jej własne
   tło, więc listwy są niewidoczne. Grafika OG 1200 × 630 to dokładnie 40/21. */
body .ast-article-post .post-thumb-img-content img {
	aspect-ratio: 40 / 21;
	object-fit: contain;
	background-color: #0B2440;
}
/* koniec LL-OG-THUMB-2026-08-19 */
/* === LabLogic — menu główne: podkreślenie aktywnej pozycji (2026-08-20) === */
/* Powód 1: reguła z 2026-08-10 obejmowała tylko .current-menu-parent i .current-menu-ancestor,
   więc pozycja najwyższego poziomu bez podmenu ("Wiedza i analizy") nie dostawała podkreślenia
   na własnej stronie /baza-wiedzy/. Powód 2: wpisy nie są dziećmi tej strony, a w Ustawieniach →
   Czytanie nie ma ustawionej "Strony wpisów", więc WordPress nie nadaje menu żadnej klasy
   current-* na artykułach — stąd druga reguła oparta na klasie elementu body.
   Wycofanie zmiany = usunięcie całej tej sekcji. */
#primary-site-navigation-desktop .ast-nav-menu > .current-menu-item > a.menu-link,
#primary-site-navigation-desktop .ast-nav-menu > .current_page_item > a.menu-link {
	color: #074B88 !important;
	font-weight: 600;
	box-shadow: inset 0 -2px #074B88;
}
body.single-post #primary-site-navigation-desktop .menu-item-3940 > a.menu-link,
body.blog #primary-site-navigation-desktop .menu-item-3940 > a.menu-link,
body.archive #primary-site-navigation-desktop .menu-item-3940 > a.menu-link,
body.single-post #primary-site-navigation-desktop .menu-item-3945 > a.menu-link,
body.blog #primary-site-navigation-desktop .menu-item-3945 > a.menu-link,
body.archive #primary-site-navigation-desktop .menu-item-3945 > a.menu-link {
	color: #074B88 !important;
	font-weight: 600;
	box-shadow: inset 0 -2px #074B88;
}
#ast-mobile-header .ast-mobile-header-content .ast-nav-menu > .current-menu-item > a.menu-link,
#ast-mobile-header .ast-mobile-header-content .ast-nav-menu > .current_page_item > a.menu-link,
body.single-post #ast-mobile-header .ast-mobile-header-content .menu-item-3940 > a.menu-link,
body.blog #ast-mobile-header .ast-mobile-header-content .menu-item-3940 > a.menu-link,
body.archive #ast-mobile-header .ast-mobile-header-content .menu-item-3940 > a.menu-link,
body.single-post #ast-mobile-header .ast-mobile-header-content .menu-item-3945 > a.menu-link,
body.blog #ast-mobile-header .ast-mobile-header-content .menu-item-3945 > a.menu-link,
body.archive #ast-mobile-header .ast-mobile-header-content .menu-item-3945 > a.menu-link {
	color: #074B88 !important;
	font-weight: 600;
}
/* === koniec sekcji menu 2026-08-20 === */
/* === LabLogic — klikalna ścieżka nad tytułem artykułu (2026-08-20) === */
/* Powód: nadtytuł „Baza wiedzy • Kategoria” był dorysowywany przez CSS
   (deklaracje content: w regułach wyżej), więc z zasady nie mógł być odnośnikiem —
   nie da się go kliknąć, zaznaczyć, odczytać czytnikiem ekranu ani policzyć
   jako linku wewnętrznego. Teraz nazwę kategorii wypisuje Astra jako prawdziwy
   odnośnik (Dostosuj → Blog → Pojedynczy wpis → metadane = kategoria), a poniższe
   reguły przenoszą ją nad tytuł i nadają jej dotychczasowy wygląd.
   Człon „Baza wiedzy •” pozostaje zwykłym tekstem.
   Wycofanie = usunięcie tej sekcji ORAZ przywrócenie metadanych na „autor, data”. */
/* 1. Wygaszenie starego, nieklikalnego nadtytułu.
      !important jest tu konieczne: warianty dla poszczególnych kategorii
      (article.category-…) mają wyższą specyficzność niż ta reguła. */
.single-post article .entry-header::before {
	content: none !important;
	display: none !important;
}
/* 2. Nagłówek jako kolumna — tylko po to, żeby dało się przenieść
      metadane nad tytuł bez ruszania szablonu motywu. */
.single-post .entry-header {
	display: flex;
	flex-direction: column;
}
.single-post .entry-header .entry-title {
	order: 2;
}
/* 3. Metadane w roli ścieżki nad tytułem, w wyglądzie dotychczasowego nadtytułu. */
.single-post .entry-header .entry-meta {
	display: block;
	order: 1;
	margin-bottom: 12px;
	color: #074B88;
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .13em;
	text-transform: uppercase;
}
.single-post .entry-header .entry-meta::before {
	content: "Baza wiedzy • ";
}
.single-post article.category-dpo .entry-header .entry-meta::before,
.single-post article.category-nis2 .entry-header .entry-meta::before,
.single-post article.category-incidents .entry-header .entry-meta::before,
.single-post article.category-eu-ai-act .entry-header .entry-meta::before,
.single-post article.category-workshops .entry-header .entry-meta::before {
	content: "Knowledge base • ";
}
.single-post .entry-header .entry-meta a {
	color: #074B88;
	text-decoration: none;
	box-shadow: inset 0 -1px rgba(7, 75, 136, .35);
}
.single-post .entry-header .entry-meta a:hover,
.single-post .entry-header .entry-meta a:focus-visible {
	color: #063B6E;
	box-shadow: inset 0 -2px #063B6E;
}
@media (max-width: 767px) {
	.single-post .entry-header .entry-meta {
		margin-bottom: 10px;
		font-size: .68rem;
	}
}
/* === koniec sekcji ścieżki 2026-08-20 === */
/* === LL-KARTY-EKSPERT-2026-08-20 === */
/* Strona eksperta /michal-rutkowski/. Powod: Spectra nie generuje reguly
   min-height dla kontenera, a bloki nie maja sposobu na zrownanie wysokosci
   naglowkow kart w rzedzie. Padding z !important, bo domyslna regula
   .wp-block-spectra-container jest bardziej szczegolowa niz klasa pomocnicza. */
.ll-head-a,
.ll-head-b {
	padding: 0 !important;
}
/* Tablet i maly laptop: dwie karty w rzedzie zamiast czterech waskich */
@media (min-width: 782px) and (max-width: 1199.98px) {
	.ll-2up {
		flex-wrap: wrap !important;
	}
	.ll-2up > .wp-block-column {
		flex-basis: calc(50% - 20px) !important;
		flex-grow: 0 !important;
	}
	.ll-head-a,
	.ll-head-b {
		min-height: 56px;
	}
}
/* Komputer: miejsce na najdluzszy naglowek w rzedzie */
@media (min-width: 1200px) {
	.ll-head-a {
		min-height: 84px;
	}
	.ll-head-b {
		min-height: 56px;
	}
}
/* Przyciski: jeden stan po najechaniu w calym serwisie - ciemny granat (decyzja 21.08.2026) */
.ll-btn-outline .wp-block-button__link:hover,
.ll-btn-outline .wp-block-button__link:focus {
	background-color: #0B2440 !important;
	color: #FFFFFF !important;
}
/* Karty karuzeli Ostatnie artykuly. Powod: Spectra nie generuje zadnych regul
   dla kontenera wewnatrz petli wpisow - tlo, ramka, promien i odstepy ustawione
   w bloku nie trafiaja na front (to samo obejscie co sekcja LL-KB-CARDS). */
.ll-latest .swiper-slide > div {
	background-color: #FFFFFF !important;
	border: 1px solid #dce5f0 !important;
	border-radius: 12px !important;
	padding: 24px !important;
	gap: 16px !important;
 display: flex !important; flex-direction: column !important; height: 100% !important; }
/* Figura obrazka jest elementem flex bez wlasnej szerokosci - bez tego
   zwija sie do 0 px, a leniwie ladowany obrazek nigdy sie nie wczytuje. */
.ll-latest .wp-block-post-featured-image {
	width: 100%;
}
.ll-latest .wp-block-post-excerpt {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
}
.ll-latest .wp-block-post-excerpt__more-text {
	margin-top: auto;
	margin-bottom: 0;
}
@media (min-width: 782px) {
	.ll-latest .wp-block-post-title {
		min-height: 90px;
	}
}
/* Hero: zdjecie po prawej wypelnia wysokosc kolumny z trescia.
   Dopiero od 1024 px - nizej kolumna jest tak waska, ze kadr obcinalby
   zdjecie o polowe szerokosci. */
@media (min-width: 1024px) {
	.ll-hero-img {
		flex: 1 1 auto;
		display: flex;
		align-self: stretch;
	}
	.ll-hero-img img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
}
/* === koniec LL-KARTY-EKSPERT-2026-08-20 === */
/* ===== LL-KATEGORIE-2026-08-20 — POCZĄTEK =================================
   Archiwa kategorii Bazy wiedzy (PL i EN). Wycofanie = usunięcie tej sekcji.

   OGRANICZENIE, które wyznaczyło budowę: WordPress przepuszcza opis kategorii
   przez wp_filter_kses i usuwa wszystko poza znacznikami liniowymi (a, strong,
   em...). Sprawdzone na produkcji 20.08.2026 — div, ul, img i klasy nie
   przechodzą, mimo uprawnienia unfiltered_html. Dlatego treść to zwykłe
   akapity, a cały wygląd — łącznie z grafiką — robi ten arkusz.

   KOLEJNOŚĆ AKAPITÓW OPISU KATEGORII (od niej zależą wszystkie reguły):
     1 lead · 2 pasek faktów · 3 przycisk usługi · 4 odnośniki do obszarów
     5 pas zachęty do współpracy — CSS przenosi go POD listę artykułów
   Kategoria z krótszym opisem nie psuje się: puste wiersze siatki mają zero
   wysokości, więc pas hero kończy się tam, gdzie kończy się treść.
   ========================================================================= */
/* 1. Układ strony. #primary jest siatką, bo tylko tak da się przenieść piąty
   akapit pod pętlę wpisów — WordPress renderuje cały opis kategorii nad nią.
   !important przy marginesie i wypełnieniu jest konieczne: szablon Astry
   „page builder" zeruje oba regułą z identyfikatorem (.ast-page-builder-template
   .site-content #primary), której zwykłą specyficznością się nie przebije. */
body.category #primary {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	/* 1248 = 1200 treści + 24 px wypełnienia z każdej strony, dokładnie tyle,
	   ile ma .ast-container reszty serwisu — dzięki temu kolumna archiwum stoi
	   w tej samej osi co podstrony.
	   Margines 68 px to standard serwisu: dokładnie tyle ma #primary na stronach
	   artykułów, więc pas hero odsuwa się od menu, a pas współpracy od stopki. */
	max-width: 1248px;
	margin: 68px auto !important;
	padding: 0 24px !important;
}
body.category .ast-archive-description {
	display: contents;
}
/* grid-column: 1 przy każdym elemencie jest konieczne — pseudoelementy tła
   zajmują kolumnę 1 w wierszach 1–6, więc automatyczne rozmieszczanie wypchnęłoby
   treść do nowej, niejawnej kolumny (sprawdzone: siatka robiła się dwukolumnowa). */
body.category .page-title {
	grid-area: 1 / 1;
}
body.category .ast-archive-description p:nth-of-type(1) {
	grid-area: 2 / 1;
}
body.category .ast-archive-description p:nth-of-type(2) {
	grid-area: 3 / 1;
}
body.category .ast-archive-description p:nth-of-type(3) {
	grid-area: 4 / 1;
}
body.category .ast-archive-description p:nth-of-type(4) {
	grid-area: 5 / 1;
}
/* Odstęp listy wpisów od pasa hero. 92 px = 28 px dolnego wypełnienia pasa
   (pseudoelement ma height: calc(100% + 28px)) + 64 px odstępu sekcyjnego,
   czyli tyle, ile dają dwie sąsiadujące sekcje Spectry (32 px + 32 px)
   na stronach usługowych. Widoczna przerwa wychodzi dokładnie 64 px. */
body.category .site-main {
	grid-area: 8 / 1;
	margin-top: 92px;
}
body.category .ast-pagination {
	grid-area: 9 / 1;
}
body.category .ast-archive-description p:nth-of-type(5) {
	grid-area: 10 / 1;
}
body.category .ast-archive-description > p:empty {
	display: none;
}
/* 2. Pas hero. Tło i motyw to pseudoelementy #primary rozciągnięte na wiersze
   1–6. Dzięki temu aurora jest JEDNYM tłem całego pasa — wcześniej grafika była
   osobnym prostokątem i jej gradient odcinał się od granatu kolumny. */
body.category #primary::before {
	content: "";
	grid-area: 1 / 1 / 7 / 2;
	height: calc(100% + 28px);
	border-radius: 12px;
	background: radial-gradient(56% 78% at 80% 14%, rgba(44, 143, 208, .90), rgba(44, 143, 208, 0) 62%), radial-gradient(52% 76% at 99% 76%, rgba(7, 75, 136, 1), rgba(7, 75, 136, 0) 66%), radial-gradient(44% 64% at 64% 114%, rgba(27, 111, 184, .85), rgba(27, 111, 184, 0) 64%), #0B2440;
}
/* motyw kategorii — sam rysunek, bez własnego tła, wpisany w arkusz jako SVG,
   więc nie ma pliku do wgrywania i nie ma dodatkowego żądania do serwera */
body.category #primary::after {
	content: "";
	grid-area: 1 / 1 / 7 / 2;
	justify-self: end;
	align-self: center;
	width: 420px;
	aspect-ratio: 3 / 2;
	margin-right: 44px;
	background: center / contain no-repeat;
}
body.category-dpo-rodo #primary::after,
body.category-dpo #primary::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 800' width='1200' height='800'%3E%3Cg fill='none' stroke='%23fff' stroke-width='9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='170,630 350,566 520,592 700,470 862,502 1030,300'/%3E%3C/g%3E%3Ccircle cx='1030' cy='300' r='20' fill='%23fff'/%3E%3Ccircle cx='1030' cy='300' r='46' fill='none' stroke='%23fff' stroke-width='3.5' opacity='.45'/%3E%3C/svg%3E");
}
body.category-nis2-ksc #primary::after,
body.category-nis2 #primary::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 800' width='1200' height='800'%3E%3Cg stroke='%23fff' stroke-linecap='round'%3E%3Cline x1='180' y1='430' x2='1020' y2='430' stroke-width='7' opacity='.55'/%3E%3C/g%3E%3Ccircle cx='180' cy='430' r='13' fill='%23fff' opacity='.55'/%3E%3Ccircle cx='460' cy='430' r='18' fill='%23fff' opacity='.7'/%3E%3Ccircle cx='740' cy='430' r='23' fill='%23fff' opacity='.85'/%3E%3Ccircle cx='1020' cy='430' r='30' fill='%23fff'/%3E%3Ccircle cx='1020' cy='430' r='60' fill='none' stroke='%23fff' stroke-width='3.5' opacity='.45'/%3E%3Cg stroke='%23fff' stroke-width='5.5' stroke-linecap='round' opacity='.5'%3E%3Cline x1='180' y1='340' x2='180' y2='384'/%3E%3Cline x1='460' y1='340' x2='460' y2='379'/%3E%3Cline x1='740' y1='340' x2='740' y2='374'/%3E%3C/g%3E%3C/svg%3E");
}
body.category-incydenty-naruszenia #primary::after,
body.category-incidents #primary::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 800' width='1200' height='800'%3E%3Cg stroke='%23fff' stroke-linecap='round'%3E%3Cline x1='170' y1='430' x2='1030' y2='430' stroke-width='7' opacity='.55'/%3E%3C/g%3E%3Cg stroke='%23fff' stroke-width='5.5' stroke-linecap='round' opacity='.45'%3E%3Cline x1='170' y1='406' x2='170' y2='454'/%3E%3Cline x1='342' y1='406' x2='342' y2='454'/%3E%3Cline x1='686' y1='406' x2='686' y2='454'/%3E%3Cline x1='858' y1='406' x2='858' y2='454'/%3E%3Cline x1='1030' y1='406' x2='1030' y2='454'/%3E%3C/g%3E%3Ccircle cx='514' cy='430' r='24' fill='%23fff'/%3E%3Ccircle cx='514' cy='430' r='56' fill='none' stroke='%23fff' stroke-width='3.5' opacity='.5'/%3E%3Ccircle cx='514' cy='430' r='90' fill='none' stroke='%23fff' stroke-width='3.5' opacity='.25'/%3E%3C/svg%3E");
}
body.category-szkolenia-warsztaty #primary::after,
body.category-workshops #primary::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 800' width='1200' height='800'%3E%3Crect x='170' y='244' width='300' height='62' rx='17' fill='%23fff'/%3E%3Crect x='170' y='336' width='470' height='62' rx='17' fill='none' stroke='%23fff' stroke-width='4.5' opacity='.8'/%3E%3Crect x='170' y='428' width='640' height='62' rx='17' fill='none' stroke='%23fff' stroke-width='4.5' opacity='.6'/%3E%3Crect x='170' y='520' width='810' height='62' rx='17' fill='none' stroke='%23fff' stroke-width='4.5' opacity='.45'/%3E%3C/svg%3E");
}
body.category-ai-act #primary::after,
body.category-eu-ai-act #primary::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 800'%3E%3Cg fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M 170,430 L 470,430' stroke-width='9' opacity='.55'/%3E%3Cpath d='M 470,430 L 600,300 L 1030,300' stroke-width='7' opacity='.55'/%3E%3Cpath d='M 470,430 L 600,560 L 1030,560' stroke-width='7'/%3E%3C/g%3E%3Ccircle cx='470' cy='430' r='18' fill='%23fff' opacity='.55'/%3E%3Ccircle cx='790' cy='300' r='20' fill='%23fff' opacity='.55'/%3E%3Ccircle cx='1030' cy='300' r='20' fill='%23fff' opacity='.55'/%3E%3Ccircle cx='790' cy='560' r='20' fill='%23fff'/%3E%3Ccircle cx='1030' cy='560' r='20' fill='%23fff'/%3E%3Ccircle cx='1030' cy='560' r='46' fill='none' stroke='%23fff' stroke-width='4.5' opacity='.45'/%3E%3C/svg%3E");
}
/* 3. Treść pasa */
body.category .page-title,
body.category .ast-archive-description p:nth-of-type(-n+4) {
	position: relative;
	z-index: 1;
	padding-left: 44px;
	padding-right: 500px;
}
body.category .page-title {
	margin: 0 0 16px;
	padding-top: 44px;
	color: #FFF;
	font-size: 40px;
	font-weight: 700;
	line-height: 1.15;
}
/* nadtytuł z CSS — nowa kategoria nie wymaga żadnej edycji treści */
body.category .page-title::before {
	content: "Baza wiedzy";
	display: block;
	margin-bottom: 14px;
	color: #9CCBF2;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}
body.category-dpo .page-title::before,
body.category-nis2 .page-title::before,
body.category-incidents .page-title::before,
body.category-workshops .page-title::before {
	content: "Knowledge base";
}
body.category .ast-archive-description p {
	margin: 0 0 16px;
}
/* bez max-width: przy box-sizing: border-box wartość w ch obejmuje wypełnienie,
   a to po prawej ma 500 px — szerokość wiersza ogranicza samo wypełnienie */
body.category .ast-archive-description p:nth-of-type(1) {
	color: #D8E6F5;
	font-size: 19px;
	line-height: 1.6;
}
body.category .ast-archive-description p:nth-of-type(2) {
	margin-bottom: 24px;
	color: #9CCBF2;
	font-size: 14px;
	font-weight: 600;
}
body.category .ast-archive-description p:nth-of-type(3) a {
	display: inline-block;
	padding: 12px 22px;
	border-radius: 8px;
	background: #FFF;
	color: #074B88;
	font-weight: 600;
	text-decoration: none;
}
body.category .ast-archive-description p:nth-of-type(3) a:hover,
body.category .ast-archive-description p:nth-of-type(3) a:focus {
	background: #EAF2FC;
	color: #063A6B;
}
/* odstęp nad odnośnikami obszarów taki sam, jaki biały przycisk ma od góry */
body.category .ast-archive-description p:nth-of-type(3) {
	margin-bottom: 24px;
}
body.category .ast-archive-description p:nth-of-type(4) {
	margin-bottom: 0;
	color: #9CCBF2;
	font-size: 15px;
}
body.category .ast-archive-description p:nth-of-type(4) a {
	display: inline-block;
	margin: 4px 6px 0 0;
	padding: 7px 15px;
	border: 1px solid rgba(255, 255, 255, .28);
	border-radius: 999px;
	color: #EAF2FC;
	font-size: 15px;
	text-decoration: none;
}
body.category .ast-archive-description p:nth-of-type(4) a:hover,
body.category .ast-archive-description p:nth-of-type(4) a:focus {
	border-color: #FFF;
	background: rgba(255, 255, 255, .12);
	color: #FFF;
}
/* 4. Siatka artykułów — dwa rzędy po trzy karty, dalej paginacja Astry.
   Poziome przewijanie ze strzałkami w CSS zostało wycofane 20.08.2026: strzałki
   i kropki rysują wyłącznie przeglądarki oparte na Chromium, więc w Safari nie
   było czym sterować, a samo przewijanie myszą wymaga trzymania Shifta. */
body.category .ast-row {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px;
	margin: 0;
	padding: 0;
}
body.category .ast-article-post {
	width: auto !important;
	max-width: none !important;
	flex: none !important;
	margin: 0;
	padding: 0 !important;
}
/* 5. Karta wpisu */
body.category .ast-article-inner {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	border: 1px solid #DCE5F0;
	border-radius: 12px;
	overflow: hidden;
	background: #FFF;
	transition: border-color .2s ease, box-shadow .2s ease;
}
body.category .ast-article-post:hover .ast-article-inner,
body.category .ast-article-post:focus-within .ast-article-inner {
	border-color: #B9D3EC;
	box-shadow: 0 6px 20px rgba(11, 36, 64, .10);
}
/* Astra daje karcie 25,5 px wypełnienia i wyciąga obrazek poza nie ujemnym
   marginesem. Zdejmujemy oba i sterujemy odstępem sami — inaczej treść stoi
   51 px od krawędzi karty zamiast standardowych 24 px, a karta rośnie o 51 px
   w pionie bez powodu. */
body.category .ast-article-inner {
	padding: 0;
}
body.category .ast-article-inner > .post-content {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	margin: 0;
	padding: 0 0 24px;
}
/* wypełnienie karty dokładamy treści, nie obrazkowi — obrazek ma być na styk */
body.category .post-content > *:not(.ast-blog-featured-section) {
	margin-left: 24px;
	margin-right: 24px;
}
body.category .ast-blog-featured-section {
	margin: 0 0 20px !important;
}
/* TO BYŁA PRZYCZYNA UCIĘTYCH GRAFIK (naprawione 20.08.2026).
   Astra wyciąga miniaturę poza kartę ujemnym marginesem 1,5 em z każdej strony
   (reguła .ast-article-post.remove-featured-img-padding … .post-thumb-img-content),
   bo kompensuje wypełnienie karty. Nasza karta ma padding: 0, więc kompensować
   nie ma czego: obrazek wychodził 24 px poza kartę u góry i po bokach, a
   overflow: hidden karty go tam ucinało. Widoczne było 88,5 % szerokości i 89 %
   wysokości grafiki — ginęło logo LabLogic i początek nagłówka. Zmierzone:
   karta 156..535, obrazek 132..559. !important konieczne, bo reguła Astry ma
   pięć klas w selektorze. */
body.category .post-thumb-img-content {
	margin: 0 !important;
}
body.category .post-thumb-img-content img {
	width: 100%;
}
/* etykieta kategorii na własnym archiwum powtarza H1 */
body.category .cat-links {
	display: none;
}
body.category .entry-title {
	margin: 0 0 8px;
	font-size: 20px;
	line-height: 1.3;
}
body.category .entry-title a {
	color: #0B2440;
	text-decoration: none;
}
body.category .entry-title a:hover {
	color: #074B88;
}
/* Astra daje .entry-header 26 px marginesu górnego regułą
   .archive.ast-page-builder-template .entry-header (specyficzność 0,3,0) —
   razem z 8 px spod tytułu robiła się 34 px dziura między tytułem a datą.
   Zerujemy selektorem o wyższej specyficzności (0,3,1), bez !important,
   i osobnymi deklaracjami zamiast skrótu — skrót zerowałby też marginesy
   boczne 24 px, które przychodzą z reguły .post-content > :not(...). */
body.category .ast-article-post .ast-blog-meta-container {
	margin-top: 0;
	margin-bottom: 10px;
	padding: 0;
}
body.category .entry-meta,
body.category .entry-meta a {
	color: #4A5A6A;
	font-size: 14px;
}
/* Zajawka mieszka w .ast-excerpt-container. Element .entry-content zostaje pusty
   i tylko rozpychał kartę — dlatego go chowamy. */
body.category .entry-content {
	display: none;
}
body.category .ast-excerpt-container {
	margin-bottom: 0;
	font-size: 16px;
	line-height: 1.6;
	color: #25384C;
}
/* Cztery wiersze zajawki w każdej karcie: przycięcie i rezerwa naraz. Bez tego
   najdłuższa zajawka wyznacza wysokość całego rzędu, a w pozostałych kartach
   robi się nawet 200 px pustki (zmierzone: karty 750 px przy treści 550 px).
   To ta sama zasada, co rezerwa na tytuł. */
body.category .ast-excerpt-container p {
	display: -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 102px;
	margin: 0;
}
/* Astra w wersji darmowej nie ma odnośnika „czytaj dalej" (opcja Pro), więc
   klikalna jest cała karta, a zachętę dopisuje CSS pod zajawką. */
body.category .entry-title a::after {
	content: "";
	position: absolute;
	inset: 0;
}
body.category .ast-excerpt-container::after {
	content: "Czytaj artykuł →";
	display: block;
	margin-top: 16px;
	color: #074B88;
	font-weight: 600;
}
body.category-dpo .ast-excerpt-container::after,
body.category-nis2 .ast-excerpt-container::after,
body.category-incidents .ast-excerpt-container::after,
body.category-workshops .ast-excerpt-container::after {
	content: "Read article →";
}
body.category .ast-article-post:hover .ast-excerpt-container::after {
	color: #063A6B;
	text-decoration: underline;
}
/* 6. Paginacja Astry — strzałka „poprzednia" w lewym rogu, „następna" w prawym,
   numery po środku. Pojawia się od siódmego materiału w kategorii. */
body.category .ast-pagination {
	position: relative;
	margin: 36px 0 0;
	padding: 0;
}
body.category .ast-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
}
/* Strzałki wiszą w rogach wiersza, a numery zostają na środku także na
   pierwszej stronie, gdzie „poprzedniej" nie ma — marginesy auto tego nie
   dawały: bez strzałki po lewej numery zjeżdżały do lewej krawędzi. */
body.category .ast-pagination .prev.page-numbers,
body.category .ast-pagination .next.page-numbers {
	position: absolute;
	top: 50%;
	margin: 0;
	transform: translateY(-50%);
}
body.category .ast-pagination .prev.page-numbers {
	left: 0;
}
body.category .ast-pagination .next.page-numbers {
	right: 0;
}
body.category .ast-pagination .page-numbers {
	display: inline-block;
	min-width: 42px;
	margin: 0 6px 6px 0;
	padding: 9px 12px;
	border: 1px solid #DCE5F0;
	border-radius: 8px;
	background: #FFF;
	color: #25384C;
	font-weight: 600;
	text-align: center;
	text-decoration: none;
}
body.category .ast-pagination .page-numbers.current {
	border-color: #074B88;
	background: #074B88;
	color: #FFF;
}
body.category .ast-pagination a.page-numbers:hover {
	border-color: #074B88;
	color: #074B88;
}
/* 7. Pas zachęty do współpracy — piąty akapit opisu, przeniesiony pod listę */
body.category .ast-archive-description p:nth-of-type(5) {
	margin: 40px 0 0;
	padding: 32px 36px;
	border: 1px solid #B9D3EC;
	border-radius: 12px;
	background: #EAF2FC;
	color: #25384C;
	font-size: 17px;
	line-height: 1.65;
}
body.category .ast-archive-description p:nth-of-type(5) strong {
	display: block;
	margin-bottom: 8px;
	color: #0B2440;
	font-size: 22px;
	line-height: 1.25;
}
body.category .ast-archive-description p:nth-of-type(5) a {
	display: block;
	width: fit-content;
	margin-top: 18px;
	padding: 12px 22px;
	border-radius: 8px;
	background: #074B88;
	color: #FFF;
	font-weight: 600;
	text-decoration: none;
}
body.category .ast-archive-description p:nth-of-type(5) a:hover,
body.category .ast-archive-description p:nth-of-type(5) a:focus {
	background: #063A6B;
	color: #FFF;
}
/* 8. Rezerwa na dwa wiersze tytułu (20 px × 1,3 = 52 px) — dzięki niej data
   i zajawka w kartach jednego wiersza startują na tej samej wysokości.
   Rezerwa trzywierszowa zostawiała 26 px pustki pod dwuwierszowym tytułem,
   a takich jest 13 z 15 (pomiar 20.08.2026). Tytuł dłuższy niż dwa wiersze
   (ok. 62 znaki przy karcie 428 px) przesunie w swojej karcie datę i zajawkę
   o 26 px w dół — zasada redakcyjna: tytuł mieści się w dwóch wierszach. */
@media (min-width: 782px) {
	body.category .entry-title {
		min-height: 52px;
	}
}
/* 9. Tablet 782–1199 px — dwie kolumny kart, węższy motyw */
@media (max-width: 1199px) {
	body.category .ast-row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	body.category #primary::after {
		width: 300px;
		margin-right: 32px;
	}
	body.category .page-title,
	body.category .ast-archive-description p:nth-of-type(-n+4) {
		padding-left: 32px;
		padding-right: 372px;
	}
	body.category .page-title {
		padding-top: 36px;
		font-size: 34px;
	}
}
/* 10. Telefon — motyw wchodzi pod tytuł, karty jedna pod drugą */
@media (max-width: 781px) {
	body.category #primary {
		padding: 0 20px !important;
	}
	body.category #primary::after {
		grid-area: 2 / 1 / 3 / 2;
		justify-self: stretch;
		width: auto;
		aspect-ratio: 16 / 9;
		margin: 0 22px 20px;
	}
	body.category .ast-archive-description p:nth-of-type(1) {
		grid-area: 3 / 1;
	}
	body.category .ast-archive-description p:nth-of-type(2) {
		grid-area: 4 / 1;
	}
	body.category .ast-archive-description p:nth-of-type(3) {
		grid-area: 5 / 1;
	}
	body.category .ast-archive-description p:nth-of-type(4) {
		grid-area: 6 / 1;
	}
	body.category .page-title,
	body.category .ast-archive-description p:nth-of-type(-n+4) {
		padding-left: 22px;
		padding-right: 22px;
	}
	body.category .page-title {
		padding-top: 26px;
		font-size: 30px;
	}
	body.category .page-title::before {
		margin-bottom: 10px;
		font-size: 12px;
	}
	body.category .ast-archive-description p:nth-of-type(1) {
		font-size: 17px;
	}
	body.category .ast-archive-description p:nth-of-type(3) a {
		display: block;
		text-align: center;
	}
	body.category .site-main {
		margin-top: 76px;
	}
	body.category .ast-row {
		grid-template-columns: minmax(0, 1fr);
		gap: 24px;
	}
	/* na telefonie strzałki wracają do układu pionowego — w rogach nachodziłyby
	   na numery, a w jednym rzędzie nie mieszczą się obie */
	body.category .ast-pagination .prev.page-numbers,
	body.category .ast-pagination .next.page-numbers {
		position: static;
		width: 100%;
		transform: none;
		text-align: center;
	}
	body.category .ast-archive-description p:nth-of-type(5) {
		padding: 24px;
	}
	body.category .ast-archive-description p:nth-of-type(5) a {
		width: auto;
		text-align: center;
	}
}
/* ===== LL-KATEGORIE-2026-08-20 — KONIEC =================================== */

/* =====================================================================
   LL-FAQ-2026-08-20 — wspolny wyglad sekcji "Najczestsze pytania"
   Zakres:    wylacznie wnetrze kontenera z klasa .ll-faq (strony i wpisy).
   Podstawa:  STANDARD-UKLADU-PODSTRON.md v1.7, DEC-070, DEC-071.
   Powod:     blok core/details wystawia kolor, gradient, obramowanie i
              padding, ale NIE wystawia promienia ani znaku +/-, a kazde
              ustawienie bloku trzeba by powtarzac przy kazdym pytaniu.
   Wycofanie: usunac cala sekcje do znacznika KONIEC LL-FAQ oraz klase
              .ll-faq z kontenerow sekcji pytan.
   ===================================================================== */
.ll-faq .wp-block-details {
  background: #FFFFFF;
  border: 1px solid #DCE5F0;
  border-radius: 12px;
  padding: 18px 20px;
  margin: 0 0 12px;
}
.ll-faq .wp-block-details:last-child { margin-bottom: 0; }
.ll-faq .wp-block-details[open] {
  background: linear-gradient(160deg, #FFFFFF 0%, #EFF5FC 100%);
  border-color: #CFDDEE;
}
.ll-faq .wp-block-details summary {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  min-height: 26px;
  cursor: pointer;
  list-style: none;
  font-size: 1.03rem;
  font-weight: 600;
  line-height: 1.45;
  color: #0B2440;
}
.ll-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.ll-faq .wp-block-details summary::after {
  content: "+";
  flex: none;
  font-size: 22px;
  line-height: 1;
  font-weight: 400;
  color: #0B5F9B;
}
.ll-faq .wp-block-details[open] summary::after { content: "\2013"; }
.ll-faq .wp-block-details summary:focus-visible {
  outline: 3px solid rgba(7, 75, 136, .35);
  outline-offset: 3px;
}
.ll-faq .wp-block-details > *:not(summary) { margin-top: 12px; }
.ll-faq .wp-block-details p {
  font-size: .97rem;
  line-height: 1.65;
  color: #33475B;
}
@media (max-width: 767px) {
  .ll-faq .wp-block-details { padding: 16px 18px; }
  .ll-faq .wp-block-details summary { font-size: 1rem; gap: 12px; }
}
/* ===================== KONIEC LL-FAQ ================================= */


/* LL-STOPKA-PILL-2026-08-21 (v3) — pastylka języka w pasku prawnym; treść daje przełącznik WPML, więc odnośniki prowadzą na tłumaczenie oglądanej strony */
#colophon .ll-lang-pill {
	display: inline-flex;
	align-self: center;
	border: 1px solid rgba(255,255,255,.22);
	border-radius: 999px;
	overflow: hidden;
	background: rgba(255,255,255,.04);
}
#colophon .ll-lang-pill .wpml-ls,
#colophon .ll-lang-pill .wpml-ls ul,
#colophon .ll-lang-pill .wpml-ls li {
	margin: 0;
	padding: 0;
	border: 0;
	list-style: none;
}
#colophon .ll-lang-pill .wpml-ls,
#colophon .ll-lang-pill .wpml-ls ul {
	display: flex;
}
#colophon .ll-lang-pill > a,
#colophon .ll-lang-pill .wpml-ls a {
	display: block;
	min-height: 0;
	padding: 5px 14px;
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: .2px;
	line-height: 1.45;
	color: #93A6BC;
	text-decoration: none;
	transition: color .15s ease, background-color .15s ease;
}
#colophon .ll-lang-pill > a:hover,
#colophon .ll-lang-pill .wpml-ls a:hover {
	color: #FFFFFF;
	background: rgba(255,255,255,.06);
}
#colophon .ll-lang-pill > a[aria-current],
#colophon .ll-lang-pill .wpml-ls .wpml-ls-current-language > a,
#colophon .ll-lang-pill .wpml-ls .wpml-ls-current-language > a:hover {
	background: rgba(255,255,255,.13);
	color: #FFFFFF;
}

/* LL-STOPKA-ODSTEP-CAPTCHA-2026-08-21 — zapas u dołu paska prawnego, żeby plakietka reCAPTCHA i przycisk powrotu niczego nie zasłaniały */
#colophon .lablogic-footer-legal {
	padding-bottom: 60px;
}


/* LL-STOPKA-LINKI-2026-08-21 — kolor i stan najechania linków w kolumnach stopki (Astra nie wystawia CSS-u dla linków widżetu stopki) */
#colophon .site-primary-footer-wrap .wp-block-list a,
#colophon .site-primary-footer-wrap p a:not(.wp-block-button__link) {
	color: #E2E8F0;
}
#colophon .site-primary-footer-wrap .wp-block-list a:hover,
#colophon .site-primary-footer-wrap .wp-block-list a:focus-visible,
#colophon .site-primary-footer-wrap p a:not(.wp-block-button__link):hover,
#colophon .site-primary-footer-wrap p a:not(.wp-block-button__link):focus-visible {
	color: #9DD9FF;
}


/* ===== LL-LOGOS-MOBILE-2026-08-21 — siatka logotypow klientow: 3 kolumny na desktopie, 2 na telefonie.
   Zgoda wlasciciela z 21.08.2026. Bloki nie potrafia dac roznej liczby kolumn na roznych szerokosciach. ===== */
@media (max-width: 600px) {
  .ll-logos.is-layout-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* ===== LL-KARUZELA-2026-08-21 — kropki karuzeli pod kartami, nie na nich ===== */
.spectra-post-layout-carousel:has(> .swiper-pagination) { padding-bottom: 44px; }
.spectra-post-layout-carousel:has(> .swiper-pagination) > .swiper-pagination { bottom: 0; }
.spectra-post-layout-carousel:has(> .swiper-pagination) > .swiper-button-prev,
.spectra-post-layout-carousel:has(> .swiper-pagination) > .swiper-button-next { top: calc(50% - 22px); }
/* ===== KONIEC LL-KARUZELA-2026-08-21 ===== */








/* ==========================================================================
   17. LL-MENU-2026-08-21 — nagłówek: mega menu, pastylka języka, telefon
   ========================================================================== */

/* 17.1 Podkreślenie pozycji — jedno źródło; gasi kreskę cieniem z DEC-065 */
#primary-site-navigation-desktop .ast-nav-menu > li > a.menu-link,
#primary-site-navigation-desktop .ast-nav-menu > .current-menu-item > a.menu-link,
#primary-site-navigation-desktop .ast-nav-menu > .current-menu-parent > a.menu-link,
#primary-site-navigation-desktop .ast-nav-menu > .current-menu-ancestor > a.menu-link,
body.single-post #primary-site-navigation-desktop .menu-item-3940 > a.menu-link,
body.blog #primary-site-navigation-desktop .menu-item-3940 > a.menu-link,
body.archive #primary-site-navigation-desktop .menu-item-3940 > a.menu-link,
body.single-post #primary-site-navigation-desktop .menu-item-3945 > a.menu-link,
body.blog #primary-site-navigation-desktop .menu-item-3945 > a.menu-link,
body.archive #primary-site-navigation-desktop .menu-item-3945 > a.menu-link { box-shadow: none; position: relative; }
#primary-site-navigation-desktop .ast-nav-menu > li > .menu-link::after {
  content: ""; position: absolute; left: 17px; right: 17px; bottom: 0;
  height: 3px; background: #074B88; border-radius: 3px 3px 0 0;
  transform: scaleX(0); transform-origin: left; transition: transform .2s;
}
#primary-site-navigation-desktop .ast-nav-menu > .current-menu-item > .menu-link::after,
#primary-site-navigation-desktop .ast-nav-menu > .current-menu-parent > .menu-link::after,
#primary-site-navigation-desktop .ast-nav-menu > .current-menu-ancestor > .menu-link::after,
body.single-post #primary-site-navigation-desktop .ast-nav-menu > .menu-item-3940 > .menu-link::after,
body.blog #primary-site-navigation-desktop .ast-nav-menu > .menu-item-3940 > .menu-link::after,
body.archive #primary-site-navigation-desktop .ast-nav-menu > .menu-item-3940 > .menu-link::after,
body.single-post #primary-site-navigation-desktop .ast-nav-menu > .menu-item-3945 > .menu-link::after,
body.blog #primary-site-navigation-desktop .ast-nav-menu > .menu-item-3945 > .menu-link::after,
body.archive #primary-site-navigation-desktop .ast-nav-menu > .menu-item-3945 > .menu-link::after { transform: scaleX(1); }
@media (hover: hover) and (pointer: fine) {
  #primary-site-navigation-desktop .ast-nav-menu > li:hover > .menu-link::after { transform: scaleX(1); }
}

/* 17.2 Pastylka języka — kod w ::before, strzałka WPML ukryta w ::after */
.ast-above-header-bar .ast-header-widget-area,
.ast-above-header-bar .widget_icl_lang_sel_widget { display: flex; align-items: center; margin: 0; padding: 0; }
.ast-above-header-bar .wpml-ls { display: inline-flex; align-items: stretch; margin: 0; border: 1px solid #DCE5F0; border-radius: 999px; background: #fff; overflow: hidden; }
.ast-above-header-bar .wpml-ls ul { display: flex; align-items: stretch; margin: 0; padding: 0; list-style: none; }
.ast-above-header-bar .wpml-ls li { display: flex; align-items: stretch; margin: 0; }
.ast-above-header-bar .wpml-ls .wpml-ls-sub-menu { position: static; display: flex; opacity: 1; visibility: visible; border: 0; box-shadow: none; background: none; padding: 0; margin: 0; min-width: 0; }
.ast-above-header-bar .wpml-ls a { display: flex; align-items: center; padding: 5px 12px; border: 0; background: none; color: #4A5A6A; font-size: 0; line-height: 1; transition: background-color .15s, color .15s; }
.ast-above-header-bar .wpml-ls a.wpml-ls-item-toggle { padding: 5px 12px !important; } /* WPML dokłada 26px na strzałkę stylem ze stopki */
.ast-above-header-bar .wpml-ls a::before { font-size: 11px; font-weight: 700; letter-spacing: .6px; color: inherit; }
.ast-above-header-bar .wpml-ls-item-pl > a::before { content: "PL"; }
.ast-above-header-bar .wpml-ls-item-en > a::before { content: "EN"; }
.ast-above-header-bar .wpml-ls .wpml-ls-current-language > a,
.ast-above-header-bar .wpml-ls .wpml-ls-current-language > a:hover,
.ast-above-header-bar .wpml-ls .wpml-ls-current-language > a:focus { background: #074B88; color: #fff; }
.ast-above-header-bar .wpml-ls li:not(.wpml-ls-current-language) > a:hover,
.ast-above-header-bar .wpml-ls li:not(.wpml-ls-current-language) > a:focus { background: #EAF2FC; color: #074B88; }
.ast-above-header-bar .wpml-ls .wpml-ls-flag,
.ast-above-header-bar .wpml-ls .wpml-ls-bracket,
.ast-above-header-bar .wpml-ls .wpml-ls-item-toggle::after { display: none; }

/* 17.3 Mega menu — odstęp od paska, nagłówek kolumny jako etykieta */
#primary-site-navigation-desktop .astra-megamenu-li > .astra-megamenu.sub-menu { margin-top: 10px; }
/* mostek nad szczeliną — na pozycji menu, bo panel ma overflow: hidden i przycina własny pseudoelement */
#primary-site-navigation-desktop .astra-megamenu-li:hover::after,
#primary-site-navigation-desktop .astra-megamenu-li:focus-within::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 12px; z-index: 21; }
.astra-megamenu > .menu-item > .menu-link {
  pointer-events: none; cursor: default; background: none;
  font-size: 13px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase;
  color: #074B88; padding: 0 14px 10px;
}
.astra-megamenu > .menu-item > .menu-link:hover,
.astra-megamenu > .menu-item:hover > .menu-link { background: none; color: #074B88; }
.astra-megamenu > .menu-item.ll-mm-nolabel > .menu-link { display: none; }

/* 17.4 Pozycja w kolumnie — klikalny cały wiersz z opisem */
.ll-mm-item { margin: 0 0 4px; }
.ll-mm-item a { display: block; padding: 11px 14px; border-radius: 10px; text-decoration: none; transition: background-color .15s; }
.ll-mm-item a:hover, .ll-mm-item a:focus-visible { background: #F6F8FB; }
.ll-mm-item .ll-t { display: block; font-size: 15.5px; font-weight: 600; line-height: 1.35; color: #0B2440; margin: 0 0 3px; transition: color .15s; }
.ll-mm-item .ll-d { display: block; font-size: 13.5px; line-height: 1.5; color: #4A5A6A; font-weight: 400; }
.ll-mm-item a:hover .ll-t { color: #074B88; }

/* 17.5 Gradientowy panel i kafel analiz */
.ll-panel .ll-lbl { font-size: 11.5px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: #9EC6EA; margin: 0 0 8px; }
.ll-panel .ll-p-h { font-size: 18px; line-height: 1.32; font-weight: 700; color: #fff; margin: 0 0 8px; }
.ll-panel .ll-p-t { font-size: 13.5px; line-height: 1.55; color: #D6E7F7; margin: 0 0 18px; }
.ll-panel .ll-p-link { margin: 0; }
.ll-panel .ll-p-link a { color: #9EC6EA; font-size: 13.5px; font-weight: 600; text-decoration: none; transition: color .15s; }
.ll-panel .ll-p-link a:hover, .ll-panel .ll-p-link a:focus-visible { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.ll-panel .ll-art-p { margin: 0; }
.ll-panel .ll-art { display: block; padding: 11px 0; border-bottom: 1px solid rgba(255, 255, 255, .18); text-decoration: none; }
.ll-panel .ll-art-p:last-of-type .ll-art { border-bottom: 0; }
.ll-panel .ll-art .ll-art-k { display: block; font-size: 11px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: #9EC6EA; margin: 0 0 3px; }
.ll-panel .ll-art .ll-art-t { display: block; font-size: 14.5px; line-height: 1.4; font-weight: 600; color: #fff; transition: color .15s; }
.ll-panel .ll-art:hover .ll-art-t, .ll-panel .ll-art:focus-visible .ll-art-t { color: #9EC6EA; text-decoration: underline; text-underline-offset: 3px; }
.ll-panel .ll-btn-light .wp-block-button__link {
  background: #fff; background-image: none; color: #074B88; border: 0; border-radius: 8px;
  font-size: 14px; font-weight: 700; padding: 11px 16px;
  transition: background-color .15s, color .15s, box-shadow .15s;
}
.ll-panel .ll-btn-light .wp-block-button__link:hover,
.ll-panel .ll-btn-light .wp-block-button__link:focus-visible {
  background: #0B2440; background-image: none; color: #fff; box-shadow: 0 6px 16px rgba(7, 30, 61, .3);
}
.ll-alert { text-align: center; font-size: 13.5px; font-weight: 600; line-height: 1.5; color: #B3261E; margin: 16px 0 0; }
.ll-alert a { color: #074B88; text-decoration: none; }
.ll-alert a:hover, .ll-alert a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }

/* 17.6 Telefon — przycisk rozmowy i pozycje w arkuszu */
#ast-hf-mobile-menu > li.ll-mobile-cta > a.menu-link {
  display: flex; align-items: center; justify-content: center; text-align: center;
  background: #0B5F9B; color: #fff; border-radius: 8px; min-height: 48px;
  padding: 14px 20px; font-weight: 600;
}
#ast-hf-mobile-menu > li.ll-mobile-cta > a.menu-link .menu-text { color: #fff; }
#ast-hf-mobile-menu > li.ll-mobile-cta > a.menu-link .ast-icon { display: none; }
.ast-header-break-point .astra-megamenu.sub-menu { margin-top: 0; }
.ast-header-break-point .ll-mm-item { margin: 0; }
.ast-header-break-point .ll-mm-item a { padding: 12px 20px; border-radius: 0; }
.ast-header-break-point .ll-mm-item .ll-t { font-size: 15px; }
.ast-header-break-point .ll-mm-item .ll-d { font-size: 13px; }
.ast-header-break-point .ast-mm-custom-content { padding: 4px 0 12px; }

/* 17.7 Znak w przyklejonym pasku */
.ast-primary-sticky-header-active .ast-primary-header-bar .custom-logo,
.ast-sticky-shrunk .ast-primary-header-bar .custom-logo,
#ast-fixed-header .custom-logo {
  display: block !important; visibility: visible !important; opacity: 1 !important;
  height: 34px !important; width: auto !important; max-width: none !important;
}

/* 17.8 Dostępność */
@media (prefers-reduced-motion: reduce) {
  #primary-site-navigation-desktop .ast-nav-menu > li > .menu-link::after,
  .ll-mm-item a, .ll-mm-item .ll-t,
  .ast-above-header-bar .wpml-ls a,
  .ll-panel .ll-art .ll-art-t, .ll-panel .ll-p-link a,
  .ll-panel .ll-btn-light .wp-block-button__link { transition: none; }
}
@media (forced-colors: active) {
  #primary-site-navigation-desktop .ast-nav-menu > li:hover > .menu-link::after { background: CanvasText; }
  .ast-above-header-bar .wpml-ls-current-language > a { background: Highlight; color: HighlightText; }
  .ll-mm-item a:hover { background: Highlight; }
}

/* ==========================================================================
   18. LL-PRZYCISKI-2026-08-21 — gradient marki na przyciskach głównych
   Gradient dostają tylko przyciski w barwach marki (#074B88 / #0B5F9B)
   oraz te bez własnego tła. Białe i obrysowane zostają bez zmian.
   ========================================================================== */
.ast-custom-button,
.ast-button,
input[type="submit"],
.wpforms-submit,
.wp-block-button__link:not(.has-background),
.wp-block-button__link[style*="background-color:#0B5F9B"],
.wp-block-button__link[style*="background-color:#074B88"],
.wp-block-button__link[style*="background-color: #0B5F9B"],
.wp-block-button__link[style*="background-color: #074B88"],
.wp-block-button__link[style*="background-color:#0b5f9b"],
.wp-block-button__link[style*="background-color:#074b88"] {
  background-image: linear-gradient(135deg, #074B88, #0B5F9B);
  border: 0;
  transition: background-image .15s, box-shadow .15s;
}
.ast-custom-button:hover,
.ast-button:hover,
input[type="submit"]:hover,
.wpforms-submit:hover,
.wp-block-button__link:not(.has-background):hover,
.wp-block-button__link:not(.has-background):focus-visible,
.wp-block-button__link[style*="background-color:#0B5F9B"]:hover,
.wp-block-button__link[style*="background-color:#074B88"]:hover,
.wp-block-button__link[style*="background-color: #0B5F9B"]:hover,
.wp-block-button__link[style*="background-color: #074B88"]:hover,
.wp-block-button__link[style*="background-color:#0b5f9b"]:hover,
.wp-block-button__link[style*="background-color:#074b88"]:hover {
  background-image: linear-gradient(135deg, #063B6E, #0A5488);
  box-shadow: 0 6px 16px rgba(7, 75, 136, .28);
}
.is-style-outline .wp-block-button__link { background-image: none; }
@media (prefers-reduced-motion: reduce) {
  .ast-custom-button, .wp-block-button__link, .ast-button, input[type="submit"], .wpforms-submit { transition: none; }
}
