:root{
  --cinza_escuro: #333333;
  --cinza: #4D4D4D;
  --cinza_claro: #666666;
  --cinza_contactos: #F1F1F1;
  --vermelho: #C6021A;
  --branco: #FFFFFF;
  --preto: #000000;
}

/* ---------------------------------------------------  Header --------------------------------------------------- */

/* ---------------------- Desktop ----------------------*/

body{
  margin: auto;
  color: var(--branco);
}

h1,h3{
  font-family: 'DIN Pro Cond';
  font-weight: 500;
}

p{
  font-family: 'Open Sans';
  font-weight: normal;
  font-size: 15px;
}

.logotipo{width: 317px;}
.background_nav{background-color: var(--cinza_escuro);}
.pointer{cursor: pointer;}

header nav{
  margin-top: 10px;
  width: 795px;
  height: 70px;
  z-index: 1 !important;
}

header nav .nav-link{
  text-decoration: none;
  font-size: 18px !important;
  border-top: 3px solid transparent !important;
  font-family: 'DIN Pro Cond' !important;
  font-weight: 500;
  color: var(--cinza_claro) !important;
  padding: 25px 15px !important;
  cursor: default;
}

header nav a.active, header nav .nav-link:hover{border-top: 3px solid red !important;}
header nav a.active{color: var(--branco)!important;}

header nav .nav-link:hover{
  font-family: 'DIN Pro Cond' !important;
  font-weight: 700;
  font-size: 18px !important;
  color: var(--branco) !important;
  transition-duration: 0.3s;
}

header .dropdown-menu{margin-top: -15px !important;}

header nav .submenu{
  text-decoration: none;
  font-size: 18px !important;
  color: white !important;
  font-family: 'DIN Pro Cond' !important;
  font-weight: 500;
  padding: 5px 15px !important;
  cursor: default;
} 

header nav li .submenu:hover{
  font-family: 'DIN Pro Cond' !important;
  font-weight: bold;
  font-size: 18px !important;
  transition-duration: 0.3s;
  border-top: 0px !important;
  background-color: var(--cinza);
}

header .dropdown-divider{
  background-color: var(--branco) !important;
  width: 85%;
  margin: auto;
}

header nav .dropdown-menu{
  background-color: var(--cinza);
  color: var(--branco) !important;
}

header nav .dropdown-menu a{color: var(--branco) !important;}

header .carousel_position{
  margin-top: -35px;
  z-index: -1;
}

header .carousel_position img{
  height: 550px;
  opacity: rgba(0, 0, 0, 0.5);
}

header .carousel-caption{margin-left: 545px;}
header .carousel-caption h3{font-size: 38px;}
header .carousel-caption p{
  font-size: 15px;
  font-family: 'Montserrat';
  font-weight: 500;
}

header .carousel-caption hr{
  border: 2px solid var(--vermelho);
  width: 90px;
  opacity: 100%;
  margin-top: -1px;
}

/* ---------------------- Mobile ----------------------*/

/* ------------- Navbar ------------- */

header .mobile_nav_location{margin-top: 20px;}

header .logotipo_mobile{
  width: 250px;
  margin-top: 10px !important;
}

header .nav_mobile{height: 37px;}

header .nav_icon{
  margin-top: -3px;
  border: 0px !important;
  padding: 0px 16px !important;
}

header .navbar-toggler-icon{
  width: 25px !important;
  margin: auto !important;
}

header .navbar-toggler-icon:active{border: 0px !important;}

header button:focus{border: 0px !important;}


header .navbar-toggler:focus{
  border: 0px !important;
  box-shadow: 0px 0px transparent !important;
}


header .dropdown_mobile_background{background-color: var(--cinza);}

header .dropdown-divider{width: 96%;}

