.partner-ad-slot { width: calc(100% - 20px); max-width: 728px; margin: 0 auto; }
.partner-ad-slot.is-selected { padding: 12px 0; }
.partner-ad-label { display: block; margin: 0 0 6px; color: #6b7280; font: 11px/1.4 system-ui, sans-serif; text-align: center; }
.partner-ad-listing-tile { width: 100%; max-width: none; }
.partner-ad-listing-tile.is-selected { padding: 0; }
.partner-ad-artwork { width: 100%; overflow: hidden; border-radius: 16px; }
.partner-ad-listing-tile:not(.is-selected):not(.is-candidate) { display: none; }
.partner-ad-home-break.is-selected { padding: 20px 0; }
.partner-ad-hero { width: 100%; max-width: 320px; }
.partner-ad-hero.is-selected { margin: 24px auto 0; padding: 0; }
.partner-ad-hero .partner-ad-label { color: #dcfce7; }
@media (min-width: 1024px) {
    .partner-ad-hero { position: absolute; right: 32px; bottom: 32px; }
    .partner-ad-hero.is-selected { margin: 0; }
}

.partner-page-header > div { min-width: 0; }
.partner-ad-header, .partner-ad-hero-wide { width: 100%; max-width: 320px; }
.partner-ad-header.is-selected, .partner-ad-hero-wide.is-selected { margin: 24px auto 0; padding: 0; }
.partner-ad-hero-wide .partner-ad-label { color: #dcfce7; }
@media (min-width: 1024px) {
    .partner-page-header:has(.partner-ad-header.is-selected) { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; align-items: center; }
    .partner-ad-header.is-selected { margin: 0; }
}
@media (min-width: 1280px) {
    div:has(> .partner-ad-hero-wide.is-selected) > :is(h1, p) { width: calc(100% - 344px); }
    .partner-ad-hero-wide { position: absolute; right: 32px; bottom: 32px; }
    .partner-ad-hero-wide.is-selected { margin: 0; }
}

/* Use the shallow desktop creative when the title and banner both fit. */
div:has(> .partner-page-header) { container-type: inline-size; }
@container (min-width: 1040px) {
    .partner-page-header:has(.partner-ad-header.is-selected) { grid-template-columns: minmax(0, 1fr) 728px; }
    .partner-ad-header { max-width: 728px; }
}

/* Google owns each placement until it explicitly reports no fill. */
.partner-ad-slot.is-google { container-type: inline-size; }
.partner-ad-slot.is-google > ins.adsbygoogle { height: 250px; }
@container (min-width: 320px) {
    .partner-ad-slot.is-google > ins.adsbygoogle { height: 100px; }
}
@container (min-width: 728px) {
    .partner-ad-slot.is-google > ins.adsbygoogle { height: 90px; }
}
.partner-ad-slot.is-google[data-partner-format="300x250"] > ins.adsbygoogle { height: 250px; }
.partner-ad-slot.is-google[data-partner-format="300x600"] > ins.adsbygoogle { height: 600px; }
.partner-ad-slot[data-google-state="unfilled"] > ins.adsbygoogle { display: none !important; }
.partner-ad-slot.is-google:not([data-google-state="unfilled"]) > :is(.partner-ad-label, .partner-ad-artwork, .partner-ad-creative) { display: none !important; }
