/*
Theme Name: IMPC Light
Theme URI: https://impc.gr/
Author: IMPC
Description: Ελαφρύ, προσβάσιμο και προσαρμοσμένο θέμα για την Ιερά Μητρόπολη Γ.Ο.Χ. Πειραιώς και Σαλαμίνος.
Version: 1.2.12
Requires at least: 6.8
Requires PHP: 8.1
Text Domain: impc-light
*/

:root {
	--impc-ink: #282722;
	--impc-ink-soft: #625f56;
	--impc-paper: #f6f1e7;
	--impc-paper-deep: #eee5d5;
	--impc-white: #fffdfa;
	--impc-burgundy: #7c2635;
	--impc-burgundy-dark: #51141f;
	--impc-gold: #b88b43;
	--impc-gold-soft: #d9bd83;
	--impc-blue: #0d3149;
	--impc-blue-soft: #174761;
	--impc-line: #d9cdb9;
	--impc-shadow: 0 24px 65px rgba(69, 50, 27, 0.14);
	--impc-shadow-soft: 0 12px 35px rgba(69, 50, 27, 0.09);
	--impc-content: 780px;
	--impc-wide: 1240px;
}

/* Internal pages: navigation occupies the left side of the liturgical bar. */
.liturgical-topbar__home-calendar {
	display: contents;
}

.liturgical-topbar--internal .liturgical-topbar__inner {
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 2rem;
}

.internal-topnav {
	min-width: 0;
}

.internal-topnav ul {
	display: flex;
	align-items: center;
	gap: clamp(0.75rem, 1.25vw, 1.35rem);
	margin: 0;
	padding: 0;
	list-style: none;
}

.internal-topnav a {
	position: relative;
	display: block;
	padding: 0.25rem 0;
	color: rgba(255, 253, 248, 0.8);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.56rem;
	font-weight: 700;
	letter-spacing: 0.065em;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
}

.internal-topnav a::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: -0.18rem;
	left: 0;
	height: 1px;
	background: var(--impc-gold-soft);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 180ms ease;
}

.internal-topnav a:hover,
.internal-topnav a:focus-visible,
.internal-topnav a.is-current {
	color: var(--impc-gold-soft);
}

.internal-topnav a:hover::after,
.internal-topnav a:focus-visible::after,
.internal-topnav a.is-current::after {
	transform: scaleX(1);
}

.liturgical-topbar__calendar {
	display: grid;
	grid-template-columns: auto 1px auto minmax(10rem, 22rem) auto;
	align-items: center;
	gap: clamp(0.55rem, 0.9vw, 0.9rem);
	min-width: 0;
}

.liturgical-topbar__calendar .liturgical-topbar__feast {
	max-width: 22rem;
}

@media (max-width: 1100px) {
	.liturgical-topbar--internal .liturgical-topbar__inner {
		gap: 1rem;
	}

	.internal-topnav ul {
		gap: 0.72rem;
	}

	.internal-topnav a {
		font-size: 0.5rem;
		letter-spacing: 0.045em;
	}

	.liturgical-topbar__calendar {
		grid-template-columns: auto 1px auto minmax(8rem, 16rem) auto;
		gap: 0.55rem;
	}

	.liturgical-topbar__calendar .liturgical-topbar__date span,
	.liturgical-topbar__calendar .liturgical-topbar__old-date span {
		display: none;
	}

	.liturgical-topbar__calendar .liturgical-topbar__feast {
		max-width: 16rem;
		font-size: 0.7rem;
	}
}

@media (max-width: 820px) {
	.liturgical-topbar--internal,
	.liturgical-topbar--internal .liturgical-topbar__inner {
		min-height: 0;
	}

	.liturgical-topbar--internal .liturgical-topbar__inner {
		grid-template-columns: minmax(0, 1fr);
		gap: 0;
		padding-block: 0.3rem 0.34rem;
	}

	.internal-topnav {
		padding-bottom: 0.3rem;
		border-bottom: 1px solid rgba(217, 189, 131, 0.18);
	}

	.internal-topnav ul {
		justify-content: space-between;
		gap: 0.55rem;
	}

	.internal-topnav a {
		font-size: 0.49rem;
		letter-spacing: 0.035em;
	}

	.liturgical-topbar__calendar {
		grid-template-columns: auto 1px auto minmax(0, 1fr) auto;
		width: 100%;
		padding-top: 0.3rem;
	}

	.liturgical-topbar__calendar .liturgical-topbar__feast {
		max-width: none;
		font-size: 0.65rem;
	}
}

@media (max-width: 560px) {
	.liturgical-topbar--internal,
	.liturgical-topbar--internal .liturgical-topbar__inner {
		min-height: 0;
	}

	.liturgical-topbar--internal .liturgical-topbar__inner {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		gap: 0;
		padding-block: 0.28rem 0.34rem;
	}

	.internal-topnav {
		overflow-x: auto;
		scrollbar-width: none;
	}

	.internal-topnav::-webkit-scrollbar {
		display: none;
	}

	.internal-topnav ul {
		min-width: max-content;
		justify-content: flex-start;
		gap: 0.7rem;
	}

	.internal-topnav a {
		font-size: 0.47rem;
	}

	.liturgical-topbar__calendar {
		display: grid;
		grid-template-columns: auto auto minmax(0, 1fr);
		gap: 0.48rem;
	}

	.liturgical-topbar__calendar .liturgical-topbar__old-date {
		justify-self: auto;
	}

	.liturgical-topbar__calendar .liturgical-topbar__divider,
	.liturgical-topbar__calendar .liturgical-topbar__cross {
		display: none;
	}

	.liturgical-topbar__calendar .liturgical-topbar__feast {
		grid-column: auto;
		font-size: 0.58rem;
		text-align: right;
	}

	.liturgical-topbar__calendar .liturgical-topbar__date strong,
	.liturgical-topbar__calendar .liturgical-topbar__old-date strong {
		font-size: 0.65rem;
	}
}

/* Metropolis hub: the homepage blue mosaic panel becomes the section masthead. */
.metropolis-hub__hero {
	min-height: auto;
}

.metropolis-hub__hero-grid {
	grid-template-columns: minmax(0, 1.16fr) 18rem minmax(17rem, 0.78fr);
	min-height: 570px;
}

.metropolis-hub__hero .metropolis-panel__intro h1 {
	max-width: 11ch;
	margin: 0.28rem 0 0;
	color: #fff;
	font-family: Palatino, "Palatino Linotype", "Book Antiqua", Georgia, serif;
	font-size: clamp(3rem, 3.8vw, 4.25rem);
	font-weight: 400;
	line-height: 0.98;
	letter-spacing: -0.062em;
	text-shadow: 0 8px 28px rgba(0, 0, 0, 0.2);
}

.metropolis-hub__place {
	margin: 0.8rem 0 0;
	color: var(--impc-gold-soft);
	font-family: Georgia, serif;
	font-size: clamp(1rem, 1.35vw, 1.28rem);
}

.metropolis-hub__hero .metropolis-panel__intro .ornament {
	margin-top: 1.35rem;
}

.metropolis-hub__lead {
	max-width: 43rem;
	margin: 0;
	color: #cdd8dd;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(0.9rem, 1vw, 1rem);
	line-height: 1.78;
}

.metropolis-hub__facts {
	position: relative;
	z-index: 2;
}

.metropolis-hub__facts > .eyebrow {
	margin: 0 0 0.85rem;
}

.metropolis-hub__facts dl {
	margin: 0;
	border-top: 1px solid rgba(217, 189, 131, 0.28);
}

.metropolis-hub__facts dl > div {
	padding: 0.82rem 0;
	border-bottom: 1px solid rgba(217, 189, 131, 0.22);
}

.metropolis-hub__facts dt {
	margin: 0 0 0.22rem;
	color: var(--impc-gold-soft);
	font-size: 0.58rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.metropolis-hub__facts dd {
	margin: 0;
	color: #edf2f4;
	font-family: Georgia, serif;
	font-size: 0.9rem;
	line-height: 1.42;
}

.metropolis-story {
	position: relative;
	padding: clamp(5rem, 8vw, 8rem) 0;
	background: linear-gradient(180deg, #fffdf9, #f8f2e8);
}

.metropolis-story::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	width: min(1240px, calc(100% - 2rem));
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(184, 139, 67, 0.58), transparent);
	transform: translateX(-50%);
}

.metropolis-story__grid {
	display: grid;
	grid-template-columns: minmax(18rem, 0.72fr) minmax(0, 1.28fr);
	align-items: start;
	gap: clamp(3rem, 7vw, 7rem);
}

.metropolis-story__heading h2 {
	max-width: 12ch;
	margin: 0.55rem 0 1.5rem;
	font-family: Palatino, "Palatino Linotype", "Book Antiqua", Georgia, serif;
	font-size: clamp(2.5rem, 3.2vw, 3.4rem);
	font-weight: 400;
	line-height: 1.03;
	letter-spacing: -0.055em;
}

.metropolis-story__content {
	max-width: 46rem;
	color: #504e48;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1rem, 1.12vw, 1.12rem);
	line-height: 1.86;
}

.metropolis-story__content p {
	margin: 0 0 1.35rem;
}

.metropolis-story__content p:first-child {
	color: var(--impc-ink);
	font-size: clamp(1.16rem, 1.45vw, 1.38rem);
	line-height: 1.72;
}

.metropolis-story__content p:last-child {
	margin: 2rem 0 0;
	padding: 1.25rem 0 0;
	border-top: 1px solid var(--impc-line);
	color: var(--impc-burgundy);
}

