/* Top bar navigation — overrides legacy left drawer (app.min.css) */

/* Accessible visually-hidden helper (keeps content for SEO/screen readers) */
.visually-hidden {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

body > .sygnet {
	display: none !important;
}

/* ============================================================
   404 page — full-bleed photo with dark overlay + footer at bottom
   ============================================================ */
body.-404 {
	display: flex;
	flex-direction: column;
	min-height: 100dvh;
	box-sizing: border-box;
}
body.-404 > footer.contact {
	flex-shrink: 0;
	margin-top: auto;
}
.error-404 {
	position: relative;
	display: flex;
	flex: 1 1 auto;
	align-items: center;
	justify-content: center;
	min-height: 18rem;
	padding: 2.5rem 1.25rem;
	overflow: hidden;
	color: #fff;
	text-align: center;
}
.error-404__media {
	position: absolute;
	inset: 0;
	z-index: 0;
}
.error-404__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 42%;
}
.error-404__overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(
			180deg,
			rgba(0, 0, 0, 0.55) 0%,
			rgba(0, 0, 0, 0.78) 42%,
			rgba(0, 0, 0, 0.9) 100%
		),
		radial-gradient(ellipse at center, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.85) 78%);
}
.error-404__content {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 36rem;
	margin: 0 auto;
}
.error-404__code {
	margin: 0 0 0.5rem;
	font-size: clamp(3rem, 12vw, 5.5rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.03em;
	color: #f8cb19;
}
.error-404__title {
	margin: 0 0 1rem;
	font-size: clamp(1.5rem, 4vw, 2.25rem);
	font-weight: 700;
	line-height: 1.2;
	color: #fff;
}
.error-404__desc {
	margin: 0 0 1.75rem;
	font-size: 1.05rem;
	line-height: 1.65;
	color: rgba(255, 255, 255, 0.82);
}
.error-404__btn {
	display: inline-block;
	padding: 0.85rem 1.85rem;
	font: inherit;
	font-size: 0.95rem;
	font-weight: 600;
	color: #000;
	text-decoration: none;
	background: #f8cb19;
	border-radius: 8px;
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
	transition: opacity 0.2s ease, transform 0.2s ease;
}
.error-404__btn:hover {
	opacity: 0.92;
	transform: translateY(-1px);
}

/* ============================================================
   Home hero — 3 static tiles + contact link.
   Teaser text is always visible between title and “learn more”.
   ============================================================ */

.home-hero {
	margin: 1.875rem 0;
}
.home-cols {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.home-tile {
	position: relative;
	overflow: hidden;
	border-radius: 10px;
	background-color: #fff;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
	isolation: isolate;
}
a.home-tile {
	display: flex;
	flex-direction: column;
	color: inherit;
	text-decoration: none;
	cursor: pointer;
}
a.home-tile:focus-visible {
	outline: 2px solid #f8cb19;
	outline-offset: 2px;
}
.home-tile.-white {
	background-color: #a8adb2;
}
.home-tile.-yellow {
	background-color: #f8cb19;
}
.home-tile.-black {
	background-color: #000;
}
.home-tile.-contact {
	background-color: #e0e0e0;
}

.home-tile__media-wrap {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 45%;
	overflow: hidden;
	z-index: 0;
	isolation: isolate;
	contain: paint;
	-webkit-mask-image: linear-gradient(to right, transparent, #000 35%);
	mask-image: linear-gradient(to right, transparent, #000 35%);
}
.home-tile__media {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	opacity: 0.35;
	transform: scale(1);
	transform-origin: center center;
	transition: transform 0.45s ease;
	pointer-events: none;
}
a.home-tile:hover .home-tile__media,
a.home-tile:focus-visible .home-tile__media {
	transform: scale(1.1);
}
@media (prefers-reduced-motion: reduce) {
	a.home-tile:hover .home-tile__media,
	a.home-tile:focus-visible .home-tile__media {
		transform: none;
	}
}

body.-home .home-tile,
body.-home .banner-contact .bottom-text {
	opacity: 1 !important;
	visibility: visible !important;
}
/* Zoom only inside .home-tile__media-wrap — do not reset transforms on tile children */
body.-home .home-tile {
	transform: none !important;
}

/* Quick contact strip below home hero — equal top/bottom spacing */
section.section.home > .row .banner-contact {
	margin-top: 2.5rem !important;
	padding-top: 2.5rem;
	padding-bottom: 2.5rem;
}

section.section.home > .row .banner-contact .banner-contact-container {
	padding-bottom: 0 !important;
}

section.section.home > .row {
	padding-bottom: 0 !important;
}

section.section.home + section.home-seo {
	padding: 2.5rem 0;
}

.home-tile__body {
	position: relative;
	z-index: 2;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.85rem;
	padding: 1.5rem;
	color: #000;
}
.home-tile.-black .home-tile__body {
	color: #fff;
}
.home-tile__body .banner-numbers {
	margin: 0;
}
.home-tile__title {
	margin: 0;
	font-size: 1.375rem;
	font-weight: 600;
	line-height: 1.2;
	color: inherit;
}
.home-tile__teaser {
	margin: 0;
	max-width: 36rem;
	font-size: 0.95rem;
	line-height: 1.6;
	opacity: 0.92;
}
.home-tile__more {
	display: inline-block;
	margin-top: 0.25rem;
	text-transform: uppercase;
	font-size: 0.6875rem;
	font-weight: 300;
	letter-spacing: 0.05em;
	color: inherit;
	text-decoration: none;
	position: relative;
	padding-bottom: 0.4rem;
}
.home-tile__more::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	height: 1px;
	width: 3rem;
	background: currentColor;
	transition: width 0.3s ease;
}
.home-tile__more:hover::after,
a.home-tile:hover .home-tile__more::after,
a.home-tile:focus-visible .home-tile__more::after {
	width: 100%;
}

/* Contact tile (04) — hidden on tablet/desktop; banner-contact strip used instead */
a.home-tile.-contact-link {
	color: #000;
}

/* SEO body copy below the home hero */
.home-seo {
	padding: 3.5rem 0;
	background: linear-gradient(180deg, #eceef0 0%, #f7f8f9 45%, #fff 100%);
	border-top: 1px solid #e3e6ea;
}
.home-seo__wrap {
	width: 100%;
	max-width: 80rem;
	margin-left: auto;
	margin-right: auto;
	padding: 0 1.25rem;
}
.home-seo__card {
	position: relative;
	display: grid;
	grid-template-columns: 0.35rem 1fr;
	background: #fff;
	border: 1px solid #e8ebef;
	border-radius: 14px;
	box-shadow:
		0 1px 2px rgba(0, 0, 0, 0.04),
		0 18px 40px -24px rgba(0, 0, 0, 0.18);
	overflow: hidden;
}
.home-seo__accent {
	background: linear-gradient(180deg, #f8cb19 0%, #e5b800 100%);
}
.home-seo__content {
	padding: 2rem 1.75rem;
}
.home-seo__title {
	margin: 0 0 1.5rem;
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.01em;
	color: #111;
}
.home-seo__body {
	font-size: 1.02rem;
	line-height: 1.75;
	color: #2a2a2a;
}
.home-seo__body > :first-child {
	margin-top: 0;
}
.home-seo__body p {
	margin: 0 0 1.15rem;
}
.home-seo__lead {
	font-size: 1.08rem;
	line-height: 1.7;
}
.home-seo__body h2 {
	margin: 2rem 0 0.85rem;
	padding-top: 1.5rem;
	border-top: 1px solid #ececec;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.35;
	color: #111;
}
.home-seo__body h2:first-child {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}
.home-seo__link {
	font-weight: 600;
	color: #111;
	text-decoration: underline;
	text-decoration-color: #f8cb19;
	text-underline-offset: 0.15em;
	text-decoration-thickness: 2px;
}
.home-seo__link:hover {
	color: #000;
	text-decoration-color: #e5b800;
}
.home-seo__body p:last-child {
	margin-bottom: 0;
}

@media only screen and (min-width: 46.063em) {
	.home-seo {
		padding: 4.5rem 0;
	}
	section.section.home + section.home-seo {
		padding: 2.5rem 0;
	}
	.home-seo__card {
		grid-template-columns: 0.45rem 1fr;
	}
	.home-seo__content {
		padding: 2.75rem 3rem;
	}
	.home-seo__title {
		margin-bottom: 1.75rem;
	}
	.home-seo__body {
		font-size: 1.0625rem;
		max-width: none;
	}
}

/* Mobile: stacked cards (≤719px) */
@media only screen and (max-width: 44.9375em) {
	section.section.home {
		height: auto !important;
		min-height: 0 !important;
		overflow-x: clip;
	}

	section.section.home > .row {
		height: auto !important;
		min-height: 0 !important;
		display: block !important;
		padding-left: 0.9375rem !important;
		padding-right: 0.9375rem !important;
	}

	.home-hero {
		margin: 0.75rem 0 0;
	}

	.home-cols {
		gap: 0.65rem;
	}

	a.home-tile {
		display: grid;
		grid-template-columns: minmax(0, 58%) minmax(0, 42%);
		grid-template-rows: minmax(10.5rem, auto);
		align-items: stretch;
		min-height: 10.5rem;
	}

	.home-tile__media-wrap {
		position: relative;
		top: auto;
		right: auto;
		bottom: auto;
		grid-column: 2;
		grid-row: 1;
		width: 100%;
		height: 100%;
		min-height: 10.5rem;
		-webkit-mask-image: linear-gradient(to right, transparent, #000 30%);
		mask-image: linear-gradient(to right, transparent, #000 30%);
	}

	.home-tile__body {
		grid-column: 1;
		grid-row: 1;
		z-index: 2;
		align-self: end;
		width: 100%;
		min-width: 0;
		min-height: 10.5rem;
		padding: 1rem 0.75rem 1rem 1rem;
		gap: 0.45rem;
		justify-content: flex-end;
	}

	.home-tile__body .banner-numbers {
		font-size: 1.125rem;
		line-height: 1;
	}

	.home-tile__title {
		font-size: clamp(1rem, 4.6vw, 1.25rem);
		line-height: 1.22;
		max-width: 100%;
		overflow-wrap: anywhere;
	}

	.home-tile__more {
		font-size: 0.625rem;
		margin-top: 0.15rem;
	}

	.home-tile.-contact .home-tile__body {
		background: #e0e0e0;
	}

	section.section.home > .row .banner-contact {
		display: none !important;
	}
}

/* Very narrow phones */
@media only screen and (max-width: 23.4375em) {
	a.home-tile {
		grid-template-columns: minmax(0, 62%) minmax(0, 38%);
	}

	.home-tile__body {
		padding: 0.85rem 0.65rem 0.85rem 0.85rem;
	}

	.home-tile__title {
		font-size: 1rem;
	}
}

/* ===================== TABLET / SMALL DESKTOP: 3 columns, miniature layout (720px–1199px) ===================== */
@media only screen and (min-width: 45em) and (max-width: 74.9375em) {
	section.section.home {
		height: auto !important;
		min-height: 0 !important;
	}

	section.section.home > .row {
		height: auto;
		display: flex;
		flex-direction: column;
		padding-bottom: 0 !important;
	}

	.home-hero {
		margin: 1rem 0 0;
	}

	.home-cols {
		display: flex;
		flex-direction: row;
		align-items: stretch;
		gap: 0.5rem;
		height: clamp(13.5rem, 38vh, 20rem);
		min-height: 13.5rem;
		max-height: none;
	}

	.home-tile {
		flex: 1 1 0;
		min-width: 0;
		min-height: 0;
		display: flex;
		flex-direction: column;
		border-radius: 0;
		box-shadow: none;
		overflow: hidden;
	}

	.home-tile__media-wrap {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		-webkit-mask-image: none;
		mask-image: none;
	}

	.home-tile__media {
		opacity: 1;
	}

	.home-tile.-yellow .home-tile__media {
		object-fit: contain;
		object-position: center;
	}

	.home-tile__body {
		position: absolute;
		left: 0;
		bottom: 0;
		z-index: 2;
		justify-content: flex-end;
		width: 88%;
		height: auto;
		gap: 0.35rem;
		padding: 0.7rem 0.75rem 0.65rem;
	}

	.home-tile.-white .home-tile__body {
		background: #fff;
	}

	.home-tile.-yellow .home-tile__body {
		background: #f8cb19;
	}

	.home-tile.-black .home-tile__body {
		background: #000;
	}

	.home-tile__body .banner-numbers {
		font-size: clamp(0.8rem, 1.4vw, 1.1rem);
		line-height: 1;
	}

	.home-tile__title {
		font-size: clamp(0.68rem, 1.55vw, 0.95rem);
		line-height: 1.2;
		overflow-wrap: break-word;
	}

	.home-tile__teaser {
		font-size: clamp(0.55rem, 1.1vw, 0.75rem);
		line-height: 1.4;
		max-width: none;
	}

	.home-tile__more {
		font-size: 0.5rem;
		margin-top: 0.2rem;
		letter-spacing: 0.04em;
	}

	a.home-tile.-contact-link {
		display: none;
	}

	section.section.home > .row .banner-contact {
		display: block !important;
	}
}

/* ===================== DESKTOP: 3-column hero (≥1200px) ===================== */
@media only screen and (min-width: 75em) {
	section.section.home {
		height: auto !important;
		min-height: calc(100vh - 4.25rem);
	}
	section.section.home > .row {
		height: auto;
		display: flex;
		flex-direction: column;
		padding-bottom: 0 !important;
	}

	.home-hero {
		margin: 1.5rem 0 0;
	}

	.home-cols {
		display: flex;
		flex-direction: row;
		align-items: stretch;
		gap: 0.75rem;
		height: calc(100vh - 4.25rem - 11rem);
		min-height: 24rem;
		max-height: calc(100dvh - 4.25rem - 8rem);
	}

	.home-tile {
		flex: 1 1 0;
		min-width: 0;
		min-height: 0;
		display: flex;
		flex-direction: column;
		border-radius: 0;
		box-shadow: none;
		overflow: hidden;
	}

	.home-tile__media-wrap {
		position: absolute;
		inset: 0;
		flex: none;
		width: 100%;
		height: 100%;
		min-height: 0;
		overflow: hidden;
		contain: paint;
		-webkit-mask-image: none;
		mask-image: none;
	}
	.home-tile__media {
		opacity: 1;
	}
	.home-tile.-yellow .home-tile__media {
		object-fit: contain;
		object-position: center;
	}

	.home-tile__body {
		position: absolute;
		left: 0;
		bottom: 0;
		z-index: 2;
		flex: none;
		justify-content: flex-end;
		width: 45%;
		height: 100%;
		gap: 1rem;
		padding: 1.875rem 2.5rem 1.75rem;
	}
	.home-tile.-white .home-tile__body {
		background: #fff;
	}
	.home-tile.-yellow .home-tile__body {
		background: #f8cb19;
	}
	.home-tile.-black .home-tile__body {
		background: #000;
	}

	.home-tile__body .banner-numbers {
		font-size: 1.75rem;
	}
	.home-tile__title {
		font-size: clamp(1.125rem, 1.6vw, 1.875rem);
		line-height: 1.15;
		overflow-wrap: break-word;
	}
	.home-tile__teaser {
		font-size: 1rem;
		line-height: 1.55;
		max-width: none;
	}
	.home-tile__more {
		font-size: 0.75rem;
		margin-top: 0.5rem;
	}

	a.home-tile.-contact-link {
		display: none;
	}

	@media only screen and (min-width: 75em) {
		.home-tile__body {
			width: 90%;
			height: auto;
			padding: 2.5rem 2.5rem 2rem;
		}
		.home-tile__title {
			font-size: clamp(1.5rem, 2vw, 2.25rem);
		}
	}

	@media only screen and (min-width: 90.063em) {
		.home-tile__body {
			width: 80%;
		}
	}
}

.site-topbar.main-header,
.site-topbar.main-header.-hidden {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 110;
	width: 100%;
	background-color: #fff;
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.08);
	/* `none`, not translateY(0): any transform here would make the header the
	   containing block for the fixed nav panel, which broke its rendering. */
	transform: none !important;
}

body.-home .site-topbar.main-header,
body.-home header.main-header.-hidden {
	transform: none !important;
}

.site-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.75rem 0.9375rem !important;
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
}

@media only screen and (min-width: 46.063em) {
	.site-topbar__inner {
		padding-left: 2.5rem !important;
		padding-right: 2.5rem !important;
	}
}

@media only screen and (min-width: 75em) {
	.site-topbar__inner {
		padding-left: 7.5rem !important;
		padding-right: 7.5rem !important;
	}
}

.site-topbar__logo {
	flex-shrink: 0;
}

.site-topbar__logo img {
	display: block;
	height: 2.25rem;
	width: auto;
}

.site-topbar__lang {
	display: block !important;
	position: static !important;
	width: auto;
	padding: 0;
	flex-shrink: 0;
}

.site-topbar__lang a {
	display: block;
	text-transform: uppercase;
	font-size: 0.875rem;
	font-weight: 600;
	padding: 0.35rem 0.5rem;
}

/* Reserve space for fixed header */
body {
	padding-top: 4.25rem;
}

body.-menu-open {
	overflow: hidden;
}

/* ——— Top nav: inline (one line) by default ——— */
.site-topbar__inner {
	flex-wrap: nowrap;
}

.site-topbar__toggle {
	display: none !important;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	cursor: pointer;
}

/* Hamburger icon — each .bar is one line built from two half spans. */
.site-topbar__toggle .bar {
	display: flex;
	width: 24px;
	height: 2px;
	pointer-events: none;
}

.site-topbar__toggle .bar {
	transition: transform 0.25s ease, opacity 0.2s ease;
	transform-origin: center;
}

.site-topbar__toggle .bar span {
	flex: 1 1 auto;
	height: 2px;
	background: #1a1a1a;
	border-radius: 2px;
}

/* Hamburger → X when the panel is open */
.site-topbar__toggle.-active .bar:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}
.site-topbar__toggle.-active .bar:nth-child(2) {
	opacity: 0;
}
.site-topbar__toggle.-active .bar:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

.site-topbar__nav {
	position: static !important;
	left: auto !important;
	top: auto !important;
	width: auto !important;
	height: auto !important;
	min-height: 0 !important;
	padding: 0 !important;
	margin: 0 1rem;
	flex: 1 1 auto;
	display: flex !important;
	justify-content: center;
	transform: none !important;
	visibility: visible !important;
	opacity: 1 !important;
	background: transparent !important;
	overflow: visible !important;
}

.site-topbar__list {
	display: flex !important;
	flex-direction: row !important;
	align-items: center;
	justify-content: center;
	flex-wrap: nowrap;
	gap: 0.25rem 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-topbar__list .site-topbar__item {
	opacity: 1 !important;
	visibility: visible !important;
	transform: none !important;
	margin: 0;
	padding: 0;
}

.site-topbar__num {
	display: none;
}

/* Force dark link colour: the legacy theme paints header links white on the
   home page, which made the white slide-in panel look like a blank page. */
.site-topbar__list a,
.site-topbar__lang a {
	color: #111 !important;
}

.site-topbar__list a {
	font-size: 0.9375rem;
	font-weight: 400;
	text-transform: none;
	white-space: nowrap;
}

.site-topbar__num {
	color: #111;
}

.site-topbar__list .-active a {
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

/* ——— Collapsed: hamburger + slide-in panel ———
   Triggered by JS (.-nav-collapsed) when the inline menu would not fit on a
   single line, plus a no-JS fallback and a small-screen media query below. */
.main-header.-nav-collapsed .site-topbar__toggle,
html.no-js .site-topbar__toggle {
	display: flex !important;
	position: static !important;
	right: auto !important;
	top: auto !important;
	flex-shrink: 0;
	order: 3;
}

.main-header.-nav-collapsed .site-topbar__lang,
html.no-js .site-topbar__lang {
	order: 2;
}

.main-header.-nav-collapsed .site-topbar__nav,
html.no-js .site-topbar__nav {
	position: fixed !important;
	top: 4.25rem;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	height: calc(100vh - 4.25rem) !important;
	min-height: 0 !important;
	padding: 2rem 1.5rem !important;
	margin: 0 !important;
	flex: 0 0 auto !important;
	justify-content: flex-start !important;
	background: #fff !important;
	transform: translateX(-100%) !important;
	transition: transform 0.4s ease !important;
	overflow-y: auto;
	z-index: 105;
}

/* The slide-in panel is opened solely via our own body.-nav-open class, so the
   legacy bundle toggling `-active` on .main-menu can't fight it. */
body.-nav-open .site-topbar__nav {
	transform: translateX(0) !important;
}

.main-header.-nav-collapsed .site-topbar__list,
html.no-js .site-topbar__list {
	display: block !important;
}

.main-header.-nav-collapsed .site-topbar__item,
	html.no-js .site-topbar__list .site-topbar__item {
		display: flex;
		flex-direction: row;
		align-items: baseline;
		justify-content: flex-start;
		gap: 1rem;
		margin-bottom: 1.25rem;
	}

.main-header.-nav-collapsed .site-topbar__num,
html.no-js .site-topbar__num {
	display: block;
	flex: 0 0 auto;
	margin: 0 1.875rem 0 0;
	font-size: 0.75rem;
	font-weight: 300;
	opacity: 0.5;
}

.main-header.-nav-collapsed .site-topbar__list a,
html.no-js .site-topbar__list a {
	flex: 1 1 auto;
	font-size: 1.25rem;
	font-weight: 400;
	white-space: normal;
}

.main-header.-nav-collapsed .site-topbar__list .-active a,
html.no-js .site-topbar__list .-active a {
	font-weight: 600;
}

/* Below 1050px the inline menu no longer fits — always show the hamburger.
   (JS may also collapse earlier on very long labels via .-nav-collapsed.) */
@media only screen and (max-width: 65.625em) {
	.site-topbar__toggle {
		display: flex !important;
		position: static !important;
		order: 3;
		flex-shrink: 0;
	}

	.site-topbar__lang {
		order: 2;
	}

	.site-topbar__nav {
		position: fixed !important;
		top: 4.25rem;
		left: 0 !important;
		right: 0 !important;
		width: 100% !important;
		height: calc(100vh - 4.25rem) !important;
		padding: 2rem 1.5rem !important;
		margin: 0 !important;
		flex: 0 0 auto !important;
		justify-content: flex-start !important;
		background: #fff !important;
		transform: translateX(-100%) !important;
		transition: transform 0.4s ease !important;
		overflow-y: auto;
		z-index: 105;
	}

	body.-nav-open .site-topbar__nav {
		transform: translateX(0) !important;
	}

	.site-topbar__list {
		display: block !important;
	}

	.site-topbar__list .site-topbar__item {
		display: flex;
		flex-direction: row;
		align-items: baseline;
		justify-content: flex-start;
		gap: 1rem;
		margin-bottom: 1.25rem;
	}

	.site-topbar__num {
		display: block;
		flex: 0 0 auto;
		margin: 0 1.875rem 0 0;
		font-size: 0.75rem;
		font-weight: 300;
		opacity: 0.5;
	}

	.site-topbar__list a {
		flex: 1 1 auto;
		font-size: 1.25rem;
		white-space: normal;
	}
}

/* ============================================================
   News / Aktualności (list + article)
   ============================================================ */
.news-section,
.news-article {
	padding: 3rem 0 4.5rem;
}
.news-section .row,
.news-article .row {
	max-width: 72rem;
	margin: 0 auto;
	padding: 0 1.25rem;
}

.news-head {
	margin-bottom: 2.5rem;
}
.news-head .big-title {
	margin: 0 0 0.75rem;
}
.news-head__desc {
	margin: 0;
	max-width: 60ch;
	font-size: 1.05rem;
	line-height: 1.6;
	opacity: 0.8;
}
.news-empty {
	font-size: 1.05rem;
	opacity: 0.7;
}

.news-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
	gap: 1.5rem;
}
.news-card {
	margin: 0;
}
.news-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 12px;
	overflow: hidden;
	color: #000;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.news-card__link:hover {
	transform: translateY(-3px);
	box-shadow: 0 16px 30px -16px rgba(0, 0, 0, 0.35);
}
.news-card__cover {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	background-size: cover;
	background-position: center;
}
.news-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	padding: 1.5rem;
	flex: 1 1 auto;
}
.news-card__date {
	font-size: 0.8125rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	opacity: 0.6;
}
.news-card__title {
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.3;
}
.news-card__desc {
	font-size: 0.95rem;
	line-height: 1.6;
	opacity: 0.8;
}
.news-card__more {
	margin-top: auto;
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #000;
	position: relative;
	padding-bottom: 0.35rem;
}
.news-card__more::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	height: 2px;
	width: 2.5rem;
	background: #f8cb19;
	transition: width 0.25s ease;
}
.news-card__link:hover .news-card__more::after {
	width: 100%;
}

/* Article */
.news-article .row {
	max-width: 48rem;
}
.news-back {
	display: inline-block;
	margin-bottom: 1.75rem;
	font-size: 0.875rem;
	font-weight: 600;
	color: #000;
}
.news-back::before {
	content: "\2190";
	margin-right: 0.4rem;
}
.news-article__date {
	display: block;
	font-size: 0.8125rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	opacity: 0.6;
	margin-bottom: 0.75rem;
}
.news-article__title {
	margin: 0 0 1.75rem;
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	line-height: 1.15;
}
.news-article__cover {
	width: 100%;
	aspect-ratio: 16 / 9;
	background-size: cover;
	background-position: center;
	border-radius: 12px;
	margin-bottom: 2rem;
}
.news-article__body {
	font-size: 1.05rem;
	line-height: 1.7;
}
.news-article__body h2 {
	margin: 2rem 0 0.75rem;
	font-size: 1.5rem;
}
.news-article__body p {
	margin: 0 0 1.25rem;
}
.news-article__body ul {
	margin: 0 0 1.25rem 1.25rem;
}
.news-article__body li {
	margin-bottom: 0.5rem;
}
.news-article__body a {
	color: #000;
	text-decoration: underline;
	text-decoration-color: #f8cb19;
	text-underline-offset: 3px;
}

/* ============================================================
   Cookie consent banner
   ============================================================ */
.cookie-banner {
	position: fixed;
	inset: 0;
	z-index: 1050;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	opacity: 0;
	transition: opacity 0.3s ease;
}
.cookie-banner[hidden] {
	display: none;
}
.cookie-banner.-visible {
	opacity: 1;
}
.cookie-banner__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.55);
}
.cookie-banner__panel {
	position: relative;
	width: min(40rem, 100%);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 1.5rem;
	padding: 1.4rem 1.6rem;
	background: #111;
	color: #fff;
	border-radius: 12px;
	box-shadow: 0 24px 60px -20px rgba(0, 0, 0, 0.8);
	transform: translateY(12px) scale(0.98);
	transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
.cookie-banner.-visible .cookie-banner__panel {
	transform: none;
}
.cookie-banner__panel:focus {
	outline: none;
}
.cookie-banner__text {
	margin: 0;
	flex: 1 1 100%;
	font-size: 0.9rem;
	line-height: 1.55;
}
.cookie-banner__text a {
	color: #f8cb19;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.cookie-banner__actions {
	display: flex;
	flex-wrap: wrap;
	/* Spacing via gap, never a margin on one button: a margin on a single
	   button narrows it against its neighbour by a few pixels. */
	gap: 0.75rem;
	flex: 1 1 100%;
}
.cookie-banner__actions .cookie-banner__btn {
	flex: 1 1 auto;
	margin: 0;
}
.cookie-banner__btn {
	cursor: pointer;
	border: 0;
	border-radius: 8px;
	padding: 0.65rem 1.4rem;
	font-size: 0.85rem;
	font-weight: 600;
	transition: opacity 0.2s ease, background-color 0.2s ease;
}
.cookie-banner__btn.-accept {
	background: #f8cb19;
	color: #111;
}
.cookie-banner__btn.-reject {
	background: transparent;
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.4);
}
.cookie-banner__btn:hover {
	opacity: 0.85;
}

