/* wpagent/query — card layouts, pagination and whole-card links (loop-item). */
.wpab-query {
	--wpab-q-cols: 1;
	--wpab-q-gap: 24px;
	min-width: 0;
}

@media (min-width: 768px) {
	.wpab-query {
		--wpab-q-cols: 2;
	}
}

@media (min-width: 1025px) {
	.wpab-query {
		--wpab-q-cols: 3;
	}
}

.wpab-query.is-layout-grid > .wpab-query__items {
	display: grid;
	grid-template-columns: repeat(var(--wpab-q-cols), minmax(0, 1fr));
	column-gap: var(--wpab-q-gap);
	row-gap: var(--wpab-q-row-gap, var(--wpab-q-gap));
}

.wpab-query.is-layout-list > .wpab-query__items {
	display: flex;
	flex-direction: column;
	gap: var(--wpab-q-row-gap, var(--wpab-q-gap));
}

.wpab-query.is-layout-list.has-dividers > .wpab-query__items > * + * {
	padding-top: var(--wpab-q-row-gap, var(--wpab-q-gap));
	border-top: 1px solid var(--wpab-q-divider, currentColor);
}

.wpab-query.is-layout-masonry > .wpab-query__items {
	column-count: var(--wpab-q-cols);
	column-gap: var(--wpab-q-gap);
}

.wpab-query.is-layout-masonry > .wpab-query__items > * {
	break-inside: avoid;
	margin-bottom: var(--wpab-q-row-gap, var(--wpab-q-gap));
}

/* Slider layout: the wpagent/slider engine; columns = cards in view. */
.wpab-query.is-layout-slider > .wpab-query__slider {
	--wpab-slide-gap: var(--wpab-q-gap);
	--wpab-slide-w: calc((100% - (var(--wpab-q-cols) - 1) * var(--wpab-q-gap)) / var(--wpab-q-cols));
}

/* Card: children stacked; a trailing button can sit at the bottom (margin-top: auto). */
.wpab-loop-item {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.wpab-loop-item.is-linked {
	position: relative;
}

.wpab-loop-item.is-linked .wpab-post-link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.wpab-loop-item.is-linked a:not(.wpab-post-link),
.wpab-loop-item.is-linked button {
	position: relative;
	z-index: 2;
}

.wpab-loop-item.is-linked:focus-within {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

/* Pagination and load more. */
.wpab-query__pager,
.wpab-query__more-wrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-top: var(--wpab-q-row-gap, var(--wpab-q-gap));
}

.wpab-query__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 14px;
	border: 1px solid var(--wp--preset--color--line, rgba(17, 24, 39, 0.12));
	border-radius: 999px;
	color: inherit;
	font-size: 0.9375rem;
	line-height: 1.2;
	text-decoration: none;
}

.wpab-query__btn.is-gap {
	border-color: transparent;
}

.wpab-query__more {
	padding: 0 28px;
	font-weight: 600;
}

/* Outranks the pager part (0,3,0); the pagerActive part (0,5,0) restyles the current page. */
.wpab.wpab-query .wpab-query__btn.is-current,
.wpab.wpab-query a.wpab-query__btn:hover {
	border-color: var(--wp--preset--color--brand, #111827);
	background: var(--wp--preset--color--brand, #111827);
	color: var(--wp--preset--color--surface, #fff);
}

.wpab-query__btn:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.wpab-query__more[aria-busy="true"] {
	opacity: 0.6;
	cursor: progress;
}

.wpab-query__items[aria-busy="true"] {
	opacity: 0.6;
}

@media (prefers-reduced-motion: no-preference) {
	.wpab-query__items {
		transition: opacity 0.2s;
	}
}

/* Slider arrows over or beside the cards (sliderControls overlay / outside,
 * P12): vertically centred on the cards, the dots stay below them (their row
 * is --wpab-q-dots-h tall under the controls gap), no height added. outside
 * sits beside the row from 1025 px and over the cards below that, where the
 * page has no room left and right. */
.wpab-query__slider:is(.is-arrows-overlay, .is-arrows-outside) {
	--wpab-q-dots-h: 8px;
}
.wpab-query__slider.is-dots-line {
	--wpab-q-dots-h: 2px;
}
.wpab-query__slider.is-dots-skew {
	--wpab-q-dots-h: 4px;
}
.wpab-query__slider:is(.is-arrows-overlay, .is-arrows-outside) .wpab-slider__arrow {
	position: absolute;
	top: calc(50% - (var(--wpab-controls-gap, 20px) + var(--wpab-q-dots-h)) / 2);
	z-index: 2;
	background: var(--wp--preset--color--surface, #fff);
	transform: translateY(-50%);
}
.wpab-query__slider.is-dots-none:is(.is-arrows-overlay, .is-arrows-outside) .wpab-slider__arrow {
	top: 50%;
}
.wpab-query__slider.is-dots-none:is(.is-arrows-overlay, .is-arrows-outside) > .wpab-slider__controls {
	margin-top: 0;
}
.wpab-query__slider:is(.is-arrows-overlay, .is-arrows-outside) .wpab-slider__arrow.is-prev {
	left: 12px;
}
.wpab-query__slider:is(.is-arrows-overlay, .is-arrows-outside) .wpab-slider__arrow.is-next {
	right: 12px;
}
@media (min-width: 1025px) {
	.wpab-query__slider.is-arrows-outside .wpab-slider__arrow.is-prev {
		right: calc(100% + 12px);
		left: auto;
	}
	.wpab-query__slider.is-arrows-outside .wpab-slider__arrow.is-next {
		right: auto;
		left: calc(100% + 12px);
	}
}
