/* ==========================================================================
   Motyw MSG – style główne
   Zasady: bez stałych wysokości, bez ujemnych marginesów, mobile-first,
   kontrast min. 4.5:1, widoczny fokus, cele dotykowe min. 44 px.
   ========================================================================== */

/* ---------- Font (lokalnie, bez Google Fonts) ---------- */
@font-face {
	font-family: "Roboto";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/roboto-latin-ext-wght-normal.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Roboto";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/roboto-latin-wght-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: "Roboto";
	font-style: italic;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/roboto-latin-ext-wght-italic.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Roboto";
	font-style: italic;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/roboto-latin-wght-italic.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Dancing Script";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../fonts/dancing-script-latin-ext-700-normal.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Dancing Script";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../fonts/dancing-script-latin-700-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---------- Zmienne ---------- */
:root {
	--msg-accent: #930e12;
	--msg-accent-dark: color-mix(in srgb, var(--msg-accent) 78%, #000);
	--msg-ink: #1a1a1a;
	--msg-text: #2b2b2b;
	--msg-muted: #545454;          /* 7.4:1 na białym */
	--msg-line: #d6d2cc;
	--msg-soft: #f6f4f1;
	--msg-dark: #1c1f24;
	--msg-darker: #14161a;
	--msg-focus: #ffbf47;
	--msg-wrap: 1240px;
	--msg-gutter: clamp(1rem, 3vw, 2rem);
	--msg-radius: 4px;
	--msg-font: "Roboto", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
	--msg-section: clamp(2.5rem, 6vw, 4.5rem);
}

/* ---------- Podstawy ---------- */
*,
*::before,
*::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-padding-top: 1rem;
}

body {
	margin: 0;
	background: #fff;
	color: var(--msg-text);
	font-family: var(--msg-font);
	font-size: 1.0625rem;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

img,
svg,
video,
iframe { max-width: 100%; }

img { height: auto; }

a { color: var(--msg-accent); text-underline-offset: .18em; }
a:hover { color: var(--msg-accent-dark); }

h1, h2, h3, h4, h5, h6 {
	color: var(--msg-ink);
	font-family: var(--msg-font-head, var(--msg-font));
	line-height: 1.25;
	font-weight: var(--msg-hw, 700);
	margin: 0 0 .6em;
}

p { margin: 0 0 1em; }

/* ---------- Dostępność ---------- */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.skip-link {
	position: absolute;
	top: .5rem;
	left: .5rem;
	z-index: 10000;
	padding: .75rem 1.25rem;
	background: var(--msg-ink);
	color: #fff;
	font-weight: 700;
	text-decoration: none;
	transform: translateY(-200%);
}
.skip-link:focus { transform: none; color: #fff; }

:focus-visible {
	outline: 3px solid var(--msg-focus);
	outline-offset: 2px;
	box-shadow: 0 0 0 5px var(--msg-ink);
}

.site-main:focus { outline: none; }

/* ---------- Układ ---------- */
.wrap {
	width: 100%;
	max-width: calc(var(--msg-wrap) + 2 * var(--msg-gutter));
	margin-inline: auto;
	padding-inline: var(--msg-gutter);
}
.wrap--medium { max-width: calc(1000px + 2 * var(--msg-gutter)); }
.wrap--narrow { max-width: calc(820px + 2 * var(--msg-gutter)); }

.section-pad { padding-block: var(--msg-section); }

.section-title {
	font-size: calc(clamp(1.5rem, 1.1rem + 1.4vw, 2.125rem) * var(--msg-hs, 1));
	margin-bottom: 1.25rem;
}

/* ---------- Przyciski ---------- */
.btn,
.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	min-height: 44px;
	padding: .65rem 1.4rem;
	border: 2px solid var(--msg-accent);
	border-radius: var(--msg-radius);
	background: var(--msg-accent);
	color: #fff;
	font: inherit;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .15s, color .15s, border-color .15s;
}
.btn:hover { background: var(--msg-accent-dark); border-color: var(--msg-accent-dark); color: #fff; }

.btn--light { background: #fff; border-color: #fff; color: var(--msg-accent); }
.btn--light:hover { background: transparent; color: #fff; border-color: #fff; }

.btn .icon { width: 1.1em; height: 1.1em; }

/* ==========================================================================
   Nagłówek – układ jak w dotychczasowej szacie graficznej
   (biały pasek ze skosem, bordowe pole z logo, logotypy w prawym rogu,
   bordowy blok menu). ≥ 1024 px: nagłówek leży na zdjęciu banera.
   ========================================================================== */
.site-header {
	position: relative;
	z-index: 100;
	display: grid;
	grid-template-columns: auto 1fr auto;
	grid-template-areas:
		"top     top     top"
		"brand   partner toggle"
		"nav     nav     nav";
	align-items: center;
	background: #fff;
}

/* --- Biały pasek z kontaktem --- */
.topbar {
	grid-area: top;
	position: relative;
	isolation: isolate;
	color: var(--msg-ink);
	font-size: .9375rem;
	border-bottom: 1px solid var(--msg-line);
}
.topbar::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: #fff;
}
.topbar__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0 1.5rem;
	margin: 0;
	padding: .15rem 1rem;
	list-style: none;
}
.topbar__link {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	min-height: 40px;
	color: var(--msg-ink);
	text-decoration: none;
}
.topbar__link:hover { color: var(--msg-accent); text-decoration: underline; }
.topbar__link--caps { text-transform: uppercase; letter-spacing: .03em; }
.topbar .icon { width: 18px; height: 18px; color: #444; }

.topbar__search { position: relative; display: flex; align-items: center; }
.search-toggle {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--msg-ink);
	cursor: pointer;
}
.search-toggle .icon { width: 20px; height: 20px; color: var(--msg-ink); }
.search-toggle:hover .icon { color: var(--msg-accent); }

.search-mini {
	position: absolute;
	top: calc(100% + .35rem);
	right: 0;
	z-index: 200;
	display: none;
	width: min(22rem, calc(100vw - 2rem));
	padding: .5rem;
	background: #fff;
	border-top: 4px solid var(--msg-accent);
	box-shadow: 0 10px 28px rgba(0, 0, 0, .2);
}
.search-mini.is-open { display: flex; }
html:not(.js) .search-mini { position: static; display: flex; width: 14rem; box-shadow: none; border: 1px solid var(--msg-line); }
html:not(.js) .search-toggle { display: none; }
.search-mini input {
	flex: 1;
	min-width: 0;
	min-height: 44px;
	padding: .4rem .7rem;
	border: 2px solid #8a8a8a;
	border-right: 0;
	border-radius: var(--msg-radius) 0 0 var(--msg-radius);
	font: inherit;
}
.search-mini button[type="submit"] {
	display: grid;
	place-items: center;
	min-width: 48px;
	border: 0;
	border-radius: 0 var(--msg-radius) var(--msg-radius) 0;
	background: var(--msg-accent);
	color: #fff;
	cursor: pointer;
}
.search-mini button[type="submit"]:hover { background: var(--msg-accent-dark); }

/* --- Bordowe pole z logo (skośna prawa krawędź) --- */
.brand {
	grid-area: brand;
	position: relative;
	isolation: isolate;
	display: inline-flex;
	align-items: center;
	align-self: start;
	justify-self: start;
	padding: .7rem 2.4rem .7rem 1rem;
	color: #fff;
	font-weight: 800;
	line-height: 1.2;
	text-decoration: none;
}
.brand::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--msg-accent);
	clip-path: polygon(0 0, 100% 0, 88% 100%, 0 100%);
	box-shadow: 0 4px 14px rgba(0, 0, 0, .25);
}
.brand:hover { color: #fff; }
.brand__logo {
	display: block;
	width: auto;
	height: clamp(64px, 9.15vw, 164px);
}
/* Plik logo to gotowy bordowy kafel ze skośną krawędzią (jak dotychczas) – bez dodatkowego pola */
.brand--logo { padding: 0 !important; }
.brand--logo::before { display: none; }
.brand--logo .brand__logo {
	height: clamp(84px, 12vw, 215px);
	filter: drop-shadow(0 4px 10px rgba(0, 0, 0, .28));
}
.brand--logo:focus-visible { outline-offset: 4px; }
.brand__text { max-width: 14ch; font-size: 1.1rem; }

/* --- Logotypy Małopolska + godło --- */
.partner {
	grid-area: partner;
	justify-self: end;
	display: block;
	padding: .5rem 0;
}
.partner__img {
	display: block;
	width: auto;
	height: clamp(34px, 3vw + 22px, 80px);
}

/* --- Przycisk menu (telefon/tablet) --- */
.nav-toggle {
	grid-area: toggle;
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	min-height: 44px;
	margin: 0 1rem 0 .75rem;
	padding: .5rem .9rem;
	border: 2px solid var(--msg-accent);
	border-radius: var(--msg-radius);
	background: #fff;
	color: var(--msg-accent);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}
.nav-toggle .icon { width: 22px; height: 22px; }
.nav-toggle__open,
.nav-toggle__close { display: inline-flex; }
.nav-toggle .nav-toggle__close,
.nav-toggle[aria-expanded="true"] .nav-toggle__open { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__close { display: inline-flex; }

/* --- Blok menu --- */
.site-nav {
	grid-area: nav;
	background: var(--msg-accent);
}

.menu--primary,
.menu--primary .sub-menu {
	margin: 0;
	padding: 0;
	list-style: none;
}
.menu-link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .55rem;
	width: 100%;
	min-height: 48px;
	padding: .65rem 1rem;
	border: 0;
	background: none;
	color: inherit;
	font: inherit;
	text-align: left;
	text-decoration: none;
	cursor: pointer;
}
.icon-chevron { flex: none; transition: transform .2s; }
[aria-expanded="true"] > .icon-chevron { transform: rotate(180deg); }
.submenu-toggle {
	display: grid;
	place-items: center;
	min-width: 48px;
	min-height: 48px;
	border: 0;
	background: none;
	color: inherit;
	cursor: pointer;
}
.menu-missing { margin: 0; padding: .75rem 1rem; }
.menu-missing a { color: #fff; }

/* Telefon i tablet (< 1024 px) */
@media (max-width: 1023.98px) {
	.brand { margin: .6rem 0 .6rem 0; }
	.brand__logo { height: clamp(64px, 12vw + 28px, 108px); }
	.brand--logo { margin: 0; align-self: start; }
	.brand--logo .brand__logo { height: clamp(78px, 14vw + 30px, 132px); }
	.partner { padding-left: .75rem; }

	.js .site-nav { display: none; }
	body.nav-open .site-nav { display: block; }

	.menu--primary { color: #fff; }
	.menu--primary > li { border-top: 1px solid rgba(255, 255, 255, .2); }
	.menu--primary li { display: flex; flex-wrap: wrap; }
	.menu--primary li > .menu-link { flex: 1; width: auto; }
	.menu--primary > li > .menu-link { font-weight: 700; text-transform: var(--msg-tt-menu, uppercase); letter-spacing: .03em; }
	.menu--primary a:hover { color: #fff; text-decoration: underline; }
	.menu--primary .sub-menu { display: none; width: 100%; background: var(--msg-accent-dark); }
	.menu--primary li.is-open > .sub-menu { display: block; }
	.menu--primary .sub-menu .menu-link { padding-left: 2rem; }
	.menu--primary .sub-menu .sub-menu .menu-link { padding-left: 3rem; }
	.menu--primary .sub-menu li { border-top: 1px solid rgba(255, 255, 255, .12); }
	.menu--primary .is-current > .menu-link { box-shadow: inset 4px 0 0 #fff; }
	html:not(.js) .menu--primary .sub-menu { display: block; }
}
@media (max-width: 480px) {
	.nav-toggle__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.nav-toggle { margin-right: .75rem; }
	.topbar__list { gap: 0 1rem; font-size: .875rem; }
}

/* Komputer (≥ 1024 px): nagłówek na zdjęciu, układ jak dotychczas */
@media (min-width: 1024px) {
	.site-header {
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		grid-template-columns: auto 1fr auto;
		grid-template-rows: auto auto auto 1fr;
		grid-template-areas:
			"top   top   partner"
			"brand .     partner"
			"brand nav   nav"
			"brand .     .";
		align-items: start;
		background: transparent;
		pointer-events: none;
	}
	.site-header > * { pointer-events: auto; }

	.topbar {
		justify-self: start;
		margin-top: 1.4rem;
		border-bottom: 0;
	}
	.topbar::before {
		clip-path: polygon(0 0, 100% 0, calc(100% - 1.25rem) 100%, 0 100%);
		box-shadow: 0 2px 8px rgba(0, 0, 0, .15);
	}
	.topbar__list {
		justify-content: flex-start;
		padding: 0 3.25rem 0 clamp(10rem, 16vw, 14.5rem);
		font-size: .875rem;
	}
	.topbar__link { min-height: 36px; }
	.search-toggle { width: 36px; height: 36px; }

	/* Logo wyśrodkowane w polu (prawy margines kompensuje skos krawędzi) */
	.brand { margin-top: .9rem; padding: clamp(.9rem, 1.4vw, 1.5rem) clamp(2rem, 3.3vw, 3.6rem) clamp(.9rem, 1.4vw, 1.5rem) clamp(1rem, 1.6vw, 1.8rem); }

	.partner {
		align-self: start;
		margin: 0;
		padding: .9rem clamp(1.5rem, 3vw, 3rem) 1rem 2.5rem;
		position: relative;
		isolation: isolate;
	}
	/* Delikatne tło pod logotypami – czytelne na każdym zdjęciu */
	.partner::before {
		content: "";
		position: absolute;
		inset: 0;
		z-index: -1;
		background: rgba(255, 255, 255, .92);
		clip-path: polygon(1.25rem 0, 100% 0, 100% 100%, 0 100%);
		border-bottom-left-radius: 2px;
	}

	.nav-toggle { display: none; }

	.site-nav {
		grid-area: nav;
		justify-self: end;
		margin-top: 1.1rem;
		box-shadow: 0 4px 14px rgba(0, 0, 0, .2);
	}
	.menu--primary { display: flex; flex-wrap: wrap; color: #fff; }
	.menu--primary > li { position: relative; display: flex; align-items: stretch; }
	.menu--primary { flex-wrap: nowrap; }
	.menu--primary > li > .menu-link {
		min-height: 60px;
		padding-inline: clamp(.7rem, 1.2vw, 1.4rem);
		white-space: nowrap;
		font-size: .9375rem;
		font-weight: 700;
		letter-spacing: .02em;
		text-transform: var(--msg-tt-menu, uppercase);
	}
	.menu--primary > li > .submenu-toggle { min-width: 32px; margin-left: -.6rem; }
	.menu--primary > li:hover > .menu-link,
	.menu--primary > li.is-open > .menu-link,
	.menu--primary > li > .menu-link:focus-visible {
		background: var(--msg-accent-dark);
		color: #fff;
	}
	.menu--primary > li.is-current > .menu-link { box-shadow: inset 0 -4px 0 #fff; }

	.menu--primary > li > .sub-menu {
		position: absolute;
		top: 100%;
		right: 0;
		z-index: 1000;
		display: none;
		min-width: 280px;
		padding: .5rem 0;
		background: #fff;
		color: var(--msg-ink);
		border-top: 4px solid var(--msg-accent-dark);
		box-shadow: 0 12px 32px rgba(0, 0, 0, .22);
	}
	.menu--primary > li:first-child > .sub-menu,
	.menu--primary > li:nth-child(2) > .sub-menu { right: auto; left: 0; }
	.menu--primary > li > .sub-menu:has(> li:nth-child(7)) { min-width: 560px; columns: 2; column-gap: 0; }
	.menu--primary .sub-menu li { break-inside: avoid; }
	.menu--primary > li.is-open > .sub-menu { display: block; }
	html:not(.js) .menu--primary > li:hover > .sub-menu,
	html:not(.js) .menu--primary > li:focus-within > .sub-menu { display: block; }
	.menu--primary .sub-menu .menu-link {
		min-height: 44px;
		padding: .55rem 1.25rem;
		color: var(--msg-ink);
		font-size: 1rem;
		line-height: 1.35;
	}
	.menu--primary .sub-menu .menu-link:hover,
	.menu--primary .sub-menu .menu-link:focus-visible {
		background: var(--msg-soft);
		color: var(--msg-accent);
		text-decoration: underline;
	}
	.menu--primary .sub-menu .is-current > .menu-link {
		color: var(--msg-accent);
		font-weight: 700;
		box-shadow: inset 4px 0 0 var(--msg-accent);
	}
	.menu--primary .sub-menu .sub-menu { display: block; }
	.menu--primary .sub-menu .sub-menu .menu-link { padding-left: 2.25rem; font-size: .9375rem; }
	.menu--primary .sub-menu .submenu-toggle { display: none; }

	/* Pierwszy element strony (baner / nagłówek podstrony) zaczyna się pod nagłówkiem */
	.site-main > :first-child:not(.hero):not(.page-hero):not(.page-elementor):not(article):not(.elementor),
	.site-main > article:first-child > :first-child:not(.page-hero):not(.elementor):not(.hero) {
		margin-top: var(--msg-header-h, 250px);
	}
}

/* Stały pasek w trybie administratora */
@media (min-width: 1024px) {
	.admin-bar .site-header { top: 32px; }
}


/* ==========================================================================
   Nagłówek podstrony
   ========================================================================== */
.page-hero {
	position: relative;
	isolation: isolate;
	background: var(--msg-accent);
	color: #fff;
}
.page-hero__img {
	position: absolute;
	inset: 0;
	z-index: -2;
	width: 100%;
	height: 100% !important;
	object-fit: cover;
	object-position: 50% 35%;
}
.page-hero--image::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(0deg, rgba(0, 0, 0, .45) 0%, rgba(0, 0, 0, .15) 50%, rgba(0, 0, 0, 0) 75%);
}
.page-hero__inner {
	padding-block: clamp(2.5rem, 7vw, 5.5rem) clamp(2rem, 5vw, 3.5rem);
}
@media (min-width: 1024px) {
	.page-hero {
		clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--msg-v, 3.5vw)), 50% 100%, 0 calc(100% - var(--msg-v, 3.5vw)));
	}
	.page-hero__inner {
		display: flex;
		flex-direction: column;
		justify-content: flex-end;
		min-height: clamp(520px, 42vw, 780px);
		padding-top: calc(var(--msg-header-h, 250px) + 1.5rem);
		padding-bottom: calc(3.5vw + clamp(1.75rem, 3vw, 3rem));
	}
}
.page-hero__title {
	max-width: 40ch;
	margin: 0;
	color: #fff;
	font-size: calc(clamp(1.6rem, 1.15rem + 1.45vw, 2.5rem) * var(--msg-hs, 1));
	text-wrap: balance;
	font-weight: 800;
	line-height: 1.15;
	text-shadow: 0 1px 3px rgba(0, 0, 0, .4);
}
.page-hero__subtitle {
	max-width: 60ch;
	margin: .9rem 0 0;
	font-size: 1.125rem;
}
.hero-meta { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; font-weight: 600; }
.hero-meta .icon { width: 20px; height: 20px; }
.hero-meta__cat {
	padding: .2rem .6rem;
	background: var(--msg-accent);
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: var(--msg-tt-label, uppercase);
}
@media (max-width: 1023.98px) {
	.page-hero__inner { display: flex; flex-direction: column; justify-content: flex-end; min-height: clamp(300px, 62vw, 460px); padding-block: clamp(3rem, 12vw, 5rem) 2.25rem; }
}

/* Czytelny blok z okruszkami i tytułem – ciemne półprzezroczyste tło (kontrast ≥ 7:1 na każdym zdjęciu) */
.page-hero__box {
	align-self: flex-start;
	max-width: 100%;
	padding: clamp(1rem, 2vw, 1.5rem) clamp(1.1rem, 2.4vw, 2rem);
	background: rgba(12, 14, 18, .78);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	border-left: 6px solid var(--msg-accent);
	box-shadow: 0 8px 28px rgba(0, 0, 0, .3);
}
.page-hero:not(.page-hero--image) .page-hero__box { background: rgba(0, 0, 0, .25); box-shadow: none; }
.page-hero .breadcrumbs { font-size: 1.0625rem; margin-bottom: .6rem; }
.page-hero .breadcrumbs a { text-decoration-thickness: 1px; }
.page-hero .breadcrumbs a:hover { text-decoration-thickness: 2px; }
/* Długi bieżący element okruszków (powtarza tytuł) – w jednej linii, skrócony */
@media (max-width: 767.98px) {
	.page-hero .breadcrumb_last,
	.page-hero .breadcrumbs [aria-current="page"] {
		display: inline-block;
		max-width: 16ch;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
		vertical-align: bottom;
	}
}

/* Okruszki */
.breadcrumbs { margin-bottom: .75rem; font-size: .9375rem; }
.breadcrumbs ol,
.breadcrumbs > span {
	display: flex;
	flex-wrap: wrap;
	gap: .25rem .5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.breadcrumbs li:not(:last-child)::after {
	content: "›";
	margin-left: .5rem;
	opacity: .8;
}
.page-hero .breadcrumbs,
.page-hero .breadcrumbs a { color: #fff; }
.breadcrumbs a { text-underline-offset: .2em; }

/* ==========================================================================
   Treść
   ========================================================================== */
.entry-content { overflow-wrap: break-word; }
.entry-content > * + * { margin-top: 0; }
.entry-content h2 { font-size: calc(clamp(1.4rem, 1.1rem + 1vw, 1.875rem) * var(--msg-hs, 1)); margin-top: 2rem; }
.entry-content h3 { font-size: calc(clamp(1.2rem, 1.05rem + .6vw, 1.5rem) * var(--msg-hs, 1)); margin-top: 1.75rem; }
.entry-content h4 { font-size: 1.125rem; margin-top: 1.5rem; }
.entry-content ul,
.entry-content ol { margin: 0 0 1.25em; padding-left: 1.5em; }
.entry-content li + li { margin-top: .35em; }
.entry-content a { text-decoration: underline; text-decoration-thickness: 1px; }
.entry-content a:hover { text-decoration-thickness: 2px; }
.entry-content img { border-radius: 2px; }
.entry-content blockquote {
	margin: 1.5em 0;
	padding: .5em 1.25em;
	border-left: 4px solid var(--msg-accent);
	background: var(--msg-soft);
	font-size: 1.125rem;
}
.entry-content table {
	width: 100%;
	margin: 1.5em 0;
	border-collapse: collapse;
	font-size: 1rem;
}
.entry-content th,
.entry-content td {
	padding: .6rem .75rem;
	border: 1px solid var(--msg-line);
	text-align: left;
	vertical-align: top;
}
.entry-content th { background: var(--msg-soft); }
.entry-content iframe { width: 100%; border: 0; }
.entry-content iframe[src*="youtube"],
.entry-content iframe[src*="vimeo"] { aspect-ratio: 16 / 9; height: auto; }
.lead { font-size: 1.25rem; }

/* Tabele szersze niż ekran – przewijanie poziome */
@media (max-width: 700px) {
	.entry-content table { display: block; overflow-x: auto; }
}

/* Wyrównanie obrazków (edytor klasyczny) */
.alignleft { float: left; margin: .3em 1.5em 1em 0; }
.alignright { float: right; margin: .3em 0 1em 1.5em; }
.entry-content .alignleft, .entry-content .alignright { max-width: min(48%, 440px); height: auto; }
.aligncenter { display: block; margin-inline: auto; }
.wp-caption { max-width: 100%; }
.wp-caption-text,
figcaption { margin-top: .4rem; color: var(--msg-muted); font-size: .9375rem; }
.entry-content::after { content: ""; display: table; clear: both; }
@media (max-width: 600px) {
	.alignleft,
	.alignright { float: none; margin: 1em auto; display: block; }
	.entry-content .alignleft, .entry-content .alignright { max-width: 100%; }
}

/* Galerie WordPressa */
.gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 160px), 1fr));
	gap: .5rem;
	margin: 1.5em 0;
}
.gallery-item { margin: 0; }
.gallery-item img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }



/* ==========================================================================
   Pojedynczy wpis: zdjęcie + blok z informacjami
   ========================================================================== */
.post-intro {
	position: relative;
	z-index: 2;
	display: grid;
	gap: 0;
	margin-top: clamp(-4rem, -4vw, -1.5rem);
	box-shadow: 0 14px 40px rgba(0, 0, 0, .16);
	background: #fff;
	padding: 0;
	max-width: calc(var(--msg-wrap) + 2 * var(--msg-gutter));
}
@media (min-width: 900px) {
	.post-intro { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
	.post-intro--noimg { grid-template-columns: 1fr; }
}
.post-intro { padding-inline: 0; width: calc(100% - 2 * var(--msg-gutter)); max-width: var(--msg-wrap); }
.post-intro__media { margin: 0; background: var(--msg-dark); }
.post-intro__zoom { display: block; height: 100%; }
.post-intro .post-intro__img {
	display: block;
	width: 100%;
	height: 100% !important;
	min-height: 280px;
	max-height: 560px;
	object-fit: cover;
}
.post-intro__media figcaption { padding: .5rem 1rem; background: var(--msg-dark); color: #e6e6e6; }
.post-intro__card {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	padding: clamp(1.5rem, 3vw, 2.75rem);
	border-top: 6px solid var(--msg-accent);
}
@media (min-width: 900px) {
	.post-intro__card { border-top: 0; border-left: 6px solid var(--msg-accent); justify-content: center; }
}
.post-intro__cats { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.post-intro__cats a {
	display: inline-block;
	padding: .3rem .7rem;
	background: var(--msg-accent);
	color: #fff;
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .05em;
	text-decoration: none;
	text-transform: var(--msg-tt-label, uppercase);
}
.post-intro__cats a:hover { background: var(--msg-accent-dark); text-decoration: underline; }
.post-intro__title {
	margin: 0;
	color: var(--msg-ink);
	font-size: calc(clamp(1.6rem, 1.1rem + 1.7vw, 2.5rem) * var(--msg-hs, 1));
	font-weight: 800;
	line-height: 1.18;
}
.post-intro__meta { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; color: var(--msg-text); font-size: 1.0625rem; }
.post-intro__meta li { display: flex; align-items: center; gap: .6rem; }
.post-intro__meta .icon { flex: none; width: 20px; height: 20px; color: var(--msg-accent); }
.post-intro__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding-top: .5rem; border-top: 1px solid var(--msg-line); }
.post-intro__btn {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	min-height: 44px;
	padding: .45rem .9rem;
	border: 2px solid var(--msg-line);
	border-radius: var(--msg-radius);
	background: #fff;
	color: var(--msg-ink);
	font: inherit;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
}
.post-intro__btn .icon { width: 18px; height: 18px; color: var(--msg-accent); }
.post-intro__btn:hover { border-color: var(--msg-accent); color: var(--msg-accent); }
.post-intro__status { color: #00701a; font-weight: 600; }
.post-intro__back { display: inline-flex; align-items: center; gap: .4rem; align-self: flex-start; min-height: 44px; font-weight: 700; }
.post-intro__back .icon { width: 18px; height: 18px; }
.post-layout { padding-block: clamp(2.5rem, 5vw, 3.5rem) var(--msg-section); }

/* ==========================================================================
   Podstrony i wpisy: treść + panel boczny
   ========================================================================== */
.layout { display: grid; gap: clamp(2rem, 4vw, 3.5rem); align-items: start; }
@media (min-width: 1024px) {
	.layout--sidebar { grid-template-columns: minmax(0, 1fr) clamp(280px, 24vw, 340px); }
	.layout__side { position: sticky; top: 1.5rem; }
	.admin-bar .layout__side { top: calc(32px + 1.5rem); }
}
.layout__main { min-width: 0; }

.entry-content--wide { font-size: 1.125rem; line-height: 1.75; }
.entry-content--wide > p:first-child { font-size: 1.2rem; }
.entry-content--wide img { max-width: 100%; height: auto; }
.entry-content--wide > *:first-child { margin-top: 0; }

/* Panel boczny */
.side-box {
	margin-bottom: 1.5rem;
	padding: 1.25rem 1.4rem 1.4rem;
	background: var(--msg-soft);
	border-top: 4px solid var(--msg-accent);
}
.side-box__title {
	margin: 0 0 .9rem;
	font-size: 1.0625rem;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.side-box ul { margin: 0; padding: 0; list-style: none; }
.side-box__more { display: inline-flex; align-items: center; gap: .35rem; min-height: 44px; margin-top: .5rem; font-weight: 700; }
.side-box__more .icon { width: 18px; height: 18px; }

.side-nav li + li,
.side-cats li + li { border-top: 1px solid var(--msg-line); }
.side-nav a,
.side-cats a {
	display: block;
	padding: .65rem .5rem .65rem .85rem;
	border-left: 3px solid transparent;
	color: var(--msg-ink);
	line-height: 1.35;
	text-decoration: none;
}
.side-nav a:hover,
.side-cats a:hover { color: var(--msg-accent); text-decoration: underline; border-left-color: var(--msg-line); }
.side-nav a.is-current,
.side-cats a.is-current { border-left-color: var(--msg-accent); color: var(--msg-accent); font-weight: 700; }
.side-cats__count { color: var(--msg-muted); font-weight: 400; }

.side-latest__item {
	display: grid;
	grid-template-columns: 76px minmax(0, 1fr);
	gap: .8rem;
	align-items: start;
	padding: .65rem 0;
}
.side-latest__item + .side-latest__item { border-top: 1px solid var(--msg-line); }
.side-latest .side-latest__img { display: block; width: 76px; height: 57px; object-fit: cover; }
.side-latest__img--empty { background: var(--msg-accent); }
.side-latest__link { display: block; color: var(--msg-ink); font-weight: 600; line-height: 1.3; text-decoration: none; }
.side-latest__link:hover { color: var(--msg-accent); text-decoration: underline; }
.side-latest time { display: block; margin-top: .2rem; color: var(--msg-muted); font-size: .9375rem; }

.side-contact li { display: flex; align-items: center; gap: .6rem; min-height: 40px; }
.side-contact .icon { width: 18px; height: 18px; color: var(--msg-accent); }
.side-contact a { color: var(--msg-ink); font-weight: 600; }

/* Galerie Responsive Lightbox w treści: równa siatka kwadratowych miniatur */
.entry-content .rl-gallery-container { margin: 1.5rem 0; }
.entry-content .rl-basicgrid-gallery {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr));
	gap: 8px;
	height: auto !important;
}
.entry-content .rl-basicgrid-gallery .rl-gallery-item {
	position: static !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	transform: none !important;
}
.entry-content .rl-gallery-link { display: block; overflow: hidden; }
.entry-content .rl-gallery-link img {
	display: block;
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: 2px;
	transition: transform .3s ease;
}
.entry-content .rl-gallery-link:hover img { transform: scale(1.05); }
.entry-content .rl-loading .rl-gallery { opacity: 1 !important; }

.single-post .post-nav { margin-top: 2.5rem; }

/* ==========================================================================
   Pojedynczy wpis
   ========================================================================== */
.post-header { padding-block: 1.5rem 1.25rem; }
.post-header__title {
	margin-bottom: .75rem;
	font-size: calc(clamp(1.75rem, 1.2rem + 2vw, 2.75rem) * var(--msg-hs, 1));
}
.post-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem;
	margin: 0;
	color: var(--msg-muted);
	font-size: 1rem;
}
.post-meta .icon { width: 18px; height: 18px; color: var(--msg-accent); }
.post-meta a { color: var(--msg-accent); font-weight: 700; }

.post-cover { margin-block: 0 2rem; }
.post-cover__img {
	display: block;
	width: 100%;
	max-height: 70vh;
	object-fit: cover;
	border-radius: var(--msg-radius);
}

.post-footer { padding-block: 2rem var(--msg-section); }
.post-nav {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
	gap: 1rem;
	padding-top: 2rem;
	border-top: 1px solid var(--msg-line);
}
.post-nav__link {
	display: flex;
	flex-direction: column;
	gap: .25rem;
	padding: 1rem 1.25rem;
	border: 1px solid var(--msg-line);
	border-radius: var(--msg-radius);
	color: var(--msg-ink);
	text-decoration: none;
}
.post-nav__link--next { text-align: right; align-items: flex-end; }
.post-nav__link:hover { border-color: var(--msg-accent); color: var(--msg-ink); }
.post-nav__link:hover .post-nav__title { text-decoration: underline; }
.post-nav__label {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	color: var(--msg-accent);
	font-size: .9375rem;
	font-weight: 700;
}
.post-nav__label .icon { width: 18px; height: 18px; }
.post-nav__title { font-weight: 700; line-height: 1.35; }

.related { background: var(--msg-soft); }

/* ==========================================================================
   Siatka wpisów
   ========================================================================== */
.card-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(1rem, 2vw, 1.5rem);
	margin: 0;
	padding: 0;
	list-style: none;
}
@media (min-width: 640px) { .card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.card-grid__item { min-width: 0; }

.card {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--msg-line);
	border-radius: var(--msg-radius);
	transition: box-shadow .2s, border-color .2s;
}
.card:hover { border-color: #b9b3ab; box-shadow: 0 8px 24px rgba(0, 0, 0, .1); }

.card__media {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--msg-dark);
}
.card .card__media .card__img,
.card .card__media .card__placeholder {
	position: absolute !important;
	inset: 0 !important;
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	transition: transform .4s ease;
}
.card__placeholder {
	background:
		linear-gradient(135deg, rgba(255, 255, 255, .07) 25%, transparent 25%) 0 0 / 24px 24px,
		var(--msg-accent);
}
.card:hover .card__img,
.card:focus-within .card__img { transform: scale(1.04); }

.card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: .5rem;
	padding: 1.25rem 1.4rem 1.4rem;
}
.card__cat {
	align-self: flex-start;
	margin: 0;
	padding: .2rem .55rem;
	background: var(--msg-accent);
	color: #fff;
	font-size: .8125rem;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: var(--msg-tt-label, uppercase);
}
.card__title { margin: 0; font-size: calc(clamp(1.125rem, 1rem + .4vw, 1.3rem) * var(--msg-hs, 1)); line-height: 1.3; }
.card__link { color: var(--msg-ink); text-decoration: none; }
.card__link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.card__link:focus-visible { outline: none; box-shadow: none; }
.card:focus-within { outline: 3px solid var(--msg-focus); outline-offset: 2px; box-shadow: 0 0 0 5px var(--msg-ink); }
.card:hover .card__link { color: var(--msg-ink); text-decoration: underline; text-decoration-thickness: 2px; }
.card__date { color: var(--msg-muted); font-size: 1rem; }
.card__excerpt { margin: 0; color: #333; font-size: 1rem; line-height: 1.6; }
.card__more {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	margin-top: auto;
	padding-top: .35rem;
	color: var(--msg-accent);
	font-weight: 700;
}
.card__more .icon { width: 18px; height: 18px; transition: transform .2s; }
.card:hover .card__more .icon { transform: translateX(4px); }

.empty-state { font-size: 1.125rem; }

/* ==========================================================================
   Stronicowanie
   ========================================================================== */
.pager {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .75rem;
	margin-top: 2.5rem;
}
.pager__status { margin: 0; color: var(--msg-muted); font-size: 1rem; }
.pager__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: .375rem;
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}
.pager__page,
.pager__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .4rem;
	min-width: 44px;
	min-height: 44px;
	padding: 0 .75rem;
	border: 2px solid #c8c8c8;
	border-radius: var(--msg-radius);
	background: #fff;
	color: var(--msg-ink);
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
}
.pager__btn .icon { width: 18px; height: 18px; }
a.pager__page:hover,
a.pager__btn:hover { border-color: var(--msg-accent); color: var(--msg-accent); text-decoration: underline; }
.pager__page.is-current,
.pager__page.is-current:hover { background: var(--msg-accent); border-color: var(--msg-accent); color: #fff; text-decoration: none; }
.pager__btn.is-disabled { border-color: #e0e0e0; color: #6b6b6b; cursor: not-allowed; }
.pager__gap { min-width: 1.5rem; text-align: center; font-weight: 600; }

@media (max-width: 600px) {
	.pager__num.is-far { display: none; }
	.pager__step { flex: 1 1 calc(50% - .25rem); order: 2; }
	.pager__step .pager__btn { width: 100%; }
	.pager__num,
	.pager__gap { order: 1; }
}

/* ==========================================================================
   Wyszukiwarka
   ========================================================================== */
.search-form { margin: 1rem 0 1.5rem; }
.search-form__label { display: block; margin-bottom: .4rem; font-weight: 700; }
.search-form__row { display: flex; gap: .5rem; flex-wrap: wrap; }
.search-form__input {
	flex: 1 1 260px;
	min-height: 48px;
	padding: .5rem .9rem;
	border: 2px solid #8a8a8a;
	border-radius: var(--msg-radius);
	font: inherit;
}
.search-form__input:focus-visible { border-color: var(--msg-ink); }
.search-again { margin-bottom: 2rem; }
.search-count { color: var(--msg-muted); }

/* ==========================================================================
   Pasek CTA i stopka
   ========================================================================== */
.cta-band { background: var(--msg-accent); color: #fff; }
.cta-band__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 1rem 2rem;
	padding-block: clamp(.7rem, 1.2vw, 1rem);
	text-align: center;
}
.cta-band__text {
	margin: 0;
	font-size: clamp(1.25rem, 1rem + 1vw, 1.75rem);
	font-weight: 700;
}
.cta-band__text a { color: #fff; text-decoration: none; }
.cta-band__text a:hover { text-decoration: underline; }
.cta-hl {
	position: relative;
	display: inline-block;
	padding: 0 .35em;
	text-transform: uppercase;
}
.cta-hl svg {
	position: absolute;
	inset: -.35em -.15em;
	width: calc(100% + .3em);
	height: calc(100% + .7em);
	overflow: visible;
	pointer-events: none;
}
.cta-hl path {
	fill: none;
	stroke: #ffc63a;
	stroke-width: 4;
	stroke-linecap: round;
	stroke-dasharray: 1600;
	stroke-dashoffset: 1600;
	animation: msg-draw 1.4s ease-out .3s forwards;
}
@keyframes msg-draw { to { stroke-dashoffset: 0; } }

.site-footer {
	position: relative;
	isolation: isolate;
	background: var(--msg-dark) var(--msg-footer-image, none) center / cover no-repeat;
	color: #fff;
	font-size: 1rem;
}
.site-footer::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(14, 24, 48, .86);
}
.site-footer a { color: #fff; }
.footer-map { display: block; width: clamp(150px, 14vw, 210px); max-width: 100%; height: auto; margin-bottom: 1rem; }
.site-footer a:hover { color: #fff; text-decoration-thickness: 2px; }

.site-footer__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	padding-block: var(--msg-section);
}
@media (min-width: 640px) { .site-footer__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .site-footer__grid { grid-template-columns: auto 1.3fr 1fr 1fr 1fr; align-items: start; } }

.footer-col__title {
	margin-bottom: 1rem;
	padding-bottom: .5rem;
	border-bottom: 2px solid var(--msg-accent);
	color: #fff;
	font-size: 1.125rem;
	text-transform: uppercase;
	letter-spacing: .05em;
}
.footer-school { margin-bottom: 1rem; line-height: 1.5; }
.site-footer h2,
.site-footer h3,
.site-footer .wp-block-heading { color: #fff; }
.footer-widget { margin-top: 1.5rem; }
.footer-widget ul { padding-left: 1.1rem; }
.footer-address {
	display: flex;
	gap: .6rem;
	font-style: normal;
}
.footer-list,
.footer-menu,
.footer-social {
	margin: 0;
	padding: 0;
	list-style: none;
}
.footer-list li {
	display: flex;
	align-items: center;
	gap: .6rem;
	min-height: 40px;
}
.site-footer .icon { flex: none; width: 18px; height: 18px; color: #f0c4c4; }
.footer-menu li { margin-bottom: .4rem; }
.footer-menu a { display: inline-block; padding-block: .3rem; }

.footer-social { display: flex; flex-direction: column; gap: 1rem; }
.social-btn {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	min-height: 44px;
	font-weight: 700;
	text-decoration: none;
}
.social-btn .icon {
	width: 40px;
	height: 40px;
	padding: 9px;
	border-radius: 50%;
	background: #fff;
	color: var(--msg-dark);
}
.social-btn:hover span { text-decoration: underline; }
.bip-link { display: inline-block; }
.bip-link img { display: block; width: auto; max-height: 64px; }
.bip-text { font-weight: 700; }

.site-footer__bottom { background: var(--msg-darker); font-size: .9375rem; }
.site-footer__bottom-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .5rem 1.5rem;
	padding-block: .75rem;
}
.site-footer__bottom p { margin: 0; color: #e0e0e0; }
.to-top {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	min-height: 44px;
	text-decoration: none;
}
.to-top:hover { text-decoration: underline; }


/* ==========================================================================
   Karuzele (wspólne)
   ========================================================================== */
.carousel [data-carousel-track] { display: grid; }
.carousel .carousel__slide {
	grid-area: 1 / 1;
	opacity: 0;
	visibility: hidden;
	transition: opacity .7s ease, visibility .7s;
}
.carousel .carousel__slide.is-active { opacity: 1; visibility: visible; }

.carousel__controls {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem;
}
.carousel__btn {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 2px solid currentColor;
	border-radius: 50%;
	background: rgba(0, 0, 0, .35);
	color: #fff;
	cursor: pointer;
}
.carousel__btn:hover { background: #fff; color: var(--msg-ink); border-color: #fff; }
.carousel__btn .icon,
.carousel__btn svg { width: 20px; height: 20px; }
.carousel__pause .icon-play { display: none; }
.carousel.is-paused .carousel__pause .icon-play { display: block; }
.carousel.is-paused .carousel__pause .icon-pause { display: none; }

.carousel__dots {
	display: flex;
	gap: .25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.carousel__dot {
	position: relative;
	width: 32px;
	height: 44px;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
}
.carousel__dot::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 14px;
	height: 14px;
	border: 2px solid #fff;
	border-radius: 50%;
	background: transparent;
	transform: translate(-50%, -50%);
	box-shadow: 0 0 0 1px rgba(0, 0, 0, .5);
}
.carousel__dot[aria-current="true"]::before { background: #fff; width: 18px; height: 18px; }

/* ==========================================================================
   Górny baner strony głównej [msg_hero] – jak dotychczas:
   zdjęcie na całą szerokość, nagłówek na zdjęciu, 5 przycisków szkół na środku,
   łuk na dole banera.
   ========================================================================== */
.hero {
	position: relative;
	isolation: isolate;
	display: grid;
	background: var(--msg-dark);
	color: #fff;
}
.hero__media,
.hero__content,
.hero__controls { grid-area: 1 / 1; }
.hero__media { position: relative; z-index: -2; display: grid; }
.hero__slide { grid-area: 1 / 1; position: relative; }
.hero .hero__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100% !important;
	max-width: none;
	object-fit: cover;
}
/* Delikatne przyciemnienie tylko u dołu – pod przyciskami */
.hero::before {
	content: "";
	grid-area: 1 / 1;
	z-index: -1;
	background: linear-gradient(0deg, rgba(0, 0, 0, .55) 0%, rgba(0, 0, 0, .2) 40%, rgba(0, 0, 0, 0) 65%);
}
.hero__content {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-end;
	padding-block: clamp(3rem, 12vw, 6rem) clamp(4.5rem, 8vw, 7rem);
	text-align: center;
}
.hero__title {
	max-width: 22ch;
	margin: 0 0 .5rem;
	color: #fff;
	font-size: calc(clamp(2rem, 1.2rem + 3vw, 3.5rem) * var(--msg-hs, 1));
	font-weight: 800;
	line-height: 1.1;
	text-shadow: 0 2px 8px rgba(0, 0, 0, .55);
}
.hero__sub {
	max-width: 50ch;
	margin: 0 0 1.5rem;
	font-size: clamp(1.05rem, .95rem + .5vw, 1.375rem);
	text-shadow: 0 1px 4px rgba(0, 0, 0, .6);
}
.hero__schools { width: 100%; }
.hero__tiles {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: clamp(.6rem, 1.2vw, 1.1rem);
	margin: 0;
	padding: 0;
	list-style: none;
}
.hero__tiles li { flex: 0 1 11.5rem; }
.hero__tiles a {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	min-height: 5.25rem;
	padding: .75rem .9rem;
	border: 2px solid #fff;
	border-radius: 7px;
	background: rgba(15, 18, 22, .62);
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
	color: #fff;
	font-size: .875rem;
	font-weight: 700;
	line-height: 1.35;
	text-align: center;
	text-decoration: none;
	text-transform: var(--msg-tt-tile, uppercase);
	box-shadow: 0 2px 10px rgba(0, 0, 0, .25);
	transition: background-color .15s;
}
.hero__tiles a:hover { background: var(--msg-accent); color: #fff; }
.hero__controls {
	align-self: end;
	justify-self: end;
	z-index: 2;
	padding: 0 var(--msg-gutter) clamp(2.5rem, 5vw, 4rem);
}
.hero .carousel__btn { width: 40px; height: 40px; }

@media (min-width: 1024px) {
	.hero {
		/* Dolna krawędź w kształcie „V”, jak dotychczas */
		clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--msg-v, 3.5vw)), 50% 100%, 0 calc(100% - var(--msg-v, 3.5vw)));
	}
	.hero__content {
		min-height: clamp(560px, 46vw, 780px);
		padding-top: calc(var(--msg-header-h, 250px) + 2rem);
	}
}
@media (max-width: 1023.98px) {
	.hero__content { padding-top: clamp(4rem, 18vw, 9rem); }
}
@media (max-width: 640px) {
	.hero__tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
	.hero__tiles li:last-child:nth-child(odd) { grid-column: 1 / -1; }
	.hero__tiles a { min-height: 4.25rem; padding: .6rem .5rem; font-size: .8125rem; hyphens: auto; overflow-wrap: anywhere; }
	.hero__controls { justify-self: center; padding-bottom: 1rem; }
	.hero__content { padding-bottom: 4.5rem; }
}

/* ==========================================================================
   Slider „Sukcesy” [msg_sukcesy] – duże zdjęcie na całą szerokość,
   ciemne pole z tytułem po lewej, strzałki przy krawędziach (jak dotychczas)
   ========================================================================== */
.spotlight {
	position: relative;
	background: var(--msg-darker);
	color: #fff;
	overflow: hidden;
}
.spotlight__track { display: grid; }
.spotlight__slide {
	grid-area: 1 / 1;
	position: relative;
	display: grid;
	align-items: center;
	min-height: clamp(420px, 42vw, 640px);
}
.spotlight__media { position: absolute; inset: 0; }
.spotlight .spotlight__img,
.spotlight__placeholder {
	position: absolute !important;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover;
}
.spotlight__placeholder { background: var(--msg-accent); }
.spotlight__body {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .6rem;
	width: min(42rem, calc(100% - 2 * var(--msg-gutter) - 7rem));
	margin: 3rem 0 4.5rem clamp(4.5rem, 7vw, 8rem);
	padding: clamp(1.25rem, 2.5vw, 2rem);
	background: rgba(12, 14, 18, .82);
	border-left: 5px solid var(--msg-accent);
}
.spotlight__title {
	margin: 0;
	color: #fff;
	font-size: calc(clamp(1.75rem, 1.15rem + 2.2vw, 3rem) * var(--msg-hs, 1));
	font-weight: 700;
	line-height: 1.15;
	text-transform: var(--msg-tt-title, uppercase);
}
.spotlight__date { font-size: 1.125rem; opacity: .95; }
.spotlight__excerpt { margin: 0; font-size: clamp(1.0625rem, .95rem + .4vw, 1.3rem); line-height: 1.6; }
.spotlight .spotlight__more { font-size: 1.0625rem; padding: .75rem 1.6rem; }
.spotlight .spotlight__more {
	margin-top: .5rem;
	background: var(--msg-accent);
	border-color: var(--msg-accent);
	color: #fff;
}
.spotlight .spotlight__more:hover { background: var(--msg-accent-dark); border-color: #fff; color: #fff; }

/* Sterowanie: strzałki przy krawędziach, kropki i pauza na dole */
.spotlight__controls .carousel__controls { position: static; }
.spotlight [data-carousel-prev],
.spotlight [data-carousel-next] {
	position: absolute;
	top: 50%;
	z-index: 3;
	width: 52px;
	height: 52px;
	transform: translateY(-50%);
	border-color: rgba(255, 255, 255, .9);
	background: rgba(0, 0, 0, .45);
}
.spotlight [data-carousel-prev] { left: clamp(.5rem, 1.5vw, 1.25rem); }
.spotlight [data-carousel-next] { right: clamp(.5rem, 1.5vw, 1.25rem); }
.spotlight .carousel__dots,
.spotlight [data-carousel-pause] {
	position: absolute;
	bottom: 1rem;
	z-index: 3;
}
.spotlight .carousel__dots { left: 50%; transform: translateX(-50%); }
.spotlight [data-carousel-pause] { left: calc(50% - (var(--n, 5) * 36px) / 2 - 52px); bottom: calc(1rem + 2px); width: 40px; height: 40px; background: rgba(0, 0, 0, .45); }

@media (max-width: 700px) {
	.spotlight__slide { align-items: end; min-height: 0; }
	.spotlight__media { position: relative; inset: auto; aspect-ratio: 4 / 3; }
	.spotlight__body { width: auto; margin: 0; border-left: 0; border-top: 5px solid var(--msg-accent); background: var(--msg-darker); padding-bottom: 4.5rem; }
	.spotlight [data-carousel-prev],
	.spotlight [data-carousel-next] { top: calc((100vw * .75) / 2); }
}

/* ==========================================================================
   Strona główna – sekcje jak w dotychczasowym wyglądzie
   ========================================================================== */

/* Aktualności: 6 kafelków na całą szerokość */
.home-news { padding: 8px 8px 0; }
.home-news .msg-lp { --msg-lp-gap: 8px; }
.home-news .msg-lp--overlay .msg-lp__card::before { aspect-ratio: var(--msg-news-ratio, 16 / 10); }
.home-news .msg-lp--card .msg-lp__media { aspect-ratio: var(--msg-news-ratio, 16 / 10); }
.home-news .msg-lp__body { padding: 2.5rem 1.25rem 1rem; }
.home-news .msg-lp__title { font-size: clamp(1.05rem, .95rem + .35vw, 1.25rem); }
/* „Wszystkie aktualności” – czerwona zakładka w rogu, bez dodatkowego pasa */
.home-news { position: relative; z-index: 2; }
.home-news__more {
	position: absolute;
	right: 8px;
	bottom: 0;
	margin: 0;
	transform: translateY(100%);
}
.home-news__more a,
.home-news__more a:visited {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	min-height: 44px;
	padding: .55rem 1.15rem;
	background: var(--msg-accent);
	color: #fff;
	font-size: .9375rem;
	font-weight: 700;
	letter-spacing: .02em;
	text-decoration: none;
	text-transform: var(--msg-tt-label, uppercase);
	box-shadow: 0 4px 12px rgba(0, 0, 0, .25);
}
.home-news__more a:hover { background: var(--msg-accent-dark); color: #fff; text-decoration: underline; }
.home-news__more .icon { width: 18px; height: 18px; }

/* Najechanie na kafelek – animacja w MSG Core (latest-posts.css); tekst zawsze biały */
.home-news .msg-lp--overlay .msg-lp__link,
.home-news .msg-lp--overlay .msg-lp__link:hover,
.home-news .msg-lp--overlay .msg-lp__link:focus { color: #fff !important; }

/* Wydarzenia + projekty na zdjęciu, dolna krawędź „V” */
.home-events {
	position: relative;
	isolation: isolate;
	margin-top: 8px;
	padding: clamp(3.75rem, 6vw, 5rem) 0 calc(clamp(3rem, 6vw, 5rem) + 3.5vw);
	background: #1d1d1d;
	color: #fff;
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - 3.5vw), 50% 100%, 0 calc(100% - 3.5vw));
}
.home-events__bg {
	position: absolute;
	inset: 0;
	z-index: -2;
	width: 100%;
	height: 100% !important;
	max-width: none;
	object-fit: cover;
}
.home-events::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(0, 0, 0, .62);
}
.home-events__inner { text-align: center; }
.home-events__title {
	margin: 0 0 .4rem;
	color: #fff;
	font-size: calc(clamp(1.6rem, 1.2rem + 1.3vw, 2.1rem) * var(--msg-hs, 1));
	font-weight: 600;
	text-transform: var(--msg-tt-title, uppercase);
	letter-spacing: .02em;
}
.home-events__all { margin: 0 0 2rem; font-size: 1.125rem; font-weight: 600; }
.home-events__all a,
.home-events__all a:hover { color: #fff; }
.home-events__empty { font-size: 1.125rem; }

.events {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: 1.25rem;
	max-width: 1040px;
	margin: 0 auto;
	padding: 0;
	list-style: none;
	text-align: left;
}
.event {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	color: #fff;
	text-decoration: none;
}
.event__date {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: .5rem;
	margin-left: .6rem;
	padding: .55rem .9rem;
	background: var(--msg-accent);
	box-shadow: 0 4px 10px rgba(0, 0, 0, .3);
	position: relative;
	z-index: 1;
}
.event__day { font-size: 1.9rem; font-weight: 500; line-height: 1; }
.event__my { font-size: .75rem; font-weight: 700; line-height: 1.25; }
.event__title {
	flex: 1;
	display: flex;
	align-items: center;
	min-height: 5.5rem;
	margin-top: -.6rem;
	padding: 1.4rem 1.1rem 1rem;
	background: rgba(58, 58, 58, .92);
	font-size: 1.125rem;
	font-weight: 500;
	line-height: 1.3;
}
.event:hover,
.event:focus-visible { color: #fff; }
.event:hover .event__title { background: rgba(28, 28, 28, .95); text-decoration: underline; text-underline-offset: .2em; }
.event:hover .event__date { background: var(--msg-accent-dark); }
.event:focus-visible { outline-offset: 4px; }

.projects {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	gap: clamp(1.5rem, 4vw, 3rem);
	max-width: 760px;
	margin: clamp(2.5rem, 5vw, 3.5rem) auto 0;
	padding: 0;
	list-style: none;
}
.project { display: block; color: #fff; text-decoration: none; }
.project__title { margin: 0 0 .75rem; color: #fff; font-size: 1.25rem; font-weight: 600; }
.project:hover .project__title { text-decoration: underline; }
.project .project__img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: contain;
	background: #fff;
	padding: .5rem;
	box-shadow: 0 6px 18px rgba(0, 0, 0, .35);
}

/* Okienko wydarzenia */
.ev-dialog {
	width: min(40rem, calc(100vw - 2rem));
	max-height: calc(100vh - 2rem);
	padding: 0;
	border: 0;
	border-top: 6px solid var(--msg-accent);
	background: #fff;
	color: var(--msg-text);
	box-shadow: 0 20px 60px rgba(0, 0, 0, .45);
	text-align: left;
}
.ev-dialog::backdrop { background: rgba(10, 12, 16, .7); }
.ev-dialog__inner { position: relative; }
.ev-dialog__close {
	position: absolute;
	top: .6rem;
	right: .6rem;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	color: var(--msg-ink);
	cursor: pointer;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .2);
}
.ev-dialog__close:hover { background: var(--msg-accent); color: #fff; }
.ev-dialog .ev-dialog__img { display: block; width: 100%; height: auto; max-height: 280px; object-fit: cover; }
.ev-dialog__head {
	display: flex;
	align-items: stretch;
	gap: 0;
	background: var(--msg-dark);
	color: #fff;
}
.ev-dialog__date {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 6.5rem;
	padding: 1rem .75rem;
	background: var(--msg-accent);
	text-align: center;
}
.ev-dialog__day { font-size: 2.6rem; font-weight: 700; line-height: 1; }
.ev-dialog__my { margin-top: .25rem; font-size: .8125rem; font-weight: 700; line-height: 1.25; text-transform: uppercase; }
.ev-dialog__head .ev-dialog__title {
	align-self: center;
	margin: 0;
	padding: 1rem 3.75rem 1rem 1.25rem;
	color: #fff;
	font-size: calc(clamp(1.3rem, 1.05rem + 1vw, 1.75rem) * var(--msg-hs, 1));
	line-height: 1.2;
}
.ev-dialog__body { padding: 1.5rem 1.75rem 1.75rem; }

/* Odliczanie */
.countdown { margin: 0 0 1.25rem; padding: 1rem 1.1rem 1.1rem; background: var(--msg-soft); border-left: 4px solid var(--msg-accent); }
.countdown__label { margin: 0 0 .6rem; font-weight: 700; }
.countdown__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .5rem; }
.countdown__unit {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: .6rem .25rem;
	background: #fff;
	border: 1px solid var(--msg-line);
}
.countdown__unit b { color: var(--msg-accent); font-size: clamp(1.5rem, 1.2rem + 1vw, 2.1rem); font-variant-numeric: tabular-nums; line-height: 1.1; }
.countdown__unit small { color: var(--msg-muted); font-size: .875rem; font-weight: 600; }
.countdown.is-done .countdown__grid { display: none; }
.countdown.is-done .countdown__label { margin: 0; }

/* Dodaj do kalendarza */
.ev-add { margin-bottom: 1.25rem; }
.ev-add__label { margin: 0 0 .5rem; font-weight: 700; }
.ev-add__list { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.ev-add__btn {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: .45rem 1rem;
	border: 2px solid var(--msg-accent);
	border-radius: var(--msg-radius);
	color: var(--msg-accent);
	font-weight: 700;
	text-decoration: none;
}
.ev-add__btn:hover { background: var(--msg-accent); color: #fff; }
.ev-dialog__desc h4 { margin: 0 0 .5rem; font-size: 1.125rem; }
.ev-dialog__desc { border-top: 1px solid var(--msg-line); padding-top: 1rem; }
.ev-dialog__meta { display: grid; gap: .5rem; margin: 0 0 1.25rem; padding: 0; list-style: none; }
.ev-dialog__meta li { display: flex; align-items: center; gap: .6rem; font-weight: 600; }
.ev-dialog__meta .icon { flex: none; width: 20px; height: 20px; color: var(--msg-accent); }
html.dialog-open { overflow: hidden; }

/* Film z drona */
.home-video {
	position: relative;
	isolation: isolate;
	display: grid;
	/* Proporcje jak film (ustawiane po wczytaniu filmu) – cały kadr widoczny, nic nie jest ucięte */
	aspect-ratio: var(--video-ratio, 16 / 9);
	margin-top: 0;
	background: var(--msg-dark);
	overflow: hidden;
}
.home-video__media {
	position: absolute;
	inset: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.home-video__text {
	justify-self: end;
	align-self: start;
	margin: clamp(1rem, 2.5vw, 2rem) clamp(1rem, 3vw, 2.5rem) 0 0;
	color: #fff;
	font-family: "Dancing Script", "Segoe Script", cursive;
	font-size: clamp(1.4rem, 1rem + 1.4vw, 2.4rem);
	font-weight: 700;
	line-height: 1.15;
	text-align: right;
	text-decoration: none;
	text-shadow: 0 2px 8px rgba(0, 0, 0, .7);
}
a.home-video__text:hover { color: #fff; text-decoration: underline; text-decoration-thickness: 2px; }
.home-video__toggle {
	position: absolute;
	left: 1rem;
	bottom: 1rem;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 2px solid #fff;
	border-radius: 50%;
	background: rgba(0, 0, 0, .5);
	color: #fff;
	cursor: pointer;
}
.home-video__toggle:hover { background: #fff; color: var(--msg-ink); }
.home-video__toggle .icon-play { display: none; }
.home-video.is-paused .home-video__toggle .icon-play { display: block; }
.home-video.is-paused .home-video__toggle .icon-pause { display: none; }

/* Wyróżnienia i partnerzy – siatka z czerwonymi przerywanymi ramkami */
.home-awards { background: #fff; }
.awards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 2px dashed #930e12;
	border-left: 2px dashed #930e12;
}
.awards__item {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: clamp(150px, 15vw, 230px);
	padding: clamp(1rem, 2vw, 1.75rem);
	border-right: 2px dashed #930e12;
	border-bottom: 2px dashed #930e12;
}
.awards .awards__img {
	display: block;
	width: auto;
	max-width: 100%;
	max-height: clamp(110px, 12vw, 190px);
	object-fit: contain;
}

/* Telefon: te same 3 kolumny, tylko mniejsze (kwadratowe pola) */
@media (max-width: 767.98px) {
	.home-awards .awards__item {
		min-height: 0;
		aspect-ratio: 1;
		padding: .6rem;
		border: 0;
		background:
			repeating-linear-gradient(to bottom, #930e12 0 6px, transparent 6px 11px) right top / 2px 100% no-repeat,
			repeating-linear-gradient(to right, #930e12 0 6px, transparent 6px 11px) left bottom / 100% 2px no-repeat;
	}
	.home-awards .awards {
		border: 0;
		background:
			repeating-linear-gradient(to bottom, #930e12 0 6px, transparent 6px 11px) left top / 2px 100% no-repeat,
			repeating-linear-gradient(to right, #930e12 0 6px, transparent 6px 11px) left top / 100% 2px no-repeat;
	}
	.home-awards .awards .awards__img { max-height: calc(33.3vw - 1.6rem); }
}

/* Pasek „Sukces niejedno ma imię – sprawdź!” + slider */
.home-success { position: relative; margin-top: clamp(2rem, 4vw, 3rem); }
.home-success__banner {
	position: relative;
	z-index: 2;
	display: flex;
	justify-content: center;
	width: min(100%, 64rem);
	margin: 0 0 0 auto;
	padding: .9rem 2rem .9rem 4.5rem;
	font-size: calc(clamp(1.25rem, .95rem + 1.1vw, 2rem) * var(--msg-hs, 1));
	font-weight: 700;
	color: #fff;
	isolation: isolate;
}
.home-success__banner::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--msg-accent);
	clip-path: polygon(3rem 0, 100% 0, 100% 100%, 0 100%);
}
.home-success__banner a { color: #fff; text-decoration: none; }
.home-success__banner a:hover { text-decoration: underline; }
@media (max-width: 640px) {
	.home-success__banner { padding-left: 2.5rem; font-size: calc(1.05rem * var(--msg-hs, 1)); }
	.home-success__banner::before { clip-path: polygon(1.5rem 0, 100% 0, 100% 100%, 0 100%); }
}

/* ==========================================================================
   Sekcje strony głównej (klasy CSS używane w szablonie Elementora)
   ========================================================================== */
.msg-section { padding-block: var(--msg-section); }
.msg-section--soft { background: var(--msg-soft); }
.msg-section--dark { background: var(--msg-dark); color: #fff; }
.msg-section--dark h2,
.msg-section--dark h3 { color: #fff; }
.msg-section-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: .75rem 1.5rem;
	margin-bottom: 1.5rem;
}
.msg-section-head .elementor-heading-title,
.msg-heading .elementor-heading-title {
	position: relative;
	padding-bottom: .5rem;
}
.msg-heading .elementor-heading-title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 64px;
	height: 4px;
	background: var(--msg-accent);
}
.msg-section--dark .msg-heading .elementor-heading-title::after { background: #fff; }


/* Sekcje w szablonie Elementora (odstępy ustawione w samym Elementorze) */
.msg-sec.msg-section--soft { background: var(--msg-soft); }
.msg-sec.msg-section--dark { background: var(--msg-dark); color: #fff; }
.msg-section--dark .elementor-heading-title { color: #fff; }
.msg-section--dark .elementor-widget-text-editor { color: #fff; font-size: 1.125rem; max-width: 60ch; }
.msg-section-head .elementor-heading-title,
.msg-heading .elementor-heading-title { font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.125rem); font-weight: 700; color: var(--msg-ink); }
.msg-section--dark .msg-heading .elementor-heading-title { color: #fff; }
.msg-btn .elementor-button { min-height: 44px; font-weight: 700; }
.msg-btn .elementor-button:hover { background-color: var(--msg-accent-dark) !important; }
.msg-btn--light .elementor-button { background-color: #fff !important; color: var(--msg-accent) !important; }
.msg-btn--light .elementor-button:hover { background-color: var(--msg-soft) !important; text-decoration: underline; }
.msg-project .elementor-heading-title a { color: var(--msg-ink); }
.msg-project .elementor-heading-title a:hover { color: var(--msg-accent); text-decoration: underline; }

.msg-section-head .section-title { margin: 0; }
.msg-title { position: relative; padding-bottom: .5rem; }
.msg-title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 64px;
	height: 4px;
	background: var(--msg-accent);
}

/* Kafelki logotypów: równe pola, logo wycentrowane */
.msg-logos .elementor-widget-image {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	background: #fff;
	border: 1px solid var(--msg-line);
	border-radius: var(--msg-radius);
	aspect-ratio: 4 / 3;
}
.msg-logos .elementor-widget-image img {
	max-height: 140px;
	width: auto;
	object-fit: contain;
}

/* Karty projektów (Zawodowa Małopolska, BCU) */
.msg-project .elementor-widget-image img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: contain;
	background: #fff;
	border: 1px solid var(--msg-line);
	border-radius: var(--msg-radius);
}

/* ==========================================================================
   Elementor – współpraca z motywem
   ========================================================================== */
.page-elementor { width: 100%; }
.page-elementor > .elementor { width: 100%; }

/* Kontenery Elementora wyrównane do szerokości motywu (ustaw też 1240 px w Ustawieniach witryny) */
.e-con.e-con-boxed { --container-max-width: var(--msg-wrap); }

/* Treść stron z dawnych „sekcji” Elementora: nic nie wystaje poza ekran */
.elementor-section,
.e-con { max-width: 100vw; }
.site-main { overflow-x: clip; }

/* ==========================================================================
   Jednolite podstrony z Elementora (MSG → Ustawienia → Podstrony)
   Treść z Elementora wpisana w tę samą kolumnę, czcionki, kolory i odstępy
   co zwykłe podstrony. Układ kolumn zostaje, szerokości i ozdobniki – nie.
   ========================================================================== */
.msg-content .elementor { width: 100%; }
.msg-content .elementor-section,
.msg-content .elementor-inner-section,
.msg-content .e-con {
	position: relative !important;
	left: auto !important;
	width: 100% !important;
	max-width: 100% !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	box-shadow: none !important;
	color: inherit !important;
}
.msg-content .elementor-section > .elementor-background-overlay,
.msg-content .e-con > .elementor-background-overlay,
.msg-content .elementor-shape,
.msg-content .elementor-background-video-container,
.msg-content .elementor-background-slideshow { display: none !important; }
.msg-content .elementor-top-section + .elementor-top-section,
.msg-content .e-con + .e-con { margin-top: 2.25rem !important; }

/* Szerokość: zawsze cała kolumna treści */
.msg-content .elementor-container,
.msg-content .e-con-inner {
	width: 100% !important;
	max-width: 100% !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	gap: 1.5rem 2rem !important;
}
.msg-content .e-con { --container-max-width: 100%; --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; --min-height: 0; }

/* Kolumny: bez wewnętrznych ramek i teł, równe odstępy */
.msg-content .elementor-column > .elementor-widget-wrap,
.msg-content .elementor-column > .elementor-element-populated {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	box-shadow: none !important;
	align-content: flex-start !important;
}
.msg-content .elementor-column > .elementor-widget-wrap > .elementor-background-overlay { display: none !important; }
@media (min-width: 768px) {
	/* dwie kolumny zostają obok siebie w ustawionych proporcjach;
	   trzy i więcej: tyle obok siebie, ile się zmieści (min. ok. 220 px) */
	.msg-content .elementor-container { flex-wrap: wrap; }
	.msg-content .elementor-container > .elementor-column { flex: 1 1 0; min-width: 0; }
	.msg-content .elementor-container:has(> .elementor-column:nth-child(3)) { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); }
	.msg-content .elementor-container:has(> .elementor-column:nth-child(3)) > .elementor-column { width: auto !important; }
	.msg-content .elementor-container > .elementor-col-66,
	.msg-content .elementor-container > .elementor-col-70,
	.msg-content .elementor-container > .elementor-col-75 { flex-grow: 2; }
}
@media (max-width: 767.98px) {
	.msg-content .elementor-container { flex-direction: column; }
	.msg-content .elementor-column { width: 100% !important; }
}

/* Odstępy między widgetami */
.msg-content .elementor-widget-wrap { gap: 0; }
.msg-content .elementor-widget:not(:last-child) { margin-bottom: 1.25rem !important; }
.msg-content .elementor-widget { margin-top: 0 !important; margin-inline: 0 !important; }
.msg-content .elementor-widget > .elementor-widget-container {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	box-shadow: none !important;
}
.msg-content .elementor-widget-spacer .elementor-spacer-inner { height: .5rem !important; }
.msg-content .elementor-widget-spacer { margin-bottom: 0 !important; }
.msg-content .elementor-widget-divider .elementor-divider { padding-block: .5rem !important; }
.msg-content .elementor-widget-divider .elementor-divider-separator { width: 100% !important; border-top-color: #d6d2cc !important; }

/* Typografia: jak w zwykłej treści */
.msg-content .elementor-widget-text-editor,
.msg-content .elementor-widget-text-editor *:not(a):not(strong):not(b):not(em):not(mark):not(code),
.msg-content .elementor-widget-icon-list .elementor-icon-list-text,
.msg-content .elementor-widget-icon-box .elementor-icon-box-description,
.msg-content .elementor-widget-image-box .elementor-image-box-description,
.msg-content .elementor-tab-content,
.msg-content .elementor-tab-content * {
	font-family: var(--msg-font) !important;
	font-size: inherit;
	letter-spacing: normal !important;
	text-transform: none !important;
	color: var(--msg-text, #1a1a1a) !important;
}
.msg-content .elementor-widget-text-editor { font-size: 1.125rem !important; line-height: 1.75 !important; text-align: left !important; }
.msg-content .elementor-widget-text-editor p { margin: 0 0 1em; line-height: inherit !important; }
.msg-content .elementor-widget-text-editor > *:last-child,
.msg-content .elementor-widget-text-editor .elementor-widget-container > *:last-child { margin-bottom: 0; }
.msg-content .elementor-widget-text-editor a,
.msg-content .elementor-tab-content a,
.msg-content .elementor-icon-list-item > a .elementor-icon-list-text { color: var(--msg-accent) !important; text-decoration: underline; text-underline-offset: .18em; }
.msg-content .elementor-drop-cap { display: none; }

.msg-content .elementor-heading-title,
.msg-content .elementor-icon-box-title,
.msg-content .elementor-image-box-title {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	color: var(--msg-ink, #1a1a1a) !important;
	font-family: var(--msg-font-head, var(--msg-font)) !important;
	font-weight: 700 !important;
	font-style: normal !important;
	letter-spacing: normal !important;
	line-height: 1.25 !important;
	text-align: left !important;
	text-shadow: none !important;
	text-transform: none !important;
}
.msg-content .elementor-heading-title a { color: inherit !important; }
.msg-content h1.elementor-heading-title,
.msg-content h2.elementor-heading-title { font-size: clamp(1.4rem, 1.15rem + .8vw, 1.75rem) !important; }
.msg-content h2.elementor-heading-title { padding-bottom: .55rem !important; border-bottom: 3px solid var(--msg-accent) !important; }
.msg-content h3.elementor-heading-title { font-size: clamp(1.2rem, 1.05rem + .45vw, 1.375rem) !important; }
.msg-content h4.elementor-heading-title,
.msg-content h5.elementor-heading-title,
.msg-content h6.elementor-heading-title,
.msg-content p.elementor-heading-title,
.msg-content div.elementor-heading-title,
.msg-content span.elementor-heading-title,
.msg-content .elementor-icon-box-title,
.msg-content .elementor-image-box-title { font-size: 1.125rem !important; }
.msg-content .elementor-widget-heading:has(+ .elementor-widget-heading) { margin-bottom: .5rem !important; }
.msg-content .elementor-widget-heading:has(+ .elementor-widget-heading) h2.elementor-heading-title { border-bottom: 0 !important; padding-bottom: 0 !important; }
/* Nagłówek powtarzający tytuł strony (jest już w banerze) */
.msg-content .elementor-widget-heading:has(.msg-dup-title) { display: none !important; }

/* Obrazki */
.msg-content .elementor-widget-image { text-align: left !important; }
.msg-content .elementor-widget-image img,
.msg-content .elementor-image-box-img img {
	max-width: 100% !important;
	height: auto !important;
	border-radius: var(--msg-radius, 4px) !important;
	box-shadow: none !important;
	filter: none !important;
	opacity: 1 !important;
}
.msg-content .elementor-widget-image .widget-image-caption { margin-top: .5rem; color: #545454 !important; font-size: .9375rem; text-align: left; }
.msg-content .elementor-image-box-wrapper,
.msg-content .elementor-icon-box-wrapper { text-align: left !important; }

/* Lista z ikonami */
.msg-content .elementor-icon-list-items { padding: 0 !important; }
.msg-content .elementor-icon-list-item { padding-block: .3rem !important; font-size: 1.0625rem !important; }
.msg-content .elementor-icon-list-icon i,
.msg-content .elementor-icon-list-icon svg { color: var(--msg-accent) !important; fill: var(--msg-accent) !important; }

/* Przyciski */
.msg-content .elementor-widget-button .elementor-button-wrapper { text-align: left !important; }
.msg-content .elementor-button {
	display: inline-flex !important;
	align-items: center;
	min-height: 48px;
	padding: .7rem 1.4rem !important;
	border: 0 !important;
	border-radius: var(--msg-radius, 4px) !important;
	background: var(--msg-accent) !important;
	box-shadow: none !important;
	color: #fff !important;
	font-family: var(--msg-font) !important;
	font-size: 1.0625rem !important;
	font-weight: 700 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
}
.msg-content .elementor-button * { color: inherit !important; fill: currentColor !important; }
.msg-content .elementor-button:hover,
.msg-content .elementor-button:focus-visible { background: var(--msg-accent-dark, #6d0a0d) !important; text-decoration: underline; }

/* Zakładki, przełączniki, akordeony Elementora */
.msg-content .elementor-tabs { font-family: var(--msg-font); }
@media (min-width: 768px) {
	.msg-content .elementor-tabs-wrapper { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: -2px; }
}
.msg-content .elementor-tabs .elementor-tab-title,
.msg-content .elementor-tabs .elementor-tab-title a {
	color: var(--msg-ink, #1a1a1a) !important;
	font-family: var(--msg-font) !important;
	font-size: 1rem !important;
	line-height: 1.3 !important;
	font-weight: 700 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
}
.msg-content .elementor-tabs-wrapper .elementor-tab-title {
	padding: .65rem 1rem !important;
	border: 2px solid #d6d2cc !important;
	border-bottom: 0 !important;
	border-radius: var(--msg-radius, 4px) var(--msg-radius, 4px) 0 0;
	background: #f6f4f1 !important;
	cursor: pointer;
}
.msg-content .elementor-tabs-wrapper .elementor-tab-title::before,
.msg-content .elementor-tabs-wrapper .elementor-tab-title::after { display: none !important; }
.msg-content .elementor-tabs-wrapper .elementor-tab-title.elementor-active { border-color: var(--msg-accent) !important; background: var(--msg-accent) !important; }
.msg-content .elementor-tabs-wrapper .elementor-tab-title.elementor-active,
.msg-content .elementor-tabs-wrapper .elementor-tab-title.elementor-active a { color: #fff !important; }
.msg-content .elementor-tabs-wrapper .elementor-tab-title:hover:not(.elementor-active) { background: #ece8e2 !important; text-decoration: underline; }
.msg-content .elementor-tabs-content-wrapper {
	border: 2px solid #d6d2cc !important;
	border-top: 4px solid var(--msg-accent) !important;
	background: #fff !important;
}
.msg-content .elementor-tabs .elementor-tab-content {
	padding: 1.5rem clamp(1rem, 2.5vw, 1.75rem) !important;
	border: 0 !important;
	font-size: 1.0625rem !important;
	line-height: 1.7 !important;
}
.msg-content .elementor-tab-mobile-title { padding: .9rem 1rem !important; border: 0 !important; border-top: 1px solid #d6d2cc !important; background: #f6f4f1 !important; }
.msg-content .elementor-tab-mobile-title.elementor-active { background: var(--msg-accent) !important; color: #fff !important; }
.msg-content .elementor-accordion .elementor-accordion-item,
.msg-content .elementor-toggle .elementor-toggle-item { border: 0 !important; border-bottom: 1px solid #d6d2cc !important; margin: 0 !important; }
.msg-content .elementor-accordion,
.msg-content .elementor-toggle { border-top: 1px solid #d6d2cc; }
.msg-content .elementor-accordion .elementor-tab-title,
.msg-content .elementor-toggle .elementor-tab-title {
	padding: 1rem !important;
	border: 0 !important;
	background: none !important;
	font-family: var(--msg-font) !important;
	font-size: 1.0625rem !important;
	font-weight: 700 !important;
}
.msg-content .elementor-accordion .elementor-tab-title.elementor-active,
.msg-content .elementor-toggle .elementor-tab-title.elementor-active { background: #f6f4f1 !important; border-left: 4px solid var(--msg-accent) !important; }
.msg-content .elementor-accordion .elementor-tab-title *,
.msg-content .elementor-toggle .elementor-tab-title * { color: var(--msg-ink, #1a1a1a) !important; }
.msg-content .elementor-accordion .elementor-tab-content,
.msg-content .elementor-toggle .elementor-tab-content { padding: .5rem 1rem 1.25rem !important; border: 0 !important; }

/* Osadzone mapy, filmy, tabele, galerie */
.msg-content .elementor-widget-google_maps iframe { width: 100%; min-height: 380px; border: 0; border-radius: var(--msg-radius, 4px); }
.msg-content .elementor-widget-video .elementor-wrapper { border-radius: var(--msg-radius, 4px); overflow: hidden; }
.msg-content .elementor-widget-text-editor { overflow-wrap: break-word; }
.msg-content .elementor-widget-text-editor img,
.msg-content .elementor-widget-text-editor iframe { max-width: 100%; }
.msg-content table { width: 100%; }
.msg-content .elementor-image-gallery .gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: .75rem; margin: 0; }
.msg-content .elementor-image-gallery .gallery-item { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
.msg-content .elementor-image-gallery .gallery-item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border: 0 !important; border-radius: var(--msg-radius, 4px); }

/* Animacje wejścia Elementora – treść od razu widoczna */
.msg-content .elementor-invisible { visibility: visible !important; }
.msg-content .animated { animation: none !important; }

/* ==========================================================================
   Wtyczki
   ========================================================================== */
/* Modern Events Calendar – kolor główny */
.mec-wrap { --mec-color-skin: var(--msg-accent); }
/* MEC: czytelne numery dni (kontrast ≥ 4,5:1) */
.mec-wrap .mec-calendar dt.mec-calendar-day { color: #2f3338; }
.mec-wrap .mec-calendar dt.mec-table-nullday { color: #6b6f75; }
.mec-wrap .mec-calendar .mec-calendar-day.mec-selected-day,
.mec-wrap .mec-calendar .mec-calendar-day:hover { color: #fff; background: var(--msg-accent); }

/* ==========================================================================
   Preferencje użytkownika
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
	}
	.card:hover .card__img { transform: none; }
}

@media (forced-colors: active) {
	.brand--logo,
	.card__cat,
	.pager__page.is-current { forced-color-adjust: none; }
	.card { border: 1px solid CanvasText; }
	:focus-visible { outline: 3px solid Highlight; }
}

@media print {
	.topbar,
	.site-nav,
	.nav-toggle,
	.cta-band,
	.site-footer,
	.post-nav,
	.related { display: none !important; }
	.page-hero { background: none; color: #000; }
	.page-hero__title { color: #000; text-shadow: none; }
	.page-hero__img,
	.page-hero--image::before { display: none; }
	a { color: #000; }
}

/* Ustawienia MSG: czcionka i grubość nagłówków także w klasach tytułów */
.page-hero__title, .post-intro__title, .hero__title, .home-events__title, .spotlight__title,
.section-title, .card__title, .msg-lp__title, .ev-dialog__title, .home-success__banner, .project__title {
	font-family: var(--msg-font-head, var(--msg-font));
	font-weight: var(--msg-hw, 700);
}

/* ==========================================================================
   Wyszukiwarka – okienko nad stroną
   ========================================================================== */
.search-panel {
	position: fixed;
	inset: 0;
	z-index: 10000;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: clamp(4rem, 14vh, 9rem) 1rem 1rem;
	background: rgba(10, 12, 16, 0);
	transition: background-color .2s ease;
	pointer-events: auto;
}
.search-panel[hidden] { display: none; }
.search-panel.is-open { background: rgba(10, 12, 16, .72); }
.search-panel__box {
	position: relative;
	width: min(46rem, 100%);
	padding: clamp(1.5rem, 3vw, 2.25rem);
	background: #fff;
	border-top: 6px solid var(--msg-accent);
	border-radius: var(--msg-radius);
	box-shadow: 0 24px 70px rgba(0, 0, 0, .45);
	opacity: 0;
	transform: translateY(-12px);
	transition: opacity .2s ease, transform .2s ease;
}
.search-panel.is-open .search-panel__box { opacity: 1; transform: none; }
.search-panel__label {
	display: block;
	margin: 0 3rem .9rem 0;
	color: var(--msg-ink);
	font-family: var(--msg-font-head, var(--msg-font));
	font-size: calc(clamp(1.35rem, 1.1rem + 1vw, 1.85rem) * var(--msg-hs, 1));
	font-weight: var(--msg-hw, 700);
}
.search-panel__row {
	display: flex;
	align-items: stretch;
	border: 2px solid #8a8a8a;
	border-radius: var(--msg-radius);
	overflow: hidden;
	background: #fff;
}
.search-panel__row:focus-within { border-color: var(--msg-ink); box-shadow: 0 0 0 3px var(--msg-focus); }
.search-panel__row > .icon { align-self: center; flex: none; width: 24px; height: 24px; margin-left: .9rem; color: var(--msg-muted); }
.search-panel__input {
	flex: 1;
	min-width: 0;
	min-height: 56px;
	padding: .5rem .9rem;
	border: 0;
	background: transparent;
	color: var(--msg-ink);
	font: inherit;
	font-size: 1.125rem;
}
.search-panel__input:focus-visible { outline: none; box-shadow: none; }
.search-panel__submit {
	flex: none;
	padding: 0 1.6rem;
	border: 0;
	background: var(--msg-accent);
	color: #fff;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}
.search-panel__submit:hover { background: var(--msg-accent-dark); }
.search-panel__close {
	position: absolute;
	top: .9rem;
	right: .9rem;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 50%;
	background: var(--msg-soft);
	color: var(--msg-ink);
	cursor: pointer;
}
.search-panel__close:hover { background: var(--msg-accent); color: #fff; }
html.search-open { overflow: hidden; }
@media (max-width: 480px) {
	.search-panel__submit { padding: 0 1rem; }
	.search-panel__row > .icon { display: none; }
}

/* ==========================================================================
   Telefon: pasek kontaktu w jednej linii, bez „Kontakt” i wyszukiwarki
   ========================================================================== */
@media (max-width: 1023.98px) {
	.topbar__extra { display: none !important; }
	.topbar__list {
		flex-wrap: nowrap;
		justify-content: center;
		gap: 0 1.1rem;
		padding: 0 .75rem;
		font-size: .875rem;
		white-space: nowrap;
		overflow: hidden;
	}
	.topbar__link { min-height: 40px; gap: .35rem; }
	.topbar .icon { width: 16px; height: 16px; }
}
@media (max-width: 380px) {
	.topbar__list { gap: 0 .7rem; font-size: .8125rem; }
}

/* Telefon: przyciski szkół w menu pod zdjęciem */
.schools-m { display: none; }
@media (max-width: 767.98px) {
	.hero__schools { display: none; }
	.hero__content { padding-block: clamp(7rem, 40vw, 11rem) 3.5rem; }
	.schools-m {
		display: block;
		background: var(--msg-accent);
		color: #fff;
	}
	.schools-m__toggle {
		display: flex;
		align-items: center;
		justify-content: space-between;
		min-height: 56px;
		padding: 0 var(--msg-gutter);
		font-weight: 700;
		font-size: 1.0625rem;
		letter-spacing: .03em;
		text-transform: var(--msg-tt-tile, uppercase);
		list-style: none;
		cursor: pointer;
	}
	.schools-m__toggle::-webkit-details-marker { display: none; }
	.schools-m__chev { transition: transform .2s; }
	.schools-m[open] .schools-m__chev { transform: rotate(180deg); }
	.schools-m__toggle:focus-visible { outline-offset: -4px; }
	.schools-m__list { margin: 0; padding: 0 0 .5rem; list-style: none; background: var(--msg-accent-dark); }
	.schools-m__list li + li { border-top: 1px solid rgba(255, 255, 255, .18); }
	.schools-m__list a {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 1rem;
		min-height: 52px;
		padding: .6rem var(--msg-gutter);
		color: #fff;
		font-weight: 600;
		line-height: 1.3;
		text-decoration: none;
	}
	.schools-m__list a:hover { text-decoration: underline; }
	.schools-m__list svg { flex: none; }
}

/* ==========================================================================
   Aktualności na telefonie: lista tytułów pod kafelkami
   ========================================================================== */
.show-mobile { display: none; }
@media (max-width: 767.98px) {
	.show-mobile { display: block; }
	.hide-mobile { display: none !important; }
	.news-list { margin: 8px 0 0; padding: 0; list-style: none; background: #fff; border-top: 4px solid var(--msg-accent); }
	.news-list__item + .news-list__item { border-top: 1px solid var(--msg-line); }
	.news-list__link {
		display: grid;
		gap: .2rem;
		padding: .9rem var(--msg-gutter) .9rem calc(var(--msg-gutter) + .9rem);
		position: relative;
		color: var(--msg-ink);
		text-decoration: none;
	}
	.news-list__link::before {
		content: "";
		position: absolute;
		left: var(--msg-gutter);
		top: 1.35rem;
		width: 6px;
		height: 6px;
		background: var(--msg-accent);
	}
	.news-list__title { font-weight: 700; line-height: 1.35; }
	.news-list__link:hover .news-list__title { text-decoration: underline; }
	.news-list__date { color: var(--msg-muted); font-size: .9375rem; }
	.home-news__more { position: static; transform: none; margin: 0; padding: .75rem var(--msg-gutter) 0; }
}
@media (min-width: 768px) {
	.hide-desktop { display: none !important; }
}

/* Logo – wielkość z ustawień */
.brand--logo .brand__logo { height: calc(clamp(84px, 12vw, 215px) * var(--msg-logo-scale, 1)); }
@media (max-width: 1023.98px) {
	.brand--logo .brand__logo { height: calc(clamp(78px, 14vw + 30px, 132px) * var(--msg-logo-scale, 1)); }
}

/* Wysokość nagłówka podstron z ustawień */
@media (min-width: 1024px) {
	.hero-small .page-hero__inner { min-height: clamp(420px, 32vw, 600px); }
	.hero-large .page-hero__inner { min-height: clamp(620px, 52vw, 960px); }
}
.layout--single { max-width: calc(980px + 2 * var(--msg-gutter)); }
/* Podstrony bez panelu bocznego: szersza kolumna treści (wiersz tekstu nadal czytelny) */
.layout--page { max-width: calc(1140px + 2 * var(--msg-gutter)); }

/* Miniatury galerii zawsze widoczne (niezależnie od Smush Lazy Load) */
.entry-content .rl-gallery img,
.entry-content .gallery img,
.entry-content .wp-block-gallery img { opacity: 1 !important; }

/* ==========================================================================
   Tabele TablePress (np. Kadra) – czytelne, z przewijaniem na telefonie
   ========================================================================== */
.tablepress {
	width: 100%;
	margin: 1.5rem 0;
	border-collapse: collapse;
	font-size: 1rem;
	line-height: 1.45;
}
.tablepress th,
.tablepress td {
	padding: .65rem .85rem;
	border: 1px solid var(--msg-line);
	text-align: left;
	vertical-align: top;
}
.tablepress thead th {
	background: var(--msg-accent);
	color: #fff;
	font-weight: 700;
}
.tablepress thead th strong { color: #fff; }
.tablepress tbody tr:nth-child(even) td { background: var(--msg-soft); }
.tablepress tbody tr:hover td { background: #efe9e2; }
.tablepress a { color: var(--msg-accent); text-decoration: underline; }
.elementor-widget-shortcode .tablepress { margin: 0; }
@media (max-width: 700px) {
	.tablepress { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

/* ==========================================================================
   Dostępność: wielkość celu dotyku/kliknięcia (WCAG 2.5.8) i fokus przewijanych tabel
   ========================================================================== */
.entry-content a:not([class*="button"]):not(:has(img)),
.msg-catlist__more a,
.home-events__all a { padding-block: 3px; }
[data-msg-scroll]:focus-visible { outline: 3px solid var(--msg-focus, #ffbf47); outline-offset: 2px; }
.msg-embed { margin: 1.5rem 0; }
.msg-embed iframe { display: block; width: 100%; max-width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; border-radius: var(--msg-radius, 4px); }

/* Nagłówki przeniesione na właściwy poziom (kolejność dla czytników) – wygląd jak w edytorze */
.entry-content .msg-hl-1,
.entry-content .msg-hl-2 { font-size: calc(clamp(1.4rem, 1.1rem + 1vw, 1.875rem) * var(--msg-hs, 1)); }
.entry-content .msg-hl-3 { font-size: calc(clamp(1.2rem, 1.05rem + .6vw, 1.5rem) * var(--msg-hs, 1)); }
.entry-content .msg-hl-4,
.entry-content .msg-hl-5,
.entry-content .msg-hl-6 { font-size: 1.125rem; }
.msg-content .msg-hl-1.elementor-heading-title,
.msg-content .msg-hl-2.elementor-heading-title { font-size: clamp(1.4rem, 1.15rem + .8vw, 1.75rem) !important; padding-bottom: .55rem !important; border-bottom: 3px solid var(--msg-accent) !important; }
.msg-content .msg-hl-3.elementor-heading-title { font-size: clamp(1.2rem, 1.05rem + .45vw, 1.375rem) !important; padding-bottom: 0 !important; border-bottom: 0 !important; }
.msg-content .msg-hl-4.elementor-heading-title,
.msg-content .msg-hl-5.elementor-heading-title,
.msg-content .msg-hl-6.elementor-heading-title { font-size: 1.125rem !important; padding-bottom: 0 !important; border-bottom: 0 !important; }

/* ==========================================================================
   Panel „Dostępność” (własne ułatwienia dostępu)
   ========================================================================== */
.topbar__a11y { display: flex; align-items: center; }
.a11y-toggle {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	min-height: 40px;
	min-width: 40px;
	padding: 0 .5rem;
	border: 0;
	border-radius: var(--msg-radius);
	background: none;
	color: var(--msg-ink);
	font: inherit;
	cursor: pointer;
}
.a11y-toggle .icon { width: 22px; height: 22px; color: var(--msg-ink); }
.a11y-toggle:hover { color: var(--msg-accent); text-decoration: underline; }
.a11y-toggle:hover .icon,
.a11y-toggle.is-active .icon { color: var(--msg-accent); }
.a11y-toggle[aria-expanded="true"] { background: var(--msg-soft, #f6f4f1); }
html:not(.js) .topbar__a11y { display: none; }
@media (max-width: 767.98px) {
	.a11y-toggle__text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.a11y-toggle { padding: 0; justify-content: center; }
}

.a11y-panel {
	position: fixed;
	z-index: 10001;
	top: calc(var(--msg-topbar-h, 48px) + .5rem);
	right: max(1rem, calc((100vw - var(--msg-wrap) - 2 * var(--msg-gutter)) / 2 + var(--msg-gutter)));
	width: min(360px, calc(100vw - 2rem));
	max-height: calc(100vh - var(--msg-topbar-h, 48px) - 1.5rem);
	overflow-y: auto;
	padding: 1.1rem 1.25rem 1.25rem;
	border-top: 5px solid var(--msg-accent);
	border-radius: var(--msg-radius);
	background: #fff;
	box-shadow: 0 18px 48px rgba(0, 0, 0, .28);
	color: var(--msg-ink);
	font-size: 1rem;
	line-height: 1.4;
}
.admin-bar .a11y-panel { top: calc(32px + var(--msg-topbar-h, 48px) + .5rem); }
.a11y-panel[hidden] { display: none; }
@media (max-width: 767.98px) {
	.a11y-panel { top: auto; right: 0; bottom: 0; left: 0; width: 100%; max-height: 85vh; border-radius: 12px 12px 0 0; }
}
.a11y-panel__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
.a11y-panel__title { margin: 0; font-size: 1.2rem; font-weight: 800; }
.a11y-panel__close {
	display: grid; place-items: center; width: 44px; height: 44px; margin: -.4rem -.6rem -.4rem 0;
	border: 0; border-radius: 50%; background: none; color: var(--msg-ink); cursor: pointer;
}
.a11y-panel__close:hover { background: var(--msg-soft, #f6f4f1); }
.a11y-panel__close .icon { width: 22px; height: 22px; }
.a11y-panel__label { margin: 0 0 .4rem; font-weight: 700; }
.a11y-panel__group { padding-bottom: .9rem; margin-bottom: .4rem; border-bottom: 1px solid #e2ded8; }
.a11y-panel__sizes { display: flex; align-items: center; gap: .6rem; }
.a11y-btn {
	min-width: 56px; min-height: 44px; padding: 0 .8rem;
	border: 2px solid var(--msg-ink); border-radius: var(--msg-radius);
	background: #fff; color: var(--msg-ink); font: inherit; font-size: 1.125rem; font-weight: 800; cursor: pointer;
}
.a11y-btn:hover { background: var(--msg-ink); color: #fff; }
.a11y-btn[aria-disabled="true"] { border-color: #b5b5b5; color: #6b6b6b; background: #f3f3f3; cursor: not-allowed; }
.a11y-panel__fs { min-width: 4ch; font-weight: 700; text-align: center; }
.a11y-panel__list { margin: 0; padding: 0; list-style: none; }
.a11y-switch {
	display: flex; align-items: center; gap: .8rem; width: 100%; min-height: 48px; padding: .35rem .25rem;
	border: 0; border-bottom: 1px solid #eeeae4; background: none; color: var(--msg-ink);
	font: inherit; font-weight: 600; text-align: left; cursor: pointer;
}
.a11y-switch:hover { background: #faf8f5; }
.a11y-switch__ui {
	position: relative; flex: none; width: 44px; height: 26px; border: 2px solid #6b6b6b; border-radius: 13px; background: #fff;
	transition: background-color .15s, border-color .15s;
}
.a11y-switch__ui::after {
	content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #6b6b6b;
	transition: transform .15s;
}
.a11y-switch[aria-pressed="true"] .a11y-switch__ui { border-color: var(--msg-accent); background: var(--msg-accent); }
.a11y-switch[aria-pressed="true"] .a11y-switch__ui::after { background: #fff; transform: translateX(18px); }
.a11y-panel__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-top: 1rem; }
.a11y-panel__reset {
	min-height: 44px; padding: 0 1rem; border: 2px solid var(--msg-accent); border-radius: var(--msg-radius);
	background: #fff; color: var(--msg-accent); font: inherit; font-weight: 700; cursor: pointer;
}
.a11y-panel__reset:hover { background: var(--msg-accent); color: #fff; }
.a11y-panel__decl { color: var(--msg-accent); font-weight: 600; text-decoration: underline; }

/* --- Tryby --- */
/* Podkreślone linki */
html.a11y-links a:not(.button):not([class*="btn"]):not(.brand) { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: .2em !important; }

/* Odstępy wg WCAG 1.4.12 */
html.a11y-spacing body { line-height: 1.6 !important; }
html.a11y-spacing main p,
html.a11y-spacing main li,
html.a11y-spacing main td,
html.a11y-spacing main dd { line-height: 1.8 !important; letter-spacing: .12em !important; word-spacing: .16em !important; }
html.a11y-spacing main p { margin-bottom: 2em !important; }

/* Prosta, czytelna czcionka (bez szeryfów i pisanych) */
html.a11y-font,
html.a11y-font body,
html.a11y-font body *:not(.icon):not(svg):not(svg *) { font-family: Verdana, Tahoma, "Segoe UI", Arial, sans-serif !important; font-style: normal !important; }

/* Bez animacji i przejść */
html.a11y-noanim *,
html.a11y-noanim *::before,
html.a11y-noanim *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }

/* Wysoki kontrast: czarne tło, biały tekst, żółte linki (kontrast ≥ 15:1) */
html.a11y-contrast { --msg-accent: #ffeb3b; --msg-accent-dark: #ffeb3b; --msg-ink: #fff; --msg-text: #fff; --msg-muted: #fff; --msg-soft: #000; color-scheme: dark; }
html.a11y-contrast body,
html.a11y-contrast body *:not(img):not(video):not(iframe):not(svg):not(svg *):not(.icon) {
	background-color: #000 !important;
	background-image: none !important;
	color: #fff !important;
	border-color: #fff !important;
	box-shadow: none !important;
	text-shadow: none !important;
}
html.a11y-contrast *::before,
html.a11y-contrast *::after { background-image: none !important; box-shadow: none !important; }
html.a11y-contrast a,
html.a11y-contrast a *,
html.a11y-contrast button,
html.a11y-contrast button * { color: #ffeb3b !important; }
html.a11y-contrast a { text-decoration: underline !important; }
html.a11y-contrast button,
html.a11y-contrast input,
html.a11y-contrast select,
html.a11y-contrast textarea { border: 2px solid #ffeb3b !important; }
html.a11y-contrast .icon,
html.a11y-contrast svg { color: #ffeb3b !important; fill: currentColor; }
html.a11y-contrast :focus-visible { outline: 3px solid #0ff !important; outline-offset: 2px !important; }
html.a11y-contrast img,
html.a11y-contrast video { filter: grayscale(.2) contrast(1.1); }
html.a11y-contrast .hero__img,
html.a11y-contrast .page-hero__img,
html.a11y-contrast .home-events__bg { opacity: .35; }
html.a11y-contrast .a11y-switch[aria-pressed="true"] .a11y-switch__ui { background: #ffeb3b !important; }
html.a11y-contrast .a11y-switch__ui::after { background: #ffeb3b !important; }
html.a11y-contrast .a11y-switch[aria-pressed="true"] .a11y-switch__ui::after { background: #000 !important; }

/* ==========================================================================
   Kalendarz MEC w treści motywu + strona pojedynczego wydarzenia
   ========================================================================== */
/* MEC ma w ustawieniach biały kolor tytułów (z dawnego, ciemnego motywu) – w treści byłyby niewidoczne */
.mec-wrap,
.mec-container,
.mec-calendar,
.mec-event-list-modern {
	--mec-title-color: var(--msg-ink);
	--mec-title-color-hover: var(--msg-accent);
	--mec-content-color: var(--msg-text);
	--mec-heading-font-family: var(--msg-font-head, var(--msg-font));
	--mec-paragraph-font-family: var(--msg-font);
}
.mec-wrap .mec-calendar .mec-event-article .mec-event-title a,
.entry-content .mec-wrap h4 a { color: var(--msg-ink); font-size: 1rem; font-weight: 700; }
.mec-wrap .mec-calendar .mec-event-article .mec-event-title a:hover { color: var(--msg-accent); text-decoration: underline; }
.mec-wrap .mec-calendar .mec-event-article .mec-event-time { color: var(--msg-accent); font-size: .9375rem; }
.mec-wrap .mec-calendar .mec-table-side-title { font-size: 1rem; letter-spacing: .04em; color: var(--msg-ink); }
.mec-wrap .mec-calendar .mec-event-article { padding-block: .6rem; }
.mec-wrap .mec-calendar dt.mec-has-event a { color: inherit; font-weight: 700; }
.msg-content .mec-wrap, .entry-content .mec-wrap { font-family: var(--msg-font); }

.ev-page { max-width: 980px; margin-inline: auto; }
.ev-page__card {
	overflow: hidden;
	padding-bottom: clamp(1.25rem, 3vw, 2rem);
	border-radius: var(--msg-radius);
	background: #fff;
	box-shadow: 0 10px 34px rgba(0, 0, 0, .1);
}
.ev-page__title {
	align-self: center;
	margin: 0;
	padding: 1.1rem clamp(1rem, 3vw, 2rem);
	color: #fff;
	font-size: calc(clamp(1.5rem, 1.1rem + 1.4vw, 2.25rem) * var(--msg-hs, 1));
	line-height: 1.2;
}
.ev-page__grid,
.ev-page .ev-add { padding-inline: clamp(1.25rem, 3vw, 2rem); }
.ev-page .countdown { margin: 0; }
.ev-page__grid { display: grid; gap: 1.25rem 2rem; margin-top: 1.5rem; }
@media (min-width: 768px) { .ev-page__grid { grid-template-columns: 1fr auto; align-items: center; } }
.ev-page .ev-dialog__meta { margin: 0; }
.ev-page .ev-add { margin-top: 1.5rem; }
.ev-page__img { margin: 2rem 0 0; }
.ev-page__img img { display: block; max-width: 100%; height: auto; margin-inline: auto; border-radius: var(--msg-radius); }
.ev-page__desc { margin-top: 2.25rem; }
.ev-page__desc > h2 { margin: 0 0 1rem; font-size: calc(clamp(1.3rem, 1.1rem + .8vw, 1.75rem) * var(--msg-hs, 1)); }
.ev-page__back { margin-top: 2.5rem; font-weight: 700; }
.ev-page__back a { display: inline-flex; align-items: center; gap: .5rem; }
.ev-page__back .icon { width: 20px; height: 20px; }
.site-footer__cookies { min-height: 44px; color: inherit; font-size: inherit; }
