/* =========================================================
   Lopez Amoedo Engenharia
   Tokens extraídos do brandbook (2022)
   ========================================================= */

:root{
  /* Paleta da marca */
  --navy:        #162f4e;   /* Confiável */
  --orange:      #ec671a;   /* Dinamismo e Crescimento */
  --steel:       #c1c1c1;   /* Equilíbrio */
  --white:       #fefefe;   /* Neutralidade */

  /* Derivadas, para profundidade */
  --navy-900:    #0d1c30;
  --navy-700:    #1d3d64;
  --navy-100:    rgba(22,47,78,.08);
  --mist:        #eef0f3;
  --ink:         #14202e;
  --muted:       #5c6a7c;

  /* Tipografia */
  --display: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --body:    "Hanken Grotesk", "Segoe UI", system-ui, sans-serif;

  /* Ritmo */
  --gutter: clamp(1.25rem, 4vw, 3.5rem);
  --maxw: 1240px;
  --section-y: clamp(4.5rem, 9vw, 9rem);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  margin:0;
  background:var(--white);
  color:var(--ink);
  font-family:var(--body);
  font-size:clamp(1rem, .96rem + .2vw, 1.0625rem);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; }

h1,h2,h3,h4{
  font-family:var(--display);
  font-weight:700;
  line-height:1.05;
  letter-spacing:-.02em;
  margin:0;
  text-wrap:balance;
}

h1{ font-size:clamp(2.4rem, 1.4rem + 4.2vw, 4.75rem); }
h2{ font-size:clamp(1.9rem, 1.2rem + 2.6vw, 3.1rem); }
h3{ font-size:clamp(1.25rem, 1.05rem + .8vw, 1.7rem); }

p{ margin:0 0 1.1em; max-width:68ch; }

.wrap{
  width:100%;
  max-width:var(--maxw);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

.section{ padding-block:var(--section-y); }
.section--navy{ background:var(--navy); color:var(--white); }
.section--mist{ background:var(--mist); }

/* Foco visível em tudo que é operável */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:3px solid var(--orange);
  outline-offset:3px;
}

.skip{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--orange); color:#fff; padding:.75rem 1.25rem;
}
.skip:focus{ left:0; }

/* =========================================================
   Cabeçalho
   ========================================================= */

.site-header{
  position:fixed; inset:0 0 auto 0; z-index:100;
  display:flex; align-items:center;
  height:84px;
  background:transparent;
  transition:background .35s ease, height .35s ease, box-shadow .35s ease;
}
.site-header.is-solid,
.site-header.is-inner{
  background:var(--navy);
  box-shadow:0 1px 0 rgba(255,255,255,.12);
}
.site-header.is-solid{ height:70px; }

.site-header .wrap{
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
}

.brand{ display:flex; align-items:center; flex-shrink:0; }
.brand img{ height:38px; width:auto; }
.site-header .brand img{ filter:brightness(0) invert(1); }

.nav{ display:flex; align-items:center; gap:clamp(1rem,2.2vw,2.25rem); }
.nav a{
  color:var(--white);
  text-decoration:none;
  font-weight:500;
  font-size:.98rem;
  padding-block:.4rem;
  position:relative;
}
.nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:0;
  height:2px; background:var(--orange);
  transform:scaleX(0); transform-origin:left;
  transition:transform .25s ease;
}
.nav a:hover::after,
.nav a[aria-current="page"]::after{ transform:scaleX(1); }

.nav-toggle{
  display:none; background:none; border:0; cursor:pointer;
  width:44px; height:44px; padding:10px;
}
.nav-toggle span{
  display:block; height:2px; background:var(--white); margin:5px 0;
  transition:transform .3s ease, opacity .2s ease;
}
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

@media (max-width:900px){
  .nav-toggle{ display:block; }
  .nav{
    position:fixed; inset:84px 0 auto 0;
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--navy);
    padding:1rem var(--gutter) 2rem;
    transform:translateY(-120%);
    transition:transform .35s cubic-bezier(.4,0,.2,1);
    border-top:1px solid rgba(255,255,255,.12);
  }
  .nav.is-open{ transform:translateY(0); }
  .nav a{ padding:1rem 0; border-bottom:1px solid rgba(255,255,255,.1); font-size:1.1rem; }
  .nav .btn{ margin-top:1.25rem; text-align:center; border-bottom:0; }
}