/* ============================================================
   Hubs (Usługi / Wiedza) + article templates
   ============================================================ */
.hub-section {
	padding: 3rem 0 4.5rem;
}
section.section.hub-section > .article-layout-outer {
	padding: 0 1.25rem;
}

.hub-prose {
	font-size: 1.02rem;
	line-height: 1.75;
	color: #2a2a2a;
}
.hub-prose > :first-child {
	margin-top: 0;
}
.hub-prose p {
	margin: 0 0 1.15rem;
}
.hub-prose__lead {
	font-size: 1.08rem;
	line-height: 1.7;
}
.hub-prose h2 {
	margin: 0 0 0.85rem;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.35;
	color: #111;
}
.hub-prose__link {
	font-weight: 600;
	color: #111;
	text-decoration: underline;
	text-decoration-color: #f8cb19;
	text-underline-offset: 0.15em;
	text-decoration-thickness: 2px;
}
.hub-prose__link:hover {
	color: #000;
	text-decoration-color: #e5b800;
}
.hub-prose p:last-child {
	margin-bottom: 0;
}
.hub-prose--top {
	margin-bottom: 2.5rem;
}
.hub-prose--bottom {
	margin-top: 2.75rem;
	padding-top: 2rem;
	border-top: 1px solid #ececec;
}
.hub-prose--bottom h2 {
	margin-top: 0;
}

