/*
Theme Name: Astra Carteri Child
Theme URI: https://carteriimoveis.com.br
Description: Child theme para aplicar a identidade visual da Carteri Imoveis com seguranca de atualizacao do tema pai.
Author: Carteri Imoveis
Template: astra
Version: 1.3.4
Text Domain: astra-carteri-child
*/

/**
 * Paleta institucional extraida do logo oficial.
 *
 * Decisao tecnica:
 * - Centralizar tokens em CSS variables para manter consistencia visual.
 * - Evitar sobrescritas agressivas para reduzir risco de regressao no tema Astra.
 */
:root {
  /* Tons extraídos do ícone da logo Carteri */
  --carteri-logo-peach: #fde8d1;
  --carteri-logo-terracotta: #d47c54;
  --carteri-logo-brick: #a2472e;

  --carteri-color-white: #fefefe;
  --carteri-color-text: #000000;
  --carteri-color-beige: var(--carteri-logo-peach);
  --carteri-color-red: var(--carteri-logo-brick);
  --carteri-color-orange: var(--carteri-logo-terracotta);
  --carteri-color-orange-alt: #c96a45;
  --carteri-color-gray: #6b6b6b;

  /* Aliases usados em hero, header ao scroll, busca e rodapé */
  --carteri-navy: var(--carteri-logo-brick);
  --carteri-navy-mid: var(--carteri-logo-terracotta);
  --carteri-navy-soft: #e0956a;
  --carteri-ice: #fef6ed;
  --carteri-ice-deep: #f0dcc8;

  /**
   * Sobrescrita dos tokens globais do Astra.
   *
   * Motivo da decisao:
   * - O roxo do layout vem de variaveis globais do tema.
   * - Trocar os tokens evita CSS agressivo por seletor e preserva estrutura.
   */
  --ast-global-color-0: var(--carteri-logo-brick);
  --ast-global-color-1: var(--carteri-logo-terracotta);
  --ast-global-color-2: var(--carteri-color-text);
  --ast-global-color-3: #5c4a42;
  --ast-global-color-4: #ffffff;
  --ast-global-color-5: #fef8f2;
}

.entry-content a {
  color: var(--carteri-color-red);
}

.entry-content a:hover,
.entry-content a:focus {
  color: var(--carteri-color-orange);
}

.ast-button,
.button,
button,
input[type="button"],
input[type="submit"],
input[type="reset"] {
  background-color: var(--carteri-color-red);
  border-color: var(--carteri-color-red);
  color: var(--carteri-color-white);
}

.ast-button:hover,
.ast-button:focus,
.button:hover,
.button:focus,
button:hover,
button:focus,
input[type="button"]:hover,
input[type="button"]:focus,
input[type="submit"]:hover,
input[type="submit"]:focus,
input[type="reset"]:hover,
input[type="reset"]:focus {
  background-color: var(--carteri-color-orange);
  border-color: var(--carteri-color-orange);
}

/**
 * Normaliza overlays para remover a tonalidade roxa no site.
 *
 * Motivo da decisao:
 * - O Elementor pode injetar cor/gradiente inline por secao.
 * - O uso de !important aqui e intencional para garantir prevalencia
 *   apenas na camada de overlay, sem alterar estrutura do layout.
 */
.elementor-section .elementor-background-overlay,
.elementor-column .elementor-background-overlay,
.elementor-widget-wrap > .elementor-background-overlay,
.ast-img-color-filter {
  background-color: rgba(162, 71, 46, 0.28) !important;
  background-image: none !important;
  opacity: 1 !important;
  transition: none !important;
}

/**
 * Fallback adicional para wrappers de fundo do Elementor/Astra.
 *
 * Motivo da decisao:
 * - Alguns blocos aplicam overlay por pseudo-camada ou wrapper interno.
 * - Este bloco garante a substituicao do roxo sem alterar estrutura.
 */
.elementor-section[class*="elementor-element"] > .elementor-container::before,
.elementor-section[class*="elementor-element"] > .elementor-background-overlay::before,
.elementor-section .elementor-background-slideshow + .elementor-background-overlay {
  background-color: rgba(162, 71, 46, 0.28) !important;
  background-image: none !important;
}

