/*
 * VISTAS · Cuadernos de Teoría Jurídica y Política
 * Hoja única del tema, CSS plano con variables. Marca de la Facultad de Derecho (UNT):
 * rojo #aa182c solo como identidad (la V del nombre, filetes de marca), nunca en botones ni
 * estados; acción en grafito. Regla de formas: lo impreso (tapas) va en ángulo recto; los
 * controles, con el radio de 10 px de la marca.
 */

/* Montserrat variable, autoalojada (SIL OFL). */
@font-face { font-family: "Montserrat"; font-style: normal; font-weight: 400 900; font-display: swap; src: url("../fonts/montserrat-normal-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Montserrat"; font-style: normal; font-weight: 400 900; font-display: swap; src: url("../fonts/montserrat-normal-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Montserrat"; font-style: italic; font-weight: 400 700; font-display: swap; src: url("../fonts/montserrat-italic-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Montserrat"; font-style: italic; font-weight: 400 700; font-display: swap; src: url("../fonts/montserrat-italic-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* ---------- Tokens ---------- */
:root {
    color-scheme: light;
    --fondo: #fafafa;
    --superficie: #ffffff;
    --superficie-2: #f4f4f5;
    --tinta: #18181b;
    --tinta-2: #52525b;
    --tinta-3: #6b6b73;
    --filete: #e4e4e7;
    --filete-fuerte: #18181b;
    --marca: #aa182c;
    --marca-texto: #aa182c;
    --accion: #18181b;
    --accion-texto: #fafafa;
    --accion-hover: #3f3f46;
    --foco: #18181b;
    /* Color de tapa del número (la tapa del N.º 1 en violeta); el texto sobre la tapa va en negro. */
    --tapa: #c96de6;
    --tapa-tinta: #111113;

    --letra: "Montserrat", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
    --radio: 10px;
    --ancho: 1240px;
    --medida: 68ch;
    --margen: clamp(16px, 4vw, 48px);
    --curva: cubic-bezier(0.16, 1, 0.3, 1);
}
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
        color-scheme: dark;
        --fondo: #0e0e10;
        --superficie: #18181b;
        --superficie-2: #1f1f23;
        --tinta: #f4f4f5;
        --tinta-2: #b4b4bc;
        --tinta-3: #9a9aa3;
        --filete: #2a2a2f;
        --filete-fuerte: #f4f4f5;
        --marca: #bb4656;
        --marca-texto: #c86976;
        --accion: #f4f4f5;
        --accion-texto: #18181b;
        --accion-hover: #d4d4d8;
        --foco: #f4f4f5;
    }
}
:root[data-theme="dark"] {
    color-scheme: dark;
    --fondo: #0e0e10;
    --superficie: #18181b;
    --superficie-2: #1f1f23;
    --tinta: #f4f4f5;
    --tinta-2: #b4b4bc;
    --tinta-3: #9a9aa3;
    --filete: #2a2a2f;
    --filete-fuerte: #f4f4f5;
    --marca: #bb4656;
    --marca-texto: #c86976;
    --accion: #f4f4f5;
    --accion-texto: #18181b;
    --accion-hover: #d4d4d8;
    --foco: #f4f4f5;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
    margin: 0;
    background: var(--fondo);
    color: var(--tinta);
    font-family: var(--letra);
    font-size: 1rem;
    line-height: 1.6;
    font-feature-settings: "kern", "liga";
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
img, svg { max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 2px solid var(--foco); outline-offset: 3px; border-radius: 2px; }
::selection { background: var(--tinta); color: var(--fondo); }
h1, h2, h3, h4 { font-weight: 800; line-height: 1.15; letter-spacing: -0.02em; margin: 0 0 0.6em; text-wrap: balance; }
h1 { font-size: clamp(2rem, 1.4rem + 2.4vw, 3.25rem); }
h2 { font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.125rem); }
h3 { font-size: 1.25rem; font-weight: 700; letter-spacing: -0.01em; }
h4 { font-size: 1.0625rem; font-weight: 700; letter-spacing: 0; }
p { margin: 0 0 1em; }
hr { border: 0; border-top: 1px solid var(--filete); margin: 2.5rem 0; }

.pkp_screen_reader, .v-oculto {
    position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.v-contenedor { width: 100%; max-width: var(--ancho); margin-inline: auto; padding-inline: var(--margen); }

/* Salto al contenido */
.cmp_skip_to_content a, .v-saltar {
    position: absolute; left: var(--margen); top: -100px; z-index: 30;
    background: var(--accion); color: var(--accion-texto); padding: 12px 16px; border-radius: var(--radio);
    font-weight: 600; text-decoration: none;
}
.cmp_skip_to_content a:focus, .v-saltar:focus { top: 12px; }
.cmp_skip_to_content { margin: 0; padding: 0; list-style: none; }

/* ---------- Cabecera ---------- */
.v-franja { border-bottom: 1px solid var(--filete); font-size: 0.8125rem; color: var(--tinta-2); }
.v-franja .v-contenedor { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; }
.v-franja a { text-decoration: none; display: inline-flex; align-items: center; gap: 10px; min-height: 44px; }
.v-franja a:hover { color: var(--tinta); }
.v-franja img { height: 26px; width: auto; }
.v-franja__acciones { display: flex; align-items: center; gap: 4px; }
.v-franja a, .v-boton-tema { white-space: nowrap; }
.v-boton-tema {
    font: inherit; font-weight: 600; color: var(--tinta-2); background: none; border: 0; cursor: pointer;
    min-height: 44px; padding: 0 12px; border-radius: var(--radio);
}
.v-boton-tema:hover { color: var(--tinta); background: var(--superficie-2); }
.v-franja__usuario { display: flex; gap: 4px; }
.v-franja__usuario a { padding: 0 12px; border-radius: var(--radio); }
.v-franja__usuario a:hover { background: var(--superficie-2); }

.v-cabecera { border-bottom: 1px solid var(--filete-fuerte); }
.v-cabecera .v-contenedor { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 76px; }

/* El nombre compuesto en Montserrat, con la V en el rojo de la Facultad (sin redibujar el logo). */
.v-marca { display: inline-flex; flex-direction: column; text-decoration: none; line-height: 1; padding-block: 10px; }
.v-marca__nombre { font-size: 1.75rem; font-weight: 900; letter-spacing: 0.06em; }
.v-marca__v { color: var(--marca); }
.v-marca__bajada { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--tinta-2); margin-top: 6px; }
.v-marca:hover .v-marca__nombre { text-decoration: none; }

.v-nav ul { display: flex; gap: 2px; margin: 0; padding: 0; list-style: none; }
.v-nav a {
    display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px;
    font-size: 0.9375rem; font-weight: 600; text-decoration: none; border-radius: var(--radio);
    transition: background-color 0.2s var(--curva);
}
.v-nav a:hover { background: var(--superficie-2); }
.v-nav a[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--tinta); border-radius: 0; }

@media (max-width: 860px) {
    .v-cabecera .v-contenedor { flex-direction: column; align-items: flex-start; gap: 0; padding-bottom: 4px; }
    .v-nav { width: calc(100% + 2 * var(--margen)); margin-inline: calc(-1 * var(--margen)); overflow-x: auto; scrollbar-width: none; -webkit-mask-image: linear-gradient(to right, #000 82%, transparent); mask-image: linear-gradient(to right, #000 82%, transparent); }
    .v-nav ul { padding-inline: calc(var(--margen) - 14px); }
    .v-nav a { white-space: nowrap; }
    .v-franja__facultad .v-largo { display: none; }
}

/* ---------- Estructura de página ---------- */
.pkp_structure_content { width: 100%; max-width: var(--ancho); margin-inline: auto; padding: clamp(32px, 5vw, 64px) var(--margen) clamp(56px, 8vw, 96px); }
.pkp_structure_content.has_sidebar { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 56px; }
.pkp_structure_sidebar { font-size: 0.9375rem; }
@media (max-width: 960px) { .pkp_structure_content.has_sidebar { grid-template-columns: 1fr; } }
.pkp_page_index.pkp_op_index .pkp_structure_content { padding-top: 0; }

/* Contenido corriente (Acerca de, páginas del núcleo) */
.page { max-width: var(--medida); }
.page > h1, .page > h2:first-child { font-size: clamp(2rem, 1.4rem + 2.4vw, 3.25rem); font-weight: 800; }
.page p, .page li { font-size: 1.125rem; line-height: 1.7; }

/* ---------- Lectura larga ---------- */
.v-lectura { font-size: 1.125rem; line-height: 1.7; max-width: var(--medida); }
.v-lectura h2 { font-size: 1.5rem; margin-top: 2.2em; }
.v-lectura h3 { font-size: 1.1875rem; margin-top: 1.8em; }
.v-lectura ul, .v-lectura ol { padding-left: 1.3em; margin: 0 0 1.2em; }
.v-lectura li { margin-bottom: 0.45em; }
.v-lectura li::marker { color: var(--tinta-3); font-weight: 700; }
.v-lectura strong { font-weight: 700; }
.v-lectura blockquote {
    margin: 0 0 2em; padding: 14px 18px; border-left: 3px solid var(--marca);
    background: var(--superficie-2); font-size: 0.9375rem; color: var(--tinta-2);
}
.v-lectura blockquote p { margin: 0; }
.v-lectura a { color: var(--tinta); text-decoration-color: var(--tinta-3); }

/* ---------- Botones ---------- */
.v-boton, .cmp_button, .pkp_button, button.submit, input[type="submit"], .obj_galley_link {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    min-height: 48px; padding: 0 22px; border-radius: var(--radio);
    background: var(--accion); color: var(--accion-texto); border: 1px solid var(--accion);
    font: inherit; font-size: 0.9375rem; font-weight: 700; letter-spacing: 0.01em;
    text-decoration: none; cursor: pointer; white-space: nowrap;
    transition: background-color 0.2s var(--curva), transform 0.15s var(--curva);
}
.v-boton:hover, .cmp_button:hover, .pkp_button:hover, button.submit:hover, input[type="submit"]:hover, .obj_galley_link:hover {
    background: var(--accion-hover); border-color: var(--accion-hover); color: var(--accion-texto);
}
.v-boton:active, .cmp_button:active, .obj_galley_link:active { transform: translateY(1px); }
.v-boton--linea { background: transparent; color: var(--tinta); border-color: var(--filete-fuerte); }
.v-boton--linea:hover { background: var(--superficie-2); color: var(--tinta); border-color: var(--filete-fuerte); }
.v-flecha { transition: transform 0.2s var(--curva); }
.v-boton:hover .v-flecha { transform: translateX(3px); }

/* ---------- Portada ---------- */
.v-portada { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 6vw, 96px); align-items: center; padding-block: clamp(40px, 7vw, 96px); border-bottom: 1px solid var(--filete); }
.v-portada__titulo { font-size: clamp(2.25rem, 1.3rem + 3.6vw, 4.25rem); font-weight: 800; letter-spacing: -0.035em; line-height: 1.04; margin-bottom: 0.45em; }
.v-portada__titulo em { font-style: italic; font-weight: 700; }
.v-portada__bajada { font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.25rem); line-height: 1.6; color: var(--tinta-2); max-width: 44ch; margin-bottom: 2rem; }
.v-portada__acciones { display: flex; flex-wrap: wrap; gap: 12px; }
.v-portada__datos { display: flex; flex-wrap: wrap; gap: 6px 28px; margin: 2.5rem 0 0; padding: 18px 0 0; border-top: 1px solid var(--filete); font-size: 0.875rem; color: var(--tinta-2); list-style: none; }
.v-portada__datos strong { color: var(--tinta); font-weight: 700; margin-right: 4px; }
@media (max-width: 860px) {
    .v-portada { grid-template-columns: 1fr; }
    .v-portada__tapa { order: -1; max-width: 300px; }
}

/* La tapa: la composición de las tapas impresas (número gigante arriba a la derecha, nombre abajo). */
.v-tapa {
    position: relative; display: flex; flex-direction: column; justify-content: space-between;
    aspect-ratio: 1 / 1.414; width: 100%; max-width: 440px; margin-left: auto;
    padding: 9% 9% 8%; background: var(--tapa); color: var(--tapa-tinta); text-decoration: none;
    box-shadow: 0 1px 0 rgb(24 24 27 / 0.04), 0 24px 48px -24px rgb(91 33 120 / 0.45);
    transition: transform 0.4s var(--curva), box-shadow 0.4s var(--curva);
}
a.v-tapa:hover { transform: translateY(-4px) rotate(-0.4deg); box-shadow: 0 1px 0 rgb(24 24 27 / 0.04), 0 36px 64px -28px rgb(91 33 120 / 0.55); }
.v-tapa img.v-tapa__imagen { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.v-tapa__numero { align-self: flex-end; text-align: right; }
.v-tapa__cifra { display: block; font-size: clamp(5rem, 3rem + 7vw, 8.5rem); font-weight: 900; font-style: italic; letter-spacing: -0.06em; line-height: 0.85; }
.v-tapa__anio { display: block; margin-top: 10px; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.08em; }
.v-tapa__pie { display: flex; flex-direction: column; gap: 6px; }
.v-tapa__nombre { font-size: clamp(2rem, 1.2rem + 3vw, 3.25rem); font-weight: 900; letter-spacing: 0.04em; line-height: 0.9; }
.v-tapa__nombre .v-marca__v { color: #8f1023; }
.v-tapa__bajada { font-size: 0.625rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
@media (prefers-reduced-motion: no-preference) {
    .v-tapa { animation: v-aparece 0.9s var(--curva) both; }
    @keyframes v-aparece { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
}

/* Bloques de la portada */
.v-bloque { padding-block: clamp(48px, 7vw, 88px); border-bottom: 1px solid var(--filete); }
.v-bloque:last-child { border-bottom: 0; }
.v-bloque__titulo { font-size: clamp(1.625rem, 1.2rem + 1.4vw, 2.5rem); max-width: 22ch; }
.v-bloque__intro { font-size: 1.125rem; color: var(--tinta-2); max-width: 56ch; margin-bottom: 2.5rem; }

/* Secciones: lista tipográfica en dos columnas, con un filete de marca sobre la que tiene referato. */
.v-secciones { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(32px, 5vw, 72px); margin: 0; padding: 0; list-style: none; }
.v-secciones li { padding: 26px 0 28px; border-top: 1px solid var(--filete-fuerte); }
.v-secciones li.v-secciones__arbitrada { border-top: 3px solid var(--marca); padding-top: 24px; }
.v-secciones h3 { font-size: 1.375rem; margin-bottom: 0.4em; }
.v-secciones p { color: var(--tinta-2); margin: 0; }
.v-secciones .v-etiqueta { margin-top: 14px; }
@media (max-width: 720px) { .v-secciones { grid-template-columns: 1fr; } }

.v-etiqueta { display: inline-block; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--tinta-2); }

/* Principios: acceso abierto, licencia y evaluación, en una franja de superficie. */
.v-principios { background: var(--superficie-2); padding: clamp(32px, 5vw, 64px); border-radius: var(--radio); border-bottom: 0; margin-block: clamp(48px, 7vw, 88px) 0; }
.v-principios__lista { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: clamp(24px, 4vw, 56px); margin: 0; padding: 0; list-style: none; }
.v-principios__lista li { display: flex; flex-direction: column; gap: 8px; }
.v-principios__lista strong { font-size: 1.25rem; font-weight: 800; letter-spacing: -0.01em; }
.v-principios__lista span { color: var(--tinta-2); }
.v-principios__lista li:first-child strong { font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.25rem); line-height: 1.1; }
@media (max-width: 860px) { .v-principios__lista { grid-template-columns: 1fr; } }

/* ---------- Páginas de políticas ---------- */
.v-politica { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.v-politica__indice { position: sticky; top: 24px; font-size: 0.9375rem; }
.v-politica__desplegable { display: none; }
.v-politica__indice h2, .v-politica__desplegable h2 { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--tinta-3); margin: 1.6em 0 0.4em; }
.v-politica__indice h2:first-of-type { margin-top: 0; }
.v-politica__indice ul, .v-politica__desplegable ul { margin: 0; padding: 0; list-style: none; }
.v-politica__indice a, .v-politica__desplegable a { display: block; padding: 7px 0 7px 14px; border-left: 1px solid var(--filete); text-decoration: none; color: var(--tinta-2); line-height: 1.35; }
.v-politica__indice a:hover, .v-politica__desplegable a:hover { color: var(--tinta); border-left-color: var(--tinta-3); }
.v-politica__indice a[aria-current="page"], .v-politica__desplegable a[aria-current="page"] { color: var(--tinta); font-weight: 700; border-left: 3px solid var(--marca); padding-left: 12px; }
.v-politica__titulo { font-size: clamp(2.125rem, 1.4rem + 2.8vw, 3.5rem); letter-spacing: -0.03em; margin-bottom: 0.5em; max-width: 18ch; }
@media (max-width: 900px) {
    .v-politica { grid-template-columns: 1fr; gap: 24px; }
    .v-politica__indice { display: none; }
    .v-politica__desplegable { display: block; border: 1px solid var(--filete); border-radius: var(--radio); padding: 0 16px; }
    .v-politica__desplegable summary { display: flex; align-items: center; min-height: 48px; font-weight: 700; cursor: pointer; }
    .v-politica__desplegable[open] { padding-bottom: 16px; }
}

/* ---------- Pie ---------- */
.v-pie { border-top: 1px solid var(--filete-fuerte); background: var(--superficie); font-size: 0.9375rem; }
.v-pie__arriba { display: grid; grid-template-columns: 1.3fr repeat(3, 1fr); gap: 40px; padding-block: 56px 40px; }
.v-pie__marca p { color: var(--tinta-2); max-width: 32ch; margin-top: 16px; }
.v-pie__marca .v-marca__bajada { line-height: 1.5; max-width: 26ch; }
.v-pie h2 { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--tinta-3); margin: 0 0 12px; }
.v-pie ul { margin: 0; padding: 0; list-style: none; }
.v-pie li a { display: inline-block; padding: 5px 0; text-decoration: none; color: var(--tinta-2); }
.v-pie li a:hover { color: var(--tinta); text-decoration: underline; }
.v-pie__abajo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 40px; padding-block: 28px; border-top: 1px solid var(--filete); color: var(--tinta-2); font-size: 0.8125rem; }
.v-pie__institucion { display: flex; align-items: center; gap: 16px; }
.v-pie__institucion img { height: 52px; width: auto; }
.v-pie__licencia a { color: inherit; }
.v-logo-oscuro { display: none; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .v-logo-claro { display: none; } :root:not([data-theme="light"]) .v-logo-oscuro { display: inline; } }
:root[data-theme="dark"] .v-logo-claro { display: none; }
:root[data-theme="dark"] .v-logo-oscuro { display: inline; }
@media (max-width: 900px) { .v-pie__arriba { grid-template-columns: 1fr 1fr; } .v-pie__marca { grid-column: 1 / -1; } }
@media (max-width: 520px) { .v-pie__arriba { grid-template-columns: 1fr; } }

/* ---------- Marcado del núcleo de OJS ---------- */
.cmp_breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 2rem; padding: 0; list-style: none; font-size: 0.875rem; color: var(--tinta-3); }
.cmp_breadcrumbs a { color: var(--tinta-2); }
.cmp_breadcrumbs .separator { color: var(--filete); }

.cmp_notification { padding: 16px 18px; border: 1px solid var(--filete); border-left: 3px solid var(--tinta); border-radius: var(--radio); background: var(--superficie); margin-bottom: 2rem; }

/* Sumario de un número */
.obj_issue_toc .heading { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 40px; margin-bottom: 3rem; }
.obj_issue_toc .cover img { width: 100%; }
.obj_issue_toc .sections > .section { margin-top: 3rem; }
.obj_issue_toc .section > h2, .obj_issue_toc .section > h3 { font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--tinta-3); padding-bottom: 10px; border-bottom: 1px solid var(--filete-fuerte); }
.cmp_article_list { margin: 0; padding: 0; list-style: none; }
.cmp_article_list > li { padding: 22px 0; border-bottom: 1px solid var(--filete); }
.obj_article_summary .title { font-size: 1.25rem; font-weight: 700; margin: 0 0 6px; letter-spacing: -0.01em; }
.obj_article_summary .title a { text-decoration: none; }
.obj_article_summary .title a:hover { text-decoration: underline; }
.obj_article_summary .subtitle { display: block; font-weight: 500; color: var(--tinta-2); font-size: 1rem; margin-top: 4px; }
.obj_article_summary .meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 24px; color: var(--tinta-2); font-size: 0.9375rem; }
.obj_article_summary .galleys_links { display: flex; gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; }
.obj_galley_link { min-height: 40px; padding: 0 14px; font-size: 0.8125rem; background: transparent; color: var(--tinta); border-color: var(--filete-fuerte); }
.obj_galley_link:hover { background: var(--superficie-2); color: var(--tinta); border-color: var(--filete-fuerte); }
@media (max-width: 720px) { .obj_issue_toc .heading { grid-template-columns: 1fr; } .obj_issue_toc .cover { max-width: 220px; } }

