/*
Theme Name: Houzez Child
Theme URI: http://www.favethemes.com/
Author: Favethemes
Author URI: http://www.favethemes.com/
Description: Houzez is a premium WordPress theme for real estate agents where modern aesthetics are combined with tasteful simplicity, and where the ease of use is achieved without compromise in your ability to customise the design. Whether you are a real estate agent looking to build a website for your company or a web developer seeking a perfect WordPress theme for your next project, you are certain to appreciate the numerous features and benefits that our theme provides.
Version: 1.0
Tags: white, right-sidebar, left-sidebar, custom-colors, custom-menu, featured-images, post-formats, theme-options, translation-ready
License: GNU General Public License version 3.0
License URI: http://www.gnu.org/licenses/gpl-3.0.html
Text Domain: houzez
Template: houzez
*/

/* Bug real do próprio Houzez: .footer_logo img não tem NENHUMA regra de
   tamanho em lado nenhum do tema (nem largura, nem altura, nem
   max-width) — o logo do rodapé aparece ao tamanho real do ficheiro
   (no nosso caso, 1095x273px, ocupando a barra toda). */
.footer_logo img {
	max-height: 40px;
	width: auto;
}

/* Hero da homepage: banner nativo do Houzez (override de
   template-parts/banners/parallax.php) com uma caixa de pesquisa
   compacta alinhada à esquerda, em vez de centrada — pedido do
   Herminio, a lembrar o modelo "Home Caption". Altura contida
   (preferência por espaçamentos verticais baixos). */
.fo-hero-banner {
	min-height: 420px;
	max-height: 620px;
	height: 60vh;
	overflow: hidden;
	background-color: #000033;
}
.fo-hero-banner-inner {
	height: 100%;
	display: flex;
	align-items: center;
}
.fo-hero-split {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 5vw;
	padding: 0 6vw;
}
.fo-hero-box {
	flex: 0 1 420px;
	color: #fff;
	text-align: left;
	max-height: 100%;
	overflow-y: auto;
}
.fo-hero-caption-col {
	flex: 1 1 380px;
	text-align: left;
	color: #fff;
}
.fo-hero-caption-col .banner-title {
	color: #fff;
	font-size: clamp(26px, 3.2vw, 40px);
	margin: 0 0 8px;
}
.fo-hero-caption-col .banner-subtitle {
	color: #D1C292;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin: 0;
}
.fo-hero-box .claudecrm-general-inquiry-form {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}
.fo-hero-box .form-group,
.fo-hero-box .form-group-textarea,
.fo-hero-box .form-group-terms {
	grid-column: 1 / -1;
	margin-bottom: 0;
}
/* Telefone + Email lado a lado (2º e 3º campo do formulário) */
.fo-hero-box .form-group:nth-of-type(2) {
	grid-column: 1;
}
.fo-hero-box .form-group:nth-of-type(3) {
	grid-column: 2;
}
.fo-hero-box .form-group-terms .gdpr-text-wrap {
	color: #fff;
	font-size: 12px;
}
/* O link "Política de Privacidade" herda a cor azul-escura do tema —
   ilegível sobre a foto escura. */
.fo-hero-box .form-group-terms .gdpr-text-wrap a {
	color: #fff;
	text-decoration: underline;
}
/* Botão "Pedir Informação": dourado do modelo (#D1C292, usado no
   cabeçalho/Home Land) com texto branco, muda para azul-marinho no
   hover — mesmo par de cores acordado para os botões do site. */
.fo-hero-box .claudecrm-general-inquiry-submit {
	grid-column: 1 / -1;
	background-color: #D1C292;
	border-color: #D1C292;
	color: #fff;
}
.fo-hero-box .claudecrm-general-inquiry-submit:hover {
	background-color: #000033;
	border-color: #000033;
	color: #fff;
}
@media (max-width: 767px) {
	.fo-hero-banner {
		height: auto;
		min-height: 0;
	}
	.fo-hero-banner-inner {
		padding: 32px 0;
		align-items: flex-start;
	}
	.fo-hero-split {
		/* Caption já vem primeiro na ordem do HTML (trocou de lado com o
		   formulário) — "column" simples mantém a caption em cima no
		   telemóvel, sem precisar de "reverse" como antes. */
		flex-direction: column;
		padding: 0 20px;
		gap: 20px;
	}
	.fo-hero-box {
		flex-basis: auto;
		width: 100%;
	}
	.fo-hero-caption-col {
		text-align: center;
	}
	.fo-hero-box .claudecrm-general-inquiry-form {
		grid-template-columns: 1fr;
	}
	.fo-hero-box .form-group:nth-of-type(2),
	.fo-hero-box .form-group:nth-of-type(3) {
		grid-column: 1 / -1;
	}
}

/* Rodapé sentia-se demasiado alto (100px/70px de origem do Houzez +
   texto do "Sobre" longo) — reduzido para um espaçamento mais compacto,
   estrutural apenas. */
.footer-top-wrap {
	padding: 60px 0 40px;
}

/* Botão "voltar ao topo" em dourado First On — o Houzez não tem opção
   nativa só para este botão, partilha .btn-primary com outros botões que
   ficam a navy, por isso este override tem de ser feito à parte. */
#scroll-top.btn-back-to-top {
	background-color: #D1C292 !important;
	border-color: #D1C292 !important;
}
#scroll-top.btn-back-to-top:hover {
	background-color: #B2A57C !important;
	border-color: #B2A57C !important;
}

/* Bug real do próprio Houzez (confirmado de novo ao voltar à base nativa):
   .grid-view-3-cols, usado pelo [houzez-properties module_type="grid_3_cols"]
   e por toda a grelha de cartões de imóvel (pesquisa, semelhantes, etc.),
   não tem NENHUMA regra CSS a dar-lhe layout de grelha em lado nenhum do
   tema — fica display:block, cartões empilhados a 100% de largura. Fix
   estrutural mínimo, sem cor/tipografia — isso fica para a personalização. */
/* Bug real do próprio Houzez: o carrossel de fotos do cartão (Slick) usa
   JS para definir a altura de cada slide consoante a proporção da SUA
   própria foto (inline style="height:...") — em vez de cartões alinhados,
   cada um fica com uma altura diferente conforme a forma da foto de capa.
   Força-se altura fixa e igual (!important vence o inline do Slick) com
   a foto a preencher/cortar (object-fit:cover), nunca a esticar. */
