/* OPFOR Terminy — odwzorowuje dotychczasowy wygląd list szkoleń na opfor.pl */

:root {
	--opfor-bezowy: #C9B389;
	--opfor-zielony: #5DB361;
	--opfor-tekst: #1a1a1a;
}

/* Elementor nie rozciąga widgetu shortcode w kontenerze flex — wymuszamy */

.opfor-terminy {
	width: 100%;
}

.elementor-widget-shortcode,
.elementor-widget-shortcode .elementor-shortcode {
	width: 100%;
}

/* ====================== UKŁAD WIERSZOWY (domyślny) ====================== */

.opfor-terminy--wiersze {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.opfor-wiersz {
	display: flex;
	align-items: stretch;
	gap: 7px;
	padding: 7px;
	background: var(--opfor-bezowy);
}

/* Lewy kafelek z grafiką */

.opfor-wiersz__kafel {
	position: relative;
	flex: 0 0 230px;
	min-height: 150px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	text-decoration: none;
	color: #fff;
}

.opfor-wiersz__tlo,
.opfor-wiersz__nakladka {
	position: absolute;
	inset: 0;
}

.opfor-wiersz__tlo {
	background-size: cover;
	background-position: center;
	transition: transform .5s ease;
}

.opfor-wiersz__nakladka {
	background: rgba(0, 0, 0, var(--opfor-przyciemnienie, .22));
}

.opfor-wiersz__kafel:hover .opfor-wiersz__tlo {
	transform: scale(1.08);
}

/* Motyw dokłada podkreślenia do linków — twardo je zdejmujemy */

.opfor-wiersz__kafel,
.opfor-wiersz__kafel:hover,
.opfor-wiersz__kafel:focus,
.opfor-wiersz__kafel:active,
.opfor-wiersz__kafel *,
.opfor-wiersz__kafel:hover * {
	text-decoration: none !important;
	text-decoration-line: none !important;
	box-shadow: none !important;
	border-bottom: 0;
}

.opfor-wiersz__btn,
.opfor-wiersz__btn:hover {
	border-bottom: 2px solid rgba(192, 160, 98, .36);
}

.opfor-wiersz__kafel-tresc {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	padding: 14px;
	text-align: center;
}

.opfor-wiersz__nazwa,
.opfor-wiersz__btn {
	display: inline-block;
	text-decoration: none;
	transition: transform .4s ease, background-color .3s ease;
}

.opfor-wiersz__nazwa {
	font-family: "Montserrat", sans-serif;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.25;
	color: #fff;
	text-transform: uppercase;
}

/* Przycisk: półprzezroczysta zieleń w beżowej ramce — jak dotychczas na opfor.pl */

.opfor-wiersz__btn {
	padding: 10px 20px;
	border: 2px solid rgba(192, 160, 98, .36);
	border-radius: 4px;
	background-color: rgba(20, 219, 30, .37);
	font-family: "Montserrat", sans-serif;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: .02em;
	color: #fff;
	text-transform: uppercase;
}

.opfor-wiersz__btn--off {
	background-color: rgba(219, 20, 20, .37);
}

/* Delikatne powiększenie napisu i przycisku przy najechaniu */

.opfor-wiersz__kafel:hover .opfor-wiersz__nazwa,
.opfor-wiersz__kafel:hover .opfor-wiersz__btn {
	transform: scale(1.07);
}

.opfor-wiersz__kafel:hover .opfor-wiersz__btn {
	background-color: rgba(20, 219, 30, .55);
}

/* Prawy zielony panel */

.opfor-wiersz__panel {
	position: relative;
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: 5px;
	min-height: 150px;
	padding: 14px 18px;
	background-color: var(--opfor-zielony);
	overflow: hidden;
}

/* Zdjęcie pod zielonym panelem: rozmyte i przykryte zielenią — jak w oryginale */

.opfor-wiersz__panel-tlo {
	position: absolute;
	inset: -6px;
	z-index: 1;
	background-size: cover;
	background-position: center;
	filter: blur(3px) saturate(.75);
}

.opfor-wiersz__panel::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: var(--opfor-zielony);
	opacity: var(--opfor-zielen-na-tle, .55);
	pointer-events: none;
}

.opfor-wiersz__tytul,
.opfor-wiersz__terminy {
	position: relative;
	z-index: 2;
	margin: 0;
	font-family: "Montserrat", sans-serif;
	color: var(--opfor-tekst);
}

.opfor-wiersz__tytul {
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3;
}

.opfor-wiersz__terminy {
	padding-left: 22px;
	font-size: 16px;
}

.opfor-wiersz__terminy li {
	margin: 2px 0;
}

