/* ---------- Colores del tema (fáciles de cambiar) ---------- */
:root {
  --azul-oscuro: #0b1f3a;
  --azul: #1d4ed8;
  --acento: #38bdf8;
  --fondo: #f3f5f9;
  --tarjeta: #ffffff;
  --texto: #1e293b;
  --texto-suave: #64748b;
  --borde: #e2e8f0;
}

/* ---------- Base ---------- */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  font-family: "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
  background: var(--fondo);
  color: var(--texto);
  line-height: 1.7;
}

/* ---------- Portada (encabezado) ---------- */
.portada {
  text-align: center;
  padding: 60px 20px 90px;
  color: #ffffff;
  background: linear-gradient(135deg, var(--azul-oscuro) 0%, #17335c 100%);
  border-bottom: 4px solid var(--acento);
}

.foto-perfil {
  width: 160px;
  height: 160px;
  object-fit: cover;
  border-radius: 50%;
  border: 4px solid #ffffff;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
  margin-bottom: 22px;
}

.portada h1 {
  font-size: 2.2rem;
  font-weight: 600;
  letter-spacing: 0.5px;
}

.subtitulo {
  color: var(--acento);
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-top: 8px;
}

/* ---------- Contenido en dos columnas ---------- */
main {
  max-width: 900px;
  margin: -50px auto 0;
  padding: 0 20px 20px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
}

.tarjeta {
  background: var(--tarjeta);
  border: 1px solid var(--borde);
  border-top: 4px solid var(--azul);
  border-radius: 10px;
  padding: 26px 28px;
  box-shadow: 0 6px 20px rgba(15, 23, 42, 0.08);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.tarjeta:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 26px rgba(15, 23, 42, 0.14);
}

.tarjeta h2 {
  color: var(--azul-oscuro);
  font-size: 1.2rem;
  font-weight: 600;
  padding-bottom: 10px;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--borde);
}

.tarjeta p {
  color: var(--texto-suave);
}

.tarjeta p + p {
  margin-top: 6px;
}

.tarjeta p strong {
  color: var(--texto);
  font-weight: 600;
}

/* La tarjeta de contacto ocupa todo el ancho */
#contacto {
  grid-column: 1 / -1;
}

/* ---------- Contacto ---------- */
.lista-contacto {
  list-style: none;
}

.lista-contacto li {
  padding: 8px 0;
  color: var(--texto-suave);
  border-bottom: 1px solid var(--borde);
}

.lista-contacto li:last-child {
  border-bottom: none;
}

.lista-contacto a {
  color: var(--azul);
  font-weight: 500;
  text-decoration: none;
}

.lista-contacto a:hover {
  text-decoration: underline;
}

/* ---------- Pie de página ---------- */
footer {
  text-align: center;
  padding: 30px 20px;
  margin-top: 20px;
  background: var(--azul-oscuro);
  color: #94a3b8;
  font-size: 0.9rem;
}

/* ---------- Ajuste para celulares ---------- */
@media (max-width: 700px) {
  main {
    grid-template-columns: 1fr;
  }

  .portada h1 {
    font-size: 1.6rem;
  }

  .subtitulo {
    font-size: 0.85rem;
    letter-spacing: 1px;
  }

  .foto-perfil {
    width: 130px;
    height: 130px;
  }
}