/*
 * Główny arkusz stylów motywu Zarynspj.
 *
 * Nagłówek motywu (Theme Name itd.) pozostaje w /style.css – tego wymaga WordPress.
 * Tu znajduje się cała właściwa logika wizualna, ładowana przez wp_enqueue_style()
 * w functions.php. Kolejność reguł zachowana 1:1 względem poprzedniego style.css.
 */

/* === Zmienne === */
:root {
	--color-navy: #1f2d3d;
	--color-navy-deep: #16212e;
	--color-gold: #b3793f;
	--color-gold-dark: #9a6531;
	--color-brick: #a85432;
	--color-cream: #f4efe7;
	--color-surface: #ffffff;
	--color-text: #28303a;
	--color-muted: #6b7280;
	--color-line: #e4ddd0;

	--font-heading: Georgia, "Times New Roman", serif;
	--font-body: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

	--container: 1200px;
	--radius: 10px;
	--gap: 1.5rem;
	--shadow: 0 10px 30px rgba(22, 33, 46, 0.12);
}

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

html { scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--font-body);
	color: var(--color-text);
	background: var(--color-cream);
	line-height: 1.6;
}

h1, h2, h3, h4 {
	font-family: var(--font-heading);
	line-height: 1.2;
	color: var(--color-navy);
	margin: 0 0 0.5em;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--color-gold-dark); }

/* === Pomocnicze === */
.container {
	width: 100%;
	max-width: var(--container);
	margin-inline: auto;
	padding-inline: 1.25rem;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0; border: 0;
	clip: rect(0 0 0 0);
	overflow: hidden;
	white-space: nowrap;
}

.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 1000;
	background: var(--color-navy);
	color: #fff;
	padding: 0.75rem 1.25rem;
}
.skip-link:focus { left: 0; }

/* === Przyciski === */
.btn {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.7rem 1.3rem;
	border-radius: 6px;
	font-weight: 600;
	text-decoration: none;
	border: 1px solid transparent;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
}
/* Tło primary używa ciemniejszego złota — biały tekst osiąga kontrast AA (≈4.9:1). */
.btn--primary { background: var(--color-gold-dark); color: #fff; }
.btn--primary:hover { background: #855427; }
.btn--ghost { background: transparent; color: #fff; border-color: rgba(255, 255, 255, 0.6); }
.btn--ghost:hover { background: rgba(255, 255, 255, 0.12); }
.btn--dark { color: var(--color-navy); border-color: var(--color-navy); }
.btn--dark:hover { background: var(--color-cream); color: var(--color-navy); }

/* === Nagłówek === */
.site-header {
	background: var(--color-navy-deep);
	color: #fff;
}
.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--gap);
	min-height: 140px;
}
.site-branding__text { text-decoration: none; }
.site-branding__title {
	font-family: var(--font-heading);
	font-size: 1.15rem;
	color: #fff;
	max-width: 26ch;
	display: inline-block;
}
.custom-logo { max-height: 120px; width: auto; }

.primary-nav .menu {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.25rem;
	margin: 0;
	padding: 0;
}
.primary-nav .menu li { position: relative; }
.primary-nav a {
	color: #f0ece3;
	text-decoration: none;
	padding: 0.5rem 0;
	border-bottom: 2px solid transparent;
	white-space: nowrap;
}
.primary-nav a:hover,
.primary-nav .current-menu-item > a,
.primary-nav .current-menu-ancestor > a {
	color: #fff;
	border-bottom-color: var(--color-gold);
}

/* Wskaźnik pozycji z podmenu (np. „O parafii ▾", „Kancelaria ▾"). */
.primary-nav .menu-item-has-children > a::after {
	content: "▾";
	font-size: 0.7em;
	margin-left: 0.35em;
	opacity: 0.85;
}

/* Rozwijane podmenu (desktop): ukryte, pokazują się na hover/focus. */
.primary-nav .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0.4rem 0;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 230px;
	background: var(--color-navy-deep);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	display: none;
	z-index: 60;
}
.primary-nav .menu-item-has-children:hover > .sub-menu,
.primary-nav .menu-item-has-children:focus-within > .sub-menu {
	display: block;
}
.primary-nav .sub-menu a {
	display: block;
	padding: 0.45rem 1.1rem;
	border-bottom: 0;
	white-space: normal;
}
.primary-nav .sub-menu a:hover {
	color: #fff;
	border-bottom: 0;
	background: rgba(255, 255, 255, 0.07);
}
/* Przycisk akordeonu — tylko mobile (na desktopie rozwija hover). */
.submenu-toggle { display: none; }

.nav-toggle {
	display: none;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.5);
	border-radius: 6px;
	padding: 0.6rem 0.7rem;
	cursor: pointer;
}
.nav-toggle__bar,
.nav-toggle__bar::before,
.nav-toggle__bar::after {
	display: block;
	width: 22px; height: 2px;
	background: #fff;
	position: relative;
}
.nav-toggle__bar::before,
.nav-toggle__bar::after { content: ""; position: absolute; left: 0; }
.nav-toggle__bar::before { top: -7px; }
.nav-toggle__bar::after { top: 7px; }