.opfor-terminy--wiersze .opfor-miesiac__lista {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.opfor-wiersz--zakonczony {
	opacity: .55;
}

.opfor-wiersz--zakonczony .opfor-wiersz__kafel {
	pointer-events: none;
}

@media (max-width: 767px) {
	.opfor-wiersz {
		flex-direction: column;
	}

	.opfor-wiersz__kafel {
		flex: 0 0 auto;
		min-height: 170px;
	}

	.opfor-wiersz__panel {
		min-height: 0;
	}
}

/* ====================== UKŁAD KAFELKOWY (opcjonalny) ====================== */

.opfor-terminy--kafelki,
.opfor-terminy--kafelki .opfor-miesiac__lista {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 24px;
}

.opfor-terminy--kafelki .opfor-kurs {
	aspect-ratio: 4 / 3;
	min-height: 0;
}

.opfor-miesiac__tytul {
	margin: 36px 0 18px;
}

.opfor-kurs {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 320px;
	border: 1px solid rgba(0, 0, 0, .12);
	border-radius: 6px;
	background: rgba(0, 0, 0, .02);
	overflow: hidden;
}

.opfor-kurs__tresc {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 20px;
	height: 100%;
}

/* Kafelek z grafiką w tle — układ jak w dotychczasowych kafelkach Elementora */

.opfor-kurs__tlo,
.opfor-kurs__zaslona {
	position: absolute;
	inset: 0;
}

.opfor-kurs__tlo {
	z-index: 0;
	background-size: cover;
	background-position: center;
	transition: transform .4s ease;
}

.opfor-kurs:hover .opfor-kurs__tlo {
	transform: scale(1.06);
}

.opfor-kurs__zaslona {
	z-index: 1;
	background: linear-gradient(to bottom, rgba(0, 0, 0, .35) 0%, rgba(0, 0, 0, .75) 100%);
}

.opfor-kurs--z-grafika,
.opfor-kurs--z-grafika .opfor-kurs__tytul,
.opfor-kurs--z-grafika .opfor-termin__data,
.opfor-kurs--z-grafika .opfor-termin__miasto,
.opfor-kurs--z-grafika .opfor-kurs__btn {
	color: #fff;
}

.opfor-kurs--z-grafika .opfor-kurs__tresc {
	justify-content: flex-end;
}

.opfor-kurs--z-grafika .opfor-kurs__terminy {
	flex: 0 1 auto;
}

.opfor-kurs__tytul {
	margin: 0;
	font-size: 1.05em;
	line-height: 1.3;
	text-transform: uppercase;
}

.opfor-kurs__terminy {
	margin: 0;
	padding: 0;
	list-style: none;
	flex: 1 1 auto;
}

.opfor-kurs__terminy .opfor-termin {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px;
	padding: 4px 0;
}

.opfor-termin__data {
	font-weight: 700;
}

.opfor-termin__miasto {
	opacity: .85;
}

.opfor-kurs__btn,
.opfor-termin__btn {
	display: inline-block;
	padding: 10px 18px;
	border: 2px solid currentColor;
	border-radius: 4px;
	font-weight: 700;
	text-decoration: none;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: .03em;
	transition: background-color .15s ease, color .15s ease;
}

.opfor-kurs__btn:hover,
.opfor-termin__btn:hover {
	background: currentColor;
}

.opfor-kurs__btn:hover > *,
.opfor-termin__btn:hover > * {
	color: #fff;
}

.opfor-kurs__btn--off {
	opacity: .45;
	cursor: default;
	pointer-events: none;
}

.opfor-kurs--zakonczony {
	opacity: .6;
}

/* Widget na stronie kursu: kafelek bez nazwy, panel z nagłówkiem "Terminy szkoleń:" */

.opfor-terminy--kurs .opfor-wiersz__kafel {
	flex: 0 0 230px;
	min-height: 150px;
}

.opfor-terminy--kurs .opfor-wiersz__panel {
	min-height: 150px;
}

/* Daty jako wyraźne pola wyboru — cały wiersz jest klikalny */

.opfor-opcje {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 4px 0 0;
	padding: 0;
	list-style: none;
	width: 100%;
}

.opfor-opcja,
.opfor-opcja:hover,
.opfor-opcja:focus {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 14px;
	border: 2px solid rgba(255, 255, 255, .55);
	border-radius: 5px;
	background: rgba(255, 255, 255, .22);
	font-family: "Montserrat", sans-serif;
	color: var(--opfor-tekst);
	text-decoration: none !important;
	transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}

.opfor-opcja:hover {
	background: rgba(255, 255, 255, .55);
	border-color: #fff;
	transform: translateX(3px);
}

/* Bez kółka — wybór pokazuje stan całego pola i etykieta z ptaszkiem */

.opfor-opcja__znacznik {
	display: none !important;
}

.opfor-opcja__tekst {
	flex: 1 1 auto;
	min-width: 0;
	font-size: 16px;
	line-height: 1.3;
}

.opfor-opcja__tekst strong {
	display: block;
}

.opfor-opcja__miasto {
	display: block;
	margin: 2px 0 0;
	font-size: 13px;
	letter-spacing: .04em;
}

.opfor-opcja__akcja {
	flex: 0 0 auto;
	padding: 6px 12px;
	border-radius: 3px;
	background: rgba(0, 0, 0, .12);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	white-space: nowrap;
}

/* Stan wybrany */

.opfor-opcja--wybrana,
.opfor-opcja--wybrana:hover {
	background: rgba(255, 255, 255, .78);
	border-color: #0a5c12;
	transform: none;
}

.opfor-opcja--wybrana .opfor-opcja__akcja {
	background: #0a5c12;
	color: #fff;
}

.opfor-opcja--wybrana .opfor-opcja__akcja::before {
	content: "✓ ";
}

/* Termin odwołany lub bez miejsc */

.opfor-opcja--niedostepna {
	opacity: .6;
	cursor: default;
}

@media (max-width: 600px) {
	.opfor-opcja {
		flex-wrap: nowrap;
		gap: 10px;
		padding: 10px 12px;
	}

	.opfor-opcja__tekst {
		font-size: 15px;
	}
}

@media (max-width: 600px) {
	.opfor-wybierz {
		display: block;
		margin: 6px 0 2px;
		text-align: center;
	}
}

/* Lista terminów na stronie kursu (układ zapasowy) */

.opfor-terminy-kursu {
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}

.opfor-termin-wiersz {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 14px;
	padding: 12px 0;
	border-bottom: 1px solid rgba(0, 0, 0, .1);
}

.opfor-termin-wiersz:last-child {
	border-bottom: 0;
}

.opfor-termin-wiersz .opfor-termin__btn {
	margin-left: auto;
	padding: 8px 16px;
}

.opfor-termin-wiersz--odwolany {
	opacity: .55;
	text-decoration: line-through;
}

/* Potwierdzenie wybranego terminu nad formularzem */

.opfor-wybrany {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: 0;
	padding: 16px 20px;
	background: var(--opfor-zielony);
	font-family: "Montserrat", sans-serif;
	color: var(--opfor-tekst);
}

.opfor-wybrany__naglowek {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	opacity: .8;
}

.opfor-wybrany__kurs {
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
}

.opfor-wybrany__dane {
	font-size: 18px;
}

.opfor-wybrany__miasto {
	margin-left: 8px;
}

/* Stan "jeszcze nie wybrano" — spokojna podpowiedź, nie alarm */

.opfor-wybrany--brak {
	margin: 0;
	padding: 16px 20px;
	background: rgba(0, 0, 0, .07);
	font-family: "Montserrat", sans-serif;
	font-weight: 600;
	color: var(--opfor-tekst);
}

/* Znaczniki */

.opfor-znacznik {
	display: inline-block;
	padding: 2px 8px;
	border-radius: 3px;
	font-size: .75em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.opfor-znacznik--odwolany {
	background: #d63638;
	color: #fff;
}

.opfor-znacznik--pelny {
	background: #996800;
	color: #fff;
}

.opfor-znacznik--uwaga {
	background: rgba(0, 0, 0, .08);
}

.opfor-brak {
	opacity: .8;
	font-style: italic;
}

@media (max-width: 600px) {
	.opfor-termin-wiersz .opfor-termin__btn {
		margin-left: 0;
		width: 100%;
	}
}

/* ==================================================================
   Kalendarz szkoleń [opfor_kalendarz] — czarno-zielony
   ================================================================== */

.opfor-kal {
	--kal-tlo: #101310;
	--kal-karta: #171c17;
	--kal-linia: rgba(93, 179, 97, .28);
	--kal-zielen: #5DB361;
	--kal-tekst: #e9efe9;
	--kal-przygaszony: #8fa08f;
	--kal-c0: #3f9a45;
	--kal-c1: #3b9aa8;
	--kal-c2: #c0a062;
	--kal-c3: #b8643c;
	--kal-c4: #d9d3c0;
	--kal-c5: #8aa13a;
	box-sizing: border-box;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 20px;
	background: var(--kal-tlo);
	border: 1px solid var(--kal-linia);
	border-radius: 6px;
	color: var(--kal-tekst);
	font-family: "Montserrat", sans-serif;
}

.elementor-widget-shortcode .opfor-kal {
	max-width: 100%;
}

.opfor-kal *,
.opfor-kal *::before,
.opfor-kal *::after {
	box-sizing: border-box;
}

.opfor-kal a,
.opfor-kal a:hover,
.opfor-kal a:focus {
	text-decoration: none !important;
}

/* Filtry */

.opfor-kal__filtry {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 14px 24px;
	margin-bottom: 18px;
}

.opfor-kal__chipy {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.opfor-kal__chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	border: 1px solid var(--kal-linia);
	border-radius: 999px;
	background: transparent;
	color: var(--kal-tekst);
	font: 600 12px/1.2 "Montserrat", sans-serif;
	letter-spacing: .04em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease;
}

.opfor-kal__chip:hover {
	background: rgba(93, 179, 97, .14);
	border-color: var(--kal-zielen);
}

.opfor-kal__chip.is-active {
	background: var(--kal-zielen);
	border-color: var(--kal-zielen);
	color: #07200a;
}

.opfor-kal__kropka {
	display: inline-block;
	flex: 0 0 10px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--kal-zielen);
}

.opfor-kal__chip--c0 .opfor-kal__kropka { background: var(--kal-c0); }
.opfor-kal__chip--c1 .opfor-kal__kropka { background: var(--kal-c1); }
.opfor-kal__chip--c2 .opfor-kal__kropka { background: var(--kal-c2); }
.opfor-kal__chip--c3 .opfor-kal__kropka { background: var(--kal-c3); }
.opfor-kal__chip--c4 .opfor-kal__kropka { background: var(--kal-c4); }
.opfor-kal__chip--c5 .opfor-kal__kropka { background: var(--kal-c5); }

.opfor-kal__chip.is-active .opfor-kal__kropka {
	box-shadow: 0 0 0 2px #07200a;
}

.opfor-kal__miejsce {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 190px;
}

.opfor-kal__etykieta {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--kal-przygaszony);
}

