/* =================== */
/* VARIÁVEIS DE ESTILO */
/* =================== */
:root {
  --azul-petroleo: #093745;
  --dourado-cobre: #b9854a;
  --cinza-claro: #f7f7f7;
  --fonte-titulo: 'Hammersmith One', sans-serif;
  --fonte-texto: 'Josefin Sans', sans-serif;
}

/* ======== */
/* GLOBAL   */
/* ======== */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--fonte-texto);
  background-color: var(--cinza-claro);
  color: var(--azul-petroleo);
  line-height: 1.6;
}
img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; }
.container { max-width: 1200px; margin: auto; padding: 0 2rem; }

/* Acessibilidade de foco */
a:focus-visible, button:focus-visible {
  outline: 3px solid rgba(185,133,74,.35);
  outline-offset: 2px;
}

/* ============ */
/* NAVBAR FIXO  */
/* ============ */
.navbar {
  background-color: #fff;
  position: fixed; top: 0; width: 100%;
  box-shadow: 0 2px 10px rgba(0,0,0,.05);
  z-index: 1000;
}
.navbar .container {
  display: flex; justify-content: space-between; align-items: center;
  padding: 1rem 2rem;
}
.logo img { height: 65px; display: block; }

.nav-menu { list-style: none; display: flex; gap: 2rem; }
.nav-menu li a { font-weight: 500; transition: color .25s; }
.nav-menu li a:hover { color: var(--dourado-cobre); }

.menu-toggle {
  display: none; font-size: 2rem; cursor: pointer; color: var(--azul-petroleo);
  background: transparent; border: 0;
}

@media (max-width: 768px) {
  .menu-toggle { display: block; }
  .nav-menu {
    display: none; position: absolute; top: 70px; right: 20px;
    background-color: #fff; padding: 1rem; border-radius: 8px;
    box-shadow: 0 10px 25px rgba(0,0,0,.05);
    flex-direction: column; gap: 1rem; z-index: 999;
  }
  .nav-menu.active { display: flex; }
}

