
:root{--paper:#f4f3ef;--ink:#171717;--line:#d5d4cf;--soft:#e7e6e1;--dark:#111512;--muted:#656c68}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,sans-serif;background:var(--paper);color:var(--ink);line-height:1.45}
.top{height:68px;position:sticky;top:0;z-index:20;background:rgba(244,243,239,.96);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px}
.brand{display:flex;gap:12px;align-items:baseline;margin-right:auto;text-decoration:none;color:var(--ink)}.brand strong{font-size:16px;letter-spacing:.12em}.brand span{font-size:14px;font-weight:400;letter-spacing:.05em}
.top nav{display:flex;gap:18px;font-size:13px}.top nav a{text-decoration:none;color:var(--ink)}.lang{font-size:11px;margin-left:20px}
.wrap{max-width:1200px;margin:auto;padding-left:28px;padding-right:28px}.hero{min-height:82vh;display:flex;align-items:end;border-bottom:1px solid var(--line);position:relative;overflow:hidden}.hero-photo{position:absolute;inset:0;background:url('assets/hero.jpg') center/cover no-repeat;filter:saturate(.65)}.hero-overlay{position:absolute;inset:0;background:rgba(244,243,239,.82)}.hero-wrap{position:relative;z-index:2;width:100%;padding-top:78px;padding-bottom:78px}
.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:#666;margin-bottom:18px}
h1{font-size:clamp(50px,7vw,92px);line-height:.94;letter-spacing:-.055em;margin:0 0 30px;max-width:1050px}
h2{font-size:clamp(36px,4vw,58px);line-height:1;letter-spacing:-.04em;margin:0 0 35px;max-width:900px}
.lead{font-size:21px;max-width:920px}.buttons{display:flex;gap:10px;margin-top:28px}.btn{border:1px solid;padding:11px 15px;font-size:13px;text-decoration:none;color:var(--ink)}.darkbtn{background:var(--ink);color:#fff}
.section{padding:78px 0}.lines{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.lines article{background:var(--paper);padding:28px;min-height:315px}.lines h3{font-size:23px;line-height:1.15;margin:48px 0 14px}.lines p{color:var(--muted);line-height:1.55}
.soft{background:var(--soft)}.project-head{display:flex;justify-content:space-between;align-items:end}.rotation{font-size:12px;color:#717873;padding-bottom:37px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.project{height:450px;position:relative;overflow:hidden;background:#333}.project img{width:100%;height:100%;object-fit:cover}.project:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.8),rgba(0,0,0,.03) 70%)}.project-copy{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:26px;color:white}.project-copy span{font-size:11px;letter-spacing:.08em}.project-copy h3{font-size:31px;margin:9px 0}.project-copy p{max-width:520px;margin:0;line-height:1.45}
.dark{background:var(--dark);color:#f4f3ef}.dark .eyebrow{color:#9da5a1}.methods{display:flex;flex-wrap:wrap;gap:9px}.methods span{border:1px solid #5d6762;padding:11px 14px;font-size:15px}
.team{background:#deded8}
.collaboration{background:#f7f6f2}.collab-intro{font-size:19px;line-height:1.6;max-width:940px;color:#48504c}
.world-section{margin-top:52px}
.map-large{width:min(100%,980px);margin:0 auto}.map-large svg{display:block;width:100%;height:auto}
.land{fill:#d7d8d4;stroke:#8f9591;stroke-width:.7}.points circle{fill:#3d4842;stroke:#f7f6f2;stroke-width:1.2}
.metrics-row{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;border-top:1px solid #8a908c;margin-top:28px;padding-top:18px}
.metrics-row>div{display:flex;align-items:baseline;gap:12px}.metrics-row strong{font-size:38px;font-weight:400;line-height:1}.metrics-row span{font-size:13px;color:#565e59}
.metrics-note{font-size:10.5px;color:#777;margin:10px 0 0}.map-note{font-size:10.5px;color:#737a75;margin-top:4px}
.current{background:#111512;color:#f4f3ef}.current .eyebrow{color:#a0a8a4}.current-head{display:flex;justify-content:space-between;align-items:end}.all{color:#fff;margin-bottom:35px;text-underline-offset:5px}.news{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:18px}.news article{border-top:1px solid #606963;padding-top:15px}.news span{font-size:11px;color:#a7afab}.news h3{font-size:22px;font-weight:normal}.automatic{font-size:11px;color:#89928d;margin-top:25px}
footer{padding:38px max(5vw,28px);display:flex;justify-content:space-between;border-top:1px solid var(--line);font-size:13px}footer p{color:#777}

.team-hero{position:relative;min-height:430px;display:flex;align-items:center;overflow:hidden}
.team-bg{position:absolute;inset:0;background:url('assets/equipo.jpg') center 42%/cover no-repeat;filter:saturate(.72) contrast(.94)}
.team-wash{position:absolute;inset:0;background:rgba(244,243,239,.72)}
.team-hero-copy{position:relative;z-index:2;width:100%;padding-top:80px;padding-bottom:80px}
.team-hero h2{max-width:820px;margin-bottom:26px}
.people-link{font-size:28px;color:var(--ink);text-underline-offset:6px}

@media(max-width:850px){.top nav,.lang{display:none}.wrap{padding-left:20px;padding-right:20px}.lines,.project-grid,.team-grid,.news{grid-template-columns:1fr}.project{height:330px}.metrics-row{grid-template-columns:1fr;gap:10px}.map-large{width:100%}.project-head,.current-head{display:block}.rotation,.all{display:block;padding:0;margin:-20px 0 30px}.hero{min-height:70vh}h1{font-size:50px}.section{padding:60px 0}}

.points circle{cursor:pointer;transition:r .15s ease, opacity .15s ease}
.points circle:hover{r:5.4;opacity:.8}
@media(max-width:850px){
  .team-hero{min-height:330px}
  .team-hero-copy{padding-top:55px;padding-bottom:55px}
}

.section-link-wrap{width:min(1180px,90vw);margin:28px auto 0;text-align:right}
.section-link{font-size:12px;color:inherit;text-decoration:none;border-bottom:1px solid rgba(0,0,0,.35);padding-bottom:2px}
.section-link:hover{border-color:currentColor}

/* V5 */
.work-item,.linea,.research-line{display:flex;flex-direction:column;justify-content:center}
.work-item h3,.linea h3,.research-line h3{margin-top:auto}
.work-item p,.linea p,.research-line p{margin-bottom:auto}
.section-link-wrap{width:min(1180px,90vw);margin:34px auto 0;text-align:left!important}
.section-link{font-size:21px!important;font-weight:500;border-bottom:0!important;letter-spacing:-.02em}
.home-news-v5{width:min(1180px,90vw);margin:0 auto;padding:74px 0;border-top:1px solid rgba(0,0,0,.18)}
.home-news-v5 .eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:30px}
.home-news-v5 .items{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.home-news-v5 article{border-top:1px solid rgba(0,0,0,.45);padding-top:17px}
.home-news-v5 .type{font-size:10px;letter-spacing:.12em;text-transform:uppercase;opacity:.65}
.home-news-v5 h3{font-size:23px;line-height:1.1;margin:12px 0 10px}
.home-news-v5 p{font-size:14px;line-height:1.5;opacity:.72}
.home-news-v5 a{color:inherit;text-decoration:none}
@media(max-width:760px){.home-news-v5 .items{grid-template-columns:1fr}}

/* V6 — research lines: common title area and aligned descriptions */
.research-grid > *, .lines-grid > *, .work-grid > * {align-items:stretch}
.research-grid h3, .lines-grid h3, .work-grid h3,
.work-item h3, .linea h3, .research-line h3{
  min-height:220px; display:flex; align-items:flex-end; margin:0 0 28px;
}
.research-grid p, .lines-grid p, .work-grid p,
.work-item p, .linea p, .research-line p{margin-top:0}

/* V6 — one consistent section CTA */
.section-link-wrap{width:min(1180px,90vw);margin:38px auto 0;text-align:left!important}
.section-link,.people-link,.section-cta{
 display:inline-block!important; font-size:21px!important; line-height:1.25!important;
 font-weight:400!important; color:inherit!important; text-decoration:none!important;
 border-bottom:2px solid currentColor!important; padding-bottom:4px!important;
 letter-spacing:-.02em!important;
}

.research-card h3{min-height:220px;display:flex;align-items:flex-end;margin:0 0 28px}
.research-card p{margin-top:0}

/* V7 — exact alignment for the three research-line descriptions */
#investigacion .research-grid > *,
#investigacion .lines-grid > *,
#investigacion .research-card,
#investigacion .linea,
#investigacion .work-item,
#investigacion .research-line {
  display:grid !important;
  grid-template-rows: 240px auto !important;
  align-content:start !important;
}
#investigacion .research-grid h3,
#investigacion .lines-grid h3,
#investigacion .research-card h3,
#investigacion .linea h3,
#investigacion .work-item h3,
#investigacion .research-line h3 {
  min-height:0 !important;
  height:auto !important;
  align-self:end !important;
  display:block !important;
  margin:0 0 28px !important;
}
#investigacion .research-grid p,
#investigacion .lines-grid p,
#investigacion .research-card p,
#investigacion .linea p,
#investigacion .work-item p,
#investigacion .research-line p {
  margin:0 !important;
  align-self:start !important;
}

/* Fallback for the actual three-column cards if section id is absent */
.lines .card,
.research-lines .card {
  display:grid !important;
  grid-template-rows:240px auto !important;
}
.lines .card h3,
.research-lines .card h3 {
  align-self:end !important;
  margin:0 0 28px !important;
}
.lines .card p,
.research-lines .card p { margin:0 !important; }

/* V8 — exact fix using the real #lineas markup */
#lineas .lines article{
  display:grid !important;
  grid-template-rows:220px auto !important;
  align-content:start !important;
}
#lineas .lines article h3{
  margin:0 0 14px !important;
  align-self:end !important;
  min-height:0 !important;
  height:auto !important;
  display:block !important;
}
#lineas .lines article p{
  margin:0 !important;
  align-self:start !important;
}

/* On smaller screens there is no need to force the shared title height */
@media(max-width:850px){
  #lineas .lines article{
    display:block !important;
  }
  #lineas .lines article h3{
    margin:20px 0 14px !important;
  }
}

/* V10 — Líneas de trabajo: editorial, abierta, sin cajas */
#lineas .lines{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:58px!important;
  background:transparent!important;
  border:0!important;
}
#lineas .lines article{
  background:transparent!important;
  border:0!important;
  padding:22px 0 0!important;
  min-height:0!important;
  display:block!important;
  position:relative!important;
}
#lineas .lines article:before{
  content:"";position:absolute;left:0;top:0;width:54px;height:1px;background:#7d847f;
}
#lineas .lines h3{
  font-size:23px!important;line-height:1.16!important;
  margin:0 0 22px!important;min-height:108px!important;
  display:block!important;
}
#lineas .lines p{
  margin:0!important;color:var(--muted)!important;line-height:1.55!important;
}
@media(max-width:850px){
 #lineas .lines{grid-template-columns:1fr!important;gap:36px!important}
 #lineas .lines h3{min-height:0!important}
}

/* V18 — map corrections */
.map-mask-bottom{fill:#f7f6f2}
.metrics-note strong{font-weight:400;color:#3f4742}

/* V22 — clean map edge */
.network-map, .map-wrap, .map, .world-map { overflow:hidden !important; border-bottom:0 !important; }
.network-map svg, .map-wrap svg, .map svg, .world-map svg {
  display:block !important;
  overflow:hidden !important;
  border:0 !important;
  box-shadow:none !important;
}
.network-map svg * , .map-wrap svg * , .map svg * , .world-map svg * {
  vector-effect:non-scaling-stroke;
}

/* V23 — remove the horizontal rule between map and metrics */
.metrics,
.metrics-row,
.stats,
.stats-row,
.network-metrics,
.collab-metrics {
  border-top: 0 !important;
  border-bottom: 0 !important;
}
.metrics::before,
.metrics-row::before,
.stats::before,
.stats-row::before,
.network-metrics::before,
.collab-metrics::before {
  content:none !important;
  display:none !important;
}
.project-clickable{cursor:pointer}
.project-clickable .project-access{
  display:inline-block;
  margin-top:16px;
  font-size:12px;
  letter-spacing:.04em;
  border-bottom:1px solid currentColor;
  padding-bottom:2px;
}