.metropolis-directory {
	padding: clamp(4rem, 6vw, 6rem) 0 clamp(5rem, 8vw, 8rem);
	background:
		linear-gradient(90deg, transparent, rgba(184, 139, 67, 0.1) 50%, transparent) top / 100% 1px no-repeat,
		linear-gradient(180deg, #fffdf9, #f2e9da);
}

.metropolis-directory::before {
	content: "";
}

.metropolis-chapters {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	border: 1px solid var(--impc-line);
	background: var(--impc-line);
}

.metropolis-chapter {
	position: relative;
	display: flex;
	align-items: stretch;
	min-height: 285px;
	padding: clamp(1.55rem, 2.6vw, 2.45rem);
	border: 0;
	background: rgba(255, 253, 250, 0.98);
	color: var(--impc-ink);
	flex-direction: column;
	text-decoration: none;
	overflow: hidden;
	transition: background 220ms ease, color 220ms ease, transform 220ms ease;
}

.metropolis-chapter::before {
	z-index: 0;
	inset: auto -4rem -6rem auto;
	width: 13rem;
	height: 13rem;
	border: 1px solid rgba(184, 139, 67, 0.2);
	border-radius: 50%;
	background: transparent;
	opacity: 1;
}

.metropolis-chapter::after {
	content: "";
	position: absolute;
	right: -1rem;
	bottom: -1rem;
	width: 7rem;
	height: 7rem;
	border: 1px solid rgba(184, 139, 67, 0.13);
	border-radius: 50%;
}

.metropolis-chapter:hover {
	z-index: 2;
	padding: clamp(1.55rem, 2.6vw, 2.45rem);
	background: #fff;
	transform: translateY(-4px);
}

.metropolis-chapter__topline {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
}

.metropolis-chapter__number {
	align-self: auto;
	padding: 0;
	color: var(--impc-burgundy);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.67rem;
	font-weight: 700;
	letter-spacing: 0.14em;
}

.metropolis-chapter__marker {
	display: grid;
	place-items: center;
	width: 2.4rem;
	height: 2.4rem;
	border: 1px solid rgba(184, 139, 67, 0.42);
	border-radius: 50%;
	color: var(--impc-gold);
	font-family: Georgia, serif;
	font-size: 0.7rem;
}

.metropolis-chapter__body {
	position: relative;
	z-index: 1;
	display: block;
	margin: auto 0 1.8rem;
}

.metropolis-chapter__body strong {
	display: block;
	max-width: 15ch;
	font-size: clamp(1.75rem, 2.35vw, 2.55rem);
	line-height: 1.03;
}

.metropolis-chapter__body small {
	display: block;
	max-width: 34rem;
	margin-top: 0.9rem;
	color: var(--impc-ink-soft);
	font-size: 0.86rem;
	line-height: 1.6;
}

.metropolis-chapter__arrow {
	position: relative;
	z-index: 1;
	margin-top: 0;
}

@media (max-width: 980px) {
	.metropolis-hub__hero-grid {
		grid-template-columns: minmax(0, 1fr) 15rem;
	}

	.metropolis-hub__facts {
		grid-column: 1 / -1;
	}

	.metropolis-hub__facts dl {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.metropolis-hub__facts dl > div {
		padding-right: 1rem;
	}

	.metropolis-hub__facts dl > div + div {
		padding-left: 1rem;
		border-left: 1px solid rgba(217, 189, 131, 0.22);
	}

	.metropolis-chapters {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 680px) {
	.metropolis-hub__hero-grid {
		grid-template-columns: 1fr;
		gap: 1.8rem;
		padding-block: 3rem;
	}

	.metropolis-hub__hero .metropolis-panel__intro h1 {
		font-size: clamp(2.6rem, 11vw, 3.6rem);
	}

	.metropolis-hub__hero.metropolis-panel--mosaic-emblem::before {
		background-position: center 57%;
		background-size: 42rem auto;
		filter: saturate(0.82) contrast(1) brightness(1.02);
		opacity: 0.9;
	}

	.metropolis-hub__hero .metropolis-panel__seal {
		width: 100%;
		height: 17rem;
	}

	.metropolis-hub__hero .metropolis-panel__seal::before {
		display: block;
		inset: 0;
		left: 0;
		z-index: 0;
		width: auto;
		height: auto;
		background: var(--impc-asset-4f4a25aec0f5, url("assets/images/metropolis-mosaic-emblem-v2.webp")) center / 42rem auto no-repeat;
		opacity: 0.96;
		-webkit-mask-image: radial-gradient(ellipse 12rem 10rem at 50% 50%, #000 0%, #000 72%, transparent 100%);
		mask-image: radial-gradient(ellipse 12rem 10rem at 50% 50%, #000 0%, #000 72%, transparent 100%);
	}

	.metropolis-hub__lead {
		font-size: 0.94rem;
		line-height: 1.68;
	}

	.metropolis-hub__facts dl {
		grid-template-columns: 1fr;
	}

	.metropolis-hub__facts dl > div + div {
		padding-left: 0;
		border-left: 0;
	}

	.metropolis-story__grid {
		grid-template-columns: 1fr;
		gap: 2.2rem;
	}

	.metropolis-story__heading h2 {
		font-size: clamp(2.35rem, 10vw, 3.15rem);
	}

	.metropolis-story__content {
		font-size: 0.98rem;
		line-height: 1.76;
	}

	.metropolis-chapters {
		grid-template-columns: 1fr;
	}

	.metropolis-chapter {
		min-height: 245px;
	}
}

/* Metropolitan: the same visual language as the Metropolis hub. */
.hierarch-hub__hero-grid {
	grid-template-columns: minmax(0, 1fr) 18rem;
	height: 520px;
	min-height: 520px;
}

.hierarch-hub__hero .metropolis-panel__intro {
	align-self: center;
}

.hierarch-hub__hero .metropolis-panel__intro .hierarch-hub__title {
	display: flex;
	width: 5.51em;
	max-width: none;
	margin-top: 0;
	flex-direction: column;
	font-size: clamp(2.9rem, 3.5vw, 4.15rem);
	line-height: 0.95;
}

.hierarch-hub__title-top {
	display: flex;
	align-items: center;
	gap: 0.7rem;
}

.hierarch-hub__article {
	flex: 0 0 auto;
	font: inherit;
	line-height: 0.8;
}

.hierarch-hub__kicker {
	max-width: none;
	margin-left: auto;
	color: var(--impc-gold-soft);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.56rem;
	font-weight: 700;
	line-height: 1.42;
	letter-spacing: 0.1em;
	white-space: nowrap;
	text-transform: uppercase;
}

.hierarch-hub__title-main {
	display: block;
	margin-top: -0.04em;
}

.hierarch-hub__hero .metropolis-panel__intro .ornament {
	margin: 0.78rem 0;
}

.hierarch-hub__quote {
	max-width: 41rem;
	margin: 0;
	padding: 0;
	border: 0;
	color: rgba(233, 239, 241, 0.86);
	font-family: Georgia, "Times New Roman", serif;
}

.hierarch-hub__quote p {
	margin: 0;
	font-size: clamp(0.76rem, 0.83vw, 0.86rem);
	line-height: 1.58;
}

.hierarch-hub__quote cite {
	display: block;
	margin-top: 0.58rem;
	color: var(--impc-gold-soft);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.6rem;
	font-style: normal;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* Optional Metropolitan masthead: one continuous Good Shepherd mosaic with the official seal baked into the artwork. */
.hierarch-hub__hero--shepherd.metropolis-panel--mosaic-emblem::before {
	background-image: var(--impc-asset-75d8624651c2, url("assets/images/header-mosaic-metropolis-emblem-v1.webp"));
	background-position: right top;
	background-size: 110% auto;
	background-repeat: no-repeat;
	filter: saturate(0.62) contrast(1.1) brightness(0.54);
	mix-blend-mode: luminosity;
	opacity: 0.9;
	-webkit-mask-image: linear-gradient(90deg, transparent 7%, rgba(0, 0, 0, 0.16) 13%, rgba(0, 0, 0, 0.7) 22%, #000 30%);
	mask-image: linear-gradient(90deg, transparent 7%, rgba(0, 0, 0, 0.16) 13%, rgba(0, 0, 0, 0.7) 22%, #000 30%);
}

.hierarch-hub__hero--shepherd .metropolis-panel__ornament {
	background:
		linear-gradient(90deg, rgba(5, 27, 42, 0.99) 0%, rgba(5, 27, 42, 0.96) 24%, rgba(5, 27, 42, 0.82) 42%, rgba(5, 27, 42, 0.34) 61%, rgba(5, 27, 42, 0.26) 78%, rgba(5, 27, 42, 0.48) 100%),
		linear-gradient(180deg, rgba(3, 19, 31, 0.32), transparent 28%, transparent 70%, rgba(3, 19, 31, 0.34));
	filter: none;
	mix-blend-mode: normal;
	opacity: 1;
}

.hierarch-hub__hero--shepherd .metropolis-panel__seal {
	width: 14rem;
	height: 18rem;
	visibility: hidden;
}

.hierarch-hub__hero--shepherd .metropolis-panel__seal::before {
	display: none;
}

.hierarch-hub__hero--shepherd .metropolis-panel__seal::after {
	left: 50%;
	bottom: 2.05rem;
	width: 12rem;
	background: linear-gradient(90deg, transparent, rgba(217, 189, 131, 0.55), transparent);
}

.hierarch-hub__hero--shepherd .metropolis-panel__seal-core {
	position: relative;
	right: auto;
	bottom: auto;
	z-index: 3;
	width: 10.5rem;
	height: 10.8rem;
	margin: 0;
}

.hierarch-hub__hero--shepherd.metropolis-panel--mosaic-emblem .metropolis-panel__seal-core::before {
	display: none;
}

.hierarch-hub__hero--shepherd.metropolis-panel--mosaic-emblem .metropolis-panel__seal-core img {
	position: relative;
	z-index: 1;
	width: 9.7rem;
	height: 10rem;
	filter: invert(0.88) grayscale(1) sepia(0.22) brightness(0.96) contrast(0.88);
	opacity: 0.86;
}

@media (max-width: 820px) {
	.hierarch-hub__hero-grid {
		grid-template-columns: 1fr;
		height: auto;
	}
}

@media (max-width: 680px) {
	.hierarch-hub__hero .metropolis-panel__intro .hierarch-hub__title {
		width: 100%;
		max-width: 100%;
		font-size: clamp(2.65rem, 11vw, 3.5rem);
	}

	.hierarch-hub__kicker {
		max-width: none;
		font-size: 0.48rem;
	}
}

/* Dedicated predecessor profile. */
.predecessor-profile__hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background:
		radial-gradient(circle at 76% 42%, rgba(53, 101, 126, 0.56), transparent 27rem),
		linear-gradient(115deg, #081f30 0%, #0d344c 52%, #143f56 100%);
	color: #fff;
}

.predecessor-profile__hero::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background:
		linear-gradient(rgba(217, 189, 131, 0.055) 1px, transparent 1px),
		linear-gradient(90deg, rgba(217, 189, 131, 0.055) 1px, transparent 1px);
	background-size: 2.15rem 2.15rem;
	-webkit-mask-image: radial-gradient(ellipse 75% 92% at 72% 45%, #000, transparent 82%);
	mask-image: radial-gradient(ellipse 75% 92% at 72% 45%, #000, transparent 82%);
}

.predecessor-profile__mosaic {
	position: absolute;
	z-index: -1;
	inset: -12% -4% -16% 22%;
	background: var(--impc-asset-4f4a25aec0f5, url("assets/images/metropolis-mosaic-emblem-v2.webp")) center / cover no-repeat;
	filter: saturate(0.72) contrast(1.05);
	opacity: 0.26;
	-webkit-mask-image: radial-gradient(ellipse 62% 65% at 58% 48%, #000 0%, rgba(0, 0, 0, 0.72) 50%, transparent 100%);
	mask-image: radial-gradient(ellipse 62% 65% at 58% 48%, #000 0%, rgba(0, 0, 0, 0.72) 50%, transparent 100%);
}

.predecessor-profile__intro .eyebrow {
	color: var(--impc-gold-soft);
}

.predecessor-profile__hero h1 {
	max-width: 11ch;
	margin: 0;
	font-family: Palatino, "Palatino Linotype", "Book Antiqua", Georgia, serif;
	font-size: clamp(3rem, 3.8vw, 4.25rem);
	font-weight: 400;
	line-height: 1;
	letter-spacing: -0.065em;
	text-shadow: 0 12px 36px rgba(0, 0, 0, 0.24);
}

.predecessor-profile__intro .ornament {
	margin: 1.65rem 0;
}

.predecessor-profile__lead {
	max-width: 31rem;
	margin: 0;
	color: rgba(234, 239, 240, 0.82);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1rem, 1.22vw, 1.16rem);
	line-height: 1.78;
}

.predecessor-profile__facts dt {
	color: var(--impc-gold-soft);
	font-size: 0.58rem;
	font-weight: 700;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.predecessor-profile__facts dd {
	margin: 0.12rem 0 0;
	font-family: Georgia, serif;
	font-size: 0.9rem;
}

.hierarch-biography {
	position: relative;
	padding: clamp(5rem, 9vw, 9rem) 0;
	background:
		radial-gradient(circle at 9% 8%, rgba(184, 139, 67, 0.09), transparent 25rem),
		linear-gradient(180deg, #fffdf9, #f7f0e5);
}

.hierarch-biography__grid {
	display: grid;
	grid-template-columns: minmax(19rem, 0.68fr) minmax(0, 1.32fr);
	align-items: start;
	gap: clamp(3.5rem, 7vw, 7.5rem);
}

.hierarch-biography__aside {
	position: sticky;
	top: 2rem;
}

.hierarch-biography__image {
	position: relative;
	margin: 0;
	box-shadow: 0 30px 70px rgba(55, 42, 25, 0.17);
}

.hierarch-biography__image::after {
	content: "";
	position: absolute;
	inset: 0;
	border: 1px solid rgba(255, 255, 255, 0.38);
	box-shadow: inset 0 0 0 0.55rem rgba(255, 255, 255, 0.07);
	pointer-events: none;
}

.hierarch-biography__image img {
	display: block;
	width: 100%;
	height: auto;
}

.hierarch-biography__note {
	position: relative;
	width: calc(100% - 2.2rem);
	margin: -2.7rem 0 0 auto;
	padding: 1.4rem 1.6rem;
	background: var(--impc-blue);
	box-shadow: 0 20px 45px rgba(27, 39, 47, 0.19);
	color: #fff;
}

.hierarch-biography__note span {
	color: var(--impc-gold-soft);
	font-size: 0.6rem;
	font-weight: 700;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.hierarch-biography__note strong {
	display: block;
	margin-top: 0.2rem;
	font-family: Georgia, serif;
	font-size: 2.3rem;
	font-weight: 400;
	line-height: 1;
}

.hierarch-biography__note p {
	margin: 0.45rem 0 0;
	color: rgba(238, 242, 243, 0.72);
	font-size: 0.72rem;
	line-height: 1.45;
}

.hierarch-biography__aside-actions {
	position: relative;
	width: 100%;
	margin: 1.8rem 0 0;
	padding: 0;
	border-top: 1px solid rgba(184, 139, 67, 0.38);
}

.hierarch-speech-link,
.hierarch-contact > summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 3.9rem;
	padding: 0.85rem 0.15rem;
	border-bottom: 1px solid rgba(108, 90, 62, 0.2);
	color: var(--impc-ink);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.9rem;
	line-height: 1.3;
	text-decoration: none;
}

.hierarch-speech-link {
	background: transparent;
	transition: color 180ms ease;
}

.hierarch-speech-link:hover,
.hierarch-speech-link:focus-visible {
	background: transparent;
	color: var(--impc-burgundy);
}

.hierarch-speech-link i,
.hierarch-contact > summary i {
	color: var(--impc-gold-soft);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 1rem;
	font-style: normal;
}

.hierarch-contact {
	border: 0;
	background: transparent;
}

.hierarch-contact > summary {
	background: transparent;
	cursor: pointer;
	list-style: none;
}

.hierarch-contact > summary:hover,
.hierarch-contact > summary:focus-visible,
.hierarch-contact[open] > summary {
	color: var(--impc-blue);
}

.hierarch-contact > summary::-webkit-details-marker {
	display: none;
}

.hierarch-contact[open] > summary i {
	transform: rotate(45deg);
}

.hierarch-contact__body {
	padding: 1.15rem 0 0;
	border: 0;
	background: transparent;
}

.hierarch-contact__notice {
	margin: 0 0 1rem;
	padding: 0.8rem 0.9rem;
	font-size: 0.76rem;
	line-height: 1.45;
}

.hierarch-contact__notice.is-success {
	background: #e7f2e9;
	color: #24542e;
}

.hierarch-contact__notice.is-error {
	background: #f6e8e8;
	color: #7b2430;
}

.hierarch-contact__form {
	display: grid;
	gap: 0.9rem;
}

.hierarch-contact__form > label:not(.hierarch-contact__consent) {
	display: grid;
	gap: 0.32rem;
}

.hierarch-contact__form label > span {
	color: var(--impc-ink-soft);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.6rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.45;
	text-transform: uppercase;
}

.hierarch-contact__form input[type="text"],
.hierarch-contact__form input[type="email"],
.hierarch-contact__form textarea {
	width: 100%;
	padding: 0.72rem 0.75rem;
	border: 1px solid #d8cbb7;
	border-radius: 0;
	background: rgba(255, 255, 255, 0.58);
	color: var(--impc-ink);
	font: inherit;
	font-size: 0.82rem;
}

.hierarch-contact__form textarea {
	min-height: 8rem;
	resize: vertical;
}

.hierarch-contact__form input:focus,
.hierarch-contact__form textarea:focus {
	border-color: var(--impc-gold);
	outline: 2px solid rgba(184, 139, 67, 0.18);
	outline-offset: 0;
}

.hierarch-contact__consent {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: start;
	gap: 0.55rem;
}

.hierarch-contact__consent input {
	margin-top: 0.18rem;
}

.hierarch-contact__consent span {
	font-size: 0.55rem !important;
	font-weight: 400 !important;
	letter-spacing: 0 !important;
	line-height: 1.55 !important;
	text-transform: none !important;
}

.hierarch-contact__website {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

.hierarch-contact__form button {
	width: 100%;
	padding: 0.85rem 1rem;
	border: 1px solid rgba(124, 38, 53, 0.72);
	background: transparent;
	color: var(--impc-burgundy);
	font: inherit;
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	cursor: pointer;
}

.hierarch-contact__form button:hover,
.hierarch-contact__form button:focus-visible {
	background: var(--impc-burgundy);
	color: #fff;
}

.hierarch-biography__content {
	max-width: 48rem;
	color: #4e4b44;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1rem, 1.12vw, 1.11rem);
	line-height: 1.88;
}

.hierarch-biography__content > h2 {
	margin: 0.35rem 0 1.25rem;
	color: var(--impc-ink);
	font-size: clamp(2.55rem, 3.3vw, 3.8rem);
	font-weight: 400;
	line-height: 1.02;
	letter-spacing: -0.052em;
}

.hierarch-biography__content .ornament {
	margin-bottom: 2rem;
}

.hierarch-biography__content div {
	text-align: left !important;
}

.hierarch-biography__content p {
	margin: 0 0 1.35rem;
}

.hierarch-biography__content p:first-of-type {
	color: var(--impc-ink);
	font-size: clamp(1.16rem, 1.35vw, 1.32rem);
	line-height: 1.72;
}

.predecessor-feature {
	padding: 0;
	background: #0b2a3f;
}

.predecessor-feature__frame {
	position: relative;
	display: grid;
	grid-template-columns: minmax(17rem, 27vw) minmax(24rem, 1fr) 5rem;
	align-items: stretch;
	width: 100%;
	min-height: 0;
	margin: 0;
	background:
		radial-gradient(circle at 75% 15%, rgba(49, 91, 115, 0.36), transparent 25rem),
		linear-gradient(120deg, #0b2a3f, #123c54);
	box-shadow: none;
	color: #fff;
	overflow: hidden;
}

.predecessor-feature__frame::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--impc-asset-4f4a25aec0f5, url("assets/images/metropolis-mosaic-emblem-v2.webp")) 88% 52% / 52rem auto no-repeat;
	opacity: 0.085;
	pointer-events: none;
}

.predecessor-feature__portrait {
	position: relative;
	z-index: 1;
	margin: 0;
	background: rgba(4, 20, 31, 0.38);
}

.predecessor-feature__portrait::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, transparent 70%, rgba(11, 42, 63, 0.86) 100%),
		linear-gradient(180deg, transparent 65%, rgba(11, 42, 63, 0.72) 100%);
}

.predecessor-feature__portrait img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
	filter: sepia(0.08) saturate(0.72) contrast(1.04);
}

.predecessor-feature__copy {
	position: relative;
	z-index: 2;
	align-self: center;
	width: min(100%, 50rem);
	max-width: none;
	padding: clamp(2rem, 2.6vw, 2.8rem) clamp(2.4rem, 4vw, 4.8rem);
}

.predecessor-feature__copy .eyebrow {
	color: var(--impc-gold-soft);
}

.predecessor-feature__copy h2 {
	margin: 0.45rem 0 0.6rem;
	font-size: clamp(2.65rem, 3.4vw, 4.1rem);
	font-weight: 400;
	line-height: 1.02;
	letter-spacing: -0.055em;
}

.predecessor-feature__office {
	margin: 0 0 1.65rem;
	color: var(--impc-gold-soft);
	font-family: Georgia, serif;
	font-size: 1.02rem;
}

.predecessor-feature__copy > p:not(.eyebrow):not(.predecessor-feature__office) {
	max-width: 37rem;
	margin: 0 0 2rem;
	color: rgba(233, 239, 241, 0.78);
	font-family: Georgia, serif;
	line-height: 1.78;
}

.predecessor-feature__dates {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 4.8rem;
	border-left: 1px solid rgba(217, 189, 131, 0.24);
	color: var(--impc-gold-soft);
	flex-direction: column;
	font-family: Georgia, serif;
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	writing-mode: vertical-rl;
}

.predecessor-feature__dates i {
	display: block;
	width: 1px;
	height: 5rem;
	margin: 1rem 0;
	background: linear-gradient(transparent, var(--impc-gold-soft), transparent);
}

/* Dedicated predecessor biography. */
.predecessor-profile__hero-grid {
	display: grid;
	grid-template-columns: minmax(25rem, 1fr) minmax(17rem, 0.58fr) minmax(13rem, 0.42fr);
	align-items: stretch;
	min-height: 690px;
}

.predecessor-profile__intro {
	position: relative;
	z-index: 2;
	align-self: center;
	padding: clamp(4rem, 7vw, 7rem) 2rem 4rem 0;
}

.predecessor-profile__office {
	margin: 0 0 0.75rem;
	color: rgba(237, 241, 242, 0.8);
	font-family: Georgia, serif;
}

.predecessor-profile__status {
	margin: 1.15rem 0 0;
	color: var(--impc-gold-soft);
	font-family: Georgia, serif;
	font-size: 1.04rem;
}

.predecessor-profile__portrait {
	position: relative;
	z-index: 2;
	align-self: end;
	height: 94%;
	margin: 0;
}

.predecessor-profile__portrait::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 74%, #0d334b 100%);
	pointer-events: none;
}

.predecessor-profile__portrait img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center bottom;
	filter: sepia(0.08) saturate(0.76) contrast(1.03);
}

.predecessor-profile__facts {
	position: relative;
	z-index: 2;
	align-self: center;
	margin: 0;
	border-top: 1px solid rgba(217, 189, 131, 0.28);
}

.predecessor-profile__facts > div {
	padding: 1rem 0;
	border-bottom: 1px solid rgba(217, 189, 131, 0.28);
}

.predecessor-profile__life {
	padding: clamp(5rem, 9vw, 9rem) 0;
	background: linear-gradient(180deg, #fffdf9, #f7f0e5);
}

.predecessor-profile__life-grid {
	display: grid;
	grid-template-columns: minmax(18rem, 0.72fr) minmax(0, 1.28fr);
	align-items: start;
	gap: clamp(3.5rem, 7vw, 7rem);
}

.predecessor-profile__life-heading {
	position: sticky;
	top: 2rem;
}

.predecessor-profile__life-heading h2 {
	max-width: 10ch;
	margin: 0.5rem 0 1.5rem;
	font-size: clamp(2.55rem, 3.2vw, 3.8rem);
	font-weight: 400;
	line-height: 1.03;
	letter-spacing: -0.05em;
}

.predecessor-profile__content {
	max-width: 48rem;
	color: #4d4a43;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1rem, 1.1vw, 1.1rem);
	line-height: 1.9;
}

.predecessor-profile__content div,
.predecessor-profile__content p {
	text-align: left !important;
}

.predecessor-profile__content p {
	margin: 0 0 1.4rem;
}

.predecessor-profile__content p:first-child {
	color: var(--impc-ink);
	font-size: clamp(1.18rem, 1.45vw, 1.38rem);
	line-height: 1.75;
}

.predecessor-profile__content blockquote {
	margin: 2.6rem 0;
	padding: 1.5rem 0 1.5rem 2rem;
	border-left: 3px solid var(--impc-gold);
	color: var(--impc-blue);
	font-size: 1.08em;
}

.historical-gallery {
	padding: clamp(4.5rem, 8vw, 8rem) 0;
	background: #0b2b40;
	color: #fff;
}

.historical-gallery__heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 2rem;
	margin-bottom: 2.5rem;
}

.historical-gallery__heading .eyebrow {
	color: var(--impc-gold-soft);
}

.historical-gallery__heading h2 {
	max-width: 16ch;
	margin: 0.35rem 0 0;
	font-size: clamp(2.25rem, 3vw, 3.4rem);
	font-weight: 400;
	line-height: 1.04;
	letter-spacing: -0.045em;
}

.historical-gallery__heading > a {
	color: var(--impc-gold-soft);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
}

.historical-gallery__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-flow: dense;
	grid-auto-rows: 13.5rem;
	gap: 0.55rem;
}

.historical-gallery__item {
	position: relative;
	color: #fff;
	overflow: hidden;
}

.historical-gallery__item--1,
.historical-gallery__item--6 {
	grid-column: span 2;
	grid-row: span 2;
}

.historical-gallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: sepia(0.12) saturate(0.78) contrast(1.04);
	transition: filter 350ms ease, transform 650ms ease;
}

.historical-gallery__item::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 58%, rgba(3, 16, 25, 0.86));
}

.historical-gallery__item span {
	position: absolute;
	z-index: 1;
	right: 0.8rem;
	bottom: 0.65rem;
	left: 0.8rem;
	font-family: Georgia, serif;
	font-size: 0.72rem;
	line-height: 1.3;
}

.historical-gallery__item:hover img {
	filter: sepia(0) saturate(0.95) contrast(1.03);
	transform: scale(1.035);
}

.historical-gallery__empty {
	padding: 2rem;
	border: 1px solid rgba(217, 189, 131, 0.28);
	color: rgba(237, 241, 242, 0.72);
}

@media (max-width: 1020px) {
	.hierarch-biography__grid {
		gap: 3.5rem;
	}

	.predecessor-feature__frame {
		grid-template-columns: minmax(14rem, 0.55fr) minmax(0, 1.45fr);
	}

	.predecessor-feature__dates {
		display: none;
	}

	.predecessor-profile__hero-grid {
		grid-template-columns: minmax(23rem, 1fr) minmax(15rem, 0.6fr);
	}

	.predecessor-profile__facts {
		grid-column: 1 / -1;
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		align-self: end;
	}

	.predecessor-profile__facts > div {
		padding: 1rem;
		border-top: 1px solid rgba(217, 189, 131, 0.28);
	}

	.predecessor-profile__facts > div + div {
		border-left: 1px solid rgba(217, 189, 131, 0.28);
	}
}

@media (max-width: 720px) {
	.predecessor-profile__hero-grid {
		grid-template-columns: 1fr;
		min-height: 0;
	}

	.predecessor-profile__intro {
		padding: 3.5rem 0 2.2rem;
	}

	.predecessor-profile__hero h1 {
		font-size: clamp(2.85rem, 13vw, 3.8rem);
	}

	.hierarch-biography__grid,
	.predecessor-profile__life-grid {
		grid-template-columns: 1fr;
		gap: 3rem;
	}

	.hierarch-biography__aside,
	.predecessor-profile__life-heading {
		position: static;
	}

	.hierarch-biography__content > h2,
	.predecessor-profile__life-heading h2 {
		font-size: clamp(2.35rem, 10vw, 3.15rem);
	}

	.predecessor-feature__frame {
		grid-template-columns: 1fr;
	}

	.predecessor-feature__portrait {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		opacity: 0.3;
		pointer-events: none;
	}

	.predecessor-feature__portrait::after {
		background:
			linear-gradient(90deg, rgba(11, 42, 63, 0.16), #0b2a3f 78%),
			linear-gradient(180deg, transparent 45%, rgba(11, 42, 63, 0.82) 100%);
	}

	.predecessor-feature__copy {
		padding: 2.25rem 1.35rem 2.8rem;
	}

	.predecessor-feature__copy h2 {
		font-size: clamp(2.4rem, 10vw, 3.2rem);
	}

	.predecessor-profile__portrait {
		grid-row: 2;
		height: 33rem;
	}

	.predecessor-profile__facts {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.predecessor-profile__facts > div:nth-child(3) {
		border-left: 0;
	}

	.predecessor-profile__life-heading h2 {
		max-width: 12ch;
	}

	.historical-gallery__heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.historical-gallery__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-auto-rows: 10.5rem;
	}

	.historical-gallery__item--1,
	.historical-gallery__item--6 {
		grid-column: span 2;
		grid-row: span 2;
	}
}

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

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background:
		radial-gradient(circle at 10% 20%, rgba(193, 164, 111, 0.08), transparent 25rem),
		var(--impc-paper);
	color: var(--impc-ink);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 1rem;
	line-height: 1.65;
	text-rendering: optimizeLegibility;
}

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

a {
	color: var(--impc-burgundy);
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.18em;
}

a:hover {
	color: var(--impc-burgundy-dark);
}

a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
textarea:focus-visible {
	outline: 3px solid var(--impc-gold);
	outline-offset: 3px;
}

h1,
h2,
h3,
h4 {
	font-family: Palatino, "Palatino Linotype", "Book Antiqua", Georgia, serif;
	font-weight: 500;
	line-height: 1.14;
	text-wrap: balance;
}

h1 {
	font-size: clamp(2rem, 4vw, 3.7rem);
}

h2 {
	font-size: clamp(1.8rem, 3.2vw, 2.7rem);
}

h3 {
	font-size: clamp(1.16rem, 2vw, 1.55rem);
}

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

.skip-link {
	position: fixed;
	top: 0.75rem;
	left: 0.75rem;
	z-index: 1000;
	padding: 0.7rem 1rem;
	background: var(--impc-white);
	color: var(--impc-ink);
	font-weight: 700;
}

.site-width {
	width: min(calc(100% - 2rem), var(--impc-wide));
	margin-inline: auto;
}

/* A restrained liturgical line above the visual masthead. */
.liturgical-topbar {
	position: relative;
	z-index: 12;
	min-height: 2.65rem;
	border-bottom: 1px solid rgba(216, 185, 124, 0.48);
	background: linear-gradient(90deg, rgba(7, 37, 56, 0.99), rgba(13, 49, 73, 0.97) 55%, rgba(18, 58, 80, 0.95));
	box-shadow: 0 5px 18px rgba(34, 31, 24, 0.09);
	color: rgba(255, 253, 248, 0.9);
}

.liturgical-topbar::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(217, 189, 131, 0.62), transparent);
}

.liturgical-topbar__inner {
	display: grid;
	grid-template-columns: auto 1px auto minmax(0, 1fr) auto;
	align-items: center;
	gap: clamp(0.75rem, 1.35vw, 1.25rem);
	min-height: 2.65rem;
}

.liturgical-topbar p {
	margin: 0;
}

.liturgical-topbar__date,
.liturgical-topbar__old-date {
	display: flex;
	align-items: baseline;
	gap: 0.45rem;
	white-space: nowrap;
}

.liturgical-topbar__date span,
.liturgical-topbar__old-date span {
	color: #d9bd83;
	font-size: 0.58rem;
	font-weight: 700;
	letter-spacing: 0.085em;
	text-transform: uppercase;
}

.liturgical-topbar__date strong,
.liturgical-topbar__old-date strong {
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.76rem;
	font-weight: 400;
}

.liturgical-topbar__divider {
	width: 1px;
	height: 1.1rem;
	background: linear-gradient(180deg, transparent, rgba(217, 189, 131, 0.62), transparent);
}

.liturgical-topbar__feast {
	min-width: 0;
	overflow: hidden;
	color: rgba(255, 253, 248, 0.92);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.82rem;
	line-height: 1.2;
	text-align: right;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.liturgical-topbar__cross {
	color: rgba(217, 189, 131, 0.82);
	font-size: 1rem;
	line-height: 1;
}

/* Header: the official seal remains clear while the mosaic dissolves around it. */
.site-header {
	position: relative;
	min-height: 220px;
	overflow: visible;
}

/* A restrained lower lift separates every internal masthead from the page content. */
body:not(.home) .site-header,
body:not(.home) .metropolis-hub__hero,
body:not(.home) .single-story__hero,
body:not(.home) .predecessor-profile__hero {
	z-index: 4;
	box-shadow:
		0 3px 7px -5px rgba(4, 18, 28, 0.44),
		0 15px 28px -24px rgba(4, 18, 28, 0.62);
}

.masthead-art {
	position: absolute;
	inset: 0 0 auto;
	height: clamp(540px, 50vw, 720px);
	background-color: #f3ecdf;
	background-image: var(--impc-asset-911e689cb722, url("assets/images/header-mosaic.webp"));
	background-repeat: no-repeat;
	background-position: center top;
	background-size: max(1480px, 100%) auto;
	pointer-events: none;
}

.masthead-art::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(250, 246, 239, 0.02) 48%, rgba(246, 241, 231, 0.38) 72%, var(--impc-paper) 100%),
		linear-gradient(90deg, rgba(248, 243, 234, 0.36) 0%, transparent 38%, transparent 82%, rgba(248, 243, 234, 0.1) 100%);
}

