:root{
  --navy:#1d3461; --navy-2:#24407a; --celeste:#5b9bd5; --celeste-claro:#e8f1fa;
  --dorado:#c9a227; --texto:#1f2933; --suave:#5b6775; --borde:#d9e2ec; --fondo:#ffffff;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:76px}
body{margin:0;font-family:"Source Sans 3",system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--texto);background:var(--fondo);line-height:1.6;font-size:17px;overflow-wrap:break-word}
a{color:var(--navy-2)}
img{max-width:100%;height:auto}
.contenedor{max-width:1080px;margin:0 auto;padding:0 20px}
h1,h2,h3{font-family:"Libre Baskerville",Georgia,serif;color:var(--navy);line-height:1.25;margin:0 0 .6em}
h2{font-size:1.75rem}
h3{font-size:1.1rem}
p{margin:0 0 1em}

/* Encabezado */
.barra{background:var(--navy);color:#fff;position:sticky;top:0;z-index:10}
.barra .contenedor{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px}
.marca{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:700;letter-spacing:.02em;white-space:nowrap}
.marca img{width:40px;height:40px}
nav ul{list-style:none;margin:0;padding:0;display:flex;gap:22px}
nav a{color:#fff;text-decoration:none;font-weight:600;font-size:.95rem;opacity:.9;white-space:nowrap}
nav a:hover,nav a:focus{opacity:1;text-decoration:underline}

/* Portada */
.portada{background:linear-gradient(160deg,var(--navy) 0%,var(--navy-2) 55%,var(--celeste) 100%);color:#fff;padding:72px 0 80px}
.portada .contenedor{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:center}
.portada h1{color:#fff;font-size:2.3rem}
.portada p{font-size:1.15rem;opacity:.95;max-width:34em}
.portada .lema{display:inline-block;border-top:2px solid var(--dorado);padding-top:10px;margin-top:6px;font-weight:600;letter-spacing:.05em;font-size:.95rem}
.portada img{width:100%;max-width:300px;justify-self:center}
.botones{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.boton{display:inline-block;padding:13px 22px;border-radius:6px;font-weight:700;text-decoration:none}
.boton.principal{background:var(--dorado);color:var(--navy)}
.boton.secundario{border:2px solid #fff;color:#fff}
.boton.contorno{border:2px solid var(--navy);color:var(--navy)}
.boton:hover{filter:brightness(1.05)}

section{padding:64px 0}
section.alterna{background:var(--celeste-claro)}
.intro{color:var(--suave);max-width:46em;margin-bottom:28px}

.grilla{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.tarjeta{background:#fff;border:1px solid var(--borde);border-radius:10px;padding:22px}
.tarjeta h3{margin-bottom:.4em}
.tarjeta p{margin:0;color:var(--suave);font-size:.97rem}
.icono{font-size:1.6rem;margin-bottom:8px;display:block}

.datos{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:26px}
.dato{border-left:4px solid var(--dorado);padding:6px 0 6px 14px}
.dato strong{display:block;font-family:"Libre Baskerville",serif;color:var(--navy);font-size:1.4rem}
.dato span{color:var(--suave);font-size:.95rem}

.tabla{overflow-x:auto;border:1px solid var(--borde);border-radius:10px;background:#fff}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--borde);vertical-align:top}
th{background:var(--navy);color:#fff;font-weight:600}
tr:last-child td{border-bottom:0}

.pasos{counter-reset:paso;list-style:none;padding:0;margin:0 0 24px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.pasos li{background:#fff;border:1px solid var(--borde);border-radius:10px;padding:22px 22px 22px 64px;position:relative}
.pasos li::before{counter-increment:paso;content:counter(paso);position:absolute;left:20px;top:20px;width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}

.subtitulo{font-family:"Source Sans 3",system-ui,sans-serif;font-size:.9rem;text-transform:uppercase;letter-spacing:.08em;color:var(--suave);margin:28px 0 12px}
.autoridades{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.autoridad{text-align:center;padding:20px 14px;border:1px solid var(--borde);border-radius:10px;background:#fff}
.autoridad .cargo{color:var(--suave);font-size:.85rem;text-transform:uppercase;letter-spacing:.06em}
.autoridad .nombre{font-family:"Libre Baskerville",serif;color:var(--navy);font-size:1.02rem;margin-top:4px}

.contacto{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.contacto dl{margin:0}
.contacto dt{font-weight:700;color:var(--navy);margin-top:12px}
.contacto dd{margin:2px 0 0}
.mapa{border:0;width:100%;height:100%;min-height:300px;border-radius:10px}

footer{background:var(--navy);color:#cfd8e3;padding:36px 0;font-size:.92rem}
footer .contenedor{display:flex;flex-wrap:wrap;justify-content:space-between;gap:20px;align-items:center}
footer a{color:#fff}
footer img{width:56px;height:56px}

/* Páginas de texto (privacidad, 404) */
.texto{max-width:760px}
.texto h1{font-size:1.9rem}
.texto h2{font-size:1.25rem;margin-top:1.6em}
.aviso{text-align:center;padding:96px 0}
.aviso .botones{justify-content:center}

@media (max-width:860px){
  .barra .contenedor{flex-direction:column;align-items:stretch;gap:0;padding-top:10px}
  nav{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -20px;padding:8px 20px 10px}
  nav ul{gap:18px;width:max-content}
  html{scroll-padding-top:110px}
  .portada{padding:44px 0 52px}
  .portada .contenedor{grid-template-columns:1fr}
  .portada img{max-width:180px;order:-1}
  .portada h1{font-size:1.7rem}
  .grilla,.datos,.pasos,.contacto{grid-template-columns:1fr}
  .autoridades{grid-template-columns:1fr 1fr}
  section{padding:48px 0}
  th,td{padding:12px}
  .mapa{height:300px}
}
@media (max-width:420px){
  .autoridades{grid-template-columns:1fr}
  .boton{width:100%;text-align:center}
}
