/* ============================================================
   remate-1-1.css · VISIONLOVERS · VL 1.1 «lo que falta» (24/09/2026)
   Viste las pantallas que ningún diseño cubría, SOBRE el HTML real de
   WooCommerce, Directorist, User Registration y Woodmart. Cero !important.
   Móvil primero. Todo color/tamaño sale de tokens.css.
   Orden de carga propuesto (functions.php): … → plugins/* → remate-1-1 → arreglos.
   Claude Code puede repartir cada bloque en su fichero (la cabecera de cada
   bloque dice dónde iría); se entrega junto para que se lea de una vez.
   Selectores con html body.page-id-… = ganan al CSS por página de Woodmart.
   ============================================================ */

:root { --vl-mapa-marcador: #1f6fb2; /* azul del marcador (orden de Sergio, §7) */ --vl-mapa-alto: 320px; }

/* ============================================================
   1 · MI CUENTA CON SESIÓN (/mi-cuenta/, página 11 · WooCommerce)  → plugins/woocommerce.css
   Sin sesión sigue la tarjeta .vl-auth (c-18). Con sesión, Claude Code quita el hero
   por PHP y el body lleva .logged-in: escritorio a ancho completo.
   ============================================================ */
body.logged-in.page-id-11 .vl-auth__container--centered { max-width: var(--vl-container); }
body.logged-in.page-id-11 .vl-auth__card--centered { max-width: none; padding: 0; border: 0; box-shadow: none; background: transparent; }
body.logged-in.page-id-11 .vl-auth__intro, body.logged-in.page-id-11 .vl-auth__register-link, body.logged-in.page-id-11 .vl-antes-de-seguir { display: none; }
/* Cabecera del escritorio: saludo + tipo de cuenta + salir */
.vl-cuenta { padding: var(--vl-space-xl) 0 var(--vl-space-2xl); background: var(--vl-bg-soft); }
.vl-cuenta__cabecera { display: flex; flex-wrap: wrap; align-items: center; gap: var(--vl-space-md); margin-bottom: var(--vl-space-lg); }
.vl-cuenta__cabecera .vl-avatar { width: 56px; height: 56px; }
.vl-cuenta__quien { flex: 1 1 0; min-width: 0; }
.vl-cuenta__saludo { font-family: var(--font-titulos); font-size: var(--vl-font-h2); line-height: var(--vl-lh-h2); font-weight: 700; margin: 0; }
.vl-cuenta__quien .vl-badge { margin-top: var(--vl-space-xs); }
.vl-cuenta__salir { flex: 0 0 auto; margin-left: auto; }
.vl-cuenta .vl-panel__lista li { display: grid; gap: var(--vl-space-xs); }
.vl-cuenta .vl-panel__enlaces { display: flex; flex-wrap: wrap; gap: var(--vl-space-xs) var(--vl-space-md); }
.vl-cuenta .vl-panel__enlaces .vl-panel__enlace { display: inline-flex; align-items: center; min-height: 44px; margin: 0; padding: 0; font-weight: 600; white-space: nowrap; }
.vl-cuenta .vl-panel__meta { display: block; }
/* Escritorio: menú + contenido */
.vl-cuenta .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--vl-space-lg); align-items: start; }
@media (min-width: 1024px) { .vl-cuenta .woocommerce { grid-template-columns: 260px minmax(0, 1fr); gap: var(--vl-space-xl); } }
/* Menú de WooCommerce: pestañas deslizables en móvil, columna de enlaces en escritorio */
.vl-cuenta .woocommerce-MyAccount-navigation { margin: 0; }
.vl-cuenta .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0 calc(-1 * var(--vl-gutter)); padding: 0 var(--vl-gutter); display: flex; gap: var(--vl-space-xs); overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.vl-cuenta .woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }
.vl-cuenta .woocommerce-MyAccount-navigation li { flex: 0 0 auto; margin: 0; border: 0; }
.vl-cuenta .woocommerce-MyAccount-navigation a { display: inline-flex; align-items: center; gap: var(--vl-space-sm); min-height: var(--vl-touch); padding: 10px var(--vl-space-md); border-radius: var(--vl-radius-pill); border: 2px solid var(--vl-border); background: var(--vl-bg); color: var(--vl-text-muted); font-size: var(--vl-font-small); font-weight: 600; white-space: nowrap; text-decoration: none; }
.vl-cuenta .woocommerce-MyAccount-navigation a:hover { border-color: var(--vl-secondary); color: var(--vl-secondary-dark); }
.vl-cuenta .woocommerce-MyAccount-navigation .is-active a { background: var(--vl-secondary); border-color: var(--vl-secondary); color: var(--vl-on-color); }
.vl-cuenta .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--vl-danger); border-color: var(--vl-danger-bg); background: var(--vl-danger-bg); }
@media (min-width: 1024px) {
  .vl-cuenta .woocommerce-MyAccount-navigation { position: sticky; top: calc(var(--vl-header-desktop-h) + var(--vl-space-md)); }
  .vl-cuenta .woocommerce-MyAccount-navigation ul { flex-direction: column; overflow: visible; margin: 0; padding: var(--vl-space-sm); background: var(--vl-bg-card); border: 1px solid var(--vl-border-brand); border-radius: var(--vl-radius-lg); box-shadow: var(--vl-shadow-xs); }
  .vl-cuenta .woocommerce-MyAccount-navigation a { width: 100%; border-radius: var(--vl-radius-md); border-color: transparent; background: transparent; font-size: var(--vl-font-body); }
  .vl-cuenta .woocommerce-MyAccount-navigation a:hover { background: var(--vl-bg-gray); }
  .vl-cuenta .woocommerce-MyAccount-navigation .is-active a { background: var(--vl-secondary-light); color: var(--vl-secondary-dark); border-color: transparent; }
  .vl-cuenta .woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--customer-logout { margin-top: var(--vl-space-sm); padding-top: var(--vl-space-sm); border-top: 1px solid var(--vl-border); }
}
.vl-cuenta .woocommerce-MyAccount-content { min-width: 0; }
.vl-cuenta .woocommerce-MyAccount-content > p:first-child { font-size: var(--vl-font-body); color: var(--vl-text-muted); margin-bottom: var(--vl-space-md); }
.vl-cuenta .woocommerce-MyAccount-content > p:first-child a { display: inline-block; padding: 8px 0; margin: -8px 0; }
.vl-cuenta .vl-panel { margin-top: 0; }
.vl-cuenta .vl-panel__cabecera { display: none; } /* el saludo ya va arriba en .vl-cuenta__cabecera */
/* Rejilla del panel dentro del escritorio: 1 / 2 / 3 columnas según ancho de la columna, no de la pantalla */
.vl-cuenta .vl-panel__grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: var(--vl-space-lg); }
.vl-cuenta .vl-panel__card { padding: var(--vl-space-lg); }
.vl-cuenta .vl-panel__pie .vl-btn { width: 100%; }
@media (min-width: 600px) { .vl-cuenta .vl-panel__pie .vl-btn { width: auto; } }
@media (min-width: 900px) { .vl-cuenta .vl-panel__grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); } }
/* Admin: la tarjeta de usuarios ocupa dos columnas para que la tabla respire */
@media (min-width: 1200px) { .vl-cuenta .vl-panel--admin .vl-panel__card:first-child { grid-column: span 2; } }
.vl-cuenta .vl-panel--admin .vl-panel__cifra { font-size: 48px; }
@media (min-width: 900px) { .vl-cuenta .vl-panel--admin .vl-panel__tabla { columns: 2; column-gap: var(--vl-space-xl); } .vl-cuenta .vl-panel--admin .vl-panel__tabla tr { break-inside: avoid; display: flex; justify-content: space-between; } }
/* Fila de datos rápidos del profesional (ficha · plan · derivados) */
.vl-cuenta__resumen { display: grid; gap: var(--vl-space-sm); grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: var(--vl-space-lg); }
.vl-cuenta__dato { padding: var(--vl-space-md) var(--vl-space-sm); background: var(--vl-bg-card); border: 1px solid var(--vl-border-brand); border-radius: var(--vl-radius-md); text-align: center; min-width: 0; overflow-wrap: anywhere; }
.vl-cuenta__dato b { display: block; font-family: var(--font-titulos); font-size: var(--vl-font-h3); color: var(--vl-secondary-dark); }
.vl-cuenta__dato span { font-size: var(--vl-font-caption); color: var(--vl-text-muted); }
/* /my-account/ (10979, User Registration) recibe el mismo traje: mismas piezas, otros nombres del plugin */
.vl-cuenta .user-registration-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; gap: var(--vl-space-xs); overflow-x: auto; }
.vl-cuenta .user-registration-MyAccount-navigation a { display: inline-flex; align-items: center; min-height: var(--vl-touch); padding: 10px var(--vl-space-md); border-radius: var(--vl-radius-pill); border: 2px solid var(--vl-border); color: var(--vl-text-muted); font-weight: 600; font-size: var(--vl-font-small); white-space: nowrap; }
.vl-cuenta .user-registration-MyAccount-navigation .is-active a { background: var(--vl-secondary); border-color: var(--vl-secondary); color: var(--vl-on-color); }
.vl-cuenta .user-registration-MyAccount-content h1, .vl-cuenta .user-registration-MyAccount-content .ur-dashboard-heading h1 { font-size: var(--vl-font-h3); } /* el segundo <h1> del plugin lo baja Claude Code por PHP; esto es la red */

/* ============================================================
   2 · ESCRITORIO DEL PROFESIONAL (/escritorio/, 11338 · Directorist)  → plugins/directorist.css
   ============================================================ */
