/*
 * Zonas de publicidad. Presencia en internet.
 * Cada hueco reserva su medida antes de cargar (sin saltos de maquetación).
 * Etiqueta «Publicidad» en gris #56657a sobre blanco: 5,9:1.
 */
.wl-ad { clear: both; min-width: 0; max-width: 100%; margin: 26px auto; text-align: center; }
.wl-ad[hidden] { display: none; }
.wl-ad-label { margin: 0 0 6px; padding: 0; color: #56657a; font-size: 11px; font-weight: 600; line-height: 1.3; letter-spacing: .08em; text-transform: uppercase; }
.wl-ad-slots { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; min-width: 0; }
.wl-ad-slot { position: relative; width: 100%; min-width: 0; max-width: var(--wl-ad-w); aspect-ratio: var(--wl-ad-r); overflow: hidden; border-radius: 6px; }
.wl-ad-item,
.wl-ad-item > a,
.wl-ad-item picture { display: block; width: 100%; height: 100%; }
.wl-ad-item img { display: block; width: 100%; height: 100%; max-width: none; margin: 0; object-fit: contain; border: 0; border-radius: 6px; }
/* Foco: el hueco recorta lo que sobresale, así que el anillo va por dentro, encima de la imagen (azul y blanco: se ve sobre cualquier banner). */
.wl-ad-item > a { position: relative; }
.wl-ad-item > a:focus-visible { outline: none; }
.wl-ad-item > a:focus-visible::after { content: ""; position: absolute; inset: 0; border: 3px solid #0565d7; border-radius: 6px; box-shadow: inset 0 0 0 2px #fff; pointer-events: none; }
.wl-ad-item--script { overflow: hidden; }
@media (max-width: 767px) {
    .wl-ad-slot { max-width: var(--wl-ad-mw, var(--wl-ad-w)); aspect-ratio: var(--wl-ad-mr, var(--wl-ad-r)); }
}

/* Logotipos de socios: cinco a la vez */
.wl-ad--socios .wl-ad-slots { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.wl-ad--socios .wl-ad-slot { max-width: none; border: 1px solid #dce6f0; background: #fff; }
@media (max-width: 760px) { .wl-ad--socios .wl-ad-slots { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Columna de filtros de los listados: solo en pantallas anchas */
.wl-directory-filters .wl-ad { margin: 24px 0 0; }
.wl-directory-filters.wl-ad-unstick { position: static !important; }
@media (max-width: 860px) { .wl-directory-filters .wl-ad { display: none; } }

/* Columna de contacto de la ficha: separada de los datos de la empresa */
.wl-contact .wl-ad { margin: 26px 0 0; padding-top: 18px; border-top: 1px solid #dce6f0; }

/* Dentro del listado: ocupa la fila entera */
.wl-company-grid > .wl-ad { grid-column: 1 / -1; margin: 8px 0; }
