.phead{
  padding-block:var(--sp-10) var(--sp-9);
  border-bottom:1px solid var(--g-200);
}

.phead .eyebrow{margin:0 0 var(--sp-5)}

.phead .eyebrow a{
  color:var(--g-700);
  text-decoration:none;
  font-size:var(--fs-xs);
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  transition:color var(--tr-fast);
}

.phead .eyebrow a:hover{color:var(--blue)}

.phead h1{
  margin:0;
  font-family:var(--font-display);
  font-size:var(--fs-3xl);
  font-weight:600;
  line-height:var(--lh-head);
  letter-spacing:-.035em;
  max-width:18ch;
}

.phead__lede{
  margin:var(--sp-5) 0 0;
  max-width:62ch;
  font-size:var(--fs-md);
  line-height:var(--lh-body);
  color:var(--g-800);
}

.range{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:var(--sp-6);
  margin-top:var(--sp-8);
}

.range__item{
  border-top:1px solid var(--black);
  padding-top:var(--sp-4);
}

.range__num{
  display:block;
  font-family:var(--font-display);
  font-size:clamp(28px,3.4vw,44px);
  font-weight:600;
  line-height:1;
  letter-spacing:-.03em;
  color:var(--black);
  font-variant-numeric:tabular-nums;
}

.range__num small{
  font-size:.42em;
  font-weight:500;
  margin-left:var(--sp-2);
  letter-spacing:0;
  color:var(--g-700);
}

.range__alt{
  display:block;
  min-height:1.2em;
  margin-top:var(--sp-2);
  font-size:var(--fs-xs);
  color:var(--g-700);
  letter-spacing:.04em;
  font-variant-numeric:tabular-nums;
}

.range__label{
  display:block;
  margin-top:var(--sp-3);
  max-width:20ch;
  font-size:var(--fs-sm);
  line-height:1.55;
  color:var(--g-700);
}

@media (max-width:900px){.range{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:440px){.range{grid-template-columns:minmax(0,1fr)}}

.fams{padding-block:var(--sp-9)}

.fam{
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(0,2fr);
  gap:var(--sp-8);
  padding-block:var(--sp-8);
  border-top:1px solid var(--g-200);
  align-items:start;
}

.fam:first-child{border-top:0;padding-top:0}

.fam__code{
  display:block;
  font-family:var(--font-display);
  font-size:var(--fs-xs);
  font-weight:700;
  letter-spacing:.14em;
  color:var(--blue-dark);
  margin-bottom:var(--sp-3);
}

.fam__head h2{
  margin:0;
  font-family:var(--font-display);
  font-size:var(--fs-xl);
  font-weight:600;
  line-height:var(--lh-head);
  letter-spacing:-.02em;
  max-width:16ch;
}

.fam__head p{
  margin:var(--sp-4) 0 0;
  font-size:var(--fs-sm);
  line-height:1.7;
  color:var(--g-700);
}

.spec{
  width:100%;
  border-collapse:collapse;
  font-size:var(--fs-sm);
}

.spec th,
.spec td{
  text-align:left;
  padding:var(--sp-4) var(--sp-4) var(--sp-4) 0;
  border-bottom:1px solid var(--g-200);
  vertical-align:baseline;
}

.spec thead th{
  padding-top:0;
  font-family:var(--font-body);
  font-size:var(--fs-xs);
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--g-700);
  border-bottom-color:var(--g-300);
  white-space:nowrap;
}

.spec tbody th{
  font-family:var(--font-display);
  font-weight:600;
  color:var(--black);
  letter-spacing:.01em;
  white-space:nowrap;
}

.spec td{color:var(--g-800);font-variant-numeric:tabular-nums}
.spec td.txt{font-variant-numeric:normal;color:var(--g-700)}
.spec tbody tr:last-child th,
.spec tbody tr:last-child td{border-bottom:0}

.spec__wrap{overflow-x:auto}

.scope{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--sp-6) var(--sp-7);
  margin:0;
  padding:0;
  list-style:none;
}

.scope li{
  border-top:1px solid var(--g-200);
  padding-top:var(--sp-4);
}

.scope b{
  display:block;
  font-family:var(--font-display);
  font-size:var(--fs-base);
  font-weight:600;
  letter-spacing:-.01em;
  color:var(--black);
  margin-bottom:var(--sp-2);
}