@media all and (width <= 1000px){

  #nav_mobile a{
    text-decoration: none !important;
    border: 0 !important;
  }

  #nav_icon:has(.show){justify-content: end !important;}
  #nav_localizacao{padding: 0px !important;}
  #nav_localizacao:has(.show),#nav_localizacao:has(.collapsing){
    flex-direction: column;
    text-align: left !important;
    margin-left: 0px !important;
  }

  #nav_mobile{
    width: 60px !important;
    margin-right: 25px !important;
  }

  #nav_mobile .botao-menu{
    background-image: url("../imagens/mobile/abrir-menu.svg");
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    width: 25px !important;
    height: 25px !important;
    border-radius: 0px;
    display: flex;
    justify-content: center;
    padding-top: 10px;
  }

  #nav_mobile .botao-menu.active{background-image: url("../imagens/fechar-menu.svg");}

  #nav_mobile:has(.show),#nav_mobile:has(.collapsing){width: 92vw !important;}

  header nav .nav-link{
    padding: 10px 5px !important;
    color: var(--branco) !important;
  }

  header nav .nav-link .active{
    color: var(--branco) !important;
    font-weight: bolder !important;
  }

  .mobile_hr{
    margin-bottom: 65px !important;
  }


/* ------------- Carrossel ------------- */

  .carousel-item .maxh_mobile{max-height: 200px !important;} 
  .carousel-caption{
    margin-left: -30px !important;
    margin-bottom: -30px;
  }
  
  header .carousel_position{margin-top: 30px;}
}

/* --------------------------------------------------- Main --------------------------------------------------- */

/* ---------------------- Desktop ----------------------*/

.margem_main{margin-bottom: 140px !important;}

main .altura_carrosel{
  height: 900px;
  max-width: 1280px !important;
  margin: auto !important;
}

main h1{
  color: var(--cinza);
  font-family: 'DIN Pro Cond' !important;
  font-weight: 500;
  font-size: 46px !important;
  margin-top: 90px;
  margin-left: 80px;
}

main hr{
  border: 2px solid var(--vermelho);
  width: 50px;
  opacity: 100%;
  margin-left: 83px;
  margin-bottom: 85px;
}

main a{cursor: default;}

main .carousel-item .grid{
  display: grid;
  grid-template-columns: repeat(2,1fr);
  grid-template-rows: repeat(2,1fr);
  gap: 20px !important;
  z-index: -1 !important;
}

main .carousel-item div img{
  width: 460px;
  height: 450px;
  z-index: -1 !important;
  object-fit: cover;
}

main .carousel-inner {overflow: hidden;}

main .carousel_padd{padding: 0px 180px 0px 160px !important;}

.carousel-item-start{padding: 0px 180px 0px 160px;}
.carousel-item-next{padding: 0px 180px 0px 160px;}

main .card_propriedades{
  width: 420px !important;
  height: 240px !important;
  background-color: rgba(0, 0, 0, 0.8);
  position: absolute;
  top: 375px;
  left: 425px;
  z-index: 1 !important;
}

main .card_propriedades h3{
  margin-top: 30px;
  margin-left: 65px;
  font-size: 30px;
}

main .card_propriedades hr{
  margin: 0px 0px 0px 65px;
  width: 35px;
}

main .carousel-indicators button{
  border: 2px solid var(--vermelho) !important;
  width: 15px !important;
  height: 15px !important;
  border-radius: 50% !important;
  margin-top: -72px !important;
  background-color: var(--branco) !important;
  opacity: 1 !important;
  cursor: default !important;
}

main .carousel-indicators .active{
  background-color: var(--vermelho) !important;
  border: 1px solid var(--vermelho) !important;
  cursor: default !important;
}

main .carousel-control-prev , .carousel-control-next{
  margin-top: 80px;
  cursor: default !important;
}

main .indicadores{height: 20px !important;}
main .card_propriedades .carousel-control-prev {margin-left: 52px !important;}
main .card_propriedades .carousel-control-next {margin-right: 52px !important;}

main .button_ver_mais{
  color: var(--branco) !important;
  background-color: var(--vermelho) !important;
  border: 1px solid var(--vermelho) !important;
  padding: 6px 25px !important;
  font-size: 10px !important;
  margin-top: 50px;
  cursor: pointer !important;
  position: relative;
  z-index: 2;
  cursor: default !important;
}

main .button_ver_mais:hover{
  color: var(--vermelho) !important;
  border: 2px solid var(--vermelho) !important;
  background-color: var(--branco) !important;
}

main .shadow_divisoria{
  box-shadow: 0px 3px 5px rgba(0,0,0,0.75) !important;
  clip-path: inset(0px 0px -15px 0px) !important;
  height: 200px;
}