.listing-gallery-wrap .slick-list {
	height: 260px !important;
}
.listing-gallery-wrap .slide-img img {
	height: 100% !important;
	width: 100% !important;
	object-fit: cover !important;
}

.grid-view-3-cols {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}
@media (max-width: 991px) {
	.grid-view-3-cols {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 575px) {
	.grid-view-3-cols {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Bug real do próprio Houzez: .block-map-wrap não tem altura nenhuma
   definida em main.css para o mapa da secção Morada da ficha de imóvel
   (só existe para a página de Projeto) — sem isto o mapa existe no DOM
   mas fica com 0px de altura, invisível. */
#property-address-wrap .block-map-wrap {
	height: 360px;
}

/* Outro bug real do Houzez: o botão "Other Features" do painel de
   pesquisa avançada vem a branco (pensado para search bars com fundo
   escuro de outras demos) — no nosso painel claro fica texto branco
   sobre fundo branco, invisível. Não encontrámos a regra de origem no
   main.css (o seletor está agrupado com dezenas de outros e o CSSOM não
   a reflete), por isso corrige-se aqui à parte. */
.btn-features-list {
	color: #22222c !important;
}

/* Mesmo bug, mesma causa: os nomes das comodidades dentro da lista
   também vêm a branco (o texto lá estava sempre, só invisível). */
.features-list .control--checkbox {
	color: #22222c !important;
}

/* Etiquetas públicas do Empreendimento (fase de vendas + urgência) —
   canto superior esquerdo da foto de capa, encostadas ao topo (posição
   absoluta, tal como a primeira versão). O breadcrumb/título/endereço
   (ver regra mais abaixo) foram empurrados para a direita, alinhados
   com o fim da caixa "Em Comercialização" — por isso a 2ª etiqueta
   (Últimas Unidades) tem via livre para se estender para a direita sem
   nunca chegar ao texto, sejam quais forem os dois estados presentes. */
.claudecrm-project-badges {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
}

/* Fase de vendas: tamanho da 1ª versão (a que o Herminio gostou) — é
   esta largura que define onde o texto do cabeçalho começa (ver
   $claudecrm-badge-safe-width mais abaixo). */
.claudecrm-badge-pill {
	background-color: #000033;
	color: #D1C292;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 6px 16px;
	border-radius: 0 4px 4px 0;
}

/* Últimas Unidades / Esgotado: mesmo tamanho da pílula de cima (agora
   há espaço à direita para isso, depois de empurrar o texto). */
.claudecrm-badge-flag {
	background-color: #000033;
	color: #D1C292;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 6px 26px 6px 16px;
	clip-path: polygon(0 0, 100% 0, calc(100% - 12px) 50%, 100% 100%, 0 100%);
}

/* Empurra o Caminho + Nome + Localização para a direita, alinhados com
   o fim da caixa "Em Comercialização" (~185px de largura na versão
   atual, arredondado para 200px com margem de segurança) — cria uma
   fronteira vertical fixa entre a coluna das etiquetas e o texto, que
   nenhuma das duas precisa de respeitar em altura. O preço, à direita,
   não é afetado (fica ancorado à direita da mesma linha). */
.property-detail-v2 .breadcrumb,
.property-detail-v2 .property-title-wrap {
	margin-left: 200px;
}

/* Nome do Empreendimento + preço, sobre a foto de capa — a branco lia-se
   mal em fotos claras (o Herminio reparou); dourado tem mais contraste
   sobre praticamente qualquer foto e mantém a paleta da marca. */
.property-detail-v2 .page-title h1,
.property-detail-v2 .property-price-wrap .item-price {
	color: #D1C292;
}

/* Etiquetas nativas de property_status (Venda/Arrendamento/Reservado/
   Vendido/Arrendado) na lista de imóveis e na ficha — por termo, via a
   classe .status-color-{term_id} que o próprio Houzez já gera
   (item-labels.php / property-details/partials/item-labels.php). Cores
   fixadas aqui em vez de pelo seletor de cor do wp-admin do termo —
   opções geridas pelo Redux já provaram reverter sozinhas neste projeto
   (ver "Redux Framework instalado" no README), CSS fixo não tem esse
   risco. IDs fixos desta instalação: 23838 Venda, 23839 Arrendamento,
   24528 Reservado, 24529 Vendido, 24530 Arrendado — se algum dia forem
   apagados e recriados, os IDs mudam e esta lista tem de ser atualizada. */
.status-color-23838,
.status-color-23839 {
	background-color: #D1C292 !important;
	color: #fff !important;
}
.status-color-23838:hover,
.status-color-23839:hover {
	color: #000033 !important;
}
.status-color-24528 {
	background-color: #000033 !important;
	color: #D1C292 !important;
}
.status-color-24528:hover {
	color: #fff !important;
}
.status-color-24529,
.status-color-24530 {
	background-color: #B2A57C !important;
	color: #000033 !important;
}

/* Arquivo de Empreendimentos (/project/, archive-project.php) — mesmo
   bug estrutural do .grid-view-3-cols (ver acima): .listing-view.grid-view
   .card-deck (a grelha nativa que o Houzez usa na sua própria "Template
   Projects Listings", nunca ligada a nenhuma página deste site) também
   não tem NENHUMA regra de grelha - .card-deck é uma classe do Bootstrap
   4, removida no Bootstrap 5.3.3 que este site usa. Pedido do Herminio,
   2026-09-07: cartões de Empreendimento (foto/badge/título/localização/
   preço) ao estilo da concorrência (JLL/DILS/Porta da Frente). */
.claudecrm-projects-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
}
@media (max-width: 991px) {
	.claudecrm-projects-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 575px) {
	.claudecrm-projects-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

.claudecrm-project-card {
	background: #fff;
	border: 1px solid #eee;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: none;
	height: 100%;
	display: flex;
	flex-direction: column;
}
.claudecrm-project-card .item-wrap-v6 {
	display: flex;
	flex-direction: column;
	height: 100%;
}
.claudecrm-project-card .item-header,
.claudecrm-project-card .listing-image-wrap,
.claudecrm-project-card .listing-thumb {
	position: relative;
}
.claudecrm-project-card .listing-thumb img {
	width: 100%;
	height: 220px;
	object-fit: cover;
	display: block;
}
.claudecrm-project-card .item-body {
	padding: 16px 20px 20px;
}
.claudecrm-project-card-title {
	font-family: "Newsreader", serif;
	font-size: 19px;
	line-height: 1.3;
	margin: 0 0 6px;
}
.claudecrm-project-card-title a {
	color: #000033;
}
.claudecrm-project-card-address {
	color: #6b6b6b;
	font-size: 14px;
	margin: 0 0 10px;
}
.claudecrm-project-card-price {
	color: #000033;
	font-weight: 700;
	font-size: 16px;
	margin: 0;
}
/* Dentro do cartão da grelha, a etiqueta fica encostada à foto (canto
   superior esquerdo), não ao layout com o desvio de 200px da ficha
   individual - essa regra (.property-detail-v2 .breadcrumb) não se
   aplica aqui, este cartão nunca teve esse deslocamento. */
.claudecrm-project-card .claudecrm-project-badges {
	top: 12px;
}

/* Popup de galeria em ecrã inteiro (property-details/lightbox.php) —
   2 achados reais, pedido do Herminio, 2026-09-07:
   1. O logótipo do cabeçalho do popup vinha do logo de demonstração do
      próprio Houzez (opção Redux "lightbox_logo", nunca configurada —
      mesma classe de bug de sempre: opção nunca ligada ao Redux seed).
      Corrigido apontando para o mesmo ficheiro branco já usado no
      cabeçalho transparente da homepage (custom_logo_splash).
   2. O fundo do cabeçalho/rodapé (as duas barras finas, #2d2d2d de
      fábrica) trocado para o navy da marca - para não haver nenhum
      preto "genérico" a escapar à paleta. Só o cabeçalho/rodapé, não o
      .modal-content todo (1ª tentativa pintava a caixa inteira, ficava
      escura de mais - apanhado pelo Herminio ao vivo - o corpo do popup
      à volta da foto mantém-se claro, tal como no design original do
      Houzez, só as duas barras finas são navy). */
.property-lightbox .modal-header,
.property-lightbox .modal-footer {
	background-color: #000033 !important;
}

/* Formulários de página inteira das Operações/Contactos no dashboard
   público (houzez-child/template-parts/dashboard/board/operacoes|contactos).
   Reaproveitam a marcação .form-table do wp-admin (a mesma das meta boxes),
   mas essa folha de estilos só carrega no wp-admin — dá-se aqui um
   equivalente mínimo, sem replicar o resto do wp-admin. */
.claudecrm-frontend-form .form-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 24px;
}
.claudecrm-frontend-form .form-table th {
	text-align: left;
	padding: 10px 12px 10px 0;
	width: 220px;
	vertical-align: top;
	font-weight: 600;
	color: #000033;
}
.claudecrm-frontend-form .form-table td {
	padding: 8px 0;
	vertical-align: top;
}
.claudecrm-frontend-form input[type="text"],
.claudecrm-frontend-form input[type="email"],
.claudecrm-frontend-form input[type="date"],
.claudecrm-frontend-form input[type="time"],
.claudecrm-frontend-form input[type="number"],
.claudecrm-frontend-form select,
.claudecrm-frontend-form textarea {
	width: 100%;
	max-width: 420px;
	padding: 8px 10px;
	border: 1px solid #d8d8d8;
	border-radius: 6px;
}
.claudecrm-frontend-form .widefat {
	width: 100%;
}
.claudecrm-frontend-form h2,
.claudecrm-frontend-form h3 {
	margin-top: 28px;
	margin-bottom: 10px;
	color: #000033;
}
.claudecrm-frontend-form table.widefat {
	max-width: 100%;
	border: 1px solid #eee;
}
.claudecrm-frontend-form table.widefat th,
.claudecrm-frontend-form table.widefat td {
	padding: 6px 8px;
}
.claudecrm-frontend-form .description {
	display: block;
	color: #777;
	font-size: 12px;
	margin-top: 4px;
}

/* Logótipo da First On no topo do dashboard (Redux "dashboard_logo") —
   sem esta regra, o ficheiro (1095x273, horizontal) fica ao tamanho real
   dentro da faixa de 64px do Houzez, que não tem nenhum limite de altura
   nativo para esta imagem (mesmo bug já visto no cabeçalho/rodapé do
   site público: o Houzez nunca limita o <img> do logo por CSS). */
.sidebar-logo .logo img {
	max-height: 32px;
	width: auto;
}

/* Botão "Create Listing" (cabeçalho normal, cabeçalho transparente da
   homepage, e nav mobile): fixado a dourado+navy da marca com !important,
   independente das opções Redux que o controlam (header_4_btn_bg_color no
   cabeçalho normal, header_4_transparent_btn_bg_color no transparente,
   houzez_primary_color no mobile) — essas opções já reverteram sozinhas
   para o azul de fábrica do Houzez mais de uma vez (mesma classe de bug
   de opções Redux instáveis documentada no projeto), fazendo o botão
   "voltar" ao azul sem ninguém o ter mudado à mão. Mesmo princípio já
   aplicado ao botão "voltar ao topo" acima: não confiar numa opção
   Redux para uma cor de marca fixa, sobrepor sempre à parte. */
.header-main-wrap .btn-create-listing,
.header-transparent-wrap .header-v4 a.btn-create-listing,
.nav-mobile .btn-create-listing,
.navi-login-register .btn-create-listing,
.btn.btn-create-listing {
	background-color: #D1C292 !important;
	border-color: #D1C292 !important;
	color: #fff !important;
}
.header-main-wrap .btn-create-listing:hover,
.header-main-wrap .btn-create-listing:active,
.header-transparent-wrap .header-v4 a.btn-create-listing:hover,
.header-transparent-wrap .header-v4 a.btn-create-listing:active,
.nav-mobile .btn-create-listing:hover,
.nav-mobile .btn-create-listing:active,
.navi-login-register .btn-create-listing:hover,
.navi-login-register .btn-create-listing:active,
.btn.btn-create-listing:hover,
.btn.btn-create-listing:active {
	background-color: #000033 !important;
	border-color: #000033 !important;
	color: #fff !important;
}

/* Paginação (listagem/pesquisa): números a dourado no hover (incluindo a
   página ativa — o Houzez, sem esta regra, tinha uma combinação própria
   para ".page-item.active .page-link:hover" que ficava fundo navy com
   texto também navy, tornando o número ilegível); setas < > com fundo
   dourado leve (30% de opacidade — 10% confundia-se com o fundo da
   página, também dourado claro) em repouso, subindo para dourado
   sólido mais carregado no hover — mesmo tom #B2A57C já usado no botão
   "voltar ao topo". A 1ª e a última entrada da lista são normalmente as
   setas (estrutura fixa do Houzez), por isso :first-child/:last-child
   identificam-nas sem depender de classes de ícone — mas o Houzez não
   desenha a seta "next" na última página, por isso aí o número ativo
   passa a ser o :last-child; ":not(.active)" nas regras das setas evita
   que herdem o estilo de seta nesse caso. Cor de texto fixada a navy em
   vez de herdar houzez_primary_color, pela mesma razão de estabilidade
   do botão Create Listing acima. */
.pagination-wrap .pagination > .page-item:not(:first-child):not(:last-child) .page-link:hover {
	background-color: #D1C292 !important;
	border-color: #D1C292 !important;
	color: #000033 !important;
}
.pagination-wrap .pagination > .page-item.active .page-link {
	background-color: #000033 !important;
	border-color: #000033 !important;
	color: #fff !important;
}
.pagination-wrap .pagination > .page-item.active .page-link:hover {
	background-color: #D1C292 !important;
	border-color: #D1C292 !important;
	color: #000033 !important;
}
.pagination-wrap .pagination > .page-item:first-child:not(.active) .page-link,
.pagination-wrap .pagination > .page-item:last-child:not(.active) .page-link {
	background-color: rgba(209, 194, 146, 0.3) !important;
	border-color: rgba(209, 194, 146, 0.3) !important;
	color: #000033 !important;
}
.pagination-wrap .pagination > .page-item:first-child:not(.active) .page-link:hover,
.pagination-wrap .pagination > .page-item:last-child:not(.active) .page-link:hover {
	background-color: #B2A57C !important;
	border-color: #B2A57C !important;
	color: #000033 !important;
}

/* Texto de consentimento RGPD (checkbox "I consent to having this
   website store...") herdava o mesmo estilo de label do formulário
   Elementor da homepage — maiúsculas + letter-spacing:4px, pensado para
   labels curtas tipo "NAME"/"EMAIL", mas que numa frase inteira
   transbordava para 2+ linhas e passava dos limites da caixa. Regra
   direta no próprio .gdpr-text-wrap (não no <label> pai) para sobrepor a
   herança sem depender de especificidade — aplica-se a qualquer
   formulário do site que use este componente nativo do Houzez, não só
   à homepage. */
.gdpr-text-wrap {
	font-size: 11px;
	letter-spacing: 0.3px;
	line-height: 1.4;
}

/* Bug real do próprio Houzez, confirmado por leitura de código: no menu
   lateral de edição de imóvel (.menu-edit-property-link, em
   houzez_property.js), clicar num separador só troca de bloco se
   form.valid() (jQuery Validate) passar para os campos visíveis do bloco
   atual — senão devia mostrar ".validate-errors" com o aviso. Mas esse
   aviso é um alerta Bootstrap 5 com a classe "fade" e SEM a classe
   "show" já no HTML (edit-property-form.php); o JS só faz
   errorBlock.show() (jQuery, mexe no display) e nunca acrescenta a
   classe "show" (Bootstrap, mexe na opacidade) — o Bootstrap mantém
   ".fade:not(.show){opacity:0}", por isso o aviso fica com display:block
   mas opacity:0: existe no layout, mas é invisível. Resultado: parece
   que o clique "não faz nada", quando na verdade está bloqueado por um
   campo obrigatório em falta, só que o aviso que o diria nunca se vê.
   Correção mínima: forçar sempre opacity:1 nestes dois avisos — quando
   estão escondidos (display:none, por inline style ou por
   .houzez-hidden) a opacity é irrelevante, por isso isto nunca os torna
   visíveis por engano. */
.validate-errors,
.validate-errors-gal {
	opacity: 1 !important;
}

/* Seleção múltipla + apagar em lote na galeria de fotos do imóvel (ver
   template-parts/dashboard/submit/media.php, override do child theme, e
   assets/js/gallery-bulk-delete.js). */
.claudecrm-bulk-toolbar {
	font-size: 14px;
}
.claudecrm-bulk-toolbar #claudecrm_delete_selected {
	color: #a94442;
	border-color: #a94442;
}
.claudecrm-bulk-toolbar #claudecrm_delete_selected:not(:disabled):hover {
	background-color: #a94442;
	border-color: #a94442;
	color: #fff;
}
/* .property-thumb (coluna Bootstrap) não tem position própria — sem
   isto o checkbox ficava ancorado ao ecrã em vez de à foto. */
