/* St. Rita visual identity and responsive polish */

:root {
	--rita-red: #b5212f;
	--rita-deep: #26130d;
	--rita-green: #276141;
	--rita-sky: #eef6fb;
}

/* Guided donation workflow */
.gift-wizard {
	max-width: 1080px;
	margin: 30px auto 0;
	overflow: hidden;
	background: #fff;
	border: 1px solid #ddd7d0;
	border-radius: 8px;
	box-shadow: 0 12px 34px rgba(38, 19, 13, .08);
	scroll-margin-top: 96px;
}

.gift-wizard-progress {
	padding: 20px 24px 18px;
	background: #34221c;
	color: #fff;
}

.gift-progress-mobile {
	display: none;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 10px;
}

.gift-progress-mobile strong,
.gift-progress-mobile span {
	font-size: .82rem;
}

.gift-progress-track {
	height: 4px;
	overflow: hidden;
	margin-bottom: 17px;
	background: rgba(255, 255, 255, .2);
	border-radius: 2px;
}

.gift-progress-track span {
	display: block;
	width: 0;
	height: 100%;
	background: #d8b95a;
	transition: width .3s ease;
}

.gift-step-list {
	display: grid;
	grid-template-columns: repeat(8, minmax(0, 1fr));
	gap: 6px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.gift-step-list li {
	position: relative;
	min-width: 0;
	color: rgba(255, 255, 255, .55);
	text-align: center;
}

.gift-step-list li > span {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	margin: 0 auto 6px;
	background: rgba(255, 255, 255, .1);
	border: 1px solid rgba(255, 255, 255, .2);
	border-radius: 50%;
}

.gift-step-list li > span i {
	display: none;
}

.gift-step-list li > span b {
	font-size: .72rem;
}

.gift-step-list li small {
	display: block;
	overflow-wrap: anywhere;
	font-size: .65rem;
	line-height: 1.25;
}

.gift-step-list li.is-active {
	color: #fff;
}

.gift-step-list li.is-active > span {
	background: #d8b95a;
	border-color: #d8b95a;
	color: #2c1810;
}

.gift-step-list li.is-complete:not(.is-active) {
	color: #d8e9dc;
}

.gift-step-list li.is-complete:not(.is-active) > span {
	background: #276141;
	border-color: #72a284;
}

.gift-step-list li.is-complete:not(.is-active) > span i {
	display: block;
	font-size: .72rem;
}

.gift-step-list li.is-complete:not(.is-active) > span b {
	display: none;
}

.gift-step-list li.is-skipped:not(.is-active) {
	opacity: .45;
}

.wizard-stage {
	padding: 34px;
}

.wizard-stage[hidden] {
	display: none !important;
}

.wizard-stage-heading {
	max-width: 760px;
	margin-bottom: 26px;
}

.wizard-stage-heading.centered {
	margin-right: auto;
	margin-left: auto;
	text-align: center;
}

.wizard-stage-heading > span {
	display: block;
	margin-bottom: 7px;
	color: #276141;
	font-size: .72rem;
	font-weight: 800;
	text-transform: uppercase;
}

.wizard-stage-heading h2 {
	margin: 0 0 7px;
	color: #2c1810;
	font-family: 'Playfair Display', serif;
	font-size: 1.72rem;
	letter-spacing: 0;
}

.wizard-stage-heading h2:focus {
	outline: none;
}

.wizard-stage-heading p {
	margin: 0;
	color: #68615b;
	line-height: 1.65;
}

.wizard-alert {
	margin: 20px 34px 0;
	padding: 13px 15px;
	background: #eef6fb;
	border: 1px solid #bdd9e8;
	border-radius: 6px;
	color: #21536d;
	font-size: .9rem;
	line-height: 1.5;
}

.wizard-alert[hidden] {
	display: none;
}

.wizard-alert-error {
	background: #fff0f1;
	border-color: #e6b8bd;
	color: #7f1d2d;
}

.wizard-alert-success {
	background: #edf7ef;
	border-color: #b8d9bf;
	color: #245c31;
}

.wizard-project-preview {
	margin: 20px 0 0;
	box-shadow: none;
}

.wizard-project-preview .selected-project-media {
	min-height: 350px;
}

.wizard-project-preview .selected-project-summary h3 {
	margin: 9px 0 10px;
	color: #2c1810;
	font-family: 'Playfair Display', serif;
	font-size: 1.45rem;
	letter-spacing: 0;
}

.wizard-project-preview .campaign-availability-notice {
	grid-column: auto;
	margin-top: 18px;
	padding: 12px 14px;
	border: 1px solid #e7d28c;
}

.wizard-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 28px;
}

.wizard-actions-end {
	justify-content: flex-end;
}

.wizard-actions .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	min-width: 150px;
}

.wizard-actions .btn:disabled {
	opacity: .5;
	cursor: not-allowed;
}

.wizard-selection-summary {
	display: grid;
	grid-template-columns: 38px minmax(0, auto) minmax(0, 1fr);
	align-items: center;
	gap: 10px;
	margin-bottom: 22px;
	padding: 12px 15px;
	background: #f4f7f5;
	border-left: 3px solid #276141;
}

.wizard-selection-summary i {
	color: #276141;
}

.wizard-selection-summary span {
	color: #667069;
	font-size: .78rem;
}

.wizard-selection-summary strong {
	min-width: 0;
	color: #26372d;
	overflow-wrap: anywhere;
}

.payment-method-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}

.payment-method-choice {
	position: relative;
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr) 24px;
	align-items: center;
	gap: 11px;
	min-width: 0;
	min-height: 108px;
	padding: 16px;
	background: #fff;
	border: 2px solid #ddd7d0;
	border-radius: 8px;
	cursor: pointer;
}

.payment-method-choice[hidden] {
	display: none;
}

.payment-method-choice:has(input:checked) {
	background: #f1f7f3;
	border-color: #276141;
	box-shadow: 0 0 0 3px rgba(39, 97, 65, .1);
}

.payment-method-choice > input {
	position: absolute;
	opacity: 0;
}

.payment-method-choice > i {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	background: #f5ead0;
	border-radius: 50%;
	color: #725916;
}

.payment-method-choice span strong,
.payment-method-choice span small {
	display: block;
	overflow-wrap: anywhere;
}

.payment-method-choice span strong {
	color: #2c1810;
}

.payment-method-choice span small {
	margin-top: 4px;
	color: #746d67;
	font-size: .75rem;
	line-height: 1.4;
}

.payment-choice-check {
	display: none;
	place-items: center;
	width: 23px;
	height: 23px;
	background: #276141;
	border-radius: 50%;
	color: #fff;
	font-size: .67rem;
}

.payment-method-choice:has(input:checked) .payment-choice-check {
	display: grid;
}

.locked-gift-summary,
.completion-summary {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	overflow: hidden;
	margin-bottom: 24px;
	background: #ded8d1;
	border: 1px solid #ded8d1;
	border-radius: 6px;
}

.locked-gift-summary > div,
.completion-summary > div {
	position: relative;
	min-width: 0;
	padding: 15px 45px 15px 16px;
	background: #faf9f7;
}

.locked-gift-summary span,
.locked-gift-summary strong,
.completion-summary span,
.completion-summary strong,
.completion-summary code {
	display: block;
	overflow-wrap: anywhere;
}

.locked-gift-summary span,
.completion-summary span {
	margin-bottom: 5px;
	color: #7a726c;
	font-size: .68rem;
	font-weight: 700;
	text-transform: uppercase;
}

.locked-gift-summary strong,
.completion-summary strong,
.completion-summary code {
	color: #2c3c32;
	font-size: .9rem;
}