.div_historial{height: 140px !important;}

.grid_projetos{
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 30px !important;
  z-index: -1 !important;
  padding: 0px 230px 0px 212px;
}

.grid_projetos img{
  width: 445px;
  height: 445px;
  z-index: -1 !important;
  object-fit: cover !important;
}

.back_img_projetos{
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  width: 370px !important;
}

.card_projetos{
  width: 240px !important;
  height: 90px !important;
  background-color: rgba(0, 0, 0, 0.61);
  padding: 15px;
  margin-top:  130px !important;
}

.projetos_botao{
  font-size: 10px;
  background-color: var(--vermelho);
  margin-top: 80px;
  margin-right: 25px;
  margin-bottom: 30px;
}

.projetos_botao:hover{
  background-color: var(--branco);
  color: var(--vermelho)!important;
  border: 2px solid var(--vermelho);
}
.projeto_especifico_row_alt{height: 230px !important;}

.projeto_especifico_margem{
  margin-top: 90px;
  margin-left: 0px;
}

.projeto_especifico_fs{
  font-size: 85px !important;
  margin: 75px 0px 0px 0px !important;
}

.projeto_especifico_hr{margin-left: 0px !important;}

.projeto_especifico_control_left{
  position: relative;
  z-index: 1;
  top: 28vw;
  left: 12vw;
  height: 20px;
}

.projeto_especifico_control_right{
  position: relative;
  z-index: 1;
  top: 28vw;
  right: 12vw;
  height: 20px;
}

.projeto_especifico_indicators{
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: -110px !important; /* ajuste conforme necessário */
  display: flex;
  justify-content: center;
  gap: 8px;
  margin: 0 auto;
  width: auto !important;
  transform: none !important; /* neutraliza translate-middle-x/start-50 */
  z-index: 3;
}



.galeria_p{
  display: block;
  width: 130px;
  height: 130px;
  background-image: url("../imagens/voltar-a-galeria.svg");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  cursor: pointer;
}

.visita_c{
  display: block;
  width: 130px;
  height: 130px;
  background-image: url("../imagens/marque-a-sua-visita.svg");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  cursor: pointer;
}

.partilhar_face{
  display: block;
  width: 150px;
  height: 150px;
  background-image: url("../imagens/partilhar-no-facebook.svg");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  cursor: pointer;
}

.galeria_p:hover{background-image: url("../imagens/voltar-a-galeria-cinza.svg");}
.visita_c:hover{background-image: url("../imagens/marque-a-sua-visita-cinza.svg");}
.partilhar_face:hover{background-image: url("../imagens/partilhar-no-facebook-cinza.svg");}

.projeto_especifico_icons_margem{
  margin: 0px 150px 0px 150px;
}

.projeto_margem_icons{margin-top: 100px;}

.background_acabamentos{
  background-image: url("../imagens/imagem-de-fundo-acabamentos.jpg");
  height: 300px;
  align-items: center;
}

.acabamentos_p{
  display: block;
  width: 100px;
  height: 100px;
  background-image: url("../imagens/acabamentos-vermelho_1.svg");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  cursor: pointer;
}

.plantas_p{
  display: block;
  width: 100px;
  height: 100px;
  background-image: url("../imagens/plantas-vermelho.svg");
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  cursor: pointer;
}

.acabamentos_p:hover{background-image: url("../imagens/acabamentos-cinza.svg");}

.plantas_p:hover{background-image: url("../imagens/plantas-cinza.svg");}

.contactos_margin{margin-top: 90px;}
.contactos_margin_telef{margin-top: 170px;}
.contactos_bg{background-color: #eeeeeed5;}
.contactos_textarea {height: 120px !important;}
.contactos_h1{margin-left: 63px !important;}
.contactos_hr{margin-left: 63px !important;}
.contactos_marque{height: 200px !important;}

.recaptcha_margem{
  margin-top: -40px !important;
  margin-right: 40px !important;
}

.contactos_enviar{background-color: var(--vermelho);}

.grid_portfolio{
  display: grid !important;
  grid-template-columns: 0fr 0fr;
  width: 30vw;
}

.portfolio_padd img{
  width: 160px !important;
  height: 100px !important;
  object-fit: cover !important;
  border-radius: 5px;
}

#imagem_port_principal{
  width: 40vw !important;
  height: 457px !important;
  object-fit: cover !important;
}