/**
 * Container do bloco "Need Help? / Message Us" na home.
 *
 * Motivo da decisao:
 * - Este bloco vem do Spectra/UAGB e aplica overlay proprio.
 * - Ajuste pontual para trocar roxo por tom da marca sem afetar outros blocos.
 */
.uagb-block-8fdafca1::before,
.uagb-block-8fdafca1 > .uagb-container-inner-blocks-wrap::before {
  background: rgba(162, 71, 46, 0.28) !important;
  background-image: none !important;
}

/**
 * Container da secao "WHO WE ARE / About Us".
 *
 * Motivo da decisao:
 * - Secao ainda estava herdando tonalidade roxa no overlay.
 * - Ajuste pontual preserva os demais blocos da pagina.
 */
.uagb-block-dd2de6c0::before,
.uagb-block-dd2de6c0 > .uagb-container-inner-blocks-wrap::before {
  background: rgba(162, 71, 46, 0.28) !important;
  background-image: none !important;
}

/**
 * Container da secao "What Are You Looking For?".
 *
 * Motivo da decisao:
 * - Ultimo bloco com overlay roxo remanescente na home.
 * - Mantem consistencia com o mesmo tom aplicado nas secoes anteriores.
 */
.uagb-block-fc3ddbf6::before,
.uagb-block-fc3ddbf6 > .uagb-container-inner-blocks-wrap::before {
  background: rgba(162, 71, 46, 0.28) !important;
  background-image: none !important;
}

/**
 * Logo institucional no header (substitui imagem do Customizer).
 *
 * Motivo da decisao:
 * - `opacity: 0` na <img> mantinha a caixa intrinseca da midia no fluxo flex;
 *   o link com `background` tinha outro tamanho — o header “respirava” e a
 *   marca parecia mudar de sitio ao redimensionar.
 * - Slot com largura/altura fixas (com um unico salto opcional em breakpoint)
 *   + `img { display:none }` remove a competicao de caixas.
 * - `.site-branding` / secao esquerda com `flex: 0 0 auto` evita compressao
 *   estranha ao lado do menu.
 */
.site-header-primary-section-left .site-branding,
.site-header-primary-section-left .ast-site-identity,
.ast-primary-header-bar .site-branding,
.ast-primary-header-bar .ast-site-identity {
  flex: 0 0 auto;
  align-self: center;
  line-height: 0;
}

.ast-site-identity {
  display: flex;
  align-items: center;
}

.ast-site-identity .custom-logo-link {
  position: relative;
  display: block;
  box-sizing: border-box;
  flex-shrink: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
  width: 168px;
  height: 56px;
  line-height: 0;
  text-decoration: none !important;
  background-image: url("assets/logo-carteri.png");
  background-repeat: no-repeat;
  background-position: left center;
  background-size: contain;
}

@media (min-width: 922px) {
  .ast-site-identity .custom-logo-link {
    width: 220px;
    height: 72px;
  }
}

.ast-site-identity .custom-logo-link img,
.ast-site-identity .custom-logo-link .custom-logo,
.ast-site-identity .site-logo-img img,
.ast-site-identity .custom-logo {
  display: none !important;
}

/**
 * Botao de telefone da hero (bloco UAGB especifico).
 *
 * Motivo da decisao:
 * - Aplicar cor apenas no CTA com telefone para evitar efeito colateral
 *   em outros botoes da home.
 */
.uagb-block-a7727fa5 .uagb-buttons-repeater.wp-block-button__link,
.uagb-block-fad475cf .uagb-buttons-repeater.wp-block-button__link {
  background-color: var(--carteri-logo-terracotta) !important;
  border-color: var(--carteri-logo-terracotta) !important;
  color: #ffffff !important;
}

.uagb-block-a7727fa5 .uagb-buttons-repeater.wp-block-button__link:hover,
.uagb-block-a7727fa5 .uagb-buttons-repeater.wp-block-button__link:focus,
.uagb-block-fad475cf .uagb-buttons-repeater.wp-block-button__link:hover,
.uagb-block-fad475cf .uagb-buttons-repeater.wp-block-button__link:focus {
  background-color: var(--carteri-logo-brick) !important;
  border-color: var(--carteri-logo-brick) !important;
  color: #ffffff !important;
}