.copy-text-button {
	display: inline-grid;
	place-items: center;
	width: 34px;
	height: 34px;
	padding: 0;
	background: #edf5ef;
	border: 1px solid #bad0c0;
	border-radius: 50%;
	color: #276141;
	cursor: pointer;
}

.locked-gift-summary .copy-text-button {
	position: absolute;
	top: 16px;
	right: 10px;
}

.copy-text-button:hover,
.copy-text-button:focus-visible,
.copy-text-button.is-copied {
	background: #276141;
	border-color: #276141;
	color: #fff;
}

.manual-transfer-notice {
	display: flex;
	align-items: flex-start;
	gap: 13px;
	margin-bottom: 16px;
	padding: 15px;
	background: #f0f6f2;
	border-left: 4px solid #276141;
}

.manual-transfer-notice > i {
	margin-top: 3px;
	color: #276141;
}

.manual-transfer-notice h3,
.manual-transfer-notice p {
	margin: 0;
}

.manual-transfer-notice h3 {
	color: #173e29;
	font-size: 1.02rem;
}

.manual-transfer-notice p {
	margin-top: 3px;
	color: #577061;
	font-size: .84rem;
	line-height: 1.55;
}

.wizard-account-list[hidden] {
	display: none;
}

.wizard-account-empty {
	display: flex;
	align-items: center;
	gap: 10px;
	grid-column: 1 / -1;
	padding: 14px 16px;
	background: #fff5f3;
	border: 1px solid #e3b8af;
	border-radius: 6px;
	color: #8a2e25;
}

.wizard-account-empty span {
	overflow-wrap: anywhere;
}

.online-payment-panel {
	max-width: 640px;
	margin: 0 auto;
	padding: 26px 18px;
	text-align: center;
}

.online-payment-panel[hidden] {
	display: none;
}

.online-payment-panel > i {
	font-size: 2rem;
	color: #276141;
}

.online-payment-panel h3 {
	margin: 10px 0 5px;
	color: #2c1810;
	font-size: 1.25rem;
}

.online-payment-panel p {
	margin: 0 0 18px;
	color: #6a625c;
}

.post-reference-actions {
	margin-top: 22px;
	text-align: center;
}

.text-action {
	color: #276141;
	font-size: .83rem;
	font-weight: 700;
	text-decoration: none;
}

.recorded-stage-icon {
	display: grid;
	place-items: center;
	width: 62px;
	height: 62px;
	margin: 0 auto 15px;
	background: #e9f4ec;
	border: 1px solid #b9d7c2;
	border-radius: 50%;
	color: #276141;
	font-size: 1.65rem;
}

.recorded-stage-icon.complete {
	background: #fff5d8;
	border-color: #e5ce82;
	color: #7a5e13;
}

.private-reference-box {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 38px;
	align-items: center;
	gap: 12px;
	max-width: 680px;
	margin: 0 auto;
	padding: 16px;
	background: #f7f5f2;
	border: 1px solid #ddd7d0;
	border-radius: 6px;
}

.private-reference-box span,
.private-reference-box code {
	display: block;
}

.private-reference-box span {
	margin-bottom: 4px;
	color: #756d67;
	font-size: .7rem;
	font-weight: 700;
	text-transform: uppercase;
}

.private-reference-box code {
	color: #382820;
	font-size: .92rem;
	overflow-wrap: anywhere;
}

.private-reference-box p {
	grid-column: 1 / -1;
	margin: 2px 0 0;
	color: #766c64;
	font-size: .78rem;
	line-height: 1.5;
}

.wizard-anonymous-choice {
	display: grid;
	grid-template-columns: 22px minmax(0, 1fr);
	align-items: flex-start;
	gap: 13px;
	padding: 19px;
	background: #f5f7f8;
	border: 2px solid #d9dde0;
	border-radius: 8px;
	cursor: pointer;
}

.wizard-anonymous-choice:has(input:checked) {
	background: #f1f7f3;
	border-color: #276141;
}

.wizard-anonymous-choice input {
	width: 20px;
	height: 20px;
	margin: 3px 0 0;
	accent-color: #276141;
}

.wizard-anonymous-choice span {
	display: grid;
	grid-template-columns: 30px minmax(0, 1fr);
	column-gap: 9px;
}

.wizard-anonymous-choice span > i {
	grid-row: 1 / 3;
	margin-top: 2px;
	color: #6c4f7c;
	font-size: 1.2rem;
}

.wizard-anonymous-choice strong,
.wizard-anonymous-choice small {
	display: block;
}

.wizard-anonymous-choice strong {
	color: #2c1810;
}

.wizard-anonymous-choice small {
	margin-top: 3px;
	color: #6f6862;
	font-size: .8rem;
	line-height: 1.45;
}

.recognition-privacy-note {
	margin: 14px 0 0;
	color: #6b645e;
	font-size: .8rem;
	line-height: 1.5;
}

.completion-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin-top: 22px;
}

.completion-actions [hidden],
.completion-note[hidden] {
	display: none;
}

.completion-note {
	margin: 18px 0 0;
	color: #6f625a;
	font-size: .82rem;
	text-align: center;
}

.gift-wizard > .donation-check-link {
	margin: 0;
	padding: 0 34px 26px;
	text-align: center;
}

@media (max-width: 900px) {
	.payment-method-grid {
		grid-template-columns: 1fr;
	}

	.locked-gift-summary,
	.completion-summary {
		grid-template-columns: 1fr;
	}

	.wizard-project-preview {
		grid-template-columns: 1fr;
	}

	.wizard-project-preview .selected-project-media {
		min-height: 0;
		aspect-ratio: 16 / 9;
	}
}

@media (max-width: 760px) {
	.gift-wizard {
		margin-top: 20px;
	}

	.gift-wizard-progress {
		padding: 16px 18px;
	}

	.gift-progress-mobile {
		display: flex;
	}

	.gift-step-list {
		display: none;
	}

	.gift-progress-track {
		margin-bottom: 0;
	}

	.wizard-stage {
		padding: 26px 20px;
	}

	.wizard-alert {
		margin: 16px 20px 0;
	}

	.wizard-stage-heading h2 {
		font-size: 1.48rem;
	}

	.gift-wizard > .donation-check-link {
		padding-right: 20px;
		padding-left: 20px;
	}
}

@media (max-width: 560px) {
	.wizard-stage {
		padding: 23px 16px;
	}

	.wizard-alert {
		margin-right: 16px;
		margin-left: 16px;
	}

	.wizard-actions {
		align-items: stretch;
		flex-direction: column-reverse;
	}

	.wizard-actions-end {
		flex-direction: column;
	}

	.wizard-actions .btn {
		width: 100%;
		min-height: 48px;
	}

	.wizard-selection-summary {
		grid-template-columns: 28px minmax(0, 1fr);
	}

	.wizard-selection-summary strong {
		grid-column: 2;
	}

	.payment-method-choice {
		grid-template-columns: 42px minmax(0, 1fr) 22px;
		min-height: 96px;
		padding: 13px;
	}

	.completion-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.completion-actions .btn {
		width: 100%;
	}
}

html,
body {
	max-width: 100%;
}

body {
	word-wrap: break-word;
	overflow-wrap: anywhere;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 3px solid var(--gold);
	outline-offset: 3px;
}

.sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.notification {
	position: fixed;
	top: 100px;
	right: 20px;
	z-index: 99999;
	display: flex;
	align-items: center;
	gap: 10px;
	max-width: 420px;
	padding: 16px 24px;
	border-radius: 8px;
	color: #fff;
	font-size: .95rem;
	font-weight: 500;
	line-height: 1.5;
	box-shadow: 0 10px 40px rgba(0, 0, 0, .2);
	transform: translateX(120%);
	transition: transform .4s cubic-bezier(.34, 1.56, .64, 1);
	backdrop-filter: blur(10px);
}

