:root {
  --brand: #50020c;
  --ink: #3f0120;
  --upfim-primary: #290114;
  --upfim-primary-hover: #3f0120;
  --upfim-primary-active: #3f0120;
}
.hero { background-image: linear-gradient(120deg, rgba(11,18,32,.86), rgba(11,18,32,.55)), url("../images/IPA_conejos.jpg"); }
/* Estilos compartidos. La configuración de cada carrera define su paleta. */
body { line-height: 1.65; }
.text-primary, .link-primary { color: var(--upfim-primary) !important; }
.link-primary:hover, .link-primary:focus { color: var(--ink) !important; }
.topbar { background: var(--ink); }
.navbar-brand { font-size: 1rem; white-space: normal; max-width: 25rem; line-height: 1.35; }
.navbar .dropdown-item { white-space: normal; }
.navbar .dropdown-menu { min-width: 16rem; }
.navbar .nav-link { font-size: .92rem; }
.academic-status { background: var(--ink); color: white; padding: .7rem 0; font-size: .9rem; }
.section-title { color: var(--ink); font-weight: 600; }
.icon-pill { color: var(--upfim-primary); background: color-mix(in srgb, var(--brand) 12%, white); }
.progress-bar { background: var(--upfim-primary); }
.accordion {
  --bs-accordion-active-color: var(--ink);
  --bs-accordion-active-bg: color-mix(in srgb, var(--brand) 10%, white);
  --bs-accordion-btn-focus-box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--brand) 25%, transparent);
  --bs-accordion-border-color: color-mix(in srgb, var(--brand) 25%, #dee2e6);
}
footer { background: var(--ink); }
footer .text-primary { color: white !important; }
:focus-visible { outline: 3px solid var(--brand); outline-offset: 4px; }
.skip-link { position: fixed; top: -8rem; left: 1rem; z-index: 9999; background: white; color: var(--ink); padding: .75rem 1rem; border: 2px solid var(--ink); }
.skip-link:focus { top: 1rem; }
#contenido { scroll-margin-top: 6rem; }
@media (max-width: 991px) {
  .navbar-brand { max-width: calc(100% - 4rem); }
  .navbar .navbar-nav { padding: 1rem 0; align-items: stretch !important; }
  .navbar .btn { margin-top: .5rem; }
  .hero { min-height: 60vh; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
