:root{
  --brand:#1d54a3;
  --accent:#d62839;
}

/* Título extra bold */
.fw-extrabold{ font-weight: 900!important; }

/* Botón gradiente visible en claro y oscuro */
.btn-gradient{
  background: linear-gradient(90deg, var(--brand), var(--accent));
  border: none;
  color: #fff;
  font-weight: 800;
}
.btn-gradient:hover{ filter: brightness(1.08); }

/* Botón contorneado con contraste en light */
.btn-outline-contrast{
  border-color: rgba(0,0,0,.25);
  color: inherit;
}
[data-bs-theme="dark"] .btn-outline-contrast{
  border-color: rgba(255,255,255,.35);
}

/* Carousel */
.object-cover{ object-fit: cover; max-height: 460px; }
.caption-chip{
  padding:.35rem .6rem;
  backdrop-filter: blur(6px);
  border:1px solid rgba(255,255,255,.25);
  background: rgba(0,0,0,.45);
}
[data-bs-theme="light"] .caption-chip{
  border-color: rgba(0,0,0,.12);
  background: rgba(0,0,0,.55);
  color: #fff;
}

/* Investigaciones con marco y overlay legible en ambos temas */
.research-card{
  position:relative; aspect-ratio: 4/3; border-radius: 18px; overflow:hidden;
  display:block; color:inherit; text-decoration:none;
  border:6px solid rgba(255,255,255,.85); outline:2px solid rgba(0,0,0,.15);
  box-shadow: 0 18px 40px rgba(0,0,0,.25);
  background-image: var(--bg, none);
  background-image: var(--bg), linear-gradient(#000,#000);
  background-image: var(--bg);
  background-size: cover; background-position: center;
  transition: transform .2s ease;
}
.research-card:hover{ transform: scale(1.02); }
.research-card .overlay{
  position:absolute; inset:0; 
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.75rem; 
  text-align:center; padding:1rem;
  color:#fff; 
  background: linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,.55));
  text-shadow: 0 1px 2px rgba(0,0,0,.6);
}
[data-bs-theme="light"] .overlay-readable .overlay{
  background: linear-gradient(180deg, rgba(0,0,0,.62), rgba(0,0,0,.58));
  color:#fff;
  text-shadow: 0 1px 2px rgba(0,0,0,.65);
}

/* Icono de servicios / objetivos */
.icon-box{
  width:44px;height:44px;display:grid;place-items:center;border-radius:12px;
}
[data-bs-theme="light"] .bg-brand-subtle{ background: #e8f0ff; }
[data-bs-theme="light"] .text-brand-emphasis{ color: #0f3c7a; }
[data-bs-theme="dark"]  .bg-brand-subtle{ background: rgba(29,84,163,.18); }
[data-bs-theme="dark"]  .text-brand-emphasis{ color: #bcd1ff; }

/* Tarjetas de objetivos con hover sutil */
.objective-card{ transition: transform .2s ease, box-shadow .2s ease; }
.objective-card:hover{ transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0,0,0,.15); }

/* Ajuste del botón outline en tema claro para máxima lectura */
[data-bs-theme="light"] .btn-outline-light{
  border-color: rgba(0,0,0,.25)!important;
  color: #0b152a!important;
  background-color: transparent!important;
}
[data-bs-theme="light"] .btn-outline-light:hover{
  background-color: rgba(0,0,0,.06)!important;
}

/* Campos condicionales de formación */
.degree-field.d-none{ display:none!important; }