.masthead__inner {
	position: relative;
	z-index: 1;
	min-height: 220px;
	padding-top: clamp(2rem, 4.5vw, 4rem);
}

.brand-lockup {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	width: min(47%, 590px);
}

.brand-mark {
	flex: 0 0 112px;
	text-decoration: none;
}

.brand-mark img {
	width: 112px;
	height: 112px;
	object-fit: contain;
	filter: grayscale(1) sepia(0.18) contrast(1.12) drop-shadow(0 3px 3px rgba(58, 42, 22, 0.23));
}

.brand-copy {
	min-width: 0;
}

.site-title {
	max-width: 34rem;
	margin: 0;
	font-family: Palatino, "Palatino Linotype", "Book Antiqua", Georgia, serif;
	font-size: clamp(1.05rem, 1.7vw, 1.58rem);
	font-weight: 600;
	line-height: 1.22;
	letter-spacing: -0.035em;
	text-transform: uppercase;
}

.site-title a {
	color: #7f6b4c;
	text-decoration: none;
	text-shadow: -1px -1px 0 rgba(255, 255, 255, 0.88), 1px 1px 1px rgba(87, 65, 34, 0.38);
}

.site-description {
	margin: 0.55rem 0 0;
	color: #555a5b;
	font-size: 0.78rem;
	font-weight: 300;
}

.site-main {
	position: relative;
	z-index: 2;
}

/* Layered homepage opening. */
.home-intro {
	position: relative;
	isolation: isolate;
	margin-top: 0;
	padding: clamp(0.75rem, 1.4vw, 1.15rem) 0 0;
	background:
		linear-gradient(180deg, rgba(250, 247, 241, 0.96), rgba(246, 241, 231, 0.99) 54%, var(--impc-paper) 100%);
	overflow: visible;
}

.home-intro::before {
	content: "";
	position: absolute;
	z-index: 0;
	inset: 0 0 auto;
	height: calc(100% - 5.6rem);
	background-image: var(--impc-asset-911e689cb722, url("assets/images/header-mosaic.webp"));
	background-repeat: no-repeat;
	background-position: center -220px;
	background-size: max(1480px, 100%) auto;
	opacity: 0.9;
	-webkit-mask-image: linear-gradient(180deg, #000 0%, #000 72%, rgba(0, 0, 0, 0.82) 82%, rgba(0, 0, 0, 0.58) 93%, rgba(0, 0, 0, 0.42) 100%);
	mask-image: linear-gradient(180deg, #000 0%, #000 72%, rgba(0, 0, 0, 0.82) 82%, rgba(0, 0, 0, 0.58) 93%, rgba(0, 0, 0, 0.42) 100%);
	pointer-events: none;
}

.home-intro::after {
	content: "";
	position: absolute;
	z-index: 0;
	inset: 0;
	background:
		radial-gradient(ellipse 32% 52% at 46% 34%, rgba(255, 255, 255, 0.36), transparent 100%),
		linear-gradient(90deg, rgba(231, 220, 199, 0.18), transparent 21%, transparent 100%);
	pointer-events: none;
}

/*
 * Desktop opening: one continuous, viewport-aware mosaic surface.
 * The portal bar closes the first visible screen instead of leaving a loose
 * strip beneath it. Its height remains fluid for shorter laptop displays.
 */
@media (min-width: 1101px) {
	body.home {
		--impc-opening-topbar: calc(2.65rem + 1px);
		--impc-opening-header: clamp(10.625rem, 23svh, 13.75rem);
		--impc-opening-nav: clamp(4.6rem, 9.4svh, 5.6rem);
	}

	body.home .site-header,
	body.home .masthead__inner {
		min-height: var(--impc-opening-header);
	}

	.masthead-art {
		height: calc(100svh - var(--impc-opening-topbar) - var(--impc-opening-nav) + 2px);
		background-size: cover;
	}

	.home-intro {
		display: flex;
		height: calc(100svh - var(--impc-opening-topbar) - var(--impc-opening-header));
		min-height: 0;
		flex-direction: column;
		background: transparent;
	}

	.home-intro::before {
		display: none;
	}

	.home-intro__inner {
		display: flex;
		height: 100%;
		min-height: 0;
		flex: 0 0 100%;
		flex-direction: column;
	}

	body.home .home-hero {
		height: auto;
		min-height: 0;
		flex: 1 1 0;
	}

	body.home .portal-nav {
		flex: 0 0 var(--impc-opening-nav);
		margin-top: 0;
		border-top: 0;
		background:
			linear-gradient(180deg, rgba(232, 220, 198, 0.9) 0%, rgba(235, 222, 199, 0.98) 16%, #e4d4b8 100%),
			linear-gradient(90deg, #e4d6bd 0%, #efe4d0 36%, #e9dcc5 66%, #e1d1b6 100%);
		box-shadow:
			inset 0 1px 0 rgba(255, 255, 255, 0.46),
			0 8px 22px rgba(75, 55, 30, 0.06);
	}

	body.home .portal-nav > a {
		min-height: var(--impc-opening-nav);
	}
}

.home-intro__inner {
	position: relative;
	z-index: 1;
}

.home-hero {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 58%) minmax(24rem, 42%);
	align-items: stretch;
	height: clamp(455px, 33vw, 495px);
	min-height: 0;
	overflow: visible;
}

.home-hero::after {
	content: "";
	position: absolute;
	right: 1.5rem;
	bottom: 0;
	width: 42%;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(184, 139, 67, 0.72), transparent);
}

.home-hero__media {
	position: relative;
	z-index: 1;
	height: 100%;
	min-height: 0;
	margin: 0;
	margin-left: clamp(-4.5rem, -4vw, -2rem);
	background: transparent;
	transform: translateY(-3.2rem);
	overflow: visible;
}

.home-hero__media a,
.home-hero__media img,
.image-placeholder {
	display: block;
	width: 100%;
	height: 100%;
}

.home-hero__media img {
	object-fit: cover;
	-webkit-mask-image: radial-gradient(ellipse 69% 76% at 43% 48%, #000 54%, rgba(0, 0, 0, 0.86) 72%, transparent 100%);
	mask-image: radial-gradient(ellipse 69% 76% at 43% 48%, #000 54%, rgba(0, 0, 0, 0.86) 72%, transparent 100%);
	transition: transform 700ms ease;
}

.home-hero:hover .home-hero__media img {
	transform: scale(1.018);
}

.image-placeholder {
	display: grid;
	place-items: center;
	min-height: inherit;
	background:
		radial-gradient(circle at 50% 45%, rgba(185, 142, 67, 0.25), transparent 16rem),
		linear-gradient(145deg, #13364b, #0a2335);
	color: rgba(211, 177, 112, 0.45);
	font-family: Georgia, serif;
	font-size: clamp(3rem, 8vw, 7rem);
}

.image-placeholder > span {
	padding: 0.4em;
	border: 1px solid rgba(211, 177, 112, 0.35);
	border-radius: 50%;
}

.home-hero__content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	margin-left: clamp(-8.5rem, -8vw, -5rem);
	padding: clamp(2rem, 3vw, 3.2rem) clamp(1.2rem, 2.5vw, 2.8rem) clamp(2rem, 3vw, 3.2rem) clamp(6.5rem, 9vw, 10rem);
	background:
		radial-gradient(ellipse 88% 66% at 54% 59%, rgba(255, 253, 249, 0.9) 0%, rgba(246, 241, 231, 0.7) 54%, rgba(246, 241, 231, 0.18) 76%, transparent 100%);
}

.home-hero__content::after {
	content: "✥";
	position: absolute;
	right: 1.3rem;
	bottom: 0;
	color: rgba(174, 132, 63, 0.09);
	font-family: Georgia, serif;
	font-size: 7rem;
	line-height: 1;
}

.eyebrow {
	margin: 0 0 0.65rem;
	color: var(--impc-burgundy);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.085em;
	text-transform: uppercase;
}

.home-hero__title {
	position: relative;
	z-index: 1;
	margin: 0;
	font-size: clamp(2.1rem, 3vw, 3.15rem);
	letter-spacing: -0.025em;
}

.home-hero__title a,
.news-layout h3 a,
.archive-ribbon h3 a {
	color: var(--impc-ink);
	text-decoration: none;
}

.home-hero__title a:hover,
.news-layout h3 a:hover,
.archive-ribbon h3 a:hover {
	color: var(--impc-burgundy);
}

.ornament {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	width: 3.5rem;
	height: 1rem;
	margin: 0.75rem 0 0.25rem;
}

.ornament::before,
.ornament::after {
	content: "";
	width: 0.45rem;
	height: 0.45rem;
	border: 1px solid var(--impc-gold);
	transform: rotate(45deg);
}

.ornament span {
	width: 1.8rem;
	height: 1px;
	background: var(--impc-gold);
}

.ornament--gold::before,
.ornament--gold::after {
	border-color: var(--impc-gold-soft);
}

.ornament--gold span {
	background: var(--impc-gold-soft);
}

.meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem 1rem;
	margin: 0.65rem 0;
	color: var(--impc-ink-soft);
	font-size: 0.78rem;
}

.home-hero__excerpt {
	position: relative;
	z-index: 1;
	color: #514e47;
	font-size: 0.93rem;
}

.home-hero__excerpt p {
	margin: 0;
}

.button-link {
	position: relative;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 0.55rem;
	margin-top: 1.15rem;
	padding: 0.78rem 1.05rem;
	border: 1px solid var(--impc-burgundy);
	background: var(--impc-burgundy);
	color: #fff;
	font-size: 0.73rem;
	font-weight: 700;
	letter-spacing: 0.025em;
	text-decoration: none;
	text-transform: uppercase;
	transition: background 180ms ease, color 180ms ease, transform 180ms ease;
}

.button-link:hover {
	background: var(--impc-burgundy-dark);
	color: #fff;
	transform: translateY(-1px);
}

.button-link--light {
	border-color: rgba(124, 38, 53, 0.38);
	background: transparent;
	color: var(--impc-burgundy);
}

.button-link--light:hover {
	border-color: var(--impc-burgundy);
}

.button-link--outline {
	border-color: var(--impc-gold);
	background: transparent;
	color: #f1d69e;
}

.button-link--outline:hover {
	background: var(--impc-gold);
	color: #0b2d42;
}

.portal-nav {
	position: relative;
	z-index: 3;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 17rem));
	justify-content: center;
	width: 100vw;
	margin: 0.25rem calc(50% - 50vw) 0;
	border-top: 1px solid rgba(163, 120, 54, 0.56);
	border-bottom: 1px solid rgba(163, 120, 54, 0.56);
	background: linear-gradient(90deg, #e4d6bd 0%, #efe4d0 36%, #e9dcc5 66%, #e1d1b6 100%);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7), 0 8px 22px rgba(75, 55, 30, 0.06);
}

.portal-nav > a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.9rem;
	min-height: 5.6rem;
	padding: 0.8rem 1rem;
	color: var(--impc-ink);
	text-decoration: none;
	transition: background 180ms ease, transform 180ms ease;
}

.portal-nav > a + a {
	border-left: 1px solid var(--impc-line);
}

.portal-nav > a:hover {
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.66), rgba(246, 238, 224, 0.46));
	transform: translateY(-1px);
}

.portal-nav svg {
	flex: 0 0 34px;
	width: 34px;
	height: 34px;
	fill: none;
	stroke: var(--impc-gold);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.4;
}

.portal-nav span {
	display: flex;
	min-width: 0;
	flex-direction: column;
}

.portal-nav strong {
	font-family: Georgia, serif;
	font-size: 1rem;
	font-weight: 500;
}

.portal-nav small {
	color: var(--impc-ink-soft);
	font-size: 0.69rem;
}

/* Editorial news hierarchy. */
.section {
	padding: clamp(3.2rem, 6vw, 5.8rem) 0;
}

.section--news {
	position: relative;
	background:
		radial-gradient(circle at 86% 12%, rgba(184, 139, 67, 0.08), transparent 24rem),
		linear-gradient(180deg, rgba(255, 255, 255, 0.84), #fff 45%, rgba(249, 245, 237, 0.9));
}

.section--news::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: min(calc(100% - 2rem), var(--impc-wide));
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(184, 139, 67, 0.42), transparent);
	transform: translateX(-50%);
}

.section-heading {
	display: flex;
	align-items: end;
	gap: 0.8rem;
	margin-bottom: 1.4rem;
}

.section-heading h1,
.section-heading h2 {
	margin: 0;
}

.section-heading::after {
	content: "";
	width: 2rem;
	height: 1px;
	margin-bottom: 0.38rem;
	background: var(--impc-gold);
}

.section-heading--split {
	justify-content: space-between;
}

.section-heading--split::after {
	display: none;
}

.section-heading--split > a {
	font-size: 0.72rem;
	font-weight: 700;
	text-decoration: none;
	text-transform: uppercase;
}

.news-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.9fr) minmax(16rem, 0.76fr);
	gap: 1rem;
}

.news-lead,
.spotlight-card,
.compact-news {
	border: 1px solid var(--impc-line);
	background: var(--impc-white);
	box-shadow: 0 8px 24px rgba(65, 47, 25, 0.055);
}

.news-lead__image {
	display: block;
	height: 245px;
	overflow: hidden;
	background: #d8d0c4;
}

.news-lead__image img,
.spotlight-card__image img,
.compact-news__image img,
.archive-ribbon article > a img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 250ms ease;
}

.news-lead__image:hover img,
.spotlight-card__image:hover img,
.compact-news__image:hover img {
	transform: scale(1.025);
}

.news-lead__body {
	padding: 1.35rem 1.4rem 1.55rem;
}

.news-lead h3 {
	margin: 0;
	font-size: clamp(1.4rem, 2.2vw, 2rem);
}

.news-lead__excerpt {
	color: var(--impc-ink-soft);
	font-size: 0.85rem;
}

.news-lead__excerpt p {
	margin: 0;
}

.text-link {
	display: inline-block;
	margin-top: 0.8rem;
	font-size: 0.68rem;
	font-weight: 700;
	text-decoration: none;
	text-transform: uppercase;
}

.news-spotlights {
	display: grid;
	grid-template-rows: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.spotlight-card {
	position: relative;
	min-height: 250px;
	overflow: hidden;
}

.spotlight-card__image,
.spotlight-card__image img,
.spotlight-card__image .image-placeholder {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

.spotlight-card__overlay {
	position: absolute;
	inset: auto 0 0;
	padding: 3.3rem 1.15rem 1rem;
	background: linear-gradient(transparent, rgba(10, 15, 18, 0.92));
	color: #fff;
}

.spotlight-card__overlay p,
.spotlight-card__overlay time {
	margin: 0;
	color: #e3bd79;
	font-size: 0.65rem;
	font-weight: 700;
	text-transform: uppercase;
}

.spotlight-card__overlay h3 {
	margin: 0.25rem 0;
	font-size: 1.2rem;
}

.spotlight-card__overlay h3 a {
	color: #fff;
}

/* Photo-news link states: keep contrast over the dark photographic overlay. */
.news-layout .spotlight-card__overlay h3 a:hover,
.news-layout .spotlight-card__overlay h3 a:focus-visible {
	color: #fff5df;
	text-decoration: underline;
	text-decoration-color: #e3bd79;
	text-decoration-thickness: 1px;
	text-underline-offset: .18em;
	text-shadow: 0 1px 3px rgba(0, 0, 0, .55);
}

.news-layout .spotlight-card__overlay h3 a:focus-visible {
	outline-color: #fff5df;
}
/* End photo-news link states. */

.compact-news {
	display: flex;
	flex-direction: column;
	padding: 0.65rem 1rem;
}

.compact-news article {
	display: grid;
	grid-template-columns: 5.1rem minmax(0, 1fr);
	align-items: center;
	gap: 0.75rem;
	min-height: 0;
	flex: 1;
	padding: 0.7rem 0;
}

.compact-news article + article {
	border-top: 1px solid var(--impc-line);
}

.compact-news__image {
	display: block;
	height: 4.3rem;
	overflow: hidden;
	background: #ddd6cb;
}

.compact-news h3 {
	margin: 0;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.84rem;
	font-weight: 500;
	line-height: 1.32;
}

.compact-news time {
	color: var(--impc-ink-soft);
	font-size: 0.64rem;
}

/* Deep blue institutional layer. */
.metropolis-panel {
	position: relative;
	overflow: hidden;
	background:
		repeating-linear-gradient(135deg, transparent 0 21px, rgba(255, 255, 255, 0.01) 22px, transparent 23px),
		radial-gradient(circle at 50% 44%, rgba(85, 132, 156, 0.32), transparent 18rem),
		radial-gradient(circle at 9% 18%, rgba(194, 151, 76, 0.09), transparent 25rem),
		linear-gradient(112deg, #06263b 0%, #0d3c56 52%, #082b42 100%);
	color: #e7edf0;
}

.metropolis-panel::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--impc-asset-b40627b9727a, url("assets/images/metropolis-mosaic.webp")) center 44% / cover no-repeat;
	filter: saturate(0.55) contrast(0.92);
	mix-blend-mode: screen;
	opacity: 0.16;
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0%, #000 12%, #000 88%, transparent 100%);
	pointer-events: none;
}

/* Trial treatment: the official emblem is laid into the mosaic itself. */
.metropolis-panel--mosaic-emblem::before {
	background-image: var(--impc-asset-4f4a25aec0f5, url("assets/images/metropolis-mosaic-emblem-v2.webp"));
	background-position: 54% 50%;
	background-size: clamp(54rem, 74vw, 76rem) auto;
	background-repeat: no-repeat;
	filter: saturate(0.72) contrast(0.9) brightness(0.92);
	mix-blend-mode: normal;
	opacity: 0.72;
	-webkit-mask-image: radial-gradient(
		ellipse 39rem 16.5rem at 54% 50%,
		#000 0%,
		#000 70%,
		rgba(0, 0, 0, 0.75) 78%,
		rgba(0, 0, 0, 0.25) 91%,
		transparent 100%
	);
	mask-image: radial-gradient(
		ellipse 39rem 16.5rem at 54% 50%,
		#000 0%,
		#000 70%,
		rgba(0, 0, 0, 0.75) 78%,
		rgba(0, 0, 0, 0.25) 91%,
		transparent 100%
	);
}

.metropolis-panel--mosaic-emblem .metropolis-panel__ornament {
	position: absolute;
	inset: 0;
	background: var(--impc-asset-b40627b9727a, url("assets/images/metropolis-mosaic.webp")) center 48% / cover no-repeat;
	filter: saturate(0.58) contrast(1.02) brightness(0.96);
	mix-blend-mode: screen;
	opacity: 0.29;
	pointer-events: none;
}

.metropolis-panel::after {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(217, 189, 131, 0.68), transparent);
	pointer-events: none;
}

