/*
Theme Name: Pastor Dele Olawanle
Theme URI: https://pastordele.com/online/
Author: Redfield Tech
Author URI: https://pastordele.com/
Description: A premium, accessible editorial theme for Pastor Dele Olawanle that preserves WordPress, WooCommerce and event-plugin content.
Version: 1.3.0
Requires at least: 6.4
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pastor-dele
*/

:root {
	--pd-navy: #101b3d;
	--pd-navy-deep: #0b1230;
	--pd-purple: #3f2a68;
	--pd-purple-soft: #6c5796;
	--pd-gold: #c89a3c;
	--pd-gold-light: #f4e6bd;
	--pd-cream: #f8f6f1;
	--pd-sand: #eee9df;
	--pd-ink: #1c2030;
	--pd-muted: #686c78;
	--pd-white: #fff;
	--pd-border: rgba(16, 27, 61, 0.14);
	--pd-shadow: 0 18px 48px rgba(16, 27, 61, 0.1);
	--pd-radius: 2px;
	--pd-content: 1180px;
	--pd-reading: 760px;
	--pd-space-1: clamp(0.5rem, 1vw, 0.75rem);
	--pd-space-2: clamp(1rem, 2vw, 1.5rem);
	--pd-space-3: clamp(1.5rem, 3vw, 2.5rem);
	--pd-space-4: clamp(2.5rem, 6vw, 5rem);
	--pd-space-5: clamp(4rem, 9vw, 8rem);
	--pd-serif: "DM Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
	--pd-sans: "DM Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

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

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	color: var(--pd-ink);
	background: var(--pd-cream);
	font-family: var(--pd-sans);
	font-size: 1rem;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}

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

a {
	color: var(--pd-purple);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

a:hover {
	color: var(--pd-navy);
}

button,
input,
select,
textarea {
	font: inherit;
}

button,
.button,
.wp-block-button__link,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	min-height: 3rem;
	padding: 0.75rem 1.25rem;
	border: 1px solid transparent;
	border-radius: var(--pd-radius);
	background: var(--pd-gold);
	color: var(--pd-navy-deep);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.11em;
	line-height: 1.2;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: transform 180ms ease, background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}

button:hover,
.button:hover,
.wp-block-button__link:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
	background: var(--pd-navy);
	color: var(--pd-white);
	transform: translateY(-2px);
}

.button--outline,
.wp-block-button.is-style-outline .wp-block-button__link {
	border-color: currentColor;
	background: transparent;
	color: inherit;
}

.button--light {
	background: var(--pd-white);
	color: var(--pd-navy);
}

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

.screen-reader-text:focus {
	z-index: 100000;
	top: 1rem;
	left: 1rem;
	width: auto;
	height: auto;
	padding: 0.75rem 1rem;
	margin: 0;
	overflow: visible;
	clip: auto;
	background: var(--pd-white);
	color: var(--pd-navy);
	font-weight: 700;
}

:focus-visible {
	outline: 3px solid var(--pd-gold);
	outline-offset: 3px;
}

.site-shell {
	overflow: hidden;
}

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

.site-header {
	position: relative;
	z-index: 20;
	background: var(--pd-white);
	border-bottom: 1px solid var(--pd-border);
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 5.25rem;
	gap: var(--pd-space-2);
}

.site-branding {
	display: inline-flex;
	align-items: center;
	min-width: 9rem;
}

.site-branding img {
	width: min(13rem, 42vw);
}

.site-branding__mark {
	display: none;
	width: 2.7rem;
}

.primary-navigation ul {
	display: flex;
	align-items: center;
	gap: clamp(0.8rem, 2.3vw, 2rem);
	padding: 0;
	margin: 0;
	list-style: none;
}

.primary-navigation a {
	display: block;
	color: var(--pd-navy);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-decoration: none;
	text-transform: uppercase;
}

.primary-navigation a:hover,
.primary-navigation .current-menu-item > a {
	color: var(--pd-gold);
}

.menu-toggle {
	display: none;
	padding: 0.5rem;
	background: transparent;
	color: var(--pd-navy);
	border: 0;
}

.menu-toggle:hover {
	background: transparent;
	color: var(--pd-purple);
	transform: none;
}

.menu-toggle__lines,
.menu-toggle__lines::before,
.menu-toggle__lines::after {
	display: block;
	width: 1.6rem;
	height: 2px;
	background: currentColor;
	content: "";
	transition: transform 180ms ease;
}

.menu-toggle__lines::before {
	transform: translateY(-7px);
}

.menu-toggle__lines::after {
	transform: translateY(5px);
}

.hero {
	position: relative;
	display: grid;
	align-items: center;
	min-height: min(42rem, 78vh);
	background: var(--pd-navy);
	color: var(--pd-white);
}

.hero__media {
	position: absolute;
	inset: 0;
}

.hero__media::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(11, 18, 48, 0.88) 0%, rgba(11, 18, 48, 0.58) 42%, rgba(11, 18, 48, 0.2) 100%);
	content: "";
}

.hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.hero__content {
	position: relative;
	z-index: 1;
	width: min(100%, 42rem);
	padding-block: var(--pd-space-5);
}

.eyebrow {
	margin: 0 0 1rem;
	color: var(--pd-gold);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.17em;
	text-transform: uppercase;
}

.hero h1,
.section-heading h2,
.page-header h1,
.quote-block blockquote {
	margin: 0;
	font-family: var(--pd-serif);
	font-weight: 400;
	letter-spacing: -0.03em;
	line-height: 1.06;
}

.hero h1 {
	max-width: 13ch;
	font-size: clamp(3rem, 7vw, 6.4rem);
}

.hero__intro {
	max-width: 38rem;
	margin: 1.5rem 0 0;
	color: rgba(255, 255, 255, 0.84);
	font-size: clamp(1rem, 1.6vw, 1.2rem);
}

.hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 2rem;
}

.section {
	padding-block: var(--pd-space-5);
}

.section--white {
	background: var(--pd-white);
}

.section--navy {
	background: var(--pd-navy);
	color: var(--pd-white);
}

.section--purple {
	background: var(--pd-purple);
	color: var(--pd-white);
}

.section--sand {
	background: var(--pd-sand);
}

.section-heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 2rem;
	margin-bottom: var(--pd-space-3);
}

.section-heading h2,
.page-header h1 {
	max-width: 15ch;
	font-size: clamp(2.35rem, 5vw, 4.8rem);
}

.section-heading p {
	max-width: 34rem;
	margin: 0;
	color: var(--pd-muted);
}

.section--navy .section-heading p,
.section--purple .section-heading p {
	color: rgba(255, 255, 255, 0.75);
}

.intro-grid,
.split-feature,
.contact-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(2rem, 7vw, 7rem);
	align-items: center;
}

.intro-grid__image,
.split-feature__image {
	position: relative;
}

.intro-grid__image img,
.split-feature__image img {
	width: 100%;
	max-height: 42rem;
	object-fit: cover;
}

.intro-grid__image::after,
.split-feature__image::after {
	position: absolute;
	right: -1rem;
	bottom: -1rem;
	z-index: 0;
	width: 45%;
	height: 45%;
	border-right: 2px solid var(--pd-gold);
	border-bottom: 2px solid var(--pd-gold);
	content: "";
}

.intro-grid__image img,
.split-feature__image img {
	position: relative;
	z-index: 1;
}

.prose {
	max-width: var(--pd-reading);
}

.prose > *:first-child {
	margin-top: 0;
}

.prose > *:last-child {
	margin-bottom: 0;
}

.prose h2,
.prose h3 {
	margin-top: 2.25em;
	color: var(--pd-navy);
	font-family: var(--pd-serif);
	font-weight: 400;
	line-height: 1.2;
}

.prose p,
.prose li {
	color: #4e5260;
}

.prose strong {
	color: var(--pd-navy);
}

.page-header {
	padding-block: var(--pd-space-5) var(--pd-space-4);
	background: var(--pd-navy);
	color: var(--pd-white);
}

.page-header .eyebrow {
	margin-bottom: 1.25rem;
}

.page-header__description {
	max-width: 42rem;
	margin: 1.5rem 0 0;
	color: rgba(255, 255, 255, 0.8);
	font-size: 1.1rem;
}

.page-content {
	padding-block: var(--pd-space-5);
	background: var(--pd-cream);
}

.card-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.25rem;
}

.card {
	padding: clamp(1.25rem, 3vw, 2rem);
	background: var(--pd-white);
	border: 1px solid var(--pd-border);
	box-shadow: 0 8px 28px rgba(16, 27, 61, 0.04);
}

.card h3 {
	margin: 0.65rem 0 0.5rem;
	color: var(--pd-navy);
	font-family: var(--pd-serif);
	font-size: 1.65rem;
	font-weight: 400;
	line-height: 1.15;
}

.card p {
	margin: 0;
	color: var(--pd-muted);
}

.book-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.5rem;
}

.book-card {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.book-card__image {
	display: grid;
	place-items: center;
	aspect-ratio: 2 / 3;
	padding: 1rem;
	background: var(--pd-white);
}

.book-card__image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.book-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding-top: 1rem;
}

.book-card h3 {
	margin: 0;
	color: inherit;
	font-family: var(--pd-serif);
	font-size: 1.35rem;
	font-weight: 400;
	line-height: 1.15;
}

.book-card__price {
	margin: 0.6rem 0 1rem;
	color: var(--pd-gold);
	font-weight: 700;
}

.book-card__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: auto;
}

.book-card__actions .button {
	min-height: 2.5rem;
	padding-inline: 0.85rem;
	font-size: 0.65rem;
}

.quote-block {
	max-width: 58rem;
	margin-inline: auto;
	text-align: center;
}

.quote-block blockquote {
	font-size: clamp(2rem, 4vw, 4.2rem);
}

.quote-block cite {
	display: block;
	margin-top: 1.5rem;
	color: var(--pd-gold);
	font-size: 0.72rem;
	font-style: normal;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.event-panel {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(14rem, 0.8fr);
	gap: 2rem;
	padding: clamp(1.5rem, 4vw, 3rem);
	background: var(--pd-white);
	border-left: 4px solid var(--pd-gold);
	box-shadow: var(--pd-shadow);
}

.event-panel h3 {
	margin: 0 0 0.5rem;
	color: var(--pd-navy);
	font-family: var(--pd-serif);
	font-size: clamp(1.8rem, 3vw, 2.8rem);
	font-weight: 400;
	line-height: 1.1;
}

.event-panel p {
	margin: 0;
	color: var(--pd-muted);
}

.event-panel__side {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 0.75rem;
	padding-left: 2rem;
	border-left: 1px solid var(--pd-border);
}

.event-panel__side strong {
	color: var(--pd-navy);
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.banner-feature {
	position: relative;
	min-height: 27rem;
	display: flex;
	align-items: end;
	background: var(--pd-navy);
	color: var(--pd-white);
}

.banner-feature__image {
	position: absolute;
	inset: 0;
}

.banner-feature__image::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(11, 18, 48, 0.86), rgba(11, 18, 48, 0.25));
	content: "";
}

.banner-feature__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.banner-feature__content {
	position: relative;
	z-index: 1;
	max-width: 42rem;
	padding: var(--pd-space-4);
}

.banner-feature h2 {
	margin: 0;
	font-family: var(--pd-serif);
	font-size: clamp(2.4rem, 5vw, 4.8rem);
	font-weight: 400;
	line-height: 1.05;
}

.banner-feature p {
	color: rgba(255, 255, 255, 0.8);
}

.contact-details {
	display: grid;
	gap: 1rem;
	margin: 0;
}

.contact-details div {
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--pd-border);
}