.scope span{
  display:block;
  font-size:var(--fs-sm);
  line-height:1.65;
  color:var(--g-700);
}

.note{
  margin:var(--sp-7) 0 0;
  padding-left:var(--sp-5);
  border-left:2px solid var(--blue);
  max-width:60ch;
  font-size:var(--fs-sm);
  line-height:1.7;
  color:var(--g-700);
}

@media (max-width:860px){
  .fam{grid-template-columns:minmax(0,1fr);gap:var(--sp-6)}
  .scope{grid-template-columns:minmax(0,1fr)}
}

.idx{padding-block:var(--sp-8) var(--sp-9)}

.idx__row{
  display:grid;
  grid-template-columns:64px minmax(0,1fr) minmax(0,1.2fr) 40px;
  gap:var(--sp-5);
  align-items:baseline;
  padding:var(--sp-7) 0;
  border-top:1px solid var(--g-200);
  text-decoration:none;
  color:inherit;
  transition:background var(--tr-fast);
}

.idx__row:last-child{border-bottom:1px solid var(--g-200)}
.idx__row:hover{background:var(--g-050)}

.idx__no{
  font-family:var(--font-display);
  font-size:var(--fs-sm);
  font-weight:600;
  color:var(--g-700);
  font-variant-numeric:tabular-nums;
  letter-spacing:.06em;
}

.idx__name{
  font-family:var(--font-display);
  font-size:var(--fs-xl);
  font-weight:600;
  letter-spacing:-.02em;
  color:var(--black);
}

.idx__meta{
  display:block;
  margin-top:var(--sp-3);
  font-family:var(--font-body);
  font-size:var(--fs-xs);
  font-weight:600;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--blue-dark);
}

.idx__desc{
  font-size:var(--fs-sm);
  line-height:1.7;
  color:var(--g-700);
}

.idx__go{
  font-family:var(--font-display);
  font-size:var(--fs-lg);
  color:var(--g-700);
  justify-self:end;
  transition:transform var(--tr-fast),color var(--tr-fast);
}

.idx__row:hover .idx__go{color:var(--blue);transform:translateX(6px)}

@media (max-width:860px){
  .idx__row{grid-template-columns:44px minmax(0,1fr);gap:var(--sp-3) var(--sp-5)}
  .idx__desc{grid-column:2}
  .idx__go{display:none}
}

@media (pointer:coarse){
  .phead .eyebrow a{
    display:inline-flex;
    align-items:center;
    min-height:44px;
  }

  .phead .eyebrow{margin-bottom:var(--sp-3)}
}

.creed{
  border-bottom:1px solid var(--g-200);
  padding-block:var(--sp-9);
}

.creed__in{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--sp-8);
}

.creed__item{
  padding-left:var(--sp-5);
  border-left:2px solid var(--blue);
}

.creed__item b{
  display:block;
  font-size:var(--fs-xs);
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--g-700);
  margin-bottom:var(--sp-3);
}

.creed__item p{
  margin:0;
  font-family:var(--font-display);
  font-size:var(--fs-lg);
  font-weight:500;
  line-height:1.4;
  letter-spacing:-.01em;
  color:var(--black);
}

.vals,
.steps{
  padding-block:var(--sp-9);
  border-bottom:1px solid var(--g-200);
}

.vals h2,
.steps h2,
.docs__grupo h2{
  margin:0 0 var(--sp-8);
  font-family:var(--font-display);
  font-size:var(--fs-2xl);
  font-weight:600;
  line-height:var(--lh-head);
  letter-spacing:-.03em;
  max-width:20ch;
}

.vals__grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:var(--sp-7) var(--sp-6);
}

.val{
  border-top:1px solid var(--black);
  padding-top:var(--sp-4);
}

.val b{
  display:block;
  font-family:var(--font-display);
  font-size:var(--fs-lg);
  font-weight:600;
  letter-spacing:-.01em;
  color:var(--black);
}

.val p{
  margin:var(--sp-4) 0 0;
  font-size:var(--fs-sm);
  line-height:1.7;
  color:var(--g-700);
}

@media (max-width:1024px){.vals__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.vals__grid{grid-template-columns:minmax(0,1fr)}}

.steps__list{border-top:1px solid var(--g-200)}