/* Hub hero — same full-viewport banner pattern as pages 01–03 */
section.section.banner.hub-banner .title-container h1.span {
	margin: 0;
}

/* Subtle breadcrumb strip above full-viewport banners */
section.section.page-breadcrumb-bar {
	margin: 0 !important;
	padding: 20px 0 0.85rem;
	background: #f5f6f7;
	border-bottom: 1px solid #ececec;
}
.page-breadcrumb-bar + section.section.banner {
	margin-top: 0 !important;
}
.page-breadcrumb-bar .row {
	max-width: 72rem;
	margin: 0 auto;
	padding: 0 1.25rem;
}
.page-breadcrumb-bar .breadcrumbs {
	margin: 0 auto;
}
.page-breadcrumb-bar .breadcrumbs__link,
.page-breadcrumb-bar .breadcrumbs__current {
	color: #6b7280;
	font-size: 0.8125rem;
	font-weight: 400;
	opacity: 1;
}
.page-breadcrumb-bar .breadcrumbs__current {
	color: #4b5563;
	font-weight: 500;
}

.hub-groups--split {
	display: flex;
	flex-direction: column;
	gap: 3.5rem;
}
.hub-group__title {
	margin: 0 0 1.25rem;
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.3;
	color: #111;
}
.hub-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}
@media only screen and (min-width: 40em) {
	.hub-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media only screen and (min-width: 64em) {
	.hub-list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
@media only screen and (min-width: 80em) {
	.hub-list {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 1rem;
	}
}
.hub-card {
	margin: 0;
}
.hub-card__link {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	height: 100%;
	min-height: 12.5rem;
	padding: 1.35rem 1.25rem;
	background: #fff;
	border: 1px solid #ececec;
	border-left: 4px solid #f8cb19;
	border-radius: 10px;
	color: #000;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.hub-card__link:hover {
	transform: translateY(-3px);
	box-shadow: 0 16px 30px -16px rgba(0, 0, 0, 0.35);
}
.hub-card--inactive .hub-card__link {
	cursor: default;
	color: #6b7280;
	background: #f7f7f7;
	border-color: #e8e8e8;
	border-left-color: #c5b86a;
	box-shadow: none;
}
.hub-card--inactive .hub-card__link:hover {
	transform: none;
	box-shadow: none;
}
.hub-card--inactive .hub-card__title {
	color: #6b7280;
}
.hub-card__title {
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1.3;
}
.hub-card__lead {
	font-size: 0.875rem;
	line-height: 1.5;
	opacity: 0.75;
}
.hub-card__more {
	margin-top: auto;
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

/* Breadcrumbs */
.breadcrumbs {
	margin-bottom: 1.25rem;
	font-size: 0.8125rem;
	line-height: 1.4;
	text-align: center;
}
.breadcrumbs__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: inherit;
	line-height: inherit;
}
.breadcrumbs__item {
	display: flex;
	align-items: center;
	max-width: 100%;
	font-size: inherit;
	line-height: inherit;
}
.breadcrumbs__item + .breadcrumbs__item::before {
	content: '/';
	margin: 0 0.45rem;
	opacity: 0.45;
	flex-shrink: 0;
	font-size: inherit;
	font-weight: 400;
}
.breadcrumbs__link,
.breadcrumbs__current {
	font-size: inherit;
	line-height: inherit;
	font-weight: 400;
	text-transform: none;
	letter-spacing: normal;
}
.breadcrumbs__link {
	color: #000;
	text-decoration: none;
	opacity: 0.75;
}
.breadcrumbs__link:hover {
	text-decoration: underline;
	opacity: 1;
}
.breadcrumbs__current {
	font-weight: 500;
	color: #000;
	opacity: 0.9;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 28ch;
}
.article-hero .breadcrumbs__link,
.article-hero .breadcrumbs__current {
	font-size: 0.8125rem;
	font-weight: 400;
}
.article-hero .breadcrumbs__current {
	font-weight: 500;
}
@media only screen and (max-width: 55.99em) {
	.breadcrumbs__current {
		white-space: normal;
		max-width: none;
	}
}

/* Article hero (services + knowledge) */
.article-hero {
	position: relative;
	overflow: hidden;
	padding: 2.5rem 0 1.5rem;
	background: #f5f6f7;
	border-bottom: 1px solid #ececec;
}
/* Legacy app.min: section.section { margin-bottom: 5–9.375rem } — kills hero → content gap */
section.section.article-hero {
	margin-bottom: 0;
}
/* Override legacy `section.section > .row { padding: 0 7.5rem }` on desktop */
section.section.article-hero > .row,
section.section.article-section > .row {
	max-width: 80rem;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.25rem !important;
	padding-right: 1.25rem !important;
}
.article-hero .article-layout-outer,
.article-section .article-layout-outer {
	padding-top: 0;
	padding-bottom: 0;
}
.article-hero__inner {
	position: relative;
	z-index: 1;
}
.article-hero--has-image {
	background: #1a1a1a;
}
.article-hero__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}
.article-hero__bg img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 42%;
}
.article-hero__overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(
			105deg,
			rgba(245, 246, 247, 0.94) 0%,
			rgba(245, 246, 247, 0.82) 42%,
			rgba(0, 0, 0, 0.55) 100%
		),
		linear-gradient(180deg, rgba(0, 0, 0, 0.15) 0%, rgba(0, 0, 0, 0.45) 100%);
}
.article-hero--has-image .article-hero__title,
.article-hero--has-image .article-hero__lead,
.article-hero--has-image .breadcrumbs__link,
.article-hero--has-image .breadcrumbs__current {
	position: relative;
	z-index: 1;
}
.article-hero__title {
	margin: 0 0 0.75rem;
	font-size: clamp(1.9rem, 4vw, 2.75rem);
	line-height: 1.12;
}
.article-hero__lead {
	margin: 0;
	max-width: 60ch;
	font-size: 1.1rem;
	line-height: 1.6;
	opacity: 0.8;
}
/* Services: wider hero lead + optional cover image */
.article-hero--service .article-hero__lead {
	max-width: none;
}
.article-hero--service {
	padding-bottom: 0.75rem;
}

