/* ArtsPro Listings block — reuses Post List heading utility classes (ap-plb__*). */
.ap-llb {
	margin: 2rem 0;
}

/* Heading + diamond — independent of the Post List block so the block
   renders the same in contexts where artspro-plb CSS isn't loaded. */
.ap-llb .ap-plb__heading {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 1.25rem;
	font-family: "Nunito Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	font-weight: 800;
	font-size: 1.25rem;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: inherit;
}

.ap-llb .ap-plb__heading .ap-plb__heading-text {
	font: inherit;
	color: inherit;
	text-transform: inherit;
	letter-spacing: inherit;
}

.ap-llb .ap-plb__diamond {
	display: inline-block;
	width: 0.425em;
	height: 0.425em;
	background: var(--ap-plb-border);
	transform: rotate(45deg);
	flex: 0 0 auto;
}

/* Rows: one listing per row, full width. Specificity doubled on the
   list to beat any theme rules targeting <ul>. */
.ap-llb .ap-llb__list.ap-llb__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: block;
}

/* Card row: title/meta on the left, tiny thumbnail on the right.
   10px bottom border keyed off --ap-plb-border (same convention as the
   Post List block). Double-stack selector to beat theme shorthand
   `border` rules that would otherwise reset our longhand bottom border.
   `position: relative` is needed for the stretched-link overlay below. */
.ap-llb .ap-llb__item.ap-plb-card.ap-plb-card {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	width: 100%;
	background: #fff;
	border: 1px solid #e3e3e3;
	border-bottom: 10px solid var(--ap-plb-border);
	border-radius: 5px;
	padding: 0.9rem 1.1rem;
	margin: 0 0 10px;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.ap-llb .ap-llb__item.ap-plb-card:hover {
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
	transform: translateY(-2px);
}

.ap-llb .ap-llb__body {
	flex: 1 1 auto;
	min-width: 0;
}

.ap-llb .ap-llb__title {
	margin: 0 0 0.35rem;
	font-size: 1.05rem;
	line-height: 1.25;
}

.ap-llb .ap-llb__title-link {
	color: inherit;
	text-decoration: none;
}

.ap-llb .ap-llb__title-link:hover {
	color: var(--ap-plb-border);
}

/* Stretched link: the title's <a> covers the entire card so clicking
   anywhere in the row navigates to the listing. Inner links
   (advertiser URL) are bumped above the overlay so they remain
   independently clickable. */
.ap-llb .ap-llb__title-link::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: auto;
	background: transparent;
}

.ap-llb .ap-llb__inline-link {
	position: relative;
	z-index: 2;
}

.ap-llb .ap-llb__location {
	color: #5a5a5a;
	font-size: 0.875rem;
	line-height: 1.4;
	margin-bottom: 0.25rem;
}

.ap-llb .ap-llb__location a {
	color: inherit;
	text-decoration: underline;
}

.ap-llb .ap-llb__meta {
	display: flex;
	gap: 0.75rem;
	flex-wrap: wrap;
	color: #5a5a5a;
	font-size: 0.85rem;
	line-height: 1.35;
}

.ap-llb .ap-llb__salary {
	color: #1a1a1a;
}

/* Tiny right-aligned thumbnail. Fixed square so layout is stable even if
   the underlying image has odd proportions. */
.ap-llb .ap-llb__media {
	flex: 0 0 auto;
	display: block;
	margin-left: auto;
	width: 48px;
	height: 48px;
	line-height: 0;
}

.ap-llb .ap-llb__logo {
	width: 48px;
	height: 48px;
	object-fit: contain;
	background: #f7f7f5;
	border-radius: 3px;
	display: block;
}

.ap-llb-empty {
	padding: 0.5rem;
	font-size: 0.875rem;
	color: #666;
}