/**
 * Linha de endereco abaixo do telefone na hero.
 *
 * Motivo da decisao:
 * - Posiciona o endereco com boa leitura sem competir com o titulo principal.
 * - Mantem consistencia visual com a paleta do projeto.
 */
.uagb-block-b81bac4b .carteri-address-line {
  margin-top: 10px;
  max-width: 520px;
  font-size: 14px;
  line-height: 1.45;
  font-weight: 500;
  color: #fefefe;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.28);
}

/**
 * Mantem o CTA de telefone da hero no alinhamento original do layout.
 *
 * Motivo da decisao:
 * - O usuario solicitou reverter somente o botao inicial para a posicao anterior.
 */
.uagb-block-fad475cf .uagb-buttons__wrap {
  justify-content: flex-start !important;
}

/**
 * Centraliza o telefone do bloco final (icone + numero).
 *
 * Motivo da decisao:
 * - O usuario reportou desalinhamento no telefone inferior.
 * - Escopo restrito ao bloco de icone list para nao afetar a hero.
 */
.uagb-block-4f4ffc1f,
.uagb-block-4f4ffc1f .uagb-icon-list__wrap,
.uagb-block-4f4ffc1f .uagb-icon-list__label {
  text-align: center !important;
}

.uagb-block-4f4ffc1f .uagb-icon-list__wrap {
  display: flex !important;
  justify-content: center !important;
}

/**
 * Cards de plataformas na secao Trusted by.
 *
 * Motivo da decisao:
 * - Substitui logos genericas por links reais para perfis da imobiliaria.
 * - Mantem estetica consistente com a paleta da marca.
 */
.uagb-block-06b588ad .carteri-platform-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(140px, 1fr));
  gap: 14px;
  width: 100%;
}

.uagb-block-06b588ad .carteri-platform-card {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid rgba(255, 255, 255, 0.32);
  border-radius: 10px;
  background: var(--carteri-logo-terracotta);
  color: #ffffff !important;
  text-decoration: none !important;
  transition: transform 0.2s ease, background-color 0.2s ease;
}

.uagb-block-06b588ad .carteri-platform-card:hover,
.uagb-block-06b588ad .carteri-platform-card:focus {
  background: var(--carteri-logo-brick);
  transform: translateY(-1px);
}

.uagb-block-06b588ad .carteri-platform-icon {
  display: inline-flex;
  width: 28px;
  height: 28px;
}

.uagb-block-06b588ad .carteri-platform-icon svg {
  width: 28px;
  height: 28px;
  stroke: #ffffff;
  fill: transparent;
  stroke-width: 3;
}

.uagb-block-06b588ad .carteri-platform-icon svg text {
  fill: #ffffff;
  font-size: 16px;
  font-weight: 700;
  font-family: Arial, sans-serif;
  letter-spacing: 0.8px;
}

.uagb-block-06b588ad .carteri-platform-label {
  font-size: 14px;
  font-weight: 600;
  color: #ffffff;
}

@media (max-width: 921px) {
  .uagb-block-06b588ad .carteri-platform-links {
    grid-template-columns: 1fr;
  }
}

/**
 * =====================================================================
 * CTA Pill - botao reutilizavel de chamada para acao.
 * =====================================================================
 *
 * Decisao tecnica:
 * - Centraliza o estilo do CTA principal (pilula com gradiente) em uma
 *   classe utilitaria reutilizavel, removendo a necessidade de CSS
 *   inline dentro do conteudo das paginas.
 * - Mantem o seletor antigo .cti-about-cta__button como alias para
 *   nao quebrar a pagina Sobre nos enquanto o conteudo nao for migrado
 *   para a nova classe no editor de blocos.
 *
 * Como usar no painel:
 * - Selecionar o bloco do botao no editor (Spectra/Gutenberg).
 * - Em "Avancado > Classe(s) CSS adicional(is)", adicionar:
 *     carteri-cta-pill
 * - Salvar e atualizar a pagina.
 *
 * Auto-icone do WhatsApp:
 * - Se o href do link contiver "wa.me" ou "api.whatsapp.com", o icone
 *   oficial do WhatsApp e injetado automaticamente antes do texto.
 * - Sem dependencia de plugin ou request HTTP (SVG embedado).
 */