/* Hueco blanco de ~250 px bajo el hero: la fila de WPBakery con fondo y relleno */
html body.page-id-11338 .vc_custom_dashboard-header, html body.page-id-11338 .wd-rs-dashboard-header { padding-top: 0; padding-bottom: 0; min-height: 0; }
html body.page-id-11338 .vc_custom_dashboard-header .vc_column-inner { padding-top: 0; padding-bottom: 0; }
.vl-escritorio { padding: var(--vl-space-lg) 0 var(--vl-space-2xl); background: var(--vl-bg-soft); }
body.directorist-content-active .directorist-user-dashboard { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--vl-space-lg); align-items: start; padding: 0; background: transparent; border: 0; box-shadow: none; }
@media (min-width: 1024px) { body.directorist-content-active .directorist-user-dashboard { grid-template-columns: 280px minmax(0, 1fr); gap: var(--vl-space-xl); } }
/* Menú lateral: pestañas deslizables en móvil, tarjeta en escritorio */
body.directorist-content-active .directorist-user-dashboard__nav { position: static; width: auto; height: auto; padding: 0; background: transparent; border: 0; box-shadow: none; transform: none; }
body.directorist-content-active .directorist-dashboard__nav__close { display: none; }
body.directorist-content-active .directorist-tab__nav__items { list-style: none; margin: 0 calc(-1 * var(--vl-gutter)); padding: 0 var(--vl-gutter); display: flex; gap: var(--vl-space-xs); overflow-x: auto; scrollbar-width: none; }
body.directorist-content-active .directorist-tab__nav__items::-webkit-scrollbar { display: none; }
body.directorist-content-active .directorist-tab__nav__item { flex: 0 0 auto; margin: 0; }
body.directorist-content-active .directorist-tab__nav__link { display: inline-flex; align-items: center; gap: var(--vl-space-sm); min-height: var(--vl-touch); padding: 10px var(--vl-space-md); border-radius: var(--vl-radius-pill); border: 2px solid var(--vl-border); background: var(--vl-bg); color: var(--vl-text-muted); font-size: var(--vl-font-small); font-weight: 600; white-space: nowrap; text-decoration: none; }
body.directorist-content-active .directorist-tab__nav__link:hover { border-color: var(--vl-secondary); color: var(--vl-secondary-dark); }
body.directorist-content-active .directorist-tab__nav__link.directorist-tab__nav__active { background: var(--vl-secondary); border-color: var(--vl-secondary); color: var(--vl-on-color); }
body.directorist-content-active .directorist_menuItem-text { display: inline-flex; align-items: center; gap: var(--vl-space-sm); }
body.directorist-content-active .directorist_menuItem-icon { width: 20px; height: 20px; display: inline-grid; place-items: center; }
body.directorist-content-active .directorist_menuItem-icon .directorist-icon-mask::before { background-color: currentColor; }
/* Los dos botones (Enviar anuncio · Salir): botones de la casa, nunca círculos */
body.directorist-content-active .directorist-user-dashboard__nav .directorist-user-dashboard__nav__buttons, body.directorist-content-active .directorist-user-dashboard__nav .directorist-dashboard-nav-buttons { display: flex; flex-wrap: wrap; gap: var(--vl-space-sm); margin-top: var(--vl-space-md); }
body.directorist-content-active .directorist-user-dashboard__nav .directorist-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--vl-space-sm); min-height: var(--vl-touch); padding: 12px var(--vl-space-lg); border-radius: var(--vl-radius-pill); font-size: var(--vl-font-boton); font-weight: 600; width: auto; background: var(--vl-secondary); color: var(--vl-on-color); border: 2px solid var(--vl-secondary); text-decoration: none; }
body.directorist-content-active .directorist-user-dashboard__nav .directorist-btn.directorist-btn-outline, body.directorist-content-active .directorist-user-dashboard__nav .directorist-logout-btn, body.directorist-content-active .directorist-user-dashboard__nav .directorist-btn-logout { background: var(--vl-bg); color: var(--vl-secondary-dark); border: 2px solid var(--vl-secondary); }
@media (min-width: 1024px) {
  body.directorist-content-active .directorist-user-dashboard__nav { position: sticky; top: calc(var(--vl-header-desktop-h) + var(--vl-space-md)); }
  body.directorist-content-active .directorist-tab__nav__items { flex-direction: column; overflow: visible; margin: 0; padding: var(--vl-space-sm); background: var(--vl-bg-card); border: 1px solid var(--vl-border-brand); border-radius: var(--vl-radius-lg); box-shadow: var(--vl-shadow-xs); }
  body.directorist-content-active .directorist-tab__nav__link { width: 100%; border-radius: var(--vl-radius-md); border-color: transparent; background: transparent; font-size: var(--vl-font-body); }
  body.directorist-content-active .directorist-tab__nav__link:hover { background: var(--vl-bg-gray); }
  body.directorist-content-active .directorist-tab__nav__link.directorist-tab__nav__active { background: var(--vl-secondary-light); color: var(--vl-secondary-dark); border-color: transparent; }
  body.directorist-content-active .directorist-user-dashboard__nav .directorist-user-dashboard__nav__buttons, body.directorist-content-active .directorist-user-dashboard__nav .directorist-dashboard-nav-buttons { flex-direction: column; }
  body.directorist-content-active .directorist-user-dashboard__nav .directorist-btn { width: 100%; }
}
/* Contenido: la tarjeta blanca */
body.directorist-content-active .directorist-user-dashboard__tab-content { min-width: 0; max-width: 100%; padding: 0; background: transparent; border: 0; }
body.directorist-content-active .directorist-tab__pane, body.directorist-content-active .directorist-dashboard-mylistings, body.directorist-content-active .directorist-user-dashboard-area, body.directorist-content-active .directorist-user-dashboard-tab, body.directorist-content-active .directorist-user-dashboard-tabcontent { min-width: 0; max-width: 100%; }
body.directorist-content-active .directorist-tab__pane { background: var(--vl-bg-card); border: 1px solid var(--vl-border-brand); border-radius: var(--vl-radius-lg); box-shadow: var(--vl-shadow-sm); padding: var(--vl-space-lg); }
@media (min-width: 768px) { body.directorist-content-active .directorist-tab__pane { padding: var(--vl-space-xl); } }
body.directorist-content-active #directorist-dashboard-preloader { display: none; min-height: 0; } /* el cuadro vacío de ~180 px en móvil */
/* Pestañas de estado (Todos · Publicados · En revisión · Caducados · Rechazados) */
body.directorist-content-active .directorist-user-dashboard-tab__nav { display: flex; flex-direction: column; gap: var(--vl-space-md); margin-bottom: var(--vl-space-lg); border: 0; }
@media (min-width: 900px) { body.directorist-content-active .directorist-user-dashboard-tab__nav { flex-direction: row; align-items: center; justify-content: space-between; } }
body.directorist-content-active .directorist-dashboard-listing-nav-js { list-style: none; margin: 0 calc(-1 * var(--vl-space-lg)); padding: var(--vl-space-xs) var(--vl-space-lg); display: flex; gap: var(--vl-space-xs); overflow-x: auto; scrollbar-width: none; border: 0; }
body.directorist-content-active .directorist-dashboard-listing-nav-js::-webkit-scrollbar { display: none; }
body.directorist-content-active .directorist-tab-nav--content-link { flex: 0 0 auto; margin: 0; }
body.directorist-content-active .directorist-tab-nav--content-link a { display: inline-flex; align-items: center; min-height: 40px; padding: 6px var(--vl-space-md); border-radius: var(--vl-radius-pill); background: var(--vl-bg-gray); color: var(--vl-text-muted); font-size: var(--vl-font-small); font-weight: 600; white-space: nowrap; border: 0; text-decoration: none; line-height: 1.2; }
body.directorist-content-active .directorist-tab-nav--content-link a.directorist-tab__nav__active { background: var(--vl-secondary-light); color: var(--vl-secondary-dark); }
body.directorist-content-active .directorist-user-dashboard-search { position: relative; width: 100%; max-width: 320px; }
body.directorist-content-active .directorist-user-dashboard-search input { width: 100%; min-height: var(--vl-touch); padding: 10px var(--vl-space-md) 10px 44px; border: 2px solid var(--vl-border-field); border-radius: var(--vl-radius-md); font-size: var(--vl-font-body); }
body.directorist-content-active .directorist-user-dashboard-search__icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; color: var(--vl-text-muted); pointer-events: none; }
/* Tabla de fichas: se desliza en móvil, respira en escritorio */
body.directorist-content-active .directorist-table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }
body.directorist-content-active .directorist-table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: var(--vl-font-body); }
body.directorist-content-active .directorist-table th { font-family: var(--font-titulos); font-size: var(--vl-font-caption); letter-spacing: .06em; text-transform: uppercase; color: var(--vl-text-muted); font-weight: 600; text-align: left; padding: var(--vl-space-sm) var(--vl-space-sm); border-bottom: 2px solid var(--vl-border); background: transparent; }
body.directorist-content-active .directorist-table td { padding: var(--vl-space-md) var(--vl-space-sm); border-bottom: 1px solid var(--vl-border); vertical-align: middle; color: var(--vl-text-muted); }
body.directorist-content-active .directorist-listing-table-listing-info { display: flex; align-items: center; gap: var(--vl-space-md); }
body.directorist-content-active .directorist-listing-table-listing-info__img img { width: 64px; height: 64px; object-fit: cover; border-radius: var(--vl-radius-md); background: var(--vl-bg-gray); }
body.directorist-content-active .directorist-listing-table-listing-info__content .directorist-title { font-family: var(--font-titulos); font-size: var(--vl-font-h4); font-weight: 600; margin: 0; }
body.directorist-content-active .directorist-listing-table-listing-info__content .directorist-title a { color: var(--vl-text); }
body.directorist-content-active .directorist-listing-plan, body.directorist-content-active .directorist-ex-plan { font-size: var(--vl-font-small); }
/* Estados: siempre palabra + color, con la paleta de la casa */
body.directorist-content-active .directorist_badge.dashboard-badge, body.directorist-content-active .directorist-listing-status { display: inline-flex; align-items: center; min-height: 28px; padding: 4px 10px; border-radius: var(--vl-radius-pill); font-size: var(--vl-font-caption); font-weight: 600; line-height: 1.4; background: var(--vl-bg-gray); color: var(--vl-text-muted); border: 0; }
body.directorist-content-active .directorist_status_publish, body.directorist-content-active .directorist-listing-status--publish, body.directorist-content-active .directorist_badge.directorist_status_published { background: var(--vl-success-bg); color: var(--vl-success); }
body.directorist-content-active .directorist_status_pending, body.directorist-content-active .directorist-listing-status--pending { background: var(--vl-warning-bg); color: var(--vl-warning); }
body.directorist-content-active .directorist_status_expired, body.directorist-content-active .directorist_status_rejected, body.directorist-content-active .directorist-listing-status--expired, body.directorist-content-active .directorist-listing-status--rejected { background: var(--vl-danger-bg); color: var(--vl-danger); }
body.directorist-content-active .directorist_status_featured { background: var(--vl-primary-light); color: var(--vl-primary-dark); }
/* Acciones: Editar como enlace-botón de 44 px, «Más» igual */
body.directorist-content-active .directorist-actions { display: flex; gap: var(--vl-space-sm); justify-content: flex-end; }
body.directorist-content-active .directorist-actions .directorist-link-btn, body.directorist-content-active .directorist-actions .directorist-btn-more { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 8px 14px; border-radius: var(--vl-radius-pill); border: 2px solid var(--vl-border); color: var(--vl-secondary-dark); font-size: var(--vl-font-small); font-weight: 600; background: var(--vl-bg); }
body.directorist-content-active .directorist-actions .directorist-link-btn:hover, body.directorist-content-active .directorist-actions .directorist-btn-more:hover { border-color: var(--vl-secondary); background: var(--vl-secondary-light); text-decoration: none; }
body.directorist-content-active .directorist-dropdown-menu { border-radius: var(--vl-radius-md); border: 1px solid var(--vl-border); box-shadow: var(--vl-shadow-md); }
body.directorist-content-active .directorist-dropdown-item { min-height: 44px; display: flex; align-items: center; gap: var(--vl-space-sm); padding: 8px var(--vl-space-md); font-size: var(--vl-font-small); }
/* Tabla vacía honesta */
body.directorist-content-active .directorist-table td[colspan] { text-align: center; padding: var(--vl-space-xl); color: var(--vl-text-muted); }
/* Aviso de ayuda bajo la tabla (lo añade el HTML del escritorio) */
.vl-escritorio__ayuda { margin-top: var(--vl-space-lg); }
/* Ficha: título + badge sin pisarse en móvil; migas que saltan de fila enteras */
.vl-ficha__titulo { align-items: flex-start; }
.vl-ficha__titulo h1 { flex: 1 1 100%; min-width: 0; overflow-wrap: anywhere; line-height: var(--vl-lh-h1); }
@media (min-width: 600px) { .vl-ficha__titulo h1 { flex: 0 1 auto; } .vl-ficha__titulo { align-items: center; } }
.vl-migas li { flex: 0 0 auto; max-width: 100%; }
.vl-donde__linea { display: block; }

/* ============================================================
   3 · CARRITO (9) Y FINALIZAR COMPRA (10) · WooCommerce + Woodmart  → plugins/woocommerce.css
   ============================================================ */