.notification.show {
	transform: translateX(0);
}

.notification-success {
	background: linear-gradient(135deg, #2d5a27, #3a7332);
	border: 1px solid rgba(255, 255, 255, .15);
}

.notification-error {
	background: linear-gradient(135deg, #6b1d2f, #8b2a42);
	border: 1px solid rgba(255, 255, 255, .15);
}

.notification i {
	flex-shrink: 0;
	font-size: 1.3rem;
}

@media (max-width: 480px) {
	.notification {
		top: 80px;
		left: 20px;
		right: 20px;
		max-width: none;
	}
}

/* Project campaigns and project-led donation workflow */
.projects-hero,
.donate-project-hero {
	min-height: 38vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 104px 20px 64px;
	background-color: var(--rita-deep);
	background-size: cover;
	background-position: center;
	text-align: center;
}

.donate-project-hero {
	background-image: linear-gradient(112deg, rgba(38, 19, 13, .96), rgba(107, 29, 47, .9)), url('../storage/site/st-rita-thanksgiving.jpg');
}

.projects-hero p,
.donate-project-hero p {
	max-width: 680px;
	margin: 10px auto 0;
	color: rgba(255, 255, 255, .84);
	line-height: 1.65;
}

.project-campaigns-section,
.project-donation-section {
	padding: 76px 0 88px;
	background: #f7f5f2;
}

.project-campaign-list {
	display: grid;
	gap: 24px;
}

.project-campaign-card {
	display: grid;
	grid-template-columns: minmax(300px, 42%) minmax(0, 1fr);
	min-width: 0;
	overflow: hidden;
	background: #fff;
	border: 1px solid #e6e0da;
	border-radius: 8px;
	box-shadow: 0 8px 26px rgba(38, 19, 13, .07);
}

.project-campaign-media {
	position: relative;
	min-height: 390px;
	background: #ece8e3;
}

.project-campaign-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.campaign-status {
	display: inline-flex;
	align-items: center;
	width: max-content;
	max-width: 100%;
	padding: 6px 10px;
	border: 1px solid transparent;
	border-radius: 4px;
	font-size: .72rem;
	font-weight: 700;
	line-height: 1.2;
	text-transform: uppercase;
}

.project-campaign-media > .campaign-status {
	position: absolute;
	top: 16px;
	left: 16px;
}

.campaign-status-open {
	background: #e9f5ed;
	border-color: #b9d8c2;
	color: #245c37;
}

.campaign-status-upcoming {
	background: #fff7df;
	border-color: #e6cf82;
	color: #725708;
}

.campaign-status-ended {
	background: #f1f1f1;
	border-color: #d1d1d1;
	color: #5d5d5d;
}

.project-campaign-content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-width: 0;
	padding: 30px;
}

.project-campaign-content h3,
.selected-project-summary h2 {
	color: var(--rita-deep);
	font-family: var(--font-heading);
	font-size: 1.72rem;
	line-height: 1.2;
	margin: 0 0 12px;
	overflow-wrap: anywhere;
}

.project-campaign-description,
.selected-project-summary > p {
	color: #625a54;
	line-height: 1.68;
	margin: 0 0 16px;
}

.campaign-dates {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	width: 100%;
	margin-bottom: 18px;
	color: #5d534c;
	font-size: .84rem;
}

.campaign-dates span {
	display: inline-flex;
	align-items: center;
	gap: 7px;
}

.campaign-dates i {
	color: var(--rita-red);
}

.campaign-progress {
	width: 100%;
	margin-bottom: 20px;
}

.campaign-progress-head,
.campaign-progress-goal {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	color: #514840;
	font-size: .86rem;
}

.campaign-progress-head strong {
	color: var(--rita-green);
}

.campaign-progress-track {
	height: 9px;
	overflow: hidden;
	margin: 8px 0 7px;
	background: #e7e3df;
	border-radius: 8px;
}

.campaign-progress-track span {
	display: block;
	height: 100%;
	background: linear-gradient(90deg, var(--rita-green), var(--gold));
	border-radius: inherit;
}

.campaign-progress-goal {
	justify-content: flex-start;
	color: #716860;
}

.campaign-countdown {
	width: 100%;
	min-height: 104px;
	margin-bottom: 22px;
	padding: 14px;
	background: #291712;
	border-left: 4px solid var(--gold);
	border-radius: 6px;
	color: #fff;
}

.campaign-countdown-label {
	display: block;
	margin-bottom: 9px;
	color: #eadcae;
	font-size: .73rem;
	font-weight: 700;
	text-transform: uppercase;
}

.campaign-countdown-units {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
}

.campaign-countdown-units > span {
	display: grid;
	min-width: 0;
	text-align: center;
}

.campaign-countdown-units strong {
	font-size: 1.32rem;
	font-variant-numeric: tabular-nums;
	line-height: 1.1;
}

.campaign-countdown-units small {
	margin-top: 3px;
	color: rgba(255, 255, 255, .68);
	font-size: .62rem;
	text-transform: uppercase;
}

.campaign-countdown-ended {
	display: flex;
	flex-direction: column;
	justify-content: center;
	background: #4b4744;
	border-left-color: #aaa29d;
}

.campaign-countdown-ended p {
	margin: 0;
	color: rgba(255, 255, 255, .82);
	font-size: .86rem;
}

.project-empty-state {
	padding: 52px 20px;
	background: #fff;
	border: 1px solid #e6e0da;
	border-radius: 8px;
	text-align: center;
}

.project-empty-state i {
	font-size: 2rem;
	color: var(--gold);
}

.project-empty-state h3 {
	margin: 12px 0 5px;
	color: var(--rita-deep);
}

.project-empty-state p {
	margin: 0;
	color: #6c635c;
}

.project-choice-heading {
	margin-bottom: 30px;
}

.donation-project-picker {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin-bottom: 28px;
}

.donation-project-option {
	position: relative;
	display: grid;
	grid-template-columns: 88px minmax(0, 1fr);
	align-items: center;
	min-width: 0;
	min-height: 104px;
	padding: 8px 38px 8px 8px;
	background: #fff;
	border: 2px solid #e1dcd6;
	border-radius: 8px;
	color: inherit;
	font: inherit;
	text-align: left;
	cursor: pointer;
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.donation-project-option:hover,
.donation-project-option:focus-visible {
	border-color: #a98a37;
	box-shadow: 0 7px 20px rgba(38, 19, 13, .09);
	transform: translateY(-2px);
}

.donation-project-option.is-selected {
	border-color: var(--rita-green);
	box-shadow: 0 0 0 3px rgba(39, 97, 65, .12);
}

.donation-project-option img {
	width: 76px;
	height: 86px;
	object-fit: cover;
	border-radius: 5px;
}

.donation-project-option-copy {
	display: block;
	min-width: 0;
	padding-left: 3px;
}

.donation-project-option-copy strong,
.donation-project-option-copy small {
	display: block;
	overflow-wrap: anywhere;
}

.donation-project-option-copy strong {
	color: var(--rita-deep);
	font-size: .94rem;
	line-height: 1.3;
}

.donation-project-option-copy small {
	margin-top: 5px;
	color: #6a625b;
	font-size: .75rem;
}

.donation-project-option .campaign-status {
	grid-column: 2;
	margin: 6px 0 0 3px;
	padding: 4px 7px;
	font-size: .62rem;
}

.project-selected-icon {
	position: absolute;
	top: 10px;
	right: 10px;
	display: none;
	color: var(--rita-green);
	font-size: 1.1rem;
}

.donation-project-option.is-selected .project-selected-icon {
	display: block;
}

.selected-project-region {
	scroll-margin-top: 92px;
}

.selected-project-region[hidden],
.selected-project-panel[hidden],
.project-donation-form-wrapper[hidden] {
	display: none !important;
}

.selected-project-panel {
	display: grid;
	grid-template-columns: minmax(260px, 36%) minmax(0, 1fr);
	overflow: hidden;
	margin-bottom: 26px;
	background: #fff;
	border: 1px solid #ddd7d0;
	border-radius: 8px;
	box-shadow: 0 10px 28px rgba(38, 19, 13, .08);
}

.selected-project-media {
	min-height: 420px;
	background: #e9e5e0;
}

.selected-project-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.selected-project-summary {
	min-width: 0;
	padding: 26px;
}

.selected-project-title-row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 13px;
}

.selected-project-title-row h2 {
	margin-top: 8px;
	margin-bottom: 0;
}

.icon-button {
	display: inline-grid;
	place-items: center;
	flex: 0 0 42px;
	width: 42px;
	height: 42px;
	padding: 0;
	background: #f2efeb;
	border: 1px solid #ddd5ce;
	border-radius: 50%;
	color: var(--rita-deep);
	cursor: pointer;
}

.project-transfer-accounts {
	grid-column: 1 / -1;
	padding: 22px 26px 26px;
	background: #f0f6f2;
	border-top: 1px solid #ccdcd1;
}

.project-transfer-heading {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 15px;
}

.project-transfer-heading > i {
	display: grid;
	place-items: center;
	flex: 0 0 38px;
	width: 38px;
	height: 38px;
	background: var(--rita-green);
	border-radius: 50%;
	color: #fff;
}

.project-transfer-heading h3 {
	margin: 0 0 2px;
	color: #173e29;
	font-size: 1.05rem;
}

.project-transfer-heading p,
.project-account-unavailable {
	margin: 0;
	color: #577061;
	font-size: .84rem;
}

.project-account-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr));
	gap: 10px;
}