/* === Hero === */
.hero {
	position: relative;
	background: var(--color-navy) center/cover no-repeat;
	color: #fff;
	min-height: 560px;
	display: flex;
	align-items: center;
}
.hero::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(90deg, rgba(15, 23, 33, 0.85) 0%, rgba(15, 23, 33, 0.45) 55%, rgba(15, 23, 33, 0.15) 100%);
}
.hero__content { position: relative; z-index: 1; max-width: 620px; padding-block: 3rem; }
.hero__content h1 { color: #fff; font-size: clamp(2rem, 4vw, 3.1rem); }
.hero__lead { font-size: 1.1rem; color: #e9e4da; max-width: 46ch; }
.hero__cta { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.75rem; }

/* === Wejścia (Parafia / Fara) === */
.entrances { padding-block: clamp(2rem, 5vw, 4rem); }
.entrances__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--gap);
}
.entrance {
	position: relative;
	border-radius: var(--radius);
	overflow: hidden;
	min-height: 230px;
	display: flex;
	color: #fff;
	text-decoration: none;
	background: var(--color-navy) center/cover no-repeat;
	box-shadow: var(--shadow);
}
.entrance::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(15, 23, 33, 0.25), rgba(15, 23, 33, 0.8));
}
.entrance__body { position: relative; z-index: 1; margin-top: auto; padding: 1.5rem; }
.entrance__title { color: #fff; font-size: 1.6rem; margin-bottom: 0.35rem; }
.entrance__desc { color: #ece7dd; margin: 0; }
.entrance__arrow { display: inline-block; margin-top: 1rem; font-size: 1.3rem; }

/* === Szybki dostęp === */
.quick-access {
	background: var(--color-surface);
	padding-block: clamp(2rem, 5vw, 4rem);
	border-top: 1px solid var(--color-line);
}
.section-heading {
	text-align: center;
	font-size: 1.5rem;
	position: relative;
	padding-bottom: 0.75rem;
	margin-bottom: 2rem;
}
.section-heading::after {
	content: "";
	display: block;
	width: 56px; height: 2px;
	background: var(--color-gold);
	margin: 0.6rem auto 0;
}
.quick-access__grid {
	list-style: none;
	margin: 0; padding: 0;
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: var(--gap);
}
.quick-access__item { display: flex; } /* kafle równej wysokości */
.quick-access__item a,
.quick-access__item .quick-access__trigger {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: 0.6rem;
	text-align: center;
	text-decoration: none;
	color: var(--color-navy);
	padding: 1rem 0.5rem;
	border-radius: var(--radius);
	transition: background 0.2s;
}
/* Reset wyglądu przycisku-wyzwalacza podmenu. */
.quick-access__trigger {
	width: 100%;
	border: 0;
	background: none;
	font: inherit;
	cursor: pointer;
}
.quick-access__item a:hover,
.quick-access__item .quick-access__trigger:hover { background: var(--color-cream); }
.quick-access__icon svg { width: 34px; height: 34px; color: var(--color-gold); }
.quick-access__label { font-weight: 600; }

/* Rozwijane podmenu kafla (hover / focus) — np. „O parafii”. */
.quick-access__item.has-children { position: relative; }
.quick-access__submenu {
	list-style: none;
	margin: 0;
	padding: 0.4rem;
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	min-width: 190px;
	background: var(--color-surface);
	border: 1px solid var(--color-line);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	display: none;
	z-index: 30;
}
.quick-access__item.has-children:hover .quick-access__submenu,
.quick-access__item.has-children:focus-within .quick-access__submenu,
.quick-access__item.has-children.is-open .quick-access__submenu { display: block; }
.quick-access__submenu li { margin: 0; }
.quick-access__submenu a {
	display: block;
	padding: 0.5rem 0.75rem;
	border-radius: 6px;
	text-decoration: none;
	color: var(--color-navy);
	text-align: center;
}
.quick-access__submenu a:hover { background: var(--color-cream); color: var(--color-gold-dark); }

/* === Stopka === */
.site-footer {
	background: var(--color-navy-deep);
	color: #d9d4c9;
	margin-top: auto;
}
.site-footer a { color: #e9e4da; text-decoration: none; }
.site-footer a:hover { color: #fff; }
.site-footer__brand {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 1rem;
	padding-top: 3rem;
	padding-bottom: 1.5rem;
	margin-bottom: 2rem;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.site-footer__logo { margin: 0; }
.site-footer__logo .custom-logo { max-height: 70px; width: auto; display: block; }
.site-footer__brand-name { color: #fff; font-family: var(--font-heading); font-size: 1.05rem; max-width: 30ch; }
.site-footer__inner {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: 2.5rem;
	padding-bottom: 3rem;
}
.site-footer__heading { color: #fff; font-size: 1.05rem; margin-bottom: 1rem; }
.site-footer__subheading { color: #fff; font-weight: 600; font-size: 0.95rem; margin: 1.25rem 0 0.5rem; }
.site-footer__hours { margin-top: 1.25rem; }
.site-footer__contact p { margin: 0.35rem 0; }
.site-footer .menu { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.4rem; }
.site-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	font-size: 0.85rem;
}
.site-footer__legal ul {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
	margin: 0;
	padding-top: 1.25rem;
}
.site-footer__legal a { color: #e9e4da; text-decoration: none; }
.site-footer__legal a:hover { color: #fff; text-decoration: underline; }
.site-footer__bottom-inner {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 0.5rem;
	padding-block: 1.25rem;
}

/* === Layout strony === */
.site-main { display: block; }
html, body { min-height: 100%; }
body { display: flex; flex-direction: column; min-height: 100vh; }
.site-main { flex: 1 0 auto; }

/* === Responsywność === */
@media (max-width: 860px) {
	.nav-toggle { display: inline-block; }
	.primary-nav {
		display: none;
		position: absolute;
		top: 100%;          /* pełna wysokość nagłówka — panel spada pod logo, nic się nie chowa */
		left: 0; right: 0;
		background: var(--color-navy-deep);
		padding: 1rem 1.25rem;
		z-index: 50;
		box-shadow: 0 12px 24px rgba(0, 0, 0, 0.25);
	}
	.site-header { position: relative; }
	.primary-nav.is-open {
		display: block;
		max-height: calc(100vh - 100%);
		overflow-y: auto;
	}
	.primary-nav .menu { flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 0; }
	.primary-nav .menu > li { border-top: 1px solid rgba(255, 255, 255, 0.1); }
	.primary-nav a { display: block; padding: 0.85rem 0; }
	.primary-nav .menu-item-has-children > a::after { content: ""; margin: 0; }

	/* Akordeon: rodzic w jednym wierszu (link + przycisk), podmenu zwinięte. */
	.primary-nav .menu-item-has-children { display: flex; flex-wrap: wrap; align-items: center; }
	.primary-nav .menu-item-has-children > a { flex: 1 1 auto; }
	.submenu-toggle {
		flex: 0 0 auto;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 44px;
		height: 44px;
		background: none;
		border: 0;
		color: #f0ece3;
		cursor: pointer;
	}
	.submenu-toggle::before { content: "▾"; font-size: 0.9rem; transition: transform 0.15s ease; }
	.menu-item-has-children.is-open > .submenu-toggle::before { transform: rotate(180deg); }
	.primary-nav .sub-menu {
		position: static;
		display: none;
		flex-basis: 100%;
		min-width: 0;
		padding: 0 0 0.4rem 1rem;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		background: transparent;
	}
	.primary-nav .menu-item-has-children.is-open > .sub-menu { display: block; }
	.primary-nav .sub-menu a { padding: 0.6rem 0; }
	.primary-nav .sub-menu li + li { border-top: 1px solid rgba(255, 255, 255, 0.06); }

	.entrances__grid { grid-template-columns: 1fr; }
	.quick-access__grid { grid-template-columns: repeat(2, 1fr); }
	.site-footer__inner { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
	.site-footer__inner { grid-template-columns: 1fr; }
}

@media (max-width: 420px) {
	.quick-access__grid { grid-template-columns: 1fr; }
}

/* === Podstrona: Parafia === */
.parafia-hero { min-height: clamp(360px, 40vw, 520px); }
.quick-access--parafia .quick-access__grid { grid-template-columns: repeat(7, 1fr); }
.quick-access--parafia .quick-access__item a,
.quick-access--parafia .quick-access__item .quick-access__trigger {
	border: 1px solid var(--color-line);
	background: var(--color-surface);
}

.parafia-body { padding-block: clamp(2rem, 5vw, 3.5rem); }

.parafia-layout {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	gap: var(--gap);
	align-items: start;
}

.panel {
	background: var(--color-surface);
	border: 1px solid var(--color-line);
	border-radius: var(--radius);
	padding: 1.5rem;
	margin-bottom: var(--gap);
}
.panel__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
}
.panel__heading { font-size: 1.3rem; margin: 0 0 1rem; }
.panel__more { font-weight: 600; text-decoration: none; white-space: nowrap; }

.meta { color: var(--color-gold-dark); font-size: 0.85rem; }

.ogloszenie-full h3 { font-size: 1.4rem; margin: 0.25rem 0 0.75rem; }
.ogloszenie-full__content { margin-bottom: 1.5rem; }

.ogloszenia-older {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
	border-top: 1px solid var(--color-line);
	padding-top: 1.25rem;
}
.card-ogloszenie {
	display: block;
	padding: 0.9rem 1rem;
	border: 1px solid var(--color-line);
	border-radius: 8px;
	text-decoration: none;
	color: var(--color-navy);
}
.card-ogloszenie:hover { border-color: var(--color-gold); }
.card-ogloszenie__title { display: block; font-weight: 600; margin-top: 0.25rem; }

.link-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.45rem; }
.link-list a { text-decoration: none; color: var(--color-navy); }
.link-list a:hover { color: var(--color-gold-dark); }

.kancelaria-godziny { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: 0.35rem; }
.kancelaria-godziny li { display: flex; justify-content: space-between; gap: 1rem; }
.kancelaria-godziny__day { color: var(--color-muted); }

.section-heading--left { text-align: left; }
.section-heading--left::after { margin-left: 0; }

.aktualnosci-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--gap);
}
.card-aktualnosc {
	display: block;
	text-decoration: none;
	color: var(--color-navy);
	background: var(--color-surface);
	border: 1px solid var(--color-line);
	border-radius: var(--radius);
	overflow: hidden;
}
.card-aktualnosc__img { width: 100%; aspect-ratio: 16 / 9; height: auto; object-fit: cover; }
.card-aktualnosc .meta { display: block; padding: 0.75rem 1rem 0; }
.card-aktualnosc__title { display: block; font-weight: 600; padding: 0.25rem 1rem 1rem; }

/* Aktualności w dwóch kolumnach (nowy układ /parafia). */
.aktualnosci-grid--2 { grid-template-columns: repeat(2, 1fr); }

/* === /parafia: karuzela wyróżnionych === */
.parafia-featured { margin-bottom: var(--gap); }
.featured-carousel {
	display: flex;
	gap: var(--gap);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding-bottom: 0.75rem;
	-webkit-overflow-scrolling: touch;
}
.featured-card {
	flex: 0 0 clamp(220px, 60%, 300px);
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	background: var(--color-surface);
	border: 1px solid var(--color-line);
	border-radius: var(--radius);
	overflow: hidden;
	text-decoration: none;
	color: var(--color-navy);
}
.featured-card:hover { border-color: var(--color-gold); }
.featured-card__media { display: block; aspect-ratio: 16 / 9; overflow: hidden; }
.featured-card__media img,
.featured-card__placeholder {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.featured-card__placeholder { background: linear-gradient(135deg, var(--color-navy), var(--color-navy-deep)); }
.featured-card__body { display: flex; flex-direction: column; gap: 0.3rem; padding: 0.85rem 1rem 1.1rem; }
.featured-card__title { font-weight: 600; }

/* === /parafia: widżety panelu bocznego === */
.parafia-side .widget__heading,
.widget .panel__heading { font-size: 1.15rem; }
.widget-text { margin: 0; }
.widget-muted { color: var(--color-muted); margin: 0; }
.widget-embed { margin: 0.25rem 0 1rem; }

/* Osadzenie eOfiary.pl — iframe z innej domeny nie autoskaluje, więc dajemy
   hojną, stałą wysokość (większą na mobile, gdzie widżet układa się w pionie). */
.eofiary-embed { max-width: 100%; }
.eofiary-embed iframe {
	display: block;
	width: 100%;
	border: 0;
	min-height: 640px;
}
@media (max-width: 600px) {
	.eofiary-embed iframe { min-height: 920px; }
}

/* Widżet Facebook Page — wymuszenie responsywnej, pełnej szerokości kontenera
   (wtyczka FB renderuje sztywny width w px, stąd nadpisanie !important). */
.widget-fb .fb-page,
.widget-fb .fb-page > span,
.widget-fb .fb-page iframe {
	width: 100% !important;
}
/* Stan przed zgodą na cookies: ukryj surowy fallback FB, pokaż notkę.
   Po wyrenderowaniu widżetu (pojawia się iframe) notka znika. */
.widget-fb .fb-page blockquote { display: none; }
.widget-fb__notice { color: var(--color-muted); font-size: 0.9rem; margin: 0.5rem 0 0; line-height: 1.5; }
.widget-fb:has(.fb-page iframe) .widget-fb__notice { display: none; }
.widget-logos {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
	align-items: center;
}
.widget-logos__item { display: block; }
.widget-logos img { width: 100%; height: auto; object-fit: contain; }

/* Msze niedzielne – lista kościołów + godziny */
.msze-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.85rem; text-align: center; }
.msze-list__church { display: block; font-weight: 600; color: var(--color-navy); }
.msze-list__hours { display: block; color: var(--color-text); }

/* Zdjęcie klikalne w widżecie (zwiedzanie, program) */
.widget-image { display: block; }
.widget-image img { width: 100%; height: auto; border-radius: var(--radius); display: block; }

/* Facebook Page Plugin – nie wychodzi poza kolumnę */
.widget-fb { max-width: 100%; overflow: hidden; }
.widget-fb .fb-page,
.widget-fb span,
.widget-fb iframe { max-width: 100% !important; }

.parafia-sections {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--gap);
	margin-top: var(--gap);
}

@media (max-width: 1024px) {
	.parafia-sections { grid-template-columns: repeat(2, 1fr); }
	.quick-access--parafia .quick-access__grid { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 860px) {
	.parafia-layout { grid-template-columns: 1fr; }
	.aktualnosci-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
	.parafia-sections,
	.aktualnosci-grid,
	.ogloszenia-older,
	.quick-access--parafia .quick-access__grid { grid-template-columns: 1fr; }
}

/* === Hero podstron / archiwów — styl redakcyjny (jak nagłówek wpisu, bez metadanych) ===
 * Dotyczy hero z klasą .page-hero (kontakt, wesprzyj, galeria, strony formalne, archiwa).
 * Zdejmuje ciemne, pełnoekranowe tło i nakładkę; zostawia mały, ciemny tytuł na jasnym tle.
 * Nie dotyczy hero strony głównej (.hero bez .page-hero) ani landingów Parafia/Fara.
 */
.page-hero {
	background: none;
	color: var(--color-text);
	min-height: 0;
	display: block;
}
.page-hero::after { content: none; }
.page-hero .hero__content {
	max-width: var(--container);
	padding-block: clamp(1.5rem, 4vw, 2.25rem) clamp(0.4rem, 1vw, 0.6rem);
}
.page-hero .hero__content h1 {
	color: var(--color-navy);
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	margin: 0;
}
/* Złoty akcent pod tytułem — podkreśla hero względem treści (spójny z .section-heading). */
.page-hero .hero__content h1::after {
	content: "";
	display: block;
	width: 48px;
	height: 3px;
	margin-top: 0.7rem;
	background: var(--color-gold);
	border-radius: 2px;
}
.page-hero .hero__lead {
	color: var(--color-muted);
	max-width: 70ch;
	margin-top: 0.85rem;
}

/* Mniejszy odstęp między hero a treścią strony (treść tuż za hero). */
.page-hero + .container { padding-top: clamp(0.4rem, 1.2vw, 0.8rem); }

/* === Pojedynczy wpis === */
/*
 * Klasa "entry-single" (nie "single") celowo — "single" jest też klasą <body>
 * w widoku pojedynczego wpisu, więc goły .single zwężałby CAŁY layout.
 * Header i hero pozostają pełnoszerokie (są poza tym kontenerem); tu ograniczamy
 * wyłącznie kolumnę treści wpisu (~920px, wyśrodkowaną).
 */
.entry-single {
	max-width: 920px;
	margin-inline: auto;
	padding-inline: 1.5rem;         /* 24px; boczny padding także na mobile */
	padding-block: 0;               /* odstęp pionowy daje już .parafia-body (bez dublowania) */
}

/* Nagłówek wpisu — redakcyjny i spokojny (zamiast dużego hero). */
.entry-header { margin-bottom: 1.75rem; }
.entry-title {
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	line-height: 1.25;
	margin: 0.4rem 0 0;
}

.entry-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 1.25rem;
	color: var(--color-muted);
	font-size: 0.9rem;
}
.entry-meta a { color: var(--color-gold-dark); text-decoration: none; }
.entry-meta a:hover { text-decoration: underline; }

/* Miniatura / obrazek wyróżniający — proporcja 16:9, kadrowanie cover. */
.entry-thumbnail { margin: 0 0 0.75rem; }
.entry-thumbnail img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: var(--radius);
}
.entry-thumbnail__caption {
	margin-top: 0.5rem;
	font-size: 0.85rem;
	line-height: 1.5;
	color: var(--color-muted);
}

.entry-content { font-size: 1.05rem; }
.entry-content > * + * { margin-top: 1rem; }
.entry-content h2 { margin-top: 1.75rem; font-size: 1.5rem; }
.entry-content h3 { margin-top: 1.5rem; font-size: 1.25rem; }
.entry-content a { color: var(--color-gold-dark); }
.entry-content img { height: auto; border-radius: var(--radius); }
.entry-content ul,
.entry-content ol { padding-left: 1.4rem; }
.entry-content li + li { margin-top: 0.35rem; }
.entry-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.5rem 0;
	font-size: 0.97rem;
}
.entry-content th,
.entry-content td {
	border: 1px solid var(--color-line);
	padding: 0.6rem 0.8rem;
	text-align: left;
	vertical-align: top;
}
.entry-content th { background: var(--color-cream); }
/* Nagłówek tabeli (blok WP z włączonym wierszem nagłówka) – granat, biały tekst. */
.entry-content thead th {
	background: var(--color-navy);
	color: #fff;
	font-family: var(--font-heading);
	font-weight: 600;
}
/* Naprzemienne tła wierszy (czytelność długich grafików). */
.entry-content tbody tr:nth-child(even) { background: var(--color-cream); }
/* Blok tabeli WP: pełna szerokość, przewijanie na mobile. */
/* Tabele zawsze pełnej szerokości panelu (białego tła); przewijanie na mobile
   zapewniają wrappery (.wp-block-table / .table-scroll), a nie display:block. */
.entry-content .wp-block-table { margin: 1.5rem 0; overflow-x: auto; }
.entry-content .wp-block-table table { margin: 0; width: 100%; }
.entry-content .wp-block-table figcaption { font-size: 0.85rem; color: var(--color-muted); margin-top: 0.5rem; }
.entry-content blockquote {
	margin: 1.5rem 0;
	padding: 0.25rem 0 0.25rem 1rem;
	border-left: 3px solid var(--color-gold);
	color: var(--color-muted);
}
.page-links { margin-top: 1.5rem; display: flex; gap: 0.5rem; }

.post-back { margin-top: 2.5rem; }
.post-back a { font-weight: 600; text-decoration: none; color: var(--color-gold-dark); }
.post-back a:hover { text-decoration: underline; }

.post-navigation { margin-top: 2rem; border-top: 1px solid var(--color-line); padding-top: 1.5rem; }
.post-navigation .nav-links { display: flex; justify-content: space-between; gap: 1rem; }
.post-navigation a { text-decoration: none; color: var(--color-navy); }
.post-navigation a:hover { color: var(--color-gold-dark); }
.post-navigation .nav-next { text-align: right; margin-left: auto; }
.nav-dir { display: block; font-size: 0.8rem; color: var(--color-muted); }

/* === Archiwa === */
.archive { padding-block: clamp(2rem, 5vw, 3.5rem); }
/* W widokach kategorii archiwum jest zagnieżdżone w .parafia-body, które już
   daje odstęp — nie dublujemy paddingu od góry/dołu. */
.parafia-body .archive { padding-block: 0; }
.archive-empty { color: var(--color-muted); padding: 1.5rem 0; }

.posts-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--gap);
}
.post-card {
	display: flex;
	flex-direction: column;
	background: var(--color-surface);
	border: 1px solid var(--color-line);
	border-radius: var(--radius);
	overflow: hidden;
}
.post-card__thumb {
	display: block;
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--color-navy-deep);
}
/* Zdjęcie o innej proporcji niż 16:9: pokazujemy CAŁE (contain), a puste boki
   wypełnia rozmyta, powiększona kopia tego samego zdjęcia (zmienna --thumb). */
