/* ============================================================================
   Centra WORD — /word/
   ============================================================================

   Fichero de estilos sólo para esta sección, enlazado desde las dos plantillas
   (index y ficha). No toca ninguna otra página del sitio.

   OJO: en este proyecto `html`/`body` tienen font-size: 20px, así que 1rem son
   20px. Aquí se usan píxeles a propósito: es más predecible y no depende del
   tamaño raíz.

   Colores: los de la marca (--themecolor: #1C94F5), definidos en custom.css.
   ========================================================================== */

.wm-app,
.wm-ficha-pagina {
    --wm-brand: #1C94F5;
    --wm-brand-dark: #0A7FD6;
    --wm-brand-soft: #E8F3FE;
    --wm-ink: #0B1220;
    --wm-text: #243043;
    --wm-mut: #64748B;
    --wm-line: #E6EBF1;
    --wm-line-soft: #F1F4F8;
    --wm-bg: #F4F7FB;
    --wm-green: #12B981;
    --wm-violet: #8B6CFB;
    --wm-amber: #F59E0B;
}

/* ---------------------------------------------------------------------------
   Cabecera de la sección
   ------------------------------------------------------------------------ */

.wm-hero {
    padding: 38px 0 22px;
    background: linear-gradient(180deg, #EEF5FD 0%, rgba(244, 247, 251, 0) 100%);
}

.wm-hero h1 {
    margin: 0 0 10px;
    font-size: 40px;
    line-height: 1.15;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--wm-ink);
}

.wm-hero-lead {
    margin: 0 0 16px;
    max-width: 720px;
    font-size: 19px;
    line-height: 1.5;
    color: var(--wm-mut);
}

.wm-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0;
}

.wm-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 14px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--wm-line);
    font-size: 14px;
    font-weight: 600;
    color: #46566B;
}

.wm-chip i { color: var(--wm-brand); font-size: 13px; }

.wm-hero--ficha { padding-top: 26px; }

.wm-migas {
    margin: 0 0 8px;
    font-size: 14px;
    color: var(--wm-mut);
}

.wm-migas a { color: var(--wm-brand-dark); }
.wm-migas span[aria-hidden] { margin: 0 6px; color: #B6C2D1; }

/* ---------------------------------------------------------------------------
   Filtros
   ------------------------------------------------------------------------ */

.wm-filtry {
    display: grid;
    grid-template-columns: minmax(220px, 2fr) repeat(3, minmax(140px, 1fr)) auto;
    gap: 12px;
    align-items: end;
    padding: 16px 18px;
    margin-bottom: 18px;
    background: #fff;
    border: 1px solid var(--wm-line);
    border-radius: 18px;
}

.wm-filtry-campo { display: flex; flex-direction: column; gap: 5px; }

.wm-filtry-campo label {
    font-size: 13px;
    font-weight: 700;
    color: var(--wm-mut);
    margin: 0;
}

.wm-filtry-campo input,
.wm-filtry-campo select {
    width: 100%;
    padding: 11px 13px;
    font-size: 15px;
    color: var(--wm-text);
    background: #fff;
    border: 1px solid #D8E1EB;
    border-radius: 12px;
    outline: none;
    appearance: none;
}

.wm-filtry-campo select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%2364748B' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 11px;
    padding-right: 36px;
}

.wm-filtry-campo input:focus,
.wm-filtry-campo select:focus {
    border-color: var(--wm-brand);
    box-shadow: 0 0 0 3px rgba(28, 148, 245, 0.18);
}

.wm-filtry-acciones { display: flex; gap: 8px; }

.wm-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 11px 18px;
    border: 1px solid transparent;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
}