.carteri-cta-pill,
.cti-about-cta__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 34px;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--carteri-color-white) !important;
  text-decoration: none !important;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--carteri-color-orange) 0%, var(--carteri-color-red) 100%);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.25);
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.3s ease;
  cursor: pointer;
}

.carteri-cta-pill:hover,
.carteri-cta-pill:focus,
.cti-about-cta__button:hover,
.cti-about-cta__button:focus {
  background: linear-gradient(135deg, var(--carteri-color-red) 0%, var(--carteri-color-orange) 100%);
  transform: translateY(-2px);
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.3);
  color: var(--carteri-color-white) !important;
  text-decoration: none !important;
}

/**
 * Icone do WhatsApp injetado automaticamente em links wa.me / api.whatsapp.com.
 *
 * Decisao tecnica:
 * - Uso de mask-image com SVG embedado (data-uri) para que o icone
 *   herde a cor do texto via "background-color: currentColor", evitando
 *   manter dois SVGs (um claro e um escuro) e respeitando hover/foco.
 * - Seletor de atributo [href*=] limita a aplicacao apenas aos links
 *   reais do WhatsApp; outros CTAs ficam sem icone sem precisar de
 *   classe extra.
 */
.carteri-cta-pill[href*="wa.me"]::before,
.carteri-cta-pill[href*="api.whatsapp.com"]::before,
.cti-about-cta__button[href*="wa.me"]::before,
.cti-about-cta__button[href*="api.whatsapp.com"]::before {
  content: "";
  display: inline-block;
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.149-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.501-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 0 1-5.031-1.378l-.361-.214-3.741.982.999-3.648-.235-.374a9.86 9.86 0 0 1-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 0 1 2.893 6.994c-.003 5.45-4.437 9.884-9.886 9.884m8.413-18.297A11.815 11.815 0 0 0 12.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 0 0 5.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 0 0-3.48-8.413Z'/></svg>");
          mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.149-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.501-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 0 1-5.031-1.378l-.361-.214-3.741.982.999-3.648-.235-.374a9.86 9.86 0 0 1-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 0 1 2.893 6.994c-.003 5.45-4.437 9.884-9.886 9.884m8.413-18.297A11.815 11.815 0 0 0 12.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 0 0 5.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 0 0-3.48-8.413Z'/></svg>");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: contain;
          mask-size: contain;
}

/**
 * =====================================================================
 * Balao flutuante (FAB) do WhatsApp.
 * =====================================================================
 *
 * Decisao tecnica:
 * - Posicao fixed no canto inferior direito (padrao consagrado em
 *   sites de imobiliarias brasileiras).
 * - Verde oficial WhatsApp (#25D366) para reconhecimento imediato.
 * - Pulso sutil via box-shadow no pseudo-elemento ::before (nao captura
 *   eventos de clique, nao interfere na area clicavel).
 * - Tooltip via ::after revelado no hover/focus (desktop apenas).
 * - z-index elevado para sobrepor banners de cookie/popups.
 * - Respeita prefers-reduced-motion (acessibilidade WCAG 2.2 AA).
 */
.carteri-whatsapp-fab {
  position: fixed;
  right: max(24px, env(safe-area-inset-right, 0px));
  bottom: max(24px, env(safe-area-inset-bottom, 0px));
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background-color: #25D366;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  z-index: 2147483646 !important;
  isolation: isolate;
  pointer-events: auto;
  color: #ffffff !important;
  text-decoration: none !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.carteri-whatsapp-fab:hover,
.carteri-whatsapp-fab:focus {
  background-color: #1ebe5d;
  transform: scale(1.05);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.30);
  color: #ffffff !important;
  text-decoration: none !important;
}

.carteri-whatsapp-fab:focus-visible {
  outline: 3px solid #ffffff;
  outline-offset: 3px;
}

.carteri-whatsapp-fab::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.55);
  animation: carteri-whatsapp-pulse 2.5s infinite;
  pointer-events: none;
}

@keyframes carteri-whatsapp-pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.55);
  }
  70% {
    box-shadow: 0 0 0 18px rgba(37, 211, 102, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(37, 211, 102, 0);
  }
}

.carteri-whatsapp-fab__icon {
  display: inline-flex;
  width: 32px;
  height: 32px;
  position: relative;
  z-index: 1;
}