.opfor-kal__select {
	width: 100%;
	padding: 9px 12px;
	border: 1px solid var(--kal-linia);
	border-radius: 4px;
	background: var(--kal-karta);
	color: var(--kal-tekst);
	font: 600 14px "Montserrat", sans-serif;
}

/* Nawigacja miesiąca */

.opfor-kal__nawig {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 12px;
}

.opfor-kal__tytul {
	flex: 1 1 auto;
	margin: 0;
	color: var(--kal-tekst);
	font: 700 22px/1.2 "Montserrat", sans-serif;
	letter-spacing: .02em;
	text-align: center;
	text-transform: uppercase;
}

.opfor-kal__strzalka,
.opfor-kal__dzis {
	flex: 0 0 auto;
	min-width: 44px;
	height: 44px;
	padding: 0 14px;
	border: 1px solid var(--kal-linia);
	border-radius: 4px;
	background: var(--kal-karta);
	color: var(--kal-zielen);
	font: 700 24px/1 "Montserrat", sans-serif;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease;
}

.opfor-kal__dzis {
	font-size: 12px;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.opfor-kal__strzalka:hover,
.opfor-kal__dzis:hover {
	background: var(--kal-zielen);
	color: #07200a;
}

/* Siatka miesiąca */

.opfor-kal__dni {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	margin-bottom: 4px;
}

.opfor-kal__dni span {
	padding: 6px 8px;
	color: var(--kal-przygaszony);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.opfor-kal__tydz {
	position: relative;
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	grid-auto-rows: auto;
	row-gap: 3px;
	min-height: 96px;
	padding-bottom: 6px;
	border-top: 1px solid var(--kal-linia);
	background-image: linear-gradient(to right, var(--kal-linia) 1px, transparent 1px);
	background-size: calc(100% / 7) 100%;
}

.opfor-kal__dzien {
	padding: 6px 8px;
	min-height: 28px;
}

.opfor-kal__numer {
	color: var(--kal-tekst);
	font-size: 13px;
	font-weight: 600;
}

.opfor-kal__dzien.is-inny .opfor-kal__numer {
	color: #4d5a4d;
}

.opfor-kal__dzien.is-dzis .opfor-kal__numer {
	display: inline-block;
	min-width: 24px;
	padding: 2px 6px;
	border-radius: 999px;
	background: var(--kal-zielen);
	color: #07200a;
	text-align: center;
}

/* Termin jako pasek / pozycja listy */

.opfor-kal__termin,
.opfor-kal__termin:hover,
.opfor-kal__termin:focus {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 4px;
	padding: 6px 10px;
	min-height: 32px;
	border-left: 4px solid var(--c, var(--kal-c0));
	border-radius: 4px;
	background: color-mix(in srgb, var(--c, var(--kal-c0)) 26%, #101310);
	color: var(--kal-tekst);
	font-size: 12px;
	line-height: 1.25;
	overflow: hidden;
	white-space: nowrap;
	transition: background-color .15s ease, transform .15s ease;
}

a.opfor-kal__termin:hover {
	background: color-mix(in srgb, var(--c, var(--kal-c0)) 50%, #101310);
	transform: translateY(-1px);
}

.opfor-kal__termin--c0 { --c: var(--kal-c0); }
.opfor-kal__termin--c1 { --c: var(--kal-c1); }
.opfor-kal__termin--c2 { --c: var(--kal-c2); }
.opfor-kal__termin--c3 { --c: var(--kal-c3); }
.opfor-kal__termin--c4 { --c: var(--kal-c4); }
.opfor-kal__termin--c5 { --c: var(--kal-c5); }

.opfor-kal__termin.is-ciag-lewo {
	margin-left: 0;
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}

.opfor-kal__termin.is-ciag-prawo {
	margin-right: 0;
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}

.opfor-kal__nazwa {
	overflow: hidden;
	text-overflow: ellipsis;
	font-weight: 700;
	letter-spacing: .02em;
}

.opfor-kal__miasto {
	flex: 0 0 auto;
	color: var(--kal-przygaszony);
	font-size: 11px;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.opfor-kal__status {
	flex: 0 0 auto;
	padding: 1px 6px;
	border-radius: 3px;
	background: rgba(255, 255, 255, .14);
	font-size: 10px;
	font-style: normal;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.opfor-kal__termin--odwolany {
	opacity: .5;
	text-decoration: line-through;
}

/* Lista terminów miesiąca */

.opfor-kal__lista {
	margin-top: 20px;
	padding-top: 16px;
	border-top: 1px solid var(--kal-linia);
}

.opfor-kal__lista-tytul {
	margin: 0 0 10px;
	color: var(--kal-zielen);
	font: 700 13px "Montserrat", sans-serif;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.opfor-kal__wiersze {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.opfor-kal__termin--lista,
.opfor-kal__termin--lista:hover,
.opfor-kal__termin--lista:focus {
	flex-wrap: wrap;
	margin: 0;
	padding: 10px 14px;
	font-size: 14px;
	white-space: normal;
}

.opfor-kal__data {
	flex: 0 0 auto;
	min-width: 170px;
	font-weight: 700;
}

.opfor-kal__pusto {
	margin: 0;
	color: var(--kal-przygaszony);
	font-size: 14px;
}

/* Telefon: zostaje czytelna lista, siatka znika */

@media (max-width: 760px) {
	.opfor-kal {
		padding: 14px 12px;
	}

	.opfor-kal__siatka {
		display: none;
	}

	.opfor-kal__lista {
		margin-top: 8px;
		padding-top: 12px;
	}

	.opfor-kal__tytul {
		font-size: 18px;
	}

	.opfor-kal__chipy {
		flex-wrap: nowrap;
		overflow-x: auto;
		padding-bottom: 4px;
		-webkit-overflow-scrolling: touch;
	}

	.opfor-kal__chip {
		flex: 0 0 auto;
	}

	.opfor-kal__miejsce {
		width: 100%;
	}

	.opfor-kal__data {
		min-width: 100%;
	}
}

/* Motyw nadpisuje przyciski na różowo — przywracamy zieleń */
.opfor-kal button.opfor-kal__chip,
.opfor-kal button.opfor-kal__strzalka,
.opfor-kal button.opfor-kal__dzis {
	background: transparent !important;
	background-color: var(--kal-karta) !important;
	border: 1px solid var(--kal-linia) !important;
	color: var(--kal-tekst) !important;
	box-shadow: none !important;
	text-shadow: none !important;
}

.opfor-kal button.opfor-kal__strzalka,
.opfor-kal button.opfor-kal__dzis {
	color: var(--kal-zielen) !important;
}

.opfor-kal button.opfor-kal__chip:hover,
.opfor-kal button.opfor-kal__chip:focus {
	background-color: rgba(93, 179, 97, .16) !important;
	border-color: var(--kal-zielen) !important;
	color: var(--kal-tekst) !important;
}

.opfor-kal button.opfor-kal__strzalka:hover,
.opfor-kal button.opfor-kal__strzalka:focus,
.opfor-kal button.opfor-kal__dzis:hover,
.opfor-kal button.opfor-kal__dzis:focus {
	background-color: var(--kal-zielen) !important;
	border-color: var(--kal-zielen) !important;
	color: #07200a !important;
}

.opfor-kal button.opfor-kal__chip.is-active {
	background-color: var(--kal-zielen) !important;
	border-color: var(--kal-zielen) !important;
	color: #07200a !important;
}

.opfor-kal__termin--minione {
	opacity: .62;
	filter: saturate(.7);
}

/* ==================================================================
   Kalendarz — wersja 2: pełne kolory kategorii (czytelny tekst)
   ================================================================== */

.opfor-kal {
	--kal-c0: #2e7d38; --kal-t0: #ffffff;
	--kal-c1: #1f7f8e; --kal-t1: #ffffff;
	--kal-c2: #c0a062; --kal-t2: #17130a;
	--kal-c3: #b5502f; --kal-t3: #ffffff;
	--kal-c4: #ded8c4; --kal-t4: #17130a;
	--kal-c5: #9bb23a; --kal-t5: #0e1404;
}

/* przyciski kategorii — całe tło w kolorze szkolenia */
.opfor-kal button.opfor-kal__chip[class*="opfor-kal__chip--c"] {
	border: 2px solid transparent !important;
	opacity: .78;
}

.opfor-kal button.opfor-kal__chip--c0 { background-color: var(--kal-c0) !important; color: var(--kal-t0) !important; }
.opfor-kal button.opfor-kal__chip--c1 { background-color: var(--kal-c1) !important; color: var(--kal-t1) !important; }
.opfor-kal button.opfor-kal__chip--c2 { background-color: var(--kal-c2) !important; color: var(--kal-t2) !important; }
.opfor-kal button.opfor-kal__chip--c3 { background-color: var(--kal-c3) !important; color: var(--kal-t3) !important; }
.opfor-kal button.opfor-kal__chip--c4 { background-color: var(--kal-c4) !important; color: var(--kal-t4) !important; }
.opfor-kal button.opfor-kal__chip--c5 { background-color: var(--kal-c5) !important; color: var(--kal-t5) !important; }

.opfor-kal button.opfor-kal__chip[class*="opfor-kal__chip--c"]:hover,
.opfor-kal button.opfor-kal__chip[class*="opfor-kal__chip--c"]:focus {
	opacity: 1;
	border-color: rgba(255, 255, 255, .6) !important;
}

.opfor-kal button.opfor-kal__chip[class*="opfor-kal__chip--c"].is-active {
	opacity: 1;
	border-color: #ffffff !important;
	box-shadow: 0 0 0 2px rgba(255, 255, 255, .25) !important;
}

.opfor-kal button.opfor-kal__chip--c0.is-active { background-color: var(--kal-c0) !important; color: var(--kal-t0) !important; }
.opfor-kal button.opfor-kal__chip--c1.is-active { background-color: var(--kal-c1) !important; color: var(--kal-t1) !important; }
.opfor-kal button.opfor-kal__chip--c2.is-active { background-color: var(--kal-c2) !important; color: var(--kal-t2) !important; }
.opfor-kal button.opfor-kal__chip--c3.is-active { background-color: var(--kal-c3) !important; color: var(--kal-t3) !important; }
.opfor-kal button.opfor-kal__chip--c4.is-active { background-color: var(--kal-c4) !important; color: var(--kal-t4) !important; }
.opfor-kal button.opfor-kal__chip--c5.is-active { background-color: var(--kal-c5) !important; color: var(--kal-t5) !important; }

.opfor-kal__chip.is-active::before {
	content: "✓";
	margin-right: 6px;
	font-weight: 700;
}

/* terminy — pełne tło w kolorze kategorii */
.opfor-kal .opfor-kal__termin,
.opfor-kal a.opfor-kal__termin:hover,
.opfor-kal a.opfor-kal__termin:focus {
	border-left: 0;
	background: var(--c, var(--kal-c0));
	color: var(--t, var(--kal-t0));
}

.opfor-kal a.opfor-kal__termin:hover {
	filter: brightness(1.12);
}

.opfor-kal__termin--c0 { --c: var(--kal-c0); --t: var(--kal-t0); }
.opfor-kal__termin--c1 { --c: var(--kal-c1); --t: var(--kal-t1); }
.opfor-kal__termin--c2 { --c: var(--kal-c2); --t: var(--kal-t2); }
.opfor-kal__termin--c3 { --c: var(--kal-c3); --t: var(--kal-t3); }
.opfor-kal__termin--c4 { --c: var(--kal-c4); --t: var(--kal-t4); }
.opfor-kal__termin--c5 { --c: var(--kal-c5); --t: var(--kal-t5); }

.opfor-kal .opfor-kal__miasto {
	color: inherit;
	opacity: .82;
}

.opfor-kal .opfor-kal__status {
	background: rgba(0, 0, 0, .28);
	color: #ffffff;
}

.opfor-kal__termin--c2 .opfor-kal__status,
.opfor-kal__termin--c4 .opfor-kal__status,
.opfor-kal__termin--c5 .opfor-kal__status {
	background: rgba(0, 0, 0, .18);
	color: inherit;
}

.opfor-kal .opfor-kal__termin--minione {
	opacity: .5;
	filter: saturate(.6);
}

/* nagłówki miesięcy w liście wybranego szkolenia */
.opfor-kal__miesiac {
	margin: 18px 0 8px;
	color: var(--kal-zielen);
	font: 700 16px "Montserrat", sans-serif;
	letter-spacing: .04em;
	text-transform: uppercase;
}

/* ==================================================================
   Zielony panel kursu: tytuł, opis, cena, czas trwania
   ================================================================== */

.opfor-wiersz__opis {
	position: relative;
	z-index: 2;
	margin: 6px 0 14px;
	max-width: 62ch;
	color: #0b1f0d;
	font-family: "Montserrat", sans-serif;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.5;
}

.opfor-wiersz__fakty {
	position: relative;
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 14px;
	margin-top: 2px;
}

.opfor-fakt {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 140px;
	padding: 8px 16px 9px 12px;
	border-left: 4px solid #0a5c12;
	border-radius: 3px;
	background: rgba(255, 255, 255, .3);
	font-family: "Montserrat", sans-serif;
}

.opfor-fakt__etykieta {
	color: #0b3a12;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.opfor-fakt__wartosc {
	color: #08170a;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.25;
}

@media (max-width: 600px) {
	.opfor-wiersz__opis {
		font-size: 14px;
	}

	.opfor-fakt {
		flex: 1 1 calc(50% - 7px);
		min-width: 0;
	}

	.opfor-fakt__wartosc {
		font-size: 15px;
	}
}

.opfor-fakt--wkrotce {
	border-left-color: #c0a062;
}

/* ---- wersja 2: ciemne, czytelne kafelki faktów (jak w kalendarzu) ---- */
.opfor-wiersz__opis {
	max-width: none;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.opfor-wiersz__fakty {
	align-items: stretch;
	gap: 10px;
}

.opfor-fakt {
	min-width: 120px;
	padding: 9px 18px 10px 14px;
	border-left: 3px solid #c0a062;
	border-radius: 3px;
	background: rgba(12, 12, 12, .86);
	box-shadow: 0 2px 8px rgba(0, 0, 0, .25);
}

.opfor-fakt__etykieta {
	color: #c0a062;
	font-size: 10px;
	letter-spacing: .14em;
}

.opfor-fakt__wartosc {
	color: #fff;
	font-size: 18px;
	font-weight: 700;
}

.opfor-fakt--termin {
	flex: 1 1 260px;
	gap: 3px;
}

.opfor-fakt__wartosc--termin {
	font-size: 15px;
	font-weight: 600;
}

.opfor-fakt__wiecej {
	color: #9bb23a;
	font-size: 12px;
	font-weight: 600;
}

.opfor-fakt--wkrotce {
	border-left-color: #c0a062;
}

.opfor-fakt--wkrotce .opfor-fakt__wartosc {
	color: #c0a062;
}

@media (max-width: 600px) {
	.opfor-fakt {
		flex: 1 1 calc(50% - 5px);
	}

	.opfor-fakt--termin {
		flex: 1 1 100%;
	}

	.opfor-fakt__wartosc--termin {
		font-size: 14px;
	}
}

/* ---- wersja 3: jeden techniczny pasek Cena | Czas | Termin ---- */
.opfor-wiersz__fakty {
	display: inline-flex;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 0;
	max-width: 100%;
	background: rgba(12, 12, 12, .88);
	border-left: 3px solid #c0a062;
	border-radius: 3px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .25);
}

.opfor-wiersz__fakty .opfor-fakt {
	flex: 0 0 auto;
	min-width: 0;
	padding: 10px 24px 11px 20px;
	border: 0;
	border-left: 1px solid rgba(192, 160, 98, .28);
	border-radius: 0;
	background: none;
	box-shadow: none;
}

.opfor-wiersz__fakty .opfor-fakt:first-child {
	border-left: 0;
}

.opfor-wiersz__fakty .opfor-fakt__etykieta {
	color: #c0a062;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .16em;
}

.opfor-wiersz__fakty .opfor-fakt__wartosc {
	color: #f2efe6;
	font-size: 17px;
	font-weight: 600;
	letter-spacing: .01em;
}

.opfor-wiersz__fakty .opfor-fakt__wartosc--termin {
	font-size: 16px;
}

.opfor-wiersz__fakty .opfor-fakt--wkrotce .opfor-fakt__wartosc {
	color: #c0a062;
}

@media (max-width: 760px) {
	.opfor-wiersz__fakty {
		display: flex;
		flex-wrap: wrap;
		width: 100%;
	}

	.opfor-wiersz__fakty .opfor-fakt {
		flex: 1 1 50%;
		padding: 9px 14px 10px 16px;
	}

	.opfor-wiersz__fakty .opfor-fakt--termin {
		flex: 1 1 100%;
		border-left: 0;
		border-top: 1px solid rgba(192, 160, 98, .28);
	}

	.opfor-wiersz__fakty .opfor-fakt__wartosc,
	.opfor-wiersz__fakty .opfor-fakt__wartosc--termin {
		font-size: 15px;
	}
}

/* ---- wersja 4: kolor panelu = kolor kursu z kalendarza; równe pola paska ---- */
.opfor-wiersz__panel::after {
	background: var(--opfor-panel-kolor, var(--opfor-zielony));
}

.opfor-wiersz__fakty {
	display: grid;
	grid-template-columns: 1fr 1fr 2.3fr;
	width: 100%;
	max-width: 640px;
}

.opfor-wiersz__fakty .opfor-fakt {
	min-width: 0;
}

@media (max-width: 760px) {
	.opfor-wiersz__fakty {
		display: grid;
		grid-template-columns: 1fr 1fr;
		max-width: none;
	}

	.opfor-wiersz__fakty .opfor-fakt {
		align-items: center;
		text-align: center;
	}

	.opfor-wiersz__fakty .opfor-fakt--termin {
		grid-column: 1 / -1;
	}
}

:root {
	--kal-c0: #2e7d38;
	--kal-c1: #1f7f8e;
	--kal-c2: #c0a062;
	--kal-c3: #b5502f;
	--kal-c4: #ded8c4;
	--kal-c5: #9bb23a;
}

/* ---- przełącznik ROK / MIESIĄC (telefon) ---- */
.opfor-kal button.opfor-kal__przelacznik {
	display: none !important;
}

/* ---- miniaturka miesiąca na telefonie (tygodnie, połączone dni, podział na pół) ---- */
.opfor-kal__mini {
	display: none;
}

@media (max-width: 760px) {
	.opfor-kal button.opfor-kal__przelacznik {
		display: inline-block !important;
		flex: 0 0 auto;
		height: 44px;
		padding: 0 10px;
		border: 1px solid #c0a062 !important;
		border-radius: 4px;
		background: transparent !important;
		color: #c0a062 !important;
		font: 700 11px/1 "Montserrat", sans-serif;
		letter-spacing: .06em;
		text-transform: uppercase;
		box-shadow: none !important;
		cursor: pointer;
	}

	.opfor-kal button.opfor-kal__przelacznik:hover,
	.opfor-kal button.opfor-kal__przelacznik:focus {
		background-color: #c0a062 !important;
		color: #17130a !important;
	}

	.opfor-kal__nawig {
		gap: 8px;
	}

	.opfor-kal.is-rok .opfor-kal__mini,
	.opfor-kal.is-rok .opfor-kal__dzis {
		display: none;
	}

	.opfor-kal__mini {
		display: block;
		container-type: inline-size;
		margin: 6px 0 16px;
	}

	.opfor-kal__mini-dni {
		display: grid;
		grid-template-columns: repeat(7, 1fr);
		gap: 4px;
		margin-bottom: 4px;
		text-align: center;
		color: #c0a062;
		font: 600 10px "Montserrat", sans-serif;
		letter-spacing: .08em;
		text-transform: uppercase;
	}

	.opfor-kal__mini-tydz {
		display: grid;
		grid-template-columns: repeat(7, 1fr);
		gap: 4px;
		height: calc((100cqw - 24px) / 7);
		margin-bottom: 4px;
	}

	.opfor-kal__mini-tydz.ma-podzial {
		height: calc((100cqw - 24px) / 7 * 1.55);
	}

	.opfor-kal__mini-dzien,
	.opfor-kal__mini-pusty {
		position: relative;
		display: block;
		box-sizing: border-box;
		min-width: 0;
		height: 100%;
		margin: 0;
		padding: 0;
		border: 1px solid rgba(192, 160, 98, .18);
		border-radius: 4px;
		background: rgba(255, 255, 255, .03);
		color: #cfcabb;
		font-family: "Montserrat", sans-serif;
		line-height: 1;
		text-align: center;
		overflow: hidden;
	}

	.opfor-kal__mini-pusty {
		border-color: transparent;
		background: none;
	}

	.opfor-kal__mini-dzien > .opfor-kal__mini-nr {
		position: absolute;
		top: 50%;
		left: 0;
		right: 0;
		transform: translateY(-50%);
		font-size: 13px;
		font-weight: 600;
	}

	.opfor-kal__mini-pol {
		position: absolute;
		left: 0;
		right: 0;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 3px;
	}

	.opfor-kal__mini-pol.is-calosc {
		top: 0;
		bottom: 0;
	}

	.opfor-kal__mini-pol.is-gora {
		top: 0;
		height: 50%;
	}

	.opfor-kal__mini-pol.is-dol {
		bottom: 0;
		height: 50%;
	}

	.opfor-kal__mini-nry {
		display: grid;
		width: 100%;
	}

	.opfor-kal__mini-nry .opfor-kal__mini-nr {
		font-size: 13px;
		font-weight: 700;
		text-align: center;
	}

	.opfor-kal__mini-sk {
		display: block;
		max-width: 100%;
		padding: 0 2px;
		box-sizing: border-box;
		font-size: 7.5px;
		font-style: normal;
		font-weight: 700;
		letter-spacing: 0;
		line-height: 1.05;
		text-align: center;
		overflow-wrap: anywhere;
	}

	.opfor-kal__mini-dzien.is-dzis {
		border-color: #c0a062;
		box-shadow: inset 0 0 0 1px #c0a062;
	}

	.opfor-kal button.opfor-kal__mini-dzien.ma-termin {
		border-color: transparent;
		cursor: pointer;
		background: none !important;
	}

	.opfor-kal button.opfor-kal__mini-dzien.is-dzis {
		border-color: #c0a062;
	}

	.opfor-kal__mini-dzien.is-minione {
		opacity: .45;
	}

	.opfor-kal__lista li.is-podswietl {
		outline: 2px solid #c0a062;
		outline-offset: 2px;
		border-radius: 4px;
	}
}

/* ---- przycisk w panelu zamiast kafelka ze zdjęciem (telefon) ---- */
.opfor-wiersz__btn-mob {
	display: none;
}

@media (max-width: 767px) {
	.opfor-wiersz--opis > .opfor-wiersz__kafel {
		display: none;
	}

	.opfor-wiersz--opis .opfor-wiersz__panel {
		align-items: stretch;
	}

	.opfor-wiersz--opis a.opfor-wiersz__btn-mob {
		position: relative;
		z-index: 2;
		display: block;
		align-self: center;
		margin: 6px auto 12px;
		padding: 13px 30px;
		border: 1px solid #c0a062;
		border-radius: 4px;
		background: rgba(12, 12, 12, .88);
		color: #fff;
		font: 700 13px/1 "Montserrat", sans-serif;
		letter-spacing: .08em;
		text-align: center;
		text-decoration: none;
		text-transform: uppercase;
		box-shadow: 0 2px 8px rgba(0, 0, 0, .25);
	}

	.opfor-wiersz--opis a.opfor-wiersz__btn-mob:hover,
	.opfor-wiersz--opis a.opfor-wiersz__btn-mob:focus {
		background: #c0a062;
		color: #17130a;
	}
}

/* ---- mocniejszy kolor panelu (zbliżony do kafelków kalendarza) i dobry kontrast tekstu ---- */
.opfor-wiersz[style*="--opfor-panel-kolor"] .opfor-wiersz__panel::after {
	opacity: .82;
}

.opfor-wiersz[style*="--opfor-panel-txt"] .opfor-wiersz__tytul,
.opfor-wiersz[style*="--opfor-panel-txt"] .opfor-wiersz__opis {
	color: var(--opfor-panel-txt);
}

/* ====================== [opfor_najblizsze] — strona główna ====================== */

.opfor-nb {
	max-width: 1140px;
	margin: 0 auto;
	font-family: "Montserrat", sans-serif;
}

.opfor-nb__lista {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.opfor-nb a.opfor-nb__karta {
	display: grid;
	grid-template-columns: 190px 1fr auto;
	align-items: center;
	gap: 20px;
	padding: 14px 20px;
	border-radius: 4px;
	color: #fff;
	text-decoration: none;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .35);
	transition: transform .15s ease, filter .15s ease;
}

.opfor-nb a.opfor-nb__karta:hover,
.opfor-nb a.opfor-nb__karta:focus {
	transform: translateY(-2px);
	filter: brightness(1.08);
	color: inherit;
}

.opfor-nb--c0 { background: var(--kal-c0, #2e7d38); color: #fff; }
.opfor-nb--c1 { background: var(--kal-c1, #1f7f8e); color: #fff; }
.opfor-nb--c2 { background: var(--kal-c2, #c0a062); color: #17130a !important; }
.opfor-nb--c3 { background: var(--kal-c3, #b5502f); color: #fff; }
.opfor-nb--c4 { background: var(--kal-c4, #ded8c4); color: #17130a !important; }
.opfor-nb--c5 { background: var(--kal-c5, #9bb23a); color: #0e1404 !important; }

.opfor-nb__data {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding-right: 18px;
	border-right: 1px solid currentColor;
	line-height: 1;
}

.opfor-nb__data b {
	font-size: 30px;
	font-weight: 800;
	letter-spacing: .01em;
}

.opfor-nb__data i {
	font-size: 11px;
	font-style: normal;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	opacity: .9;
}

.opfor-nb__opis {
	display: flex;
	flex-direction: column;
	gap: 5px;
	min-width: 0;
}

.opfor-nb__opis strong {
	font-size: 19px;
	font-weight: 800;
	letter-spacing: .02em;
	text-transform: uppercase;
}

.opfor-nb__opis em {
	font-size: 13px;
	font-style: normal;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	opacity: .88;
}

.opfor-nb__przycisk {
	padding: 12px 24px;
	border: 1px solid #c0a062;
	border-radius: 4px;
	background: rgba(12, 12, 12, .88);
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .08em;
	text-align: center;
	white-space: nowrap;
}

.opfor-nb--pelny .opfor-nb__przycisk {
	border-color: #777;
	color: #bbb;
}

.opfor-nb__wszystkie {
	margin: 18px 0 0;
	text-align: center;
}

.opfor-nb__wszystkie a {
	display: inline-block;
	padding: 13px 30px;
	border: 1px solid #c0a062;
	border-radius: 4px;
	background: transparent;
	color: #c0a062;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .1em;
	text-decoration: none;
	transition: background-color .15s ease, color .15s ease;
}

.opfor-nb__wszystkie a:hover,
.opfor-nb__wszystkie a:focus {
	background: #c0a062;
	color: #17130a;
}

.opfor-nb__pusto {
	margin: 0 0 8px;
	color: #cfcabb;
	text-align: center;
}

@media (max-width: 680px) {
	.opfor-nb a.opfor-nb__karta {
		grid-template-columns: 1fr;
		gap: 10px;
		padding: 14px 16px;
		text-align: center;
	}

	.opfor-nb__data {
		align-items: center;
		padding: 0 0 10px;
		border-right: 0;
		border-bottom: 1px solid currentColor;
	}

	.opfor-nb__opis strong {
		font-size: 17px;
	}
}

/* ---- wersja 2: smuklejsza czcionka, fakty (cena, czas) ---- */
.opfor-nb {
	font-weight: 400;
}

.opfor-nb a.opfor-nb__karta {
	grid-template-columns: 170px 1fr auto;
	gap: 22px;
	padding: 14px 20px;
}

.opfor-nb__data b {
	font-size: 28px;
	font-weight: 600;
	letter-spacing: 0;
}

.opfor-nb__data i {
	font-size: 10.5px;
	font-weight: 500;
	letter-spacing: .12em;
}

.opfor-nb__opis strong {
	font-size: 17px;
	font-weight: 600;
	letter-spacing: .04em;
}

.opfor-nb__opis em {
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .12em;
}

.opfor-nb__przycisk {
	padding: 11px 22px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .1em;
}

.opfor-nb__wszystkie a {
	font-weight: 600;
}

.opfor-nb__fakty {
	display: inline-flex;
	align-self: flex-start;
	margin-top: 4px;
	background: rgba(12, 12, 12, .86);
	border-left: 3px solid #c0a062;
	border-radius: 3px;
	color: #f2efe6;
}

.opfor-nb__fakt {
	display: flex;
	flex-direction: column;
	gap: 3px;
	padding: 6px 16px 7px 12px;
	border-left: 1px solid rgba(192, 160, 98, .28);
	text-transform: none;
}

.opfor-nb__fakt:first-child {
	border-left: 0;
}

.opfor-nb__fakt small {
	color: #c0a062;
	font-size: 9px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.opfor-nb__fakt b {
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .01em;
}

@media (max-width: 680px) {
	.opfor-nb__opis {
		align-items: center;
	}

	.opfor-nb__fakty {
		align-self: center;
	}

	.opfor-nb__opis strong {
		font-size: 16px;
	}
}

/* ---- przycisk kalendarza czytelny na złotym tle ---- */
.opfor-nb__wszystkie a {
	background: rgba(12, 12, 12, .9);
	border-color: #c0a062;
	color: #fff;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .25);
}

.opfor-nb__wszystkie a:hover,
.opfor-nb__wszystkie a:focus {
	background: #17130a;
	color: #c0a062;
}

.opfor-nb__fakt small {
	font-size: 10px;
}

/* ---- telefon: układ w jednej kolumnie (po wersji 2, żeby jej nie nadpisywała) ---- */
@media (max-width: 680px) {
	.opfor-nb a.opfor-nb__karta {
		grid-template-columns: minmax(0, 1fr);
		gap: 10px;
		padding: 14px 14px 16px;
		text-align: center;
	}

	.opfor-nb__data {
		align-items: center;
		padding: 0 0 10px;
		border-right: 0;
		border-bottom: 1px solid currentColor;
	}

	.opfor-nb__opis {
		align-items: center;
	}

	.opfor-nb__fakty {
		align-self: center;
		max-width: 100%;
	}

	.opfor-nb__przycisk {
		display: block;
		white-space: normal;
	}
}

/* v1.4.2 — podpowiedź „najpierw wybierz termin” */
.opfor-wybierz-termin{margin:0 0 14px;padding:12px 16px;border-left:3px solid #c0a062;background:rgba(192,160,98,.12);color:#f1e7cf;font-family:'Montserrat',sans-serif;font-size:14px;line-height:1.5}
.opfor-terminy--podpowiedz{animation:opforPodpowiedz 1.6s ease-out 1}
@keyframes opforPodpowiedz{0%{box-shadow:0 0 0 0 rgba(192,160,98,.9)}100%{box-shadow:0 0 0 18px rgba(192,160,98,0)}}