.metropolis-panel__grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1.18fr) 18rem minmax(17rem, 0.8fr);
	align-items: center;
	gap: clamp(2rem, 4.6vw, 4.8rem);
	min-height: 520px;
	padding-block: clamp(3.6rem, 6vw, 5.6rem);
}

.metropolis-panel .eyebrow {
	color: var(--impc-gold-soft);
	font-size: 0.68rem;
	letter-spacing: 0.16em;
}

.metropolis-panel h2 {
	margin: 0.28rem 0 0;
	color: #fff;
	font-family: Palatino, "Palatino Linotype", "Book Antiqua", Georgia, serif;
	font-size: clamp(3.8rem, 5.8vw, 6.7rem);
	font-weight: 400;
	line-height: 0.88;
	letter-spacing: -0.065em;
	text-shadow: 0 8px 28px rgba(0, 0, 0, 0.2);
}

.metropolis-panel__intro .ornament {
	margin: 1.55rem 0 1.25rem;
}

.metropolis-panel__intro > p:last-of-type {
	max-width: 43rem;
	margin-bottom: 0;
	color: #cdd8dd;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(0.92rem, 1.05vw, 1.02rem);
	line-height: 1.78;
}

.metropolis-panel__intro .button-link {
	margin-top: 1.65rem;
}

.metropolis-panel__seal {
	position: relative;
	isolation: isolate;
	display: grid;
	place-items: center;
	align-content: center;
	width: 18rem;
	height: 21rem;
	margin-inline: auto;
	background: none;
}

.metropolis-panel__seal::before,
.metropolis-panel__seal::after {
	content: "";
	position: absolute;
	left: 50%;
	z-index: -1;
}

.metropolis-panel__seal::before {
	display: none;
}

.metropolis-panel__seal::after {
	bottom: 2.95rem;
	width: 9rem;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(217, 189, 131, 0.54), transparent);
	transform: translateX(-50%);
}

.metropolis-panel__seal-core {
	position: relative;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 14.6rem;
	height: 14.6rem;
	margin-top: -1.1rem;
}

.metropolis-panel__seal-core::before,
.metropolis-panel__seal-core::after {
	display: none;
}

.metropolis-panel__seal-core img {
	width: 12.4rem;
	height: 12.4rem;
	object-fit: contain;
	filter:
		invert(0.84)
		grayscale(1)
		sepia(0.12)
		brightness(0.86)
		contrast(0.88);
	opacity: 0.78;
}

.metropolis-panel--mosaic-emblem .metropolis-panel__seal-core img {
	opacity: 0;
}

.metropolis-panel__seal > span {
	position: relative;
	z-index: 3;
	max-width: 13rem;
	margin-top: 1.3rem;
	color: rgba(233, 216, 180, 0.84);
	font-size: 0.58rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	line-height: 1.5;
	text-align: center;
}

.metropolis-links {
	display: flex;
	flex-direction: column;
}

.metropolis-links > p {
	margin: 0 0 0.85rem;
	color: var(--impc-gold-soft);
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.metropolis-links a {
	display: grid;
	grid-template-columns: 2.7rem minmax(0, 1fr) 2rem;
	align-items: center;
	gap: 0.85rem;
	min-height: 5.6rem;
	padding: 0.8rem 0;
	border-bottom: 1px solid rgba(217, 189, 131, 0.25);
	color: #edf2f4;
	text-decoration: none;
	transition: padding 180ms ease, background 180ms ease;
}

.metropolis-links a:first-of-type {
	border-top: 1px solid rgba(217, 189, 131, 0.25);
}

.metropolis-links a:hover {
	padding-right: 0.5rem;
	padding-left: 0.5rem;
	background: linear-gradient(90deg, rgba(255, 255, 255, 0.025), rgba(217, 189, 131, 0.09));
}

.metropolis-links svg {
	width: 2.45rem;
	height: 2.45rem;
	fill: none;
	stroke: rgba(217, 189, 131, 0.88);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.25;
}

.metropolis-links a > span {
	display: flex;
	min-width: 0;
	flex-direction: column;
	gap: 0.2rem;
}

.metropolis-links a small {
	color: rgba(217, 189, 131, 0.7);
	font-size: 0.55rem;
	letter-spacing: 0.12em;
}

.metropolis-links a strong {
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(0.94rem, 1.12vw, 1.08rem);
	font-weight: 400;
	line-height: 1.3;
}

.metropolis-links a b {
	display: grid;
	place-items: center;
	width: 1.9rem;
	height: 1.9rem;
	border: 1px solid rgba(217, 189, 131, 0.35);
	border-radius: 50%;
	color: var(--impc-gold-soft);
	font-size: 0.78rem;
	font-weight: 400;
	transition: background 180ms ease, color 180ms ease, transform 180ms ease;
}

.metropolis-links a:hover b {
	background: var(--impc-gold-soft);
	color: #082b42;
	transform: translate(2px, -2px);
}

/* Reading room and map layer. */
.section--directory-map {
	position: relative;
	background:
		radial-gradient(circle at 85% 15%, rgba(196, 157, 87, 0.11), transparent 19rem),
		linear-gradient(180deg, #f8f4ec, #f3ecdf);
}

.sacred-guides {
	margin-bottom: clamp(4rem, 7vw, 6.5rem);
}

.sacred-guides__heading {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(18rem, 0.75fr);
	align-items: end;
	gap: clamp(2rem, 6vw, 6rem);
	margin-bottom: clamp(1.4rem, 3vw, 2.2rem);
}

.sacred-guides__heading h2,
.map-heading h2 {
	margin: 0;
}

.sacred-guides__heading h2 {
	max-width: 35rem;
	font-size: clamp(1.85rem, 3vw, 2.85rem);
	line-height: 1.02;
}

.sacred-guides__heading > p {
	max-width: 30rem;
	margin: 0;
	color: var(--impc-ink-soft);
	font-size: 0.86rem;
	line-height: 1.75;
}

.sacred-guides__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.32fr) minmax(23rem, 0.9fr);
	grid-template-rows: repeat(2, minmax(15.5rem, auto));
	gap: 1rem;
}

.sacred-guide {
	position: relative;
	display: grid;
	min-width: 0;
	border: 1px solid rgba(137, 103, 52, 0.44);
	background: rgba(255, 253, 249, 0.88);
	box-shadow: 0 14px 38px rgba(69, 50, 27, 0.09);
	overflow: hidden;
	isolation: isolate;
}

.sacred-guide::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 3;
	border: 1px solid rgba(255, 255, 255, 0.42);
	pointer-events: none;
}

.sacred-guide--history {
	grid-row: 1 / 3;
	grid-template-columns: minmax(16rem, 0.78fr) minmax(0, 1fr);
	min-height: 32rem;
}

.sacred-guide--compact {
	grid-template-columns: minmax(11.5rem, 0.82fr) minmax(0, 1fr);
}

.sacred-guide__media {
	position: relative;
	min-width: 0;
	margin: 0;
	overflow: hidden;
}

.sacred-guide__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, transparent 68%, rgba(255, 253, 249, 0.44)),
		linear-gradient(180deg, transparent 62%, rgba(21, 36, 44, 0.28));
	pointer-events: none;
}

.sacred-guide__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 420ms ease, filter 420ms ease;
}

.sacred-guide--history .sacred-guide__media img {
	object-position: 50% 18%;
	filter: sepia(0.08) contrast(1.04);
}

.sacred-guide:hover .sacred-guide__media img {
	transform: scale(1.025);
	filter: sepia(0.04) contrast(1.06);
}

.sacred-guide__media figcaption {
	position: absolute;
	right: 0.7rem;
	bottom: 0.55rem;
	z-index: 2;
	max-width: calc(100% - 1.4rem);
	font-size: 0.53rem;
	line-height: 1.35;
	text-align: right;
}

.sacred-guide__media figcaption a {
	color: rgba(255, 255, 255, 0.82);
	text-decoration: none;
}

.sacred-guide__content {
	position: relative;
	z-index: 1;
	display: flex;
	min-width: 0;
	flex-direction: column;
	justify-content: center;
	padding: clamp(1.35rem, 2.5vw, 2.5rem);
	background:
		linear-gradient(135deg, rgba(184, 139, 67, 0.06), transparent 42%),
		repeating-linear-gradient(45deg, transparent 0 13px, rgba(126, 101, 64, 0.018) 13px 14px);
}

.sacred-guide--history .sacred-guide__content::before {
	content: "☧";
	position: absolute;
	right: -0.2rem;
	bottom: -1.8rem;
	z-index: -1;
	color: rgba(164, 127, 70, 0.065);
	font-family: Georgia, serif;
	font-size: 10rem;
	line-height: 1;
	pointer-events: none;
}

.sacred-guide__number {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	margin: 0 0 0.75rem;
	color: #826b48;
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.sacred-guide__number span {
	display: grid;
	place-items: center;
	width: 1.65rem;
	height: 1.65rem;
	border: 1px solid rgba(184, 139, 67, 0.58);
	border-radius: 50%;
	color: var(--impc-burgundy);
	font-size: 0.58rem;
}

.sacred-guide h3 {
	margin: 0;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.35rem, 2vw, 2.15rem);
	font-weight: 500;
	line-height: 1.12;
	letter-spacing: -0.018em;
}

.sacred-guide--compact h3 {
	font-size: clamp(1.35rem, 1.7vw, 1.72rem);
}

.sacred-guide__content > p:not(.sacred-guide__number) {
	margin: 0.7rem 0 1.15rem;
	color: var(--impc-ink-soft);
	font-size: 0.77rem;
	line-height: 1.66;
}

.sacred-guide--history .sacred-guide__content > p:not(.sacred-guide__number) {
	font-size: 0.84rem;
	line-height: 1.78;
}

.sacred-guide__link {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	width: fit-content;
	margin-top: auto;
	padding-top: 0.8rem;
	border-top: 1px solid rgba(184, 139, 67, 0.42);
	color: var(--impc-burgundy);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-decoration: none;
	text-transform: uppercase;
}

.sacred-guide__link small {
	padding: 0.16rem 0.32rem;
	border: 1px solid rgba(124, 38, 53, 0.35);
	font-size: 0.5rem;
	line-height: 1;
}

.sacred-guide__link b {
	font-size: 0.9rem;
	font-weight: 400;
	transition: transform 180ms ease;
}

.sacred-guide__link:hover b,
.sacred-guide__link:focus-visible b {
	transform: translate(2px, -2px);
}

.map-heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 2rem;
	margin-bottom: 1.15rem;
	padding-top: clamp(2rem, 4vw, 3.5rem);
	border-top: 1px solid rgba(151, 116, 65, 0.3);
}

.map-heading > p {
	max-width: 32rem;
	margin: 0;
	color: var(--impc-ink-soft);
	font-size: 0.78rem;
	line-height: 1.65;
	text-align: right;
}

.map-panel {
	display: grid;
	grid-template-columns: minmax(0, 1.85fr) minmax(18rem, 0.72fr);
	min-height: 550px;
	border: 1px solid rgba(141, 104, 49, 0.55);
	border-radius: 0.45rem;
	background: #fffdf9;
	box-shadow: 0 20px 56px rgba(56, 43, 28, 0.14);
	overflow: hidden;
}

.map-panel__main {
	display: flex;
	min-width: 0;
	flex-direction: column;
}

.map-toolbar {
	position: relative;
	z-index: 500;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 72px;
	padding: 0.75rem 0.9rem;
	border-bottom: 1px solid rgba(159, 126, 72, 0.32);
	background:
		linear-gradient(90deg, rgba(249, 245, 236, 0.98), rgba(242, 234, 218, 0.98));
}

.map-filters {
	display: inline-flex;
	gap: 0.3rem;
	padding: 0.25rem;
	border: 1px solid rgba(139, 103, 50, 0.28);
	border-radius: 2rem;
	background: rgba(255, 255, 255, 0.68);
}

.map-filters button {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	min-height: 34px;
	padding: 0.35rem 0.7rem;
	border: 0;
	border-radius: 1.5rem;
	background: transparent;
	color: var(--impc-ink-soft);
	font: inherit;
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.025em;
	cursor: pointer;
	transition: background 180ms ease, color 180ms ease, box-shadow 180ms ease;
}

.map-filters button small {
	display: grid;
	width: 1.35rem;
	height: 1.35rem;
	place-items: center;
	border-radius: 50%;
	background: rgba(80, 67, 50, 0.1);
	font-size: 0.58rem;
}

.map-filters button:hover,
.map-filters button:focus-visible,
.map-filters button.is-active {
	background: var(--impc-burgundy);
	color: #fff;
	box-shadow: 0 4px 12px rgba(94, 28, 34, 0.2);
}

.map-filters button.is-active small {
	background: rgba(255, 255, 255, 0.18);
}

.map-select {
	display: grid;
	grid-template-columns: auto minmax(11rem, 17rem);
	align-items: center;
	gap: 0.65rem;
}

.map-select > span {
	color: var(--impc-ink-soft);
	font-size: 0.6rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.map-select select {
	width: 100%;
	height: 38px;
	padding: 0 2.2rem 0 0.75rem;
	border: 1px solid rgba(139, 103, 50, 0.34);
	border-radius: 0.2rem;
	background-color: rgba(255, 255, 255, 0.86);
	color: var(--impc-ink);
	font: inherit;
	font-size: 0.66rem;
}

.map-panel__canvas {
	position: relative;
	z-index: 1;
	flex: 1;
	min-height: 478px;
	background: #dce5e4;
	isolation: isolate;
}

.map-panel__canvas::after {
	content: "";
	position: absolute;
	z-index: 401;
	inset: 0;
	box-shadow: inset 0 0 46px rgba(50, 49, 42, 0.13);
	pointer-events: none;
}

.map-panel__loading {
	position: absolute;
	z-index: 450;
	inset: 0;
	display: grid;
	place-content: center;
	justify-items: center;
	gap: 0.75rem;
	background:
		radial-gradient(circle at center, rgba(255, 255, 255, 0.82), transparent 15rem),
		linear-gradient(145deg, #e9e3d7, #cad8da);
	color: #5d5c54;
	font-size: 0.67rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	transition: opacity 240ms ease;
}

.map-panel__canvas.is-ready .map-panel__loading {
	opacity: 0;
	pointer-events: none;
}

.map-panel__loading i {
	width: 1.8rem;
	height: 1.8rem;
	border: 2px solid rgba(102, 69, 39, 0.18);
	border-top-color: var(--impc-burgundy);
	border-radius: 50%;
	animation: impc-map-spin 700ms linear infinite;
}

@keyframes impc-map-spin {
	to { transform: rotate(360deg); }
}

.impc-map-marker-wrap {
	background: none;
	border: 0;
}

.impc-map-marker {
	position: relative;
	display: grid;
	width: 32px;
	height: 38px;
	place-items: center;
	border: 2px solid #fff9ef;
	border-radius: 50% 50% 50% 0;
	background: var(--impc-burgundy);
	box-shadow: 0 5px 13px rgba(47, 36, 27, 0.38);
	transform: rotate(-45deg);
	transition: transform 160ms ease, box-shadow 160ms ease;
}

.impc-map-marker i {
	position: relative;
	width: 12px;
	height: 16px;
	transform: rotate(45deg);
}

.impc-map-marker i::before,
.impc-map-marker i::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	background: #fff8e8;
	transform: translate(-50%, -50%);
}

.impc-map-marker i::before {
	width: 2px;
	height: 16px;
}

.impc-map-marker i::after {
	width: 11px;
	height: 2px;
	top: 43%;
}

.impc-map-marker--monastery {
	background: var(--impc-blue);
}

.impc-map-marker-wrap:hover .impc-map-marker,
.impc-map-marker-wrap.is-selected .impc-map-marker {
	box-shadow: 0 0 0 5px rgba(190, 150, 81, 0.3), 0 7px 18px rgba(47, 36, 27, 0.42);
	transform: rotate(-45deg) scale(1.12);
}

.leaflet-popup-content-wrapper {
	border-radius: 0.22rem;
	box-shadow: 0 10px 28px rgba(48, 36, 23, 0.2);
}

.leaflet-popup-content {
	display: grid;
	gap: 0.25rem;
	margin: 0.8rem 1rem;
	font-family: inherit;
	font-size: 0.74rem;
	line-height: 1.35;
}

.leaflet-popup-content strong {
	font-family: Georgia, serif;
	font-weight: 500;
}

.leaflet-popup-content span {
	color: var(--impc-ink-soft);
}

.leaflet-control-attribution {
	font-size: 9px;
}

.map-panel__details {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	padding: 0 1.35rem 1.35rem;
	border-left: 1px solid var(--impc-line);
	background:
		linear-gradient(180deg, #fffdf9 0%, #f8f2e7 100%);
}

.map-panel__media {
	position: relative;
	height: 178px;
	margin: 0 -1.35rem 1.25rem;
	overflow: hidden;
	background: #d9d0c0;
}

.map-panel__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 52%, rgba(37, 29, 20, 0.28));
	pointer-events: none;
}

