/* ============================================================
   rp.do — hoja de estilo común
   RP Investment Consulting Group, SRL
   ============================================================ */

:root{
  --ink:#16211C;
  --ledger:#1F5D3F;
  --paper:#FBFBF8;
  --surface:#FFFFFF;
  --rule:#D8DDD6;
  --sello:#A8442A;
  --muted:#5C6660;

  --display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --body:"Source Serif 4",Georgia,"Times New Roman",serif;
  --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ink:#E8EDE9; --ledger:#6FBF8E; --paper:#10160F; --surface:#182018;
    --rule:#2C3A2F; --sello:#E0866B; --muted:#97A39A;
  }
}
:root[data-theme="dark"]{
  --ink:#E8EDE9; --ledger:#6FBF8E; --paper:#10160F; --surface:#182018;
  --rule:#2C3A2F; --sello:#E0866B; --muted:#97A39A;
}

*{box-sizing:border-box}

body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--body); font-size:17px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

.wrap{max-width:60rem;margin:0 auto;padding:0 1.5rem}

/* ---------- navegación ---------- */

.nav{
  border-bottom:1px solid var(--rule);
  padding:1.1rem 0;
  display:flex; align-items:baseline; justify-content:space-between;
  gap:1rem; flex-wrap:wrap;
}
.nav .brand{
  font-family:var(--display); font-weight:900; font-size:1.15rem;
  letter-spacing:-.02em; color:var(--ink); text-decoration:none;
}
.nav ul{list-style:none;display:flex;gap:1.5rem;margin:0;padding:0;flex-wrap:wrap}
.nav a:not(.brand){
  font-family:var(--mono); font-size:.72rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted); text-decoration:none;
  padding-bottom:2px; border-bottom:1px solid transparent;
}
.nav a:not(.brand):hover,.nav a:not(.brand):focus-visible{color:var(--ink);border-bottom-color:var(--ledger)}
.nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--ledger)}

/* ---------- masthead ---------- */

.masthead{border-bottom:2px solid var(--ink);padding:2.5rem 0 1.25rem}

.mark{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}
.mark strong{
  font-family:var(--display); font-weight:900;
  font-size:clamp(2rem,6vw,3rem); letter-spacing:-.03em; line-height:1;
}
.mark span{
  font-family:var(--mono); font-size:.75rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--muted);
}

.thesis{
  font-family:var(--display); font-weight:500;
  font-size:clamp(1.15rem,2.8vw,1.5rem); line-height:1.35;
  max-width:36ch; margin:1.5rem 0 0; text-wrap:balance;
}
.thesis em{font-style:normal;color:var(--ledger);font-weight:700}

.stamp{
  display:inline-block; margin-top:1.5rem;
  font-family:var(--mono); font-size:.7rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--sello);
  border:1px solid var(--sello); padding:.35rem .6rem;
}

/* ---------- secciones ---------- */

section{border-top:1px solid var(--rule);padding:3rem 0}
section:first-of-type{border-top:none}

.eyebrow{
  font-family:var(--mono); font-size:.7rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--muted); margin:0 0 .75rem;
}

h2{
  font-family:var(--display); font-weight:700;
  font-size:clamp(1.4rem,3.5vw,1.9rem); letter-spacing:-.02em; line-height:1.2;
  margin:0 0 1.25rem; text-wrap:balance; max-width:28ch;
}

p{max-width:66ch;margin:0 0 1rem}
p.lead{font-size:1.1rem}
strong{font-weight:600}

a{color:var(--ledger)}

/* ---------- servicios ---------- */

.servicios{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));
  gap:1px; background:var(--rule); border:1px solid var(--rule);
  margin:1.75rem 0 0;
}
.servicios article{background:var(--surface);padding:1.4rem 1.3rem}
.servicios h3{
  font-family:var(--display); font-weight:700; font-size:1rem;
  margin:0 0 .5rem; letter-spacing:-.01em;
}
.servicios p{font-size:.93rem;margin:0;max-width:none;color:var(--muted)}

/* ---------- proyectos ---------- */

.proyectos{list-style:none;padding:0;margin:1.75rem 0 0;display:grid;gap:0}

.proyectos li{border-top:1px solid var(--rule);padding:1.75rem 0}
.proyectos li:first-child{border-top:2px solid var(--ink)}
.proyectos li:last-child{border-bottom:1px solid var(--rule)}

