/* Programa académico — página de una categoría (/programa-academico/{slug}).
 * Complementa sitio.css; misma escala (1rem = 10 pt del diseño). No hay
 * artboard de esta página: composición nuestra con las piezas del sitio
 * (paleta, etiqueta, patrones, tarjetas de la rejilla de la portada).
 * Tres cortes como el resto del sitio: móvil (< 768), artboard de 1025
 * (768–1199) y composición propia ≥ 1200 px dentro de `--st-lado`. */

/* ---------- Cabecera de la categoría ---------- */

.pg-cabeza {
  position: relative;
  padding: 3.4rem 3rem 4rem 2.5rem;
  background: var(--st-fondo-suave);
  --st-sangre: var(--st-fondo-suave);
  overflow: hidden;
}
.pg-cabeza__interior { position: relative; }
span.pg-cabeza__patron {
  top: -9rem;
  right: -13rem;
  opacity: .9;
}
.pg-volver {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  font-weight: 700;
  font-size: 1.3rem;
  line-height: 2rem;
  letter-spacing: .115em;
  text-transform: uppercase;
  color: var(--st-teal);
  text-decoration: none;
}
.pg-volver img {
  width: 1.4rem;
  height: 1.4rem;
  transform: rotate(-135deg);
  transition: translate .2s ease;
}
.pg-volver:hover img,
.pg-volver:focus-visible img { translate: -0.3rem 0; }

.pg-titulo {
  margin-top: 2.4rem;
  font-weight: 700;
  font-size: 3.2rem;
  line-height: 3.8rem;
  color: var(--st-azul);
  white-space: pre-line;
}
.pg-titulo::before {
  content: '';
  display: block;
  width: 5rem;
  height: 0.5rem;
  margin-bottom: 1.8rem;
  border-radius: 0.25rem;
  background: var(--st-verde);
}
.pg-titulo__sub {
  display: block;
  margin-top: 0.4rem;
  font-weight: 300;
  font-size: 2rem;
  line-height: 2.6rem;
  white-space: normal;
}
.pg-descripcion {
  margin-top: 2rem;
  max-width: 62rem;
}
.pg-descripcion p {
  font-size: 1.6rem;
  line-height: 2.5rem;
  color: var(--st-tinta);
}
.pg-descripcion p + p { margin-top: 1.6rem; }

.pg-cabeza__pie {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2rem 3rem;
  margin-top: 3rem;
}
.pg-resumen {
  font-size: 1.5rem;
  line-height: 2.2rem;
  color: var(--st-tinta);
}
.pg-resumen strong { color: var(--st-azul); }
.pg-pdf { padding-left: 2.6rem; padding-right: 0.6rem; }

/* Descarga en móvil: barra pegada abajo (sticky dentro de .pg-pagina, así
   nunca tapa el pie). En la cabecera el botón sólo se muestra ≥ 768 px. */