/* =========================================================
   Botões
   ========================================================= */

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:.6rem;
  padding:.85rem 1.6rem;
  font-family:var(--body); font-weight:600; font-size:.98rem;
  text-decoration:none; border:2px solid transparent; cursor:pointer;
  transition:background .25s ease, color .25s ease, border-color .25s ease;
}
.btn--primary{ background:var(--orange); color:#fff; }
.btn--primary:hover{ background:#d2560d; }
.btn--ghost{ border-color:rgba(255,255,255,.5); color:var(--white); }
.btn--ghost:hover{ border-color:var(--white); background:rgba(255,255,255,.1); }
.btn--dark{ border-color:var(--navy); color:var(--navy); }
.btn--dark:hover{ background:var(--navy); color:var(--white); }
.btn .ico{ width:18px; height:18px; }

/* =========================================================
   Hero da home
   ========================================================= */

.hero{
  position:relative;
  min-height:100svh;
  display:flex; align-items:flex-end;
  color:var(--white);
  overflow:hidden;
  background:var(--navy-900);
}
.hero__media{
  position:absolute; inset:0;
  background-size:cover; background-position:center 60%;
  transform:scale(1.06);
  animation:heroSettle 2.4s cubic-bezier(.2,.7,.2,1) forwards;
}
@keyframes heroSettle{ to{ transform:scale(1); } }

.hero__scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(to top, rgba(13,28,48,.94) 0%, rgba(13,28,48,.72) 38%, rgba(13,28,48,.28) 70%, rgba(13,28,48,.55) 100%);
}
/* O traço triangular vem do brandbook (aplicações em outdoor e tapume) */
.hero__mark{
  position:absolute; right:-6%; top:8%;
  width:min(58vw, 640px); height:auto;
  opacity:.55; pointer-events:none;
}
.hero__mark path{ stroke:var(--orange); stroke-width:1.5; fill:none; }

.hero__inner{
  position:relative; z-index:2;
  padding-bottom:clamp(3.5rem, 8vh, 7rem);
  padding-top:140px;
}
.hero h1{ max-width:16ch; }
.hero__lede{
  margin-top:1.75rem;
  max-width:46ch;
  font-size:clamp(1.05rem, .98rem + .4vw, 1.3rem);
  color:rgba(255,255,255,.82);
}
.hero__actions{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:2.25rem; }

.hero__meta{
  position:relative; z-index:2;
  border-top:1px solid rgba(255,255,255,.2);
  margin-top:clamp(2.5rem,6vh,4.5rem);
  padding-top:1.25rem;
  display:flex; flex-wrap:wrap; gap:.5rem 2.5rem;
  font-size:.9rem; color:rgba(255,255,255,.7);
}

/* Reveal único de entrada */
.reveal{ opacity:0; transform:translateY(22px); }
.reveal.is-in{
  opacity:1; transform:none;
  transition:opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1);
}
.d1{ transition-delay:.1s; } .d2{ transition-delay:.25s; } .d3{ transition-delay:.4s; }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .hero__media{ animation:none; transform:none; }
  .reveal{ opacity:1; transform:none; transition:none; }
  *{ transition-duration:.01ms !important; }
}

/* =========================================================
   Manifesto
   ========================================================= */

.manifesto{
  display:grid; gap:clamp(2.5rem,5vw,4.5rem);
  grid-template-columns:1fr;
  align-items:center;
}
@media (min-width:960px){
  .manifesto{ grid-template-columns:.95fr 1.05fr; gap:clamp(3rem,6vw,6rem); }
  .manifesto--media-right .manifesto__figure{ order:2; }
}