.step{
  display:grid;
  grid-template-columns:64px minmax(0,1fr) minmax(0,1.6fr);
  gap:var(--sp-5);
  align-items:baseline;
  padding:var(--sp-6) 0;
  border-bottom:1px solid var(--g-200);
}

.step__no{
  font-family:var(--font-display);
  font-size:var(--fs-sm);
  font-weight:600;
  color:var(--g-700);
  font-variant-numeric:tabular-nums;
  letter-spacing:.06em;
}

.step__name{
  font-family:var(--font-display);
  font-size:var(--fs-lg);
  font-weight:600;
  letter-spacing:-.01em;
  color:var(--black);
}

.step__what{
  font-size:var(--fs-sm);
  line-height:1.7;
  color:var(--g-700);
}

@media (max-width:860px){
  .creed__in{grid-template-columns:minmax(0,1fr)}
  .step{grid-template-columns:44px minmax(0,1fr);gap:var(--sp-3) var(--sp-5)}
  .step__what{grid-column:2}
}

.works{padding-block:var(--sp-8) var(--sp-9)}

.filtros{
  display:flex;
  flex-wrap:wrap;
  gap:var(--sp-3);
  margin-bottom:var(--sp-7);
}

.filtro{
  display:inline-flex;
  align-items:center;
  gap:var(--sp-3);
  min-height:var(--ctl-h-sm);
  padding-inline:var(--sp-5);
  border:1px solid var(--g-300);
  border-radius:100px;
  background:var(--white);
  font-family:var(--font-body);
  font-size:var(--fs-sm);
  font-weight:600;
  color:var(--g-800);
  cursor:pointer;
  transition:border-color var(--tr-fast),background var(--tr-fast),color var(--tr-fast);
}

.filtro:hover{border-color:var(--black)}

.filtro.is-on{
  background:var(--black);
  border-color:var(--black);
  color:var(--white);
}

.filtro__n{
  font-variant-numeric:tabular-nums;
  font-size:var(--fs-xs);
  color:var(--g-700);
}

.filtro.is-on .filtro__n{color:rgba(255,255,255,.7)}

.works__list{border-top:1px solid var(--g-200)}
.works__list .obra.is-off{display:none}

.docs{padding-block:var(--sp-8) var(--sp-9)}
.docs__grupo + .docs__grupo{margin-top:var(--sp-9)}
.docs__grupo{scroll-margin-top:120px}
.docs__list{border-top:1px solid var(--g-200)}

.doc{
  display:grid;
  grid-template-columns:minmax(0,1fr) 160px 32px;
  gap:var(--sp-5);
  align-items:center;
  min-height:64px;
  padding:var(--sp-4) 0;
  border-bottom:1px solid var(--g-200);
  text-decoration:none;
  color:inherit;
  transition:background var(--tr-fast);
}

.doc:hover{background:var(--g-050)}

.doc__name{
  font-family:var(--font-display);
  font-size:var(--fs-base);
  font-weight:600;
  letter-spacing:-.01em;
  color:var(--black);
}

.doc__meta{
  font-size:var(--fs-xs);
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--g-700);
  font-variant-numeric:tabular-nums;
}

.doc__go{
  justify-self:end;
  font-size:var(--fs-lg);
  color:var(--g-700);
  transition:transform var(--tr-fast),color var(--tr-fast);
}

.doc:hover .doc__go{color:var(--blue);transform:translateY(3px)}

@media (max-width:640px){
  .doc{grid-template-columns:minmax(0,1fr) 32px;gap:var(--sp-2) var(--sp-4)}
  .doc__name{grid-column:1;grid-row:1}
  .doc__meta{grid-column:1;grid-row:2}
  .doc__go{grid-column:2;grid-row:1 / span 2;align-self:center}
}

.arts{padding-block:var(--sp-8) var(--sp-9)}
.arts__list{border-top:1px solid var(--g-200)}

.art{
  display:grid;
  grid-template-columns:160px minmax(0,1.2fr) minmax(0,1.3fr);
  gap:var(--sp-6);
  align-items:baseline;
  padding:var(--sp-7) 0;
  border-bottom:1px solid var(--g-200);
  text-decoration:none;
  color:inherit;
  transition:background var(--tr-fast);
}

.art:hover{background:var(--g-050)}

.art__cat{
  font-size:var(--fs-xs);
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--blue-dark);
}