.article-section {
	padding: 2.75rem 0 4.5rem;
}
.article-section.article-section--service {
	padding-top: 1.375rem;
}
.article-section.article-section--service .article-body,
.article-section.article-section--service .prose {
	max-width: none;
	width: 100%;
}

/* Shared typography for rendered markdown */
.prose {
	font-size: 1.05rem;
	line-height: 1.75;
	color: #1a1a1a;
}
.article-section.-with-toc .prose {
	font-size: 1.0625rem;
}
.prose > :first-child {
	margin-top: 0;
}
.prose h2 {
	margin: 2.25rem 0 0.85rem;
	font-size: 1.6rem;
	line-height: 1.25;
	scroll-margin-top: calc(4.25rem + 20px);
}
.prose h3 {
	margin: 1.75rem 0 0.6rem;
	font-size: 1.25rem;
	scroll-margin-top: calc(4.25rem + 20px);
}
.prose p {
	margin: 0 0 1.2rem;
}
.prose ul,
.prose ol {
	margin: 0 0 1.2rem 1.25rem;
}
.prose li {
	margin-bottom: 0.5rem;
}
.prose a {
	color: #000;
	text-decoration: underline;
	text-decoration-color: #f8cb19;
	text-underline-offset: 3px;
}
.cms-split {
	display: grid;
	grid-template-columns: 1fr;
	grid-template-areas: "text" "media";
	gap: 1.25rem;
	margin: 1.75rem 0;
	align-items: center;
}
.cms-split__text {
	grid-area: text;
}
.cms-split__media {
	grid-area: media;
}
.cms-split__text > :first-child {
	margin-top: 0;
}
.cms-split__text > :last-child {
	margin-bottom: 0;
}
.cms-split__media img {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	border-radius: 6px;
}
.cms-split__media--empty {
	min-height: 16rem;
	background: #f4f4f5;
	border: 1px dashed #d4d4d8;
	border-radius: 6px;
}
@media (min-width: 48rem) {
	.cms-split {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		grid-template-areas: "text media";
		gap: 1.5rem 2rem;
	}
	.cms-split--image-left {
		grid-template-areas: "media text";
	}
}

