/* ═══════════════════════════════════════════════════════
   mascoli.com · folha de estilo principal
   Mesmos tokens visuais do site das moradias, para os dois
   ficarem a condizer.
   ═══════════════════════════════════════════════════════ */

:root{
  --areia:      #F7F3EC;
  --areia-2:    #EFE8DD;
  --branco:     #FFFFFF;
  --carvao:     #23293A;   /* azul-carvão do logótipo */
  --carvao-2:   #1B2130;
  --pedra:      #6B6E78;
  --pedra-clara:#9A9CA6;
  --madeira:    #B98A5E;
  --madeira-esc:#9C6F45;
  --verde:      #4C5A48;
  --linha:      rgba(35,41,58,.13);
  --linha-clara:rgba(255,255,255,.18);

  --serif: 'Fraunces', Georgia, 'Times New Roman', serif;
  --sans:  'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;

  --max: 1240px;
  --gap: clamp(1.5rem, 4vw, 3.5rem);
  --raio: 4px;
  --sombra: 0 18px 50px rgba(35,41,58,.10);
  --transicao: .35s cubic-bezier(.22,.61,.36,1);
}

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

html{ scroll-behavior:smooth; scroll-padding-top:84px; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

body{
  margin:0; font-family:var(--sans); font-size:1rem; line-height:1.7;
  color:var(--carvao); background:var(--branco);
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}

img{ max-width:100%; display:block; }

h1,h2,h3{ font-family:var(--serif); font-weight:400; line-height:1.14; letter-spacing:-.01em; margin:0 0 .6em; }
h1{ font-size:clamp(2.3rem, 6vw, 4.1rem); }
h2{ font-size:clamp(1.85rem, 3.8vw, 2.85rem); }
h3{ font-size:1.2rem; letter-spacing:0; }
p{ margin:0 0 1.1em; color:var(--pedra); }
a{ color:inherit; }

/* ── utilitários ─────────────────────────────────────── */
.envolve{ width:100%; max-width:var(--max); margin-inline:auto; padding-inline:clamp(1.15rem,4vw,2.5rem); }
.envolve--estreito{ max-width:820px; }

.visualmente-oculto{
  position:absolute!important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.salto-conteudo{ position:absolute; left:-999px; top:0; z-index:200; background:var(--carvao); color:#fff; padding:.8rem 1.2rem; text-decoration:none; }
.salto-conteudo:focus{ left:.5rem; top:.5rem; }
:focus-visible{ outline:2px solid var(--madeira); outline-offset:3px; }

.sobretitulo{ font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; color:var(--madeira-esc); font-weight:500; margin-bottom:.9rem; }
.seccao--escura .sobretitulo{ color:var(--madeira); }
.nota-legal{ font-size:.82rem; line-height:1.6; color:var(--pedra-clara); max-width:78ch; margin-top:2.5rem; }
.seccao--escura .nota-legal{ color:rgba(255,255,255,.45); }

.etiqueta-mini{
  display:inline-block; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--madeira-esc); background:var(--areia-2); padding:.35rem .8rem; border-radius:99px; margin-bottom:1rem;
}

/* ── botões ──────────────────────────────────────────── */
.botao{
  --bg:var(--carvao); --fg:#fff;
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  background:var(--bg); color:var(--fg);
  font-family:var(--sans); font-size:.9rem; font-weight:500;
  padding:.95rem 1.7rem; border:1px solid var(--bg); border-radius:var(--raio);
  text-decoration:none; cursor:pointer;
  transition:transform var(--transicao), background var(--transicao), color var(--transicao), border-color var(--transicao);
}
.botao:hover{ transform:translateY(-2px); background:var(--madeira-esc); border-color:var(--madeira-esc); color:#fff; }
.botao--pequeno{ padding:.6rem 1.15rem; font-size:.82rem; }
.botao--largo{ width:100%; }
.botao--fantasma{ background:transparent; color:#fff; border-color:rgba(255,255,255,.55); }
.botao--fantasma:hover{ background:#fff; color:var(--carvao); border-color:#fff; }
.botao--fantasma-escuro{ background:transparent; color:var(--carvao); border-color:var(--linha); }
.botao--fantasma-escuro:hover{ background:var(--carvao); color:#fff; border-color:var(--carvao); }
.botao--whatsapp{ --bg:#1FA855; margin-top:1.8rem; }
.botao--whatsapp svg{ width:20px; height:20px; }
.botao--whatsapp:hover{ background:#17803f; border-color:#17803f; }

.ligacao-seta{
  display:inline-block; margin-top:.3rem; font-size:.9rem; font-weight:500; text-decoration:none;
  color:var(--madeira-esc); border-bottom:1px solid currentColor; padding-bottom:2px; transition:opacity var(--transicao);
}
.ligacao-seta::after{ content:' →'; }
.ligacao-seta:hover{ opacity:.7; }

/* ── cabeçalho ───────────────────────────────────────── */
.cabecalho{ position:fixed; inset:0 0 auto 0; z-index:100; border-bottom:1px solid transparent;
  transition:background var(--transicao), box-shadow var(--transicao), border-color var(--transicao); }
.cabecalho__interior{ display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:76px; }
.cabecalho.compacto{ background:rgba(255,255,255,.94); backdrop-filter:saturate(160%) blur(12px); border-bottom-color:var(--linha); }

.marca{ display:flex; align-items:center; gap:.75rem; text-decoration:none; color:#fff; }
.cabecalho.compacto .marca{ color:var(--carvao); }
.marca__simbolo{ display:block; }
.marca__simbolo svg{ width:30px; height:30px; display:block; }
.marca__texto{ display:flex; flex-direction:column; line-height:1.2; }
.marca__texto strong{ font-family:var(--sans); font-size:1.02rem; font-weight:600; letter-spacing:.19em; }
.marca__texto small{ font-size:.62rem; letter-spacing:.24em; text-transform:uppercase; opacity:.72; }

.navegacao{ display:flex; align-items:center; gap:1.7rem; }
.navegacao a{ color:#fff; text-decoration:none; font-size:.88rem; opacity:.88; transition:opacity var(--transicao); }
.navegacao a:hover{ opacity:1; }
.cabecalho.compacto .navegacao a{ color:var(--carvao); }
.navegacao .botao{ color:#fff; opacity:1; }
.cabecalho.compacto .navegacao .botao{ color:#fff; }

.cabecalho__acoes{ display:flex; align-items:center; gap:.8rem; }
.idiomas{ display:flex; border:1px solid rgba(255,255,255,.4); border-radius:var(--raio); overflow:hidden; }
.cabecalho.compacto .idiomas{ border-color:var(--linha); }
.idiomas button{ background:transparent; border:0; cursor:pointer; font-family:var(--sans); font-size:.72rem;
  font-weight:500; letter-spacing:.06em; padding:.4rem .6rem; color:#fff; opacity:.7; transition:all var(--transicao); }
.cabecalho.compacto .idiomas button{ color:var(--carvao); }
.idiomas button.ativo{ background:#fff; color:var(--carvao); opacity:1; }
.cabecalho.compacto .idiomas button.ativo{ background:var(--carvao); color:#fff; }

.hamburguer{ display:none; flex-direction:column; justify-content:center; gap:5px; width:42px; height:42px; padding:0 9px; background:none; border:0; cursor:pointer; }
.hamburguer span{ display:block; height:1.5px; background:#fff; transition:transform var(--transicao), opacity var(--transicao); }
.cabecalho.compacto .hamburguer span{ background:var(--carvao); }
.hamburguer[aria-expanded="true"] span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.hamburguer[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.hamburguer[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

/* ── hero ────────────────────────────────────────────── */
.hero{ position:relative; min-height:100svh; display:flex; flex-direction:column; justify-content:center;
  padding:8rem 0 5rem; overflow:hidden; color:#fff; }
.hero__fundo{ position:absolute; inset:0; z-index:-2; }
.hero__fundo img{ width:100%; height:100%; object-fit:cover; object-position:center 60%; }
.hero::after{ content:''; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(18,22,32,.62) 0%, rgba(18,22,32,.32) 40%, rgba(18,22,32,.75) 100%); }
.hero__interior{ position:relative; }
.etiqueta{ display:inline-block; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:#fff;
  background:rgba(255,255,255,.13); border:1px solid rgba(255,255,255,.28); padding:.45rem .95rem;
  border-radius:99px; margin-bottom:1.6rem; backdrop-filter:blur(6px); }
.hero h1{ color:#fff; max-width:17ch; text-shadow:0 2px 30px rgba(0,0,0,.25); }
.hero__sub{ color:rgba(255,255,255,.9); max-width:56ch; font-size:1.08rem; margin-bottom:2.2rem; }
.hero__botoes{ display:flex; flex-wrap:wrap; gap:.8rem; }
.hero .botao:not(.botao--fantasma){ background:#fff; color:var(--carvao); border-color:#fff; }
.hero .botao:not(.botao--fantasma):hover{ background:var(--madeira); border-color:var(--madeira); color:#fff; }
.hero__seta{ position:absolute; bottom:1.8rem; left:50%; transform:translateX(-50%); color:#fff; opacity:.65; animation:flutua 2.4s ease-in-out infinite; }
.hero__seta svg{ width:26px; height:26px; }
@keyframes flutua{ 0%,100%{ transform:translate(-50%,0);} 50%{ transform:translate(-50%,8px);} }

/* ── secções ─────────────────────────────────────────── */
.seccao{ padding:clamp(4.5rem, 9vw, 8rem) 0; }
.seccao--fina{ padding:clamp(2.5rem, 5vw, 4rem) 0; }
.seccao--areia{ background:var(--areia); }
.seccao--escura{ background:var(--carvao); color:#fff; }
.seccao--escura h2,.seccao--escura h3{ color:#fff; }
.seccao--escura p{ color:rgba(255,255,255,.72); }

.cabecalho-seccao{ max-width:62ch; margin-bottom:3rem; }
.cabecalho-seccao__sub{ font-size:1.05rem; }

.grelha-2{ display:grid; grid-template-columns:1fr 1fr; gap:var(--gap); align-items:center; }
.grelha-2--contacto{ align-items:start; }

.lista-check{ list-style:none; padding:0; margin:1.5rem 0; display:grid; gap:.7rem; }
.lista-check li{ position:relative; padding-left:1.8rem; color:var(--pedra); font-size:.94rem; }
.lista-check li::before{ content:''; position:absolute; left:0; top:.55em; width:11px; height:6px;
  border-left:1.5px solid var(--madeira); border-bottom:1.5px solid var(--madeira); transform:rotate(-45deg); }

/* ── números ─────────────────────────────────────────── */
.numeros{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin:0; padding:0;
  background:var(--linha-clara); border:1px solid var(--linha-clara); border-radius:var(--raio); overflow:hidden; }
.numeros > div{ background:var(--carvao); padding:1.6rem 1.4rem; text-align:center; }
.numeros dt{ font-family:var(--serif); font-size:clamp(2rem,4vw,2.9rem); line-height:1; color:#fff; margin-bottom:.45rem; }
.numeros dd{ margin:0; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.6); }

/* ── três vias ───────────────────────────────────────── */
.tres-vias{ display:grid; grid-template-columns:repeat(3,1fr); gap:2.5rem; }
.via__num{ display:block; font-family:var(--serif); font-size:2rem; color:var(--madeira); line-height:1; margin-bottom:.9rem; }
.via h3{ margin-bottom:.6rem; }
.via p{ font-size:.95rem; }

/* ── galeria ─────────────────────────────────────────── */
.galeria{ display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:12rem; gap:.75rem; grid-auto-flow:dense; }
.g-item{ position:relative; overflow:hidden; border-radius:var(--raio); background:var(--areia-2);
  border:0; padding:0; cursor:zoom-in; }
.g-item--largo{ grid-column:span 2; }
.g-item img{ width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.22,.61,.36,1); }
.g-item:hover img{ transform:scale(1.06); }
.g-item__legenda{ position:absolute; inset:auto 0 0 0; padding:1.5rem 1rem .8rem;
  background:linear-gradient(to top, rgba(18,22,32,.72), transparent); color:#fff; font-size:.82rem; text-align:left;
  opacity:0; transform:translateY(8px); transition:all var(--transicao); }
.g-item:hover .g-item__legenda,.g-item:focus-visible .g-item__legenda{ opacity:1; transform:none; }

/* ── projeto em destaque ─────────────────────────────── */
.destaque-projeto{ display:grid; grid-template-columns:1.15fr 1fr; gap:0; margin-bottom:3.5rem;
  background:var(--branco); border:1px solid var(--linha); border-radius:var(--raio); overflow:hidden; }
.destaque-projeto__imagem{ display:block; overflow:hidden; }
.destaque-projeto__imagem img{ width:100%; height:100%; min-height:340px; object-fit:cover; transition:transform .8s cubic-bezier(.22,.61,.36,1); }
.destaque-projeto__imagem:hover img{ transform:scale(1.04); }
.destaque-projeto__texto{ padding:clamp(1.8rem,3.5vw,3rem); display:flex; flex-direction:column; justify-content:center; }
.destaque-projeto__texto h3{ font-size:1.9rem; margin-bottom:.3rem; }
.destaque-projeto__local{ font-size:.85rem; letter-spacing:.08em; text-transform:uppercase; color:var(--pedra-clara); margin-bottom:1rem; }
.destaque-projeto .botao{ align-self:flex-start; margin-top:.6rem; }

/* ── filtros ─────────────────────────────────────────── */
.filtros{ display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1.5rem; }
.filtros button{ background:transparent; border:1px solid var(--linha); border-radius:99px;
  font-family:var(--sans); font-size:.83rem; color:var(--pedra); padding:.5rem 1.1rem; cursor:pointer; transition:all var(--transicao); }
.filtros button:hover{ border-color:var(--carvao); color:var(--carvao); }
.filtros button.ativo{ background:var(--carvao); border-color:var(--carvao); color:#fff; }

/* ── tabela do track record ──────────────────────────── */
.tabela-envolve{ overflow-x:auto; border:1px solid var(--linha); border-radius:var(--raio); background:var(--branco); }
.tabela-port{ width:100%; border-collapse:collapse; min-width:620px; font-size:.93rem; }
.tabela-port thead th{ text-align:left; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--pedra-clara); font-weight:600; padding:1rem 1.2rem; border-bottom:1px solid var(--linha); white-space:nowrap; }
.tabela-port td,.tabela-port tbody th{ padding:1rem 1.2rem; border-bottom:1px solid var(--linha); text-align:left; font-weight:400; color:var(--pedra); vertical-align:middle; }
.tabela-port tbody tr:last-child td,.tabela-port tbody tr:last-child th{ border-bottom:0; }
.tabela-port tbody tr{ transition:background var(--transicao); }
.tabela-port tbody tr:hover{ background:var(--areia); }
.tabela-port tbody th b{ display:block; font-weight:500; color:var(--carvao); }
.tabela-port .concelho{ display:block; font-size:.78rem; color:var(--pedra-clara); }

.estado{ display:inline-block; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; font-weight:600;
  padding:.3rem .7rem; border-radius:99px; white-space:nowrap; }
.estado--curso{ background:rgba(185,138,94,.16); color:var(--madeira-esc); }
.estado--concluido{ background:rgba(76,90,72,.12); color:var(--verde); }

/* ── passos ──────────────────────────────────────────── */
.passos{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(5,1fr); gap:1.8rem; counter-reset:p; }
.passo{ position:relative; padding-top:2.6rem; border-top:1px solid var(--linha); }
.passo__num{ position:absolute; top:-.9rem; left:0; width:1.9rem; height:1.9rem; display:grid; place-items:center;
  background:var(--carvao); color:#fff; border-radius:50%; font-size:.8rem; font-weight:600; }
.passo h3{ font-size:1.05rem; margin-bottom:.5rem; }
.passo p{ font-size:.9rem; margin:0; }

/* ── cartões de investimento ─────────────────────────── */
.cartoes-inv{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.cartao-inv{ background:rgba(255,255,255,.05); border:1px solid var(--linha-clara); border-radius:var(--raio); padding:2rem; }
.cartao-inv h3{ font-size:1.1rem; margin-bottom:.8rem; }
.cartao-inv p{ font-size:.93rem; margin:0; }

.inv-cta{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.5rem;
  margin-top:3rem; padding:2rem; background:rgba(255,255,255,.06); border-radius:var(--raio); }
.inv-cta p{ margin:0; max-width:60ch; color:rgba(255,255,255,.85); }
.inv-cta .botao{ background:#fff; color:var(--carvao); border-color:#fff; flex:none; }
.inv-cta .botao:hover{ background:var(--madeira); border-color:var(--madeira); color:#fff; }

/* ── sobre ───────────────────────────────────────────── */
.sobre__imagem img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--raio); box-shadow:var(--sombra); }
.sobre-dados{ display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-top:2rem; padding-top:1.8rem; border-top:1px solid var(--linha); }
.sobre-dados dt{ font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--pedra-clara); margin-bottom:.4rem; }
.sobre-dados dd{ margin:0; font-size:.95rem; line-height:1.5; }

/* ── contacto ────────────────────────────────────────── */
.contactos-diretos{ list-style:none; padding:0; margin:2rem 0 0; display:grid; gap:1rem; }
.contactos-diretos li{ display:flex; align-items:center; gap:.9rem; font-size:.97rem; color:var(--pedra); }
.contactos-diretos svg{ width:19px; height:19px; color:var(--madeira-esc); flex:none; }
.contactos-diretos a{ color:var(--carvao); text-decoration:none; border-bottom:1px solid transparent; transition:border-color var(--transicao); }
.contactos-diretos a:hover{ border-bottom-color:var(--madeira); }

.formulario{ background:rgba(255,255,255,.05); border:1px solid var(--linha-clara); border-radius:var(--raio); padding:2rem; }
.formulario--claro{ background:var(--branco); border-color:var(--linha); }
.campo{ margin-bottom:1.1rem; }
.campo-duplo{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.campo label{ display:block; font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; color:var(--pedra); margin-bottom:.45rem; }
.campo input,.campo select,.campo textarea{ width:100%; font-family:var(--sans); font-size:.95rem; color:var(--carvao);
  background:var(--areia); border:1px solid var(--linha); border-radius:var(--raio); padding:.8rem .95rem;
  transition:border-color var(--transicao), background var(--transicao); }
.campo textarea{ resize:vertical; min-height:110px; }
.campo input::placeholder,.campo textarea::placeholder{ color:var(--pedra-clara); }
.campo input:focus,.campo select:focus,.campo textarea:focus{ outline:none; border-color:var(--madeira); background:#fff; }
.campo input[aria-invalid="true"],.campo textarea[aria-invalid="true"]{ border-color:#C9503A; }
.erro{ display:block; min-height:1.1rem; font-size:.78rem; color:#C9503A; margin-top:.3rem; }

.rgpd{ display:flex; align-items:flex-start; gap:.7rem; flex-wrap:wrap; margin:.5rem 0 1.4rem;
  font-size:.82rem; line-height:1.5; color:var(--pedra); cursor:pointer; }
.rgpd input{ margin-top:.25rem; accent-color:var(--madeira); flex:none; }
.rgpd .erro{ flex-basis:100%; }

.formulario button[type="submit"]:disabled{ opacity:.6; cursor:wait; transform:none; }
.form-estado{ margin:1rem 0 0; font-size:.9rem; min-height:1.4rem; }
.form-estado.ok{ color:#2F7D4F; }
.form-estado.ko{ color:#C9503A; }

/* ── rodapé ──────────────────────────────────────────── */
.rodape{ background:var(--carvao-2); color:rgba(255,255,255,.62); padding:4rem 0 2rem; font-size:.88rem; }
.rodape__interior{ display:flex; flex-wrap:wrap; gap:2.5rem; justify-content:space-between; padding-bottom:2.5rem; border-bottom:1px solid var(--linha-clara); }
.rodape strong{ display:block; font-family:var(--sans); font-size:1rem; font-weight:600; letter-spacing:.19em; color:#fff; margin-bottom:.7rem; }
.rodape p{ margin:0 0 .3rem; color:inherit; font-size:.85rem; }
.rodape a{ text-decoration:none; transition:color var(--transicao); }
.rodape a:hover{ color:#fff; }
.rodape__ligacoes{ display:grid; grid-template-columns:repeat(2,auto); gap:.6rem 2.5rem; align-content:start; }
.rodape__base{ display:flex; flex-wrap:wrap; gap:.5rem 2rem; justify-content:space-between; padding-top:1.5rem; font-size:.78rem; }
.rodape__base p{ margin:0; font-size:.78rem; }

/* ── WhatsApp flutuante ──────────────────────────────── */
.wa-flutuante{ position:fixed; right:1.2rem; bottom:1.2rem; z-index:90; width:54px; height:54px; border-radius:50%;
  display:grid; place-items:center; color:#fff; background:#1FA855; box-shadow:0 8px 26px rgba(31,168,85,.4); transition:transform var(--transicao); }
.wa-flutuante svg{ width:28px; height:28px; }
.wa-flutuante:hover{ transform:scale(1.08); }

/* ── lightbox ────────────────────────────────────────── */
.lightbox{ position:fixed; inset:0; z-index:200; background:rgba(14,17,24,.95); backdrop-filter:blur(4px);
  display:grid; place-items:center; padding:3.5rem 1rem; animation:fade .25s both; }
.lightbox[hidden]{ display:none; }
@keyframes fade{ from{opacity:0} to{opacity:1} }
.lightbox__figura{ margin:0; max-width:min(1400px,94vw); max-height:100%; display:flex; flex-direction:column; gap:.9rem; }
.lightbox__figura img{ max-width:100%; max-height:78vh; object-fit:contain; margin-inline:auto; border-radius:2px; }
.lightbox__figura figcaption{ color:rgba(255,255,255,.8); font-size:.9rem; text-align:center; }
.lightbox__fechar,.lightbox__nav{ position:absolute; background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.16);
  color:#fff; cursor:pointer; border-radius:50%; display:grid; place-items:center; transition:background var(--transicao); }
.lightbox__fechar:hover,.lightbox__nav:hover{ background:rgba(255,255,255,.22); }
.lightbox__fechar{ top:1.1rem; right:1.1rem; width:44px; height:44px; font-size:1.7rem; line-height:1; }
.lightbox__nav{ top:50%; transform:translateY(-50%); width:50px; height:50px; font-size:2rem; line-height:1; padding-bottom:5px; }
.lightbox__nav--ant{ left:1.1rem; } .lightbox__nav--seg{ right:1.1rem; }
.lightbox__contador{ position:absolute; bottom:1.3rem; left:50%; transform:translateX(-50%); color:rgba(255,255,255,.6); font-size:.82rem; letter-spacing:.1em; }
body.sem-scroll{ overflow:hidden; }

/* ── revelação ao scroll ─────────────────────────────── */
html.js .revelar{ opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s cubic-bezier(.22,.61,.36,1); }
html.js .revelar.visivel{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ html.js .revelar{ opacity:1; transform:none; } }

/* ═══════════ RESPONSIVO ═══════════ */
@media (max-width:1024px){
  .tres-vias{ grid-template-columns:1fr; gap:2.8rem; }
  .cartoes-inv{ grid-template-columns:1fr; }
  .passos{ grid-template-columns:repeat(2,1fr); gap:2.2rem; }
  .numeros{ grid-template-columns:repeat(2,1fr); }
  .destaque-projeto{ grid-template-columns:1fr; }
  .galeria{ grid-auto-rows:10rem; }
}

@media (max-width:860px){
  .navegacao{ position:fixed; inset:76px 0 auto 0; flex-direction:column; align-items:stretch; gap:0;
    background:#fff; padding:1rem clamp(1.15rem,4vw,2.5rem) 2rem; border-bottom:1px solid var(--linha);
    box-shadow:var(--sombra); transform:translateY(-130%); transition:transform var(--transicao); visibility:hidden; }
  .navegacao.aberta{ transform:none; visibility:visible; }
  .navegacao a{ color:var(--carvao); padding:.95rem 0; border-bottom:1px solid var(--linha); font-size:1rem; }
  .navegacao .botao{ margin-top:1.2rem; border-bottom:0; justify-content:center; color:#fff; }
  .hamburguer{ display:flex; }

  .grelha-2{ grid-template-columns:1fr; gap:2.5rem; }
  .galeria{ grid-template-columns:repeat(2,1fr); }
  .inv-cta{ flex-direction:column; align-items:flex-start; }
  .rodape__interior{ flex-direction:column; gap:2rem; }
}

@media (max-width:560px){
  .passos{ grid-template-columns:1fr; }
  .numeros{ grid-template-columns:1fr; }
  .galeria{ grid-template-columns:1fr; grid-auto-rows:14rem; }
  .g-item--largo{ grid-column:span 1; }
  .campo-duplo{ grid-template-columns:1fr; gap:0; }
  .sobre-dados{ grid-template-columns:1fr; }
  .formulario{ padding:1.5rem; }
  .hero{ min-height:auto; padding:7.5rem 0 4rem; }
  .hero__seta{ display:none; }
  .lightbox__nav{ width:42px; height:42px; font-size:1.6rem; }
  .lightbox__nav--ant{ left:.5rem; } .lightbox__nav--seg{ right:.5rem; }
  .rodape__ligacoes{ grid-template-columns:1fr; }
}