.proyectos .fila{
  display:flex; align-items:baseline; justify-content:space-between;
  gap:1rem; flex-wrap:wrap; margin-bottom:.5rem;
}
.proyectos h3{
  font-family:var(--display); font-weight:700; font-size:1.25rem;
  letter-spacing:-.02em; margin:0;
}
.proyectos h3 a{color:var(--ink);text-decoration:none;border-bottom:1.5px solid var(--ledger)}
.proyectos h3 a:hover,.proyectos h3 a:focus-visible{color:var(--ledger)}

.estado{
  font-family:var(--mono); font-size:.65rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted);
  border:1px solid var(--rule); padding:.3rem .55rem; white-space:nowrap;
}
.estado.activo{color:var(--ledger);border-color:var(--ledger)}
.estado.espera{color:var(--sello);border-color:var(--sello)}

.proyectos p{margin:0 0 .6rem;font-size:.98rem}
.proyectos .enlace{
  font-family:var(--mono); font-size:.72rem; letter-spacing:.08em;
  color:var(--ledger); text-decoration:none; border-bottom:1px solid var(--rule);
}
.proyectos .enlace:hover,.proyectos .enlace:focus-visible{border-bottom-color:var(--ledger)}

/* ---------- tabla ---------- */

.ledger{margin:1.75rem 0 0;overflow-x:auto}
table{
  width:100%; border-collapse:collapse; font-family:var(--mono);
  font-size:.82rem; font-variant-numeric:tabular-nums; min-width:32rem;
}
th{
  text-align:left; font-weight:500; letter-spacing:.08em; text-transform:uppercase;
  font-size:.68rem; color:var(--muted); padding:0 .75rem .6rem 0;
  border-bottom:1px solid var(--ink);
}
td{padding:.7rem .75rem .7rem 0;border-bottom:1px solid var(--rule);vertical-align:top}
td:last-child,th:last-child{padding-right:0}
td.fig{color:var(--ledger);font-weight:500;white-space:nowrap}
caption{
  caption-side:bottom; text-align:left; font-family:var(--body);
  font-size:.85rem; color:var(--muted); padding-top:.9rem; font-style:italic;
}

/* ---------- secuencia numerada ---------- */

.steps{list-style:none;padding:0;margin:1.75rem 0 0;display:grid;gap:1.5rem}
.steps li{
  display:grid; grid-template-columns:3.25rem 1fr; gap:0 1rem;
  align-items:start; padding-bottom:1.5rem; border-bottom:1px solid var(--rule);
}
.steps li:last-child{border-bottom:none;padding-bottom:0}
.steps .n{
  font-family:var(--mono); font-size:.72rem; letter-spacing:.08em;
  color:var(--sello); padding-top:.28rem;
}
.steps h3{
  font-family:var(--display); font-weight:700; font-size:1.02rem;
  margin:0 0 .4rem; letter-spacing:-.01em;
}
.steps p{margin:0;font-size:.95rem;max-width:58ch}

/* ---------- fichas ---------- */

.facts{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));
  gap:1px; background:var(--rule); border:1px solid var(--rule); margin:1.75rem 0 0;
}
.facts div{background:var(--surface);padding:1.1rem 1rem}
.facts dt{
  font-family:var(--mono); font-size:.65rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted); margin-bottom:.4rem;
}
.facts dd{
  margin:0; font-family:var(--display); font-weight:700;
  font-size:1.05rem; line-height:1.3;
}

/* ---------- equipo ---------- */

.team{display:grid;gap:1.5rem;margin-top:1.75rem}
.team article{border-left:2px solid var(--ledger);padding-left:1.1rem}
.team h3{font-family:var(--display);font-weight:700;font-size:1rem;margin:0 0 .15rem}
.team .role{
  font-family:var(--mono); font-size:.7rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--muted); margin:0 0 .6rem;
}
.team p{font-size:.95rem;margin:0}

/* ---------- contacto y pie ---------- */

.contact dl{
  margin:1.5rem 0 0; display:grid; grid-template-columns:max-content 1fr;
  gap:.6rem 1.5rem; font-family:var(--mono); font-size:.85rem; align-items:baseline;
}
.contact dt{
  font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted);
}
.contact dd{margin:0}
.contact a{color:var(--ledger);text-decoration:none;border-bottom:1px solid var(--rule)}
.contact a:hover,.contact a:focus-visible{border-bottom-color:var(--ledger)}

footer{
  border-top:2px solid var(--ink); padding:1.5rem 0 3rem;
  font-family:var(--mono); font-size:.7rem; letter-spacing:.06em; color:var(--muted);
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
}

.note{
  font-family:var(--body); font-style:italic; font-size:.9rem;
  color:var(--muted); max-width:60ch; margin-top:1.25rem;
}

a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--ledger);outline-offset:2px}

@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
