body {
    overflow-x: hidden;
}


button#dropdownMenuButton {
    border: none;
}

.select-container {
    line-height: 1;
}

select.form-control:not([size]):not([multiple]) {
    height: auto!important;
  }

h1,
h2,
h3,
h4,
h5 {
    font-family: 'Merriweather', serif;
    text-align: left;
}
form a { text-decoration: underline }

@media (max-width: 1300px), (max-height: 700px) {
    header .navbar-brand img { height: 100% }
}
@media (max-width: 767px) {
    header .navbar-brand img { max-height: 100% }
}
.flexslider .slides div {
    height: 500px;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    background-color: #fff;
}
@media (max-width: 1400px) {
    .flexslider .slides div {
        height: 400px;
    }
}
@media (max-width: 900px) {
    .flexslider .slides div {
        height: 300px;
    }
    #photo-carousel div {
        height: 100px !important;
    }
}


/* alinhar os icones de fontawesome verticalmente dentro de botões */
button i.fa { vertical-align: inherit; font-size: 20px; }

/* remove padding from css grid */

/* https://stackoverflow.com/questions/36413660/removing-padding-gutter-from-grid-columns-in-bootstrap-4 */
.row.no-gutters {
    margin-right: 0;
    margin-left: 0;
}

.row.no-gutters > div[class^="col-"],
.row.no-gutters > div[class*=" col-"] {
    padding-right: 0;
    padding-left: 0;
}