.contact-details dt {
	color: var(--pd-gold);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.contact-details dd {
	margin: 0.25rem 0 0;
	color: var(--pd-navy);
}

.form-card {
	padding: clamp(1.5rem, 4vw, 3rem);
	background: var(--pd-white);
	box-shadow: var(--pd-shadow);
}

label {
	display: block;
	margin-bottom: 0.4rem;
	color: var(--pd-navy);
	font-size: 0.78rem;
	font-weight: 700;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
select,
textarea {
	width: 100%;
	padding: 0.8rem 0.9rem;
	border: 1px solid var(--pd-border);
	border-radius: 0;
	background: var(--pd-cream);
	color: var(--pd-ink);
}

textarea {
	min-height: 10rem;
	resize: vertical;
}

.form-row {
	margin-bottom: 1rem;
}

.site-footer {
	padding-block: var(--pd-space-4) var(--pd-space-2);
	background: var(--pd-navy-deep);
	color: rgba(255, 255, 255, 0.76);
}

.site-footer__grid {
	display: grid;
	grid-template-columns: 1.4fr repeat(2, 1fr);
	gap: 2rem;
	padding-bottom: var(--pd-space-4);
}

.site-footer__brand img {
	width: min(14rem, 80%);
	margin-bottom: 1rem;
}

.site-footer h2,
.site-footer h3 {
	margin: 0 0 0.85rem;
	color: var(--pd-white);
	font-family: var(--pd-serif);
	font-size: 1.4rem;
	font-weight: 400;
}

.site-footer p {
	max-width: 24rem;
	margin: 0;
}

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

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

.site-footer a {
	color: rgba(255, 255, 255, 0.76);
	text-decoration: none;
}

.site-footer a:hover {
	color: var(--pd-gold);
}

.site-footer__bottom {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding-top: 1rem;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	font-size: 0.78rem;
}

.entry-meta {
	margin-bottom: 1rem;
	color: var(--pd-muted);
	font-size: 0.8rem;
}

.pagination {
	display: flex;
	justify-content: center;
	gap: 0.5rem;
	margin-top: var(--pd-space-4);
}

.pagination .page-numbers {
	display: inline-grid;
	place-items: center;
	min-width: 2.5rem;
	min-height: 2.5rem;
	padding: 0.3rem;
	border: 1px solid var(--pd-border);
	text-decoration: none;
}

.pagination .current,
.pagination .page-numbers:hover {
	background: var(--pd-navy);
	color: var(--pd-white);
}

/* WooCommerce and event-plugin presentation. Business logic remains theirs. */
.woocommerce .site-main,
.single-product .site-main {
	padding-block: var(--pd-space-5);
}

.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.5rem;
	margin: 0;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none;
}

.woocommerce ul.products li.product {
	display: flex;
	flex-direction: column;
	float: none;
	width: auto;
	margin: 0;
	padding: 1rem;
	background: var(--pd-white);
	border: 1px solid var(--pd-border);
}

.woocommerce ul.products li.product a img {
	aspect-ratio: 2 / 3;
	margin: 0 0 1rem;
	object-fit: contain;
	background: var(--pd-cream);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 0;
	color: var(--pd-navy);
	font-family: var(--pd-serif);
	font-size: 1.35rem;
	font-weight: 400;
	line-height: 1.15;
}

.woocommerce ul.products li.product .price {
	color: var(--pd-purple);
	font-weight: 700;
}

.woocommerce ul.products li.product .button {
	margin-top: auto;
}

.woocommerce div.product div.images img {
	background: var(--pd-white);
}

.woocommerce div.product .product_title {
	color: var(--pd-navy);
	font-family: var(--pd-serif);
	font-size: clamp(2.2rem, 5vw, 4rem);
	font-weight: 400;
	line-height: 1.05;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--pd-purple);
	font-weight: 700;
}

.woocommerce form .form-row {
	padding: 0;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-top-color: var(--pd-gold);
	background: var(--pd-white);
}

.tribe-events,
.tribe-common {
	color: var(--pd-ink);
}

.tribe-common .tribe-common-c-btn,
.tribe-common a.tribe-common-c-btn {
	background: var(--pd-gold);
	color: var(--pd-navy-deep);
}

.tribe-events .tribe-events-calendar-list__event-title-link,
.tribe-events .tribe-events-calendar-month__calendar-event-title-link {
	color: var(--pd-purple);
}

@media (max-width: 900px) {
	.primary-navigation {
		position: absolute;
		top: 100%;
		right: 1rem;
		left: 1rem;
		display: none;
		padding: 1rem;
		background: var(--pd-white);
		border: 1px solid var(--pd-border);
		box-shadow: var(--pd-shadow);
	}

	.primary-navigation.is-open {
		display: block;
	}

	.primary-navigation ul {
		align-items: stretch;
		flex-direction: column;
		gap: 0;
	}

	.primary-navigation li + li {
		border-top: 1px solid var(--pd-border);
	}

	.primary-navigation a {
		padding: 0.8rem 0.4rem;
	}

	.menu-toggle {
		display: inline-flex;
	}

	.card-grid,
	.book-grid,
	.woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.site-footer__grid {
		grid-template-columns: 1fr 1fr;
	}

	.site-footer__brand {
		grid-column: 1 / -1;
	}
}

/* Dedicated page experiences */
.page-header--sand {
	background: var(--pd-sand);
}

.page-header--stone {
	background: var(--pd-stone);
}

.page-header--sand h1,
.page-header--stone h1 {
	color: var(--pd-navy);
}

.page-header--sand .eyebrow,
.page-header--stone .eyebrow {
	color: var(--pd-purple);
}

.page-header--sand .page-header__description,
.page-header--stone .page-header__description {
	color: var(--pd-muted);
}

.page-header--navy {
	background: var(--pd-navy);
	color: var(--pd-cream);
}

.page-header--navy h1,
.page-header--navy .page-header__description,
.page-header--navy .eyebrow {
	color: var(--pd-cream);
}

.about-story__lead {
	color: var(--pd-purple);
	font-size: clamp(1.3rem, 2vw, 1.7rem);
	line-height: 1.55;
}

.about-story blockquote {
	margin: 2.5rem 0;
	padding-left: 1.5rem;
	border-left: 3px solid var(--pd-gold);
	color: var(--pd-purple);
	font-size: 1.35rem;
	font-style: italic;
	line-height: 1.5;
}

.books-page,
.events-page,
.resources-page {
	background: var(--pd-cream);
}

.books-page__intro,
.events-page__intro,
.resources-page__intro {
	max-width: 52rem;
	margin-bottom: 4rem;
}

.catalogue-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 2rem;
}

.catalogue-card {
	display: flex;
	flex-direction: column;
	background: var(--pd-white);
}

.catalogue-card__cover {
	display: block;
	overflow: hidden;
	background: var(--pd-sand);
}

.catalogue-card__cover img {
	display: block;
	width: 100%;
	aspect-ratio: 2 / 3;
	object-fit: contain;
	transition: transform 300ms ease;
}

.catalogue-card:hover .catalogue-card__cover img {
	transform: scale(1.025);
}

.catalogue-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 1.5rem;
}

.catalogue-card__body h2 {
	margin: 0.4rem 0 0.75rem;
	font-size: 1.25rem;
	line-height: 1.15;
}

.catalogue-card__body h2 a {
	color: var(--pd-navy);
	text-decoration: none;
}

.catalogue-card__description {
	color: var(--pd-muted);
	font-size: 0.9rem;
	line-height: 1.65;
}

.catalogue-card__description p {
	margin: 0;
}

.catalogue-card__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: auto;
	padding-top: 1.25rem;
}

.catalogue-card__footer strong {
	color: var(--pd-purple);
	font-size: 0.95rem;
}

.catalogue-card .button--small {
	align-self: flex-start;
	margin-top: 1.25rem;
}

.button--small {
	padding: 0.75rem 1rem;
	font-size: 0.62rem;
}

.catalogue-empty {
	max-width: 44rem;
	padding: 3rem;
	border: 1px solid rgba(182, 138, 66, 0.4);
	background: var(--pd-white);
}

.catalogue-empty h2,
.catalogue-empty h3 {
	margin-top: 0;
}

.catalogue-empty p {
	color: var(--pd-muted);
	line-height: 1.7;
}

.catalogue-empty .button {
	margin-top: 1rem;
}

.events-list {
	display: grid;
	gap: 1.5rem;
}

.event-list-card {
	display: grid;
	grid-template-columns: minmax(15rem, 0.75fr) 1.25fr;
	background: var(--pd-white);
}

.event-list-card__image {
	display: block;
	min-height: 100%;
	overflow: hidden;
	background: var(--pd-sand);
}

.event-list-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 18rem;
	object-fit: cover;
}

.event-list-card__content {
	padding: clamp(1.5rem, 4vw, 3rem);
}

.event-list-card__content h2 {
	margin: 0.7rem 0 1rem;
	font-size: clamp(1.6rem, 3vw, 2.5rem);
	line-height: 1.05;
}

.event-list-card__content h2 a {
	color: var(--pd-navy);
	text-decoration: none;
}

.event-list-card__content > p:not(.eyebrow):not(.event-list-card__meta) {
	color: var(--pd-muted);
	line-height: 1.7;
}

.event-list-card__meta {
	color: var(--pd-purple);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.event-list-card__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 1.5rem;
	margin-top: 1.5rem;
}

.resource-directory,
.resource-posts {
	padding-block: 1rem 5rem;
}

.resource-directory h2,
.resource-posts h2 {
	margin: 0.5rem 0 2rem;
	color: var(--pd-navy);
	font-size: clamp(2rem, 4vw, 3.5rem);
}

.resource-category-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1rem;
}

.resource-category-card {
	position: relative;
	display: flex;
	min-height: 9rem;
	flex-direction: column;
	justify-content: space-between;
	padding: 1.3rem;
	background: var(--pd-purple);
	color: var(--pd-cream);
	text-decoration: none;
	transition: transform 200ms ease, background 200ms ease;
}

.resource-category-card:hover,
.resource-category-card:focus-visible {
	background: var(--pd-navy);
	transform: translateY(-0.2rem);
}

.resource-category-card strong {
	max-width: 12rem;
	font-size: 1.1rem;
}