.carteri-whatsapp-fab__icon svg {
  width: 100%;
  height: 100%;
  fill: #ffffff;
}

/**
 * Tooltip do balao (desktop).
 *
 * Motivo:
 * - Texto do tooltip vem do atributo data-tooltip no HTML, mantendo o
 *   conteudo editavel em um unico lugar (functions.php).
 */
.carteri-whatsapp-fab::after {
  content: attr(data-tooltip);
  position: absolute;
  right: calc(100% + 12px);
  top: 50%;
  transform: translateY(-50%);
  background-color: #1F1B1C;
  color: #ffffff;
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
}

.carteri-whatsapp-fab:hover::after,
.carteri-whatsapp-fab:focus::after {
  opacity: 1;
}

@media (max-width: 600px) {
  .carteri-whatsapp-fab {
    right: max(16px, env(safe-area-inset-right, 0px));
    bottom: max(16px, env(safe-area-inset-bottom, 0px));
    width: 56px;
    height: 56px;
  }

  .carteri-whatsapp-fab__icon {
    width: 28px;
    height: 28px;
  }

  .carteri-whatsapp-fab::after {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .carteri-whatsapp-fab {
    transition: none;
  }
  .carteri-whatsapp-fab::before {
    animation: none;
  }
  .carteri-whatsapp-fab:hover,
  .carteri-whatsapp-fab:focus {
    transform: none;
  }
}

/**
 * Ficha pública do CPT `imoveis` (single-imoveis.php).
 *
 * Motivo:
 * - Layout simples e escaneável para validar dados fictícios do seed antes
 *   de integrar com a home ou com page builders.
 */
.carteri-single-imovel__header {
  padding-top: 28px;
  padding-bottom: 12px;
}

.carteri-single-imovel__media {
  margin-bottom: 18px;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12);
}

.carteri-single-imovel__thumb {
  display: block;
  width: 100%;
  height: auto;
}

.carteri-single-imovel__code {
  margin: 0 0 6px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--carteri-color-orange);
}

.carteri-single-imovel__title {
  margin: 0 0 10px;
}

.carteri-single-imovel__price {
  margin: 0;
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--carteri-color-red);
}

.carteri-single-imovel__body {
  padding-top: 8px;
  padding-bottom: 48px;
}

.carteri-single-imovel__facts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 10px 16px;
  margin: 0 0 22px;
  padding: 16px 18px;
  list-style: none;
  border: 1px solid rgba(6, 9, 10, 0.08);
  border-radius: 10px;
  background: #fff9f3;
}

.carteri-single-imovel__facts li {
  margin: 0;
  font-size: 0.95rem;
}

.carteri-single-imovel__tax {
  display: grid;
  gap: 12px;
  margin: 0 0 24px;
}

.carteri-single-imovel__tax dt {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--carteri-color-gray);
}

.carteri-single-imovel__tax dd {
  margin: 4px 0 0;
}

.carteri-single-imovel__cta {
  margin: 28px 0 0;
}

/**
 * Home custom (front-page.php): banner, busca, cards.
 */
.carteri-home {
  font-family: "Inter", system-ui, -apple-system, sans-serif;
}

.carteri-home h1,
.carteri-home h2,
.carteri-home h3,
.carteri-home .carteri-home-banner__kicker,
.carteri-home-list__title {
  font-family: "Montserrat", "Inter", system-ui, sans-serif;
}

.carteri-home-banner {
  position: relative;
  min-height: clamp(280px, 52vw, 520px);
  display: flex;
  align-items: stretch;
  color: #fefefe;
}

.carteri-home-banner__bg {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(120deg, rgba(162, 71, 46, 0.92) 0%, rgba(162, 71, 46, 0.72) 42%, rgba(212, 124, 84, 0.45) 100%),
    linear-gradient(180deg, #6e2a1a 0%, var(--carteri-logo-brick) 50%, #8a3824 100%);
}

.carteri-home-banner__inner {
  position: relative;
  z-index: 1;
  padding: 72px 0 40px;
  display: flex;
  flex-direction: column;
  gap: 22px;
  justify-content: flex-end;
}

.carteri-home-banner__copy {
  max-width: 640px;
}

.carteri-home-banner__kicker {
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.92;
}

.carteri-home-banner__title {
  margin: 0 0 12px;
  font-size: clamp(1.75rem, 4vw, 2.6rem);
  font-weight: 700;
  line-height: 1.15;
}

.carteri-home-banner__lead {
  margin: 0;
  max-width: 520px;
  font-size: 1rem;
  line-height: 1.55;
  opacity: 0.95;
}

.carteri-home-search {
  background: rgba(255, 255, 255, 0.96);
  border-radius: 16px;
  box-shadow: 0 20px 50px rgba(10, 22, 40, 0.25);
  padding: 18px 18px 20px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  backdrop-filter: blur(8px);
}

.carteri-home-search__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}

