/**
 * W4-A05 — Card badge layout unify (New + Applied + Saved)
 *
 * Additive polish only. Does not replace A04 / W3-A06 styles; overrides
 * spacing,
z-index,
and stacking so badges never collide with the heart
 * or each other. Scoped primarily to section.job-listings listing cards.
 */

/* ------------------------------------------------------------------ *
 *  Shared badge tokens (New SSR + Applied client)
 * ------------------------------------------------------------------ */
section.job-listings .gaj-jlc__badge,
.gaj-jlc__badge{
display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	margin: 0; /* kill W3-A06 margin-right that fights flex gap */
	padding: 0.12em 0.45em;
	border-radius: 4px;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	line-height: 1.3;
	white-space: nowrap;
	flex: 0 0 auto;
	position: relative;
	z-index: 1;
	vertical-align: middle;
	max-width: 100%;
}/* Color fidelity — keep source hues; ensure contrast on wraps */
section.job-listings .gaj-jlc__badge--new,
.gaj-jlc__badge--new{
background: #2557a7;
	color: #fff;
}section.job-listings .gaj-jlc__badge--applied,
.gaj-jlc__badge.gaj-jlc__badge--applied,
li.job_listing .gaj-jlc__badge--applied{
background: #0f766e;
	color: #fff;
	/* neutralize W3 inline margin so rail gap owns spacing */
	margin-right: 0 !important;
}/* ------------------------------------------------------------------ *
 *  Badge rail — JS moves New/Applied into .gaj-jlc__badges
 * ------------------------------------------------------------------ */
section.job-listings .gaj-jlc h3 .gaj-jlc__badges,
.gaj-jlc h3 .gaj-jlc__badges,
li.job_listing h3 .gaj-jlc__badges{
display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	align-content: flex-start;
	gap: 0.3em;
	flex: 0 1 auto;
	max-width: 100%;
	order: 0; /* before title text siblings */
	margin: 0;
	padding: 0;
	vertical-align: middle;
	position: relative;
	z-index: 1;
	/* Keep rail from stretching under the save heart on wrap */
	min-width: 0;
}/* Title row: badges first,
then title — clear heart via link padding */
section.job-listings ul.job_listings li.job_listing a div.position h3,
section.job-listings .gaj-jlc h3{
display: flex;
	flex-wrap: wrap;
	align-items: center;
	column-gap: 0.4em;
	row-gap: 0.28em;
	/* Extra right inset so a wrapping second line never sits under ♥ */
	padding-right: 0.15em;
	box-sizing: border-box;
}/* Fallback when JS has not yet built the rail: CSS order on free badges */
section.job-listings .gaj-jlc h3 > .gaj-jlc__badge--new{
order: 1;
}section.job-listings .gaj-jlc h3 > .gaj-jlc__badge--applied{
order: 2;
}section.job-listings .gaj-jlc h3 > .gaj-jlc__badges{
order: 0;
}/* Mark unified cards (optional hooks for debug / A/B) */
section.job-listings .gaj-jlc.gaj-jlc--badges-unified{
/* isolation so absolute save layer is local */
	isolation: isolate;
}/* ------------------------------------------------------------------ *
 *  Saved heart slot — top-right,
above link content,
never under badges
 * ------------------------------------------------------------------ */
section.job-listings .gaj-jlc{
position: relative;
}section.job-listings .gaj-jlc__save-form,
section.job-listings a.gaj-jlc__save.gaj-jlc__save--link{
position: absolute;
	top: 0.85em;
	right: 0.75em;
	margin: 0;
	z-index: 6; /* above link + badge layer (was 2) */
	isolation: isolate;
	pointer-events: auto;
}/* Link content stays below heart for hit-testing */
section.job-listings ul.job_listings li.job_listing a.gaj-jlc__link,
section.job-listings ul.job_listings li.job_listing > a{
/* Reserve ≥ heart (2.1rem) + gutter so title/badges clear the control */
	padding-right: 3.35rem;
	z-index: 0;
}section.job-listings .gaj-jlc__save,
section.job-listings a.gaj-jlc__save{
position: relative;
	z-index: 1;
	/* prevent layout thrash when A04 toggles glyph/class */
	flex-shrink: 0;
}/* Saved (A04 .is-saved) sits same slot — slight elevation,
no size change */
section.job-listings .gaj-jlc__save.is-saved,
section.job-listings a.gaj-jlc__save.is-saved{
z-index: 2;
	box-shadow: 0 1px 3px rgba(194,
65,
12,
0.18);
}/* Busy state must not expand and shove neighbors */
section.job-listings .gaj-jlc__save.is-busy{
transform: none;
}/* ------------------------------------------------------------------ *
 *  Applied card accent — soft,
does not shift geometry
 * ------------------------------------------------------------------ */
section.job-listings .gaj-jlc.gaj-jlc--applied,
section.job-listings li.job_listing.gaj-applied .gaj-jlc{
/* no border/padding change — W3 chip recolor is enough */
}/* Keep apply chip (W3 soft-label) from colliding with date on wrap */
section.job-listings .gaj-jlc.gaj-jlc--applied .gaj-jlc__chip--apply{
	flex: 0 0 auto;
}

/* ------------------------------------------------------------------ *
 *  Single-job title Applied badge (W3) — align with New if both present
 * ------------------------------------------------------------------ */
.single_job_listing .gaj-jlc__badge--applied,
.gaj-a14-sticky .gaj-jlc__badge--applied,
.gaj-w3-a06-single-badge {
	margin-left: 0.35em;
	margin-right: 0;
	vertical-align: middle;
	position: relative;
	z-index: 1;
}

/* Entry title flex when both badges appear (W3 injects Applied) */
.single_job_listing .entry-title,
.single_job_listing h1.entry-title {
/* allow inline badges without overlapping sticky controls */
	padding-right: 0.25em;
}/* ------------------------------------------------------------------ *
 *  Hub link vs heart — hub stays under title,
never under absolute heart
 * ------------------------------------------------------------------ */
section.job-listings .gaj-jlc__hub{
	position: relative;
	z-index: 1;
	/* keep clear of top-right save control on short cards */
	max-width: calc(100% - 3.5rem);
}

/* ------------------------------------------------------------------ *
 *  Mobile polish
 * ------------------------------------------------------------------ */
@media (max-width: 767px) {section.job-listings ul.job_listings li.job_listing a.gaj-jlc__link,
section.job-listings ul.job_listings li.job_listing a{
padding-right: 3rem !important;
	}section.job-listings .gaj-jlc__save-form,
section.job-listings a.gaj-jlc__save.gaj-jlc__save--link{
top: 0.65em;
		right: 0.5em;
		z-index: 6;
	}section.job-listings .gaj-jlc h3 .gaj-jlc__badges{
/* Prefer badges on first row; title wraps underneath */
		flex: 1 1 auto;
	}section.job-listings .gaj-jlc__badge{
		font-size: 0.65rem;
		padding: 0.1em 0.4em;
	}
}

/* Reduced motion: no decorative shadow transitions if any theme adds them */
@media (prefers-reduced-motion: reduce) {section.job-listings .gaj-jlc__save,
section.job-listings a.gaj-jlc__save{
		transition: none;
	}
}