.prose .cms-html {
	margin: 1.25rem 0;
}
.prose .cms-html > *:first-child {
	margin-top: 0;
}
.prose .cms-html > *:last-child {
	margin-bottom: 0;
}
.prose pre.cms-code {
	margin: 1.25rem 0;
	padding: 0.9rem 1.1rem;
	overflow: auto;
	background: #f4f4f4;
	border-radius: 6px;
	font-size: 0.9rem;
	line-height: 1.45;
}
.prose pre.cms-code code {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.prose strong {
	font-weight: 700;
}
.prose blockquote {
	position: relative;
	margin: 1.75rem 0;
	padding: 1.35rem 1.6rem 1.35rem 1.75rem;
	background: #fff;
	border: 1px solid #e8ebef;
	border-radius: 14px;
	box-shadow:
		0 1px 2px rgba(0, 0, 0, 0.04),
		0 18px 40px -24px rgba(0, 0, 0, 0.18);
	overflow: hidden;
	font-size: 1.02rem;
	line-height: 1.75;
	color: #2a2a2a;
}
.prose blockquote::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 0.35rem;
	background: linear-gradient(180deg, #f8cb19 0%, #e5b800 100%);
}
.prose blockquote p {
	margin: 0 0 1rem;
}
.prose blockquote p:last-child {
	margin-bottom: 0;
}
.prose blockquote > p:first-child > strong:only-child {
	display: block;
	margin: 0;
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.35;
	color: #111;
}
.prose blockquote a {
	font-weight: 600;
	color: #111;
	text-decoration: underline;
	text-decoration-color: #f8cb19;
	text-underline-offset: 0.15em;
	text-decoration-thickness: 2px;
}
.prose blockquote a:hover {
	color: #000;
	text-decoration-color: #e5b800;
}
.prose blockquote a::after {
	content: " →";
}
.cms-table-wrap {
	overflow-x: auto;
	margin: 1.25rem 0;
}
.cms-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95rem;
	line-height: 1.45;
}
.cms-table th,
.cms-table td {
	border: 1px solid #e4e4e7;
	padding: 0.7rem 0.9rem;
	text-align: left;
	vertical-align: top;
}
.cms-table th {
	background: #f4f4f5;
	font-weight: 700;
}
.cms-table tr:nth-child(even) td {
	background: #fafafa;
}

/* Article FAQ accordion (CMS field; hidden when empty) */
.article-faq {
	margin: 2.5rem 0 0;
}
.article-faq__title {
	margin: 0 0 1.15rem;
	font-size: 1.45rem;
	font-weight: 700;
	line-height: 1.3;
	color: #111;
}
.article-faq__list {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}
.article-faq__item {
	position: relative;
	background: #fff;
	border: 1px solid #e8ebef;
	border-radius: 14px;
	box-shadow:
		0 1px 2px rgba(0, 0, 0, 0.04),
		0 18px 40px -24px rgba(0, 0, 0, 0.18);
	overflow: hidden;
}
.article-faq__item::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 0.35rem;
	background: linear-gradient(180deg, #f8cb19 0%, #e5b800 100%);
}
.article-faq__item[open] {
	border-color: #f0d24a;
	box-shadow:
		0 1px 2px rgba(0, 0, 0, 0.04),
		0 18px 40px -20px rgba(0, 0, 0, 0.22);
}
.article-faq__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin: 0;
	padding: 1.05rem 1.15rem 1.05rem 1.7rem;
	cursor: pointer;
	list-style: none;
	font-size: 1.02rem;
	font-weight: 700;
	line-height: 1.4;
	color: #111;
}
.article-faq__q::-webkit-details-marker,
.article-faq__q::marker {
	display: none;
	content: "";
}
.article-faq__q-text {
	min-width: 0;
}
.article-faq__icon {
	position: relative;
	flex: 0 0 auto;
	width: 1.7rem;
	height: 1.7rem;
	border-radius: 50%;
	background: #f8cb19;
}
.article-faq__icon::before,
.article-faq__icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	background: #111;
	border-radius: 1px;
	transform: translate(-50%, -50%);
}
.article-faq__icon::before {
	width: 0.7rem;
	height: 2px;
}
.article-faq__icon::after {
	width: 2px;
	height: 0.7rem;
}
.article-faq__item[open] .article-faq__icon::after {
	display: none;
}
.article-faq__a {
	padding: 0 1.7rem 1.2rem 1.7rem;
	font-size: 0.98rem;
	line-height: 1.7;
	color: #2a2a2a;
}
.article-faq__a p {
	margin: 0 0 0.75rem;
}
.article-faq__a p:last-child {
	margin-bottom: 0;
}
.article-faq__a a {
	font-weight: 600;
	color: #111;
	text-decoration: underline;
	text-decoration-color: #f8cb19;
	text-underline-offset: 0.15em;
	text-decoration-thickness: 2px;
}
.article-faq__a a:hover {
	color: #000;
	text-decoration-color: #e5b800;
}

/* CTA box under a service article */
.article-cta {
	margin-top: 2.5rem;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 1.5rem;
	padding: 1.75rem 2rem;
	background: #000;
	color: #fff;
	border-radius: 12px;
}
.article-cta__title {
	margin: 0;
	font-size: 1.2rem;
	font-weight: 600;
}
.article-cta__btn {
	flex: 0 0 auto;
	background: #f8cb19;
	color: #000;
	font-weight: 600;
	padding: 0.75rem 1.6rem;
	border-radius: 8px;
	text-decoration: none;
	transition: opacity 0.2s ease;
}
.article-cta__btn:hover {
	opacity: 0.85;
}

/* Knowledge article: ToC + body in one 80rem column (matches footer contact CTA) */
.article-layout-outer {
	width: 100%;
	max-width: 80rem;
	margin-left: auto;
	margin-right: auto;
	padding: 0 1.25rem;
	overflow: visible;
}

.article-layout-inner {
	width: 100%;
	max-width: none;
	margin-left: 0;
	margin-right: 0;
	position: relative;
}

.article-section.-with-toc .article-layout-inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
	align-items: start;
}

.article-section.-with-toc .article-body {
	width: 100%;
	min-width: 0;
}

.article-toc-aside {
	margin: 0;
	min-width: 0;
}

.article-toc {
	margin: 0;
	width: 100%;
	max-width: none;
}

.article-toc__inner {
	padding: 1.1rem 1.25rem;
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 10px;
}

.article-toc__title {
	margin: 0 0 0.6rem;
	font-size: 0.8125rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-weight: 700;
	opacity: 0.6;
	text-align: left;
}

.article-toc nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.article-toc nav li {
	margin: 0;
}

