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

.why__head{max-width:60ch;margin-bottom:var(--sp-8)}

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

.why__head p{
  margin:var(--sp-4) 0 0;
  color:var(--g-700);
  font-size:var(--fs-md);
  line-height:var(--lh-body);
}

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

.why__item{max-width:38ch}

.why__key{
  display:block;
  margin-bottom:var(--sp-4);
  font-size:var(--fs-xs);
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--blue-dark);
}

.why__item h3{
  margin:0 0 var(--sp-3);
  min-height:calc(var(--fs-lg) * var(--lh-head) * 2);
  font-family:var(--font-display);
  font-size:var(--fs-lg);
  font-weight:600;
  line-height:var(--lh-head);
  letter-spacing:-.02em;
}

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

@media (max-width:1080px){.why__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.why__grid{grid-template-columns:minmax(0,1fr)}}

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

.ind__head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:var(--sp-6);
  margin-bottom:var(--sp-7);
}

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

.ind__head p{
  margin:0;
  max-width:46ch;
  color:var(--g-700);
  font-size:var(--fs-sm);
  line-height:var(--lh-body);
}

.ind__grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  background:var(--g-200);
  border:1px solid var(--g-200);
}

.ind__item{
  background:var(--white);
  padding:var(--sp-7) var(--sp-6);
  display:flex;
  flex-direction:column;
  gap:var(--sp-3);
  min-height:200px;
}

.ind__item h3{
  margin:0;
  font-family:var(--font-display);
  font-size:var(--fs-lg);
  font-weight:600;
  letter-spacing:-.02em;
}

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

@media (max-width:900px){.ind__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){
  .ind__grid{grid-template-columns:minmax(0,1fr)}
  .ind__item{min-height:0}
  .ind__head{flex-direction:column;align-items:start}
}

.cta{
  background:var(--black);
  color:var(--white);
  padding-block:var(--sp-10);
}

.cta__in{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);
  gap:var(--sp-8);
  align-items:end;
}

.cta h2{
  margin:0;
  font-family:var(--font-display);
  font-size:var(--fs-3xl);
  font-weight:600;
  line-height:1.04;
  letter-spacing:-.035em;
  max-width:14ch;
}

.cta h2 em{font-style:normal;color:#5AA8FF}

.cta__side p{
  margin:0 0 var(--sp-6);
  color:var(--g-300);
  font-size:var(--fs-md);
  line-height:var(--lh-body);
  max-width:44ch;
}

.cta__actions{display:flex;flex-wrap:wrap;gap:var(--sp-4)}

.cta .btn-solid{
  height:var(--ctl-h);
  background:var(--white);
  color:var(--black);
}

.cta .btn-solid:hover{background:var(--blue);color:var(--white)}

.cta .btn-line{
  border-color:rgba(255,255,255,.32);
  color:var(--white);
}

.cta .btn-line:hover{border-color:var(--white);color:var(--white)}

@media (max-width:900px){
  .cta__in{grid-template-columns:minmax(0,1fr);gap:var(--sp-7)}
  .cta h2{max-width:16ch}
}

.stats{
  border-top:1px solid var(--g-200);
  padding-block:var(--sp-8);
}

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

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

.stat__num{
  display:block;
  font-family:var(--font-display);
  font-size:clamp(38px,5vw,68px);
  font-weight:600;
  line-height:1;
  letter-spacing:-.04em;
  color:var(--black);
  font-variant-numeric:tabular-nums;
}

.stat__num small{
  font-size:.32em;
  font-weight:600;
  letter-spacing:0;
  margin-left:.2em;
  opacity:.62;
}

.stat__label{
  display:block;
  margin-top:var(--sp-4);
  max-width:22ch;
  font-size:var(--fs-sm);
  line-height:1.6;
  color:var(--g-700);
}

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

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

.who__top{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);
  gap:var(--sp-8);
  align-items:start;
  margin-bottom:var(--sp-9);
}

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

.who__body p{
  margin:0;
  color:var(--g-800);
  font-size:var(--fs-md);
  line-height:var(--lh-body);
}

.who__body p + p{margin-top:var(--sp-5)}

.who__ir{
  display:inline-flex;
  align-items:center;
  gap:var(--sp-3);
  margin-top:var(--sp-6);
  min-height:44px;
  font-family:var(--font-display);
  font-size:var(--fs-sm);
  font-weight:600;
  color:var(--blue-dark);
  text-decoration:none;
  border-bottom:1px solid var(--g-300);
  transition:border-color var(--tr-fast),color var(--tr-fast);
}

