/* ============================================================
 *  FICHA PCI  ·  Patrimonio Cultural Inmaterial de Extremadura
 *  Estilos para single.php (tema Salient child)
 *  Pegar en el style.css del child theme o encolar aparte.
 * ============================================================ */

:root {
    --pci-accent: #7B0040;
    --pci-accent-dark: #5c0030;
    --pci-ink: #1a1a1a;
    --pci-text: #3d3d3d;
    --pci-muted: #8a8a8a;
    --pci-line: #e6e6e6;
    --pci-bg-soft: #faf8f9;
}

/* ---------- Contenedor general de la ficha ---------- */
.pci-ficha {
    max-width: 100%;
    margin: 0 auto;
    color: var(--pci-text);
    font-size: 17px;
    line-height: 1.75;
}

/* ---------- Código de referencia ---------- */
.pci-codigo {
    display: inline-flex;
    align-items: stretch;
    margin: 0 0 8px;
    border-radius: 4px;
    overflow: hidden;
    font-family: 'Courier New', monospace;
    box-shadow: 0 4px 14px rgba(123, 0, 64, .18);
}
.pci-codigo-label {
    background: var(--pci-ink);
    color: #fff;
    font-size: 11px;
    letter-spacing: .14em;
    text-transform: uppercase;
    font-weight: 700;
    padding: 8px 14px;
    display: flex;
    align-items: center;
}
.pci-codigo-valor {
    background: var(--pci-accent);
    color: #fff;
    font-weight: 700;
    font-size: 15px;
    letter-spacing: .05em;
    padding: 8px 16px;
    display: flex;
    align-items: center;
}

/* Cada bloque, separado con aire y una línea fina */
.pci-bloque {
    padding: 48px 0;
    border-top: 1px solid var(--pci-line);
}
.pci-bloque:first-child {
    border-top: 0;
    padding-top: 24px;
}

/* ---------- Títulos de sección ---------- */
.pci-bloque-titulo {
    font-family: Georgia, 'Times New Roman', serif; /* mismo aire serif de los titulares de la web */
    font-weight: 400;
    font-size: 30px;
    line-height: 1.2;
    color: var(--pci-ink);
    margin: 0 0 24px;
    position: relative;
    padding-left: 46px;
}
/* Guion fino a la izquierda, igual que "— Conoce el proyecto" */
.pci-bloque-titulo::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.62em;
    width: 30px;
    height: 1px;
    background: var(--pci-accent);
}

/* ---------- Contenido WYSIWYG ---------- */
.pci-contenido p { margin: 0 0 1.2em; }
.pci-contenido p:last-child { margin-bottom: 0; }
.pci-contenido a { color: var(--pci-accent); text-decoration: underline; }
.pci-contenido h3 { font-size: 21px; color: var(--pci-ink); margin: 1.5em 0 0.6em; }
.pci-contenido ul,
.pci-contenido ol { margin: 0 0 1.2em 1.2em; }
.pci-contenido img { max-width: 100%; height: auto; border-radius: 2px; }
.pci-contenido blockquote {
    margin: 1.4em 0;
    padding: 4px 0 4px 24px;
    border-left: 3px solid var(--pci-accent);
    font-style: italic;
    color: var(--pci-ink);
}

/* ---------- Datos destacados (entidades / acciones) ---------- */
.pci-datos-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 28px;
}
.pci-dato {
    background: var(--pci-bg-soft);
    border: 1px solid var(--pci-line);
    border-radius: 4px;
    padding: 22px 24px;
}
.pci-dato-label {
    display: block;
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--pci-accent);
    font-weight: 700;
    margin-bottom: 8px;
}
.pci-dato-valor {
    margin: 0;
    color: var(--pci-ink);
    font-size: 17px;
    line-height: 1.55;
}

/* ============================================================
 *  GALERÍA
 * ============================================================ */
.pci-galeria-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}
.pci-galeria-item {
    margin: 0;
}
.pci-galeria-enlace {
    position: relative;
    display: block;
    overflow: hidden;
    border-radius: 3px;
    background: #111;
    aspect-ratio: 4 / 3;
}
.pci-galeria-enlace img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .6s cubic-bezier(.2,.7,.2,1), opacity .4s ease;
}
.pci-galeria-enlace:hover img {
    transform: scale(1.06);
    opacity: .85;
}
/* Capa de zoom al hacer hover, en el morado de marca */
.pci-galeria-zoom {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(123, 0, 64, 0);
    opacity: 0;
    transition: background .4s ease, opacity .4s ease;
    pointer-events: none;
}
.pci-galeria-zoom::after {
    content: "+";
    font-family: Georgia, serif;
    font-size: 34px;
    line-height: 1;
    color: #fff;
    transform: scale(.6);
    transition: transform .4s ease;
}
.pci-galeria-enlace:hover .pci-galeria-zoom {
    background: rgba(123, 0, 64, .35);
    opacity: 1;
}
.pci-galeria-enlace:hover .pci-galeria-zoom::after {
    transform: scale(1);
}
.pci-galeria-caption {
    margin-top: 8px;
    font-size: 13px;
    color: var(--pci-muted);
    line-height: 1.4;
}

