/* Páginas generadas (pSEO, GEO y AEO): estilos comunes.
   Antes cada plantilla repetía estas reglas en un <style> propio. */

.pseo-hero {
    padding: 64px 0 40px;
    background: radial-gradient(1100px 460px at 92% -10%, rgba(13,110,253,.10), transparent 60%),
                radial-gradient(820px 360px at -8% 115%, rgba(13,110,253,.07), transparent 60%);
}
.pseo-eyebrow { letter-spacing: .08em; }
.pseo-card { border: 1px solid rgba(13,110,253,.12); border-radius: 1rem; background: #fff; transition: box-shadow .15s ease; }
/* En rejilla la tarjeta llena su columna; apiladas en una barra lateral, no
   (con height:100% cada una ocupaba la columna entera y se solapaban). */
[class*="col"] > .pseo-card:only-child { height: 100%; }
.pseo-card .bi { color: var(--brand, #0d6efd); }
a.pseo-card:hover { box-shadow: 0 .5rem 1.5rem rgba(13,110,253,.10); }
.pseo-answer { border-left: 4px solid var(--brand, #0d6efd); background: rgba(13,110,253,.05); border-radius: .5rem; }
.pseo-cta { background: linear-gradient(135deg, rgba(13,110,253,.08), rgba(13,110,253,.02)); border-radius: 1.5rem; }
.pseo-steps li { margin-bottom: .6rem; }

/* Cifras clave: sustituyen a la ilustración de la cabecera. */
.pseo-figures { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.pseo-figure { border: 1px solid rgba(13,110,253,.12); border-radius: 1rem; background: #fff; padding: 1rem 1.1rem; }
.pseo-figure__value { display: block; font-size: 1.35rem; font-weight: 700; line-height: 1.2; color: #0b1b33; }
.pseo-figure__label { display: block; font-size: .85rem; color: #6c757d; margin-top: .2rem; }

/* Tabla de plazos por operador. En móvil cada fila pasa a tarjeta. */
.pseo-transit { width: 100%; border-collapse: separate; border-spacing: 0; }
.pseo-transit th { font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: #6c757d; font-weight: 600; padding: .6rem .75rem; border-bottom: 1px solid #e6ecf5; }
.pseo-transit td { padding: .75rem; border-bottom: 1px solid #eef2f8; vertical-align: top; }
.pseo-transit td.pseo-transit__time { font-weight: 700; white-space: nowrap; }
/* Las tablas de dos columnas (`--keep`) caben en móvil y se quedan como tabla. */
@media (max-width: 575.98px) {
    .pseo-transit:not(.pseo-transit--keep) thead { display: none; }
    .pseo-transit:not(.pseo-transit--keep), .pseo-transit:not(.pseo-transit--keep) tbody,
    .pseo-transit:not(.pseo-transit--keep) tr, .pseo-transit:not(.pseo-transit--keep) td { display: block; width: 100%; }
    .pseo-transit:not(.pseo-transit--keep) tr { border: 1px solid #e6ecf5; border-radius: .75rem; padding: .5rem .75rem; margin-bottom: .6rem; }
    .pseo-transit:not(.pseo-transit--keep) td { border: 0; padding: .2rem 0; }
    .pseo-transit:not(.pseo-transit--keep) td::before { content: attr(data-label) ": "; color: #6c757d; font-weight: 400; }
}

/* Franja de transportistas: enlaces, no adorno. */
.pseo-couriers a { display: inline-block; padding: .35rem .9rem; border: 1px solid #dfe7f3; border-radius: 999px; color: #34465f; font-weight: 600; text-decoration: none; background: #fff; }
.pseo-couriers a:hover { border-color: var(--brand, #0d6efd); color: var(--brand, #0d6efd); }

.pseo-reviewed time { font-weight: 600; }

/* Tablas largas del pilar en móvil: desplazamiento dentro de la tabla y
   primera columna fija, sin scroll horizontal de la página. */
@media (max-width: 767.98px) {
    .table-sticky-first { overflow-x: auto; }
    .table-sticky-first table { min-width: 560px; }
    .table-sticky-first th:first-child, .table-sticky-first td:first-child { position: sticky; left: 0; background: #fff; z-index: 1; }
}

/* Lista de municipios de la página de provincia. */
.pseo-muni { border: 1px solid #eef2f8; border-radius: .6rem; padding: .5rem .7rem; height: 100%; background: #fff; }
.pseo-remote { display: inline-block; font-size: .7rem; font-weight: 600; color: #8a5a00; background: #fff4dc; border-radius: 999px; padding: .05rem .5rem; vertical-align: middle; }
