.hero{
  padding-top:calc(var(--nav-h) + 4.5rem);
  padding-bottom:3rem;
  background:var(--fundo);
}
.hero__grid{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:end;
  gap:3rem;
}
.hero__texto h1{
  font-family:var(--serif);
  font-weight:500;
  text-transform:none;
  letter-spacing:-.01em;
  font-size:var(--fs-display);
  max-width:14ch;
}
.hero__lead{
  margin-top:1.5rem;
  max-width:34rem;
  font-size:var(--fs-lead);
  color:var(--texto-70);
}
.hero__accoes{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}

.carrossel{
  margin-top:3.5rem;
  display:flex;gap:1rem;
  overflow-x:auto;
  padding:1rem var(--gutter);
  font-size:1.4vw;
  -webkit-user-select:none;user-select:none;
}
.carrossel__slot{
  --h:11em;
  --ratio:1;
  flex:none;
  display:block;
  width:calc(var(--h) * var(--ratio));
  height:var(--h);
  text-decoration:none;
  color:#fff;
}
.carrossel.is-ativo{
  position:relative;
  display:block;
  overflow:hidden;
  height:13em;
  padding:0;
  cursor:grab;
  -webkit-mask:linear-gradient(90deg,#0000 0%,rgba(255,255,255,.4) 3%,#fff 6% 94%,rgba(255,255,255,.4) 97%,#0000 100%);
          mask:linear-gradient(90deg,#0000 0%,rgba(255,255,255,.4) 3%,#fff 6% 94%,rgba(255,255,255,.4) 97%,#0000 100%);
}
.carrossel.is-a-arrastar{cursor:grabbing}
.carrossel.is-ativo .carrossel__slot{
  position:absolute;top:1em;left:50%;
  opacity:0;
  transition:opacity .34s ease;
}
.carrossel.is-visivel .carrossel__slot{opacity:1}

.carrossel__cartao{
  position:relative;
  display:block;
  width:100%;height:100%;
  overflow:hidden;
  background:var(--fundo-4);
}

.carrossel__fundo{
  position:absolute;
  inset:0;
  width:100%;height:100%;
  object-fit:cover;
  pointer-events:none;
}
.carrossel__info{
  position:absolute;left:0;right:0;bottom:0;
  padding:.75em 1em;
  pointer-events:none;
  transform:translateY(40%);
  transition:transform .6s 1.6s cubic-bezier(.215,.61,.355,1);
}
.carrossel__info::after{
  content:"";
  position:absolute;inset:0;z-index:0;
  background:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.6) 100%);
  opacity:0;
  transform:translateY(100%);
  transition:opacity 5s 1s cubic-bezier(.445,.05,.55,.95), transform 5s 1s cubic-bezier(.445,.05,.55,.95);
}

.carrossel__info span{
  position:relative;z-index:1;
  font-family:var(--mono);
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  text-shadow:#000 0 1px 3px;
  opacity:0;
  transition:opacity .6s 1.6s cubic-bezier(.215,.61,.355,1);
}
.carrossel__slot:hover .carrossel__info,
.carrossel__slot:focus-visible .carrossel__info{transform:translateY(0);transition:transform .6s cubic-bezier(.23,1,.32,1)}
.carrossel__slot:hover .carrossel__info span,
.carrossel__slot:focus-visible .carrossel__info span{opacity:1;transition:opacity .6s cubic-bezier(.23,1,.32,1)}

.carrossel__slot:hover .carrossel__info::after{
  opacity:1;transform:translateY(0);
  transition:opacity 5s cubic-bezier(.23,1,.32,1), transform 5s cubic-bezier(.23,1,.32,1);
}

@media (hover:none){
  .carrossel__info{transform:none}
  .carrossel__info span{opacity:1}
  .carrossel__info::after{opacity:1;transform:none}
}
@media (max-width:60rem){ .carrossel{font-size:2.7vw} }
@media (max-width:37.5rem){ .carrossel{font-size:3.8vw} }

@media (max-width:56.25rem){
  .hero{padding-top:calc(var(--nav-h) + 2.5rem)}
  .hero__grid{grid-template-columns:1fr}
}