.portfolio_control_left{
  width: 20px !important;
  position: relative;
  right: 50px !important;
  top: -40px !important;

}

.portfolio_control_right{
  width: 20px !important;
  position: relative;
  right: -50px !important;
  top: -40px !important;
}

main #carousel_portfolio .carousel-control-prev {margin-left: -52px !important;}
main #carousel_portfolio .carousel-control-next {margin-right: -52px !important;}

.portfolio_padd, .carousel-item-start{
  padding: 0px 0px !important;
}


/* ---------------------- Mobile ----------------------*/

@media all and (width <= 768px){
  .contactos_margin_telef{margin-top: 0px !important;}
  .contactos_margin{margin-top: 0px !important;}

  h1{margin-top: 25px !important;}
  hr{margin-bottom: 50px !important;}

  .projeto_especifico_indicators{
    gap: 2px !important;
  }


}


@media all and (width <= 1000px){
  main h1{
    margin-top: 90px;
    font-size: 32px !important;
  }

  main .card_propriedades{
    top: 100%;
    left: 0px;
    z-index: 1 !important;
    background-color: var(--cinza_escuro);
    width: 100% !important;
  }

  main .carousel-item div{ 
    width: 100% !important;
    display: flex;
    justify-content: center;
    margin-top: 30px;
    
  }

  .projeto_especifico_control_right , .projeto_especifico_control_left{
    top: 37vw;
  }

  main .carossel_padd{padding: 0px;}
  main .shadow_divisoria{margin-top: 250px;}

  .card_projetos{width: 88% !important;}
  .projetos_botao{font-size: 15px;}
  .icon_acabamentos_e_plantas{
    height: 85px !important;
    cursor: pointer;
  }

  #imagem_port_principal{width: 90% !important;}
  .margem_mobile_portfolio{margin-left: -60px !important;}
}


/* ---------------------- Footer ----------------------*/

footer{
  height: 550px;
}

.margin_top{margin-top: 140px !important;}

footer * {max-width: 1280px;}

footer nav{
  width: 100%;
  margin-top: 55px;
}

footer nav a{
  color: var(--branco) !important;
  font-family: 'DIN Pro Cond';
  font-weight: 300;
  font-size: 18px;
  cursor: default;
}

footer nav .margin_nav{margin: 0px 45px;}
footer nav .margin_nav_right{margin-right: 45px;}
footer nav .margin_nav_left{margin-left: 45px;}
footer nav{margin-top: 35px;}

footer nav a:hover{
  font-family: 'DIN Pro Cond';
  font-weight: bold;
}

footer .active{font-weight: bold !important;}

footer .contactos{
  font-family: 'DIN Pro Cond' !important;
  font-weight: 500;
  font-size: 46px;
  padding: 25px 0px 35px 198px;
}

footer .padding_morada{
  padding-left: 10px;
  margin-left: 90px;
}

footer .padding_telefone{padding-left: 75px;}
footer .divisoria_padd{padding: 40px 0px 40px 0px;}
footer .informações_gerais_titulo{font-size: 30px;}

footer .informações_gerais{
  font-size: 15px;
  font-family: 'DIN Pro';
  font-weight: normal;
}

footer .logo_facebook{
  width: 110px;
  margin-right: 170px;
  margin-left: 20px;
}

footer .logo_ralc{width: 175px;}

footer .cookies_copyright{
  font-size: 15px !important;
  font-family: 'DIN Pro' !important;
}

footer .cookies_margens{
  padding-top: 35px;
  margin: 0px auto;
}

footer .copy_margens{margin: -10px auto;}

/* ---------------------- Mobile ----------------------*/

@media all and (width <= 1000px){

  footer{height: fit-content;}

  footer .contactos{
    padding: 0px;
    display: flex;
    justify-content: center;
    padding-top: 60px;
  }

  footer .margin_mobile{margin-top: 15px;}
 
  footer .logo_facebook{
    width: 110px;
    margin-right: 50px;
    margin-left: 20px;
  }

  footer .copy_margens{text-align: center;}
  .mobile_space{margin-bottom: 400px !important;}

}