.pg-pdf--cabeza { display: none; }
.pg-descarga {
  position: sticky;
  bottom: 0;
  z-index: 5;
  padding: 1.2rem 2.5rem calc(1.2rem + env(safe-area-inset-bottom));
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 -0.4rem 1.6rem rgba(19, 51, 62, .12);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.pg-descarga__boton { display: flex; width: 100%; height: 5.6rem; font-size: 1.5rem; }

/* ---------- Agenda por día ---------- */

.pg-agenda { padding: 4rem 3rem 5rem 2.5rem; }
.pg-dia + .pg-dia { margin-top: 4.5rem; }
.pg-dia__titulo {
  display: flex;
  align-items: center;
  gap: 1.4rem;
  padding-bottom: 1.6rem;
  border-bottom: 1px solid #d1dee2;
}
.pg-dia__numero {
  flex: none;
  display: grid;
  place-items: center;
  width: 5.6rem;
  height: 5.6rem;
  border-radius: 50%;
  background: var(--st-azul);
  color: #fff;
  font-weight: 700;
  font-size: 2.4rem;
  line-height: 1;
}
.pg-dia__texto { display: flex; flex-direction: column; }
.pg-dia__semana {
  font-weight: 700;
  font-size: 1.4rem;
  line-height: 2rem;
  letter-spacing: .115em;
  text-transform: uppercase;
  color: var(--st-teal);
}
.pg-dia__fecha {
  font-weight: 700;
  font-size: 2rem;
  line-height: 2.6rem;
  color: var(--st-azul);
}

.pg-lista {
  display: grid;
  gap: 1.6rem;
  margin-top: 2.2rem;
}
.pg-actividad {
  position: relative;
  padding: 2.2rem 2.4rem 2.4rem;
  border-radius: 2.4rem;
  background: #fff;
  box-shadow: 0 0.4rem 1.6rem rgba(19, 51, 62, .10), 0 0 0 1px rgba(19, 51, 62, .05);
  transition: transform .22s cubic-bezier(.2, .7, .2, 1), box-shadow .22s cubic-bezier(.2, .7, .2, 1);
}
.pg-actividad::before {
  content: '';
  position: absolute;
  left: 0;
  top: 2.4rem;
  bottom: 2.4rem;
  width: 0.4rem;
  border-radius: 0 0.2rem 0.2rem 0;
  background: var(--st-verde);
}
.pg-actividad:hover { transform: translateY(-0.2rem); box-shadow: 0 1rem 2.2rem rgba(19, 51, 62, .14), 0 0 0 1px rgba(19, 51, 62, .05); }
.pg-actividad__hora {
  font-weight: 700;
  font-size: 1.5rem;
  line-height: 2.2rem;
  color: var(--st-teal);
  font-variant-numeric: tabular-nums;
}
.pg-actividad__sin-hora { font-weight: 300; color: #5f7a83; }
.pg-actividad__titulo {
  margin-top: 0.6rem;
  font-weight: 700;
  font-size: 1.9rem;
  line-height: 2.5rem;
  color: var(--st-azul);
  text-wrap: balance;
}
.pg-actividad__descripcion {
  margin-top: 1rem;
  font-size: 1.5rem;
  line-height: 2.4rem;
  color: var(--st-tinta);
}
.pg-actividad__lugar {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  margin-top: 0.2rem;
  font-weight: 700;
  font-size: 1.3rem;
  line-height: 2rem;
  color: var(--st-teal);
}
.pg-actividad__lugar svg { flex: none; width: 1.6rem; height: 1.6rem; margin-top: 0.2rem; }

.pg-vacio {
  padding: 4rem 3rem;
  border-radius: 2.4rem;
  background: var(--st-fondo-suave);
  text-align: center;
}
.pg-vacio__titulo {
  margin: 1rem 0 0.6rem;
  font-weight: 700;
  font-size: 2.2rem;
  line-height: 2.8rem;
  color: var(--st-azul);
}

/* Moderación y ponencias (simposios, mesas, conversatorios: de 1 a 8+ por evento) */
.pg-actividad__cuando { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.2rem 1.6rem; }
.pg-actividad__modera {
  margin-top: 0.8rem;
  font-size: 1.4rem;
  line-height: 2.1rem;
  color: #4b6670;
}
.pg-ponencias {
  margin-top: 1.4rem;
  border-top: 1px solid #e3ecee;
}
.pg-ponencia {
  padding: 1.1rem 0 1.1rem 1.6rem;
  border-bottom: 1px solid #e3ecee;
  position: relative;
}
.pg-ponencia::before {
  content: '';
  position: absolute;
  left: 0;
  top: 1.85rem;
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 50%;
  background: var(--st-verde);
}
.pg-ponencia__titulo {
  display: block;
  font-size: 1.45rem;
  line-height: 2.2rem;
  color: var(--st-tinta);
}
.pg-ponencia__quien {
  display: block;
  margin-top: 0.2rem;
  font-size: 1.3rem;
  line-height: 1.9rem;
  color: #4b6670;
}
.pg-ponencia__quien strong { color: var(--st-azul); }
.pg-ponencias__mas > .pg-ponencias { margin-top: 0; border-top: 0; }
.pg-ponencias__mas summary {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  margin-top: 1.2rem;
  padding: 0.8rem 1.6rem;
  border-radius: 2rem;
  background: var(--st-fondo-suave);
  font-weight: 700;
  font-size: 1.3rem;
  line-height: 1.8rem;
  color: var(--st-azul);
  cursor: pointer;
  list-style: none;
}
.pg-ponencias__mas summary::-webkit-details-marker { display: none; }
.pg-ponencias__mas summary::after {
  content: '';
  width: 0.7rem;
  height: 0.7rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-0.2rem) rotate(45deg);
}
.pg-ponencias__mas[open] summary { display: none; }

/* Herramientas: saltos por día y buscador */
.pg-herramientas { margin-bottom: 3.2rem; }
.pg-dias {
  display: flex;
  gap: 0.8rem;
  overflow-x: auto;
  margin: 0 -3rem 0 -2.5rem;
  padding: 0.2rem 3rem 0.6rem 2.5rem;
  scrollbar-width: none;
}
.pg-dias::-webkit-scrollbar { display: none; }
.pg-dias__enlace {
  flex: none;
  padding: 1rem 1.8rem;
  border-radius: 2.4rem;
  border: 1px solid #d1dee2;
  background: #fff;
  font-weight: 700;
  font-size: 1.5rem;
  line-height: 2rem;
  color: var(--st-azul);
  text-decoration: none;
  white-space: nowrap;
}
.pg-dias__enlace span { font-weight: 300; }
.pg-dias__enlace:hover,
.pg-dias__enlace:focus-visible { background: var(--st-azul); border-color: var(--st-azul); color: #fff; }
.pg-buscar { margin-top: 1.6rem; }
.pg-buscar__etiqueta {
  display: block;
  font-weight: 700;
  font-size: 1.3rem;
  line-height: 2rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--st-teal);
}
.pg-buscar__campo {
  display: block;
  width: 100%;
  height: 5.2rem;
  margin-top: 0.6rem;
  padding: 0 2rem 0 4.6rem;
  border: 1px solid #c3d3d8;
  border-radius: 2.6rem;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2327979b' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") no-repeat 1.8rem 50% / 1.8rem;
  font-family: var(--st-fuente);
  font-size: 16px; /* ≥ 16 px: iOS no hace zoom al enfocar */
  color: var(--st-tinta);
  -webkit-appearance: none;
  appearance: none;
}
.pg-buscar__campo:focus { outline: none; border-color: var(--st-teal); box-shadow: 0 0 0 0.3rem rgba(39, 151, 155, .2); }
.pg-buscar__estado { margin-top: 0.8rem; font-size: 1.3rem; line-height: 1.8rem; color: #4b6670; }
.pg-buscar__estado:empty { display: none; }
.pg-sin-resultados {
  padding: 3rem;
  border-radius: 2.4rem;
  background: var(--st-fondo-suave);
  text-align: center;
  font-size: 1.5rem;
  line-height: 2.4rem;
  color: var(--st-tinta);
}
.pg-actividad[hidden], .pg-dia[hidden], .pg-dias[hidden], .pg-sin-resultados[hidden] { display: none !important; }

/* ---------- Otras categorías ---------- */

.pg-otras {
  padding: 4rem 3rem 5rem 2.5rem;
  background: var(--st-fondo-suave);
  --st-sangre: var(--st-fondo-suave);
}
.pg-otras__lista {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 2.4rem;
}
.pg-otras__enlace {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  height: 100%;
  padding: 1.5rem 1.6rem;
  border-radius: 1.6rem;
  background: #fff;
  box-shadow: 0 0.2rem 0.8rem rgba(19, 51, 62, .08);
  font-weight: 700;
  font-size: 1.4rem;
  line-height: 1.9rem;
  color: var(--st-azul);
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.pg-otras__enlace img { flex: none; width: 1.3rem; height: 1.3rem; margin-top: 0.3rem; }
.pg-otras__enlace:hover,
.pg-otras__enlace:focus-visible { transform: translateY(-0.2rem); box-shadow: 0 0.8rem 1.8rem rgba(19, 51, 62, .14); }
.pg-otras__enlace[aria-current="page"] { background: var(--st-verde); color: #fff; }
.pg-otras__enlace[aria-current="page"] img { filter: brightness(0) invert(1); }

/* ---------- Artboard de 1025 (768–1199 px) ---------- */

@media (min-width: 768px) {
  .pg-pdf--cabeza { display: inline-flex; }
  .pg-descarga { display: none; }
  .pg-cabeza { padding: 5rem 6rem 5.5rem; }
  span.pg-cabeza__patron { top: -6rem; right: -4rem; }
  .pg-titulo { font-size: 4rem; line-height: 4.6rem; max-width: 70rem; }
  .pg-titulo__sub { font-size: 2.4rem; line-height: 3rem; }
  .pg-descripcion p { font-size: 1.7rem; line-height: 2.8rem; }

  .pg-agenda { padding: 6rem 6rem 7rem; }
  .pg-dia + .pg-dia { margin-top: 6rem; }
  .pg-lista { gap: 2rem; margin-top: 2.8rem; }
  /* Hora a la izquierda, contenido a la derecha */
  .pg-actividad {
    display: grid;
    grid-template-columns: 17rem minmax(0, 1fr);
    gap: 0 3rem;
    padding: 2.8rem 3.4rem 2.8rem 3.4rem;
  }
  .pg-actividad__cuando { display: block; }
  .pg-actividad__hora { font-size: 1.7rem; line-height: 2.5rem; }
  .pg-actividad__lugar { margin-top: 0.8rem; }
  .pg-herramientas { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem 4rem; flex-wrap: wrap; margin-bottom: 4rem; }
  .pg-dias { margin: 0; padding: 0; flex-wrap: wrap; overflow: visible; }
  .pg-buscar { margin-top: 0; flex: 0 1 38rem; }
  .pg-buscar__campo { font-size: 1.6rem; }
  .pg-actividad__titulo { margin-top: 0; font-size: 2.1rem; line-height: 2.8rem; }

  .pg-otras { padding: 6rem 6rem 7rem; }
  .pg-otras__lista { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.4rem; }
  .pg-otras__enlace { padding: 1.8rem 2rem; font-size: 1.5rem; line-height: 2rem; min-height: 7.6rem; }
}

/* ---------- Laptop y escritorio (≥ 1200 px) ---------- */

@media (min-width: 1200px) {
  .pg-cabeza,
  .pg-agenda,
  .pg-otras { padding-left: var(--st-lado); padding-right: var(--st-lado); }
  .pg-cabeza { padding-top: 7rem; padding-bottom: 7rem; }
  span.pg-cabeza__patron { top: -4rem; right: calc(var(--st-lado) - 12rem); }
  .pg-titulo { font-size: 5rem; line-height: 5.6rem; letter-spacing: -0.01em; }
  .pg-titulo__sub { font-size: 2.6rem; line-height: 3.4rem; }
  .pg-descripcion { max-width: 76rem; }
  .pg-descripcion p { font-size: 1.9rem; line-height: 3.1rem; }
  .pg-resumen { font-size: 1.7rem; line-height: 2.6rem; }

  .pg-agenda { padding-top: 8rem; padding-bottom: 9rem; }
  .pg-dia {
    display: grid;
    grid-template-columns: 26rem minmax(0, 1fr);
    gap: 0 5rem;
    align-items: start;
  }
  .pg-dia + .pg-dia { margin-top: 7rem; }
  /* El día queda fijo a la izquierda mientras se recorren sus actividades. */
  .pg-dia__titulo {
    position: sticky;
    top: 10rem;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.6rem;
    padding: 0;
    border: 0;
  }
  .pg-dia__numero { width: 8rem; height: 8rem; font-size: 3.4rem; }
  .pg-dia__fecha { font-size: 2.2rem; line-height: 3rem; }
  .pg-lista { margin-top: 0; }
  .pg-actividad { grid-template-columns: 18rem minmax(0, 1fr); padding: 3.2rem 4rem; border-radius: 2.8rem; }
  .pg-actividad__titulo { font-size: 2.2rem; line-height: 3rem; }
  .pg-actividad__descripcion { font-size: 1.6rem; line-height: 2.6rem; }
  .pg-ponencia__titulo { font-size: 1.6rem; line-height: 2.5rem; }
  .pg-ponencia__quien { font-size: 1.4rem; line-height: 2.1rem; }

  .pg-otras { padding-top: 7rem; padding-bottom: 8rem; }
  .pg-otras__lista { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.6rem; }
  .pg-otras__enlace { padding: 2rem 2.4rem; font-size: 1.6rem; line-height: 2.2rem; min-height: 8.4rem; border-radius: 2rem; }
}

@media (prefers-reduced-motion: reduce) {
  .pg-actividad, .pg-otras__enlace, .pg-volver img { transition: none; }
  .pg-actividad:hover, .pg-otras__enlace:hover { transform: none; }
}