.projetos{padding-bottom:2rem}
.projeto{padding-block:2.5rem}
.projeto__grid{
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:3rem;
  align-items:center;
}
.projeto--invertido .projeto__grid{grid-template-columns:1fr 1.4fr}
.projeto--invertido .projeto__media{order:2}
.projeto--invertido .projeto__info{order:1}

.projeto__media{
  display:block;
  aspect-ratio:1600/830;
  overflow:hidden;
  background:var(--fundo-3);
  border:1px solid var(--linha);
}
.projeto__media img{
  width:100%;height:100%;
  object-fit:cover;object-position:top center;
  transition:transform .6s cubic-bezier(.22,1,.36,1);
}
.projeto__media:hover img{transform:scale(1.03)}

.projeto__media--quadrada{aspect-ratio:1;max-width:30rem;border:0}
.projeto--invertido .projeto__media--quadrada{justify-self:end;width:100%}

.projeto__media--tira{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;border:0;background:none}
.projeto__media--tira img{object-position:center}
.projeto__info h3{margin-top:.5rem;font-size:var(--fs-h3)}
.projeto__info p{margin-top:.75rem;color:var(--texto-70);max-width:28rem}

.projetos__cta{padding-top:1rem;padding-bottom:4rem;text-align:center}

@media (max-width:56.25rem){
  .projeto__grid,
  .projeto--invertido .projeto__grid{grid-template-columns:1fr}
  .projeto--invertido .projeto__media,
  .projeto--invertido .projeto__info{order:initial}
}

.servicos-teaser{padding-block:2rem 5rem;background:var(--fundo-2)}
.servicos-teaser__grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--linha);
  border-left:1px solid var(--linha);
}
.servico-cartao{
  display:block;
  padding:2.5rem 2rem;
  text-decoration:none;
  color:inherit;
  border-right:1px solid var(--linha);
  border-bottom:1px solid var(--linha);
  transition:background-color .18s ease;
}
.servico-cartao:hover{background:rgba(var(--texto-rgb),.035)}
.servico-cartao h3{margin-top:1rem;font-size:var(--fs-h3)}
.servico-cartao p{margin-top:.75rem;color:var(--texto-70)}
.servico-cartao__preco{
  display:block;
  margin-top:1.5rem;
  font-family:var(--mono);
  font-size:.875rem;
  font-weight:700;
  color:var(--texto);
}
@media (max-width:56.25rem){
  .servicos-teaser__grid{grid-template-columns:1fr}
}

.sobre-bymg{padding-block:5rem}
.sobre-bymg__grid{
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:3rem;
}
.sobre-bymg__grid h2{max-width:12ch}
.sobre-bymg__texto p{color:var(--texto-70);max-width:34rem}
.sobre-bymg__texto p + p{margin-top:1.25rem}
@media (max-width:56.25rem){
  .sobre-bymg__grid{grid-template-columns:1fr;gap:1.5rem}
}

.montra__media{position:relative}
.montra__media .montra__img{
  position:absolute;inset:0;
  opacity:0;
  transition:opacity .8s ease, transform .6s cubic-bezier(.22,1,.36,1);
}
.montra__media .montra__img.is-atual{opacity:1}
.montra__cursor{
  display:inline-block;
  margin-left:.06em;
  font-weight:400;
  animation:montra-pisca .5s ease-in-out infinite alternate;
}
@keyframes montra-pisca{from{opacity:1}to{opacity:0}}
.montra__offline{
  margin-top:1.25rem;
  font-family:var(--mono);
  font-size:var(--fs-micro);
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--texto-45);
}
.link-seta[hidden],.montra__offline[hidden]{display:none}

.projeto__media--tira .montra__casa{position:relative;display:block;overflow:hidden}
.projeto__media--tira .montra__casa img{
  position:absolute;inset:0;
  width:100%;height:100%;object-fit:cover;
  opacity:0;
  transition:opacity .8s ease;
}
.projeto__media--tira .montra__casa img.is-atual{opacity:1}

.servicos-teaser .secao-cabecalho{text-align:center}
.cta-final--centro{text-align:center}
.cta-final--centro .cta-final__inner{margin-inline:auto}
.cta-final--centro h2{margin-inline:auto}
.cta-final--centro .cta-final__accoes{justify-content:center}

