/* Extensiones del curso sobre styles.css (copia del sitio principal, sin modificar). */

/* Hero: órbita de paradigmas */
.paradigm-orbit { position: relative; width: clamp(290px, 34vw, 460px); aspect-ratio: 1; display: grid; place-items: center; }
.ring { position: absolute; inset: 0; border: 1px solid #c7d6e6; border-radius: 50%; }
.ring-inner { inset: 14%; border-color: #d8e1ec; border-style: dashed; }
.paradigm-orbit .visual-core { width: 40%; height: 40%; border: 5px solid var(--blue); color: var(--navy); font: 800 clamp(2.2rem, 5vw, 3.6rem) var(--display); letter-spacing: -.05em; }
.sat { position: absolute; z-index: 3; display: inline-flex; align-items: center; gap: .55rem; padding: .45rem .85rem .45rem .45rem; background: var(--white); border: 1px solid var(--line); border-radius: 999px; box-shadow: var(--shadow); font: 700 .78rem var(--display); letter-spacing: -.02em; white-space: nowrap; }
.sat i { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--blue-soft); color: var(--navy); font: normal 800 .95rem var(--display); }
.sat-1 { top: 2%; left: 50%; transform: translateX(-50%); }
.sat-2 { bottom: 16%; left: -3%; }
.sat-3 { bottom: 16%; right: -3%; }
.sat-2 i { background: var(--sand); }
.sat-3 i { background: var(--green); }
@media (prefers-reduced-motion: no-preference) {
  .ring-inner { animation: ring-spin 60s linear infinite; }
  .sat-2, .sat-3 { animation: sat-float 6s ease-in-out infinite; }
  .sat-3 { animation-delay: -3s; }
  .sat-1 { animation: sat-float-x 6s ease-in-out infinite -1.5s; }
}
@keyframes ring-spin { to { transform: rotate(360deg); } }
@keyframes sat-float { 50% { transform: translateY(-8px); } }
@keyframes sat-float-x { 50% { transform: translate(-50%, -8px); } }

/* Pilares como enlaces */
a.pillar-link { color: inherit; }
.pillar .status { margin-left: .6rem; }

/* Estados */
.status { display: inline-block; padding: .22rem .5rem; border-radius: 5px; font-size: .62rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.status-live { background: var(--green); color: #25573f; }
.status-soon { background: var(--sand); color: #7a5b1d; }

/* Tarjetas de unidad */
.unit-card { display: flex; flex-direction: column; }
.unit-card .card-index { top: 1.4rem; }
.unit-card h3 { margin-top: 1.1rem; }
.unit-card > p { min-height: 0; margin: 0; }
.unit-meta { display: flex; align-items: center; gap: .6rem; margin-top: 1rem; }
.unit-meta .hours { color: var(--muted); font-size: .7rem; font-weight: 700; }
.unit-links { display: flex; flex-direction: column; gap: .5rem; margin-top: auto; padding-top: 1.2rem; }
.unit-card.is-soon .icon-muted { background: var(--sand); }
.unit-card.is-dark { background: linear-gradient(145deg, #214b78, #142e4d); border-color: #142e4d; color: white; }
.unit-card.is-dark .research-icon { background: rgba(255,255,255,.12); color: white; }
.unit-card.is-dark .card-index { color: #a9c4df; }
.unit-card.is-dark p { color: #d4e0ec; }
.unit-card.is-dark .tag-list span { background: rgba(255,255,255,.12); color: #dbe7f3; }
.unit-card.is-dark .text-link { color: #c5d8ec; }

/* Evaluación */
.eval-pct { min-height: 0 !important; margin: 0 0 .8rem; color: var(--navy) !important; font: 800 2.6rem/1 var(--display) !important; letter-spacing: -.06em; }
.bar { height: 6px; background: #e8edf3; border-radius: 99px; overflow: hidden; }
.bar i { display: block; height: 100%; background: var(--blue); border-radius: inherit; }

/* Recursos */
.project-card.is-soon { opacity: .92; }
.project-card .status { margin-top: 1.1rem; }

/* Bibliografía (sin columna de enlace) */
.ref-list .publication-item { grid-template-columns: 90px 1fr; }
.ref-list em { font-style: italic; }

@media (max-width: 560px) {
  .sat { font-size: .7rem; padding-right: .65rem; }
  .sat-2 { left: 0; }
  .sat-3 { right: 0; }
  .ref-list .publication-item { grid-template-columns: 54px 1fr; }
}
