/* ==================================================================
   AIPJ · Capítulo Costa Rica
   Documento único y autocontenido.
   Tipografía: Cormorant Garamond (títulos), Source Serif 4 (lectura),
   Source Sans 3 (interfaz). Identidad derivada de la marca: carbón,
   carmín y oro.
================================================================== */
:root{
  --carbon:#2B2C28;
  --carbon-2:#3D3E39;
  --carbon-3:#1E1F1B;
  --marino:#1B2A44;
  --fondo:#FCFCFA;
  --fondo-2:#F2F1EC;
  --texto:#1B1C18;
  --gris:#5A5B52;
  --gris-claro:#8C8D84;
  --linea:#DCDCD3;
  --linea-osc:rgba(255,255,255,0.15);
  --carmin:#A6121F;
  --carmin-osc:#7E0D17;
  --coral:#ED6B69;
  --oro:#A98545;
  --oro-claro:#C9A96A;
  --ancho:1180px;
  --paso:clamp(4.5rem, 8vw, 7.5rem);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--fondo);color:var(--texto);
  font-family:"Source Serif 4",Georgia,serif;
  font-size:1.06rem;font-weight:400;line-height:1.72;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:inherit}

h1,h2,h3,h4,.display,.cifra .n,.ficha dd,.hitos .cuando,.cuota .monto,.marca .rot b,.autoridad strong,.lema{
  font-variant-numeric:lining-nums tabular-nums;
  font-feature-settings:"lnum" 1,"tnum" 1;
}
h1,h2,h3,h4,.display{
  font-family:"Cormorant Garamond",Garamond,Georgia,serif;
  font-weight:600;line-height:1.1;letter-spacing:-0.005em;margin:0;
  text-wrap:balance;color:var(--texto);
}
h1{font-size:clamp(2.9rem,2rem + 3.6vw,5rem);line-height:1.02;font-weight:500}
h2{font-size:clamp(2.1rem,1.6rem + 2.1vw,3.2rem);font-weight:500}
h3{font-size:1.42rem}
h4{font-size:1.15rem}
p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}
strong,b{font-weight:600}