.who__ir:hover{color:var(--black);border-bottom-color:var(--black)}
.who__ir i{font-style:normal}

.who__top{margin-bottom:0}

@media (max-width:620px){
  .who__top{grid-template-columns:minmax(0,1fr)}
}

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

.proj__head{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  align-items:end;
  gap:var(--sp-5);
  max-width:none;
  margin-bottom:var(--sp-8);
}

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

.proj__note{
  margin:0;
  max-width:42ch;
  font-size:var(--fs-sm);
  line-height:1.65;
  color:var(--g-700);
}

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

.proj__empty{
  border-top:1px solid var(--g-200);
  padding-top:var(--sp-7);
}

.proj__empty a{
  font-family:var(--font-display);
  font-weight:600;
  color:var(--blue-dark);
  transition:color var(--tr-fast);
}

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

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

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

.obra__where{
  display:block;
  margin-top:var(--sp-2);
  font-family:var(--font-body);
  font-size:var(--fs-sm);
  font-weight:400;
  letter-spacing:.04em;
  color:var(--g-700);
}

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

@media (max-width:820px){
  .obra{grid-template-columns:minmax(0,1fr);gap:var(--sp-3)}
}

.mas__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-auto-rows:minmax(196px,auto);
  gap:1px;
  background:var(--g-200);
  border:1px solid var(--g-200);
}

.mz{
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:var(--sp-5);
  padding:var(--sp-6);
  background:var(--white);
  color:inherit;
  text-decoration:none;
  transition:background var(--tr-base);
}

.mz--elev{grid-column:1/3;grid-row:1/3}
.mz--grad{grid-column:3;grid-row:1}
.mz--tub{grid-column:3;grid-row:2}
.mz--guin{grid-column:1;grid-row:3}
.mz--tec{grid-column:2/4;grid-row:3}

.mz__top{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-4)}

.mz__no{
  font-family:var(--font-display);
  font-size:var(--fs-xs);
  font-weight:700;
  letter-spacing:.16em;
  color:var(--blue-dark);
}

.mz__go{
  font-size:var(--fs-lg);
  color:var(--g-500);
  transition:color var(--tr-fast),transform var(--tr-base);
}

.mz:hover .mz__go{color:var(--blue);transform:translateX(4px)}

.mz__body{display:flex;flex-direction:column;gap:var(--sp-3);transition:transform var(--tr-base)}
.mz:hover .mz__body{transform:translateX(6px)}

.mz__name{
  font-family:var(--font-display);
  font-weight:600;
  letter-spacing:-.03em;
  line-height:1.1;
  font-size:clamp(24px,2.6vw,32px);
}

.mz--elev .mz__name{font-size:clamp(38px,5.4vw,72px);letter-spacing:-.04em}
.mz--tec .mz__name{font-size:clamp(26px,3vw,40px)}

.mz__desc{
  color:var(--g-700);
  font-size:var(--fs-sm);
  line-height:1.6;
  max-width:52ch;
}

.mz--grad .mz__desc,
.mz--tub .mz__desc,
.mz--guin .mz__desc{display:none}

.mz:hover{background:var(--g-100)}

@media (max-width:1024px){
  .mas__grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:minmax(176px,auto)}
  .mz--elev{grid-column:1/3;grid-row:1}
  .mz--grad{grid-column:1;grid-row:2}
  .mz--tub{grid-column:2;grid-row:2}
  .mz--guin{grid-column:1;grid-row:3}
  .mz--tec{grid-column:2;grid-row:3}
}

@media (max-width:640px){
  .mas__grid{grid-template-columns:1fr;grid-auto-rows:auto}
  .mz{grid-column:1;grid-row:auto;padding:var(--sp-5);gap:var(--sp-4)}
  .mz--elev{grid-column:1;grid-row:auto}
  .mz--grad{grid-column:1;grid-row:auto}
  .mz--tub{grid-column:1;grid-row:auto}
  .mz--guin{grid-column:1;grid-row:auto}
  .mz--tec{grid-column:1;grid-row:auto}
  .mz--elev .mz__name{font-size:clamp(30px,9vw,40px)}
  .mz--grad .mz__desc,
  .mz--tub .mz__desc,
  .mz--guin .mz__desc{display:block}
}

@media (prefers-reduced-motion:reduce){
  .mz,.mz__body,.mz__go{transition:none}
  .mz:hover .mz__body,.mz:hover .mz__go{transform:none}
}
