/* =========================================================================
   Elev8 Ministries
   Tokens → base → layout → components → sections → responsive
   ========================================================================= */

:root {
	--e8-red: #c8102e;
	--e8-red-dark: #a20c24;
	--e8-red-deep: #7d0a1c;
	--e8-ink: #101113;
	--e8-ink-raised: #1b1c1f;
	--e8-mist: #f2f2f2;
	--e8-line: #e3e3e5;
	--e8-body: #54565b;
	--e8-white: #fff;

	--e8-rail: 64px;
	--e8-max: 1180px;
	--e8-gutter: 28px;
	--e8-radius: 4px;

	--e8-display: "Oswald", "Arial Narrow", system-ui, sans-serif;
	--e8-text: "Jost", system-ui, -apple-system, "Segoe UI", sans-serif;

	--e8-shadow-card: 0 18px 40px rgba(16, 17, 19, .09);
	--e8-shadow-form: 0 30px 70px rgba(0, 0, 0, .35);
	--e8-ease: cubic-bezier(.2, .7, .3, 1);
}

/* ---------- base ---------- */

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

body.e8 {
	margin: 0;
	background: var(--e8-white);
	color: var(--e8-body);
	font-family: var(--e8-text);
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

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

.e8 a { color: var(--e8-red); text-decoration: none; }
.e8 a:hover { color: var(--e8-red-dark); }

.e8 h1, .e8 h2, .e8 h3, .e8 h4 {
	font-family: var(--e8-display);
	font-weight: 700;
	color: var(--e8-ink);
	line-height: 1.03;
	letter-spacing: .005em;
	text-transform: uppercase;
	margin: 0 0 .5em;
}

.e8 p { margin: 0 0 1.1em; }
.e8 p:last-child { margin-bottom: 0; }

.e8 :focus-visible {
	outline: 3px solid var(--e8-red);
	outline-offset: 3px;
}

.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;
}

.e8-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 999;
	background: var(--e8-ink);
	color: #fff;
	padding: 14px 20px;
	font-weight: 600;
}
.e8-skip:focus { left: 0; color: #fff; }

.e8-container {
	width: 100%;
	max-width: var(--e8-max);
	margin-inline: auto;
	padding-inline: var(--e8-gutter);
}

.e8-icon { width: 24px; height: 24px; flex: none; }

/* ---------- type scale ---------- */

.e8-h2 {
	font-size: clamp(2rem, 3.4vw, 2.85rem);
	margin-bottom: .55em;
}
.e8-h2--light { color: var(--e8-white); }

.e8-eyebrow {
	font-family: var(--e8-text);
	font-weight: 600;
	font-size: .78rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--e8-red);
	margin: 0 0 .9em;
}
.e8-eyebrow--light { color: #ff4d68; }

.e8-lead { font-size: 1.03rem; max-width: 46ch; }

/* ---------- brand rail (signature) ---------- */

.e8-rail {
	position: fixed;
	inset: 0 auto 0 0;
	width: var(--e8-rail);
	background: linear-gradient(180deg, var(--e8-red) 0%, var(--e8-red-deep) 100%);
	display: none;
	align-items: flex-start;
	justify-content: center;
	z-index: 60;
	padding-top: 26px;
}

.e8-rail__mark {
	writing-mode: vertical-rl;
	font-family: var(--e8-display);
	font-weight: 700;
	font-size: 1.55rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #fff;
	display: inline-flex;
	align-items: center;
	gap: .1em;
}

.e8-rail__eight { display: inline-flex; transform: rotate(90deg); }
.e8-rail__eight .e8-icon { width: 26px; height: 26px; stroke-width: 2.4; }

/* ---------- buttons ---------- */

.e8 .e8-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 15px 26px;
	border: 2px solid transparent;
	border-radius: var(--e8-radius);
	font-family: var(--e8-display);
	font-size: .86rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color .2s var(--e8-ease), color .2s var(--e8-ease), transform .2s var(--e8-ease);
}
.e8 .e8-btn:active { transform: translateY(1px); }
.e8 .e8-btn .e8-icon { width: 17px; height: 17px; }

