/* 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;
    & > [class^="col-"],
    & > [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 */
.col-right h3 { padding-left: 8px; padding-right: 8px; margin-bottom: 15px; font-weight: 300; 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; font-weight: 300; color: #000; }
table { font-weight: 300; }
#caracteristicas table th,
#areas table th { font-weight: 400 }
#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); }
#imoveis table th { font-weight: 300 }
#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-weight: 300; 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; font-weight: 300; }
}

@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; }
/* cores específicas do template */
body { background-color: #f7f7f7 }
.info-in-tabs a.nav-link.active { background-color: #f7f7f7 !important; }

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


#cookies-warning { padding: 20px 30px; color: #333; text-align: center; background-color: #eee; display: none; }
#cookies-warning button { background-color: #eee; }




.cor-texto-preto,
.cor-texto-preto,
a.cor-texto-preto { color: #111 }
.cor-vermelho-remover { color: #b41818 }
.cor-icones-cinzento i { color: #8a8a8a }



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

#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 }

@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; font-weight: 300; }

h1,
h2 { font-weight: 100; }
h3,
h4,
h5,
h6 { font-weight: 300; }

/*******************************************************
* 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 {
  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;
}
#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; }
.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;
    border-radius: 10px !important;
}
/* 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;
}
.ui-datepicker th {
  font-weight: 300 !important;
}

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

/* Cantos arredondados */
.btn-cantos-arredondados { border-radius: 10px !important; }
.btn-sem-canto { border-radius: 0 !important; margin-left: -1px; }
.btn-canto-esquerdo { border-radius: 10px 0 0 10px !important; }
.btn-canto-direito { border-radius: 0 10px 10px 0 !important; margin-left: -2px; }

/* 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; }
#formulario-homepage { background-color: #fff; }
#formulario-homepage .form-divider { border-color: #aaa; }
#formulario-pesquisa label { color: #555; }

/* 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: 7px; 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: 65px; font-size: 18px; }

#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 { height: 50px; font-size: 14px; }
}

/* Colocar o seletor de local (distrito, concelho e freguesia) 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; }
#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 { top: -55px; }
#formulario-homepage { margin: auto; padding: 60px 40px; -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); }
#formulario-homepage .form-divider { max-width: 500px; margin: 10px auto 40px auto; }

/* 'Pesquisa de Imóveis', 'Quanto Vale a Minha Casa?' */
#formulario-homepage .form-heading { font-size: 25px; margin-bottom: 20px; }

@media (max-width: 1100px) {
    #formulario-homepage {
        padding: 45px 20px;
    }
}

@media (max-width: 500px) {
    .formulario-homepage-wrapper { top: -95px; }
}

@media (max-width: 465px) {
    #formulario-homepage {
        padding: 20px 0;
    }
    #formulario-homepage .form-heading {
        font-size: 20px;
        margin-bottom: 10px;
    }
    #formulario-homepage .form-divider {
        margin: 10px auto;
    }
}

@media (max-width:1000px) {
    #formulario-homepage button { height: 65px; font-size: 13px; }
}
@media (max-width: 950px) {
  #formulario-pesquisa select,
  #formulario-pesquisa input,
  #formulario-pesquisa button { height: 60px; font-size: 13px; }
  #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) 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 { display: inline-block; max-width: 100%; width: 100%; }
#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 h2 { font-size: 20px; }
.text-container h3 { font-size: 18px; }
.text-container h4 { font-size: 16px; }
.text-container iframe { width: 100%; height: 300px; }
@media (max-width:1500px) {
    .text-container { margin: 70px auto; }
    .text-container .section-heading { margin-bottom: 60px; }
}

/* 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,
.left-section-heading { font-size: 40px; color: #000; font-weight: 100; }
.centered-section-heading { text-align: center; }
.centered-section-heading small { font-size: 20px; font-weight: 300; }
h1.centered-section-heading { margin-bottom: 100px; }
h2.centered-section-heading { font-size: 40px; margin-bottom: 3.5rem; margin-top: 10px; }
.left-section-heading { text-align: left; margin-bottom: 10px !important; }
p.left-section-heading.preco { font-size: 28px; font-weight: 400; }
@media (max-width:1000px), (max-height:900px) {
    h1.centered-section-heading,
    h2.centered-section-heading,
    .left-section-heading { font-size: 30px; }
    .centered-section-heading small { font-size: 14px; }
}
@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: 20px 0; }
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; }

/* Nome da Empresa */
footer .nome-empresa { font-weight: 400; font-style: italic; font-size: 26px; padding: 0 10px; }

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

footer .ami { margin-bottom: 10px; }

/*******************************************************
* Modal
*******************************************************/
.modal-title { font-weight: 100 }
.modal-content p { margin-bottom: 0 }
@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 {
  display: none;
  position: fixed;
  bottom: 20px;
  right: 30px;
  z-index: 99;
  border: 1px solid #999;
  outline: none;
  background-color: #fff;
  color: #111;
  cursor: pointer;
  padding: 2px 15px;
  border-radius: 150px;
  height: 80px;
  width: 80px;
}
#goTopBtn:hover { background-color: #eee; }
#goTopBtn p { margin-bottom: 5px; }
#goTopBtn i { font-size: 40px; }

@media (max-width: 767px) {
  #goTopBtn {
    bottom: 25px;
    right: 10px;
    padding: 0 12px;
    height: 70px;
    width: 70px;
  }
  #goTopBtn i { font-size: 30px; }
}

/*******************************************************
* 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-weight: 700;
  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 */
header { display: none; }
section,
footer,
#video,
.formulario-wrapper,
.text-container {
  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: 0.1px solid #444; }
#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 a.nav-link,
header .navbar a.dropdown-item { font-weight: 300; }
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; font-weight: 300; 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; font-weight: 400; }
#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: 8px 16px; }
    #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-block {
    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; }
}