:root {
  --fegesis-blue: #0a4da8;
  --fegesis-blue-deep: #073b85;
  --fegesis-sky: #f0f7ff;
  --fegesis-orange: #ff9f1c;
  --fegesis-ink: #17345c;
  --fegesis-card-shadow: 0 12px 34px rgba(20, 60, 140, .09);
  --fegesis-card-shadow-hover: 0 18px 42px rgba(20, 60, 140, .14);
}

/* Unifica los pequeños detalles de las páginas públicas sin cambiar sus layouts. */
body {
  color: var(--fegesis-ink);
  -webkit-font-smoothing: antialiased;
}

.magic-navbar {
  background: linear-gradient(112deg, var(--fegesis-blue-deep), var(--fegesis-blue) 68%, #1768c8);
  border-bottom: 1px solid rgba(255, 255, 255, .16);
  box-shadow: 0 8px 24px rgba(7, 59, 133, .2);
}

.navbar-brand img {
  filter: drop-shadow(0 3px 5px rgba(0, 26, 70, .18));
}

.nav-link:focus-visible,
.btn-nav-outline:focus-visible,
.btn-nav-cta:focus-visible,
main a:focus-visible,
main button:focus-visible {
  outline: 3px solid rgba(255, 159, 28, .75);
  outline-offset: 3px;
}

main .card {
  border-color: rgba(26, 81, 155, .1);
  box-shadow: var(--fegesis-card-shadow);
  transition: box-shadow .22s ease, border-color .22s ease;
}

main .card:hover {
  border-color: rgba(26, 81, 155, .17);
  box-shadow: var(--fegesis-card-shadow-hover);
}

main .form-control:focus,
main .form-select:focus {
  border-color: rgba(255, 159, 28, .72);
  box-shadow: 0 0 0 .2rem rgba(255, 159, 28, .17);
}

.magic-cursor-spark {
  position: fixed;
  z-index: 2000;
  left: 0;
  top: 0;
  pointer-events: none;
  color: var(--spark-color, #ffb52e);
  font-family: Georgia, serif;
  font-size: var(--spark-size, 13px);
  line-height: 1;
  text-shadow: 0 1px 8px rgba(255, 190, 52, .55);
  transform: translate3d(var(--spark-x), var(--spark-y), 0) scale(.35) rotate(0deg);
  animation: magic-spark-float 680ms cubic-bezier(.15, .7, .25, 1) forwards;
  will-change: transform, opacity;
}

@keyframes magic-spark-float {
  15% { opacity: .95; }
  100% {
    opacity: 0;
    transform: translate3d(calc(var(--spark-x) + var(--spark-dx)), calc(var(--spark-y) + var(--spark-dy)), 0) scale(1.15) rotate(100deg);
  }
}

@media (hover: none), (pointer: coarse), (prefers-reduced-motion: reduce) {
  .magic-cursor-spark { display: none !important; }
  main .card { transition: none; }
}