/* Pasos: fuera el título gigante negro de Woodmart, pasos como los de la reserva */
html body.page-id-9 .wd-page-title, html body.page-id-10 .wd-page-title { background: var(--vl-bg-hero); padding: var(--vl-space-lg) 0; min-height: 0; margin-bottom: 0; }
html body.page-id-9 .wd-page-title .wd-page-title-bg, html body.page-id-10 .wd-page-title .wd-page-title-bg { display: none; }
html body.page-id-9 .wd-page-title .title, html body.page-id-10 .wd-page-title .title { display: none; }
.wd-checkout-steps { display: flex; flex-wrap: wrap; align-items: center; gap: var(--vl-space-sm) var(--vl-space-lg); list-style: none; margin: 0; padding: 0; counter-reset: paso; }
@media (min-width: 600px) { .wd-checkout-steps { justify-content: center; } }
.wd-checkout-steps li { display: inline-flex; align-items: center; gap: var(--vl-space-sm); font-family: var(--font-cuerpo); font-size: var(--vl-font-small); font-weight: 600; color: var(--vl-text-muted); text-transform: none; letter-spacing: 0; padding: 0; margin: 0; background: transparent; white-space: nowrap; }
.wd-checkout-steps li::before { counter-increment: paso; content: counter(paso); display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--vl-bg); border: 2px solid var(--vl-border-strong); color: var(--vl-text-muted); font-family: var(--font-titulos); font-weight: 700; flex: 0 0 auto; }
.wd-checkout-steps li::after { display: none; }
.wd-checkout-steps li a { color: inherit; min-height: 44px; display: inline-flex; align-items: center; }
.wd-checkout-steps li.step-active { color: var(--vl-secondary-dark); }
.wd-checkout-steps li.step-active::before { background: var(--vl-secondary); border-color: var(--vl-secondary); color: var(--vl-on-color); }
.wd-checkout-steps li.step-complete.step-active::before, .wd-checkout-steps li.step-done::before { background: var(--vl-success); border-color: var(--vl-success); color: var(--vl-on-color); }
@media (min-width: 600px) { .wd-checkout-steps li + li { position: relative; padding-left: var(--vl-space-lg); } .wd-checkout-steps li + li::after { content: ""; display: block; position: absolute; left: 0; top: 50%; width: 16px; height: 2px; background: var(--vl-border-strong); } }
/* Carrito: la tabla como tarjeta; totales como tarjeta pegada */
html body.page-id-9 .wd-content-layout, html body.page-id-10 .wd-content-layout { padding-top: var(--vl-space-xl); }
.woocommerce-cart .woocommerce { display: grid; gap: var(--vl-space-lg); align-items: start; }
@media (min-width: 1024px) { .woocommerce-cart .woocommerce { grid-template-columns: minmax(0, 1fr) 380px; gap: var(--vl-space-xl); } }
.woocommerce-cart .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-cart .woocommerce-cart-form { min-width: 0; }
.woocommerce-cart .woocommerce-cart-form table.shop_table { width: 100%; border: 1px solid var(--vl-border-brand); border-radius: var(--vl-radius-lg); overflow: hidden; border-collapse: separate; border-spacing: 0; background: var(--vl-bg-card); box-shadow: var(--vl-shadow-sm); font-size: var(--vl-font-body); }
.woocommerce-cart table.shop_table thead th { font-family: var(--font-titulos); font-size: var(--vl-font-caption); text-transform: uppercase; letter-spacing: .06em; color: var(--vl-text-muted); background: var(--vl-bg-soft); border-bottom: 1px solid var(--vl-border); padding: var(--vl-space-sm) var(--vl-space-md); }
.woocommerce-cart table.shop_table td { padding: var(--vl-space-md); border-bottom: 1px solid var(--vl-border); vertical-align: middle; }
.woocommerce-cart table.shop_table .product-name a { font-family: var(--font-titulos); font-weight: 600; color: var(--vl-text); }
.woocommerce-cart table.shop_table .product-thumbnail img { width: 64px; height: 64px; border-radius: var(--vl-radius-md); object-fit: cover; }
.woocommerce-cart table.shop_table .product-remove a { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: var(--vl-danger); background: var(--vl-danger-bg); font-size: 20px; text-decoration: none; }
.woocommerce-cart table.shop_table .product-price, .woocommerce-cart table.shop_table .product-subtotal { font-family: var(--font-titulos); font-weight: 700; color: var(--vl-text); white-space: nowrap; }
.woocommerce-cart table.shop_table .quantity input { min-height: var(--vl-touch); border: 2px solid var(--vl-border-field); border-radius: var(--vl-radius-md); font-size: var(--vl-font-body); }
.woocommerce-cart table.shop_table td.actions { background: var(--vl-bg-soft); border-bottom: 0; }
.woocommerce-cart table.shop_table td.actions .coupon { display: flex; flex-wrap: wrap; gap: var(--vl-space-sm); }
.woocommerce-cart table.shop_table td.actions .coupon input.input-text { flex: 1 1 180px; min-height: var(--vl-touch); border: 2px solid var(--vl-border-field); border-radius: var(--vl-radius-md); padding: 10px var(--vl-space-md); font-size: var(--vl-font-body); }
@media (max-width: 767px) {
  .woocommerce-cart table.shop_table thead { display: none; }
  .woocommerce-cart table.shop_table tr.cart_item { display: grid; grid-template-columns: 64px minmax(0, 1fr) 44px; gap: var(--vl-space-sm) var(--vl-space-md); padding: var(--vl-space-md); border-bottom: 1px solid var(--vl-border); }
  .woocommerce-cart table.shop_table tr.cart_item td { display: block; padding: 0; border: 0; }
  .woocommerce-cart table.shop_table tr.cart_item td::before { display: none; }
  .woocommerce-cart table.shop_table tr.cart_item .product-thumbnail { grid-row: 1 / 3; }
  .woocommerce-cart table.shop_table tr.cart_item .product-remove { grid-column: 3; grid-row: 1; text-align: right; }
  .woocommerce-cart table.shop_table tr.cart_item .product-price { display: none; }
  .woocommerce-cart table.shop_table tr.cart_item .product-quantity, .woocommerce-cart table.shop_table tr.cart_item .product-subtotal { grid-column: 2 / 4; display: flex; align-items: center; justify-content: space-between; gap: var(--vl-space-md); }
  .woocommerce-cart table.shop_table tr.cart_item .product-subtotal::before { content: "Subtotal"; font-family: var(--font-cuerpo); font-weight: 500; color: var(--vl-text-muted); font-size: var(--vl-font-small); }
  .woocommerce-cart table.shop_table td.actions { display: block; }
}
.woocommerce-cart .cart-collaterals .cart_totals { width: 100%; float: none; background: var(--vl-bg-card); border: 1px solid var(--vl-border-brand); border-radius: var(--vl-radius-lg); box-shadow: var(--vl-shadow-md); padding: var(--vl-space-lg); }
@media (min-width: 1024px) { .woocommerce-cart .cart-collaterals { position: sticky; top: calc(var(--vl-header-desktop-h) + var(--vl-space-md)); } }
.woocommerce-cart .cart_totals h2 { font-size: var(--vl-font-h3); margin: 0 0 var(--vl-space-md); }
.woocommerce-cart .cart_totals table.shop_table { width: 100%; border: 0; font-size: var(--vl-font-body); }
.woocommerce-cart .cart_totals table.shop_table th, .woocommerce-cart .cart_totals table.shop_table td { padding: var(--vl-space-sm) 0; border-bottom: 1px solid var(--vl-border); text-align: left; }
.woocommerce-cart .cart_totals table.shop_table td { text-align: right; font-family: var(--font-titulos); font-weight: 700; }
.woocommerce-cart .cart_totals .order-total td { font-size: var(--vl-font-h3); color: var(--vl-secondary-dark); }
.woocommerce-cart .cart_totals .order-total td small { display: block; font-family: var(--font-cuerpo); font-size: var(--vl-font-caption); font-weight: 400; }
.woocommerce-cart .wc-proceed-to-checkout { padding: var(--vl-space-lg) 0 0; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: var(--vl-touch); padding: 12px var(--vl-space-lg); border-radius: var(--vl-radius-pill); background: var(--vl-secondary); color: var(--vl-on-color); font-size: var(--vl-font-boton); font-weight: 600; text-transform: none; letter-spacing: 0; box-shadow: var(--vl-shadow-sm); }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover { background: var(--vl-secondary-dark); color: var(--vl-on-color); }
/* Botones de WooCommerce/Woodmart en carrito y pago: el botón de la casa */
.woocommerce-cart .woocommerce button.button, .woocommerce-checkout .woocommerce button.button, .woocommerce .return-to-shop a.button { display: inline-flex; align-items: center; justify-content: center; min-height: var(--vl-touch); padding: 12px var(--vl-space-lg); border-radius: var(--vl-radius-pill); border: 2px solid var(--vl-secondary); background: var(--vl-bg); color: var(--vl-secondary-dark); font-size: var(--vl-font-boton); font-weight: 600; text-transform: none; letter-spacing: 0; }
.woocommerce-cart .woocommerce button.button:hover, .woocommerce .return-to-shop a.button:hover { background: var(--vl-secondary-light); color: var(--vl-secondary-dark); }
/* Carrito vacío: la tarjeta «vacío honesto» de la casa */
.woocommerce .cart-empty.wd-empty-block-title { font-size: var(--vl-font-h2); text-align: center; margin: var(--vl-space-xl) 0 var(--vl-space-sm); }
.woocommerce .cart-empty.wd-empty-block-title::before { display: none; }
.woocommerce .wd-empty-block-text { text-align: center; color: var(--vl-text-muted); max-width: 520px; margin: 0 auto var(--vl-space-lg); }
.woocommerce .return-to-shop { text-align: center; margin-bottom: var(--vl-space-2xl); }
/* Finalizar compra: formulario + resumen */
.woocommerce-checkout form.checkout.woocommerce-checkout { display: grid; gap: var(--vl-space-lg); align-items: start; }
@media (min-width: 1024px) { .woocommerce-checkout form.checkout.woocommerce-checkout { grid-template-columns: minmax(0, 1fr) 400px; gap: var(--vl-space-xl); } }
.woocommerce-checkout form.checkout .col2-set { display: grid; gap: var(--vl-space-lg); width: 100%; margin: 0; }
.woocommerce-checkout form.checkout .col2-set .col-1, .woocommerce-checkout form.checkout .col2-set .col-2 { width: 100%; max-width: none; flex: none; padding: var(--vl-space-lg); background: var(--vl-bg-card); border: 1px solid var(--vl-border-brand); border-radius: var(--vl-radius-lg); box-shadow: var(--vl-shadow-sm); margin: 0; }
@media (min-width: 768px) { .woocommerce-checkout form.checkout .col2-set .col-1, .woocommerce-checkout form.checkout .col2-set .col-2 { padding: var(--vl-space-xl); } }
.woocommerce-checkout form.checkout .col2-set h3, .woocommerce-checkout #order_review_heading { font-size: var(--vl-font-h3); margin: 0 0 var(--vl-space-md); }
.woocommerce-checkout .woocommerce-billing-fields .form-row, .woocommerce-checkout .woocommerce-additional-fields .form-row { margin-bottom: var(--vl-space-md); }
.woocommerce-checkout .form-row label { display: block; font-size: var(--vl-font-body); font-weight: 600; color: var(--vl-text); margin-bottom: var(--vl-space-xs); }
.woocommerce-checkout .form-row label .required { color: var(--vl-danger); text-decoration: none; }
.woocommerce-checkout .form-row .input-text, .woocommerce-checkout .form-row select, .woocommerce-checkout .form-row textarea, .woocommerce-checkout .select2-container .select2-selection--single { width: 100%; min-height: var(--vl-touch); padding: 12px var(--vl-space-md); border: 2px solid var(--vl-border-field); border-radius: var(--vl-radius-md); background: var(--vl-bg); font-size: var(--vl-font-body); color: var(--vl-text); }
.woocommerce-checkout .form-row .input-text:focus { border-color: var(--vl-secondary); box-shadow: 0 0 0 3px var(--vl-secondary-light); outline: none; }
.woocommerce-checkout .form-row .woocommerce-input-wrapper { display: block; }
.woocommerce-checkout #order_review_heading { grid-column: 2; margin: 0; }
.woocommerce-checkout #order_review { grid-column: 2; background: var(--vl-bg-card); border: 1px solid var(--vl-border-brand); border-radius: var(--vl-radius-lg); box-shadow: var(--vl-shadow-md); padding: var(--vl-space-lg); min-width: 0; }
@media (max-width: 1023px) { .woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review { grid-column: 1; } }
@media (min-width: 1024px) { .woocommerce-checkout .checkout-order-review, .woocommerce-checkout #order_review { position: sticky; top: calc(var(--vl-header-desktop-h) + var(--vl-space-md)); } }
.woocommerce-checkout #order_review table.shop_table { width: 100%; border: 0; font-size: var(--vl-font-body); table-layout: auto; }
.woocommerce-checkout #order_review table.shop_table th, .woocommerce-checkout #order_review table.shop_table td { padding: var(--vl-space-sm) 0; border-bottom: 1px solid var(--vl-border); text-align: left; vertical-align: top; white-space: normal; }
.woocommerce-checkout #order_review table.shop_table thead th { font-family: var(--font-titulos); font-size: var(--vl-font-caption); text-transform: uppercase; letter-spacing: .06em; color: var(--vl-text-muted); }
.woocommerce-checkout #order_review table.shop_table .product-total, .woocommerce-checkout #order_review table.shop_table tfoot td { text-align: right; font-family: var(--font-titulos); font-weight: 700; white-space: nowrap; }
.woocommerce-checkout #order_review table.shop_table .order-total td { font-size: var(--vl-font-h3); color: var(--vl-secondary-dark); }
.woocommerce-checkout #payment { background: var(--vl-bg-soft); border-radius: var(--vl-radius-md); margin-top: var(--vl-space-md); }
.woocommerce-checkout #payment ul.payment_methods { list-style: none; margin: 0; padding: var(--vl-space-md); border: 0; display: grid; gap: var(--vl-space-sm); }
.woocommerce-checkout #payment ul.payment_methods li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: var(--vl-space-xs) var(--vl-space-sm); align-items: center; padding: var(--vl-space-sm) 0; margin: 0; }
.woocommerce-checkout #payment ul.payment_methods li input.input-radio { width: 24px; height: 24px; margin: 0; accent-color: var(--vl-secondary); }
.woocommerce-checkout #payment ul.payment_methods label { font-weight: 600; min-height: 44px; display: flex; align-items: center; margin: 0; }
.woocommerce-checkout #payment .payment_box { grid-column: 1 / -1; margin: 0; padding: var(--vl-space-md); background: var(--vl-bg-card); border-radius: var(--vl-radius-sm); font-size: var(--vl-font-small); color: var(--vl-text-muted); }
.woocommerce-checkout #payment .payment_box p { margin: 0; }
.woocommerce-checkout #payment .payment_box::before { display: none; }
.woocommerce-checkout #payment .place-order { display: grid; gap: var(--vl-space-md); padding: 0 var(--vl-space-md) var(--vl-space-md); margin: 0; }
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper { font-size: var(--vl-font-small); color: var(--vl-text-muted); margin: 0; }
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper .form-row { margin: 0; }
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper label { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: var(--vl-space-sm); align-items: start; font-weight: 400; margin: 0; line-height: var(--vl-lh-small); }
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper input[type="checkbox"] { width: 24px; height: 24px; margin: 0; accent-color: var(--vl-secondary); }
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper a { display: inline; padding: 0; margin: 0; font-weight: 600; }
.woocommerce-checkout #payment button#place_order { width: 100%; min-height: var(--vl-touch); padding: 12px var(--vl-space-lg); border-radius: var(--vl-radius-pill); border: 0; background: var(--vl-secondary); color: var(--vl-on-color); font-size: var(--vl-font-boton); font-weight: 600; text-transform: none; letter-spacing: 0; box-shadow: var(--vl-shadow-sm); }
.woocommerce-checkout #payment button#place_order:hover { background: var(--vl-secondary-dark); color: var(--vl-on-color); }
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info, .woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info { grid-column: 1 / -1; background: var(--vl-info-bg); color: var(--vl-info); border: 0; border-radius: var(--vl-radius-md); padding: var(--vl-space-md) var(--vl-space-lg); }
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before, .woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info::before { display: none; }
/* Aviso «pago por transferencia» de la casa (lo añade el HTML) */
.vl-pago__nota { margin-top: var(--vl-space-lg); }

/* ============================================================
   4 · LISTADO POR TIPO (11343-11349, 11334-11336, 11330) Y RESULTADOS (11331) · Directorist  → plugins/directorist.css
   ============================================================ */
/* Título gigante de Woodmart fuera: nuestro hero corto lo sustituye */
html body.page-id-11331 .wd-page-title, html body.page-id-11343 .wd-page-title, html body.page-id-11345 .wd-page-title, html body.page-id-11346 .wd-page-title, html body.page-id-11347 .wd-page-title, html body.page-id-11348 .wd-page-title, html body.page-id-11349 .wd-page-title, html body.page-id-11334 .wd-page-title, html body.page-id-11335 .wd-page-title, html body.page-id-11336 .wd-page-title, html body.page-id-11330 .wd-page-title { display: none; }
.vl-hero--corto { padding: var(--vl-space-xl) 0; }
@media (min-width: 1024px) { .vl-hero--corto { padding: var(--vl-space-2xl) 0; } }
.vl-hero--corto .vl-hero__title { margin-bottom: var(--vl-space-sm); }
.vl-hero--corto .vl-hero__text { margin-bottom: 0; }
.vl-hero--corto .vl-migas { margin-bottom: var(--vl-space-md); }
/* El listado entero */
.vl-listado { padding: var(--vl-space-lg) 0 var(--vl-space-2xl); }
body.directorist-content-active .listing-with-sidebar__searchform .directorist-search-form { background: var(--vl-bg-card); border: 1px solid var(--vl-border); border-radius: var(--vl-radius-lg); box-shadow: var(--vl-shadow-md); padding: var(--vl-space-md); margin: 0 0 var(--vl-space-lg); }
body.directorist-content-active .directorist-search-form__top { display: grid; gap: var(--vl-space-sm); align-items: end; }
@media (min-width: 768px) { body.directorist-content-active .directorist-search-form__top { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto; } }
body.directorist-content-active .directorist-search-field__label { display: block; font-size: var(--vl-font-small); font-weight: 600; color: var(--vl-text); margin-bottom: var(--vl-space-xs); }
body.directorist-content-active .directorist-search-field__input, body.directorist-content-active .directorist-search-field .directorist-form-element { width: 100%; }
body.directorist-content-active .directorist-search-form__top .directorist-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--vl-space-sm); min-height: var(--vl-touch); padding: 12px var(--vl-space-lg); border-radius: var(--vl-radius-pill); background: var(--vl-secondary); color: var(--vl-on-color); font-weight: 600; border: 0; }
body.directorist-content-active .directorist-search-form__top .directorist-btn .vl-icon { width: 20px; height: 20px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 2; }
/* Barra de cabecera: contador + Filtrar + conmutador Rejilla/Lista/Mapa + Ordenar */
body.directorist-content-active .directorist-header-bar { background: transparent; border: 0; padding: 0; margin-bottom: var(--vl-space-lg); }
body.directorist-content-active .directorist-listings-header { display: flex; flex-wrap: wrap; gap: var(--vl-space-md); align-items: center; justify-content: space-between; }
body.directorist-content-active .directorist-header-found-title { font-size: var(--vl-font-body); color: var(--vl-text-muted); flex: 1 1 100%; }
@media (min-width: 900px) { body.directorist-content-active .directorist-header-found-title { flex: 0 1 auto; white-space: nowrap; } }
body.directorist-content-active .directorist-header-found-title span { font-family: var(--font-titulos); font-weight: 700; color: var(--vl-text); }
body.directorist-content-active .directorist-listings-header__right { display: flex; flex-wrap: wrap; gap: var(--vl-space-sm); align-items: center; }
body.directorist-content-active .directorist-viewas { display: inline-flex; gap: var(--vl-space-xs); padding: var(--vl-space-xs); background: var(--vl-bg-gray); border-radius: var(--vl-radius-pill); align-items: center; }
body.directorist-content-active .directorist-archive-sidebar-toggle { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 8px 14px; border-radius: var(--vl-radius-pill); border: 2px solid var(--vl-border); background: var(--vl-bg); color: var(--vl-secondary-dark); font-size: var(--vl-font-small); font-weight: 600; margin-right: var(--vl-space-xs); }
body.directorist-content-active .directorist-viewas .directorist-viewas__item { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 44px; min-height: 44px; padding: 8px 12px; border-radius: var(--vl-radius-pill); color: var(--vl-text-muted); font-size: var(--vl-font-small); font-weight: 600; text-decoration: none; }
body.directorist-content-active .directorist-viewas .directorist-viewas__item .directorist-icon-mask::before { background-color: currentColor; }
body.directorist-content-active .directorist-viewas .directorist-viewas__item.active { background: var(--vl-bg); color: var(--vl-secondary-dark); box-shadow: var(--vl-shadow-xs); }
/* Etiqueta visible en el conmutador: «Lista» y «Mapa» (la rejilla queda como icono) */
body.directorist-content-active .directorist-viewas__item--lista::after { content: "Lista"; }
body.directorist-content-active .directorist-viewas__item--mapa::after { content: "Mapa"; }
body.directorist-content-active .directorist-sortby-dropdown .directorist-dropdown__toggle { min-height: 44px; padding: 8px 14px; border-radius: var(--vl-radius-pill); border: 2px solid var(--vl-border); background: var(--vl-bg); color: var(--vl-text-muted); font-size: var(--vl-font-small); font-weight: 600; }
/* Filtros laterales: tarjeta */
body.directorist-content-active .listing-with-sidebar__contents { display: grid; gap: var(--vl-space-lg); align-items: start; }
@media (min-width: 1024px) { body.directorist-content-active .listing-with-sidebar__contents { grid-template-columns: 280px minmax(0, 1fr); gap: var(--vl-space-xl); } }
body.directorist-content-active .listing-with-sidebar__sidebar .directorist-search-form { background: var(--vl-bg-card); border: 1px solid var(--vl-border-brand); border-radius: var(--vl-radius-lg); padding: var(--vl-space-lg); box-shadow: var(--vl-shadow-xs); }
body.directorist-content-active .directorist-advanced-filter__title { font-size: var(--vl-font-h4); margin: 0; }
body.directorist-content-active .directorist-advanced-filter__advanced { display: grid; gap: var(--vl-space-md); }
body.directorist-content-active .directorist-btn-reset-js { min-height: 44px; background: transparent; border: 0; color: var(--vl-secondary); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
/* Rejilla de fichas: la tarjeta de centro de la casa (sobre el HTML de Directorist) */
body.directorist-content-active .directorist-archive-items .directorist-row { display: grid; gap: var(--vl-space-lg); grid-template-columns: 1fr; margin: 0; }
@media (min-width: 640px) { body.directorist-content-active .directorist-archive-grid-view .directorist-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1280px) { body.directorist-content-active .directorist-archive-grid-view .directorist-row { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
body.directorist-content-active .directorist-archive-items .directorist-row > [class*="directorist-col-"] { width: auto; max-width: none; flex: none; padding: 0; }
body.directorist-content-active .directorist-listing-card { display: flex; flex-direction: column; height: 100%; padding: var(--vl-space-lg); gap: var(--vl-space-md); }
body.directorist-content-active .directorist-listing-card .directorist-listing-single__content, body.directorist-content-active .directorist-listing-card .directorist-listing-single__header, body.directorist-content-active .directorist-listing-card .directorist-listing-single__meta { padding-left: 0; padding-right: 0; } /* el relleno lo pone la tarjeta, no cada bloque */
body.directorist-content-active .directorist-listing-card .directorist-listing-single__content { padding-top: 0; padding-bottom: 0; }
body.directorist-content-active .directorist-listing-single__header { display: flex; gap: var(--vl-space-md); align-items: flex-start; }
body.directorist-content-active .directorist-listing-single__header__left { margin: 0; flex: 0 0 auto; }
body.directorist-content-active .directorist-listing-single__header__left img { width: 40px; height: 40px; border-radius: 50%; }
body.directorist-content-active .directorist-listing-tagline { font-size: var(--vl-font-small); color: var(--vl-primary-dark); font-weight: 500; margin: var(--vl-space-xs) 0 0; }
body.directorist-content-active .directorist-listing-single__info .directorist-rating-meta { display: none; } /* 0.0 (0) no informa: fuera hasta que haya opiniones */
body.directorist-content-active .directorist-listing-single__info__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--vl-space-xs); }
body.directorist-content-active .directorist-listing-single__info__list li { display: flex; gap: var(--vl-space-sm); align-items: flex-start; font-size: var(--vl-font-small); color: var(--vl-text-muted); line-height: var(--vl-lh-small); overflow-wrap: anywhere; }
body.directorist-content-active .directorist-listing-single__info__list li .directorist-icon-mask { flex: 0 0 auto; margin-top: 2px; }
body.directorist-content-active .directorist-listing-single__info__list li .directorist-icon-mask::before { background-color: var(--vl-secondary); }
body.directorist-content-active .directorist-listing-single__info__list li a { display: inline; min-height: 0; padding: 0; overflow-wrap: anywhere; }
body.directorist-content-active .directorist-listing-single__info__list li.directorist-listing-card-location, body.directorist-content-active .directorist-listing-single__info__list li.directorist-listing-card-zip { display: none; } /* la dirección ya lleva ciudad y código postal */
body.directorist-content-active .directorist-listing-single__info__list li.directorist-listing-card-phone a { font-weight: 600; color: var(--vl-secondary-dark); min-height: 44px; display: inline-flex; align-items: center; }
body.directorist-content-active .directorist-listing-single__meta { margin-top: auto; padding-top: var(--vl-space-md); border-top: 1px solid var(--vl-border); display: flex; align-items: center; justify-content: space-between; gap: var(--vl-space-sm); flex-wrap: wrap; }
body.directorist-content-active .directorist-listing-category a { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 4px 12px; border-radius: var(--vl-radius-pill); background: var(--vl-primary-light); color: var(--vl-primary-dark); font-size: var(--vl-font-caption); font-weight: 600; white-space: nowrap; }
body.directorist-content-active .directorist-listing-single__meta__right { display: inline-flex; align-items: center; gap: var(--vl-space-sm); }
body.directorist-content-active .directorist-view-count { font-size: var(--vl-font-caption); color: var(--vl-text-muted); display: inline-flex; align-items: center; gap: 4px; }
body.directorist-content-active .directorist-mark-as-favorite__btn { width: 44px; height: 44px; border-radius: 50%; border: 2px solid var(--vl-border); background: var(--vl-bg); }
/* Botón «Ver ficha» de la casa: lo pinta la plantilla list-view/grid-view del tema hijo (ya existe en directorist/archive/) */
body.directorist-content-active .directorist-listing-card .vl-btn { align-self: flex-start; }

/* ---------- 4b · EL MAPA (Leaflet + OpenStreetMap, lo pinta Directorist) ---------- */
/* Contenedor del mapa, en listado y en ficha */
body.directorist-content-active .directorist-map, .vl-mapa { position: relative; width: 100%; min-height: var(--vl-mapa-alto); aspect-ratio: auto; border-radius: var(--vl-radius-lg); overflow: hidden; border: 1px solid var(--vl-border); background: var(--vl-bg-gray); display: block; }
/* Vista mapa del listado: 1440 = lista 60 % + mapa fijo 40 %; 375 = mapa a pantalla completa con la tarjeta deslizante */
body.directorist-content-active .directorist-archive-items.directorist-archive-map-view, .vl-listado--mapa .directorist-archive-items { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--vl-space-lg); align-items: start; width: 100%; }
body.directorist-content-active .directorist-archive-items .directorist-container-fluid, body.directorist-content-active .listing-with-sidebar .directorist-container-fluid { padding-left: 0; padding-right: 0; max-width: none; width: 100%; }
@media (min-width: 1024px) {
  body.directorist-content-active .directorist-archive-items.directorist-archive-map-view, .vl-listado--mapa .directorist-archive-items { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
  body.directorist-content-active .directorist-archive-map-view .directorist-map, .vl-listado--mapa .directorist-map { position: sticky; top: calc(var(--vl-header-desktop-h) + var(--vl-space-md)); height: calc(100vh - var(--vl-header-desktop-h) - var(--vl-space-xl)); min-height: 520px; }
  .vl-listado--mapa .directorist-archive-grid-view .directorist-row, body.directorist-content-active .vl-listado--mapa .directorist-archive-grid-view .directorist-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) and (max-width: 1279px) { body.directorist-content-active .vl-listado--mapa .directorist-archive-grid-view .directorist-row { grid-template-columns: 1fr; } }
@media (max-width: 1023px) {
  body.directorist-content-active .vl-listado--mapa .directorist-map, .vl-listado--mapa .directorist-map { height: calc(100vh - var(--vl-header-h) - var(--vl-header-icons-h) - 56px); min-height: 420px; border-radius: var(--vl-radius-lg); }
  body.directorist-content-active .vl-listado--mapa .directorist-archive-items .directorist-row, .vl-listado--mapa .directorist-archive-items .directorist-row { display: none; } /* en móvil, la lista vive en la pestaña «Lista»: el mapa manda */
}
/* Tarjeta deslizante sobre el mapa (móvil): el centro seleccionado */
.vl-mapa__tarjeta { position: absolute; left: var(--vl-space-md); right: var(--vl-space-md); bottom: var(--vl-space-md); z-index: 500; background: var(--vl-bg-card); border: 1px solid var(--vl-border-brand); border-radius: var(--vl-radius-lg); box-shadow: var(--vl-shadow-lg); padding: var(--vl-space-md) var(--vl-space-lg); display: grid; gap: var(--vl-space-xs); }
.vl-mapa__tarjeta::before { content: ""; width: 40px; height: 4px; border-radius: 2px; background: var(--vl-border-strong); margin: 0 auto var(--vl-space-xs); }
@media (min-width: 1024px) { .vl-mapa__tarjeta { display: none; } }
/* Controles de zoom a 44 px (WCAG 2.5.8) */
.leaflet-touch .leaflet-bar a, .leaflet-bar a { width: 44px; height: 44px; line-height: 44px; font-size: 22px; color: var(--vl-text); background: var(--vl-bg); border-bottom-color: var(--vl-border); }
.leaflet-touch .leaflet-bar { border: 1px solid var(--vl-border); border-radius: var(--vl-radius-md); box-shadow: var(--vl-shadow-sm); overflow: hidden; }
.leaflet-bar a:first-child { border-radius: var(--vl-radius-md) var(--vl-radius-md) 0 0; }
.leaflet-bar a:last-child { border-radius: 0 0 var(--vl-radius-md) var(--vl-radius-md); }
.leaflet-bar a:focus-visible { outline: var(--vl-focus-width) solid var(--vl-focus); outline-offset: -3px; }
.leaflet-container { font-family: var(--font-cuerpo); font-size: var(--vl-font-small); }
.leaflet-container .leaflet-control-attribution { font-size: 12px; background: rgba(255, 255, 255, .85); color: var(--vl-text-muted); padding: 2px 8px; border-radius: var(--vl-radius-sm) 0 0 0; }
.leaflet-container .leaflet-control-attribution a { color: var(--vl-secondary); }
/* Marcador: el ojo de VisionLovers en azul --vl-mapa-marcador */
.vl-marcador, .directorist-map-marker, .directorist-map .leaflet-marker-icon.vl-marcador { width: 44px; height: 52px; display: grid; place-items: start center; filter: drop-shadow(0 4px 6px rgba(15, 23, 42, .25)); }
.vl-marcador__pin { width: 44px; height: 44px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: var(--vl-mapa-marcador); border: 3px solid var(--vl-bg); display: grid; place-items: center; box-sizing: border-box; }
.vl-marcador__pin svg { width: 22px; height: 22px; transform: rotate(45deg); stroke: var(--vl-on-color); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.vl-marcador--activo .vl-marcador__pin { background: var(--vl-primary-dark); }
/* Ventana emergente: la tarjeta corta del centro */
.leaflet-popup-content-wrapper { border-radius: var(--vl-radius-lg); box-shadow: var(--vl-shadow-lg); border: 1px solid var(--vl-border-brand); padding: 0; }
.leaflet-popup-content { margin: 0; width: min(300px, 80vw); font-family: var(--font-cuerpo); font-size: var(--vl-font-small); line-height: var(--vl-lh-small); color: var(--vl-text-muted); }
.leaflet-popup-tip { box-shadow: none; }
.leaflet-container a.leaflet-popup-close-button { width: 44px; height: 44px; font-size: 24px; line-height: 44px; color: var(--vl-text-muted); top: 0; right: 0; padding: 0; }
.leaflet-container a.vl-btn--primary { color: var(--vl-on-color); }
.leaflet-container a.vl-btn--secondary { color: var(--vl-secondary-dark); }
.leaflet-container .vl-popup__nombre a { color: var(--vl-text); }
.vl-popup { padding: var(--vl-space-md) var(--vl-space-lg) var(--vl-space-lg); display: grid; gap: var(--vl-space-xs); }
.vl-popup__nombre { font-family: var(--font-titulos); font-size: var(--vl-font-h4); line-height: var(--vl-lh-h4); font-weight: 600; color: var(--vl-text); margin: 0; padding-right: var(--vl-space-xl); }
.vl-popup__nombre a { color: inherit; }
.vl-popup__tipo { margin: 0; color: var(--vl-primary-dark); font-weight: 500; }
.vl-popup__distancia { margin: 0; display: inline-flex; align-items: center; gap: var(--vl-space-xs); }
.vl-popup__distancia svg { width: 16px; height: 16px; stroke: var(--vl-secondary); fill: none; stroke-width: 2; }
.vl-popup .vl-btn { margin-top: var(--vl-space-xs); justify-self: start; }
/* Mapa vacío: centrado en España con el aviso encima */
.vl-mapa--vacio .vl-mapa__aviso, .vl-mapa__aviso { position: absolute; z-index: 500; left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(420px, calc(100% - var(--vl-space-xl))); background: var(--vl-bg-card); border: 1px dashed var(--vl-border-strong); border-radius: var(--vl-radius-lg); box-shadow: var(--vl-shadow-lg); padding: var(--vl-space-lg); text-align: center; display: grid; gap: var(--vl-space-sm); justify-items: center; }
.vl-mapa__aviso h2, .vl-mapa__aviso h3 { font-size: var(--vl-font-h4); margin: 0; }
.vl-mapa__aviso p { margin: 0; color: var(--vl-text-muted); font-size: var(--vl-font-small); }
.vl-mapa--vacio .leaflet-tile-pane { filter: saturate(.6) opacity(.9); }
/* Ficha: bloque «Dónde estamos» */
.vl-donde { display: grid; gap: var(--vl-space-md); }
.vl-donde .directorist-map, .vl-donde .vl-mapa { height: var(--vl-mapa-alto); min-height: var(--vl-mapa-alto); }
.vl-donde__pie { display: flex; flex-wrap: wrap; gap: var(--vl-space-md); align-items: center; justify-content: space-between; }
.vl-donde__direccion { display: flex; gap: var(--vl-space-sm); align-items: flex-start; margin: 0; color: var(--vl-text-muted); flex: 1 1 260px; }
.vl-donde__direccion svg { width: 20px; height: 20px; color: var(--vl-secondary); flex: 0 0 auto; margin-top: 3px; }
.vl-donde__acciones { display: flex; flex-wrap: wrap; gap: var(--vl-space-sm); }
@media (max-width: 599px) { .vl-donde__acciones { width: 100%; } .vl-donde__acciones .vl-btn { flex: 1 1 auto; } }
/* Buscador duplicado de Directorist bajo el hero del directorio (11333): fuera, el hero ya lleva el nuestro */
html body.page-id-11333 .listing-with-sidebar__searchform { display: none; }

/* ============================================================
   5 · PLANES (11096 · User Registration Membership)  → plugins/user-registration.css
   ============================================================ */
html body.page-id-11096 .wd-page-title { display: none; }
.vl-planes-ur .ur_membership_frontend_input_container.radio { display: grid; gap: var(--vl-space-lg); grid-template-columns: 1fr; }
@media (min-width: 640px) { .vl-planes-ur .ur_membership_frontend_input_container.radio { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .vl-planes-ur .ur_membership_frontend_input_container.radio { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--vl-space-xl); } }
.vl-planes-ur .membership-block { margin: 0; height: 100%; }
.vl-planes-ur .ur_membership_input_label { position: relative; display: flex; flex-direction: column; gap: var(--vl-space-md); height: 100%; margin: 0; padding: var(--vl-space-lg); background: var(--vl-bg-card); border: 2px solid var(--vl-border-brand); border-radius: var(--vl-radius-lg); box-shadow: var(--vl-shadow-sm); cursor: pointer; transition: border-color var(--vl-transition-fast), box-shadow var(--vl-transition-normal); }
.vl-planes-ur .ur_membership_input_label:hover { box-shadow: var(--vl-shadow-md); border-color: var(--vl-secondary); }
.vl-planes-ur .ur_membership_input_label:has(input:checked) { border-color: var(--vl-secondary); background: var(--vl-secondary-light); }
.vl-planes-ur .ur_membership_input_label:has(input:focus-visible) { outline: var(--vl-focus-width) solid var(--vl-focus); outline-offset: 2px; }
.vl-planes-ur .ur_membership_radio_input { position: absolute; top: var(--vl-space-lg); right: var(--vl-space-lg); width: 24px; height: 24px; margin: 0; accent-color: var(--vl-secondary); }
.vl-planes-ur .ur-membership-title-wrapper { display: flex; flex-direction: column; gap: var(--vl-space-sm); height: 100%; }
.vl-planes-ur .ur-membership-title { display: flex; flex-direction: column; align-items: flex-start; gap: var(--vl-space-xs); font-family: var(--font-titulos); font-size: var(--vl-font-h3); line-height: var(--vl-lh-h3); font-weight: 600; color: var(--vl-text); padding-right: var(--vl-space-xl); }
.vl-planes-ur .ur-membership-trial-label { display: inline-flex; align-items: center; min-height: 28px; padding: 4px 10px; border-radius: var(--vl-radius-pill); background: var(--vl-success-bg); color: var(--vl-success); font-family: var(--font-cuerpo); font-size: var(--vl-font-caption); font-weight: 600; white-space: nowrap; }
.vl-planes-ur .ur-membership-amount-wrapper { margin-top: auto; }
.vl-planes-ur .ur-membership-price-row { display: flex; align-items: baseline; gap: var(--vl-space-xs) var(--vl-space-sm); flex-wrap: wrap; }
.vl-planes-ur .ur-membership-duration { flex: 1 1 120px; min-width: 0; position: static; }
.vl-planes-ur .membership-amount { font-family: var(--font-titulos); font-size: var(--vl-font-precio); line-height: 1; font-weight: 700; color: var(--vl-text); white-space: nowrap; }
.vl-planes-ur .ur-membership-duration { font-size: var(--vl-font-small); color: var(--vl-text-muted); }
.vl-planes-ur .ur-membership-trial-end { display: block; position: static; margin-top: var(--vl-space-xs); font-size: var(--vl-font-small); color: var(--vl-text-muted); }
.vl-planes-ur .membership-footer { margin-top: var(--vl-space-xl); display: flex; flex-direction: column; gap: var(--vl-space-sm); align-items: center; }
.vl-planes-ur .membership-footer button { display: inline-flex; align-items: center; justify-content: center; min-height: var(--vl-touch); padding: 12px var(--vl-space-xl); border-radius: var(--vl-radius-pill); border: 0; background: var(--vl-secondary); color: var(--vl-on-color); font-size: var(--vl-font-boton); font-weight: 600; width: 100%; max-width: 420px; }
.vl-planes-ur .membership-footer button:hover { background: var(--vl-secondary-dark); }
.vl-planes-ur .notice-container { margin-top: var(--vl-space-md); }
.vl-planes-ur .notice_red { display: none; }
.vl-planes-ur .notice_red:has(.notice_message:not(:empty)) { display: block; background: var(--vl-danger-bg); color: var(--vl-danger); border-radius: var(--vl-radius-md); padding: var(--vl-space-md); }

/* ============================================================
   6 · TARJETA AUXILIAR (10980 · 10981 · 11339 · 11340 · 11341 · 11342)  → componentes.css
   Contraseña perdida, nueva contraseña, sign-in, pago, recibo y fallo de pago de Directorist.
   ============================================================ */
html body.page-id-10980 .wd-page-title, html body.page-id-10981 .wd-page-title, html body.page-id-11339 .wd-page-title, html body.page-id-11340 .wd-page-title, html body.page-id-11341 .wd-page-title, html body.page-id-11342 .wd-page-title { display: none; }
.vl-aux { padding: var(--vl-space-2xl) 0; background: var(--vl-bg-soft); }
@media (min-width: 640px) { .vl-aux { padding: var(--vl-space-3xl) 0; } }
.vl-aux__marco { width: 100%; max-width: 480px; margin: 0 auto; }
.vl-aux__intro { text-align: center; margin-bottom: var(--vl-space-lg); }
.vl-aux__icono { width: 64px; height: 64px; border-radius: 50%; background: var(--vl-secondary-light); color: var(--vl-secondary-dark); display: grid; place-items: center; margin: 0 auto var(--vl-space-md); }
.vl-aux__icono svg { width: 30px; height: 30px; }
.vl-aux__icono--ok { background: var(--vl-success-bg); color: var(--vl-success); }
.vl-aux__icono--error { background: var(--vl-danger-bg); color: var(--vl-danger); }
.vl-aux__card { background: var(--vl-bg-card); border: 1px solid var(--vl-border-brand); border-radius: var(--vl-radius-lg); box-shadow: var(--vl-shadow-md); padding: var(--vl-space-lg) var(--vl-space-md); }
@media (min-width: 640px) { .vl-aux__card { padding: var(--vl-space-xl); } }
.vl-aux__pie { margin-top: var(--vl-space-lg); text-align: center; font-size: var(--vl-font-small); color: var(--vl-text-muted); }
.vl-aux__pie a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }
/* El formulario del plugin dentro de la tarjeta (User Registration, WooCommerce y Directorist usan campos distintos) */
.vl-aux__card label, .vl-aux__card .directorist-form-group label { display: block; font-size: var(--vl-font-body); font-weight: 600; color: var(--vl-text); margin-bottom: var(--vl-space-xs); }
.vl-aux__card input.input-text, .vl-aux__card input[type="text"], .vl-aux__card input[type="email"], .vl-aux__card input[type="password"], .vl-aux__card .directorist-form-element, .vl-aux__card .user-registration-Input { width: 100%; min-height: var(--vl-touch); padding: 12px var(--vl-space-md); border: 2px solid var(--vl-border-field); border-radius: var(--vl-radius-md); background: var(--vl-bg); color: var(--vl-text); font-size: var(--vl-font-body); line-height: 1.4; margin-bottom: var(--vl-space-md); }
.vl-aux__card input:focus { border-color: var(--vl-secondary); box-shadow: 0 0 0 3px var(--vl-secondary-light); outline: none; }
.vl-aux__card .button, .vl-aux__card button[type="submit"], .vl-aux__card .directorist-btn, .vl-aux__card .user-registration-Button { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: var(--vl-touch); padding: 12px var(--vl-space-lg); border-radius: var(--vl-radius-pill); border: 0; background: var(--vl-secondary); color: var(--vl-on-color); font-size: var(--vl-font-boton); font-weight: 600; text-transform: none; letter-spacing: 0; box-shadow: var(--vl-shadow-sm); }
.vl-aux__card .button:hover, .vl-aux__card button[type="submit"]:hover, .vl-aux__card .directorist-btn:hover { background: var(--vl-secondary-dark); color: var(--vl-on-color); }
.vl-aux__card p { color: var(--vl-text-muted); }
.vl-aux__card .woocommerce-ResetPassword p:first-child, .vl-aux__card .lost_reset_password p:first-child { margin-bottom: var(--vl-space-lg); }
/* Recibo (11341): tabla del pedido */
.vl-aux__card .directorist-checkout-table, .vl-aux__card table { width: 100%; border-collapse: collapse; font-size: var(--vl-font-body); }
.vl-aux__card table th, .vl-aux__card table td { padding: var(--vl-space-sm) 0; border-bottom: 1px solid var(--vl-border); text-align: left; }
.vl-aux__card table td:last-child { text-align: right; font-family: var(--font-titulos); font-weight: 700; }

/* ============================================================
   7 · PERFIL DEL AUTOR (11282 · Directorist)  → plugins/directorist.css
   ============================================================ */
html body.page-id-11282 .wd-page-title { display: none; }
.vl-autor { padding: var(--vl-space-xl) 0 var(--vl-space-2xl); }
body.directorist-content-active .directorist-author-profile, .vl-autor__cabecera { display: flex; flex-wrap: wrap; align-items: center; gap: var(--vl-space-md) var(--vl-space-lg); padding: var(--vl-space-lg); background: var(--vl-bg-card); border: 1px solid var(--vl-border-brand); border-radius: var(--vl-radius-lg); box-shadow: var(--vl-shadow-sm); margin-bottom: var(--vl-space-xl); }
body.directorist-content-active .directorist-author-profile .directorist-author-avatar img, .vl-autor__cabecera .vl-avatar { width: 72px; height: 72px; border-radius: 50%; }
body.directorist-content-active .directorist-author-profile .directorist-author-info, .vl-autor__quien { flex: 1 1 260px; min-width: 0; }
body.directorist-content-active .directorist-author-profile .directorist-author-name, .vl-autor__nombre { font-family: var(--font-titulos); font-size: var(--vl-font-h2); line-height: var(--vl-lh-h2); font-weight: 700; margin: 0 0 var(--vl-space-xs); }
body.directorist-content-active .directorist-author-profile .directorist-author-rating, body.directorist-content-active .directorist-author-profile .directorist-author-review { display: none; } /* «0 Reviews»: fuera hasta que haya opiniones */
.vl-autor__datos { display: flex; flex-wrap: wrap; gap: var(--vl-space-sm) var(--vl-space-lg); font-size: var(--vl-font-small); color: var(--vl-text-muted); margin: 0; padding: 0; list-style: none; }
.vl-autor__datos li { display: inline-flex; align-items: flex-start; gap: var(--vl-space-xs); }
.vl-autor__datos svg { width: 18px; height: 18px; color: var(--vl-secondary); flex: 0 0 auto; margin-top: 2px; }
body.directorist-content-active .directorist-author-profile .directorist-author-listing-count, .vl-autor__contador { font-size: var(--vl-font-body); color: var(--vl-text-muted); flex: 0 0 auto; margin: 0; white-space: nowrap; }
body.directorist-content-active .directorist-author-profile .directorist-author-listing-count b, .vl-autor__contador b { font-family: var(--font-titulos); font-size: var(--vl-font-h2); color: var(--vl-secondary-dark); display: block; line-height: 1; }
.vl-autor__listado h2 { font-size: var(--vl-font-h3); margin-bottom: var(--vl-space-md); }

/* ============================================================
   8 · TIENDA (/shop/, 1249 · WooCommerce + Woodmart)  → plugins/woocommerce.css
   Recomendación a Sergio: /shop/ redirige a /profesionales/. Si se queda, así se ve.
   ============================================================ */
html body.post-type-archive-product .wd-page-title { display: none; }
.vl-tienda { padding: var(--vl-space-lg) 0 var(--vl-space-2xl); }
html body.post-type-archive-product .shop-loop-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--vl-space-md); margin-bottom: var(--vl-space-lg); }
html body.post-type-archive-product .woocommerce-result-count { font-size: var(--vl-font-small); color: var(--vl-text-muted); margin: 0; white-space: nowrap; }
html body.post-type-archive-product .woocommerce-ordering select { min-height: 44px; border: 2px solid var(--vl-border); border-radius: var(--vl-radius-pill); padding: 8px var(--vl-space-lg) 8px var(--vl-space-md); font-size: var(--vl-font-small); font-weight: 600; color: var(--vl-text-muted); }
html body.post-type-archive-product .products.wd-products { display: grid; gap: var(--vl-space-lg); grid-template-columns: 1fr; }
@media (min-width: 640px) { html body.post-type-archive-product .products.wd-products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { html body.post-type-archive-product .products.wd-products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--vl-space-xl); } }
html body.post-type-archive-product .products .product-grid-item, html body.post-type-archive-product .products .wd-product { display: flex; flex-direction: column; gap: var(--vl-space-sm); padding: var(--vl-space-lg); background: var(--vl-bg-card); border: 1px solid var(--vl-border-brand); border-radius: var(--vl-radius-lg); box-shadow: var(--vl-shadow-sm); text-align: left; }
html body.post-type-archive-product .products .product-grid-item .product-element-top, html body.post-type-archive-product .products .product-grid-item .product-image-link { display: none; } /* los iconos de prueba (ojo, cartel E-F-P): fuera hasta que haya fotos de plan */
html body.post-type-archive-product .products .product-grid-item .wd-entities-title { font-family: var(--font-titulos); font-size: var(--vl-font-h3); font-weight: 600; margin: 0; }
html body.post-type-archive-product .products .product-grid-item .wd-entities-title a { color: var(--vl-text); }
html body.post-type-archive-product .products .product-grid-item .price { font-family: var(--font-titulos); font-size: var(--vl-font-precio); font-weight: 700; color: var(--vl-text); display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--vl-space-xs); margin-bottom: var(--vl-space-sm); }
html body.post-type-archive-product .products .product-grid-item .vl-chip { align-self: flex-start; }
html body.post-type-archive-product .products .product-grid-item .price .woocommerce-Price-currencySymbol { font-size: var(--vl-font-h3); }
html body.post-type-archive-product .products .product-grid-item .price .subscription-details, html body.post-type-archive-product .products .product-grid-item .price small { flex: 1 1 100%; font-family: var(--font-cuerpo); font-size: var(--vl-font-small); font-weight: 400; color: var(--vl-text-muted); line-height: var(--vl-lh-small); }
html body.post-type-archive-product .products .product-grid-item .wd-add-btn, html body.post-type-archive-product .products .product-grid-item .wd-bottom-actions { margin-top: auto; opacity: 1; transform: none; position: static; }
html body.post-type-archive-product .products .product-grid-item .wd-add-btn a, html body.post-type-archive-product .products .product-grid-item a.button { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: var(--vl-touch); padding: 12px var(--vl-space-lg); border-radius: var(--vl-radius-pill); border: 2px solid var(--vl-secondary); background: var(--vl-bg); color: var(--vl-secondary-dark); font-size: var(--vl-font-boton); font-weight: 600; text-transform: none; letter-spacing: 0; }
html body.post-type-archive-product .products .product-grid-item .wd-add-btn a:hover, html body.post-type-archive-product .products .product-grid-item a.button:hover { background: var(--vl-secondary); color: var(--vl-on-color); }
html body.post-type-archive-product .products .product-grid-item .wd-product-detail, html body.post-type-archive-product .products .product-grid-item .wd-buttons { display: none; }
/* Etiqueta del público de cada plan (la añade el HTML con vl-chip) */
.vl-tienda__aviso { margin-bottom: var(--vl-space-lg); }