/* Coluna da imagem — família + traço triangular do brandbook */
.manifesto__figure{
  position:relative;
  margin:0;
  isolation:isolate;
}
.manifesto__figure::before{
  content:""; position:absolute; z-index:-1;
  left:-1.5rem; top:-1.5rem; right:2.5rem; bottom:2.5rem;
  border:2px solid var(--orange);
  opacity:.45;
}
.manifesto__figure img{
  width:100%; height:100%;
  aspect-ratio:4 / 5;
  object-fit:cover;
  /* Fundo visível enquanto a foto real não estiver em assets/img/ */
  background:
    linear-gradient(135deg, var(--navy-700), var(--navy));
}
.manifesto__figure figcaption{
  position:absolute; left:0; bottom:0;
  background:var(--navy); color:var(--white);
  font-size:.82rem; letter-spacing:.02em;
  padding:.7rem 1.1rem;
  max-width:80%;
}
.manifesto__figure figcaption strong{ color:var(--orange); font-weight:600; }

/* Coluna do texto */
.manifesto__eyebrow{
  font-family:var(--display);
  font-size:.8rem; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--orange);
  margin:0 0 1.25rem;
  display:flex; align-items:center; gap:.75rem;
}
.manifesto__eyebrow::before{
  content:""; width:2.5rem; height:2px; background:var(--orange);
}
.manifesto__q{
  font-family:var(--display);
  font-size:clamp(1.5rem, 1.1rem + 1.7vw, 2.35rem);
  font-weight:700; line-height:1.14; letter-spacing:-.02em;
  color:var(--navy);
  margin:0 0 1.75rem;
}
.manifesto__body p{ color:var(--muted); }
.manifesto__body p:last-of-type{ margin-bottom:0; }
.manifesto__body strong{ color:var(--navy); font-weight:600; }

.manifesto__sign{
  margin-top:2rem; padding-top:1.5rem;
  border-top:1px solid var(--navy-100);
  font-size:.92rem; color:var(--muted);
}
.manifesto__sign strong{
  display:block;
  font-family:var(--display); font-weight:700;
  font-size:1.05rem; color:var(--navy);
  letter-spacing:-.01em;
}

/* =========================================================
   Números
   ========================================================= */

/* Faixa com imagem de fundo e leve efeito parallax.
   O conteúdo fica sobre duas camadas de escurecimento, então o texto
   branco mantém contraste alto (AAA) independentemente da foto. */
.section--parallax{
  position:relative;
  isolation:isolate;
  background:var(--navy);          /* fallback enquanto a imagem carrega */
  overflow:hidden;
}
.section--parallax > .wrap{ position:relative; z-index:1; }

.section--parallax::before{        /* a foto */
  content:"";
  position:absolute; inset:0; z-index:-2;
  background-image:url('../img/projeto-numeros.jpg');
  background-size:cover;
  background-position:center 60%;
  background-repeat:no-repeat;
  background-attachment:fixed;      /* o parallax */
}
.section--parallax::after{         /* o escurecimento por cima da foto */
  content:"";
  position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg, rgba(13,28,48,.66) 0%, rgba(13,28,48,.80) 100%),
    radial-gradient(120% 90% at 50% 45%, rgba(13,28,48,.15), rgba(13,28,48,.62));
}

/* Em telas pequenas o background fixo trava a rolagem (bug conhecido no
   iOS/Android) — aí a foto rola junto, sem parallax. */
@media (max-width:820px){
  .section--parallax::before{ background-attachment:scroll; }
}
@media (prefers-reduced-motion:reduce){
  .section--parallax::before{ background-attachment:scroll; }
}

.stats{
  display:grid; gap:2.5rem 1.5rem;
  grid-template-columns:repeat(2,1fr);
}
@media (min-width:820px){ .stats{ grid-template-columns:repeat(4,1fr); } }

.stat__n{
  font-family:var(--display); font-weight:800;
  font-size:clamp(2.6rem, 1.8rem + 3vw, 4.2rem);
  line-height:1; letter-spacing:-.04em;
  color:var(--white);
}
.stat__n span{ color:var(--orange); }
.stat__l{
  margin:.75rem 0 0; font-size:.95rem; max-width:22ch;
  color:rgba(255,255,255,.82);
}
.section--parallax .stat__l{ color:rgba(255,255,255,.86); }

