/* ===========================================================================
   Promesa vs Gestión — Estilos unificados
   Módulo editorial de seguimiento de gobierno. Home + Archive + Single + Admin.
   Tokens del theme: --red, --red-dark, --red-darker, --container, Montserrat.
   =========================================================================== */

/* ───────────────────────────────────────────────────────────
   VARIABLES DE ESTADOS (sincronizadas con helpers.php)
   ─────────────────────────────────────────────────────────── */

.pvg-root,
.pvg-home,
.pvg-archive,
.pvg-single {
    --pvg-cumplida:    #16a34a;
    --pvg-en-curso:    #84cc16;
    --pvg-parcial:     #eab308;
    --pvg-demorada:    #f97316;
    --pvg-incumplida:  #dc2626;

    --pvg-radius:    10px;
    --pvg-radius-sm: 6px;
    --pvg-radius-lg: 16px;

    --pvg-shadow-sm: 0 1px 3px rgba(0,0,0,0.08);
    --pvg-shadow-md: 0 6px 20px rgba(0,0,0,0.10);
    --pvg-shadow-lg: 0 14px 40px rgba(0,0,0,0.14);

    --pvg-border:    #e5e7eb;
    --pvg-text:      #1a1a1a;
    --pvg-muted:     #666;
    --pvg-card-bg:   #ffffff;
    --pvg-page-bg:   #fafafa;
}

/* Container utilitario — centrado con max-width del theme */
.pvg-container {
    max-width: var(--container, 1280px);
    margin: 0 auto;
    padding-left: 20px;
    padding-right: 20px;
    width: 100%;
    box-sizing: border-box;
}

/* Clases utilitarias de color por estado */
.pvg-estado--cumplida   { --pvg-estado-color: var(--pvg-cumplida); }
.pvg-estado--en-curso   { --pvg-estado-color: var(--pvg-en-curso); }
.pvg-estado--parcial    { --pvg-estado-color: var(--pvg-parcial); }
.pvg-estado--demorada   { --pvg-estado-color: var(--pvg-demorada); }
.pvg-estado--incumplida { --pvg-estado-color: var(--pvg-incumplida); }

.pvg-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 12px;
    border-radius: 999px;
    font-family: Montserrat, system-ui, sans-serif;
    font-weight: 800;
    font-size: 11px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #fff;
    background: var(--pvg-estado-color, #888);
    line-height: 1;
    white-space: nowrap;
}
.pvg-badge--lg { padding: 8px 16px; font-size: 13px; }
.pvg-badge__icon { font-size: 14px; }

/* ═══════════════════════════════════════════════════════════
   1. HOME BLOCK — Carrusel debajo de "Tema del momento"
   ═══════════════════════════════════════════════════════════ */

.pvg-home {
    font-family: Montserrat, system-ui, sans-serif;
    padding: 60px 20px 70px;
    background: linear-gradient(180deg, #fff 0%, #fafafa 100%);
    color: var(--pvg-text);
}

.pvg-home__inner {
    max-width: var(--container, 1280px);
    margin: 0 auto;
}

.pvg-home__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 30px;
    border-bottom: 2px solid var(--pvg-border);
    padding-bottom: 20px;
    flex-wrap: wrap;
}

.pvg-home__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--red, #d3403d);
    margin-bottom: 10px;
}
.pvg-home__eyebrow::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--red, #d3403d);
    display: inline-block;
    box-shadow: 0 0 0 4px rgba(211,64,61,0.15);
    animation: pvg-pulse 2s ease-in-out infinite;
}
@keyframes pvg-pulse {
    0%, 100% { box-shadow: 0 0 0 4px rgba(211,64,61,0.15); }
    50%      { box-shadow: 0 0 0 8px rgba(211,64,61,0.05); }
}

.pvg-home__title {
    font-size: clamp(28px, 3.2vw, 42px);
    font-weight: 900;
    line-height: 1.05;
    margin: 0 0 6px;
    letter-spacing: -0.01em;
    color: var(--pvg-text);
}
.pvg-home__subtitle {
    display: block;
    font-size: 15px;
    color: var(--pvg-muted);
    font-weight: 400;
    max-width: 640px;
}