/**/
p.icon-text:before { font-family: 'FontAwesome'; color: #000; margin: 0px 10px 0 0; font-size: 18px; float: left; }
.icon-text span { display: block; overflow: hidden; }
.icon-text.pointer:before { content: "\f041"; }
.icon-text.phone:before { content: "\f095"; }
.icon-text.fax:before { content: "\f1ac"; }
.icon-text.mail:before { content: "\f0e0"; }
.col-left { padding-right: 30px; }
.col-right { padding-left: 30px; }
@media (max-width:1000px) {
    .col-left { padding-right: 10px; }
    .col-right { padding-left: 10px; }
}
@media (max-width:500px) {
    .col-left,
    .col-right { padding: 10px; }
}
@media (max-width:767px) {
    .col-right { margin-top: 40px; }
    .col-right .form-group { padding: 0; }
    .col-left h2 { text-align: center; }
}

/* contactos */
#contacts-list { text-align: center }
#contacts-list li { display: inline-block; padding: 10px 20px; vertical-align: top; }
.col-right h3 { padding-left: 8px; padding-right: 8px; margin-bottom: 15px; color: #000; }

#agencia-info,
#consultor-info { padding-right: 0 }

#agencia-info p,
#consultor-info p,
#agencia-info address,
#consultor-info address { margin-bottom: 5px }

#agencia-info .photo-space,
#consultor-info .photo-space { padding-right: 8px; padding-left: 8px; }

@media (max-width: 1000px) {
    #agencia-info p,
    #consultor-info p,
    #agencia-info address,
    #consultor-info address { font-size: 13px }
}

.info-item-container { margin: 10px 0 }
.info-item {  margin-bottom: 0; text-align: left; }
@media (max-width: 991px) {
    .info-item { text-align: center }
}
.info-item-label { color: #777; font-size: 14px; margin-bottom: 0; }
.info-items-container hr { border-color: #ccc; margin: 5px 0; }
.info-items-container,
.info-in-tabs { margin: 10px 0 }
.info-in-tabs * { -webkit-transition: all 0.5s ease; -moz-transition: all 0.5s ease; -ms-transition: all 0.5s ease; -o-transition: all 0.5s ease; transition: all 0.5s ease; }
.info-items-container { margin: 40px 0 }
.info-in-tabs a.nav-link { background-color: transparent; color: #000; }
@media (max-width:767px) {
    .info-items-container { margin: 0 }
}
.nav-tabs .nav-link.active { border-color: #ddd #ddd transparent }
.info-in-tabs .tab-content { margin: 10px; color: #000; }
#caracteristicas table.table-striped tbody tr:nth-of-type(odd),
#areas table.table-striped tbody tr:nth-of-type(odd),
#imoveis table.table-striped tbody tr:nth-of-type(odd) { background-color: rgba(0, 0, 0, .03) }
#caracteristicas table,
#areas table,
#imoveis th { border: none }

.photo-space > div {
    background-position: top;
    /*background-size: contain;*/
    width: 100%;
    height: 100%;
    background-repeat: no-repeat;

    background-size: auto 100%;
}

.info-items-container .row { margin: 0 }
@media (max-width: 991px) {
    .info-items-container { text-align: center }
    .photo-space {
        height: 100px;
        margin-bottom: 10px;
    }
    .photo-space > div { width: 130px }
}
@media (max-width: 767px) {
    .photo-space { padding: 0 0 20px 0; height: 150px; margin-bottom: 0; }
    .photo-space > div { width: 175px; max-height: 100%; margin: auto; }

    #consultor-info .photo-space > div { width: 100%; max-width: 350px; max-height: 300px; }

    #consultor-info,
    #agencia-info { text-align: center }
    #agencia-info { margin-bottom: 30px }
    #agencia-info,
    #consultor-info { padding-right: 15px }
    /* tabs */
    .nav-tabs .nav-link { text-align: center; border: 1px solid #ddd; border-radius: 10px; margin-bottom: 5px; }
    .nav-tabs .nav-link.active { border: 1px solid }
    .info-in-tabs .tab-content { border-radius: 10px; margin: 0; padding: 10px; }
    .info-in-tabs .nav-tabs { display: block; border: none; }
}
@media (max-width: 1190px) {
    .description-space { font-size: 14px }
}
@media (max-width: 767px) {
    .text-container { margin: 40px auto }
    .info-item,
    .info-item-label { font-size: 14px }
    .info-item-container { padding: 0 5px }
    .info-items-container,
    .info-in-tabs,
    #agencia-consultor-container { background-color: #fff; padding-bottom: 10px; padding-top: 10px; -webkit-box-shadow: 0px 0px 27px -2px rgba(0, 0, 0, 0.28); -moz-box-shadow: 0px 0px 27px -2px rgba(0, 0, 0, 0.28); box-shadow: 0px 0px 27px -2px rgba(0, 0, 0, 0.28); }
    .info-items-container hr { width: 60%; margin-left: auto; margin-right: auto; }
    .info-in-tabs { padding: 15px }
    #agencia-consultor-container { padding: 30px 15px 20px }
    .info-in-tabs a.nav-link { color: #333 }
}

@media (max-width:767px) {
    #caracteristicas table,
    #areas table,
    #imoveis table { font-size: 14px }
}
@media (max-width:500px) {
    #caracteristicas table th,
    #areas table th,
    #imoveis table th { font-size: 13px }
}
@media (min-width:767px) {
    .table-responsive { display: table }
}


/* formulários */
form .btn-group *, form .select-container * { border-color: #c1c1c1 }

@media (max-width: 767px) {
    .info-in-tabs a.nav-link.active { background-color: #fff !important }
}

.cor-vermelho-remover { color: #b41818 }
.cor-icones-cinzento i { color: #8a8a8a }

/* favoritos */
.no-favorites-warning { text-align: center }
.remove-favorite { right: 10px }

/* limpar pesquisa */
#limpar-pesquisa { position: absolute; right: 5px; top: -7px; opacity: 0.9; font-size: 13px; height: auto !important; }
@media (max-width: 767px) {
    #limpar-pesquisa { font-size: 14px !important; position: inherit; float: right; margin-bottom: 5px; margin-top: -10px; height: auto; margin-right: 5px; }
}
@media (min-width: 767px) {
    #limpar-pesquisa { margin-top: 5px }
}















/*******************************************************
* Reset
*******************************************************/
ul { margin: 0; padding: 0; }
ul li { list-style-type: none !important }

@media (min-width:768px) {
    .container { width: 1600px; max-width: 100%; }
}
@media (max-width:500px) {
    .container { padding: 0 }
}

/*******************************************************
* Tipos de Letra
*******************************************************/
body,
.btn,
.info-item { font-family: 'Roboto', sans-serif; }

/*******************************************************
* Botões
*******************************************************/
.btn.focus,
.btn:focus { -webkit-box-shadow: 0px 0px 0px 2px rgba(0, 0, 0, 0.16); -moz-box-shadow: 0px 0px 0px 2px rgba(0, 0, 0, 0.16); box-shadow: 0px 0px 0px 2px rgba(0, 0, 0, 0.16); }

/*******************************************************
* Banner
*******************************************************/
#banner {
    min-height: 600px;
  opacity: 0.0;
  filter: Alpha(opacity=0); /* IE8 and earlier */
  
  -webkit-transition: all 0.5s ease;
  -moz-transition: all 0.5s ease;
  -ms-transition: all 0.5s ease;
  -o-transition: all 0.5s ease;
  transition: all 0.5s ease;
  z-index: -1;
}
#banner .carousel-inner,
#banner .carousel-item { height: 100%; }
#banner .carousel-item > div { width: 100%; height: 100%; background-size: cover; background-position: center; }

/*******************************************************
* Video
*******************************************************/
video,
source { min-height: 100%; min-width: 100%; }
#video { transition: all 0.5s ease; overflow: hidden; position: relative; }
#video * { transition: all 0.5s ease; }
#video iframe { transition: all 0.5s ease; position: relative }
.loaded .ytplayer-container { display: block }
.loaded .placeholder-image { opacity: 0 }
.placeholder-image { height: 100%; left: 0; min-height: 100%; min-width: 100%; position: fixed; top: 0; z-index: 1; }
.ytplayer-shield { left: 0; position: absolute; top: 0; width: 100%; }

/*******************************************************
* Mouse Scroll - Animated Icon
* http://jsfiddle.net/cmajo9h6/
*******************************************************/
.mouse-icon { border: 2px solid #000; border-radius: 16px; height: 40px; width: 24px; display: block; z-index: 10; opacity: 0.7; display: inline-block; }
.mouse-icon-container { border-radius: 50%; background-color: #fff; width: 6em; height: 6em; display: inline-block; padding: 15px; transform: translateY(-150%); opacity: 0.7; }
.mouse-icon-container p { margin: 5px }
.mouse-icon .wheel { -webkit-animation-name: drop; -webkit-animation-duration: 1s; -webkit-animation-timing-function: linear; -webkit-animation-delay: 0s; -webkit-animation-iteration-count: infinite; -webkit-animation-play-state: running; -webkit-animation-name: drop; animation-name: drop; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-delay: 0s; animation-delay: 0s; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-play-state: running; animation-play-state: running; }
.mouse-icon .wheel { position: relative; border-radius: 10px; background: #000; width: 2px; height: 6px; top: 4px; margin-left: auto; margin-right: auto; }
@-webkit-keyframes drop {
  0% { top: 5px; opacity: 0; }
  30% { top: 10px; opacity: 1; }
  100% { top: 25px; opacity: 0; }
}
@keyframes drop {
  0% { top: 5px; opacity: 0; }
  30% { top: 10px; opacity: 1; }
  100% { top: 25px; opacity: 0; }
}

/*******************************************************
* Partilhar/Imprimir
*
* - Detalhe do Imóvel
* - Detalhe do Empreendimento
*******************************************************/
.share-print-options { text-align: right; margin-bottom: 20px; }
.share-print-options li { display: inline-block; font-size: 24px; padding: 0 4px; background-color: rgba(255, 255, 255, 0.9) }
.share-print-options li i { color: #555 }
.share-print-options .facebook { color: #3b5998 }
.share-print-options .instagram { color: #dd2a7b }
.share-print-options .twitter { color: #0084b4 }
.share-print-options .google { color: #d34836 }
.share-print-options .youtube { color: #CD201F }
.share-print-options .linkedin { color: #0077b5 }
.share-print-options .whatsapp { color: #25D366 }
@media (max-width: 767px) {
    .share-print-options { text-align: center; margin-top: 0; }
    .share-print-options li { font-size: 40px; padding: 0 10px; }
}

/*******************************************************
* Imóveis Semelhantes e Tabs
*******************************************************/
#imoveis-semelhantes,
.info-in-tabs { margin-top: 80px; }
@media (max-width: 767px) {
    #imoveis-semelhantes,
    .info-in-tabs { margin-top: 40px; }
}

.datepicker,
.legenda {
  display: inline-block;
  vertical-align: middle;
}

.legenda { padding: 0 20px; }
.legenda p,
.legenda-item { display: inline-block; }


/*******************************************************
* Opções dos Resultados (Ordenação, Número de Cards, Ver
* Lista, Ver Grelha)
*
* - Resultados
* - Lojas
* - Equipa
* - Empreendimentos
*******************************************************/
#opcoes-resultados { margin-bottom: 40px }
#opcoes-resultados > div { display: flow-root }
#opcoes-resultados .right-options .dropdown { display: inline-block }
#opcoes-resultados .left-options button,
#opcoes-resultados .right-options button { border-radius: 10px }
#opcoes-resultados .left-options i { margin-right: 10px }
@media (max-width: 900px) {
    #opcoes-resultados > div { display: inline-block; width: 100%; }
    #opcoes-resultados > p { text-align: center }
    #opcoes-resultados .right-options .dropdown { display: grid; margin: 10px auto; }
    #opcoes-resultados .left-options button { display: block; margin: 10px auto; }
    #opcoes-resultados .right-options { float: none }
    #opcoes-resultados .left-options { width: 100% }
    #opcoes-resultados .right-options,
    #opcoes-resultados .left-options { text-align: center }
    #opcoes-resultados .right-options .dropdown,
    #opcoes-resultados .left-options button { width: 70% }
    #opcoes-resultados .right-options button { width: 100% }
}
@media (max-width: 767px) {
  #opcoes-resultados .left-options button { display: none; }
}

/*******************************************************
* Formulários
*
* - Vender Casa
* - Comprar Casa
* - Recrutamento
*******************************************************/
#formulario { margin: auto }

.form-container form { text-align: left; display: inline-block; width: 100%; margin: auto; }
.form-container form .form-group { display: inherit }

.form-container h2,
.form-container h3,
.form-container h4,
.form-container p { padding-left: 20px; padding-right: 20px; }
.form-container .btn-group { padding-left: 15px; padding-right: 15px;
}
.form-container { margin-left: 90px; margin-right: 90px; }
@media (max-width: 1100px) {
    .form-container { margin-left: 10px; margin-right: 10px; }
}
@media (max-width: 900px) {
    .form-container,
    .form-container .form-group { margin-left: 0; margin-right: 0; padding: 0; }
    .form-container .btn-group { padding-left: 5px; padding-right: 5px; }
    .form-container h2,
    .form-container h3,
    .form-container h4,
    .form-container p { padding-left: 10px; padding-right: 10px; }
}

/* Estilos dos Elementos dos Formulários */
input,
textarea,
select,
form button {
    font-family: 'Roboto', sans-serif;
}
/* calendario - reservas */
select.ui-datepicker-month {
  border-radius: 7px !important;
  border-bottom-right-radius: 0 !important;
  border-top-right-radius: 0 !important;
}
select.ui-datepicker-year {
  border-radius: 7px !important;
  border-bottom-left-radius: 0 !important;
  border-top-left-radius: 0 !important;
}

select { width: 100% }
textarea { min-height: 150px }
.btn-group,
.btn-group-group { margin-bottom: 13px; float: left; }
.btn-group { padding-left: 5px; padding-right: 5px; }
@media (max-width:767px) {
    .btn-group-group { margin-bottom: 0 }
}

/* Cantos afiados */
input,
select,
button,
textarea,
.custom-select,
.form-control { border-radius: 0 !important }

/* Transições */
select,
input,
textarea,
form button { -webkit-transition: all 0.5s ease; -moz-transition: all 0.5s ease; -ms-transition: all 0.5s ease; -o-transition: all 0.5s ease; transition: all 0.5s ease; }

/*******************************************************
* Formulário de Pesquisa da Homepage
*******************************************************/

/* Cores */
.formulario-wrapper { background-color: #fff }

/* Classe contentora do form colapsável/espandível */
.formulario-wrapper { -webkit-box-shadow: 0px 15px 44px -16px rgba(0, 0, 0, 0.37); -moz-box-shadow: 0px 15px 44px -16px rgba(0, 0, 0, 0.37); box-shadow: 0px 15px 44px -16px rgba(0, 0, 0, 0.37); text-align: center; }
#formulario-pesquisa { text-align: left; display: inline-block; max-width: 100%; width: 100%; margin-top: 10px; }
#formulario-pesquisa label { position: absolute; margin-top: 4px; margin-left: 12px; font-size: 14px;   /* unselectable labels */ -webkit-user-select: none; /* Chrome/Safari */ -moz-user-select: none; /* Firefox */ -ms-user-select: none; /* IE10+ */   /* Rules below not implemented in browsers yet */
-o-user-select: none; user-select: none; }
#formulario-pesquisa .arrow-down-select { position: absolute; right: 30px; bottom: 6px; font-size: 22px; }
/* tirar o tamanho da seta*/
#formulario-pesquisa .arrow-down-select i { width: 0; pointer-events: none; }
/* remover seta/caret de default */
#formulario-pesquisa select { background-image: none; padding: 20px 40px 2px 12px; }
#formulario-pesquisa input { padding: 20px 12px 2px 12px; }
#formulario-pesquisa select,
#formulario-pesquisa input,
#formulario-pesquisa button { height: 45px }

#formulario-pesquisa #limpar-pesquisa { font-size: 14px }

#formulario-pesquisa #pesquisa-preco-min,
#formulario-pesquisa #pesquisa-preco-max { font-size: 14px }
#formulario-pesquisa .select-container { position: relative }
@media (max-width: 767px) {
    #formulario-pesquisa select,
    #formulario-pesquisa input,
    #formulario-pesquisa button { font-size: 14px }
}

/* Colocar o seletor de local (distrito, concelho, e freguesia ou província, cidade, e zona) em 3 linhas */
@media (max-width: 400px) {
    #formulario-pesquisa #local-btn-group { display: block; margin-bottom: 0; }
    #formulario-pesquisa #local-btn-group .select-container { width: 100% !important; margin-bottom: 10px; }
    #formulario-pesquisa #local-btn-group select { border-radius: 10px !important }
}

#pesquisa-mais-opcoes { display: table }
#pesquisa-mais-opcoes .custom-checkbox { margin: 0; position: relative; }
#pesquisa-mais-opcoes .custom-checkbox .custom-control-input { height: auto }
#pesquisa-mais-opcoes .checkbox-group-container { padding-top: 5px }
#pesquisa-mais-opcoes .checkbox-group { display: inline-block; text-align: left; }
@media (max-width: 950px) {
  #pesquisa-mais-opcoes .checkbox-group-container { padding-top: 3px }
}
@media (max-width: 810px) {
  #pesquisa-mais-opcoes .checkbox-group-container { padding-top: 0 }
}
@media (max-width: 767px) {
  #pesquisa-mais-opcoes .select-container { margin-bottom: 10px }
}


/* Pesquisa colapsável (em todas as páginas menos na página inicial) */
#btn-form-colapsado { width: 100%; border-radius: 0; border: none; padding: 15px 0; cursor: pointer; }
#btn-form-colapsado:focus { border: none; box-shadow: none; }
#btn-form-colapsado i { font-size: 16px; vertical-align: text-top; margin-left: 10px; }

/*******************************************************
* Formulário de Pesquisa da Homepage
*******************************************************/
.formulario-homepage-wrapper { width: 450px; max-width: 100%; }
#formulario-homepage {

    margin: auto;
    padding: 10px 10px;
    
    -webkit-box-shadow: 0px 0px 39px 0px rgba(0, 0, 0, 0.5);
    -moz-box-shadow: 0px 0px 39px 0px rgba(0, 0, 0, 0.5);
    box-shadow: 0px 0px 39px 0px rgba(0, 0, 0, 0.5);
}

@media (max-width: 500px) {
    .formulario-homepage-wrapper { top: -95px }
}
@media (max-width:1000px) {
    #formulario-homepage button { font-size: 13px }
}
@media (max-width: 950px) {
  #formulario-pesquisa button { padding: 8px 10px }
}
@media (max-width: 991px) {
    #formulario-homepage .btn-group-group { margin-bottom: 0 }
}
@media (min-width: 767px) and (max-width: 991px) {
  #formulario-homepage label { font-size: 13px }
}
@media (max-width: 767px) {
  #formulario-pesquisa button { font-size: 16px }
}
@media (max-width: 500px) {
    #formulario-pesquisa select,
    #formulario-pesquisa input,
    #formulario-pesquisa button { height: 50px; font-size: 14px; }
    #formulario-pesquisa label { font-size: 13px; margin-top: 5px; }
}

/* Colocar o seletor de local (distrito, concelho, e freguesia ou província, cidade, e zona) em 3 linhas */
@media (max-width:600px) {
    #formulario-homepage #local-btn-group { display: block; margin-bottom: 0; }
    #formulario-homepage #local-btn-group .select-container { width: 100% !important; margin-bottom: 10px; }
    #formulario-homepage #local-btn-group select { border-radius: 10px !important }
}

/*******************************************************
* Formulário de contacto 'Contactar Imobiliária'
*
* Nas páginas:
* - Contactos
* - Detalhe de Imóvel
* - Detalhe do Empreendimento
*******************************************************/
#formulario-contacto {
    padding: 10px;
    display: inline-block;
    max-width: 100%;
    width: 100%;

    -webkit-box-shadow: 0px 0px 19px 0px rgba(0, 0, 0, 0.5);
    -moz-box-shadow: 0px 0px 19px 0px rgba(0, 0, 0, 0.5);
    box-shadow: 0px 0px 19px 0px rgba(0, 0, 0, 0.5);
}
#formulario-contacto p { display: inherit; margin: 15px 0 5px 0; padding: 0 8px 0 8px; }
#formulario-contacto .form-group { display: inherit }
#formulario-contacto .btn-group { padding-left: 10px; padding-right: 10px; }

@media (max-width:767px) {
    #formulario-contacto h3 { text-align: center }
}

/*******************************************************
* Container do conteúdo nas páginas (exceto na página
* inicial)
*******************************************************/
.text-container { padding: 0 5px; margin: 90px auto; text-align: justify; }
.text-container h3 { font-size: 18px }
.text-container h4 { font-size: 16px }
.text-container iframe { width: 100%; height: 90vh; }
@media (max-width:1500px) {
    .text-container { margin: 60px auto }
    .text-container .section-heading { margin-bottom: 50px }
}

/* tabs */
.info-in-tabs #video-yt { text-align: center }
.info-in-tabs #video-yt iframe { width: 600px; height: 300px; }

/*******************************************************
* Títulos
*
* - 'Imóveis Destacados'
* - 'Imóveis Recentes'
* - 'Imóveis Semelhantes'
* - 'Resultados'
* - 'Apartamento XPTO'
* - etc
*******************************************************/
.centered-section-heading { text-align: center }
h1.centered-section-heading { margin-bottom: 100px }
h2.centered-section-heading { margin-bottom: 3.5rem }

.centered-section-heading,
.left-section-heading { font-size: 34px; color: #000; }

.centered-section-heading small,
.left-section-heading small { font-size: 20px }

.left-section-heading { text-align: left; margin-bottom: 10px !important; }
p.left-section-heading.preco { font-size: 28px }

@media (max-width: 767px) {
    .left-section-heading { text-align: center }
}
@media (max-width: 700px) {
    h1.centered-section-heading,
    h2.centered-section-heading,
    .left-section-heading { font-size: 26px }
}

/*******************************************************
* Footer
*******************************************************/
footer { text-align: center; width: 100%; padding: 16px 0 10px; }
footer p { margin: 0 }
footer p a,
footer p a:hover { text-decoration: none }

/* Sticky Footer */
html { position: relative; min-height: 100%; }

footer a,
footer a:link,
footer a:active,
footer a:visited { border: none; outline: none; }

/* Transições */
footer a,
footer i { -webkit-transition: all 0.5s ease; -moz-transition: all 0.5s ease; -ms-transition: all 0.5s ease; -o-transition: all 0.5s ease; transition: all 0.5s ease; }

/* Redes Sociais */
footer i { border-radius: 50%; border: 1px solid; width: 2em; height: 2em; padding: 7px; margin: 0 2px; }
footer .social-networks-container { display: inline-block; position: relative; top: -33px; padding: 0 20px; }

/* Centro de Resolução de Litígios */
footer .legal a,
footer .legal a:hover { text-decoration: underline }

footer .ami { margin-bottom: 10px }

/*******************************************************
* Modal
*******************************************************/
.modal-content p { margin-bottom: 0; border-radius: 0; border: none; }
@media (min-width: 767px) {
    .modal-footer button { width: inherit }
}
@media (max-width: 500px) {
    .modal-title { font-size: 18px }
    .modal-content p { font-size: 14px }
}

/*******************************************************
* Botão - Ir para o Topo
*******************************************************/
#goTopBtn {
    z-index: 99;

    position: fixed;
    bottom: 20px;
    right: 30px;
    height: 40px;
    width: 40px;

    display: none;
    cursor: pointer;
    padding: 2px 9px;

    background-color: #fff;
    color: #111;
    border: 1px solid #999;
    outline: none;
}
#goTopBtn:hover { background-color: #eee }
#goTopBtn p { margin-bottom: 5px }
#goTopBtn i { font-size: 20px }

@media (max-width: 767px) {
  #goTopBtn {
    bottom: 25px;
    right: 10px;
    padding: 0 12px;
    height: 50px;
    width: 50px;
  }
}

/*******************************************************
* Paginação
*******************************************************/
.pagination { display: inline-flex; margin-top: 30px; }
.pagination .page-item { margin-right: 2px; margin-left: 2px; display: grid; }
.pagination .page-link { border-radius: 10px !important }
/*.pagination .page-item:first-child .page-link { padding: 9px 13px 7px 11px }
.pagination .page-item:last-child .page-link { padding: 9px 11px 7px 13px }*/

/*******************************************************
* Estilos
*******************************************************/
.uppercase { text-transform: uppercase }
.full-width { display: block; width: 100%; }
.no-spacing { margin: 0; padding: 0; }
.center { text-align: center !important }
.vcenter {
    position: inherit;
    top: 50%;
    transform: translateY(-50%);
}
/*******************************************************
* Indicador de Dispositivos
*******************************************************/
#mobile-indicator { display: none }
@media (max-width:767px) {
    #mobile-indicator { display: block }
}

/*******************************************************
* Mostrar que é clicável
*******************************************************/
.fav-imovel-detalhe:hover { cursor: pointer }

/*******************************************************
* Dropdown dos Favoritos
*******************************************************/
#fav-dropdown .dropdown-menu {
  max-height: 70vh;
  overflow: auto;
}
.fav-item-container h5,
.fav-item-container .fav-local {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 230px;
}
@media (max-width: 991px) {
  .fav-item-container h5,
  .fav-item-container .fav-local {
    width: 80%;
    max-width: 80%;
  }
}
@media (max-width: 767px) {
  .fav-item-container h5,
  .fav-item-container .fav-local {
    width: 70%;
    max-width: 70%;
  }
}
@media (max-width: 400px) {
  .fav-item-container h5,
  .fav-item-container .fav-local {
    width: 60%;
    max-width: 60%;
  }
  .fav-item-container h5 { font-size: 15px !important }
  .fav-item-container .fav-local { font-size: 14px !important }
}
@media (max-width: 360px) {
  #fav-dropdown .dropdown-item {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
}

/*******************************************************
* Detalhe do Imóvel
*******************************************************/
#featured-imovel-text {
  min-width: 100%;
  display: inline-block;
  text-align: left;
  padding: 7px 40px;
  text-align: center;
  font-size: 18px;
  z-index: 2;

  -webkit-box-shadow: 0px 6px 39px -6px rgba(0, 0, 0, 0.53);
  -moz-box-shadow: 0px 6px 39px -6px rgba(0, 0, 0, 0.53);
  box-shadow: 0px 6px 39px -6px rgba(0, 0, 0, 0.53);
}

/* fazer fade in dos elementos */
section,
.formulario-wrapper {
    opacity: 0.0;
    filter: Alpha(opacity=0); /* IE8 and earlier */
}


#formulario-contacto .alert {
    margin: 10px;
    margin-bottom: 0;
}




/* reservas do imóvel */
#reservas-calendar-container {
    width: 273px;
    display: inline-block;
    margin-top: 10px;
    margin-left: 20px;
    margin-right: 20px;
    text-align: center;
}
#reservas-calendar-container .legenda {
    padding: 0;
    width: 100%;
    margin-top: 15px;
    margin-bottom: 15px;
}
#reservas-calendar-container .legenda-item {
    height: 26px;
    width: 130px;
    text-align: center;
}
#reservas-calendar-container .legenda-item.legenda-livre { float: left }
#reservas-calendar-container .legenda-item.legenda-reservado { float: right }

@media (max-width: 767px) {
  #reservas-calendar-container {
    width: 100%;
    margin: 0;
  }
  #reservas-calendar-container .legenda {
    width: 272px;
    max-width: 100%;
  }
  .info-in-tabs .tab-content { padding: 10px 0 }
  .datepicker,
  .datepicker .ui-datepicker { max-width: 100% }
}
.legenda-livre,
.ui-datepicker-calendar a.ui-state-default { background-color: #fff; border: 1px solid #cfcfcf; }

.ui-datepicker-calendar td.ui-datepicker-today a { background: #fff; border-color: #999; color: #000; }
.ui-datepicker-calendar td.ui-datepicker-current-day a { background: #eee; border-color: #000; color: #000; }

/* 404 */
#sad-404 {
    width: 100px;
    margin: 50px 30px;
}

/* Styles do Typeheader 
 *
 * Lista de possibilidades, no input da localização (só se aplica na pesquisa aberta)
 */
label { z-index: 2 }
.twitter-typeahead { width: 100% }
.twitter-typeahead .tt-query { background-color: #fff !important }
.twitter-typeahead .tt-query,
.twitter-typeahead .tt-hint { margin-bottom: 0; border-radius: 4px; }
.tt-hint { width: 100%; border: none; }
.tt-dropdown-menu { min-width: 160px; margin-top: 2px; padding: 5px 0; background-color: #fff; border: 1px solid #ccc; border: 1px solid rgba(0, 0, 0, .2); *border-right-width: 2px; *border-bottom-width: 2px; -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); box-shadow: 0 5px 10px rgba(0, 0, 0, .2); -webkit-background-clip: padding-box; -moz-background-clip: padding; background-clip: padding-box; width: 100%; max-height: 250px; overflow-y: auto; }
.tt-suggestion { display: block; padding: 3px 20px; font-size: 16px; }
.tt-suggestion.tt-is-under-cursor { color: #fff; background-color: #AFAFAF; }
.tt-suggestion.tt-is-under-cursor a { color: #fff }
.tt-suggestion p { margin: 0 }








/* header */
/*******************************************************
* Cores
*******************************************************/
#fav-dropdown .dropdown-menu hr { border-color: #333 }

/*******************************************************
* Estilos
*******************************************************/
header p { margin: 0 }
header a,
header a:link,
header a:active,
header a:visited { border: none; outline: none; text-decoration: none; }
header .dropdown button::after { display: none }
@media (max-width:1000px) {
    header p { font-size: 14px }
}

/*******************************************************
* Transições
*******************************************************/
#top-header-bar *,
header .dropdown-menu *,
header .nav-item,
header .nav-item a { -webkit-transition: all 0.5s ease; -moz-transition: all 0.5s ease; -ms-transition: all 0.5s ease; -o-transition: all 0.5s ease; transition: all 0.5s ease; }

/*******************************************************
* Retirar o estilo default do bootstrap das dropdowns
* selecionadas (Reset)
*
* (seletor de língua)
*******************************************************/

/* efeitos dos botoes dropdowns */
header div.invisible-dropdown .btn:hover,
header div.invisible-dropdown .btn:focus,
header div.invisible-dropdown .btn:active,
header div.invisible-dropdown .btn.active { text-decoration: none }
header div.invisible-dropdown button { padding: 0 5px; margin: 0; border: none; background-color: transparent; }

/* remover 'border' default do bootstrap no botão dropdown quando tem focus */
header div.invisible-dropdown button:focus { -webkit-box-shadow: none; box-shadow: none; }

/*******************************************************
* Barra de cima do header (acima da barra de navegação)
*******************************************************/
#top-header-bar a,
#top-header-bar i,
#top-header-bar ul,
#top-header-bar ul li { display: inline-block }
#top-header-bar .left-content { padding: 5px 0 }
#top-header-bar .left-content li { margin-right: 30px }
#top-header-bar .right-content { padding: 2px 0 }
#top-header-bar .social-networks-container a { margin-right: 6px }
#top-header-bar .social-networks-container a i:hover,
#top-header-bar .email-contact a:hover,
#top-header-bar .phone-contact p:hover { text-decoration: none }
#top-header-bar #language-selector button:hover,
#top-header-bar #language-selector button:focus,
#top-header-bar #language-selector button:active { outline: none;
border:none!important; }
#language-selector button { padding: 2px 3px }
@media (max-width:1600px) {
    #top-header-bar .container { padding-right: 30px; padding-left: 30px; }
}
@media (max-width:1000px) {
    #top-header-bar a,
    #top-header-bar i { font-size: 14px }
    #language-selector button { padding: 0 }
    #top-header-bar .left-content { padding: 3px 0 }
}
@media (max-width:991px) {
    #top-header-bar .container { padding-left: 15px }
}
@media (max-width:767px) {
    header .navbar .container { padding-left: 30px }
    #top-header-bar .container { padding-left: 30px }
}
@media (max-width:575px) {
    #top-header-bar .container { padding-left: 46px !important }
}

/*******************************************************
* Barra de baixo do header (barra de navegação / navbar)
*******************************************************/
header .navbar { padding-top: 10px; padding-bottom: 10px; }
header .navbar-toggler-icon { font-size: 26px !important; line-height: 39px; }
header .dropdown-menu { /* sombra à volta */ -webkit-box-shadow: 0px 0px 39px 0px rgba(0, 0, 0, 0.16); -moz-box-shadow: 0px 0px 39px 0px rgba(0, 0, 0, 0.16); box-shadow: 0px 0px 39px 0px rgba(0, 0, 0, 0.16); }

@media (max-width:991px) {
    #fav-dropdown button { padding: 0 16px 0 16px !important }
    header nav .dropdown button p { font-size: 16px }
    header nav .dropdown button { vertical-align: inherit }
}
@media (max-width:575px) {
    header .navbar .container { margin: 0 }
    #top-header-bar .container { padding-left: 15px }
}
header nav .dropdown-toggle::after { content: none }
header .nav-item.dropdown { padding: 0 !important }
header .nav-item.dropdown i { position: relative; right: 0; top: 50%; margin-left: 3px; }
@media (max-width:360px) {
    header .navbar .container { padding: 0 }
    header .navbar { padding-left: 20px }
    #top-header-bar .container { padding: 0 20px !important }
    #top-header-bar #language-selector .dropdown-item { font-size: 16px; padding: 12px 25px; color: #ccc; }
    #top-header-bar #language-selector .dropdown-item img { margin-right: 10px }
}
header .navbar-toggleable-md .navbar-nav .nav-link { padding-right: 16px; padding-left: 16px; }
#fav-dropdown .dropdown-menu { min-width: 400px; width: auto; }
#fav-dropdown .dropdown-item p,
#fav-dropdown .dropdown-item h5 { display: inline-block }
#fav-dropdown .dropdown-item p { font-size: 14px }
#fav-dropdown .remove-favorite p { font-size: 16px }
#fav-dropdown .dropdown-item h5 { font-size: 16px }
#fav-dropdown .dropdown-menu hr { margin: 10px 1.5rem }
#fav-dropdown .fav-item-container { position: relative }
#fav-dropdown .remove-favorite {
    right: 22px;
    position: absolute;
    bottom: 8px;
}
@media (max-width:991px) {
    #fav-dropdown .dropdown-menu { width: 100%; min-width: 200px; }
}

@media (max-width: 767px) {
    #language-selector { padding: 0px }
    #language-selector > button { width: 100%; text-align: left; }

    header .navbar-brand img { height: auto; max-width: 260px; max-height: 50px; }
}

@media (max-width: 400px) {
    header .navbar-brand img { max-width: 200px }
}

#resultados,
.card-body { overflow: hidden }




@media (max-width: 390px) {
    header .navbar .container { padding-left: 15px }
}

@media (max-width: 370px) {
    .language-selector-container {
        width: 100%;
        text-align: center;
    }
    #top-header-bar .left-content {
        width: 100%;
        text-align: center;
    }
    #top-header-bar .left-content .phone-contact { margin: auto }

    header .navbar { display: block }
    header .navbar-toggler-right { top: 5px }
}





.truncate {
    width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* todas as páginas */
nav.navbar { width: 100% }
.page-wrap { width: 100%; overflow: hidden; }

/* página inicial */
@media(max-width: 800px) {
    #formulario-pesquisa { width: 100% }
}

/* páginas de texto e de formulários */
.text-container.form-container input,
.text-container.form-container select { height: 38px !important }

/* sticky footer */
body { min-height: 100vh; display: flex; flex-direction: column; align-items: center; }
footer { margin-top: auto }


.formulario-wrapper {
    width: 100%
}






.car
d.card-imovel.card-imovel-horizontal { max-width: unset; min-height: unset; }
.card.card-imovel.card-imovel-horizontal .card-photo-imovel-horizontal { background-size: cover; background-position: center; height: 300px; width: 400px; padding:0;}
.card.card-imovel.card-imovel-horizontal .card-photo-imovel-horizontal > div > div { padding: 10px }
.card.card-imovel.card-imovel-horizontal .card-body { position: absolute }
.card.card-imovel.card-imovel-horizontal .card-location { color: #fff }
.card.card-imovel.card-imovel-horizontal .card-title,
.card.card-imovel.card-imovel-horizontal .card-price,
.card.card-imovel.card-imovel-horizontal .card-location { text-align: center; width: 100%; }



header { width: 100% }

/* header transparente */
header.header-transparente { border-bottom: 1px solid #ccc }
header.header-transparente a,
header.header-transparente p,
header.header-transparente #top-header-bar .social-networks-container a:focus { color: #666 }

@media(min-width: 992px) {
  header.header-transparente { border: none }
  header.header-transparente .navbar a.nav-link { color: #000 }
  header.header-transparente .navbar a.nav-link:hover { color: #444 }
  header.header-transparente .nav-item.dropdown i { color: #000 }
  header.header-transparente #top-header-bar { border: none }
  header.header-transparente,
  header.header-transparente .navbar,
  header.header-transparente #top-header-bar { background-color: rgba(255, 255, 255, 0); }
  header.header-transparente { position: absolute; max-width: 100%; min-width: 100%; z-index: 10; }

  header.header-transparente #top-header-bar .email-contact a,
  header.header-transparente #top-header-bar .phone-contact p,
  header.header-transparente #top-header-bar i { color: #000 }

  header.header-transparente #top-header-bar .email-contact a:hover,
  header.header-transparente #top-header-bar .phone-contact p:hover,
  header.header-transparente #top-header-bar i:hover { color: #444 }
}

@media(max-width: 1199px) {
  header.header-transparente { width: 100%; z-index: 100; position: absolute; }
}