/* IDECS — hoja de estilos única
   Paleta institucional: navy #0A2342 · amarillo #FAD02C */

:root{
  --navy:#0A2342;
  --navy-deep:#071A32;
  --sun:#FAD02C;
  --paper:#FFFFFF;
  --paper-alt:#F2F5F9;
  --ink:#16263D;
  --muted:#55677F;
  --line:#D8DFE8;
  --maxw:1120px;
  --sans:"Aptos",Inter,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --sans-display:"Aptos Display","Aptos",Inter,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --step:clamp(3.5rem,7vw,6.5rem);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:18px;
  line-height:1.72;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:var(--sans-display);font-weight:600;letter-spacing:-.018em;margin:0}
p{margin:0 0 1rem}
a{color:inherit}
img{max-width:100%;height:auto}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 1.5rem}

.skip{position:absolute;left:-9999px;top:0;background:var(--sun);color:var(--navy);padding:.7rem 1rem;z-index:99}
.skip:focus{left:0}
:focus-visible{outline:3px solid var(--sun);outline-offset:3px;border-radius:2px}

/* ---------- cabecera ---------- */
.site-head{
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;
  padding:.85rem 1.5rem;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;margin-right:auto}
.brand img{width:158px;height:auto;display:block}
.site-nav{display:flex;gap:1.6rem;flex-wrap:wrap}
.site-nav a{
  text-decoration:none;color:var(--muted);font-size:.95rem;
  padding-bottom:2px;border-bottom:2px solid transparent;
}
.site-nav a:hover{color:var(--navy);border-bottom-color:var(--sun)}