.e8 .e8-btn--red { background: var(--e8-red); color: #fff; }
.e8 .e8-btn--red:hover { background: var(--e8-red-dark); color: #fff; }

.e8 .e8-btn--ink { background: var(--e8-ink); color: #fff; }
.e8 .e8-btn--ink:hover { background: var(--e8-red); color: #fff; }

.e8 .e8-btn--outline { background: transparent; border-color: rgba(255, 255, 255, .8); color: #fff; }
.e8 .e8-btn--outline:hover { background: #fff; color: var(--e8-ink); }

.e8 .e8-btn--block { width: 100%; }

.e8 .e8-textlink {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--e8-display);
	font-size: .85rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--e8-red);
}
.e8 .e8-textlink .e8-icon { width: 20px; height: 20px; transition: transform .2s var(--e8-ease); }
.e8 .e8-textlink:hover .e8-icon { transform: translateX(5px); }

/* ---------- header ---------- */

.e8-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: #fff;
	border-bottom: 1px solid var(--e8-line);
	transition: box-shadow .25s var(--e8-ease);
}
.e8-header.is-stuck { box-shadow: 0 10px 30px rgba(16, 17, 19, .1); }

.e8-header__inner {
	display: flex;
	align-items: center;
	gap: 26px;
	min-height: 86px;
}

.e8-header__brand { margin-right: auto; }
.e8-header__brand img { max-height: 46px; width: auto; }

.e8-wordmark {
	display: inline-flex;
	align-items: center;
	font-family: var(--e8-display);
	font-weight: 700;
	font-size: 1.6rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--e8-ink);
	line-height: 1;
}
.e8-wordmark:hover { color: var(--e8-ink); }
.e8-wordmark__eight { display: inline-flex; color: var(--e8-red); margin: 0 .06em; }
.e8-wordmark__eight .e8-icon { width: 26px; height: 26px; stroke-width: 2.6; }
.e8-wordmark--light { color: #fff; flex-wrap: wrap; }
.e8-wordmark--light:hover { color: #fff; }
.e8-wordmark--light .e8-wordmark__ministries { color: var(--e8-red); width: 100%; }

.e8-nav__list {
	display: flex;
	align-items: center;
	gap: 26px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.e8-nav__list a {
	font-family: var(--e8-display);
	font-size: .82rem;
	font-weight: 500;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--e8-ink);
	padding: 6px 0;
	border-bottom: 2px solid transparent;
	display: inline-block;
}
.e8-nav__list a:hover { color: var(--e8-red); }
.e8-nav__list .current-menu-item > a,
.e8-nav__list .current_page_item > a {
	color: var(--e8-ink);
	border-bottom-color: var(--e8-red);
}

.e8-burger {
	display: none;
	background: none;
	border: 0;
	padding: 8px;
	color: var(--e8-ink);
	cursor: pointer;
}
.e8-burger .e8-icon--close { display: none; }
.e8-burger[aria-expanded="true"] .e8-icon--menu { display: none; }
.e8-burger[aria-expanded="true"] .e8-icon--close { display: block; }

/* ---------- hero ---------- */

.e8-hero {
	position: relative;
	background: var(--e8-ink);
	color: #fff;
	overflow: hidden;
	isolation: isolate;
}

.e8-hero__media { position: absolute; inset: 0; z-index: -2; }
.e8-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 70% 40%; }

.e8-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(90deg, rgba(10, 10, 12, .94) 0%, rgba(10, 10, 12, .82) 42%, rgba(10, 10, 12, .18) 78%, rgba(10, 10, 12, .35) 100%),
		linear-gradient(180deg, rgba(10, 10, 12, .5) 0%, transparent 35%);
}
.e8-hero--no-image::after { background: radial-gradient(120% 90% at 15% 30%, #23252a 0%, var(--e8-ink) 70%); }

.e8-hero__inner {
	padding-block: clamp(72px, 11vw, 132px);
	max-width: min(var(--e8-max), 100%);
}

.e8-hero__title {
	color: #fff;
	font-size: clamp(2.4rem, 5.6vw, 4.15rem);
	letter-spacing: .01em;
	margin: 0 0 26px;
	max-width: 15ch;
}
.e8-hero__line { display: block; }
.e8-hero__line--accent { color: var(--e8-red); }

.e8-hero__text {
	color: rgba(255, 255, 255, .86);
	max-width: 42ch;
	margin-bottom: 34px;
}

.e8-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; }

/* ---------- values bar ---------- */

.e8-values { background: var(--e8-mist); border-bottom: 1px solid var(--e8-line); }

.e8-values__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	padding-block: 34px;
}

.e8-value {
	display: flex;
	align-items: flex-start;
	gap: 18px;
	padding: 6px 30px;
	border-left: 1px solid var(--e8-line);
}
.e8-value:first-child { border-left: 0; padding-left: 0; }

.e8-value__icon { color: var(--e8-red); }
.e8-value__icon .e8-icon { width: 42px; height: 42px; stroke-width: 1.6; }

.e8-value__title { font-size: 1.02rem; letter-spacing: .05em; margin: 4px 0 6px; }
.e8-value__text { font-size: .93rem; margin: 0; }

/* ---------- about ---------- */

.e8-about { padding-block: clamp(64px, 8vw, 104px); }

.e8-about__grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	gap: clamp(32px, 5vw, 72px);
	align-items: center;
}

.e8-about__media { position: relative; }
.e8-about__media::before {
	content: "";
	position: absolute;
	left: -14px;
	top: -14px;
	width: 92px;
	height: 92px;
	border-left: 5px solid var(--e8-red);
	border-top: 5px solid var(--e8-red);
}
.e8-about__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }

.e8-about__placeholder {
	display: grid;
	place-items: center;
	aspect-ratio: 4 / 3;
	background: var(--e8-mist);
	color: #c4c5c8;
}
.e8-about__placeholder .e8-icon { width: 72px; height: 72px; }

.e8-about__body .e8-btn { margin-top: 12px; }

/* ---------- events ---------- */

.e8-events { background: var(--e8-mist); padding-block: clamp(58px, 7vw, 92px); }

.e8-events__grid {
	display: grid;
	grid-template-columns: minmax(220px, 1fr) minmax(0, 3fr);
	gap: clamp(28px, 4vw, 56px);
	align-items: center;
}

.e8-events__intro .e8-h2 { margin-bottom: .35em; }

.e8-events__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.e8-event {
	display: flex;
	gap: 16px;
	background: #fff;
	border-radius: var(--e8-radius);
	padding: 22px 20px;
	box-shadow: var(--e8-shadow-card);
	transition: transform .25s var(--e8-ease), box-shadow .25s var(--e8-ease);
}
.e8-event:hover { transform: translateY(-4px); box-shadow: 0 24px 46px rgba(16, 17, 19, .14); }

.e8-event__date { text-align: center; min-width: 54px; }
.e8-event__badge {
	display: inline-grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: var(--e8-radius);
	background: var(--e8-red);
	color: #fff;
	margin-bottom: 8px;
}
.e8-event__badge .e8-icon { width: 20px; height: 20px; }

.e8-event__month {
	display: block;
	font-family: var(--e8-display);
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--e8-body);
}
.e8-event__day {
	display: block;
	font-family: var(--e8-display);
	font-size: 2rem;
	font-weight: 700;
	color: var(--e8-ink);
	line-height: 1;
}

.e8-event__body { min-width: 0; }
.e8-event__title {
	font-size: 1rem;
	letter-spacing: .03em;
	margin: 2px 0 10px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--e8-line);
}
.e8-event__title a { color: inherit; }
.e8-event__title a:hover { color: var(--e8-red); }