/* ============== */
/* HERO / HOME    */
/* ============== */
.hero-section { padding-top: 120px; padding-bottom: 4rem; }
.hero-content {
  display: flex; flex-direction: row; align-items: center; gap: 3rem; flex-wrap: wrap;
  padding: 2rem;
}
.hero-text { flex: 1; }
.hero-text h1 {
  font-family: var(--fonte-titulo);
  font-size: 2.8rem; margin-bottom: 1rem; color: var(--azul-petroleo);
}
.hero-text p { font-size: 1.2rem; margin-bottom: 2rem; color: #333; }

.cta-button {
  background-color: var(--dourado-cobre); color: #fff;
  padding: .9rem 2rem; border-radius: 6px; font-weight: 700;
  transition: all .25s ease; display: inline-block;
}
.cta-button:hover { background-color: #a8733c; transform: translateY(-1px); }

.hero-image { flex: 1; min-width: 300px; border-radius: 10px; overflow: hidden;
  box-shadow: 0 10px 25px rgba(0,0,0,.1);
}

@media (max-width: 768px) {
  .hero-content { flex-direction: column-reverse; text-align: center; }
  .nav-menu { gap: 1rem; font-size: .95rem; }
  .hero-text h1 { font-size: 2rem; }
  .hero-text p { font-size: 1rem; }
}

/* ===================== */
/* DESTAQUES (6 cards)   */
/* ===================== */
.destaques-section { background: #fff; padding: 4rem 2rem; }
.titulo-secao {
  text-align: center; font-family: var(--fonte-titulo);
  font-size: 2.2rem; color: var(--azul-petroleo); margin-bottom: 3rem;
}
.destaques-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2rem; max-width: 1200px; margin: auto;
}
.destaque-coluna {
  background: var(--cinza-claro); border-radius: 12px; padding: 2rem; text-align: center;
  box-shadow: 0 10px 25px rgba(0,0,0,.05); transition: transform .25s ease, box-shadow .25s ease;
}
.destaque-coluna:hover { transform: translateY(-4px); }
.destaque-coluna img {
  width: 100%; height: 200px; object-fit: cover; border-radius: 8px; margin-bottom: 1rem;
}
.destaque-coluna h3 {
  font-family: var(--fonte-titulo); color: var(--azul-petroleo);
  font-size: 1.3rem; margin-bottom: .6rem;
}
.destaque-coluna p { font-size: 1rem; color: #333; margin-bottom: 1rem; line-height: 1.5; }
.btn-ver {
  display: inline-block; background: var(--dourado-cobre); color: #fff;
  padding: .6rem 1.4rem; border-radius: 6px; font-weight: 700; transition: background .25s;
}
.btn-ver:hover { background: #a8733c; }

/* ============== */
/* SOBRE (home)   */
/* ============== */
.sobre-section { background: #fff; padding: 4rem 2rem; }
.sobre-content {
  display: flex; gap: 3rem; align-items: center; justify-content: center;
  max-width: 1200px; margin: auto; flex-wrap: wrap;
}
.sobre-img { flex: 1; min-width: 280px; max-width: 400px; }
.sobre-img img { width: 100%; border-radius: 8px; box-shadow: 0 10px 25px rgba(0,0,0,.1); }
.sobre-texto { flex: 1; min-width: 280px; padding: 1rem 0; }
.sobre-texto h2 { font-family: var(--fonte-titulo); font-size: 2.2rem; margin-bottom: 1rem; color: var(--azul-petroleo); }
.sobre-texto p { font-size: 1.1rem; line-height: 1.8; margin-bottom: 2rem; color: #333; }
.botoes-sobre { display: flex; gap: 1rem; flex-wrap: wrap; }
.cta-secundario {
  background: transparent; color: var(--azul-petroleo); border: 2px solid var(--dourado-cobre);
  padding: .8rem 1.6rem; border-radius: 6px; font-weight: 700; transition: all .25s ease; display: inline-block;
}
.cta-secundario:hover { background: var(--dourado-cobre); color: #fff; transform: translateY(-1px); }
@media (max-width: 768px) {
  .sobre-content { flex-direction: column; text-align: center; }
  .botoes-sobre { justify-content: center; }
}

/* ================= */
/* SERVIÇOS (home)   */
/* ================= */
.servicos-section { background: var(--cinza-claro); padding: 4rem 2rem; }
.servicos-grid {
  display: flex; flex-wrap: wrap; gap: 2rem; justify-content: center;
  max-width: 1200px; margin: auto;
}
.link-servico { display: block; color: inherit; }
.servico-card {
  background: #fff; border-radius: 12px; padding: 2rem; max-width: 320px; flex: 1; text-align: center;
  box-shadow: 0 10px 20px rgba(0,0,0,.05); transition: transform .25s ease, box-shadow .25s ease;
}
.servico-card:hover { transform: translateY(-4px); }
.servico-card img { width: 60px; height: 60px; margin: 0 auto 1rem; object-fit: contain; }
.servico-card h3 { font-size: 1.2rem; margin-bottom: .8rem; color: var(--azul-petroleo); font-weight: 700; }
.servico-card p { font-size: 1rem; color: #333; line-height: 1.6; }

@media (max-width: 768px) { .servico-card { max-width: 100%; } }

/* ===================== */
/* ANGARIAÇÃO (cta home) */
/* ===================== */
.angariacao-section {
  background: var(--azul-petroleo); color: #fff; padding: 5rem 2rem; text-align: center; position: relative; z-index: 1;
}
.angariacao-conteudo { max-width: 800px; margin: auto; }
.angariacao-conteudo h2 { font-family: var(--fonte-titulo); font-size: 2.2rem; margin-bottom: 1rem; }
.angariacao-conteudo p { font-size: 1.1rem; line-height: 1.7; margin-bottom: 2rem; color: #f0f0f0; }
.btn-angariacao {
  background: var(--dourado-cobre); color: #fff; padding: .9rem 2rem; border-radius: 6px; font-weight: 700; font-size: 1rem;
  transition: all .25s ease; display: inline-block;
}
.btn-angariacao:hover { background: #a8733c; transform: translateY(-1px); }

/* =============== */
/* RODAPÉ MINIMAL  */
/* =============== */
.rodape { background: var(--azul-petroleo); color: #e0e0e0; padding: 2rem 1rem; font-size: .9rem; text-align: center; }
.rodape-conteudo { max-width: 1200px; margin: auto; }
.rodape a { color: var(--dourado-cobre); font-weight: 500; }
.rodape a:hover { text-decoration: underline; }

/* =============================== */
/* PÁGINA SOBRE – INSTITUCIONAL    */
/* =============================== */
.sobre-institucional { padding: 7rem 2rem 5rem; background: #fff; }
.sobre-institucional-content {
  display: flex; align-items: center; justify-content: center; max-width: 1200px; margin: auto;
  gap: 4rem; flex-wrap: wrap;
}
.sobre-institucional-texto { flex: 1; min-width: 300px; }
.sobre-institucional-texto h1 { font-family: var(--fonte-titulo); font-size: 2.2rem; color: var(--azul-petroleo); margin-bottom: 1rem; }
.sobre-institucional-texto p { font-size: 1.1rem; color: #333; margin-bottom: 1.5rem; line-height: 1.8; }
.sobre-institucional-foto { flex: 1; min-width: 280px; text-align: center; }
.sobre-institucional-foto img { width: 100%; max-width: 400px; border-radius: 12px; box-shadow: 0 10px 25px rgba(0,0,0,.1); }
.sobre-institucional-texto .cta-button { background: var(--dourado-cobre); color: #fff; padding: .8rem 1.6rem; border-radius: 6px; font-weight: 700; transition: all .25s ease; display: inline-block; }
.sobre-institucional-texto .cta-button:hover { background: #a8733c; transform: translateY(-1px); }
@media (max-width: 768px) { .sobre-institucional-content { flex-direction: column-reverse; text-align: center; } }

/* ======================== */
/* PÁGINA SERVIÇOS          */
/* ======================== */
.servicos-pagina { padding: 7rem 2rem 5rem; background: #fff; }
.grid-servicos { display: flex; flex-direction: column; gap: 2rem; margin-top: 3rem; }
.card-servico {
  background: var(--cinza-claro); padding: 2.5rem 2rem; border-radius: 12px;
  box-shadow: 0 10px 25px rgba(0,0,0,.05); transition: transform .25s ease;
}
.card-servico:hover { transform: translateY(-4px); }
.card-servico h2 { font-size: 1.3rem; color: var(--azul-petroleo); margin-bottom: .8rem; font-family: var(--fonte-titulo); }
.card-servico p { font-size: 1.05rem; color: #333; line-height: 1.7; }
.cta-centro { text-align: center; margin-top: 4rem; }
.cta-centro .cta-button { background: var(--dourado-cobre); color: #fff; padding: .9rem 2rem; border-radius: 6px; font-weight: 700; transition: all .25s ease; display: inline-block; }
.cta-centro .cta-button:hover { background: #a8733c; transform: translateY(-1px); }

/* ======================== */
/* PÁGINA ANGARIAÇÃO        */
/* ======================== */
.angariacao-pagina { padding: 7rem 2rem 5rem; background: #fff; }
.angariacao-layout { display: flex; gap: 3rem; max-width: 1200px; margin: auto; flex-wrap: wrap; align-items: flex-start; }
.angariacao-texto { flex: 1; min-width: 300px; }
.angariacao-texto h1 { font-family: var(--fonte-titulo); font-size: 2.2rem; margin-bottom: 1rem; color: var(--azul-petroleo); }
.angariacao-texto p { font-size: 1.1rem; line-height: 1.8; color: #333; margin-bottom: 1.2rem; }
.angariacao-formulario {
  flex: 1; min-width: 320px; background: var(--cinza-claro); padding: 2rem; border-radius: 10px; box-shadow: 0 10px 25px rgba(0,0,0,.05);
}
.angariacao-formulario h2 { font-family: var(--fonte-titulo); font-size: 1.5rem; margin-bottom: 1.5rem; color: var(--azul-petroleo); }
.angariacao-formulario label { display: block; font-size: .95rem; margin-bottom: .3rem; color: #222; font-weight: 500; }
.angariacao-formulario input, .angariacao-formulario select, .angariacao-formulario textarea {
  width: 100%; padding: .7rem; border-radius: 6px; border: 1px solid #ccc; margin-bottom: 1rem; font-family: var(--fonte-texto); font-size: 1rem;
}
.angariacao-formulario textarea { resize: vertical; }
.angariacao-formulario .cta-button { width: 100%; background: var(--dourado-cobre); color: #fff; padding: .9rem; border: none; border-radius: 6px; font-weight: 700; font-size: 1rem; cursor: pointer; transition: background .25s; }
.angariacao-formulario .cta-button:hover { background: #a8733c; }

/* ======================== */
/* PÁGINA CONTACTO          */
/* ======================== */
.contacto-pagina { padding: 7rem 2rem 5rem; background: #fff; }
.contacto-layout { display: flex; gap: 3rem; max-width: 1200px; margin: auto; flex-wrap: wrap; align-items: flex-start; }
.contacto-texto { flex: 1; min-width: 300px; }
.contacto-texto h1 { font-family: var(--fonte-titulo); font-size: 2.2rem; margin-bottom: 1rem; color: var(--azul-petroleo); }
.contacto-texto p { font-size: 1.1rem; line-height: 1.8; color: #333; margin-bottom: 1.5rem; }
.btn-whatsapp {
  display: inline-block; background: #a8733c; color: #fff; font-weight: 700; font-size: 1rem;
  padding: .9rem 1.6rem; border-radius: 6px; transition: background .25s;
}
.btn-whatsapp:hover { background: #a8733c; }
.contacto-formulario {
  flex: 1; min-width: 320px; background: var(--cinza-claro); padding: 2rem; border-radius: 10px; box-shadow: 0 10px 25px rgba(0,0,0,.05);
}
.contacto-formulario h2 { font-family: var(--fonte-titulo); font-size: 1.5rem; margin-bottom: 1.5rem; color: var(--azul-petroleo); }
.contacto-formulario label { display: block; font-size: .95rem; margin-bottom: .3rem; color: #222; font-weight: 500; }
.contacto-formulario input, .contacto-formulario select, .contacto-formulario textarea {
  width: 100%; padding: .7rem; border-radius: 6px; border: 1px solid #ccc; margin-bottom: 1rem; font-family: var(--fonte-texto); font-size: 1rem;
}
.contacto-formulario textarea { resize: vertical; }
.contacto-formulario .cta-button { width: 100%; background: var(--dourado-cobre); color: #fff; padding: .9rem; border: none; border-radius: 6px; font-weight: 700; font-size: 1rem; cursor: pointer; transition: background .25s; }
.contacto-formulario .cta-button:hover { background: #a8733c; }

/* ===================== */
/* PÁGINA OBRIGADO       */
/* ===================== */
.pagina-obrigado { padding: 7rem 2rem 5rem; background: #fff; text-align: center; }
.obrigado-centro { max-width: 800px; margin: auto; }
.pagina-obrigado h1 { font-family: var(--fonte-titulo); font-size: 2.4rem; color: var(--azul-petroleo); margin-bottom: 1rem; }
.pagina-obrigado p { font-size: 1.2rem; color: #333; margin-bottom: 2rem; }
.pagina-obrigado .cta-button {
  background: var(--dourado-cobre); color: #fff; padding: .9rem 2rem; border-radius: 6px; font-weight: 700; transition: background .25s;
}
.pagina-obrigado .cta-button:hover { background: #a8733c; }

/* =============== */
/* Botão flutuante */
/* =============== */
.whats-float{
  position: fixed; right: 18px; bottom: 18px; z-index: 1100;
  width: 56px; height: 56px; display:flex; align-items:center; justify-content:center;
  border-radius: 50%; background:#25D366; color:#fff; font-size:24px; box-shadow:0 10px 25px rgba(0,0,0,.15);
  transition: transform .2s;
}
.whats-float:hover{ transform: translateY(-2px); }
@media (max-width: 480px){ .whats-float{ width: 52px; height: 52px; } }

/* Subtítulo curto abaixo do h1 em Serviços */
.servicos-intro{
  text-align:center;
  color:#333;
  max-width:820px;
  margin: .5rem auto 2rem;
  font-size:1.05rem;
  line-height:1.7;
}

/* Opcional: dá um respiro extra ao topo da página Serviços */
.servicos-pagina{ padding: 8rem 2rem 5rem; }

/* ================= IMÓVEL (VALBOM) ================= */
:root{
  --azul-50:#f2f7f9;
}

/* Container base, se ainda não existir */
.container{ max-width:1100px; margin:0 auto; padding:0 2rem; }

/* HERO do imóvel */
.hero-imovel{
  position:relative; min-height:58vh; display:flex; align-items:center;
  background-size:cover; background-position:center; color:#fff;
}
.hero-imovel .overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(7,21,42,.55), rgba(7,21,42,.25));
}
.hero-imovel__content{ position:relative; z-index:1; }
.hero-imovel .eyebrow{
  display:inline-block; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--dourado-cobre); margin-bottom:.4rem
}
.hero-imovel h1{
  font-family:var(--fonte-titulo, 'Hammersmith One', system-ui);
  font-size:2.3rem; margin:.2rem 0 .2rem;
}
.hero-imovel .preco{
  font-size:1.6rem; font-weight:800; margin-bottom:.8rem
}
.hero-imovel__ctas{ display:flex; gap:1rem; flex-wrap:wrap }

/* Intro: descrição + ficha */
.imovel-intro{
  display:grid; grid-template-columns: 1.7fr .9fr; gap:2rem; padding:2rem 2rem 2.4rem;
}
.intro-texto p{ color:#333; line-height:1.85; margin-bottom:1rem }
.intro-ficha{
  background:var(--azul-50); border:1px solid rgba(9,55,69,.06);
  border-radius:14px; padding:1.2rem; box-shadow:0 10px 24px rgba(0,0,0,.06)
}
.intro-ficha h3{ margin:0 0 .6rem; color:var(--azul-petroleo) }
.intro-ficha ul{ list-style:none; margin:0; padding:0 }
.intro-ficha li{ padding:.35rem 0; border-bottom:1px solid rgba(9,55,69,.06) }
.intro-ficha li:last-child{ border-bottom:none }

/* Galeria + Lightbox CSS-only */
.galeria{ padding:1rem 2rem 2.6rem }
.galeria h2{ text-align:left; color:var(--azul-petroleo); margin-bottom:.8rem }
.galeria-grid{
  display:grid; gap:1rem;
  grid-template-columns: repeat(auto-fit, minmax(220px,1fr));
}
.galeria-grid img{
  width:100%; height:220px; object-fit:cover; border-radius:10px;
  box-shadow:0 8px 20px rgba(0,0,0,.06); transition:transform .25s, box-shadow .25s;
}
.galeria-grid a:hover img{ transform:translateY(-2px); box-shadow:0 14px 30px rgba(0,0,0,.12) }

/* Lightbox via :target */
.lightbox{
  position:fixed; inset:0; background:rgba(0,0,0,.82);
  display:none; align-items:center; justify-content:center; z-index:1000; padding:2rem;
}
.lightbox img{
  width: min(92vw, 1400px); height:auto; border-radius:12px;
  box-shadow:0 20px 60px rgba(0,0,0,.4)
}
.lightbox:target{ display:flex }
.lightbox .fechar{
  position:absolute; top:12px; right:16px; color:#fff; font-size:2rem; text-decoration:none; line-height:1
}

/* Formulário do imóvel */
.form-imovel{ padding:0 2rem 3.2rem }
.form-imovel h2{ color:var(--azul-petroleo); margin-bottom:.8rem }
.form-imovel form{
  background:var(--azul-50); border-radius:14px; border-left:4px solid var(--dourado-cobre);
  box-shadow:0 12px 26px rgba(0,0,0,.06); padding:1.4rem; position:relative; overflow:hidden
}
.form-imovel label{ display:block; font-weight:700; color:#1f2f35; margin-bottom:.3rem }
.form-imovel input, .form-imovel select, .form-imovel textarea{
  width:100%; background:#fff; border:1px solid #cfd9df; border-radius:8px; padding:.75rem; margin-bottom:1rem; font:inherit
}
.form-imovel textarea{ min-height:110px; resize:vertical }
.linha-dupla{ display:flex; gap:1rem }
.linha-dupla > div{ flex:1 }
.form-ctas{ display:flex; gap:1rem; flex-wrap:wrap }

/* Reuso de botões globais */
.cta-button{
  background:var(--dourado-cobre); color:#fff; padding:.9rem 1.1rem; border-radius:10px;
  text-decoration:none; font-weight:800; display:inline-block
}
.cta-button:hover{ background:#a8733c }
.cta-secundario{
  background:#fff; color:var(--azul-petroleo); border:1px solid rgba(9,55,69,.2);
  padding:.85rem 1rem; border-radius:10px; text-decoration:none; font-weight:800; display:inline-block
}
.cta-secundario:hover{ background:#f7fafb }

/* Responsivo */
@media (max-width: 980px){
  .imovel-intro{ grid-template-columns: 1fr; }
  .galeria-grid img{ height:200px }
  .linha-dupla{ flex-direction:column }
}

/* ===== Imóvel - Mosaico no HERO ===== */
.hero-imovel.is-mosaic{
  padding: 2rem 0 1rem;
  background: #fff;
}
.hero-imovel.is-mosaic .container{
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 1.8rem;
  align-items: center;
}
@media (max-width: 980px){
  .hero-imovel.is-mosaic .container{ grid-template-columns: 1fr; }
}
.mosaic{
  position: relative;
  display: grid;
  grid-template-columns: 2fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: .8rem;
  height: min(56vh, 560px);
}
.tile{
  position: relative;
  border-radius: 14px;
  background-size: cover;
  background-position: center;
  box-shadow: 0 16px 36px rgba(0,0,0,.12);
  overflow: hidden;
  text-decoration: none;
}
.tile::after{
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.25) 100%);
  opacity: .0; transition: opacity .25s;
}
.tile:hover::after{ opacity: .6; }
.tile .tile-overlay{
  position:absolute; left:12px; bottom:10px; z-index:2;
  color:#fff; font-weight:800; font-size:.95rem;
  background: rgba(7,21,42,.55); padding:.35rem .55rem; border-radius:8px;
}
.tile-lg{ grid-row: 1 / span 2; }


.badge-fotos{
  position:absolute; top:10px; right:10px; z-index:3;
  background: var(--dourado-cobre); color:#fff; text-decoration:none;
  font-weight:800; border-radius:999px; padding:.45rem .7rem; font-size:.9rem;
  box-shadow: 0 8px 20px rgba(0,0,0,.15);
}

/* Conteúdo à direita do mosaico */
.hero-imovel__content .eyebrow{
  display:inline-block; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--dourado-cobre); margin-bottom:.4rem;
}
.hero-imovel__content h1{
  font-family: var(--fonte-titulo, 'Hammersmith One', system-ui);
  font-size: 2.2rem; color: var(--azul-petroleo); margin: .2rem 0 .2rem;
}
.hero-imovel__content .preco{ font-size:1.45rem; font-weight:800; margin-bottom:.8rem; color:#222; }
.hero-imovel__ctas{ display:flex; gap:1rem; flex-wrap:wrap }

/* ===== Galeria thumbs ===== */
.galeria{ padding: 1rem 2rem 2.6rem; }
.galeria h2{ color: var(--azul-petroleo); margin-bottom:.8rem; }
.galeria-grid{
  display:grid; gap:1rem;
  grid-template-columns: repeat(auto-fit, minmax(220px,1fr));
}
.galeria-grid img{
  width:100%; height:220px; object-fit:cover; border-radius:10px;
  box-shadow:0 8px 20px rgba(0,0,0,.06); transition:transform .25s, box-shadow .25s;
}
.galeria-grid a:hover img{ transform:translateY(-2px); box-shadow:0 14px 30px rgba(0,0,0,.12) }

/* ===== Lightbox com navegação Prev/Next ===== */
.lightbox{
  position:fixed; inset:0; background:rgba(0,0,0,.86);
  display:none; align-items:center; justify-content:center; z-index:1000; padding:2rem;
}
.lightbox:target{ display:flex; }
.lightbox img{
  width:min(92vw,1400px); height:auto; border-radius:12px; box-shadow:0 20px 60px rgba(0,0,0,.4)
}
.lightbox .fechar{
  position:absolute; top:12px; right:16px; color:#fff; font-size:2rem; text-decoration:none; line-height:1
}
.lightbox .nav{
  position:absolute; top:50%; transform:translateY(-50%);
  color:#fff; text-decoration:none; font-size:3rem; font-weight:800; line-height:1;
  padding:.2rem .5rem; opacity:.85;
}
.lightbox .nav:hover{ opacity:1; }
.lightbox .nav.prev{ left:20px; }
.lightbox .nav.next{ right:20px; }

/* ===== Formulário (reuso do bloco anterior) ===== */
.container{ max-width:1100px; margin:0 auto; padding:0 2rem; }
.form-imovel{ padding:0 2rem 3.2rem }
.form-imovel h2{ color:var(--azul-petroleo); margin-bottom:.8rem }
.form-imovel form{
  background:var(--azul-50); border-radius:14px; border-left:4px solid var(--dourado-cobre);
  box-shadow:0 12px 26px rgba(0,0,0,.06); padding:1.4rem; position:relative; overflow:hidden
}
.form-imovel label{ display:block; font-weight:700; color:#1f2f35; margin-bottom:.3rem }
.form-imovel input, .form-imovel select, .form-imovel textarea{
  width:100%; background:#fff; border:1px solid #cfd9df; border-radius:8px; padding:.75rem; margin-bottom:1rem; font:inherit
}
.form-imovel textarea{ min-height:110px; resize:vertical }
.linha-dupla{ display:flex; gap:1rem }
.linha-dupla > div{ flex:1 }
.form-ctas{ display:flex; gap:1rem; flex-wrap:wrap }

@media (max-width: 980px){
  .galeria-grid img{ height:200px }
  .linha-dupla{ flex-direction:column }
}

/* assets/css/style.css */
@media (max-width: 768px) {
 
  .nav-menu.active,
  .nav-menu.is-open { display: flex; }  /* <— acrescentar esta linha */
}

/* ===== Centralização mobile de layouts em coluna ===== */
@media (max-width: 980px) {
  .angariacao-layout,
  .contacto-layout {
    align-items: center;              /* em vez de flex-start no empilhamento */
  }
  .angariacao-texto .bloco,
  .contacto-texto .bloco,
  .angariacao-formulario,
  .contacto-formulario {
    margin-left: auto;
    margin-right: auto;               /* garante centralização */
  }
  /* heroes dessas páginas já são centralizados, mas reforçamos */
  .ang-hero .wrap,
  .cont-hero .wrap { text-align: center; }
}

/* ===== Centralização robusta no mobile ===== */
@media (max-width: 980px) {
  /* Qualquer seção em flex que vira coluna deve centralizar os filhos */
  .hero-content,
  .sobre-content,
  .angariacao-layout,
  .contacto-layout {
    flex-direction: column;
    align-items: center;         /* era flex-start em algumas páginas */
    text-align: center;          /* melhora títulos e parágrafos */
  }

  /* Garante que caixas internas não “puxem” à esquerda */
  .hero-text,
  .sobre-texto,
  .angariacao-texto .bloco,
  .angariacao-formulario,
  .contacto-texto .bloco,
  .contacto-formulario {
    margin-left: auto;
    margin-right: auto;
  }

  /* Menu mobile visível quando ativo */
  .nav-menu.active,
  .nav-menu.is-open {            /* cobre os dois nomes, se manter no JS */
    display: flex;
  }
}