.property-thumb {
	position: relative;
}
.claudecrm-thumb-select {
	position: absolute;
	top: 6px;
	left: 6px;
	z-index: 2;
	margin: 0;
	line-height: 0;
}
.claudecrm-thumb-select input[type="checkbox"] {
	width: 20px;
	height: 20px;
	cursor: pointer;
	accent-color: #000033;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.9);
}

/* Barra lateral do dashboard: o Houzez usa um azul-escuro de fábrica
   (#002b4b) que não é o navy da marca, e destaca o item ativo com o azul
   forte de fábrica (#00aeff) em vez de dourado. */
.dashboard-sidebar,
.sidebar-logo {
	background-color: #000033 !important;
}
.nav-box ul li a:hover,
.nav-box ul li a.active {
	background-color: rgba(255, 255, 255, 0.08) !important;
	color: #fff !important;
}
.nav-box ul li a.active {
	border-color: #D1C292 !important;
}

/* Bug real do próprio Houzez: a lista "row list-lined" (Morada:
   Cidade/Distrito/Código Postal/Área/País) é um .row do Bootstrap (flex),
   que por defeito estica todos os itens da mesma linha à altura do mais
   alto (align-items:stretch) — qualquer campo com texto um pouco mais
   comprido (ex.: nomes de Freguesia antes de encurtados para "UDF ...",
   ver data/shorten-udf-terms.php) esticava também o vizinho vazio até à
   mesma altura, dando a sensação de espaço morto enorme. Defensivo, para
   qualquer campo futuro que volte a ter texto comprido. */
