/* Ad spots: calm, clearly labeled, same look on light pages and the dark map panel. */
.sponsor-slot[hidden] { display: none !important; }
.sponsor-slot { margin: 24px 0; }
.sp-label { margin: 0 0 4px; font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted, #9aa8ae); }
.sp-card { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border: 1px dashed var(--line, #2a363d); border-radius: 12px; background: var(--surface-2, #1b252b); color: var(--text, #e4eaec); text-decoration: none; }
.sp-card:hover { border-color: var(--accent, #4fb3a6); }
.sp-card:focus-visible { outline: 3px solid var(--accent, #4fb3a6); outline-offset: 2px; }
.sp-img { width: 56px; height: 56px; border-radius: 8px; object-fit: cover; flex: none; }
.sp-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.sp-adv { font-size: .8rem; color: var(--muted, #9aa8ae); }
.sp-head { font-size: .98rem; line-height: 1.35; overflow-wrap: anywhere; }
.sp-text { font-size: .9rem; color: var(--muted, #9aa8ae); }
.sp-cta { margin-top: 4px; font-weight: 600; font-size: .9rem; color: var(--link, #7fd1c5); }
.sp-foot { margin: 4px 0 0; font-size: .75rem; }
.sp-foot a { color: var(--muted, #9aa8ae); }
@media print { .sponsor-slot { display: none !important; } }
/* The map panel is always dark, whatever the page's light/dark setting */
.panel .sponsor-slot { margin: 14px 14px 18px; }
.panel .sp-card { background: #131d22; border-color: #2a3a42; color: #e4eaec; }
.panel .sp-label, .panel .sp-adv, .panel .sp-text, .panel .sp-foot a { color: #9aa8ae; }
.panel .sp-cta { color: #7fd1c5; }