/* Archivo */
.issues_archive { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 40px 32px; margin: 0; padding: 0; list-style: none; }
.obj_issue_summary .cover img { width: 100%; aspect-ratio: 1 / 1.414; object-fit: cover; }
.obj_issue_summary h2 { font-size: 1.125rem; margin: 12px 0 4px; }
.obj_issue_summary h2 a { text-decoration: none; }
.obj_issue_summary .series { display: block; font-weight: 600; color: var(--tinta-2); font-size: 0.9375rem; }

/* Artículo (estilos de base; la plantilla propia llega con el número de demostración) */
.obj_article_details .page_title { font-size: clamp(1.875rem, 1.3rem + 2.2vw, 3rem); max-width: 26ch; }
.obj_article_details .row { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 56px; }
.obj_article_details .main_entry .item { margin-bottom: 2.25rem; }
.obj_article_details .main_entry .label, .obj_article_details .entry_details .label { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--tinta-3); margin-bottom: 8px; }
.obj_article_details .abstract { font-size: 1.125rem; line-height: 1.7; max-width: var(--medida); }
.obj_article_details .authors { margin: 0 0 2rem; padding: 0; list-style: none; }
.obj_article_details .authors li { margin-bottom: 10px; }
.obj_article_details .authors .name { font-weight: 700; }
.obj_article_details .authors .affiliation { display: block; color: var(--tinta-2); font-size: 0.9375rem; }
.obj_article_details .entry_details .item { padding: 16px 0; border-top: 1px solid var(--filete); }
@media (max-width: 960px) { .obj_article_details .row { grid-template-columns: 1fr; } }

/* Búsqueda y formularios */
.pkp_form fieldset, .cmp_form fieldset { border: 0; padding: 0; margin: 0 0 1.5rem; }
label, .label { font-weight: 600; font-size: 0.9375rem; }
input[type="text"], input[type="email"], input[type="password"], input[type="search"], input[type="date"], select, textarea {
    font: inherit; font-size: 1rem; color: var(--tinta); background: var(--superficie);
    border: 1px solid var(--tinta-3); border-radius: var(--radio); min-height: 48px; padding: 10px 14px; width: 100%;
}
textarea { min-height: 120px; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--foco); outline-offset: 1px; border-color: var(--foco); }
.page_search .search_input { display: flex; gap: 12px; align-items: flex-end; }
.page_search .search_advanced { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin-top: 16px; }
.page_search .search_results { margin-top: 2.5rem; padding: 0; list-style: none; }

.cmp_pagination { display: flex; gap: 12px; margin-top: 2rem; }

/* ---------- Varios ---------- */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}
@media print {
    .v-franja, .v-nav, .v-pie, .v-politica__indice { display: none; }
    body { background: #fff; color: #000; }
}
