/* ------------------------------------------------------------------
   Archivo historico TJACCO — componentes propios del acervo.
   Se apoya en las hojas de estilo originales del portal; aqui solo se
   define lo que el sitio anterior no tenia: fichas, tablas de documentos
   y el aviso de acervo congelado.
   Paleta tomada del portal: verde salvia #4e897f, arena #e7bc7f,
   dorado del logotipo #d2a15e y negro del pie.
   ------------------------------------------------------------------ */

/* Tipografia.
   El portal declaraba `font-family: Panton !important` en el cuerpo y cargaba
   esa fuente desde un CDN externo (db.onlinewebfonts.com) que el archivo no
   puede usar. La unica copia local en el servidor es "PantonDemo", una version
   de demostracion que SOLO contiene mayusculas: aplicarla al texto corrido
   dejaria todo el acervo en versales e ilegible.
   Solucion: la demo se reserva para el titulo de seccion, donde las versales
   son intencionales, y el resto usa una pila de palo seco equivalente. */
@font-face {
  font-family: "PantonCaps";
  src: url("assets/font/panton/PantonDemo-Black.otf") format("opentype");
  font-weight: 700;
  font-display: swap;
}

/* Open Sans es la familia principal del tema (styles.op-consulting.css la
   invoca seis veces) y ahora esta autoalojada en _sitio/fonts. */
.ah-cuerpo, .ah-cuerpo p, .ah-cuerpo td, .ah-cuerpo th, .ah-cuerpo h2,
.ah-aviso, .ah-ficha, .ah-migas, .ah-titulo,
#preFooter, #preFooter p, .primary-navigation {
  font-family: "Open Sans", "Segoe UI", Roboto, "Helvetica Neue",
               Arial, sans-serif !important;
}

/* ------------------------------------------------------------------
   Contenido restaurado del portal: se deja intacto.
   Las reglas de arriba NO deben alcanzarlo, o cambiarian la tipografia
   y los colores que el tema original define para esas paginas.
   ------------------------------------------------------------------ */
