/* ============================================================
   SANTO TOMÁS MORO INSTITUTE — CALENDARIO ACADÉMICO DE PROGRAMA
   calendario-programa.css · v1.1.0 · AA-99 (19/09/2026)
   v1.1.0 · el calendario vive en su PANTALLA (`<landing>/calendario/`): aquí van también el
   botón del plan de estudio (.cal-cta) y el marco de esa página (.calpg-*)
   ============================================================
   UNA hoja para todas las landings de programa (la pinta landing-programa.js
   en #calendarioLista). Usa los tokens de cada landing (--navy, --blue…),
   con valores de respaldo por si una landing no los define.
   ============================================================ */
.calendario{padding:100px 0;background:var(--bg,#F4F8FF)}
.calendario[hidden]{display:none}
.cal-lista{max-width:960px;margin:0 auto}

.cal-resumen{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:36px}
.cal-dato{background:var(--white,#fff);border:1px solid var(--border-l,#E2E8F0);border-radius:var(--radius,12px);padding:16px 18px}
.cal-dato span{display:block;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted,#64748B);margin-bottom:6px}
.cal-dato strong{font-family:var(--font-head,system-ui,sans-serif);font-size:.98rem;font-weight:700;color:var(--navy,#0B2545);line-height:1.35}

.cal-modulo{background:var(--white,#fff);border:1px solid var(--border-l,#E2E8F0);border-radius:var(--radius-lg,20px);box-shadow:var(--shadow,0 4px 20px rgba(0,0,0,.08));margin-bottom:18px;overflow:hidden}
.cal-mod-cab{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;padding:18px 24px;background:var(--navy,#0B2545);color:#fff}
.cal-mod-num{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.cal-mod-tit{flex:1 1 280px;margin:0;font-family:var(--font-head,system-ui,sans-serif);font-size:1.05rem;font-weight:700;color:#fff;line-height:1.3}
.cal-mod-rango{font-size:.8rem;color:rgba(255,255,255,.75)}

.cal-sesiones{list-style:none;margin:0;padding:0}
.cal-sesion{display:grid;grid-template-columns:52px 128px minmax(0,1fr) auto;align-items:center;gap:12px 18px;padding:14px 24px;border-top:1px solid var(--border-l,#E2E8F0)}
.cal-sesion:first-child{border-top:0}
.cal-num{font-family:var(--font-head,system-ui,sans-serif);font-weight:800;font-size:.9rem;color:var(--blue,#2563EB)}
.cal-fecha{font-weight:600;color:var(--navy,#0B2545);white-space:nowrap}
.cal-fecha::first-letter{text-transform:uppercase}
.cal-tit{color:var(--text,#1E293B);line-height:1.45}
.cal-hora{text-align:right;font-weight:600;color:var(--navy,#0B2545);white-space:nowrap}
.cal-hora small{display:block;font-weight:400;font-size:.76rem;color:var(--muted,#64748B)}
.cal-hora .cal-local{color:var(--blue,#2563EB)}

.cal-nota{margin:22px auto 0;max-width:720px;text-align:center;font-size:.88rem;color:var(--muted,#64748B);line-height:1.6}

@media (max-width:860px){
  .cal-resumen{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:600px){
  .calendario{padding:72px 0}
  .cal-mod-cab{padding:16px 18px}
  .cal-sesion{grid-template-columns:44px minmax(0,1fr);gap:4px 12px;padding:14px 18px}
  .cal-num{grid-row:span 3;align-self:start}
  .cal-hora{text-align:left;white-space:normal}
  .cal-hora small{display:inline;margin-left:6px}
}

/* ── BOTÓN del plan de estudio → la pantalla del calendario (AA-99) ───────── */
.cal-cta{display:flex;align-items:center;gap:18px;max-width:720px;margin:44px auto 0;padding:20px 24px;
  border-radius:var(--radius-lg,20px);text-decoration:none;color:#fff;
  background:linear-gradient(120deg,var(--navy,#0B2545) 0%,var(--navy-light,#1E4D8C) 55%,var(--blue,#2563EB) 100%);
  box-shadow:0 12px 34px rgba(37,99,235,.28);position:relative;overflow:hidden;
  transition:transform var(--tr,.25s ease),box-shadow var(--tr,.25s ease)}
.cal-cta::after{content:"";position:absolute;inset:0;border-radius:inherit;
  box-shadow:0 0 0 0 rgba(37,99,235,.55);animation:calLatido 2.6s ease-out infinite;pointer-events:none}
@keyframes calLatido{0%{box-shadow:0 0 0 0 rgba(37,99,235,.5)}70%{box-shadow:0 0 0 16px rgba(37,99,235,0)}100%{box-shadow:0 0 0 0 rgba(37,99,235,0)}}
.cal-cta:hover{transform:translateY(-3px);box-shadow:0 18px 44px rgba(37,99,235,.38)}
.cal-cta:focus-visible{outline:3px solid var(--teal-light,#06B6D4);outline-offset:3px}
.cal-cta__ico{flex:0 0 auto;width:52px;height:52px;display:grid;place-items:center;border-radius:14px;
  background:rgba(255,255,255,.16);font-size:1.35rem}
.cal-cta__txt{flex:1 1 auto;min-width:0}
.cal-cta__txt strong{display:block;font-family:var(--font-head,system-ui,sans-serif);font-size:1.12rem;font-weight:800;line-height:1.25}
.cal-cta__txt small{display:block;margin-top:4px;font-size:.9rem;color:rgba(255,255,255,.82);line-height:1.45}
.cal-cta__ir{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;
  background:#fff;color:var(--navy,#0B2545);font-weight:700;font-size:.92rem;white-space:nowrap}
.cal-cta__ir i{transition:transform var(--tr,.25s ease)}
.cal-cta:hover .cal-cta__ir i{transform:translateX(4px)}
@media (max-width:600px){
  .cal-cta{flex-wrap:wrap;gap:14px;padding:18px}
  .cal-cta__ir{width:100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){
  .cal-cta::after{animation:none}
  .cal-cta,.cal-cta__ir i{transition:none}
  .cal-cta:hover{transform:none}
}

/* ── PANTALLA propia del calendario (`<landing>/calendario/`) ─────────────── */
.calpg{background:var(--bg,#F4F8FF)}
.calpg .calendario{padding:40px 0 90px}
.calpg-bar{background:var(--navy,#0B2545);padding:14px 0;position:sticky;top:0;z-index:50}
.calpg-bar__in{display:flex;align-items:center;justify-content:space-between;gap:16px}
.calpg-volver{display:inline-flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:600;font-size:.95rem;min-width:0}
.calpg-volver span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calpg-volver:hover{color:var(--teal-light,#06B6D4)}
.calpg-cta{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;border-radius:999px;white-space:nowrap;
  background:var(--blue,#2563EB);color:#fff;text-decoration:none;font-weight:700;font-size:.9rem}
.calpg-cta:hover{background:var(--blue-light,#3B82F6)}
.calpg-pie{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:38px}
.calpg-pie__btn,.calpg-pie__wa{display:inline-flex;align-items:center;gap:10px;padding:14px 26px;border-radius:999px;
  text-decoration:none;font-weight:700;font-size:.98rem}
.calpg-pie__btn{background:var(--navy,#0B2545);color:#fff}
.calpg-pie__btn:hover{background:var(--navy-light,#1E4D8C)}
.calpg-pie__wa{background:#fff;color:var(--navy,#0B2545);border:1px solid var(--border,#CBD5E1)}
.calpg-pie__wa:hover{border-color:#25D366;color:#128C7E}
.calpg-foot{background:var(--navy,#0B2545);color:rgba(255,255,255,.7);padding:22px 0;text-align:center;font-size:.88rem}
.calpg-foot a{color:rgba(255,255,255,.85);text-decoration:none;margin:0 4px}
.calpg-foot a:hover{color:#fff;text-decoration:underline}
@media (max-width:600px){
  .calpg-bar__in{gap:10px}
  .calpg-volver span{max-width:46vw}
  .calpg-pie__btn,.calpg-pie__wa{width:100%;justify-content:center}
}
