/**
 * FMBusiness V2 — Goa3 banner slot presentation (Adverticum).
 *
 * Presentation only. The inert slot containers (`.fmb-ad-slot[data-fmb-ad-slot]`)
 * are built by the fmbusiness-core ads subsystem (Renderer / Content / listing
 * plan) and filled by the runtime loader (assets/js/goa3.js). This file only
 * styles the shell around the creative — deliberately no editorial "card" look:
 * no background, no border, no shadow, no padding that could be mistaken for
 * content.
 *
 * Loader lifecycle states (see goa3.js):
 *   .is-pending / .is-eligible / .is-requested / .is-empty / .is-error /
 *   .is-skipped → fully collapsed (no gap, no label)
 *   .is-filled  → creative + discreet "Hirdetés" label visible
 *
 * Only `is-filled` produces any layout, so a consent-pending, empty, error or
 * skipped banner never reserves a gap and never looks like editorial content.
 */

.fmb-ad-slot {
	--fmb-ad-gap: 48px;
	display: none; /* collapsed until the loader reliably reports a real delivery */
	margin: 0;
	padding: 0;
}

.fmb-ad-slot.is-filled {
	display: block;
	margin-block: var(--fmb-ad-gap);
	text-align: center;
}

.fmb-ad-slot.is-filled .goAdverticum {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
}

/* Discreet, canonical label above the creative (news-site convention). */
.fmb-ad-slot.is-filled::before {
	content: "Hirdetés";
	display: block;
	font-family: var(--fm-font-data);
	font-size: var(--fm-type-micro);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--fm-color-steel);
	margin-block-end: 8px;
}

/* Top (leaderboard) region: full container width, centred, directly under the
   island header / page head. */
.fmb-ad-slot--top.is-filled {
	margin-block: 28px var(--fmb-ad-gap);
}

/* In-content / in-stream region: centred on its column. Inside the 600px
   reading tunnel the desktop leaderboard-range creative (728x90 / 640x360)
   breaks out symmetrically so it never overflows the measure. */
.fmb-ad-slot--inline.is-filled {
	max-width: 100%;
}

.fm-article__body .fmb-ad-slot--inline.is-filled {
	width: min(728px, calc(100vw - 2 * var(--fm-gutter)));
	max-width: none; /* may break out of the reading measure, symmetric */
	margin-inline: calc((100% - min(728px, calc(100vw - 2 * var(--fm-gutter)))) / 2);
}

/* Full-width row inside a card/list grid: span every column so it reads as a
   clean editorial divider between two content blocks. */
.fmb-ad-row.is-filled {
	grid-column: 1 / -1;
}

/* Sidebar regions (desktop rail): reserved zones — not rendered in v1/v2 IA. */
.fmb-ad-slot--sidebar-1.is-filled,
.fmb-ad-slot--sidebar-2.is-filled {
	margin-block: var(--fmb-ad-gap);
}

/* ==========================================================================
 * Placeholder review mode (FMB_GOA3_PLACEHOLDERS) — staging/review only.
 *
 * Every eligible slot renders as a labeled box (position name, allowed sizes, both
 * zone ids) so the inventory positions are visible before real creatives are live.
 * The runtime loader is not enqueued in this mode, so no Adverticum request is made
 * and the live zones' measurement stays untouched. A real creative always wins: the
 * placeholder shell is hidden as soon as the slot is `is-filled`.
 * ========================================================================== */

.fmb-ads-placeholders .fmb-ad-slot {
	display: block;
	min-height: var(--fmb-ad-ph-min, 90px);
	border: var(--fm-line-hairline) dashed var(--fm-color-grid);
	background: repeating-linear-gradient(45deg, rgba(240, 165, 0, 0.06) 0 10px, transparent 10px 20px);
	text-align: center;
}

.fmb-ads-placeholders .fmb-ad-slot--top { margin-block: 28px var(--fmb-ad-gap); }
.fmb-ads-placeholders .fmb-ad-slot--inline { margin-block: var(--fmb-ad-gap); }

.fmb-ads-placeholders .fmb-ad-slot__placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	min-height: inherit;
	padding: 16px var(--fm-gutter);
}

.fmb-ads-placeholders .fmb-ad-slot__ph-kicker {
	font-family: var(--fm-font-data);
	font-size: var(--fm-type-micro);
	font-weight: var(--fm-weight-medium);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--fm-color-amber-text);
}

.fmb-ads-placeholders .fmb-ad-slot__ph-name {
	font-family: var(--fm-font-disp);
	font-size: var(--fm-type-h3);
	font-weight: var(--fm-weight-bold);
	letter-spacing: -0.01em;
	color: var(--fm-color-ink);
}

.fmb-ads-placeholders .fmb-ad-slot__ph-meta {
	font-family: var(--fm-font-data);
	font-size: var(--fm-type-micro);
	letter-spacing: 0.04em;
	color: var(--fm-color-steel);
}

/* Mobile-family slots are the 300x250 units. */
@media (max-width: 767.98px) {
	.fmb-ads-placeholders .fmb-ad-slot { --fmb-ad-ph-min: 250px; }
}

/* A real creative always wins over the placeholder shell. */
.fmb-ads-placeholders .fmb-ad-slot.is-filled .fmb-ad-slot__placeholder { display: none; }

/* Never print advertising. */
@media print {
	.fmb-ad-slot {
		display: none !important;
	}
}