/* ============================================================
   9 · REGISTROS POR TIPO (10983 · 10990 · 10993 · 10996 · 10999)  → base.css
   El hero de 10987 (ópticas) adaptado: mismo HTML, cinco textos. Solo faltaba una clase.
   ============================================================ */
.vl-hero--registro .vl-hero__content { max-width: none; display: grid; gap: var(--vl-space-xl); align-items: start; }
@media (min-width: 1024px) { .vl-hero--registro .vl-hero__content { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--vl-space-3xl); } }
.vl-hero--registro .vl-precio { margin-top: var(--vl-space-md); display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--vl-space-xs) var(--vl-space-sm); }
.vl-hero--registro .vl-hero__meta { margin-top: var(--vl-space-md); flex-direction: column; align-items: flex-start; gap: var(--vl-space-sm); }
.vl-hero--registro .vl-hero__meta li { display: flex; align-items: flex-start; }
.vl-hero--registro .vl-hero__meta svg { margin-top: 2px; }
.vl-hero__enlaces { margin-top: var(--vl-space-lg); }
.vl-hero__enlaces a, .wd-page-content .vl-hero .vl-hero__content p.vl-hero__enlaces a:not(.vl-btn):not(.btn):not([class*="btn"]) { display: inline; min-height: 0; margin: 0; padding: 0; font-weight: 600; line-height: inherit; }
.vl-hero--registro .vl-card--hero .vl-field { display: grid; gap: var(--vl-space-xs); margin-bottom: var(--vl-space-md); }
.vl-hero--registro .vl-card--hero span.vl-input { display: block; width: 100%; min-height: var(--vl-touch); }
/* El formulario del plugin en una tarjeta blanca al lado del hero */
.vl-hero--registro .vl-card--hero .ur-frontend-form { border: 0; padding: 0; background: transparent; }