/* ============================================================
 *  LIGHTBOX
 * ============================================================ */
.pci-lightbox {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(15, 5, 10, .94);
    opacity: 0;
    transition: opacity .3s ease;
}
.pci-lightbox.is-open {
    display: flex;
    opacity: 1;
}
.pci-lightbox-figura {
    margin: 0;
    max-width: 88vw;
    max-height: 86vh;
    text-align: center;
}
.pci-lightbox-img {
    max-width: 88vw;
    max-height: 78vh;
    width: auto;
    height: auto;
    border-radius: 2px;
    box-shadow: 0 20px 60px rgba(0,0,0,.5);
}
.pci-lightbox-caption {
    margin-top: 16px;
    color: #f3eef1;
    font-size: 15px;
    letter-spacing: .01em;
}
.pci-lightbox-cerrar,
.pci-lightbox-nav {
    position: absolute;
    background: none;
    border: 0;
    color: #fff;
    cursor: pointer;
    line-height: 1;
    transition: color .2s ease, transform .2s ease;
    -webkit-tap-highlight-color: transparent;
}
.pci-lightbox-cerrar {
    top: 24px;
    right: 30px;
    font-size: 40px;
}
.pci-lightbox-nav {
    top: 50%;
    transform: translateY(-50%);
    font-size: 60px;
    padding: 0 22px;
}
.pci-lightbox-prev { left: 8px; }
.pci-lightbox-next { right: 8px; }
.pci-lightbox-cerrar:hover,
.pci-lightbox-nav:hover { color: var(--pci-accent); }
.pci-lightbox-prev:hover { transform: translateY(-50%) translateX(-3px); }
.pci-lightbox-next:hover { transform: translateY(-50%) translateX(3px); }

/* ============================================================
 *  CORPUS AUDIOVISUAL
 * ============================================================ */
/* Las imágenes reutilizan .pci-galeria-grid (ver sección Galería). */
.pci-corpus-galeria {
    margin-bottom: 22px;
}