.list-lined.row {
	align-items: flex-start;
}

/* Botão "Nota Informativa a Reter" do simulador de crédito: dourado da
   marca em vez de vermelho (pedido explícito — "odeio vermelho") ou do
   cinza pouco chamativo do Bootstrap, para chamar mesmo a atenção para
   o aviso legal por baixo. Mesmo par de cores hover já usado nos outros
   botões dourados do site. */
.claudecrm-notes-toggle {
	background-color: #D1C292;
	border-color: #D1C292;
	color: #000033;
}
.claudecrm-notes-toggle:hover,
.claudecrm-notes-toggle:focus {
	background-color: #000033;
	border-color: #000033;
	color: #fff;
}
.claudecrm-legal-notice {
	padding: 12px 14px;
	border-left: 3px solid #D1C292;
	background-color: rgba(209, 194, 146, 0.12);
	font-size: 13px;
	font-style: italic;
}

/* Paginas legais (Politica de Privacidade #26, Politica de Cookies #18796,
   RAL #18797): os titulos de seccao herdavam o h2 generico do Houzez
   (32px, pensado para heros de landing page) - um documento legal com
   varias seccoes fica visualmente pesado/gritado nesse tamanho. Reduzido
   so nestas paginas, sem tocar no h2 geral do site. */
