:root{
  --ink:#111214;
  --muted:#6d7178;
  --line:#d8dadd;
  --soft:#f4f5f6;
  --blue:#1f5fae;
  --white:#fff;
  --max:1480px;
  --gutter:clamp(20px,3.2vw,52px);
  --serif-fallback:Georgia,serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-synthesis:none;background:var(--white);color:var(--ink);font-family:"Inter","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:300;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
img{display:block;width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit}
.wrap{width:min(100%,var(--max));margin-inline:auto;padding-inline:var(--gutter)}
.skip{position:fixed;left:16px;top:-60px;z-index:100;background:#000;color:#fff;padding:10px 14px}.skip:focus{top:16px}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid rgba(17,18,20,.10)}
.header-grid{height:104px;display:grid;grid-template-columns:280px 1fr auto;align-items:center;gap:28px}
.brand img{width:252px;max-height:80px;object-fit:contain;object-position:left center}
.main-nav{justify-self:center;display:flex;gap:28px;font-size:13px;letter-spacing:.01em}
.main-nav a,.data3{transition:color .2s ease}.main-nav a:hover,.data3:hover{color:var(--blue)}
.data3{justify-self:end;text-align:right;font-size:12px;line-height:1.2;font-weight:400}.data3 span{display:block;color:var(--blue);margin-top:3px;font-weight:300}
.menu-button,.mobile-nav{display:none}
.hero{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:clamp(34px,5vw,88px);align-items:end;padding-top:clamp(54px,7vw,108px);padding-bottom:clamp(48px,6vw,92px)}
.overline,.section-label,.meta{font-size:11px;text-transform:uppercase;letter-spacing:.13em;font-weight:400;color:var(--muted)}
.hero h1{margin:17px 0 22px;font-size:clamp(42px,5vw,76px);line-height:.98;letter-spacing:-.055em;font-weight:300}
.hero-sub{max-width:420px;margin:0;font-size:16px;color:#34373c}
.hero-image{margin:0}.hero-image picture{display:block;aspect-ratio:16/10;overflow:hidden}.hero-image img{width:100%;height:100%;object-fit:cover}.hero-image figcaption{font-size:11px;color:var(--muted);margin-top:8px}
.section{padding-block:clamp(72px,9vw,140px);border-top:1px solid var(--line)}
.section-label{margin-bottom:clamp(34px,4vw,64px)}
.lead-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(48px,8vw,130px)}
h2{font-size:clamp(30px,3.2vw,52px);line-height:1.08;letter-spacing:-.035em;font-weight:300;margin:0;max-width:820px}
.lead-text{max-width:670px;font-size:16px}.lead-text p{margin:0 0 18px}
.projects{padding-bottom:0}.project-index{border-top:1px solid var(--ink);margin-bottom:clamp(90px,11vw,170px)}
.project-index a{display:grid;grid-template-columns:46px 1fr auto;gap:20px;align-items:center;border-bottom:1px solid var(--line);padding:17px 0;transition:padding-left .25s ease,color .25s ease}
.project-index a:hover{padding-left:8px;color:var(--blue)}
.project-index span,.project-index em{font-size:11px;font-style:normal;color:var(--muted)}
.project-index strong{font-size:16px;font-weight:300}
.project-block{padding-bottom:clamp(96px,12vw,180px);scroll-margin-top:100px}
.project-media{margin:0;overflow:hidden;background:#eee}.project-media.wide{aspect-ratio:16/8.7}.project-media img{height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.6,.2,1)}.project-media:hover img{transform:scale(1.015)}
.media-pair{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(10px,1.2vw,18px)}.media-pair .project-media{aspect-ratio:4/3}.media-pair-asym{grid-template-columns:.72fr 1.28fr}.media-pair-asym .project-media:first-child{aspect-ratio:3/4}.media-pair-asym .project-media:last-child{aspect-ratio:4/3}
.project-info{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,110px);padding-top:22px}
.project-info h3{font-size:clamp(25px,2.25vw,36px);line-height:1.08;letter-spacing:-.035em;font-weight:300;margin:8px 0 0}.project-info>div:last-child{max-width:620px}.project-info p{margin:0 0 15px}.credit{font-size:12px;color:var(--muted)}
.trajectory{padding-bottom:clamp(80px,9vw,130px)}.trajectory-head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,110px);border-top:1px solid var(--ink);padding-top:22px}.trajectory-head .section-label{margin:0}.trajectory-head p{max-width:620px;margin:0;font-size:15px}.trajectory-project{position:relative}.trajectory-project:before{content:"Experiencia del equipo";position:absolute;left:var(--gutter);top:-26px;font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--blue)}
.services{background:var(--soft)}.service-list{border-top:1px solid var(--ink)}.service-list article{display:grid;grid-template-columns:48px minmax(210px,.8fr) 1.4fr;gap:25px;align-items:start;padding:24px 0;border-bottom:1px solid #cfd2d6}.service-list span{font-size:11px;color:var(--muted)}.service-list h3{font-size:21px;line-height:1.1;font-weight:300;margin:0}.service-list p{margin:0;max-width:720px;color:#3d4045}
.method-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(50px,8vw,140px)}.method .section-label{margin-bottom:28px}.method-text>p{font-size:17px;max-width:720px;margin:0 0 46px}.steps{border-top:1px solid var(--ink)}.steps div{display:grid;grid-template-columns:40px 160px 1fr;gap:14px;padding:15px 0;border-bottom:1px solid var(--line);align-items:baseline}.steps b{font-size:10px;font-weight:400;color:var(--muted)}.steps strong{font-weight:400}.steps span{color:var(--muted)}
.team{background:#111214;color:#fff}.team .section-label,.team .meta{color:#aeb3ba}.team-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,100px)}.team article{border-top:1px solid #474a4f;padding-top:18px}.team h3{font-size:clamp(27px,2.3vw,38px);font-weight:300;letter-spacing:-.035em;margin:10px 0 18px}.team article>p:last-child{color:#d0d3d7;max-width:610px}
.collab-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink)}.collab-grid p{margin:0;padding:17px 0;border-bottom:1px solid var(--line);font-size:15px}.collab-grid p:nth-child(3n+2),.collab-grid p:nth-child(3n+3){padding-left:20px}
.contact{background:var(--blue);color:#fff;padding-block:clamp(72px,9vw,140px)}.contact-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:50px}.section-label.light{color:rgba(255,255,255,.72);margin-bottom:30px}.contact h2{max-width:760px}.contact address{font-style:normal;align-self:end;font-size:15px}.contact address p{margin:0 0 8px}.contact address a{border-bottom:1px solid rgba(255,255,255,.35)}
.site-footer{background:#111214;color:#bbb;padding:20px 0;font-size:11px}.footer-grid{display:flex;justify-content:space-between;gap:20px}.footer-grid p{margin:0}
@media (max-width:980px){
  .header-grid{grid-template-columns:210px 1fr auto;height:82px}.main-nav{display:none}.data3{justify-self:end}.menu-button{display:block;width:38px;height:38px;border:0;background:transparent;padding:8px;cursor:pointer}.menu-button span{display:block;height:1px;background:#111;margin:7px 0;transition:.25s}.menu-button[aria-expanded="true"] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-button[aria-expanded="true"] span:last-child{transform:translateY(-4px) rotate(-45deg)}
  .mobile-nav{display:none;position:absolute;left:0;right:0;top:82px;background:#fff;border-bottom:1px solid var(--line);padding:22px var(--gutter) 28px}.mobile-nav.open{display:grid}.mobile-nav a{padding:11px 0;border-bottom:1px solid var(--line);font-size:14px}.mobile-data3{color:var(--blue)!important;margin-top:8px}
  .hero{grid-template-columns:1fr;align-items:start}.hero-copy{max-width:720px}.hero-image{width:100%}
  .lead-grid,.project-info,.trajectory-head,.method-grid,.contact-grid{grid-template-columns:1fr}.lead-grid{gap:30px}.project-info{gap:25px}.trajectory-head{gap:25px}.method-grid{gap:38px}.contact-grid{gap:60px}
}
@media (max-width:720px){
  body{font-size:14px}.header-grid{grid-template-columns:176px 1fr auto;gap:14px}.brand img{width:176px;max-height:64px}.data3{font-size:10px}.data3 span{display:none}
  .hero{padding-top:42px;padding-bottom:64px;gap:34px}.hero h1{font-size:clamp(40px,13vw,62px)}.hero-sub{font-size:14px}.hero-image picture{aspect-ratio:4/3}
  .section{padding-block:72px}.section-label{margin-bottom:34px}h2{font-size:32px}.lead-text{font-size:15px}
  .project-index a{grid-template-columns:30px 1fr}.project-index em{display:none}.project-index strong{font-size:15px}.project-block{padding-bottom:95px}.media-pair,.media-pair-asym{grid-template-columns:1fr}.media-pair .project-media,.media-pair-asym .project-media:first-child,.media-pair-asym .project-media:last-child{aspect-ratio:4/3}.project-media.wide{aspect-ratio:4/3}.project-info h3{font-size:27px}
  .trajectory-project:before{display:none}.service-list article{grid-template-columns:30px 1fr}.service-list article p{grid-column:2}.service-list h3{font-size:19px}.steps div{grid-template-columns:28px 1fr}.steps span{grid-column:2}.team-grid{grid-template-columns:1fr}.collab-grid{grid-template-columns:1fr}.collab-grid p:nth-child(n){padding-left:0}.footer-grid{align-items:flex-start;flex-direction:column}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Dossier A3 */
.main-nav a.active{color:var(--blue)}
.dossier-hero{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,110px);padding-top:clamp(70px,9vw,135px);padding-bottom:clamp(55px,7vw,105px)}
.dossier-hero h1{font-size:clamp(48px,6vw,92px);line-height:.95;letter-spacing:-.055em;font-weight:300;margin:14px 0 0}
.dossier-intro{align-self:end;max-width:620px;font-size:17px}.dossier-intro p{margin:0 0 24px}.pdf-link{display:inline-block;color:var(--blue);border-bottom:1px solid var(--blue);padding-bottom:4px;font-size:13px;font-weight:400}
.dossier-subnav{display:flex;gap:22px;flex-wrap:wrap;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);padding-top:14px;padding-bottom:14px;position:sticky;top:104px;z-index:30;background:rgba(255,255,255,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.dossier-subnav a{font-size:11px;text-transform:uppercase;letter-spacing:.08em}.dossier-subnav a:hover{color:var(--blue)}
.dossier-section{padding-top:clamp(80px,9vw,140px);padding-bottom:clamp(80px,9vw,140px);scroll-margin-top:170px}.dossier-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);margin-bottom:44px}.dossier-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(44px,8vw,130px)}.dossier-grid .prose{font-size:16px;max-width:720px}.dossier-grid .prose>p{margin:0 0 18px}
.facts{margin:42px 0 0;border-top:1px solid var(--ink)}.facts div{display:grid;grid-template-columns:160px 1fr;gap:20px;padding:12px 0;border-bottom:1px solid var(--line)}.facts dt{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.facts dd{margin:0}
.dossier-soft{background:var(--soft)}.service-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,5vw,80px)}.service-columns ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}.service-columns li{padding:13px 0;border-bottom:1px solid #cfd2d6}
.timeline{border-top:1px solid var(--ink)}.timeline article{display:grid;grid-template-columns:110px 1fr;gap:clamp(24px,4vw,70px);padding:23px 0;border-bottom:1px solid var(--line)}.timeline time{font-size:25px;font-weight:300;letter-spacing:-.03em}.timeline p{margin:0 0 10px;max-width:1000px}.timeline p:last-child{margin-bottom:0}
.dossier-dark{background:#111214;color:#fff}.light-kicker{color:#aeb3ba}.people-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(35px,7vw,110px)}.people-grid article{border-top:1px solid #4b4d51;padding-top:18px}.people-grid h3{font-size:clamp(29px,2.5vw,40px);font-weight:300;letter-spacing:-.035em;margin:10px 0 18px}.people-grid p{color:#d0d3d7;max-width:650px}.people-grid .small{font-size:12px;color:#aeb3ba}.consultants{margin-top:90px}.consultants>h3{font-size:22px;font-weight:300;margin:0 0 24px}.consultant-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #4b4d51}.consultant-grid p{margin:0;padding:16px 20px 16px 0;border-bottom:1px solid #34363a;font-size:13px;color:#cfd2d6}.consultant-grid strong{font-weight:400;color:#fff}
.tech-grid,.refs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--ink)}.tech-grid article,.refs-grid article{padding:22px 28px 28px 0;border-bottom:1px solid var(--line);min-height:150px}.tech-grid article:nth-child(3n+2),.tech-grid article:nth-child(3n+3),.refs-grid article:nth-child(3n+2),.refs-grid article:nth-child(3n+3){padding-left:28px}.tech-grid h3,.refs-grid h3{font-size:18px;font-weight:300;margin:0 0 12px}.tech-grid p,.refs-grid p{margin:0;color:#565a61;font-size:14px}
.featured-dossier{display:grid;gap:clamp(70px,9vw,130px)}.featured-dossier article{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(30px,5vw,80px);align-items:start}.featured-dossier img{aspect-ratio:16/10;object-fit:cover}.featured-dossier h3{font-size:clamp(27px,2.5vw,40px);font-weight:300;line-height:1.07;letter-spacing:-.035em;margin:10px 0 18px}.featured-dossier p{margin:0 0 16px}.dossier-contact{margin-top:0}
@media(max-width:980px){.dossier-subnav{top:82px}.dossier-hero,.dossier-grid,.people-grid,.featured-dossier article{grid-template-columns:1fr}.dossier-hero{gap:30px}.service-columns{grid-template-columns:1fr 1fr}.consultant-grid{grid-template-columns:1fr 1fr}.tech-grid,.refs-grid{grid-template-columns:1fr 1fr}.tech-grid article:nth-child(n),.refs-grid article:nth-child(n){padding-left:0;padding-right:20px}}
@media(max-width:720px){.dossier-subnav{overflow-x:auto;flex-wrap:nowrap;white-space:nowrap;padding-top:11px;padding-bottom:11px}.dossier-hero{padding-top:46px}.dossier-hero h1{font-size:54px}.dossier-intro{font-size:15px}.dossier-section{padding-top:72px;padding-bottom:72px}.dossier-kicker{margin-bottom:32px}.service-columns,.consultant-grid,.tech-grid,.refs-grid{grid-template-columns:1fr}.timeline article{grid-template-columns:70px 1fr;gap:18px}.timeline time{font-size:21px}.facts div{grid-template-columns:1fr;gap:4px}.featured-dossier article{gap:22px}}

/* San Lorenzo gallery updates */
.san-lorenzo-gallery{grid-template-columns:1fr 1fr}
.project-media figcaption{font-size:11px;color:var(--muted);padding-top:8px;background:#fff}
.san-lorenzo-gallery .project-media{aspect-ratio:auto;overflow:visible;background:transparent}
.san-lorenzo-gallery .project-media picture{display:block;aspect-ratio:4/3;overflow:hidden;background:#eee}
.featured-media-stack{display:grid;gap:14px}
.featured-media-stack figure{margin:0}
.featured-media-stack picture{display:block}
.featured-media-stack img{width:100%;aspect-ratio:4/3;object-fit:cover}
.featured-media-stack figcaption{font-size:11px;color:var(--muted);margin-top:7px}
@media(max-width:720px){.san-lorenzo-gallery{grid-template-columns:1fr}.featured-media-stack{gap:18px}}

/* Brand hierarchy and trajectory clarification — v6 */
.header-grid{grid-template-columns:340px 1fr auto}
.brand img{width:318px;max-height:92px}
.hero .overline{
  font-size:15px;
  line-height:1.25;
  letter-spacing:.075em;
  font-weight:500;
  color:var(--ink);
}
.trajectory-head .section-label{
  font-size:14px;
  line-height:1.3;
  letter-spacing:.10em;
  font-weight:500;
  color:var(--ink);
}
.trajectory-head p{
  max-width:720px;
  font-size:17px;
  line-height:1.5;
  font-weight:500;
  color:var(--ink);
}
@media(max-width:980px){
  .header-grid{grid-template-columns:248px 1fr auto}
  .brand img{width:236px;max-height:76px}
  .hero .overline{font-size:14px}
  .trajectory-head p{font-size:16px}
}
@media(max-width:720px){
  .header-grid{grid-template-columns:205px 1fr auto}
  .brand img{width:205px;max-height:68px}
  .hero .overline{font-size:13px;letter-spacing:.065em}
  .trajectory-head .section-label{font-size:13px}
  .trajectory-head p{font-size:15px;line-height:1.5}
}

/* v7 · Hero hierarchy refinement */
.hero .hero-title{
  font-weight:200;
  letter-spacing:-.045em;
  color:#25282d;
}
@media (max-width:720px){
  .hero .hero-title{font-weight:200;letter-spacing:-.04em}
}

/* SEO v23: semantic equivalence and project detail pages. Existing visual identity unchanged. */
.hero .site-name-h1{margin:0}
.hero .hero-title{margin:17px 0 22px;font-size:clamp(42px,5vw,76px);line-height:.98;letter-spacing:-.045em;font-weight:200;color:#25282d}
.project-info h3 a{color:inherit;text-decoration:none}
.project-detail{padding-top:clamp(54px,7vw,108px);padding-bottom:clamp(80px,10vw,150px)}
.project-breadcrumb{font-size:11px;text-transform:uppercase;letter-spacing:.10em;color:var(--muted);display:flex;gap:9px;flex-wrap:wrap;margin-bottom:clamp(38px,5vw,72px)}
.project-breadcrumb a:hover{color:var(--blue)}
.project-detail-head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,7vw,110px);margin-bottom:clamp(42px,6vw,90px)}
.project-detail-head h1{font-size:clamp(34px,4.3vw,68px);line-height:1.02;letter-spacing:-.045em;font-weight:300;margin:10px 0 0;max-width:850px}
.project-detail-copy{align-self:end;max-width:650px}
.project-detail-copy>p{margin:0 0 17px}
.project-detail-media .project-media{aspect-ratio:4/3}
@media(max-width:980px){.project-detail-head{grid-template-columns:1fr;gap:28px}}
@media(max-width:720px){.hero .hero-title{font-size:clamp(40px,13vw,62px);font-weight:200;letter-spacing:-.04em}.project-detail{padding-top:42px}.project-detail-head h1{font-size:38px}.project-detail-media{grid-template-columns:1fr}}