.wm-btn--primary { background: var(--wm-brand); color: #fff; }
.wm-btn--primary:hover, .wm-btn--primary:focus { background: var(--wm-brand-dark); color: #fff; }
.wm-btn--ghost { background: #fff; border-color: #D8E1EB; color: #33465C; }
.wm-btn--ghost:hover, .wm-btn--ghost:focus { border-color: #C2D0DE; color: var(--wm-brand-dark); }

/* ---------------------------------------------------------------------------
   Reparto: lista + mapa
   ------------------------------------------------------------------------ */

.wm-layout {
    display: grid;
    grid-template-columns: minmax(0, 400px) minmax(0, 1fr);
    gap: 20px;
    align-items: start;
}

.wm-lista { min-width: 0; }

.wm-licznik {
    margin: 0 0 12px;
    font-size: 14px;
    font-weight: 700;
    color: var(--wm-mut);
}

.wm-aviso-stats {
    margin: 0 0 14px;
    padding: 13px 16px;
    font-size: 14px;
    line-height: 1.55;
    color: #4A5E76;
    background: #F3F8FE;
    border-left: 4px solid var(--wm-brand);
    border-radius: 0 12px 12px 0;
}

.wm-licznik-nota { font-weight: 400; color: var(--wm-mut); }
.wm-aviso-stats strong { color: var(--wm-ink); }
.wm-aviso-stats a { color: var(--wm-brand-dark); font-weight: 600; }

.wm-lista-items {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 10px;
    max-height: 720px;
    overflow-y: auto;
    padding-right: 4px;
}

.wm-karta {
    display: block;
    padding: 15px 16px;
    background: #fff;
    border: 1px solid var(--wm-line);
    border-radius: 16px;
    text-decoration: none;
    color: var(--wm-text);
    transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.wm-karta:hover,
.wm-karta:focus {
    border-color: #B9DDFB;
    box-shadow: 0 10px 24px -16px rgba(11, 18, 32, .45);
    color: var(--wm-text);
}

.wm-item.is-on .wm-karta {
    border-color: var(--wm-brand);
    box-shadow: 0 0 0 3px rgba(28, 148, 245, .16);
}

.wm-karta-cabeza { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }

.wm-karta-nombre { font-size: 17px; font-weight: 700; color: var(--wm-ink); }

.wm-tag {
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    background: var(--wm-brand-soft);
    color: #0A5FA8;
}

.wm-tag--oddzial { background: #F0ECFE; color: #5A45C9; }
.wm-tag--me { background: #FFF4DB; color: #8A6100; }

.wm-karta-ciudad {
    display: block;
    margin-top: 4px;
    font-size: 15px;
    font-weight: 600;
    color: var(--wm-brand-dark);
}

.wm-karta-dir { display: block; margin-top: 2px; font-size: 14px; color: var(--wm-mut); }

.wm-karta-stats { display: flex; gap: 18px; margin-top: 11px; flex-wrap: wrap; align-items: baseline; }

.wm-mini { display: flex; flex-direction: column; }
.wm-mini-label { font-size: 12px; color: var(--wm-mut); }
.wm-mini-valor { font-size: 19px; font-weight: 700; color: var(--wm-ink); font-variant-numeric: tabular-nums; }
.wm-mini-periodo { font-size: 12px; color: var(--wm-mut); }

.wm-ficha-ocr { margin: 0 0 10px; font-size: 12.5px; line-height: 1.5; color: #6B4B00; }
.wm-ocr {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 7px;
    border-radius: 999px;
    background: #FFF4DB;
    color: #8A6100;
    font-size: 11px;
    font-weight: 700;
}
.wm-dim { color: var(--wm-mut); }
.wm-nota--fuente { padding-top: 10px; border-top: 1px solid var(--wm-line-soft); }
.wm-nota--herencia { margin: 0 0 14px; padding: 12px 15px; background: #F5F9FE; border-left: 4px solid var(--wm-brand); border-radius: 0 12px 12px 0; color: #33465C; }
.wm-nota--herencia a { color: var(--wm-brand-dark); font-weight: 700; }
.wm-heredado { display: inline-block; padding: 1px 7px; border-radius: 999px; background: #EEF2F7; color: var(--wm-mut); font-size: 11px; font-weight: 700; white-space: nowrap; }

.wm-karta-sinstats { display: block; margin-top: 10px; font-size: 13px; color: #93A0B0; }

.wm-karta-link {
    display: inline-block;
    margin-top: 11px;
    font-size: 14px;
    font-weight: 700;
    color: var(--wm-brand-dark);
}

.wm-pusto {
    padding: 22px;
    text-align: center;
    font-size: 15px;
    color: var(--wm-mut);
    background: #fff;
    border: 1px dashed var(--wm-line);
    border-radius: 16px;
}

.wm-enlace {
    padding: 0;
    border: 0;
    background: none;
    color: var(--wm-brand-dark);
    font-weight: 700;
    text-decoration: underline;
    cursor: pointer;
}

/* ---------------------------------------------------------------------------
   Mapa
   ------------------------------------------------------------------------ */

.wm-mapa { position: sticky; top: 90px; }

.wm-mapa-lienzo {
    position: relative;
    border: 1px solid var(--wm-line);
    border-radius: 18px;
    background: linear-gradient(180deg, #F8FBFF 0%, #E9F2FC 100%);
    overflow: hidden;
}

.wm-mapa-lienzo svg {
    display: block;
    width: 100%;
    height: auto;
    max-height: 74vh;
}

.wm-polonia {
    fill: #fff;
    stroke: #BFD6EE;
    stroke-width: 1.1;
    stroke-linejoin: round;
}

/* ---------------------------------------------------------------------------
   Ciudades de referencia
   ---------------------------------------------------------------------------
   No reciben clics (si no, taparían los marcadores) y nunca se anuncian a los
   lectores de pantalla: son una ayuda visual, la misma información está en la
   lista. Cuanto más se acerca el mapa, más nombres aparecen. */

.wm-ciudades { pointer-events: none; }

.wm-ciudad circle { r: calc(2.4px * var(--wm-inv, 1)); fill: #A8BCD2; }

.wm-ciudad text {
    /* --wm-inv lo pone word-map.js al acercar el mapa (1 / zoom): así el nombre
       ocupa siempre lo mismo en pantalla y no acaba tapando media Polonia. */
    font-size: calc(9px * var(--wm-inv, 1));
    font-weight: 600;
    fill: #5B7089;
    /* El halo blanco hace que se lean aunque caigan sobre el relleno, sobre el
       contorno o sobre un marcador azul. */
    paint-order: stroke;
    stroke: #ffffff;
    stroke-width: 2.8px;
    stroke-linejoin: round;
}

/* Los tramos van por importancia, no por tamaño: las 18 primeras son las
   capitales de voivodía, así que a poco zoom ya se ve el esqueleto del país.
   A partir de ahí entran las demás ciudades por población. */
.wm-ciudad { display: none; }
.wm-ciudades[data-nivel="0"] .wm-ciudad:nth-child(-n+9) { display: block; }
.wm-ciudades[data-nivel="1"] .wm-ciudad:nth-child(-n+18) { display: block; }
.wm-ciudades[data-nivel="2"] .wm-ciudad:nth-child(-n+34) { display: block; }
.wm-ciudades[data-nivel="3"] .wm-ciudad { display: block; }

/* Las capitales de voivodía se leen un poco más fuerte: son las que aparecen
   cuando el mapa está alejado. */
.wm-ciudad[data-capital="1"] text { fill: #33475C; }
.wm-ciudad[data-capital="1"] circle { fill: #8AA0BA; }

/* Etiqueta que chocaría con otra ya puesta: la esconde word-map.js. */
.wm-ciudades .wm-ciudad--tapada { display: none !important; }

/* Los símbolos también se encogen al acercar (--wm-inv), para que el mapa
   gane detalle sin que los puntos se vuelvan bolas. Si el navegador no admite
   `r` en CSS, se queda el radio del atributo y no pasa nada. */
.wm-punto circle {
    r: calc(5.5px * var(--wm-inv, 1));
    fill: var(--wm-brand);
    stroke: #fff;
    stroke-width: calc(1.6px * var(--wm-inv, 1));
    cursor: pointer;
    transition: fill .12s ease;
}

.wm-punto--oddzial circle,
.wm-punto--me circle {
    r: calc(4px * var(--wm-inv, 1));
    fill: var(--wm-violet);
}

.wm-punto--me circle { fill: var(--wm-amber); }

.wm-punto:hover circle,
.wm-punto:focus circle { fill: var(--wm-brand-dark); }
.wm-punto:focus { outline: none; }

.wm-punto.is-on circle {
    fill: var(--wm-brand-dark);
    stroke-width: calc(3px * var(--wm-inv, 1));
}

/* El aro del centro seleccionado, para que se vea de un vistazo. */
.wm-halo {
    fill: none;
    stroke: var(--wm-brand);
    stroke-width: 2;
    opacity: .55;
    pointer-events: none;
}

.wm-mapa-controles {
    position: absolute;
    top: 12px;
    right: 12px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.wm-mapa-btn {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    color: #33465C;
    background: #fff;
    border: 1px solid var(--wm-line);
    border-radius: 10px;
    box-shadow: 0 2px 6px -3px rgba(11, 18, 32, .3);
    cursor: pointer;
}

.wm-mapa-btn:hover { color: var(--wm-brand-dark); border-color: #B9DDFB; }

.wm-mapa-aviso {
    margin: 0;
    padding: 30px 20px;
    text-align: center;
    font-size: 15px;
    color: var(--wm-mut);
}

.wm-mapa-pie { margin: 10px 0 0; font-size: 13px; color: var(--wm-mut); }
.wm-mapa-pie a { color: var(--wm-brand-dark); font-weight: 600; }

/* ---------------------------------------------------------------------------
   Tarjeta del centro seleccionado (encima del mapa / hoja inferior en móvil)
   ------------------------------------------------------------------------ */

.wm-ficha {
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 14px;
    z-index: 5;
    padding: 16px 18px;
    background: #fff;
    border: 1px solid var(--wm-line);
    border-radius: 16px;
    box-shadow: 0 24px 48px -28px rgba(11, 18, 32, .6);
}

.wm-mapa { position: sticky; top: 90px; }

.wm-ficha-cerrar {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    font-size: 18px;
    line-height: 1;
    color: var(--wm-mut);
    background: #F6F9FC;
    border: 0;
    border-radius: 8px;
    cursor: pointer;
}

.wm-ficha-nombre { margin: 0 26px 2px 0; font-size: 18px; font-weight: 700; color: var(--wm-ink); }
.wm-ficha-ciudad { margin: 0 0 10px; font-size: 14px; color: var(--wm-brand-dark); font-weight: 600; }
.wm-ficha-datos { margin: 0 0 12px; font-size: 14px; line-height: 1.5; color: var(--wm-text); }
.wm-ficha-datos strong { color: var(--wm-ink); }

.wm-ficha-stats { display: flex; gap: 16px; margin: 0 0 12px; padding: 10px 12px; background: #F5F9FE; border-radius: 12px; }
.wm-ficha-stats .wm-mini-valor { font-size: 21px; }
.wm-ficha-stats-periodo { font-size: 12px; color: var(--wm-mut); align-self: flex-end; }

.wm-ficha-acciones { display: flex; flex-wrap: wrap; gap: 8px; }
.wm-ficha-acciones .wm-btn { padding: 9px 14px; font-size: 14px; }

.wm-ficha-sinstats { margin: 0 0 10px; font-size: 14px; color: #8A6100; background: #FFF8EC; padding: 9px 12px; border-radius: 10px; }

/* ---------------------------------------------------------------------------
   Bloques de información y ficha completa
   ------------------------------------------------------------------------ */

.wm-info { margin: 34px 0 10px; }

.wm-info h2,
.wm-bloque h2 {
    margin: 0 0 14px;
    font-size: 24px;
    font-weight: 700;
    color: var(--wm-ink);
}

.wm-info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
    margin-bottom: 22px;
}

.wm-info-bloque {
    padding: 18px;
    background: #fff;
    border: 1px solid var(--wm-line);
    border-radius: 16px;
}

.wm-info-bloque h3 { margin: 0 0 6px; font-size: 17px; font-weight: 700; color: var(--wm-ink); }
.wm-info-bloque p { margin: 0; font-size: 15px; line-height: 1.55; color: var(--wm-mut); }
.wm-info-bloque a { color: var(--wm-brand-dark); }

.wm-fuente {
    padding: 20px 22px;
    background: #fff;
    border: 1px solid var(--wm-line);
    border-radius: 16px;
}

.wm-fuente h3 { margin: 0 0 10px; font-size: 18px; font-weight: 700; color: var(--wm-ink); }
.wm-fuente ul { margin: 0; padding-left: 20px; }
.wm-fuente li { margin-bottom: 8px; font-size: 15px; line-height: 1.55; color: var(--wm-text); }
.wm-fuente a { color: var(--wm-brand-dark); }
.wm-fuente-nota { margin: 12px 0 0; font-size: 14px; line-height: 1.5; color: var(--wm-mut); }

.wm-ancla { height: 1px; }

/* ---------------------------------------------------------------------------
   Ficha de una sede (/word/{slug}/)
   ------------------------------------------------------------------------ */

.wm-ficha-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 380px);
    gap: 24px;
    align-items: start;
    padding-bottom: 20px;
}

.wm-bloque {
    padding: 22px 24px;
    margin-bottom: 18px;
    background: #fff;
    border: 1px solid var(--wm-line);
    border-radius: 18px;
}

.wm-bloque--stats { border-color: #CFE4FA; }

.wm-tabla { width: 100%; border-collapse: collapse; }
.wm-tabla th {
    padding: 9px 10px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--wm-mut);
    text-align: left;
    border-bottom: 1px solid var(--wm-line);
    white-space: nowrap;
}
.wm-tabla td { padding: 11px 10px; font-size: 15px; border-bottom: 1px solid var(--wm-line-soft); vertical-align: middle; }
.wm-tabla td:first-child { white-space: nowrap; }
.wm-tabla tr:last-child td { border-bottom: 0; }
.wm-num { text-align: right; font-variant-numeric: tabular-nums; }
.wm-fuerte { font-weight: 700; color: var(--wm-ink); }
.wm-fuente-celda { font-size: 14px; color: var(--wm-mut); }
.wm-fuente-celda a { color: var(--wm-brand-dark); }

.wm-datos { margin: 0; }
.wm-dato { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--wm-line-soft); }
.wm-dato:last-child { border-bottom: 0; }
.wm-dato dt { font-size: 14px; font-weight: 700; color: var(--wm-mut); }
.wm-dato dd { margin: 0; font-size: 16px; color: var(--wm-text); word-break: break-word; }
.wm-dato a { color: var(--wm-brand-dark); }

.wm-acciones { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }

.wm-lista-datos { margin: 0; padding-left: 20px; }
.wm-lista-datos li { margin-bottom: 8px; font-size: 15px; line-height: 1.55; color: var(--wm-text); }
.wm-lista-datos a { color: var(--wm-brand-dark); }

.wm-nota { margin: 12px 0 0; font-size: 14px; line-height: 1.55; color: var(--wm-mut); }
.wm-nota a { color: var(--wm-brand-dark); }

.wm-sin-datos {
    margin: 0;
    padding: 15px 17px;
    font-size: 15px;
    line-height: 1.6;
    color: #6B4B00;
    background: #FFF8EC;
    border-left: 4px solid var(--wm-amber);
    border-radius: 0 12px 12px 0;
}
.wm-sin-datos a { color: #8A6100; font-weight: 600; }

.wm-mini-mapa {
    padding: 14px;
    margin-bottom: 18px;
    background: linear-gradient(180deg, #F8FBFF 0%, #E9F2FC 100%);
    border: 1px solid var(--wm-line);
    border-radius: 18px;
}

.wm-mini-mapa svg { display: block; width: 100%; height: auto; }
.wm-punto-halo { fill: rgba(28, 148, 245, .18); }
.wm-punto-centro { fill: var(--wm-brand); stroke: #fff; stroke-width: 2; }
.wm-mini-mapa-pie { margin: 8px 0 0; font-size: 13px; color: var(--wm-mut); text-align: center; }
.wm-mini-mapa-pie a { color: var(--wm-brand-dark); }

.wm-relacionadas { list-style: none; margin: 0; padding: 0; }
.wm-relacionadas li + li { margin-top: 10px; }
.wm-relacionadas a { display: block; padding: 11px 13px; background: #F8FAFD; border-radius: 12px; text-decoration: none; }
.wm-relacionadas a:hover { background: var(--wm-brand-soft); }
.wm-relacionadas strong { display: block; font-size: 15px; color: var(--wm-ink); }
.wm-relacionadas span { display: block; margin-top: 2px; font-size: 13px; color: var(--wm-mut); }

.wm-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

/* ---------------------------------------------------------------------------
   Tablet y móvil
   ------------------------------------------------------------------------ */

@media (max-width: 1200px) {
    .wm-filtry { grid-template-columns: minmax(200px, 2fr) repeat(2, minmax(130px, 1fr)) auto; }
    .wm-filtry-campo--szukaj { grid-column: 1 / -1; }
}

@media (max-width: 991px) {
    .wm-hero { padding: 24px 0 16px; }
    .wm-hero h1 { font-size: 30px; }
    .wm-hero-lead { font-size: 17px; }

    /* En pantalla pequeña, el mapa arriba (para orientarse) y la lista debajo. */
    .wm-layout { grid-template-columns: minmax(0, 1fr); }
    .wm-mapa { position: static; order: -1; }
    .wm-mapa-lienzo svg { max-height: 46vh; }
    .wm-lista-items { max-height: none; overflow: visible; }

    .wm-ficha-layout { grid-template-columns: minmax(0, 1fr); }

    /* La tarjeta pasa a ser una hoja inferior, cómoda con el pulgar. */
    .wm-ficha {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        border-radius: 20px 20px 0 0;
        max-height: 74vh;
        overflow-y: auto;
        z-index: 1080;
    }
}

/* La tabla de zdawalność tiene seis columnas y un ancho mínimo de 559px: en un
   móvil no cabe y se quedaban fuera la cifra y el encabezado (se veía «57,8»
   cortado). En pantalla estrecha cada fila pasa a ser un bloque: el tipo de
   examen como título y cada dato con su rótulo delante. Los rótulos salen de
   `data-label`, así que el HTML sigue siendo una tabla de verdad. */
@media (max-width: 767.98px) {
    /* El encabezado se oculta a la vista pero sigue ahí para los lectores de
       pantalla (por eso no se usa display:none). */
    .wm-tabla thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }

    .wm-tabla,
    .wm-tabla tbody,
    .wm-tabla tr,
    .wm-tabla td { display: block; width: auto; }

    .wm-tabla tr {
        padding: 14px 16px;
        margin-bottom: 12px;
        background: #FBFDFF;
        border: 1px solid var(--wm-line);
        border-radius: 14px;
    }

    .wm-tabla tr:last-child { margin-bottom: 0; }

    .wm-tabla td {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
        gap: 14px;
        padding: 5px 0;
        border-bottom: 0;
        text-align: right;
    }

    .wm-tabla td::before {
        content: attr(data-label);
        flex: 0 0 auto;
        font-size: 12px;
        font-weight: 700;
        letter-spacing: .04em;
        text-transform: uppercase;
        color: var(--wm-mut);
        text-align: left;
    }

    /* El tipo de examen encabeza el bloque, y sin repetir el rótulo. */
    .wm-tabla td:first-child {
        display: block;
        margin-bottom: 8px;
        padding-bottom: 9px;
        border-bottom: 1px solid var(--wm-line-soft);
        font-size: 16px;
        font-weight: 700;
        color: var(--wm-ink);
        text-align: left;
        white-space: normal;
    }

    .wm-tabla td:first-child::before { content: none; }

    /* La cifra que se viene a mirar, un poco más grande. */
    .wm-tabla td[data-label="Zdawalność"] { font-size: 19px; }
}

@media (max-width: 700px) {
    .wm-filtry { grid-template-columns: minmax(0, 1fr); padding: 14px; }
    .wm-filtry-acciones { flex-direction: column; }
    .wm-filtry-acciones .wm-btn { width: 100%; }
    .wm-hero h1 { font-size: 26px; }
    .wm-dato { grid-template-columns: minmax(0, 1fr); gap: 2px; }
    .wm-bloque { padding: 18px 16px; }
    .wm-punto circle { r: 8; }
}

/* Sin JavaScript, la hoja inferior nunca se abre: el enlace del marcador lleva
   directamente a la ficha, así que no hace falta nada más. */
.wm-ficha[hidden] { display: none; }
