/*
 * PG Seeshaupt – GeneratePress Starter 2.6.1
 * Compact, accessible styling without page builders or external fonts.
 */
:root {
	--pgs-navy: #173a55;
	--pgs-navy-dark: #0e293d;
	--pgs-blue: #245b7d;
	--pgs-gold: #d5b46a;
	--pgs-cream: #f6f2e9;
	--pgs-paper: #fffdf9;
	--pgs-text: #24303a;
	--pgs-muted: #5f6c76;
	--pgs-line: #dce3e7;
	--pgs-shadow: 0 8px 24px rgba(18, 48, 70, .09);
	--pgs-radius: 12px;
	--pgs-width: 1180px;
}

html { scroll-behavior: smooth; }
body {
	color: var(--pgs-text);
	background: #fff;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
	line-height: 1.6;
}
a { color: var(--pgs-blue); }
a:hover, a:focus { color: var(--pgs-navy-dark); }


/* Draft status bar above the complete header. */
.pgs-draft-banner {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 34px;
	padding: 6px 14px;
	color: #fff;
	background: #b00020;
	font-size: .88rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-align: center;
	text-transform: uppercase;
}

/* Header: bundled logo at a durable root-relative path, site title and one tagline. */
.site-header { background: #fff; }
.inside-header {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 24px;
	width: min(100%, var(--pgs-width));
	max-width: var(--pgs-width);
	min-height: 92px;
	margin: 0 auto;
	padding: 10px 20px;
}
.pgs-header-logo {
	flex: 0 0 auto;
	line-height: 0;
}
.pgs-header-logo a { display: block; }
.pgs-header-logo img {
	display: block;
	width: min(235px, 25vw);
	height: auto;
	max-height: 84px;
	object-fit: contain;
	object-position: left center;
}
.site-branding-container {
	display: flex;
	align-items: center;
	min-width: 0;
}
.site-branding {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
	text-align: left;
}
.main-title {
	margin: 0;
	font-size: clamp(1.2rem, 2.3vw, 1.72rem);
	line-height: 1.15;
	font-weight: 650;
	letter-spacing: .005em;
	text-align: left;
}
.main-title a,
.main-title a:hover,
.main-title a:focus { color: var(--pgs-navy-dark); }
.site-description {
	display: block !important;
	margin: 5px 0 0;
	color: var(--pgs-muted);
	font-size: clamp(.82rem, 1.35vw, 1rem);
	line-height: 1.25;
	font-weight: 500;
	text-align: left;
}
/* Old cached markup from earlier starter versions must not create a second subtitle. */
.pgs-site-tagline,
.site-description + .site-description { display: none !important; }

/* High-contrast horizontal navigation, including mobile and submenus. */
.main-navigation,
.main-navigation .inside-navigation,
.main-navigation ul ul { background: var(--pgs-navy); }
.main-navigation .inside-navigation {
	width: min(100%, var(--pgs-width));
	max-width: var(--pgs-width);
	margin: 0 auto;
	padding: 0 10px;
}
.main-navigation .main-nav > ul { align-items: stretch; }
.main-navigation .main-nav ul li a,
.main-navigation .menu-toggle,
.main-navigation .menu-bar-items a {
	color: #fff;
	font-weight: 650;
	letter-spacing: .01em;
}
.main-navigation .main-nav > ul > li > a {
	line-height: 45px;
	padding: 0 18px;
}
.main-navigation .main-nav ul ul li a {
	padding: 11px 18px;
	line-height: 1.35;
	background: var(--pgs-navy);
	border-bottom: 1px solid rgba(255,255,255,.12);
}
.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li:focus-within > a,
.main-navigation .main-nav ul li[class*="current-menu-"] > a,
.main-navigation .main-nav ul li[class*="current_page_"] > a,
.main-navigation .menu-toggle:hover,
.main-navigation .menu-toggle:focus {
	color: #fff;
	background: var(--pgs-navy-dark);
}
.main-navigation .main-nav > ul > li[class*="current-menu-"] > a,
.main-navigation .main-nav > ul > li[class*="current_page_"] > a {
	box-shadow: inset 0 -4px 0 var(--pgs-gold);
}
.main-navigation .menu-toggle {
	min-height: 46px;
	padding: 0 17px;
	text-align: left;
}
.main-navigation .menu-toggle .gp-icon { margin-right: 9px; }

/* Hard fallback for installations that previously stored a floated navigation. */
@media (min-width: 769px) {
	body.nav-float-right #site-navigation,
	body.nav-float-left #site-navigation,
	.nav-float-right #site-navigation,
	.nav-float-left #site-navigation,
	#site-navigation {
		float: none !important;
		clear: both !important;
		position: relative !important;
		top: auto !important;
		right: auto !important;
		left: auto !important;
		width: 100% !important;
		margin: 0 !important;
	}
	.main-navigation .inside-navigation {
		display: flex !important;
		align-items: center;
		justify-content: flex-start;
		min-height: 45px;
	}
	.main-navigation .main-nav > ul {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: wrap;
	}
}

.site-content,
.site-header,
.main-navigation,
.pgs-current-section,
.pgs-global-contact { border: 0 !important; }

