/* =========================================================================
   18 · DONATE PAGE — 5-step layout, intent picker, named-impact tiers
   Reference: V4-BUILD-SPEC §5.1 + PAKISTAN-NGO-RESEARCH "5-channel payment"
   ========================================================================= */

.jj-donate-hero .jj-page-hero__title { max-width: 26ch; }

.jj-donate-form {
	display: flex;
	flex-direction: column;
	gap: var(--sp-10);
}

.jj-donate-step {
	border: 0;
	margin: 0;
	padding: 0;
	background: var(--jj-bg);
	border-radius: var(--radius-lg);
}

.jj-donate-step__legend {
	display: inline-flex;
	align-items: center;
	gap: var(--sp-3);
	font-family: var(--jj-font-serif);
	font-size: var(--fs-lg);
	font-weight: 600;
	color: var(--jj-text);
	margin: 0 0 var(--sp-5);
	padding: 0;
}
.jj-donate-step__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	background: var(--jj-primary);
	color: var(--jj-accent-gold);
	border-radius: var(--radius-pill);
	font-size: var(--fs-sm);
	font-family: var(--jj-font-sans);
	font-weight: 700;
	letter-spacing: 0.02em;
}

/* ---------- Step 1 — Intent picker ---------- */
.jj-donate-intents {
	display: grid;
	gap: var(--sp-3);
	grid-template-columns: 1fr;
}
@media (min-width: 36em) {
	.jj-donate-intents { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 48em) {
	.jj-donate-intents { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.jj-donate-intent {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--sp-1);
	padding: var(--sp-4);
	background: var(--jj-bg-warm);
	border: 1.5px solid var(--jj-border);
	border-radius: var(--radius-md);
	cursor: pointer;
	transition: border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}
.jj-donate-intent input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.jj-donate-intent:hover {
	border-color: var(--jj-primary);
	background: #fff;
}
.jj-donate-intent:has( input:checked ),
.jj-donate-intent:focus-within {
	border-color: var(--jj-accent-gold);
	background: #fff;
	box-shadow: 0 0 0 3px rgba(232, 163, 23, 0.18);
}
.jj-donate-intent__title {
	font-family: var(--jj-font-serif);
	font-weight: 600;
	font-size: var(--fs-md);
	color: var(--jj-text);
}
.jj-donate-intent__note {
	font-size: var(--fs-sm);
	color: var(--jj-muted);
	line-height: 1.4;
}

/* ---------- Step 2 — Amount tiers ---------- */
.jj-donate-tiers {
	display: grid;
	gap: var(--sp-3);
	grid-template-columns: 1fr;
}
@media (min-width: 36em) {
	.jj-donate-tiers { grid-template-columns: 1fr 1fr; }
}

.jj-donate-tier {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--sp-1);
	padding: var(--sp-4) var(--sp-5);
	background: var(--jj-bg);
	border: 1.5px solid var(--jj-border);
	border-radius: var(--radius-md);
	cursor: pointer;
	transition: border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);
}
.jj-donate-tier > input[type="radio"] {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.jj-donate-tier:hover {
	border-color: var(--jj-primary);
}
.jj-donate-tier:has( input:checked ),
.jj-donate-tier:focus-within {
	border-color: var(--jj-accent-gold);
	box-shadow: 0 0 0 3px rgba(232, 163, 23, 0.18);
}
.jj-donate-tier__amount {
	font-family: var(--jj-font-serif);
	font-weight: 700;
	font-size: var(--fs-lg);
	color: var(--jj-text);
}
.jj-donate-tier__label {
	font-size: var(--fs-sm);
	color: var(--jj-muted);
	line-height: 1.4;
}

.jj-donate-tier--custom {
	grid-column: 1 / -1;
}
.jj-donate-tier__field {
	display: flex;
	align-items: center;
	gap: var(--sp-2);
	margin-top: var(--sp-2);
}
.jj-donate-tier__currency {
	font-weight: 600;
	color: var(--jj-muted);
}
.jj-donate-tier__field input {
	flex: 1;
	max-width: 280px;
	min-height: 44px;
}

/* ---------- Frequency toggle ---------- */
.jj-donate-frequency { margin-top: var(--sp-6); }
.jj-donate-freq-toggle {
	display: inline-flex;
	gap: var(--sp-1);
	background: var(--jj-bg-warm);
	border: 1px solid var(--jj-border);
	padding: var(--sp-1);
	border-radius: var(--radius-pill);
}
.jj-donate-freq-toggle label {
	cursor: pointer;
	padding: var(--sp-2) var(--sp-5);
	border-radius: var(--radius-pill);
	font-weight: 500;
	color: var(--jj-text-soft);
	transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
.jj-donate-freq-toggle label input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.jj-donate-freq-toggle label:has( input:checked ) {
	background: var(--jj-primary);
	color: #fff;
}

/* ---------- Step 3 — Payment methods ---------- */
.jj-donate-methods {
	display: grid;
	gap: var(--sp-3);
	grid-template-columns: 1fr;
}
@media (min-width: 36em) {
	.jj-donate-methods { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 48em) {
	.jj-donate-methods { grid-template-columns: repeat(3, 1fr); }
}

.jj-donate-method {
	position: relative;
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	padding: var(--sp-4);
	background: var(--jj-bg);
	border: 1.5px solid var(--jj-border);
	border-radius: var(--radius-md);
	cursor: pointer;
	min-height: 64px;
}
.jj-donate-method > input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.jj-donate-method:hover { border-color: var(--jj-primary); }
.jj-donate-method:has( input:checked ),
.jj-donate-method:focus-within {
	border-color: var(--jj-accent-gold);
	box-shadow: 0 0 0 3px rgba(232, 163, 23, 0.18);
}
.jj-donate-method__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: var(--radius-md);
	background: var(--jj-primary-soft);
	color: var(--jj-primary);
	flex-shrink: 0;
}
.jj-donate-method__label {
	font-weight: 600;
	font-size: var(--fs-sm);
	color: var(--jj-text);
}

/* ---------- Step 5 — Submit ---------- */
.jj-donate-submit {
	margin-top: var(--sp-4);
	display: flex;
	flex-direction: column;
	gap: var(--sp-3);
	align-items: center;
}

/* ---------- Error banner ---------- */
.jj-form-error {
	background: rgba(179, 39, 28, 0.08);
	border: 1px solid var(--jj-error);
	color: var(--jj-error);
	padding: var(--sp-3) var(--sp-4);
	border-radius: var(--radius-md);
	font-weight: 500;
}

/* ---------- Success / show-bank state ---------- */
.jj-donate-success {
	background: var(--jj-bg-warm);
	border: 1px solid var(--jj-border);
	border-left: 4px solid var(--jj-accent-gold);
	padding: var(--sp-8) var(--sp-6);
	border-radius: var(--radius-lg);
}
.jj-donate-success__title {
	font-size: var(--fs-2xl);
	margin: 0 0 var(--sp-4);
}
.jj-donate-success__ref,
.jj-donate-success__amount {
	margin: 0 0 var(--sp-2);
	font-size: var(--fs-md);
}

.jj-donate-bank-grid {
	display: grid;
	gap: var(--sp-4);
	margin: var(--sp-6) 0;
	grid-template-columns: 1fr;
}
@media (min-width: 36em) {
	.jj-donate-bank-grid { grid-template-columns: 1fr 1fr; }
}

.jj-donate-bank-card {
	background: #fff;
	border: 1px solid var(--jj-border);
	border-radius: var(--radius-md);
	padding: var(--sp-4);
}
.jj-donate-bank-card__title {
	display: flex;
	align-items: center;
	gap: var(--sp-2);
	font-size: var(--fs-md);
	margin: 0 0 var(--sp-3);
	color: var(--jj-primary);
}
.jj-donate-bank-card dl {
	margin: 0;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--sp-2) var(--sp-3);
}
.jj-donate-bank-card dt {
	font-weight: 600;
	font-size: var(--fs-xs);
	color: var(--jj-muted);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.jj-donate-bank-card dd {
	margin: 0;
	font-size: var(--fs-sm);
	color: var(--jj-text);
	word-break: break-all;
}