.post-card__thumb.has-thumb::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: var(--thumb);
	background-size: cover;
	background-position: center;
	filter: blur(18px) brightness(0.78);
	transform: scale(1.15);
	z-index: 0;
}
.post-card__thumb img {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}
.post-card__thumb-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, var(--color-navy), var(--color-navy-deep));
}
.post-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	padding: 1rem 1.1rem 1.25rem;
	flex: 1;
}
.post-card__title { font-size: 1.15rem; margin: 0; }
.post-card__title a { text-decoration: none; color: var(--color-navy); }
.post-card__title a:hover { color: var(--color-gold-dark); }
.post-card__excerpt { margin: 0; }
.post-card__more { margin-top: auto; font-weight: 600; text-decoration: none; color: var(--color-gold-dark); }

/* Lista wpisów (intencje) */
.post-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.post-list-item a {
	display: flex;
	gap: 1rem;
	align-items: baseline;
	padding: 0.85rem 1rem;
	background: var(--color-surface);
	border: 1px solid var(--color-line);
	border-radius: 8px;
	text-decoration: none;
	color: var(--color-navy);
}
.post-list-item a:hover { border-color: var(--color-gold); }
.post-list-item__title { font-weight: 600; }

/* Paginacja */
.pagination { margin-top: 2.5rem; }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 0.4rem; justify-content: center; }
.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 0.6rem;
	border: 1px solid var(--color-line);
	border-radius: 6px;
	text-decoration: none;
	color: var(--color-navy);
}
.pagination .page-numbers:hover { border-color: var(--color-gold); }
.pagination .page-numbers.current {
	background: var(--color-navy);
	color: #fff;
	border-color: var(--color-navy);
}

