/**
 * Wave 3 · A07 — Load-more UX
 * Progress line, busy/disabled affordance, scroll-margin for new cards.
 * Coordinates with A10 (.gaj-prefetch-armed) — does not redefine auto-load.
 */

:root {
	--gaj-lm-scroll-margin: 5.5rem; /* sticky filters + admin bar headroom */
}

/* All cards: safe offset when focused / scrollIntoView / hash nav */
#primary ul.job_listings > li.job_listing,
div.job_listings ul.job_listings > li.job_listing {
	scroll-margin-top: var(--gaj-lm-scroll-margin);
	scroll-margin-bottom: 1rem;
}

/* First newly-appended card gets a slightly larger margin + soft flash */
#primary ul.job_listings > li.job_listing.gaj-lm-anchor,
div.job_listings ul.job_listings > li.job_listing.gaj-lm-anchor {
	scroll-margin-top: calc(var(--gaj-lm-scroll-margin) + 0.5rem);
}

#primary ul.job_listings > li.job_listing.gaj-lm-new,
div.job_listings ul.job_listings > li.job_listing.gaj-lm-new {
	animation: gaj-lm-flash 1.4s ease-out 1;
}

@keyframes gaj-lm-flash {
	0% {
		background-color: rgba(37, 87, 167, 0.08);
	}
	100% {
		background-color: transparent;
	}
}

@media (prefers-reduced-motion: reduce) {
	#primary ul.job_listings > li.job_listing.gaj-lm-new,
	div.job_listings ul.job_listings > li.job_listing.gaj-lm-new {
		animation: none;
	}
}

/* Progress: "Loaded 30 of many" under the list / above Load more */
.gaj-lm-progress {
	display: block;
	text-align: center;
	margin: 0.65rem auto 0.15rem;
	padding: 0 0.75rem;
	font-size: 0.9rem;
	line-height: 1.4;
	color: #3d4a5c;
	max-width: 28rem;
}

.gaj-lm-progress[hidden] {
	display: none !important;
}

.gaj-lm-progress__n {
	font-weight: 700;
	color: #1a2b3c;
	font-variant-numeric: tabular-nums;
}

.gaj-lm-progress--busy {
	color: #5a6a7a;
}

.gaj-lm-progress__loading {
	font-style: italic;
	opacity: 0.9;
}

.gaj-lm-progress__busy {
	opacity: 0.5;
	margin: 0 0.15em;
}

/* Busy / double-click lock — stacks with A10 armed + extras .loading */
#primary a.load_more_jobs.gaj-lm-busy,
#primary a.load_more_jobs[aria-disabled="true"],
div.job_listings a.load_more_jobs.gaj-lm-busy,
div.job_listings a.load_more_jobs[aria-disabled="true"],
a.load_more_jobs.gaj-lm-busy,
a.load_more_jobs[data-gaj-lm-busy="1"] {
	pointer-events: none;
	cursor: progress;
	opacity: 0.72;
	user-select: none;
}

/* When A10 has armed the control, keep consistent progress cursor */
#primary a.load_more_jobs.gaj-prefetch-armed,
a.load_more_jobs.gaj-prefetch-armed {
	cursor: progress;
}

/* Mobile: sticky filter bar is taller — bump scroll margin */
@media (max-width: 767px) {
	:root {
		--gaj-lm-scroll-margin: 6.5rem;
	}
}

/* WP admin bar (32px desktop / 46px ≤782px) */
body.admin-bar {
	--gaj-lm-scroll-margin: 7rem;
}

@media (max-width: 782px) {
	body.admin-bar {
		--gaj-lm-scroll-margin: 8rem;
	}
}