.resource-category-card span {
	color: var(--pd-gold-light);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.resource-category-card b {
	position: absolute;
	top: 1.2rem;
	right: 1.2rem;
}

.resource-post-card__image {
	display: block;
	margin: -2rem -2rem 1.5rem;
}

.resource-post-card__image img {
	display: block;
	width: 100%;
	aspect-ratio: 1.6;
	object-fit: cover;
}

.resource-post-card .text-link {
	margin-top: 1rem;
}

@media (max-width: 900px) {
	.catalogue-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.event-list-card {
		grid-template-columns: 1fr;
	}

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

@media (max-width: 640px) {
	.catalogue-grid,
	.resource-category-grid {
		grid-template-columns: 1fr;
	}

	.catalogue-empty {
		padding: 2rem 1.5rem;
	}

	.event-list-card__content {
		padding: 1.5rem;
	}

	.resource-post-card__image {
		margin: -1.25rem -1.25rem 1.25rem;
	}
}

@media (max-width: 640px) {
	.site-container {
		width: min(calc(100% - 1.5rem), var(--pd-content));
	}

	.site-header__inner {
		min-height: 4.5rem;
	}

	.site-branding img {
		width: 10.5rem;
	}

	.hero {
		min-height: 38rem;
	}

	.hero__media img {
		object-position: 62% center;
	}

	.hero__media::after {
		background: linear-gradient(180deg, rgba(11, 18, 48, 0.34), rgba(11, 18, 48, 0.92) 72%);
	}

	.section-heading,
	.intro-grid,
	.split-feature,
	.contact-grid,
	.event-panel {
		display: block;
	}

	.section-heading > * + * {
		margin-top: 1rem;
	}

	.intro-grid__image,
	.split-feature__image {
		margin-bottom: 2.5rem;
	}

	.card-grid,
	.book-grid,
	.woocommerce ul.products {
		grid-template-columns: 1fr;
	}

	.event-panel__side {
		margin-top: 1.5rem;
		padding-top: 1.5rem;
		padding-left: 0;
		border-top: 1px solid var(--pd-border);
		border-left: 0;
	}

	.banner-feature {
		min-height: 24rem;
	}

	.banner-feature__content {
		padding: var(--pd-space-3) 1rem;
	}

	.site-footer__grid {
		grid-template-columns: 1fr;
	}

	.site-footer__brand {
		grid-column: auto;
	}

	.site-footer__bottom {
		display: block;
	}

	.site-footer__bottom > * + * {
		margin-top: 0.5rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}

/*
 * Selected premium homepage direction.
 *
 * These classes are scoped to the homepage so WooCommerce, event-plugin and
 * content templates keep their existing presentation hooks.
 */
:root {
	--pd-navy: #171e3a;
	--pd-navy-deep: #11162f;
	--pd-purple: #4b3b73;
	--pd-purple-soft: #715c98;
	--pd-gold: #b68a42;
	--pd-gold-light: #d7b675;
	--pd-cream: #f7f1e7;
	--pd-sand: #eee6da;
	--pd-stone: #e7ded2;
	--pd-ink: #263150;
	--pd-muted: #665f58;
	--pd-border: rgba(38, 49, 80, 0.16);
	--pd-content: 1380px;
	--pd-serif: "DM Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
	--pd-sans: "DM Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.site-header--overlay {
	position: absolute;
	inset: 0 0 auto;
	background: transparent;
	border-bottom-color: rgba(247, 241, 231, 0.15);
	color: var(--pd-cream);
}

.site-header--overlay .site-header__inner {
	width: min(calc(100% - 3rem), 1480px);
	min-height: 5.75rem;
}

.site-header--overlay .site-branding img {
	width: min(13.4rem, 42vw);
}

.site-header--overlay .primary-navigation a {
	color: rgba(247, 241, 231, 0.86);
	font-size: 0.8rem;
	letter-spacing: 0.18em;
}

.site-header--overlay .primary-navigation a:hover,
.site-header--overlay .primary-navigation .current-menu-item > a {
	color: var(--pd-gold-light);
}

.site-header__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.65rem;
	min-height: 3.25rem;
	padding: 0.8rem 1.45rem;
	border: 1px solid rgba(182, 138, 66, 0.85);
	color: inherit;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	line-height: 1.2;
	text-decoration: none;
	text-transform: uppercase;
	transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}

.site-header__cta:hover,
.site-header__cta:focus-visible {
	background: var(--pd-gold);
	border-color: var(--pd-gold);
	color: var(--pd-navy);
}

.site-header:not(.site-header--overlay) .site-header__cta {
	color: var(--pd-navy);
}

.pd-home {
	overflow: hidden;
	background: var(--pd-cream);
	color: var(--pd-ink);
	font-family: "DM Sans", sans-serif;
}

.pd-home h1,
.pd-home h2,
.pd-home h3 {
	font-family: var(--pd-sans);
	font-weight: 400;
}

.pd-container {
	width: min(calc(100% - 3rem), var(--pd-content));
	margin-inline: auto;
}

.pd-anchor-offset {
	scroll-margin-top: 6rem;
}

.pd-eyebrow {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0 0 1.25rem;
	color: #977447;
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.26em;
	line-height: 1.2;
	text-transform: uppercase;
}

.pd-eyebrow > span {
	display: inline-block;
	width: 2rem;
	height: 1px;
	background: currentColor;
}

.pd-eyebrow--light {
	color: var(--pd-gold-light);
}

.pd-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.8rem;
	min-height: 3.25rem;
	padding: 0.9rem 1.25rem;
	border: 1px solid transparent;
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.19em;
	line-height: 1.2;
	text-decoration: none;
	text-transform: uppercase;
	transition: transform 180ms ease, background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}

.pd-button:hover,
.pd-button:focus-visible {
	transform: translateY(-2px);
}

.pd-button--gold {
	background: var(--pd-gold);
	color: var(--pd-navy);
}

.pd-button--gold:hover,
.pd-button--gold:focus-visible {
	background: var(--pd-gold-light);
	color: var(--pd-navy);
}

.pd-button--purple {
	background: var(--pd-purple);
	color: var(--pd-cream);
}

.pd-button--purple:hover,
.pd-button--purple:focus-visible {
	background: #362b55;
	color: var(--pd-cream);
}

.pd-button--ink {
	background: var(--pd-navy);
	color: var(--pd-cream);
}

.pd-button--ink:hover,
.pd-button--ink:focus-visible {
	background: var(--pd-purple);
	color: var(--pd-cream);
}

.pd-text-link {
	display: inline-flex;
	align-items: center;
	gap: 0.8rem;
	border-bottom: 1px solid rgba(182, 138, 66, 0.65);
	padding-bottom: 0.55rem;
	color: var(--pd-navy);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	line-height: 1.3;
	text-decoration: none;
	text-transform: uppercase;
	transition: border-color 180ms ease, color 180ms ease;
}

.pd-text-link:hover,
.pd-text-link:focus-visible {
	border-color: var(--pd-purple-soft);
	color: var(--pd-purple-soft);
}

.pd-text-link--light {
	border-color: rgba(215, 182, 117, 0.55);
	color: var(--pd-cream);
}

.pd-text-link--light:hover,
.pd-text-link--light:focus-visible {
	border-color: var(--pd-gold-light);
	color: var(--pd-gold-light);
}

.pd-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: min(54rem, 100vh);
	overflow: hidden;
	background: var(--pd-navy);
	color: var(--pd-cream);
}

.pd-hero__inner {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: 0.92fr 1.08fr;
	align-items: center;
	min-height: min(54rem, 100vh);
	padding-top: 5.75rem;
}

.pd-hero__copy {
	position: relative;
	z-index: 3;
	max-width: 44rem;
	padding-block: 5rem 5.5rem;
}

.pd-hero h1 {
	max-width: 8ch;
	margin: 0;
	color: var(--pd-cream);
	font-size: clamp(4.2rem, 8.8vw, 9rem);
	letter-spacing: -0.07em;
	line-height: 0.87;
}

.pd-hero h1 em {
	color: var(--pd-gold-light);
	font-style: italic;
}

.pd-hero__intro {
	max-width: 25rem;
	margin: 2.2rem 0 0;
	color: rgba(247, 241, 231, 0.66);
	font-size: 0.92rem;
	line-height: 1.9;
}

.pd-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.5rem;
	margin-top: 2.3rem;
}

.pd-hero__media {
	position: absolute;
	inset: 5.75rem 0 0 auto;
	z-index: 1;
	width: 57%;
	overflow: hidden;
	background: #3b315d;
	-webkit-mask-image: linear-gradient(to right, transparent 0%, #000 13%, #000 100%);
	mask-image: linear-gradient(to right, transparent 0%, #000 13%, #000 100%);
}

.pd-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 70% top;
}

.pd-hero__blend {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, var(--pd-navy) 0%, rgba(23, 30, 58, 0.46) 31%, transparent 72%);
}

.pd-hero__glow {
	position: absolute;
	top: 8rem;
	right: -7rem;
	width: 34rem;
	height: 34rem;
	border-radius: 50%;
	background: rgba(75, 59, 115, 0.36);
	filter: blur(4rem);
}

.pd-hero__rings,
.pd-hero__rings::after {
	position: absolute;
	border: 1px solid rgba(182, 138, 66, 0.2);
	border-radius: 50%;
	content: "";
}

.pd-hero__rings {
	bottom: -19rem;
	left: 31%;
	width: 32rem;
	height: 32rem;
}

.pd-hero__rings::after {
	inset: 4rem;
}

.pd-hero__portrait-caption {
	position: absolute;
	z-index: 3;
	top: 40%;
	right: 7%;
	display: grid;
	place-items: center;
	width: 7.5rem;
	height: 7.5rem;
	border: 1px solid rgba(215, 182, 117, 0.7);
	border-radius: 50%;
	color: var(--pd-gold-light);
	font-size: 0.58rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	line-height: 1.6;
	text-align: center;
	text-transform: uppercase;
}

.pd-scroll-link {
	position: absolute;
	bottom: 2rem;
	left: max(1.5rem, calc((100vw - var(--pd-content)) / 2));
	z-index: 4;
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	color: rgba(247, 241, 231, 0.45);
	font-size: 0.58rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-decoration: none;
	text-transform: uppercase;
}

.pd-scroll-link:hover {
	color: var(--pd-gold-light);
}

.pd-scroll-link span {
	font-size: 1rem;
}

.pd-section {
	position: relative;
	padding-block: clamp(6rem, 11vw, 10rem);
}

.pd-section--cream {
	background: var(--pd-cream);
}

.pd-section--sand {
	background: var(--pd-sand);
}

.pd-section--stone {
	background: var(--pd-stone);
}

.pd-about {
	display: grid;
	grid-template-columns: 0.75fr 1.25fr;
	gap: clamp(3rem, 9vw, 7rem);
	align-items: center;
	max-width: 1180px;
}

.pd-about__portrait {
	position: relative;
	width: min(100%, 20.5rem);
	margin-top: 2rem;
}

.pd-about__portrait > span {
	position: absolute;
	inset: -1.25rem auto auto -1.25rem;
	width: 100%;
	height: 100%;
	border: 1px solid rgba(182, 138, 66, 0.52);
}

.pd-about__portrait img {
	position: relative;
	z-index: 1;
	width: 100%;
	aspect-ratio: 0.8;
	object-fit: cover;
	object-position: top;
}

.pd-about__portrait strong {
	position: absolute;
	right: -1.3rem;
	bottom: -1.3rem;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 6.6rem;
	height: 6.6rem;
	border-radius: 50%;
	background: var(--pd-purple);
	color: var(--pd-cream);
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.6;
	text-align: center;
	text-transform: uppercase;
}

.pd-about__copy {
	max-width: 48rem;
}

.pd-quote-mark {
	margin-bottom: 1rem;
	color: rgba(182, 138, 66, 0.62);
	font-family: var(--pd-serif);
	font-size: 4.5rem;
	line-height: 0.7;
}

.pd-about h2,
.pd-section-intro h2,
.pd-ministry h2,
.pd-speaking h2,
.pd-gathering h2,
.pd-connect h2 {
	margin: 0;
	color: var(--pd-navy);
	font-size: clamp(2.8rem, 5.5vw, 5.7rem);
	letter-spacing: -0.06em;
	line-height: 0.98;
}

.pd-about h2 span,
.pd-section-intro h2 em,
.pd-ministry h2 em,
.pd-speaking h2 em,
.pd-gathering h2 em,
.pd-connect h2 em {
	color: var(--pd-purple-soft);
	font-style: normal;
}

.pd-about__copy p,
.pd-gathering > div > p {
	max-width: 36rem;
	margin: 1.65rem 0 0;
	color: #625d58;
	font-size: 0.94rem;
	line-height: 2.05;
}

.pd-about__copy .pd-text-link,
.pd-gathering .pd-text-link {
	margin-top: 2rem;
}

.pd-section-intro {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 3rem;
}

.pd-section-intro > div:last-child,
.pd-section-intro > p {
	max-width: 21rem;
	margin: 0 0 0.5rem;
	color: #665f58;
	font-size: 0.88rem;
	line-height: 1.9;
}

.pd-section-intro h2 {
	font-size: clamp(3rem, 5.8vw, 5.9rem);
}

.pd-section-intro h2 em {
	color: var(--pd-purple-soft);
}

.pd-section-intro .pd-text-link {
	margin-top: 1.3rem;
}

.pd-decoration-ring {
	position: absolute;
	top: 2rem;
	right: -6rem;
	width: 18rem;
	height: 18rem;
	border: 1px solid rgba(182, 138, 66, 0.24);
	border-radius: 50%;
}

.pd-decoration-ring::after {
	position: absolute;
	inset: 2.5rem;
	border: 1px solid rgba(182, 138, 66, 0.2);
	border-radius: 50%;
	content: "";
}

.pd-books-feature {
	display: grid;
	grid-template-columns: 1fr 1.35fr;
	gap: clamp(3rem, 8vw, 6rem);
	align-items: center;
	margin-top: 4.5rem;
}

.pd-books-feature__stage {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 27rem;
	padding: 3rem;
	background: #e6dccc;
}

.pd-book-stage__backdrop {
	position: absolute;
	width: 15rem;
	height: 22rem;
	transform: translate(1.8rem, 0.8rem) rotate(9deg);
	background: #cfc1ad;
	box-shadow: 0 1.5rem 2.2rem rgba(44, 38, 48, 0.12);
}

.pd-books-feature__stage img {
	position: relative;
	z-index: 1;
	width: min(100%, 14rem);
	aspect-ratio: 0.68;
	object-fit: cover;
	box-shadow: 1rem 1.3rem 2.2rem rgba(44, 38, 48, 0.2);
}

.pd-books-feature__details {
	max-width: 37rem;
}