@media (max-width: 860px) {
	.posts-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.posts-grid { grid-template-columns: 1fr; }
	.post-navigation .nav-links { flex-direction: column; }
	.post-navigation .nav-next { text-align: left; margin-left: 0; }
}

/* === Podstrona: Fara === */
.fara-hero { min-height: 540px; }
.fara-hero::after {
	background: linear-gradient(180deg, rgba(15, 23, 33, 0.15) 0%, rgba(15, 23, 33, 0.45) 55%, rgba(15, 23, 33, 0.85) 100%);
}
.fara-hero .hero__content h1 { font-size: clamp(2.4rem, 5vw, 3.6rem); }

.fara-section { padding-block: clamp(2.5rem, 5vw, 4.5rem); }
.fara-section--alt { background: var(--color-surface); }

.section-heading--brick::after { background: var(--color-brick); }

.fara-lead {
	max-width: 68ch;
	margin-inline: auto;
	text-align: center;
	font-size: 1.1rem;
	color: var(--color-text);
}
.fara-text {
	max-width: 70ch;
	margin-inline: auto;
	font-size: 1.05rem;
}

.fara-cards {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--gap);
	margin-top: 2rem;
}
.fara-card {
	background: var(--color-surface);
	border: 1px solid var(--color-line);
	border-radius: var(--radius);
	padding: 1.75rem;
	box-shadow: var(--shadow);
}
.fara-section--alt .fara-card { background: var(--color-cream); }
.fara-card__title { font-size: 1.3rem; }
.fara-card__desc { color: var(--color-text); margin: 0 0 1rem; }
.fara-card__link { font-weight: 600; text-decoration: none; color: var(--color-brick); }
.fara-card__link:hover { text-decoration: underline; }