.article-toc nav a {
	display: block;
	padding: 0.4rem 0;
	font-size: 0.9rem;
	line-height: 1.4;
	color: #000;
	text-decoration: none;
	border-left: 2px solid transparent;
	padding-left: 0.75rem;
	margin-left: -0.75rem;
	opacity: 0.7;
	transition: opacity 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.article-toc nav a:hover {
	opacity: 1;
}

.article-toc nav a.-active {
	opacity: 1;
	font-weight: 600;
	border-left-color: #f8cb19;
}

/* Tablet+: ToC left, article right — both inside 80rem */
@media only screen and (min-width: 48em) {
	.article-section.-with-toc .article-layout-inner {
		grid-template-columns: minmax(10.5rem, 13.5rem) minmax(0, 1fr);
		gap: 1.5rem 2rem;
	}

	.article-toc {
		position: sticky;
		top: calc(4.25rem + 20px);
		z-index: 2;
		max-height: calc(100vh - 4.25rem - 40px);
		max-height: calc(100dvh - 4.25rem - 40px);
		overflow-y: auto;
		overscroll-behavior: contain;
	}

	.article-toc__inner {
		max-height: none;
		overflow: visible;
	}
}

/* Contact page — form + map above black footer */
.contact-form-section {
	padding: 3rem 0;
	background: #fff;
}
section.section.banner.-contact {
	margin-bottom: 0 !important;
}
.contact-form-section .row {
	max-width: 80rem;
	margin: 0 auto;
	padding: 0 1.25rem !important;
}
.contact-form-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem 0;
	align-items: start;
}
@media only screen and (min-width: 56em) {
	.contact-form-grid {
		grid-template-columns: 1fr 1fr;
		grid-template-areas:
			'form-title map-title'
			'form-fields map'
			'form-actions .';
		column-gap: 3rem;
		row-gap: 1.25rem;
		align-items: stretch;
	}
	.contact-form-grid__form-title {
		grid-area: form-title;
	}
	.contact-form-grid__map-title {
		grid-area: map-title;
	}
	.contact-form-grid__fields {
		grid-area: form-fields;
	}
	.contact-form-grid__map {
		grid-area: map;
		display: flex;
		min-height: 0;
	}
	.contact-form-grid__actions {
		grid-area: form-actions;
	}
}
.contact-form-section__title {
	margin: 0 0 1.25rem;
	font-size: 1.35rem;
	font-weight: 600;
}
@media only screen and (min-width: 56em) {
	.contact-form-grid__form-title,
	.contact-form-grid__map-title {
		margin-bottom: 0;
	}
}
.contact-form__field {
	margin-bottom: 1.1rem;
}
.contact-form__label {
	display: block;
	margin-bottom: 0.35rem;
	font-size: 0.9rem;
	font-weight: 600;
}
.contact-form__required {
	color: #c00;
	margin-left: 0.15rem;
}
.contact-form__input,
.contact-form__textarea {
	display: block;
	width: 100%;
	padding: 0.7rem 0.85rem;
	font: inherit;
	font-size: 1rem;
	border: 1px solid #d8d8d8;
	border-radius: 8px;
	background: #fff;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.contact-form__input::placeholder,
.contact-form__textarea::placeholder {
	color: #9ca3af;
	opacity: 1;
}
.contact-form__input:focus::placeholder,
.contact-form__textarea:focus::placeholder {
	opacity: 0;
}
.contact-form__input:focus,
.contact-form__textarea:focus {
	outline: none;
	border-color: #f8cb19;
	box-shadow: 0 0 0 3px rgba(248, 203, 25, 0.25);
}
.contact-form__textarea {
	resize: vertical;
	min-height: 8rem;
}
.contact-form-grid__actions {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.75rem;
}
.contact-form__submit {
	margin-top: 0;
	padding: 0.8rem 1.75rem;
	font: inherit;
	font-size: 0.95rem;
	font-weight: 600;
	background: #f8cb19;
	color: #000;
	border: none;
	border-radius: 8px;
	cursor: pointer;
	transition: opacity 0.2s ease;
}
.contact-form__submit:hover:not(:disabled) {
	opacity: 0.88;
}
.contact-form__submit:disabled {
	opacity: 0.55;
	cursor: not-allowed;
}
.contact-form__status {
	margin: 0.75rem 0 0;
	font-size: 0.95rem;
	color: #166534;
}
.contact-form__status.-error {
	color: #b91c1c;
}
.contact-map {
	position: relative;
	width: 100%;
	flex: 1;
	min-height: 16rem;
	border-radius: 10px;
	overflow: hidden;
	border: 1px solid #ececec;
	background: #f5f6f7;
}
.contact-map iframe {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 16rem;
	border: 0;
}
@media only screen and (min-width: 56em) {
	.contact-map,
	.contact-map iframe {
		min-height: 100%;
		height: 100%;
	}
}
.contact-map__placeholder {
	margin: 0;
	padding: 2rem;
	text-align: center;
	color: #6b7280;
	background: #f5f6f7;
	border-radius: 10px;
	border: 1px dashed #d1d5db;
}

/* Footer — same centered container as article / knowledge content */
footer.contact > .row {
	width: 100%;
	max-width: 80rem;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.25rem !important;
	padding-right: 1.25rem !important;
	float: none;
}

footer.contact > .row > .background-image-element {
	width: 100%;
	float: none;
}

/* Footer hero — wider black column (+15pp), narrower photo */
@media only screen and (min-width: 75em) {
	footer.contact > .row > .background-image-element > .background-column {
		width: 73.33333% !important;
	}
	footer.contact > .row > .background-image-element > .image-column {
		width: 26.66667% !important;
	}
	footer.contact
		> .row
		> .background-image-element
		> .background-column
		.background-content {
		width: 92% !important;
		max-width: none;
		padding-left: 4.6875rem;
		padding-right: 2.5rem;
	}
}
@media only screen and (min-width: 90.063em) {
	footer.contact
		> .row
		> .background-image-element
		> .background-column
		.background-content {
		width: 90% !important;
		padding-left: 6.25rem;
		padding-right: 3rem;
	}
}

/* Contact page only — black CTA spans form + map width; content centered inside */
body.-contact footer.contact.-no-image > .row > .background-image-element {
	width: 100%;
	float: none;
}

body.-contact footer.contact.-no-image > .row > .background-image-element > .background-column {
	width: 100% !important;
	float: none !important;
	padding: 0 !important;
}

body.-contact footer.contact.-no-image
	> .row
	> .background-image-element
	> .background-column
	.background-content {
	width: 100% !important;
	max-width: none !important;
	float: none !important;
	padding: 2.5rem 1.25rem 2.75rem !important;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	box-sizing: border-box;
}

body.-contact footer.contact.-no-image .background-content > span,
body.-contact footer.contact.-no-image .background-content > h2 {
	width: 100%;
	max-width: 48rem;
	text-align: center;
}

body.-contact footer.contact.-no-image .background-content > div {
	width: 100% !important;
	max-width: 54rem;
	margin-top: 1.875rem !important;
	margin-left: auto !important;
	margin-right: auto !important;
	justify-content: center;
	text-align: center;
}

body.-contact footer.contact.-no-image .background-content > div > div {
	width: auto !important;
	float: none !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	text-align: center;
}

@media only screen and (min-width: 46.063em) {
	body.-contact footer.contact.-no-image .background-content > div {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 2rem 2.5rem !important;
	}
}

@media only screen and (min-width: 75em) {
	body.-contact footer.contact.-no-image
		> .row
		> .background-image-element
		> .background-column
		.background-content {
		padding: 3.5rem 1.25rem 3.75rem !important;
	}

	body.-contact footer.contact.-no-image .background-content > div {
		margin-top: 3rem !important;
		gap: 2rem 3rem !important;
	}
}

/* Footer contact block — adres, email, kierownik in one row (not email + kierownik stacked) */
footer.contact .background-content > div {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 2rem;
	margin: 1.875rem 0 0 !important;
	flex-wrap: unset !important;
}
footer.contact .background-content > div > div {
	width: auto !important;
	float: none !important;
	margin-top: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}
@media only screen and (min-width: 46.063em) {
	footer.contact .background-content > div {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 2rem 2.5rem;
		align-items: start;
		margin-top: 1.875rem !important;
	}
}
@media only screen and (min-width: 75em) {
	footer.contact .background-content > div {
		margin-top: 4.375rem !important;
		gap: 2rem 3rem;
	}
}

/* Footer contact columns — smaller type than global span/p at large breakpoints */
footer.contact .background-content > div > div > span {
	font-size: 0.6875rem;
	line-height: 1.4;
	letter-spacing: 0.04em;
	margin-bottom: 0.65rem !important;
	font-weight: 300;
}
footer.contact .background-content > div > div > p,
footer.contact .background-content > div > div > p a {
	font-size: 0.8125rem;
	line-height: 1.55;
	letter-spacing: 0.02em;
	font-weight: 400;
	margin-bottom: 0.35rem;
}
footer.contact .background-content > div > div > p:last-child {
	margin-bottom: 0;
}
@media only screen and (min-width: 46.063em) {
	footer.contact .background-content > div > div > span {
		font-size: 0.75rem;
		margin-bottom: 0.75rem !important;
	}
	footer.contact .background-content > div > div > p,
	footer.contact .background-content > div > div > p a {
		font-size: 0.875rem;
	}
}
@media only screen and (min-width: 75em) {
	footer.contact .background-content > div > div > span {
		font-size: 0.8125rem;
	}
	footer.contact .background-content > div > div > p,
	footer.contact .background-content > div > div > p a {
		font-size: 0.9375rem;
	}
}
@media only screen and (min-width: 90.063em) {
	footer.contact .background-content > div > div > span {
		font-size: 0.8125rem;
	}
	footer.contact .background-content > div > div > p,
	footer.contact .background-content > div > div > p a {
		font-size: 0.9375rem;
	}
}

/* Footer credits — keep agency names on one line */
footer.contact .copyrights__credits {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.1rem;
	margin-top: 0.35rem;
	text-align: left;
	width: 100%;
}
footer.contact .copyrights__credit {
	display: block !important;
	white-space: nowrap;
	line-height: 1.5 !important;
	text-transform: none;
	margin-left: 0 !important;
	text-align: left;
}
footer.contact .copyrights__credit a {
	white-space: nowrap;
}
@media only screen and (min-width: 75em) {
	footer.contact .copyrights__credits {
		margin-top: 0.5rem;
	}
}

/* Footer nav — menu + language switch on one baseline (beat legacy .misc .lang { display:block }) */
@media only screen and (min-width: 46.063em) and (orientation: landscape),
	only screen and (min-width: 75em) {
	footer.contact > .row > .misc {
		align-items: center;
	}

	footer.contact > .row > .misc .footer-nav {
		display: flex !important;
		align-items: center !important;
		flex: 0 1 auto;
		min-width: 0;
	}

	footer.contact > .row > .misc .footer-nav .footer-menu {
		display: flex !important;
		align-items: center !important;
		justify-content: flex-start;
		flex: 0 0 auto;
		margin: 0 !important;
		padding: 0 !important;
		list-style: none;
	}

	footer.contact > .row > .misc .footer-nav .footer-menu li {
		display: flex !important;
		align-items: center !important;
		margin-right: 0.9375rem !important;
		margin-bottom: 0 !important;
	}

	footer.contact > .row > .misc .footer-nav .lang {
		display: flex !important;
		align-items: center !important;
		align-self: center !important;
		margin: 0 !important;
		padding: 0 0 0 1.25rem !important;
		border-left: 1px solid #000;
		list-style: none;
	}

	footer.contact > .row > .misc .footer-nav .lang li {
		display: flex !important;
		align-items: center !important;
		margin: 0 !important;
	}

	footer.contact > .row > .misc .footer-nav .footer-menu li a,
	footer.contact > .row > .misc .footer-nav .lang li a {
		display: inline-flex !important;
		align-items: center !important;
		line-height: 1.23 !important;
		margin: 0 !important;
		padding: 0 !important;
	}
}

section.section.banner.-contact .contact-banner__accreditation {
	margin-top: 1rem;
	font-size: 1rem;
	line-height: 1.6;
	opacity: 0.9;
}
section.section.banner.-contact .contact-banner__accreditation a {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: #f8cb19;
	text-underline-offset: 3px;
}
section.section.banner.-contact .contact-banner__accreditation a:hover {
	opacity: 0.85;
}

/* ============================================================
   About pages (01–03): full-width hero banners.
   Legacy app.min.css adds 7.5rem horizontal .row padding for the
   old left sygnet / hamburger layout — override for edge-to-edge heroes.
   Desktop: full-viewport height. Mobile: natural stack (no empty stretch).
   ============================================================ */

/* Goal / mission block — yellow title (legacy targeted h1 only) */
section.section.goal > .row .container h1.big-title,
section.section.goal > .row .container h2.big-title {
	color: #f8cb19;
	width: auto;
	margin-left: 0 !important;
	padding: 0 0.9375rem;
}

@media only screen and (min-width: 46.063em) {
	section.section.banner:not(.-contact) {
		height: auto !important;
		min-height: calc(100dvh - 4.25rem);
	}

	.page-breadcrumb-bar + section.section.banner:not(.-contact) {
		height: auto !important;
		min-height: calc(100dvh - 4.25rem - 3.25rem);
	}

	section.section.goal > .row .container h1.big-title,
	section.section.goal > .row .container h2.big-title {
		padding: 0;
		margin-left: -0.3125rem !important;
		display: flex;
		justify-content: flex-end;
	}

	/* Hero text scales with viewport height — background shrinks/grows with content */
	section.section.banner:not(.-contact) > .row > .container .text-content {
		justify-content: flex-start !important;
		align-self: stretch !important;
		min-height: 0;
		overflow: visible;
		padding-top: clamp(0.75rem, 2.5vh, 2rem) !important;
		padding-bottom: clamp(0.75rem, 2.5vh, 2rem) !important;
	}

	section.section.banner:not(.-contact) > .row > .container .text-content .title-container {
		padding-top: clamp(1.25rem, 9vh, 7.5rem) !important;
	}

	section.section.banner:not(.-contact) > .row > .container .text-content .desc-container {
		margin-top: clamp(0.75rem, 3.5vh, 3.75rem) !important;
		margin-bottom: clamp(0.5rem, 1.5vh, 1.875rem) !important;
	}

	section.section.banner:not(.-contact) > .row > .container .text-content .title-container h1.span {
		font-size: clamp(0.95rem, 1.2vh + 0.65rem, 1.5rem) !important;
		line-height: 1.15 !important;
	}

	section.section.banner:not(.-contact) > .row > .container .text-content .desc-container p.h1 {
		font-size: clamp(1.05rem, 2vh + 0.65rem, 2.25rem) !important;
		line-height: 1.18 !important;
	}

	section.section.banner:not(.-contact) > .row > .container .text-content .desc-container p.h4 {
		font-size: clamp(0.85rem, 1.1vh + 0.45rem, 1.125rem) !important;
		line-height: 1.35 !important;
		margin-top: clamp(0.5rem, 1.5vh, 1.875rem) !important;
		margin-bottom: 0 !important;
	}

	section.section.banner:not(.-contact) > .row > .container .text-content .desc-container p + p {
		max-width: 100% !important;
		margin-top: clamp(0.5rem, 1.5vh, 1.875rem) !important;
		margin-bottom: clamp(0.5rem, 1.5vh, 1.875rem) !important;
	}

	section.section.banner.hub-banner > .row > .container .text-content .title-container h1.span {
		font-size: clamp(1.1rem, 2vh + 0.75rem, 2rem) !important;
	}
}

section.section.banner:not(.-contact) > .row {
	padding-left: 0 !important;
	padding-right: 0 !important;
	max-width: none;
}

section.section.banner:not(.-contact) > .row > .container {
	width: 100%;
	max-width: none;
	margin: 0 !important;
}

@media only screen and (min-width: 46.063em) {
	section.section.banner:not(.-contact) > .row > .container .image-content .image img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center;
	}
}

