.ppsb-root {
	position: relative;
	z-index: var(--ppsb-z, 40);
}

.ppsb {
	position: var(--ppsb-position, fixed);
	top: var(--ppsb-top, 140px);
	width: var(--ppsb-banner-w, 160px);
	pointer-events: auto;
}

.ppsb--left {
	left: calc(50% - (var(--ppsb-container-w, 1260px) / 2) - var(--ppsb-gap, 24px) - var(--ppsb-banner-w, 160px));
}

.ppsb--right {
	right: calc(50% - (var(--ppsb-container-w, 1260px) / 2) - var(--ppsb-gap, 24px) - var(--ppsb-banner-w, 160px));
}

.ppsb__link {
	display: block;
}

.ppsb__img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 8px;
}

/* A banner group is a variable-length stack (e.g. the homepage's "PP
   Approved" column) — each enabled, geo-matching row rendered as its own
   item with breathing room between them, same spacing the raw Gutenberg
   image blocks + spacers it replaces used to have. */
.ppsb-group {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

/* [pokerpro-banner] can land anywhere in an article's own content flow —
   unlike the other spots, no surrounding theme markup can be relied on to
   supply spacing, so this gives it a sane default itself. */
.ppsb-pool {
	margin: 24px 0;
}

/* Hard safety net regardless of configured widths — there is never room
   for skyscraper banners on tablet/mobile viewports. */
@media (max-width: 960px) {
	.ppsb-root {
		display: none;
	}
}