.pd-book-label {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0 0 1.4rem;
	color: #977447;
	font-size: 0.63rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.pd-books-feature__details h3 {
	margin: 0;
	color: var(--pd-navy);
	font-size: clamp(2.2rem, 4.2vw, 4.1rem);
	letter-spacing: -0.055em;
	line-height: 1;
}

.pd-books-feature__details > p:not(.pd-book-label) {
	max-width: 25rem;
	margin: 1.4rem 0 0;
	color: #665f58;
	font-size: 0.92rem;
	line-height: 1.9;
}

.pd-book-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.6rem;
	margin-top: 2.2rem;
}

.pd-book-cart {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	border-bottom: 1px solid rgba(182, 138, 66, 0.65);
	padding-bottom: 0.35rem;
	color: var(--pd-purple);
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	line-height: 1.3;
	text-decoration: none;
	text-transform: uppercase;
}

.pd-book-cart:hover,
.pd-book-cart:focus-visible {
	border-color: var(--pd-purple);
	color: var(--pd-navy);
}

.pd-book-controls {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	color: #8b8177;
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.14em;
}

.pd-icon-button {
	display: inline-grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border: 1px solid rgba(182, 138, 66, 0.6);
	background: transparent;
	color: var(--pd-purple);
	font-size: 1rem;
	line-height: 1;
	cursor: pointer;
	transition: background-color 180ms ease, color 180ms ease;
}

.pd-icon-button:hover,
.pd-icon-button:focus-visible {
	background: var(--pd-cream);
	color: var(--pd-navy);
}

.pd-book-browser {
	display: flex;
	gap: 1.25rem;
	overflow-x: auto;
	margin-top: 4.5rem;
	padding: 1rem 0 1.25rem;
	scrollbar-width: none;
}

.pd-book-browser::-webkit-scrollbar {
	display: none;
}

.pd-book-card {
	flex: 0 0 8.7rem;
	padding: 0;
	border: 0;
	background: transparent;
	color: #6e665d;
	text-align: left;
	cursor: pointer;
	transition: transform 300ms ease, color 180ms ease;
}

.pd-book-card:hover,
.pd-book-card.is-active {
	transform: translateY(-0.75rem);
	color: var(--pd-purple);
}

.pd-book-card__cover {
	display: block;
	aspect-ratio: 0.68;
	overflow: hidden;
	background: #e3d9ca;
	box-shadow: 0.5rem 0.75rem 1.4rem rgba(29, 28, 52, 0.16);
}

.pd-book-card.is-active .pd-book-card__cover {
	outline: 2px solid var(--pd-gold);
	outline-offset: 4px;
}

.pd-book-card__cover img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 400ms ease;
}

.pd-book-card:hover .pd-book-card__cover img {
	transform: scale(1.04);
}

.pd-book-card__title {
	display: block;
	margin-top: 1rem;
	font-size: 0.6rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.45;
	text-transform: uppercase;
}

.pd-section--purple {
	background: var(--pd-purple);
	color: var(--pd-cream);
}

.pd-ministry {
	display: grid;
	grid-template-columns: 0.78fr 1.22fr;
	gap: clamp(3rem, 9vw, 7rem);
}

.pd-ministry h2,
.pd-speaking h2 {
	color: var(--pd-cream);
	font-size: clamp(3rem, 5.8vw, 5.8rem);
}

.pd-ministry h2 em,
.pd-speaking h2 em {
	color: var(--pd-gold-light);
}

.pd-ministry > div:first-child > p {
	max-width: 25rem;
	margin: 2rem 0 0;
	color: rgba(247, 241, 231, 0.65);
	font-size: 0.94rem;
	line-height: 2;
}

.pd-ministry__list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	border-top: 1px solid rgba(247, 241, 231, 0.2);
}

.pd-ministry__list a {
	position: relative;
	display: block;
	min-height: 13rem;
	padding: 1.8rem 1.5rem;
	border-bottom: 1px solid rgba(247, 241, 231, 0.2);
	color: var(--pd-cream);
	text-decoration: none;
	transition: background-color 180ms ease;
}

.pd-ministry__list a:nth-child(odd) {
	border-right: 1px solid rgba(247, 241, 231, 0.2);
	padding-left: 0;
}

.pd-ministry__list a:nth-child(even) {
	padding-right: 0;
}

.pd-ministry__list a:hover,
.pd-ministry__list a:focus-visible {
	background: rgba(247, 241, 231, 0.05);
}

.pd-ministry__list span {
	display: block;
	margin-bottom: 2.3rem;
	color: var(--pd-gold-light);
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.18em;
}

.pd-ministry__list strong {
	display: block;
	font-family: var(--pd-serif);
	font-size: 1.65rem;
	font-weight: 400;
	letter-spacing: -0.03em;
}

.pd-ministry__list p {
	max-width: 15rem;
	margin: 0.8rem 0 0;
	color: rgba(247, 241, 231, 0.6);
	font-size: 0.8rem;
	line-height: 1.75;
}

.pd-ministry__list b {
	position: absolute;
	top: 1.8rem;
	right: 0;
	color: var(--pd-gold-light);
	font-size: 1rem;
	font-weight: 400;
}

.pd-speaking {
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	min-height: 37rem;
	background: var(--pd-navy);
	color: var(--pd-cream);
}

.pd-speaking__image {
	position: relative;
	min-height: 24rem;
	overflow: hidden;
}

.pd-speaking__image::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, transparent 35%, var(--pd-navy) 100%);
	content: "";
}

.pd-speaking__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	opacity: 0.86;
}

.pd-speaking__copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 5rem clamp(2rem, 6vw, 5.5rem);
}

.pd-speaking__copy > p:not(.pd-eyebrow) {
	max-width: 27rem;
	margin: 2rem 0 0;
	color: rgba(247, 241, 231, 0.66);
	font-size: 0.94rem;
	line-height: 2;
}

.pd-speaking__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.5rem;
	margin-top: 2.2rem;
}

.pd-gathering {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(3rem, 8vw, 7rem);
	align-items: center;
	max-width: 1180px;
}

.pd-gathering h2 em {
	color: var(--pd-purple-soft);
}

.pd-event-shell {
	border: 1px solid #cdbb9e;
	background: var(--pd-sand);
}

.pd-event-card,
.pd-event-shell .event-panel,
.pd-event-shell > * {
	padding: clamp(2rem, 4vw, 3.2rem);
}

.pd-event-card__status {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	color: #977447;
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.pd-event-card__status span {
	width: 0.45rem;
	height: 0.45rem;
	border-radius: 50%;
	background: var(--pd-gold);
}

.pd-event-card h3,
.pd-event-shell .event-panel h3 {
	max-width: 20rem;
	margin: 3rem 0 0;
	color: var(--pd-navy);
	font-size: 2rem;
	letter-spacing: -0.04em;
	line-height: 1.05;
}

.pd-event-card p,
.pd-event-shell .event-panel p {
	max-width: 21rem;
	margin: 1.2rem 0 0;
	color: #665f58;
	font-size: 0.8rem;
	line-height: 1.8;
}

.pd-event-card .pd-text-link,
.pd-event-shell .event-panel a {
	margin-top: 1.8rem;
}

.pd-event-shell .event-panel {
	display: block;
	margin: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.pd-event-shell .event-panel__side {
	display: block;
	margin-top: 1.5rem;
	padding: 1.5rem 0 0;
	border-top: 1px solid rgba(38, 49, 80, 0.14);
	border-left: 0;
}

.pd-section-intro--border {
	padding-bottom: 2.5rem;
	border-bottom: 1px solid rgba(182, 138, 66, 0.42);
}

.pd-resource-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	margin-top: 1px;
	background: rgba(182, 138, 66, 0.35);
}

.pd-resource-grid a {
	position: relative;
	display: block;
	min-height: 19rem;
	padding: clamp(2rem, 4vw, 3rem);
	background: var(--pd-stone);
	color: var(--pd-ink);
	text-decoration: none;
	transition: background-color 180ms ease;
}

.pd-resource-grid a:hover,
.pd-resource-grid a:focus-visible {
	background: var(--pd-cream);
}

.pd-resource-grid span {
	display: block;
	color: #977447;
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.19em;
	text-transform: uppercase;
}

.pd-resource-grid strong {
	display: block;
	margin-top: 4.5rem;
	font-family: var(--pd-serif);
	font-size: 1.85rem;
	font-weight: 400;
	letter-spacing: -0.04em;
}

.pd-resource-grid p {
	max-width: 16rem;
	margin: 0.8rem 0 0;
	color: #665f58;
	font-size: 0.8rem;
	line-height: 1.75;
}

.pd-resource-grid b {
	position: absolute;
	right: 2rem;
	bottom: 2rem;
	color: var(--pd-purple);
	font-size: 1.1rem;
	font-weight: 400;
}

.pd-connect {
	position: relative;
	overflow: hidden;
	padding-block: clamp(6rem, 11vw, 10rem);
	background: var(--pd-gold);
	color: var(--pd-navy);
}

.pd-connect__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	gap: clamp(3rem, 9vw, 7rem);
	max-width: 1180px;
}

.pd-connect h2 {
	color: var(--pd-navy);
	font-size: clamp(3.2rem, 6.4vw, 6.5rem);
}

.pd-connect h2 em {
	color: var(--pd-navy);
}

.pd-connect__inner > div:first-child > p:not(.pd-eyebrow) {
	max-width: 27rem;
	margin: 2rem 0 0;
	color: rgba(23, 30, 58, 0.7);
	font-size: 0.94rem;
	line-height: 2;
}

.pd-connect__inner > div:first-child .pd-button {
	margin-top: 2.3rem;
}

.pd-connect__form {
	padding-top: 0.25rem;
	border-top: 1px solid rgba(23, 30, 58, 0.24);
}