.map-panel__details img,
.map-panel__image-placeholder {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.map-panel__image-placeholder {
	display: grid;
	place-items: center;
	background:
		radial-gradient(circle, rgba(194, 157, 86, 0.24), transparent 45%),
		linear-gradient(145deg, #253847, #132834);
	color: var(--impc-gold-soft);
}

.map-panel__image-placeholder[hidden] {
	display: none !important;
}

.map-panel__details img[hidden] {
	display: none !important;
}

.map-panel__image-placeholder span {
	font-family: Georgia, serif;
	font-size: 3.25rem;
	filter: drop-shadow(0 3px 8px rgba(0, 0, 0, 0.28));
}

.map-panel__details .eyebrow {
	margin-bottom: 0.4rem;
}

.map-panel__details h3 {
	margin: 0;
	font-size: 1.32rem;
	line-height: 1.25;
}

.map-panel__area {
	margin: 0.55rem 0 0;
	color: var(--impc-burgundy);
	font-size: 0.69rem;
	font-weight: 700;
}

.map-panel__contact {
	display: grid;
	gap: 0.55rem;
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--impc-line);
}

.map-panel__contact p,
.map-panel__contact a {
	margin: 0;
	color: var(--impc-ink-soft);
	font-size: 0.72rem;
	line-height: 1.5;
}

.map-panel__contact [data-map-contact] {
	white-space: pre-line;
}

.map-clergy { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: .75rem; align-items: start; }
.map-clergy img { width: 48px; height: 60px; object-fit: cover; border-radius: 2px; }
.map-panel__loading[hidden], [data-map-fallback][hidden] { display: none !important; }
[data-map-fallback] { padding: 1.5rem; font-size: .85rem; line-height: 1.6; }
.map-panel__details.is-empty { visibility: hidden; }
.map-empty { position: absolute; z-index: 450; inset: auto 1rem 1rem; padding: 1rem; background: #fffdf9; color: var(--impc-ink); box-shadow: 0 4px 20px #0002; font-size: .85rem; line-height: 1.5; }
.map-empty[hidden] { display: none !important; }

.map-panel__contact a {
	width: fit-content;
	color: var(--impc-burgundy);
	font-weight: 800;
	text-decoration: none;
}

.map-panel__actions {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	gap: 0.7rem;
	margin-top: auto;
	padding-top: 1.25rem;
}

.map-panel__actions .button-link {
	margin-top: 0;
}

/* A live window into the official Flickr archive. */
.flickr-feature {
	position: relative;
	min-height: clamp(27rem, 42vw, 34rem);
	margin-top: clamp(4rem, 7vw, 6.5rem);
	border: 1px solid rgba(143, 108, 57, 0.72);
	background: #0b2b3e;
	box-shadow: 0 24px 65px rgba(52, 39, 24, 0.17);
	overflow: hidden;
	isolation: isolate;
}

.flickr-feature::before,
.flickr-feature::after {
	content: "";
	position: absolute;
	z-index: 2;
	pointer-events: none;
}

.flickr-feature::before {
	inset: 0;
	background:
		linear-gradient(90deg, rgba(6, 29, 43, 0.95) 0%, rgba(7, 31, 46, 0.85) 27%, rgba(7, 31, 46, 0.32) 58%, transparent 78%),
		linear-gradient(180deg, rgba(6, 24, 36, 0.08) 45%, rgba(6, 24, 36, 0.56) 100%);
}

.flickr-feature::after {
	inset: 0.7rem;
	border: 1px solid rgba(223, 196, 141, 0.24);
}

.flickr-feature__media {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: block;
}

.flickr-feature__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	filter: saturate(0.82) contrast(1.04);
	transform: scale(1.006);
	transition: opacity 300ms ease, transform 700ms ease, filter 700ms ease;
}

.flickr-feature:hover .flickr-feature__media img {
	filter: saturate(0.95) contrast(1.02);
	transform: scale(1.02);
}

.flickr-feature__content {
	position: relative;
	z-index: 3;
	display: flex;
	width: min(47%, 35rem);
	min-height: inherit;
	flex-direction: column;
	justify-content: flex-end;
	padding: clamp(2rem, 4.5vw, 4.2rem);
	color: rgba(255, 255, 255, 0.82);
	pointer-events: none;
}

.flickr-feature__content > * {
	pointer-events: auto;
}

.flickr-feature__content .eyebrow {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	margin-bottom: 0.75rem;
	color: var(--impc-gold-soft);
}

.flickr-feature__content .eyebrow i {
	position: relative;
	display: inline-block;
	width: 1.55rem;
	height: 0.65rem;
}

.flickr-feature__content .eyebrow i::before,
.flickr-feature__content .eyebrow i::after {
	content: "";
	position: absolute;
	top: 0;
	width: 0.65rem;
	height: 0.65rem;
	border-radius: 50%;
}

.flickr-feature__content .eyebrow i::before {
	left: 0;
	background: #1c9be9;
}

.flickr-feature__content .eyebrow i::after {
	right: 0;
	background: #e4488d;
}

.flickr-feature h2 {
	margin: 0;
	color: #fffdf8;
	font-size: clamp(2rem, 3.4vw, 3.25rem);
	font-weight: 500;
	line-height: 1.02;
	letter-spacing: -0.025em;
	text-shadow: 0 3px 18px rgba(0, 0, 0, 0.3);
}

.flickr-feature__caption {
	margin: 1.15rem 0 0;
	color: #fff;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1rem;
	line-height: 1.45;
}

.flickr-feature__note {
	max-width: 27rem;
	margin: 0.45rem 0 1.4rem;
	font-size: 0.72rem;
	line-height: 1.65;
}

.flickr-feature__note[hidden] {
	display: none;
}

.flickr-feature__link {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	width: fit-content;
	padding: 0.72rem 0;
	border-top: 1px solid rgba(217, 189, 131, 0.58);
	color: #fff;
	font-size: 0.65rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-decoration: none;
	text-transform: uppercase;
}

.flickr-feature__link span {
	color: var(--impc-gold-soft);
	font-size: 0.9rem;
	transition: transform 180ms ease;
}

.flickr-feature__link:hover span,
.flickr-feature__link:focus-visible span {
	transform: translate(2px, -2px);
}

.archive-ribbon {
	padding: 2.5rem 0 3.5rem;
	background: #faf7f1;
}

.archive-ribbon .section-heading h2 {
	font-size: 1.65rem;
}

.archive-ribbon__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	border: 1px solid var(--impc-line);
	background: var(--impc-white);
}

.archive-ribbon article {
	display: grid;
	grid-template-columns: 8rem minmax(0, 1fr);
	min-height: 7.8rem;
}

.archive-ribbon article + article {
	border-left: 1px solid var(--impc-line);
}

.archive-ribbon article > a {
	display: block;
	overflow: hidden;
}

.archive-ribbon article > div {
	align-self: center;
	padding: 0.8rem 1rem;
}

.archive-ribbon article p {
	margin: 0 0 0.3rem;
	color: var(--impc-gold);
	font-size: 0.62rem;
	font-weight: 700;
	text-transform: uppercase;
}

.archive-ribbon article h3 {
	margin: 0;
	font-size: 0.9rem;
}

/* Interior templates and reusable post grids. */
.posts-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
}

.post-card {
	display: grid;
	grid-template-columns: 46% minmax(0, 1fr);
	min-width: 0;
	min-height: 158px;
	border: 1px solid var(--impc-line);
	background: var(--impc-white);
}

.post-card__image {
	display: block;
	min-height: 100%;
	overflow: hidden;
	background: #dedbd5;
}

.post-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.post-card__body {
	display: flex;
	min-width: 0;
	flex-direction: column;
	padding: 0.9rem;
}

.post-card__body .meta {
	margin: 0 0 0.45rem;
	color: var(--impc-gold);
	font-size: 0.67rem;
}

.post-card__title {
	margin: 0;
	font-size: 1rem;
}

.post-card__title a {
	color: var(--impc-ink);
	text-decoration: none;
}

.post-card__excerpt {
	display: none;
}

.post-card__more {
	margin-top: auto;
	padding-top: 0.65rem;
	font-size: 0.64rem;
	font-weight: 700;
	text-decoration: none;
	text-transform: uppercase;
}

.category-list {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	margin: 0;
	padding: 0;
	border: 1px solid var(--impc-line);
	background: rgba(255, 255, 255, 0.55);
	list-style: none;
}

.category-list li + li {
	border-left: 1px solid var(--impc-line);
}

.category-list a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 5.5rem;
	padding: 1rem 1.2rem;
	color: var(--impc-ink);
	text-decoration: none;
}

.content-shell {
	width: min(calc(100% - 2rem), var(--impc-content));
	margin-inline: auto;
	padding: clamp(3rem, 6vw, 5.5rem) 0;
}

.content-shell--wide {
	width: min(calc(100% - 2rem), var(--impc-wide));
}

.entry-header {
	margin-bottom: 2rem;
	text-align: center;
}

.entry-title {
	margin: 0.4rem 0 1rem;
}

.entry-header .meta {
	justify-content: center;
}

.entry-thumbnail {
	width: min(calc(100% - 2rem), var(--impc-wide));
	margin: 0 auto clamp(2rem, 5vw, 4rem);
}

.entry-thumbnail img {
	width: 100%;
	max-height: 720px;
	object-fit: cover;
}

.entry-content {
	font-size: clamp(1.03rem, 1.5vw, 1.13rem);
}

.entry-content > * {
	max-width: 100%;
}

.entry-content > * + * {
	margin-top: 1.35em;
}

.entry-content .alignwide {
	width: min(100vw - 2rem, var(--impc-wide));
	max-width: none;
	margin-left: 50%;
	transform: translateX(-50%);
}

.entry-content .alignfull {
	width: 100vw;
	max-width: none;
	margin-left: 50%;
	transform: translateX(-50%);
}

.entry-content blockquote {
	margin-inline: 0;
	padding: 0.3rem 0 0.3rem 1.5rem;
	border-left: 4px solid var(--impc-gold);
	color: var(--impc-ink-soft);
	font-family: Georgia, serif;
	font-size: 1.18em;
}

.entry-content table {
	width: 100%;
	border-collapse: collapse;
}

.entry-content th,
.entry-content td {
	padding: 0.7rem;
	border: 1px solid var(--impc-line);
	text-align: left;
}

.entry-content iframe {
	max-width: 100%;
}

.post-nav {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
	margin-top: 3rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--impc-line);
}

.pagination {
	margin-top: 2.5rem;
}

.pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
}

.pagination .page-numbers {
	display: grid;
	place-items: center;
	min-width: 2.6rem;
	height: 2.6rem;
	padding: 0 0.7rem;
	border: 1px solid var(--impc-line);
	background: var(--impc-white);
	text-decoration: none;
}

.pagination .current {
	border-color: var(--impc-burgundy);
	background: var(--impc-burgundy);
	color: #fff;
}

.empty-state {
	padding: 3rem 1.5rem;
	border: 1px solid var(--impc-line);
	background: var(--impc-white);
	text-align: center;
}

.search-form {
	display: flex;
	max-width: 34rem;
	margin: 1.5rem auto 0;
}

.search-form label {
	flex: 1;
}

.search-field {
	width: 100%;
	height: 3rem;
	padding: 0 0.9rem;
	border: 1px solid var(--impc-line);
	background: #fff;
	font: inherit;
}

.search-submit {
	border: 0;
	padding: 0 1rem;
	background: var(--impc-burgundy);
	color: #fff;
	font-weight: 700;
}

/* Footer. */
.site-footer {
	position: relative;
	padding: 4.5rem 0 1.5rem;
	overflow: hidden;
	background:
		radial-gradient(circle at 20% 10%, rgba(61, 98, 119, 0.28), transparent 22rem),
		#09283b;
	color: #cbd5da;
}