.project-account-item {
	min-width: 0;
	padding: 14px 16px;
	background: #fff;
	border: 1px solid #c7d8cc;
	border-radius: 6px;
}

.project-account-item-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}

.project-account-item span,
.project-account-item strong,
.project-account-item small {
	display: block;
	overflow-wrap: anywhere;
}

.project-account-item span {
	color: #345c43;
	font-size: .76rem;
	font-weight: 700;
	text-transform: uppercase;
}

.project-account-item b {
	display: block;
	margin-top: 9px;
	color: #31543d;
	font-size: .88rem;
	overflow-wrap: anywhere;
}

.project-account-item strong {
	margin: 4px 0;
	color: #162c1d;
	font-size: 1.2rem;
	font-variant-numeric: tabular-nums;
}

.project-account-item small {
	color: #5f6c63;
}

.project-account-copy {
	display: inline-grid;
	place-items: center;
	flex: 0 0 34px;
	width: 34px;
	height: 34px;
	padding: 0;
	background: #edf5ef;
	border: 1px solid #bad0c0;
	border-radius: 50%;
	color: #276141;
	cursor: pointer;
}

.project-account-copy:hover,
.project-account-copy:focus-visible,
.project-account-copy.is-copied {
	background: #276141;
	border-color: #276141;
	color: #fff;
}

.payment-proof-panel {
	margin: 4px 0 20px;
	padding: 18px;
	background: #f2f7f3;
	border: 1px solid #cbdccf;
	border-left: 4px solid var(--rita-green);
	border-radius: 6px;
}

.payment-proof-panel[hidden] {
	display: none;
}

.payment-proof-heading {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	margin-bottom: 14px;
}

.payment-proof-heading > i {
	display: grid;
	place-items: center;
	flex: 0 0 36px;
	width: 36px;
	height: 36px;
	background: var(--rita-green);
	border-radius: 50%;
	color: #fff;
}

.payment-proof-heading strong {
	display: block;
	color: #173e29;
}

.payment-proof-heading p {
	margin: 3px 0 0;
	color: #587062;
	font-size: .82rem;
	line-height: 1.55;
}

.payment-proof-field {
	margin-bottom: 0;
}

.payment-proof-control {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
}

.payment-proof-control input[type="file"] {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.payment-proof-button {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	flex: 0 0 auto;
	margin: 0 !important;
	padding: 10px 14px;
	background: #276141;
	border: 1px solid #276141;
	border-radius: 6px;
	color: #fff !important;
	font-weight: 700 !important;
	cursor: pointer;
}

.payment-proof-control input[type="file"]:focus + .payment-proof-button,
.payment-proof-button:hover {
	box-shadow: 0 0 0 3px rgba(39, 97, 65, .18);
}

.payment-proof-control > span {
	min-width: 0;
	overflow: hidden;
	color: #536158;
	font-size: .84rem;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.payment-proof-preview {
	max-width: 620px;
	margin-top: 16px;
}

.payment-proof-preview[hidden],
.payment-proof-preview img[hidden],
.payment-proof-document[hidden] {
	display: none;
}

.payment-proof-preview-label {
	display: block;
	margin-bottom: 8px;
	color: #31543d;
	font-size: .76rem;
	text-transform: uppercase;
}

.payment-proof-preview-media {
	display: grid;
	place-items: center;
	min-height: 140px;
	overflow: hidden;
	background: #fff;
	border: 1px solid #bdd1c2;
	border-radius: 6px;
}

.payment-proof-preview img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 420px;
	object-fit: contain;
	background: #f7f8f7;
}

.payment-proof-document {
	display: flex;
	align-items: center;
	gap: 14px;
	width: 100%;
	min-height: 112px;
	padding: 18px;
}

.payment-proof-document > i {
	flex: 0 0 auto;
	color: #a42d28;
	font-size: 2.4rem;
}

.payment-proof-document strong,
.payment-proof-document span {
	display: block;
	overflow-wrap: anywhere;
}

.payment-proof-document strong {
	color: #2c1810;
}

.payment-proof-document span {
	margin-top: 4px;
	color: #5f6c63;
	font-size: .84rem;
}

.receipt-email-note {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	margin: 0 0 20px;
	padding: 12px 14px;
	background: #fff9e9;
	border-left: 3px solid var(--gold);
	color: #67572b;
	font-size: .84rem;
	line-height: 1.55;
}

.receipt-email-note i {
	margin-top: 3px;
}

.receipt-request-hero {
	background: linear-gradient(110deg, rgba(44, 24, 16, .95), rgba(39, 97, 65, .88)), url('../storage/site/st-rita-hero.jpg') center 38% / cover;
}

.receipt-request-section {
	padding: 70px 0 84px;
	background: #f7f5f2;
}

.receipt-request-panel {
	max-width: 780px;
	margin: 0 auto;
	padding: 30px;
	background: #fff;
	border: 1px solid #ded8d1;
	border-radius: 8px;
	box-shadow: 0 10px 28px rgba(38, 19, 13, .07);
}

.receipt-request-summary {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	overflow: hidden;
	margin-bottom: 26px;
	background: #e3ddd6;
	border: 1px solid #e3ddd6;
	border-radius: 6px;
}

.receipt-request-summary > div {
	min-width: 0;
	padding: 14px;
	background: #faf9f7;
}

.receipt-request-summary span,
.receipt-request-summary strong {
	display: block;
	overflow-wrap: anywhere;
}

.receipt-request-summary span {
	margin-bottom: 5px;
	color: #766c65;
	font-size: .7rem;
	font-weight: 700;
	text-transform: uppercase;
}

.receipt-request-summary strong {
	color: var(--rita-deep);
	font-size: .9rem;
}

.receipt-request-state {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 18px;
	background: #fff8df;
	border-left: 4px solid var(--gold);
}

.receipt-request-ready {
	background: #eef7f1;
	border-left-color: var(--rita-green);
}

.receipt-request-state > i {
	margin-top: 2px;
	color: var(--rita-green);
	font-size: 1.35rem;
}

.receipt-request-state h2 {
	margin: 0 0 4px;
	color: var(--rita-deep);
	font-size: 1.15rem;
}

.receipt-request-state p {
	margin: 0;
	color: #675e57;
	line-height: 1.6;
}

.receipt-request-form {
	text-align: center;
}

.receipt-request-action {
	margin: 22px auto 0;
}

.campaign-availability-notice {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 15px 26px;
	background: #fff7df;
	border-top: 1px solid #e7d28c;
	color: #654e0b;
}

.campaign-availability-ended {
	background: #f1f1f1;
	border-color: #d5d5d5;
	color: #555;
}

.project-donation-form-wrapper {
	max-width: 900px;
	margin: 0 auto;
}

#recordAnotherGift[hidden] {
	display: none;
}

