/* ── Ad units ──────────────────────────────────────────────────────
   The wrapper reserves the vertical space declared in slots.py before the
   ad arrives, so a filled unit never pushes the content down (CLS).
   The "Advertisement" label appears only once the unit is actually filled:
   a labelled empty box would look like a broken page.
   ------------------------------------------------------------------ */
.gioca-ad {
    display: block;
    width: 100%;
    margin: 2rem 0;
    text-align: center;
    overflow: hidden;
}

.gioca-ad__label {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.7rem;
    line-height: 1;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #adb5bd;
    visibility: hidden;
}

.gioca-ad:has(ins[data-ad-status="filled"]) .gioca-ad__label {
    visibility: visible;
}

/* Google recommends collapsing a unit it could not fill. */
.gioca-ad:has(ins[data-ad-status="unfilled"]) {
    display: none;
}

.gioca-ad .adsbygoogle {
    display: block;
    width: 100%;
}

/* In-feed unit: sits inside a Bootstrap grid cell, so it must not add the
   vertical margin the standalone units use. */
.gioca-ad--blog_in_feed {
    margin: 0;
    height: 100%;
}

[data-theme="dark"] .gioca-ad__label {
    color: var(--text-secondary, #94a3b8);
}