/* =========================================================
   Empreendimentos — linhas alternadas
   ========================================================= */

.head{ max-width:60ch; margin-bottom:clamp(2.5rem,5vw,4rem); }
.head p{ color:var(--muted); margin-top:1rem; }
.section--navy .head p{ color:rgba(255,255,255,.72); }

.project{
  display:grid; gap:clamp(1.5rem,4vw,3.5rem);
  grid-template-columns:1fr;
  align-items:center;
  padding-block:clamp(2.5rem,5vw,4rem);
  border-top:1px solid var(--navy-100);
}
.project:first-of-type{ border-top:0; padding-top:0; }
@media (min-width:900px){
  .project{ grid-template-columns:1.15fr .85fr; }
  .project--flip .project__media{ order:2; }
}

.project__media{ position:relative; overflow:hidden; background:var(--navy-900); }
.project__media img{
  width:100%; aspect-ratio:16/9; object-fit:cover;
  transition:transform .6s cubic-bezier(.2,.7,.2,1);
}
.project:hover .project__media img{ transform:scale(1.03); }

/* Cada empreendimento surge ao entrar na tela durante a rolagem */
.inview-hidden{
  opacity:0; transform:translateY(40px);
  transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1);
}
.inview-hidden.is-inview{ opacity:1; transform:none; }

@media (prefers-reduced-motion:reduce){
  .inview-hidden{ opacity:1; transform:none; transition:none; }
}