/* 10 · sección 10 retirada (22:30, code review): las variantes B y C (--v2/--v3) no se pintan en ningún PHP → assets/css/_retirado-remate-1-1-v2-v3.css (no se encola) */

/* ============================================================
   11 · 404, CONFIRMACIÓN DEL TRIAJE, ESTADOS VACÍOS Y BARRA DE 6 ICONOS (§5 del encargo)  → componentes.css / cabecera.css
   ============================================================ */
.vl-404 { padding: var(--vl-space-3xl) 0; text-align: center; }
.vl-404__codigo { font-family: var(--font-titulos); font-size: 96px; line-height: 1; font-weight: 700; color: var(--vl-secondary-light); letter-spacing: -.04em; margin: 0 0 var(--vl-space-md); }
@media (min-width: 640px) { .vl-404__codigo { font-size: 144px; } }
.vl-404 .vl-hero__title { margin-bottom: var(--vl-space-sm); }
.vl-404__text { max-width: 480px; margin: 0 auto var(--vl-space-xl); color: var(--vl-text-muted); }
.vl-404__salidas { display: grid; gap: var(--vl-space-sm); max-width: 560px; margin: 0 auto; text-align: left; }
@media (min-width: 640px) { .vl-404__salidas { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.vl-404__salidas a { display: flex; align-items: center; gap: var(--vl-space-sm); min-height: var(--vl-touch); padding: var(--vl-space-sm) var(--vl-space-md); background: var(--vl-bg-card); border: 1px solid var(--vl-border-brand); border-radius: var(--vl-radius-md); color: var(--vl-text); font-weight: 600; }
.vl-404__salidas a:hover { border-color: var(--vl-secondary); background: var(--vl-secondary-light); text-decoration: none; }
.vl-404__salidas svg { width: 20px; height: 20px; color: var(--vl-secondary); flex: 0 0 auto; }
/* Confirmación del triaje (WPForms pinta .wpforms-confirmation-container-full con nuestro HTML dentro) */
.wpforms-confirmation-container-full, .vl-confirmacion { background: transparent; border: 0; padding: 0; margin: 0; }
.vl-confirmacion { padding: var(--vl-space-2xl) 0 var(--vl-space-3xl); }
.vl-confirmacion__marco { max-width: 640px; margin: 0 auto; }
.vl-confirmacion__pasos { list-style: none; margin: var(--vl-space-lg) 0 0; padding: 0; display: grid; gap: var(--vl-space-md); counter-reset: paso; }
.vl-confirmacion__pasos li { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: var(--vl-space-md); align-items: start; }
.vl-confirmacion__pasos li::before { counter-increment: paso; content: counter(paso); display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--vl-secondary-light); color: var(--vl-secondary-dark); font-family: var(--font-titulos); font-weight: 700; }
.vl-confirmacion__pasos b { display: block; color: var(--vl-text); }
.vl-confirmacion__pasos p { margin: 2px 0 0; color: var(--vl-text-muted); font-size: var(--vl-font-small); line-height: var(--vl-lh-small); }
/* Estado vacío / error genérico (vale dentro de cualquier tarjeta) */
.vl-vacio { display: grid; justify-items: center; text-align: center; gap: var(--vl-space-sm); padding: var(--vl-space-xl) var(--vl-space-lg); border: 1px dashed var(--vl-border-strong); border-radius: var(--vl-radius-lg); background: var(--vl-bg-soft); }
.vl-vacio__icono { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: var(--vl-secondary-light); color: var(--vl-secondary-dark); }
.vl-vacio__icono svg { width: 26px; height: 26px; }
.vl-vacio--error { border-color: var(--vl-danger); background: var(--vl-danger-bg); }
.vl-vacio--error .vl-vacio__icono { background: var(--vl-bg); color: var(--vl-danger); }
.vl-vacio--aviso { border-color: var(--vl-warning); background: var(--vl-warning-bg); }
.vl-vacio--aviso .vl-vacio__icono { background: var(--vl-bg); color: var(--vl-warning); }
.vl-vacio h3 { font-size: var(--vl-font-h4); margin: 0; }
.vl-vacio p { margin: 0; color: var(--vl-text-muted); font-size: var(--vl-font-small); line-height: var(--vl-lh-small); max-width: 380px; }
.vl-vacio .vl-btn { margin-top: var(--vl-space-xs); }
.vl-vacio__lista { text-align: left; margin: var(--vl-space-xs) 0 0; padding-left: 1.2em; color: var(--vl-text); font-size: var(--vl-font-small); line-height: var(--vl-lh-small); }
/* Barra de 6 iconos en móvil (bloque HTML propio, cms_block; sustituye a los 4 info boxes de Woodmart) */
.vl-barra-iconos { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); height: var(--vl-header-icons-h); background: var(--vl-bg); border-top: 1px solid var(--vl-border); border-bottom: 1px solid var(--vl-border); }
@media (min-width: 1025px) { .vl-barra-iconos { display: none; } }
.vl-barra-iconos a { display: grid; grid-template-rows: 24px auto; justify-items: center; align-content: center; gap: 4px; min-height: var(--vl-touch); color: var(--vl-text-muted); font-size: 11px; font-weight: 600; letter-spacing: .02em; text-decoration: none; line-height: 1; padding: 6px 2px; }
.vl-barra-iconos a[aria-current="page"], .vl-barra-iconos a:hover { color: var(--vl-secondary-dark); }
.vl-barra-iconos a[aria-current="page"] svg { color: var(--vl-secondary); }
.vl-barra-iconos svg { width: 24px; height: 24px; color: var(--vl-text-muted); }
.vl-barra-iconos a[aria-current="page"] { box-shadow: inset 0 -3px 0 var(--vl-secondary); }
@media (max-width: 359px) { .vl-barra-iconos a { font-size: 10px; } }