.ah-original { }
.ah-barra-aviso { background: #fdf7ec; border-bottom: 1px solid var(--ah-arena); }
.ah-barra-aviso .ah-aviso {
  margin: 0;
  border: 0;
  border-left: 4px solid var(--ah-oro);
  border-radius: 0;
  padding: 12px 16px;
  font-family: "Open Sans", "Segoe UI", Arial, sans-serif;
}

:root {
  --ah-verde: #4e897f;
  --ah-verde-osc: #3d6d65;
  --ah-arena: #e7bc7f;
  --ah-oro: #d2a15e;
  --ah-tinta: #2f3336;
  --ah-suave: #6b7378;
  --ah-linea: #e3e6e8;
  --ah-fondo: #f6f7f8;
}

body { background-color: #fff; }

/* --- franja de titulo de seccion ---
   La cabecera del portal esta posicionada en absoluto sobre el contenido
   (en el sitio original iba encima del carrusel). Aqui la franja de titulo
   hace de fondo: su relleno superior deja libre la altura de la cabecera. */
.ah-titulo {
  background: var(--ah-tinta);
  padding: 116px 0 26px;
  border-bottom: 4px solid var(--ah-oro);
}
@media (max-width: 991px) {
  .ah-titulo { padding-top: 145px; }
}

/* !important porque las hojas del tema original fijan el color de los
   encabezados con mayor especificidad. */
.ah-titulo h1 {
  margin: 0 0 6px;
  font-family: "PantonCaps", "Segoe UI", Arial, sans-serif;
  font-size: 27px;
  font-weight: 700;
  letter-spacing: .01em;
  line-height: 1.25;
  color: #ffffff !important;
}
.ah-titulo p {
  margin: 0;
  font-size: 14px;
  color: #c4cbcf !important;
}

.ah-cuerpo { padding: 28px 15px 60px; }

/* ------------------------------------------------------------------
   Portada: reproduce la estructura del inicio del portal.
   ------------------------------------------------------------------ */

/* Banner. El portal usaba Revolution Slider a pantalla completa con una
   sola diapositiva estatica; aqui se resuelve con CSS. */
.ah-hero { position: relative; height: 100vh; min-height: 420px; overflow: hidden; }
.ah-hero-img {
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
.ah-hero .tp-bannertimer {
  position: absolute; left: 0; right: 0; bottom: 0;
  height: 2px; background: rgba(255,255,255,.5);
}

/* Nota sobre el contenido que vivia en la base de datos. */
.ah-nota-bd {
  font-size: 13px;
  color: var(--ah-suave);
  font-style: italic;
  max-width: 70ch;
  margin: 0 auto 18px;
}
#documentos .ah-nota-bd, .ah-portada .ah-nota-bd { margin-left: 0; }

.ah-tarjeta-noticia { min-height: 210px; }
.ah-aviso-img { max-width: 100%; height: auto; border: 1px solid var(--ah-linea); }

/* Los bloques de la portada respiran como en el portal. */
.ah-portada #noticias-section { padding: 10px 0 30px; }
.ah-portada #boletines,
.ah-portada #documentos { padding: 30px 0; }
.ah-portada #calendario { padding: 10px 0 40px; }
.ah-portada h1, .ah-portada h2, .ah-portada h3 { color: var(--ah-tinta); }
.ah-portada .astrodivider { margin: 0 auto 18px; }

@media (max-width: 767px) {
  .ah-hero { height: 58vh; }
}

/* --- migas de pan --- */
.ah-migas { font-size: 13px; margin-bottom: 18px; color: var(--ah-suave); }
.ah-migas a { color: var(--ah-verde); text-decoration: none; }
.ah-migas a:hover { text-decoration: underline; }
.ah-migas em { font-style: normal; color: #b3b9bd; margin: 0 4px; }
.ah-migas span { color: var(--ah-tinta); }

/* --- aviso de acervo congelado --- */
.ah-aviso {
  background: #fdf7ec;
  border: 1px solid var(--ah-arena);
  border-left: 4px solid var(--ah-oro);
  border-radius: 3px;
  padding: 14px 18px;
  margin-bottom: 26px;
  font-size: 14px;
  color: #5a4a2f;
  line-height: 1.6;
}
.ah-aviso strong { display: block; margin-bottom: 3px; color: #8a6620; }

/* --- fichas de seccion --- */
.ah-fichas {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
}
.ah-ficha {
  background: #fff;
  border: 1px solid var(--ah-linea);
  border-top: 3px solid var(--ah-verde);
  border-radius: 3px;
  padding: 17px 19px;
  transition: box-shadow .15s ease, border-color .15s ease;
}
.ah-ficha:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,.09);
  border-top-color: var(--ah-oro);
}
.ah-ficha a {
  font-size: 16px;
  font-weight: 700;
  color: var(--ah-tinta);
  text-decoration: none;
  display: block;
}
.ah-ficha a:hover { color: var(--ah-verde); }
.ah-ficha p {
  margin: 8px 0 0;
  font-size: 13.5px;
  color: var(--ah-suave);
  line-height: 1.55;
}
.ah-ficha .ah-conteo {
  display: block;
  margin-top: 11px;
  padding-top: 9px;
  border-top: 1px solid var(--ah-linea);
  font-size: 12.5px;
  color: var(--ah-suave);
}

/* --- encabezado de grupo --- */
.ah-cuerpo h2 {
  font-size: 18px;
  font-weight: 700;
  color: var(--ah-tinta) !important;
  margin: 34px 0 13px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--ah-linea);
  position: relative;
}
.ah-cuerpo h2::after {
  content: "";
  position: absolute;
  left: 0; bottom: -2px;
  width: 52px; height: 2px;
  background: var(--ah-oro);
}

/* --- tabla de documentos --- */
.ah-tabla { overflow-x: auto; border: 1px solid var(--ah-linea); border-radius: 3px; }
.ah-tabla table {
  border-collapse: collapse;
  width: 100%;
  min-width: 680px;
  font-size: 13.5px;
  margin: 0;
}
.ah-tabla th {
  background: var(--ah-verde);
  color: #fff;
  text-align: left;
  padding: 11px 14px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  white-space: nowrap;
  border: 0;
}
.ah-tabla td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--ah-linea);
  vertical-align: top;
  color: var(--ah-tinta);
}
.ah-tabla tbody tr:nth-child(even) { background: var(--ah-fondo); }
.ah-tabla tbody tr:hover { background: #eef4f3; }
.ah-tabla tr:last-child td { border-bottom: 0; }
.ah-tabla td a { color: var(--ah-tinta); text-decoration: none; font-weight: 600; }
.ah-tabla td a:hover { color: var(--ah-verde); text-decoration: underline; }
.ah-tabla td.ah-num { text-align: right; white-space: nowrap; color: var(--ah-suave); }
.ah-tabla code.ah-hash {
  font-family: Consolas, "SFMono-Regular", ui-monospace, monospace;
  font-size: 11.5px;
  color: var(--ah-suave);
  background: none;
  padding: 0;
}

/* --- tablas de transparencia (muchas columnas) --- */
.ah-tabla-ancha table { min-width: 100%; width: max-content; }
.ah-tabla-ancha td {
  max-width: 320px;
  white-space: normal;
  word-break: break-word;
  font-size: 13px;
}
.ah-tabla-ancha th { font-size: 11px; max-width: 240px; white-space: normal; }
.ah-vacio { color: #b4bbc0; }
/* Documento referido en la obligacion pero nunca publicado en el portal. */
.ah-falta {
  color: #9a6a1f;
  border-bottom: 1px dotted #c9a05a;
  cursor: help;
}

/* --- bloque destacado --- */
.ah-destacado {
  background: linear-gradient(180deg, #f2f7f6 0%, #fff 100%);
  border: 1px solid var(--ah-linea);
  border-left: 4px solid var(--ah-verde);
  border-radius: 4px;
  padding: 20px 24px;
  margin: 0 0 26px;
}
.ah-destacado h2 {
  margin: 0 0 8px !important;
  border: 0 !important;
  padding: 0 !important;
  font-size: 17px;
}
.ah-destacado h2::after { display: none; }
.ah-destacado p { margin: 0 0 10px; font-size: 14.5px; color: #454b4f; }
.ah-boton {
  display: inline-block;
  background: var(--ah-verde);
  color: #fff !important;
  text-decoration: none;
  font-weight: 600;
  font-size: 14px;
  padding: 10px 22px;
  border-radius: 30px;
  transition: background .15s ease;
}
.ah-boton:hover { background: var(--ah-verde-osc); color: #fff !important; }

/* --- cabecera informativa de cada periodo (como la mostraba el portal) --- */
.ah-ficha-periodo {
  background: var(--ah-fondo);
  border: 1px solid var(--ah-linea);
  border-left: 3px solid var(--ah-verde);
  border-radius: 3px;
  padding: 16px 20px;
  margin-bottom: 20px;
}
.ah-datos {
  display: grid;
  gap: 12px 26px;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  margin: 0 0 14px;
}
.ah-datos dt {
  font-size: 11.5px;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--ah-suave);
  font-weight: 700;
  margin: 0 0 3px;
}
.ah-datos dd { margin: 0; font-size: 14px; color: var(--ah-tinta); font-weight: 600; }

/* --- nota recuperada de la base de datos --- */
.ah-nota {
  font-size: 15.5px;
  line-height: 1.75;
  color: #3c4247;
  max-width: 82ch;
}
.ah-nota p { margin: 0 0 14px; }
.ah-nota img { max-width: 100%; height: auto; margin: 12px 0; }
.ah-nota a { color: var(--ah-verde); }
.ah-nota table { max-width: 100%; }
.ah-nota h1, .ah-nota h2, .ah-nota h3 { font-size: 19px; margin: 22px 0 10px; }

.ah-galeria {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  margin-top: 12px;
}
.ah-galeria img {
  width: 100%;
  height: 165px;
  object-fit: cover;
  border: 1px solid var(--ah-linea);
  border-radius: 3px;
  transition: transform .15s ease;
}
.ah-galeria a:hover img { transform: scale(1.02); }

/* --- texto corrido --- */
.ah-cuerpo > p { font-size: 15px; color: #454b4f; line-height: 1.7; max-width: 78ch; }
.ah-cuerpo > p a { color: var(--ah-verde); }

@media (max-width: 767px) {
  .ah-titulo h1 { font-size: 20px; }
  .ah-cuerpo { padding-bottom: 40px; }
}

    /* ---- buscador (buscar.html) y descripciones de listados ---- */
    .ah-desc { display: block; margin-top: 3px; font-size: 13px; line-height: 1.45; color: var(--ah-suave); }
    .ah-buscador { margin: 8px 0 18px; }
    .ah-buscador label { display: block; font-weight: 600; margin-bottom: 6px; color: var(--ah-tinta); }
    .ah-buscador-fila { display: flex; gap: 8px; }
    .ah-buscador-fila input { flex: 1; min-width: 0; font-size: 17px; padding: 10px 12px;
      border: 2px solid var(--ah-verde); border-radius: 4px; }
    .ah-buscador-fila button { font-size: 16px; padding: 10px 20px; border: 0; border-radius: 4px;
      background: var(--ah-verde); color: #fff; cursor: pointer; }
    .ah-buscador-fila button:hover { background: var(--ah-verde-osc); }
    .ah-buscador-ayuda { font-size: 13px; color: var(--ah-suave); margin: 8px 0 0; }
    .ah-estado { font-weight: 600; color: var(--ah-tinta); }
    .ah-resultados { list-style: none; padding: 0; margin: 0 0 24px; }
    .ah-res { padding: 14px 0; border-bottom: 1px solid var(--ah-linea); }
    .ah-res-meta { font-size: 12px; color: var(--ah-suave); text-transform: uppercase; letter-spacing: .03em; }
    .ah-res-tipo { color: var(--ah-verde-osc); font-weight: 700; }
    .ah-res-titulo { display: block; font-size: 17px; font-weight: 600; margin: 2px 0 4px; word-break: break-word; }
    .ah-res-frag { margin: 0; font-size: 14px; line-height: 1.5; color: var(--ah-tinta); word-break: break-word; }
    .ah-res-frag mark { background: #fbe7b8; padding: 0 2px; }
    .ah-res-nota { margin: 4px 0 0; font-size: 13px; color: #8a6620; }
    @media (max-width: 575px) { .ah-buscador-fila { flex-direction: column; } }
    .ah-buscador-portada { margin: 18px 0 8px; }

    /* ---- buscador (buscar.html) y descripciones de listados ---- */
    .ah-desc { display: block; margin-top: 3px; font-size: 13px; line-height: 1.45; color: var(--ah-suave); }
    .ah-buscador { margin: 8px 0 18px; }
    .ah-buscador label { display: block; font-weight: 600; margin-bottom: 6px; color: var(--ah-tinta); }
    .ah-buscador-fila { display: flex; gap: 8px; }
    .ah-buscador-fila input { flex: 1; min-width: 0; font-size: 17px; padding: 10px 12px;
      border: 2px solid var(--ah-verde); border-radius: 4px; }
    .ah-buscador-fila button { font-size: 16px; padding: 10px 20px; border: 0; border-radius: 4px;
      background: var(--ah-verde); color: #fff; cursor: pointer; }
    .ah-buscador-fila button:hover { background: var(--ah-verde-osc); }
    .ah-buscador-ayuda { font-size: 13px; color: var(--ah-suave); margin: 8px 0 0; }
    .ah-estado { font-weight: 600; color: var(--ah-tinta); }
    .ah-resultados { list-style: none; padding: 0; margin: 0 0 24px; }
    .ah-res { padding: 14px 0; border-bottom: 1px solid var(--ah-linea); }
    .ah-res-meta { font-size: 12px; color: var(--ah-suave); text-transform: uppercase; letter-spacing: .03em; }
    .ah-res-tipo { color: var(--ah-verde-osc); font-weight: 700; }
    .ah-res-titulo { display: block; font-size: 17px; font-weight: 600; margin: 2px 0 4px; word-break: break-word; }
    .ah-res-frag { margin: 0; font-size: 14px; line-height: 1.5; color: var(--ah-tinta); word-break: break-word; }
    .ah-res-frag mark { background: #fbe7b8; padding: 0 2px; }
    .ah-res-nota { margin: 4px 0 0; font-size: 13px; color: #8a6620; }
    @media (max-width: 575px) { .ah-buscador-fila { flex-direction: column; } }
    

    /* ---- buscador (buscar.html) y descripciones de listados ---- */
    .ah-desc { display: block; margin-top: 3px; font-size: 13px; line-height: 1.45; color: var(--ah-suave); }
    .ah-buscador { margin: 8px 0 18px; }
    .ah-buscador label { display: block; font-weight: 600; margin-bottom: 6px; color: var(--ah-tinta); }
    .ah-buscador-fila { display: flex; gap: 8px; }
    .ah-buscador-fila input { flex: 1; min-width: 0; font-size: 17px; padding: 10px 12px;
      border: 2px solid var(--ah-verde); border-radius: 4px; }
    .ah-buscador-fila button { font-size: 16px; padding: 10px 20px; border: 0; border-radius: 4px;
      background: var(--ah-verde); color: #fff; cursor: pointer; }
    .ah-buscador-fila button:hover { background: var(--ah-verde-osc); }
    .ah-buscador-ayuda { font-size: 13px; color: var(--ah-suave); margin: 8px 0 0; }
    .ah-estado { font-weight: 600; color: var(--ah-tinta); }
    .ah-resultados { list-style: none; padding: 0; margin: 0 0 24px; }
    .ah-res { padding: 14px 0; border-bottom: 1px solid var(--ah-linea); }
    .ah-res-meta { font-size: 12px; color: var(--ah-suave); text-transform: uppercase; letter-spacing: .03em; }
    .ah-res-tipo { color: var(--ah-verde-osc); font-weight: 700; }
    .ah-res-titulo { display: block; font-size: 17px; font-weight: 600; margin: 2px 0 4px; word-break: break-word; }
    .ah-res-frag { margin: 0; font-size: 14px; line-height: 1.5; color: var(--ah-tinta); word-break: break-word; }
    .ah-res-frag mark { background: #fbe7b8; padding: 0 2px; }
    .ah-res-nota { margin: 4px 0 0; font-size: 13px; color: #8a6620; }
    @media (max-width: 575px) { .ah-buscador-fila { flex-direction: column; } }
    

    /* ---- buscador (buscar.html) y descripciones de listados ---- */
    .ah-desc { display: block; margin-top: 3px; font-size: 13px; line-height: 1.45; color: var(--ah-suave); }
    .ah-buscador { margin: 8px 0 18px; }
    .ah-buscador label { display: block; font-weight: 600; margin-bottom: 6px; color: var(--ah-tinta); }
    .ah-buscador-fila { display: flex; gap: 8px; }
    .ah-buscador-fila input { flex: 1; min-width: 0; font-size: 17px; padding: 10px 12px;
      border: 2px solid var(--ah-verde); border-radius: 4px; }
    .ah-buscador-fila button { font-size: 16px; padding: 10px 20px; border: 0; border-radius: 4px;
      background: var(--ah-verde); color: #fff; cursor: pointer; }
    .ah-buscador-fila button:hover { background: var(--ah-verde-osc); }
    .ah-buscador-ayuda { font-size: 13px; color: var(--ah-suave); margin: 8px 0 0; }
    .ah-estado { font-weight: 600; color: var(--ah-tinta); }
    .ah-resultados { list-style: none; padding: 0; margin: 0 0 24px; }
    .ah-res { padding: 14px 0; border-bottom: 1px solid var(--ah-linea); }
    .ah-res-meta { font-size: 12px; color: var(--ah-suave); text-transform: uppercase; letter-spacing: .03em; }
    .ah-res-tipo { color: var(--ah-verde-osc); font-weight: 700; }
    .ah-res-titulo { display: block; font-size: 17px; font-weight: 600; margin: 2px 0 4px; word-break: break-word; }
    .ah-res-frag { margin: 0; font-size: 14px; line-height: 1.5; color: var(--ah-tinta); word-break: break-word; }
    .ah-res-frag mark { background: #fbe7b8; padding: 0 2px; }
    .ah-res-nota { margin: 4px 0 0; font-size: 13px; color: #8a6620; }
    @media (max-width: 575px) { .ah-buscador-fila { flex-direction: column; } }
    

    /* ---- buscador (buscar.html) y descripciones de listados ---- */
    .ah-desc { display: block; margin-top: 3px; font-size: 13px; line-height: 1.45; color: var(--ah-suave); }
    .ah-buscador { margin: 8px 0 18px; }
    .ah-buscador label { display: block; font-weight: 600; margin-bottom: 6px; color: var(--ah-tinta); }
    .ah-buscador-fila { display: flex; gap: 8px; }
    .ah-buscador-fila input { flex: 1; min-width: 0; font-size: 17px; padding: 10px 12px;
      border: 2px solid var(--ah-verde); border-radius: 4px; }
    .ah-buscador-fila button { font-size: 16px; padding: 10px 20px; border: 0; border-radius: 4px;
      background: var(--ah-verde); color: #fff; cursor: pointer; }
    .ah-buscador-fila button:hover { background: var(--ah-verde-osc); }
    .ah-buscador-ayuda { font-size: 13px; color: var(--ah-suave); margin: 8px 0 0; }
    .ah-estado { font-weight: 600; color: var(--ah-tinta); }
    .ah-resultados { list-style: none; padding: 0; margin: 0 0 24px; }
    .ah-res { padding: 14px 0; border-bottom: 1px solid var(--ah-linea); }
    .ah-res-meta { font-size: 12px; color: var(--ah-suave); text-transform: uppercase; letter-spacing: .03em; }
    .ah-res-tipo { color: var(--ah-verde-osc); font-weight: 700; }
    .ah-res-titulo { display: block; font-size: 17px; font-weight: 600; margin: 2px 0 4px; word-break: break-word; }
    .ah-res-frag { margin: 0; font-size: 14px; line-height: 1.5; color: var(--ah-tinta); word-break: break-word; }
    .ah-res-frag mark { background: #fbe7b8; padding: 0 2px; }
    .ah-res-nota { margin: 4px 0 0; font-size: 13px; color: #8a6620; }
    @media (max-width: 575px) { .ah-buscador-fila { flex-direction: column; } }
    

    /* ---- buscador (buscar.html) y descripciones de listados ---- */
    .ah-desc { display: block; margin-top: 3px; font-size: 13px; line-height: 1.45; color: var(--ah-suave); }
    .ah-buscador { margin: 8px 0 18px; }
    .ah-buscador label { display: block; font-weight: 600; margin-bottom: 6px; color: var(--ah-tinta); }
    .ah-buscador-fila { display: flex; gap: 8px; }
    .ah-buscador-fila input { flex: 1; min-width: 0; font-size: 17px; padding: 10px 12px;
      border: 2px solid var(--ah-verde); border-radius: 4px; }
    .ah-buscador-fila button { font-size: 16px; padding: 10px 20px; border: 0; border-radius: 4px;
      background: var(--ah-verde); color: #fff; cursor: pointer; }
    .ah-buscador-fila button:hover { background: var(--ah-verde-osc); }
    .ah-buscador-ayuda { font-size: 13px; color: var(--ah-suave); margin: 8px 0 0; }
    .ah-estado { font-weight: 600; color: var(--ah-tinta); }
    .ah-resultados { list-style: none; padding: 0; margin: 0 0 24px; }
    .ah-res { padding: 14px 0; border-bottom: 1px solid var(--ah-linea); }
    .ah-res-meta { font-size: 12px; color: var(--ah-suave); text-transform: uppercase; letter-spacing: .03em; }
    .ah-res-tipo { color: var(--ah-verde-osc); font-weight: 700; }
    .ah-res-titulo { display: block; font-size: 17px; font-weight: 600; margin: 2px 0 4px; word-break: break-word; }
    .ah-res-frag { margin: 0; font-size: 14px; line-height: 1.5; color: var(--ah-tinta); word-break: break-word; }
    .ah-res-frag mark { background: #fbe7b8; padding: 0 2px; }
    .ah-res-nota { margin: 4px 0 0; font-size: 13px; color: #8a6620; }
    @media (max-width: 575px) { .ah-buscador-fila { flex-direction: column; } }
    