.art__title{
  font-family:var(--font-display);
  font-size:var(--fs-lg);
  font-weight:600;
  line-height:1.3;
  letter-spacing:-.02em;
  color:var(--black);
}

.art:hover .art__title{color:var(--blue-dark)}

.art__txt{
  font-size:var(--fs-sm);
  line-height:1.7;
  color:var(--g-700);
}

@media (max-width:900px){
  .art{grid-template-columns:minmax(0,1fr);gap:var(--sp-3);padding-block:var(--sp-6)}
}

.contacto{padding-block:var(--sp-8) var(--sp-10)}

.contacto__in{
  display:grid;
  grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);
  gap:var(--sp-9);
  align-items:start;
}

.form{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--sp-5) var(--sp-6);
}

.campo{margin:0;display:flex;flex-direction:column;gap:var(--sp-2)}
.campo--ancho{grid-column:1 / -1}

.campo label{
  font-size:var(--fs-xs);
  font-weight:600;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--g-700);
}

.campo label i{
  font-style:normal;
  font-weight:500;
  letter-spacing:.06em;
  color:var(--g-700);
  text-transform:none;
}

.campo input,
.campo select,
.campo textarea{
  width:100%;
  min-height:var(--ctl-h);
  padding:var(--sp-3) var(--sp-4);
  border:1px solid var(--g-300);
  border-radius:var(--r-sm);
  background:var(--white);
  font-family:var(--font-body);
  font-size:var(--fs-base);
  color:var(--black);
  transition:border-color var(--tr-fast);
}

.campo textarea{min-height:132px;resize:vertical;line-height:1.6}
.campo input:hover,
.campo select:hover,
.campo textarea:hover{border-color:var(--g-500)}

.campo input:focus-visible,
.campo select:focus-visible,
.campo textarea:focus-visible{
  outline:2px solid var(--blue);
  outline-offset:1px;
  border-color:var(--blue);
}

.aparte{
  border-top:1px solid var(--black);
  padding-top:var(--sp-5);
}

.aparte h2{
  margin:0;
  font-family:var(--font-display);
  font-size:var(--fs-lg);
  font-weight:600;
  letter-spacing:-.01em;
}

.aparte p{
  margin:var(--sp-4) 0 0;
  font-size:var(--fs-sm);
  line-height:1.7;
  color:var(--g-700);
}

.aparte__addr{
  margin:var(--sp-6) 0 0;
  font-style:normal;
  font-size:var(--fs-sm);
  line-height:1.8;
  color:var(--g-700);
}

.aparte__addr b{display:block;color:var(--black);font-weight:600}
.aparte__addr a{color:var(--g-800);text-decoration:none}
.aparte__addr a:hover{color:var(--blue)}

@media (max-width:900px){
  .contacto__in{grid-template-columns:minmax(0,1fr);gap:var(--sp-8)}
  .form{grid-template-columns:minmax(0,1fr)}
}

@media (pointer:coarse){
  .aparte__addr a{display:inline-flex;align-items:center;min-height:44px}
  .aparte__addr{line-height:1.4}
}

.campo--ancho .btn-solid{align-self:start;padding-inline:var(--sp-8)}

.aviso{
  grid-column:1 / -1;
  margin:0;
  padding-left:var(--sp-5);
  border-left:2px solid var(--blue);
  font-size:var(--fs-sm);
  line-height:1.7;
  color:var(--g-800);
}

.aviso[hidden]{display:none}

.post{padding-block:var(--sp-10) var(--sp-9)}

.post__head{
  padding-bottom:var(--sp-8);
  border-bottom:1px solid var(--g-200);
  margin-bottom:var(--sp-8);
}

.post__head .eyebrow{margin:0 0 var(--sp-5)}