/* ============================================================
   12 · LETRA DE LOS TÍTULOS (§10.5): dos candidatas frente a Inter. Se elige UNA y va a tokens.css (--font-titulos).
   ============================================================ */
.vl-letra--manrope { --font-titulos: "Manrope", "Manrope Relleno", "Inter", system-ui, sans-serif; }
.vl-letra--schibsted { --font-titulos: "Schibsted Grotesk", "Inter", system-ui, sans-serif; }
.vl-letra--manrope h1, .vl-letra--manrope h2, .vl-letra--manrope .vl-hero__title { letter-spacing: -.02em; }
.vl-letra--schibsted h1, .vl-letra--schibsted h2, .vl-letra--schibsted .vl-hero__title { letter-spacing: -.01em; }

/* ============================================================
   13 · AJUSTES DE MONTAJE (Claude Code, 24/09/2026) — medidos contra el plugin, no contra la maqueta
   ============================================================ */
/* Directorist: la «vista mapa» pinta SOLO el mapa (templates/archive/map-view.php → render_map()), sin la lista al lado.
   Si el mapa va solo, ocupa todo el ancho; la rejilla 60/40 del bloque 4b queda para cuando haya lista + mapa. */
body.directorist-content-active .directorist-archive-items.directorist-archive-map-view > .directorist-map:only-child,
body.directorist-content-active .directorist-archive-items.directorist-archive-map-view > .directorist-map:first-child:nth-last-child(2) { grid-column: 1 / -1; position: relative; top: auto; height: var(--vl-mapa-alto-vista, 70vh); min-height: 420px; }
/* La ventana emergente del mapa: Directorist la llama .map-listing-card-single; el tema la sustituye por .vl-popup (directorist/archive/fields/openstreet-map.php) */
.leaflet-popup-content .map-listing-card-single { padding: var(--vl-space-md) var(--vl-space-lg) var(--vl-space-lg); }
/* Barra de 6 iconos (móvil): la pinta el tema bajo la cabecera (gancho woodmart_after_header); los 4 info boxes de Woodmart se esconden solo en móvil */
@media (max-width: 1024px) { body.vl-con-barra-iconos .whb-header-bottom .wd-info-box, body.vl-con-barra-iconos .whb-header-bottom .info-box-wrapper { display: none; } }
/* 17:50 · medido en la web viva tras publicar: */
/* a) Woodmart pone display:block a los <a> de la barra: el icono y el texto salían en línea. Selector más fuerte, mismo diseño. */
html body .vl-barra-iconos a { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: 24px auto; }
html body .vl-barra-iconos a svg { display: block; width: 24px; height: 24px; }
/* b) La fila «header-bottom» de Woodmart (los 4 info boxes) seguía ocupando 56 px en blanco encima de la barra: en móvil la barra la sustituye entera. */
@media (max-width: 1024px) { body.vl-con-barra-iconos .whb-header-bottom { display: none; } }
/* c) Contraseña perdida: User Registration pinta su propio título («¿Olvidastes tu contraseña?») dentro de la tarjeta; el nuestro ya está arriba. */
.vl-aux__card .ur-lost-password-content-container { display: none; }
/* d) Mi cuenta con sesión (medido a 1440): Woodmart envuelve menú y contenido en .wd-my-account-wrapper.wd-grid-g (rejilla de 12 columnas
      de 0 px) y mete el menú en .wd-my-account-sidebar. La rejilla «260 px + resto» del bloque 1 va en ESE envoltorio, no en .woocommerce. */
