/* ==========================================================================
   NFCR Donate Form  [nfcr_donate_form]   (0.9.19)
   Donate page: left = white card with the Fundraise Up Donation Form,
   right = photo + caption, white impact card, navy call card.
   Fundraise Up draws the form itself (set its look in the Fundraise Up Dashboard:
   navy #002C76, orange #C13F00, Poppins, pill buttons).
   ========================================================================== */

.nfcr-donate {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
	gap: var(--nfcr-donate-gap);
	align-items: start;
	padding-top: var(--nfcr-section-gap); /* the page has no hero: same space under the header as the design */
	font-family: var(--nfcr-font);
}

/* ---------- Form card ---------- */
.nfcr-donate .nfcr-donate__card {
	box-sizing: border-box;
	min-width: 0;
	padding: calc(var(--nfcr-panel-pad-y) + 8px) calc(var(--nfcr-panel-pad-x) + 10px) var(--nfcr-panel-pad-y);
	border-radius: var(--nfcr-r-section);
	background: var(--nfcr-white);
	box-shadow: var(--nfcr-shadow);
}
.nfcr-donate .nfcr-donate__form { margin-top: 28px; }
.nfcr-donate .nfcr-donate__form:empty { display: none; }

.nfcr-donate .nfcr-donate__setup {
	margin: 0;
	padding: 16px 20px;
	border: 1.5px dashed var(--nfcr-line-soft);
	border-radius: var(--nfcr-r-callout);
	font-size: var(--nfcr-fs-body);
	line-height: 1.55;
	color: var(--nfcr-text);
}
.nfcr-donate .nfcr-donate__fallback {
	margin: 0;
	padding: 16px 20px;
	border-radius: var(--nfcr-r-callout);
	background: var(--nfcr-surface);
	font-size: var(--nfcr-fs-body);
	line-height: 1.55;
	color: var(--nfcr-text);
}

/* Trust line: lock + "Secure donation" + "· 501(c)(3) · Tax ID" */
.nfcr-donate .nfcr-donate__trust {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 4px 8px;
	margin: 20px 0 0;
	font-size: var(--nfcr-fs-meta);
	line-height: 1.5;
	color: var(--nfcr-text-2);
}
.nfcr-donate .nfcr-donate__trust svg { flex-shrink: 0; color: var(--nfcr-success); }
.nfcr-donate .nfcr-donate__trust-label { font-weight: 600; color: var(--nfcr-success); }

/* ---------- Side column ---------- */
.nfcr-donate .nfcr-donate__side {
	display: flex;
	flex-direction: column;
	gap: 20px;
	min-width: 0;
}

/* Photo + caption */
.nfcr-donate .nfcr-donate__photo {
	position: relative;
	height: 280px;
	overflow: hidden;
	border-radius: var(--nfcr-r-section);
	background: var(--nfcr-navy);
}
.nfcr-donate .nfcr-donate__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}
.nfcr-donate .nfcr-donate__caption {
	position: absolute;
	left: 18px;
	right: 18px;
	bottom: 18px;
	margin: 0;
	padding: 16px 20px;
	border-radius: var(--nfcr-r-callout);
	background: var(--nfcr-navy); /* fallback */
	background: color-mix(in srgb, var(--nfcr-navy) 90%, transparent);
	font-size: var(--nfcr-fs-body);
	font-weight: 500;
	line-height: 1.65;
	color: #fff;
}

/* Impact card */
.nfcr-donate .nfcr-donate__impact {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
	padding: 26px 28px;
	border-radius: var(--nfcr-r-card);
	background: var(--nfcr-white);
	box-shadow: var(--nfcr-shadow);
}
.nfcr-donate .nfcr-donate__stat {
	display: flex;
	align-items: baseline;
	gap: 14px;
	margin: 0;
}
.nfcr-donate .nfcr-donate__stat-number {
	flex-shrink: 0;
	font-size: var(--nfcr-fs-stat);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -.034em;
	color: var(--nfcr-navy);
}
.nfcr-donate .nfcr-donate__stat-text,
.nfcr-donate .nfcr-donate__line {
	font-size: var(--nfcr-fs-body);
	line-height: 1.55;
	color: var(--nfcr-text);
}
.nfcr-donate .nfcr-donate__line { margin: 0; }
.nfcr-donate .nfcr-donate__rule {
	align-self: stretch;
	height: 1px;
	margin: 0;
	border: 0;
	background: var(--nfcr-line);
}
.nfcr-donate .nfcr-donate__badges { margin: 0; padding: 0; list-style: none; }
.nfcr-donate .nfcr-donate__badges .nfcr-chip { margin: 0; }
.nfcr-donate .nfcr-donate__more { font-size: var(--nfcr-fs-ui); font-weight: 600; }

/* Call card (navy) */
.nfcr-donate .nfcr-donate__call {
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 24px 28px;
	border-radius: var(--nfcr-r-card);
	background: var(--nfcr-navy);
	color: #fff;
}
.nfcr-donate .nfcr-donate__call-icon {
	display: flex;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .12);
}
.nfcr-donate .nfcr-donate__call-title {
	margin: 0;
	font-size: var(--nfcr-fs-title-sm);
	font-weight: 600;
	line-height: 1.35;
	color: #fff;
}
.nfcr-donate .nfcr-donate__call-text {
	margin: 3px 0 0;
	font-size: var(--nfcr-fs-body);
	line-height: 1.55;
	color: var(--nfcr-on-dark-link);
}
.nfcr-donate .nfcr-donate__call-text a {
	font-weight: 600;
	color: #fff !important;
	text-decoration: none;
	white-space: nowrap;
}
.nfcr-donate .nfcr-donate__call-text a:hover,
.nfcr-donate .nfcr-donate__call-text a:focus-visible { color: var(--nfcr-orange-soft) !important; }

/* ---------- Fundraise Up form: fill the card, centred (0.9.44) ----------
   Fundraise Up draws the form after the page loads and gives it its own narrow, left-aligned box (about 450px).
   The box is stretched to the full width of the card here, and centred if it is still narrower. */
.nfcr-donate .nfcr-donate__form {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	width: 100%;
	min-width: 0;
}
.nfcr-donate .nfcr-donate__form > *:not(a):not(noscript):not(script):not(style) {
	box-sizing: border-box;
	width: 100% !important;
	min-width: 0 !important;
	max-width: none !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
.nfcr-donate .nfcr-donate__form > * > div,
.nfcr-donate .nfcr-donate__form > * > form,
.nfcr-donate .nfcr-donate__form iframe {
	box-sizing: border-box;
	max-width: none !important;
}
.nfcr-donate .nfcr-donate__form iframe { width: 100% !important; }

/* ---------- Tablet and phone (proposed; the design is desktop-only) ---------- */
@media (max-width: 1024px) {
	.nfcr-donate { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) {
	/* The photo grows with the caption, keeping part of the image visible above it */
	.nfcr-donate .nfcr-donate__photo { height: auto; padding-top: 140px; }
	.nfcr-donate .nfcr-donate__caption { position: relative; left: auto; right: auto; bottom: auto; margin: 0 18px 18px; }
	.nfcr-donate .nfcr-donate__impact,
	.nfcr-donate .nfcr-donate__call { padding: 22px; }
	.nfcr-donate .nfcr-donate__stat { flex-direction: column; align-items: flex-start; gap: 8px; }
}