.site-footer__mosaic {
	position: absolute;
	inset: 0 0 auto;
	height: 1.35rem;
	background:
		repeating-linear-gradient(90deg, #b68742 0 5px, #d1b374 5px 10px, #173e54 10px 15px, #f1e3c5 15px 19px);
	opacity: 0.62;
}

.footer-grid {
	display: grid;
	grid-template-columns: minmax(18rem, 1.4fr) repeat(3, minmax(11rem, 0.8fr));
	gap: 2.2rem;
}

.footer-brand {
	display: grid;
	grid-template-columns: 68px 1fr;
	align-items: center;
	gap: 0.8rem;
}

.footer-brand > img {
	width: 68px;
	height: 68px;
	padding: 0.2rem;
	border-radius: 50%;
	background: rgba(243, 233, 211, 0.9);
	filter: grayscale(1) sepia(0.18) contrast(1.08);
	opacity: 0.94;
}

.footer-title {
	margin: 0 0 0.45rem;
	color: #fff;
	font-family: Georgia, serif;
	font-size: 1rem;
	line-height: 1.35;
}

.footer-brand p,
.footer-column p {
	margin: 0.25rem 0 0;
	font-size: 0.75rem;
}

.footer-social {
	grid-column: 1 / -1;
	display: flex;
	gap: 0.5rem;
}

.footer-social a {
	display: grid;
	place-items: center;
	width: 2rem;
	height: 2rem;
	border: 1px solid rgba(217, 189, 131, 0.44);
	border-radius: 50%;
	text-decoration: none;
}

.footer-column h2 {
	margin: 0 0 0.8rem;
	color: var(--impc-gold-soft);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.footer-column ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-column li + li {
	margin-top: 0.45rem;
}

.site-footer a {
	color: #f0f4f5;
}

.footer-column a {
	font-size: 0.76rem;
}

.footer-bottom {
	display: flex;
	justify-content: space-between;
	gap: 1.5rem;
	margin-top: 2.8rem;
	padding-top: 1.2rem;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	font-size: 0.66rem;
}

@media (max-width: 1100px) {
	.home-hero {
		grid-template-columns: 55% 45%;
	}

	.portal-nav {
		width: 100vw;
	}

	.news-layout {
		grid-template-columns: 1.15fr 0.9fr;
	}

	.compact-news {
		grid-column: 1 / -1;
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.compact-news article {
		grid-template-columns: 4.2rem minmax(0, 1fr);
	}

	.compact-news article + article {
		border-top: 0;
		border-left: 1px solid var(--impc-line);
		padding-left: 0.8rem;
	}

	.metropolis-panel__grid {
		grid-template-columns: minmax(0, 1fr) 14rem minmax(15rem, 0.9fr);
		gap: 2rem;
	}

	.metropolis-panel__seal {
		width: 14rem;
		height: 17rem;
	}

	.metropolis-panel__seal::before {
		top: 48%;
		width: 14rem;
		height: 16rem;
	}

	.metropolis-panel__seal::after {
		top: auto;
		bottom: 2.2rem;
		width: 7rem;
		height: 1px;
	}

	.metropolis-panel__seal-core {
		width: 11.3rem;
		height: 11.3rem;
		margin-top: -0.7rem;
	}

	.metropolis-panel__seal-core img {
		width: 9.8rem;
		height: 9.8rem;
	}

	.metropolis-panel__seal > span {
		max-width: 11rem;
		font-size: 0.5rem;
	}

	.sacred-guides__grid {
		grid-template-columns: minmax(0, 1.18fr) minmax(21rem, 0.82fr);
	}

	.sacred-guide--history {
		grid-template-columns: minmax(14rem, 0.72fr) minmax(0, 1fr);
	}

	.sacred-guide--compact {
		grid-template-columns: minmax(10rem, 0.76fr) minmax(0, 1fr);
	}

	.sacred-guide__content {
		padding: 1.35rem;
	}

	.footer-grid {
		grid-template-columns: 1.3fr repeat(2, 1fr);
	}

	.footer-column:last-child {
		display: none;
	}
}

@media (max-width: 820px) {
	.liturgical-topbar__inner {
		gap: 0.65rem;
	}

	.liturgical-topbar__date span,
	.liturgical-topbar__old-date span {
		display: none;
	}

	.liturgical-topbar__feast {
		font-size: 0.75rem;
	}

	.site-header {
		min-height: 285px;
	}

	.masthead-art {
		height: 480px;
		background-position: 59% top;
		background-size: auto 480px;
	}

	.masthead-art::after {
		background:
			linear-gradient(180deg, rgba(250, 246, 239, 0.02) 48%, rgba(246, 241, 231, 0.58) 76%, var(--impc-paper) 100%),
			linear-gradient(90deg, rgba(248, 243, 234, 0.93) 0%, rgba(248, 243, 234, 0.68) 48%, rgba(248, 243, 234, 0.08) 100%);
	}

	.brand-lockup {
		width: 72%;
	}

	.home-intro {
		margin-top: 0;
		padding-top: 0.65rem;
		overflow: hidden;
	}

	.home-intro::before {
		height: 330px;
		background-position: 59% -285px;
		background-size: auto 480px;
		-webkit-mask-image:
			linear-gradient(180deg, #000 0%, rgba(0, 0, 0, 0.64) 22%, rgba(0, 0, 0, 0.18) 44%, transparent 66%),
			radial-gradient(ellipse 78% 105% at 82% 0%, #000 0%, rgba(0, 0, 0, 0.88) 42%, rgba(0, 0, 0, 0.42) 68%, transparent 100%);
		mask-image:
			linear-gradient(180deg, #000 0%, rgba(0, 0, 0, 0.64) 22%, rgba(0, 0, 0, 0.18) 44%, transparent 66%),
			radial-gradient(ellipse 78% 105% at 82% 0%, #000 0%, rgba(0, 0, 0, 0.88) 42%, rgba(0, 0, 0, 0.42) 68%, transparent 100%);
	}

	.home-hero {
		display: block;
		min-height: 560px;
		overflow: hidden;
	}

	.home-hero__media {
		position: absolute;
		inset: 0;
		min-height: 0;
		margin: 0;
		transform: none;
	}

	.home-hero__media img {
		-webkit-mask-image: linear-gradient(180deg, #000 0%, #000 48%, rgba(0, 0, 0, 0.72) 68%, transparent 93%);
		mask-image: linear-gradient(180deg, #000 0%, #000 48%, rgba(0, 0, 0, 0.72) 68%, transparent 93%);
	}

	.home-hero__content {
		position: absolute;
		inset: auto 0 0;
		margin: 0;
		padding: 9rem 2.2rem 2.2rem;
		background: linear-gradient(180deg, transparent, rgba(246, 241, 231, 0.88) 38%, var(--impc-paper) 70%);
	}

	.portal-nav {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		width: 100vw;
		margin-top: 2rem;
	}

	.portal-nav > a:nth-child(3) {
		border-left: 0;
		border-top: 1px solid var(--impc-line);
	}

	.portal-nav > a:nth-child(4) {
		border-top: 1px solid var(--impc-line);
	}

	.news-layout {
		grid-template-columns: 1fr;
	}

	.news-spotlights {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: none;
	}

	.compact-news {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.compact-news article:nth-child(3) {
		border-left: 0;
		border-top: 1px solid var(--impc-line);
	}

	.compact-news article:nth-child(4) {
		border-top: 1px solid var(--impc-line);
	}

	.metropolis-panel::before {
		background-position: 61% center;
		background-size: auto 100%;
		opacity: 0.13;
	}

	.metropolis-panel__grid {
		grid-template-columns: 1fr 14rem;
		min-height: 0;
	}

	.metropolis-links {
		grid-column: 1 / -1;
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.metropolis-links > p {
		grid-column: 1 / -1;
	}

	.sacred-guides__heading {
		grid-template-columns: 1fr;
		gap: 1rem;
	}

	.sacred-guides__grid {
		grid-template-columns: 1fr;
		grid-template-rows: auto;
	}

	.sacred-guide--history {
		grid-row: auto;
		grid-template-columns: minmax(15rem, 0.72fr) minmax(0, 1fr);
		min-height: 30rem;
	}

	.sacred-guide--compact {
		grid-template-columns: minmax(14rem, 0.72fr) minmax(0, 1fr);
		min-height: 15rem;
	}

	.map-panel {
		grid-template-columns: 1fr;
	}

	.map-panel__details {
		display: grid;
		grid-template-columns: 13rem 1fr;
		grid-template-rows: repeat(5, auto);
		align-items: start;
		gap: 0 1.25rem;
		padding: 1.2rem;
		border-top: 1px solid var(--impc-line);
		border-left: 0;
	}

	.map-panel__media {
		grid-row: 1 / 6;
		min-height: 260px;
		height: 100%;
		margin: 0;
	}

	.map-panel__details .eyebrow,
	.map-panel__details h3,
	.map-panel__area,
	.map-panel__contact,
	.map-panel__actions {
		grid-column: 2;
	}

	.map-panel__actions {
		margin-top: 0;
	}

	.flickr-feature__content {
		width: min(64%, 32rem);
		padding: 2.2rem;
	}

	.archive-ribbon__grid {
		grid-template-columns: 1fr;
	}

	.archive-ribbon article + article {
		border-top: 1px solid var(--impc-line);
		border-left: 0;
	}

	.posts-grid,
	.category-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.footer-grid {
		grid-template-columns: 1.25fr 1fr;
	}

	.footer-column:last-child {
		display: block;
	}
}

@media (max-width: 560px) {
	.site-width {
		width: min(calc(100% - 1.25rem), var(--impc-wide));
	}

	.liturgical-topbar,
	.liturgical-topbar__inner {
		min-height: 3.15rem;
	}

	.liturgical-topbar__inner {
		grid-template-columns: auto 1fr;
		gap: 0.08rem 0.8rem;
		padding-block: 0.26rem;
	}

	.liturgical-topbar__old-date {
		justify-self: end;
	}

	.liturgical-topbar__divider,
	.liturgical-topbar__cross {
		display: none;
	}

	.liturgical-topbar__feast {
		grid-column: 1 / -1;
		font-size: 0.69rem;
		text-align: left;
	}

	.site-header {
		min-height: 245px;
	}

	.masthead__inner {
		min-height: 245px;
		padding-top: 2rem;
	}

	.brand-lockup {
		align-items: flex-start;
		gap: 0.45rem;
		width: 90%;
	}

	.brand-mark {
		flex-basis: 78px;
	}

	.brand-mark img {
		width: 78px;
		height: 78px;
	}

	.site-title {
		font-size: 0.88rem;
		letter-spacing: -0.02em;
	}

	.site-description {
		font-size: 0.68rem;
	}

	.home-intro {
		margin-top: 0;
		padding-top: 0.5rem;
	}

	.home-intro::before {
		height: 290px;
		background-position: 59% -245px;
	}

	.home-hero {
		min-height: 510px;
	}

	.home-hero__content {
		padding: 8rem 1.25rem 1.7rem;
	}

	.home-hero__title {
		font-size: clamp(1.85rem, 9vw, 2.35rem);
	}

	.home-hero__excerpt {
		display: none;
	}

	.portal-nav {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		width: 100vw;
	}

	.portal-nav > a + a {
		border-left: 1px solid var(--impc-line);
	}

	.portal-nav > a:nth-child(3) {
		border-top: 1px solid var(--impc-line);
		border-left: 0;
	}

	.portal-nav > a:nth-child(4) {
		border-top: 1px solid var(--impc-line);
	}

	.portal-nav > a {
		min-height: 5rem;
		padding: 0.7rem;
	}

	.portal-nav svg {
		flex-basis: 28px;
		width: 28px;
		height: 28px;
	}

	.portal-nav strong {
		font-size: 0.9rem;
	}

	.portal-nav small {
		font-size: 0.61rem;
	}

	.section-heading--split {
		align-items: flex-start;
		flex-direction: column;
	}

	.news-spotlights,
	.compact-news {
		grid-template-columns: 1fr;
	}

	.compact-news article,
	.compact-news article + article,
	.compact-news article:nth-child(3),
	.compact-news article:nth-child(4) {
		border-top: 1px solid var(--impc-line);
		border-left: 0;
		padding-left: 0;
	}

	.compact-news article:first-child {
		border-top: 0;
	}

	.metropolis-panel::before {
		background-position: 66% center;
		opacity: 0.1;
	}

	.metropolis-panel__grid {
		grid-template-columns: 1fr;
	}

	.metropolis-panel__seal {
		grid-row: 2;
	}

	.metropolis-links {
		grid-template-columns: 1fr;
	}

	.sacred-guides__heading {
		margin-bottom: 1.2rem;
	}

	.sacred-guides__heading h2 {
		font-size: clamp(1.7rem, 8vw, 2.15rem);
	}

	.sacred-guide--history,
	.sacred-guide--compact {
		grid-template-columns: 1fr;
		min-height: 0;
	}

	.sacred-guide--history .sacred-guide__media {
		height: 22rem;
	}

	.sacred-guide--compact .sacred-guide__media {
		height: 13rem;
	}

	.sacred-guide__content {
		min-height: 15.5rem;
	}

	.sacred-guide--history .sacred-guide__content {
		min-height: 20rem;
	}

	.map-heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.map-heading > p {
		text-align: left;
	}

	.map-toolbar {
		align-items: stretch;
		flex-direction: column;
		padding: 0.75rem;
	}

	.map-filters {
		align-self: flex-start;
	}

	.map-select {
		grid-template-columns: 1fr;
		gap: 0.35rem;
	}

	.map-select select {
		max-width: none;
	}

	.map-panel__canvas {
		min-height: 340px;
	}

	.map-panel__details {
		display: block;
		padding: 0 1rem 1.15rem;
	}

	.map-panel__media {
		height: 180px;
		min-height: 0;
		margin: 0 -1rem 1rem;
	}

	.flickr-feature {
		min-height: 29rem;
		margin-top: 3.2rem;
	}

	.flickr-feature::before {
		background:
			linear-gradient(180deg, rgba(6, 24, 36, 0.04) 12%, rgba(6, 24, 36, 0.48) 48%, rgba(6, 24, 36, 0.96) 100%),
			linear-gradient(90deg, rgba(6, 29, 43, 0.38), transparent 75%);
	}

	.flickr-feature__content {
		width: 100%;
		padding: 1.6rem;
	}

	.flickr-feature h2 {
		max-width: 20rem;
		font-size: clamp(1.8rem, 9vw, 2.35rem);
	}

	.flickr-feature__caption {
		max-width: 19rem;
		font-size: 0.9rem;
	}

	.map-filters {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		width: 100%;
		border-radius: 0.3rem;
	}

	.map-filters button {
		justify-content: center;
		padding-inline: 0.35rem;
	}

	.posts-grid,
	.category-list {
		grid-template-columns: 1fr;
	}

	.category-list li + li {
		border-top: 1px solid var(--impc-line);
		border-left: 0;
	}

	.post-nav {
		grid-template-columns: 1fr;
	}

	.footer-grid {
		grid-template-columns: 1fr;
	}

	.footer-bottom {
		flex-direction: column;
	}
}

/* Single stories: an editorial reading page for photography, video and legacy media. */
.single-story__hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background:
		radial-gradient(circle at 74% 44%, rgba(47, 101, 128, 0.62), transparent 30rem),
		linear-gradient(118deg, #071f30 0%, #0b3047 55%, #123f58 100%);
	color: #fff;
}

.single-story__hero::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(217, 189, 131, 0.82), transparent);
}

.single-story__hero-mosaic {
	position: absolute;
	z-index: -1;
	inset: -20% -8% -25% 32%;
	background: var(--impc-asset-4f4a25aec0f5, url("assets/images/metropolis-mosaic-emblem-v2.webp")) center / cover no-repeat;
	filter: saturate(0.65) contrast(1.05) brightness(0.78);
	opacity: 0.24;
	-webkit-mask-image: radial-gradient(ellipse 68% 78% at 57% 49%, #000 0%, rgba(0, 0, 0, 0.9) 48%, transparent 100%);
	mask-image: radial-gradient(ellipse 68% 78% at 57% 49%, #000 0%, rgba(0, 0, 0, 0.9) 48%, transparent 100%);
}

.single-story__hero-grid {
	position: relative;
	display: flex;
	width: min(calc(100% - 2rem), 1096px);
	align-items: center;
	justify-content: center;
	gap: 56px;
	min-height: 610px;
	padding-block: clamp(4.5rem, 7vw, 7rem);
}

@media (min-width: 821px) {
	.single-story__hero-grid {
		height: 570px;
		min-height: 570px;
		padding-block: 60px;
	}
}

.single-story__hero-grid--centered {
	justify-content: center;
	text-align: center;
}

.single-story__back {
	display: inline-flex;
	margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
	color: rgba(231, 237, 239, 0.72);
	font-size: 0.58rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
}

.single-story__intro {
	min-width: 0;
	flex: 0 1 500px;
	order: 2;
}

.single-story__back:hover,
.single-story__back:focus-visible {
	color: var(--impc-gold-soft);
}

.single-story__intro .eyebrow {
	margin: 0 0 0.75rem;
	color: var(--impc-gold-soft);
	font-size: 0.62rem;
	letter-spacing: 0.13em;
}

.single-story__intro h1 {
	max-width: 16ch;
	margin: 0;
	font-family: Palatino, "Palatino Linotype", "Book Antiqua", Georgia, serif;
	font-size: clamp(2.6rem, 3.5vw, 4.25rem);
	font-weight: 400;
	line-height: 1.03;
	letter-spacing: -0.055em;
	text-wrap: balance;
	text-shadow: 0 12px 38px rgba(0, 0, 0, 0.24);
}

.single-story:has(.single-story__title--long) .single-story__hero-grid {
	gap: 56px;
}

.single-story:has(.single-story__title--long) .single-story__intro,
.single-story:has(.single-story__title--long) .single-story__hero-media {
	flex-basis: 520px;
}

.single-story__intro .single-story__title--long {
	max-width: 21ch;
	font-size: clamp(2.35rem, 2.75vw, 3.15rem);
	line-height: 1.08;
	letter-spacing: -0.045em;
}

.single-story:has(.single-story__title--extra-long) .single-story__hero-grid {
	gap: 48px;
}

.single-story:has(.single-story__title--extra-long) .single-story__intro {
	flex-basis: 560px;
}

.single-story:has(.single-story__title--extra-long) .single-story__hero-media {
	flex-basis: 488px;
}

.single-story__intro .single-story__title--extra-long {
	max-width: 24ch;
	font-size: clamp(2.15rem, 2.45vw, 2.85rem);
	line-height: 1.08;
	letter-spacing: -0.038em;
}

.single-story--without-media .single-story__hero-grid {
	width: min(calc(100% - 2rem), 52rem);
}

.single-story__hero-grid--centered .single-story__intro h1 {
	max-width: 17ch;
	margin-inline: auto;
}

.single-story__meta {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	margin-top: 1.6rem;
	color: rgba(232, 238, 241, 0.72);
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.055em;
	text-transform: uppercase;
}

.single-story__hero-grid--centered .single-story__meta {
	justify-content: center;
}

.single-story__meta > span[aria-hidden="true"] {
	width: 2rem;
	height: 1px;
	background: rgba(217, 189, 131, 0.58);
}

.single-story__hero-media {
	position: relative;
	min-width: 0;
	flex: 0 1 540px;
	order: 1;
	margin: 0;
	border: 1px solid rgba(217, 189, 131, 0.42);
	background: #061a28;
	box-shadow: 0 30px 75px rgba(0, 0, 0, 0.34);
}

.single-story__hero-photo {
	height: clamp(25rem, 32vw, 31rem);
}

@media (min-width: 821px) {
	.single-story__hero-photo {
		height: 450px;
	}
}

.single-story__hero-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.single-story__hero-media figcaption {
	position: absolute;
	inset: auto 0 0;
	padding: 3.5rem 1.25rem 1rem;
	background: linear-gradient(transparent, rgba(5, 21, 31, 0.9));
	color: rgba(255, 255, 255, 0.82);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.72rem;
	line-height: 1.5;
}

.single-story__hero-video figcaption span {
	display: inline-block;
	margin-right: 0.75rem;
	color: var(--impc-gold-soft);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.58rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.single-story__video-frame {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	background:
		radial-gradient(circle at center, rgba(184, 139, 67, 0.16), transparent 35%),
		#061a28;
}

.single-story__video-frame iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.single-story__body {
	background:
		radial-gradient(circle at 7% 6%, rgba(184, 139, 67, 0.08), transparent 27rem),
		linear-gradient(180deg, #fffdf9 0%, #f7f0e5 100%);
}

.single-story__reading-grid {
	display: grid;
	grid-template-columns: minmax(11rem, 0.34fr) minmax(0, 48rem) minmax(1rem, 0.18fr);
	align-items: start;
	gap: clamp(2.5rem, 5vw, 5.5rem);
	padding-block: clamp(5rem, 9vw, 9rem);
}

.single-story__rail {
	position: sticky;
	top: 4.5rem;
	display: grid;
	gap: 1.45rem;
	padding-left: 1.25rem;
	border-left: 1px solid rgba(184, 139, 67, 0.55);
}

.single-story__rail > div {
	padding-bottom: 1.25rem;
	border-bottom: 1px solid rgba(118, 89, 48, 0.18);
}

.single-story__rail .eyebrow {
	margin: 0 0 0.32rem;
	font-size: 0.56rem;
}

.single-story__rail time,
.single-story__rail > div > p:last-child,
.single-story__rail > div > a {
	margin: 0;
	color: var(--impc-ink-soft);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.79rem;
	line-height: 1.5;
	text-decoration: none;
}

.single-story__press-contact {
	display: flex;
	color: var(--impc-burgundy);
	font-size: 0.58rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-decoration: none;
	text-transform: uppercase;
	flex-direction: column;
}

.single-story__press-contact span {
	margin-top: 0.2rem;
	color: var(--impc-ink-soft);
	font-family: Georgia, serif;
	font-size: 0.74rem;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

.single-story__content {
	grid-column: 2;
	min-width: 0;
	padding: 0;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.05rem, 1.22vw, 1.16rem);
	line-height: 1.85;
}

.single-story__content > p:first-child {
	margin-top: 0;
	color: #36342f;
	font-size: clamp(1.22rem, 1.55vw, 1.42rem);
	line-height: 1.72;
}

.single-story__content > p:first-child::first-letter {
	float: left;
	margin: 0.06em 0.1em 0 0;
	color: var(--impc-burgundy);
	font-family: Palatino, "Palatino Linotype", Georgia, serif;
	font-size: 3.5em;
	line-height: 0.82;
}

.single-story__content h2,
.single-story__content h3,
.single-story__content h4 {
	margin: 2.4em 0 0.7em;
	color: var(--impc-ink);
	font-family: Palatino, "Palatino Linotype", Georgia, serif;
	font-weight: 500;
	line-height: 1.08;
}

.single-story__content h2 {
	font-size: clamp(2rem, 3vw, 3rem);
}

.single-story__content h3 {
	font-size: clamp(1.55rem, 2vw, 2.1rem);
}

.single-story__content img:not(.emoji),
.single-story__content video,
.single-story__content iframe {
	display: block;
	max-width: 100%;
	height: auto;
}

.single-story__content figure,
.single-story__content .wp-caption,
.single-story__content .wp-video,
.single-story__content .wp-block-embed {
	max-width: 100% !important;
	margin: 2.7rem 0;
}

.single-story__content iframe[src*="youtube"],
.single-story__content iframe[src*="vimeo"],
.single-story__content video {
	width: 100%;
	aspect-ratio: 16 / 9;
	border: 0;
	background: #061a28;
}

.single-story__content .wp-caption-text,
.single-story__content figcaption {
	margin-top: 0.55rem;
	color: var(--impc-ink-soft);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.68rem;
	line-height: 1.55;
}

.single-story__content blockquote {
	margin: 2.6rem 0;
	padding: 0.4rem 0 0.4rem 2rem;
	border-left: 2px solid var(--impc-gold);
	color: #4f4a40;
	font-size: 1.2em;
	line-height: 1.75;
}

/* Archival hagiology documents keep photographs and scans uncropped. */
.single-story--hagiology .single-story__hero-photo img { object-fit: contain; }
.single-story--hagiology .single-story__content figure { margin-inline: auto; }
.single-story--hagiology .single-story__content figure img { margin-inline: auto; }
.single-story--hagiology .single-story__content .saints-document-subtitle { font-size: 1.05rem; }
.single-story--hagiology .single-story__content .saints-document-subtitle::first-letter { float: none; margin: 0; font-size: inherit; color: inherit; line-height: inherit; }

.single-flickr {
	position: relative;
	padding: clamp(4.5rem, 8vw, 7rem) 0;
	background:
		radial-gradient(circle at 82% 10%, rgba(54, 101, 125, 0.48), transparent 27rem),
		#09283b;
	color: #fff;
}

.single-flickr + .single-flickr {
	border-top: 1px solid rgba(217, 189, 131, 0.35);
}

.single-flickr__heading {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(18rem, 0.55fr);
	align-items: center;
	gap: clamp(2rem, 6vw, 6rem);
	margin-bottom: clamp(2rem, 4vw, 3.2rem);
}

.single-flickr__heading .eyebrow {
	margin: 0 0 0.55rem;
	color: var(--impc-gold-soft);
	font-size: 0.6rem;
}

.single-flickr__heading h2 {
	max-width: 24ch;
	margin: 0;
	font-size: clamp(1.75rem, 2vw, 2.5rem);
	font-weight: 400;
	line-height: 1.06;
	letter-spacing: -0.04em;
	text-wrap: balance;
}

.single-flickr__heading > div:last-child p {
	margin: 0;
	color: rgba(230, 237, 240, 0.72);
	font-family: Georgia, serif;
	font-size: 0.85rem;
	line-height: 1.65;
}

.single-flickr__heading > div:last-child a {
	display: inline-block;
	margin-top: 1rem;
	color: var(--impc-gold-soft);
	font-size: 0.6rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-decoration: none;
	text-transform: uppercase;
}

.single-flickr__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-rows: 12.5rem;
	gap: 0.65rem;
}

.single-flickr__grid > a {
	position: relative;
	display: block;
	min-width: 0;
	overflow: hidden;
	background: #061a28;
}

.single-flickr__grid > a:first-child {
	grid-column: span 2;
	grid-row: span 2;
}

.single-flickr__grid > a:nth-child(6) {
	grid-column: span 2;
}

.single-flickr__grid img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: filter 300ms ease, transform 650ms ease;
}

.single-flickr__grid > a::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 62%, rgba(4, 18, 27, 0.62));
	pointer-events: none;
}

.single-flickr__grid > a:hover img,
.single-flickr__grid > a:focus-visible img {
	filter: saturate(1.06) contrast(1.03);
	transform: scale(1.035);
}

.single-flickr__grid > a > span {
	position: absolute;
	right: 0.85rem;
	bottom: 0.7rem;
	z-index: 1;
	color: rgba(255, 255, 255, 0.84);
	font-size: 0.56rem;
	font-weight: 700;
	letter-spacing: 0.1em;
}

.single-flickr__fallback {
	position: relative;
	display: block;
	height: min(60vw, 36rem);
	overflow: hidden;
}

.single-flickr__fallback img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.single-flickr__fallback span {
	position: absolute;
	right: 1.5rem;
	bottom: 1.5rem;
	padding: 0.8rem 1rem;
	background: rgba(7, 31, 48, 0.9);
	color: #fff;
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.single-story__post-nav {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	padding-block: clamp(3rem, 6vw, 5rem);
}

.single-story__post-nav > a {
	display: flex;
	min-height: 8.5rem;
	padding: 1.5rem;
	border: 1px solid var(--impc-line);
	color: var(--impc-ink);
	text-decoration: none;
	flex-direction: column;
	justify-content: center;
}

.single-story__post-nav > a + a {
	border-left: 0;
	text-align: right;
}

.single-story__post-nav > a > span {
	margin-bottom: 0.5rem;
	color: var(--impc-burgundy);
	font-size: 0.56rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.single-story__post-nav > a > strong {
	font-family: Georgia, serif;
	font-size: clamp(1rem, 1.5vw, 1.25rem);
	font-weight: 500;
	line-height: 1.3;
}

@media (max-width: 1100px) {
	.single-story__hero-grid {
		width: min(calc(100% - 2rem), 1000px);
		gap: 2.5rem;
	}

	.single-story__intro h1 {
		font-size: clamp(2.45rem, 4vw, 3.75rem);
	}

	.single-story__reading-grid {
		grid-template-columns: 11rem minmax(0, 1fr);
	}

	.single-story__content {
		grid-column: 2;
	}
}

@media (max-width: 820px) {
	.single-story__hero-grid {
		display: grid;
		grid-template-columns: 1fr;
		width: min(calc(100% - 2rem), var(--impc-wide));
		height: auto;
		min-height: 0;
		padding-block: 4rem;
	}

	.single-story__back {
		margin-bottom: 2.5rem;
	}

	.single-story__intro {
		order: 1;
	}

	.single-story__hero-media {
		order: 2;
	}

	.single-story__intro h1 {
		max-width: 16ch;
	}

	.single-story:has(.single-story__title--long) .single-story__hero-grid,
	.single-story:has(.single-story__title--extra-long) .single-story__hero-grid {
		grid-template-columns: 1fr;
	}

	.single-story__intro .single-story__title--long,
	.single-story__intro .single-story__title--extra-long {
		max-width: 22ch;
		font-size: clamp(2.2rem, 5.2vw, 2.85rem);
		line-height: 1.08;
	}

	.single-story__hero-photo {
		height: min(68vw, 31rem);
	}

	.single-story__reading-grid {
		grid-template-columns: 1fr;
		gap: 3.2rem;
	}

	.single-story__rail {
		position: static;
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 1rem;
		padding: 0 0 1.5rem;
		border-bottom: 1px solid rgba(184, 139, 67, 0.55);
		border-left: 0;
	}

	.single-story__rail > div {
		padding: 0;
		border: 0;
	}

	.single-story__content {
		grid-column: 1;
	}

	.single-flickr__heading {
		grid-template-columns: 1fr;
		align-items: start;
		gap: 1.2rem;
	}

	.single-flickr__heading > div:last-child {
		max-width: 32rem;
	}

	.single-flickr__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-auto-rows: 11rem;
	}

	.single-flickr__grid > a:nth-child(6) {
		grid-column: auto;
	}
}

@media (max-width: 560px) {
	.single-story__hero-grid {
		padding-block: 3.2rem 3.8rem;
	}

	.single-story__hero-mosaic {
		inset: 10% -55% 8% 5%;
		opacity: 0.19;
	}

	.single-story__intro h1 {
		font-size: clamp(2.25rem, 10.4vw, 3rem);
	}

	.single-story__intro .single-story__title--long,
	.single-story__intro .single-story__title--extra-long {
		max-width: 100%;
		font-size: clamp(1.95rem, 8.7vw, 2.55rem);
		line-height: 1.02;
	}

	.single-story__meta {
		align-items: flex-start;
		font-size: 0.58rem;
		flex-direction: column;
	}

	.single-story__meta > span[aria-hidden="true"] {
		display: none;
	}

	.single-story__hero-photo {
		height: 76vw;
	}

	.single-story__reading-grid {
		padding-block: 4rem;
	}

	.single-story__rail {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.single-story__content {
		font-size: 1rem;
		line-height: 1.78;
	}

	.single-story__content > p:first-child {
		font-size: 1.14rem;
	}

	.single-flickr__grid {
		grid-auto-rows: 8.5rem;
		gap: 0.4rem;
	}

	.single-flickr__grid > a:first-child {
		grid-column: 1 / -1;
		grid-row: span 2;
	}

	.single-story__post-nav {
		grid-template-columns: 1fr;
	}

	.single-story__post-nav > a + a {
		border-top: 0;
		border-left: 1px solid var(--impc-line);
		text-align: left;
	}
}

/* Contact page: a calm service directory with the existing functional form. */
@media (min-width: 981px) {
	.contact-hub__hero-grid {
		height: 570px;
	}
}

.contact-hub__hero .metropolis-panel__intro h1 {
	max-width: 10ch;
	font-size: clamp(3rem, 3.8vw, 4.25rem);
}

.contact-hub__hero .metropolis-hub__facts a {
	color: inherit;
	text-decoration-color: rgba(217, 189, 131, 0.55);
}

.contact-hub__body {
	padding: clamp(4.5rem, 7vw, 7rem) 0;
	background:
		radial-gradient(circle at 8% 8%, rgba(184, 139, 67, 0.08), transparent 28rem),
		linear-gradient(180deg, #fffdf9, #f3ebdf);
}

.contact-hub__layout {
	display: grid;
	grid-template-columns: minmax(0, 1.18fr) minmax(22rem, 0.72fr);
	align-items: start;
	gap: clamp(3rem, 6vw, 6.5rem);
}

.contact-hub__heading {
	max-width: 48rem;
	margin-bottom: clamp(2rem, 4vw, 3.2rem);
}

.contact-hub__heading .eyebrow {
	margin-bottom: 0.6rem;
}

.contact-hub__heading h2,
.contact-hub__form-panel h2 {
	margin: 0;
	font-size: clamp(2.35rem, 3.15vw, 3.4rem);
	font-weight: 400;
	line-height: 1.03;
	letter-spacing: -0.05em;
}

.contact-hub__heading > p:last-child,
.contact-hub__form-panel > p:not(.eyebrow) {
	max-width: 38rem;
	margin: 1.15rem 0 0;
	color: var(--impc-ink-soft);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.92rem;
	line-height: 1.72;
}

.contact-methods {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border-top: 1px solid rgba(118, 89, 48, 0.28);
	border-left: 1px solid rgba(118, 89, 48, 0.28);
}

.contact-method {
	display: grid;
	grid-template-columns: 3rem minmax(0, 1fr);
	align-items: start;
	gap: 1.15rem;
	min-height: 18.5rem;
	padding: clamp(1.5rem, 2.3vw, 2.2rem);
	border-right: 1px solid rgba(118, 89, 48, 0.28);
	border-bottom: 1px solid rgba(118, 89, 48, 0.28);
	background: rgba(255, 253, 249, 0.48);
}

.contact-method__icon {
	display: grid;
	width: 3rem;
	height: 3rem;
	place-items: center;
	border: 1px solid rgba(184, 139, 67, 0.45);
	border-radius: 50%;
}

.contact-method__icon svg {
	width: 1.45rem;
	height: 1.45rem;
	fill: none;
	stroke: var(--impc-gold);
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.5;
}

.contact-method .eyebrow {
	margin: 0.15rem 0 0.45rem;
	font-size: 0.58rem;
}

.contact-method h3 {
	margin: 0;
	font-size: clamp(1.2rem, 1.7vw, 1.55rem);
	font-weight: 500;
	line-height: 1.16;
}

.contact-method h3 a {
	color: inherit;
	text-decoration: none;
}

.contact-method p,
.contact-method address {
	margin: 0.9rem 0 0;
	color: var(--impc-ink-soft);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.82rem;
	font-style: normal;
	line-height: 1.7;
}

.contact-method > div > a {
	display: inline-block;
	margin-top: 1rem;
	color: var(--impc-burgundy);
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.055em;
	text-decoration: none;
	text-transform: uppercase;
}

.contact-method ul {
	display: grid;
	gap: 0.75rem;
	margin: 1rem 0 0;
	padding: 0;
	list-style: none;
}

.contact-method li {
	display: grid;
	gap: 0.08rem;
}

.contact-method li span {
	color: var(--impc-ink-soft);
	font-size: 0.62rem;
}

.contact-method li a {
	font-family: Georgia, serif;
	font-size: 0.84rem;
	text-decoration: none;
}

.contact-social {
	display: grid;
	grid-template-columns: 3rem minmax(0, 1fr) auto;
	align-items: center;
	gap: 1rem;
	margin-top: 1rem;
	padding: 1.15rem 1.35rem;
	border: 1px solid rgba(118, 89, 48, 0.28);
	background: rgba(255, 253, 249, 0.62);
	color: var(--impc-ink);
	text-decoration: none;
}

.contact-social__mark {
	display: grid;
	width: 3rem;
	height: 3rem;
	place-items: center;
	border-radius: 50%;
	background: var(--impc-blue);
	color: #fff;
	font-family: Georgia, serif;
	font-size: 1.25rem;
}

.contact-social > span:nth-child(2) {
	display: flex;
	flex-direction: column;
}

.contact-social small {
	color: var(--impc-ink-soft);
	font-size: 0.58rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.contact-social strong {
	font-family: Georgia, serif;
	font-size: 1.05rem;
	font-weight: 500;
}

.contact-social i {
	color: var(--impc-gold);
	font-style: normal;
}

.contact-hub__form-panel {
	position: sticky;
	top: 4.5rem;
	padding: clamp(2rem, 3.5vw, 3rem);
	border-top: 3px solid var(--impc-gold);
	background: #eee3d2;
	box-shadow: 0 24px 60px rgba(63, 47, 27, 0.12);
}

.contact-hub__form-panel h2 {
	font-size: clamp(2.2rem, 2.8vw, 3rem);
}

.contact-hub__form {
	margin-top: 2rem;
}

.contact-hub__form .wpcf7-form > p {
	margin: 0 0 1rem;
	color: var(--impc-ink-soft);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.045em;
	line-height: 1.55;
	text-transform: uppercase;
}

.contact-hub__form .wpcf7-form-control-wrap {
	display: block;
	margin-top: 0.35rem;
}

.contact-hub__form input[type="email"],
.contact-hub__form input[type="text"],
.contact-hub__form textarea {
	width: 100%;
	padding: 0.8rem 0.85rem;
	border: 1px solid #cfc0a9;
	border-radius: 0;
	background: rgba(255, 255, 255, 0.66);
	color: var(--impc-ink);
	font: inherit;
	font-size: 0.85rem;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

.contact-hub__form textarea {
	min-height: 11rem;
	resize: vertical;
}

.contact-hub__form input:focus,
.contact-hub__form textarea:focus {
	border-color: var(--impc-gold);
	outline: 2px solid rgba(184, 139, 67, 0.16);
	outline-offset: 0;
}

.contact-hub__form input[type="submit"] {
	min-width: 10rem;
	padding: 0.9rem 1.2rem;
	border: 1px solid var(--impc-burgundy);
	border-radius: 0;
	background: var(--impc-burgundy);
	color: #fff;
	font: inherit;
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	cursor: pointer;
}

.contact-hub__form input[type="submit"]:hover,
.contact-hub__form input[type="submit"]:focus-visible {
	background: var(--impc-burgundy-dark);
}

.contact-hub__form .wpcf7-spinner {
	vertical-align: middle;
}

.contact-hub__form .wpcf7-response-output {
	margin: 1.2rem 0 0;
	padding: 0.8rem 0.9rem;
	border-width: 1px;
	font-size: 0.75rem;
}

.contact-hub__form-empty {
	margin-top: 2rem;
	padding: 1rem;
	border: 1px solid rgba(124, 38, 53, 0.3);
}

@media (max-width: 1050px) {
	.contact-hub__layout {
		grid-template-columns: 1fr;
	}

	.contact-hub__form-panel {
		position: static;
		width: min(100%, 44rem);
	}
}

@media (max-width: 980px) {
	.contact-hub__hero .metropolis-hub__facts dl {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 680px) {
	.contact-hub__hero .metropolis-hub__facts dl,
	.contact-methods {
		grid-template-columns: 1fr;
	}

	.contact-method {
		min-height: 0;
	}

	.contact-hub__heading h2,
	.contact-hub__form-panel h2 {
		font-size: clamp(2.1rem, 9.5vw, 3rem);
	}

	.contact-hub__form-panel {
		padding: 1.75rem 1.25rem 2rem;
	}
}

/* Press room: editorial hierarchy for the nine newest items and a yearly archive. */
@media (min-width: 981px) {
	.press-hub__hero-grid {
		height: 570px;
	}
}

.press-hub__hero .metropolis-panel__intro h1 {
	max-width: 9ch;
	font-size: clamp(3rem, 3.8vw, 4.25rem);
}

.press-latest {
	padding: clamp(3rem, 5vw, 5rem) 0 clamp(5rem, 8vw, 8rem);
	background:
		radial-gradient(circle at 7% 4%, rgba(184, 139, 67, 0.085), transparent 27rem),
		linear-gradient(180deg, #fffdf9, #f7f1e7);
}

.press-section-heading {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(20rem, 0.48fr);
	align-items: end;
	gap: clamp(2rem, 5vw, 5rem);
	margin-bottom: clamp(2rem, 4vw, 3.4rem);
}

.press-section-heading .eyebrow {
	margin: 0 0 0.55rem;
}

.press-section-heading h2 {
	max-width: 17ch;
	margin: 0;
	font-size: clamp(2.45rem, 3.25vw, 3.45rem);
	font-weight: 400;
	line-height: 1.03;
	letter-spacing: -0.052em;
}

.press-section-heading > p {
	max-width: 29rem;
	margin: 0;
	color: var(--impc-ink-soft);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.92rem;
	line-height: 1.72;
}

.press-section-heading > p a {
	color: var(--impc-burgundy);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.86em;
	font-weight: 700;
	text-decoration: none;
}

.press-section-heading > p a:hover,
.press-section-heading > p a:focus-visible {
	text-decoration: underline;
}

.press-newsroom {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(20rem, 0.66fr);
	gap: 1rem;
}

.press-lead-story {
	display: grid;
	grid-template-columns: minmax(0, 1.18fr) minmax(20.5rem, 0.82fr);
	min-height: 31rem;
	border: 1px solid var(--impc-line);
	background: var(--impc-white);
	box-shadow: 0 24px 55px rgba(63, 47, 27, 0.09);
}

.press-lead-story__media,
.press-top-story__media,
.press-story-card__media {
	display: block;
	min-width: 0;
	overflow: hidden;
	background: #d8d0c2;
}

.press-lead-story__media img,
.press-top-story__media img,
.press-story-card__media img,
.press-image-placeholder {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.press-lead-story__media img,
.press-top-story__media img,
.press-story-card__media img {
	transition: filter 350ms ease, transform 650ms ease;
}

.press-lead-story:hover img,
.press-top-story:hover img,
.press-story-card:hover img {
	filter: saturate(1.04) contrast(1.02);
	transform: scale(1.025);
}

.press-image-placeholder {
	display: grid;
	place-items: center;
	background:
		radial-gradient(circle at center, rgba(217, 189, 131, 0.22), transparent 42%),
		linear-gradient(145deg, #153f55, #09283b);
	color: rgba(217, 189, 131, 0.78);
}

.press-image-placeholder > span {
	font-family: Georgia, serif;
	font-size: 3.5rem;
}

.press-lead-story__body {
	display: flex;
	justify-content: center;
	padding: clamp(1.8rem, 2.6vw, 2.6rem);
	flex-direction: column;
}

.press-lead-story__body .eyebrow {
	margin: 0 0 0.5rem;
}

.press-lead-story__body time,
.press-top-story time,
.press-story-card time {
	color: var(--impc-gold);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.press-lead-story__body h2 {
	margin: 0.7rem 0 1.15rem;
	font-size: clamp(1.75rem, 2.1vw, 2.65rem);
	font-weight: 400;
	line-height: 1.03;
	letter-spacing: -0.045em;
}

.press-lead-story__body h2 a,
.press-top-story h3 a,
.press-story-card h3 a,
.press-year-list h3 a {
	color: inherit;
	text-decoration: none;
}

.press-lead-story__body > p:not(.eyebrow) {
	margin: 0;
	color: var(--impc-ink-soft);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.9rem;
	line-height: 1.72;
}

.press-text-link {
	display: inline-block;
	width: fit-content;
	margin-top: 1.5rem;
	padding-bottom: 0.2rem;
	border-bottom: 1px solid rgba(124, 38, 53, 0.42);
	color: var(--impc-burgundy);
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-decoration: none;
	text-transform: uppercase;
}

.press-top-stories {
	display: grid;
	grid-template-rows: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.press-top-story {
	position: relative;
	min-height: 15rem;
	background: var(--impc-blue);
	overflow: hidden;
}

.press-top-story__media,
.press-top-story__media img,
.press-top-story__media .press-image-placeholder {
	position: absolute;
	inset: 0;
}

.press-top-story__overlay {
	position: absolute;
	inset: auto 0 0;
	padding: 4rem 1.35rem 1.25rem;
	background: linear-gradient(transparent, rgba(6, 25, 37, 0.95));
	color: #fff;
}

.press-top-story h3 {
	margin: 0.35rem 0 0;
	font-size: clamp(1.2rem, 1.7vw, 1.65rem);
	font-weight: 500;
	line-height: 1.12;
}

.press-story-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	margin-top: 1rem;
}

.press-story-card {
	display: flex;
	min-width: 0;
	border: 1px solid var(--impc-line);
	background: rgba(255, 253, 250, 0.96);
	flex-direction: column;
	transition: box-shadow 200ms ease, transform 200ms ease;
}

.press-story-card:hover {
	box-shadow: 0 20px 42px rgba(63, 47, 27, 0.11);
	transform: translateY(-3px);
}

.press-story-card__media {
	aspect-ratio: 16 / 9;
}

.press-story-card__body {
	position: relative;
	display: flex;
	min-height: 14.5rem;
	padding: 1.35rem;
	flex-direction: column;
}

.press-story-card h3 {
	margin: 0.65rem 0 0.75rem;
	font-size: clamp(1.25rem, 1.75vw, 1.65rem);
	font-weight: 500;
	line-height: 1.12;
}

.press-story-card p {
	margin: 0;
	color: var(--impc-ink-soft);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.8rem;
	line-height: 1.62;
}

.press-story-card__body > a:last-child {
	display: grid;
	width: 2rem;
	height: 2rem;
	margin-top: auto;
	place-items: center;
	border: 1px solid rgba(184, 139, 67, 0.48);
	border-radius: 50%;
	color: var(--impc-burgundy);
	text-decoration: none;
}

/* Alternative press proposal: a light horizontal lead and eight editorial rows. */
.press-latest--folio {
	background:
		radial-gradient(circle at 8% 3%, rgba(184, 139, 67, 0.07), transparent 25rem),
		linear-gradient(180deg, #fffdfa, #f5eee3);
}

.press-folio-lead {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(21rem, 0.8fr);
	min-height: 31rem;
	border-top: 1px solid rgba(184, 139, 67, 0.62);
	border-bottom: 1px solid rgba(118, 89, 48, 0.28);
	background: rgba(255, 253, 249, 0.88);
	box-shadow: 0 22px 50px rgba(63, 47, 27, 0.08);
}

.press-folio-lead__media {
	display: block;
	min-width: 0;
	overflow: hidden;
	background: #d8d0c2;
}

.press-folio-lead__media img,
.press-folio-lead__media .press-image-placeholder {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.press-folio-lead__media img {
	transition: filter 350ms ease, transform 700ms ease;
}

.press-folio-lead:hover .press-folio-lead__media img {
	filter: saturate(1.035) contrast(1.02);
	transform: scale(1.018);
}

.press-folio-lead__body {
	display: flex;
	justify-content: center;
	padding: clamp(2rem, 3.5vw, 3.7rem);
	flex-direction: column;
}

.press-folio-lead__body .eyebrow {
	margin: 0 0 0.5rem;
}

.press-folio-lead time,
.press-folio-item time {
	color: var(--impc-gold);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.6rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.press-folio-lead h2 {
	max-width: 13ch;
	margin: 0.75rem 0 1rem;
	font-size: clamp(2.25rem, 3.35vw, 3.8rem);
	font-weight: 400;
	line-height: 0.99;
	letter-spacing: -0.045em;
}

.press-folio-lead h2 a,
.press-folio-item h3 a {
	color: inherit;
	text-decoration: none;
}

.press-folio-lead__body > p:not(.eyebrow) {
	margin: 0;
	color: var(--impc-ink-soft);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.87rem;
	line-height: 1.7;
}

.press-folio-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: clamp(2rem, 4vw, 4.5rem);
	margin-top: clamp(2.5rem, 5vw, 4.5rem);
	border-top: 1px solid rgba(118, 89, 48, 0.32);
}

.press-folio-item {
	display: grid;
	grid-template-columns: minmax(8.5rem, 0.42fr) minmax(0, 0.58fr);
	align-items: center;
	gap: 1.25rem;
	min-width: 0;
	padding: 1.35rem 0;
	border-bottom: 1px solid rgba(118, 89, 48, 0.25);
}

.press-folio-item__media {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #d8d0c2;
}

.press-folio-item__media img,
.press-folio-item__media .press-image-placeholder {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: filter 300ms ease, transform 600ms ease;
}

.press-folio-item:hover .press-folio-item__media img {
	filter: saturate(1.04) contrast(1.02);
	transform: scale(1.025);
}

.press-folio-item__body {
	position: relative;
	min-width: 0;
	padding-right: 1.8rem;
}

.press-folio-item__meta {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.press-folio-item__meta span {
	color: rgba(124, 38, 53, 0.6);
	font-family: Georgia, serif;
	font-size: 0.65rem;
}

.press-folio-item h3 {
	margin: 0.6rem 0 0;
	font-size: clamp(1.12rem, 1.55vw, 1.55rem);
	font-weight: 500;
	line-height: 1.14;
}

.press-folio-item h3 a:hover,
.press-folio-item h3 a:focus-visible {
	color: var(--impc-burgundy);
}

.press-folio-item__link {
	position: absolute;
	right: 0;
	bottom: 0;
	color: var(--impc-gold);
	font-size: 0.95rem;
	text-decoration: none;
}
.press-archive {
	position: relative;
	padding: clamp(5rem, 8vw, 8rem) 0;
	background:
		linear-gradient(90deg, transparent, rgba(184, 139, 67, 0.08) 50%, transparent) top / 100% 1px no-repeat,
		linear-gradient(180deg, #ede3d3, #e7dbc8);
}

.press-archive::after {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	background: rgba(237, 227, 211, 0.72);
	color: var(--impc-blue);
	content: "";
	opacity: 0;
	pointer-events: none;
	transition: opacity 180ms ease;
}

.press-archive.is-loading::after {
	content: "Φόρτωση αρχείου…";
	opacity: 1;
}

.press-archive.is-loading > .site-width {
	opacity: 0.45;
}

.press-archive > .site-width {
	transition: opacity 180ms ease;
}

.press-section-heading--archive {
	margin-bottom: 2.2rem;
}

.press-section-heading--archive h2 {
	font-size: clamp(2.4rem, 3.1vw, 3.35rem);
}

.press-section-heading--archive > p {
	justify-self: end;
	padding-bottom: 0.4rem;
	color: var(--impc-burgundy);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.press-year-nav {
	margin-bottom: 2rem;
}

.press-year-nav ul {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(4.9rem, 1fr));
	margin: 0;
	padding: 0;
	border-top: 1px solid rgba(118, 89, 48, 0.25);
	border-left: 1px solid rgba(118, 89, 48, 0.25);
	list-style: none;
}

.press-year-nav li {
	min-width: 0;
}

.press-year-nav a {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 4.6rem;
	padding: 0.7rem;
	border-right: 1px solid rgba(118, 89, 48, 0.25);
	border-bottom: 1px solid rgba(118, 89, 48, 0.25);
	background: rgba(255, 253, 249, 0.38);
	color: var(--impc-ink);
	flex-direction: column;
	text-decoration: none;
	transition: background 180ms ease, color 180ms ease;
}

.press-year-nav strong {
	font-family: Georgia, serif;
	font-size: 1rem;
	font-weight: 500;
}

.press-year-nav small {
	margin-top: 0.18rem;
	color: var(--impc-ink-soft);
	font-size: 0.55rem;
}

.press-year-nav a:hover,
.press-year-nav a:focus-visible,
.press-year-nav a.is-current {
	background: var(--impc-blue);
	color: #fff;
}

.press-year-nav a:hover small,
.press-year-nav a:focus-visible small,
.press-year-nav a.is-current small {
	color: var(--impc-gold-soft);
}

.press-year-list {
	border-top: 1px solid rgba(118, 89, 48, 0.34);
}

.press-year-list article {
	display: grid;
	grid-template-columns: 3.5rem 9rem minmax(0, 1fr) 2rem;
	align-items: center;
	gap: 1rem;
	min-height: 5rem;
	padding: 0.85rem 0;
	border-bottom: 1px solid rgba(118, 89, 48, 0.25);
}

.press-year-list__index {
	color: rgba(124, 38, 53, 0.62);
	font-family: Georgia, serif;
	font-size: 0.68rem;
}

.press-year-list time {
	color: var(--impc-ink-soft);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.045em;
	text-transform: uppercase;
}

.press-year-list h3 {
	margin: 0;
	font-size: clamp(1rem, 1.35vw, 1.22rem);
	font-weight: 500;
	line-height: 1.3;
}

.press-year-list h3 a:hover,
.press-year-list h3 a:focus-visible {
	color: var(--impc-burgundy);
}

.press-year-list__arrow {
	color: var(--impc-gold);
	font-size: 1rem;
	text-align: right;
	text-decoration: none;
}

.press-year-list__empty {
	padding: 2rem 0;
	color: var(--impc-ink-soft);
	font-family: Georgia, serif;
}

@media (max-width: 1080px) {
	.press-folio-lead {
		grid-template-columns: minmax(0, 1.08fr) minmax(20rem, 0.92fr);
	}

	.press-folio-list {
		column-gap: 2rem;
	}

	.press-folio-item {
		grid-template-columns: minmax(7.5rem, 0.4fr) minmax(0, 0.6fr);
		gap: 1rem;
	}

	.press-newsroom {
		grid-template-columns: minmax(0, 1.35fr) minmax(17rem, 0.65fr);
	}

	.press-lead-story {
		grid-template-columns: 1fr;
	}

	.press-lead-story__media {
		min-height: 20rem;
	}

	.press-story-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 820px) {
	.press-folio-lead,
	.press-folio-list {
		grid-template-columns: 1fr;
	}

	.press-folio-lead__media {
		min-height: 27rem;
	}

	.press-folio-lead__body {
		padding: 2.4rem;
	}

	.press-hub__hero-grid {
		height: auto;
	}

	.press-section-heading {
		grid-template-columns: 1fr;
		gap: 1.2rem;
	}

	.press-section-heading--archive > p {
		justify-self: start;
	}

	.press-newsroom {
		grid-template-columns: 1fr;
	}

	.press-lead-story {
		grid-template-columns: minmax(0, 1.15fr) minmax(17rem, 0.85fr);
	}

	.press-top-stories {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: none;
	}

	.press-year-list article {
		grid-template-columns: 2.5rem 7.5rem minmax(0, 1fr) 1.5rem;
		gap: 0.75rem;
	}
}

@media (max-width: 620px) {
	.press-folio-lead__media {
		min-height: 18rem;
	}

	.press-folio-lead__body {
		padding: 1.65rem 1.35rem 1.8rem;
	}

	.press-folio-lead h2 {
		font-size: clamp(2rem, 10vw, 3.05rem);
	}

	.press-folio-list {
		margin-top: 2.2rem;
	}

	.press-folio-item {
		grid-template-columns: minmax(7.1rem, 0.39fr) minmax(0, 0.61fr);
		gap: 0.85rem;
		padding: 1rem 0;
	}

	.press-hub__hero .metropolis-panel__intro h1 {
		font-size: clamp(2.8rem, 12vw, 3.7rem);
	}

	.press-latest,
	.press-archive {
		padding-block: 4rem;
	}

	.press-section-heading h2,
	.press-section-heading--archive h2 {
		font-size: clamp(2.2rem, 10vw, 3.2rem);
	}

	.press-lead-story {
		grid-template-columns: 1fr;
	}

	.press-lead-story__media {
		min-height: 16rem;
	}

	.press-lead-story__body {
		padding: 1.6rem;
	}

	.press-top-stories,
	.press-story-grid {
		grid-template-columns: 1fr;
	}

	.press-top-story {
		min-height: 18rem;
	}

	.press-story-card__body {
		min-height: 0;
	}

	.press-year-nav ul {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.press-year-nav a {
		min-height: 4rem;
		padding: 0.45rem;
	}

	.press-year-list article {
		grid-template-columns: 2.2rem minmax(0, 1fr) 1.5rem;
		gap: 0.6rem;
		padding: 1rem 0;
	}

	.press-year-list time {
		grid-column: 2;
		grid-row: 1;
	}

	.press-year-list h3 {
		grid-column: 2;
		grid-row: 2;
	}

	.press-year-list__index {
		grid-column: 1;
		grid-row: 1 / 3;
	}

	.press-year-list__arrow {
		grid-column: 3;
		grid-row: 1 / 3;
	}
}

@media (max-width: 1100px) {
	.hierarch-hub__hero--shepherd .metropolis-panel__seal {
		width: 12rem;
		height: 16rem;
	}

	.hierarch-hub__hero--shepherd .metropolis-panel__seal::after {
		width: 10rem;
	}

	.hierarch-hub__hero--shepherd .metropolis-panel__seal-core {
		width: 8.8rem;
		height: 9rem;
	}

	.hierarch-hub__hero--shepherd.metropolis-panel--mosaic-emblem .metropolis-panel__seal-core img {
		width: 8rem;
		height: 8.3rem;
	}
}

@media (max-width: 820px) {
	.hierarch-hub__hero--shepherd.metropolis-panel--mosaic-emblem::before {
		background-position: 70% top;
		background-size: auto 112%;
		opacity: 0.78;
		-webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.32) 18%, #000 42%);
		mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.32) 18%, #000 42%);
	}

	.hierarch-hub__hero--shepherd .metropolis-panel__seal {
		display: none;
	}

}

@media (max-width: 560px) {
	.hierarch-hub__hero--shepherd .metropolis-panel__seal {
		width: min(12rem, 100%);
		height: 14rem;
	}

	.hierarch-hub__hero--shepherd .metropolis-panel__seal-core {
		width: 7.8rem;
		height: 8rem;
	}

	.hierarch-hub__hero--shepherd.metropolis-panel--mosaic-emblem .metropolis-panel__seal-core img {
		width: 7.2rem;
		height: 7.5rem;
	}
}

/* One exact desktop height for every designed internal masthead. */
@media (min-width: 821px) {
	body:not(.home) .metropolis-hub__hero,
	body:not(.home) .single-story__hero,
	body:not(.home) .metropolis-hub__hero-grid,
	body:not(.home) .single-story__hero-grid {
		height: 520px;
		min-height: 520px;
		max-height: 520px;
	}

	body:not(.home) .metropolis-hub__hero-grid {
		padding-block: 2.35rem;
	}

	body:not(.home) .single-story__hero-grid {
		padding-block: 50px;
	}

	body:not(.home) .single-story__hero-photo {
		height: 420px;
	}
}

@media (min-width: 821px) {
	body:not(.home) .predecessor-profile__hero,
	body:not(.home) .predecessor-profile__hero-grid {
		grid-template-columns: minmax(18rem, 0.76fr) minmax(0, 1.24fr);
		gap: clamp(3.5rem, 7vw, 7.5rem);
		align-items: center;
		height: 520px;
		min-height: 520px;
		max-height: 520px;
	}

	body:not(.home) .predecessor-profile__intro {
		grid-column: 2;
		grid-row: 1;
		padding-block: 2.5rem;
		padding-right: 0;
	}

	body:not(.home) .predecessor-profile__portrait {
		grid-column: 1;
		grid-row: 1;
		align-self: center;
		justify-self: end;
		width: min(100%, 20.5rem);
		height: 88%;
		overflow: hidden;
	}

	body:not(.home) .predecessor-profile__portrait img {
		object-fit: cover;
		object-position: center top;
	}

	body:not(.home) .predecessor-profile__office {
		margin: 0.65rem 0 0;
		color: var(--impc-gold-soft);
		font-size: 1.05rem;
	}
}

/* Encyclicals and homilies: the Metropolitan masthead with text-first archives. */
.publication-hub__hero-grid {
	grid-template-columns: minmax(0, 1fr) 18rem;
	gap: clamp(2rem, 4.6vw, 4.8rem);
}

.publication-hub__hero .metropolis-panel__intro {
	align-self: center;
}

.publication-hub__hero .metropolis-panel__intro .eyebrow {
	margin: 0 0 0.62rem;
	white-space: nowrap;
}

.publication-hub__hero .metropolis-panel__intro h1 {
	max-width: 11ch;
	margin: 0;
	font-size: clamp(3rem, 3.8vw, 4.25rem);
}

.publication-hub__hero .metropolis-panel__intro .ornament {
	margin: 1.05rem 0 0;
}

.publication-hub__explanation {
	max-width: 39rem;
	margin: 0;
	color: rgba(239, 243, 244, 0.92);
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(0.88rem, 0.96vw, 0.98rem);
	line-height: 1.68;
}

.publication-latest {
	padding: clamp(4.5rem, 7vw, 7rem) 0;
	background:
		radial-gradient(circle at 10% 4%, rgba(184, 139, 67, 0.07), transparent 26rem),
		linear-gradient(180deg, #fffdfa, #f6f0e7);
}

.publication-section-heading {
	margin-bottom: clamp(2rem, 4vw, 3.5rem);
}

.publication-section-heading .eyebrow {
	margin: 0 0 0.5rem;
}

.publication-section-heading h2 {
	margin: 0;
	font-size: clamp(2.35rem, 3.3vw, 3.7rem);
	font-weight: 400;
	line-height: 1.02;
	letter-spacing: -0.045em;
}

.publication-list {
	border-top: 1px solid rgba(118, 89, 48, 0.34);
}

.publication-list article {
	display: grid;
	grid-template-columns: 3.5rem 12rem minmax(0, 1fr) 2rem;
	align-items: center;
	gap: 1.1rem;
	min-height: 5.8rem;
	padding: 1rem 0;
	border-bottom: 1px solid rgba(118, 89, 48, 0.24);
}

.publication-list__index {
	color: rgba(124, 38, 53, 0.58);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.7rem;
}

.publication-list time {
	color: var(--impc-ink-soft);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.63rem;
	font-weight: 700;
	letter-spacing: 0.045em;
	line-height: 1.45;
	text-transform: uppercase;
}

.publication-list h3 {
	margin: 0;
	font-size: clamp(1.05rem, 1.48vw, 1.32rem);
	font-weight: 500;
	line-height: 1.32;
}

.publication-list h3 a:hover,
.publication-list h3 a:focus-visible {
	color: var(--impc-burgundy);
}

.publication-list__arrow {
	color: var(--impc-gold);
	font-size: 1rem;
	text-align: right;
	text-decoration: none;
}

.publication-list__empty {
	padding: 2rem 0;
	color: var(--impc-ink-soft);
	font-family: Georgia, "Times New Roman", serif;
}

.publication-archive {
	background:
		linear-gradient(90deg, transparent, rgba(184, 139, 67, 0.09) 50%, transparent) top / 100% 1px no-repeat,
		linear-gradient(180deg, #eee4d5, #e8dcc9);
}

@media (max-width: 820px) {
	.publication-hub__hero-grid {
		grid-template-columns: 1fr;
		gap: 1.6rem;
		height: auto;
		min-height: 0;
		padding-block: 3.2rem;
	}

	.publication-hub__hero .metropolis-panel__seal {
		display: none;
	}

	.publication-hub__explanation {
		max-width: 34rem;
	}

	.publication-list article {
		grid-template-columns: 2.5rem 9.2rem minmax(0, 1fr) 1.5rem;
		gap: 0.75rem;
	}
}

@media (max-width: 620px) {
	.publication-latest {
		padding-block: 4rem;
	}

	.publication-section-heading h2 {
		font-size: clamp(2.2rem, 10vw, 3.15rem);
	}

	.publication-list article {
		grid-template-columns: 2.2rem minmax(0, 1fr) 1.5rem;
		gap: 0.65rem;
		min-height: 0;
		padding: 1.05rem 0;
	}

	.publication-list time {
		grid-column: 2;
		grid-row: 1;
	}

	.publication-list h3 {
		grid-column: 2;
		grid-row: 2;
	}

	.publication-list__index {
		grid-column: 1;
		grid-row: 1 / 3;
	}

	.publication-list__arrow {
		grid-column: 3;
		grid-row: 1 / 3;
	}
}

/* Administration: concise institutional directory. */
.administration-hero__intro .administration-hero__title {
	max-width: 10.5ch;
	font-size: clamp(2.8rem, 3.65vw, 4.05rem);
	line-height: 0.96;
	letter-spacing: -0.055em;
}

.administration-hero__facts a {
	color: inherit;
	text-decoration-color: rgba(217, 189, 131, 0.48);
	text-underline-offset: 0.22em;
}

.administration-page__content {
	background: #fffdfa;
}

.administration-directory {
	padding: clamp(4rem, 6vw, 6.5rem) 0;
	background:
		radial-gradient(circle at 88% 12%, rgba(184, 139, 67, 0.08), transparent 23rem),
		linear-gradient(180deg, #fffdfa, #f6efe5);
}

.administration-directory__heading {
	display: grid;
	grid-template-columns: minmax(15rem, 0.75fr) minmax(18rem, 1.25fr);
	align-items: end;
	gap: clamp(2rem, 6vw, 6rem);
	margin-bottom: clamp(2.2rem, 4vw, 3.5rem);
}

.administration-directory__heading h2,
.administration-details__contact h2 {
	margin: 0.55rem 0 0;
	font-family: Palatino, "Palatino Linotype", "Book Antiqua", Georgia, serif;
	font-size: clamp(2.25rem, 3.2vw, 3.45rem);
	font-weight: 400;
	line-height: 1.04;
	letter-spacing: -0.045em;
}

.administration-directory__heading > p:last-child {
	max-width: 36rem;
	margin: 0;
	color: var(--impc-ink-soft);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1rem;
	line-height: 1.7;
}

.administration-roster {
	border-top: 1px solid rgba(184, 139, 67, 0.5);
}

.administration-roster article {
	display: grid;
	grid-template-columns: 3.25rem minmax(13rem, 0.72fr) minmax(0, 1.28fr);
	align-items: center;
	gap: clamp(1rem, 2.5vw, 2.4rem);
	min-height: 6.2rem;
	padding: 1.15rem clamp(0.5rem, 1.5vw, 1.25rem);
	border-bottom: 1px solid var(--impc-line);
	transition: background-color 160ms ease;
}

.administration-roster article > p {
	display: none;
}

.administration-roster article:hover {
	background: rgba(255, 253, 250, 0.7);
}

.administration-roster__number {
	color: var(--impc-burgundy);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.64rem;
	font-weight: 700;
	letter-spacing: 0.13em;
}

.administration-roster h3 {
	margin: 0;
	color: #75592f;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.7rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.administration-roster strong {
	display: block;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp(1.05rem, 1.35vw, 1.28rem);
	font-weight: 400;
	line-height: 1.45;
}

.administration-roster small,
.administration-roster a {
	display: block;
	margin-top: 0.22rem;
	color: var(--impc-ink-soft);
	font-size: 0.76rem;
	line-height: 1.45;
}

.administration-roster a {
	color: var(--impc-burgundy);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

.administration-details {
	position: relative;
	padding: clamp(4rem, 6vw, 6.5rem) 0;
	background:
		radial-gradient(circle at 90% 30%, rgba(217, 189, 131, 0.12), transparent 22rem),
		linear-gradient(135deg, #0b2a40, #123d55);
	color: #eef2f3;
	overflow: hidden;
}

.administration-details::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--impc-asset-b40627b9727a, url("assets/images/metropolis-mosaic.webp")) 92% 48% / 52rem auto no-repeat;
	opacity: 0.075;
	pointer-events: none;
}

.administration-details__grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 0.92fr) minmax(24rem, 1.08fr);
	align-items: center;
	gap: clamp(2.5rem, 6vw, 6rem);
}

.administration-details figure {
	position: relative;
	margin: 0;
	box-shadow: 0 22px 52px rgba(0, 0, 0, 0.24);
}

.administration-details figure::after {
	content: "";
	position: absolute;
	inset: 0;
	border: 1px solid rgba(217, 189, 131, 0.26);
	box-shadow: inset 0 0 48px rgba(2, 14, 22, 0.22);
	pointer-events: none;
}

.administration-details img {
	display: block;
	width: 100%;
	height: clamp(20rem, 28vw, 28rem);
	object-fit: cover;
	filter: grayscale(1) sepia(0.08) contrast(1.04);
}

.administration-details figcaption {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 2;
	padding: 2.2rem 1.1rem 0.9rem;
	background: linear-gradient(transparent, rgba(3, 17, 26, 0.82));
	color: rgba(255, 255, 255, 0.78);
	font-size: 0.68rem;
	letter-spacing: 0.03em;
}

.administration-details__contact .eyebrow {
	color: var(--impc-gold-soft);
}

.administration-details__contact h2 {
	max-width: 13ch;
	margin-bottom: 1.8rem;
	color: #fff;
}

.administration-details__locations {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border-top: 1px solid rgba(217, 189, 131, 0.3);
	border-bottom: 1px solid rgba(217, 189, 131, 0.3);
}

.administration-details__locations > div {
	padding: 1.35rem 1.4rem 1.35rem 0;
}

.administration-details__locations > div + div {
	padding-right: 0;
	padding-left: 1.4rem;
	border-left: 1px solid rgba(217, 189, 131, 0.3);
}

.administration-details__locations h3 {
	margin: 0 0 0.65rem;
	color: var(--impc-gold-soft);
	font-family: Arial, Helvetica, sans-serif;
	font-size: 0.67rem;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.administration-details__locations address,
.administration-details__locations a {
	color: #d7e0e4;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 0.9rem;
	font-style: normal;
	line-height: 1.6;
}

.administration-details__locations a {
	display: inline-block;
	margin-top: 0.45rem;
	color: #fff;
	text-underline-offset: 0.2em;
}

.administration-details__emails {
	display: flex;
	flex-wrap: wrap;
	gap: 0.8rem 1.6rem;
	margin-top: 1.3rem;
}

.administration-details__emails a {
	color: #fff;
	font-size: 0.76rem;
	letter-spacing: 0.03em;
	text-decoration-color: rgba(217, 189, 131, 0.55);
	text-underline-offset: 0.25em;
}

@media (max-width: 800px) {
	.administration-directory__heading,
	.administration-details__grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.administration-roster article {
		grid-template-columns: 2.3rem minmax(0, 1fr);
		gap: 0.35rem 1rem;
		padding: 1.2rem 0.35rem;
	}

	.administration-roster h3,
	.administration-roster article > div {
		grid-column: 2;
	}

	.administration-roster h3 {
		align-self: end;
	}

	.administration-roster article > div {
		align-self: start;
	}

	.administration-details__contact {
		grid-row: 1;
	}

	.administration-details figure {
		grid-row: 2;
		max-width: 42rem;
	}

	.administration-details img {
		height: clamp(19rem, 62vw, 28rem);
	}
}

@media (max-width: 540px) {
	.administration-hero__intro .administration-hero__title {
		font-size: clamp(2.4rem, 11vw, 3.35rem);
	}

	.administration-directory,
	.administration-details {
		padding: 3.5rem 0;
	}

	.administration-details__locations {
		grid-template-columns: 1fr;
	}

	.administration-details__locations > div,
	.administration-details__locations > div + div {
		padding: 1.15rem 0;
		border-left: 0;
	}

	.administration-details__locations > div + div {
		border-top: 1px solid rgba(217, 189, 131, 0.3);
	}
}
