:root{
  --paper:#F7F5F0;
  --ink:#1F2623;
  --ink-soft:#5B6560;
  --accent:#3C5C4E;
  --accent-soft:#E4E9E4;
  --line:#DAD5C9;
}
*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'IBM Plex Sans', sans-serif;
  line-height:1.55;
}
h1,h2,h3{
  font-family:'Lora', serif;
  font-weight:600;
  margin:0;
}
a{color:var(--accent);}
.wrap{max-width:1080px;margin:0 auto;padding:0 32px;}

/* ---------- Cabecera / menú ---------- */
nav{
  display:flex;justify-content:space-between;align-items:center;
  padding:28px 32px;max-width:1080px;margin:0 auto;
}
.brand{font-family:'Lora', serif;font-weight:600;font-size:17px;}
.navlinks{display:flex;gap:28px;font-size:14px;}
.navlinks a{text-decoration:none;color:var(--ink-soft);border-bottom:1px solid transparent;}
.navlinks a:hover{border-bottom:1px solid var(--accent);color:var(--ink);}
.navlinks a.active{color:var(--ink);border-bottom:1px solid var(--accent);}
.navlinks .short{display:none;}

@media (max-width:600px){
  nav{flex-wrap:wrap;gap:10px;padding:20px 20px;}
  .navlinks{gap:16px;font-size:13px;flex-wrap:wrap;}
  .navlinks .full{display:none;}
  .navlinks .short{display:inline;}
}

/* ---------- Hero (Inicio) ---------- */
.hero{
  display:grid;grid-template-columns:1.05fr 0.95fr;gap:56px;
  align-items:center;
  padding:24px 0 36px;
}
.hero h1{font-size:clamp(30px,4vw,42px);line-height:1.2;letter-spacing:-0.01em;}
.hero p.lede{
  font-size:17px;color:var(--ink-soft);margin:20px 0 0;max-width:46ch;
}
.cta-row{margin-top:30px;display:flex;gap:16px;align-items:center;}
.btn{
  display:inline-block;padding:11px 20px;background:var(--ink);color:var(--paper);
  text-decoration:none;font-size:14px;border-radius:3px;
}
.btn.secondary{
  background:transparent;color:var(--ink);border:1px solid var(--line);
}

@media (max-width:760px){
  .hero{grid-template-columns:1fr;}
}

/* ---------- Diagrama giratorio (Inicio) ---------- */
.diagram-wrap{position:relative;}
.diagram-wrap svg{width:100%;height:auto;}

.orbit{animation:spin 90s linear infinite;}
.counter-orbit{animation:spin-reverse 90s linear infinite;}
@keyframes spin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
@keyframes spin-reverse{from{transform:rotate(0deg);}to{transform:rotate(-360deg);}}
@media (prefers-reduced-motion:reduce){
  .orbit,.counter-orbit{animation:none;}
}

/* ---------- Cabecera simple de página (Calendario, Organizadores, Otros eventos) ---------- */
.page-hero{padding:36px 0 8px;}
.page-hero h1{font-size:clamp(26px,3.4vw,34px);letter-spacing:-0.01em;}
.page-hero p{color:var(--ink-soft);margin-top:14px;font-size:16px;}

.section-title{font-size:19px;margin:52px 0 20px;}

/* ---------- Filas de sesión (Inicio y Calendario) ---------- */
.avisos{padding:24px 0 56px;}
.avisos-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:22px;}
.avisos-head h2{font-size:19px;}
.avisos-head a{font-size:13.5px;text-decoration:none;color:var(--ink-soft);}
.aviso-row{
  display:flex;gap:24px;padding:16px 0;border-top:1px solid var(--line);
}
.aviso-row:last-child{border-bottom:1px solid var(--line);}
.aviso-date{width:110px;flex-shrink:0;font-size:13px;color:var(--ink-soft);padding-top:2px;}
.aviso-title{font-size:15.5px;}
.aviso-title span{display:block;font-size:13px;color:var(--ink-soft);margin-top:3px;}

@media (max-width:600px){
  .aviso-row{flex-direction:column;gap:4px;}
  .aviso-date{width:auto;}
}

.empty-state{
  padding:28px 0 8px;font-size:14.5px;color:var(--ink-soft);
  border-top:1px solid var(--line);
}

/* ---------- Listas simples (Organizadores, Otros eventos) ---------- */
.list-row{
  display:flex;flex-direction:column;gap:4px;
  padding:22px 0;border-top:1px solid var(--line);
}
.list-row:last-child{border-bottom:1px solid var(--line);}
.list-row h3{font-size:17px;}
.list-row h3 a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);}
.list-row h3 a:hover{border-bottom-color:var(--accent);}
.list-row p{margin:0;font-size:14.5px;color:var(--ink-soft);}

/* ---------- Otros eventos: dos columnas ---------- */
.event-date{font-size:13px;color:var(--ink-soft);}
.events-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:0 48px;
  margin-top:36px;align-items:start;
}
.events-col h2{font-size:19px;margin-bottom:4px;}

@media (max-width:700px){
  .events-grid{grid-template-columns:1fr;}
}

/* ---------- Pie de página ---------- */
footer{
  padding:40px 0 56px;font-size:13px;color:var(--ink-soft);
  border-top:1px solid var(--line);margin-top:56px;
  display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;
}
footer a{color:var(--ink-soft);}