.page-id-26 .page-content-wrap h2,
.page-id-18796 .page-content-wrap h2,
.page-id-18797 .page-content-wrap h2 {
	font-size: 20px;
	line-height: 1.4;
	margin-top: 28px;
	margin-bottom: 8px;
}
.page-id-26 .page-content-wrap h2:first-of-type,
.page-id-18796 .page-content-wrap h2:first-of-type,
.page-id-18797 .page-content-wrap h2:first-of-type {
	margin-top: 0;
}

/* Cabecalho mobile: decisao deliberada de manter o comportamento nativo
   do Houzez (fundo branco solido + logotipo a cores, sempre, em todas as
   paginas) em vez de replicar a transparencia do desktop. No Houzez, o
   fundo do cabecalho mobile (#header-mobile) e uma opcao Redux global
   (mob_menu_bg_color), sem variacao por pagina como o desktop tem
   (fave_main_menu_trans) - reproduzir a transparencia so na home exigia
   um filtro CSS a converter o logotipo a branco, mais fragil para um
   ganho so estetico. Confirmado a funcionar bem num telemovel real
   (2026-09-05) com o comportamento nativo - decisao explicita de nao
   complicar. Ver README para o raciocinio completo. */

/* Fotos em retrato na galeria da ficha de imóvel (camada v3/v4, a que
   está realmente em uso - ver README): o carrossel principal
   (#property-gallery-js, um slider Slick que o Houzez dimensiona à
   janela) e o herói (#gallery-featured-placeholder) usam object-fit:cover
   a preencher uma caixa de altura fixa - uma foto vertical ficava com a
   maior parte cortada. Descoberta importante: não bastava trocar o
   object-fit - o TAMANHO de imagem registado para esta galeria
   ("houzez-gallery", 1170x785, crop=1) já corta o ficheiro a martelo
   para um retângulo horizontal antes de chegar a esta CSS, destruindo a
   foto vertical na origem. Por isso o PHP (houzez-child/property-details/
   partials/gallery-v3-4.php) pede antes o tamanho "large" do WordPress
   (sem corte) quando a foto é vertical (deteção em houzez-child/inc/
   portrait-photo-fit.php), e só depois esta CSS mostra-a inteira dentro
   da janela, com faixas laterais, em vez de cortada. Fotos em paisagem
   continuam exatamente como estavam. */
.houzez-gallery-img.is-portrait {
	/* !important porque o próprio lightSlider (css/lightslider.css é
	   inócuo, mas o `.lslide img{object-fit:cover}` vive em
	   all-css.min.css) tem a mesma classe de estabilidade das outras
	   opções do Houzez - achado ao vivo com uma foto real do Herminio
	   (FO1), 2026-09-06: o `is-portrait` era aplicado certo, com o
	   tamanho de imagem certo, mas o object-fit não "ganhava" apesar de
	   ter mais especificidade nos meus cálculos - mais seguro forçar. */
	object-fit: contain !important;
	background-color: #000033;
}
#gallery-featured-placeholder img.is-portrait {
	background-color: #000033;
}

/* Mesma correção, para a camada "prop-top-area = v6" (não usada agora,
   mas fica pronta se um dia se mudar de novo - ver overrides em
   houzez-child/property-details/top-area-v6.php e
   partials/gallery-v6.php, mesmo tamanho "houzez-gallery" crop=1). */
.hs-gallery-v4-grid img.is-portrait {
	width: auto !important;
	max-width: 100%;
	height: 100%;
	object-fit: contain;
	margin: 0 auto;
	display: block;
	background-color: #000033;
}
.property-featured-image.is-portrait {
	object-fit: contain !important;
	background-color: #000033;
}

/* Rede de segurança geral: o popup em ecrã inteiro (property-details/
   lightbox.php, carrossel Slick próprio, independente da galeria
   principal) tinha o MESMO problema, só descoberto porque o Herminio
   testou lá também - a foto já vinha sem corte (lightbox.php sempre usou
   o tamanho "full"), mas sem a classe "is-portrait" nem nenhuma regra a
   proteger o object-fit. Em vez de continuar a caçar plugin a plugin
   (lightSlider na galeria, Slick no popup, o que vier a seguir), esta
   regra cobre QUALQUER sítio que use a classe, presente ou futuro. */
img.is-portrait {
	object-fit: contain !important;
	background-color: #000033;
}

/* Recorte "Ver mais/Ver menos" em mobile - Descrição, Features e
   "What's Nearby?" (ver assets/js/collapsible-sections.js). Só ativo
   abaixo do breakpoint md do Bootstrap (768px), o mesmo já usado em todo
   o resto do tema para mobile/desktop - no desktop já há espaço de
   sobra, mostra-se tudo sem clique nenhum.
   Exceção: "What's Nearby?" (.claudecrm-collapsible-wrap--nearby) também
   recorta em desktop - pedido do Herminio, 2026-09-07, com a ficha FO17
   como exemplo: em zonas de cidade a lista de pontos de interesse fica
   enorme mesmo em ecrã largo. Ver bloco @media (min-width:768px) mais
   abaixo, que readiciona o recorte só para esse modificador. */