.pvg-home__cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    background: var(--red, #d3403d);
    background: linear-gradient(135deg, var(--red, #d3403d), var(--red-dark, #a71717));
    color: #fff;
    border-radius: 999px;
    font-weight: 700;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease;
    box-shadow: 0 6px 18px rgba(211,64,61,0.25);
    white-space: nowrap;
}
.pvg-home__cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 26px rgba(211,64,61,0.35);
    color: #fff;
}
.pvg-home__cta svg { width: 16px; height: 16px; }

/* Track horizontal con scroll-snap */
.pvg-home__track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(280px, 1fr);
    gap: 20px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding: 6px 2px 20px;
    scrollbar-width: thin;
    scrollbar-color: var(--red, #d3403d) transparent;
}
.pvg-home__track::-webkit-scrollbar { height: 8px; }
.pvg-home__track::-webkit-scrollbar-thumb { background: var(--red, #d3403d); border-radius: 4px; }
.pvg-home__track::-webkit-scrollbar-track { background: var(--pvg-border); border-radius: 4px; }

@media (min-width: 900px) {
    .pvg-home__track {
        grid-auto-columns: 1fr;
        grid-template-columns: repeat(3, 1fr);
        overflow: visible;
    }
}

/* Card del carrusel */
.pvg-home-card {
    scroll-snap-align: start;
    display: flex;
    flex-direction: column;
    background: var(--pvg-card-bg);
    border: 1px solid var(--pvg-border);
    border-left: 6px solid var(--pvg-estado-color, #888);
    border-radius: var(--pvg-radius);
    padding: 22px 22px 18px;
    text-decoration: none;
    color: inherit;
    box-shadow: var(--pvg-shadow-sm);
    transition: transform .3s ease, box-shadow .3s ease, border-left-width .3s ease;
    min-height: 220px;
    position: relative;
}
.pvg-home-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--pvg-shadow-lg);
    color: inherit;
}
.pvg-home-card__estado {
    display: inline-flex;
    align-self: flex-start;
    margin-bottom: 14px;
}
.pvg-home-card__title {
    font-family: Montserrat, system-ui, sans-serif;
    font-weight: 800;
    font-size: 18px;
    line-height: 1.3;
    margin: 0 0 14px;
    color: var(--pvg-text);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.pvg-home-card__meta {
    margin-top: auto;
    font-size: 12px;
    color: var(--pvg-muted);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding-top: 12px;
    border-top: 1px dashed var(--pvg-border);
}
.pvg-home-card__meta-left { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.pvg-home-card__meta-left span { white-space: nowrap; }
.pvg-home-card__cta {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--red, #d3403d);
    white-space: nowrap;
}

/* ═══════════════════════════════════════════════════════════
   2. ARCHIVE — /promesa-gestion/
   ═══════════════════════════════════════════════════════════ */

.pvg-archive {
    font-family: Montserrat, system-ui, sans-serif;
    color: var(--pvg-text);
    background: var(--pvg-page-bg);
}

/* HERO */
.pvg-archive__hero {
    background: linear-gradient(135deg, var(--red-darker, #740607) 0%, var(--red-dark, #a71717) 60%, var(--red, #d3403d) 100%);
    color: #fff;
    padding: 70px 20px 60px;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.pvg-archive__hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(ellipse at top, rgba(255,255,255,0.08), transparent 60%),
        repeating-linear-gradient(135deg, rgba(255,255,255,0.03) 0 2px, transparent 2px 20px);
    pointer-events: none;
}
.pvg-archive__hero-inner {
    position: relative;
    max-width: 920px;
    margin: 0 auto;
}
.pvg-archive__hero-eyebrow {
    display: inline-block;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    opacity: 0.9;
    padding: 6px 14px;
    border: 1px solid rgba(255,255,255,0.3);
    border-radius: 999px;
    margin-bottom: 18px;
}
.pvg-archive__hero-title {
    font-size: clamp(32px, 5vw, 58px);
    font-weight: 900;
    line-height: 1.02;
    letter-spacing: -0.02em;
    margin: 0 0 16px;
}
.pvg-archive__hero-desc {
    font-size: clamp(15px, 1.4vw, 18px);
    line-height: 1.6;
    opacity: 0.92;
    max-width: 720px;
    margin: 0 auto 22px;
}
.pvg-archive__hero-ministats {
    display: flex;
    gap: 28px;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 18px;
    font-size: 14px;
    opacity: 0.9;
}
.pvg-archive__hero-ministats b {
    font-size: 22px;
    font-weight: 900;
    display: inline-block;
    margin-right: 4px;
}

/* INFOGRÁFICO */
.pvg-infografico {
    max-width: var(--container, 1280px);
    margin: -30px auto 40px;
    padding: 0 20px;
    position: relative;
    z-index: 2;
}
.pvg-infografico__inner {
    background: var(--pvg-card-bg);
    border-radius: var(--pvg-radius-lg);
    box-shadow: var(--pvg-shadow-lg);
    padding: 30px;
    border: 1px solid var(--pvg-border);
}
.pvg-infografico__top {
    display: grid;
    grid-template-columns: 1fr;
    gap: 30px;
    align-items: center;
}
@media (min-width: 900px) {
    .pvg-infografico__top { grid-template-columns: 320px 1fr; }
}

/* Donut SVG + total en el centro */
.pvg-donut {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}
.pvg-donut svg { width: 100%; max-width: 280px; height: auto; display: block; }
.pvg-donut__center {
    position: absolute;
    text-align: center;
    line-height: 1;
}
.pvg-donut__center b {
    display: block;
    font-size: 44px;
    font-weight: 900;
    color: var(--pvg-text);
}
.pvg-donut__center span {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--pvg-muted);
    margin-top: 4px;
}

/* Grid de cards por estado */
.pvg-infografico__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 14px;
}
.pvg-stat-card {
    background: #fafafa;
    border: 1px solid var(--pvg-border);
    border-top: 4px solid var(--pvg-estado-color, #888);
    border-radius: var(--pvg-radius-sm);
    padding: 14px;
    cursor: pointer;
    transition: transform .2s ease, box-shadow .2s ease;
}
.pvg-stat-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--pvg-shadow-md);
}
.pvg-stat-card.is-active {
    background: #fff;
    box-shadow: 0 0 0 2px var(--pvg-estado-color, #888);
}
.pvg-stat-card__n {
    font-size: 32px;
    font-weight: 900;
    line-height: 1;
    color: var(--pvg-estado-color, #888);
}
.pvg-stat-card__label {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-top: 6px;
    color: var(--pvg-text);
}
.pvg-stat-card__bar {
    margin-top: 10px;
    height: 5px;
    background: rgba(0,0,0,0.08);
    border-radius: 999px;
    overflow: hidden;
}
.pvg-stat-card__bar-fill {
    height: 100%;
    background: var(--pvg-estado-color, #888);
    border-radius: 999px;
    transition: width .5s ease;
}
.pvg-stat-card__pct {
    font-size: 11px;
    color: var(--pvg-muted);
    margin-top: 4px;
}

/* Índice de cumplimiento (barra inferior del infográfico) */
.pvg-indice {
    margin-top: 26px;
    padding-top: 22px;
    border-top: 1px dashed var(--pvg-border);
}
.pvg-indice__label {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 10px;
}
.pvg-indice__label span {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--pvg-muted);
}
.pvg-indice__label b {
    font-size: 28px;
    font-weight: 900;
    color: var(--pvg-text);
}
.pvg-indice__bar {
    height: 16px;
    background: #f0f0f1;
    border-radius: 999px;
    overflow: hidden;
    position: relative;
}
.pvg-indice__bar-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--pvg-incumplida), var(--pvg-demorada), var(--pvg-parcial), var(--pvg-en-curso), var(--pvg-cumplida));
    border-radius: 999px;
    transition: width .6s ease;
}
.pvg-indice__hint {
    margin-top: 8px;
    font-size: 12px;
    color: var(--pvg-muted);
}

/* FILTROS */
.pvg-archive__filters {
    position: sticky;
    top: 0;
    z-index: 20;
    background: rgba(255,255,255,0.96);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-top: 1px solid var(--pvg-border);
    border-bottom: 1px solid var(--pvg-border);
    padding: 14px 0;
    margin-bottom: 30px;
}
.pvg-archive__filters-inner {
    max-width: var(--container, 1280px);
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.pvg-archive__filters-label {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--pvg-muted);
    margin-right: 4px;
}
.pvg-archive__chip {
    background: #fff;
    border: 1px solid var(--pvg-border);
    padding: 7px 14px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: all .15s ease;
    color: var(--pvg-text);
    font-family: inherit;
}
.pvg-archive__chip:hover { border-color: var(--pvg-text); }
.pvg-archive__chip.is-active {
    background: var(--pvg-text);
    color: #fff;
    border-color: var(--pvg-text);
}
.pvg-archive__chip--estado.is-active {
    background: var(--pvg-estado-color, var(--pvg-text));
    border-color: var(--pvg-estado-color, var(--pvg-text));
}

.pvg-archive__search {
    flex: 1;
    min-width: 200px;
    padding: 8px 14px;
    border: 1px solid var(--pvg-border);
    border-radius: 999px;
    font-size: 14px;
    font-family: inherit;
    background: #fff;
    color: var(--pvg-text);
}
.pvg-archive__search:focus {
    outline: none;
    border-color: var(--red, #d3403d);
    box-shadow: 0 0 0 3px rgba(211,64,61,0.12);
}

.pvg-archive__counter {
    max-width: var(--container, 1280px);
    margin: -18px auto 18px;
    padding: 0 20px;
    font-size: 13px;
    color: var(--pvg-muted);
}
.pvg-archive__clear {
    background: none;
    border: none;
    color: var(--red, #d3403d);
    font-weight: 700;
    cursor: pointer;
    padding: 0;
    margin-left: 8px;
    text-decoration: underline;
    font-family: inherit;
    font-size: 13px;
}
.pvg-archive__clear[hidden] { display: none !important; }

/* GRID */
.pvg-archive__grid {
    max-width: var(--container, 1280px);
    margin: 0 auto;
    padding: 0 20px 50px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
}
@media (min-width: 700px) { .pvg-archive__grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1000px) { .pvg-archive__grid { grid-template-columns: repeat(4, 1fr); } }

.pvg-card {
    background: var(--pvg-card-bg);
    border: 1px solid var(--pvg-border);
    border-left: 6px solid var(--pvg-estado-color, #888);
    border-radius: var(--pvg-radius);
    padding: 18px 18px 16px;
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    min-height: 180px;
    transition: transform .25s ease, box-shadow .25s ease;
    position: relative;
}
.pvg-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--pvg-shadow-md);
    color: inherit;
}
.pvg-card__top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}
.pvg-card__area {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--pvg-muted);
}
.pvg-card__title {
    font-family: Montserrat, system-ui, sans-serif;
    font-weight: 800;
    font-size: 16px;
    line-height: 1.3;
    margin: 0 0 10px;
    color: var(--pvg-text);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.pvg-card__meta {
    margin-top: auto;
    padding-top: 10px;
    border-top: 1px dashed var(--pvg-border);
    font-size: 11px;
    color: var(--pvg-muted);
    display: flex;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: wrap;
}
.pvg-card__fuentes {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.pvg-card[data-hidden="1"] { display: none !important; }

.pvg-archive__empty {
    max-width: 600px;
    margin: 40px auto;
    padding: 28px;
    text-align: center;
    background: #fff;
    border: 1px dashed var(--pvg-border);
    border-radius: var(--pvg-radius);
    color: var(--pvg-muted);
}

.pvg-archive__pagination {
    display: flex;
    justify-content: center;
    gap: 6px;
    margin: 30px auto 60px;
    max-width: var(--container, 1280px);
    padding: 0 20px;
    flex-wrap: wrap;
}
.pvg-archive__pagination a,
.pvg-archive__pagination span {
    padding: 8px 14px;
    border: 1px solid var(--pvg-border);
    border-radius: var(--pvg-radius-sm);
    text-decoration: none;
    color: var(--pvg-text);
    font-weight: 600;
}
.pvg-archive__pagination .current {
    background: var(--red, #d3403d);
    color: #fff;
    border-color: var(--red, #d3403d);
}

/* ═══════════════════════════════════════════════════════════
   3. SINGLE — /promesa-gestion/{slug}/
   ═══════════════════════════════════════════════════════════ */

.pvg-single {
    font-family: Montserrat, system-ui, sans-serif;
    color: var(--pvg-text);
    background: var(--pvg-page-bg);
    padding-bottom: 60px;
}

/* HERO con estado dominante */
.pvg-single__hero {
    background: linear-gradient(135deg, var(--red-darker, #740607) 0%, var(--red-dark, #a71717) 60%, var(--red, #d3403d) 100%);
    color: #fff;
    padding: 60px 20px 50px;
    position: relative;
    overflow: hidden;
}
.pvg-single__hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(ellipse at top right, rgba(255,255,255,0.1), transparent 60%),
        repeating-linear-gradient(135deg, rgba(255,255,255,0.03) 0 2px, transparent 2px 24px);
    pointer-events: none;
}
.pvg-single__hero-inner {
    position: relative;
    max-width: 880px;
    margin: 0 auto;
}
.pvg-single__breadcrumb {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 18px;
    font-size: 12px;
    opacity: 0.9;
}
.pvg-single__breadcrumb a {
    color: #fff;
    text-decoration: none;
    border-bottom: 1px dashed rgba(255,255,255,0.4);
}
.pvg-single__breadcrumb a:hover { border-color: #fff; }
.pvg-single__breadcrumb span { opacity: 0.7; }

.pvg-single__title {
    font-size: clamp(28px, 4.2vw, 48px);
    font-weight: 900;
    line-height: 1.05;
    letter-spacing: -0.015em;
    margin: 14px 0 18px;
}
.pvg-single__subtitle {
    font-size: 15px;
    opacity: 0.92;
    margin: 0;
    line-height: 1.5;
}
.pvg-single__hero-meta {
    margin-top: 18px;
    display: flex;
    gap: 18px;
    flex-wrap: wrap;
    font-size: 13px;
    opacity: 0.9;
}
.pvg-single__hero-meta strong { font-weight: 700; }

/* PANELES (contenedor común) */
.pvg-single__panels {
    max-width: 880px;
    margin: -30px auto 0;
    padding: 0 20px;
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.pvg-panel {
    background: var(--pvg-card-bg);
    border: 1px solid var(--pvg-border);
    border-radius: var(--pvg-radius-lg);
    padding: 30px;
    box-shadow: var(--pvg-shadow-sm);
}
.pvg-panel__eyebrow {
    display: inline-block;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--red, #d3403d);
    margin-bottom: 10px;
}
.pvg-panel__title {
    font-size: 22px;
    font-weight: 900;
    line-height: 1.2;
    margin: 0 0 18px;
    color: var(--pvg-text);
}

/* Panel: La promesa (pullquote) */
.pvg-promesa {
    background: linear-gradient(180deg, #fff 0%, #fff7f7 100%);
    border-left: 6px solid var(--red, #d3403d);
    padding: 36px 32px;
    border-radius: var(--pvg-radius-lg);
    position: relative;
}
.pvg-promesa::before {
    content: """;
    position: absolute;
    top: -22px;
    left: 20px;
    font-size: 120px;
    color: var(--red, #d3403d);
    line-height: 1;
    font-family: Georgia, serif;
    font-weight: 900;
    opacity: 0.2;
}
.pvg-promesa__text {
    font-size: clamp(18px, 2vw, 24px);
    font-weight: 700;
    line-height: 1.4;
    color: var(--pvg-text);
    margin: 0 0 20px;
    font-style: italic;
}
.pvg-promesa__content {
    font-size: 16px;
    line-height: 1.75;
    color: var(--pvg-text);
    font-weight: 400;
    font-style: normal;
}
.pvg-promesa__content p { margin: 0 0 14px; }
.pvg-promesa__content p:last-child { margin-bottom: 0; }

/* Panel: Fuentes (múltiples) */
.pvg-fuentes__list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.pvg-fuente {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px 18px;
    background: #fafafa;
    border: 1px solid var(--pvg-border);
    border-left: 4px solid var(--red, #d3403d);
    border-radius: var(--pvg-radius-sm);
    flex-wrap: wrap;
}
.pvg-fuente__tipo {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    background: #fff;
    border: 1px solid var(--pvg-border);
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--red-dark, #a71717);
    white-space: nowrap;
}
.pvg-fuente__body { flex: 1; min-width: 180px; }
.pvg-fuente__label {
    font-size: 14px;
    font-weight: 600;
    color: var(--pvg-text);
    line-height: 1.4;
}
.pvg-fuente__label:empty::before { content: "Fuente"; color: var(--pvg-muted); }
.pvg-fuente__fecha {
    display: block;
    font-size: 12px;
    color: var(--pvg-muted);
    margin-top: 2px;
}
.pvg-fuente__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: var(--red, #d3403d);
    color: #fff;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    text-decoration: none;
    white-space: nowrap;
    transition: background .15s ease;
}
.pvg-fuente__link:hover {
    background: var(--red-dark, #a71717);
    color: #fff;
}

/* Panel: Criterio editorial */
.pvg-criterio {
    background: linear-gradient(180deg, #fff 0%, #fff7f7 100%);
    border: 1px solid var(--pvg-border);
    border-left: 4px solid var(--red, #d3403d);
    padding: 26px 30px;
    border-radius: var(--pvg-radius-lg);
}
.pvg-criterio__text {
    font-size: 15px;
    line-height: 1.7;
    color: var(--pvg-text);
    margin: 0;
}

/* Panel: Notas relacionadas */
.pvg-notas__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 14px;
}
.pvg-nota-card {
    display: flex;
    flex-direction: column;
    background: #fafafa;
    border: 1px solid var(--pvg-border);
    border-radius: var(--pvg-radius-sm);
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    transition: transform .2s ease, box-shadow .2s ease;
}
.pvg-nota-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--pvg-shadow-md);
    color: inherit;
}
.pvg-nota-card__thumb {
    aspect-ratio: 16/9;
    background: #f0f0f1 center/cover no-repeat;
    border-bottom: 1px solid var(--pvg-border);
}
.pvg-nota-card__body { padding: 14px; display: flex; flex-direction: column; flex: 1; }
.pvg-nota-card__title {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.35;
    margin: 0 0 8px;
    color: var(--pvg-text);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.pvg-nota-card__date {
    margin-top: auto;
    font-size: 11px;
    color: var(--pvg-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

/* Panel: otras promesas relacionadas */
.pvg-relacionadas__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 14px;
}

/* ═══════════════════════════════════════════════════════════
   4. ADMIN — Dashboard drag-reorder + Post-picker
   ═══════════════════════════════════════════════════════════ */

/* Panel drag-reorder (Resumen) */
.dsl-pvg-order {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.dsl-pvg-order__row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 16px;
    background: #fff;
    border: 1px solid #dcdcde;
    border-radius: 8px;
    cursor: move;
    transition: box-shadow .15s ease, transform .15s ease, opacity .15s ease;
}
.dsl-pvg-order__row:hover {
    border-color: #2c2c2c;
    box-shadow: 0 2px 6px rgba(0,0,0,0.06);
}
.dsl-pvg-order__row.is-dragging {
    opacity: 0.45;
    transform: scale(0.98);
}
.dsl-pvg-order__row.is-drop-target {
    border-top: 2px solid var(--red, #d3403d);
}
.dsl-pvg-order__handle {
    color: #8c8f94;
    font-size: 20px;
    cursor: grab;
    user-select: none;
}
.dsl-pvg-order__body { flex: 1; min-width: 0; }
.dsl-pvg-order__title {
    font-weight: 700;
    font-size: 14px;
    color: #1e1e1e;
    margin-bottom: 2px;
}
.dsl-pvg-order__meta { font-size: 12px; color: #666; }
.dsl-pvg-order__estado {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    white-space: nowrap;
}
.dsl-pvg-order__edit {
    color: #8c8f94;
    text-decoration: none;
    font-size: 16px;
    padding: 4px 8px;
    border-radius: 4px;
}
.dsl-pvg-order__edit:hover { background: #f0f0f1; color: var(--red, #d3403d); }

/* Post-picker (meta box) */
.dsl-pvg-picker { display: block; }
.dsl-pvg-picker__search { position: relative; margin-bottom: 14px; }
.dsl-pvg-picker__input {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid #dcdcde;
    border-radius: 6px;
    font-size: 14px;
    background: #fff;
}
.dsl-pvg-picker__input:focus {
    outline: none;
    border-color: var(--red, #d3403d);
    box-shadow: 0 0 0 2px rgba(211,64,61,0.18);
}
.dsl-pvg-picker__results {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin-top: 2px;
    background: #fff;
    border: 1px solid #dcdcde;
    border-radius: 6px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.1);
    z-index: 1000;
    max-height: 320px;
    overflow-y: auto;
}
.dsl-pvg-picker__result {
    padding: 10px 14px;
    cursor: pointer;
    border-bottom: 1px solid #f0f0f1;
    font-size: 13px;
    transition: background .1s ease;
}
.dsl-pvg-picker__result:last-child { border-bottom: 0; }
.dsl-pvg-picker__result:hover { background: #f6f7f7; }
.dsl-pvg-picker__result-title { font-weight: 600; color: #1e1e1e; }
.dsl-pvg-picker__result-date { font-size: 11px; color: #666; margin-top: 2px; }
.dsl-pvg-picker__result--empty { color: #666; font-style: italic; cursor: default; }
.dsl-pvg-picker__result--empty:hover { background: transparent; }

.dsl-pvg-picker__list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 10px;
}
.dsl-pvg-picker__list:empty::before {
    content: "Todavía no vinculaste ninguna nota.";
    display: block;
    padding: 14px;
    background: #f6f7f7;
    border: 1px dashed #c3c4c7;
    border-radius: 6px;
    color: #666;
    font-size: 13px;
    font-style: italic;
}
.dsl-pvg-picker__chip {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    background: #f6f7f7;
    border: 1px solid #dcdcde;
    border-radius: 6px;
    cursor: move;
}
.dsl-pvg-picker__chip.is-dragging { opacity: 0.45; }
.dsl-pvg-picker__chip.is-drop-target { border-top: 2px solid var(--red, #d3403d); }
.dsl-pvg-picker__handle { color: #8c8f94; cursor: grab; user-select: none; font-size: 16px; }
.dsl-pvg-picker__chip-body { flex: 1; min-width: 0; }
.dsl-pvg-picker__chip-title {
    font-weight: 600;
    font-size: 13px;
    color: #1e1e1e;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dsl-pvg-picker__chip-meta { font-size: 11px; color: #666; }
.dsl-pvg-picker__remove {
    background: none;
    border: none;
    color: #8c8f94;
    font-size: 20px;
    cursor: pointer;
    padding: 0 6px;
    line-height: 1;
}
.dsl-pvg-picker__remove:hover { color: #dc2626; }

/* Select de estado con color dinámico */
.dsl-pvg-estado-select {
    font-weight: 700;
}

/* ═══════════════════════════════════════════════════════════
   5. MODO OSCURO
   ═══════════════════════════════════════════════════════════ */

html[data-theme="dark"] .pvg-home,
html[data-theme="dark"] .pvg-archive,
html[data-theme="dark"] .pvg-single {
    --pvg-text: #e5e5e5;
    --pvg-muted: #b7b7b7;
    --pvg-card-bg: #1e1e1e;
    --pvg-border: #2a2a2a;
    --pvg-page-bg: #141414;
}

html[data-theme="dark"] .pvg-home {
    background: linear-gradient(180deg, #141414 0%, #1a1a1a 100%);
}
html[data-theme="dark"] .pvg-home-card,
html[data-theme="dark"] .pvg-card {
    background: #1e1e1e;
    border-color: #2a2a2a;
}
html[data-theme="dark"] .pvg-home-card__title,
html[data-theme="dark"] .pvg-card__title {
    color: #f5f5f5;
}

html[data-theme="dark"] .pvg-infografico__inner,
html[data-theme="dark"] .pvg-panel {
    background: #1e1e1e;
    border-color: #2a2a2a;
}
html[data-theme="dark"] .pvg-stat-card {
    background: #262626;
    border-color: #333;
}
html[data-theme="dark"] .pvg-stat-card.is-active { background: #2d2d2d; }
html[data-theme="dark"] .pvg-donut__center b,
html[data-theme="dark"] .pvg-panel__title,
html[data-theme="dark"] .pvg-promesa__text,
html[data-theme="dark"] .pvg-promesa__content,
html[data-theme="dark"] .pvg-criterio__text,
html[data-theme="dark"] .pvg-indice__label b,
html[data-theme="dark"] .pvg-single__title { color: #f5f5f5; }

html[data-theme="dark"] .pvg-archive__filters {
    background: rgba(20,20,20,0.9);
    border-color: #2a2a2a;
}
html[data-theme="dark"] .pvg-archive__chip {
    background: #1e1e1e;
    border-color: #333;
    color: #e5e5e5;
}
html[data-theme="dark"] .pvg-archive__search {
    background: #1e1e1e;
    border-color: #333;
    color: #e5e5e5;
}
html[data-theme="dark"] .pvg-fuente,
html[data-theme="dark"] .pvg-nota-card {
    background: #262626;
    border-color: #333;
}
html[data-theme="dark"] .pvg-fuente__tipo {
    background: #1e1e1e;
    border-color: #333;
    color: #ff8a8a;
}
html[data-theme="dark"] .pvg-promesa,
html[data-theme="dark"] .pvg-criterio {
    background: linear-gradient(180deg, #1e1e1e 0%, #2a1010 100%);
}

html[data-theme="dark"] .pvg-archive__hero,
html[data-theme="dark"] .pvg-single__hero {
    background: linear-gradient(135deg, #450a0a 0%, #2a0a0a 50%, #1a1a1a 100%);
}

/* ═══════════════════════════════════════════════════════════
   6. RESPONSIVE FINE-TUNING
   ═══════════════════════════════════════════════════════════ */

@media (max-width: 700px) {
    .pvg-home { padding: 40px 16px 50px; }
    .pvg-home__header { flex-direction: column; align-items: flex-start; }
    .pvg-home__cta { align-self: flex-start; }

    .pvg-archive__hero { padding: 50px 16px 40px; }
    .pvg-archive__grid { grid-template-columns: repeat(2, 1fr); gap: 12px; padding: 0 16px 30px; }

    .pvg-single__hero { padding: 40px 16px 35px; }
    .pvg-single__panels { padding: 0 16px; }
    .pvg-panel { padding: 22px; }
    .pvg-promesa { padding: 26px 22px; }
    .pvg-promesa__text { font-size: 17px; }

    .pvg-infografico { margin: -20px auto 30px; padding: 0 16px; }
    .pvg-infografico__inner { padding: 20px; }
    .pvg-archive__filters-inner { padding: 0 16px; }
}

@media (max-width: 480px) {
    .pvg-archive__grid { grid-template-columns: 1fr; }
    .pvg-home-card { padding: 18px; min-height: auto; }
    .pvg-home-card__title { font-size: 16px; }
    .pvg-fuente { gap: 10px; padding: 12px 14px; }
    .pvg-fuente__body { min-width: 100%; order: 2; }
    .pvg-fuente__link { order: 3; }
}

/* ═══════════════════════════════════════════════════════════
   7. TEMPLATE COMPATIBILITY LAYER
   Estilos para las clases usadas en los templates actuales
   (home-block, archive-promesa, single-promesa). Complementa
   las secciones 1-6 sin reemplazarlas.
   ═══════════════════════════════════════════════════════════ */

/* --- Home card (wrapper del badge + meta separators) ------ */
.pvg-home-card__head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}
.pvg-home-card__meta-sep { color: var(--pvg-muted); opacity: 0.5; }
.pvg-home-card__tipo {
    color: var(--pvg-muted);
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* --- Archive hero (alias simplificado) -------------------- */
.pvg-archive__hero { padding: 70px 0 60px; text-align: center; }
.pvg-archive__hero .pvg-container { position: relative; z-index: 1; }
.pvg-archive__eyebrow {
    display: inline-block;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.9);
    margin-bottom: 14px;
    padding: 4px 12px;
    border: 1px solid rgba(255,255,255,0.3);
    border-radius: 999px;
}
.pvg-archive__title {
    font-size: clamp(32px, 5vw, 58px);
    font-weight: 900;
    line-height: 1.02;
    letter-spacing: -0.02em;
    margin: 0 0 16px;
    color: #fff;
}
.pvg-archive__sub {
    font-size: clamp(15px, 1.4vw, 18px);
    line-height: 1.6;
    opacity: 0.92;
    max-width: 720px;
    margin: 0 auto 22px;
    color: #fff;
}
.pvg-archive__hero-stats {
    display: flex;
    gap: 8px;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 18px;
    font-size: 14px;
    color: rgba(255,255,255,0.95);
}
.pvg-archive__hero-stat strong {
    font-size: 22px;
    font-weight: 900;
    color: #fff;
}
.pvg-archive__hero-sep { opacity: 0.5; margin: 0 4px; }

/* --- Infográfico / Donut ---------------------------------- */
.pvg-infografico { padding: 40px 0 30px; }
.pvg-infografico__grid {
    display: grid;
    grid-template-columns: minmax(240px, 320px) 1fr;
    gap: 36px;
    align-items: start;
}
@media (max-width: 760px) {
    .pvg-infografico__grid { grid-template-columns: 1fr; gap: 24px; }
}

.pvg-donut-wrap {
    background: var(--pvg-card-bg);
    border: 1px solid var(--pvg-border);
    border-radius: var(--pvg-radius-lg);
    padding: 22px;
    box-shadow: var(--pvg-shadow-sm);
    text-align: center;
}
.pvg-donut { width: 100%; max-width: 260px; height: auto; margin: 0 auto 18px; display: block; }
.pvg-donut__arc {
    transition: stroke-dashoffset .8s ease, stroke-dasharray .8s ease, opacity .2s ease;
}
.pvg-donut.is-visible .pvg-donut__arc { animation: pvg-donut-in .9s ease-out both; }
@keyframes pvg-donut-in {
    from { opacity: 0; stroke-width: 6; }
    to   { opacity: 1; stroke-width: 18; }
}
.pvg-donut__total {
    font-family: Montserrat, system-ui, sans-serif;
    font-size: 34px;
    font-weight: 900;
    fill: var(--pvg-text);
}
.pvg-donut__label {
    font-family: Montserrat, system-ui, sans-serif;
    font-size: 12px;
    font-weight: 600;
    fill: var(--pvg-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.pvg-donut__legend {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    text-align: left;
}
.pvg-donut__legend-btn {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 7px 10px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 6px;
    cursor: pointer;
    font: inherit;
    color: var(--pvg-text);
    transition: background .15s ease, border-color .15s ease;
}
.pvg-donut__legend-btn:hover { background: rgba(0,0,0,0.03); border-color: var(--pvg-border); }
.pvg-donut__legend-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    flex-shrink: 0;
}
.pvg-donut__legend-label { flex: 1; font-size: 13px; font-weight: 600; }
.pvg-donut__legend-count {
    font-weight: 800;
    color: var(--pvg-text);
    background: var(--pvg-border);
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 12px;
    min-width: 28px;
    text-align: center;
}

/* --- Stat cards grid -------------------------------------- */
.pvg-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 12px;
}
.pvg-stat-card {
    background: var(--pvg-card-bg);
    border: 1px solid var(--pvg-border);
    border-top: 4px solid var(--pvg-accent, #888);
    border-radius: var(--pvg-radius);
    padding: 14px 16px;
    box-shadow: var(--pvg-shadow-sm);
}
.pvg-stat-card__head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}
.pvg-stat-card__icon {
    color: var(--pvg-accent, #888);
    font-size: 14px;
    font-weight: 900;
}
.pvg-stat-card__label {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--pvg-accent, #888);
}
.pvg-stat-card__value {
    font-family: Montserrat, system-ui, sans-serif;
    font-size: 32px;
    font-weight: 900;
    line-height: 1;
    color: var(--pvg-text);
    margin-bottom: 10px;
}
.pvg-stat-card__pct {
    font-size: 11px;
    color: var(--pvg-muted);
    margin-top: 6px;
}

/* --- Índice de cumplimiento (alias simplificado) --------- */
.pvg-indice {
    margin-top: 32px;
    background: var(--pvg-card-bg);
    border: 1px solid var(--pvg-border);
    border-radius: var(--pvg-radius);
    padding: 22px 24px;
    box-shadow: var(--pvg-shadow-sm);
}
.pvg-indice__head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 14px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}
.pvg-indice__title {
    margin: 0;
    font-size: 16px;
    font-weight: 800;
    color: var(--pvg-text);
}
.pvg-indice__value {
    font-family: Montserrat, system-ui, sans-serif;
    font-size: 36px;
    font-weight: 900;
    color: var(--pvg-text);
    line-height: 1;
}
.pvg-indice__bar {
    height: 22px;
    background: #f0f0f1;
    border-radius: 999px;
    overflow: hidden;
    position: relative;
}
.pvg-indice__fill {
    height: 100%;
    background: linear-gradient(90deg, #dc2626, #f97316, #eab308, #84cc16, #16a34a);
    border-radius: 999px;
    transition: width .9s cubic-bezier(.2,.7,.2,1);
}
.pvg-indice__hint {
    margin: 12px 0 0;
    font-size: 12px;
    color: var(--pvg-muted);
    line-height: 1.5;
}

/* --- Filtros del archive ---------------------------------- */
.pvg-archive__filters { padding: 18px 0; position: sticky; top: 0; z-index: 20; background: rgba(255,255,255,0.92); backdrop-filter: blur(6px); border-bottom: 1px solid var(--pvg-border); }
.pvg-archive__filters-row {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding: 4px 0;
}
.pvg-archive__filters-row--search { gap: 14px; margin-top: 4px; }
.pvg-archive__filters-label {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--pvg-muted);
    min-width: 56px;
}
.pvg-archive__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    flex: 1;
}
.pvg-filter {
    padding: 6px 14px;
    background: transparent;
    border: 1px solid var(--pvg-border);
    border-radius: 999px;
    cursor: pointer;
    font: 600 13px Montserrat, system-ui, sans-serif;
    color: var(--pvg-text);
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.pvg-filter:hover { border-color: var(--pvg-text); }
.pvg-filter.is-active {
    background: var(--pvg-accent, var(--red, #d3403d));
    border-color: var(--pvg-accent, var(--red, #d3403d));
    color: #fff;
}
.pvg-archive__search {
    flex: 1;
    min-width: 200px;
    max-width: 360px;
    display: flex;
}
.pvg-archive__search input {
    width: 100%;
    padding: 9px 14px;
    border: 1px solid var(--pvg-border);
    border-radius: 999px;
    font: 400 14px Montserrat, system-ui, sans-serif;
    background: #fff;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.pvg-archive__search input:focus {
    outline: none;
    border-color: var(--red, #d3403d);
    box-shadow: 0 0 0 3px rgba(211,64,61,0.15);
}

/* --- Archive listing / Card --------------------------------- */
.pvg-archive__listing { padding: 30px 0 60px; }
.pvg-card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 18px;
    background: var(--pvg-card-bg);
    border: 1px solid var(--pvg-border);
    border-left: 5px solid var(--pvg-accent, var(--red, #d3403d));
    border-radius: var(--pvg-radius);
    box-shadow: var(--pvg-shadow-sm);
    text-decoration: none;
    color: var(--pvg-text);
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.pvg-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--pvg-shadow-md);
    border-left-color: var(--pvg-accent, var(--red-dark, #a71717));
}
.pvg-card__head {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.pvg-card__meta-sep { color: var(--pvg-muted); opacity: 0.5; }
.pvg-card__cta {
    font-size: 13px;
    font-weight: 700;
    color: var(--red, #d3403d);
    margin-top: auto;
    padding-top: 6px;
}
.pvg-card--sm { padding: 14px; gap: 6px; }
.pvg-card--sm .pvg-card__title { font-size: 15px; line-height: 1.3; }
.pvg-card__date { font-size: 12px; color: var(--pvg-muted); }

/* --- Single hero (aliases + extras) ------------------------ */
.pvg-single__body {
    max-width: 880px;
    margin: -30px auto 0;
    padding: 0 20px 40px;
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 22px;
}
.pvg-breadcrumb {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 16px;
    color: rgba(255,255,255,0.9);
}
.pvg-breadcrumb a {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px dashed rgba(255,255,255,0.3);
    padding-bottom: 1px;
    transition: border-color .15s ease;
}
.pvg-breadcrumb a:hover { border-color: #fff; }
.pvg-breadcrumb span { opacity: 0.5; }
.pvg-single__estado { margin-bottom: 14px; }
.pvg-single__hero-date,
.pvg-single__hero-fuentes,
.pvg-single__hero-gestion {
    font-size: 14px;
    color: rgba(255,255,255,0.95);
}
.pvg-single__hero-gestion {
    color: #fff;
    text-decoration: none;
    border-bottom: 1px dashed rgba(255,255,255,0.4);
    transition: border-color .15s ease;
}
.pvg-single__hero-gestion:hover { border-color: #fff; }
.pvg-single__hero-sep { opacity: 0.5; margin: 0 2px; }

/* --- Panel header + count --------------------------------- */
.pvg-panel__header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 14px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}
.pvg-panel__header .pvg-panel__title { margin: 0; }
.pvg-panel__count {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--pvg-muted);
    background: var(--pvg-border);
    padding: 3px 10px;
    border-radius: 999px;
}

/* --- Promesa body (editor content) ------------------------ */
.pvg-promesa__body,
.pvg-promesa__content {
    margin-top: 16px;
    font-size: 16px;
    line-height: 1.75;
    color: var(--pvg-text);
}
.pvg-promesa__body p,
.pvg-promesa__content p { margin: 0 0 16px; }
.pvg-promesa__body p:last-child,
.pvg-promesa__content p:last-child { margin-bottom: 0; }

/* Headings dentro del editor */
.pvg-promesa__body h2,
.pvg-promesa__content h2 {
    font-family: Montserrat, system-ui, sans-serif;
    font-size: 22px;
    font-weight: 800;
    line-height: 1.25;
    margin: 28px 0 12px;
    color: var(--pvg-text);
}
.pvg-promesa__body h3,
.pvg-promesa__content h3 {
    font-family: Montserrat, system-ui, sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
    margin: 22px 0 10px;
    color: var(--pvg-text);
}

/* Listas */
.pvg-promesa__body ul,
.pvg-promesa__body ol,
.pvg-promesa__content ul,
.pvg-promesa__content ol {
    margin: 0 0 16px;
    padding-left: 22px;
}
.pvg-promesa__body li,
.pvg-promesa__content li { margin-bottom: 6px; }

/* Enlaces */
.pvg-promesa__body a,
.pvg-promesa__content a {
    color: var(--red, #d3403d);
    text-decoration: underline;
    text-underline-offset: 2px;
    text-decoration-thickness: 1px;
}
.pvg-promesa__body a:hover,
.pvg-promesa__content a:hover {
    color: var(--red-dark, #a71717);
    text-decoration-thickness: 2px;
}

/* Quote inline */
.pvg-promesa__body blockquote,
.pvg-promesa__content blockquote {
    margin: 22px 0;
    padding: 16px 22px;
    border-left: 4px solid var(--red, #d3403d);
    background: rgba(211,64,61,0.04);
    font-style: italic;
    color: var(--pvg-text);
    border-radius: 0 6px 6px 0;
}
.pvg-promesa__body blockquote p:last-child,
.pvg-promesa__content blockquote p:last-child { margin-bottom: 0; }

/* ── IMÁGENES dentro del editor (feature pedido por el usuario) ── */
.pvg-promesa__body img,
.pvg-promesa__content img {
    max-width: 100%;
    height: auto;
    border-radius: var(--pvg-radius);
    box-shadow: var(--pvg-shadow-md);
    display: block;
    margin: 22px auto;
}

/* Figure + figcaption (Block Editor y classic) */
.pvg-promesa__body figure,
.pvg-promesa__content figure,
.pvg-promesa__body .wp-block-image,
.pvg-promesa__content .wp-block-image {
    margin: 24px auto;
    max-width: 100%;
}
.pvg-promesa__body figure img,
.pvg-promesa__content figure img,
.pvg-promesa__body .wp-block-image img,
.pvg-promesa__content .wp-block-image img {
    margin: 0 auto;
    display: block;
    width: 100%;
    height: auto;
}
.pvg-promesa__body figcaption,
.pvg-promesa__content figcaption,
.pvg-promesa__body .wp-block-image figcaption,
.pvg-promesa__content .wp-block-image figcaption,
.pvg-promesa__body .wp-caption-text,
.pvg-promesa__content .wp-caption-text {
    font-size: 13px;
    line-height: 1.5;
    color: var(--pvg-muted);
    text-align: center;
    padding: 8px 6px 0;
    font-style: italic;
}

/* WordPress alignment classes (classic editor) */
.pvg-promesa__body .alignleft,
.pvg-promesa__content .alignleft {
    float: left;
    margin: 6px 22px 16px 0;
    max-width: 50%;
}
.pvg-promesa__body .alignright,
.pvg-promesa__content .alignright {
    float: right;
    margin: 6px 0 16px 22px;
    max-width: 50%;
}
.pvg-promesa__body .aligncenter,
.pvg-promesa__content .aligncenter {
    display: block;
    margin: 22px auto;
    clear: both;
}
.pvg-promesa__body .alignnone,
.pvg-promesa__content .alignnone {
    margin: 22px 0;
}

/* Block Editor wide/full alignments — rompe el ancho del panel */
.pvg-promesa__body .alignwide,
.pvg-promesa__content .alignwide {
    margin-left: -40px;
    margin-right: -40px;
    max-width: calc(100% + 80px);
    width: calc(100% + 80px);
}
.pvg-promesa__body .alignfull,
.pvg-promesa__content .alignfull {
    margin-left: calc(-50vw + 50%);
    margin-right: calc(-50vw + 50%);
    width: 100vw;
    max-width: 100vw;
    border-radius: 0;
}
.pvg-promesa__body .alignfull img,
.pvg-promesa__content .alignfull img {
    width: 100%;
    max-width: none;
    border-radius: 0;
}

/* WordPress caption legacy */
.pvg-promesa__body .wp-caption,
.pvg-promesa__content .wp-caption {
    max-width: 100%;
    margin: 22px auto;
}
.pvg-promesa__body .wp-caption img,
.pvg-promesa__content .wp-caption img {
    margin: 0;
}

/* Clearfix para floats */
.pvg-promesa__body::after,
.pvg-promesa__content::after {
    content: "";
    display: table;
    clear: both;
}

/* Gallery de Block Editor */
.pvg-promesa__body .wp-block-gallery,
.pvg-promesa__content .wp-block-gallery {
    margin: 24px 0;
}

/* Mobile: alignleft/right pasa a centered */
@media (max-width: 600px) {
    .pvg-promesa__body .alignleft,
    .pvg-promesa__body .alignright,
    .pvg-promesa__content .alignleft,
    .pvg-promesa__content .alignright {
        float: none;
        display: block;
        margin: 22px auto;
        max-width: 100%;
    }
    .pvg-promesa__body .alignwide,
    .pvg-promesa__content .alignwide {
        margin-left: 0;
        margin-right: 0;
        max-width: 100%;
        width: 100%;
    }
}

/* --- Fuentes: alias de head + colores por tipo ------------ */
.pvg-fuente { flex-wrap: wrap; }
.pvg-fuente__head {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    width: 100%;
    margin-bottom: 6px;
}
.pvg-fuente--entrevista         .pvg-fuente__tipo { background: #3b82f6; color: #fff; }
.pvg-fuente--discurso           .pvg-fuente__tipo { background: #8b5cf6; color: #fff; }
.pvg-fuente--documento-oficial  .pvg-fuente__tipo { background: #0ea5e9; color: #fff; }
.pvg-fuente--conferencia-prensa .pvg-fuente__tipo { background: #14b8a6; color: #fff; }
.pvg-fuente--red-social         .pvg-fuente__tipo { background: #ec4899; color: #fff; }

/* --- Criterio alias --------------------------------------- */
.pvg-criterio__eyebrow {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--red, #d3403d);
    margin-bottom: 8px;
}
.pvg-criterio__body {
    font-size: 16px;
    line-height: 1.7;
    color: var(--pvg-text);
}
.pvg-criterio__body p { margin: 0 0 10px; }
.pvg-criterio__body p:last-child { margin-bottom: 0; }

/* --- Notas alias (pvg-nota = pvg-nota-card) --------------- */
.pvg-nota {
    display: flex;
    flex-direction: column;
    background: var(--pvg-card-bg);
    border: 1px solid var(--pvg-border);
    border-radius: var(--pvg-radius);
    overflow: hidden;
    box-shadow: var(--pvg-shadow-sm);
    text-decoration: none;
    color: var(--pvg-text);
    transition: transform .15s ease, box-shadow .15s ease;
}
.pvg-nota:hover { transform: translateY(-3px); box-shadow: var(--pvg-shadow-md); }
.pvg-nota__thumb {
    width: 100%;
    height: 140px;
    background: var(--pvg-border) 50% / cover no-repeat;
}
.pvg-nota__thumb--empty {
    background: linear-gradient(135deg, var(--red-darker, #740607) 0%, var(--red, #d3403d) 100%);
}
.pvg-nota__body { padding: 14px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.pvg-nota__title {
    font-family: Montserrat, system-ui, sans-serif;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
    color: var(--pvg-text);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.pvg-nota__date { font-size: 12px; color: var(--pvg-muted); margin-top: auto; }

/* --- Related grid (alias) --------------------------------- */
.pvg-related__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 14px;
}

/* --- Home carousel navigation ----------------------------- */
.pvg-home__carousel {
    position: relative;
}
.pvg-home__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 1px solid var(--pvg-border);
    background: #fff;
    color: var(--pvg-text);
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    z-index: 3;
    box-shadow: var(--pvg-shadow-sm);
    transition: background .15s ease, color .15s ease, opacity .15s ease;
}
.pvg-home__nav:hover { background: var(--red, #d3403d); color: #fff; border-color: var(--red, #d3403d); }
.pvg-home__nav--prev { left: -10px; }
.pvg-home__nav--next { right: -10px; }
.pvg-home__nav.is-disabled { opacity: 0.3; pointer-events: none; }
@media (max-width: 760px) {
    .pvg-home__nav { display: none; }
}

/* --- Home subtitle helper --------------------------------- */
.pvg-home__sub {
    margin: 6px 0 0;
    color: var(--pvg-muted);
    font-size: 15px;
    font-weight: 500;
}

/* --- Dark-mode complement --------------------------------- */
html[data-theme="dark"] .pvg-archive__filters {
    background: rgba(20,20,20,0.9);
    border-bottom-color: #2a2a2a;
}
html[data-theme="dark"] .pvg-archive__search input {
    background: #1e1e1e;
    color: #e5e5e5;
    border-color: #2a2a2a;
}
html[data-theme="dark"] .pvg-filter { color: #e5e5e5; border-color: #2a2a2a; }
html[data-theme="dark"] .pvg-filter:hover { border-color: #e5e5e5; }
html[data-theme="dark"] .pvg-home__nav {
    background: #1e1e1e;
    color: #e5e5e5;
    border-color: #2a2a2a;
}
html[data-theme="dark"] .pvg-donut-wrap,
html[data-theme="dark"] .pvg-stat-card,
html[data-theme="dark"] .pvg-indice,
html[data-theme="dark"] .pvg-card,
html[data-theme="dark"] .pvg-nota {
    background: #1e1e1e;
    border-color: #2a2a2a;
}
html[data-theme="dark"] .pvg-indice__bar { background: #2a2a2a; }
html[data-theme="dark"] .pvg-donut__legend-count { background: #2a2a2a; color: #e5e5e5; }
html[data-theme="dark"] .pvg-panel__count { background: #2a2a2a; color: #e5e5e5; }
html[data-theme="dark"] .pvg-card__cta { color: #f87171; }
html[data-theme="dark"] .pvg-donut__total { fill: #e5e5e5; }
html[data-theme="dark"] .pvg-donut__label { fill: #b7b7b7; }