.projeto__media--tira.montra__tira{
  display:flex;justify-content:center;align-items:center;
  gap:.5rem;
  aspect-ratio:auto;
  height:var(--h);
  overflow:visible;
}
.montra__tira .montra__casa{
  flex:none;
  height:100%;
  width:calc(var(--h) * var(--r));
  transition:width .7s cubic-bezier(.22,1,.36,1);
}

@media (min-width:56.3125rem){
  .projeto--artes .projeto__grid{grid-template-columns:2fr 1fr}
}

@media (max-width:56.25rem){
  .projeto--invertido .projeto__media--quadrada{justify-self:start}
}
@media (max-width:37.5rem){
  .montra__tira .montra__casa:nth-child(n+3){display:none}
}
@media (max-width:40rem){
  .hero__accoes .btn{flex:1 1 100%}
}

.hero{padding-bottom:0}
.hero__faixa{
  margin-top:3.5rem;
  padding-block:2.5rem;
  background:var(--fundo-2);
  border-top:1px solid var(--linha);
  border-bottom:1px solid var(--linha);
}
.hero__faixa .carrossel{margin-top:0}
.servicos-teaser,.sobre-bymg{border-top:1px solid var(--linha)}
@media (max-width:56.25rem){
  .hero__faixa{margin-top:2.5rem;padding-block:1.75rem}
}

.hero__grid{grid-template-columns:1fr;justify-items:center}
.hero__texto{text-align:center}
.hero__texto h1,.hero__lead{margin-inline:auto}
.hero__accoes{justify-content:center}

@media (min-width:48rem){
  .hero__texto h1{
    max-width:none;
    white-space:nowrap;
    font-size:min(5.25rem, calc((min(100vw, 75rem) - 2 * var(--gutter)) / 19));
  }
  .hero__lead{
    max-width:none;
    white-space:nowrap;
    font-size:min(var(--fs-lead), calc((min(100vw, 75rem) - 2 * var(--gutter)) / 38));
  }

  .hero__texto{
    min-height:calc(3 * var(--fs-display) + 1.5rem + 2 * 1.55 * var(--fs-lead) + 2rem + 57px);
    display:flex;flex-direction:column;justify-content:center;align-items:center;
  }
}

.hero{padding-top:0}
.hero__topo{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding-top:calc(var(--nav-h) + 4.5rem);
  padding-bottom:3.5rem;
  background:#1d1f1c;
}
.hero__faixa{margin-top:0}
.hero__video{position:absolute;inset:0;z-index:-2}
.hero__video video{width:100%;height:100%;object-fit:cover;display:block}
.hero__topo::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(to bottom,
    rgba(15,16,18,.72) 0%,
    rgba(15,16,18,.6) 28%,
    rgba(15,16,18,.6) 75%,
    rgba(15,16,18,.68) 100%);
}
.hero__topo .hero__texto h1{color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.hero__topo .hero__lead{color:rgba(255,255,255,.88);text-shadow:0 1px 12px rgba(0,0,0,.4)}

.hero__topo .btn--acento{background:#fff;color:var(--texto);border-color:#fff}
.hero__topo .btn--acento:hover{background:rgba(255,255,255,.86);border-color:rgba(255,255,255,.86)}
.hero__topo .btn--linha{color:#fff;border-color:rgba(255,255,255,.7);background:transparent}
.hero__topo .btn--linha:hover{border-color:#fff;background:rgba(255,255,255,.12)}
.hero__topo .btn:focus-visible{outline:2px solid #fff;outline-offset:3px}
@media (max-width:56.25rem){
  .hero__topo{padding-top:calc(var(--nav-h) + 2.5rem);padding-bottom:2.5rem}
}

.hero__topo{
  min-height:100vh;
  min-height:100svh;
  display:flex;flex-direction:column;justify-content:center;
  padding-top:var(--nav-h);
  padding-bottom:var(--nav-h);
}
.hero__topo .hero__grid{width:100%}
.hero__topo .hero__texto{min-height:0}
