/* Shared placement geometry, independent of original artwork size and page theme. */
.advertisement-placement[data-ad-format][data-ad-placement] {
    --ad-format-width: 970px;
    --ad-format-ratio: 970 / 90;
    box-sizing: border-box;
    width: min(calc(100% - 24px), calc(var(--ad-format-width) + 32px));
    max-width: calc(100vw - 24px);
    margin-inline: auto;
    padding: 14px 16px;
    min-width: 0;
}
.advertisement-placement[data-ad-format][data-ad-placement] .ad-placement-label {
    position: relative;
    top: auto;
    left: auto;
    z-index: 1;
    padding: 0;
    margin: 0 0 8px;
    line-height: 1.3;
}
.advertisement-placement[data-ad-format="728"][data-ad-placement] {
    --ad-format-width: 728px;
    --ad-format-ratio: 728 / 90;
}
.advertisement-placement[data-ad-format][data-ad-placement="home_featured"] {
    --ad-format-width: 960px;
    --ad-format-ratio: 3 / 1;
}
.advertisement-placement[data-ad-format][data-ad-placement] .ad-carousel-container {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    gap: 8px;
    width: 100%;
    max-width: var(--ad-format-width);
    padding: 0;
    margin: 0 auto;
}
.advertisement-placement[data-ad-format][data-ad-placement] .ad-slides-viewport {
    grid-column: 1 / -1;
    width: 100%;
    height: auto;
    min-height: 0;
    max-height: none;
    aspect-ratio: var(--ad-format-ratio);
    background: var(--bg-main, #111);
}
.advertisement-placement[data-ad-format][data-ad-placement] .ad-slides,
.advertisement-placement[data-ad-format][data-ad-placement] .ad-slide,
.advertisement-placement[data-ad-format][data-ad-placement] .ad-link,
.advertisement-placement[data-ad-format][data-ad-placement] picture,
.advertisement-placement[data-ad-format][data-ad-placement] img {
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: 100%;
}
.advertisement-placement[data-ad-format][data-ad-placement] img {
    display: block;
    object-fit: contain;
    object-position: center;
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}
.advertisement-placement[data-ad-format][data-ad-placement] .ad-slide.ad-with-glow:hover { transform: none; }
.advertisement-placement[data-ad-format][data-ad-placement] .ad-link:focus-visible { outline: 2px solid #fdb913; outline-offset: -2px; }
/* Controls get their own row, so neither copy nor a logo is covered. */
.advertisement-placement[data-ad-format][data-ad-placement] .ad-carousel-arrow {
    position: static;
    align-self: center;
    width: 44px;
    height: 44px;
    margin: 0;
    transform: none;
    grid-row: 2;
    opacity: 1;
}
.advertisement-placement[data-ad-format][data-ad-placement] .ad-carousel-prev { grid-column: 1; }
.advertisement-placement[data-ad-format][data-ad-placement] .ad-carousel-next { grid-column: 3; }
.advertisement-placement[data-ad-format][data-ad-placement] .ad-pagination-dots {
    position: static;
    grid-column: 2;
    grid-row: 2;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0;
    margin: 0;
    transform: none;
}
.advertisement-placement[data-ad-format][data-ad-placement] .ad-pagination-dots .dot {
    flex: 0 0 32px;
    width: 32px;
    height: 44px;
    border-radius: 6px;
    background: radial-gradient(circle, #888 0 4px, transparent 5px);
    box-shadow: none;
    transform: none;
}
.advertisement-placement[data-ad-format][data-ad-placement] .ad-pagination-dots .dot.active {
    background: radial-gradient(circle, #fdb913 0 4px, transparent 5px);
}
.ad-format-preview { min-width: 0; margin: 20px 0; }
.ad-format-preview > label { display: grid; gap: 8px; font-weight: 600; }
.ad-format-preview select { width: 100%; max-width: 620px; padding: 10px; border: 1px solid var(--border-color, #444); border-radius: 8px; background: var(--bg-main, #111); color: var(--text-primary, #eee); font: inherit; }
.ad-format-preview .ad-format-help,
.ad-format-preview [data-ad-preview-info] { color: var(--text-secondary, #bbb); font-size: .85rem; line-height: 1.55; overflow-wrap: anywhere; }
.ad-format-preview .ad-device-preview { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.ad-format-preview [data-ad-preview-device="desktop"] { grid-column: 1 / -1; }
.ad-format-preview [data-ad-preview-device="mobile"] { width: 100%; max-width: 320px; }
.ad-format-preview figure { min-width: 0; margin: 0; }
.ad-format-preview figcaption { display: grid; gap: 4px; margin-bottom: 8px; }
.ad-format-preview .ad-preview-canvas { box-sizing: border-box; width: 100%; aspect-ratio: var(--ad-preview-ratio, 728 / 90); background: #111; border: 1px solid var(--border-color, #444); border-radius: 6px; overflow: hidden; }
.ad-format-preview .ad-preview-canvas img { display: block; width: 100%; height: 100%; min-height: 0; object-fit: contain; border: 0; border-radius: 0; }
.ad-format-preview img[hidden] { display: none; }
@media (max-width: 1024px) and (min-width: 601px) {
    .advertisement-placement[data-ad-format][data-ad-placement] { --ad-format-width: 728px; --ad-format-ratio: 728 / 90; }
    .advertisement-placement[data-ad-format][data-ad-placement="home_featured"] { --ad-format-width: 720px; --ad-format-ratio: 3 / 1; }
}
@media (max-width: 600px) {
    .advertisement-placement[data-ad-format][data-ad-placement] { --ad-format-width: 320px; --ad-format-ratio: 320 / 100; padding: 12px 10px 10px; }
    .advertisement-placement[data-ad-format][data-ad-placement="home_featured"] { --ad-format-width: 360px; --ad-format-ratio: 3 / 1; }
    .ad-format-preview .ad-device-preview { grid-template-columns: 1fr; }
    .ad-format-preview .ad-preview-canvas { max-width: 100%; }
}

.advertisement-placement[data-ad-format] [hidden],
.advertisement-placement[data-ad-format][hidden] { display: none; }