html body .vl-cuenta .woocommerce { display: block; }
html body .vl-cuenta .wd-my-account-wrapper.wd-grid-g { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--vl-space-lg); align-items: start; }
html body .vl-cuenta .wd-my-account-wrapper .wd-grid-col, html body .vl-cuenta .wd-my-account-sidebar, html body .vl-cuenta .woocommerce-MyAccount-content { grid-column: auto; width: auto; max-width: none; min-width: 0; }
html body .vl-cuenta .woocommerce-MyAccount-title { font-family: var(--font-titulos); font-size: var(--vl-font-h4); margin: 0 0 var(--vl-space-sm); }
@media (min-width: 1024px) {
  html body .vl-cuenta .wd-my-account-wrapper.wd-grid-g { grid-template-columns: 260px minmax(0, 1fr); gap: var(--vl-space-xl); }
  html body .vl-cuenta .wd-my-account-sidebar { position: sticky; top: calc(var(--vl-header-desktop-h) + var(--vl-space-md)); }
  html body .vl-cuenta .woocommerce-MyAccount-navigation { position: static; }
}
/* e) Escritorio de Directorist (medido a 1440): el plugin envuelve todo en .directorist-container-fluid y coloca menú + pestañas
      dentro de .directorist-user-dashboard__contents (flex). La rejilla «280 px + resto» del bloque 2 va ahí, no en el nivel de arriba. */
html body .vl-escritorio .directorist-user-dashboard { display: block; }
html body .vl-escritorio .directorist-user-dashboard > .directorist-container-fluid { padding: 0; max-width: none; width: 100%; }
html body .vl-escritorio .directorist-user-dashboard__contents { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--vl-space-lg); align-items: start; }
html body .vl-escritorio .directorist-user-dashboard__nav, html body .vl-escritorio .directorist-user-dashboard__tab-content { width: auto; max-width: none; min-width: 0; flex: none; }
@media (min-width: 1024px) { html body .vl-escritorio .directorist-user-dashboard__contents { grid-template-columns: 280px minmax(0, 1fr); gap: var(--vl-space-xl); } }
/* f) 18:30 · medido a 375: la cabecera móvil real de Sergio son DOS filas (top bar de 40 px con el LOGO + fila de 60 px con MENÚ),
      pero .whb-main-header y header.whb-header llevan 60 px fijos, así que la fila del menú desborda y tapa la barra de iconos.
      (Un intento anterior escondía la top bar: NO, ahí vive el logo.) La cabecera crece a su altura real y el desplazamiento de lo pegajoso también. */
@media (max-width: 1024px) {
  body.vl-con-barra-iconos .whb-main-header, body.vl-con-barra-iconos header.whb-header { height: auto; min-height: 0; }
  body.vl-con-barra-iconos { --vl-header-h: 100px; }
}
/* g) contraseña perdida: el plugin pone display:flex a su bloque con más peso que la regla c). */
html body .vl-aux__card .ur-lost-password-content-container { display: none; }
/* h) 18:40 · listado por tipo, medido a 1040 (captura de Sergio): */
/*    · .listing-with-sidebar__contents era una rejilla «280 px + resto» pensada para una barra lateral en línea, pero en Directorist 8.9 la barra
        de filtros es un panel deslizante (botón «Filtrar») fuera del flujo: el listado caía en la columna de 280 px y la tarjeta salía de 128 px. */
/*      (19:05, en el Chrome de Sergio a 1498: la barra de filtros SÍ va en línea en escritorio —.listing-with-sidebar__sidebar, 300 px— y el
        listado va dentro de .listing-with-sidebar__listing; con «block» se apilaban. Fila flexible: filtros a la izquierda, listado al lado.) */
html body .vl-listado .listing-with-sidebar__contents { display: flex; flex-wrap: wrap; gap: var(--vl-space-xl); align-items: flex-start; }
html body .vl-listado .listing-with-sidebar__sidebar { flex: 0 0 300px; max-width: 300px; }
html body .vl-listado .listing-with-sidebar__listing { flex: 1 1 0; min-width: 0; }
@media (max-width: 1023px) { html body .vl-listado .listing-with-sidebar__sidebar { flex-basis: 100%; max-width: none; } }
html body .vl-listado .directorist-archive-items { width: 100%; }
/*    · la casilla del buscador no tenía borde ni fondo: se veía solo la etiqueta «Buscador». */
/*      (18:50, captura de Sergio: con fondo blanco en el <input>, la etiqueta flotante «Buscador» del plugin quedaba tapada). El borde y el fondo
        van en el contenedor .directorist-search-field; el <input> queda transparente y la etiqueta se ve. */
html body .vl-listado .directorist-search-form .directorist-search-field { border: 1px solid var(--vl-border-strong); background: var(--vl-bg); border-radius: var(--vl-radius-md); min-height: 48px; }
html body .vl-listado .directorist-search-form input.directorist-form-element, html body .vl-listado .directorist-search-form .directorist-form-element { border: 0; background: transparent; padding: 0 var(--vl-space-md); min-height: 48px; }
/*    · el conmutador Rejilla · Lista · Mapa tenía 44 px por botón y las palabras «Lista» y «Mapa» se montaban sobre los iconos. */
html body .directorist-viewas .directorist-viewas__item { width: auto; min-width: 44px; padding: 8px 12px; display: inline-flex; align-items: center; gap: 6px; }
/* i) 19:30 · «se ve fatal todo» (Sergio, en su Chrome a 1500): el listado por tipo se remata como pantalla, no como parches.
      Probado en vivo inyectando el CSS antes de subirlo. */
