* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.5;
  background-color: #f5f5f7;
  color: #111827;
}

.cabecera-sitio {
  background-color: #111827;
  color: #f9fafb;
  padding: 1.5rem 1.5rem;
  border-bottom: 2px solid #1f2937;
}

.bloque-logo {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.logo-ufv {
  height: 42px;
  width: auto;
  display: block;
}

.texto-logo h1 {
  font-size: 1.4rem;
  margin-bottom: 0.15rem;
}

.subtitulo-logo {
  font-size: 0.9rem;
  opacity: 0.9;
}

.navegacion-principal {
  margin-top: 1rem;
}

.lista-navegacion {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.lista-navegacion a {
  text-decoration: none;
  font-size: 0.9rem;
  padding: 0.4rem 0.9rem;
  border-radius: 999px;
  border: 1px solid transparent;
  color: #e5e7eb;
}

.lista-navegacion a:hover {
  border-color: #e5e7eb;
  background-color: #0b1220;
  color: #e5e7eb !important;
}

.enlace-activo {
  background-color: #f9fafb;
  color: #111827 !important;
}

.contenido-inicio {
  max-width: 1100px;
  margin: 2.5rem auto 3.5rem;
  padding: 0 1.2rem;
}

.bloque-hero {
  background-color: #ffffff;
  padding: 2rem 1.8rem;
  border-radius: 1.1rem;
  border: 1px solid #e5e7eb;
  margin-bottom: 2.5rem;
}

.bloque-hero h2 {
  font-size: 1.9rem;
  margin-bottom: 0.9rem;
  color: #111827;
}

.bloque-hero p {
  font-size: 1rem;
  color: #4b5563;
  margin-bottom: 0.6rem;
}

.bloque-cursos {
  margin-bottom: 2.5rem;
}

.bloque-cursos h3 {
  font-size: 1.4rem;
  margin-bottom: 0.5rem;
}

.texto-cursos {
  font-size: 0.95rem;
  color: #4b5563;
  margin-bottom: 1.1rem;
}

.botones-cursos {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
}

.boton-curso {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.1rem;
  height: 3.1rem;
  border-radius: 999px;
  border: 1px solid #d1d5db;
  text-decoration: none;
  font-weight: 600;
  font-size: 1rem;
  color: #111827;
  background-color: #ffffff;
}

.boton-curso:hover {
  border-color: #2563eb;
}

.bloque-secciones {
  margin-top: 2rem;
  margin-bottom: 3rem;
}

.bloque-secciones h3 {
  font-size: 1.4rem;
  margin-bottom: 1.2rem;
}

.rejilla-secciones {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.6rem;
}

.tarjeta-seccion {
  background-color: #ffffff;
  border-radius: 1rem;
  padding: 1.4rem 1.2rem;
  border: 1px solid #e5e7eb;
}

.tarjeta-seccion h4 {
  font-size: 1.05rem;
  margin-bottom: 0.5rem;
  color: #111827;
}

.tarjeta-seccion p {
  font-size: 0.95rem;
  color: #4b5563;
}

.imagen-perfil {
  width: 100%;
  max-width: 14rem;
  border-radius: 0.9rem;
  object-fit: cover;
}

.contenido-pagina {
  max-width: 1100px;
  margin: 2.5rem auto 3.5rem;
  padding: 0 1.2rem;
}

.contenido-pagina h2 {
  font-size: 1.7rem;
  margin-bottom: 0.9rem;
}

.contenido-pagina p {
  font-size: 0.95rem;
  color: #4b5563;
  margin-bottom: 0.7rem;
}

.rejilla-info {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.6rem;
}

.tarjeta-info {
  background-color: #ffffff;
  border-radius: 1rem;
  padding: 1.4rem 1.2rem;
  border: 1px solid #e5e7eb;
}

.tarjeta-info h3,
.tarjeta-info h4 {
  font-size: 1.05rem;
  margin-bottom: 0.5rem;
  color: #111827;
}

.tarjeta-info p {
  font-size: 0.95rem;
  color: #4b5563;
}

.contenedor-tabla {
  margin-top: 1.7rem;
  overflow-x: auto;
}

.tabla-asignaturas {
  width: 100%;
  border-collapse: collapse;
  min-width: 600px;
  background-color: #ffffff;
  border-radius: 0.9rem;
  overflow: hidden;
}

.tabla-asignaturas thead {
  background-color: #111827;
  color: #f9fafb;
}

.tabla-asignaturas th,
.tabla-asignaturas td {
  padding: 0.7rem 0.9rem;
  font-size: 0.9rem;
  text-align: left;
}

.tabla-asignaturas tbody {
  background-color: #f9fafb;
}

.tabla-asignaturas tbody tr:hover {
  background-color: #eef2ff;
}

.estado-etiqueta {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.6rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
}

.estado-convalidada {
  background-color: #e0f2fe;
  color: #0369a1;
}

.estado-aprobada {
  background-color: #dcfce7;
  color: #166534;
}

.estado-en-curso {
  background-color: #fef9c3;
  color: #854d0e;
}

.estado-pendiente {
  background-color: #fee2e2;
  color: #b91c1c;
}

.formulario-contacto {
  max-width: 600px;
  margin-top: 1.5rem;
  padding: 1.5rem 1.3rem;
  background-color: #ffffff;
  border-radius: 1rem;
  border: 1px solid #e5e7eb;
}

.grupo-formulario {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-bottom: 1rem;
}

.grupo-formulario label {
  font-size: 0.9rem;
  font-weight: 600;
  color: #111827;
}

.grupo-formulario input,
.grupo-formulario textarea {
  font-family: inherit;
  font-size: 0.95rem;
  padding: 0.5rem 0.6rem;
  border-radius: 0.5rem;
  border: 1px solid #d1d5db;
  outline: none;
}

.grupo-formulario input:focus,
.grupo-formulario textarea:focus {
  border-color: #2563eb;
}

.boton-enviar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.55rem 1.4rem;
  border-radius: 999px;
  border: none;
  font-size: 0.95rem;
  font-weight: 600;
  color: #f9fafb;
  background-color: #2563eb;
  cursor: pointer;
}

.boton-enviar:hover {
  background-color: #1d4ed8;
}

.pie-sitio {
  text-align: center;
  font-size: 0.8rem;
  color: #6b7280;
  padding: 1.8rem 1rem 2.2rem;
}