.tag{
  display:inline-block;
  font-size:.78rem; font-weight:600; letter-spacing:.04em;
  padding:.35rem .8rem;
  background:var(--orange); color:#fff;
}
.tag--done{ background:var(--navy); }
.tag--work{ background:var(--orange); }
.tag--launch{ background:#0f7a5a; }

.project__media .tag{ position:absolute; left:0; top:0; }

.project__body h3{ color:var(--navy); margin-bottom:.5rem; }
.project__place{ color:var(--orange); font-weight:600; font-size:.95rem; margin-bottom:1rem; }
.project__body p{ color:var(--muted); }
.project__link{
  display:inline-block; margin-top:.5rem;
  font-weight:600; color:var(--navy);
  text-decoration:none; border-bottom:2px solid var(--orange);
  padding-bottom:2px;
}
.project__link:hover{ color:var(--orange); }

/* =========================================================
   Pilares
   ========================================================= */

/* Traço triangular da marca, em marca-d'água atrás dos cards */
.section--brandmark{ position:relative; overflow:hidden; }
.section--brandmark > .wrap{ position:relative; z-index:1; }
.brandmark{
  position:absolute; z-index:0; pointer-events:none;
  left:-10%; bottom:-18%;
  width:min(50vw, 560px); height:auto;
  opacity:.06;
}
.brandmark path{ stroke:var(--navy); stroke-width:1.5; fill:none; }

.pillars{
  display:grid; gap:clamp(1.75rem,3vw,2rem);
  grid-template-columns:1fr;
}
@media (min-width:820px){ .pillars{ grid-template-columns:repeat(3,1fr); } }

.pillar{
  position:relative;
  background:var(--white);
  padding:clamp(2rem,4vw,2.5rem) clamp(1.75rem,3vw,2.25rem) clamp(2.25rem,4vw,2.75rem);
  border-top:3px solid var(--orange);
  box-shadow:0 1px 2px rgba(22,47,78,.05);
  transition:transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease;
}
.pillar:hover{
  transform:translateY(-6px);
  box-shadow:0 28px 44px -26px rgba(22,47,78,.32);
}

.pillar__n{
  display:block;
  font-family:var(--display); font-weight:800;
  font-size:clamp(2.4rem, 1.8rem + 2vw, 3.1rem);
  line-height:1; letter-spacing:-.03em;
  color:rgba(22,47,78,.15);
  margin-bottom:.5rem;
}

.pillar h3{ color:var(--navy); margin-bottom:.75rem; }
.pillar p{ margin-bottom:0; color:var(--muted); }

/* =========================================================
   Faixa de chamada
   ========================================================= */

.cta{
  background:var(--navy); color:var(--white);
  padding-block:clamp(3.5rem,7vw,6rem);
}
.cta__grid{ display:grid; gap:2rem; align-items:center; grid-template-columns:1fr; }
@media (min-width:900px){ .cta__grid{ grid-template-columns:1.4fr .6fr; } }
.cta h2{ max-width:20ch; }
.cta p{ color:rgba(255,255,255,.75); margin-top:1rem; margin-bottom:0; }
.cta__actions{ display:flex; flex-wrap:wrap; gap:1rem; }

/* =========================================================
   Cabeçalho de página interna
   ========================================================= */

.pagehead{
  background:var(--navy); color:var(--white);
  padding-top:calc(84px + clamp(3rem,7vw,6rem));
  padding-bottom:clamp(3rem,7vw,5.5rem);
  position:relative; overflow:hidden;
}
.pagehead__mark{
  position:absolute; right:-4%; bottom:-30%;
  width:min(46vw,460px); opacity:.4; pointer-events:none;
}
.pagehead__mark path{ stroke:var(--orange); stroke-width:1.5; fill:none; }
.pagehead .wrap{ position:relative; z-index:2; }
.pagehead p{ color:rgba(255,255,255,.75); margin-top:1.25rem; }

.crumb{ font-size:.9rem; color:rgba(255,255,255,.6); margin-bottom:1.25rem; }
.crumb a{ text-decoration:none; border-bottom:1px solid rgba(255,255,255,.35); }
.crumb a:hover{ color:var(--orange); border-color:var(--orange); }

/* =========================================================
   Empreendimentos (grade de cards)
   ========================================================= */

.grid-cards{ display:grid; gap:clamp(1.5rem,3vw,2.5rem); grid-template-columns:1fr; }
@media (min-width:700px){ .grid-cards{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1050px){ .grid-cards{ grid-template-columns:repeat(3,1fr); } }

.card{
  display:flex; flex-direction:column;
  text-decoration:none; color:inherit;
  background:var(--white);
  border-bottom:3px solid transparent;
  transition:border-color .3s ease, transform .3s ease;
}
.card:hover{ border-bottom-color:var(--orange); transform:translateY(-4px); }
.card__media{ position:relative; overflow:hidden; background:var(--navy-900); }
.card__media img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.card__body{ padding:1.35rem 0 1.5rem; }
.card__body h3{ color:var(--navy); font-size:1.35rem; margin-bottom:.35rem; }
.card__body .project__place{ margin-bottom:.75rem; }
.card__body p{ color:var(--muted); font-size:.97rem; margin-bottom:0; }

/* =========================================================
   Página de empreendimento
   ========================================================= */

.hero-proj{
  position:relative; min-height:72svh;
  display:flex; align-items:flex-end;
  color:var(--white); background:var(--navy-900); overflow:hidden;
}
.hero-proj__media{ position:absolute; inset:0; background-size:cover; background-position:center; }
.hero-proj__scrim{
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(13,28,48,.92) 5%, rgba(13,28,48,.35) 55%, rgba(13,28,48,.6) 100%);
}
.hero-proj__inner{ position:relative; z-index:2; padding-block:clamp(2.5rem,6vh,4.5rem); padding-top:140px; }
.hero-proj h1{ font-size:clamp(2.1rem, 1.4rem + 3.2vw, 3.8rem); }
.hero-proj .project__place{ color:var(--orange); margin-bottom:.75rem; }

.split{ display:grid; gap:clamp(2rem,5vw,4.5rem); grid-template-columns:1fr; }
@media (min-width:900px){ .split{ grid-template-columns:1.1fr .9fr; } }

.spec{ border-top:2px solid var(--navy); }
.spec dl{ margin:0; }
.spec .row{
  display:flex; justify-content:space-between; gap:1.5rem;
  padding:1rem 0; border-bottom:1px solid var(--navy-100);
}
.spec dt{ color:var(--muted); font-size:.95rem; }
.spec dd{ margin:0; font-weight:600; color:var(--navy); text-align:right; }

.features{ list-style:none; padding:0; margin:0; display:grid; gap:.85rem; }
.features li{ display:flex; gap:.85rem; align-items:flex-start; }
.features li::before{
  content:""; flex:0 0 auto; width:10px; height:10px; margin-top:.5rem;
  background:var(--orange);
  clip-path:polygon(50% 0,100% 100%,0 100%);
}

.gallery{ display:grid; gap:.75rem; grid-template-columns:1fr; }
@media (min-width:760px){
  .gallery{ grid-template-columns:repeat(2,1fr); }
  .gallery figure:first-child{ grid-column:span 2; }
}
.gallery figure{ margin:0; }
.gallery img{ width:100%; aspect-ratio:16/9; object-fit:cover; }
.gallery figcaption{ font-size:.88rem; color:var(--muted); padding-top:.6rem; }

/* Plantas baixas */
.floorplans{ display:grid; gap:clamp(1.5rem,3vw,2rem); grid-template-columns:1fr; }
@media (min-width:820px){ .floorplans{ grid-template-columns:repeat(2,1fr); } }

.floorplan{ margin:0; background:var(--white); box-shadow:0 1px 2px rgba(22,47,78,.06); }
.floorplan img{ width:100%; height:auto; display:block; }
.floorplan figcaption{ padding:1.25rem clamp(1.25rem,3vw,1.75rem) 1.5rem; }
.floorplan h3{ color:var(--navy); font-size:1.15rem; margin-bottom:.5rem; }
.floorplan p{ color:var(--muted); margin:0; font-size:.95rem; }

/* Implantação / vista aérea numerada */
.plan-shot{ margin:0; background:var(--white); box-shadow:0 1px 2px rgba(22,47,78,.06); align-self:start; }
.plan-shot img{ width:100%; height:auto; display:block; }

/* Localização */
.location{
  max-width:74ch;
  background:var(--mist);
  border-radius:20px;
  padding:clamp(1.75rem,4vw,2.75rem);
}
.location p{ color:var(--muted); margin:0; }
.location__address{
  margin-top:1.5rem; padding-top:1.25rem;
  border-top:1px solid rgba(22,47,78,.12);
  color:var(--navy) !important; font-weight:700; font-family:var(--display);
  letter-spacing:-.01em; font-size:1.02rem;
}
.location__map{
  display:block; width:100%; aspect-ratio:21/9; border:0;
  margin-top:1.75rem; filter:grayscale(.2) contrast(1.02);
}
@media (max-width:640px){ .location__map{ aspect-ratio:4/3; } }

/* =========================================================
   Empresa
   ========================================================= */

.values{ display:grid; gap:2.5rem; grid-template-columns:1fr; }
@media (min-width:820px){ .values{ grid-template-columns:repeat(3,1fr); } }
.value{ border-top:1px solid rgba(255,255,255,.25); padding-top:1.5rem; }
.value h3{ font-size:1.15rem; margin-bottom:.6rem; color:var(--orange); }
.value p{ color:rgba(255,255,255,.78); margin-bottom:0; font-size:.97rem; }

.mvv{ display:grid; gap:clamp(2rem,4vw,3.5rem); grid-template-columns:1fr; }
@media (min-width:820px){ .mvv{ grid-template-columns:repeat(2,1fr); } }
.mvv__item h3{ color:var(--navy); margin-bottom:.75rem; }
.mvv__item p{ color:var(--muted); margin-bottom:0; }

.figure-wide img{ width:100%; aspect-ratio:21/9; object-fit:cover; }
.figure-wide figcaption{ font-size:.88rem; color:var(--muted); padding-top:.75rem; }

/* =========================================================
   Contato
   ========================================================= */

.contact{ display:grid; gap:clamp(2.5rem,5vw,4.5rem); grid-template-columns:1fr; }
@media (min-width:900px){ .contact{ grid-template-columns:1fr 1fr; } }

.field{ margin-bottom:1.35rem; }
.field label{ display:block; font-weight:600; font-size:.93rem; margin-bottom:.45rem; color:var(--navy); }
.field input,.field select,.field textarea{
  width:100%; padding:.85rem 1rem;
  font-family:var(--body); font-size:1rem; color:var(--ink);
  background:var(--white);
  border:1px solid var(--steel); border-radius:0;
  transition:border-color .2s ease;
}
.field input:hover,.field textarea:hover,.field select:hover{ border-color:var(--navy); }
.field textarea{ min-height:130px; resize:vertical; }
.form-note{ font-size:.88rem; color:var(--muted); margin-top:1rem; }

.info{ display:grid; gap:1.75rem; }
.info__item h3{ font-size:1.05rem; color:var(--navy); margin-bottom:.3rem; }
.info__item p{ margin:0; color:var(--muted); }
.info__item a{ color:var(--navy); text-decoration:none; border-bottom:1px solid var(--orange); }
.info__item a:hover{ color:var(--orange); }

/* =========================================================
   Rodapé
   ========================================================= */

.site-footer{ background:var(--navy-900); color:rgba(255,255,255,.72); padding-block:clamp(3rem,6vw,4.5rem) 2rem; }
.site-footer .brand img{ height:44px; filter:brightness(0) invert(1); }
.footer__grid{ display:grid; gap:2.5rem; grid-template-columns:1fr; }
@media (min-width:820px){ .footer__grid{ grid-template-columns:1.4fr .8fr .8fr; } }
.site-footer h4{ color:var(--white); font-size:1rem; margin-bottom:1rem; font-family:var(--body); font-weight:600; }
.site-footer ul{ list-style:none; margin:0; padding:0; display:grid; gap:.6rem; }
.site-footer a{ text-decoration:none; }
.site-footer a:hover{ color:var(--orange); }
.site-footer p{ font-size:.95rem; }
.footer__base{
  margin-top:3rem; padding-top:1.5rem;
  border-top:1px solid rgba(255,255,255,.15);
  display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between;
  font-size:.87rem; color:rgba(255,255,255,.5);
}

/* Botão flutuante de WhatsApp */
.wa{
  position:fixed; right:1.25rem; bottom:1.25rem; z-index:90;
  width:56px; height:56px; border-radius:50%;
  background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 20px rgba(0,0,0,.25);
  transition:transform .25s ease;
}
.wa:hover{ transform:scale(1.07); }
.wa svg{ width:30px; height:30px; fill:currentColor; }

/* =========================================================
   Lightbox — fotos e plantas ampliadas num modal
   ========================================================= */

.lightbox-trigger{ cursor:zoom-in; }
.lightbox-trigger:focus-visible{ outline:3px solid var(--orange); outline-offset:3px; }

.lightbox{
  position:fixed; inset:0; z-index:300;
  display:flex; align-items:center; justify-content:center;
  padding:clamp(1.25rem,5vw,3.5rem);
  background:rgba(13,28,48,.94);
  opacity:0; visibility:hidden;
  transition:opacity .3s ease, visibility 0s linear .3s;
}
.lightbox.is-open{
  opacity:1; visibility:visible;
  transition:opacity .3s ease, visibility 0s linear;
}

.lightbox__frame{
  margin:0; max-width:min(94vw,1280px); max-height:100%;
  display:flex; flex-direction:column; align-items:center;
}
.lightbox__img{
  max-width:100%; max-height:82vh; width:auto; height:auto;
  object-fit:contain;
  box-shadow:0 30px 70px -20px rgba(0,0,0,.55);
  background:var(--white);
}
.lightbox__caption{
  margin-top:1.1rem; max-width:70ch;
  color:rgba(255,255,255,.82); font-size:.92rem; text-align:center;
}
.lightbox__caption[hidden]{ display:none; }

.lightbox__close{
  position:absolute; top:clamp(1rem,3vw,2rem); right:clamp(1rem,3vw,2rem); z-index:1;
  width:44px; height:44px; border-radius:50%;
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.3);
  color:var(--white); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s ease;
}
.lightbox__close:hover{ background:rgba(255,255,255,.22); }
.lightbox__close svg{ width:18px; height:18px; stroke:currentColor; stroke-width:2; fill:none; }

body.lightbox-open{ overflow:hidden; }

@media (prefers-reduced-motion:reduce){
  .lightbox{ transition:none; }
}