/* Sekcje /fara: układ tekst + zdjęcie (naprzemienny rytm). */
.fara-media {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(1.5rem, 4vw, 3rem);
	align-items: center;
	margin-top: 1.5rem;
}
.fara-media__text > :first-child { margin-top: 0; }
.fara-media__figure { margin: 0; }
.fara-media__figure img {
	display: block;
	width: 100%;
	height: 100%;
	max-height: 420px;
	object-fit: cover;
	border-radius: var(--radius);
	box-shadow: var(--shadow);
}
/* Zdjęcie po lewej stronie (co druga sekcja). */
.fara-media--reverse .fara-media__figure { order: -1; }
.fara-cta { margin-top: 1.25rem; }
@media (max-width: 760px) {
	.fara-media { grid-template-columns: 1fr; }
	.fara-media--reverse .fara-media__figure { order: 0; }
}

/* Zwiedzanie: cennik (karty) + kontakt; regulamin na dole */
.fara-cta-center { text-align: center; margin-top: 2rem; }

.fara-zw-note { font-weight: 600; color: var(--color-navy); margin: 1.25rem 0 1.5rem; }

.fara-cennik {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--gap);
	align-items: start;
	margin: 1.5rem 0;
}
.fara-cennik__card {
	background: var(--color-surface);
	border: 1px solid var(--color-line);
	border-radius: var(--radius);
	padding: 1.25rem 1.4rem;
}
.fara-cennik__title { font-size: 1.15rem; margin: 0 0 0.75rem; color: var(--color-brick); }
.fara-cennik__list { list-style: none; margin: 0; padding: 0; }
.fara-cennik__list li {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.45rem 0;
	border-bottom: 1px solid var(--color-line);
}
.fara-cennik__list li:last-child { border-bottom: 0; }
.fara-cennik__price { font-weight: 700; color: var(--color-navy); white-space: nowrap; }
.fara-cennik__desc { margin: 0; }

.fara-zw-kontakt { margin: 1.5rem 0; }
.fara-zw-kontakt__lead { margin: 0 0 0.5rem; font-weight: 600; }
.fara-zw-kontakt__list { list-style: none; margin: 0; padding: 0; }
.fara-zw-kontakt__list li { margin: 0.3rem 0; }
.fara-zw-kontakt__langs { color: var(--color-muted); font-size: 0.9rem; }

@media (max-width: 700px) { .fara-cennik { grid-template-columns: 1fr; } }

/* Rewitalizacja / wsparcie */
.fara-support {
	max-width: 760px;
	margin-inline: auto;
	text-align: center;
	display: grid;
	gap: 1.25rem;
	justify-items: center;
}
.fara-support__text { font-size: 1.1rem; color: var(--color-text); }

/* Galeria */
.fara-gallery { text-align: center; }
.fara-gallery__cta { margin-top: 1.5rem; }
.fara-gallery__author {
	margin-top: 1rem;
	font-size: 0.9rem;
	color: var(--color-muted);
	font-style: italic;
}

.fara-news__more { text-align: center; margin-top: 1.75rem; }
.fara-news__more a { font-weight: 600; text-decoration: none; color: var(--color-brick); }
.fara-news__more a:hover { text-decoration: underline; }