/* Banner: fast fade-in — -triggered is added on load in site-init.ts */
section.section.banner:not(.-contact) .text-content .load-wpt.-triggered {
	transition-duration: 0.35s !important;
}
section.section.banner:not(.-contact) .scroll-initiator .load-wpt.-triggered {
	transition-duration: 0.35s !important;
}
section.section.banner:not(.-contact) .load-wpt.-triggered.delay-1 {
	transition-delay: 0.05s !important;
}
section.section.banner:not(.-contact) .load-wpt.-triggered.delay-2 {
	transition-delay: 0.1s !important;
}
section.section.banner:not(.-contact) .load-wpt.-triggered.delay-3 {
	transition-delay: 0.15s !important;
}
section.section.banner:not(.-contact) .load-wpt.-triggered.delay-4 {
	transition-delay: 0.2s !important;
}
section.section.banner:not(.-contact) .load-wpt.-triggered.delay-5 {
	transition-delay: 0.25s !important;
}
section.section.banner:not(.-contact) .load-wpt.-triggered.delay-6 {
	transition-delay: 0.3s !important;
}
/* Keep scroll label rotation — do not zero transforms on scroll-initiator */
section.section.banner:not(.-contact) .scroll-initiator span.load-wpt.-triggered {
	transform: rotate(-90deg) !important;
	transform-origin: top left !important;
}
section.section.banner:not(.-contact) .scroll-initiator div.load-wpt.-triggered {
	transform: none !important;
}