@media (max-width: 767px) {
	.claudecrm-collapsible-content {
		max-height: 4.5em;
		overflow: hidden;
		position: relative;
	}
	.claudecrm-collapsible-content::after {
		content: '';
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		height: 2em;
		background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #fff);
		pointer-events: none;
	}
	.claudecrm-collapsible-wrap.is-expanded .claudecrm-collapsible-content {
		max-height: none;
	}
	.claudecrm-collapsible-wrap.is-expanded .claudecrm-collapsible-content::after {
		display: none;
	}
	.claudecrm-collapsible-toggle {
		display: inline-block;
		margin-top: 12px;
		background: none;
		border: none;
		padding: 0;
		color: #000033;
		font-weight: 600;
		text-decoration: underline;
		text-underline-offset: 3px;
	}
}
@media (min-width: 768px) {
	.claudecrm-collapsible-toggle {
		display: none !important;
	}

	/* Exceção só para o Nearby, ver comentário acima. */
	.claudecrm-collapsible-wrap--nearby .claudecrm-collapsible-content {
		max-height: 18em;
		overflow: hidden;
		position: relative;
	}
	.claudecrm-collapsible-wrap--nearby .claudecrm-collapsible-content::after {
		content: '';
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		height: 2.5em;
		background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #fff);
		pointer-events: none;
	}
	.claudecrm-collapsible-wrap--nearby.is-expanded .claudecrm-collapsible-content {
		max-height: none;
	}
	.claudecrm-collapsible-wrap--nearby.is-expanded .claudecrm-collapsible-content::after {
		display: none;
	}
	.claudecrm-collapsible-wrap--nearby .claudecrm-collapsible-toggle {
		display: inline-block !important;
		margin-top: 12px;
		background: none;
		border: none;
		padding: 0;
		color: #000033;
		font-weight: 600;
		text-decoration: underline;
		text-underline-offset: 3px;
	}
}

/* Tabela "Unidades neste empreendimento" (ver
   property-details/partials/project-units-table.php) - com 9 colunas de
   dados fica larga demais para a coluna de conteúdo (col-lg-8), que é mais
   estreita que a página toda por causa da sidebar fixa ao lado. Apanhado
   pelo Herminio ao vivo, 2026-09-07: sem isto a tabela ficava mais larga
   que o espaço disponível e passava visualmente por baixo da caixa do
   formulário. Fonte e espaçamento mais compactos + .table-responsive (já
   do Bootstrap, só a dar scroll horizontal como último recurso em vez de
   overlap) resolvem sem mexer no "Sub Listings" nativo do Houzez, que
   continua a usar o tamanho normal noutros sítios. */
.claudecrm-units-table-wrap {
	overflow-x: auto;
}
.claudecrm-units-table {
	font-size: 0.75rem;
	table-layout: fixed;
	width: 100%;
}
.claudecrm-units-table th,
.claudecrm-units-table td {
	padding: 5px 4px;
}
.claudecrm-units-table th {
	/* Até 2026-09-20 isto tinha nowrap desligado de propósito, para
	   títulos largos ("Área Exterior") quebrarem em 2 linhas e a tabela
	   toda encolher. Substituído agora por larguras fixas por coluna
	   (abaixo) - com elas, cada título cabe numa linha só sem precisar
	   de quebrar, que é o que o Herminio pediu ao ver a 1ª unidade real;
	   o overflow-x:auto do wrapper à volta continua a proteger ecrãs
	   muito estreitos. */
	white-space: nowrap;
}
.claudecrm-units-table td {
	white-space: nowrap;
}
/* Larguras por coluna (somam 100%) - Natureza é a âncora, com espaço
   para a maior designação prevista ("Moradia Independente"); Preço
   com espaço até 90.000.000€ (testado no pior caso: 992px, a largura
   mais estreita em que a tabela ainda não empilha para mobile); Plantas
   só mostra um ícone pequeno quando preenchido, por isso fica com a
   coluna mais estreita de todas. Reajustado ao vivo, 2026-09-20 (3ª
   volta), medido por JS no browser em vez de adivinhado. */
.claudecrm-units-table th:nth-child(1),  .claudecrm-units-table td:nth-child(1)  { width: 22%; }
.claudecrm-units-table th:nth-child(2),  .claudecrm-units-table td:nth-child(2)  { width: 7%; }
.claudecrm-units-table th:nth-child(3),  .claudecrm-units-table td:nth-child(3)  { width: 6%; }
.claudecrm-units-table th:nth-child(4),  .claudecrm-units-table td:nth-child(4)  { width: 6%; }
.claudecrm-units-table th:nth-child(5),  .claudecrm-units-table td:nth-child(5)  { width: 10%; }
.claudecrm-units-table th:nth-child(6),  .claudecrm-units-table td:nth-child(6)  { width: 10%; }
.claudecrm-units-table th:nth-child(7),  .claudecrm-units-table td:nth-child(7)  { width: 5%; }
.claudecrm-units-table th:nth-child(8),  .claudecrm-units-table td:nth-child(8)  { width: 15%; }
.claudecrm-units-table th:nth-child(9),  .claudecrm-units-table td:nth-child(9)  { width: 5%; }
.claudecrm-units-table th:nth-child(10), .claudecrm-units-table td:nth-child(10) { width: 14%; }
/* Preço e áreas alinhados à direita (colunas Área Bruta, Área Exterior, Preço) - pedido do Herminio, 2026-09-13 */
.claudecrm-units-table th:nth-child(5),
.claudecrm-units-table td:nth-child(5),
.claudecrm-units-table th:nth-child(6),
.claudecrm-units-table td:nth-child(6),
.claudecrm-units-table th:nth-child(8),
.claudecrm-units-table td:nth-child(8) {
	text-align: right;
}
/* Tipologia/Piso/Fração/Parque./Plantas centrados - título E valor, os
   dois, para ficarem alinhados entre si (só o valor não bastava, o
   título "Piso" ficava à esquerda enquanto o "0" por baixo ficava ao
   centro - apanhado pelo Herminio, 2026-09-20). Plantas entra aqui
   também porque só tem um ícone pequeno, nunca texto. */
.claudecrm-units-table th:nth-child(2),
.claudecrm-units-table td:nth-child(2),
.claudecrm-units-table th:nth-child(3),
.claudecrm-units-table td:nth-child(3),
.claudecrm-units-table th:nth-child(4),
.claudecrm-units-table td:nth-child(4),
.claudecrm-units-table th:nth-child(7),
.claudecrm-units-table td:nth-child(7),
.claudecrm-units-table th:nth-child(9),
.claudecrm-units-table td:nth-child(9) {
	text-align: center;
}
.claudecrm-units-table .btn {
	padding: 3px 6px;
	font-size: 0.68rem;
	white-space: nowrap;
}

/* QR Code no dropdown dos ícones da ficha (ver property-details/partials/
   tools.php) - sem isto a imagem aparece ao tamanho nativo devolvido pelo
   serviço externo (bem maior do que um ícone de dropdown precisa).
   Apanhado pelo Herminio ao vivo, 2026-09-14. */