/* Pasek przełącznika wersji językowych (góra strony /fara) */
.fara-langbar { background: var(--color-navy-deep); }
.fara-langbar__inner {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.75rem;
	padding-block: 0.5rem;
}
.fara-langbar__label { color: #d9d4c9; font-size: 0.85rem; }
.fara-langbar__btn {
	display: inline-flex;
	align-items: center;
	padding: 0.3rem 0.7rem;
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: 6px;
	color: #fff;
	text-decoration: none;
	font-weight: 600;
	font-size: 0.85rem;
	letter-spacing: 0.03em;
}
.fara-langbar__btn:hover { background: rgba(255, 255, 255, 0.12); border-color: #fff; }
.fara-langbar__btn.is-current { background: var(--color-gold); border-color: var(--color-gold); color: #fff; cursor: default; }

/* Treściowa podstrona Fary (historia, regulamin…) — czytelna kolumna. */
.fara-content { max-width: 880px; padding-bottom: clamp(2rem, 5vw, 3.5rem); }
.fara-content .entry-content img { height: auto; border-radius: var(--radius); }
.fara-content__back { margin-top: 2.5rem; }

/* Wersje językowe */
.fara-lang { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }
.fara-lang__btn {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.75rem 1.4rem;
	border: 1px solid var(--color-line);
	border-radius: 8px;
	background: var(--color-surface);
	text-decoration: none;
	color: var(--color-navy);
}
.fara-lang__btn:hover { border-color: var(--color-brick); }
.fara-lang__code { font-weight: 700; color: var(--color-brick); }
.fara-lang__label { color: var(--color-muted); }

/* Pasek wsparcia */
.fara-cta-band { background: var(--color-navy-deep); color: #fff; }
.fara-cta-band__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	flex-wrap: wrap;
	padding-block: 2.25rem;
}
.fara-cta-band__text { margin: 0; font-size: 1.15rem; font-family: var(--font-heading); }

@media (max-width: 700px) {
	.fara-cards { grid-template-columns: 1fr; }
	.fara-cta-band__inner { flex-direction: column; text-align: center; }
}

/* === Fara: wersje językowe (EN/DE) === */
.fara-lang-hero { min-height: 420px; }
.fara-lang--hero { justify-content: flex-start; margin-top: 1.75rem; }
.fara-lang--hero .fara-lang__btn {
	background: rgba(255, 255, 255, 0.1);
	border-color: rgba(255, 255, 255, 0.4);
	color: #fff;
}
.fara-lang--hero .fara-lang__btn:hover { border-color: #fff; }
.fara-lang--hero .fara-lang__code { color: #fff; }
.fara-lang--hero .fara-lang__label { color: #e9e4da; }

.fara-lang-page .fara-text { text-align: center; }

.fara-lang-contact {
	list-style: none;
	margin: 0 auto;
	padding: 0;
	max-width: 520px;
	text-align: center;
	display: grid;
	gap: 0.4rem;
}
.fara-lang-contact a { color: var(--color-gold-dark); text-decoration: none; }
.fara-lang-contact a:hover { text-decoration: underline; }

/* === Podstrona: Kontakt === */
.kontakt-body { padding-block: clamp(2rem, 5vw, 3.5rem); }
.kontakt-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--gap);
	align-items: start;
}
.kontakt-name { font-weight: 600; color: var(--color-navy); }

/* Układ strony kontaktu: informacje (sidebar) + formularz (główna kolumna). */
.kontakt-layout {
	display: grid;
	grid-template-columns: minmax(0, 360px) minmax(0, 1fr);
	gap: var(--gap);
	align-items: start;
}
.kontakt-aside { display: grid; gap: var(--gap); }
.kontakt-aside .panel { margin-bottom: 0; }
.kontakt-main .panel { margin-bottom: 0; }

/* Połączony blok parafii — grupy ułożone pionowo z czytelnymi podnagłówkami. */
.kontakt-info { display: grid; gap: 1.5rem; }
.kontakt-info__group > :last-child { margin-bottom: 0; }
.kontakt-subheading {
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--color-gold-dark);
	margin: 0 0 0.5rem;
}

.kontakt-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.kontakt-list a { color: var(--color-gold-dark); text-decoration: none; }
.kontakt-list a:hover { text-decoration: underline; }
.kontakt-list__label { display: block; font-size: 0.85rem; color: var(--color-muted); }

.kontakt-form { margin-top: var(--gap); }
.kontakt-form__embed { margin-top: 0.5rem; }
.form-note { margin-top: 1.25rem; font-size: 0.9rem; color: var(--color-muted); }
.form-note a { color: var(--color-gold-dark); }

/* === Podstrona: Wesprzyj === */
.wesprzyj-body { padding-block: clamp(2rem, 5vw, 3.5rem); max-width: 960px; }
/* Tekst z Customizera — wygląd panelu (taki sam jak karta z danymi konta). */
.wesprzyj-top p { margin: 0; }
.wesprzyj-intro {
	max-width: 70ch;
	margin: 0 auto 2rem;
	text-align: center;
	font-size: 1.1rem;
}
.wesprzyj-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--gap);
}
.wesprzyj-card__desc { color: var(--color-muted); margin: 0 0 1.25rem; }
.wesprzyj-data { margin: 0; display: grid; gap: 0.25rem 1rem; }
.wesprzyj-data dt { font-size: 0.8rem; color: var(--color-muted); text-transform: uppercase; letter-spacing: 0.03em; margin-top: 0.6rem; }
.wesprzyj-data dd { margin: 0; }
.wesprzyj-data__account {
	font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--color-navy);
	word-spacing: 0.1em;
}
.wesprzyj-empty {
	margin: 0;
	padding: 1rem;
	border: 1px dashed var(--color-line);
	border-radius: 8px;
	color: var(--color-muted);
	text-align: center;
}

.wesprzyj-qr { text-align: center; margin-top: 2.5rem; }
.wesprzyj-qr__box {
	width: 160px;
	height: 160px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 0.5rem;
	border: 2px dashed var(--color-line);
	border-radius: var(--radius);
	color: var(--color-muted);
	font-size: 0.85rem;
}
.wesprzyj-qr__note { margin-top: 0.75rem; font-size: 0.9rem; color: var(--color-muted); }