/* Mobile subpages — compact banner stack, text flush to image */
@media only screen and (max-width: 46em) {
	section.section.banner:not(.-contact),
	.page-breadcrumb-bar + section.section.banner:not(.-contact) {
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
	}

	section.section.banner:not(.-contact) > .row {
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	section.section.banner:not(.-contact) > .row > .container {
		display: flex !important;
		flex-direction: column !important;
		justify-content: flex-start !important;
		align-items: stretch !important;
		gap: 0 !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
	}

	section.section.banner:not(.-contact) > .row > .container .text-content {
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 1.25rem 1.25rem 0.75rem !important;
		float: none !important;
		flex: 0 0 auto !important;
		flex-grow: 0 !important;
		min-height: 0 !important;
		justify-content: flex-start !important;
		order: 1 !important;
	}

	section.section.banner:not(.-contact) > .row > .container .text-content .title-container {
		padding-top: 0 !important;
	}

	section.section.banner:not(.-contact) > .row > .container .text-content .desc-container {
		margin-top: 0.75rem !important;
		margin-bottom: 0 !important;
	}

	section.section.banner:not(.-contact) > .row > .container .text-content .desc-container p {
		margin-bottom: 0 !important;
	}

	section.section.banner:not(.-contact) > .row > .container .scroll-initiator {
		display: none !important;
		height: 0 !important;
		min-height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: hidden !important;
		flex: 0 0 0 !important;
		order: 99 !important;
	}

	section.section.banner:not(.-contact) > .row > .container .image-content {
		position: relative !important;
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		float: none !important;
		flex: 0 0 auto !important;
		flex-grow: 0 !important;
		order: 2 !important;
		padding: 0 !important;
		margin-top: 0 !important;
	}

	/* Legacy app.min uses ::before padding + absolute children — drop on mobile */
	section.section.banner:not(.-contact) > .row > .container .image-content::before {
		display: none !important;
		padding: 0 !important;
		height: 0 !important;
		content: none !important;
	}

	section.section.banner:not(.-contact) > .row > .container .image-content > * {
		position: relative !important;
		top: auto !important;
		left: auto !important;
		width: 100% !important;
		height: auto !important;
	}

	section.section.banner:not(.-contact) > .row > .container .image-content .image {
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		margin-right: 0 !important;
		overflow: hidden;
	}

	section.section.banner:not(.-contact) > .row > .container .image-content .image.-large {
		display: none !important;
	}

	section.section.banner:not(.-contact) > .row > .container .image-content .image.-small {
		display: block !important;
	}

	section.section.banner:not(.-contact) > .row > .container .image-content .image img {
		display: block !important;
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: 14rem;
		object-fit: cover;
		object-position: center;
	}

	/* Goal / mission — centered, yellow title, no negative margin clip */
	section.section.goal > .row {
		padding-left: 1.25rem !important;
		padding-right: 1.25rem !important;
	}

	section.section.goal > .row .container {
		width: 100% !important;
		float: none !important;
		padding: 0 !important;
	}

	section.section.goal > .row .container h1.big-title,
	section.section.goal > .row .container h2.big-title {
		width: 100%;
		margin-left: 0 !important;
		padding: 0;
		text-align: center;
		font-size: clamp(2rem, 9vw, 2.5rem);
		justify-content: center;
	}

	section.section.goal > .row .container > div {
		width: 100%;
		margin-top: 1.25rem !important;
		padding: 0 !important;
		align-items: center !important;
		text-align: center;
	}

	section.section.goal > .row .container > div h2 {
		text-align: center;
	}

	section.section.goal > .row .container > div .default-button {
		margin-left: auto;
		margin-right: auto;
	}

	/* Crew blocks — image then text, sane padding */
	section.section.crew > .row {
		padding-left: 1.25rem !important;
		padding-right: 1.25rem !important;
	}

	section.section.crew > .row .container {
		flex-direction: column !important;
		padding: 0 !important;
	}

	section.section.crew.-reversed > .row .container {
		flex-direction: column !important;
	}

	section.section.crew > .row .container .left-content,
	section.section.crew > .row .container .right-content {
		width: 100% !important;
		float: none !important;
		padding: 0 !important;
		margin-top: 0 !important;
	}

	section.section.crew > .row .container .right-content {
		margin-top: 1.25rem !important;
		padding: 0 !important;
	}

	section.section.crew > .row .container .left-content .img-container img {
		width: 100%;
		height: auto;
		display: block;
	}

	/* What we do list — full width */
	section.section.what-we-do > .row {
		padding-left: 1.25rem !important;
		padding-right: 1.25rem !important;
	}

	/* Services block on Kim jesteśmy */
	section.section.services > .row {
		padding-left: 1.25rem !important;
		padding-right: 1.25rem !important;
	}
}

@media only screen and (min-width: 46.063em) {
	section.section.banner:not(.-contact) > .row {
		min-height: inherit;
		height: 100%;
	}

	section.section.banner:not(.-contact) > .row > .container {
		min-height: inherit;
		height: 100%;
	}

	section.section.banner:not(.-contact) > .row > .container .text-content {
		padding-left: 2.5rem !important;
		padding-right: 2.5rem !important;
	}
}

@media only screen and (min-width: 75em) {
	section.section.banner:not(.-contact) > .row > .container {
		align-items: stretch;
	}

	section.section.banner:not(.-contact) > .row > .container .text-content {
		padding-left: 3rem !important;
		padding-right: 2rem !important;
		width: 41.66667% !important;
		max-width: 41.66667% !important;
		margin-left: 0 !important;
		flex: 0 0 41.66667%;
	}

	section.section.banner:not(.-contact) > .row > .container .text-content .title-container {
		padding-top: clamp(1.5rem, 12vh, 12.5rem) !important;
	}

	section.section.banner:not(.-contact) > .row > .container .text-content .desc-container {
		margin-top: clamp(1rem, 5vh, 5.625rem) !important;
	}

	section.section.banner:not(.-contact) > .row > .container .text-content .desc-container p.h1 {
		font-size: clamp(1.15rem, 2.4vh + 0.75rem, 2.5rem) !important;
	}

	section.section.banner:not(.-contact) > .row > .container .scroll-initiator {
		flex: 0 0 3.75rem;
		align-self: stretch;
	}

	section.section.banner:not(.-contact) > .row > .container .image-content {
		flex: 1 1 auto !important;
		width: auto !important;
		min-width: 0;
		align-self: stretch;
		overflow: hidden;
	}

	section.section.banner:not(.-contact) > .row > .container .image-content .image {
		width: 100% !important;
		height: 100% !important;
		margin-right: 0 !important;
		min-height: 100%;
	}

	section.section.banner:not(.-contact) > .row > .container .image-content .image img {
		min-height: 100%;
	}
}

/* ============================================================
   Cookie consent: second layer (settings dialog)
   ============================================================ */

/* Equal weight is a legal property, not a style choice: refusal has to be as
   large and as clickable as consent, or consent is not freely given. Nothing
   below may set font-size, padding, min-height, min-width, width, transform or
   opacity on -reject differently from -accept. Shifting VISUAL weight onto
   acceptance (fill, colour) is allowed; making refusal smaller is not. */
.cookie-banner__btn.-settings,
.cookie-banner__btn.-save {
	background: transparent;
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.4);
}
.cookie-prefs__actions .cookie-banner__btn.-reject,
.cookie-prefs__actions .cookie-banner__btn.-save {
	background: transparent;
	color: #111;
	border: 1px solid rgba(0, 0, 0, 0.25);
}

.cookie-prefs[hidden] {
	display: none;
}
.cookie-prefs {
	position: fixed;
	inset: 0;
	z-index: 1100;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
}
.cookie-prefs__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.55);
}
.cookie-prefs__panel {
	position: relative;
	width: min(52rem, 100%);
	max-height: min(85vh, 48rem);
	overflow-y: auto;
	background: #fff;
	color: #111;
	border-radius: 14px;
	padding: 1.5rem;
	box-shadow: 0 30px 60px -20px rgba(0, 0, 0, 0.5);
}
.cookie-prefs__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
}
.cookie-prefs__title {
	margin: 0;
	font-size: 1.25rem;
}
/* An "X" is fine HERE: in the settings window it closes the window without
   storing a decision. On the banner it would record a refusal. */
.cookie-prefs__close {
	cursor: pointer;
	border: 0;
	background: transparent;
	font-size: 1.75rem;
	line-height: 1;
	padding: 0 0.25rem;
	color: #666;
}
.cookie-prefs__intro {
	margin: 0.5rem 0 1.25rem;
	font-size: 0.9rem;
	line-height: 1.55;
	color: #444;
}
.cookie-prefs__cat {
	border-top: 1px solid #e6e6e6;
	padding-top: 1rem;
	margin-top: 1rem;
}
.cookie-prefs__cat-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}
.cookie-prefs__cat-title {
	margin: 0;
	font-size: 1rem;
}
.cookie-prefs__always {
	font-size: 0.8rem;
	color: #666;
	white-space: nowrap;
}
.cookie-prefs__cat-desc {
	margin: 0.35rem 0 0.75rem;
	font-size: 0.85rem;
	line-height: 1.5;
	color: #555;
}
.cookie-prefs__empty {
	margin: 0;
	font-size: 0.85rem;
	color: #666;
	font-style: italic;
}
.cookie-prefs__toggle {
	position: relative;
	display: inline-block;
	width: 44px;
	height: 24px;
	flex: 0 0 auto;
}
.cookie-prefs__toggle input {
	position: absolute;
	opacity: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	cursor: pointer;
}
.cookie-prefs__toggle span {
	position: absolute;
	inset: 0;
	background: #ccc;
	border-radius: 999px;
	transition: background-color 0.2s ease;
	pointer-events: none;
}
.cookie-prefs__toggle span::after {
	content: '';
	position: absolute;
	top: 3px;
	left: 3px;
	width: 18px;
	height: 18px;
	background: #fff;
	border-radius: 50%;
	transition: transform 0.2s ease;
}
.cookie-prefs__toggle input:checked + span {
	background: #f8cb19;
}
.cookie-prefs__toggle input:checked + span::after {
	transform: translateX(20px);
}
.cookie-prefs__toggle input:focus-visible + span {
	outline: 2px solid #111;
	outline-offset: 2px;
}
.cookie-prefs__table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.8rem;
}
.cookie-prefs__table th,
.cookie-prefs__table td {
	text-align: left;
	vertical-align: top;
	padding: 0.4rem 0.6rem 0.4rem 0;
	border-bottom: 1px solid #f0f0f0;
}
.cookie-prefs__table th {
	color: #666;
	font-weight: 600;
	white-space: nowrap;
}
.cookie-prefs__table code {
	font-size: 0.78rem;
	word-break: break-all;
}
.cookie-prefs__note {
	display: block;
	font-size: 0.72rem;
	color: #888;
}
.cookie-prefs__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1.5rem;
}
.cookie-prefs__actions .cookie-banner__btn {
	margin: 0;
}

@media (max-width: 34rem) {
	.cookie-prefs__table,
	.cookie-prefs__table tbody,
	.cookie-prefs__table tr,
	.cookie-prefs__table td {
		display: block;
		width: 100%;
	}
	.cookie-prefs__table thead {
		display: none;
	}
	.cookie-prefs__table tr {
		border-bottom: 1px solid #eee;
		padding-bottom: 0.5rem;
		margin-bottom: 0.5rem;
	}
	.cookie-prefs__table td {
		border: 0;
		padding: 0.15rem 0;
	}
}