.carteri-home-search__tab {
  cursor: pointer;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 600;
  color: var(--carteri-color-text);
  border: 1px solid transparent;
}

.carteri-home-search__tab input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.carteri-home-search__tab-text {
  display: inline-block;
  padding: 8px 16px;
  border-radius: 999px;
  background: #f4f1ee;
  transition: background 0.2s ease, color 0.2s ease;
}

.carteri-home-search__tab input:checked + .carteri-home-search__tab-text {
  background: var(--carteri-navy);
  color: #fefefe;
}

.carteri-home-search__tab input:focus-visible + .carteri-home-search__tab-text {
  outline: 2px solid var(--carteri-navy-soft);
  outline-offset: 2px;
}

.carteri-home-search__row {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 12px 14px;
  align-items: end;
}

.carteri-home-search__field {
  grid-column: span 3;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.carteri-home-search__field--sm {
  grid-column: span 2;
}

.carteri-home-search__field label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--carteri-color-gray);
}

.carteri-home-search__field select,
.carteri-home-search__field input {
  width: 100%;
  border-radius: 10px;
  border: 1px solid rgba(6, 9, 10, 0.12);
  padding: 11px 12px;
  font-size: 15px;
  font-family: inherit;
  background: #fff;
  color: var(--carteri-color-text);
}

.carteri-home-search__actions {
  grid-column: span 2;
  display: flex;
  justify-content: flex-end;
}

.carteri-home-search__submit {
  width: 100%;
  border: 0;
  border-radius: 10px;
  padding: 12px 16px;
  font-size: 15px;
  font-weight: 700;
  font-family: "Montserrat", "Inter", sans-serif;
  cursor: pointer;
  color: #fefefe;
  background: linear-gradient(135deg, var(--carteri-navy-mid) 0%, var(--carteri-navy) 100%);
  box-shadow: 0 8px 22px rgba(162, 71, 46, 0.35);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.carteri-home-search__submit:hover,
.carteri-home-search__submit:focus {
  transform: translateY(-1px);
  box-shadow: 0 10px 26px rgba(162, 71, 46, 0.45);
}

@media (max-width: 921px) {
  .carteri-home-search__field,
  .carteri-home-search__field--sm,
  .carteri-home-search__actions {
    grid-column: 1 / -1;
  }

  .carteri-home-search__actions {
    justify-content: stretch;
  }
}

.carteri-home-list {
  padding: 40px 0 56px;
  background: var(--carteri-ice);
}

.carteri-home-list__head {
  margin-bottom: 22px;
}

.carteri-home-list__title {
  margin: 0 0 6px;
  font-size: 1.5rem;
  font-weight: 700;
}

.carteri-home-list__sub {
  margin: 0;
  color: var(--carteri-color-gray);
  font-size: 0.95rem;
}

.carteri-home-list__empty {
  padding: 28px 16px;
  text-align: center;
  border-radius: 12px;
  background: #fff9f3;
  border: 1px dashed rgba(162, 71, 46, 0.4);
}

.carteri-home-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 22px;
}

.carteri-prop-card {
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--carteri-ice-deep);
  box-shadow: 0 8px 22px rgba(162, 71, 46, 0.08);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.carteri-prop-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(162, 71, 46, 0.14);
  border-color: rgba(162, 71, 46, 0.15);
}

.carteri-prop-card__link {
  display: block;
  color: inherit;
  text-decoration: none !important;
}

.carteri-prop-card__media {
  position: relative;
  aspect-ratio: 4 / 3;
  background: #ece8e4;
  overflow: hidden;
}