/* Karta przelewu: dane po lewej, kod QR po prawej. */
.wesprzyj-card__row {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	align-items: center;
	justify-content: space-between;
}
.wesprzyj-card__data { flex: 1 1 260px; min-width: 0; }
.wesprzyj-card__qr {
	flex: 0 0 auto;
	margin: 0;
	text-align: center;
}
.wesprzyj-card__qr img {
	display: block;
	width: 180px;
	height: 180px;
	margin-inline: auto;
	object-fit: contain;
	border-radius: var(--radius);
}
.wesprzyj-card__qr figcaption {
	margin-top: 0.5rem;
	font-size: 0.85rem;
	color: var(--color-muted);
}
.wesprzyj-admin-note {
	margin-top: 2rem;
	padding: 0.75rem 1rem;
	background: var(--color-cream);
	border-left: 3px solid var(--color-gold);
	font-size: 0.9rem;
	color: var(--color-muted);
}

@media (max-width: 860px) {
	.kontakt-grid { grid-template-columns: 1fr; }
	.kontakt-layout { grid-template-columns: 1fr; }
	.wesprzyj-grid { grid-template-columns: 1fr; }
}

/* === Treść stron parafialnych (page.php) – polish === */
/* Lead – pierwszy akapit większy i ciemniejszy. */
.page-content > p:first-of-type {
	font-size: 1.15rem;
	line-height: 1.6;
	color: var(--color-navy);
}
/* Nagłówki sekcji ze złotym akcentem pod spodem. */
.page-content h2 {
	margin-top: 2rem;
	padding-bottom: 0.4rem;
	border-bottom: 2px solid var(--color-gold);
	display: inline-block;
}
.page-content h3 { margin-top: 1.5rem; color: var(--color-navy); }
/* Obrazy i figury – zaokrąglenie, cień, podpis. */
.page-content img { border-radius: var(--radius); box-shadow: var(--shadow); }
.page-content figure { margin: 1.75rem 0; text-align: center; }
.page-content figure img { margin-inline: auto; }
.page-content figcaption { margin-top: 0.5rem; font-size: 0.85rem; color: var(--color-muted); }
/* Cytat z mocniejszym, złotym akcentem. */
.page-content blockquote {
	background: var(--color-cream);
	border-left: 4px solid var(--color-gold);
	border-radius: 0 var(--radius) var(--radius) 0;
	padding: 1rem 1.25rem;
	margin: 1.75rem 0;
	color: var(--color-text);
}

/* === Bloki Gutenberga w treści (np. /pro-memoria, strony blokowe) === */
/* Kolumny – spójny odstęp; pełna szerokość na mobile. */
.entry-content .wp-block-columns { gap: var(--gap); margin: 1.75rem 0; }
@media (max-width: 600px) {
	.entry-content .wp-block-columns { flex-wrap: wrap; }
	.entry-content .wp-block-column { flex-basis: 100% !important; }
}
/* Obrazy – zaokrąglenie, cień, wyśrodkowany podpis. */
.entry-content .wp-block-image { margin: 1.5rem 0; }
.entry-content .wp-block-image img { border-radius: var(--radius); box-shadow: var(--shadow); height: auto; }
.entry-content .wp-block-image figcaption { font-size: 0.85rem; color: var(--color-muted); text-align: center; margin-top: 0.5rem; }
/* Media + tekst. */
.entry-content .wp-block-media-text { gap: var(--gap); margin: 1.75rem 0; }
.entry-content .wp-block-media-text img { border-radius: var(--radius); }
/* Separator – subtelna linia; wariant „szeroki” mocniejszy, domyślny krótki = złoty. */
.entry-content .wp-block-separator {
	border: 0;
	border-top: 1px solid var(--color-line);
	background: none;
	opacity: 1;
	margin: 2rem auto;
}
.entry-content .wp-block-separator:not(.is-style-wide):not(.is-style-dots) {
	width: 90px;
	border-top: 2px solid var(--color-gold);
}
/* Cytat blokowy – złoty akcent (spójnie z blockquote). */
.entry-content .wp-block-quote {
	border-left: 4px solid var(--color-gold);
	background: var(--color-cream);
	padding: 1rem 1.25rem;
	border-radius: 0 var(--radius) var(--radius) 0;
	margin: 1.75rem 0;
}
.entry-content .wp-block-quote cite { display: block; margin-top: 0.5rem; color: var(--color-muted); font-size: 0.9rem; font-style: normal; }
/* Grupa. */
.entry-content .wp-block-group { margin: 1.5rem 0; }
/* Przyciski blokowe – wygląd jak przyciski motywu. */
.entry-content .wp-block-button__link {
	background: var(--color-gold-dark);
	color: #fff;
	border-radius: 6px;
	font-weight: 600;
	padding: 0.7rem 1.3rem;
	text-decoration: none;
}
.entry-content .wp-block-button__link:hover { background: #855427; }

/* Pasek ikon parafialnych jako globalna belka pod nagłówkiem. */
.quick-access--bar {
	border-bottom: 1px solid var(--color-line);
	padding-block: clamp(0.6rem, 2vw, 1.1rem); /* ciaśniejszy niż bazowa sekcja „Szybki dostęp” */
}
/* Treść tuż pod paskiem ikon (np. pojedynczy wpis) — mniejszy odstęp. */
.quick-access--bar + .container { padding-top: clamp(0.75rem, 2.5vw, 1.5rem); }

/* W układzie z panelem bocznym: siatka wpisów ciaśniejsza (2 kolumny). */
.parafia-main .posts-grid { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 560px) {
	.parafia-main .posts-grid { grid-template-columns: 1fr; }
}

/* === Strony formalne (prawne) === */
.legal {
	max-width: 820px;
	padding-block: clamp(2rem, 5vw, 3.5rem);
}
.legal__updated {
	color: var(--color-muted);
	font-size: 0.9rem;
	margin-bottom: 1.5rem;
}
.legal__content h2 { margin-top: 2rem; }
.legal__content h3 { margin-top: 1.5rem; }

/* === Sakramenty / sakramentalia === */
.sakramenty-intro { font-size: 1.05rem; }
.sakramenty-intro--alt { margin-top: 2.5rem; }
.sakramenty-group { margin-top: 1.5rem; }

/* === Akordeon (rozwijane sekcje, np. sakramenty) === */
.accordion { display: grid; gap: 0.75rem; margin-top: 1.5rem; }
.accordion__item {
	background: var(--color-surface);
	border: 1px solid var(--color-line);
	border-radius: var(--radius);
	overflow: hidden;
}
.accordion__summary {
	cursor: pointer;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 1.25rem;
	font-family: var(--font-heading);
	font-size: 1.15rem;
	color: var(--color-navy);
}
.accordion__summary::-webkit-details-marker { display: none; }
.accordion__summary::after {
	content: "+";
	font-size: 1.5rem;
	line-height: 1;
	color: var(--color-gold-dark);
}
.accordion__item[open] .accordion__summary::after { content: "\2013"; } /* – */
.accordion__summary:hover { color: var(--color-gold-dark); }
.accordion__summary:focus-visible { outline: 3px solid var(--color-gold-dark); outline-offset: -3px; }
.accordion__content { padding: 0 1.25rem 1.25rem; }
.accordion__content > :first-child { margin-top: 0; }

/* === Porządek nabożeństw (tabele) === */
.nabozenstwa { padding-block: clamp(2rem, 5vw, 3.5rem); max-width: 960px; }
.naboz-church__name { font-size: 1.4rem; }
.naboz-church__sub { margin-top: -0.4rem; color: var(--color-muted); font-style: italic; }
.naboz-heading {
	font-size: 1.15rem;
	color: var(--color-navy);
	margin: 1.85rem 0 0.5rem;
	padding-bottom: 0.4rem;
	border-bottom: 2px solid var(--color-gold);
	display: inline-block;
}
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.schedule-table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 0.5rem;
	font-size: 0.97rem;
}
.schedule-table th,
.schedule-table td {
	border: 1px solid var(--color-line);
	padding: 0.6rem 0.85rem;
	text-align: left;
	vertical-align: top;
}
.schedule-table thead th {
	background: var(--color-navy);
	color: #fff;
	font-family: var(--font-heading);
	font-weight: 600;
	white-space: nowrap;
}
.schedule-table tbody tr:nth-child(even) { background: var(--color-cream); }
.schedule-table__name { font-weight: 600; color: var(--color-navy); }
.schedule-table__note { display: block; font-weight: 400; font-size: 0.85rem; color: var(--color-muted); }
.schedule-note { font-size: 0.9rem; color: var(--color-muted); margin-top: 0.5rem; }