.e8-event__meta { font-size: .82rem; margin: 0; }
.e8-event__meta--place { color: #8a8c90; font-style: italic; }

.e8-events__cta { text-align: center; margin-top: 38px; }

/* ---------- testimonies ---------- */

.e8-testimonies { padding-block: clamp(64px, 8vw, 104px); background: #fff; }

.e8-testimonies__head { text-align: center; max-width: 34ch; margin-inline: auto; }

.e8-slider { position: relative; margin-top: 34px; }

.e8-slider__quote {
	position: absolute;
	top: -18px;
	left: 50%;
	transform: translateX(-50%);
	color: rgba(200, 16, 46, .12);
	pointer-events: none;
}
.e8-slider__quote .e8-icon { width: 96px; height: 96px; }

.e8-slider__track {
	display: flex;
	gap: 24px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	padding: 8px 4px 20px;
}
.e8-slider__track::-webkit-scrollbar { display: none; }

.e8-slide {
	flex: 0 0 100%;
	scroll-snap-align: center;
	max-width: 760px;
	margin-inline: auto;
	text-align: center;
	padding: 20px 4vw 0;
}

.e8-slide__quote {
	font-family: var(--e8-display);
	font-weight: 400;
	font-size: clamp(1.15rem, 2.2vw, 1.6rem);
	line-height: 1.4;
	letter-spacing: .01em;
	text-transform: none;
	color: var(--e8-ink);
	margin: 0 0 26px;
}

.e8-slide__by {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	text-align: left;
}

.e8-slide__portrait {
	width: 54px;
	height: 54px;
	border-radius: 50%;
	overflow: hidden;
	flex: none;
	display: grid;
	place-items: center;
	background: var(--e8-mist);
}
.e8-slide__portrait img { width: 100%; height: 100%; object-fit: cover; }
.e8-slide__portrait--initial {
	background: var(--e8-red);
	color: #fff;
	font-family: var(--e8-display);
	font-size: 1.4rem;
	font-weight: 700;
}

.e8-slide__name {
	display: block;
	font-family: var(--e8-display);
	font-style: normal;
	font-weight: 600;
	font-size: .95rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--e8-ink);
}
.e8-slide__role { display: block; font-size: .85rem; color: #8a8c90; }

.e8-slider__controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	margin-top: 6px;
}

.e8-slider__arrow {
	width: 44px;
	height: 44px;
	display: grid;
	place-items: center;
	border: 2px solid var(--e8-line);
	border-radius: 50%;
	background: #fff;
	color: var(--e8-ink);
	cursor: pointer;
	transition: background-color .2s var(--e8-ease), border-color .2s var(--e8-ease), color .2s var(--e8-ease);
}
.e8-slider__arrow:hover { background: var(--e8-red); border-color: var(--e8-red); color: #fff; }
.e8-slider__arrow[data-e8-slider-prev] .e8-icon { transform: scaleX(-1); }

.e8-slider__dots { display: flex; gap: 9px; }
.e8-slider__dot {
	width: 9px;
	height: 9px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #d5d6d8;
	cursor: pointer;
	transition: background-color .2s var(--e8-ease), width .2s var(--e8-ease);
}
.e8-slider__dot[aria-current="true"] { background: var(--e8-red); width: 26px; border-radius: 5px; }

/* ---------- prayer ---------- */

.e8-prayer {
	position: relative;
	background: var(--e8-ink);
	overflow: hidden;
	isolation: isolate;
	padding-block: clamp(58px, 7vw, 88px);
}

.e8-prayer__media { position: absolute; inset: 0; z-index: -2; }
.e8-prayer__media img { width: 100%; height: 100%; object-fit: cover; }
.e8-prayer::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(90deg, rgba(12, 12, 14, .95) 0%, rgba(12, 12, 14, .8) 55%, rgba(70, 8, 18, .7) 100%);
}
.e8-prayer--no-image::after { background: radial-gradient(110% 100% at 20% 40%, #23151a 0%, var(--e8-ink) 72%); }

.e8-prayer__grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	gap: clamp(32px, 5vw, 64px);
	align-items: center;
}

.e8-prayer__text { color: rgba(255, 255, 255, .82); max-width: 38ch; }

.e8-scripture {
	margin: 26px 0 0;
	padding-left: 18px;
	border-left: 3px solid var(--e8-red);
	color: rgba(255, 255, 255, .72);
	font-size: .92rem;
	font-style: italic;
	max-width: 44ch;
}
.e8-scripture cite { font-style: normal; font-weight: 600; color: #fff; }

.e8-prayer__card {
	background: #fff;
	border-radius: 6px;
	padding: clamp(26px, 3vw, 38px);
	box-shadow: var(--e8-shadow-form);
}

/* ---------- form ---------- */

.e8-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }

.e8-field { margin: 0 0 20px; }
.e8-field label {
	display: block;
	font-size: .85rem;
	font-weight: 500;
	color: var(--e8-ink);
	margin-bottom: 7px;
}
.e8-req { color: var(--e8-red); }

.e8 .e8-field input,
.e8 .e8-field textarea {
	width: 100%;
	font-family: inherit;
	font-size: .95rem;
	color: var(--e8-ink);
	background: #fff;
	border: 1px solid #c9cacd;
	border-radius: 3px;
	padding: 12px 14px;
	transition: border-color .2s var(--e8-ease), box-shadow .2s var(--e8-ease);
}
.e8 .e8-field textarea { resize: vertical; min-height: 120px; }

.e8 .e8-field input:focus,
.e8 .e8-field textarea:focus {
	border-color: var(--e8-red);
	box-shadow: 0 0 0 3px rgba(200, 16, 46, .14);
	outline: none;
}

.e8 .e8-field--line input {
	border: 0;
	border-bottom: 1px solid #c9cacd;
	border-radius: 0;
	padding-inline: 0;
}
.e8 .e8-field--line input:focus { box-shadow: none; border-bottom-color: var(--e8-red); }

.e8 .e8-field[data-invalid] input,
.e8 .e8-field[data-invalid] textarea { border-color: var(--e8-red); }

.e8-check { display: flex; align-items: center; gap: 9px; margin: 0 0 22px; }
.e8-check label { font-size: .87rem; color: var(--e8-body); }
.e8-check input { accent-color: var(--e8-red); width: 16px; height: 16px; }

.e8-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.e8-form__status {
	display: none;
	padding: 13px 16px;
	margin-bottom: 20px;
	border-left: 4px solid var(--e8-red);
	background: #fdf2f4;
	color: var(--e8-ink);
	font-size: .9rem;
}
.e8-form__status[data-state] { display: block; }
.e8-form__status[data-state="success"] { border-left-color: #1e7a44; background: #eef7f1; }

.e8-form.is-sending .e8-btn { opacity: .65; pointer-events: none; }

/* ---------- footer ---------- */

.e8-footer { background: var(--e8-ink); color: rgba(255, 255, 255, .72); padding-top: clamp(48px, 6vw, 72px); }

.e8-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
	gap: clamp(28px, 4vw, 52px);
	padding-bottom: 44px;
}

.e8-footer__logo { display: inline-block; }
.e8-footer__logo img { max-height: 58px; width: auto; }

.e8-footer__blurb { font-size: .88rem; margin-top: 16px; max-width: 32ch; }

.e8-footer__heading {
	color: #fff;
	font-size: .88rem;
	letter-spacing: .13em;
	margin-bottom: 18px;
}

.e8-footer__list { list-style: none; margin: 0; padding: 0; }
.e8-footer__list li { margin-bottom: 9px; }
.e8-footer__list a { color: rgba(255, 255, 255, .72); font-size: .9rem; }
.e8-footer__list a:hover { color: var(--e8-red); }

.e8-social { display: flex; gap: 12px; list-style: none; margin: 22px 0 0; padding: 0; }
.e8-social a {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .1);
	color: #fff;
	transition: background-color .2s var(--e8-ease);
}
.e8-social a:hover { background: var(--e8-red); color: #fff; }

.e8-contact { list-style: none; margin: 0; padding: 0; }
.e8-contact li { display: flex; gap: 12px; margin-bottom: 16px; font-size: .9rem; }
.e8-contact .e8-icon { width: 20px; height: 20px; color: var(--e8-red); margin-top: 2px; }
.e8-contact a { color: rgba(255, 255, 255, .72); }
.e8-contact a:hover { color: #fff; }

.e8-footer__legal {
	border-top: 1px solid rgba(255, 255, 255, .12);
	padding-block: 22px;
	text-align: center;
	font-size: .82rem;
	color: rgba(255, 255, 255, .5);
}

/* ---------- interior pages ---------- */

.e8-page { padding-block: clamp(56px, 7vw, 88px); }
.e8-page__header { margin-bottom: 34px; }
.e8-page__title { font-size: clamp(2rem, 4vw, 3rem); }
.e8-entry h2, .e8-entry h3 { margin-top: 1.5em; }
.e8-entry a { text-decoration: underline; }

.e8-archive__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 26px;
}

.e8-widget { margin-bottom: 32px; }
.e8-widget__title { font-size: 1rem; letter-spacing: .1em; }

/* ---------- page banner ---------- */

.e8-banner {
	position: relative;
	background: var(--e8-ink);
	color: #fff;
	overflow: hidden;
	isolation: isolate;
}

.e8-banner__media { position: absolute; inset: 0; z-index: -2; }
.e8-banner__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }

.e8-banner::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(90deg, rgba(10, 10, 12, .93) 0%, rgba(10, 10, 12, .74) 60%, rgba(125, 10, 28, .55) 100%);
}
.e8-banner--no-image::after { background: linear-gradient(90deg, var(--e8-ink) 0%, #1c1418 62%, var(--e8-red-deep) 100%); }

.e8-banner__inner { padding-block: clamp(48px, 6.5vw, 82px); }

.e8-banner__title {
	color: #fff;
	font-size: clamp(2.1rem, 4.6vw, 3.4rem);
	margin: 0;
	max-width: 18ch;
}

.e8-banner__text {
	color: rgba(255, 255, 255, .8);
	max-width: 52ch;
	margin-top: 16px;
}

/* ---------- interior page layout ---------- */

.e8-page--tight { padding-block: clamp(34px, 4vw, 52px); }
.e8-page--flush { padding-block: 0; }

.e8-page__narrow { max-width: 780px; }

.e8-entry--full { max-width: none; }

/* ---------- way-in cards ---------- */

.e8-ways { background: var(--e8-mist); padding-block: clamp(52px, 6.5vw, 84px); }

.e8-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 22px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.e8-card {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
	background: #fff;
	border-radius: var(--e8-radius);
	border-top: 4px solid var(--e8-red);
	padding: 30px 26px;
	box-shadow: var(--e8-shadow-card);
	transition: transform .25s var(--e8-ease), box-shadow .25s var(--e8-ease);
}
.e8-card:hover { transform: translateY(-4px); box-shadow: 0 24px 46px rgba(16, 17, 19, .14); }

.e8-card__icon { color: var(--e8-red); }
.e8-card__icon .e8-icon { width: 38px; height: 38px; stroke-width: 1.6; }

.e8-card__title { font-size: 1.1rem; letter-spacing: .05em; margin: 0; }
.e8-card__text { font-size: .93rem; margin: 0; flex: 1; }

/* ---------- crimson CTA band ---------- */

.e8-cta { background: var(--e8-red); color: #fff; }

.e8-cta__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	flex-wrap: wrap;
	padding-block: clamp(34px, 4.5vw, 54px);
}

.e8-cta__title { color: #fff; font-size: clamp(1.5rem, 2.6vw, 2.1rem); margin: 0 0 .3em; }
.e8-cta__text { color: rgba(255, 255, 255, .88); margin: 0; max-width: 52ch; }
.e8 .e8-cta .e8-btn--ink:hover { background: #fff; color: var(--e8-red); }

/* ---------- contact page ---------- */

.e8-contact__grid {
	display: grid;
	grid-template-columns: minmax(0, 4fr) minmax(0, 6fr);
	gap: clamp(32px, 5vw, 68px);
	align-items: start;
}

.e8-contact--dark li { color: var(--e8-body); margin-bottom: 18px; }
.e8-contact--dark a { color: var(--e8-body); }
.e8-contact--dark a:hover { color: var(--e8-red); }

/* ---------- events list, wide variant ---------- */

.e8-events__list--wide { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }

/* ---------- reveal ---------- */

[data-e8-reveal] {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity .6s var(--e8-ease), transform .6s var(--e8-ease);
}
[data-e8-reveal].is-visible { opacity: 1; transform: none; }

/* ---------- responsive ---------- */

@media (min-width: 1100px) {
	.e8-rail { display: flex; }
	body.has-rail .e8-shell { margin-left: var(--e8-rail); }
}

@media (max-width: 1023px) {
	.e8-header__inner { gap: 14px; flex-wrap: wrap; }

	.e8-burger { display: block; order: 3; }
	.e8-header__donate { order: 2; padding: 12px 18px; font-size: .78rem; }

	.e8-nav {
		order: 4;
		flex-basis: 100%;
		display: none;
		border-top: 1px solid var(--e8-line);
		padding-block: 8px 18px;
	}
	.e8-nav.is-open { display: block; }
	.e8-nav__list { flex-direction: column; align-items: stretch; gap: 0; }
	.e8-nav__list li { border-bottom: 1px solid var(--e8-line); }
	.e8-nav__list a { display: block; padding: 14px 2px; border-bottom: 0; }

	.e8-events__grid { grid-template-columns: 1fr; }
	.e8-events__list { grid-template-columns: 1fr; }
	.e8-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 767px) {
	:root { --e8-gutter: 20px; }

	.e8-values__grid { grid-template-columns: 1fr; gap: 22px; }
	.e8-value { border-left: 0; padding: 0; }

	.e8-about__grid,
	.e8-prayer__grid { grid-template-columns: 1fr; }

	.e8-hero__actions .e8-btn { flex: 1 1 auto; }

	.e8-form__row { grid-template-columns: 1fr; gap: 0; }

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

	.e8-contact__grid { grid-template-columns: 1fr; }
	.e8-cta__inner { flex-direction: column; align-items: flex-start; }

	.e8-slide { padding-inline: 0; }
	.e8-slider__quote .e8-icon { width: 64px; height: 64px; }
}

@media (prefers-reduced-motion: reduce) {
	.e8 *,
	.e8 *::before,
	.e8 *::after {
		animation-duration: .001ms !important;
		transition-duration: .001ms !important;
		scroll-behavior: auto !important;
	}
	[data-e8-reveal] { opacity: 1; transform: none; }
}