/* Remove GeneratePress spacing around starter content. */
.pgs-starter-page .site-content,
.pgs-starter-home .site-content {
	display: block;
	max-width: none;
	padding: 0;
}
.pgs-starter-page .content-area,
.pgs-starter-home .content-area { width: 100%; }
.pgs-starter-page .site-main,
.pgs-starter-home .site-main { margin: 0; }
.pgs-starter-page .inside-article,
.pgs-starter-home .inside-article {
	padding: 0;
	background: #fff;
}
.pgs-starter-page .entry-header,
.pgs-starter-home .entry-header,
.pgs-starter-page .entry-footer,
.pgs-starter-home .entry-footer { display: none; }
.pgs-starter-page .entry-content,
.pgs-starter-home .entry-content { margin: 0; }

/* Visible, restrained H1 on the home page. */
.pgs-home-heading {
	max-width: var(--pgs-width);
	margin: 0 auto;
	padding: 20px 20px 12px;
}
.pgs-home-heading h1 {
	max-width: 940px;
	margin: 0;
	color: var(--pgs-navy-dark);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.6;
	text-align: left;
}

/* Three parish cards. */
.pgs-home-parishes {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	max-width: var(--pgs-width);
	margin: 0 auto;
	padding: 8px 20px 38px;
}
.pgs-parish-card,
.pgs-overview-card,
.pgs-news-card,
.pgs-service-card {
	margin: 0;
	background: var(--pgs-paper);
	border: 1px solid var(--pgs-line);
	border-radius: var(--pgs-radius);
	overflow: hidden;
	box-shadow: var(--pgs-shadow);
}
.pgs-parish-image,
.pgs-overview-card > a,
.pgs-news-image { display: block; overflow: hidden; }
.pgs-parish-image img,
.pgs-overview-card img,
.pgs-news-image img,
.pgs-feature-image img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}
.pgs-parish-image img { aspect-ratio: 3 / 2; }
.pgs-card-body { padding: 19px 20px 21px; }
.pgs-card-body h2,
.pgs-overview-card h2,
.pgs-news-card h3,
.pgs-service-card h2 {
	margin: 0 0 9px;
	line-height: 1.23;
}
.pgs-card-body h2 { font-size: clamp(1.42rem, 2.15vw, 1.82rem); }
.pgs-card-body h2 a,
.pgs-overview-card h2 a,
.pgs-news-card h3 a,
.pgs-service-card h2 a {
	color: var(--pgs-navy-dark);
	text-decoration: none;
}
.pgs-card-body h2 a:hover,
.pgs-card-body h2 a:focus,
.pgs-overview-card h2 a:hover,
.pgs-overview-card h2 a:focus,
.pgs-news-card h3 a:hover,
.pgs-news-card h3 a:focus,
.pgs-service-card h2 a:hover,
.pgs-service-card h2 a:focus { text-decoration: underline; text-underline-offset: .16em; }
.pgs-card-body p { margin: 0 0 15px; color: var(--pgs-muted); }
.pgs-text-link { font-weight: 700; text-underline-offset: .18em; }


/* Posts index: one clear visible H1 and no hidden duplicate page title. */
.pgs-news-index .site-content {
	max-width: var(--pgs-width);
	padding: 36px 20px 56px;
}
.pgs-news-index .content-area { width: 100%; }
.pgs-news-index-heading {
	margin: 0 0 28px;
	padding: 28px 30px;
	color: #fff;
	background: var(--pgs-navy-dark);
	border-radius: var(--pgs-radius);
}
.pgs-news-index-heading h1 {
	margin: 0;
	color: #fff;
	font-size: clamp(2rem, 4.5vw, 3rem);
	line-height: 1.08;
}
.pgs-news-index-heading p {
	max-width: 760px;
	margin: 10px 0 0;
	color: #eef4f7;
	font-size: 1.06rem;
}
.pgs-news-index .post {
	margin-bottom: 24px;
	padding: 26px;
	border: 1px solid var(--pgs-line);
	border-radius: var(--pgs-radius);
	box-shadow: var(--pgs-shadow);
}

/* Current services and news: 60/40, with room for readable news cards. */
.pgs-current-section {
	display: grid;
	grid-template-columns: minmax(520px, 3fr) minmax(340px, 2fr);
	gap: 34px;
	padding: 48px 30px;
	background: var(--pgs-cream);
}
.pgs-current-column { min-width: 0; }
.pgs-section-heading {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 15px;
	margin-bottom: 18px;
}
.pgs-section-heading h2,
.pgs-quick-section > h2 {
	margin: 0;
	color: var(--pgs-navy-dark);
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	line-height: 1.15;
}
.pgs-section-heading > a { font-weight: 700; white-space: nowrap; }
.pgs-current-column .pgs-events { max-width: none; margin: 0; }
.pgs-current-column .pgs-events__list { gap: 10px; }
.pgs-current-column .pgs-event {
	grid-template-columns: 3.75rem minmax(0, 1fr);
	gap: 12px;
	padding: 12px;
	border-radius: 9px;
	box-shadow: none;
}
.pgs-current-column .pgs-event__date { min-height: 3.75rem; }
.pgs-current-column .pgs-event__day { font-size: 1.36rem; }
.pgs-current-column .pgs-event__meta { font-size: .82rem; }
.pgs-current-column .pgs-event__title { font-size: 1.02rem; overflow-wrap: break-word; word-break: normal; hyphens: auto; }
.pgs-current-column .pgs-events__source { margin-top: 12px; text-align: left; }