.post__head .eyebrow a{
  color:var(--blue-dark);
  text-decoration:none;
  font-size:var(--fs-xs);
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.post__head .eyebrow a:hover{color:var(--black)}

.post__head h1{
  margin:0;
  font-family:var(--font-display);
  font-size:var(--fs-2xl);
  font-weight:600;
  line-height:var(--lh-head);
  letter-spacing:-.03em;
  max-width:24ch;
}

.post__lede{
  margin:var(--sp-5) 0 0;
  max-width:62ch;
  font-size:var(--fs-md);
  line-height:var(--lh-body);
  color:var(--g-800);
}

.post__body{max-width:68ch}

.post__body p{
  margin:0 0 var(--sp-5);
  font-size:var(--fs-base);
  line-height:1.75;
  color:var(--g-800);
}

.post__body h2{
  margin:var(--sp-8) 0 var(--sp-4);
  font-family:var(--font-display);
  font-size:var(--fs-xl);
  font-weight:600;
  line-height:var(--lh-head);
  letter-spacing:-.02em;
  max-width:20ch;
}

.post__body ul{
  margin:0 0 var(--sp-6);
  padding:0;
  list-style:none;
}

.post__body li{
  position:relative;
  padding-left:var(--sp-6);
  margin-bottom:var(--sp-4);
  font-size:var(--fs-base);
  line-height:1.7;
  color:var(--g-800);
}

.post__body li::before{
  content:"";
  position:absolute;
  left:0;
  top:.7em;
  width:12px;
  height:1px;
  background:var(--blue);
}

.post__body .spec__wrap{
  max-width:none;
  width:min(100%,860px);
  margin:var(--sp-7) 0;
}

.post__body .note{margin:var(--sp-7) 0 0}

.post__back{
  margin:var(--sp-9) 0 0;
  padding-top:var(--sp-5);
  border-top:1px solid var(--g-200);
}

.post__back a{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  font-size:var(--fs-sm);
  font-weight:600;
  color:var(--g-900);
  text-decoration:none;
  transition:color var(--tr-fast);
}

.post__back a:hover{color:var(--blue)}

@media (pointer:coarse){
  .post__head .eyebrow a{
    display:inline-flex;
    align-items:center;
    min-height:44px;
  }

  .post__head .eyebrow{margin-bottom:var(--sp-3)}
}

.post__in{
  display:grid;
  grid-template-columns:minmax(0,68ch) minmax(0,1fr);
  gap:var(--sp-9);
  align-items:start;
}

.post__toc-in{
  position:sticky;
  top:120px;
  border-top:1px solid var(--black);
  padding-top:var(--sp-4);
  max-width:34ch;
}

.post__toc b{
  display:block;
  margin-bottom:var(--sp-4);
  font-size:var(--fs-xs);
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--g-700);
}

.post__toc a{
  display:block;
  padding:var(--sp-3) 0;
  border-bottom:1px solid var(--g-200);
  font-size:var(--fs-sm);
  line-height:1.5;
  color:var(--g-800);
  text-decoration:none;
  transition:color var(--tr-fast);
}

.post__toc a:hover{color:var(--blue)}

.post__body h2{scroll-margin-top:120px}

@media (max-width:1100px){
  .post__in{grid-template-columns:minmax(0,1fr)}
  .post__toc{display:none}
}

.aparte__lista{
  margin:var(--sp-6) 0 0;
  padding:0;
  list-style:none;
  border-top:1px solid var(--g-200);
}

.aparte__lista li{
  position:relative;
  padding:var(--sp-3) 0 var(--sp-3) var(--sp-5);
  border-bottom:1px solid var(--g-200);
  font-size:var(--fs-sm);
  line-height:1.6;
  color:var(--g-800);
}

.aparte__lista li::before{
  content:"";
  position:absolute;
  left:0;
  top:1.35em;
  width:10px;
  height:1px;
  background:var(--blue);
}

.lineas{
  margin-top:var(--sp-6);
  padding-top:var(--sp-5);
  border-top:1px solid var(--g-200);
}
.lineas__rot{
  display:block;
  font-family:var(--font-body);
  font-size:var(--fs-xs);
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--g-500);
  margin-bottom:var(--sp-4);
}
.lineas__fila{
  display:flex;
  flex-wrap:wrap;
  gap:var(--sp-3) var(--sp-6);
  align-items:baseline;
}
.lineas__ir,
.lineas__aqui{
  font-family:var(--font-display);
  font-size:var(--fs-md);
  font-weight:600;
  letter-spacing:-.02em;
  padding-block:var(--sp-2);
}
.lineas__ir{color:var(--black);transition:color var(--tr-fast)}
.lineas__ir:hover{color:var(--blue)}
.lineas__aqui{color:var(--g-500)}

@media (max-width:640px){
  .lineas__fila{flex-direction:column;gap:0}
  .lineas__ir,
  .lineas__aqui{padding-block:var(--sp-3)}
}