.lang{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.lang button{
  border:0;background:none;cursor:pointer;
  font:inherit;font-size:.78rem;font-weight:500;letter-spacing:.06em;
  color:var(--muted);padding:.35rem .7rem;
}
.lang button[aria-pressed="true"]{background:var(--navy);color:#fff}
.lang button:hover:not([aria-pressed="true"]){background:var(--paper-alt);color:var(--navy)}

/* ---------- portada ---------- */
.hero{
  position:relative;overflow:hidden;
  background:var(--navy-deep);color:#fff;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.62fr);
  gap:2rem;align-items:center;
  max-width:none;padding:clamp(3.5rem,8vw,7rem) max(1.5rem,calc((100% - var(--maxw))/2));
}
.hero-name{
  color:var(--sun);font-size:1rem;font-weight:500;
  letter-spacing:.01em;margin:0 0 1.15rem;
}
.hero h1{
  font-size:clamp(2rem,4.2vw,3.15rem);line-height:1.14;letter-spacing:-.025em;
  max-width:20ch;margin-bottom:1.6rem;
}
.hero .lead{max-width:52ch;color:#DCE5F0;font-size:1.08rem;line-height:1.68}
.hero-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.8rem}

.btn{
  display:inline-block;text-decoration:none;font-weight:500;font-size:.98rem;
  padding:.72rem 1.4rem;border-radius:2px;border:1.5px solid transparent;
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}
.btn-sun{background:var(--sun);color:var(--navy);border-color:var(--sun)}
.btn-sun:hover{background:#ffdf5c;border-color:#ffdf5c}
.btn-ghost{border-color:rgba(255,255,255,.45);color:#fff}
.btn-ghost:hover{border-color:var(--sun);color:var(--sun)}

.hero-mark{position:relative;min-height:200px}
.sunburst{
  display:block;width:min(108%,440px);margin-left:auto;
  transform:translateX(14%);opacity:.95;
  animation:bloom 1100ms cubic-bezier(.2,.7,.25,1) both;
}
@keyframes bloom{
  from{opacity:0;transform:translateX(14%) scale(.9) rotate(-6deg)}
  to{opacity:.95;transform:translateX(14%)}
}

/* ---------- secciones ---------- */
.band{padding:var(--step) 0}
.band-alt{background:var(--paper-alt);border-block:1px solid var(--line)}

.two-col{display:grid;grid-template-columns:minmax(0,.4fr) minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem)}
.col-head h2{font-size:clamp(1.7rem,2.8vw,2.3rem);line-height:1.15;color:var(--navy)}
.col-head h2::after{
  content:"";display:block;width:52px;height:4px;
  background:var(--sun);margin-top:1rem;
}
.col-note{color:var(--muted);font-size:1rem;margin-top:1.1rem;max-width:32ch}

.prose{max-width:62ch}
.prose p{margin-bottom:1.15rem}

blockquote{
  margin:2rem 0 0;padding:.2rem 0 .2rem 1.5rem;
  border-left:4px solid var(--sun);
}
blockquote p{
  font-size:1.08rem;line-height:1.6;font-weight:500;
  color:var(--navy);margin-bottom:.7rem;
}
blockquote cite{font-style:normal;font-size:.88rem;color:var(--muted)}

/* líneas de trabajo */
.lines{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 3rem}
.lines li{padding:1.5rem 0;border-top:1px solid var(--line)}
.lines li:nth-child(-n+2){border-top:0;padding-top:0}
.lines h3{font-size:1.1rem;color:var(--navy);margin-bottom:.5rem}
.lines p{color:#4C5E75;font-size:1rem;margin:0;line-height:1.65}

/* gobernanza */
.facts{margin:0;display:grid;gap:0}
.facts > div{display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,1fr);gap:1.5rem;padding:1.35rem 0;border-top:1px solid var(--line)}
.facts > div:first-child{border-top:0;padding-top:0}
.facts dt{font-weight:600;color:var(--navy)}
.facts dd{margin:0;color:#4C5E75;font-size:1rem;line-height:1.65}

/* contacto */
.contact{background:var(--navy);color:#fff;padding:var(--step) 0;text-align:left}
.contact h2{font-size:clamp(1.8rem,3.2vw,2.5rem);margin-bottom:1.1rem}
.contact .lead{max-width:58ch;color:#D9E2EE}
.contact-alt{margin-top:1.6rem;color:#AFC0D4;font-size:.95rem}
.contact-alt a{color:var(--sun);text-decoration-thickness:1px;text-underline-offset:3px}

/* pie */
.site-foot{background:var(--navy-deep);color:#C6D2E1;padding:2.6rem 0;font-size:.9rem}
.foot-grid{display:flex;gap:2rem;align-items:flex-start;flex-wrap:wrap}
.foot-grid img{width:150px}
.site-foot p{margin:0 0 .35rem}
.site-foot .muted{color:#8FA2B9}

/* ---------- adaptable ---------- */
@media (max-width:900px){
  .hero{grid-template-columns:1fr;padding-top:3rem}
  .hero h1{max-width:20ch}
  .hero-mark{order:-1;min-height:0}
  .sunburst{width:min(56%,240px);margin-inline:0;transform:none;animation:none}
  .two-col{grid-template-columns:1fr;gap:2rem}
  .lines{grid-template-columns:1fr;gap:0}
  .lines li:nth-child(2){border-top:1px solid var(--line);padding-top:1.5rem}
  .facts > div{grid-template-columns:1fr;gap:.35rem}
}
@media (max-width:640px){
  body{font-size:17px}
  .site-head{gap:.8rem;padding:.7rem 1rem}
  .site-nav{order:3;width:100%;gap:1.1rem;font-size:.9rem}
  .brand img{width:130px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .sunburst{animation:none;opacity:.95;transform:translateX(14%)}
  *{transition:none!important}
}

/* publicaciones */
.pubs{list-style:none;margin:0;padding:0}
.pubs li{display:grid;grid-template-columns:4.5rem minmax(0,1fr);gap:1.5rem;padding:1.35rem 0;border-top:1px solid var(--line)}
.pubs li:first-child{border-top:0;padding-top:0}
.pub-year{font-size:1rem;font-weight:600;color:var(--navy);margin:0;font-variant-numeric:tabular-nums}
.pub-cite{margin:0 0 .35rem;font-size:1rem;line-height:1.6}
.pub-cite em{color:var(--muted)}
.pub-meta{margin:0;font-size:.85rem;color:var(--muted);display:flex;gap:.8rem;flex-wrap:wrap}
.pubs-empty{display:block;color:var(--muted)}
.link-sun{color:var(--navy);text-decoration:underline;text-decoration-color:var(--sun);text-decoration-thickness:2px;text-underline-offset:3px}
.link-sun:hover{color:#000}
@media (max-width:640px){
  .pubs li{grid-template-columns:1fr;gap:.3rem}
}
