/* ==========================================================================
   Pastor Epa — theme styles
   Colours, fonts and spacing come from theme.json (Appearance → Editor → Styles).
   This file adds block styles, cards, motion and small layout refinements.
   ========================================================================== */

:root {
	--pe-radius: 14px;
	--pe-radius-lg: 22px;
	--pe-ease: cubic-bezier(.2, .7, .2, 1);
	--pe-gold: var(--wp--preset--color--gold, #FEAA01);
	--pe-gold-light: var(--wp--preset--color--gold-light, #FFC94A);
	--pe-night: var(--wp--preset--color--night, #07142B);
	--pe-red: var(--wp--preset--color--red, #FF0A2D);
	--pe-orange: var(--wp--preset--color--flame-orange, #FE8521);
	--pe-flame: linear-gradient(90deg, #FF0A2D 0%, #FE8521 45%, #FEB900 100%);
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: var(--pe-gold-light); color: var(--pe-night); }
img { height: auto; }
:where(a) { text-underline-offset: .18em; text-decoration-thickness: 1px; }
:target { scroll-margin-top: 110px; }

.wp-site-blocks { padding-top: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.pe-main { margin-block-start: 0 !important; }

/* ---------- Header ---------- */
.pe-header-wrap { position: sticky; top: 0; z-index: 100; }
.admin-bar .pe-header-wrap { top: 32px; }
@media (max-width: 782px) { .admin-bar .pe-header-wrap { top: 46px; } }
.pe-site-header {
	background-color: rgba(7, 20, 43, .86) !important;
	-webkit-backdrop-filter: saturate(160%) blur(14px);
	backdrop-filter: saturate(160%) blur(14px);
	border-bottom: 1px solid rgba(255, 201, 74, .12);
	transition: box-shadow .3s var(--pe-ease), background-color .3s var(--pe-ease);
	position: relative !important;
	top: auto !important;
}
.pe-header-wrap.is-scrolled .pe-site-header {
	background-color: rgba(7, 20, 43, .97) !important;
	box-shadow: 0 10px 40px -20px rgba(0, 0, 0, .7);
}
.pe-site-header .wp-block-site-title a { color: #fff; }
.pe-site-header .wp-block-site-logo img { border-radius: 50%; }
.pe-header-tagline { margin: 0; opacity: .9; }
.pe-main-nav .wp-block-navigation-item__content { position: relative; padding-block: .35rem; }
.pe-main-nav .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
	background: var(--pe-flame); transform: scaleX(0); transform-origin: left;
	transition: transform .35s var(--pe-ease);
}
.pe-main-nav .wp-block-navigation-item__content:hover::after,
.pe-main-nav .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.pe-main-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--pe-gold-light); }
.wp-block-navigation__responsive-container.is-menu-open {
	padding: 2rem 1.5rem;
	background: radial-gradient(ellipse at 50% 0%, #1B3A6B 0%, #0E2347 55%, #07142B 100%) !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--display);
	font-size: 2rem; text-transform: none; letter-spacing: 0; font-weight: 600;
}
@media (max-width: 599px) {
	.pe-header-tagline { display: none; }
}

/* ---------- Hero & covers ---------- */
.pe-hero h1 { font-size: clamp(3.4rem, 9vw, 8.5rem); text-shadow: 0 6px 40px rgba(0, 0, 0, .35); }
.pe-hero .pe-hero-content > * { animation: pe-rise .9s var(--pe-ease) both; }
.pe-hero .pe-hero-content > *:nth-child(2) { animation-delay: .08s; }
.pe-hero .pe-hero-content > *:nth-child(3) { animation-delay: .16s; }
.pe-hero .pe-hero-content > *:nth-child(4) { animation-delay: .24s; }
.pe-hero .pe-hero-content > *:nth-child(5) { animation-delay: .32s; }
.pe-hero .pe-hero-content > *:nth-child(6) { animation-delay: .4s; }
@keyframes pe-rise { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }

.wp-block-cover.is-style-parallax-soft { overflow: hidden; }
.wp-block-cover.is-style-parallax-soft > .wp-block-cover__image-background { animation: pe-kenburns 22s ease-out both; }
@keyframes pe-kenburns { from { transform: scale(1.12); } to { transform: scale(1); } }

.pe-page-hero h1 { font-size: clamp(3rem, 7.5vw, 6.5rem); }
.pe-page-band { position: relative; overflow: hidden; }
.pe-page-band::after, .pe-subscribe-band::after, .pe-stats::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: radial-gradient(circle at 15% 120%, rgba(254, 170, 1, .18), transparent 45%),
		radial-gradient(circle at 85% -20%, rgba(47, 109, 181, .22), transparent 45%);
}
.pe-subscribe-band, .pe-stats { position: relative; overflow: hidden; }
.pe-subscribe-band > *, .pe-stats > *, .pe-page-band > * { position: relative; z-index: 1; }

.pe-stream-row { align-items: center; }
.pe-stream-row p { margin: 0; }

/* ---------- Block styles ---------- */
.is-style-eyebrow {
	font-size: var(--wp--preset--font-size--x-small) !important;
	font-weight: 700; letter-spacing: .26em; text-transform: uppercase;
	color: var(--pe-gold);
	display: flex; align-items: center; gap: .9rem;
}
.is-style-eyebrow::before { content: ""; width: 2.25rem; height: 2px; background: var(--pe-red); flex: none; }
.is-style-eyebrow.has-text-align-center { justify-content: center; }
.is-style-eyebrow.has-text-align-center::after { content: ""; width: 2.25rem; height: 2px; background: var(--pe-red); flex: none; }
.has-base-2-background-color .is-style-eyebrow,
.has-base-background-color .is-style-eyebrow,
.has-white-background-color .is-style-eyebrow { color: var(--wp--preset--color--gold-deep); }

.is-style-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.6; }

.is-style-gold-accent { position: relative; padding-bottom: .9rem; }
.is-style-gold-accent::after {
	content: ""; position: absolute; left: 0; bottom: 0; width: 4.5rem; height: 3px; border-radius: 3px;
	background: var(--pe-flame);
}
.is-style-gold-accent.has-text-align-center::after { left: 50%; transform: translateX(-50%); }

.is-style-stat-number { font-variant-numeric: tabular-nums; margin: 0; line-height: 1 !important; }

.wp-block-group.is-style-card {
	background: var(--wp--preset--color--white);
	border-radius: var(--pe-radius-lg);
	box-shadow: var(--wp--preset--shadow--soft);
	overflow: hidden;
	transition: transform .45s var(--pe-ease), box-shadow .45s var(--pe-ease);
}
.wp-block-group.is-style-card:hover { transform: translateY(-4px); box-shadow: var(--wp--preset--shadow--lifted); }
.wp-block-group.is-style-glass {
	background: rgba(255, 255, 255, .055);
	border: 1px solid rgba(255, 201, 74, .18);
	border-radius: var(--pe-radius-lg);
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.wp-block-group.is-style-gold-line, .pe-gold-top { border-top: 0 !important; position: relative; }
.wp-block-group.is-style-gold-line::before, .pe-gold-top::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--pe-flame); }

.wp-block-image.is-style-gold-frame { position: relative; isolation: isolate; margin: 0 1.25rem 1.25rem 0; }
.wp-block-image.is-style-gold-frame::before {
	content: ""; position: absolute; inset: 1.25rem -1.25rem -1.25rem 1.25rem; z-index: -1;
	border: 2px solid var(--pe-orange); border-radius: var(--pe-radius-lg);
}
.wp-block-image.is-style-gold-frame img { border-radius: var(--pe-radius-lg); box-shadow: var(--wp--preset--shadow--lifted); }

.wp-block-image.is-style-soft-zoom { overflow: hidden; border-radius: var(--pe-radius-lg); }
.wp-block-image.is-style-soft-zoom img { transition: transform 1.2s var(--pe-ease); border-radius: inherit; }
.wp-block-image.is-style-soft-zoom:hover img,
.pe-album-card:hover .wp-block-image.is-style-soft-zoom img { transform: scale(1.06); }
.pe-album-card .wp-block-image.is-style-soft-zoom { border-radius: 0; margin: 0; }

.wp-block-gallery .wp-block-image img { border-radius: var(--pe-radius); transition: transform .8s var(--pe-ease), filter .6s; }
.wp-block-gallery .wp-block-image { overflow: hidden; border-radius: var(--pe-radius); }
.wp-block-gallery .wp-block-image:hover img { transform: scale(1.05); }
.pe-thumbs { margin-top: .75rem !important; }

/* Mosaic = masonry columns: keeps each photo's natural shape and never leaves gaps. */
.wp-block-gallery.is-style-mosaic.has-nested-images { display: block; column-count: 3; column-gap: .75rem; }
.wp-block-gallery.is-style-mosaic.has-nested-images:not(:has(> figure:nth-child(3))) { column-count: 2; }
.wp-block-gallery.is-style-mosaic.has-nested-images figure.wp-block-image {
	width: 100% !important; margin: 0 0 .75rem !important; break-inside: avoid; display: block;
}
.wp-block-gallery.is-style-mosaic.has-nested-images figure.wp-block-image img { height: auto !important; width: 100%; object-fit: cover; }
@media (max-width: 600px) { .wp-block-gallery.is-style-mosaic.has-nested-images { column-count: 2; column-gap: .5rem; } .wp-block-gallery.is-style-mosaic.has-nested-images figure.wp-block-image { margin-bottom: .5rem !important; } }

.wp-block-list.is-style-checks { list-style: none; padding-left: 0; }
.wp-block-list.is-style-checks li { position: relative; padding-left: 2rem; margin-bottom: .6rem; }
.wp-block-list.is-style-checks li::before {
	content: "✓"; position: absolute; left: 0; top: .05em; width: 1.35rem; height: 1.35rem; border-radius: 50%;
	display: grid; place-items: center; font-size: .75rem; font-weight: 800;
	background: var(--pe-gold); color: var(--pe-night);
}

/* Buttons */
.wp-block-button__link { transition: background-color .3s var(--pe-ease), color .3s var(--pe-ease), transform .3s var(--pe-ease), box-shadow .3s var(--pe-ease); }
.wp-block-button:not(.is-style-ghost) .wp-block-button__link:hover { transform: translateY(-2px); box-shadow: var(--wp--preset--shadow--gold-glow); }
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent; color: var(--wp--preset--color--contrast); border: 1.5px solid currentColor;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); box-shadow: none; }
.wp-block-button.is-style-outline-light > .wp-block-button__link {
	background: transparent; color: #fff; border: 1.5px solid rgba(255, 255, 255, .6);
}
.wp-block-button.is-style-outline-light > .wp-block-button__link:hover { background: #fff; color: var(--pe-night); border-color: #fff; box-shadow: none; }
.wp-block-button.is-style-ghost > .wp-block-button__link {
	background: transparent; color: inherit; padding: .4em 0; border-radius: 0;
	border-bottom: 1px solid currentColor;
}
.wp-block-button.is-style-ghost > .wp-block-button__link::after { content: " →"; display: inline-block; transition: transform .3s var(--pe-ease); }
.wp-block-button.is-style-ghost > .wp-block-button__link:hover { color: var(--pe-gold); }
.wp-block-button.is-style-ghost > .wp-block-button__link:hover::after { transform: translateX(4px); }
.pe-stream-row .wp-block-button.is-style-ghost > .wp-block-button__link { color: #fff; margin-right: 1rem; }
.pe-stream-row .wp-block-button.is-style-ghost > .wp-block-button__link::after { content: " ↗"; }

/* Dark sections: readable links & outline buttons */
:is(.has-night-background-color, .has-midnight-background-color, .has-royal-background-color, .has-stage-glow-gradient-background, .has-contrast-background-color, .wp-block-cover) a:not(.wp-element-button) { color: var(--pe-gold-light); }
:is(.has-night-background-color, .has-midnight-background-color, .has-royal-background-color, .has-stage-glow-gradient-background, .has-contrast-background-color, .wp-block-cover) .wp-block-button.is-style-outline > .wp-block-button__link { color: #fff; }
:is(.has-night-background-color, .has-midnight-background-color, .has-royal-background-color, .has-stage-glow-gradient-background, .has-contrast-background-color, .wp-block-cover) .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #fff; color: var(--pe-night); }

/* ---------- Sections ---------- */
.pe-stat { position: relative; }
@media (min-width: 782px) {
	.pe-stat + .pe-stat::before { content: ""; position: absolute; left: calc(var(--wp--preset--spacing--40) / -2); top: 15%; bottom: 15%; width: 1px; background: rgba(255, 201, 74, .25); }
}

.pe-sticky-col > * { position: sticky; top: 120px; }

.pe-timeline { position: relative; }
.pe-timeline::before { content: ""; position: absolute; left: 7.5rem; top: .5rem; bottom: .5rem; width: 1px; background: linear-gradient(var(--pe-red), var(--pe-orange) 40%, rgba(254, 170, 1, .15)); }
.pe-timeline-item { position: relative; margin-bottom: var(--wp--preset--spacing--40) !important; gap: 2.5rem !important; }
.pe-timeline-item::before { content: ""; position: absolute; left: calc(7.5rem - 6px); top: .7rem; width: 13px; height: 13px; border-radius: 50%; background: var(--pe-gold); box-shadow: 0 0 0 6px rgba(254, 170, 1, .18); }
.pe-timeline-item h4 { margin-top: .15rem; }
@media (max-width: 600px) {
	.pe-timeline::before, .pe-timeline-item::before { display: none; }
	.pe-timeline-item { flex-direction: column !important; gap: .4rem !important; }
	.pe-timeline-item > .wp-block-column { flex-basis: auto !important; }
}

.pe-pill-list { list-style: none; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; }
.pe-pill-list li {
	padding: .7rem 1.3rem; border-radius: 999px; font-weight: 600; font-size: var(--wp--preset--font-size--small);
	border: 1px solid rgba(255, 201, 74, .3); background: rgba(255, 255, 255, .05);
	transition: background .3s, border-color .3s, transform .3s var(--pe-ease);
}
.pe-pill-list li:hover { background: rgba(254, 170, 1, .16); border-color: var(--pe-gold); transform: translateY(-2px); }
.pe-closing-quote { max-width: 720px; margin: var(--wp--preset--spacing--50) auto 0 !important; text-align: center; border: 0 !important; padding: 0 !important; }
.pe-closing-quote p { font-size: clamp(1.6rem, 3vw, 2.4rem); color: var(--pe-gold-light); }

.pe-account-number { font-variant-numeric: tabular-nums; }
.pe-give-card { height: 100%; }

.pe-contact-cards { width: 100%; }
.pe-contact-cards > .is-style-card { width: 100%; box-sizing: border-box; }
.pe-contact-cards h6 { margin: 0; }
.pe-contact-cards p { margin: 0; }
.pe-contact-cards a { text-decoration: none; color: inherit; }

.pe-map iframe { filter: grayscale(.35) contrast(1.05); }

.pe-post-card .wp-block-post-featured-image { margin: 0; overflow: hidden; }
.pe-post-card .wp-block-post-featured-image img { transition: transform 1s var(--pe-ease); }
.pe-post-card:hover .wp-block-post-featured-image img { transform: scale(1.05); }
.pe-post-card .wp-block-post-title a:hover, .pe-update-cards .wp-block-post-title a:hover { color: var(--wp--preset--color--gold-deep); }
.wp-block-post-excerpt__more-link { font-weight: 700; font-size: var(--wp--preset--font-size--x-small); letter-spacing: .14em; text-transform: uppercase; text-decoration: none; }
.pe-single-featured img { border-radius: var(--pe-radius-lg); }

/* ---------- Footer ---------- */
.pe-site-footer .wp-block-site-title a { color: #fff; }
.pe-site-footer h6 { margin-bottom: 1.1rem; }
.pe-contact-list, .pe-listen-list { list-style: none; padding: 0; margin: 0; }
.pe-contact-list li, .pe-listen-list li { margin-bottom: .7rem; color: rgba(255, 255, 255, .78); }
.pe-site-footer a { text-decoration: none; }
.pe-site-footer .wp-block-navigation-item__content { text-transform: uppercase; }
.pe-site-footer .wp-block-social-links .wp-social-link { transition: transform .3s var(--pe-ease); }
.pe-site-footer .wp-block-social-links .wp-social-link:hover { transform: translateY(-3px); }

/* ---------- Forms ---------- */
.pe-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.pe-form input[type="email"], .pe-form input[type="text"], .pe-form input[type="tel"], .pe-form select, .pe-form textarea {
	width: 100%; box-sizing: border-box; font: inherit; font-size: 1rem;
	padding: .95rem 1.15rem; border-radius: 12px;
	border: 1.5px solid #D9DFEA; background: #fff; color: var(--wp--preset--color--contrast);
	transition: border-color .25s, box-shadow .25s;
}
.pe-form textarea { resize: vertical; min-height: 9rem; }
.pe-form :is(input, select, textarea):focus { outline: none; border-color: var(--pe-gold); box-shadow: 0 0 0 4px rgba(254, 170, 1, .2); }
.pe-form button.wp-element-button { cursor: pointer; border: 0; }
.pe-field { margin: 0 0 1rem; }
.pe-field label { display: block; font-size: var(--wp--preset--font-size--x-small); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; margin-bottom: .45rem; }
.pe-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 600px) { .pe-field-row { grid-template-columns: 1fr; gap: 0; } }

.pe-subscribe-form { display: flex; gap: .6rem; padding: .45rem; border-radius: 999px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 201, 74, .25); max-width: 560px; margin: 0 auto; }
.pe-subscribe-form input[type="email"] { border: 0; background: transparent; color: #fff; border-radius: 999px; }
.pe-subscribe-form input[type="email"]::placeholder { color: rgba(255, 255, 255, .6); }
.pe-subscribe-form input[type="email"]:focus { box-shadow: none; }
.pe-subscribe-form button { flex: none; }
.pe-form-note { text-align: center; font-size: var(--wp--preset--font-size--x-small); opacity: .7; margin-top: .9rem; }
.pe-form-notice { padding: .9rem 1.2rem; border-radius: 12px; font-weight: 600; margin: 0 auto 1rem; max-width: 560px; }
.pe-form-notice.is-success { background: rgba(52, 168, 83, .14); border: 1px solid rgba(52, 168, 83, .45); }
.pe-form-notice.is-error { background: rgba(217, 48, 37, .12); border: 1px solid rgba(217, 48, 37, .45); }
.pe-contact .pe-form-notice { max-width: none; }
@media (max-width: 480px) {
	.pe-subscribe-form { flex-direction: column; border-radius: 18px; }
	.pe-subscribe-form button { width: 100%; }
}

/* ---------- Scroll reveal (enabled by theme.js only) ---------- */
@media (prefers-reduced-motion: no-preference) {
	.pe-js .pe-reveal { opacity: 0; transform: translateY(34px); transition: opacity .9s var(--pe-ease), transform .9s var(--pe-ease); }
	.pe-js .pe-reveal.is-visible { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* ---------- Pagination ---------- */
.wp-block-query-pagination-numbers .page-numbers { display: inline-grid; place-items: center; min-width: 2.6rem; height: 2.6rem; border-radius: 50%; text-decoration: none; font-weight: 700; }
.wp-block-query-pagination-numbers .page-numbers.current { background: var(--pe-gold); color: var(--pe-night); }

/* ---------- Mobile refinements ---------- */
@media (max-width: 781px) {
	.wp-block-image.is-style-gold-frame { margin: 0 .9rem .9rem 0; }
	.wp-block-image.is-style-gold-frame::before { inset: .9rem -.9rem -.9rem .9rem; }
	.pe-sticky-col > * { position: static; }
	.pe-hero { min-height: 88vh !important; }
}

/* ---------- Seamless full-width sections ---------- */
.wp-block-post-content > .alignfull,
.wp-block-post-content > .alignfull + *,
.pe-main + *, .pe-header-wrap + * { margin-block-start: 0 !important; }
.wp-block-post-content > .alignfull { margin-block-end: 0 !important; }
.pe-main:has(> .wp-block-post-content > .alignfull:last-child) { padding-bottom: 0 !important; }
footer.wp-block-template-part, div.wp-block-template-part { margin-block-start: 0; }
.wp-block-template-part > .pe-subscribe-band + .pe-site-footer { margin-block-start: 0 !important; }

/* ---------- Header nav: switch to the menu button on tablets ---------- */
.pe-site-header .wp-block-button__link { white-space: nowrap; }
.pe-site-header .wp-block-navigation__container { flex-wrap: nowrap; }
@media (min-width: 600px) and (max-width: 1099px) {
	.pe-main-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.pe-main-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.pe-main-nav .wp-block-navigation__responsive-container.is-menu-open { position: fixed; display: flex; flex-direction: column; }
	.pe-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { display: flex; }
}

/* Open mobile menu: a blurred header would trap the full-screen overlay inside it. */
.pe-site-header:has(.wp-block-navigation__responsive-container.is-menu-open) { -webkit-backdrop-filter: none; backdrop-filter: none; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: center !important; justify-content: flex-start; padding-top: 4.5rem !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: center !important; gap: 1.1rem !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { justify-content: center; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { min-height: calc(100vh - 6rem); }

/* ---------- Logo ---------- */
.pe-header-logo img { border-radius: 0 !important; display: block; height: auto; }
.pe-brand:has(.pe-header-logo) > .wp-block-group { padding-left: 1.1rem; border-left: 1px solid rgba(255, 255, 255, .18); }
.pe-site-header .wp-block-site-logo img { border-radius: 0; }
.pe-footer-logo { margin-bottom: .5rem !important; }
.pe-footer-logo img { display: block; }
@media (max-width: 781px) {
	.pe-header-logo img { width: 84px !important; }
	.pe-brand { gap: .7rem !important; }
	.pe-brand:has(.pe-header-logo) > .wp-block-group { padding-left: .7rem; }
	.pe-site-header .wp-block-site-title { font-size: 1.35rem !important; }
}
.pe-site-footer .is-style-eyebrow { letter-spacing: .16em; align-items: flex-start; line-height: 1.6; }
.pe-site-footer .is-style-eyebrow::before { margin-top: .75em; }