.pgs-news-grid { display: grid; gap: 14px; }
.pgs-news-card {
	display: grid;
	grid-template-columns: minmax(145px, 38%) minmax(0, 1fr);
	box-shadow: none;
	border-radius: 9px;
}
.pgs-news-image img { width: 100%; height: 100%; min-height: 170px; object-fit: cover; }
.pgs-news-content { min-width: 0; padding: 16px 18px; }
.pgs-news-content .pgs-meta {
	margin: 0 0 4px;
	color: var(--pgs-muted);
	font-size: .8rem;
	font-weight: 650;
	text-transform: uppercase;
	letter-spacing: .045em;
}
.pgs-news-content h3 { font-size: 1.12rem; overflow-wrap: normal; hyphens: auto; }
.pgs-news-content p { margin: 0 0 9px; font-size: .94rem; }

/* Quick access. */
.pgs-quick-section {
	max-width: var(--pgs-width);
	margin: 0 auto;
	padding: 46px 20px 56px;
}
.pgs-quick-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin-top: 22px;
}
.pgs-quick-grid > a {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 105px;
	padding: 19px 21px;
	color: #fff;
	background: var(--pgs-navy);
	border-radius: 10px;
	text-decoration: none;
	box-shadow: 0 6px 18px rgba(14,41,61,.12);
}
.pgs-quick-grid > a:hover,
.pgs-quick-grid > a:focus { color: #fff; background: var(--pgs-navy-dark); transform: translateY(-1px); }
.pgs-quick-grid span {
	font-size: .76rem;
	font-weight: 750;
	letter-spacing: .075em;
	text-transform: uppercase;
	color: #e9d9b4;
}
.pgs-quick-grid strong { margin-top: 3px; font-size: 1.15rem; line-height: 1.25; }

/* Subpages: the title is prominent and unmistakable. */
.pgs-page-hero { background: var(--pgs-navy-dark); color: #fff; }
.pgs-page-hero > div {
	max-width: var(--pgs-width);
	margin: 0 auto;
	padding: 34px 20px 32px;
}
.pgs-page-hero h1 {
	margin: 0;
	color: #fff;
	font-size: clamp(2rem, 5vw, 3.35rem);
	line-height: 1.08;
	text-align: left;
}
.pgs-page-hero p {
	max-width: 780px;
	margin: 13px 0 0;
	font-size: clamp(1rem, 2vw, 1.2rem);
	color: #eef4f7;
}
.pgs-page-content {
	max-width: 960px;
	margin: 0 auto;
	padding: 42px 20px 58px;
}
.pgs-page-content > :first-child { margin-top: 0; }
.pgs-page-content > :last-child { margin-bottom: 0; }
.pgs-feature-image {
	margin: 0 0 34px;
	border-radius: var(--pgs-radius);
	overflow: hidden;
	box-shadow: var(--pgs-shadow);
}
.pgs-feature-image img { aspect-ratio: 16 / 8; }
.pgs-text-section { margin: 0 0 38px; scroll-margin-top: 72px; }
.pgs-text-section h2 { color: var(--pgs-navy-dark); font-size: clamp(1.45rem, 2.8vw, 2rem); margin-bottom: 12px; }
.pgs-text-section h3 { color: var(--pgs-navy-dark); margin-bottom: 7px; }
.pgs-text-section p:last-child,
.pgs-text-section ul:last-child { margin-bottom: 0; }
.pgs-fact-grid,
.pgs-service-grid,
.pgs-overview-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}
.pgs-fact-grid > div,
.pgs-fact-grid > section {
	padding: 20px;
	background: var(--pgs-cream);
	border: 1px solid #e9e0d0;
	border-radius: 10px;
}
.pgs-fact-grid h2,
.pgs-fact-grid h3 { margin-top: 0; }
.pgs-overview-grid { margin-bottom: 38px; }
.pgs-overview-card img { aspect-ratio: 3 / 2; }
.pgs-overview-card > div { padding: 19px; }
.pgs-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 38px; }
.pgs-service-card { padding: 23px; box-shadow: none; }
.pgs-info-box,
.pgs-callout {
	padding: 17px 19px;
	margin: 0 0 25px;
	background: #eef4f7;
	border-left: 5px solid var(--pgs-blue);
	border-radius: 0 8px 8px 0;
}
.pgs-button,
a.pgs-button {
	display: inline-block;
	padding: 11px 17px;
	color: #fff;
	background: var(--pgs-navy);
	border-radius: 7px;
	font-weight: 700;
	text-decoration: none;
}
.pgs-button:hover,
.pgs-button:focus,
a.pgs-button:hover,
a.pgs-button:focus { color: #fff; background: var(--pgs-navy-dark); }
.pgs-empty { padding: 17px; background: #fff; border: 1px solid var(--pgs-line); border-radius: 8px; }

.pgs-page-index {
	margin: 0 0 38px;
	padding: 20px 22px;
	background: var(--pgs-cream);
	border-radius: 10px;
}
.pgs-page-index strong { display: block; margin-bottom: 8px; color: var(--pgs-navy-dark); }
.pgs-page-index ul {
	display: flex;
	flex-wrap: wrap;
	gap: 7px 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.pgs-page-index a { font-weight: 650; text-underline-offset: .16em; }
.pgs-local-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 10px;
	padding-top: 8px;
}
a.pgs-button--secondary {
	color: var(--pgs-navy-dark);
	background: #fff;
	box-shadow: inset 0 0 0 2px var(--pgs-navy);
}
a.pgs-button--secondary:hover,
a.pgs-button--secondary:focus { color: #fff; background: var(--pgs-navy-dark); box-shadow: none; }

/* Global contact footer: centrally maintained and tappable on phones. */
.pgs-global-contact { color: #fff; background: var(--pgs-navy-dark); }
.pgs-footer-inner {
	display: grid;
	grid-template-columns: 1.25fr .65fr 1fr;
	align-items: center;
	gap: 28px;
	max-width: var(--pgs-width);
	margin: 0 auto;
	padding: 34px 20px;
}
.pgs-footer-intro h2 { margin: 0 0 7px; color: #fff; font-size: 1.35rem; }
.pgs-footer-intro p { margin: 0; color: #dce7ee; }
.pgs-footer-intro .pgs-contact-notice { margin-top: 8px; font-size: .92rem; }
.pgs-footer-actions { display: grid; gap: 9px; }
.pgs-contact-button {
	display: block;
	padding: 10px 13px;
	color: #fff;
	background: rgba(255,255,255,.08);
	border: 1px solid rgba(255,255,255,.42);
	border-radius: 7px;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
	overflow-wrap: anywhere;
}
.pgs-contact-button:hover,
.pgs-contact-button:focus { color: var(--pgs-navy-dark); background: #fff; border-color: #fff; }
.pgs-footer-hours { display: flex; flex-direction: column; gap: 3px; color: #dce7ee; }
.pgs-footer-hours strong { color: #fff; }
.site-footer .site-info { background: #091d2c; color: #dce7ee; }
.site-footer .site-info a { color: #fff; }
.site-footer .inside-site-info { padding: 15px 20px; }


@media (max-width: 1120px) {
	.pgs-current-section {
		grid-template-columns: minmax(0, 1fr);
		gap: 42px;
	}
	.pgs-current-column { width: 100%; }
}

@media (max-width: 900px) {
	.inside-header { min-height: 78px; gap: 18px; }
	.pgs-header-logo img { width: min(205px, 29vw); max-height: 70px; }
	.pgs-footer-inner { grid-template-columns: 1fr 1fr; }
	.pgs-footer-hours { grid-column: 1 / -1; }
	.pgs-fact-grid { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
	.inside-header { padding: 8px 14px; min-height: 68px; gap: 12px; }
	.pgs-header-logo img { width: 142px; max-height: 58px; }
	.main-title { font-size: 1.06rem; }
	.site-description { margin-top: 3px; font-size: .76rem; }

	.main-navigation { width: 100%; clear: both; }
	.main-navigation .inside-navigation { width: 100%; max-width: none; margin: 0; padding: 0; }
	.main-navigation .menu-toggle { width: 100%; }
	.main-navigation.toggled .main-nav > ul,
	.main-navigation .main-nav ul ul { background: var(--pgs-navy); }
	.main-navigation.toggled .main-nav ul li a,
	.main-navigation .main-nav ul ul li a {
		color: #fff;
		background: var(--pgs-navy);
		border-top: 1px solid rgba(255,255,255,.12);
		line-height: 1.35;
		padding: 13px 18px;
	}
	.main-navigation.toggled .main-nav ul li:hover > a,
	.main-navigation.toggled .main-nav ul li:focus-within > a,
	.main-navigation.toggled .main-nav ul li[class*="current-menu-"] > a,
	.main-navigation.toggled .main-nav ul li[class*="current_page_"] > a {
		color: #fff;
		background: var(--pgs-navy-dark);
		box-shadow: inset 4px 0 0 var(--pgs-gold);
	}
	.main-navigation .main-nav ul ul { box-shadow: none; }
	.main-navigation .main-nav ul ul li a { padding-left: 32px; }

	.pgs-home-heading { padding: 16px 14px 9px; }
	.pgs-home-heading h1 { font-size: 1rem; }
	.pgs-home-parishes {
		grid-template-columns: 1fr;
		gap: 15px;
		padding: 6px 14px 30px;
	}
	.pgs-parish-card {
		display: grid;
		grid-template-columns: minmax(125px, 38%) minmax(0, 1fr);
	}
	.pgs-parish-image img { height: 100%; min-height: 180px; aspect-ratio: auto; }
	.pgs-card-body { padding: 17px; }
	.pgs-card-body h2 { font-size: 1.45rem; }

	.pgs-current-section { padding: 37px 14px; }
	.pgs-quick-section { padding: 38px 14px 45px; }
	.pgs-quick-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pgs-page-hero > div { padding: 27px 14px 25px; }
	.pgs-page-content { padding: 32px 14px 44px; }
	.pgs-overview-grid,
	.pgs-service-grid { grid-template-columns: 1fr; }
	.pgs-feature-image img { aspect-ratio: 3 / 2; }
	.pgs-footer-inner { grid-template-columns: 1fr; gap: 19px; padding: 28px 14px; }
	.pgs-footer-hours { grid-column: auto; }
	.pgs-contact-button { min-height: 46px; display: flex; align-items: center; justify-content: center; }
	.pgs-page-index ul { display: grid; gap: 8px; }
}

@media (max-width: 520px) {
	.inside-header { align-items: center; gap: 9px; }
	.pgs-header-logo img { width: 108px; max-height: 47px; }
	.main-title { font-size: .94rem; line-height: 1.12; }
	.site-description { font-size: .7rem; }
	.pgs-home-heading h1 { font-size: 1rem; line-height: 1.6; }
	.pgs-parish-card { grid-template-columns: 1fr; }
	.pgs-parish-image img { min-height: 0; aspect-ratio: 3 / 2; }
	.pgs-news-card { grid-template-columns: 1fr; }
	.pgs-news-image img { min-height: 0; aspect-ratio: 16 / 9; }
	.pgs-news-content { padding: 14px; }
	.pgs-news-content p:not(.pgs-meta) { display: none; }
	.pgs-quick-grid { grid-template-columns: 1fr; }
	.pgs-quick-grid > a { min-height: 82px; }
	.pgs-section-heading { align-items: flex-end; }
	.pgs-section-heading > a { font-size: .9rem; }
	.pgs-current-column .pgs-event { grid-template-columns: 3.35rem minmax(0,1fr); gap: 10px; padding: 10px; }
	.pgs-current-column .pgs-event__date { min-height: 3.35rem; }
}

/* Churches, places, groups and activities catalogs. */
.pgs-catalog-section {
	margin: 0 0 44px;
}
.pgs-catalog-section:last-child {
	margin-bottom: 0;
}
.pgs-catalog-section > h2 {
	margin: 0 0 17px;
	color: var(--pgs-navy-dark);
	font-size: clamp(1.55rem, 2.7vw, 2.05rem);
}
.pgs-catalog-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}
.pgs-catalog-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: 22px;
	background: #fff;
	border-radius: var(--pgs-radius);
	box-shadow: var(--pgs-shadow);
}
.pgs-catalog-card h3 {
	margin: 4px 0 10px;
	font-size: clamp(1.18rem, 2vw, 1.45rem);
	line-height: 1.28;
}
.pgs-catalog-card h3 a {
	color: var(--pgs-navy-dark);
	text-decoration-thickness: 1px;
	text-underline-offset: .17em;
}
.pgs-catalog-card .pgs-text-link {
	margin-top: auto;
}
.pgs-catalog-meta {
	margin: 0;
	color: var(--pgs-blue);
	font-size: .79rem;
	font-weight: 750;
	letter-spacing: .055em;
	line-height: 1.4;
	text-transform: uppercase;
}
.pgs-detail-facts {
	margin-bottom: 34px;
}
.pgs-detail-facts p {
	margin-bottom: 0;
}

@media (max-width: 768px) {
	.pgs-catalog-grid { grid-template-columns: 1fr; }
	.pgs-catalog-card { padding: 19px; }
}


/* Image-supported catalog cards and comparative group pages. */
.pgs-catalog-card {
	overflow: hidden;
	padding: 0 !important;
}
.pgs-catalog-card-body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 22px;
}
.pgs-catalog-card-body > p:not(.pgs-catalog-meta) {
	margin: 0 0 17px;
	color: var(--pgs-text-muted);
}
.pgs-catalog-card-body .pgs-text-link {
	margin-top: auto;
}
.pgs-catalog-image {
	display: block;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: var(--pgs-cream);
}
.pgs-catalog-image img,
.pgs-detail-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.pgs-detail-image {
	max-width: 900px;
	margin: 0 0 28px;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	border-radius: var(--pgs-radius);
	box-shadow: var(--pgs-shadow);
	background: var(--pgs-cream);
}
.pgs-comparison-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin-top: 18px;
}
.pgs-comparison-list section {
	margin: 0;
	padding: 20px;
	border: 1px solid var(--pgs-line);
	border-radius: var(--pgs-radius);
	background: var(--pgs-paper);
}
.pgs-comparison-list h3 { margin-top: 0; color: var(--pgs-navy-dark); }
.pgs-comparison-list p:last-child { margin-bottom: 0; }

@media (max-width: 700px) {
	.pgs-comparison-list { grid-template-columns: 1fr; }
	.pgs-catalog-card-body { padding: 19px; }
}

/* Parish landing pages: compact image, welcoming introduction, services first. */
.pgs-parish-header-image {
	width: min(100%, var(--pgs-width));
	height: 260px;
	margin: 0 auto;
	overflow: hidden;
	background: var(--pgs-cream);
}
.pgs-parish-header-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 42%;
}
.pgs-parish-page-content {
	max-width: var(--pgs-width);
	padding-top: 34px;
}
.pgs-parish-welcome {
	max-width: 940px;
	margin: 0 0 44px;
}
.pgs-parish-welcome h1 {
	margin: 0 0 18px;
	color: var(--pgs-navy-dark);
	font-size: clamp(2rem, 4.6vw, 3.25rem);
	line-height: 1.08;
}
.pgs-parish-intro {
	font-size: clamp(1.02rem, 1.7vw, 1.18rem);
	line-height: 1.72;
}
.pgs-parish-intro p { margin: 0 0 12px; }
.pgs-parish-jump-links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 18px;
	margin-top: 21px;
}
.pgs-parish-jump-links a {
	font-weight: 700;
	text-underline-offset: .18em;
}
.pgs-parish-section {
	margin: 0 0 58px;
	scroll-margin-top: 70px;
}
.pgs-parish-section-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 18px;
	margin: 0 0 20px;
}
.pgs-parish-section-heading h2,
.pgs-parish-history > h2,
.pgs-parish-invitation h2 {
	margin: 0;
	color: var(--pgs-navy-dark);
	font-size: clamp(1.65rem, 3vw, 2.25rem);
	line-height: 1.16;
}
.pgs-parish-section-heading > a {
	flex: 0 0 auto;
	font-weight: 700;
	white-space: nowrap;
}
.pgs-eyebrow {
	margin: 0 0 4px;
	color: var(--pgs-blue);
	font-size: .76rem;
	font-weight: 800;
	letter-spacing: .085em;
	line-height: 1.35;
	text-transform: uppercase;
}
.pgs-parish-events {
	padding: 30px;
	background: var(--pgs-cream);
	border-radius: var(--pgs-radius);
}
.pgs-parish-events .pgs-events {
	max-width: none;
	margin: 0;
}
.pgs-parish-events .pgs-events__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}
.pgs-parish-events .pgs-event {
	min-width: 0;
	box-shadow: none;
}
.pgs-parish-history {
	max-width: 940px;
}
.pgs-history-section {
	padding: 24px 0;
	border-bottom: 1px solid var(--pgs-line);
}
.pgs-history-section:first-of-type { padding-top: 18px; }
.pgs-history-section:last-child { border-bottom: 0; padding-bottom: 0; }
.pgs-history-section h3 {
	margin: 0 0 10px;
	color: var(--pgs-navy-dark);
	font-size: clamp(1.25rem, 2.2vw, 1.55rem);
}
.pgs-history-section p:last-child { margin-bottom: 0; }
.pgs-parish-invitation {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 28px;
	padding: 28px 30px;
	background: #eef4f7;
	border-radius: var(--pgs-radius);
}
.pgs-parish-invitation p:last-child { margin-bottom: 0; }
.pgs-detail-image figcaption {
	padding: 9px 12px;
	color: var(--pgs-muted);
	background: #fff;
	font-size: .82rem;
	line-height: 1.35;
}
.pgs-detail-image { aspect-ratio: auto; }
.pgs-detail-image img { height: auto; aspect-ratio: 3 / 2; }

@media (max-width: 900px) {
	.pgs-parish-header-image { height: 205px; }
	.pgs-parish-events .pgs-events__list { grid-template-columns: 1fr; }
	.pgs-parish-invitation { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
	.pgs-parish-header-image { height: 170px; }
	.pgs-parish-page-content { padding-top: 27px; }
	.pgs-parish-welcome { margin-bottom: 36px; }
	.pgs-parish-section { margin-bottom: 46px; }
	.pgs-parish-section-heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 8px;
	}
	.pgs-parish-section-heading > a { white-space: normal; }
	.pgs-parish-events { padding: 20px 14px; }
	.pgs-parish-invitation { padding: 23px 20px; }
}

@media (max-width: 520px) {
	.pgs-parish-header-image { height: 145px; }
	.pgs-parish-welcome h1 { font-size: 1.9rem; }
	.pgs-parish-intro { font-size: 1rem; }
}

/* Beichte: ruhige, gut lesbare Informationsseite mit dynamischen Terminen. */
.pgs-confession-intro {
	font-size: 1.08rem;
	line-height: 1.7;
}
.pgs-confession-events .pgs-events {
	max-width: none;
	margin: 0;
}
.pgs-confession-events .pgs-events__list {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.pgs-faq details {
	margin: 0 0 10px;
	padding: 0;
	background: #fff;
	border: 1px solid var(--pgs-line);
	border-radius: 9px;
	overflow: hidden;
}
.pgs-faq summary {
	padding: 15px 18px;
	color: var(--pgs-navy-dark);
	font-weight: 700;
	cursor: pointer;
}
.pgs-faq details[open] summary {
	background: var(--pgs-cream);
}
.pgs-faq details p {
	margin: 0;
	padding: 0 18px 17px;
}
@media (max-width: 820px) {
	.pgs-confession-events .pgs-events__list {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 768px) {
	.pgs-news-index .site-content { padding: 26px 14px 42px; }
	.pgs-news-index-heading { padding: 23px 20px; }
	.pgs-news-index .post { padding: 20px; }
}

/* Version 2.1: quieter one-column layouts for current content, parish pages,
 * churches/places and groups. These rules intentionally replace multi-column
 * card grids without changing the durable HTML structure of older installs. */
.pgs-current-section {
	grid-template-columns: minmax(0, 1fr);
	gap: 48px;
}
.pgs-current-column {
	width: 100%;
	max-width: var(--pgs-width);
	margin: 0 auto;
}
.pgs-news-grid { grid-template-columns: minmax(0, 1fr); }

/* Parish pages: simple vertical reading flow instead of duplicated cards. */
.pgs-parish-page-content { max-width: 960px; }
.pgs-parish-welcome { margin-bottom: 38px; }
.pgs-parish-section { margin-bottom: 48px; }
.pgs-parish-events {
	padding: 0;
	background: transparent;
	border-radius: 0;
}
.pgs-parish-events .pgs-events__list {
	display: block;
}
.pgs-parish-events .pgs-event {
	margin: 0;
	padding: 16px 0;
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--pgs-line);
	border-radius: 0;
	box-shadow: none;
}
.pgs-parish-events .pgs-event:first-child { border-top: 1px solid var(--pgs-line); }
.pgs-parish-reference-section {
	max-width: 900px;
}
.pgs-parish-reference-intro {
	margin: -5px 0 16px;
	color: var(--pgs-muted);
}
.pgs-parish-reference-list {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--pgs-line);
}
.pgs-parish-reference-list li {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 20px;
	padding: 13px 0;
	border-bottom: 1px solid var(--pgs-line);
}
.pgs-parish-reference-list a {
	color: var(--pgs-navy-dark);
	font-size: 1.06rem;
	font-weight: 700;
	text-underline-offset: .18em;
}
.pgs-parish-reference-list span {
	max-width: 46%;
	color: var(--pgs-muted);
	font-size: .9rem;
	text-align: right;
}
.pgs-history-section { padding: 20px 0; }
.pgs-parish-invitation {
	display: block;
	padding: 24px 0 0;
	background: transparent;
	border-top: 1px solid var(--pgs-line);
	border-radius: 0;
}
.pgs-parish-invitation .pgs-local-actions { margin-top: 18px; }

/* Overview pages: one full-width entry after another, never side by side. */
.pgs-catalog-grid,
.pgs-comparison-list {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0;
}
.pgs-catalog-card {
	display: grid;
	grid-template-columns: minmax(190px, 260px) minmax(0, 1fr);
	padding: 0 !important;
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--pgs-line);
	border-radius: 0;
	box-shadow: none;
}
.pgs-catalog-card:first-child { border-top: 1px solid var(--pgs-line); }
.pgs-catalog-image {
	aspect-ratio: 4 / 3;
	margin: 18px 0;
	border-radius: 8px;
}
.pgs-catalog-card-body {
	justify-content: center;
	padding: 22px 0 22px 26px;
}
.pgs-catalog-card-body .pgs-text-link { margin-top: 0; }
.pgs-comparison-list section {
	padding: 20px 0;
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--pgs-line);
	border-radius: 0;
}
.pgs-comparison-list section:first-child { border-top: 1px solid var(--pgs-line); }

/* Detail metadata is a readable vertical definition list instead of tiles. */
.pgs-detail-meta {
	margin: 0 0 34px;
	border-top: 1px solid var(--pgs-line);
}
.pgs-detail-meta > div {
	display: grid;
	grid-template-columns: minmax(100px, 150px) minmax(0, 1fr);
	gap: 20px;
	padding: 12px 0;
	border-bottom: 1px solid var(--pgs-line);
}
.pgs-detail-meta dt {
	color: var(--pgs-navy-dark);
	font-weight: 750;
}
.pgs-detail-meta dd { margin: 0; }

@media (max-width: 700px) {
	.pgs-catalog-card { grid-template-columns: minmax(0, 1fr); }
	.pgs-catalog-image { margin: 16px 0 0; }
	.pgs-catalog-card-body { padding: 18px 0 20px; }
	.pgs-parish-reference-list li {
		align-items: flex-start;
		flex-direction: column;
		gap: 3px;
	}
	.pgs-parish-reference-list span {
		max-width: none;
		text-align: left;
	}
	.pgs-detail-meta > div {
		grid-template-columns: minmax(0, 1fr);
		gap: 2px;
	}
}


/* Version 2.2: overview lists use the complete 1180 px design width on wide screens. */
.pgs-page-content--wide {
	max-width: var(--pgs-width);
}
.pgs-page-content--wide .pgs-catalog-section,
.pgs-page-content--wide .pgs-catalog-grid,
.pgs-page-content--wide .pgs-catalog-card,
.pgs-page-content--wide .pgs-comparison-list {
	width: 100%;
	max-width: none;
}
.pgs-page-content--wide > .pgs-info-box {
	max-width: 960px;
}
@media (min-width: 1000px) {
	.pgs-page-content--wide .pgs-catalog-card {
		grid-template-columns: minmax(240px, 290px) minmax(0, 1fr);
	}
	.pgs-page-content--wide .pgs-catalog-card-body {
		padding-left: 30px;
	}
}


/*
 * Version 2.3: robust full-width catalog pages.
 *
 * Version 2.2 depended solely on the class .pgs-page-content--wide inside the
 * stored page HTML.  Existing WordPress pages retained the older class after a
 * plugin replacement unless the setup routine rewrote their content.  The
 * result was the old 960 px wrapper on landschoof.org.  The page-specific body
 * class below is generated at request time and therefore also fixes existing
 * stored content without requiring a destructive page rewrite.
 */
body.pgs-wide-overview-page .pgs-page-content,
body.pgs-wide-overview-page .pgs-page-content--wide {
	width: calc(100% - 40px) !important;
	max-width: var(--pgs-width) !important;
	margin-right: auto !important;
	margin-left: auto !important;
	padding-right: 0 !important;
	padding-left: 0 !important;
	box-sizing: border-box;
}
body.pgs-wide-overview-page .pgs-info-box,
body.pgs-wide-overview-page .pgs-catalog-section,
body.pgs-wide-overview-page .pgs-catalog-grid,
body.pgs-wide-overview-page .pgs-catalog-card {
	width: 100% !important;
	max-width: none !important;
	box-sizing: border-box;
}
body.pgs-wide-overview-page .pgs-info-box {
	margin-right: 0;
	margin-left: 0;
}
body.pgs-wide-overview-page .pgs-catalog-grid {
	display: block !important;
}
body.pgs-wide-overview-page .pgs-catalog-card {
	display: grid !important;
	grid-template-columns: minmax(270px, 320px) minmax(0, 1fr) !important;
	align-items: center;
	column-gap: 32px;
}
body.pgs-wide-overview-page .pgs-catalog-image {
	width: 100% !important;
	min-width: 0;
	margin: 18px 0 !important;
}
body.pgs-wide-overview-page .pgs-catalog-card-body {
	width: 100%;
	min-width: 0;
	padding: 22px 0 !important;
}
body.pgs-wide-overview-page .pgs-catalog-card--no-image,
body.pgs-wide-overview-page .pgs-catalog-card:not(:has(.pgs-catalog-image)) {
	grid-template-columns: minmax(0, 1fr) !important;
}
body.pgs-wide-overview-page .pgs-catalog-card--no-image .pgs-catalog-card-body,
body.pgs-wide-overview-page .pgs-catalog-card:not(:has(.pgs-catalog-image)) .pgs-catalog-card-body {
	grid-column: 1 / -1;
	padding-left: 0 !important;
}

@media (max-width: 820px) {
	body.pgs-wide-overview-page .pgs-page-content,
	body.pgs-wide-overview-page .pgs-page-content--wide {
		width: calc(100% - 28px) !important;
	}
	body.pgs-wide-overview-page .pgs-catalog-card {
		grid-template-columns: minmax(0, 1fr) !important;
		column-gap: 0;
	}
	body.pgs-wide-overview-page .pgs-catalog-image {
		margin: 16px 0 0 !important;
	}
	body.pgs-wide-overview-page .pgs-catalog-card-body {
		padding: 18px 0 22px !important;
	}
}


@media (min-width: 821px) {
	body.pgs-wide-overview-page .pgs-catalog-card > .pgs-catalog-image {
		grid-column: 1;
		grid-row: 1;
	}
	body.pgs-wide-overview-page .pgs-catalog-card > .pgs-catalog-card-body {
		grid-column: 2;
		grid-row: 1;
	}
	body.pgs-wide-overview-page .pgs-catalog-card--no-image > .pgs-catalog-card-body,
	body.pgs-wide-overview-page .pgs-catalog-card:not(:has(.pgs-catalog-image)) > .pgs-catalog-card-body {
		grid-column: 1 / -1;
	}
}


/* Version 2.6.1: the home-page current-content area must remain full width on
 * wide displays. Explicit block sizing prevents old GeneratePress/grid cache
 * rules from shrinking the service list to its minimum-content width. */
.pgs-starter-home .pgs-current-section {
	display: block !important;
	width: 100%;
	box-sizing: border-box;
}
.pgs-starter-home .pgs-current-column {
	display: block !important;
	justify-self: stretch !important;
	width: 100% !important;
	max-width: var(--pgs-width) !important;
	min-width: 0 !important;
	box-sizing: border-box;
	margin-right: auto !important;
	margin-left: auto !important;
}
.pgs-starter-home .pgs-current-column + .pgs-current-column {
	margin-top: 48px !important;
}
.pgs-starter-home .pgs-current-column .pgs-section-heading,
.pgs-starter-home .pgs-current-column .pgs-events,
.pgs-starter-home .pgs-current-column .pgs-events__list,
.pgs-starter-home .pgs-current-column .pgs-news-grid {
	width: 100% !important;
	max-width: none !important;
	box-sizing: border-box;
}
.pgs-starter-home .pgs-current-column .pgs-event {
	display: grid !important;
	grid-template-columns: 3.75rem minmax(0, 1fr) !important;
	width: 100% !important;
	max-width: none !important;
	box-sizing: border-box;
}
.pgs-starter-home .pgs-current-column .pgs-event__content {
	width: auto !important;
	min-width: 0 !important;
}

@media (max-width: 520px) {
	.pgs-starter-home .pgs-current-column .pgs-event {
		grid-template-columns: 3.35rem minmax(0, 1fr) !important;
	}
}


/* Version 2.6.2: catalog detail pages render the selected image inside the
 * plugin layout. Hide any additional featured-image output from the theme so
 * the same image is not shown twice. */
.pgs-catalog-single .post-image,
.pgs-catalog-single .page-header-image,
.pgs-catalog-single .page-header-image-single,
.pgs-catalog-single .featured-image {
	display: none !important;
}

/* Editable parish and pastoral content introduced in version 2.8.0. */
.pgs-editorial-content > h2,
.pgs-editorial-content > h3 {
	color: var(--pgs-navy-dark);
}
.pgs-editorial-content > h2 {
	margin: 38px 0 12px;
	font-size: clamp(1.45rem, 2.8vw, 2rem);
}
.pgs-editorial-content > h3 { margin: 28px 0 8px; }
.pgs-editorial-content > :first-child { margin-top: 0; }
.pgs-editorial-content > :last-child { margin-bottom: 0; }
.pgs-editorial-content details {
	margin: 0 0 12px;
	padding: 14px 16px;
	border: 1px solid var(--pgs-line);
	border-radius: 8px;
	background: var(--pgs-paper);
}
.pgs-editorial-content summary {
	cursor: pointer;
	font-weight: 700;
	color: var(--pgs-navy-dark);
}
.pgs-parish-invitation-text > :first-child { margin-top: 0; }
.pgs-parish-invitation-text > :last-child { margin-bottom: 0; }
