/*
 * Acton BV Pastoral Area: site styles.
 *
 * Colours come from the Kadence global palette (set by the builder from the
 * variant, and by Customize › Parish Branding), so the whole site follows them:
 *   palette1  primary navy      palette2  estuary blue (links, hover)
 *   palette4  body text         palette5  muted text
 *   palette6  lines             palette7  sky blue
 *   palette8  warm off-white    palette9  white
 * Two accents sit outside the Kadence palette and are set here:
 *   --acpa-gold  highlights / decorative rules    --acpa-green  community accents
 * Accessibility: white on navy, navy on gold or sky blue; gold and green are
 * never used for small text on white.
 */

:root {
	--acpa-navy: var(--global-palette1, #1b3658);
	--acpa-blue: var(--global-palette2, #287198);
	--acpa-heading-color: var(--global-palette3, #1b3658);
	--acpa-text: var(--global-palette4, #2f3b4a);
	--acpa-muted: var(--global-palette5, #5c6878);
	--acpa-line: var(--global-palette6, #c9d8e6);
	--acpa-sky: var(--global-palette7, #91b1d0);
	--acpa-cream: var(--global-palette8, #f6f3ec);
	--acpa-white: var(--global-palette9, #fff);
	--acpa-gold: #f4d08a;
	--acpa-green: #507438;
	--acpa-navy-deep: color-mix(in srgb, var(--acpa-navy) 82%, #000);
	--acpa-sky-soft: color-mix(in srgb, var(--acpa-sky) 22%, #fff);
	--acpa-heading: var(--global-heading-font-family, "Platypi", Georgia, serif);
	--acpa-width: var(--global-content-width, 1320px);
	--acpa-gutter: clamp(1rem, 4vw, 2.5rem);
	--acpa-band-pad: clamp(3rem, 7vw, 5.5rem);
	--acpa-radius: 10px;
	--acpa-shadow: 0 1px 2px rgba(27, 54, 88, .06), 0 8px 28px rgba(27, 54, 88, .08);
	--acpa-shadow-lift: 0 2px 4px rgba(27, 54, 88, .08), 0 16px 36px rgba(27, 54, 88, .14);
	/* The estuary waves from the logo, used as a band edge. */
	--acpa-wave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath d='M0 34c120-22 240-22 360 0s240 22 360 0 240-22 360 0 240 22 360 0v26H0z'/%3E%3C/svg%3E");
}

/* ------------------------------------------------------------------ */
/* Layout helpers                                                      */
/* ------------------------------------------------------------------ */

.acpa .entry-content > .acpa-section,
.acpa-band > *, .acpa-band > .wp-block-group__inner-container > *,
.acpa-footer__main,
.acpa-footer__bar {
	box-sizing: border-box;
	max-width: calc(var(--acpa-width) + 2 * var(--acpa-gutter));
	margin-inline: auto;
	padding-inline: var(--acpa-gutter);
}
.acpa-band > *, .acpa-band > .wp-block-group__inner-container > * { padding-inline: 0; max-width: var(--acpa-width); }
.acpa-band,
.acpa .entry-content .acpa-band.alignfull { padding: var(--acpa-band-pad) var(--acpa-gutter); margin: 0; }
.acpa-grid > *, .acpa-grid > .wp-block-group__inner-container > * { margin: 0 !important; }
.acpa .entry-content > .acpa-section { padding-block: clamp(2.5rem, 5vw, 4rem); margin-block: 0; }
.acpa .entry-content > .acpa-section + .acpa-section { padding-top: 0; }
.acpa-prose > *, .acpa-prose > .wp-block-group__inner-container > * { max-width: 820px; margin-inline: auto; }
.acpa-prose > .alignwide, .acpa-prose > figure.wp-block-table { max-width: var(--acpa-width); }
.acpa-history .acpa-prose > * { max-width: 820px; }

.acpa-band--white { background: var(--acpa-white); }
.acpa-band--soft, .acpa-band--light { background: var(--acpa-cream); }
.acpa-band--tint { background: var(--acpa-sky-soft); }
.acpa-band--navy { background: var(--acpa-navy); color: var(--acpa-white); }
.acpa-band--navy :is(h1, h2, h3, h4, p, li) { color: inherit; }
.acpa-band--navy a:not(.wp-element-button) { color: var(--acpa-gold); }

.acpa-grid { display: grid; gap: 1.5rem; }
.acpa-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1024px) { .acpa-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .acpa-grid--3 { grid-template-columns: 1fr; } }

/* Kadence has no theme.json, so WordPress may wrap group content in an inner
   container; let the group's own grid/flex layout reach the blocks. */
[class*="acpa-"] > .wp-block-group__inner-container { display: contents; }

/* Eyebrows. The ruled version echoes the "Four Parishes • One Community" line under the logo. */
:where(.acpa-eyebrow) {
	font-size: .85rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	margin-top: 0;
	margin-bottom: .75rem;
	color: var(--acpa-blue);
}
.acpa-eyebrow--rule { display: flex; align-items: center; gap: 1rem; }
.acpa-eyebrow--rule.has-text-align-center { justify-content: center; }
.acpa-eyebrow--rule::before, .acpa-eyebrow--rule::after { content: ""; flex: 0 1 3.5rem; height: 2px; background: var(--acpa-gold); }
.acpa-eyebrow--rule:not(.has-text-align-center)::before { display: none; }
.acpa-band--navy .acpa-eyebrow { color: var(--acpa-gold); }
.acpa-section-title { font-size: clamp(2rem, 4vw, 2.9rem); margin: 0 0 2rem; }
.acpa-lead { max-width: 720px; margin: -1rem auto 2.5rem !important; font-size: 1.1rem; color: var(--acpa-muted); }
.acpa-note { padding: 1rem 1.25rem; background: var(--acpa-cream); border-left: 4px solid var(--acpa-gold); border-radius: 0 var(--acpa-radius) var(--acpa-radius) 0; }

/* ------------------------------------------------------------------ */
/* Header                                                              */
/* ------------------------------------------------------------------ */

.site-header .site-main-header-wrap { border-bottom: 3px solid var(--acpa-gold); }
.site-header .main-navigation .primary-menu-container > ul > li.menu-item > a { padding-block: 1.1em; }
.site-header .header-navigation .header-menu-container ul ul.sub-menu { border-radius: var(--acpa-radius); box-shadow: var(--acpa-shadow-lift); padding: .5rem 0; border-top: 3px solid var(--acpa-gold); min-width: 16rem; }
.site-header .header-navigation .header-menu-container ul ul li.menu-item > a { font-weight: 500; padding-block: .6em; }

/* Donate shows as a gold pill. */
.site-header .main-navigation .menu-item.acp-menu-donate > a {
	background: var(--acpa-gold);
	color: var(--acpa-navy) !important;
	border-radius: 999px;
	padding: .55em 1.25em !important;
	margin-left: .5em;
	line-height: 1.2;
}
.site-header .main-navigation .menu-item.acp-menu-donate > a:hover { background: color-mix(in srgb, var(--acpa-gold) 80%, #fff); }

/* Home shows a house icon on desktop; the word stays for screen readers. */
@media (min-width: 1025px) {
	.site-header .menu-item.acp-menu-home > a { position: relative; color: transparent !important; width: 1.4em; overflow: hidden; white-space: nowrap; }
	.site-header .menu-item.acp-menu-home > a::before {
		content: "";
		position: absolute;
		inset: 0;
		margin: auto;
		width: 22px;
		height: 22px;
		background: var(--acpa-navy);
		-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10.5 12 3l9 7.5'/%3E%3Cpath d='M5 9.5V21h5v-6h4v6h5V9.5'/%3E%3C/svg%3E") center / contain no-repeat;
		mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10.5 12 3l9 7.5'/%3E%3Cpath d='M5 9.5V21h5v-6h4v6h5V9.5'/%3E%3C/svg%3E") center / contain no-repeat;
	}
	.site-header .menu-item.acp-menu-home > a:hover::before,
	.site-header .menu-item.acp-menu-home.current-menu-item > a::before { background: var(--acpa-blue); }
}

/* ------------------------------------------------------------------ */
/* Page title banner                                                   */
/* ------------------------------------------------------------------ */

.acpa .entry-hero[class*="-hero-section"],
.acpa .entry-hero[class*="-hero-section"] .entry-hero-container-inner { background: var(--acpa-navy); position: relative; }
.acpa .entry-hero[class*="-hero-section"]::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: 28px;
	background: var(--acpa-white);
	-webkit-mask: var(--acpa-wave) center / 100% 100% no-repeat;
	mask: var(--acpa-wave) center / 100% 100% no-repeat;
	pointer-events: none;
}
.acpa .entry-hero .entry-hero-container-inner .hero-section-overlay { display: none; }
.entry-hero .entry-header { text-align: center; justify-content: center; padding-bottom: 28px; }
.entry-hero .entry-title,
.entry-hero .archive-title,
.entry-hero h1 { color: var(--acpa-white); }
.entry-hero .kadence-breadcrumbs,
.entry-hero .entry-meta,
.entry-hero .entry-taxonomies { display: none; }
.entry-hero .archive-description { color: var(--acpa-white); }

/* ------------------------------------------------------------------ */
/* Buttons and links                                                   */
/* ------------------------------------------------------------------ */

.acpa .wp-element-button,
.acpa .wp-block-button__link { border-radius: 999px; font-weight: 700; padding: .8em 1.6em; }
.acpa .is-style-gold .wp-block-button__link { background: var(--acpa-gold); color: var(--acpa-navy); }
.acpa .is-style-gold .wp-block-button__link:hover { background: var(--acpa-white); color: var(--acpa-navy); }
.acp-more {
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--acpa-blue);
	text-decoration: none;
}
.acpa-band--navy .acp-more { color: var(--acpa-gold); }
.acpa :focus-visible { outline: 3px solid var(--acpa-blue); outline-offset: 3px; }
.acpa-band--navy :focus-visible, .acpa-footer :focus-visible { outline-color: var(--acpa-gold); }

/* ------------------------------------------------------------------ */
/* Homepage hero: photos cross-fade behind a fixed caption             */
/* ------------------------------------------------------------------ */

.acpa .entry-content > .acpa-slider.alignfull { margin: 0; }
.acpa-slider {
	position: relative;
	min-height: clamp(460px, 72vh, 720px);
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	background: var(--acpa-navy);
	color: var(--acpa-white);
	isolation: isolate;
}
.acpa-slider__slides { position: absolute; inset: 0; z-index: -2; margin: 0 !important; }
.acpa-slide.wp-block-image { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity 1.4s ease; }
.acpa-slide:first-child, .acpa-slide.is-active { opacity: 1; }
.acpa-slider.is-ready .acpa-slide:not(.is-active) { opacity: 0; }
.acpa-slide img { width: 100%; height: 100%; object-fit: cover; display: block; transform: scale(1.04); transition: transform 8s ease-out; }
.acpa-slide.is-active img { transform: scale(1); }
.acpa-slider::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, rgba(27, 54, 88, 0) 30%, rgba(17, 34, 56, .55) 62%, rgba(17, 34, 56, .88) 100%);
}
.acpa-slider::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	height: clamp(24px, 4vw, 48px);
	background: var(--acpa-white);
	-webkit-mask: var(--acpa-wave) center / 100% 100% no-repeat;
	mask: var(--acpa-wave) center / 100% 100% no-repeat;
}
.acpa-slider__caption {
	box-sizing: border-box;
	width: 100%;
	max-width: calc(var(--acpa-width) + 2 * var(--acpa-gutter));
	margin: 0 auto !important;
	padding: 0 var(--acpa-gutter) clamp(4rem, 9vw, 7rem);
}
.acpa-slider__title {
	color: var(--acpa-white);
	font-size: clamp(2.4rem, 6vw, 4.6rem);
	line-height: 1.08;
	max-width: 15ch;
	margin: 0 0 1rem;
	text-wrap: balance;
	text-shadow: 0 2px 18px rgba(0, 0, 0, .25);
}
.acpa-slider__text {
	display: inline-block;
	margin: 0;
	padding-top: .9rem;
	border-top: 2px solid var(--acpa-gold);
	font-size: clamp(.95rem, 1.6vw, 1.15rem);
	font-weight: 600;
	letter-spacing: .04em;
	color: var(--acpa-white);
}
.acpa-slider__text em { font-style: normal; }
.acpa-slider__toggle {
	position: absolute;
	right: var(--acpa-gutter);
	bottom: clamp(3rem, 6vw, 4.5rem);
	z-index: 2;
	font: 700 .75rem/1 var(--global-body-font-family, sans-serif);
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--acpa-white);
	background: rgba(17, 34, 56, .55);
	border: 1px solid rgba(255, 255, 255, .5);
	border-radius: 999px;
	padding: .55rem .95rem;
	cursor: pointer;
}
.acpa-slider__toggle:hover { background: var(--acpa-navy); }
@media (max-width: 640px) { .acpa-slider__toggle { top: 1rem; bottom: auto; } }
.acpa-hero--plain { background: var(--acpa-navy); padding: clamp(4rem, 10vw, 8rem) var(--acpa-gutter) 3rem; margin: 0; }
.acpa-hero--plain > * { max-width: var(--acpa-width); margin-inline: auto; }

/* Welcome */
.acpa-welcome__cols { gap: clamp(2rem, 5vw, 5rem); align-items: flex-start; margin: 0; }
.acpa-welcome h2 { font-size: clamp(2rem, 4vw, 2.9rem); margin-top: 0; }
.acpa-welcome__aside .acp-church-list { background: var(--acpa-cream); border-radius: var(--acpa-radius); padding: .5rem 1.5rem; border-top: 4px solid var(--acpa-gold); }

/* Church list */
.acp-church-list__item { display: flex; gap: 1rem; align-items: center; padding: .9rem 0; }
.acp-church-list__item + .acp-church-list__item { border-top: 1px solid var(--acpa-line); }
.acp-church-list__media { flex: none; width: 76px; height: 60px; border-radius: 6px; overflow: hidden; }
.acp-church-list__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.acp-church-list__body { display: flex; flex-direction: column; gap: .1rem; }
.acp-church-list__title { font-family: var(--acpa-heading); font-weight: 600; font-size: 1.08rem; line-height: 1.25; color: var(--acpa-navy) !important; text-decoration: none; }
.acp-church-list__town { font-size: .9rem; color: var(--acpa-muted); }
.acp-church-list .acp-more { margin-top: .2rem; font-size: .72rem; }

/* Quick links on navy */
.acpa-quick__grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.acpa-quick__grid > * { margin: 0 !important; }
.acpa-qcard {
	position: relative;
	border: 1px solid rgba(255, 255, 255, .18);
	border-radius: var(--acpa-radius);
	padding: 1.75rem 1.5rem;
	transition: background-color .2s ease, border-color .2s ease;
}
.acpa-qcard:hover, .acpa-qcard:focus-within { background: rgba(255, 255, 255, .06); border-color: var(--acpa-gold); }
.acpa-qcard > * { margin: 0; }
.acpa-qcard .acp-icon-block {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--acpa-gold);
	color: var(--acpa-navy);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0 0 1.1rem;
}
.acpa-qcard__title { font-size: 1.3rem; margin: 0 0 .35rem !important; }
.acpa-qcard__title a { color: var(--acpa-white) !important; text-decoration: none; }
.acpa-qcard__title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.acpa-qcard__title a:focus-visible { outline: none; }
.acpa-qcard:focus-within { outline: 3px solid var(--acpa-gold); outline-offset: 3px; }
.acpa-qcard__text { margin: 0 !important; font-size: .95rem; color: color-mix(in srgb, var(--acpa-white) 85%, var(--acpa-navy)) !important; }

/* Reflection + death notices */
.acpa-rd__cols { gap: clamp(2rem, 4vw, 4rem); margin: 0; align-items: stretch; }
.acpa-rd__col:empty { display: none; }
.acpa-rd:not(:has(.acp-reflection, .acp-death-notices)) { display: none; }
.acp-reflection {
	height: 100%;
	box-sizing: border-box;
	margin: 0;
	padding: clamp(1.75rem, 4vw, 3rem);
	background: var(--acpa-sky-soft);
	border-radius: var(--acpa-radius);
	border-left: 6px solid var(--acpa-gold);
}
.acp-reflection__eyebrow { font-size: .8rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--acpa-blue); margin: 0 0 .75rem; }
.acp-reflection__title { font-size: clamp(1.6rem, 3vw, 2.2rem); margin: 0 0 .5rem; }
.acp-reflection__title a { color: var(--acpa-navy); text-decoration: none; }
.acp-reflection__ref { font-style: italic; color: var(--acpa-muted); margin: 0 0 1rem; }
.acp-reflection__text { font-size: 1.1rem; margin: 0; }
.acp-death-notices__heading { font-size: 1.6rem; margin: 0 0 1rem; }
.acp-death-notice { display: flex; justify-content: space-between; gap: 1rem; padding: .8rem 0; border-bottom: 1px solid var(--acpa-line); }
.acp-death-notice a { font-weight: 600; color: var(--acpa-navy); text-decoration: none; }
.acp-death-notice time { color: var(--acpa-muted); font-size: .9rem; white-space: nowrap; }
.acp-death-notices__more { margin: 1rem 0 0; }

/* ------------------------------------------------------------------ */
/* Mass times                                                          */
/* ------------------------------------------------------------------ */

.acp-mass-times__note {
	max-width: 820px;
	margin: 0 auto 2rem;
	padding: .9rem 1.5rem;
	text-align: center;
	background: var(--acpa-cream);
	border-radius: var(--acpa-radius);
	border-left: 4px solid var(--acpa-gold);
}
.acpa-band--soft .acp-mass-times__note { background: var(--acpa-white); }
.acp-mass-table { font-size: .95rem; border-radius: var(--acpa-radius); overflow: hidden; box-shadow: var(--acpa-shadow); background: var(--acpa-white); }
.acp-mass-table thead th {
	background: var(--acpa-navy);
	color: var(--acpa-white);
	font-family: var(--acpa-heading);
	font-weight: 600;
	font-size: 1rem;
	padding: 1rem .75rem;
}
.acp-mass-table tbody tr { background: var(--acpa-white); }
.acp-mass-table tbody tr + tr:not(.acp-mass-table__group) { border-top: 1px solid var(--acpa-line); }
.acp-mass-table th, .acp-mass-table td { padding: .9rem .75rem; border: 0; }
.acp-mass-table tr.acp-mass-table__group th {
	background: var(--acpa-sky-soft);
	padding: .6rem .9rem;
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	border-top: 2px solid var(--acpa-sky);
}
.acp-mass-table__group a { color: var(--acpa-navy); text-decoration: none; }
.acp-mass-table__church { min-width: 12rem; }
.acp-mass-table__name, .acp-mass-table__name a { font-family: var(--acpa-heading); font-size: 1.05rem; line-height: 1.25; color: var(--acpa-navy); text-decoration: none; font-weight: 600; }
.acp-mass-table__town { font-size: .85rem; color: var(--acpa-muted); }
.acp-chip {
	display: inline-block;
	background: var(--acpa-cream);
	border: 1px solid var(--acpa-line);
	border-radius: 999px;
	padding: .2rem .65rem;
	font-size: .85rem;
	font-weight: 700;
	color: var(--acpa-navy);
	white-space: nowrap;
}
.acp-mass-times.is-single-church .acp-mass-table__church,
.acp-mass-times.is-single-church thead th:first-child { display: none; }
.acpa-parish-masses { margin-top: 3rem !important; }
.acpa-parish-masses h3 { margin-bottom: 1.25rem; }
@media (max-width: 781px) {
	.acp-mass-table { border-radius: 0; box-shadow: none; background: transparent; }
	.acp-mass-table tbody tr { border-radius: var(--acpa-radius); margin-bottom: 1rem; overflow: hidden; box-shadow: var(--acpa-shadow); }
	.acp-mass-table tbody tr + tr:not(.acp-mass-table__group) { border-top: 0; }
	.acp-mass-table tr.acp-mass-table__group { box-shadow: none; margin: 1.5rem 0 .5rem; background: transparent; }
	.acp-mass-table tr.acp-mass-table__group th { background: transparent; border: 0; padding: 0; }
	.acp-mass-table__church { background: var(--acpa-navy); }
	.acp-mass-table__church, .acp-mass-table__name, .acp-mass-table__name a, .acp-mass-table__town { color: var(--acpa-white); }
	.acp-mass-table td { padding: .55rem .9rem; }
	.acp-chip { white-space: normal; }
}

/* ------------------------------------------------------------------ */
/* Notices                                                             */
/* ------------------------------------------------------------------ */

.acp-notice { background: var(--acpa-white); border-radius: var(--acpa-radius); overflow: hidden; display: flex; flex-direction: column; box-shadow: var(--acpa-shadow); }
.acp-notice__media { display: block; aspect-ratio: 16 / 9; overflow: hidden; }
.acp-notice__media.is-placeholder { display: flex; align-items: center; justify-content: center; background: var(--acpa-navy); color: var(--acpa-gold); }
.acp-notice__media.is-placeholder .acp-icon { width: 64px; height: 64px; }
.acp-notice__body { padding: 1.5rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.acp-notice__date { font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--acpa-blue); }
.acp-notice__title { font-size: 1.3rem; margin: 0; }
.acp-notice__title a { color: var(--acpa-navy); text-decoration: none; }
.acp-notice__excerpt { font-size: 1rem; margin: 0 0 .5rem; flex: 1; }
.acp-notices__more { justify-content: center; margin-top: 2.5rem; display: flex; }

/* ------------------------------------------------------------------ */
/* Cards: parishes, churches, sacraments                               */
/* ------------------------------------------------------------------ */

.acp-card { background: var(--acpa-white); border-radius: var(--acpa-radius); overflow: hidden; box-shadow: var(--acpa-shadow); transition: transform .18s ease, box-shadow .18s ease; display: flex; flex-direction: column; }
.acp-card:hover, .acp-card:focus-within { transform: translateY(-3px); box-shadow: var(--acpa-shadow-lift); }
.acp-card:focus-within { outline: 3px solid var(--acpa-blue); outline-offset: 3px; }
.acp-card a:focus-visible { outline: none; }
.acp-card__title { margin: 0; font-size: 1.3rem; line-height: 1.25; }
.acp-card__title a { color: var(--acpa-navy); text-decoration: none; }
.acp-card--image .acp-card__media { display: flex; aspect-ratio: 4 / 3; align-items: center; justify-content: center; background: var(--acpa-cream); color: var(--acpa-blue); position: relative; }
.acp-card--image .acp-card__media::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--acpa-gold); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.acp-card--image:hover .acp-card__media::after, .acp-card--image:focus-within .acp-card__media::after { transform: scaleX(1); }
.acp-card--image .acp-card__title { padding: 1.25rem 1.5rem 0; }
.acp-card--image > :last-child { margin-bottom: 1.4rem; }
.acp-card--image .acp-card__sub, .acp-card--image .acp-card__text, .acp-card--image .acp-more { margin-inline: 1.5rem; }
.acp-card__sub { margin: .35rem 0 0; font-size: .85rem; font-weight: 600; color: var(--acpa-blue); }
.acp-card--image .acp-card__text { margin-top: .6rem; margin-bottom: .9rem; font-size: .95rem; flex: 1; }
.acp-card--icon { padding: 2rem 1.75rem; gap: .75rem; align-items: flex-start; }
.acp-card--icon .acp-card__icon { width: 60px; height: 60px; border-radius: 50%; background: var(--acpa-sky-soft); color: var(--acpa-navy); display: inline-flex; align-items: center; justify-content: center; }
.acp-card__text { margin: 0; font-size: 1rem; flex: 1; }
.acp-card--cta { background: var(--acpa-navy); color: var(--acpa-white); }
.acp-card--cta .acp-card__title a, .acp-card--cta .acp-more { color: var(--acpa-white); }
.acp-card--cta .acp-card__icon { background: var(--acpa-gold); color: var(--acpa-navy); }

/* ------------------------------------------------------------------ */
/* Parish and church pages                                             */
/* ------------------------------------------------------------------ */

.acpa-banner.wp-block-image { margin: 0; }
.acpa-banner img { width: 100%; height: clamp(240px, 36vw, 500px); object-fit: cover; display: block; }
.acp-church-cards { max-width: calc(var(--acpa-width) + 2 * var(--acpa-gutter)); margin: 0 auto; padding-inline: var(--acpa-gutter); position: relative; z-index: 2; box-sizing: border-box; }
.acpa-banner + .acp-church-cards { margin-top: clamp(-5rem, -6vw, -2rem); }
.acp-info-card { background: var(--acpa-white); border-radius: var(--acpa-radius); box-shadow: var(--acpa-shadow-lift); padding: 1.5rem; }
.acp-info-card.is-featured { background: var(--acpa-navy); color: var(--acpa-white); }
.acp-info-card__eyebrow { font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; margin: 0 0 .75rem; color: var(--acpa-blue); }
.acp-info-card.is-featured .acp-info-card__eyebrow { color: var(--acpa-gold); }
.acp-info-card__row { display: flex; gap: 1rem; align-items: flex-start; }
.acp-info-card__media { flex: none; width: 76px; height: 76px; border-radius: 8px; overflow: hidden; }
.acp-info-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.acp-info-card__title { font-size: 1.2rem; margin: 0 0 .25rem; color: inherit; }
.acp-info-card:not(.is-featured) .acp-info-card__title { color: var(--acpa-navy); }
.acp-info-card__sub { font-size: .92rem; margin: 0 0 .75rem; }
.acp-info-card__button { display: inline-flex; align-items: center; gap: .5rem; font-weight: 700; font-size: .88rem; text-decoration: none; color: var(--acpa-blue); }
.acp-info-card.is-featured .acp-info-card__button { color: var(--acpa-gold); }
.acp-info-card__icon { width: 32px; height: 32px; border-radius: 50%; background: var(--acpa-sky-soft); color: var(--acpa-navy); display: inline-flex; align-items: center; justify-content: center; }
.acp-info-card.is-featured .acp-info-card__icon { background: var(--acpa-gold); color: var(--acpa-navy); }

.acp-church-parish a { color: inherit; text-decoration: none; }
.acp-church-parish a:hover span { text-decoration: underline; }
.acpa-church-intro > p:first-of-type { font-size: 1.15rem; }
.acpa-church-details { display: grid; gap: 1.5rem 3rem; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.acpa-church-details > * { margin: 0; }
.acp-church-detail__heading { font-size: 1.35rem; margin: 0 0 .5rem; }
.acpa-church-webcam .acp-church-detail { max-width: 960px; margin-inline: auto; }
.acpa-church-webcam .acp-post-field { text-align: center; margin-top: 1rem; }

.acpa-history { margin: 0; }
.acpa-split { gap: clamp(2rem, 5vw, 5rem); align-items: center; margin: 0; }
.acpa-split.is-flipped { flex-direction: row-reverse; }
.acpa-split__media img { border-radius: var(--acpa-radius); width: 100%; height: auto; display: block; box-shadow: var(--acpa-shadow); }
.acpa-split__media figure { margin: 0; }
.acpa-split__media figcaption { font-size: .88rem; color: var(--acpa-muted); margin-top: .6rem; }
.acpa-band--soft + .acpa-band--soft, .acpa-band--tint + .acpa-band--tint { padding-top: 0; }
@media (max-width: 781px) { .acpa-split.is-flipped { flex-direction: column; } }

/* Galleries */
.acp-grid-gallery img { border-radius: 8px; aspect-ratio: 4 / 3; object-fit: cover; width: 100%; height: auto; }
.acp-gallery-card { background: var(--acpa-white); border-radius: var(--acpa-radius); overflow: hidden; box-shadow: var(--acpa-shadow); }
.acp-gallery-card:focus-within { outline: 3px solid var(--acpa-blue); outline-offset: 3px; }
.acp-gallery-card a:focus-visible { outline: none; }
.acp-gallery-card__title { font-size: 1.2rem; margin: 1rem 1.25rem 0; }
.acp-gallery-card__title a { color: var(--acpa-navy); text-decoration: none; }
.acp-gallery-card__sub { margin: .25rem 1.25rem 0; font-size: .85rem; font-weight: 600; color: var(--acpa-blue); }
.acp-gallery-card__count { margin: .5rem 1.25rem 1.25rem; font-size: .85rem; color: var(--acpa-muted); }

/* Webcams */
.acp-webcam { max-width: 960px; margin-inline: auto; }
.acp-webcam + .acp-webcam { margin-top: 3.5rem; padding-top: 3rem; border-top: 1px solid var(--acpa-line); }
.acp-webcam h2 { margin: 0 0 .25rem; }
.acp-webcam__parish { margin: 0 0 1rem; color: var(--acpa-blue); font-weight: 600; }
.acp-webcam__link { margin: .75rem 0 0; }
.acp-embed { border-radius: var(--acpa-radius); overflow: hidden; background: #0d1b2b; }

/* ------------------------------------------------------------------ */
/* Donate                                                              */
/* ------------------------------------------------------------------ */

.acp-donate-card { background: var(--acpa-white); border-radius: var(--acpa-radius); box-shadow: var(--acpa-shadow); padding: 2rem 1.75rem; display: flex; flex-direction: column; align-items: flex-start; gap: .75rem; border-top: 4px solid var(--acpa-gold); }
.acp-donate-card__icon { width: 64px; height: 64px; border-radius: 50%; background: var(--acpa-sky-soft); color: var(--acpa-navy); display: inline-flex; align-items: center; justify-content: center; }
.acp-donate-card__title { font-size: 1.3rem; margin: 0; }
.acp-donate-card__text { margin: 0; font-size: .97rem; flex: 1; }
.acp-donate-card__action { margin: .5rem 0 0; }
.acpa-donate-more { text-align: left; }
.acpa-fund { position: relative; background: var(--acpa-white); border-radius: var(--acpa-radius); box-shadow: var(--acpa-shadow); padding: 2rem; }
.acpa-fund__title a { color: var(--acpa-navy); text-decoration: none; }
.acpa-fund__title a::after { content: ""; position: absolute; inset: 0; }

/* ------------------------------------------------------------------ */
/* Contact                                                             */
/* ------------------------------------------------------------------ */

.acpa-contact__cols { gap: clamp(2rem, 4vw, 4rem); margin: 0; }
.acpa-office { background: var(--acpa-white); border-radius: var(--acpa-radius); padding: clamp(1.5rem, 3vw, 2.25rem); box-shadow: var(--acpa-shadow); margin-bottom: 2rem; border-left: 5px solid var(--acpa-gold); }
.acpa-office h2 { margin-top: 0; }
.acpa-office .acp-parish-info { margin: 0 0 .5rem; }
.acp-parish-info__label { font-weight: 700; }
.acp-contacts__tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.5rem; }
.acp-contacts__tabs [role="tab"] {
	font: 600 1rem/1.2 var(--acpa-heading);
	background: var(--acpa-white);
	color: var(--acpa-navy);
	border: 1px solid var(--acpa-line);
	border-radius: 999px;
	padding: .6rem 1.2rem;
	cursor: pointer;
}
.acp-contacts__tabs [role="tab"][aria-selected="true"] { background: var(--acpa-navy); border-color: var(--acpa-navy); color: var(--acpa-white); }
.acp-contacts__panel[data-acp-hidden], .acp-contacts__panel[hidden] { display: none; }
.acp-contacts__panel > ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.acp-contact { background: var(--acpa-white); border-radius: var(--acpa-radius); padding: 1.25rem 1.5rem; }
.acp-contact__name { font-size: 1.15rem; margin: 0 0 .4rem; }
.acp-contact p { margin: 0; font-size: .95rem; }
.acpa-contact__form .acp-contact-form,
.acpa-contact__form > .acp-form { background: var(--acpa-navy); color: var(--acpa-white); border-radius: var(--acpa-radius); padding: clamp(1.5rem, 3vw, 2.5rem); }
.acp-form__heading { margin-top: 0; }
.acpa-contact__form .acp-form__heading { color: var(--acpa-white); }
.acp-form__field { margin: 0 0 1rem; }
.acp-form label { font-weight: 600; font-size: .95rem; margin-bottom: .35rem; }
.acp-form input[type="text"], .acp-form input[type="email"], .acp-form input[type="tel"], .acp-form textarea {
	border-radius: 8px;
	border: 1px solid var(--acpa-line);
	padding: .7rem .85rem;
	background: var(--acpa-white);
	color: var(--acpa-text);
}
.acpa-contact__form .acp-form__privacy { font-size: .85rem; }
.acpa-contact__form .acp-form__privacy a { color: var(--acpa-gold); }
.acpa-contact__form .acp-form .wp-element-button { background: var(--acpa-gold); color: var(--acpa-navy); }
.acpa-contact__form .acp-form .wp-element-button:hover { background: var(--acpa-white); }
.acp-form__notice { padding: .75rem 1rem; border-radius: 8px; background: var(--acpa-white); color: var(--acpa-navy); font-weight: 600; }
.acp-form__notice.is-error { border-left: 4px solid #b3261e; }

/* CTA band */
.acpa-cta { text-align: center; }
.acpa-cta h2 { margin-top: 0; }
.acpa-cta .wp-block-buttons { margin-top: 1.5rem; }

/* ------------------------------------------------------------------ */
/* Content pages                                                       */
/* ------------------------------------------------------------------ */

.acpa-page-image img { border-radius: var(--acpa-radius); }
.acpa-prose .wp-block-table table { border-collapse: collapse; width: 100%; }
.acpa-prose .wp-block-table thead { border-bottom: 0; }
.acpa-prose .wp-block-table th { background: var(--acpa-navy); color: var(--acpa-white); font-weight: 600; }
.acpa-prose .wp-block-table td, .acpa-prose .wp-block-table th { border: 1px solid var(--acpa-line); padding: .6rem .8rem; }
.acpa-prose h2 { margin-top: 2.5rem; }
.acpa-prose h3 { margin-top: 2rem; }
.acpa-prose > :first-child { margin-top: 0; }
.acpa-school .acp-post-field { margin: 0 0 .5rem; }
.acp-post-field__label { font-weight: 700; }

/* Archives (notices, schools, groups, newsletters, death notices) */
.acpa.archive .content-wrap .entry, .acpa.blog .content-wrap .entry { border-radius: var(--acpa-radius); box-shadow: var(--acpa-shadow); }
.acpa.archive .entry-title a { color: var(--acpa-navy); }

/* ------------------------------------------------------------------ */
/* Footer                                                              */
/* ------------------------------------------------------------------ */

.acpa-footer { background: var(--acpa-navy); color: var(--acpa-white); font-size: .97rem; position: relative; margin-top: clamp(24px, 4vw, 48px); }
.acpa-footer::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: calc(-1 * clamp(24px, 4vw, 48px) + 1px);
	height: clamp(24px, 4vw, 48px);
	background: var(--acpa-navy);
	-webkit-mask: var(--acpa-wave) center / 100% 100% no-repeat;
	mask: var(--acpa-wave) center / 100% 100% no-repeat;
}
.acpa-footer a { color: var(--acpa-white); text-decoration-color: var(--acpa-gold); text-underline-offset: 3px; }
.acpa-footer a:hover { color: var(--acpa-gold); }
.acpa-footer__main { padding-block: clamp(2.5rem, 5vw, 4rem); }
.acpa-footer__cols { gap: 2.5rem; margin: 0; }
.acpa-footer__heading { color: var(--acpa-gold); font-size: .8rem; font-family: inherit; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; margin: 0 0 1rem; }
.acpa-footer .acp-parish-info { margin: 0 0 .45rem; }
.acpa-footer .acp-parish-info__label { font-weight: 600; }
.acpa-footer__logo { margin: 0 0 1rem; }
.acpa-footer__logo img { width: 260px; max-width: 100%; height: auto; }
.acpa-footer__name { font: 600 1.6rem/1.2 var(--acpa-heading); margin: 0 0 .5rem; }
.acpa-footer__tagline { font-size: .8rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--acpa-sky); margin: 0; }
.acpa-footer__list { list-style: none; margin: 0; padding: 0; }
.acpa-footer__list li { margin: 0 0 .45rem; }
.acpa-footer__diocese-logo { margin: 0 0 1rem; }
.acpa-footer__diocese-logo img { max-height: 80px; width: auto; }
.acpa-footer__bar {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem 2rem;
	justify-content: space-between;
	align-items: center;
	padding-block: 1.1rem;
	font-size: .88rem;
	max-width: none;
	background: var(--acpa-navy-deep);
	padding-inline: max(var(--acpa-gutter), calc((100% - var(--acpa-width)) / 2));
}
.acpa-footer__bar p { margin: 0; }
.acpa-footer__links a + a { margin-left: 1.5rem; }

/* ------------------------------------------------------------------ */
/* Kadence: full-width pages start flush under the title banner        */
/* ------------------------------------------------------------------ */

.acpa.content-vertical-padding-hide .entry-content > :first-child.alignfull { margin-top: 0; }
.acpa .entry-content > .alignfull:last-child { margin-bottom: 0; }
.acpa.home .content-area { margin-top: 0; }
.acpa .entry-content > .wp-block-group.alignfull,
.acpa .entry-content > .wp-block-cover.alignfull,
.acpa .entry-content > .wp-block-image.alignfull { margin-block: 0; }

@media (prefers-reduced-motion: reduce) {
	.acpa-qcard, .acp-card, .acp-card__media::after, .acpa-slide, .acpa-slide img { transition: none; }
	.acp-card:hover, .acp-card:focus-within { transform: none; }
	.acpa-slide img { transform: none; }
}