.pci-corpus-items {
    display: grid;
    gap: 22px;
}
.pci-corpus-item {
    border: 1px solid var(--pci-line);
    border-left: 5px solid var(--pci-accent);
    border-radius: 4px;
    overflow: hidden;
    background: #fff;
    transition: box-shadow .3s ease, transform .3s ease;
}
.pci-corpus-item:hover {
    box-shadow: 0 12px 30px rgba(26, 26, 26, .12);
    transform: translateY(-2px);
}
.pci-corpus-cabecera {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 20px;
    background: var(--pci-bg-soft);
    border-bottom: 1px solid var(--pci-line);
}
.pci-corpus-tipo {
    flex: 0 0 auto;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #fff;
    padding: 5px 12px;
    border-radius: 3px;
    background: var(--pci-ink);
    line-height: 1;
}
/* Colores por tipo de archivo */
.pci-corpus-tipo[data-tipo="video"]   { background: #1a1a1a; }
.pci-corpus-tipo[data-tipo="audio"]   { background: #b8336a; }
.pci-corpus-tipo[data-tipo="pdf"]     { background: #a52828; }
.pci-corpus-tipo[data-tipo="doc"]     { background: #1f5fa6; }
.pci-corpus-tipo[data-tipo="hoja"]    { background: #1d7a4d; }
.pci-corpus-tipo[data-tipo="archivo"] { background: #555; }

.pci-corpus-titulo {
    font-size: 17px;
    font-weight: 700;
    color: var(--pci-ink);
    margin: 0;
    line-height: 1.3;
}
.pci-corpus-media {
    padding: 20px;
}
.pci-corpus-media video {
    width: 100%;
    height: auto;
    border-radius: 3px;
    display: block;
}
.pci-corpus-media audio {
    width: 100%;
}

/* Botón de descarga limpio (icono SVG dibujado, sin emoji) */
.pci-corpus-descarga {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    text-decoration: none;
    color: var(--pci-accent);
    background: #fff;
    border: 1.5px solid var(--pci-accent);
    border-radius: 6px;
    padding: 12px 22px;
    transition: background .25s ease, color .25s ease, transform .2s ease;
}
.pci-corpus-descarga:hover {
    background: var(--pci-accent);
    color: #fff;
    transform: translateY(-1px);
}
.pci-corpus-descarga-icono {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.pci-corpus-descarga-cuerpo {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}
.pci-corpus-descarga-texto {
    font-weight: 700;
    font-size: 15px;
    letter-spacing: .01em;
}
.pci-corpus-descarga-meta {
    font-size: 12px;
    opacity: .7;
    margin-top: 2px;
}

/* ============================================================
 *  FUENTES Y BIBLIOGRAFÍA  ·  lista numerada editorial
 * ============================================================ */
.pci-fuentes-lista {
    list-style: none;
    margin: 0;
    padding: 0;
    counter-reset: pci-fuente;
}
.pci-fuente {
    counter-increment: pci-fuente;
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 22px;
    padding: 22px 0;
    border-bottom: 1px solid var(--pci-line);
}
.pci-fuente:last-child { border-bottom: 0; }
.pci-fuente::before {
    content: counter(pci-fuente, decimal-leading-zero);
    flex: 0 0 auto;
    font-family: Georgia, serif;
    font-size: 34px;
    font-weight: 700;
    line-height: 1;
    color: var(--pci-accent);
    min-width: 52px;
    opacity: .9;
}
.pci-fuente-cuerpo {
    padding-top: 4px;
}
.pci-fuente-libro {
    display: block;
    color: var(--pci-ink);
    font-weight: 700;
    font-size: 17px;
    line-height: 1.4;
}
.pci-fuente-origen {
    display: block;
    font-size: 14px;
    color: var(--pci-muted);
    font-style: italic;
    margin-top: 4px;
}

/* ============================================================
 *  DESCRIPTORES  ·  bloques por categoría
 * ============================================================ */
.pci-descriptores-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
}
.pci-descriptor {
    background: #fff;
    border: 1px solid var(--pci-line);
    border-radius: 4px;
    padding: 0;
    overflow: hidden;
}
.pci-descriptor-label {
    display: block;
    font-size: 12px;
    letter-spacing: .1em;
    text-transform: uppercase;
    font-weight: 800;
    color: #fff;
    background: var(--pci-accent);
    padding: 12px 18px;
}
/* Tono distinto de cabecera por categoría para diferenciarlas visualmente */
.pci-descriptor-descriptor_personas  .pci-descriptor-label { background: #7B0040; }
.pci-descriptor-descriptor_entidades .pci-descriptor-label { background: #1a1a1a; }
.pci-descriptor-descriptor_lugar     .pci-descriptor-label { background: #b8336a; }
.pci-descriptor-descriptor_materias  .pci-descriptor-label { background: #5c0030; }

.pci-descriptor-terms {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 16px 18px;
}
.pci-tag {
    display: inline-block;
    padding: 6px 14px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--pci-ink);
    background: var(--pci-bg-soft);
    border: 1px solid var(--pci-line);
    border-radius: 3px;
    text-decoration: none;
    transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.pci-tag:hover {
    background: var(--pci-accent);
    border-color: var(--pci-accent);
    color: #fff;
}

/* ============================================================
 *  NUBE DE CATEGORÍAS
 * ============================================================ */
.pci-nube-tags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}
.pci-nube-tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    font-weight: 600;
    line-height: 1;
    color: var(--pci-accent);
    background: #fff;
    border: 1.5px solid var(--pci-accent);
    border-radius: 30px;
    padding: 9px 16px;
    transition: background .2s ease, color .2s ease, transform .2s ease;
}
.pci-nube-tag:hover {
    background: var(--pci-accent);
    color: #fff;
    transform: translateY(-2px);
}
.pci-nube-tag:hover .pci-nube-count {
    background: rgba(255,255,255,.22);
    color: #fff;
}
.pci-nube-count {
    font-size: .72em;
    font-weight: 700;
    color: var(--pci-accent);
    background: var(--pci-bg-soft);
    border-radius: 20px;
    padding: 2px 8px;
    line-height: 1.4;
    transition: background .2s ease, color .2s ease;
}
/* Escalado por peso de la categoría */
.pci-nube-nivel-1 { font-size: 13px; opacity: .85; }
.pci-nube-nivel-2 { font-size: 15px; }
.pci-nube-nivel-3 { font-size: 17px; }
.pci-nube-nivel-4 { font-size: 20px; }
.pci-nube-nivel-5 { font-size: 24px; background: var(--pci-accent); color: #fff; }
.pci-nube-nivel-5 .pci-nube-count { background: rgba(255,255,255,.22); color: #fff; }

/* ============================================================
 *  MAPA
 * ============================================================ */
.pci-mapa-contenedor {
    border-radius: 4px;
    overflow: hidden;
    border: 1px solid var(--pci-line);
}
.pci-mapa-contenedor img,
.pci-mapa-contenedor iframe,
.pci-mapa-contenedor .cspm_main_div { max-width: 100%; }

/* ============================================================
 *  RESPONSIVE
 * ============================================================ */
@media (max-width: 768px) {
    .pci-ficha { font-size: 16px; }
    .pci-bloque { padding: 36px 0; }
    .pci-bloque-titulo { font-size: 25px; padding-left: 38px; }
    .pci-bloque-titulo::before { width: 24px; }
    .pci-galeria-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .pci-lightbox-nav { font-size: 42px; padding: 0 10px; }
    .pci-lightbox-cerrar { top: 14px; right: 16px; font-size: 34px; }
}
@media (max-width: 460px) {
    .pci-galeria-grid { grid-template-columns: 1fr 1fr; }
}