.claudecrm-qr-dropdown {
	padding: 12px;
	text-align: center;
}
.claudecrm-qr-dropdown img {
	width: 140px;
	height: 140px;
}
.claudecrm-qr-dropdown-label {
	margin-top: 8px;
	font-size: 0.8rem;
	color: #6b7280;
	max-width: 140px;
}

/* Logo da brochura ("Imprimir" nativo do Houzez, .print-logo-wrap) sem
   nenhum limite de tamanho no CSS do próprio Houzez (confirmado por
   busca - nenhuma regra para .print-logo-wrap img em lado nenhum) -
   imprimia ao tamanho real do ficheiro (1797x470px, quase metade da
   altura da folha). Apanhado pelo Herminio ao vivo, 2026-09-14. */
.print-page .print-logo-wrap img {
	max-height: 50px;
	width: auto;
}

/* Paginação da brochura ("Imprimir" nativo do Houzez) - o tema não tem
   NENHUMA regra page-break/break-inside em lado nenhum do CSS
   (confirmado por busca), por isso o browser corta o conteúdo onde
   calhar em vez de respeitar as secções - um título pode ficar sozinho
   no fundo de uma folha com o conteúdo todo a saltar para a seguinte,
   ou uma imagem cortada a meio. Apanhado pelo Herminio ao vivo,
   2026-09-14. `break-inside: avoid` só funciona quando a secção cabe
   inteira numa folha (uma descrição muito longa ou uma planta grande
   continuam a poder ser cortadas - é uma limitação física do CSS de
   impressão, não desta regra) - mas resolve o caso comum de secções
   curtas (Detalhes, Características, Contacto, cada planta) que hoje
   partem sem motivo nenhum. */
@media print {
	.print-page .print-section,
	.print-page .print-banner-wrap,
	.print-page .print-agent-info-wrap,
	.print-page .floor-plan-wrap {
		break-inside: avoid;
		page-break-inside: avoid;
	}
	.print-page h2.print-title {
		break-after: avoid;
		page-break-after: avoid;
	}

	/* Cores desaparecem ao imprimir/exportar para PDF (confirmado pelo
	   Herminio: a versão digital, antes de mandar imprimir, mostra as
	   cores certas - ex. a barra da Classe Energética; só ao imprimir a
	   sério é que ficam a preto e branco) - comportamento por omissão do
	   Chrome, que remove fundos coloridos ao imprimir para poupar tinto,
	   a menos que se peça explicitamente o contrário. */
	.print-page,
	.print-page * {
		-webkit-print-color-adjust: exact !important;
		print-color-adjust: exact !important;
		color-adjust: exact !important;
	}
}

/* Toggle "Reservar / Saber Mais" no modal (ver
   partials/project-unit-inquiry-modal.php) - usa as classes normais do
   Bootstrap (.btn-check + .btn-outline-primary), que o Houzez nunca
   reestiliza (as cores da marca aqui são todas por classes próprias
   dele, tipo .btn-primary-outlined, nunca a variável --bs-primary do
   Bootstrap) - por isso ficava sempre no azul genérico do Bootstrap em
   vez do navy da marca. Apanhado pelo Herminio ao vivo, 2026-09-07. */
#claudecrm-unit-inquiry-modal .btn-outline-primary {
	color: #000033 !important;
	border-color: #000033 !important;
}
#claudecrm-unit-inquiry-modal .btn-outline-primary:hover,
#claudecrm-unit-inquiry-modal .btn-check:checked + .btn-outline-primary,
#claudecrm-unit-inquiry-modal .btn-outline-primary.active,
#claudecrm-unit-inquiry-modal .btn-outline-primary:active {
	background-color: #000033 !important;
	border-color: #000033 !important;
	color: #fff !important;
}

/* Formulário de pesquisa (widget Elementor "Houzez Advanced Search",
   colocado na homepage) - vinha todo com as cores genéricas do
   Bootstrap/Houzez (azul #004274 no botão de mais filtros, texto cinza
   nos campos, item selecionado do dropdown ilegível a branco sobre
   branco). Alinhado aqui com a paleta navy/dourado do resto do site
   (ver feedback_houzez_gold_navy_everywhere na memória do Claude),
   2026-09-15. Scoped a `.houzez-search-builder-wrapper` (a classe do
   próprio widget) e não à página, para servir qualquer sítio onde este
   mesmo formulário venha a ser reutilizado. */
.houzez-search-builder-wrapper input.form-control,
.houzez-search-builder-wrapper input.elementor-field {
	color: #000033 !important;
	/* Não basta um background-color translúcido sozinho: o <input> não
	   tem nenhum fundo opaco próprio por trás (ao contrário do botão do
	   dropdown a seguir, que já vem com um branco sólido do Bootstrap por
	   baixo) - o mesmo dourado a 30% ficava a compor diretamente sobre a
	   foto (escura nalgumas zonas), parecendo "lavado", enquanto o
	   dropdown parecia sólido. Achado ao vivo pelo Herminio, 2026-09-16,
	   comparando os dois lado a lado. Corrigido empilhando o dourado
	   como `background-image` (gradiente liso) por cima de um
	   `background-color` branco sólido próprio - o resultado fica sempre
	   igual, independente do que estiver por trás. Ajustado para 30%
	   (voltou de 50%, confirmado com o Herminio, 2026-09-16 - o branco
	   sólido por trás fica, só a opacidade do dourado por cima é que
	   desceu). */
	background-image: linear-gradient(rgba(209, 194, 146, 0.3), rgba(209, 194, 146, 0.3)) !important;
	background-color: #fff !important;
}
.houzez-search-builder-wrapper input.form-control::placeholder,
.houzez-search-builder-wrapper input.elementor-field::placeholder {
	/* 2ª tentativa (2026-09-16) foi navy a 55% - ainda esbatido a sério,
	   o Herminio voltou a reportar exatamente o mesmo em 2026-09-17
	   (3ª vez) comparando com o texto dos dropdowns ao lado ("All
	   Cities" etc.), que é sólido porque não é placeholder - não tem
	   opacidade nenhuma, é `color:#000033` normal. Qualquer opacidade
	   < 100% neste sítio específico lê-se sempre como "esbatido" em
	   comparação direta com esses dropdowns na mesma linha. Corrigido a
	   sério desta vez: navy 100% sólido, sem opacidade nenhuma, igual
	   ao texto dos dropdowns - deixa de haver a categoria visual
	   "placeholder mais claro" neste formulário. */
	color: #000033;
	opacity: 1;
}
.houzez-search-builder-wrapper input.form-control:focus,
.houzez-search-builder-wrapper input.elementor-field:focus {
	border-color: #D1C292 !important;
	box-shadow: 0 0 0 0.2rem rgba(209, 194, 146, 0.35) !important;
}