/* === Galeria fotografii === */
.gallery-page,
.gallery-archive { padding-block: clamp(2rem, 5vw, 3.5rem); }

.gallery-intro {
	max-width: 70ch;
	margin: 0 auto 2rem;
	text-align: center;
	font-size: 1.1rem;
}

.gallery-years {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--gap);
}
.gallery-year a,
.gallery-year--soon {
	display: block;
	overflow: hidden;
	border: 1px solid var(--color-line);
	border-radius: var(--radius);
	background: var(--color-surface);
	text-decoration: none;
	color: var(--color-navy);
}
.gallery-year a:hover { border-color: var(--color-gold); }
.gallery-year a:hover .gallery-year__media img { transform: scale(1.04); }

/* Miniatura rocznika (proporcja 3:2, kadrowanie cover; placeholder = gradient). */
.gallery-year__media {
	display: block;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: linear-gradient(135deg, var(--color-navy), var(--color-navy-deep));
}
.gallery-year__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}
.gallery-year__label {
	display: block;
	font-family: var(--font-heading);
	font-size: 1.1rem;
	text-align: center;
	padding: 0.85rem 1rem;
}
.gallery-year--soon { color: var(--color-muted); }
.gallery-year--soon .gallery-year__label { padding-bottom: 0.25rem; }
.gallery-year__note {
	display: block;
	text-align: center;
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 0 1rem 0.85rem;
	color: var(--color-muted);
}

.gallery-embed { margin-top: 0.5rem; }
.gallery-empty {
	margin: 1rem 0 0;
	padding: 2rem;
	text-align: center;
	border: 1px dashed var(--color-line);
	border-radius: var(--radius);
	color: var(--color-muted);
}
.gallery-owner {
	margin-top: 1rem;
	font-size: 0.9rem;
	font-style: italic;
	color: var(--color-muted);
	text-align: center;
}

.gallery-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--gap);
}
.gallery-card { position: relative; }
.gallery-card__link { display: block; text-decoration: none; color: #fff; }
.gallery-card__media {
	display: block;
	position: relative;
	border-radius: var(--radius);
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: linear-gradient(135deg, var(--color-navy), var(--color-navy-deep));
}
.gallery-card__media img,
.gallery-card__placeholder {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.gallery-card__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15, 23, 33, 0) 45%, rgba(15, 23, 33, 0.75) 100%);
}
.gallery-card__title {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
	padding: 0.85rem 1rem;
	font-weight: 600;
}
.gallery-card__link:hover .gallery-card__media::after { background: linear-gradient(180deg, rgba(15, 23, 33, 0.1) 30%, rgba(15, 23, 33, 0.85) 100%); }

.gallery-back { margin-top: 2rem; }
.gallery-back a { font-weight: 600; text-decoration: none; color: var(--color-gold-dark); }
.gallery-back a:hover { text-decoration: underline; }

@media (max-width: 1024px) {
	.gallery-years { grid-template-columns: repeat(3, 1fr); }
	.gallery-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 700px) {
	.gallery-years { grid-template-columns: repeat(2, 1fr); }
	.gallery-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 420px) {
	.gallery-grid { grid-template-columns: 1fr; }
	.gallery-years { grid-template-columns: 1fr; }
}

/* === Fokus klawiatury (dostępność) === */
/*
 * Wyraźny, spójny z motywem wskaźnik fokusu dla nawigacji klawiaturą.
 * Outline nie jest usuwany — zawsze ma czytelny zamiennik.
 */
:focus-visible {
	outline: 3px solid var(--color-gold-dark);
	outline-offset: 2px;
	border-radius: 3px;
}

a:focus-visible,
.menu a:focus-visible,
.primary-nav a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 3px solid var(--color-gold-dark);
	outline-offset: 2px;
	border-radius: 3px;
}

/* Przyciski mogą leżeć na złocie lub zdjęciu — granat + biała poświata są widoczne na każdym tle. */
.btn:focus-visible,
button:focus-visible,
.nav-toggle:focus-visible {
	outline: 3px solid var(--color-navy);
	outline-offset: 2px;
	box-shadow: 0 0 0 5px #fff;
}

/* Na ciemnych tłach (nagłówek, stopka, hero) złoty outline pozostaje czytelny. */
.site-header a:focus-visible,
.site-footer a:focus-visible,
.hero a:focus-visible {
	outline-color: var(--color-gold);
}

/* === Strona 404 === */
.error-404-hero { min-height: 360px; }
.error-404-body { padding-block: clamp(2rem, 5vw, 3.5rem); }
.error-404-help { max-width: 760px; }
.error-404-help__heading { font-size: 1.25rem; margin-bottom: 1rem; }
.error-404-help__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1rem;
}
.error-404-help__list a {
	display: inline-flex;
	padding: 0.6rem 1.1rem;
	border: 1px solid var(--color-line);
	border-radius: 8px;
	background: var(--color-surface);
	text-decoration: none;
	color: var(--color-navy);
	font-weight: 600;
}
.error-404-help__list a:hover {
	border-color: var(--color-gold);
	color: var(--color-gold-dark);
}