.carteri-prop-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.carteri-prop-card__placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #ece8e4, #d8d2cc);
}

.carteri-prop-card__price {
  position: absolute;
  left: 12px;
  bottom: 12px;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 700;
  font-family: "Montserrat", "Inter", sans-serif;
  color: #fefefe;
  background: rgba(6, 9, 10, 0.78);
  backdrop-filter: blur(4px);
}

.carteri-prop-card__body {
  padding: 14px 16px 16px;
}

.carteri-prop-card__code {
  margin: 0 0 4px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--carteri-navy-soft);
}

.carteri-prop-card__title {
  margin: 0 0 12px;
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--carteri-color-text);
}

.carteri-prop-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 13px;
  font-weight: 500;
  color: #4a4543;
}

.carteri-prop-card__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.carteri-prop-card__ico {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  background-color: currentColor;
  opacity: 0.55;
}

.carteri-prop-card__ico--area {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 3h8v8H3V3zm10 0h8v8h-8V3zM3 13h8v8H3v-8zm10 0h8v8h-8v-8z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 3h8v8H3V3zm10 0h8v8h-8V3zM3 13h8v8H3v-8zm10 0h8v8h-8v-8z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.carteri-prop-card__ico--bed {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M7 13c-2.21 0-4-1.79-4-4V5h2v3h14V5h2v4c0 2.21-1.79 4-4 4h-1v2H8v-2H7zm-3 4h16v2H4v-2z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M7 13c-2.21 0-4-1.79-4-4V5h2v3h14V5h2v4c0 2.21-1.79 4-4 4h-1v2H8v-2H7zm-3 4h16v2H4v-2z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.carteri-prop-card__ico--car {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M18.92 6.01C18.72 5.42 18.16 5 17.5 5h-11c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M18.92 6.01C18.72 5.42 18.16 5 17.5 5h-11c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.carteri-prop-card__ico--suite {
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 3 2 9v12h6v-8h8v8h6V9L12 3zm0 2.2L18 9v1H6V9l6-3.8z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 3 2 9v12h6v-8h8v8h6V9L12 3zm0 2.2L18 9v1H6V9l6-3.8z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/**
 * Header: sticky + fundo ao scroll.
 */
.ast-primary-header-bar,
.site-header-primary-section-wrap,
header.site-header .ast-primary-header-bar {
  transition: background-color 0.28s ease, box-shadow 0.28s ease, backdrop-filter 0.28s ease;
}

.ast-primary-header-bar.carteri-header--scrolled,
.site-header-primary-section-wrap.carteri-header--scrolled,
header.site-header .ast-primary-header-bar.carteri-header--scrolled {
  background-color: rgba(162, 71, 46, 0.94) !important;
  box-shadow: 0 10px 28px rgba(90, 35, 22, 0.2);
  backdrop-filter: blur(10px);
}

.ast-primary-header-bar {
  position: sticky;
  top: 0;
  z-index: 99998;
}

/**
 * Rodapé 4 colunas.
 */
.carteri-footer-4col {
  background: var(--carteri-navy);
  color: #f8fafc;
  padding: 48px 0 24px;
  margin-top: 0;
}

.carteri-footer-4col a {
  color: var(--carteri-logo-peach);
  text-decoration: none;
}

.carteri-footer-4col a:hover,
.carteri-footer-4col a:focus {
  color: #ffffff;
  text-decoration: underline;
}

.carteri-footer-4col__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px 24px;
}

@media (min-width: 640px) {
  .carteri-footer-4col__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 921px) {
  .carteri-footer-4col__grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.carteri-footer-4col__title {
  margin: 0 0 12px;
  font-size: 14px;
  font-weight: 700;
  font-family: "Montserrat", "Inter", sans-serif;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--carteri-logo-peach);
}

.carteri-footer-4col__text,
.carteri-footer-4col__list {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.92);
}

.carteri-footer-4col__list {
  list-style: none;
  padding: 0;
}

.carteri-footer-4col__list li {
  margin: 0 0 8px;
}

.carteri-footer-4col__copy {
  margin: 32px 0 0;
  padding-top: 20px;
  border-top: 1px solid rgba(253, 232, 209, 0.35);
  font-size: 13px;
  text-align: center;
  color: rgba(253, 232, 209, 0.75);
}