/*    · buscador de arriba: una sola píldora con lupa; fuera el doble marco y la etiqueta «Buscador»; el placeholder se ve */
html body .vl-listado .listing-with-sidebar__searchform { background: transparent; border: 0; box-shadow: none; padding: 0; }
html body .vl-listado .listing-with-sidebar__searchform .directorist-search-form__box { border: 0; box-shadow: none; padding: 0; background: transparent; }
html body .vl-listado .listing-with-sidebar__searchform .directorist-search-field { max-width: none; background: var(--vl-bg); border: 1px solid var(--vl-border-strong); border-radius: var(--vl-radius-pill); min-height: 56px; padding-left: 44px; position: relative; }
html body .vl-listado .listing-with-sidebar__searchform .directorist-search-field::before { content: ""; position: absolute; left: 18px; top: 50%; width: 18px; height: 18px; transform: translateY(-50%); border: 2px solid var(--vl-secondary); border-radius: 50%; box-sizing: border-box; }
html body .vl-listado .listing-with-sidebar__searchform .directorist-search-field::after { content: ""; position: absolute; left: 31px; top: 50%; width: 8px; height: 2px; background: var(--vl-secondary); transform: translateY(5px) rotate(45deg); }
html body .vl-listado .listing-with-sidebar__searchform .directorist-search-field__label { display: none; }
html body .vl-listado .listing-with-sidebar__searchform input.directorist-form-element { min-height: 54px; font-size: var(--vl-font-body); }
html body .vl-listado .listing-with-sidebar__searchform input.directorist-form-element::placeholder { opacity: 1; color: var(--vl-text-muted); }
/*    · filtros: una sola tarjeta (el plugin ponía marco fuera y marco dentro) */
html body .vl-listado .listing-with-sidebar__sidebar { border: 0; padding: 0; background: transparent; box-shadow: none; }
html body .vl-listado .listing-with-sidebar__sidebar .directorist-advanced-filter { border: 1px solid var(--vl-border-brand); border-radius: var(--vl-radius-lg); background: var(--vl-bg-card); box-shadow: var(--vl-shadow-xs); }
/*    · conmutador Rejilla · Lista · Mapa: control segmentado, el activo en azul con la palabra (el círculo vacío era el icono activo en blanco sobre blanco) */
html body .vl-listado .directorist-viewas { display: inline-flex; gap: 4px; padding: 4px; background: var(--vl-bg-gray); border-radius: var(--vl-radius-pill); align-items: center; }
html body .vl-listado .directorist-viewas .directorist-viewas__item { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 14px; border-radius: var(--vl-radius-pill); border: 0; background: transparent; color: var(--vl-text-muted); font-weight: 600; font-size: var(--vl-font-small); width: auto; }
html body .vl-listado .directorist-viewas .directorist-viewas__item::after { position: static; transform: none; font-size: var(--vl-font-small); }
html body .vl-listado .directorist-viewas .directorist-viewas__item.active { background: var(--vl-secondary); color: var(--vl-on-color); }
html body .vl-listado .directorist-viewas .directorist-viewas__item .directorist-icon-mask::before { background-color: currentColor; }
html body .vl-listado .directorist-viewas .directorist-viewas__item--cuadrícula::after { content: "Rejilla"; }
html body .vl-listado .directorist-viewas .directorist-archive-sidebar-toggle { min-height: 40px; border-radius: var(--vl-radius-pill); }
/*    · rejilla de tarjetas: tantas como quepan de 300 px como mínimo (con 1 centro, una tarjeta ancha; no una tira de 128 px) */
html body .vl-listado .directorist-archive-grid-view .directorist-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: var(--vl-space-lg); }
html body .vl-listado .directorist-archive-grid-view .directorist-row > div { width: auto; max-width: none; flex: none; }
html body .vl-listado .directorist-listing-single { width: 100%; }
/*    · filtros (19:45): el marco de dentro era .directorist-search-form__box (borde + sombra propios del plugin); fuera, y el relleno lo lleva la tarjeta */
html body .vl-listado .listing-with-sidebar__sidebar .directorist-advanced-search { padding: var(--vl-space-sm) var(--vl-space-lg) var(--vl-space-lg); }
html body .vl-listado .listing-with-sidebar__sidebar .directorist-search-form__box { border: 0; box-shadow: none; background: transparent; width: 100%; }
html body .vl-listado .listing-with-sidebar__sidebar .directorist-advanced-filter__top { padding: var(--vl-space-md) 0; }
/* j) 20:25 · mi cuenta con sesión de paciente, medido a 500 px en el Chrome de Sergio: el saludo con el correo como nombre
      («Hola, paciente@visionlovers.es») no cabía y pisaba a «Salir». El saludo puede partir el correo y en móvil es más pequeño. */
.vl-cuenta__saludo { overflow-wrap: anywhere; }
@media (max-width: 599px) { .vl-cuenta__saludo { font-size: var(--vl-font-h3); line-height: var(--vl-lh-h3); } .vl-cuenta__cabecera .vl-cuenta__salir { flex-basis: 100%; margin-left: 0; justify-self: start; width: max-content; } }
/* k) 20:45 · cabecera CON sesión, medida en el Chrome de Sergio a 1400 (captura suya): al entrar, el menú principal gana dos entradas
      («Mi perfil VisionLovers», «Reserva tu cita») y con los botones de visitante («Soy profesional», «Entrar») la fila no cabía:
      se salía 430 px por la derecha. Con sesión, los botones de visitante sobran (el menú ya lleva «Mi perfil»); y entre 1025 y 1600 px
      el menú va un punto más apretado. Probado inyectando el CSS antes de subirlo: 1360 = borde del contenedor, nada cortado. */
html body.logged-in .whb-header .vl-header-botones a.vl-header-botones__enlace[href*="/login"] { display: none; }
@media (min-width: 1025px) and (max-width: 1600px) {
  html body .wd-header-main-nav > ul { gap: 5px 4px; }
  html body .wd-header-main-nav > ul > li > a { padding: 5px 4px; font-size: 13px; letter-spacing: 0; }
  html body.logged-in .whb-header .vl-header-botones a.vl-header-botones__enlace[href*="alta-profesionales"], html body.logged-in .whb-header .vl-header-botones a[href*="triaje"] { display: none; }
  html body.logged-in .whb-general-header .wd-header-html { padding: 0; }
}
/*    · la caja «Antes de seguir» (embudo BOFU del módulo SEO de Sergio, .slv-embudo) se colaba debajo del panel privado del paciente.
      El módulo no se toca: solo no se pinta dentro de mi cuenta y del escritorio con sesión. */
body.logged-in.page-id-11 .slv-embudo, body.logged-in.page-id-11338 .slv-embudo { display: none; }
/* l) 20:15 · escritorio y alta de ficha, medidos en el Chrome de Sergio con la sesión de óptica (1400): */
/*    · el botón «≡» de Directorist (abre el menú deslizante en móvil) salía suelto también en escritorio */
@media (min-width: 1024px) { html body .vl-escritorio .directorist-user-dashboard__toggle { display: none; } }
/*    · «Crear una ficha» y «Salir» iban pegados y los dos en azul: Salir pasa a botón fantasma y se separan */
html body .vl-escritorio .directorist-tab__nav__action { display: flex; flex-direction: column; gap: var(--vl-space-sm); margin-top: var(--vl-space-md); }
html body .vl-escritorio .directorist-tab__nav__action .directorist-btn { width: 100%; margin: 0; border-radius: var(--vl-radius-pill); }
html body .vl-escritorio .directorist-tab__nav__action .directorist-btn--logout { background: transparent; color: var(--vl-secondary); border: 1.5px solid var(--vl-secondary); }
html body .vl-escritorio .directorist-tab__nav__action .directorist-btn--logout:hover { background: var(--vl-secondary); color: var(--vl-on-color); }
/*    · el formulario de alta de la ficha (Directorist) dentro de una tarjeta, con el mismo marco que las tarjetas auxiliares */
.vl-alta-ficha { padding: 0 0 var(--vl-space-2xl); background: var(--vl-bg-soft); }
.vl-alta-ficha__card { background: var(--vl-bg-card); border: 1px solid var(--vl-border); border-radius: var(--vl-radius-lg); box-shadow: var(--vl-shadow-sm); padding: var(--vl-space-lg); }
.vl-alta-ficha .vl-aux__pie { margin-top: var(--vl-space-md); text-align: center; }
html body .vl-alta-ficha .directorist-add-listing .directorist-content-module { border-color: var(--vl-border); box-shadow: none; }
@media (max-width: 767px) { .vl-alta-ficha__card { padding: var(--vl-space-md); } }
html body .vl-escritorio .directorist-tab__nav__action .directorist-btn { text-transform: none; } /* Directorist capitalizaba cada palabra: «Enviar La Ficha» */
/*    · 20:45 · Categoría y Ubicación (select2 múltiple) salían como un hueco en blanco de 206 px: alguien pone min-height:190px a todo <textarea>
      y select2 usa un <textarea> como caja de búsqueda. Aquí la caja de búsqueda mide lo suyo y el desplegable lleva marco como el resto. */
html body .vl-alta-ficha textarea.select2-search__field { min-height: 0; height: auto; padding: 0; margin: 4px 0; border: 0; box-shadow: none; }
html body .vl-alta-ficha .select2-container--default .select2-selection--multiple,
html body .vl-alta-ficha .select2-container--default .select2-selection--single { min-height: var(--vl-touch); border: 2px solid var(--vl-border-field); border-radius: var(--vl-radius-md); background: var(--vl-bg); padding: 6px 12px; }
html body .vl-alta-ficha .select2-container--default .select2-selection--multiple .select2-selection__choice { background: var(--vl-bg-soft); border: 1px solid var(--vl-border); border-radius: var(--vl-radius-pill); padding: 2px 10px; margin: 4px 6px 0 0; }
/* m) 21:05 · página del plan (producto de WooCommerce): SKU, «Categoría: Accessories» y «Share» son restos de tienda; el plan no es un producto de catálogo. */
html body.single-product .product_meta, html body.single-product .product-share, html body.single-product .wd-single-share { display: none; }
/* n) 21:25 · página de pago, medida con la sesión de óptica y el plan en el carrito: la rejilla de Design (760 + 400) SÍ manda,
      pero Woodmart pone max-width:50% y ancho fijo a .customer-details (380 px) y .checkout-order-review (200 px): «Tu pedido» salía aplastado. */
html body.woocommerce-checkout form.checkout .customer-details, html body.woocommerce-checkout form.checkout .checkout-order-review { max-width: none; width: auto; min-width: 0; flex: none; }

/* ============================================================
   14 · IMPRESIÓN (24/09/2026, 21:50) — la ficha del centro, el recibo y las guías se imprimen limpias: sin cabecera, menú,
      barra de iconos, pie, cookies ni botones; texto negro sobre blanco en pt; los enlaces enseñan su dirección; nada se parte por la mitad.
   ============================================================ */
@media print {
  header.whb-header, .whb-header, .vl-barra-iconos, footer, .vl-footer, .wd-footer, .vl-cta-final, .vl-cta-banda, .scrollToTop, .wd-sticky-btn,
  .vl-cookies, #vl-cookies, .vl-cookies__reabrir, .wd-search-form, .directorist-viewas, .listing-with-sidebar__sidebar, .vl-hero__ctas, .vl-btn,
  .directorist-btn, .wd-checkout-steps, .uwy, .cky-btn-revisit-wrapper, .slv-embudo, .vl-donde__acciones { display: none; }
  body { background: #fff; color: #000; font-size: 12pt; line-height: 1.4; }
  * { box-shadow: none; text-shadow: none; background-image: none; }
  html body .vl-card, html body .vl-center-card, html body article, html body section, html body .vl-btn--secondary { box-shadow: none; } /* F10 26/09: sin !important, con un selector más (medido: .vl-card conservaba su halo al imprimir) */
  .vl-container, .container, .wd-page-content, main { max-width: none; width: 100%; padding: 0; margin: 0; }
  h1 { font-size: 20pt; } h2 { font-size: 16pt; } h3 { font-size: 13pt; } small, .vl-small { font-size: 10pt; }
  a { color: #000; text-decoration: underline; }
  .vl-donde a[href^="http"]::after, .vl-ficha a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; }
  table { border-collapse: collapse; } th, td { border: .5pt solid #666; padding: 4pt 6pt; } thead { display: table-header-group; }
  table, figure, img, .vl-panel__card, .vl-tarjeta, .directorist-single-contents-area { break-inside: avoid; page-break-inside: avoid; }
  .vl-donde iframe { display: none; } /* el mapa incrustado no se imprime: queda la dirección en texto */
}

/* 26/09 · 404: las 4 salidas se montaban 8 px unas sobre otras (el bloque 11 les daba inline-block con margin -8px). Medido por el ayudante de
   tarjetas auxiliares a 375 y 1440. Ahora cada salida es una fila de 44 px, sin margen negativo. Cero !important: gana por especificidad. */
html body .vl-404 .vl-404__salidas a:not(.vl-btn) { display: flex; align-items: center; gap: var(--vl-space-sm); min-height: var(--vl-touch); margin: 0; padding: var(--vl-space-sm) var(--vl-space-md); }