.ui,.eyebrow,label,.btn,.menu a,.tabla thead th,.nota-pie{
  font-family:"Source Sans 3",-apple-system,Segoe UI,sans-serif;
}
.eyebrow{
  display:block;font-size:0.72rem;font-weight:600;letter-spacing:0.2em;
  text-transform:uppercase;color:var(--carmin);margin-bottom:1.3rem;
  padding-top:1.1rem;position:relative;
}
.eyebrow::before{content:"";position:absolute;top:0;left:0;width:46px;height:2px;background:var(--oro)}
.oscuro .eyebrow{color:var(--oro-claro)}
.oscuro .eyebrow::before{background:var(--oro)}
.guia{font-size:1.2rem;line-height:1.68;color:#32332C}
.nota{font-size:0.97rem;color:var(--gris)}

.wrap{width:min(var(--ancho),calc(100% - 3rem));margin-inline:auto}
.seccion{padding-block:var(--paso)}
.alterna{background:var(--fondo-2)}
.oscuro{background:var(--carbon);color:#E3E3DA}
.oscuro h1,.oscuro h2,.oscuro h3,.oscuro h4{color:#FCFCFA}
.oscuro .guia{color:#DDDDD3}
.oscuro .nota{color:#A9AAA1}

.saltar{position:absolute;left:-999px;top:0;background:var(--carbon);color:#fff;padding:0.7rem 1.1rem;z-index:99}
.saltar:focus{left:0.5rem;top:0.5rem}
:focus-visible{outline:2px solid var(--carmin);outline-offset:3px}
.oscuro :focus-visible{outline-color:var(--oro-claro)}

/* ---------- encabezado ---------- */
.franja-sup{background:var(--carbon-3);color:#A9AAA1;font-size:0.8rem;font-family:"Source Sans 3",sans-serif}
.franja-sup .wrap{display:flex;justify-content:space-between;gap:1rem;padding-block:0.55rem;flex-wrap:wrap}
.franja-sup a{color:#C9CAC1;text-decoration:none}
.franja-sup a:hover{color:#fff}

.barra{position:sticky;top:0;z-index:40;background:rgba(252,252,250,0.97);backdrop-filter:blur(10px);border-bottom:1px solid var(--linea)}
.barra .wrap{display:flex;align-items:center;gap:2rem;min-height:86px}
.marca{display:flex;align-items:center;gap:0.95rem;text-decoration:none;margin-right:auto}
.escudo-barra{height:50px;width:auto;flex:none}
.marca .rot{line-height:1.3}
.marca .rot b{display:block;font-family:"Cormorant Garamond",serif;font-size:1.24rem;font-weight:600;letter-spacing:0.005em}
.marca .rot span{display:block;font-family:"Source Sans 3",sans-serif;font-size:0.68rem;font-weight:600;letter-spacing:0.19em;text-transform:uppercase;color:var(--carmin)}
.menu{display:flex;gap:1.85rem;align-items:center}
.menu a{font-size:0.93rem;font-weight:500;letter-spacing:0.01em;text-decoration:none;color:#2E2F29;padding:0.4rem 0;border-bottom:2px solid transparent}
.menu a:hover{color:var(--carmin)}
.menu a.activo{border-bottom-color:var(--carmin);color:var(--carmin);font-weight:600}
.abrir-menu{display:none;background:none;border:1px solid var(--linea);padding:0.5rem 0.85rem;font:inherit;font-family:"Source Sans 3",sans-serif;font-size:0.85rem;cursor:pointer}

/* ---------- botones ---------- */
.btn{
  display:inline-flex;align-items:center;gap:0.5rem;font-weight:600;font-size:0.92rem;
  letter-spacing:0.04em;text-transform:uppercase;padding:0.95rem 1.9rem;
  text-decoration:none;cursor:pointer;border:1px solid var(--carmin);
  background:var(--carmin);color:#fff;transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.btn:hover{background:var(--carmin-osc);border-color:var(--carmin-osc)}
.btn.sec{background:transparent;color:var(--texto);border-color:var(--gris-claro)}
.btn.sec:hover{background:var(--carbon);border-color:var(--carbon);color:#fff}
.oscuro .btn.sec,.portada .btn.sec{color:#FCFCFA;border-color:var(--linea-osc)}
.oscuro .btn.sec:hover,.portada .btn.sec:hover{background:#FCFCFA;color:var(--carbon);border-color:#FCFCFA}
.acciones{display:flex;gap:1rem;flex-wrap:wrap;margin-top:2.4rem}

/* ---------- portada ---------- */
.portada{background:var(--carbon);color:#E3E3DA;padding-block:clamp(4rem,7vw,6.5rem);position:relative;overflow:hidden}
.portada::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 90% at 78% 42%,rgba(169,133,69,0.16),transparent 62%);
}
.portada .wrap{position:relative;z-index:1}
.portada .hero{display:grid;grid-template-columns:1.2fr 0.8fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.portada h1{color:#FCFCFA;max-width:11em}
.portada .institucion{
  font-family:"Source Sans 3",sans-serif;font-size:0.76rem;font-weight:600;letter-spacing:0.2em;
  text-transform:uppercase;color:var(--oro-claro);display:block;margin-bottom:1.5rem;
}
.portada .guia{max-width:34em;margin-top:1.8rem;color:#DDDDD3}
.emblema{position:relative;width:min(330px,82%);margin-inline:auto}
.emblema .sello-cr{
  width:100%;border-radius:50%;
  filter:drop-shadow(0 18px 44px rgba(0,0,0,0.45));
  animation:aparecer 1.1s ease both;
}
@keyframes aparecer{from{opacity:0;transform:scale(0.94)}to{opacity:1;transform:none}}
.ficha{
  border-top:1px solid var(--linea-osc);margin-top:clamp(2.8rem,5vw,4rem);
  padding-top:2rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1.8rem;position:relative;z-index:1;
}
.ficha dt{font-family:"Source Sans 3",sans-serif;font-size:0.68rem;font-weight:600;letter-spacing:0.17em;text-transform:uppercase;color:var(--oro-claro);margin-bottom:0.5rem}
.ficha dd{margin:0;font-size:1.14rem;color:#F1F1E9;font-family:"Cormorant Garamond",serif;font-weight:600}
.ficha dd small{display:block;font-family:"Source Serif 4",serif;font-weight:400;color:#A9AAA1;font-size:0.85rem;margin-top:0.25rem;line-height:1.4}

/* ---------- cifras ---------- */
.cifras{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.cifra{padding:2.4rem 1.2rem;text-align:center;border-right:1px solid var(--linea)}
.cifra:last-child{border-right:0}
.cifra .n{display:block;font-family:"Cormorant Garamond",serif;font-size:clamp(2.6rem,2rem + 1.6vw,3.6rem);font-weight:500;line-height:1;color:var(--carmin)}
.cifra .t{display:block;font-family:"Source Sans 3",sans-serif;font-size:0.72rem;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--gris);margin-top:0.8rem}

/* ---------- rejillas ---------- */
.dos{display:grid;grid-template-columns:0.78fr 1.22fr;gap:clamp(2rem,5vw,5rem);align-items:start}
.dos-igual{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.lista-fines{display:grid;grid-template-columns:repeat(2,1fr);gap:0 clamp(2rem,4vw,4rem);margin-top:3rem}
.fin{border-top:1px solid var(--linea);padding:1.8rem 0}
.fin h3{margin-bottom:0.5rem}
.fin p{font-size:1rem;color:#3A3B34;margin:0}
.datos-inst{border-top:1px solid var(--linea)}
.datos-inst div{display:grid;grid-template-columns:0.5fr 1fr;gap:1.5rem;padding:1.15rem 0;border-bottom:1px solid var(--linea)}
.datos-inst dt{font-family:"Source Sans 3",sans-serif;font-size:0.72rem;font-weight:600;letter-spacing:0.13em;text-transform:uppercase;color:var(--gris);padding-top:0.3rem}
.datos-inst dd{margin:0;font-size:1.02rem}

/* ---------- membresía ---------- */
.niveles{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:3rem}
.nivel{background:#fff;border:1px solid var(--linea);padding:2.1rem 1.9rem;display:flex;flex-direction:column;position:relative}
.nivel::before{content:"";position:absolute;top:-1px;left:-1px;right:-1px;height:3px;background:var(--carmin)}
.nivel .cat{font-family:"Source Sans 3",sans-serif;font-size:0.7rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--oro);display:block;margin-bottom:0.8rem}
.nivel h3{margin-bottom:1rem}
.nivel ul{margin:0 0 1.8rem;padding-left:1.1rem;font-size:0.99rem;color:#3A3B34}
.nivel li{margin-bottom:0.4rem}
.nivel .derechos{margin-top:auto;padding-top:1.1rem;border-top:1px solid var(--linea);font-size:0.9rem;color:var(--gris)}
.nivel .derechos b{color:var(--texto)}

.condiciones{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem;margin-top:1.6rem}
.condicion{border:1px solid var(--linea);padding:1.9rem 1.9rem;background:#fff}
.condicion h3{font-size:1.22rem;margin-bottom:0.6rem}
.condicion p{font-size:0.99rem;color:#3A3B34;margin:0}
.alterna .condicion,.alterna .nivel{background:var(--fondo)}

/* ---------- límites ---------- */
.limites{border:1px solid var(--linea);border-left:3px solid var(--carmin);background:#fff;padding:2.2rem 2.4rem}
.limites ol{margin:0;padding-left:1.3rem}
.limites li{margin-bottom:0.95rem}
.limites li:last-child{margin-bottom:0}
.limites li::marker{color:var(--carmin);font-weight:600}

/* ---------- formulario ---------- */
.formulario{background:#fff;border:1px solid var(--linea);padding:clamp(1.8rem,3vw,2.8rem)}
.alterna .formulario{background:var(--fondo)}
.campos{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem}
.campo{display:flex;flex-direction:column;gap:0.4rem}
.campo.ancho{grid-column:1 / -1}
label{font-size:0.74rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--gris)}
input,select,textarea{
  font-family:"Source Serif 4",serif;font-size:1rem;color:var(--texto);
  padding:0.78rem 0.9rem;border:1px solid var(--linea);background:var(--fondo);
}
input:focus,select:focus,textarea:focus{border-color:var(--carbon);background:#fff}
textarea{resize:vertical;min-height:110px}
.check{display:flex;gap:0.8rem;align-items:flex-start;grid-column:1 / -1;font-size:0.94rem;line-height:1.55;color:#3A3B34}
.check input{margin-top:0.25rem;flex:none;width:17px;height:17px}
.check span{font-family:"Source Serif 4",serif;font-size:0.95rem;font-weight:400;letter-spacing:0;text-transform:none;color:#3A3B34;line-height:1.6}
.aviso{margin-top:1.4rem;font-size:0.95rem;padding:0.95rem 1.1rem;display:none}
.aviso.ok{display:block;background:#EDF3EE;border:1px solid #4A7A55;color:#22482C}
.aviso.mal{display:block;background:#F8E9E7;border:1px solid var(--carmin);color:var(--carmin-osc)}
.obligatorio{color:var(--carmin)}

.cuota{border:1px solid var(--linea);border-top:3px solid var(--oro);background:#fff;padding:1.9rem 2rem;margin-top:2rem}
.alterna .cuota{background:var(--fondo)}
.cuota .monto{display:flex;align-items:baseline;gap:0.9rem;white-space:nowrap;font-family:"Cormorant Garamond",serif;font-size:2.9rem;font-weight:500;color:var(--carmin);line-height:1;margin-bottom:1rem}
.cuota .monto small{font-family:"Source Sans 3",sans-serif;font-size:0.68rem;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--gris)}
.cuota p{font-size:0.97rem;color:#3A3B34;margin:0}

/* ---------- congreso ---------- */
.portada-congreso{background:var(--carbon-3);color:#E3E3DA;padding-block:clamp(4rem,8vw,7rem);position:relative;overflow:hidden}
.portada-congreso .sello-fondo{position:absolute;right:-7%;top:50%;transform:translateY(-50%);width:min(500px,54vw);opacity:0.10;pointer-events:none}
.portada-congreso::after{content:"";position:absolute;inset:0;background:radial-gradient(90% 70% at 78% 45%,rgba(169,133,69,0.20),transparent 62%);pointer-events:none;z-index:1}
.portada-congreso .wrap{position:relative;z-index:1}
.lema{
  font-family:"Cormorant Garamond",serif;font-weight:500;
  font-size:clamp(2.4rem,1.6rem + 3.2vw,4.4rem);line-height:1.06;
  max-width:14em;color:#FCFCFA;letter-spacing:-0.005em;margin:0;
}
.lema em{font-style:italic;color:var(--oro-claro)}
.autoridades{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(2rem,4vw,4rem);margin-top:3rem}
.autoridad{border-top:1px solid var(--linea);padding:1.4rem 0}
.autoridad strong{display:block;font-family:"Cormorant Garamond",serif;font-size:1.32rem;font-weight:600}
.autoridad span{font-size:0.94rem;color:var(--gris)}
.suscripcion{display:flex;gap:0.8rem;flex-wrap:wrap;margin-top:2.2rem}
.suscripcion input{min-width:290px;background:rgba(255,255,255,0.07);border-color:var(--linea-osc);color:#fff}
.suscripcion input::placeholder{color:#9A9B92}

/* ---------- ejes ---------- */
.ejes{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:3rem}
.eje{background:#fff;border:1px solid var(--linea);padding:2rem 1.8rem;transition:border-color .2s ease,transform .2s ease}
.alterna .eje{background:var(--fondo)}
.eje:hover{border-color:var(--oro);transform:translateY(-2px)}
.eje .num{display:block;font-family:"Source Sans 3",sans-serif;font-size:0.7rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--oro);margin-bottom:0.7rem}
.eje h3{font-size:1.3rem;margin-bottom:0.7rem}
.eje p{font-size:0.97rem;color:#3A3B34;margin:0}

/* ---------- sellos de coordinaciones ---------- */
.sellos{display:grid;grid-template-columns:repeat(4,1fr);gap:2.4rem 1.8rem;margin-top:3.2rem}
.sello-item{text-align:center}
.sello-item img{width:min(150px,70%);margin:0 auto 1rem;transition:transform .25s ease}
.sello-item:hover img{transform:scale(1.05)}
.sello-item h4{font-size:1.05rem;line-height:1.25;margin-bottom:0.25rem}
.sello-item span{display:block;font-family:"Source Sans 3",sans-serif;font-size:0.78rem;color:var(--gris);line-height:1.45}

/* ---------- tablas ---------- */
.tabla-envoltura{overflow-x:auto;margin-top:2.6rem}
.tabla{width:100%;border-collapse:collapse;font-size:1rem;background:#fff;min-width:620px}
.alterna .tabla{background:var(--fondo)}
.tabla th,.tabla td{padding:1.05rem 1.2rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--linea)}
.tabla thead th{
  font-size:0.7rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--gris);
  border-bottom:2px solid var(--carbon);white-space:nowrap;padding-bottom:0.8rem;
}
.tabla thead th small{display:block;font-family:"Source Serif 4",serif;font-size:0.76rem;letter-spacing:0;text-transform:none;font-weight:400;color:var(--gris-claro);margin-top:0.3rem}
.tabla tbody th{font-weight:600;white-space:nowrap}
.tabla tbody tr:last-child th,.tabla tbody tr:last-child td{border-bottom:0}
.tarifas td{font-variant-numeric:tabular-nums;font-weight:600;color:var(--carbon)}
.tarifas tbody th{white-space:normal;font-weight:400}
.tarifas td.pendiente{
  font-family:"Source Sans 3",-apple-system,Segoe UI,sans-serif;
  font-weight:400;font-size:0.74rem;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--gris-claro);white-space:nowrap;
}

/* ---------- hitos ---------- */
.hitos{list-style:none;margin:3rem 0 0;padding:0;border-top:1px solid var(--linea)}
.hitos li{display:grid;grid-template-columns:16rem 1fr;gap:2rem;padding:1.4rem 0;border-bottom:1px solid var(--linea);align-items:baseline}
.hitos .cuando{font-family:"Cormorant Garamond",serif;font-size:1.35rem;font-weight:600;color:var(--carmin)}
.hitos .que{color:#3A3B34;font-size:1rem}

/* ---------- legado ---------- */
.legado{margin:0;padding-left:1.2rem}
.legado li{margin-bottom:0.95rem;font-size:1.03rem}
.legado li::marker{color:var(--oro)}

/* ---------- enlaces a la red AIPJ ---------- */
.enlaces{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;margin-top:3rem}
.enlace{
  border:1px solid var(--linea-osc);padding:2rem 1.9rem;background:rgba(255,255,255,0.03);
  display:flex;flex-direction:column;transition:border-color .25s ease,background .25s ease;
}
.enlace:hover{border-color:var(--oro);background:rgba(169,133,69,0.07)}
.enlace .icono{width:44px;height:44px;margin-bottom:1.3rem;color:var(--oro-claro)}
.enlace h3{font-size:1.42rem;margin-bottom:0.65rem}
.enlace p{font-size:0.96rem;color:#CFCFC6;margin-bottom:1.7rem}
.enlace .btn{margin-top:auto;align-self:flex-start}
.enlace .dominio{
  font-family:"Source Sans 3",sans-serif;font-size:0.7rem;letter-spacing:0.12em;
  text-transform:uppercase;color:var(--gris-claro);margin-top:1rem;
}

/* ---------- correos ---------- */
.correos{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:3rem}
.correo{border:1px solid var(--linea-osc);padding:1.5rem 1.6rem;background:rgba(255,255,255,0.03)}
.correo dt{font-family:"Source Sans 3",sans-serif;font-size:0.68rem;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--oro-claro);margin-bottom:0.5rem}
.correo dd{margin:0}
.correo a{font-size:1rem;color:#FCFCFA;text-decoration:none;border-bottom:1px solid rgba(169,133,69,0.6);word-break:break-all}
.correo a:hover{border-bottom-color:#FCFCFA}

/* ---------- publicaciones ---------- */
.entradas{margin-top:3rem;border-top:1px solid var(--linea)}
.entrada-item{display:grid;grid-template-columns:10rem 1fr auto;gap:2rem;align-items:baseline;padding:1.8rem 0;border-bottom:1px solid var(--linea);text-decoration:none}
.entrada-item:hover h3{color:var(--carmin)}
.entrada-item .fecha{font-family:"Source Sans 3",sans-serif;font-size:0.78rem;font-weight:600;letter-spacing:0.1em;color:var(--gris);text-transform:uppercase}
.entrada-item p{font-size:0.99rem;color:var(--gris);margin:0.4rem 0 0}
.entrada-item .mas{font-family:"Source Sans 3",sans-serif;font-size:0.78rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--carmin);white-space:nowrap}
.vacio{border:1px solid var(--linea);padding:3rem;text-align:center;color:var(--gris);background:#fff}
.articulo{max-width:40em}
.articulo .fecha{display:block;font-family:"Source Sans 3",sans-serif;font-size:0.78rem;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;color:var(--gris);margin-bottom:2rem}
.articulo p{font-size:1.12rem;line-height:1.75}
.volver{display:inline-block;font-family:"Source Sans 3",sans-serif;font-size:0.78rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--carmin);text-decoration:none;margin-bottom:2rem}

/* ---------- banda de llamada ---------- */
.banda{background:var(--fondo-2);border-top:1px solid var(--linea);border-bottom:1px solid var(--linea)}
.banda .wrap{display:grid;grid-template-columns:auto 1fr auto;gap:2.2rem;align-items:center;padding-block:3rem}
.banda img{width:96px}
.banda h3{font-size:1.65rem;margin-bottom:0.35rem}
.banda p{margin:0;color:var(--gris);font-size:1rem}

/* ---------- contacto y pie ---------- */
.contacto dl{margin:0}
.contacto dt{font-family:"Source Sans 3",sans-serif;font-size:0.68rem;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--oro-claro);margin-top:1.8rem}
.contacto dd{margin:0.35rem 0 0;font-size:1.05rem}
.contacto dd a{color:#FCFCFA;text-decoration:none;border-bottom:1px solid rgba(169,133,69,0.6)}
.hilo{height:4px;background:linear-gradient(90deg,var(--carmin) 0 33.33%,var(--oro) 33.33% 66.66%,var(--carbon-2) 66.66% 100%)}
footer{background:var(--carbon-3);color:#9A9B92;padding:3rem 0 5.5rem;font-size:0.9rem}
footer .wrap{display:grid;grid-template-columns:1.4fr 1fr;gap:2.5rem}
footer p{margin:0 0 0.55rem}
footer .normas{font-size:0.84rem;line-height:1.65}

/* ---------- fotografía ---------- */
.portada-congreso{background:var(--carbon-3)}
.foto-fondo{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.foto-fondo img{width:100%;height:100%;object-fit:cover;opacity:0.9;object-position:center 42%}
.foto-fondo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(95deg,rgba(30,31,27,0.95) 0%,rgba(30,31,27,0.85) 38%,rgba(30,31,27,0.55) 72%,rgba(30,31,27,0.35) 100%);
}
.figura{margin:0;position:relative}
.figura img{width:100%;height:auto;display:block}
.figura figcaption{
  font-family:"Source Sans 3",sans-serif;font-size:0.76rem;line-height:1.5;
  color:var(--gris);margin-top:0.85rem;padding-left:0.9rem;border-left:2px solid var(--oro);
}
.oscuro .figura figcaption{color:#A9AAA1}
.banda-foto{position:relative;overflow:hidden;background:var(--carbon-3)}
.banda-foto>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0.42}
.banda-foto::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(30,31,27,0.94) 0%,rgba(30,31,27,0.72) 55%,rgba(30,31,27,0.5) 100%)}
.banda-foto .wrap{position:relative;z-index:2;display:grid;grid-template-columns:1fr auto;gap:2.5rem;align-items:center;padding-block:4rem;color:#E3E3DA}
.banda-foto h3{font-size:2rem;color:#FCFCFA;margin-bottom:0.6rem;max-width:14em}
.banda-foto p{margin:0;color:#CFCFC6;font-size:1.05rem;max-width:38em}
.banda-foto .eyebrow{color:var(--oro-claro)}
.creditos{font-size:0.78rem;line-height:1.6;color:#7E7F77;margin-top:1.4rem}
.creditos a{color:#8C8D84}
@media (max-width:900px){
  .banda-foto .wrap{grid-template-columns:1fr;padding-block:3rem}
  .cuenta{gap:1.1rem}
  .cuenta .u{min-width:58px}
  .cuenta .sep{display:none}
  .figura[style]{float:none !important;width:100% !important;margin:0 0 1.8rem 0 !important}
  .banda-foto h3{font-size:1.6rem}
}

/* ---------- botón flotante de WhatsApp ---------- */
.wa{
  position:fixed;right:1.6rem;bottom:1.6rem;z-index:60;
  display:flex;align-items:center;gap:0.7rem;text-decoration:none;
  background:#1F8A4C;color:#fff;padding:0.85rem 1.15rem;border-radius:999px;
  box-shadow:0 10px 30px rgba(0,0,0,0.28);
  font-family:"Source Sans 3",sans-serif;font-size:0.85rem;font-weight:600;letter-spacing:0.04em;
  transition:background .2s ease,transform .2s ease,box-shadow .2s ease;
}
.wa:hover{background:#186B3B;transform:translateY(-2px);box-shadow:0 14px 34px rgba(0,0,0,0.34)}
.wa svg{width:23px;height:23px;flex:none;fill:currentColor}
.wa .texto{white-space:nowrap}
@media (max-width:640px){
  .wa{right:1rem;bottom:1rem;padding:0.9rem;border-radius:50%}
  .wa .texto{display:none}
}
@media print{.wa{display:none}}

/* ---------- filete superior y textura de seguridad ---------- */
body::before{
  content:"";position:fixed;top:0;left:0;right:0;height:3px;z-index:70;
  background:linear-gradient(90deg,var(--carmin) 0 32%,var(--oro) 32% 64%,var(--carbon-2) 64% 100%);
}
.franja-sup{padding-top:3px}
.trama{
  position:absolute;inset:0;pointer-events:none;opacity:0.5;
  background-image:
    repeating-linear-gradient(58deg,rgba(169,133,69,0.055) 0 1px,transparent 1px 7px),
    repeating-linear-gradient(-58deg,rgba(169,133,69,0.045) 0 1px,transparent 1px 9px);
}
.oscuro,.portada,.portada-congreso{position:relative}

/* ---------- entrada escalonada de la portada ---------- */
@keyframes subir{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.portada .institucion,.portada h1,.portada .guia,.portada .acciones,.portada .ficha,
.portada-congreso .eyebrow,.portada-congreso .lema,.portada-congreso .ficha{
  animation:subir .9s cubic-bezier(.22,.7,.3,1) both;
}
.portada .institucion,.portada-congreso .eyebrow{animation-delay:.05s}
.portada h1,.portada-congreso .lema{animation-delay:.18s}
.portada .guia{animation-delay:.32s}
.portada .acciones{animation-delay:.44s}
.portada .ficha,.portada-congreso .ficha{animation-delay:.56s}

/* ---------- cuenta regresiva ---------- */
.cuenta{display:flex;gap:clamp(1.4rem,3vw,3rem);flex-wrap:wrap;align-items:flex-end}
.cuenta .u{text-align:center;min-width:74px}
.cuenta .v{
  display:block;font-family:"Cormorant Garamond",serif;font-weight:500;
  font-size:clamp(2.4rem,1.8rem + 1.8vw,3.6rem);line-height:1;color:var(--oro-claro);
  font-variant-numeric:lining-nums tabular-nums;
}
.cuenta .e{
  display:block;font-family:"Source Sans 3",sans-serif;font-size:0.66rem;font-weight:600;
  letter-spacing:0.18em;text-transform:uppercase;color:#A9AAA1;margin-top:0.6rem;
}
.cuenta .sep{font-family:"Cormorant Garamond",serif;font-size:2.2rem;color:rgba(255,255,255,0.2);line-height:1;padding-bottom:1.6rem}
.bloque-cuenta{border-top:1px solid var(--linea-osc);margin-top:2.6rem;padding-top:2rem}
.bloque-cuenta .rotulo{
  font-family:"Source Sans 3",sans-serif;font-size:0.68rem;font-weight:600;letter-spacing:0.18em;
  text-transform:uppercase;color:var(--oro-claro);display:block;margin-bottom:1.4rem;
}

/* ---------- cita a plena página ---------- */
.cita{background:var(--carbon-3);color:#E3E3DA;padding-block:clamp(4.5rem,8vw,7rem);position:relative;overflow:hidden;text-align:center}
.cita .rueda{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(560px,78vw);opacity:0.055;filter:blur(1px);pointer-events:none}
.cita .wrap{position:relative;z-index:1;max-width:36em}
.cita blockquote{
  margin:0;font-family:"Cormorant Garamond",serif;font-weight:400;font-style:italic;
  font-size:clamp(1.75rem,1.2rem + 2.2vw,3rem);line-height:1.24;color:#FCFCFA;letter-spacing:0.002em;
}
.cita .comilla{
  display:block;font-family:"Cormorant Garamond",serif;font-size:5rem;line-height:0.4;
  color:var(--oro);margin-bottom:1.6rem;height:2.2rem;
}
.cita cite{
  display:block;font-family:"Source Sans 3",sans-serif;font-style:normal;font-size:0.72rem;
  font-weight:600;letter-spacing:0.19em;text-transform:uppercase;color:#8C8D84;margin-top:2.4rem;
}

/* ---------- beneficios ---------- */
.beneficios{display:grid;grid-template-columns:repeat(2,1fr);gap:0 clamp(2.5rem,5vw,5rem);margin-top:3rem}
.beneficio{display:grid;grid-template-columns:auto 1fr;gap:1.6rem;padding:2.1rem 0;border-top:1px solid var(--linea);align-items:start}
.beneficio .ico{width:40px;height:40px;color:var(--carmin);flex:none}
.beneficio h3{font-size:1.32rem;margin-bottom:0.5rem}
.beneficio p{font-size:0.99rem;color:#3A3B34;margin:0}
.beneficio .detalle{display:block;font-family:"Source Sans 3",sans-serif;font-size:0.78rem;letter-spacing:0.06em;color:var(--oro);margin-top:0.8rem;font-weight:600}

/* ---------- avance del congreso en la portada ---------- */
.avance{
  display:inline-flex;align-items:center;gap:1rem;margin-top:2.6rem;
  border:1px solid var(--linea-osc);padding:0.75rem 1.3rem;text-decoration:none;
  transition:border-color .2s ease,background .2s ease;
}
.avance:hover{border-color:var(--oro);background:rgba(169,133,69,0.08)}
.avance .n{font-family:"Cormorant Garamond",serif;font-size:1.9rem;font-weight:500;color:var(--oro-claro);line-height:1;font-variant-numeric:lining-nums}
.avance .t{font-family:"Source Sans 3",sans-serif;font-size:0.76rem;line-height:1.4;color:#CFCFC6}
.avance .t b{display:block;color:#FCFCFA;font-weight:600;letter-spacing:0.03em}

/* ---------- últimas publicaciones en la portada ---------- */
.ultimas{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:3rem}
.ultima{background:#fff;border:1px solid var(--linea);padding:1.9rem 1.7rem;text-decoration:none;display:flex;flex-direction:column;transition:border-color .2s ease,transform .2s ease}
.alterna .ultima{background:var(--fondo)}
.ultima:hover{border-color:var(--oro);transform:translateY(-2px)}
.ultima .fecha{font-family:"Source Sans 3",sans-serif;font-size:0.72rem;font-weight:600;letter-spacing:0.13em;text-transform:uppercase;color:var(--gris);margin-bottom:0.9rem}
.ultima h3{font-size:1.24rem;margin-bottom:0.6rem}
.ultima p{font-size:0.95rem;color:var(--gris);margin:0 0 1.4rem}
.ultima .leer{margin-top:auto;font-family:"Source Sans 3",sans-serif;font-size:0.76rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--carmin)}
@media (max-width:900px){.beneficios,.ultimas{grid-template-columns:1fr}}

.vista{display:none}
.vista.activa{display:block}
.rev{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease}
.rev.visto{opacity:1;transform:none}

@media (max-width:1024px){
  .enlaces{grid-template-columns:1fr}
  .sellos{grid-template-columns:repeat(3,1fr)}
  .cifras{grid-template-columns:repeat(3,1fr)}
  .cifra:nth-child(3){border-right:0}
  .correos{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .portada .hero,.dos,.dos-igual,footer .wrap{grid-template-columns:1fr}
  .portada .emblema{max-width:210px;order:-1;margin:0 auto 2.2rem}
  .ficha{grid-template-columns:repeat(2,1fr)}
  .niveles,.condiciones,.lista-fines,.autoridades,.campos,.ejes,.correos,.enlaces{grid-template-columns:1fr}
  .sellos{grid-template-columns:repeat(2,1fr);gap:2rem 1.2rem}
  .cifras{grid-template-columns:repeat(2,1fr)}
  .cifra{border-right:0;border-bottom:1px solid var(--linea);padding:1.8rem 1rem}
  .hitos li{grid-template-columns:1fr;gap:0.35rem}
  .entrada-item{grid-template-columns:1fr;gap:0.45rem}
  .entrada-item .fecha{order:-1}
  .banda .wrap{grid-template-columns:1fr;gap:1.4rem}
  .banda img{display:none}
  .menu{display:none;position:absolute;top:86px;left:0;right:0;background:var(--fondo);border-bottom:1px solid var(--linea);flex-direction:column;align-items:stretch;gap:0;padding:0 1.5rem 1rem}
  .menu.abierto{display:flex}
  .menu a{padding:0.9rem 0;border-bottom:1px solid var(--linea)}
  .abrir-menu{display:block}
  .marca .rot b{font-size:1rem;line-height:1.2}
  .marca .rot span{font-size:0.62rem;letter-spacing:0.15em}
  .escudo-barra{height:42px}
  .barra .wrap{min-height:74px;gap:1rem}
  .menu{top:74px}
  .franja-sup .wrap span:first-child{display:none}
  .franja-sup .wrap{justify-content:flex-start}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important}
  html{scroll-behavior:auto}
  .rev{opacity:1;transform:none}
}

/* ---------- jalones de trayectoria ---------- */
.jalones{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-top:2.4rem;border-top:1px solid var(--linea);padding-top:1.8rem}
.jalon .n{display:block;font-family:"Cormorant Garamond",serif;font-size:2.1rem;font-weight:500;line-height:1;color:var(--carmin);font-variant-numeric:lining-nums}
.jalon .t{display:block;font-family:"Source Sans 3",sans-serif;font-size:0.74rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--gris);margin-top:0.6rem;line-height:1.4}
@media (max-width:900px){.jalones{grid-template-columns:repeat(2,1fr);gap:1.6rem}}

/* ---------- anclas bajo la barra fija ---------- */
section[id],div[id]{scroll-margin-top:110px}

/* ---------- galería fotográfica ---------- */
.galeria{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:3rem}
.galeria figure{margin:0}
.galeria img{width:100%;height:auto;display:block;filter:saturate(0.94);transition:filter .3s ease,transform .3s ease}
.galeria figure:hover img{filter:saturate(1.05);transform:scale(1.01)}
.galeria figcaption{
  font-family:"Source Sans 3",sans-serif;font-size:0.8rem;line-height:1.5;color:var(--gris);
  margin-top:0.8rem;padding-left:0.85rem;border-left:2px solid var(--oro);
}
.oscuro .galeria figcaption{color:#A9AAA1}
.galeria .ancha{grid-column:span 2}
@media (max-width:900px){.galeria{grid-template-columns:1fr}.galeria .ancha{grid-column:auto}}

/* ---------- notas técnicas ---------- */
.nota-cabecera{background:var(--carbon);color:#E3E3DA;padding-block:clamp(3rem,6vw,5rem);position:relative;overflow:hidden}
.nota-cabecera .ficha-nota{
  display:flex;flex-wrap:wrap;gap:.5rem 1.6rem;font-family:"Source Sans 3",sans-serif;
  font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--oro-claro);
  border-top:2px solid var(--carmin);padding-top:.8rem;margin-bottom:1.6rem;
}
.nota-cabecera h1{color:#FCFCFA;font-size:clamp(2rem,1.4rem + 2.4vw,3.2rem);max-width:18em}
.nota-cabecera .bajada{
  font-family:"Cormorant Garamond",serif;font-style:italic;font-size:clamp(1.3rem,1.1rem + .8vw,1.75rem);
  line-height:1.4;color:var(--oro-claro);max-width:34em;margin-top:1.6rem;padding-left:1.3rem;
  border-left:2px solid var(--oro);
}
.nota-texto{max-width:42rem;margin:0 auto}
.nota-texto p{font-size:1.09rem;line-height:1.78;margin-bottom:1.15rem}
.nota-texto h2{font-size:1.7rem;margin:2.8rem 0 .9rem}
.nota-texto ul{margin:0 0 1.3rem;padding-left:1.3rem}
.nota-texto li{margin-bottom:.6rem}
.nota-texto li::marker{color:var(--oro)}
.claves{background:#fff;border:1px solid var(--linea);border-top:3px solid var(--carbon);padding:1.8rem 2rem;margin:2.6rem 0}
.claves .rot{font-family:"Source Sans 3",sans-serif;font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gris);margin:0 0 1rem}
.claves ul{list-style:none;margin:0;padding:0}
.claves li{padding-left:1.5rem;position:relative;margin-bottom:.7rem;font-size:1rem;line-height:1.6}
.claves li::before{content:"§";position:absolute;left:0;top:0;color:var(--carmin);font-family:"Cormorant Garamond",serif;font-weight:600}
.fuentes{border-top:1px solid var(--linea);padding-top:1.4rem;margin-top:2.6rem}
.fuentes .rot{font-family:"Source Sans 3",sans-serif;font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--oro);margin:0 0 1rem}
.fuentes ul{list-style:none;margin:0;padding:0}
.fuentes li{font-size:.9rem;line-height:1.6;color:var(--gris);padding-left:1.8rem;text-indent:-1.8rem;margin-bottom:.7rem}
.fuentes a{word-break:break-word}
.miga{font-family:"Source Sans 3",sans-serif;font-size:.76rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--carmin);text-decoration:none;display:inline-block;margin-bottom:2rem}
@media print{.barra,.franja-sup,.wa,.miga{display:none}}

/* ---------- contador de visitas ---------- */
.contador{display:flex;align-items:baseline;gap:.7rem;margin-top:1.6rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.12)}
.contador .n{display:inline-flex;align-items:center}
.contador .n img{display:block;height:20px;width:auto}
.contador .t{font-family:"Source Sans 3",sans-serif;font-size:.76rem;letter-spacing:.06em;color:#7E7F77}

/* ---------- corrección de desbordes en pantallas estrechas ---------- */
.dos > *,.dos-igual > *,.beneficios > *,.campos > *,.niveles > *,.ejes > *,.enlaces > *,.ultimas > *{min-width:0}
input,select,textarea{width:100%;max-width:100%}
.suscripcion input{min-width:min(290px,100%)}
.formulario{max-width:100%}
.nota-texto,.articulo{max-width:min(42rem,100%)}
img,svg{max-width:100%}
