/* RESET */
* { margin:0; padding:0; box-sizing:border-box; }
body { font-family: 'Roboto', sans-serif; color:#333; line-height:1.6; }

/* CONTAINER */
.container { width:90%; max-width:1200px; margin:0 auto; padding:20px; }

/* HEADER */
header { display:flex; justify-content:space-between; align-items:center; padding:15px 0; background:#004080; color:#fff; }
header .logo { height:50px; }
header nav ul { list-style:none; display:flex; }
header nav ul li { margin-left:20px; }
header nav ul li a { color:#fff; text-decoration:none; font-weight:bold; }

/* HERO HOME */
.hero { background:#e6f2ff; text-align:center; padding:80px 20px; }
.hero h1 { font-size:2.5em; margin-bottom:20px; color:#004080; }
.hero p { font-size:1.2em; margin-bottom:30px; }
.btn { background:#004080; color:#fff; padding:10px 25px; text-decoration:none; border-radius:5px; transition:0.3s; }
.btn:hover { background:#0066cc; }

/* SECTIONS */
section { padding:60px 0; }
.section-light { background:#f9f9f9; }
section h2 { text-align:center; margin-bottom:40px; color:#004080; }

/* IMÓVEIS EM GRID – máximo 2 colunas */
.imoveis {
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* máximo 2 colunas no desktop */
  gap: 25px;
  justify-items: center;
  background: #fff;
  padding: 30px;
  border-radius: 8px;
}

/* CADA IMÓVEL */
.imovel {
  display: flex;
  flex-direction: column;
  align-items: center;
  transition: transform 0.3s, box-shadow 0.3s;
}

.imovel:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.15);
}

.imovel h3 {
  margin-top: 15px;
  text-align: center;
}

/* GALERIA */
.gallery {
  position: relative;
  width: 100%;
  max-width: 380px;
  border-radius: 8px;
  overflow: hidden;
}

.gallery img {
  width: 100%;
  border-radius: 8px;
  display: none;
  transition: transform 0.3s ease;
}

.gallery img.active {
  display: block;
}

.gallery img:hover {
  transform: scale(1.05);
}

/* ARROWS */
.gallery button {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0,0,0,0.6);
  color: #fff;
  border: none;
  font-size: 22px;
  padding: 10px 14px;
  cursor: pointer;
  border-radius: 50%;
}

.gallery .prev { left: 10px; }
.gallery .next { right: 10px; }

.gallery button:hover {
  background: rgba(0,0,0,0.85);
}

/* RESPONSIVO */
@media(max-width:900px) {
  .imoveis { grid-template-columns: 1fr; } /* tablet e mobile = 1 coluna */
}

@media(max-width:600px) {
  header nav ul { flex-direction:column; text-align:center; }
  header nav ul li { margin:10px 0; }
}

/* FOOTER */
footer { background:#f4f4f4; text-align:center; padding:20px 0; }

/* SERVIÇOS EM CARTÕES COM ÍCONES */
#servicos .servico {
  background: #fff;
  padding: 25px;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  transition: transform 0.3s, box-shadow 0.3s;
  text-align: center;
}

#servicos .servico:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.15);
}

#servicos .servico h3 {
  margin-bottom: 10px;
  color: #004080;
}

#servicos .servico p {
  font-size: 1em;
}

/* Ícones */
#servicos .servico i {
  font-size: 40px;
  color: #0066cc;
  margin-bottom: 15px;
  display: block;
}

/* Layout responsivo serviços */
#servicos .container {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

@media(max-width:900px) {
  #servicos .container {
    grid-template-columns: 1fr; /* 1 coluna no tablet/mobile */
  }
}

/* CONTACTO CENTRALIZADO */
#contacto {
  text-align: center;
}

#contacto p {
  margin-top: 10px;
  font-size: 1.1em;
}