@media (max-width: 1050px) {
	.donation-project-picker {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 780px) {
	.project-campaign-card,
	.selected-project-panel {
		grid-template-columns: 1fr;
	}

	.project-campaign-media,
	.selected-project-media {
		min-height: 0;
		aspect-ratio: 16 / 10;
	}

	.project-campaign-content,
	.selected-project-summary {
		padding: 23px;
	}
}

@media (max-width: 600px) {
	.project-campaigns-section,
	.project-donation-section {
		padding: 52px 0 64px;
	}

	.donation-project-picker {
		grid-template-columns: 1fr;
	}

	.donation-project-option {
		grid-template-columns: 76px minmax(0, 1fr);
		min-height: 92px;
	}

	.donation-project-option img {
		width: 66px;
		height: 74px;
	}

	.project-transfer-accounts,
	.campaign-availability-notice {
		padding-left: 18px;
		padding-right: 18px;
	}

	.payment-proof-control {
		align-items: stretch;
		flex-direction: column;
	}

	.payment-proof-button {
		justify-content: center;
	}

	.payment-proof-control > span {
		text-align: center;
	}

	.receipt-request-section {
		padding: 50px 0 62px;
	}

	.receipt-request-panel {
		padding: 20px 16px;
	}

	.receipt-request-summary {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 380px) {
	.project-campaign-content,
	.selected-project-summary {
		padding: 19px 16px;
	}

	.campaign-countdown {
		padding: 12px 9px;
	}

	.campaign-countdown-units {
		gap: 4px;
	}

	.campaign-countdown-units strong {
		font-size: 1.12rem;
	}

	.project-transfer-heading {
		gap: 9px;
	}
}

[data-aos] {
	opacity: 1 !important;
	transform: none !important;
}

.placeholder-img[hidden] {
	display: none !important;
}

.hero-sm {
	overflow: hidden;
}

.hero-scroll {
	display: none;
}

.navbar.nav-solid,
.navbar.scrolled {
	background: rgba(44, 24, 16, .95);
	backdrop-filter: blur(15px);
	-webkit-backdrop-filter: blur(15px);
	box-shadow: var(--shadow-lg);
	padding: 10px 0;
}

.hero-sm > div {
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.nav-logo {
	min-width: 0;
}

.nav-toggle {
	background: transparent;
	border: 0;
}

.nav-toggle:focus-visible {
	outline: 3px solid var(--gold);
	outline-offset: 3px;
}

.nav-link-icon {
	display: none;
}

@media (min-width: 769px) {
	.nav-menu .nav-link-icon {
		display: none !important;
	}
}

.nav-logo-img,
.footer-logo-img,
.hero-parish-logo,
.identity-logo {
	object-fit: contain;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 10px 26px rgba(0, 0, 0, .18);
}

.nav-logo-img {
	width: 46px;
	height: 46px;
	padding: 3px;
	flex: 0 0 auto;
}

.nav-logo span {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.footer-logo-img {
	width: 46px;
	height: 46px;
	padding: 3px;
	margin-right: 10px;
	flex: 0 0 auto;
}

.hero-parish-logo {
	width: 112px;
	height: 112px;
	padding: 7px;
	margin: 0 auto 18px;
}

.st-rita-hero {
	min-height: 92svh;
	background-size: cover;
	background-position: center;
	isolation: isolate;
	padding-top: var(--nav-height);
}

.st-rita-hero::before {
	opacity: .45;
}

.st-rita-hero .hero-content {
	width: min(100%, 940px);
	padding: 120px 20px 70px;
}

.st-rita-hero .hero-title {
	font-size: clamp(2.4rem, 6vw, 5rem);
	max-width: 12ch;
	margin-left: auto;
	margin-right: auto;
}

.st-rita-hero .hero-subtitle {
	max-width: 760px;
	color: rgba(255, 255, 255, .9);
}

.st-rita-hero .hero-badge {
	max-width: min(100%, 720px);
	justify-content: center;
	white-space: normal;
	line-height: 1.4;
}

.st-rita-identity-panel {
	position: relative;
	z-index: 1;
	display: grid;
	gap: 18px;
	align-items: center;
	justify-items: center;
	padding: 28px;
	background: linear-gradient(180deg, #fff 0%, var(--cream) 100%);
	border: 1px solid rgba(201, 168, 76, .35);
	border-radius: 18px;
	box-shadow: var(--shadow-lg);
}

.identity-logo {
	width: 150px;
	height: 150px;
	padding: 8px;
}

.identity-header {
	width: min(100%, 520px);
	aspect-ratio: 16 / 10;
	object-fit: cover;
	object-position: center;
	border-radius: 12px;
	border: 1px solid rgba(44, 24, 16, .12);
	box-shadow: var(--shadow-md);
}

.identity-caption {
	display: grid;
	gap: 4px;
	text-align: center;
	color: var(--brown);
}

.identity-caption span {
	color: var(--gray-500);
}

.about-parish-image {
	position: relative;
	z-index: 1;
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: 8px;
	box-shadow: var(--shadow-lg);
}

.project-feature-section,
.project-detail-hero {
	padding: 84px 0;
	background: linear-gradient(180deg, #fff 0%, #f7fbf8 100%);
}

.project-feature,
.project-detail-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
	gap: 44px;
	align-items: center;
}

.project-feature-media img,
.project-detail-grid img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: 8px;
	box-shadow: 0 24px 60px rgba(24, 35, 31, .18);
	border: 1px solid rgba(39, 97, 65, .16);
	background: var(--rita-sky);
}

.project-feature-copy,
.project-detail-grid > div {
	min-width: 0;
}

.project-feature-copy h2,
.project-detail-grid h2 {
	font-family: var(--font-heading);
	font-size: clamp(2rem, 4vw, 3.4rem);
	line-height: 1.08;
	color: var(--brown);
	margin: 10px 0 18px;
}

.project-feature-copy p,
.project-detail-grid p {
	color: var(--gray-600);
	line-height: 1.8;
	margin-bottom: 24px;
}

.project-feature-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

.event-introduction {
	max-width: 820px;
	margin: 0 auto 38px;
	color: var(--gray-600);
	font-size: 1.02rem;
	line-height: 1.8;
	text-align: center;
}

.bank-transfer-section {
	max-width: 980px;
	margin: 44px auto 0;
	padding: 34px;
	background: #fff;
	border: 1px solid rgba(201, 168, 76, .22);
	border-radius: 16px;
	box-shadow: var(--shadow-md);
}

.bank-transfer-section h3 {
	font-family: var(--font-heading);
	color: var(--brown);
	font-size: 1.8rem;
	margin-bottom: 6px;
}

.bank-transfer-section > p {
	color: var(--gray-600);
	margin-bottom: 22px;
}

.bank-account-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.bank-account-card {
	display: grid;
	gap: 8px;
	min-width: 0;
	padding: 20px;
	background: linear-gradient(180deg, var(--cream) 0%, #fff 100%);
	border: 1px solid rgba(201, 168, 76, .26);
	border-radius: 12px;
	color: var(--brown);
}

.bank-account-card span {
	width: fit-content;
	max-width: 100%;
	padding: 5px 10px;
	background: rgba(181, 33, 47, .1);
	color: var(--rita-red);
	border-radius: 999px;
	font-size: .78rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.bank-account-card strong {
	font-size: 1.05rem;
}

.bank-account-card small {
	color: var(--gray-600);
	line-height: 1.45;
}

.bank-account-card b {
	font-size: 1.35rem;
	letter-spacing: .08em;
	color: var(--rita-green);
	word-break: break-word;
}

.bank-transfer-inline {
	max-width: none;
	margin: 0 0 22px;
	padding: 22px;
	background: #fffdf7;
	box-shadow: none;
	border-color: rgba(201, 168, 76, .32);
}

.bank-transfer-inline h3 {
	font-size: 1.35rem;
}

.bank-transfer-inline .bank-account-grid {
	grid-template-columns: 1fr;
}

.bank-transfer-inline .bank-account-card {
	padding: 18px;
}

.bank-transfer-inline[hidden],
.bank-account-card[hidden] {
	display: none !important;
}

.donation-form-wrapper,
.event-card,
.testimonial-card {
	border-radius: 8px;
}

.donation-form-wrapper,
.donation-form,
.form-group,
.form-row,
.event-card,
.gallery-item,
.footer-col {
	min-width: 0;
}

.btn {
	white-space: normal;
	text-align: center;
	line-height: 1.25;
}

.progress-section,
.progress-header,
.progress-info {
	min-width: 0;
}

.progress-header,
.progress-info {
	gap: 10px;
}

.form-group-check {
	display: flex;
	align-items: flex-end;
}

.form-group-check label {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 14px;
	line-height: 1.35;
	cursor: pointer;
}

.form-group-check input[type="checkbox"] {
	width: 18px;
	height: 18px;
	min-width: 18px;
	padding: 0;
	margin: 0;
	accent-color: var(--gold);
}

.donation-status {
	margin: 0 0 18px;
	padding: 14px 16px;
	border: 1px solid transparent;
	border-radius: 8px;
	font-size: .92rem;
	line-height: 1.55;
}

.donation-status[hidden] {
	display: none;
}

.donation-status-success {
	background: #edf7ef;
	border-color: #b8d9bf;
	color: #245c31;
}

.donation-status-error {
	background: #fff0f1;
	border-color: #e6b8bd;
	color: #7f1d2d;
}

.donation-status-info {
	background: #eef6fb;
	border-color: #bdd9e8;
	color: #21536d;
}

.donor-recognition-option {
	margin: 4px 0 22px;
	padding: 20px;
	background: #f7faf8;
	border: 1px solid #cfe0d5;
	border-radius: 8px;
}

.recognition-consent-label,
.anonymous-recognition-label {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	cursor: pointer;
}

.recognition-consent-label input,
.anonymous-recognition-label input {
	width: 19px;
	height: 19px;
	min-width: 19px;
	margin: 2px 0 0;
	padding: 0;
	accent-color: var(--rita-green);
}

.recognition-consent-label strong,
.recognition-consent-label small {
	display: block;
}

.recognition-consent-label strong {
	color: var(--brown);
}

.recognition-consent-label small {
	margin-top: 4px;
	color: var(--gray-600);
	font-weight: 400;
	line-height: 1.45;
}

.public-recognition-fields {
	margin-top: 18px;
	padding-top: 18px;
	border-top: 1px solid #d9e6dd;
}

.public-recognition-fields[hidden] {
	display: none !important;
}

.anonymous-recognition-label {
	margin-bottom: 17px;
	color: var(--brown);
	font-weight: 600;
}

.field-help {
	display: flex;
	justify-content: flex-end;
	margin-top: 6px;
	color: var(--gray-500);
	font-size: .78rem;
}

.recognition-privacy-note {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 0;
	color: #315a43;
	font-size: .82rem;
	line-height: 1.5;
}

.recognition-privacy-note i {
	margin-top: 3px;
	flex: 0 0 auto;
}

.donation-check-link {
	margin-top: 12px;
	text-align: center;
	font-size: .88rem;
}

.donation-check-link a {
	color: var(--rita-green);
	font-weight: 600;
}

.donor-wall-hero,
.donation-check-hero {
	min-height: 34vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 110px 20px 60px;
	background: linear-gradient(120deg, #29150f, #5e1d2a 58%, #244f39);
	text-align: center;
}

.donor-wall-hero .hero-title,
.donation-check-hero .hero-title {
	color: #fff;
	font-size: clamp(2rem, 5vw, 3rem);
}

.donor-wall-hero p,
.donation-check-hero p {
	max-width: 680px;
	margin: 10px auto 0;
	color: rgba(255, 255, 255, .82);
	line-height: 1.65;
}

.donor-wall-section,
.donation-check-section {
	padding: 72px 0;
	background: #f8f6f2;
}

.donor-wall-tools {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 28px;
}

.donor-wall-heading {
	max-width: 720px;
}

.donor-wall-heading h2,
.donation-check-copy h2 {
	margin: 8px 0 10px;
	color: var(--brown);
	font-family: var(--font-heading);
	font-size: clamp(1.75rem, 4vw, 2.45rem);
}

.donor-wall-heading p,
.donation-check-copy > p {
	color: var(--gray-600);
	line-height: 1.7;
}

.donor-purpose-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 20px;
}

.donor-purpose-filters a {
	padding: 9px 14px;
	border: 1px solid #d8d0c8;
	border-radius: 999px;
	background: #fff;
	color: #5c5148;
	font-size: .84rem;
	font-weight: 600;
}

.donor-purpose-filters a:hover,
.donor-purpose-filters a.active {
	background: var(--rita-green);
	border-color: var(--rita-green);
	color: #fff;
}

.donor-project-filters a {
	display: flex;
	align-items: center;
	gap: 7px;
	max-width: 280px;
	border-radius: 6px;
}

.donor-project-filters a span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.donor-project-filters a small {
	flex: 0 0 auto;
	padding-left: 7px;
	border-left: 1px solid currentColor;
	opacity: .75;
	font-size: .65rem;
	text-transform: uppercase;
}

.recognition-code-search {
	display: flex;
	align-items: flex-end;
	gap: 16px;
	margin-bottom: 30px;
	padding: 18px 20px;
	background: #fff;
	border: 1px solid #e4ddd5;
	border-radius: 8px;
}

.recognition-code-search .form-group {
	flex: 1;
	margin: 0;
}

.recognition-code-control {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 10px;
}

.recognition-code-control input {
	text-transform: uppercase;
	letter-spacing: .04em;
}

.clear-recognition-search {
	margin-bottom: 12px;
	color: var(--rita-red);
	font-size: .84rem;
	font-weight: 600;
}

.donor-wall-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.donor-wall-card {
	display: flex;
	align-items: flex-start;
	gap: 15px;
	min-width: 0;
	padding: 22px;
	background: #fff;
	border: 1px solid #e4ddd5;
	border-radius: 8px;
	box-shadow: 0 8px 24px rgba(44, 24, 16, .06);
	scroll-margin-top: 100px;
}

.donor-wall-card:target {
	border-color: var(--gold);
	box-shadow: 0 0 0 3px rgba(201, 168, 76, .2), 0 8px 24px rgba(44, 24, 16, .08);
}

.donor-card-icon {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	min-width: 42px;
	border-radius: 50%;
	background: #edf5f0;
	color: var(--rita-green);
}

.donor-card-content {
	min-width: 0;
	flex: 1;
}

.donor-purpose {
	display: inline-block;
	margin-bottom: 6px;
	color: var(--rita-red);
	font-size: .72rem;
	font-weight: 700;
	text-transform: uppercase;
}

.donor-wall-card h3 {
	margin: 0;
	color: var(--brown);
	font-family: var(--font-heading);
	font-size: 1.2rem;
}

.donor-public-amount {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 7px 0 0;
	color: var(--rita-green);
	font-size: .92rem;
	font-weight: 700;
}

.donor-wall-card blockquote {
	margin: 12px 0;
	padding-left: 12px;
	border-left: 3px solid var(--gold);
	color: #5d554f;
	font-size: .9rem;
	font-style: italic;
	line-height: 1.65;
}

.donor-card-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 9px;
	margin-top: 14px;
	color: var(--gray-500);
	font-size: .78rem;
}

.donor-card-meta code,
.verification-code code {
	padding: 5px 8px;
	border-radius: 5px;
	background: #f0f5f2;
	color: #22583b;
	font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
	font-weight: 700;
	letter-spacing: .03em;
	overflow-wrap: anywhere;
}

.donor-wall-empty {
	padding: 55px 24px;
	background: #fff;
	border: 1px dashed #d6cdc4;
	border-radius: 8px;
	text-align: center;
}

.donor-wall-empty > i {
	font-size: 2.2rem;
	color: var(--gold-dark);
}

.donor-wall-empty h3 {
	margin: 14px 0 7px;
	color: var(--brown);
	font-family: var(--font-heading);
}

.donor-wall-empty p {
	max-width: 580px;
	margin: 0 auto 18px;
	color: var(--gray-600);
}

.donor-pagination {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 12px;
	margin-top: 28px;
}

.donor-pagination a,
.donor-pagination > span:first-child,
.donor-pagination > span:last-child {
	width: fit-content;
	padding: 9px 13px;
	border: 1px solid #ddd4cb;
	border-radius: 6px;
	background: #fff;
	color: var(--brown);
	font-size: .84rem;
	font-weight: 600;
}

.donor-pagination > :last-child {
	justify-self: end;
}

.donor-pagination .disabled {
	opacity: .5;
}

.donor-pagination > span:nth-child(2) {
	color: var(--gray-600);
	font-size: .84rem;
}

.donation-check-container {
	display: grid;
	grid-template-columns: minmax(0, .85fr) minmax(360px, 1fr);
	gap: 60px;
	align-items: start;
	max-width: 1050px;
}

.donation-check-copy ul {
	display: grid;
	gap: 13px;
	margin-top: 24px;
}

.donation-check-copy li {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	color: #4c514d;
	line-height: 1.5;
}

.donation-check-copy li i {
	margin-top: 4px;
	color: var(--rita-green);
}

.donation-check-panel {
	min-width: 0;
	padding: 28px;
	background: #fff;
	border: 1px solid #e4ddd5;
	border-radius: 8px;
	box-shadow: 0 12px 34px rgba(44, 24, 16, .08);
}

.donation-check-form .btn {
	margin-top: 4px;
}

.donation-verification-result {
	margin-top: 24px;
	padding-top: 22px;
	border-top: 1px solid #e7e0d8;
}

.donation-verification-result h3 {
	margin-bottom: 14px;
	color: var(--brown);
	font-family: var(--font-heading);
}

.verification-row {
	display: grid;
	grid-template-columns: minmax(90px, .45fr) minmax(0, 1fr);
	gap: 12px;
	padding: 11px 0;
	border-bottom: 1px solid #f0ece8;
	font-size: .88rem;
}

.verification-row span {
	color: var(--gray-500);
}

.verification-row strong {
	text-align: right;
}

.status-confirmed,
.status-published {
	color: #24603a;
}

.status-pending {
	color: #856404;
}

.status-failed,
.status-hidden {
	color: #7f1d2d;
}

.verification-code {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 0;
	font-size: .86rem;
}

.verification-code span {
	color: var(--gray-500);
}

@media (min-width: 769px) and (max-width: 1180px) {
	.nav-menu {
		gap: 2px;
	}

	.nav-link {
		padding-left: 9px;
		padding-right: 9px;
		font-size: .82rem;
	}

	.nav-cta {
		padding-left: 14px;
		padding-right: 14px;
	}
}

@media (max-width: 1024px) {
	.donor-wall-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 768px) {
	.donor-wall-section,
	.donation-check-section {
		padding: 52px 0;
	}

	.donor-wall-tools {
		align-items: flex-start;
		flex-direction: column;
	}

	.donation-check-container {
		grid-template-columns: 1fr;
		gap: 30px;
	}
}

@media (max-width: 600px) {
	.donor-project-filters {
		flex-wrap: nowrap;
		overflow-x: auto;
		padding-bottom: 7px;
		scrollbar-width: thin;
	}

	.donor-project-filters a {
		flex: 0 0 auto;
		max-width: min(82vw, 300px);
	}

	.donor-wall-grid {
		grid-template-columns: 1fr;
	}

	.recognition-code-search {
		align-items: stretch;
		flex-direction: column;
	}

	.recognition-code-control {
		grid-template-columns: 1fr;
	}

	.recognition-code-control .btn,
	.donor-wall-tools .btn {
		width: 100%;
	}

	.donor-pagination {
		grid-template-columns: 1fr 1fr;
	}

	.donor-pagination > span:nth-child(2) {
		grid-column: 1 / -1;
		grid-row: 1;
		text-align: center;
	}

	.donor-pagination > :first-child,
	.donor-pagination > :last-child {
		grid-row: 2;
	}

	.donation-check-panel {
		padding: 22px 18px;
	}

	.verification-row,
	.verification-code {
		grid-template-columns: 1fr;
		flex-direction: column;
		align-items: flex-start;
	}

	.verification-row strong {
		text-align: left;
	}
}

.form-errors {
	margin: 0 0 18px;
	padding: 12px 14px;
	border: 1px solid #e6b8bd;
	border-radius: 8px;
	background: #fff0f1;
	color: #7f1d2d;
	font-size: .9rem;
}

.footer-logo span {
	min-width: 0;
	line-height: 1.25;
}

.footer-social {
	display: flex;
	gap: 10px;
	margin: 14px 0 18px;
}

.footer-social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid rgba(255, 255, 255, .18);
	border-radius: 50%;
	color: #fff;
}

.footer-social a:hover,
.footer-social a:focus-visible {
	background: var(--gold);
	border-color: var(--gold);
	color: var(--brown);
}

@media (max-width: 1024px) {
	.project-feature,
	.project-detail-grid {
		grid-template-columns: 1fr;
	}

	.project-feature-copy {
		order: -1;
	}

	.bank-account-grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 768px) {
	body.nav-open::before {
		content: "";
		position: fixed;
		inset: 0;
		z-index: 999;
		background: rgba(20, 9, 6, .68);
		backdrop-filter: blur(2px);
		-webkit-backdrop-filter: blur(2px);
	}

	.navbar {
		padding: 10px 0;
	}

	.nav-logo {
		max-width: calc(100vw - 92px);
	}

	.nav-logo-img {
		width: 42px;
		height: 42px;
	}

	.nav-logo span {
		font-size: 1.05rem;
	}

	.nav-menu {
		top: 10px;
		right: calc(-100% - 24px);
		bottom: auto;
		z-index: 1002;
		width: min(88vw, 360px);
		height: auto;
		max-height: calc(100dvh - 20px);
		padding: 78px 14px 16px;
		gap: 0;
		background: #2c1810;
		border: 1px solid rgba(201, 168, 76, .42);
		border-radius: 8px;
		overflow-y: auto;
		box-shadow: -18px 0 45px rgba(18, 8, 5, .34), 0 18px 46px rgba(18, 8, 5, .42);
	}

	.nav-menu::before {
		content: "";
		position: absolute;
		top: 64px;
		left: 14px;
		right: 14px;
		border-top: 1px solid rgba(201, 168, 76, .28);
	}

	.nav-menu.active {
		right: 10px;
	}

	.nav-menu li {
		width: 100%;
		border-top: 1px solid rgba(255, 255, 255, .1);
	}

	.nav-menu li:first-child,
	.nav-menu li:last-child {
		border-top: 0;
	}

	.nav-menu .nav-link {
		display: flex;
		align-items: center;
		gap: 14px;
		width: 100%;
		min-height: 50px;
		margin: 4px 0;
		padding: 12px 16px;
		border: 1px solid transparent;
		border-radius: 6px;
		color: rgba(255, 255, 255, .88);
		font-size: .98rem;
		font-weight: 600;
	}

	.nav-menu .nav-link-icon {
		display: inline-flex !important;
		align-items: center;
		justify-content: flex-start;
		flex: 0 0 38px;
		width: 38px;
		min-height: 24px;
		border-right: 1px solid rgba(201, 168, 76, .34);
		color: var(--gold);
		font-size: .96rem;
	}

	.nav-menu .nav-link > span {
		min-width: 0;
		flex: 1;
	}

	.nav-menu .nav-link:hover,
	.nav-menu .nav-link:focus-visible {
		border-color: rgba(201, 168, 76, .38);
		background: rgba(255, 255, 255, .08);
		color: #fff;
	}

	.nav-menu .nav-link.active {
		border-color: rgba(201, 168, 76, .52);
		background: rgba(201, 168, 76, .16);
		box-shadow: inset 3px 0 0 var(--gold);
		color: #f2dc9b;
	}

	.nav-menu .nav-link-donate {
		margin-top: 14px;
		border-color: var(--gold);
		background: var(--gold);
		box-shadow: 0 8px 20px rgba(0, 0, 0, .2);
		color: var(--brown);
	}

	.nav-menu .nav-link-donate .nav-link-icon {
		border-right-color: rgba(44, 24, 16, .3);
		color: var(--brown);
	}

	.nav-menu .nav-link-donate:hover,
	.nav-menu .nav-link-donate:focus-visible,
	.nav-menu .nav-link-donate.active {
		border-color: var(--gold-light);
		background: var(--gold-light);
		box-shadow: 0 10px 24px rgba(0, 0, 0, .24);
		color: var(--brown);
	}

	.nav-toggle {
		z-index: 1003;
		width: 44px;
		height: 44px;
		align-items: center;
		justify-content: center;
		border: 1px solid rgba(255, 255, 255, .22);
		border-radius: 6px;
		background: rgba(44, 24, 16, .34);
	}

	.nav-toggle.active {
		border-color: rgba(201, 168, 76, .58);
		background: rgba(201, 168, 76, .12);
	}

	.hero-scroll {
		display: none;
	}

	.st-rita-hero {
		min-height: auto;
	}

	.st-rita-hero .hero-content {
		padding: 105px 18px 54px;
	}

	.hero-parish-logo {
		width: 94px;
		height: 94px;
	}

	.st-rita-hero .hero-title {
		max-width: 14ch;
		font-size: clamp(2rem, 11vw, 3rem);
	}

	.hero-sm {
		padding-left: 18px !important;
		padding-right: 18px !important;
	}

	.hero-sm .hero-title {
		width: 100%;
		max-width: 13ch;
		margin-left: auto;
		margin-right: auto;
		font-size: clamp(1.95rem, 8vw, 2.45rem) !important;
		line-height: 1.15;
		overflow-wrap: normal;
	}

	.hero-countdown {
		width: 100%;
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 8px;
	}

	.countdown-divider {
		display: none;
	}

	.countdown-item {
		min-width: 0;
		padding: 12px 6px;
		border-radius: 10px;
	}

	.countdown-number {
		font-size: clamp(1.35rem, 8vw, 1.9rem);
	}

	.countdown-label {
		font-size: .62rem;
		letter-spacing: .04em;
	}

	.st-rita-identity-panel,
	.bank-transfer-section {
		padding: 22px;
		border-radius: 12px;
	}

	.identity-logo {
		width: 118px;
		height: 118px;
	}

	.project-feature-section,
	.project-detail-hero {
		padding: 58px 0;
	}

	.project-feature,
	.project-detail-grid {
		gap: 26px;
	}

	.project-feature-actions,
	.hero-buttons {
		width: 100%;
	}

	.project-feature-actions .btn,
	.hero-buttons .btn {
		flex: 1 1 220px;
	}

	.bank-account-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 480px) {
	:root {
		--container-padding: 16px;
	}

	.st-rita-hero {
		padding-top: 0;
	}

	.st-rita-hero .hero-content {
		padding: 82px 18px 34px;
	}

	.st-rita-hero .hero-parish-logo {
		display: none;
	}

	.st-rita-hero .hero-badge {
		margin-bottom: 18px;
	}

	.st-rita-hero .hero-title {
		margin-bottom: 8px;
	}

	.st-rita-hero .hero-subtitle {
		margin-bottom: 20px;
		line-height: 1.5;
	}

	.st-rita-hero .hero-countdown {
		margin-bottom: 20px;
	}

	.st-rita-hero .hero-buttons {
		flex-flow: row nowrap;
		gap: 8px;
	}

	.st-rita-hero .hero-buttons .btn {
		flex: 1 1 0;
		width: auto;
		min-width: 0;
		min-height: 48px;
		padding: 12px 8px;
		gap: 6px;
		font-size: .7rem;
	}

	.hero-badge {
		padding: 9px 14px;
		font-size: .75rem;
		letter-spacing: .04em;
	}

	.hero-sm {
		min-height: auto !important;
		padding-top: 94px !important;
		padding-bottom: 48px !important;
	}

	.hero-sm .hero-title {
		max-width: 12ch;
		font-size: 1.82rem !important;
	}

	.st-rita-hero .hero-title {
		max-width: 15ch;
		font-size: 2rem;
	}

	.st-rita-hero .hero-subtitle {
		font-size: .96rem;
		line-height: 1.65;
	}

	.hero-countdown {
		gap: 6px;
	}

	.hero-buttons .btn,
	.project-feature-actions .btn {
		flex: 0 0 auto;
		min-height: 54px;
	}

	.countdown-item {
		padding: 10px 4px;
	}

	.countdown-number {
		font-size: 1.35rem;
	}

	.countdown-label {
		font-size: .55rem;
	}

	.donation-form-wrapper {
		padding: 20px 16px;
	}

	.progress-section {
		max-width: 100%;
		padding: 22px 16px;
		margin-bottom: 42px;
		border-radius: 12px;
	}

	.progress-header,
	.progress-info {
		flex-wrap: wrap;
	}

	.progress-percent {
		font-size: 1.2rem;
	}

	.project-feature-copy h2,
	.project-detail-grid h2,
	.bank-transfer-section h3 {
		font-size: 1.85rem;
	}

	.project-feature-media img,
	.project-detail-grid img {
		aspect-ratio: 4 / 3;
	}

	.bank-account-card {
		padding: 18px 16px;
	}

	.bank-account-card b {
		font-size: 1.18rem;
		letter-spacing: .04em;
	}
}