.pd-form-label {
	margin: 0 0 2rem;
	padding-top: 1.5rem;
	color: rgba(23, 30, 58, 0.65);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

.pd-connect__form p:not(.pd-form-label) {
	max-width: 24rem;
	color: rgba(23, 30, 58, 0.72);
	font-size: 0.9rem;
	line-height: 1.8;
}

.pd-connect__form form,
.pd-connect__form .wpcf7 {
	max-width: 100%;
}

.pd-connect__form label,
.pd-connect__form .wpcf7-form p {
	display: block;
	margin: 0 0 1.4rem;
	color: rgba(23, 30, 58, 0.68);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	line-height: 1.4;
	text-transform: uppercase;
}

.pd-connect__form input[type="text"],
.pd-connect__form input[type="email"],
.pd-connect__form input[type="tel"],
.pd-connect__form input[type="url"],
.pd-connect__form textarea,
.pd-connect__form select {
	display: block;
	width: 100%;
	margin-top: 0.65rem;
	padding: 0.75rem 0;
	border: 0;
	border-bottom: 1px solid rgba(23, 30, 58, 0.35);
	border-radius: 0;
	background: transparent;
	color: var(--pd-navy);
	font-size: 0.95rem;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.5;
	text-transform: none;
}

.pd-connect__form textarea {
	min-height: 5rem;
	resize: vertical;
}

.pd-connect__form input:focus,
.pd-connect__form textarea:focus,
.pd-connect__form select:focus {
	outline: 0;
	border-bottom-color: var(--pd-navy);
}

.pd-connect__form input[type="submit"],
.pd-connect__form button[type="submit"] {
	margin-top: 0.5rem;
	border: 1px solid var(--pd-navy);
	background: transparent;
	color: var(--pd-navy);
	cursor: pointer;
}

.pd-connect__form input[type="submit"]:hover,
.pd-connect__form input[type="submit"]:focus-visible,
.pd-connect__form button[type="submit"]:hover,
.pd-connect__form button[type="submit"]:focus-visible {
	background: var(--pd-navy);
	color: var(--pd-cream);
}

.pd-connect__form .wpcf7-not-valid-tip {
	display: block;
	margin-top: 0.35rem;
	color: #4b1f25;
	font-size: 0.72rem;
	letter-spacing: 0;
	text-transform: none;
}

.pd-connect__form .wpcf7-response-output {
	margin: 1.5rem 0 0;
	padding: 0.8rem 1rem;
	border: 1px solid rgba(23, 30, 58, 0.4);
	font-size: 0.8rem;
	letter-spacing: 0;
	line-height: 1.5;
	text-transform: none;
}

.pd-connect__rings {
	position: absolute;
	top: -7rem;
	right: -5rem;
	width: 20rem;
	height: 20rem;
	border: 1px solid rgba(23, 30, 58, 0.15);
	border-radius: 50%;
}

.pd-connect__rings::after {
	position: absolute;
	inset: 3.5rem;
	border: 1px solid rgba(23, 30, 58, 0.15);
	border-radius: 50%;
	content: "";
}

.pd-section--white {
	background: var(--pd-white);
}

.pd-homepage-content .prose {
	max-width: min(100%, var(--pd-reading));
}

.pd-homepage-content .prose > :first-child {
	margin-top: 0;
}

.pd-testimonial {
	padding-block: clamp(4rem, 8vw, 7rem);
	background: var(--pd-purple);
	color: var(--pd-cream);
	text-align: center;
}

.pd-testimonial .pd-container {
	max-width: 67rem;
}

.pd-testimonial blockquote {
	margin: 0;
	font-family: var(--pd-sans);
	font-size: clamp(2rem, 4vw, 4rem);
	font-weight: 400;
	letter-spacing: -0.055em;
	line-height: 1.1;
}

.pd-testimonial cite {
	display: block;
	margin-top: 1.6rem;
	color: var(--pd-gold-light);
	font-size: 0.65rem;
	font-style: normal;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.pd-book-meta {
	margin: 0.85rem 0 0;
	color: #897f75;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.pd-books-empty {
	max-width: 42rem;
	margin-top: 3.5rem;
	padding: 2rem;
	border: 1px solid rgba(182, 138, 66, 0.45);
	background: rgba(247, 241, 231, 0.45);
}

.pd-books-empty p {
	margin: 0;
	color: var(--pd-muted);
	line-height: 1.8;
}

.pd-books-empty .pd-text-link {
	margin-top: 1.5rem;
}

.event-panel__media {
	margin: -3.2rem -3.2rem 2rem;
	overflow: hidden;
}

.event-panel__media img {
	width: 100%;
	aspect-ratio: 1.9;
	object-fit: cover;
}

.event-panel__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	margin-top: 1rem;
	color: #977447;
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	line-height: 1.5;
	text-transform: uppercase;
}

.event-panel__meta span + span::before {
	margin-right: 1rem;
	color: var(--pd-gold);
	content: "•";
}

.pd-follow {
	padding-block: clamp(5rem, 9vw, 8rem);
	background: var(--pd-cream);
}

.pd-follow__inner {
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	gap: clamp(3rem, 9vw, 7rem);
	align-items: end;
	max-width: 1180px;
}

.pd-follow h2 {
	margin: 0;
	color: var(--pd-navy);
	font-family: var(--pd-sans);
	font-size: clamp(2.8rem, 5.5vw, 5.7rem);
	font-weight: 400;
	letter-spacing: -0.06em;
	line-height: 0.98;
}

.pd-follow h2 em {
	color: var(--pd-purple-soft);
	font-style: normal;
}

.pd-social-links,
.contact-social-links,
.site-footer__social {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.6rem;
}

.pd-social-links a,
.contact-social-links a,
.site-footer__social a {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-decoration: none;
	text-transform: uppercase;
}

.pd-social-links a {
	border-bottom: 1px solid rgba(182, 138, 66, 0.65);
	padding-bottom: 0.55rem;
	color: var(--pd-purple);
}

.pd-newsletter {
	margin-top: 2.5rem;
	padding-top: 2rem;
	border-top: 1px solid rgba(38, 49, 80, 0.16);
}

.pd-newsletter > p {
	margin: 0 0 1rem;
	color: var(--pd-muted);
	font-size: 0.88rem;
}

.pd-newsletter form {
	display: flex;
	flex-wrap: wrap;
	gap: 0.7rem;
}

.pd-newsletter input[type="email"],
.pd-newsletter input[type="text"] {
	min-width: min(100%, 15rem);
	flex: 1;
	padding: 0.78rem 0.85rem;
	border: 1px solid rgba(38, 49, 80, 0.3);
	background: var(--pd-white);
	color: var(--pd-ink);
}

.pd-newsletter input[type="submit"],
.pd-newsletter button[type="submit"] {
	padding: 0.78rem 1rem;
	border: 1px solid var(--pd-navy);
	background: var(--pd-navy);
	color: var(--pd-cream);
	cursor: pointer;
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.site-footer__extras {
	display: flex;
	flex-wrap: wrap;
	align-items: start;
	justify-content: space-between;
	gap: 2rem;
	margin-top: 2.8rem;
	padding-top: 2rem;
	border-top: 1px solid rgba(247, 241, 231, 0.15);
}

.site-footer__social a {
	color: rgba(247, 241, 231, 0.75);
}

.site-footer__social a:hover,
.site-footer__social a:focus-visible {
	color: var(--pd-gold-light);
}

.site-footer__newsletter {
	max-width: 28rem;
}

.site-footer__newsletter p {
	margin: 0 0 1rem;
	color: rgba(247, 241, 231, 0.65);
	font-size: 0.85rem;
}

.site-footer__newsletter form {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
}

.site-footer__newsletter input[type="email"],
.site-footer__newsletter input[type="text"] {
	min-width: 13rem;
	flex: 1;
	padding: 0.72rem 0.8rem;
	border: 1px solid rgba(247, 241, 231, 0.3);
	background: transparent;
	color: var(--pd-cream);
}

.site-footer__newsletter input[type="submit"],
.site-footer__newsletter button[type="submit"] {
	padding: 0.72rem 0.9rem;
	border: 1px solid var(--pd-gold);
	background: var(--pd-gold);
	color: var(--pd-navy);
	cursor: pointer;
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.contact-social-links {
	margin: 1.7rem 0 2rem;
}

.contact-social-links a {
	color: var(--pd-purple);
}

.form-card__supporting-link {
	margin: 1.5rem 0 0;
	font-size: 0.85rem;
}

.form-card__privacy {
	margin: 1rem 0 0;
	color: var(--pd-muted);
	font-size: 0.75rem;
	line-height: 1.7;
}

.pd-home + .site-footer {
	background: var(--pd-navy);
}

.pd-home + .site-footer .site-container {
	width: min(calc(100% - 3rem), var(--pd-content));
}

@media (max-width: 1100px) {
	.site-header--overlay .site-header__cta {
		display: none;
	}

	.pd-hero h1 {
		font-size: clamp(4rem, 8vw, 7rem);
	}
}

@media (max-width: 1024px) {
	.site-header--overlay .primary-navigation {
		position: absolute;
		top: 100%;
		right: 0;
		left: 0;
		display: none;
		padding: 1rem 1.5rem;
		border-top: 1px solid rgba(247, 241, 231, 0.14);
		background: var(--pd-navy);
	}

	.site-header--overlay .primary-navigation.is-open {
		display: block;
	}

	.site-header--overlay .menu-toggle {
		display: grid;
		place-items: center;
		width: 3.5rem;
		height: 3.5rem;
		padding: 0;
		border: 1px solid rgba(247, 241, 231, 0.45);
		color: var(--pd-cream);
	}

	.pd-hero__inner {
		grid-template-columns: 1fr;
		min-height: 54rem;
	}

	.pd-hero__media,
	.pd-hero__portrait-caption {
		display: none;
	}

	.pd-hero__copy {
		max-width: 42rem;
		padding-block: 8rem 5.5rem;
	}

	.pd-about,
	.pd-books-feature,
	.pd-ministry,
	.pd-gathering,
	.pd-connect__inner {
		grid-template-columns: 1fr;
	}

	.pd-speaking {
		grid-template-columns: 1fr;
	}

	.pd-speaking__image {
		min-height: 24rem;
	}

	.pd-speaking__image::after {
		background: linear-gradient(180deg, transparent 35%, var(--pd-navy) 100%);
	}

	.pd-speaking__copy {
		padding-inline: max(1.5rem, calc((100vw - var(--pd-content)) / 2));
	}
}

@media (max-width: 900px) {
	.site-header--overlay .site-header__inner {
		width: min(calc(100% - 3rem), 1480px);
	}

	.site-header--overlay .primary-navigation {
		background: var(--pd-navy);
		border-color: rgba(247, 241, 231, 0.14);
	}

	.site-header--overlay .primary-navigation a {
		color: rgba(247, 241, 231, 0.86);
	}

	.site-header--overlay .menu-toggle {
		width: 3.5rem;
		height: 3.5rem;
		padding: 0;
		border: 1px solid rgba(247, 241, 231, 0.45);
		color: var(--pd-cream);
	}

	.site-header--overlay .menu-toggle:hover {
		color: var(--pd-gold-light);
	}

	.pd-hero__inner {
		grid-template-columns: 1fr;
		min-height: 54rem;
		padding-top: 5.75rem;
	}

	.pd-hero__media {
		width: 66%;
	}

	.pd-hero__portrait-caption {
		right: 4%;
	}

	.pd-about,
	.pd-ministry,
	.pd-gathering,
	.pd-connect__inner {
		gap: 4rem;
	}

	.pd-books-feature {
		gap: 3rem;
	}
}

@media (max-width: 640px) {
	.site-header--overlay .site-header__inner,
	.pd-container,
	.pd-home + .site-footer .site-container {
		width: min(calc(100% - 3rem), var(--pd-content));
	}

	.site-header--overlay .site-header__inner {
		min-height: 5.75rem;
	}

	.site-header--overlay .site-branding img {
		width: 10.5rem;
	}

	.pd-hero {
		min-height: 47.5rem;
	}

	.pd-hero__inner {
		display: block;
		min-height: 47.5rem;
		padding-top: 5.75rem;
	}

	.pd-hero__copy {
		padding-block: 12rem 4.5rem;
	}

	.pd-hero h1 {
		max-width: 7.2ch;
		font-size: clamp(3.75rem, 17vw, 5.3rem);
	}

	.pd-hero__intro {
		max-width: 20rem;
		margin-top: 2rem;
		font-size: 0.85rem;
	}

	.pd-hero__actions {
		display: block;
		margin-top: 2rem;
	}

	.pd-hero__actions .pd-text-link {
		margin-top: 1.7rem;
	}

	.pd-hero__media {
		inset: auto 0 0;
		width: 100%;
		height: 16rem;
		opacity: 0.16;
		-webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 55%, #000 100%);
		mask-image: linear-gradient(to bottom, transparent 0%, #000 55%, #000 100%);
	}

	.pd-hero__blend {
		background: linear-gradient(180deg, var(--pd-navy) 0%, rgba(23, 30, 58, 0.2) 75%, var(--pd-navy) 100%);
	}

	.pd-hero__glow {
		top: 10rem;
		right: -15rem;
	}

	.pd-hero__rings {
		bottom: -10rem;
		left: 25%;
		width: 24rem;
		height: 24rem;
	}

	.pd-hero__portrait-caption,
	.pd-scroll-link {
		display: none;
	}

	.pd-section {
		padding-block: 6rem;
	}

	.pd-about,
	.pd-books-feature,
	.pd-ministry,
	.pd-speaking,
	.pd-gathering,
	.pd-connect__inner {
		display: block;
	}

	.pd-about__portrait {
		width: min(75vw, 20.5rem);
		margin-bottom: 4rem;
		margin-left: 1.25rem;
	}

	.pd-about h2,
	.pd-section-intro h2,
	.pd-ministry h2,
	.pd-speaking h2,
	.pd-gathering h2,
	.pd-connect h2 {
		font-size: clamp(2.8rem, 14vw, 4.8rem);
	}

	.pd-section-intro {
		display: block;
	}

	.pd-section-intro > div:last-child,
	.pd-section-intro > p {
		margin-top: 1.8rem;
	}

	.pd-books-feature {
		margin-top: 3rem;
	}

	.pd-books-feature__stage {
		min-height: 23rem;
		padding: 2rem;
	}

	.pd-book-stage__backdrop {
		width: 12rem;
		height: 18rem;
	}

	.pd-books-feature__stage img {
		width: 11.5rem;
	}

	.pd-books-feature__details {
		margin-top: 2.5rem;
	}

	.pd-book-actions {
		display: block;
	}

	.pd-book-controls {
		margin-top: 1.5rem;
	}

	.pd-book-browser {
		margin-top: 3rem;
	}

	.pd-ministry__list {
		grid-template-columns: 1fr;
		margin-top: 3rem;
	}

	.pd-ministry__list a,
	.pd-ministry__list a:nth-child(odd),
	.pd-ministry__list a:nth-child(even) {
		min-height: auto;
		padding: 1.5rem 0;
		border-right: 0;
	}

	.pd-ministry__list span {
		margin-bottom: 1.5rem;
	}

	.pd-ministry__list b {
		right: 0;
	}

	.pd-speaking {
		min-height: 0;
	}

	.pd-speaking__image {
		min-height: 16rem;
	}

	.pd-speaking__image::after {
		background: linear-gradient(180deg, transparent 30%, var(--pd-navy) 100%);
	}

	.pd-speaking__copy {
		padding: 2rem 1.5rem 6rem;
	}

	.pd-speaking__copy > p:not(.pd-eyebrow) {
		margin-top: 1.5rem;
	}

	.pd-gathering > div + div {
		margin-top: 3rem;
	}

	.pd-event-card,
	.pd-event-shell .event-panel,
	.pd-event-shell > * {
		padding: 2rem 1.5rem;
	}

	.event-panel__media {
		margin: -2rem -1.5rem 1.5rem;
	}

	.pd-resource-grid {
		grid-template-columns: 1fr;
		margin-top: 0;
	}

	.pd-resource-grid a {
		min-height: 15rem;
	}

	.pd-resource-grid strong {
		margin-top: 3rem;
	}

	.pd-connect__form {
		margin-top: 4rem;
	}

	.pd-follow__inner {
		display: block;
	}

	.pd-follow__inner > div + div {
		margin-top: 2.5rem;
	}

	.site-footer__extras {
		display: block;
	}

	.site-footer__newsletter {
		margin-top: 2rem;
	}
}

/*
 * Approved Cinematic homepage direction.
 *
 * These styles graduate the selected canvas mockup into the PHP homepage while
 * leaving WooCommerce, event archive and dedicated page templates independent.
 */
:root {
	--pd-serif: "Instrument Serif", Georgia, serif;
	--cd-ink: #10152d;
	--cd-navy: #121a3b;
	--cd-plum: #33233f;
	--cd-plum-deep: #251a32;
	--cd-cream: #f1ebdf;
	--cd-paper: #e3d9cf;
	--cd-gold: #d5ad67;
	--cd-muted: #a9a7b8;
}

.cd-page {
	min-height: 100dvh;
	overflow-x: hidden;
	background: var(--cd-cream);
	color: var(--cd-ink);
	font-family: "DM Sans", sans-serif;
}

.cd-page .cd-display,
.cd-page h1,
.cd-page h2,
.cd-page h3 {
	font-family: "Instrument Serif", Georgia, serif;
	font-weight: 400;
}

.site-header--cinematic {
	border-bottom: 1px solid rgba(241, 235, 223, 0.16);
	color: var(--cd-cream, #f1ebdf);
}

.site-header--cinematic .site-header__inner {
	width: min(calc(100% - 4rem), 1360px);
	min-height: 5.375rem;
}

.site-header--cinematic .site-branding img {
	width: 11.875rem;
}

.site-header--cinematic .primary-navigation ul {
	gap: clamp(1.125rem, 2.4vw, 2.625rem);
}

.site-header--cinematic .primary-navigation a,
.site-header--cinematic .site-header__cta {
	color: rgba(241, 235, 223, 0.68);
	font-family: "Space Mono", monospace;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.18em;
}

.site-header--cinematic .primary-navigation a:hover,
.site-header--cinematic .primary-navigation .current-menu-item > a {
	color: var(--cd-gold, #d5ad67);
}

.site-header--cinematic .site-header__cta {
	min-height: 0;
	border-color: rgba(213, 173, 103, 0.75);
	padding: 0.8125rem 1rem;
	color: var(--cd-cream, #f1ebdf);
}

.site-header--cinematic .site-header__cta:hover,
.site-header--cinematic .site-header__cta:focus-visible {
	border-color: var(--cd-gold, #d5ad67);
	background: var(--cd-gold, #d5ad67);
	color: var(--cd-navy, #121a3b);
}

.cd-grain {
	position: relative;
	isolation: isolate;
}

.cd-grain::after {
	position: absolute;
	z-index: 3;
	inset: 0;
	pointer-events: none;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
	content: "";
	mix-blend-mode: soft-light;
	opacity: 0.075;
}

.cd-section,
.cd-section-inner {
	position: relative;
}

.cd-section {
	padding: 8.25rem 2rem;
}

.cd-section-inner,
.cd-hero-inner {
	width: min(calc(100% - 4rem), 1240px);
	margin-inline: auto;
}

.cd-eyebrow {
	display: flex;
	align-items: center;
	gap: 0.6875rem;
	margin: 0 0 1.5rem;
	color: #876947;
	font-family: "Space Mono", monospace;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.19em;
	line-height: 1.4;
	text-transform: uppercase;
}

.cd-eyebrow span {
	display: block;
	width: 2.0625rem;
	height: 1px;
	background: currentColor;
}

.cd-eyebrow-light {
	color: var(--cd-gold);
}

.cd-hero {
	position: relative;
	min-height: 52.5rem;
	overflow: hidden;
	background: var(--cd-navy);
	color: var(--cd-cream);
}

.cd-hero::before {
	position: absolute;
	z-index: 1;
	inset: 0;
	background: radial-gradient(circle at 73% 31%, rgba(98, 63, 113, 0.64), transparent 33%), linear-gradient(90deg, var(--cd-navy) 0%, rgba(18, 26, 59, 0.96) 38%, rgba(18, 26, 59, 0.57) 58%, rgba(18, 26, 59, 0.08) 100%);
	content: "";
}

.cd-hero-image {
	position: absolute;
	z-index: 0;
	inset: 0 0 0 39%;
	overflow: hidden;
}

.cd-hero-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 57% 20%;
	filter: saturate(0.8) contrast(1.06);
	opacity: 0.9;
}

.cd-hero-image::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, var(--cd-navy) 0%, rgba(18, 26, 59, 0.8) 20%, rgba(18, 26, 59, 0.18) 49%, transparent 70%), linear-gradient(0deg, rgba(18, 26, 59, 0.48), transparent 42%);
	content: "";
}

.cd-hero-inner {
	position: relative;
	z-index: 4;
	display: grid;
	min-height: 52.5rem;
	grid-template-columns: minmax(0, 0.92fr) minmax(31.25rem, 1.08fr);
	padding-top: 8.875rem;
	padding-bottom: 3.4375rem;
}

.cd-hero-copy {
	align-self: center;
	max-width: 41.5rem;
	padding-bottom: 1.625rem;
}

.cd-hero-title {
	max-width: 41.5rem;
	margin: 1.375rem 0 0;
	color: var(--cd-cream);
	font-size: clamp(5rem, 9.7vw, 10.35rem);
	letter-spacing: -0.07em;
	line-height: 0.81;
}

.cd-hero-title em,
.cd-about-copy em,
.cd-books-header em,
.cd-ministry-copy em,
.cd-speaking-copy em,
.cd-residency em,
.cd-resource-heading em {
	color: var(--cd-gold);
	font-style: italic;
}

.cd-about-copy em,
.cd-books-header em,
.cd-residency em,
.cd-resource-heading em {
	color: #765889;
}

.cd-hero-description {
	max-width: 24.375rem;
	margin: 2.3125rem 0 0;
	color: rgba(241, 235, 223, 0.7);
	font-size: 0.9375rem;
	line-height: 1.9;
}

.cd-hero-actions,
.cd-feature-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.5rem;
	margin-top: 1.9375rem;
}

.cd-gold-button,
.cd-plum-button {
	display: inline-flex;
	align-items: center;
	gap: 0.6875rem;
	padding: 1.0625rem 1.1875rem;
	font-family: "Space Mono", monospace;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.19em;
	line-height: 1.2;
	text-decoration: none;
	text-transform: uppercase;
	transition: background 220ms ease, color 220ms ease, transform 220ms ease;
}

.cd-gold-button {
	background: var(--cd-gold);
	color: var(--cd-navy);
}

.cd-gold-button:hover,
.cd-gold-button:focus-visible {
	background: #ead09c;
	color: var(--cd-navy);
	transform: translateY(-2px);
}

.cd-quiet-link,
.cd-editorial-link {
	display: inline-flex;
	align-items: center;
	gap: 0.6875rem;
	font-family: "Space Mono", monospace;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	line-height: 1.3;
	text-decoration: none;
	text-transform: uppercase;
}

.cd-quiet-link {
	color: rgba(241, 235, 223, 0.7);
}

.cd-quiet-link:hover,
.cd-quiet-link:focus-visible {
	color: var(--cd-gold);
}

.cd-editorial-link {
	margin-top: 1.9375rem;
	border-bottom: 1px solid rgba(51, 35, 63, 0.48);
	padding-bottom: 0.625rem;
	color: var(--cd-plum);
}

.cd-editorial-link:hover,
.cd-editorial-link:focus-visible {
	border-color: var(--cd-gold);
	color: var(--cd-navy);
}

.cd-hero-stamp {
	position: absolute;
	top: 30%;
	right: 5%;
	display: grid;
	width: 7.625rem;
	height: 7.625rem;
	place-items: center;
	border: 1px solid rgba(213, 173, 103, 0.72);
	border-radius: 50%;
	color: var(--cd-gold);
	font-family: "Space Mono", monospace;
	font-size: 0.5625rem;
	letter-spacing: 0.15em;
	line-height: 1.6;
	text-align: center;
	text-transform: uppercase;
	transform: rotate(12deg);
}

.cd-hero-side-note {
	position: absolute;
	right: 2rem;
	bottom: 2.9375rem;
	max-width: 9.375rem;
	color: rgba(241, 235, 223, 0.5);
	font-family: "Space Mono", monospace;
	font-size: 0.5625rem;
	letter-spacing: 0.12em;
	line-height: 1.65;
	text-transform: uppercase;
}

.cd-hero-side-note strong {
	display: block;
	margin-bottom: 0.625rem;
	color: var(--cd-gold);
	font-size: 1.0625rem;
	font-weight: 400;
}

.cd-scroll-note {
	position: absolute;
	z-index: 4;
	bottom: 2.625rem;
	left: max(2rem, calc((100vw - 1240px) / 2));
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	color: rgba(241, 235, 223, 0.44);
	font-family: "Space Mono", monospace;
	font-size: 0.5625rem;
	letter-spacing: 0.18em;
	text-decoration: none;
	text-transform: uppercase;
}

.cd-scroll-note:hover {
	color: var(--cd-gold);
}

.cd-reveal {
	animation: cd-reveal 900ms cubic-bezier(0.2, 0.75, 0.25, 1) both;
}

.cd-delay-1 { animation-delay: 120ms; }
.cd-delay-2 { animation-delay: 230ms; }
.cd-delay-3 { animation-delay: 360ms; }

@keyframes cd-reveal {
	from { opacity: 0; transform: translateY(1.375rem); }
	to { opacity: 1; transform: translateY(0); }
}

.cd-about { background: var(--cd-cream); }

.cd-about-grid {
	display: grid;
	grid-template-columns: 0.74fr 1.26fr;
	align-items: center;
	gap: clamp(3.75rem, 10vw, 9.375rem);
}

.cd-about-portrait {
	position: relative;
	max-width: 22.8125rem;
}

.cd-about-portrait::before {
	position: absolute;
	top: -1.125rem;
	left: -1.125rem;
	width: 100%;
	height: 100%;
	border: 1px solid rgba(51, 35, 63, 0.4);
	content: "";
}

.cd-about-portrait img {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 0.76;
	object-fit: cover;
	object-position: 51% top;
	filter: saturate(0.76) contrast(1.06);
}

.cd-caption {
	position: absolute;
	right: -1.9375rem;
	bottom: 1.25rem;
	z-index: 2;
	display: grid;
	width: 6.75rem;
	height: 6.75rem;
	place-items: center;
	border-radius: 50%;
	background: var(--cd-plum);
	color: var(--cd-cream);
	font-family: "Space Mono", monospace;
	font-size: 0.5625rem;
	letter-spacing: 0.14em;
	line-height: 1.6;
	text-align: center;
	text-transform: uppercase;
}

.cd-quote-mark {
	margin-bottom: 1.25rem;
	color: var(--cd-gold);
	font-family: "Instrument Serif", Georgia, serif;
	font-size: 4.25rem;
	line-height: 0.55;
}

.cd-about-copy .cd-display {
	max-width: 50rem;
	font-size: clamp(3.8rem, 7.6vw, 8.4rem);
	letter-spacing: -0.07em;
	line-height: 0.83;
}

.cd-about-copy p,
.cd-residency-copy p {
	max-width: 35.3125rem;
	color: #625b61;
	font-size: 0.9375rem;
	line-height: 1.95;
}

.cd-about-copy p:first-of-type { margin-top: 2.625rem; }
.cd-about-copy p + p { margin-top: 1.0625rem; }
.cd-homepage-content .prose { max-width: 47.5rem; }

.cd-books {
	position: relative;
	overflow: hidden;
	background: var(--cd-paper);
}

.cd-books::before {
	position: absolute;
	top: 2.1875rem;
	right: 2rem;
	color: rgba(51, 35, 63, 0.28);
	font-family: "Space Mono", monospace;
	font-size: 0.5625rem;
	letter-spacing: 0.18em;
	content: "READ / RETURN / REPEAT";
	transform: rotate(90deg) translateX(100%);
	transform-origin: right top;
}

.cd-books-header {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(16.25rem, 0.52fr);
	align-items: end;
	gap: clamp(2.625rem, 7vw, 6.875rem);
	border-bottom: 1px solid rgba(51, 35, 63, 0.25);
	padding-bottom: 2.375rem;
}

.cd-books-header h2,
.cd-resource-heading h2 {
	margin: 0;
	font-size: clamp(4.1rem, 7.6vw, 8.4rem);
	letter-spacing: -0.07em;
	line-height: 0.8;
}

.cd-books-intro,
.cd-resource-heading > p {
	max-width: 17.5rem;
	color: #655c64;
	font-size: 0.875rem;
	line-height: 1.8;
}

.cd-books-feature {
	display: grid;
	grid-template-columns: minmax(23.75rem, 0.93fr) minmax(0, 1.07fr);
	align-items: center;
	gap: clamp(2.625rem, 6vw, 5.375rem);
	padding: 4.125rem 0 2.875rem;
}

.cd-feature-stage {
	position: relative;
	display: grid;
	min-height: 31.25rem;
	place-items: center;
	overflow: hidden;
	background: #d7cbc9;
}

.cd-feature-stage::before,
.cd-feature-stage::after {
	position: absolute;
	top: 50%;
	left: 50%;
	border: 1px solid rgba(51, 35, 63, 0.24);
	border-radius: 50%;
	content: "";
	transform: translate(-50%, -50%);
}

.cd-feature-stage::before { width: 23.125rem; height: 23.125rem; }
.cd-feature-stage::after { width: 16.875rem; height: 16.875rem; border-color: rgba(51, 35, 63, 0.16); }

.cd-feature-book {
	position: relative;
	z-index: 2;
	width: min(15.625rem, 58%);
	background: #b9aab8;
	box-shadow: 1.125rem 1.625rem 2.125rem rgba(27, 19, 37, 0.26);
	transform: rotate(-5deg);
}

.cd-feature-book::after {
	position: absolute;
	top: 1.0625rem;
	right: -1.75rem;
	z-index: -1;
	width: 100%;
	height: 100%;
	background: #b9aab8;
	content: "";
	transform: rotate(11deg);
}

.cd-feature-book img {
	display: block;
	width: 100%;
	aspect-ratio: 0.68;
	object-fit: cover;
}

.cd-feature-tag {
	position: absolute;
	bottom: 1.6875rem;
	left: 1.875rem;
	z-index: 3;
	color: rgba(51, 35, 63, 0.6);
	font-family: "Space Mono", monospace;
	font-size: 0.5625rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.cd-mini-label,
.cd-book-meta {
	margin: 0;
	color: #876947;
	font-family: "Space Mono", monospace;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.cd-feature-copy h3 {
	max-width: 37.5rem;
	margin: 1.25rem 0 0;
	color: var(--cd-ink);
	font-size: clamp(3.2rem, 5.2vw, 6.25rem);
	letter-spacing: -0.065em;
	line-height: 0.85;
}

.cd-feature-copy > p:not(.cd-mini-label):not(.cd-book-meta) {
	max-width: 24.375rem;
	margin: 1.5625rem 0 0;
	color: #655c64;
	font-size: 0.9375rem;
	line-height: 1.9;
}

.cd-book-meta { margin-top: 1rem; }

.cd-plum-button {
	background: var(--cd-plum);
	color: var(--cd-cream);
}

.cd-plum-button:hover,
.cd-plum-button:focus-visible {
	background: var(--cd-plum-deep);
	color: var(--cd-cream);
}

.cd-book-controls {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	color: #876947;
	font-family: "Space Mono", monospace;
	font-size: 0.625rem;
	letter-spacing: 0.13em;
}

.cd-icon-button {
	display: inline-grid;
	width: 2.5rem;
	height: 2.5rem;
	place-items: center;
	border: 1px solid rgba(135, 105, 71, 0.6);
	background: transparent;
	color: var(--cd-plum);
	cursor: pointer;
}

.cd-icon-button:hover,
.cd-icon-button:focus-visible {
	background: var(--cd-cream);
	color: var(--cd-navy);
	transform: none;
}

.cd-carousel {
	display: flex;
	gap: 1.4375rem;
	overflow-x: auto;
	border-top: 1px solid rgba(51, 35, 63, 0.18);
	padding: 2rem 0 0.75rem;
	scrollbar-width: none;
}

.cd-carousel::-webkit-scrollbar { display: none; }

.cd-book-card {
	flex: 0 0 9.125rem;
	padding: 0;
	border: 0;
	background: transparent;
	color: #564b56;
	text-align: left;
	cursor: pointer;
	transition: transform 300ms ease;
}

.cd-book-card:hover,
.cd-book-card.cd-book-card-active {
	transform: translateY(-0.625rem);
}

.cd-book-index {
	display: block;
	margin-bottom: 0.625rem;
	color: #876947;
	font-family: "Space Mono", monospace;
	font-size: 0.5625rem;
	letter-spacing: 0.13em;
}

.cd-book-cover {
	display: block;
	overflow: hidden;
	aspect-ratio: 0.68;
	background: #c6b9b3;
	transition: box-shadow 300ms ease;
}

.cd-book-card.cd-book-card-active .cd-book-cover {
	box-shadow: 0 0 0 2px var(--cd-gold), 0 0 0 6px var(--cd-paper);
}

.cd-book-cover img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 500ms ease;
}

.cd-book-card:hover .cd-book-cover img { transform: scale(1.05); }

.cd-book-title {
	display: block;
	margin-top: 0.9375rem;
	font-family: "DM Sans", sans-serif;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	line-height: 1.45;
	text-transform: uppercase;
}

.cd-books-empty {
	max-width: 40rem;
	margin-top: 3rem;
	padding: 2rem;
	border: 1px solid rgba(51, 35, 63, 0.25);
}

.cd-ministry {
	background: var(--cd-plum);
	color: var(--cd-cream);
}

.cd-ministry-grid {
	display: grid;
	grid-template-columns: 0.75fr 1.25fr;
	gap: clamp(3.125rem, 10vw, 9.6875rem);
}

.cd-ministry-copy h2,
.cd-speaking-copy h2,
.cd-residency h2,
.cd-connect h2 {
	margin: 0;
	font-size: clamp(4rem, 7.5vw, 8.3rem);
	letter-spacing: -0.075em;
	line-height: 0.8;
}

.cd-ministry-copy h2 em,
.cd-speaking-copy h2 em {
	color: var(--cd-gold);
}

.cd-ministry-copy p,
.cd-speaking-copy > div > p:not(.cd-eyebrow) {
	max-width: 22.1875rem;
	margin: 2.3125rem 0 0;
	color: rgba(241, 235, 223, 0.65);
	font-size: 0.9375rem;
	line-height: 1.9;
}

.cd-door-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	border-top: 1px solid rgba(241, 235, 223, 0.25);
}

.cd-door {
	min-height: 15.3125rem;
	border-bottom: 1px solid rgba(241, 235, 223, 0.25);
	padding: 1.5625rem 0 1.625rem;
	color: var(--cd-cream);
	text-decoration: none;
	transition: background 220ms ease, padding 220ms ease;
}

.cd-door:nth-child(odd) {
	border-right: 1px solid rgba(241, 235, 223, 0.25);
	padding-right: clamp(1.375rem, 4vw, 3.75rem);
}

.cd-door:nth-child(even) { padding-left: clamp(1.375rem, 4vw, 3.75rem); }
.cd-door:hover, .cd-door:focus-visible { background: rgba(241, 235, 223, 0.06); color: var(--cd-cream); }

.cd-door-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	color: var(--cd-gold);
	font-family: "Space Mono", monospace;
	font-size: 0.625rem;
	letter-spacing: 0.16em;
}

.cd-door-top b { font-size: 1rem; font-weight: 400; }

.cd-door h3 {
	margin: 3.5625rem 0 0;
	font-size: 1.8125rem;
	letter-spacing: -0.045em;
}

.cd-door p {
	max-width: 15.625rem;
	margin: 0.9375rem 0 0;
	color: rgba(241, 235, 223, 0.57);
	font-size: 0.8125rem;
	line-height: 1.7;
}

.cd-speaking {
	position: relative;
	overflow: hidden;
	background: var(--cd-navy);
	color: var(--cd-cream);
}

.cd-speaking-grid {
	display: grid;
	min-height: 43.125rem;
	grid-template-columns: 1.12fr 0.88fr;
}

.cd-speaking-image {
	position: relative;
	min-height: 26.875rem;
	overflow: hidden;
}

.cd-speaking-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 47% center;
	filter: saturate(0.75) contrast(1.08);
	opacity: 0.83;
}

.cd-speaking-image::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, transparent 45%, var(--cd-navy) 100%), linear-gradient(0deg, rgba(18, 26, 59, 0.55), transparent 38%);
	content: "";
}

.cd-speaking-image-label {
	position: absolute;
	z-index: 2;
	bottom: 2.0625rem;
	left: 2rem;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	color: rgba(241, 235, 223, 0.62);
	font-family: "Space Mono", monospace;
	font-size: 0.5625rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.cd-speaking-image-label span {
	display: block;
	width: 1.9375rem;
	height: 1px;
	background: var(--cd-gold);
}

.cd-speaking-copy {
	display: flex;
	align-items: center;
	padding: 5.625rem clamp(2rem, 6vw, 6.25rem);
}

.cd-residency {
	background: var(--cd-cream);
}

.cd-residency-grid,
.cd-connect-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: clamp(3.125rem, 10vw, 9.375rem);
}

.cd-date-card {
	position: relative;
	min-height: 22.1875rem;
	border: 1px solid rgba(51, 35, 63, 0.32);
	background: #e6dcd5;
	padding: 2.1875rem;
}

.cd-date-card::before {
	position: absolute;
	top: 1.75rem;
	right: 1.75rem;
	width: 6rem;
	height: 6rem;
	border: 1px solid rgba(51, 35, 63, 0.35);
	border-radius: 50%;
	content: "";
}

.cd-date-card .event-panel,
.cd-date-card .pd-event-card {
	position: relative;
	z-index: 1;
	display: block;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.cd-date-card .event-panel__media { display: none; }
.cd-date-card .event-panel__content { padding: 0; }
.cd-date-card .event-panel .eyebrow,
.cd-date-card .pd-event-card__status {
	color: #876947;
	font-family: "Space Mono", monospace;
	font-size: 0.5625rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.cd-date-card .event-panel h3,
.cd-date-card .pd-event-card h3 {
	max-width: 20.625rem;
	margin: 3.5rem 0 0;
	color: var(--cd-ink);
	font-family: "Instrument Serif", Georgia, serif;
	font-size: 2.25rem;
	font-weight: 400;
	letter-spacing: -0.055em;
	line-height: 0.94;
}

.cd-date-card .event-panel h3 a { color: inherit; text-decoration: none; }
.cd-date-card .event-panel p,
.cd-date-card .pd-event-card p {
	max-width: 20rem;
	margin: 1.0625rem 0 0;
	color: #655c64;
	font-size: 0.8125rem;
	line-height: 1.7;
}

.cd-date-card .event-panel__meta {
	margin-top: 1rem;
	color: #876947;
	font-family: "Space Mono", monospace;
	font-size: 0.5625rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.5;
	text-transform: uppercase;
}

.cd-date-card .event-panel__side { display: none; }
.cd-date-card > .cd-editorial-link { position: relative; z-index: 2; }

.cd-resources { background: #d5c7c9; }

.cd-resource-heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 2.5rem;
	border-bottom: 1px solid rgba(51, 35, 63, 0.35);
	padding-bottom: 2.5rem;
}

.cd-resource-heading > p { margin: 0; }

.cd-resource-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	background: rgba(51, 35, 63, 0.32);
}

.cd-resource {
	display: block;
	min-height: 20.625rem;
	padding: 1.75rem 1.875rem;
	background: #d5c7c9;
	color: var(--cd-ink);
	text-decoration: none;
	transition: background 220ms ease;
}

.cd-resource:hover,
.cd-resource:focus-visible {
	background: var(--cd-cream);
	color: var(--cd-ink);
}

.cd-resource-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	color: #876947;
	font-family: "Space Mono", monospace;
	font-size: 0.625rem;
	letter-spacing: 0.17em;
	text-transform: uppercase;
}

.cd-resource-top b { font-size: 1rem; font-weight: 400; }

.cd-resource h3 {
	margin: 6.9375rem 0 0;
	color: var(--cd-ink);
	font-size: 1.875rem;
	letter-spacing: -0.05em;
}

.cd-resource p {
	max-width: 15.625rem;
	margin: 0.875rem 0 0;
	color: #625b61;
	font-size: 0.8125rem;
	line-height: 1.7;
}

.cd-resource-link {
	display: flex;
	align-items: center;
	gap: 0.4375rem;
	margin-top: 1.5rem;
	color: var(--cd-plum);
	font-family: "Space Mono", monospace;
	font-size: 0.5625rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.cd-connect {
	position: relative;
	overflow: hidden;
	background: var(--cd-gold);
	color: var(--cd-navy);
}

.cd-connect::before {
	position: absolute;
	top: 2.8125rem;
	right: -1.25rem;
	color: rgba(18, 26, 59, 0.1);
	font-family: "Space Mono", monospace;
	font-size: clamp(5rem, 14vw, 15rem);
	font-weight: 700;
	letter-spacing: -0.08em;
	line-height: 0.7;
	content: "CONNECT";
	transform: rotate(90deg);
	transform-origin: top right;
}

.cd-connect-grid { position: relative; z-index: 1; grid-template-columns: 1.05fr 0.95fr; }
.cd-connect h2 { font-size: clamp(4.3rem, 8vw, 9rem); }
.cd-connect h2 em { font-style: italic; }

.cd-connect-copy > p:not(.cd-eyebrow) {
	max-width: 27.5rem;
	margin: 2.375rem 0 0;
	color: rgba(18, 26, 59, 0.7);
	font-size: 0.9375rem;
	line-height: 1.9;
}

.cd-connect-copy .cd-plum-button { margin-top: 2rem; }
.cd-connect .cd-eyebrow { color: rgba(18, 26, 59, 0.7); }

.cd-form {
	border-top: 1px solid rgba(18, 26, 59, 0.3);
	padding-top: 0.3125rem;
}

.cd-form-label,
.cd-form label,
.cd-form .wpcf7-form p {
	display: block;
	margin: 1.6875rem 0 0;
	color: rgba(18, 26, 59, 0.65);
	font-family: "Space Mono", monospace;
	font-size: 0.5625rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	line-height: 1.5;
	text-transform: uppercase;
}

.cd-form-label { margin-top: 1.5rem; }

.cd-form input[type="text"],
.cd-form input[type="email"],
.cd-form input[type="tel"],
.cd-form input[type="url"],
.cd-form textarea,
.cd-form select {
	display: block;
	width: 100%;
	margin-top: 0.75rem;
	border: 0;
	border-bottom: 1px solid rgba(18, 26, 59, 0.38);
	border-radius: 0;
	background: transparent;
	padding: 0.75rem 0;
	color: var(--cd-navy);
	font-family: "DM Sans", sans-serif;
	font-size: 0.9375rem;
	letter-spacing: 0;
	line-height: 1.5;
	text-transform: none;
}

.cd-form textarea { min-height: 5rem; resize: vertical; }
.cd-form input:focus, .cd-form textarea:focus, .cd-form select:focus { outline: 0; border-bottom-color: var(--cd-navy); }

.cd-form input[type="submit"],
.cd-form button[type="submit"] {
	margin-top: 1.75rem;
	border: 1px solid var(--cd-navy);
	border-radius: 0;
	background: transparent;
	padding: 1rem 1.125rem;
	color: var(--cd-navy);
	font-family: "Space Mono", monospace;
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.cd-form input[type="submit"]:hover,
.cd-form button[type="submit"]:hover,
.cd-form input[type="submit"]:focus-visible,
.cd-form button[type="submit"]:focus-visible {
	background: var(--cd-navy);
	color: var(--cd-cream);
	transform: none;
}

.cd-footer {
	margin: 0;
	padding: 3.25rem 2rem 1.75rem;
	background: var(--cd-navy);
	color: var(--cd-cream);
}

.cd-footer-top,
.cd-footer-bottom,
.cd-footer-extras {
	width: min(calc(100% - 4rem), 1360px);
	margin-inline: auto;
}

.cd-footer-top {
	display: flex;
	justify-content: space-between;
	gap: 3.125rem;
	border-bottom: 1px solid rgba(241, 235, 223, 0.17);
	padding-bottom: 3.4375rem;
}

.cd-footer-logo { width: 11.875rem; }

.cd-footer-description {
	max-width: 20rem;
	margin: 1.5rem 0 0;
	color: rgba(241, 235, 223, 0.52);
	font-size: 0.8125rem;
	line-height: 1.7;
}

.cd-footer-nav .menu,
.cd-footer-nav > ul {
	display: grid;
	grid-template-columns: repeat(3, auto);
	gap: 0.875rem 3rem;
	padding: 0;
	margin: 0;
	list-style: none;
}

.cd-footer-nav a,
.cd-footer-social a {
	color: rgba(241, 235, 223, 0.58);
	font-family: "Space Mono", monospace;
	font-size: 0.5625rem;
	letter-spacing: 0.15em;
	text-decoration: none;
	text-transform: uppercase;
}

.cd-footer-nav a:hover,
.cd-footer-social a:hover { color: var(--cd-gold); }

.cd-footer-extras {
	display: flex;
	flex-wrap: wrap;
	align-items: start;
	justify-content: space-between;
	gap: 1.5rem;
	padding-top: 1.5rem;
}

.cd-footer-social {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 1.5rem;
}

.cd-footer-newsletter {
	max-width: 28rem;
	color: rgba(241, 235, 223, 0.64);
	font-size: 0.8125rem;
}

.cd-footer-newsletter p { margin: 0 0 0.75rem; }
.cd-footer-newsletter form { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.cd-footer-newsletter input[type="email"],
.cd-footer-newsletter input[type="text"] {
	min-width: 12rem;
	flex: 1;
	border: 1px solid rgba(241, 235, 223, 0.3);
	background: transparent;
	padding: 0.65rem 0.75rem;
	color: var(--cd-cream);
}

.cd-footer-newsletter input[type="submit"],
.cd-footer-newsletter button[type="submit"] {
	border: 1px solid var(--cd-gold);
	background: var(--cd-gold);
	padding: 0.65rem 0.75rem;
	color: var(--cd-navy);
	font-size: 0.625rem;
}

.cd-footer-bottom {
	display: flex;
	justify-content: space-between;
	gap: 1.875rem;
	padding-top: 1.4375rem;
	color: rgba(241, 235, 223, 0.35);
	font-family: "Space Mono", monospace;
	font-size: 0.5625rem;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

@media (max-width: 1024px) {
	.site-header--cinematic .primary-navigation {
		right: 0;
		left: 0;
		border: 0;
		border-top: 1px solid rgba(241, 235, 223, 0.16);
		background: var(--cd-plum-deep);
		box-shadow: none;
	}

	.site-header--cinematic .primary-navigation a {
		padding: 1rem 0;
		color: rgba(241, 235, 223, 0.86);
	}

	.site-header--cinematic .menu-toggle {
		display: grid;
		width: 2.625rem;
		height: 2.625rem;
		place-items: center;
		border: 1px solid rgba(241, 235, 223, 0.4);
		color: var(--cd-cream);
	}

	.cd-hero-inner {
		grid-template-columns: 1fr;
	}

	.cd-hero-title { font-size: clamp(4.6rem, 12vw, 8rem); }
	.cd-about-grid, .cd-books-feature, .cd-ministry-grid, .cd-residency-grid, .cd-connect-grid { grid-template-columns: 1fr; gap: 4.125rem; }
	.cd-speaking-grid { grid-template-columns: 1fr; min-height: auto; }
	.cd-speaking-image { height: 26.875rem; }
	.cd-speaking-image::after { background: linear-gradient(180deg, transparent 35%, var(--cd-navy) 100%); }
	.cd-speaking-copy { padding-inline: max(2rem, calc((100vw - 1240px) / 2)); }
}

@media (max-width: 640px) {
	.site-header--cinematic .site-header__inner,
	.cd-section-inner,
	.cd-hero-inner,
	.cd-footer-top,
	.cd-footer-bottom,
	.cd-footer-extras {
		width: min(calc(100% - 2.75rem), 1240px);
	}

	.site-header--cinematic .site-header__inner { min-height: 4.6875rem; }
	.site-header--cinematic .site-branding img { width: 10.3125rem; }
	.cd-section { padding: 5.75rem 1.375rem; }
	.cd-hero { min-height: 48.75rem; }
	.cd-hero-image { inset: 0; }
	.cd-hero-image::after { background: linear-gradient(90deg, rgba(18, 26, 59, 0.94), rgba(18, 26, 59, 0.36) 80%), linear-gradient(0deg, rgba(18, 26, 59, 0.7), transparent 50%); }
	.cd-hero-inner { min-height: 48.75rem; padding-top: 8.5625rem; padding-bottom: 3.25rem; }
	.cd-hero-copy { align-self: end; padding-bottom: 1.125rem; }
	.cd-hero-title { font-size: clamp(4.6rem, 16vw, 8rem); }
	.cd-hero-stamp { top: 26%; right: 1.375rem; width: 6.25rem; height: 6.25rem; }
	.cd-hero-side-note, .cd-scroll-note { display: none; }
	.cd-about-portrait { max-width: 20rem; }
	.cd-caption { right: -1.1875rem; bottom: 0.875rem; width: 5.5rem; height: 5.5rem; font-size: 0.5rem; }
	.cd-about-copy .cd-display, .cd-books-header h2, .cd-resource-heading h2, .cd-ministry-copy h2, .cd-speaking-copy h2, .cd-residency h2, .cd-connect h2 { font-size: clamp(4rem, 15vw, 7.6rem); }
	.cd-books::before { display: none; }
	.cd-books-header, .cd-resource-heading { display: block; }
	.cd-books-intro, .cd-resource-heading > p { margin-top: 1.6875rem; }
	.cd-books-feature { padding-top: 3.25rem; gap: 3rem; }
	.cd-feature-stage { min-height: 24.375rem; }
	.cd-feature-stage::before { width: 17rem; height: 17rem; }
	.cd-feature-stage::after { width: 12rem; height: 12rem; }
	.cd-feature-actions { gap: 1.125rem; }
	.cd-door-grid, .cd-resource-grid { grid-template-columns: 1fr; }
	.cd-door, .cd-door:nth-child(odd), .cd-door:nth-child(even) { min-height: auto; padding: 1.5rem 0; border-right: 0; }
	.cd-door h3 { margin-top: 2.8rem; }
	.cd-speaking-image { height: 25rem; }
	.cd-speaking-copy { padding: 5.3125rem 1.375rem 6.25rem; }
	.cd-resource { min-height: 16.875rem; }
	.cd-resource h3 { margin-top: 5rem; }
	.cd-date-card { min-height: 20.625rem; padding: 1.75rem; }
	.cd-footer { padding: 3.25rem 1.375rem 1.75rem; }
	.cd-footer-top { display: block; }
	.cd-footer-nav { margin-top: 2.875rem; }
	.cd-footer-nav .menu, .cd-footer-nav > ul { gap: 1.0625rem 1.875rem; }
	.cd-footer-bottom { display: block; }
	.cd-footer-bottom span + span { display: block; margin-top: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
	.cd-reveal { animation: none; }
}