/* Botões fechados dos dropdowns (bootstrap-select: All Cities/Types/
   Status/Price/Bedrooms/Bathrooms) - texto sempre navy, mesmo no estado
   placeholder (vinha cinza-claro genérico), fundo dourado a 30% (mesma
   técnica de gradiente sobre branco sólido do bloco acima, para ficar
   pixel a pixel igual aos campos de texto) em vez do branco, borda
   dourada em foco/aberto em vez do azul por omissão do Bootstrap. */
.houzez-search-builder-wrapper .bootstrap-select .btn,
.houzez-search-builder-wrapper .bootstrap-select .btn.bs-placeholder {
	color: #000033 !important;
	background-image: linear-gradient(rgba(209, 194, 146, 0.3), rgba(209, 194, 146, 0.3)) !important;
	background-color: #fff !important;
}
.houzez-search-builder-wrapper .bootstrap-select.show .btn,
.houzez-search-builder-wrapper .bootstrap-select .btn:focus {
	border-color: #D1C292 !important;
	box-shadow: 0 0 0 0.2rem rgba(209, 194, 146, 0.35) !important;
}

/* Menu aberto dos dropdowns - item normal já vinha navy (Houzez trata
   isto por omissão), mas o hover era o azul do Bootstrap e o item
   selecionado (.active.selected) ficava branco sobre fundo branco,
   ilegível - achado ao vivo ao testar este formulário, 2026-09-15. */
.houzez-search-builder-wrapper .dropdown-item:hover,
.houzez-search-builder-wrapper .dropdown-item:focus {
	background-color: #D1C292 !important;
	color: #000033 !important;
}
.houzez-search-builder-wrapper .dropdown-item.active,
.houzez-search-builder-wrapper .dropdown-item.selected {
	background-color: #000033 !important;
	color: #fff !important;
}
.houzez-search-builder-wrapper .dropdown-item.active .text,
.houzez-search-builder-wrapper .dropdown-item.selected .text {
	/* O texto vive num <span class="text"> com cor navy própria (Houzez) -
	   é essa cor, não a do <a> pai, que se via de facto. Sem isto o
	   branco que se põe acima nunca chega ao texto, e fica navy sobre
	   navy - ilegível. Achado ao vivo depois do Herminio confirmar que a
	   correção anterior (só no <a>) continuava sem efeito, 2026-09-15. */
	color: #fff !important;
}
.houzez-search-builder-wrapper .bs-actionsbox .btn {
	color: #000033 !important;
	border-color: #D1C292 !important;
}
.houzez-search-builder-wrapper .bs-actionsbox .btn:hover {
	background-color: #D1C292 !important;
	color: #000033 !important;
}
.houzez-search-builder-wrapper input[type="checkbox"] {
	accent-color: #000033;
}

/* Botão "mais filtros" (ícone de sliders) e botão "Search" - pedido do
   Herminio, 2026-09-15: dourado padrão do Houzez (igual ao "Create a
   Listing" do cabeçalho, #D1C292) com texto navy, e no hover trocar
   para navy com texto branco - o inverso do que aqui esteve primeiro
   (navy base/dourado hover), que não correspondia ao padrão do resto do
   site (botões dourados viram navy no hover, não o oposto - ver
   feedback_houzez_gold_navy_everywhere na memória do Claude). O
   "Search" já vinha navy/branco por omissão do Houzez; passou a ser
   sobreposto também. */
.houzez-search-builder-wrapper .advanced-search-btn,
.houzez-search-builder-wrapper .houzez-search-button {
	background-color: #D1C292 !important;
	border-color: #D1C292 !important;
	color: #000033 !important;
}
.houzez-search-builder-wrapper .advanced-search-btn:hover,
.houzez-search-builder-wrapper .houzez-search-button:hover {
	background-color: #000033 !important;
	border-color: #000033 !important;
	color: #fff !important;
}

/* Botão "Clear" - a borda dourada já vinha certa (opção do Houzez),
   só o texto (cinza genérico) e o hover (nenhum) ficavam por
   configurar. */
.houzez-search-builder-wrapper .reset-search-btn {
	color: #000033 !important;
}
.houzez-search-builder-wrapper .reset-search-btn:hover {
	background-color: #D1C292 !important;
	border-color: #D1C292 !important;
	color: #000033 !important;
}

/* Hero da homepage ("Home With Caption Form", página 17232) em mobile -
   "Bem-vindo à First On" + "Onde as decisões se transformam em valor."
   ficavam quase invisíveis (texto branco liso sobre a parte de céu/claro
   da foto de fundo). Causa: no desktop esta secção mostra um vídeo de
   fundo (elementor-hidden-mobile no container do vídeo), que em mobile
   cai para a foto estática por trás, sem o mesmo contraste. Duas
   tentativas anteriores não resolveram, confirmado ao vivo,
   2026-09-15: (1) só text-shadow/contorno no texto - fica ténue de mais
   contra o céu; (2) reforçar o overlay `::before` do Elementor por cima
   (mais opaco, sem mix-blend-mode) - o valor computado (getComputedStyle)
   confirmava a alteração aplicada, mas visualmente continuava sem
   efeito - o próprio Elementor deve pintar a foto de fundo por cima
   desse pseudo-elemento nalguma camada que o DevTools não mostra à
   primeira. Em vez de continuar a caçar a camada certa, solução robusta
   e à prova de falhas: fundo sólido semi-opaco atrás do PRÓPRIO texto
   (não da secção toda) - deixa de depender de perceber a pintura exata
   do Elementor. `.page-id-17232` + o ID do próprio elemento, para não
   afetar outras secções da mesma página.

   **Revisto, 2026-09-16**: a caixa navy funcionava mas o Herminio achou
   o resultado demasiado "em caixa". Trocado por texto dourado (mesmo
   `#D1C292` já usado nativamente pelo Houzez no título das fichas de
   Empreendimento sobre foto - ver `single-project.php`/template nativo,
   cor confirmada ao vivo por getComputedStyle) + bold, sem fundo
   nenhum - mais discreto e já é o padrão que o resto do site usa para
   texto sobre fotografia. */
@media (max-width: 767px) {
	.page-id-17232 .elementor-element-bad2754 .elementor-heading-title {
		color: #D1C292 !important;
		font-weight: 700 !important;
	}
}
