/* ---------- BASE ---------- */
html, body{ height:100%; }
body{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  background:var(--bg, #ffffff); /* Fundo da página = theme_bg */
  color: var(--text, #171717);
}

main{ flex:1 0 auto; }

:root{
  /* Dimensões base */
  --footer-y:16px;
  --control-h:44px;

  /* =========================================================
     TEMA GLOBAL (fallbacks) — alinhado ao fluxo cleanTheme()
     ========================================================= */

  /* Base / marca */
  --brand:#ea1d2c;
  --brand-700:#d41926;
  --brandText:#fff;

  /* Fundos base */
  --bg:#fff;
  --surface:var(--bg);

  /* Texto */
  --text:#171717;
  --muted:#6b7280;

  /* NOVO — textos utilitários globais (cleanTheme) */
  --textMutedGlobal:var(--muted);
  --textPlaceholder:#9ca3af;

  /* Chips básicos (legado) */
  --chipBg:#f4f4f4;
  --chipText:#111;

  /* Header / navegação / topo (cleanTheme: herdam surface) */
  --headerBg:var(--surface);
  --headerBorder:rgba(0,0,0,.06);

  /* NOVO — Barra do header (sticky). Por padrão herda do header/nav. */
  --headerBarBg:var(--headerBg, var(--surface));
  --headerBarText:var(--navText, var(--text));

  --topbarBg:var(--brand);
  --topbarText:var(--brandText);
  --navBg:var(--surface);
  --navText:var(--text);


  /* LOGO (brand-head) — modo ícone nativo (i + texto) */
  --brandHeadIcon:var(--brand);
  --brandHeadText:var(--navText, var(--text));

  /* Footer */
  --footerBg:#111;
  --footerText:#dddddd;

  /* Cartões / listas / caixas */
  --cardBorder:#e5e7eb;
  --cardShadow:0px 8px 24px rgba(0,0,0,.06);

  /* NOVO — Painel / Cards genéricos (cleanTheme) */
  --panelBg:var(--surface);
  --panelText:var(--text);
  --panelMuted:var(--muted);
  --panelBorder:var(--cardBorder);

  /* NOVO — Formulários e campos interativos (cleanTheme) */
  --formBg:var(--panelBg);
  --formText:var(--panelText);
  --formBorder:#d1d5db;
  --formFocus:var(--brand);
  --formDisabled:#f3f4f6;

  /* =========================================================
     Card de produto (camelCase) — alinhado às novas chaves
     ========================================================= */
  --cardBg:var(--surface);
  --cardTitle:var(--text);
  --cardDesc:var(--muted);
  --cardPrice:var(--text);

  /* Primary (normal + ativo + sombra) */
  --cardBtnPrimaryBg:var(--brand);
  --cardBtnPrimaryText:var(--brandText);
  --cardBtnPrimaryBorder:var(--brand-700);

  --cardBtnPrimaryShadow:var(--btnShadow, 0px 2px 6px rgba(0,0,0,.08));

  --cardBtnPrimaryBgActive:var(--btnBgActive, var(--brand-700));
  --cardBtnPrimaryTextActive:var(--btnTextActive, var(--brandText));
  --cardBtnPrimaryBorderActive:var(--btnBorder, var(--brand-700));
  --cardBtnPrimaryShadowActive:var(--cardBtnPrimaryShadow);

  /* Secondary (normal + ativo + sombra) */
  --cardBtnSecondaryBg:var(--cardBg);
  --cardBtnSecondaryText:var(--text);
  --cardBtnSecondaryBorder:var(--cardBorder);

  --cardBtnSecondaryShadow:var(--btnShadow, 0px 2px 6px rgba(0,0,0,.08));

  --cardBtnSecondaryBgActive:var(--btnBgActive, var(--brand-700));
  --cardBtnSecondaryTextActive:var(--btnTextActive, var(--brandText));
  --cardBtnSecondaryBorderActive:var(--btnBorder, var(--brand-700));
  --cardBtnSecondaryShadowActive:var(--cardBtnSecondaryShadow);

  

  /* =========================================================
     BOTÕES GLOBAIS (fallbacks se theme não definir)
     ========================================================= */
  --btnBg:var(--brand);
  --btnText:var(--brandText);
  --btnBgActive:var(--brand-700);
  --btnTextActive:var(--brandText);
  --btnBorder:var(--brand-700);
  --btnShadow:0px 2px 6px rgba(0,0,0,.08);

  /* =========================================================
     INTERESSE NO IMÓVEL (btn-destaque; fallbacks se theme não definir)
     ========================================================= */
  --btnDestaqueBg:var(--btnBg, var(--brand));
  --btnDestaqueText:var(--btnText, var(--brandText));
  --btnDestaqueBgActive:var(--btnBgActive, var(--brand-700));
  --btnDestaqueTextActive:var(--btnTextActive, var(--brandText));
  --btnDestaqueBorder:var(--btnBorder, var(--brand-700));
  --btnDestaqueShadow:var(--btnShadow, 0px 2px 6px rgba(0,0,0,.08));

  --proposalBg:var(--btnDestaqueBg);
  --proposalText:var(--btnDestaqueText);
  --proposalBgActive:var(--btnDestaqueBgActive);
  --proposalTextActive:var(--proposalText);
  --proposalBorder:var(--btnDestaqueBorder);
  --proposalShadow:var(--btnDestaqueShadow);

  --propertyListingBg:var(--btnDestaqueBg);
  --propertyListingText:var(--btnDestaqueText);
  --propertyListingBgActive:var(--btnDestaqueBgActive);
  --propertyListingTextActive:var(--propertyListingText);
  --propertyListingBorder:var(--btnDestaqueBorder);
  --propertyListingShadow:var(--btnDestaqueShadow);
  --propertyListingContainer:var(--container, 1200px);

  /* CARACTERÍSTICAS DO IMÓVEL */
  --propertyFeatureTitle:#183153;
  --propertyFeatureTitleIconBg:#edf3fa;
  --propertyFeatureTitleIconText:var(--propertyFeatureTitle);
  --propertyFeatureCardBg:var(--cardBg, var(--surface));
  --propertyFeatureCardBorder:var(--cardBorder, #e5e7eb);
  --propertyFeatureCardShadow:0px 5px 16px rgba(15,23,42,.045);
  --propertyFeatureCardTitle:var(--propertyFeatureTitle);
  --propertyFeatureCardMuted:var(--muted, #6b7280);
  --propertyFeatureItemBg:#fbfcfd;
  --propertyFeatureItemBorder:#edf0f3;
  --propertyFeatureItemText:var(--text, #1f2937);
  --propertyFeatureItemMuted:var(--muted, #6b7280);
  --propertyFeatureIconBg:var(--surface, #ffffff);
  --propertyFeatureIconText:#c9933f;
  --propertyFeatureBooleanIconBg:#edf8f3;
  --propertyFeatureBooleanIconText:#1f7a5a;

  /* ETIQUETAS / TAGS (fallbacks se theme não definir) */
  --tagBg:var(--chipBg);
  --tagText:var(--chipText);
  --tagBgActive:var(--brand);
  --tagTextActive:var(--brandText);
  --tagBorder:var(--cardBorder);
  --tagShadowActive:0px 2px 4px rgba(0,0,0,.10);

  /* MENUS (top-nav, sidebar, offcanvas, portal) */
  --menuBg:var(--surface);
  --menuText:var(--text);
  --menuBgActive:var(--brand);
  --menuTextActive:var(--brandText);
  --menuBorder:var(--cardBorder);
  --menuShadow:0px 4px 12px rgba(0,0,0,.08);

  /* RADIUS legado genérico (pode ser usado por CSS antigo) */
  --radius:16px;

  /* RADIUS segmentados (sobrescritos por theme-vars inline) */
  --radiusCard:999px;   /* cards de produto / caixas */
  --radiusChip:999px;   /* etiquetas / chips */
  --radiusButton:999px; /* botões principais */
  --radiusMenu:999px;   /* itens de menu / navegação */

  /* CHAT (fallbacks; sobrescrito por theme-vars quando existir) */
  --chatHeaderBg:var(--brand);
  --chatHeaderText:var(--brandText);
  --chatBg:var(--cardBg, #ffffff);
  --chatBorder:var(--cardBorder);
  --chatInputBg:var(--formBg);
  --chatInputBorder:var(--formBorder);

  /* =========================================================
     ALIASES LEGADOS (kebab-case) para compatibilidade
     ========================================================= */
  --card-bg:var(--cardBg);
  --card-title:var(--cardTitle);
  --card-desc:var(--cardDesc);
  --card-price:var(--cardPrice);

  --card-btn-primary-bg:var(--cardBtnPrimaryBg);
  --card-btn-primary-text:var(--cardBtnPrimaryText);
  --card-btn-primary-border:var(--cardBtnPrimaryBorder);
  /* NOVO aliases */
  --card-btn-primary-shadow:var(--cardBtnPrimaryShadow);
  --card-btn-primary-bg-active:var(--cardBtnPrimaryBgActive);
  --card-btn-primary-text-active:var(--cardBtnPrimaryTextActive);
  --card-btn-primary-border-active:var(--cardBtnPrimaryBorderActive);
  --card-btn-primary-shadow-active:var(--cardBtnPrimaryShadowActive);

  --card-btn-secondary-bg:var(--cardBtnSecondaryBg);
  --card-btn-secondary-text:var(--cardBtnSecondaryText);
  --card-btn-secondary-border:var(--cardBtnSecondaryBorder);
  /* NOVO aliases */
  --card-btn-secondary-shadow:var(--cardBtnSecondaryShadow);
  --card-btn-secondary-bg-active:var(--cardBtnSecondaryBgActive);
  --card-btn-secondary-text-active:var(--cardBtnSecondaryTextActive);
  --card-btn-secondary-border-active:var(--cardBtnSecondaryBorderActive);
  --card-btn-secondary-shadow-active:var(--cardBtnSecondaryShadowActive);

  /* BADGE DE DESCONTO (fallbacks globais) */
  --discountBadgeBg:     var(--brand, #ea1d2c);
  --discountBadgeText:   var(--brandText, #fff);
  --discountBadgeBorder: transparent;
  --discountBadgeRadius: var(--radiusChip, 999px);

  /* Aliases legados do btn-destaque */
  --btn-destaque-bg:var(--btnDestaqueBg);
  --btn-destaque-text:var(--btnDestaqueText);
  --btn-destaque-bg-active:var(--btnDestaqueBgActive);
  --btn-destaque-text-active:var(--btnDestaqueTextActive);
  --btn-destaque-border:var(--btnDestaqueBorder);
  --btn-destaque-shadow:var(--btnDestaqueShadow);

  /* =========================================================
     Infra / layout geral
     ========================================================= */
  --container:1200px;
  --tabbar-h:64px;
  --shadow-lg:0 16px 40px rgba(0,0,0,.14);

  /* HERO: controlado via variáveis (override por theme-vars inline) */
  --hero-h:0px;          /* lojas sem capa ficam sem hero */
  --hero-pos-x:50%;
  --hero-pos-y:50%;
  --hero-opacity:1;
  --hero-ty:0px;

  /* =========================================================
     Cores unificadas de categorias (chips / sidebar / offcanvas / top-nav)
     ========================================================= */

  /* Chips (scroller / topo) → derivados de tag* */
  --cat-chip-bg:            var(--tagBg,   var(--chipBg, var(--surface, #f4f4f4)));
  --cat-chip-text:          var(--tagText, var(--chipText, var(--text, #171717)));
  --cat-chip-border:        var(--tagBorder, #eee);

  --cat-chip-bg-active:     var(--tagBgActive,   var(--brand, #ea1d2c));
  --cat-chip-text-active:   var(--tagTextActive, var(--brandText, #ffffff));
  --cat-chip-border-active: var(--tagBorder,     var(--brand, #ea1d2c));

  /* Listas (sidebar categorias, offcanvas) → derivados de menu* */
  --cat-list-bg:            var(--menuBg, var(--surface, #fff));
  --cat-list-text:          var(--menuText, var(--text, #171717));
  --cat-list-border:        var(--menuBorder, #eee);

  --cat-list-bg-active:     var(--menuBgActive, var(--brand, #ea1d2c));
  --cat-list-text-active:   var(--menuTextActive, var(--brandText, #ffffff));
  --cat-list-border-active: var(--menuBorder, var(--brand, #ea1d2c));

  /* hover derivado do active (ajuste o percentual) */
  --btnBgHover: color-mix(in oklab, var(--btnBgActive) 89%, #000);
  
}

.min-w-40  { min-width: 40px; }

/* Placeholders / disabled coerentes com tokens novos */

.textPlaceholder{
 color: var(--textPlaceholder, #9ca3af);
}
input::placeholder,
textarea::placeholder{
  color: var(--textPlaceholder, #9ca3af);
  opacity: 1;
}

.form-control:disabled,
.form-select:disabled,
textarea:disabled,
input:disabled{
  background: var(--formDisabled, #f3f4f6);
  color: var(--textMutedGlobal, var(--muted, #6b7280));
  border: 1px solid var(--formBorder, #d1d5db);
  box-shadow: none;
}

/* INICIO CSS PARA PONTOS ESPECÍFICOS DE LAYOUTS: EXEMPLO BOTÕES NO CARD */

.cardBt{margin: 0 2px 6px 2px !important;}
.navBT{top: 8px;}
.navBTC{right: -10px;}
.modal-header {justify-content: space-between;border-bottom: 1px solid var(--panelBorder, #f1f3f5)!important;}
.modal-footer {padding: 0!important;}
/* FIM CSS PARA PONTOS ESPECÍFICOS DE LAYOUTS: EXEMPLO BOTÕES NO CARD */

/* Badge de desconto nos cards da listagem */
.item-badge-discount{
  position:absolute;
  top:.5rem;
  left:.5rem;
  z-index:2;
  padding:.25rem .6rem;
  width: 100px;
  text-align: center;
  background: var(--discountBadgeBg, var(--brand, #ea1d2c));
  color:      var(--discountBadgeText, #fff);
  border: 1px solid var(--discountBadgeBorder, transparent);
  box-sizing: border-box;
  border-radius: var(--discountBadgeRadius, var(--radiusChip, 999px));
  font-size:.8rem;
  font-weight:700;
  box-shadow:0 6px 16px rgba(0,0,0,.25);
}


/* FIM TRECHO CSS PARA PONTOS ESPECÍFICOS DE LAYOUTS: EXEMPLO BOTÕES NO CARD, DESCONTO ETC */

/* Altura unificada de controles em telas maiores */
@media (min-width:768px){
  :root{ --control-h:48px; }
}

/* HERO: desktop responsivo — altura controlada pelo token --hero-h */
/* clamp(260px, 32vw, 260px) foi removido: min=max tornava o clamp ineficaz
   e o !important anulava o sistema de token --hero-h silenciosamente */

@media (min-width:1200px){
  .container-xl-wide{
    max-width: var(--container, 1120px);
  }
}

/* HERO: preserva proporção da imagem e evita capa “achatada” */
.hero-cover{
  position: relative;
  height: var(--hero-h, 160px);
  overflow: hidden;
  contain: paint;
  border-bottom-left-radius: .75rem;
  border-bottom-right-radius: .75rem;
}

/* Em telas grandes, não deixa a capa ficar baixa demais */
@media (min-width: 992px){
  .hero-cover{
    min-height: 220px;
  }
}

.hero-cover .hero-img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--hero-pos-x) var(--hero-pos-y);
  transform: translateY(var(--hero-ty));
  opacity: var(--hero-opacity);
  will-change: transform, opacity;
  border-bottom-left-radius: inherit;
  border-bottom-right-radius: inherit;
}

/* Home: grid de categorias */
.cats-grid{display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}
@media(min-width:576px){.cats-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:992px){.cats-grid{grid-template-columns:repeat(4,1fr)}}

.cat-tile{
  position:relative;
  padding-top:100%;
  border-radius:var(--radiusCard, 16px);
  background:var(--tile-bg,var(--chipBg));
  color:#fff;
  box-shadow:0 2px 10px rgba(0,0,0,.08);
  overflow:hidden;
  text-decoration:none
}
.cat-tile span{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  font-weight:800;
  line-height:1.2;
  padding:10px;
  text-shadow:0 1px 1px rgba(0,0,0,.25);
  text-transform:uppercase
}
.cat-tile:active{filter:brightness(.95)}

/* Offcanvas Mobile: acordeão de seções (modelo novo, 100% por tokens) */

/* Header / corpo do offcanvas (base) */
#menuOffcanvas .offcanvas-header,
#menuOffcanvas .offcanvas-body{
  background: var(--menuBg, var(--surface, #fff));
  color: var(--menuText, var(--text, #171717));
}
#menuOffcanvas .offcanvas-header{
  border-bottom: 1px solid var(--menuBorder, var(--cardBorder, rgba(0,0,0,.12)));
}

/* Acordeão */
.offcanvas-menu .accordion-button{
  padding: .75rem 1rem;
  font-weight: 600;

  background: var(--menuBg, var(--surface, #fff));
  color: var(--menuText, var(--text, #171717));
  border: 0;
  box-shadow: none;
}
.offcanvas-menu .accordion-button:not(.collapsed){
  background: var(--menuBgActive, var(--brand, #ea1d2c));
  color: var(--menuTextActive, var(--brandText, #fff));
}
.offcanvas-menu .accordion-body{
  padding: .75rem 1rem;
  background: var(--menuBg, var(--surface, #fff));
  color: var(--menuText, var(--text, #171717));
}

/* remove o ícone padrão do Bootstrap (problema de cor no dark) */
.offcanvas-menu .accordion-button::after{
  display: none !important;
}

/* se você adicionou o chevron manual no HTML: <i class="... acc-chevron"> */
.offcanvas-menu .accordion-button .acc-chevron{
  opacity: .85;
  transition: transform .2s ease, opacity .2s ease;
}
.offcanvas-menu .accordion-button:not(.collapsed) .acc-chevron{
  transform: rotate(180deg);
  opacity: 1;
}

/* Foco acessível coerente */
.offcanvas-menu .accordion-button:focus-visible{
  outline: 0;
  box-shadow: 0 0 0 .25rem var(--bs-focus-ring-color);
}

/* Botões full (se usar dentro do offcanvas) */
.offcanvas-menu .btn.w-100{ text-align: left; }

/* Itens de menu (inclui categorias no offcanvas) — mantém o esquema cat-list* */
.offcanvas-menu .list-group-item{
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: .75rem 1rem;

  border: none;
  border-bottom: 1px solid var(--cat-list-border);
  background: var(--cat-list-bg);
  color: var(--cat-list-text);

  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.offcanvas-menu .list-group-item i{ opacity: .6; }

.offcanvas-menu .list-group-item:hover,
.offcanvas-menu .list-group-item:focus-visible{
  background: var(--btnBgHover);
  color: var(--cat-list-text-active);
  text-decoration: none;
}

.offcanvas-menu .list-group-item.active{
  background: var(--cat-list-bg-active);
  color: var(--cat-list-text-active);
  text-decoration: none;
}
.offcanvas-menu .list-group-item.active i{ opacity: 1; }

/* remove regra antiga que forçava transparente e quebrava o tema */
/* .accordion-button:not(.collapsed){background-color:transparent!important} */

/* ---------- HEADER (tema via vars) ---------- */
.site-header{
  background: var(--headerBg, var(--surface, #ffffff));
  border-bottom: 1px solid var(--headerBorder, rgba(0,0,0,.06));
}

/* a barra sticky precisa de fundo próprio, senão fica “transparente” */
.site-header__bar{
  background: var(--headerBarBg, var(--headerBg, var(--surface, #ffffff)));
  color:      var(--headerBarText, var(--navText, var(--text, #171717)));
  border-bottom: 1px solid var(--headerBorder, rgba(0,0,0,.06));
  background-clip: padding-box;
}

/* ---------- HEADER / BRAND ---------- */
.brand{
  display:flex;
  align-items:center;
  gap:.5rem;
  font-weight:800;
  color:var(--brand);
  font-size:18px;
}
.brand .dot{ color:var(--brand); }
.top-actions{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:.5rem;
}

/* Componente de brand do header (base para todos os layouts) */
.brand-head-wrap{
  display:flex;
  align-items:center;
}

.brand-head{
  display:inline-flex;
  align-items:center;
  gap:.5rem;

  /* TEXTO do logo segue token dedicado */
  color: var(--brandHeadText, var(--navText, var(--text)));
  font-weight:800;
  text-decoration:none;
}

.brand-head-text{
  font-size:1rem;
  line-height:1;
}

/* ÍCONE/DOT segue token dedicado */
.brand-head-icon,
.brand-head .dot{
  color: var(--brandHeadIcon, var(--brand));
  font-size:1.5rem;
  line-height:1;
}

.brand-head-img--icon,
.brand-head-img--logo{
  height:28px;
  width:auto;
  display:block;
}
@media (min-width:768px){
  .brand-head-img--logo{ height:32px; }
}

.brand-head:hover,
.brand-head:focus-visible{
  text-decoration:none;
  color: var(--brandHeadText, var(--navText, var(--text)));
}

@media (max-width: 767.98px){
  /* Botão principal de ação no header (mobile) */
  header .top-actions.btn{
    border-radius: var(--radiusButton, 999px);
    border-width: 1px;
    border-color: var(--btnBorder, var(--brand));
    color: var(--btnText, var(--brandText));
    background: var(--btnBg, var(--brand));
    padding: .25rem .6rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--btnShadow, 0px 2px 6px rgba(0,0,0,.08));
  }

  header .top-actions.btn .bi{
    margin: 0;
    font-size: 1.25rem;
    line-height: 1;
  }

  header .top-actions.btn:hover{
    background: var(--btnBgActive, var(--btnBg, var(--brand)));
    color: var(--btnTextActive, var(--btnText, var(--brandText)));
    border-color: var(--btnBorder, var(--btnBgActive, var(--brand)));
    filter: brightness(.97);
  }

  header .top-actions.btn:active{
    filter: brightness(.9);
    transform: translateY(1px);
  }

  header .top-actions.btn:focus-visible{
    outline: 2px solid rgba(0,0,0,.25);
    outline-offset: 2px;
  }
}

/* ---------- SEARCH & SCROLLER (theme.json aware) ---------- */
.search-wrap{ position:relative; }

.search-wrap .bi-search{
  position:absolute;
  left:1rem;
  top:50%;
  transform:translateY(-50%);
  color: var(--textMutedGlobal, var(--muted, #6b7280));
  opacity:.75; /* não depender de preto/cinza fixo */
  pointer-events:none;
}

/* Base única para qualquer layout (desktop/mobile) */
.search-input,
.search-wrap .form-control{
  background: var(--formBg, var(--panelBg, #fff));
  color: var(--formText, var(--panelText, #171717));
  border: 1px solid var(--formBorder, var(--panelBorder, #d1d5db));

  /* coerência com o sistema: radius de chip (pílula) */
  border-radius: var(--radiusChip, 999px);

  padding-left:3rem;
}

/* placeholder 100% theme */
.search-input::placeholder,
.search-wrap .form-control::placeholder{
  color: var(--textPlaceholder, #9ca3af);
  opacity: 1;
}

/* focus coerente com formFocus/brand */
.search-input:focus,
.search-wrap .form-control:focus{
  border-color: var(--formFocus, var(--brand, #ea1d2c));
  box-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb, 234,29,44), .25);
  outline: 0;
}

/* disabled coerente: usa formDisabled sem quebrar borda/texto */
.search-input:disabled,
.search-wrap .form-control:disabled{
  background: var(--formDisabled, #f3f4f6);
  color: var(--textMutedGlobal, var(--muted, #6b7280));
}

/* Se você quiser o ícone “seguir” o estado de foco */
.search-wrap:focus-within .bi-search{
  color: var(--formFocus, var(--brand, #ea1d2c));
  opacity: .9;
}

/* SCROLLER: mantém neutro e acessível */
.scroller{
  overflow-x:auto;
  white-space:nowrap;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  padding: 4px 0;
}
.scroller::-webkit-scrollbar{ display:none; }

/* ---------- FIM SEARCH & SCROLLER (theme.json aware) ---------- */

/* ---------- BUSCA PÚBLICA COMPACTA (/buscar) ---------- */
.catalog-search{
  --catalog-search-border: var(--formBorder, var(--panelBorder, #d9e0de));
  --catalog-search-soft: color-mix(in srgb, var(--brand, #173f39) 6%, var(--surface, #ffffff));
  --catalog-search-muted: var(--textMutedGlobal, var(--muted, #6b7280));
  border:1px solid var(--catalog-search-border);
  border-radius:var(--radiusLg, 16px);
  background:var(--panelBg, var(--surface, #ffffff));
  color:var(--panelText, var(--text, #17201e));
  box-shadow:0 .25rem 1.2rem rgba(17,45,40,.06);
  overflow:hidden;
}

.catalog-search__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  padding:.8rem 1rem .65rem;
  border-bottom:1px solid color-mix(in srgb, var(--catalog-search-border) 55%, transparent);
}

.catalog-search__title{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:.35rem .65rem;
  min-width:0;
}

.catalog-search__title h1{
  margin:0;
  font-size:1.12rem;
  font-weight:800;
  line-height:1.25;
}

.catalog-search__count{
  color:var(--catalog-search-muted);
  font-size:.8rem;
  white-space:nowrap;
}

.catalog-search__clear{
  flex:0 0 auto;
}

.catalog-search__body{
  padding:.8rem 1rem;
}

.catalog-search__label{
  display:block;
  margin-bottom:.28rem;
  color:var(--formLabelText, var(--panelText, #30413d));
  font-size:.78rem;
  font-weight:700;
  line-height:1.25;
}

.catalog-search .form-control,
.catalog-search .form-select,
.catalog-search .input-group-text,
.catalog-search .btn-sm{
  min-height:2.25rem;
}

.catalog-search .form-control:focus,
.catalog-search .form-select:focus{
  border-color:var(--formFocus, var(--brand, #173f39));
  box-shadow:0 0 0 .2rem color-mix(in srgb, var(--formFocus, var(--brand, #173f39)) 18%, transparent);
}

.catalog-search__toggle[aria-expanded="true"] .catalog-search__toggle-icon{
  transform:rotate(180deg);
}

.catalog-search__toggle-icon{
  transition:transform .18s ease;
}

.catalog-search__quick-types{
  display:flex;
  align-items:center;
  gap:.55rem;
  min-width:0;
  margin-top:.7rem;
}

.catalog-search__rail-label{
  flex:0 0 auto;
  color:var(--formLabelText, var(--panelText, #384944));
  font-size:.78rem;
  font-weight:800;
}

.catalog-search__rail,
.catalog-search__active-list{
  display:flex;
  flex:1 1 auto;
  gap:.38rem;
  min-width:0;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scrollbar-width:thin;
  padding:.08rem .05rem .25rem;
}

.catalog-search__chip{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  min-height:1.95rem;
  padding:.28rem .65rem;
  border:1px solid var(--cat-chip-border, #aebbb7);
  border-radius:var(--radiusChip, 999px);
  background:var(--cat-chip-bg, #ffffff);
  color:var(--cat-chip-text, #50615d);
  font-size:.78rem;
  font-weight:700;
  line-height:1;
  text-decoration:none;
  white-space:nowrap;
  transition:border-color .15s ease, background-color .15s ease, color .15s ease, transform .12s ease;
}

.catalog-search__chip:hover,
.catalog-search__chip:focus-visible{
  border-color:var(--cat-chip-border-active, var(--brand, #173f39));
  color:var(--cat-chip-text-active, var(--brand, #173f39));
  text-decoration:none;
  outline:0;
}

.catalog-search__chip.is-active{
  border-color:var(--cat-chip-border-active, var(--brand, #173f39));
  background:var(--cat-chip-bg-active, var(--brand, #173f39));
  color:var(--cat-chip-text-active, var(--brandText, #ffffff));
}

.catalog-search__advanced{
  margin-top:.75rem;
  padding:.75rem;
  border:1px solid color-mix(in srgb, var(--catalog-search-border) 70%, transparent);
  border-radius:var(--radiusLg, 12px);
  background:var(--catalog-search-soft);
}

.catalog-search__group{
  height:100%;
  margin:0;
  padding:.65rem;
  border:1px solid color-mix(in srgb, var(--catalog-search-border) 70%, transparent);
  border-radius:var(--radius, 10px);
  background:var(--panelBg, #ffffff);
}

.catalog-search__group-title{
  display:flex;
  align-items:center;
  gap:.4rem;
  float:none;
  width:auto;
  margin:0 0 .55rem;
  padding:0;
  color:var(--formLabelText, var(--panelText, #2e403b));
  font-size:.8rem;
  font-weight:800;
}

.catalog-search__group-title i{
  color:var(--brand, #173f39);
}

.catalog-search__feature-list{
  display:flex;
  flex-wrap:wrap;
  gap:.38rem;
}

.catalog-search__active{
  display:flex;
  align-items:center;
  gap:.5rem;
  padding:0 1rem .8rem;
  min-width:0;
}

.catalog-search__active-chip{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  min-height:1.85rem;
  padding:.25rem .55rem;
  border:1px solid color-mix(in srgb, var(--brand, #173f39) 30%, var(--catalog-search-border));
  border-radius:var(--radiusChip, 999px);
  background:color-mix(in srgb, var(--brand, #173f39) 8%, #ffffff);
  color:var(--brand, #173f39);
  font-size:.75rem;
  font-weight:700;
  text-decoration:none;
  white-space:nowrap;
}

.catalog-search__active-chip:hover,
.catalog-search__active-chip:focus-visible{
  border-color:var(--brand, #173f39);
  color:var(--brand, #173f39);
  text-decoration:none;
  outline:0;
}

@media (max-width:767.98px){
  .catalog-search{
    border-radius:var(--radiusLg, 12px);
  }

  .catalog-search__header,
  .catalog-search__body{
    padding-left:.75rem;
    padding-right:.75rem;
  }

  .catalog-search__header{
    align-items:flex-start;
  }

  .catalog-search__quick-types,
  .catalog-search__active{
    align-items:flex-start;
    flex-direction:column;
    gap:.3rem;
  }

  .catalog-search__rail,
  .catalog-search__active-list{
    width:100%;
  }

  .catalog-search__advanced{
    padding:.55rem;
  }

  .catalog-search__active{
    padding-left:.75rem;
    padding-right:.75rem;
  }
}

/* ---------- CHIPS & TOP NAV ---------- */
.chip{
  display:inline-block;
  background:var(--cat-chip-bg);
  border:1px solid var(--cat-chip-border);
  color:var(--cat-chip-text);
  padding:.5rem .8rem;
  border-radius:var(--radiusChip, 999px);
  margin-right:.5rem;
  text-decoration:none;
  text-align: center;
  font-weight:500;
  
  box-shadow: var(--tagShadowActive, none);
  transition:
    background-color .15s ease,
    color .15s ease,
    border-color .15s ease,
    box-shadow .15s ease,
    transform .12s ease;
}

/* Ativo = estado principal + sombra ativa */
.chip.active{
  background:var(--cat-chip-bg-active);
  color:var(--cat-chip-text-active);
  border-color:var(--cat-chip-border-active);
  box-shadow: var(--tagShadowActive, none);
}

/* Hover/focus: mesmo visual do ativo + sombra */
.scroller .chip:hover,
.scroller .chip:focus-visible,
#chipsCategorias .chip:hover,
#chipsCategorias .chip:focus-visible,
.chip:hover,
.chip:focus-visible{
  background:var(--btnBgHover);
  color:var(--cat-chip-text-active);
  border-color:var(--btnBgHover);
  text-decoration:none;

  box-shadow: var(--tagShadowActive, none);
  transform: translateY(-1px);
}

/* A11y */
.chip:focus-visible{
  outline: 0;
  box-shadow: var(--tagShadowActive, none), 0 0 0 .25rem var(--bs-focus-ring-color);
}


/* Top-nav alinhado ao tema de menus */
.top-nav .nav-pill{
  border:1px solid var(--menuBorder, var(--cat-chip-border));
  border-radius:var(--radiusMenu, 999px);
  padding: .5rem .8rem;
  font-weight:500;
  text-decoration:none;
  color:var(--menuText, var(--cat-chip-text));
  text-align:center;
  background:var(--menuBg, var(--cat-chip-bg));
  transition:background-color .15s ease, color .15s ease, border-color .15s ease;
}
.top-nav .nav-pill:hover,
.top-nav .nav-pill.active{
  border-color:var(--menuBorder, var(--cat-chip-border-active));
  color:var(--menuTextActive, var(--cat-chip-text-active));
  background:var(--menuBgActive, var(--cat-chip-bg-active));
}

/* ---------- BUTTONS/Botões (GLOBAL) ---------- */

/* Base: radius coerente até em .btn do Bootstrap */
.btn{
  border-radius: var(--radiusButton, .5rem);
}

/* Primário (CTA) */
.btn-brand{
  background: var(--btnBg, var(--brand));
  color: var(--btnText, var(--brandText));
  border: 1px solid var(--btnBorder, var(--btnBg, var(--brand)));
  box-shadow: var(--btnShadow, none);
}
.btn-brand:hover{
  background: var(--btnBgHover, var(--btnBg, var(--brand-700)));
  color: var(--btnTextActive, var(--btnText, var(--brandText)));
  border-color: var(--btnBgHover, var(--btnBgActive, var(--brand-700)));
}
.btn-brand:active{
  background: var(--btnBgActive, var(--btnBg, var(--brand-700)));
  color: var(--btnTextActive, var(--btnText, var(--brandText)));
  border-color: var(--btnBorder, var(--btnBgActive, var(--brand-700)));
  transform: translateY(1px);
}
.btn-brand:focus-visible{
  outline: 0;
  box-shadow: var(--btnShadow, none), 0 0 0 .25rem var(--bs-focus-ring-color);
}

/* Secundário (outline) — TEXTO = btnText (como você exige) */
.btn-outline-brand{
  background: transparent;
  color: var(--btnText, var(--brandText));
  border: 1px solid var(--btnBorder, var(--brand-700));
  box-shadow: var(--btnShadow, none);
}
.btn-outline-brand:hover{
  background: var(--btnBg, var(--brand));
  color: var(--btnText, var(--brandText));
  border-color: var(--btnBorder, var(--btnBg, var(--brand)));
  filter: brightness(.98);
}
.btn-outline-brand:active{
  background: var(--btnBgActive, var(--brand-700));
  color: var(--btnTextActive, var(--btnText, var(--brandText)));
  border-color: var(--btnBorder, var(--btnBgActive, var(--brand-700)));
  transform: translateY(1px);
}
.btn-outline-brand:focus-visible{
  outline: 0;
  box-shadow: var(--btnShadow, none), 0 0 0 .25rem var(--bs-focus-ring-color);
}

/* =========================================================
   Interesse no imóvel (usa btnDestaque*; fallback cai no btn*)
   ========================================================= */

.btn-destaque{
  background: var(--btnDestaqueBg, var(--btnBg, var(--brand)));
  color: var(--btnDestaqueText, var(--btnText, var(--brandText)));
  border: 1px solid var(--btnDestaqueBorder, var(--btnBorder, var(--btnDestaqueBg, var(--btnBg, var(--brand)))));
  box-shadow: var(--btnDestaqueShadow, var(--btnShadow, none));
}
.btn-destaque:hover{
  background: var(--btnDestaqueBgActive, var(--btnBgActive, var(--btnDestaqueBg, var(--btnBg, var(--brand-700)))));
  color: var(--btnDestaqueTextActive, var(--btnTextActive, var(--btnDestaqueText, var(--btnText, var(--brandText)))));
  border-color: var(--btnDestaqueBorder, var(--btnBorder, var(--btnDestaqueBgActive, var(--btnBgActive, var(--brand-700)))));
  filter: brightness(.96);
}
.btn-destaque:active{
  background: var(--btnDestaqueBgActive, var(--btnBgActive, var(--btnDestaqueBg, var(--btnBg, var(--brand-700)))));
  color: var(--btnDestaqueTextActive, var(--btnTextActive, var(--btnDestaqueText, var(--btnText, var(--brandText)))));
  border-color: var(--btnDestaqueBorder, var(--btnBorder, var(--btnDestaqueBgActive, var(--btnBgActive, var(--brand-700)))));
  transform: translateY(1px);
}
.btn-destaque:focus-visible{
  outline: 0;
  box-shadow: var(--btnDestaqueShadow, var(--btnShadow, none)), 0 0 0 .25rem var(--bs-focus-ring-color);
}

/* Outline (destaque) — TEXTO = btnDestaqueText (fallback: btnText) */
.btn-outline-destaque{
  background: transparent;
  color: var(--btnDestaqueText, var(--btnText, var(--brandText)));
  border: 1px solid var(--btnDestaqueBorder, var(--btnBorder, var(--brand-700)));
  box-shadow: var(--btnDestaqueShadow, var(--btnShadow, none));
}
.btn-outline-destaque:hover{
  background: var(--btnDestaqueBg, var(--btnBg, var(--brand)));
  color: var(--btnDestaqueText, var(--btnText, var(--brandText)));
  border-color: var(--btnDestaqueBorder, var(--btnBorder, var(--btnDestaqueBg, var(--btnBg, var(--brand)))));
  filter: brightness(.98);
}
.btn-outline-destaque:active{
  background: var(--btnDestaqueBgActive, var(--btnBgActive, var(--brand-700)));
  color: var(--btnDestaqueTextActive, var(--btnTextActive, var(--btnDestaqueText, var(--btnText, var(--brandText)))));
  border-color: var(--btnDestaqueBorder, var(--btnBorder, var(--btnDestaqueBgActive, var(--btnBgActive, var(--brand-700)))));
  transform: translateY(1px);
}
.btn-outline-destaque:focus-visible{
  outline: 0;
  box-shadow: var(--btnDestaqueShadow, var(--btnShadow, none)), 0 0 0 .25rem var(--bs-focus-ring-color);
}

/* Altura unificada */
.btn-lg-unified{ height: var(--control-h); }

/* ---------- DISABLED (coerente com theme.json / sem cinza padrão do BS) ---------- */

/* Evita o "lavado" padrão do Bootstrap em disabled */
.btn-brand:disabled,
.btn-brand.disabled,
fieldset:disabled .btn-brand{
  opacity: 1;            /* neutraliza o .btn:disabled do BS */
  filter: none;
  transform: none;

  /* visual: mistura do botão com superfície/disabled do tema */
  background: color-mix(in srgb,
    var(--btnBg, var(--brand)) 35%,
    var(--formDisabled, var(--surface, var(--bg, #fff)))
  );
  color: color-mix(in srgb,
    var(--btnText, var(--brandText)) 70%,
    var(--textMutedGlobal, var(--muted, #6b7280))
  );
  border-color: color-mix(in srgb,
    var(--btnBorder, var(--btnBgActive, var(--brand-700))) 30%,
    var(--panelBorder, var(--cardBorder, #e5e7eb))
  );

  /* sombra mais discreta quando desativado */
  box-shadow: none;
}

/* Garante que hover/active não "piscam" quando algum CSS/JS ainda aplica classe */
.btn-brand:disabled:hover,
.btn-brand:disabled:active,
.btn-brand.disabled:hover,
.btn-brand.disabled:active{
  background: color-mix(in srgb,
    var(--btnBg, var(--brand)) 70%,
    var(--formDisabled, var(--surface, var(--bg, #fff)))
  );
  color: color-mix(in srgb,
    var(--btnText, var(--brandText)) 70%,
    var(--textMutedGlobal, var(--muted, #6b7280))
  );
  border-color: color-mix(in srgb,
    var(--btnBorder, var(--btnBgActive, var(--brand-700))) 30%,
    var(--panelBorder, var(--cardBorder, #e5e7eb))
  );
}

/* Outline disabled */
.btn-outline-brand:disabled,
.btn-outline-brand.disabled,
fieldset:disabled .btn-outline-brand{
  opacity: 1;
  filter: none;
  transform: none;

  background: color-mix(in srgb,
    transparent 70%,
    var(--formDisabled, var(--surface, var(--bg, #fff)))
  );
  color: color-mix(in srgb,
    var(--btnText, var(--brandText)) 55%,
    var(--textMutedGlobal, var(--muted, #6b7280))
  );
  border-color: color-mix(in srgb,
    var(--btnBorder, var(--brand-700)) 30%,
    var(--panelBorder, var(--cardBorder, #e5e7eb))
  );

  box-shadow: none;
}

/* ---------- DISABLED (DESTAQUE) ---------- */

.btn-destaque:disabled,
.btn-destaque.disabled,
fieldset:disabled .btn-destaque{
  opacity: 1;
  filter: none;
  transform: none;

  background: color-mix(in srgb,
    var(--btnDestaqueBg, var(--btnBg, var(--brand))) 35%,
    var(--formDisabled, var(--surface, var(--bg, #fff)))
  );
  color: color-mix(in srgb,
    var(--btnDestaqueText, var(--btnText, var(--brandText))) 70%,
    var(--textMutedGlobal, var(--muted, #6b7280))
  );
  border-color: color-mix(in srgb,
    var(--btnDestaqueBorder, var(--btnBorder, var(--btnDestaqueBgActive, var(--btnBgActive, var(--brand-700))))) 30%,
    var(--panelBorder, var(--cardBorder, #e5e7eb))
  );

  box-shadow: none;
}

.btn-destaque:disabled:hover,
.btn-destaque:disabled:active,
.btn-destaque.disabled:hover,
.btn-destaque.disabled:active{
  background: color-mix(in srgb,
    var(--btnDestaqueBg, var(--btnBg, var(--brand))) 70%,
    var(--formDisabled, var(--surface, var(--bg, #fff)))
  );
  color: color-mix(in srgb,
    var(--btnDestaqueText, var(--btnText, var(--brandText))) 70%,
    var(--textMutedGlobal, var(--muted, #6b7280))
  );
  border-color: color-mix(in srgb,
    var(--btnDestaqueBorder, var(--btnBorder, var(--btnDestaqueBgActive, var(--btnBgActive, var(--brand-700))))) 30%,
    var(--panelBorder, var(--cardBorder, #e5e7eb))
  );
}

.btn-outline-destaque:disabled,
.btn-outline-destaque.disabled,
fieldset:disabled .btn-outline-destaque{
  opacity: 1;
  filter: none;
  transform: none;

  background: color-mix(in srgb,
    transparent 70%,
    var(--formDisabled, var(--surface, var(--bg, #fff)))
  );
  color: color-mix(in srgb,
    var(--btnDestaqueText, var(--btnText, var(--brandText))) 55%,
    var(--textMutedGlobal, var(--muted, #6b7280))
  );
  border-color: color-mix(in srgb,
    var(--btnDestaqueBorder, var(--btnBorder, var(--brand-700))) 30%,
    var(--panelBorder, var(--cardBorder, #e5e7eb))
  );

  box-shadow: none;
}

/* ---------- FIM BUTTONS/Botões (GLOBAL) ---------- */


/* ---------- PRODUCTS GRID / CARDS (base) ---------- */
.card-product{
  background:var(--card-bg, #fff);
  border-radius:var(--radiusCard, .8rem);
  border:1px solid var(--cardBorder, #e5e7eb);
  box-shadow:var(--cardShadow, 0px 8px 24px rgba(0,0,0,.06));
  /* layout interno */
  display:flex;
  flex-direction:column;
  height:100%;
}

.card-product img.thumb{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:var(--radiusCard, .8rem) var(--radiusCard, .8rem) 0 0;
  background:var(--formDisabled, #f0f0f0);
  background-color:var(--formDisabled, #f0f0f0);
}

/* Título, descrição e preço do card */
.card-product .title,
.vt-card-title{
  font-weight:800;
  line-height:1.25;
  color:var(--card-title, var(--text));
}

.card-product .desc,
.vt-card-desc{
  line-height:1.25;
  color:var(--card-desc, var(--muted));
}

.card-product .price,
.vt-card-price{
  font-weight:800;
  color:var(--card-price, var(--text));
}

.card-product .vt-card-modality{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  padding:.18rem .5rem;
  border:1px solid color-mix(in srgb, var(--cardBorder, #e5e7eb) 78%, transparent);
  border-radius:var(--radiusChip, 999px);
  background:color-mix(in srgb, var(--cardBg, #fff) 88%, var(--brand, #ea1d2c) 12%);
  color:var(--cardDesc, var(--muted, #6b7280));
  font-size:.72rem;
  font-weight:800;
  line-height:1.15;
}

/* Botão "Adicionar" (btn-brand dentro do card legacy) */
.card-product .btn-brand{
  background:var(--card-btn-primary-bg, var(--brand));
  color:var(--card-btn-primary-text, var(--brandText));
  border-color:var(--card-btn-primary-border, var(--card-btn-primary-bg, var(--brand)));
}
.card-product .btn-brand:hover{
  filter:brightness(.96);
  background:var(--card-btn-primary-bg, var(--brand));
  color:var(--card-btn-primary-text, var(--brandText));
  border-color:var(--card-btn-primary-border, var(--card-btn-primary-bg, var(--brand)));
}
.card-product .btn-brand:active{ filter:brightness(.9); }

/* Botão "Detalhes" (outline dentro do card) */
.card-product .btn-outline-dark{
  background:var(--card-btn-secondary-bg, var(--cardBg, #ffffff));
  color:var(--card-btn-secondary-text, var(--text));
  border-color:var(--card-btn-secondary-border, var(--cardBorder, #d1d5db));
}
.card-product .btn-outline-dark:hover,
.card-product .btn-outline-dark:focus-visible{
  background:var(--card-btn-secondary-bg, var(--cardBg, #ffffff));
  color:var(--card-btn-secondary-text, var(--text));
  border-color:var(--card-btn-secondary-border, var(--cardBorder, #d1d5db));
  filter:brightness(.97);
}
.card-product .btn-outline-dark:active{ filter:brightness(.93); }

/* Grid de produtos (inalterado) */
.product-grid{ display:grid; gap:1rem; }
@media(min-width:576px){
  .product-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(min-width:992px){
  .product-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}

.btn-add{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  border-radius:var(--radiusButton, 999px);
  padding:.45rem .8rem;
}
.btn-add i{ font-size:1rem; }
.btn-details{
  border-radius:var(--radiusButton, 999px);
  padding:.45rem .8rem;
}

/* ---------- PRODUCT CARD BUTTONS (tema por loja) ----------
   REGRA: hover / focus / active / selected (active class) / pressed
   => mesmo efeito visual (mesmos tokens + mesmo “pressed feel”)
----------------------------------------------------------- */

/* =============== PRIMARY (Adicionar) =============== */
.card-product .btn-card-primary{
  background:   var(--cardBtnPrimaryBg, var(--card-btn-primary-bg, var(--btnBg, var(--brand)))) !important;
  color:        var(--cardBtnPrimaryText, var(--card-btn-primary-text, var(--btnText, var(--brandText)))) !important;
  border-color: var(--cardBtnPrimaryBorder, var(--card-btn-primary-border, var(--btnBorder, var(--brand-700)))) !important;
  box-shadow:   var(--cardBtnPrimaryShadow, var(--card-btn-primary-shadow, var(--btnShadow, none)));
  border-radius: var(--radiusButton, 999px);
}

/* Todos os estados “interativos/selecionados” com o MESMO efeito */
.card-product .btn-card-primary:hover,
.card-product .btn-card-primary:focus-visible,
.card-product .btn-card-primary:active,
.card-product .btn-card-primary.active,
.card-product .btn-card-primary[aria-pressed="true"],
.card-product .btn-card-primary[aria-current="true"],
.card-product .btn-card-primary[aria-selected="true"]{
  background:   var(--cardBtnPrimaryBgActive, var(--card-btn-primary-bg-active, var(--btnBgActive, var(--brand-700)))) !important;
  color:        var(--cardBtnPrimaryTextActive, var(--card-btn-primary-text-active, var(--btnTextActive, var(--brandText)))) !important;
  border-color: var(--cardBtnPrimaryBorderActive, var(--card-btn-primary-border-active, var(--btnBorder, var(--brand-700)))) !important;
  box-shadow:   var(--cardBtnPrimaryShadowActive, var(--card-btn-primary-shadow-active, var(--cardBtnPrimaryShadow, var(--btnShadow, none))));
  filter: brightness(.98);
  transform: translateY(1px);
}

/* Focus acessível preservado (mantém ring SEM “trocar” o estado) */
.card-product .btn-card-primary:focus-visible{
  outline: 0;
  box-shadow:
    var(--cardBtnPrimaryShadowActive, var(--card-btn-primary-shadow-active, var(--cardBtnPrimaryShadow, var(--btnShadow, none)))),
    0 0 0 .25rem var(--bs-focus-ring-color);
}


/* =============== SECONDARY (Detalhes) =============== */
.card-product .btn-card-secondary{
  background:   var(--cardBtnSecondaryBg, var(--card-btn-secondary-bg, var(--cardBg, #ffffff))) !important;
  color:        var(--cardBtnSecondaryText, var(--card-btn-secondary-text, var(--text))) !important;
  border-color: var(--cardBtnSecondaryBorder, var(--card-btn-secondary-border, var(--cardBorder, #d1d5db))) !important;
  box-shadow:   var(--cardBtnSecondaryShadow, var(--card-btn-secondary-shadow, var(--btnShadow, none)));
  border-radius: var(--radiusButton, 999px);
}

/* Todos os estados “interativos/selecionados” com o MESMO efeito */
.card-product .btn-card-secondary:hover,
.card-product .btn-card-secondary:focus-visible,
.card-product .btn-card-secondary:active,
.card-product .btn-card-secondary.active,
.card-product .btn-card-secondary[aria-pressed="true"],
.card-product .btn-card-secondary[aria-current="true"],
.card-product .btn-card-secondary[aria-selected="true"]{
  background:   var(--cardBtnSecondaryBgActive, var(--card-btn-secondary-bg-active, var(--btnBgActive, var(--brand-700)))) !important;
  color:        var(--cardBtnSecondaryTextActive, var(--card-btn-secondary-text-active, var(--btnTextActive, var(--brandText)))) !important;
  border-color: var(--cardBtnSecondaryBorderActive, var(--card-btn-secondary-border-active, var(--btnBorder, var(--brand-700)))) !important;
  box-shadow:   var(--cardBtnSecondaryShadowActive, var(--card-btn-secondary-shadow-active, var(--cardBtnSecondaryShadow, var(--btnShadow, none))));
  filter: brightness(.98);
  transform: translateY(1px);
}

/* Focus acessível preservado (mantém ring) */
.card-product .btn-card-secondary:focus-visible{
  outline: 0;
  box-shadow:
    var(--cardBtnSecondaryShadowActive, var(--card-btn-secondary-shadow-active, var(--cardBtnSecondaryShadow, var(--btnShadow, none)))),
    0 0 0 .25rem var(--bs-focus-ring-color);
}


/* ---------- PRODUCTS: layout & skeleton (HOME/INDEX) ---------- */
/* .card-product já declarada acima com display:flex; flex-direction:column; height:100% */
.card-product>a{display:flex;flex-direction:column;flex:1 1 auto}
.card-product .actions{margin-top:auto}
.clamp-2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.card-product .title{line-height:1.25}
.card-product .desc{line-height:1.25}
.card-product .title.clamp-2{min-height:calc(1.25em * 2)}
.card-product .desc.clamp-2{min-height:calc(1.25em * 2)}

/* ---------- PRODUCT CARD PROPERTY (IMOBILIARIA) ---------- */
.card-product.card-product--property{
  min-width:0;
  overflow:hidden;
  background:var(--cardBg, var(--card-bg));
  color:var(--cardTitle, var(--card-title));
  border:1px solid var(--cardBorder);
  border-radius:var(--radiusCard);
  box-shadow:var(--cardShadow);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.card-product.card-product--property:hover{
  transform:translateY(-4px);
  border-color:var(--cardBorder);
  box-shadow:var(--cardShadow);
}

.card-product--property .property-media{
  position:relative;
  aspect-ratio:4 / 3;
  overflow:hidden;
  background:var(--formDisabled);
}

.card-product--property .property-media__link{
  display:block;
  width:100%;
  height:100%;
}

.card-product--property .property-media img.thumb{
  display:block;
  width:100%;
  height:100%;
  aspect-ratio:auto;
  object-fit:cover;
  border-radius:0;
  background:var(--formDisabled);
  transition:transform .45s ease;
}

.card-product--property:hover .property-media img.thumb{
  transform:scale(1.04);
}

.card-product--property .property-badge-row{
  position:absolute;
  inset:.8rem .8rem auto;
  z-index:3;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.5rem;
  flex-wrap:nowrap;
  pointer-events:none;
}

.card-product--property .property-badge-row .badge{
  display:inline-flex;
  align-items:center;
  min-height:2rem;
  padding:.42rem .65rem;
  border:1px solid var(--panelBorder);
  border-radius:var(--radiusChip);
  background:color-mix(in srgb, var(--panelBg) 94%, transparent);
  color:var(--panelText);
  box-shadow:var(--btnShadow);
  font-size:.72rem;
  font-weight:900;
  line-height:1;
  letter-spacing:.04em;
  text-transform:uppercase;
  backdrop-filter:blur(8px);
  margin-right:auto;
  max-width:calc(100% - 44px);
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.card-product--property .property-fav-btn{
  pointer-events:auto;
  width:2.375rem;
  height:2.375rem;
  flex:0 0 2.375rem;
  margin-left:auto;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid var(--panelBorder);
  border-radius:50%;
  background:color-mix(in srgb, var(--panelBg) 94%, transparent);
  color:var(--panelText);
  box-shadow:var(--btnShadow);
  cursor:pointer;
  transition:transform .15s ease, background-color .15s ease, color .15s ease, border-color .15s ease;
  backdrop-filter:blur(8px);
}

.card-product--property .property-fav-btn:hover,
.card-product--property .property-fav-btn:focus-visible{
  background:var(--cardBtnSecondaryBgActive);
  color:var(--cardBtnSecondaryTextActive);
  border-color:var(--cardBtnSecondaryBorderActive);
  transform:translateY(-1px);
}

.card-product--property .property-fav-btn:focus-visible{
  outline:0;
  box-shadow:var(--btnShadow), 0 0 0 .25rem var(--bs-focus-ring-color);
}

.card-product--property .property-fav-btn[aria-pressed="true"],
.card-product--property .property-fav-btn.active{
  background:var(--cardBtnPrimaryBgActive);
  color:var(--cardBtnPrimaryTextActive);
  border-color:var(--cardBtnPrimaryBorderActive);
}

.card-product--property .item-badge-discount{
  top:3.65rem;
  left:.8rem;
  z-index:3;
  width:auto;
  min-width:6.25rem;
  max-width:calc(100% - 1.6rem);
  padding:.35rem .65rem;
  font-size:.72rem;
  line-height:1;
  white-space:nowrap;
  box-shadow:var(--btnShadow);
}

.card-product--property:not(.card-product--has-highlight) .item-badge-discount{
  top:.8rem;
}

.card-product--property .property-body{
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  min-width:0;
  padding:1.05rem;
  background:var(--cardBg, var(--card-bg));
  color:var(--cardTitle, var(--card-title));
}

.card-product--property .property-location{
  display:flex;
  align-items:center;
  gap:.4rem;
  min-width:0;
  color:var(--cardDesc, var(--card-desc));
  font-size:.82rem;
  line-height:1.25;
}

.card-product--property .property-location > span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.card-product--property .property-location .bi{
  flex:0 0 auto;
  font-size:.95rem;
}

.card-product--property .title{
  min-height:0;
  margin:.5rem 0 .35rem;
  font-size:1.06rem;
  font-weight:800;
  line-height:1.25;
  letter-spacing:-.025em;
}

.card-product--property .title a{
  color:inherit;
  text-decoration:none;
}

.card-product--property .title a:hover,
.card-product--property .title a:focus-visible{
  color:var(--formFocus);
  text-decoration:none;
}

.card-product--property .property-price{
  margin:.35rem 0 0;
  color:var(--cardPrice, var(--card-price));
  font-size:1.2rem;
  font-weight:900;
  line-height:1.2;
}

.card-product--property .property-price-prefix,
.card-product--property .property-price-period{
  color:var(--cardDesc, var(--card-desc));
  font-size:.78rem;
  font-weight:800;
}

.card-product--property .property-rental-price{
  margin:.14rem 0 0;
  color:var(--cardDesc, var(--card-desc));
  font-size:.82rem;
  font-weight:800;
  line-height:1.25;
}

.card-product--property .property-description{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  margin:.55rem 0 0;
  color:var(--cardDesc, var(--card-desc));
  font-size:.86rem;
  line-height:1.45;
  overflow-wrap:anywhere;
  word-break:break-word;
}

.card-product--property .property-facts{
  display:flex;
  align-items:center;
  gap:.7rem;
  flex-wrap:wrap;
  padding-top:.8rem;
  margin-top:.85rem;
  border-top:1px solid var(--cardBorder);
  color:var(--cardDesc, var(--card-desc));
  font-size:.8rem;
  font-weight:700;
  line-height:1.2;
}

.card-product--property .property-facts > span{
  display:inline-flex;
  align-items:center;
  gap:.32rem;
  min-width:0;
}

.card-product--property .property-facts .bi{
  flex:0 0 auto;
  font-size:.95rem;
}

.card-product--property .property-actions{
  display:grid;
  gap:.55rem;
  padding-top:.95rem;
  margin-top:auto;
}

.card-product--property .property-actions .btn{
  min-height:2.625rem;
  margin:0;
  font-size:.84rem;
  font-weight:800;
}

.card-product--property .property-interest-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:0;
}

.card-product--property .property-quick-view{
  width:2.625rem;
  min-width:2.625rem;
  padding:0 !important;
  display:grid !important;
  place-items:center;
}

.card-product--property .property-quick-view .bi{
  margin:0;
  font-size:1rem;
}

@media (prefers-reduced-motion:reduce){
  .card-product.card-product--property,
  .card-product--property .property-media img.thumb,
  .card-product--property .property-fav-btn{
    transition:none;
  }
}
/* ---------- FIM PRODUCT CARD PROPERTY (IMOBILIARIA) ---------- */

.skeleton{animation:pulse 1.2s ease-in-out infinite;background:linear-gradient(90deg,#eee 25%,#f5f5f5 37%,#eee 63%);background-size:400% 100%}
@keyframes pulse{0%{background-position:100% 0}100%{background-position:0 0}}
.sk-card{
  height:100%;
  border:1px solid var(--panelBorder, #eaeaea);
  border-radius:var(--radiusCard, .5rem);
  padding:.5rem
}
.sk-img{
  height:120px;
  border-radius:var(--radiusCard, .5rem);
  margin-bottom:.5rem
}
.sk-line{height:14px;border-radius:4px;margin:6px 0}

/* ---------- SIDEBAR CATEGORIES ---------- */
.sidebar-cats .list-group-item{
  border-radius:var(--radiusMenu, .75rem);
  margin-bottom:.5rem;
  border:1px solid var(--cat-list-border);
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:.8rem;
  background:var(--cat-list-bg);
  color:var(--cat-list-text);
  transition:background-color .15s ease, color .15s ease, border-color .15s ease;
}
.sidebar-cats .list-group-item i{ opacity:.7; }
.sidebar-cats .list-group-item:hover,
.sidebar-cats .list-group-item:focus-visible{
  background:var(--btnBgHover);
  color:var(--cat-list-text-active);
  border-color:var(--btnBgHover);
  text-decoration:none;
}
.sidebar-cats .list-group-item.active{
  background:var(--cat-list-bg-active);
  color:var(--cat-list-text-active);
  border-color:var(--cat-list-border-active);
  text-decoration:none;
}
.sidebar-cats .list-group-item.active i{ opacity:1; }



/* ============ Bottom Nav (mobile) + NOTCH REAL (TRANSPARÊNCIA DE VERDADE) ============ */
/* Objetivo:
   1) Gap “invisível” ao redor do FAB = NAV não pinta atrás do FAB (recorte real).
   2) Sem “bola branca” (não desenha background fake).
   3) Borda superior NÃO atravessa o notch + arco contorna a curvatura.
   4) CORES: bottom-nav herda o esquema global de BOTÕES (fundo/texto/borda/ativo).
*/

.bottom-nav{
  /* Dimensões */
  --bn-height: 64px;
  --bn-z: 1030;

  /* =========================
     Tema (herda de BOTÕES)
     =========================
     - Fundo da barra acompanha o fundo do botão global
     - Texto/ícones acompanham o texto do botão global
     - Borda acompanha a borda do botão (ou fallback do header)
     - Ativo acompanha texto ativo do botão (se existir)
  */
  --bn-bg:     var(--btnBg, var(--navBg, var(--headerBg, #fff)));
  --bn-border: var(--btnBorder, var(--headerBorder, var(--cardBorder, #e5e7eb)));
  --bn-text:   var(--btnText, var(--navText, var(--text, #171717)));
  --bn-muted:  var(--bn-text);
  --bn-active: var(--btnTextActive, var(--brand, #ea1d2c));

  /* FAB + GAP (GAP = “margem invisível”) */
  --fab-size: 56px;
  --fab-gap:  10px;

  /* Cálculos */
  --fab-r:   calc(var(--fab-size) / 2);
  --notch-r: calc(var(--fab-r) + var(--fab-gap)); /* raio do recorte = FAB + GAP */
  --arc-h:   44px;                                 /* altura do arco visível */

  /* Glass (opcional) */
  --bn-glass: 92%;
  --bn-blur:  16px;

  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: var(--bn-z);

  height: calc(var(--bn-height) + env(safe-area-inset-bottom));
  padding-bottom: env(safe-area-inset-bottom);

  background: transparent;
  overflow: visible;
  isolation: isolate;

  /* deixa “vazar” clique no recorte/área vazia */
  pointer-events: none;
  border: none;
}

/* Fundo real da barra com recorte TRANSPARENTE usando radial-gradient (sem máscara/sem bola) */
.bottom-nav__bg{
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;

  /* Fora do círculo = cor do nav; Dentro do círculo = transparente */
  background:
    radial-gradient(
      circle var(--notch-r) at 50% 0,
      transparent 0 calc(var(--notch-r) - 1px),
      var(--bn-bg) var(--notch-r)
    );

  box-shadow: 0 -4px 20px rgba(0,0,0,.08);
}

@supports (backdrop-filter: blur(10px)){
  .bottom-nav__bg{
    background:
      radial-gradient(
        circle var(--notch-r) at 50% 0,
        transparent 0 calc(var(--notch-r) - 1px),
        color-mix(in srgb, var(--bn-bg) var(--bn-glass), transparent) var(--notch-r)
      );
    backdrop-filter: saturate(180%) blur(var(--bn-blur));
  }
}

/* Arco da borda contornando o notch (meia-lua inferior) */
.bottom-nav__arc{
  position: absolute;
  left: 0; right: 0; top: 0;
  height: var(--arc-h);
  z-index: 1;
  pointer-events: none;

  background:
    radial-gradient(
      circle var(--notch-r) at 50% 0,
      transparent calc(var(--notch-r) - 1px),
      var(--bn-border) var(--notch-r),
      transparent calc(var(--notch-r) + 1px)
    );

  /* mostra só a metade de baixo do círculo (o “sorriso”) */
  clip-path: polygon(0 50%, 100% 50%, 100% 100%, 0 100%);
}

/* Conteúdo */
.bottom-nav__inner{
  position: relative;
  z-index: 2;

  height: var(--bn-height);
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  padding: 0 8px;
  align-items: end;

  pointer-events: auto; /* reativa cliques só no conteúdo */
}

/* Itens */
.bottom-nav__item{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-decoration:none;

  /* herda texto global (botões) */
  color: var(--bn-muted);

  font-size: 12px;
  font-weight: 500;
  gap: 4px;
  height: 100%;
  padding-bottom: 4px;
  transition: color .2s;
}

/* ativo acompanha tema (btnTextActive ou brand fallback) */
.bottom-nav__item.active{ color: var(--bn-active); }

.bottom-nav__item i{
  font-size: 24px;
  line-height: 1;
  margin-bottom: 2px;
}

/* FAB flutuante (independente por z-index) */
.bottom-nav__fab-container{
  position: absolute;
  top: 0; left: 50%;
  transform: translate(-50%, -50%);
  width: var(--fab-size);
  height: var(--fab-size);

  z-index: 5;
  pointer-events: auto; /* clicável */
  text-decoration: none;
}

.bottom-nav__fab{
  width: 100%;
  height: 100%;
  border-radius: 50%;

  /* FAB também herda BOTÕES (com fallback do brand) */
  background: var(--btnBg, var(--brand, #ea1d2c));
  color:      var(--btnText, var(--brandText, #fff));

  display:flex;
  align-items:center;
  justify-content:center;

  font-size: 24px;
  box-shadow: 0 4px 12px rgba(0,0,0,.25);
  transition: transform .2s cubic-bezier(.175,.885,.32,1.275), background-color .2s, color .2s;
}

.bottom-nav__fab:active{
  transform: scale(.95);
  background: var(--btnBgActive, var(--brand-700, #d41926));
}

/* Badge do FAB */
.fab-badge{
  position:absolute;
  top:0; right:0;
  transform: translate(20%, -20%);
  z-index: 6;

  /* contorno usando o próprio fundo do nav (evita “borda branca” fixa) */
  border: 2px solid var(--bn-bg);
}

@supports (backdrop-filter: blur(10px)){
  .fab-badge{
    border-color: color-mix(in srgb, var(--bn-bg) var(--bn-glass), transparent);
  }
}

/* Slot central (apenas label) */
.bottom-nav__label-center{
  margin-top: auto;
  padding-bottom: 6px;
}


/* ---------- FIM FOOTER / LAYOUT GLOBAL ---------- */

/* ---------- UTILITÁRIOS ---------- */
.safe-bottom{
  padding-bottom: calc(var(--tabbar-h) + var(--footer-y) + env(safe-area-inset-bottom));
}
.safe-bottom-mb{
  margin-bottom: calc(var(--tabbar-h) + var(--footer-y) + env(safe-area-inset-bottom));
}

/* ---------- FORM FACTORS ---------- */
.qty-group.input-group .btn,
.qty-group.input-group .form-control{ height:var(--control-h); }
.qty-input::-webkit-outer-spin-button,
.qty-input::-webkit-inner-spin-button,
.opt-qty::-webkit-outer-spin-button,
.opt-qty::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.qty-input, .opt-qty{ -moz-appearance:textfield; }
.qty-group.input-group > .btn:first-child{
  border-top-right-radius:0;
  border-bottom-right-radius:0;
}
.qty-group.input-group > .form-control{ border-radius:0; }
.qty-group.input-group > .btn:last-child{
  border-top-left-radius:0;
  border-bottom-left-radius:0;
}

/* ---------- TOOLBAR ---------- */
.toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  flex-wrap:wrap
}
.toolbar .title{
  font-weight:800;
  font-size:1rem
}
.toolbar .actions{
  display:flex;
  align-items:center;
  gap:.5rem
}
.toolbar .actions .form-control{
  width:320px;
  max-width:100%
}
@media (max-width:900px){
  .toolbar{
    display:grid;
    grid-template-columns:1fr;
    gap:.5rem
  }
  .toolbar .actions{
    display:grid;
    grid-template-columns:1fr auto;
    gap:.5rem
  }
  .toolbar .actions .form-control{
    width:auto;
    min-width:0
  }
}
@media (max-width:380px){
  .toolbar .actions{ grid-template-columns:1fr }
  .toolbar .actions .btn{ width:100% }
}

/* ---------- PAGINATION ---------- */
.pagination-brand {margin-top: 20px;}
.pagination-brand .page-link{
  border-radius:.5rem;
  color:var(--brand);
  border-color:var(--brand);
  background:transparent;
  margin: 4px;
}
.pagination-brand .page-link:hover,
.pagination-brand .page-link:focus{
  background:var(--brand);
  color:var(--brandText);
  border-color:var(--brand);
}
.pagination-brand .page-item.active .page-link{
  background:var(--brand);
  color:var(--brandText);
  border-color:var(--brand);
}
.pagination-brand .page-item.disabled .page-link{
  color:var(--bs-secondary-color);
  background:var(--bs-secondary-bg);
  border-color:var(--bs-border-color);
  pointer-events:none;
}

/* Toolbar ajustes locais mantidos */
.toolbar .actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
  min-width:0
}
.toolbar .actions .form-select,
.toolbar .actions .form-control{
  flex:1 1 160px;
  min-width:0
}

/* Utilitário: limitar a 2 linhas com quebra segura */
.wrap-2{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  line-height:1.2;
  max-height:calc(1.2em * 2);
  word-break:break-word;
  overflow-wrap:anywhere;
  white-space:normal;
}

/* =================== ITEM PAGE (show) =================== */

/* Base */
.page-item{
  margin-right: 2px;
  --opt-w: 140px;

  /* FIX HERO: evita corte e mantém qualidade/encaixe */
  --item-hero-fit: contain; /* contain = não corta | cover = preenche cortando */
  --item-hero-bg: #f4f4f5;  /* fundo quando sobrar espaço (letterbox) */

  /* overlay/controls acima da imagem */
  --item-hero-z: 2;

  /* PROPORÇÃO DAS COLUNAS NO DESKTOP (resolve “slide gigante” sem criar vazio) */
  --col-media: 42%;  /* largura da coluna do slide (md+) */
  --col-form:  58%;  /* largura da coluna do conteúdo (md+) */
}

/* =================== GRID DESKTOP: AJUSTE DE COLUNAS SEM MEXER NO HTML ===================
   - Em md+ (>=768px), troca 6/6 por 42/58 (ou ajuste como quiser).
   - Isso elimina o “espaço sobrando dentro da coluna” porque a coluna em si fica menor.
*/
@media (min-width:768px){
  .page-item .row.g-4 > .col-md-6.d-none.d-md-block{
    flex: 0 0 var(--col-media);
    max-width: var(--col-media);
  }
  .page-item .row.g-4 > .col-md-6:not(.d-none){
    flex: 0 0 var(--col-form);
    max-width: var(--col-form);
  }
}

/* (Opcional) em telas grandes, deixa o conteúdo respirar mais */
@media (min-width:992px){
  .page-item{
    --col-media: 40%;
    --col-form:  60%;
  }
}

/* =================== OPÇÕES (coluna qty fixa + texto com wrap) =================== */

.page-item .opt-line{
  display:flex;
  align-items:flex-start;
  gap:.5rem;
}

.page-item .opt-left{
  flex:1 1 auto;
  min-width:0;
}

.page-item .opt-label{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.25rem;
  min-width:0;
}

.page-item .opt-name{
  flex:1 1 140px;
  min-width:0;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
}

.page-item .opt-price{
  flex:0 0 auto;
  white-space:nowrap;
  color: var(--textMutedGlobal, var(--muted));
}

.page-item .opt-right{
  flex:0 0 var(--opt-w);
  width:var(--opt-w);
  margin-left:auto;
  align-self:center;
}

/* telas muito estreitas: reduz levemente a coluna fixa */
@media (max-width:360px){
  .page-item{ --opt-w: 132px; }
  .page-item .opt-name{ flex-basis: 120px; }
}

/* =================== CONTROLE DE QUANTIDADE (item + opções) =================== */

.page-item .qty-group{
  width:100%;
  flex-wrap:nowrap;
}

/* BOTÕES + / - (COERENTE COM TOKENS GLOBAIS btn*) */
.page-item .qty-group .btn-outline-brand {
  background: var(--btnBg, #ea1d2c);
  border-color: var(--btnBorder, #d41926);
  color: var(--btnText, #ffffff);
  min-width: 2.5rem;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  box-shadow: none;
}

.page-item .qty-group .btn-outline-brand i{
  font-size: 1.1rem;
  line-height: 1;
}

.page-item .qty-group .btn-outline-brand:hover,
.page-item .qty-group .btn-outline-brand:focus-visible {
  background: var(--btnBgActive, #d41926);
  color: var(--btnTextActive, #ffffff);
  border-color: var(--btnBorder, #d41926);
}

.page-item .qty-group .btn-outline-brand:active{
  background:   var(--btnBgActive, var(--btnBg, var(--brand-700, #d41926)));
  color:        var(--btnTextActive, var(--btnText, var(--brandText, #ffffff)));
  border-color: var(--btnBorder, var(--brand-700, var(--brand, #ea1d2c)));
}

.page-item .qty-group .btn-outline-brand:focus-visible{
  outline: none;
  box-shadow: var(--btnShadow, 0px 2px 6px rgba(0,0,0,.08));
}

.page-item .qty-group .btn-outline-brand:disabled{
  opacity: 0.4;
}

/* INPUT NUMÉRICO */
.page-item .qty-group .qty-input {
  text-align: center;
  flex: 1 1 auto;
  min-width: 0;
  max-width: none;
  background: var(--btnBg, #ea1d2c);
  color: var(--btnText, #ffffff);
  border-color: var(--btnBorder, #d41926);
}

.page-item .qty-group .qty-input:focus {
  border-color: var(--formFocus, #ea1d2c);
  box-shadow: 0 0 0 0.2rem rgba(0, 0, 0, 0.08);
}

/* cantos do input-group */
.page-item .qty-group .btn-outline-brand.qty-minus,
.page-item .qty-group .btn-outline-brand.opt-minus{
  border-top-left-radius: var(--radiusButton, 999px);
  border-bottom-left-radius: var(--radiusButton, 999px);
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.page-item .qty-group .qty-input,
.page-item .qty-group .opt-qty{
  border-radius: 0;
}

.page-item .qty-group .btn-outline-brand.qty-plus,
.page-item .qty-group .btn-outline-brand.opt-plus{
  border-top-right-radius: var(--radiusButton, 999px);
  border-bottom-right-radius: var(--radiusButton, 999px);
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

/* opt-qty */
.page-item .qty-group.input-group-sm .opt-qty{
  flex:0 0 auto;
  width: 3.5rem;
  max-width: 3.5rem;
  min-width: 3.5rem;
  border: 1px solid var(--btnBorder, var(--btnBg, var(--brand)));
  box-shadow: var(--btnShadow, none);
}

/* =================== Características do imóvel =================== */

.page-item .property-features{
  container-name:item-features;
  container-type:inline-size;
}

.page-item .property-features-title{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 10px;
  color:var(--propertyFeatureTitle, var(--brand, var(--text, #183153)));
  font-size:1rem;
  font-weight:800;
  line-height:1.2;
}

.page-item .property-features-title-icon{
  display:grid;
  width:30px;
  height:30px;
  flex:0 0 30px;
  place-items:center;
  border-radius:8px;
  background:var(--propertyFeatureTitleIconBg, color-mix(in srgb, var(--brand, #183153) 10%, var(--surface, #ffffff)));
  color:var(--propertyFeatureTitleIconText, var(--propertyFeatureTitle, var(--brand, #183153)));
  font-size:.92rem;
}

.page-item .feature-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  align-items:start;
}

.page-item .feature-card{
  min-width:0;
  overflow:hidden;
  border:1px solid var(--propertyFeatureCardBorder, var(--cardBorder, #e5e7eb));
  border-radius:8px;
  background:var(--propertyFeatureCardBg, var(--cardBg, var(--surface, #ffffff)));
  box-shadow:var(--propertyFeatureCardShadow, var(--cardShadow, 0 5px 16px rgba(15, 23, 42, .045)));
}

.page-item .feature-card-header{
  display:flex;
  align-items:center;
  gap:9px;
  min-height:52px;
  padding:9px 12px;
  border-bottom:1px solid var(--propertyFeatureCardBorder, var(--cardBorder, #e5e7eb));
}

.page-item .feature-card-icon{
  display:grid;
  width:34px;
  height:34px;
  flex:0 0 34px;
  place-items:center;
  border-radius:8px;
  background:var(--propertyFeatureTitleIconBg, color-mix(in srgb, var(--brand, #183153) 10%, var(--surface, #ffffff)));
  color:var(--propertyFeatureTitleIconText, var(--propertyFeatureTitle, var(--brand, #183153)));
  font-size:1rem;
}

.page-item .feature-card-title{
  margin:0;
  color:var(--propertyFeatureCardTitle, var(--propertyFeatureTitle, var(--brand, var(--text, #183153))));
  font-size:.93rem;
  font-weight:800;
  line-height:1.15;
  letter-spacing:0;
}

.page-item .feature-card-description{
  margin:2px 0 0;
  color:var(--propertyFeatureCardMuted, var(--muted, #6b7280));
  font-size:.72rem;
  line-height:1.25;
}

.page-item .feature-list{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:7px;
  margin:0;
  padding:9px 10px 10px;
  list-style:none;
}

.page-item .feature-card--areas .feature-list{
  grid-template-columns:repeat(4, minmax(0, 1fr));
}

.page-item .feature-card--comfort .feature-list,
.page-item .feature-card--technology .feature-list{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}

.page-item .feature-item{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
  min-height:44px;
  padding:6px 8px;
  border:1px solid var(--propertyFeatureItemBorder, color-mix(in srgb, var(--cardBorder, #e5e7eb) 72%, var(--surface, #ffffff)));
  border-radius:8px;
  background:var(--propertyFeatureItemBg, color-mix(in srgb, var(--cardBg, var(--surface, #ffffff)) 82%, var(--bodyBg, #f6f7f9)));
}

.page-item .feature-item-icon{
  display:grid;
  width:28px;
  height:28px;
  flex:0 0 28px;
  place-items:center;
  border-radius:8px;
  background:var(--propertyFeatureIconBg, var(--surface, #ffffff));
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--brand, #183153) 12%, transparent);
  color:var(--propertyFeatureIconText, var(--btnDestaqueBgActive, var(--btnDestaqueBg, var(--brand, #183153))));
  font-size:.82rem;
  line-height:1;
}

.page-item .feature-item-text{
  min-width:0;
}

.page-item .feature-item-label{
  display:block;
  overflow:hidden;
  color:var(--propertyFeatureItemMuted, var(--muted, #6b7280));
  font-size:.61rem;
  font-weight:750;
  line-height:1.1;
  letter-spacing:.025em;
  text-overflow:ellipsis;
  text-transform:uppercase;
  white-space:nowrap;
}

.page-item .feature-item-value{
  display:block;
  margin-top:2px;
  overflow:hidden;
  color:var(--propertyFeatureItemText, var(--text, #1f2937));
  font-size:.79rem;
  font-weight:750;
  line-height:1.15;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.page-item .feature-item--boolean .feature-item-icon{
  background:var(--propertyFeatureBooleanIconBg, color-mix(in srgb, var(--brand, #183153) 9%, var(--surface, #ffffff)));
  box-shadow:none;
  color:var(--propertyFeatureBooleanIconText, var(--brand, #183153));
}

.page-item .feature-item--boolean .feature-item-value{
  margin-top:0;
  color:var(--propertyFeatureItemText, var(--text, #1f2937));
}

@container item-features (min-width:820px){
  .page-item .feature-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .page-item .feature-card--wide{
    grid-column:1 / -1;
  }

  .page-item .feature-card--environments .feature-list{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }

  .page-item .feature-card--structure .feature-list{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@container item-features (max-width:560px){
  .page-item .feature-list,
  .page-item .feature-card--areas .feature-list,
  .page-item .feature-card--comfort .feature-list,
  .page-item .feature-card--technology .feature-list{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@container item-features (max-width:360px){
  .page-item .feature-list,
  .page-item .feature-card--areas .feature-list,
  .page-item .feature-card--comfort .feature-list,
  .page-item .feature-card--technology .feature-list{
    grid-template-columns:1fr;
  }

  .page-item .feature-card-description{
    display:none;
  }
}

/* =================== CTA =================== */

.page-item .item-interest-section{
  margin-top: 32px;
  scroll-margin-top: 96px;
}

.page-item .item-interest-cta{
  display:grid;
  grid-template-columns:minmax(0, 1.05fr) minmax(320px, .95fr);
  gap:32px;
  align-items:center;
  padding:40px;
  border:1px solid var(--btnDestaqueBorder, var(--btnBorder, var(--cardBorder, #e5e7eb)));
  border-radius:var(--radiusCard, 10px);
  background:var(--surface, #ffffff);
  background:
    linear-gradient(135deg,
      color-mix(in srgb, var(--btnDestaqueBg, var(--brand, #ea1d2c)) 14%, var(--surface, #ffffff)),
      color-mix(in srgb, var(--btnDestaqueBg, var(--brand, #ea1d2c)) 4%, var(--panelBg, #ffffff))
    );
  box-shadow:var(--btnDestaqueShadow, var(--cardShadow, 0 8px 24px rgba(0,0,0,.06)));
  color:var(--text, #171717);
}

.page-item .item-interest-copy{
  min-width:0;
}

.page-item .item-interest-eyebrow{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  padding:6px 10px;
  border:1px solid color-mix(in srgb, var(--btnDestaqueBorder, var(--brand, #ea1d2c)) 36%, transparent);
  border-radius:var(--radiusButton, 999px);
  background:color-mix(in srgb, var(--btnDestaqueBg, var(--brand, #ea1d2c)) 12%, var(--surface, #ffffff));
  color:var(--btnDestaqueBgActive, var(--btnDestaqueBg, var(--brand, #ea1d2c)));
  font-size:.78rem;
  font-weight:800;
  line-height:1.2;
  text-transform:uppercase;
  overflow-wrap:anywhere;
}

.page-item .item-interest-title{
  margin:12px 0 10px;
  color:var(--text, #171717);
  font-size:2rem;
  font-weight:800;
  line-height:1.08;
  letter-spacing:0;
}

.page-item .item-interest-text{
  max-width:580px;
  margin:0;
  color:var(--muted, #6b7280);
}

.page-item .item-interest-trust{
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  margin-top:20px;
  color:var(--btnDestaqueBgActive, var(--btnDestaqueBg, var(--brand, #ea1d2c)));
  font-size:.92rem;
  font-weight:700;
}

.page-item .item-interest-trust span{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-width:0;
}

.page-item .item-interest-trust i{
  flex:0 0 auto;
}

.page-item .item-interest-form-shell{
  min-width:0;
  padding:18px;
  border:1px solid var(--formBorder, var(--cardBorder, #e5e7eb));
  border-radius:var(--radiusCard, 10px);
  background:var(--formBg, var(--surface, #ffffff));
  box-shadow:var(--cardShadow, 0 8px 22px rgba(0,0,0,.06));
}

.page-item .item-interest-form-shell:focus-visible{
  outline:2px solid var(--formFocus, var(--btnDestaqueBg, var(--brand, #ea1d2c)));
  outline-offset:3px;
}

.page-item .item-interest-loading{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:120px;
  color:var(--muted, #6b7280);
  font-size:.92rem;
  text-align:center;
}

.page-item .item-interest-form{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
  gap:10px;
}

.page-item .item-interest-form-heading,
.page-item .item-interest-profile{
  grid-column:1 / -1;
}

.page-item .item-interest-form-heading{
  margin:0 0 2px;
  color:var(--text, #171717);
  font-size:.95rem;
  font-weight:800;
  line-height:1.3;
}

.page-item .item-interest-profile-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px;
}

.page-item .item-interest-field{
  min-width:0;
}

.page-item .item-interest-field--full{
  grid-column:1 / -1;
}

.page-item .item-interest-control{
  width:100%;
  min-height:46px;
  border:1px solid var(--formBorder, #d1d5db);
  border-radius:var(--radiusButton, 10px);
  background:var(--formBg, #ffffff);
  color:var(--formText, var(--text, #171717));
  box-shadow:none;
}

.page-item .item-interest-control::placeholder{
  color:var(--textPlaceholder, #9ca3af);
  opacity:1;
}

.page-item .item-interest-control:focus{
  border-color:var(--formFocus, var(--btnDestaqueBg, var(--brand, #ea1d2c)));
  box-shadow:0 0 0 .2rem color-mix(in srgb, var(--btnDestaqueBg, var(--brand, #ea1d2c)) 18%, transparent);
}

.page-item .item-interest-control[readonly]{
  background:var(--formDisabled, #f3f4f6);
  color:var(--textMutedGlobal, var(--muted, #6b7280));
}

.page-item .item-interest-message{
  min-height:92px;
  resize:vertical;
}

.page-item .item-interest-submit{
  display:inline-flex;
  align-items:center;
  width:100%;
  min-height:48px;
  gap:.35rem;
  justify-content:center;
}

.page-item .btn-item-interest{
  white-space: normal;
  line-height: 1.25;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.35rem;
}

.page-item .btn-item-interest i{
  flex:0 0 auto;
}

.page-item .item-action-ctas{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}

.page-item .item-action-ctas .btn{
  min-width:0;
  white-space:normal;
}

.page-item .btn-item-proposal{
  background:var(--proposalBg, var(--btnDestaqueBg, var(--btnBg, var(--brand, #ea1d2c))));
  color:var(--proposalText, var(--btnDestaqueText, var(--btnText, var(--brandText, #ffffff))));
  border:1px solid var(--proposalBorder, var(--btnDestaqueBorder, var(--btnBorder, var(--brand-700, #d41926))));
  box-shadow:var(--proposalShadow, var(--btnDestaqueShadow, var(--btnShadow, none)));
  white-space:normal;
  line-height:1.25;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.35rem;
}

.page-item .btn-item-proposal:hover,
.page-item .btn-item-proposal:active{
  background:var(--proposalBgActive, var(--proposalBg, var(--btnDestaqueBgActive, var(--btnBgActive, var(--brand-700, #d41926)))));
  color:var(--proposalTextActive, var(--proposalText, var(--btnDestaqueTextActive, var(--btnTextActive, #ffffff))));
  border-color:var(--proposalBorder, var(--btnDestaqueBorder, var(--btnBorder, var(--brand-700, #d41926))));
  filter:brightness(.96);
}

.page-item .btn-item-proposal:focus-visible{
  outline:0;
  box-shadow:var(--proposalShadow, var(--btnDestaqueShadow, var(--btnShadow, none))), 0 0 0 .25rem var(--bs-focus-ring-color);
}

.page-item .btn-item-proposal i{
  flex:0 0 auto;
}

.page-item .item-proposal-section{
  margin-top:24px;
  scroll-margin-top:96px;
}

.page-item .item-proposal-cta{
  display:grid;
  grid-template-columns:minmax(0, 1.05fr) minmax(320px, .95fr);
  gap:32px;
  align-items:center;
  padding:40px;
  border:1px solid var(--proposalBorder, var(--cardBorder, #e5e7eb));
  border-radius:var(--radiusCard, 10px);
  background:linear-gradient(135deg,
    color-mix(in srgb, var(--proposalBg, var(--linkColor, #0d6efd)) 12%, var(--surface, #ffffff)),
    color-mix(in srgb, var(--proposalBg, var(--btnDestaqueBg, var(--brand, #ea1d2c))) 5%, var(--panelBg, #ffffff))
  );
  box-shadow:var(--proposalShadow, var(--cardShadow, 0 8px 24px rgba(0,0,0,.06)));
  color:var(--text, #171717);
}

.page-item .item-proposal-copy{
  min-width:0;
}

.page-item .item-proposal-eyebrow{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  padding:6px 10px;
  border:1px solid color-mix(in srgb, var(--proposalBorder, var(--linkColor, #0d6efd)) 36%, transparent);
  border-radius:var(--radiusButton, 999px);
  background:color-mix(in srgb, var(--proposalBg, var(--linkColor, #0d6efd)) 10%, var(--surface, #ffffff));
  color:var(--proposalBgActive, var(--proposalBg, var(--linkColor, #0d6efd)));
  font-size:.78rem;
  font-weight:800;
  line-height:1.2;
  text-transform:uppercase;
  overflow-wrap:anywhere;
}

.page-item .item-proposal-title{
  margin:12px 0 10px;
  color:var(--text, #171717);
  font-size:2rem;
  font-weight:800;
  line-height:1.08;
  letter-spacing:0;
}

.page-item .item-proposal-text{
  max-width:580px;
  margin:0;
  color:var(--muted, #6b7280);
}

.page-item .item-proposal-trust{
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  margin-top:20px;
  color:var(--proposalBgActive, var(--proposalBg, var(--linkColor, #0d6efd)));
  font-size:.92rem;
  font-weight:700;
}

.page-item .item-proposal-trust span{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-width:0;
}

.page-item .item-proposal-trust i{
  flex:0 0 auto;
}

.page-item .item-proposal-section-action{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:22px;
}

.page-item .item-proposal-form-shell{
  min-width:0;
  padding:18px;
  border:1px solid var(--formBorder, var(--cardBorder, #e5e7eb));
  border-radius:var(--radiusCard, 10px);
  background:var(--formBg, var(--surface, #ffffff));
  box-shadow:var(--cardShadow, 0 8px 22px rgba(0,0,0,.06));
}

.page-item .item-proposal-form-shell:focus-visible{
  outline:2px solid var(--formFocus, var(--proposalBg, var(--btnDestaqueBg, var(--brand, #ea1d2c))));
  outline-offset:3px;
}

.page-item .item-proposal-loading{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:120px;
  color:var(--muted, #6b7280);
  font-size:.92rem;
  text-align:center;
}

.page-item .item-proposal-form{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
  gap:10px;
}

.page-item .item-proposal-form-heading,
.page-item .item-proposal-notice{
  grid-column:1 / -1;
}

.page-item .item-proposal-form-heading{
  margin:0 0 2px;
  color:var(--text, #171717);
  font-size:.95rem;
  font-weight:800;
  line-height:1.3;
}

.page-item .item-proposal-notice{
  margin:0;
  font-size:.88rem;
}

.page-item .item-proposal-field,
.page-item .item-proposal-fieldset{
  min-width:0;
}

.page-item .item-proposal-fieldset{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
  gap:10px;
}

.page-item .item-proposal-field--full{
  grid-column:1 / -1;
}

.page-item .item-proposal-control{
  width:100%;
  min-height:46px;
  border:1px solid var(--formBorder, #d1d5db);
  border-radius:var(--radiusButton, 10px);
  background:var(--formBg, #ffffff);
  color:var(--formText, var(--text, #171717));
  box-shadow:none;
}

.page-item .item-proposal-control::placeholder{
  color:var(--textPlaceholder, #9ca3af);
  opacity:1;
}

.page-item .item-proposal-control:focus{
  border-color:var(--formFocus, var(--proposalBg, var(--btnDestaqueBg, var(--brand, #ea1d2c))));
  box-shadow:0 0 0 .2rem color-mix(in srgb, var(--proposalBg, var(--btnDestaqueBg, var(--brand, #ea1d2c))) 18%, transparent);
}

.page-item .item-proposal-message{
  min-height:92px;
  resize:vertical;
}

.page-item .item-proposal-submit{
  display:inline-flex;
  align-items:center;
  width:100%;
  min-height:48px;
  gap:.35rem;
  justify-content:center;
}

@media (max-width:991.98px){
  .page-item .item-interest-cta,
  .page-item .item-proposal-cta{
    grid-template-columns:1fr;
    gap:18px;
    padding:24px 18px;
  }

  .page-item .item-interest-title,
  .page-item .item-proposal-title{
    font-size:1.55rem;
  }
}

@media (max-width:575.98px){
  .page-item .item-interest-form,
  .page-item .item-interest-profile-grid,
  .page-item .item-proposal-form,
  .page-item .item-proposal-fieldset{
    grid-template-columns:1fr;
  }

  .page-item .item-interest-field--full,
  .page-item .item-proposal-field--full{
    grid-column:auto;
  }

  .page-item .item-action-ctas .btn{
    width:100%;
  }

  .page-item .btn-item-interest-text,
  .page-item .btn-item-proposal-text{
    text-align:center;
    word-break:break-word;
  }
}

/* =================== Captação de imóveis =================== */

.property-listing-strip{
  width:100%;
  padding:18px 16px 16px;
  background:var(--bg, #ffffff);
}

.property-listing-strip-inner{
  max-width:var(--propertyListingContainer, var(--container, 1200px));
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:20px;
  align-items:center;
  padding:22px 24px;
  border:1px solid var(--propertyListingBorder, var(--btnDestaqueBorder, var(--btnBorder, var(--cardBorder, #e5e7eb))));
  border-radius:8px;
  background:
    linear-gradient(135deg,
      color-mix(in srgb, var(--propertyListingBg, var(--btnDestaqueBg, var(--brand, #ea1d2c))) 12%, var(--surface, #ffffff)),
      color-mix(in srgb, var(--propertyListingBg, var(--btnDestaqueBg, var(--brand, #ea1d2c))) 3%, var(--panelBg, #ffffff))
    );
  box-shadow:var(--propertyListingShadow, var(--btnDestaqueShadow, var(--cardShadow, 0 8px 24px rgba(0,0,0,.06))));
  color:var(--text, #171717);
}

.property-listing-strip-copy,
.property-listing-page-copy{
  min-width:0;
}

.property-listing-strip-eyebrow,
.property-listing-page-eyebrow{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  padding:6px 10px;
  border:1px solid color-mix(in srgb, var(--propertyListingBorder, var(--btnDestaqueBorder, var(--brand, #ea1d2c))) 34%, transparent);
  border-radius:var(--radiusButton, 999px);
  background:color-mix(in srgb, var(--propertyListingBg, var(--btnDestaqueBg, var(--brand, #ea1d2c))) 10%, var(--surface, #ffffff));
  color:var(--propertyListingBgActive, var(--propertyListingBg, var(--btnDestaqueBgActive, var(--btnDestaqueBg, var(--brand, #ea1d2c)))));
  font-size:.78rem;
  font-weight:800;
  line-height:1.2;
  text-transform:uppercase;
  letter-spacing:0;
  overflow-wrap:anywhere;
}

.property-listing-strip-title,
.property-listing-page-title{
  margin:10px 0 8px;
  color:var(--text, #171717);
  font-weight:800;
  line-height:1.1;
  letter-spacing:0;
}

.property-listing-strip-title{
  font-size:1.55rem;
}

.property-listing-page-title{
  font-size:2rem;
}

.property-listing-strip-text,
.property-listing-page-text{
  max-width:620px;
  margin:0;
  color:var(--muted, #6b7280);
}

.property-listing-strip-trust,
.property-listing-page-trust{
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  margin-top:14px;
  color:var(--propertyListingBgActive, var(--propertyListingBg, var(--btnDestaqueBgActive, var(--btnDestaqueBg, var(--brand, #ea1d2c)))));
  font-size:.92rem;
  font-weight:700;
}

.property-listing-strip-trust span,
.property-listing-page-trust span{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-width:0;
}

.property-listing-strip-trust i,
.property-listing-page-trust i{
  flex:0 0 auto;
}

.property-listing-strip-action{
  display:flex;
  justify-content:flex-end;
}

.property-listing-strip-action .btn,
.property-listing-submit{
  background:var(--propertyListingBg, var(--btnDestaqueBg, var(--btnBg, var(--brand, #ea1d2c))));
  color:var(--propertyListingText, var(--btnDestaqueText, var(--btnText, var(--brandText, #ffffff))));
  border:1px solid var(--propertyListingBorder, var(--btnDestaqueBorder, var(--btnBorder, var(--brand-700, #d41926))));
  box-shadow:var(--propertyListingShadow, var(--btnDestaqueShadow, var(--btnShadow, none)));
}

.property-listing-strip-action .btn:hover,
.property-listing-strip-action .btn:active,
.property-listing-submit:hover,
.property-listing-submit:active{
  background:var(--propertyListingBgActive, var(--propertyListingBg, var(--btnDestaqueBgActive, var(--btnBgActive, var(--brand-700, #d41926)))));
  color:var(--propertyListingTextActive, var(--propertyListingText, var(--btnDestaqueTextActive, var(--btnTextActive, #ffffff))));
  border-color:var(--propertyListingBorder, var(--btnDestaqueBorder, var(--btnBorder, var(--brand-700, #d41926))));
  filter:brightness(.96);
}

.property-listing-strip-action .btn:focus-visible,
.property-listing-submit:focus-visible{
  outline:0;
  box-shadow:var(--propertyListingShadow, var(--btnDestaqueShadow, var(--btnShadow, none))), 0 0 0 .25rem var(--bs-focus-ring-color);
}

.property-listing-page-hero{
  display:grid;
  grid-template-columns:minmax(0, .85fr) minmax(340px, 1.15fr);
  gap:28px;
  align-items:start;
  padding:24px 0 34px;
}

.property-listing-page-copy{
  position:sticky;
  top:92px;
  padding-top:8px;
}

.property-listing-form-shell,
.property-listing-success-box{
  min-width:0;
  border:1px solid var(--panelBorder, var(--cardBorder, #e5e7eb));
  border-radius:8px;
  background:var(--panelBg, var(--surface, #ffffff));
  color:var(--panelText, var(--text, #171717));
  box-shadow:var(--cardShadow, 0 8px 24px rgba(0,0,0,.06));
}

.property-listing-form-shell{
  padding:20px;
}

.property-listing-success-box{
  padding:28px 22px;
  text-align:center;
}

.property-listing-form-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}

.property-listing-form-section--full{
  grid-column:1 / -1;
}

.property-listing-form-heading{
  margin:0;
  color:var(--panelText, var(--text, #171717));
  font-size:1rem;
  font-weight:800;
  line-height:1.3;
}

.property-listing-form-hint{
  margin:.25rem 0 0;
  color:var(--panelMuted, var(--muted, #6b7280));
  font-size:.9rem;
}

.property-listing-field{
  min-width:0;
}

.property-listing-control{
  min-height:46px;
  border-color:var(--formBorder, #d1d5db);
  border-radius:8px;
  background:var(--formBg, #ffffff);
  color:var(--formText, var(--text, #171717));
}

.property-listing-control:focus{
  border-color:var(--formFocus, var(--propertyListingBg, var(--btnDestaqueBg, var(--brand, #ea1d2c))));
  box-shadow:0 0 0 .2rem color-mix(in srgb, var(--propertyListingBg, var(--btnDestaqueBg, var(--brand, #ea1d2c))) 18%, transparent);
}

.property-listing-control[readonly]{
  background:var(--formDisabled, #f3f4f6);
  color:var(--textMutedGlobal, var(--muted, #6b7280));
}

.property-listing-message{
  min-height:108px;
  resize:vertical;
}

.property-listing-submit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.35rem;
  width:100%;
  min-height:48px;
  white-space:normal;
}

@media (max-width:991.98px){
  .property-listing-strip-inner,
  .property-listing-page-hero{
    grid-template-columns:1fr;
  }

  .property-listing-strip-action{
    justify-content:flex-start;
  }

  .property-listing-strip-action .btn{
    width:100%;
  }

  .property-listing-page-copy{
    position:static;
  }

  .property-listing-page-title{
    font-size:1.6rem;
  }
}

@media (max-width:575.98px){
  .property-listing-strip{
    padding:14px 12px 12px;
  }

  .property-listing-strip-inner,
  .property-listing-form-shell{
    padding:18px;
  }

  .property-listing-form-grid{
    grid-template-columns:1fr;
  }

  .property-listing-form-section--full{
    grid-column:auto;
  }
}

/* =================== Header / Hero (desktop) =================== */

.page-item .item-hero{
  background: var(--surface, #ffffff);
  border-radius: var(--radiusLg, 16px);
}

.page-item .item-hero .card-body{
  padding: .85rem 1rem;
}

.page-item .item-hero-title,
.page-item .native-mobile-title{
  font-weight:800;
  line-height:1.25;
  word-break:break-word;
}

@media (min-width:768px){
  .page-item .item-hero .card-body{
    padding: 1rem 1.25rem;
  }
}

/* =================== MOBILE NATIVO (full width, 1:1) =================== */

.page-item .native-mobile-wrapper{
  display:flex;
  flex-direction:column;
}

.page-item .native-mobile-hero{
  width:100%;
}

.page-item .native-mobile-hero-inner{
  position:relative;
  width:100%;
  aspect-ratio:1 / 1;
  background: var(--item-hero-bg);
  overflow:hidden;
}

.page-item .native-mobile-hero-inner .carousel,
.page-item .native-mobile-hero-inner .carousel-inner{
  height:100%;
}

/* NÃO mexer no display base do .carousel-item */
.page-item .native-mobile-hero-inner .carousel-item{
  height:100%;
}

/* centralização sem quebrar o Bootstrap */
.page-item .native-mobile-hero-inner .carousel-item.active,
.page-item .native-mobile-hero-inner .carousel-item.carousel-item-start,
.page-item .native-mobile-hero-inner .carousel-item.carousel-item-end,
.page-item .native-mobile-hero-inner .carousel-item.carousel-item-next,
.page-item .native-mobile-hero-inner .carousel-item.carousel-item-prev{
  display:flex;
  align-items:center;
  justify-content:center;
}

.page-item .native-mobile-img{
  width:100%;
  height:100%;
  object-fit: var(--item-hero-fit);
  object-position:center;
  background: var(--item-hero-bg);
  display:block;
}

.page-item .native-mobile-hero-inner .item-badge-discount,
.page-item .native-mobile-hero-inner .carousel-indicators,
.page-item .native-mobile-hero-inner .carousel-control-prev,
.page-item .native-mobile-hero-inner .carousel-control-next{
  z-index: var(--item-hero-z);
}

.page-item .native-mobile-body{
  padding:0 1rem 0.75rem;
  margin-top:0.5rem;
}

.page-item .native-mobile-prices{
  display:flex;
  flex-direction:column;
}

/* =================== CONTROLES MOBILE =================== */

.page-item .native-carousel-control{
  width:auto;
  padding:0 .25rem;
  opacity:.96;
  transition: opacity .15s ease, transform .15s ease;
}

.page-item .native-carousel-control:hover{
  opacity:1;
  transform: translateY(-1px);
}

.page-item .native-carousel-control:focus-visible{
  outline:2px solid rgba(0,0,0,.35);
  outline-offset:2px;
}

.page-item .native-carousel-circle{
  width:1.9rem;
  height:1.9rem;
  border-radius:999px;
  background-color: rgba(15,23,42,.92);
  box-shadow: 0 8px 22px rgba(15,23,42,.45);
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.page-item .native-carousel-circle i{
  color:#fff;
  font-size:1.05rem;
  line-height:1;
}

.page-item .item-hero-mobile .carousel-control-prev{ left:.25rem; }
.page-item .item-hero-mobile .carousel-control-next{ right:.25rem; }

.page-item .item-hero-mobile .carousel-control-prev,
.page-item .item-hero-mobile .carousel-control-next{
  top:50%;
  transform: translateY(-50%);
}

/* =================== DOTS (MOBILE) =================== */

.page-item .native-carousel-indicators{
  position:absolute;
  bottom:.45rem;
  left:50%;
  transform: translateX(-50%);
  margin:0;
}

.page-item .native-carousel-indicators [data-bs-target]{
  width:6px;
  height:6px;
  border-radius:999px;
  background: rgba(255,255,255,.6);
  border:0;
  margin:0 2px;
  opacity:1;
}

.page-item .native-carousel-indicators .active{
  background:#ffffff;
  width:18px;
}

/* =================== GALERIA DESKTOP =================== */

.page-item .item-gallery-desktop{
  position:relative;
}

/* mantém 1:1 e ocupa 100% da coluna (sem “encurtar” e sem criar vazio) */
.page-item .item-main-desktop{
  position:relative;
  width:100%;
  aspect-ratio: 1 / 1;
  background: var(--item-hero-bg);
  overflow:hidden;
}

.page-item .item-main-desktop .carousel,
.page-item .item-main-desktop .carousel-inner{
  width:100%;
  height:100%;
}

.page-item .item-main-desktop .carousel-item{
  width:100%;
  height:100%;
}

.page-item .item-main-desktop .carousel-item.active,
.page-item .item-main-desktop .carousel-item.carousel-item-start,
.page-item .item-main-desktop .carousel-item.carousel-item-end,
.page-item .item-main-desktop .carousel-item.carousel-item-next,
.page-item .item-main-desktop .carousel-item.carousel-item-prev{
  display:flex;
  align-items:center;
  justify-content:center;
}

.page-item .item-main-desktop-img{
  width:100% !important;
  height:100% !important;
  object-fit: var(--item-hero-fit);
  object-position:center;
  background: var(--item-hero-bg);
  display:block;
}

.page-item .item-main-desktop .item-badge-discount,
.page-item .item-main-desktop .carousel-control-prev,
.page-item .item-main-desktop .carousel-control-next{
  z-index: var(--item-hero-z);
}

/* =================== CONTROLES DESKTOP =================== */

.page-item .item-carousel-control{
  width:auto;
  padding:0 .3rem;
  opacity:.96;
  transition: opacity .15s ease, transform .15s ease;
}

.page-item .item-carousel-control:hover{
  opacity:1;
  transform: translateY(-1px);
}

.page-item .item-carousel-control:focus-visible{
  outline:2px solid rgba(0,0,0,.35);
  outline-offset:2px;
}

.page-item .item-carousel-circle{
  width:2rem;
  height:2rem;
  border-radius:999px;
  background-color: rgba(15,23,42,.92);
  box-shadow: 0 8px 22px rgba(15,23,42,.45);
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.page-item .item-carousel-circle i{
  color:#fff;
  font-size:1.1rem;
  line-height:1;
}

.page-item .item-gallery-desktop .carousel-control-prev{ left:.35rem; }
.page-item .item-gallery-desktop .carousel-control-next{ right:.35rem; }

.page-item .item-gallery-desktop .carousel-control-prev,
.page-item .item-gallery-desktop .carousel-control-next{
  top:50%;
  transform: translateY(-50%);
}

/* =================== VÍDEO DO IMÓVEL =================== */

.page-item .item-video-trigger{
  position:absolute;
  left:50%;
  top:50%;
  z-index:calc(var(--item-hero-z) + 2);
  min-width:3.5rem;
  min-height:3.5rem;
  border:1px solid rgba(255,255,255,.34);
  border-radius:999px;
  padding:.85rem 1.05rem;
  background:rgba(15,23,42,.76);
  color:#fff;
  box-shadow:0 16px 34px rgba(15,23,42,.34);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  line-height:1;
  transform:translate(-50%, -50%);
  transition:background-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.page-item .item-video-trigger:hover{
  background:rgba(15,23,42,.92);
  color:#fff;
  box-shadow:0 20px 42px rgba(15,23,42,.42);
  transform:translate(-50%, -51%);
}

.page-item .item-video-trigger:focus-visible{
  outline:3px solid rgba(255,255,255,.95);
  outline-offset:3px;
}

.page-item .item-video-trigger-icon{
  width:1.65rem;
  height:1.65rem;
  display:inline-grid;
  place-items:center;
  font-size:1.85rem;
  line-height:1;
}

.page-item .item-video-trigger-icon .bi{
  line-height:1;
  transform:translateX(1px);
}

.page-item .item-video-trigger-label{
  font-size:.88rem;
  font-weight:800;
  white-space:nowrap;
}

.page-item .item-video-modal .modal-content{
  background:#0b0f17;
  color:#fff;
  border:1px solid rgba(255,255,255,.12);
  border-radius:.75rem;
  overflow:hidden;
}

.page-item .item-video-modal .modal-header{
  min-height:3.35rem;
  padding:.75rem 1rem;
  border-bottom:1px solid rgba(255,255,255,.12);
}

.page-item .item-video-modal .modal-title{
  color:#fff;
}

.page-item .item-video-modal .modal-body{
  padding:0;
  background:#000;
}

.page-item .item-video-modal iframe{
  display:block;
  width:100%;
  height:100%;
  border:0;
  background:#000;
}

@media (max-width:767.98px){
  .page-item .item-video-trigger{
    width:3.5rem;
    height:3.5rem;
    padding:0;
  }

  .page-item .item-video-trigger-label{
    display:none;
  }
}

@media (max-width:575.98px){
  .page-item .item-video-modal .modal-content{
    min-height:100vh;
    min-height:100dvh;
    border:0;
    border-radius:0;
  }

  .page-item .item-video-modal .modal-body{
    display:flex;
    align-items:center;
  }

  .page-item .item-video-modal .ratio{
    width:100%;
  }
}

/* =================== THUMBS =================== */

.page-item .item-thumbs{
  gap:.35rem;
}

.page-item .item-thumbs-desktop{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(2.6rem, 1fr));
  gap:.4rem;
}

.page-item .item-thumbs-mobile{
  display:grid;
  width:100%;
  padding:0 0 .35rem;
}

.page-item .item-thumbs-mobile.thumbs-count-1,
.page-item .item-thumbs-mobile.thumbs-count-2{
  grid-template-columns: repeat(3, 1fr);
}

.page-item .item-thumbs-mobile.thumbs-count-3{
  grid-template-columns: repeat(3, 1fr);
}

.page-item .item-thumbs-mobile.thumbs-count-4{
  grid-template-columns: repeat(4, 1fr);
}

.page-item .item-thumbs-mobile.thumbs-count-5{
  grid-template-columns: repeat(5, 1fr);
}

.page-item .item-thumb{
  border:1px solid var(--chipBorder, rgba(0,0,0,.08));
  border-radius:.5rem;
  padding:0;
  background: var(--chipBg, #ffffff);
  overflow:hidden;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition:
    border-color .15s ease,
    box-shadow .15s ease,
    transform .12s ease,
    background-color .15s ease;
}

.page-item .item-thumbs-mobile .item-thumb{
  width:100%;
  height:72px;
}

.page-item .item-thumbs-desktop .item-thumb{
  width:100%;
  aspect-ratio: 1 / 1;
}

.page-item .item-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.page-item .item-thumb.active{
  border-color: var(--brand, #ea1d2c);
  box-shadow: 0 0 0 1px var(--brandSoft, rgba(234,29,44,.25));
  background: rgba(234,29,44,.03);
}

.page-item .item-thumb:hover{
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(15,23,42,.12);
}

.page-item .item-thumb:focus-visible{
  outline:2px solid var(--brand, #ea1d2c);
  outline-offset:2px;
}

/* =================== GALERIA FULLSCREEN =================== */

.page-item [data-item-gallery-open]{
  cursor:zoom-in;
}

.page-item .item-gallery-expand-btn{
  position:absolute;
  right:.75rem;
  bottom:.75rem;
  z-index:calc(var(--item-hero-z) + 1);
  width:2.65rem;
  height:2.65rem;
  border:0;
  border-radius:999px;
  background:rgba(15,23,42,.9);
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 10px 28px rgba(15,23,42,.36);
  transition:background-color .15s ease, transform .15s ease, box-shadow .15s ease;
}

.page-item .item-gallery-expand-btn:hover{
  background:rgba(15,23,42,.98);
  transform:translateY(-1px);
  box-shadow:0 14px 34px rgba(15,23,42,.45);
}

.page-item .item-gallery-expand-btn:focus-visible{
  outline:2px solid rgba(255,255,255,.95);
  outline-offset:3px;
}

.page-item .item-gallery-expand-btn i{
  font-size:1.1rem;
  line-height:1;
}

.item-gallery-fullscreen-modal{
  background:#05070a;
}

.item-gallery-fullscreen-modal .modal-dialog{
  margin:0;
}

.item-gallery-fullscreen-modal .modal-content{
  min-height:100vh;
  min-height:100dvh;
  background:#05070a;
  color:#fff;
  border:0;
  border-radius:0;
  overflow:hidden;
}

.item-gallery-fullscreen-modal .modal-header{
  position:absolute;
  z-index:4;
  top:0;
  left:0;
  right:0;
  min-height:4.25rem;
  padding:.85rem clamp(1rem, 3vw, 1.75rem);
  border:0;
  background:linear-gradient(180deg, rgba(0,0,0,.78), rgba(0,0,0,0));
  pointer-events:none;
}

.item-gallery-fullscreen-modal .modal-header > *{
  pointer-events:auto;
}

.item-gallery-fullscreen-modal .modal-body{
  height:100vh;
  height:100dvh;
  padding:0;
  overflow:hidden;
}

.item-gallery-fullscreen-modal .carousel,
.item-gallery-fullscreen-modal .carousel-inner,
.item-gallery-fullscreen-modal .carousel-item{
  width:100%;
  height:100%;
}

.item-gallery-fullscreen-modal .carousel-item.active,
.item-gallery-fullscreen-modal .carousel-item.carousel-item-start,
.item-gallery-fullscreen-modal .carousel-item.carousel-item-end,
.item-gallery-fullscreen-modal .carousel-item.carousel-item-next,
.item-gallery-fullscreen-modal .carousel-item.carousel-item-prev{
  display:flex;
  align-items:center;
  justify-content:center;
}

.item-gallery-fullscreen-modal .item-gallery-fullscreen-img{
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  object-position:center;
  display:block;
  background:#05070a;
}

.item-gallery-fullscreen-counter{
  min-width:4.75rem;
  padding:.35rem .65rem;
  border-radius:999px;
  background:rgba(15,23,42,.82);
  color:#fff;
  font-weight:700;
  font-size:.9rem;
  line-height:1.2;
  text-align:center;
  box-shadow:0 10px 28px rgba(0,0,0,.25);
}

.item-gallery-fullscreen-close{
  width:2.65rem;
  height:2.65rem;
  border:0;
  border-radius:999px;
  background:rgba(15,23,42,.86);
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 10px 28px rgba(0,0,0,.25);
  transition:background-color .15s ease, transform .15s ease;
}

.item-gallery-fullscreen-close:hover{
  background:rgba(15,23,42,1);
  transform:translateY(-1px);
}

.item-gallery-fullscreen-close:focus-visible{
  outline:2px solid rgba(255,255,255,.95);
  outline-offset:3px;
}

.item-gallery-fullscreen-control{
  width:clamp(3rem, 10vw, 5rem);
  opacity:1;
}

.item-gallery-fullscreen-control-circle{
  width:2.8rem;
  height:2.8rem;
  border-radius:999px;
  background:rgba(15,23,42,.82);
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 10px 28px rgba(0,0,0,.28);
  transition:background-color .15s ease, transform .15s ease;
}

.item-gallery-fullscreen-control:hover .item-gallery-fullscreen-control-circle{
  background:rgba(15,23,42,1);
  transform:scale(1.04);
}

.item-gallery-fullscreen-control:focus-visible .item-gallery-fullscreen-control-circle{
  outline:2px solid rgba(255,255,255,.95);
  outline-offset:3px;
}

@media (max-width:575.98px){
  .page-item .item-gallery-expand-btn{
    right:.65rem;
    bottom:.65rem;
    width:2.45rem;
    height:2.45rem;
  }

  .item-gallery-fullscreen-modal .modal-header{
    min-height:3.75rem;
    padding:.75rem .85rem;
  }

  .item-gallery-fullscreen-control{
    width:3.25rem;
  }

  .item-gallery-fullscreen-control-circle{
    width:2.35rem;
    height:2.35rem;
  }
}



/* ====================== CHAT PAGE (público dedicado) ====================== */

.page-chat{
  background: var(--bg, #ffffff);
  color: var(--text, #171717);
}

.page-chat .chat-page-card{
  max-width: 880px;
  margin: 0 auto;
  border: 1px solid var(--chatBorder, var(--panelBorder, var(--cardBorder, #e5e7eb)));
  border-radius: var(--radiusCard, 1.25rem);
  background: var(--chatBg, var(--panelBg, var(--surface, #ffffff)));
  color: var(--panelText, var(--text, #171717));
  box-shadow: var(--cardShadow, 0 8px 24px rgba(0,0,0,.06));
  overflow: hidden;
}

.page-chat .chat-page-header{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.25rem;
  background: var(--chatHeaderBg, var(--brand, #ea1d2c));
  color: var(--chatHeaderText, var(--brandText, #ffffff));
}

.page-chat .chat-page-heading{ min-width: 0; }

.page-chat .chat-page-kicker{
  margin: 0 0 .25rem;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: .86;
}

.page-chat .chat-page-title{
  margin: 0;
  font-size: clamp(1.35rem, 2vw, 1.85rem);
  font-weight: 800;
  line-height: 1.15;
  color: inherit;
}

.page-chat .chat-page-subtitle{
  margin: .45rem 0 0;
  max-width: 46rem;
  color: inherit;
  opacity: .9;
}

.page-chat .chat-page-back{
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  min-height: 40px;
  white-space: nowrap;
}

.page-chat .chat-page-body{ padding: 1rem; }

.page-chat .chat-page-list{
  display: flex;
  flex-direction: column;
  gap: .75rem;
  min-height: 360px;
  max-height: min(58vh, 620px);
  overflow: auto;
  padding: .5rem;
  border: 1px solid var(--chatBorder, var(--panelBorder, var(--cardBorder, #e5e7eb)));
  border-radius: var(--radiusCard, 1rem);
  background: color-mix(in srgb, var(--chatBg, var(--panelBg, #ffffff)) 94%, var(--chatBorder, var(--panelBorder, #e5e7eb)));
}

.page-chat .chat-page-empty{
  margin: auto;
  max-width: 34rem;
  text-align: center;
  color: var(--textMutedGlobal, var(--muted, #6b7280));
}

.page-chat .chat-page-msg{
  max-width: min(82%, 620px);
  padding: .7rem .85rem;
  border: 1px solid var(--chatBorder, var(--panelBorder, var(--cardBorder, #e5e7eb)));
  border-radius: var(--radiusCard, 1rem);
  background: var(--panelBg, var(--surface, #ffffff));
  color: var(--panelText, var(--text, #171717));
  overflow-wrap: anywhere;
}

.page-chat .chat-page-msg--customer{
  align-self: flex-end;
  background: var(--btnBg, var(--brand, #ea1d2c));
  border-color: var(--btnBorder, var(--btnBg, var(--brand, #ea1d2c)));
  color: var(--btnText, var(--brandText, #ffffff));
}

.page-chat .chat-page-msg--admin,
.page-chat .chat-page-msg--system{ align-self: flex-start; }

.page-chat .chat-page-msg--failed{ opacity: .7; }

.page-chat .chat-page-msg-meta{
  display: flex;
  align-items: baseline;
  gap: .35rem;
  margin-bottom: .25rem;
  font-size: .78rem;
  font-weight: 800;
}

.page-chat .chat-page-msg-time{ font-weight: 500; opacity: .72; }

.page-chat .chat-page-msg-text{ white-space: pre-wrap; line-height: 1.35; }

.page-chat .chat-page-status{
  min-height: 1.35rem;
  margin: .75rem .25rem;
  color: var(--textMutedGlobal, var(--muted, #6b7280));
  font-size: .92rem;
}

.page-chat .chat-page-form{
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .75rem;
  align-items: end;
}

.page-chat .chat-page-input{
  width: 100%;
  min-height: 52px;
  max-height: 180px;
  resize: vertical;
  border-color: var(--chatInputBorder, var(--formBorder, #d1d5db));
  border-radius: var(--radiusButton, 1rem);
  background: var(--chatInputBg, var(--formBg, #ffffff));
  color: var(--formText, var(--text, #171717));
}

.page-chat .chat-page-input:focus{
  border-color: var(--formFocus, var(--brand, #ea1d2c));
  box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--formFocus, var(--brand, #ea1d2c)) 24%, transparent);
}

.page-chat .chat-page-send{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  min-height: 52px;
  padding-inline: 1.25rem;
  font-weight: 800;
  white-space: nowrap;
}

.page-chat .chat-page-send:disabled,
.page-chat .chat-page-input:disabled{ cursor: not-allowed; }

.page-chat .chat-page-noscript{
  margin: .75rem 0 0;
  color: var(--textMutedGlobal, var(--muted, #6b7280));
}

@media (max-width: 576.98px){
  .page-chat .chat-page-header{ flex-direction: column; }
  .page-chat .chat-page-back{ width: 100%; }
  .page-chat .chat-page-list{ min-height: 50vh; max-height: 58vh; }
  .page-chat .chat-page-form{ grid-template-columns: 1fr; }
  .page-chat .chat-page-send{ width: 100%; }
  .page-chat .chat-page-msg{ max-width: 92%; }
}

/* ==================== FIM CHAT PAGE (público dedicado) ==================== */

/* ==================== Menu Mobile Main ==================== */
.menuMobiMain{
  display: flex;
  justify-content: flex-start;
  padding: .75rem 1rem;
  border: none;
  border-bottom: 1px solid var(--menuBorder, #eee);
  flex-direction: row;
  align-items: center;
  border-radius: 0;
}
.menuMobiMain.active{
  background: var(--menuBgActive, var(--brand));
  color: var(--menuTextActive, var(--brandText));
}
/* ==================== Fim Menu Mobile Main ==================== */

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   LEGAL PAGES (layout_blank)
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

/* cookies.php */
html[data-page='cookies'] { --fg:#111; --muted:#555; --link:#0b5ed7; --bg:#fff; }
html[data-page='cookies'] *,
html[data-page='cookies'] *::before,
html[data-page='cookies'] *::after { box-sizing:border-box; }
html[data-page='cookies'] body {
  margin:0;
  line-height:1.6;
  color:var(--fg);
  background:var(--bg);
}
html[data-page='cookies'] .container {
  max-width:860px;
  margin:0 auto;
  padding:24px;
}
html[data-page='cookies'] .muted {
  color:var(--muted);
  font-size:14px;
}
html[data-page='cookies'] h1 {
  font-size:28px;
  margin:0 0 8px;
}
html[data-page='cookies'] h2 {
  font-size:20px;
  margin:28px 0 8px;
}
html[data-page='cookies'] ul {
  margin:8px 0 8px 20px;
  padding:0;
}
html[data-page='cookies'] a {
  color:var(--link);
  text-decoration:none;
}
html[data-page='cookies'] a:hover { text-decoration:underline; }
html[data-page='cookies'] .note {
  background:#f7f7f8;
  padding:12px;
  border-radius:8px;
}

/* privacy.php */
html[data-page='privacy'] { --fg:#111; --muted:#555; --link:#0b5ed7; --bg:#fff; }
html[data-page='privacy'] *,
html[data-page='privacy'] *::before,
html[data-page='privacy'] *::after { box-sizing:border-box; }
html[data-page='privacy'] body {
  margin:0;
  line-height:1.6;
  color:var(--fg);
  background:var(--bg);
}
html[data-page='privacy'] .container {
  max-width:860px;
  margin:0 auto;
  padding:24px;
}
html[data-page='privacy'] .muted {
  color:var(--muted);
  font-size:14px;
}
html[data-page='privacy'] h1 {
  font-size:28px;
  margin:0 0 8px;
}
html[data-page='privacy'] h2 {
  font-size:20px;
  margin:28px 0 8px;
}
html[data-page='privacy'] ul {
  margin:8px 0 8px 20px;
  padding:0;
}
html[data-page='privacy'] a {
  color:var(--link);
  text-decoration:none;
}
html[data-page='privacy'] a:hover { text-decoration:underline; }

/* terms.php */
html[data-page="terms"] { --fg:#111; --muted:#555; --link:#0b5ed7; --bg:#fff; --card:#f7f7f8; }
html[data-page="terms"] *,
html[data-page="terms"] *::before,
html[data-page="terms"] *::after { box-sizing:border-box; }
html[data-page="terms"] body {
  margin:0;
  font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial,sans-serif;
  color:var(--fg);
  background:var(--bg);
}
html[data-page="terms"] .container {
  max-width:860px;
  margin:0 auto;
  padding:24px;
}
html[data-page="terms"] header { margin-bottom:16px; }
html[data-page="terms"] h1 {
  font-size:28px;
  margin:0 0 8px;
}
html[data-page="terms"] .muted {
  color:var(--muted);
  font-size:14px;
}
html[data-page="terms"] h2 {
  font-size:20px;
  margin:28px 0 8px;
}
html[data-page="terms"] h3 {
  font-size:16px;
  margin:18px 0 6px;
}
html[data-page="terms"] p { margin:10px 0; }
html[data-page="terms"] ul { margin:8px 0 8px 20px; }
html[data-page="terms"] a {
  color:var(--link);
  text-decoration:none;
}
html[data-page="terms"] a:hover { text-decoration:underline; }
html[data-page="terms"] .note {
  background:var(--card);
  padding:12px;
  border-radius:8px;
}
html[data-page="terms"] footer {
  margin-top:32px;
  font-size:14px;
  color: var(--brandText);
  background: var(--brand);
  padding: 12px;
  margin-top: auto;
}
@media print {
  html[data-page="terms"] a { text-decoration:none; color:inherit; }
  html[data-page="terms"] .note { border:1px solid #ccc; }
}

/* ======================= ACCORDION (publico) ======================= */

/* ------------------------------------------------------------
   ACC (genérico) — usado em outras telas também
   Mantido (como você enviou) para não quebrar outros accordions.
   ------------------------------------------------------------ */
.acc{
  border:1px solid transparent;
  border-radius:var(--radiusCard, 1rem);
  box-shadow:0 10px 24px rgba(0,0,0,.06);
  overflow:hidden;
  background:var(--panelBg, #fff);
  color: var(--panelText, var(--text, #111));
}

.acc-h{
  background:var(--formDisabled, #f8f9fa);
  padding:.75rem 1rem;
  display:flex;
  justify-content:space-between;
  align-items:center;
  cursor:default;
  pointer-events:none;
}

.acc-b{ padding:1rem; }

/* Interação só quando JS está ativo */
.js .acc-h{
  cursor:pointer;
  pointer-events:auto;
}
.js .acc .acc-b{ display:none; }
.js .acc.open .acc-b{ display:block; }

/* Passo aberto fica mais destacado (genérico) */
.js .acc.open{
  border-color:var(--panelText, #111);
  background:var(--formDisabled, #f9fafb);
}
.js .acc.open .acc-h{
  background:var(--formDisabled, #eef1f3);
  border-bottom:1px solid var(--headerBorder, rgba(0,0,0,.06));
}

/* A11y utilitário já usado em outras views */
.visually-hidden{
  position:absolute!important;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* ======================= INICIO PROFILE (público) ======================= */
/* ====== PERFIL (view global) — bridge 100% theme.json ====== */
/* Escopo local para não interferir em outras páginas */
.profile-page{
  color: var(--text);
}

/* Cards/painéis internos */
.profile-page .ui-card{
  background: var(--panelBg);
  color: var(--panelText);
  border: 1px solid var(--panelBorder);
  border-radius: var(--radiusCard);
  box-shadow: var(--cardShadow);
  padding: 6px;
}

/* Títulos dentro dos cards */
.profile-page .ui-card h2,
.profile-page .ui-card h3{
  color: var(--panelText);
}

/* Inputs (garante que não herda bootstrap “puro”) */
.profile-page .form-control,
.profile-page .form-select{
  background: var(--formBg);
  color: var(--formText);
  border-color: var(--formBorder);
}
.profile-page .form-control::placeholder,
.profile-page .form-select::placeholder{
  color: var(--textPlaceholder);
  opacity: 1;
}
.profile-page .form-control:focus,
.profile-page .form-select:focus{
  border-color: var(--formFocus);
  box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0)
              var(--bs-focus-ring-width, .25rem) var(--bs-focus-ring-color);
}

/* Textos auxiliares */
.profile-page .ui-muted,
.profile-page .form-text,
.profile-page .text-muted{
  color: var(--textMutedGlobal) !important;
}

/* Badges: preferir TAG tokens.
   Observação: badges bootstrap (bg-success/warning/danger) continuam do BS;
   se quiser 100% tema, trocar no HTML por .ui-badge + variações.
*/
.profile-page .ui-badge{
  display:inline-flex;
  align-items:center;
  gap:.25rem;
  padding: .25rem .5rem;
  font-size: .75rem;
  font-weight: 700;
  border-radius: var(--radiusChip);
  background: var(--tagBgActive);
  color: var(--tagTextActive);
  border: 1px solid var(--tagBorder);
}

/* Bordas em helpers bootstrap dentro dos cards */
.profile-page .ui-card .border,
.profile-page .ui-card .border-top,
.profile-page .ui-card .border-bottom,
.profile-page .ui-card .border-start,
.profile-page .ui-card .border-end{
  border-color: var(--panelBorder) !important;
}

/* ======================= FIM PROFILE (público) ======================= */

/* ===================== MODAL: LOJA FECHADA (theme-aware) ===================== */

#mdlClosed .modal-content{
  background: var(--bs-modal-bg, var(--panelBg, var(--surface, #fff)));
  color:      var(--bs-modal-color, var(--panelText, var(--text, #171717)));
  border: 1px solid var(--panelBorder, var(--cardBorder, rgba(0,0,0,.12)));
  border-radius: var(--radiusCard, 1rem);
  box-shadow: var(--cardShadow, 0 10px 24px rgba(0,0,0,.06));
  overflow: hidden;
}

#mdlClosed .modal-header{
  background: var(--bs-card-cap-bg, color-mix(in srgb, var(--panelBg) 92%, var(--panelBorder)));
  color: var(--panelText, var(--text, #171717));
  border-bottom: 1px solid var(--panelBorder, var(--headerBorder, rgba(0,0,0,.06)));
  justify-content: space-between;
}

#mdlClosed .modal-title{ color: var(--panelText, var(--text, #171717)); }
#mdlClosed .modal-title i{ color: var(--brand, var(--btnBg, #ea1d2c)); }

#mdlClosed .text-muted{
  color: var(--textMutedGlobal, var(--muted, #6b7280)) !important;
}

#mdlClosed .modal-footer{
  border-top: 1px solid var(--panelBorder, var(--headerBorder, rgba(0,0,0,.06)));
  background: var(--bs-modal-bg, var(--panelBg, var(--surface, #fff)));
}

/* ---------- CARD STATUS (sem “linha vazia” dentro da tabela) ---------- */
#mdlClosed .closed-card{
  --cc-bg: color-mix(in srgb, #ffc107 20%, var(--panelBg, #fff));
  --cc-br: color-mix(in srgb, #ffc107 35%, var(--panelBorder, rgba(0,0,0,.12)));

  border: 1px solid var(--cc-br);
  background: var(--cc-bg);
  border-radius: var(--radiusCard, 12px);
  padding: .75rem .85rem;
  margin-bottom: .85rem;
}

#mdlClosed .closed-card.is-info{
  --cc-bg: color-mix(in srgb, var(--brand, #ea1d2c) 10%, var(--panelBg, #fff));
  --cc-br: color-mix(in srgb, var(--brand, #ea1d2c) 20%, var(--panelBorder, rgba(0,0,0,.12)));
}

#mdlClosed .closed-card__row{
  display: flex;
  gap: .75rem;
  align-items: flex-start;
}

#mdlClosed .closed-card__icon{
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  background: color-mix(in srgb, var(--panelBg, #fff) 70%, #ffc107 30%);
  border: 1px solid color-mix(in srgb, #ffc107 35%, var(--panelBorder, rgba(0,0,0,.12)));
  flex: 0 0 auto;
}

#mdlClosed .closed-card__icon i{
  color: var(--brand, var(--btnBg, #ea1d2c));
  font-size: 1.05rem;
}

#mdlClosed .closed-card__main{ min-width: 0; flex: 1 1 auto; }

#mdlClosed .closed-card__top{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
  flex-wrap: wrap;
}

#mdlClosed .closed-card__title{
  font-weight: 950;
  letter-spacing: .01em;
}

#mdlClosed .closed-card__pills{
  display: inline-flex;
  gap: .35rem;
  flex-wrap: wrap;
}

#mdlClosed .closed-card__msg{
  margin-top: .35rem;
  line-height: 1.25;
  opacity: .92;
  white-space: pre-line;
  overflow-wrap: anywhere;
  word-break: break-word;
}

#mdlClosed .closed-card__meta{
  margin-top: .45rem;
  font-size: .86rem;
}

/* pills do status (reuso da paleta) */
#mdlClosed .status-pill{
  display: inline-flex;
  align-items: center;
  padding: .18rem .65rem;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 900;
  border: 1px solid var(--panelBorder, rgba(0,0,0,.12));
  background: color-mix(in srgb, var(--panelBg, #fff) 86%, var(--brand, #ea1d2c) 14%);
  color: var(--panelText, #171717);
}

#mdlClosed .status-pill.is-warn{
  background: #ffc107;
  color: #272727;
  border-color: color-mix(in srgb, #ffc107 70%, var(--panelBorder, rgba(0,0,0,.12)) 30%);
}

/* ---------- GRID HORÁRIOS ---------- */
#mdlClosed .hours-grid{
  --hg-bg:     var(--panelBg, var(--surface, #fff));
  --hg-text:   var(--panelText, var(--text, #171717));
  --hg-muted:  var(--textMutedGlobal, var(--muted, #6b7280));
  --hg-border: var(--panelBorder, var(--cardBorder, rgba(0,0,0,.12)));
  --hg-head:   var(--bs-card-cap-bg, color-mix(in srgb, var(--panelBg) 92%, var(--panelBorder)));

  border: 1px solid var(--hg-border);
  border-radius: var(--radiusCard, 12px);
  background: var(--hg-bg);
  color: var(--hg-text);
  overflow: hidden;
}

#mdlClosed .hours-head,
#mdlClosed .hours-row{
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(88px, .9fr) minmax(88px, .9fr);
}

#mdlClosed .hours-head{ align-items: center; }
#mdlClosed .hours-row{ align-items: start; }

#mdlClosed .hours-head{
  background: var(--hg-head);
  color: var(--hg-muted);
  font-weight: 900;
  letter-spacing: .01em;
}

#mdlClosed .hcell{
  padding: .55rem .75rem;
  min-width: 0;
  border-bottom: 1px solid var(--hg-border);
}

#mdlClosed .hours-row:last-child .hcell{ border-bottom: 0; }

#mdlClosed .hours-head .hday{
  font-weight: 900;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#mdlClosed .hours-row .hday{
  font-weight: 800;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  display: flex;
  flex-direction: column;
  gap: .15rem;
}

/* label + pills (sempre preserva o dia; pills quebram para baixo) */
#mdlClosed .hours-dayline{
  display: flex;
  align-items: flex-start;
  gap: .45rem;
  min-width: 0;
  flex-wrap: wrap;
}

#mdlClosed .hours-daylabel{
  flex: 0 1 auto;
  min-width: 6ch;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#mdlClosed .hours-pills{
  flex: 0 0 100%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem;
  margin-top: .15rem;
  white-space: normal;
}

#mdlClosed .hours-msg{
  font-size: .85rem;
  line-height: 1.25;
  color: var(--hg-text);
  opacity: .90;
  margin-top: .05rem;
  white-space: pre-line;
  overflow-wrap: anywhere;
  word-break: break-word;
}

#mdlClosed .htime{
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* HOJE */
#mdlClosed .hours-row.is-today{
  background: rgba(var(--bs-primary-rgb, 234, 29, 44), .12);
  background: color-mix(in srgb, var(--hg-bg) 86%, var(--brand, #ea1d2c) 14%);
}
#mdlClosed .hours-row.is-today .hours-msg{ opacity: 1; }

/* estado: fechado / 24h (uma célula, sem “buraco” visual) */
#mdlClosed .hours-24h,
#mdlClosed .hours-closed{
  grid-column: 2 / 4;
  text-align: center;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  letter-spacing: .02em;
}

#mdlClosed .hours-24h{ font-weight: 950; }

#mdlClosed .hours-closed{
  font-weight: 900;
  color: var(--hg-muted);
}

/* fechado */
#mdlClosed .hours-row.is-closed{ opacity: .78; }
#mdlClosed .hours-row.is-closed .htime{ color: var(--hg-muted); }
#mdlClosed .hours-row.is-closed .hours-msg{
  color: var(--hg-muted);
  opacity: .95;
}

/* pills do dia */
#mdlClosed .today-pill{
  margin-left: 0;
  padding: .2rem .8rem;
  border-radius: 10px;
  font-size: .72rem;
  font-weight: 900;
  background: #ffc107;
  color: #272727;
}

/* ===================== FIM MODAL: LOJA FECHADA ===================== */



/* =====================================================================`n   PROPERTY ROW (LIST) — IMOBILIARIA
   - Mesmo contrato visual do item_card.php
   - Layout horizontal próprio para visualização em lista
   - Badge, favorito e endereço permanecem estáticos nesta etapa
   ===================================================================== */

.card-product.card-product--row{
  --row-media-w:8rem;
  --row-actions-w:11.5rem;
  --row-gap:.75rem;
  --row-pad:.75rem;

  min-width:0;
  display:grid;
  grid-template-columns:var(--row-media-w) minmax(0, 1fr);
  grid-template-areas:
    "media body"
    "actions actions";
  gap:var(--row-gap);
  align-items:start;
  padding:var(--row-pad);

  background:var(--cardBg, var(--card-bg));
  color:var(--cardTitle, var(--card-title));
  border:1px solid var(--cardBorder);
  border-radius:var(--radiusCard);
  box-shadow:var(--cardShadow);

  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.card-product.card-product--row:hover{
  transform:translateY(-2px);
  border-color:var(--cardBorder);
  box-shadow:var(--cardShadow);
}

.card-product.card-product--row:focus-within{
  border-color:var(--cardBorder);
  box-shadow:var(--cardShadow), 0 0 0 .25rem var(--bs-focus-ring-color);
}

/* ---------- MÍDIA ---------- */

.card-product--row .item-row__media{
  grid-area:media;
  position:relative;
  width:100%;
  aspect-ratio:4 / 3;
  overflow:hidden;
  border-radius:var(--radiusCard);
  background:var(--formDisabled);
}

.card-product--row .item-row__media-link{
  display:block;
  width:100%;
  height:100%;
}

.card-product--row img.thumb,
.card-product--row .item-row__thumb{
  display:block;
  width:100%;
  height:100%;
  aspect-ratio:auto;
  object-fit:cover;
  border-radius:0;
  background:var(--formDisabled);
  transition:transform .45s ease;
}

.card-product--row:hover .item-row__thumb{
  transform:scale(1.04);
}

/* Badge neutro + favorito sobre a imagem */
.card-product--row .item-row__badge-row{
  position:absolute;
  inset:.5rem .5rem auto;
  z-index:3;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.5rem;
  flex-wrap:nowrap;
  pointer-events:none;
}

.card-product--row .item-row__badge-row .badge{
  display:inline-flex;
  align-items:center;
  min-width:0;
  min-height:1.85rem;
  padding:.36rem .52rem;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;

  border:1px solid var(--panelBorder);
  border-radius:var(--radiusChip);
  background:color-mix(in srgb, var(--panelBg) 94%, transparent);
  color:var(--panelText);
  box-shadow:var(--btnShadow);

  font-size:.62rem;
  font-weight:900;
  margin-right:auto;
  max-width:calc(100% - 44px);
  line-height:1;
  letter-spacing:.035em;
  text-transform:uppercase;
  backdrop-filter:blur(8px);
}

.card-product--row .item-row__fav-btn{
  pointer-events:auto;
  width:1.9rem;
  height:1.9rem;
  flex:0 0 1.9rem;
  margin-left:auto;
  display:grid;
  place-items:center;
  padding:0;

  border:1px solid var(--panelBorder);
  border-radius:50%;
  background:color-mix(in srgb, var(--panelBg) 94%, transparent);
  color:var(--panelText);
  box-shadow:var(--btnShadow);
  cursor:pointer;

  transition:transform .15s ease, background-color .15s ease, color .15s ease, border-color .15s ease;
  backdrop-filter:blur(8px);
}

.card-product--row .item-row__fav-btn:hover,
.card-product--row .item-row__fav-btn:focus-visible{
  background:var(--cardBtnSecondaryBgActive);
  color:var(--cardBtnSecondaryTextActive);
  border-color:var(--cardBtnSecondaryBorderActive);
  transform:translateY(-1px);
}

.card-product--row .item-row__fav-btn:focus-visible{
  outline:0;
  box-shadow:var(--btnShadow), 0 0 0 .25rem var(--bs-focus-ring-color);
}

.card-product--row .item-row__fav-btn[aria-pressed="true"],
.card-product--row .item-row__fav-btn.active{
  background:var(--cardBtnPrimaryBgActive);
  color:var(--cardBtnPrimaryTextActive);
  border-color:var(--cardBtnPrimaryBorderActive);
}

/* Desconto sempre abaixo da linha de destaque/favorito */
.card-product--row .item-badge-discount{
  top:2.85rem;
  left:.5rem;
  z-index:3;
  width:auto;
  min-width:4.5rem;
  max-width:calc(100% - 1rem);
  padding:.3rem .52rem;
  font-size:.65rem;
  line-height:1;
  white-space:nowrap;
  box-shadow:var(--btnShadow);
}

.card-product--row:not(.card-product--has-highlight) .item-badge-discount{
  top:.5rem;
}

/* ---------- CORPO ---------- */

.card-product--row .item-row__body{
  grid-area:body;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-self:stretch;
}

.card-product--row .item-row__location{
  display:flex;
  align-items:center;
  gap:.4rem;
  min-width:0;
  color:var(--cardDesc, var(--card-desc));
  font-size:.78rem;
  line-height:1.25;
}

.card-product--row .item-row__location > span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.card-product--row .item-row__location .bi{
  flex:0 0 auto;
  font-size:.9rem;
}

.card-product--row .item-row__head{
  min-width:0;
}

.card-product--row .item-row__title{
  min-height:0;
  margin:.42rem 0 .3rem;
  font-size:1rem;
  font-weight:800;
  line-height:1.25;
  letter-spacing:-.025em;
  overflow-wrap:anywhere;
  word-break:break-word;
}

.card-product--row .item-row__modality{
  margin-bottom:.32rem;
}

.card-product--row .item-row__title a{
  color:inherit;
  text-decoration:none;
}

.card-product--row .item-row__title a:hover,
.card-product--row .item-row__title a:focus-visible{
  color:var(--formFocus);
  text-decoration:none;
}

.card-product--row .item-row__price{
  margin:0;
  color:var(--cardPrice, var(--card-price));
  font-size:1.05rem;
  font-weight:900;
  line-height:1.2;
  white-space:nowrap;
}

.card-product--row .item-row__price-prefix,
.card-product--row .item-row__price-period{
  color:var(--cardDesc, var(--card-desc));
  font-size:.75rem;
  font-weight:800;
}

.card-product--row .item-row__rental-price{
  margin:.12rem 0 0;
  color:var(--cardDesc, var(--card-desc));
  font-size:.78rem;
  font-weight:800;
  line-height:1.25;
}

.card-product--row .item-row__desc{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  margin:.55rem 0 0;
  color:var(--cardDesc, var(--card-desc));
  font-size:.8rem;
  line-height:1.4;
  overflow-wrap:anywhere;
  word-break:break-word;
}

.card-product--row .item-row__facts{
  display:flex;
  align-items:center;
  gap:.55rem .7rem;
  flex-wrap:wrap;
  padding-top:.65rem;
  margin-top:.7rem;
  border-top:1px solid var(--cardBorder);
  color:var(--cardDesc, var(--card-desc));
  font-size:.75rem;
  font-weight:700;
  line-height:1.2;
}

.card-product--row .item-row__facts > span{
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  min-width:0;
}

.card-product--row .item-row__facts .bi{
  flex:0 0 auto;
  font-size:.9rem;
}

/* ---------- AÇÕES ---------- */

.card-product--row .item-row__actions{
  grid-area:actions;
  display:grid;
  grid-template-columns:minmax(0, 1fr) 2.625rem;
  gap:.55rem;
  min-width:0;
  margin:0;
}

.card-product--row .item-row__actions .btn{
  min-height:2.625rem;
  margin:0;
  font-size:.82rem;
  font-weight:800;
}

.card-product--row .item-row__interest-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:0;
}

.card-product--row .item-row__quick-view{
  width:2.625rem;
  min-width:2.625rem;
  padding:0 !important;
  display:grid !important;
  place-items:center;
}

.card-product--row .item-row__quick-view .bi{
  margin:0;
  font-size:1rem;
}

/* ---------- DESKTOP ---------- */

@media (min-width:768px){
  .card-product.card-product--row{
    --row-media-w:11rem;
    --row-actions-w:12rem;

    grid-template-columns:var(--row-media-w) minmax(0, 1fr) var(--row-actions-w);
    grid-template-areas:"media body actions";
    align-items:stretch;
    gap:1rem;
  }

  /* Título, preço e descrição permanecem no mesmo eixo editorial. */
  .card-product--row .item-row__head{
    display:block;
  }

  .card-product--row .item-row__title{
    margin-bottom:.35rem;
  }

  .card-product--row .item-row__price{
    padding:0;
    text-align:left;
  }

  .card-product--row .item-row__desc{
    max-width:52rem;
  }

  .card-product--row .item-row__facts{
    margin-top:auto;
  }

  .card-product--row .item-row__actions{
    align-self:end;
  }
}

@media (min-width:992px){
  .card-product.card-product--row{
    --row-media-w:12rem;
    --row-actions-w:13rem;
  }

  .card-product--row .item-row__badge-row{
    inset:.65rem .65rem auto;
  }

  .card-product--row .item-row__badge-row .badge{
    min-height:2rem;
    padding:.42rem .65rem;
    font-size:.7rem;
  }

  .card-product--row .item-row__fav-btn{
    width:2.25rem;
    height:2.25rem;
    flex-basis:2.25rem;
  }

  .card-product--row .item-badge-discount{
    top:3.35rem;
    left:.65rem;
    min-width:5.5rem;
    font-size:.7rem;
  }

  .card-product--row .item-row__location{
    font-size:.82rem;
  }

  .card-product--row .item-row__title{
    font-size:1.08rem;
  }

  .card-product--row .item-row__price{
    font-size:1.15rem;
  }

  .card-product--row .item-row__facts{
    font-size:.8rem;
  }
}

@media (max-width:359.98px){
  .card-product.card-product--row{
    --row-media-w:7.25rem;
    --row-gap:.6rem;
    --row-pad:.65rem;
  }

  .card-product--row .item-row__badge-row{
    inset:.4rem .4rem auto;
    gap:.25rem;
  }

  .card-product--row .item-row__badge-row .badge{
    padding:.3rem .4rem;
    font-size:.55rem;
  }

  .card-product--row .item-row__fav-btn{
    width:1.75rem;
    height:1.75rem;
    flex-basis:1.75rem;
  }

  .card-product--row .item-badge-discount{
    top:2.6rem;
    left:.4rem;
  }
}

@media (max-width:420px){
  /*
    Cards com destaque ativo:
    - o texto do destaque ocupa a primeira linha inteira;
    - o favorito desce para a segunda linha, alinhado à direita;
    - imóveis sem highlight permanecem no layout compacto original.
  */
  .card-product--property.card-product--has-highlight .property-badge-row,
  .card-product--row.card-product--has-highlight .item-row__badge-row{
    display:grid;
    grid-template-columns:minmax(0, 1fr) auto;
    grid-template-areas:
      "highlight highlight"
      ". favorite";
    align-items:start;
    gap:.35rem;
  }

  .card-product--property.card-product--has-highlight .property-badge-row > .badge.property-highlight-badge,
  .card-product--row.card-product--has-highlight .item-row__badge-row > .badge.property-highlight-badge{
    grid-area:highlight;
    width:100%;
    max-width:100%;
    min-width:0;
    margin-right:0;
    justify-content:center;
    text-align:center;
  }

  .card-product--property.card-product--has-highlight .property-fav-btn,
  .card-product--row.card-product--has-highlight .item-row__fav-btn{
    grid-area:favorite;
    margin-left:auto;
  }

  /*
    O card horizontal tem imagem baixa no mobile.
    Com highlight + favorito em duas linhas, 1:1 evita corte/colisão com desconto.
  */
  .card-product--row.card-product--has-highlight .item-row__media{
    aspect-ratio:1 / 1;
  }

  .card-product--property.card-product--has-highlight .item-badge-discount{
    top:5.85rem;
  }

  .card-product--row.card-product--has-highlight .item-badge-discount{
    top:4.85rem;
  }
}

@media (prefers-reduced-motion:reduce){
  .card-product.card-product--row,
  .card-product--row .item-row__thumb,
  .card-product--row .item-row__fav-btn{
    transition:none;
  }
}

/* ===================== FIM PROPERTY ROW (LIST) ===================== */

/* ========== CHIPS: setas + fade (desktop, apenas quando overflow) ========== */
.chip-scroller{
  position: relative;
  --chipsFadeBg: var(--headerBg, var(--panelBg, var(--bg, #fff)));
}

/* Base: mobile/touch NÃO reserva espaço */
.chip-scroller .scroller{
  padding-left: 0;
  padding-right: 0;
}

/* Desktop: só quando overflow e com ponteiro fino (setas aparecem) */
@media (hover:hover) and (pointer:fine){
  .chip-scroller.is-overflow .scroller{
    padding-left: 2.5rem;
    padding-right: 2.5rem;
  }
}

/* Segurança extra: se algum device cair em hover:none, zera padding */
@media (hover:none), (pointer:coarse){
  .chip-scroller.is-overflow .scroller{
    padding-left: 0;
    padding-right: 0;
  }
}


/* Fade nas bordas (indica que tem mais conteúdo) */
.chip-scroller::before,
.chip-scroller::after{
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 2.5rem;
  pointer-events: none;
  opacity: 0;
  transition: opacity .15s ease;
  z-index: 1;
}

.chip-scroller.is-overflow::before{
  left: 0;
  opacity: 1;
  background: linear-gradient(to right, var(--chipsFadeBg) 10%, rgba(255,255,255,0));
}
.chip-scroller.is-overflow::after{
  right: 0;
  opacity: 1;
  background: linear-gradient(to left, var(--chipsFadeBg) 10%, rgba(255,255,255,0));
}

/* Esconde fade quando já está no começo/fim */
.chip-scroller.at-start::before{ opacity: 0; }
.chip-scroller.at-end::after{ opacity: 0; }

/* Botões */
.chip-scroll-btn{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;

  width: 2.15rem;
  height: 2.15rem;
  border-radius: 999px;

  border: 1px solid var(--cat-chip-border, rgba(0,0,0,.12));
  background: var(--cat-chip-bg, #fff);
  color: var(--cat-chip-text, #111);

  display: none; /* default: escondido */
  align-items: center;
  justify-content: center;

  box-shadow: 0 6px 14px rgba(0,0,0,.10);
}

.chip-scroll-btn:disabled{
  opacity: .35;
  box-shadow: none;
}

.chip-scroll-btn--left{ left: .15rem; }
.chip-scroll-btn--right{ right: .15rem; }

/* Desktop: mostra setas só quando overflow */
@media (hover:hover) and (pointer:fine){
  .chip-scroller.is-overflow .chip-scroll-btn{ display: inline-flex; }
}

/* Touch: mantém só swipe (sem setas) */
@media (hover:none){
  .chip-scroll-btn{ display: none !important; }
}

/* ===================== FIM CHIPS: setas + fade ===================== */



/* ---------------------------------------------------------------------------
   FOOTER
--------------------------------------------------------------------------- */

/* ---------- FOOTER / LAYOUT GLOBAL ---------- */
footer{ background: var(--footerBg, #111); color: var(--footerText, #ddd); }
/* .container-xl-wide já definida no topo com token --container */

@media (max-width: 767.98px){
  body{ padding-bottom: calc(var(--tabbar-h) + env(safe-area-inset-bottom)); }
  .bottom-nav{ min-height: var(--tabbar-h); padding-bottom: env(safe-area-inset-bottom); }
}

.bottom-nav .nav-link{ font-size:.9rem; padding:.4rem 0; color:var(--textMutedGlobal, #444); }
.bottom-nav .nav-link.active{ color:var(--brand); }

/* ---------------------------------------------------------------------------
   SITE-FOOTER — bloco único consolidado
   (fallback #111111 / #dddddd consistente com o design system)
--------------------------------------------------------------------------- */
.site-footer{
  background: var(--footerBg, #111111);
  color: var(--footerText, #dddddd);
  border-top: 1px solid rgba(255,255,255,.18);
  padding: 1.5rem 0 1.25rem;
  font-size: .9rem;
  flex: 0 0 auto;
  margin-top: auto;
}

.site-footer a{
  color: inherit;
  text-decoration: none;
  opacity: .95;
}
.site-footer a:hover,
.site-footer a:focus-visible{
  text-decoration: underline;
  opacity: 1;
}
.site-footer a:focus-visible{
  outline: 2px solid rgba(255,255,255,.9);
  outline-offset: 2px;
  border-radius: 6px;
}

/* footer-wrap: coluna em todos os tamanhos (grid interno cuida do layout) */
.site-footer .footer-wrap{
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 1rem;
}

.site-footer .links ul{
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1rem;
  padding: 0;
  margin: 0;
  list-style: none;
}
.site-footer .links li{ line-height: 1.3; }

.copyright-footer{
  color: var(--footerText, var(--brandText));
  font-size: .875em;
  opacity: .95;
  display: flex;
  gap: .75rem;
  flex-wrap: wrap;
}
.copyright-footer small{ opacity: .85; }

/* safe-area: padding-bottom centralizado em mobile */
@media (max-width: 767.98px){
  .site-footer{
    padding-bottom: calc(90px + env(safe-area-inset-bottom));
  }
  .site-footer .links ul{ gap: .5rem .75rem; }
}


.footer-main{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:1.25rem;
  font-size:.9rem;
}

.footer-title{
  font-weight:700;
  text-transform:uppercase;
  font-size:.8rem;
  letter-spacing:.08em;
  margin-bottom:.4rem;
  opacity:.9;
}

.footer-brand-text{
  font-size:.9rem;
  opacity:.9;
  max-width:280px;
}

.footer-links{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:.25rem;
}

.footer-links li{
  line-height:1.4;
}

.footer-links a{
  color:inherit;
  text-decoration:none;
  opacity:.9;
}

.footer-links a:hover,
.footer-links a:focus-visible{
  opacity:1;
  text-decoration:underline;
}

.footer-contact-line{
  display:flex;
  flex-direction:column;
  gap:.15rem;
  opacity:.95;
}

.footer-contact-line span{
  display:block;
}

.footer-social{
  margin-top:.75rem;
}

.footer-social-label{
  font-size:.8rem;
  opacity:.85;
  margin-bottom:.25rem;
  display:block;
}

.footer-social-icons{
  display:flex;
  align-items:center;
  gap:.4rem;
}

.footer-social-icons a{
  display:inline-flex;
  width:32px;
  height:32px;
  border-radius:999px;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,.15);
  color:inherit;
  opacity:.9;
}

.footer-social-icons a:hover,
.footer-social-icons a:focus-visible{
  background:rgba(0,0,0,.25);
  opacity:1;
  text-decoration:none;
}

.footer-bottom{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  border-top:1px solid rgba(255,255,255,.24);
  padding-top:.5rem;
  margin-top:.25rem;
}

.footer-pill{
  border-radius:999px;
  border:1px solid rgba(255,255,255,.6);
  padding:2px 8px;
  font-size:.75rem;
  opacity:.9;
  white-space:nowrap;
}

/* Bottom nav herda o tema público — estilos estruturais já definidos acima em .bottom-nav */

@media (max-width: 767.98px){
  .footer-main{ gap:1rem; }
}

.margPad{
  margin: 0;
  padding: 0;
  font-size: 1.25rem !important;
  margin-right: -4px;
}

/* ---------------------------------------------------------------------------
   FOOTER (mobile): colapsável, isolado do scroll global
   - Não usa max-height em vh
   - Não depende de bottom bar
   - Abre/fecha apenas dentro do próprio footer
--------------------------------------------------------------------------- */

/* Blindagem do conteúdo interno do footer colapsável */
.site-footer[data-module="footer-collapse"] [data-footer-panel],
.site-footer[data-module="footer-collapse"] [data-footer-panel] *{
  box-sizing: border-box;
}

.site-footer[data-module="footer-collapse"] [data-footer-panel] > .footer-panel-inner{
  min-width: 0;
}

.site-footer[data-module="footer-collapse"] [data-footer-panel] > .footer-panel-inner > .footer-main{
  min-width: 0;
}

.site-footer[data-module="footer-collapse"] [data-footer-panel] > .footer-panel-inner > .footer-main > *{
  min-width: 0;
}

.site-footer[data-module="footer-collapse"] [data-footer-panel] img,
.site-footer[data-module="footer-collapse"] [data-footer-panel] svg,
.site-footer[data-module="footer-collapse"] [data-footer-panel] iframe{
  max-width: 100%;
  height: auto;
}

.site-footer[data-module="footer-collapse"] [data-footer-panel] a,
.site-footer[data-module="footer-collapse"] [data-footer-panel] span,
.site-footer[data-module="footer-collapse"] [data-footer-panel] p,
.site-footer[data-module="footer-collapse"] [data-footer-panel] li{
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* impedir que algum bloco interno tente criar rolagem própria */
.site-footer[data-module="footer-collapse"] [data-footer-panel] .footer-main{
  overflow: hidden;
}

/* Botão do footer (mobile) */
.site-footer[data-module="footer-collapse"] .footer-toggle-btn{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;

  padding: .65rem .75rem;
  border-radius: 12px;

  background: rgba(0,0,0,.10);
  border: 1px solid rgba(255,255,255,.22);
  color: inherit;

  text-align: left;
  line-height: 1.1;
}

.site-footer[data-module="footer-collapse"] .footer-toggle-left{
  display: flex;
  align-items: center;
  gap: .5rem;
  font-weight: 600;
}

.site-footer[data-module="footer-collapse"] .footer-toggle-ico{
  transition: transform .2s ease;
}

.site-footer[data-module="footer-collapse"].footer-is-open .footer-toggle-ico{
  transform: rotate(180deg);
}

.site-footer[data-module="footer-collapse"] .footer-toggle-btn:focus-visible{
  outline: 2px solid rgba(255,255,255,.9);
  outline-offset: 2px;
}

/* Modo colapsável apenas em mobile */
@media (max-width: 767.98px){
  .site-footer[data-module="footer-collapse"].footer-collapse-ready .footer-wrap{
    gap: .5rem;
  }

  .site-footer[data-module="footer-collapse"].footer-collapse-ready [data-footer-panel]{
    display: grid;
    grid-template-rows: 0fr;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    transition: grid-template-rows .28s ease, opacity .18s ease;
    will-change: grid-template-rows;
  }

  .site-footer[data-module="footer-collapse"].footer-collapse-ready [data-footer-panel] > .footer-panel-inner{
    min-height: 0;
    overflow: hidden;
  }

  .site-footer[data-module="footer-collapse"].footer-collapse-ready.footer-is-open [data-footer-panel]{
    grid-template-rows: 1fr;
    opacity: 1;
    pointer-events: auto;
  }
}

@media (prefers-reduced-motion: reduce){
  .site-footer[data-module="footer-collapse"].footer-collapse-ready [data-footer-panel],
  .site-footer[data-module="footer-collapse"] .footer-toggle-ico{
    transition: none;
  }
}
/* ---------- FIM FOOTER (mobile) ---------- */



/* ---------- ITEM (show) — bottom bar (mobile) / anti-FOUC ---------- */
@media (max-width: 767.98px){

  /* Evita “flash” dos CTAs inline do show.php antes do web.js */
  body[data-page="item"] .page-item[data-module="item"] #itemForm [data-role="inlineQtyWrap"],
  body[data-page="item"] .page-item[data-module="item"] #itemForm [data-role="inlineSubmitWrap"]{
    display: none !important;
  }

  /* ITEM — Bottom bar (mobile) */
  body[data-page="item"] .item-bottom-bar{
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 1040;

    background: var(--panelBg);
    color: var(--panelText);
    border-top: 1px solid var(--panelBorder);

    box-shadow: 0 -4px 20px rgba(0,0,0,0.08);

    padding: 12px 0;

    animation: slideUpBarItem 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
  }

  @keyframes slideUpBarItem{
    from { transform: translateY(100%); opacity: 0; }
    to   { transform: translateY(0); opacity: 1; }
  }

  body[data-page="item"] .item-bottom-bar__inner{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: nowrap;
  }

  /* Controle de QTY (cápsula) — herda esquema global de BOTÕES */
  body[data-page="item"] .qty-pill-control{
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    height: 48px;
    padding: 4px;

    border-radius: 12px;
    overflow: hidden;

    background: var(--btnBg);
    color: var(--btnText);
    border: 1px solid var(--btnBorder);
    box-shadow: var(--btnShadow);
  }

  body[data-page="item"] .btn-qty{
    width: 38px;
    height: 100%;
    border: 0;

    background: transparent;
    color: var(--btnText);

    border-radius: 8px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    font-size: 1.1rem;
    line-height: 1;

    transition: transform .15s ease, filter .15s ease, background-color .15s ease, color .15s ease;
  }

  body[data-page="item"] .btn-qty:focus-visible{
    outline: 2px solid var(--formFocus);
    outline-offset: 2px;
  }

  body[data-page="item"] .btn-qty:active:not(:disabled){
    transform: scale(0.92);
    background: color-mix(in srgb, var(--btnText) 14%, transparent);
    color: var(--btnTextActive);
    filter: brightness(0.98);
  }

  body[data-page="item"] .btn-qty:disabled{
    opacity: .55;
    background: transparent;
    color: var(--textMutedGlobal);
    transform: none;
    filter: none;
  }

  body[data-page="item"] .qty-val-display{
    min-width: 38px;
    padding: 0 10px;

    text-align: center;
    font-weight: 800;
    font-size: 1rem;

    color: var(--btnText);
    font-variant-numeric: tabular-nums;

    border-left: 1px solid color-mix(in srgb, var(--btnText) 18%, transparent);
    border-right: 1px solid color-mix(in srgb, var(--btnText) 18%, transparent);
  }

  /* Info de preço (deixa o botão ganhar espaço) */
  body[data-page="item"] .item-bottom-bar__info{
    flex: 0 1 auto;
    min-width: 0;
    max-width: 160px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-left: 4px;
  }

  body[data-page="item"] .item-bottom-bar__lbl{
    font-size: 0.7rem;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--textMutedGlobal);
    line-height: 1;
    margin-bottom: 3px;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body[data-page="item"] .item-bottom-bar__money{
    font-weight: 800;
    font-size: 1.1rem;
    color: var(--panelText);
    letter-spacing: -0.3px;
    line-height: 1;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* Botão Adicionar (ocupa a sobra do preço) */
  body[data-page="item"] .item-bottom-bar__btn-wrap{
    flex: 1 1 auto;
    min-width: 120px;
    display: flex;
    justify-content: flex-end;
  }

  body[data-page="item"] .item-bottom-bar__btn-wrap--split{
    align-items: stretch;
    gap: 8px;
  }

  body[data-page="item"] .item-bottom-bar__btn-wrap .btn-item-interest{
    flex: 1 1 auto;
    max-width: 320px;
  }

  body[data-page="item"] .item-bottom-bar__btn-wrap .btn-item-proposal{
    flex: 0 0 auto;
    min-width: 48px;
    padding-inline: 10px;
  }

  body[data-page="item"] .item-bottom-bar__secondary{
    border-color: var(--btnBorder);
    color: var(--btnText);
    background: var(--btnBg);
  }

  body[data-page="item"] .item-bottom-bar__secondary.btn-item-proposal{
    background:var(--proposalBg, var(--btnDestaqueBg, var(--btnBg, var(--brand, #ea1d2c))));
    color:var(--proposalText, var(--btnDestaqueText, var(--btnText, var(--brandText, #ffffff))));
    border-color:var(--proposalBorder, var(--btnDestaqueBorder, var(--btnBorder, var(--brand-700, #d41926))));
    box-shadow:var(--proposalShadow, var(--btnDestaqueShadow, var(--btnShadow, none)));
  }

  body[data-page="item"] .item-bottom-bar__secondary.btn-item-proposal:hover,
  body[data-page="item"] .item-bottom-bar__secondary.btn-item-proposal:active{
    background:var(--proposalBgActive, var(--proposalBg, var(--btnDestaqueBgActive, var(--btnBgActive, var(--brand-700, #d41926)))));
    color:var(--proposalTextActive, var(--proposalText, var(--btnDestaqueTextActive, var(--btnTextActive, #ffffff))));
    border-color:var(--proposalBorder, var(--btnDestaqueBorder, var(--btnBorder, var(--brand-700, #d41926))));
    filter:brightness(.96);
  }

  body[data-page="item"] .item-bottom-bar__secondary.btn-item-proposal:focus-visible{
    outline:0;
    box-shadow:var(--proposalShadow, var(--btnDestaqueShadow, var(--btnShadow, none))), 0 0 0 .25rem var(--bs-focus-ring-color);
  }

  @media (max-width:420px){
    body[data-page="item"] .item-bottom-bar__info{
      max-width: 132px;
    }

    body[data-page="item"] .item-bottom-bar__btn-wrap--split{
      gap: 6px;
    }

    body[data-page="item"] .item-bottom-bar__btn-wrap .btn-item-proposal{
      padding-inline: 9px;
    }

    body[data-page="item"] .item-bottom-bar__btn-wrap .btn-item-proposal .btn-item-proposal-text{
      display: none;
    }
  }
}

/* ---------- FIM ITEM (show) — bottom bar (mobile) / anti-FOUC ---------- */

/* ---------------------------------------------------------------------------`n   CSP-safe helpers (web.js)
   - Sem inline style: tudo via classes/atributos
   - Colar no layout.css (idealmente após o bootstrap, ou com seletor mais forte)
--------------------------------------------------------------------------- */

/* 1) Hide universal (vence .d-grid/.d-flex do Bootstrap) */
[hidden],
.js-hide { display: none !important; }

/* Força vencer utilitários do Bootstrap mesmo se ele vier depois (maior especificidade) */
.d-grid[hidden], .d-grid.js-hide,
.d-flex[hidden], .d-flex.js-hide,
.d-inline-flex[hidden], .d-inline-flex.js-hide,
.d-block[hidden], .d-block.js-hide,
.d-inline-block[hidden], .d-inline-block.js-hide {
  display: none !important;
}

/* 2) Cursor crosshair (mapa: seleção manual do PIN) */
.cursor-crosshair { cursor: crosshair !important; }

/* 3) Footer collapse (mobile) isolado do scroll global
   Requer classes: .footer-collapse-ready e .footer-is-open no .site-footer
   - Sem max-height em vh
   - Sem dependência de viewport dinâmica
   - Sem compensação programática de scroll
*/
@media (max-width: 767.98px) {
  .site-footer[data-module="footer-collapse"] [data-footer-toggle-wrap] {
    /* o JS alterna wrap.hidden; aqui só garante layout consistente */
  }

  .site-footer[data-module="footer-collapse"].footer-collapse-ready [data-footer-panel]{
    display: grid;
    grid-template-rows: 0fr;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    transition: grid-template-rows .28s ease, opacity .18s ease;
    will-change: grid-template-rows;
  }

  .site-footer[data-module="footer-collapse"].footer-collapse-ready [data-footer-panel] > .footer-panel-inner{
    min-height: 0;
    min-width: 0;
    overflow: hidden;
  }

  .site-footer[data-module="footer-collapse"].footer-collapse-ready [data-footer-panel] > .footer-panel-inner > .footer-main > *{
    min-width: 0;
  }

  .site-footer[data-module="footer-collapse"].footer-collapse-ready.footer-is-open [data-footer-panel]{
    grid-template-rows: 1fr;
    opacity: 1;
    pointer-events: auto;
  }

  /* Blindagem do conteúdo interno do footer */
  .site-footer[data-module="footer-collapse"] [data-footer-panel],
  .site-footer[data-module="footer-collapse"] [data-footer-panel] *{
    box-sizing: border-box;
  }

  .site-footer[data-module="footer-collapse"] [data-footer-panel] img,
  .site-footer[data-module="footer-collapse"] [data-footer-panel] svg,
  .site-footer[data-module="footer-collapse"] [data-footer-panel] iframe{
    max-width: 100%;
    height: auto;
  }

  .site-footer[data-module="footer-collapse"] [data-footer-panel] a,
  .site-footer[data-module="footer-collapse"] [data-footer-panel] span,
  .site-footer[data-module="footer-collapse"] [data-footer-panel] p,
  .site-footer[data-module="footer-collapse"] [data-footer-panel] li{
    overflow-wrap: anywhere;
    word-break: break-word;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-footer[data-module="footer-collapse"].footer-collapse-ready [data-footer-panel],
  .site-footer[data-module="footer-collapse"] .footer-toggle-ico{
    transition: none;
  }
}

/* .js-hide já declarada acima com comentário de contexto */

/* ==========================================================================
   FLASH GLOBAL — Bootstrap Toast
   - Componente global fixo no topo direito
   - Estrutura soberana: partials/flash.php
   - Comportamento soberano: web.js (Bootstrap Toast)
   - Diretriz visual: sutil, limpo, harmônico e leve
   ========================================================================== */

.flash-fixed{
  position: fixed;
  top: max(1rem, env(safe-area-inset-top, 0px));
  right: max(1rem, env(safe-area-inset-right, 0px));
  left: auto;

  width: min(360px, calc(100vw - 2rem));
  max-width: calc(100vw - 2rem);

  z-index: 1090;
  pointer-events: none;
}

.flash-fixed-inner{
  display: flex;
  flex-direction: column;
  gap: .65rem;

  max-height: calc(100dvh - 2rem);
  overflow-y: auto;
  overflow-x: hidden;

  padding: 0;
  pointer-events: auto;
  scrollbar-width: none;
  overscroll-behavior: contain;
}

.flash-fixed-inner::-webkit-scrollbar{
  display: none;
}

.flash-toast{
  --flash-accent: #0d6efd;
  --flash-surface: #ffffff;
  --flash-border: rgba(15, 23, 42, .08);
  --flash-text: #1f2937;
  --flash-muted: rgba(31, 41, 55, .72);
  --flash-icon-bg: rgba(13, 110, 253, .08);

  position: relative;
  width: 100%;
  overflow: hidden;
  pointer-events: auto;

  background: var(--flash-surface);
  color: var(--flash-text);

  border: 1px solid var(--flash-border);
  border-radius: 14px;
  box-shadow: none;
}

.flash-toast::before{
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--flash-accent);
  opacity: .92;
}

.flash-toast-header{
  display: flex;
  align-items: center;
  gap: .6rem;

  position: relative;
  margin: 0;
  padding: .68rem 2.7rem .42rem .85rem;

  background: transparent;
  color: inherit;
  border-bottom: 0;
  min-height: auto;
}

.flash-toast-icon{
  flex: 0 0 auto;
  width: 1.7rem;
  height: 1.7rem;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  border-radius: 999px;
  background: var(--flash-icon-bg);
  color: var(--flash-accent);

  font-size: .9rem;
  line-height: 1;
}

.flash-toast-title{
  margin: 0;
  font-size: .875rem;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -.01em;
  color: inherit;
}

.flash-toast-close{
  position: absolute;
  top: .58rem;
  right: .68rem;
  margin: 0;
  padding: 0;
  opacity: .42;
  transform: none;
}

.flash-toast-close:hover{
  opacity: .78;
}

.flash-toast-close:focus-visible{
  outline: 0;
  box-shadow: 0 0 0 .2rem var(--bs-focus-ring-color);
}

.flash-toast-body{
  padding: 0 .9rem .78rem 3.15rem;
  margin: 0;

  color: var(--flash-text);
  font-size: .9rem;
  line-height: 1.42;
  white-space: pre-line;
}

.flash-toast-body p,
.flash-toast-body ul,
.flash-toast-body li{
  margin: 0;
  color: inherit;
}

.flash-toast-body ul{
  padding-left: 1.05rem;
}

.flash-toast-body li + li{
  margin-top: .2rem;
}

/* Variantes — severidade sutil no fundo, forte no ícone/faixa */

.flash-toast--success{
  --flash-accent: var(--bs-success, #198754);
  --flash-surface: color-mix(in srgb, #ffffff 96%, var(--bs-success, #198754) 4%);
  --flash-border: color-mix(in srgb, rgba(15, 23, 42, .08) 78%, var(--bs-success, #198754) 22%);
  --flash-text: #1d3b2c;
  --flash-icon-bg: color-mix(in srgb, #ffffff 86%, var(--bs-success, #198754) 14%);
}

.flash-toast--info{
  --flash-accent: var(--bs-info, #0dcaf0);
  --flash-surface: color-mix(in srgb, #ffffff 96%, var(--bs-info, #0dcaf0) 4%);
  --flash-border: color-mix(in srgb, rgba(15, 23, 42, .08) 78%, var(--bs-info, #0dcaf0) 22%);
  --flash-text: #183c45;
  --flash-icon-bg: color-mix(in srgb, #ffffff 85%, var(--bs-info, #0dcaf0) 15%);
}

.flash-toast--warning{
  --flash-accent: #d97706;
  --flash-surface: color-mix(in srgb, #ffffff 96%, #f59e0b 4%);
  --flash-border: color-mix(in srgb, rgba(15, 23, 42, .08) 78%, #f59e0b 22%);
  --flash-text: #5b3a08;
  --flash-icon-bg: color-mix(in srgb, #ffffff 84%, #f59e0b 16%);
}

.flash-toast--danger{
  --flash-accent: var(--bs-danger, #dc3545);
  --flash-surface: color-mix(in srgb, #ffffff 96%, var(--bs-danger, #dc3545) 4%);
  --flash-border: color-mix(in srgb, rgba(15, 23, 42, .08) 78%, var(--bs-danger, #dc3545) 22%);
  --flash-text: #5a2430;
  --flash-icon-bg: color-mix(in srgb, #ffffff 85%, var(--bs-danger, #dc3545) 15%);
}

/* Movimento */

.flash-toast.fade{
  transition:
    opacity .16s ease,
    transform .16s ease;
}

.flash-toast.fade:not(.show){
  transform: translate3d(14px, -4px, 0);
}

.flash-toast.fade.show{
  transform: translate3d(0, 0, 0);
}

@media (max-width: 576px){
  .flash-fixed{
    top: max(.75rem, env(safe-area-inset-top, 0px));
    right: 1rem;
    left: 1rem;
    width: auto;
    max-width: none;
  }

  .flash-fixed-inner{
    max-height: calc(100dvh - 1.5rem);
  }

  .flash-toast{
    border-radius: 13px;
  }

  .flash-toast-header{
    padding: .64rem 2.55rem .4rem .8rem;
    gap: .55rem;
  }

  .flash-toast-icon{
    width: 1.62rem;
    height: 1.62rem;
    font-size: .86rem;
  }

  .flash-toast-close{
    top: .54rem;
    right: .62rem;
  }

  .flash-toast-body{
    padding: 0 .85rem .74rem 2.97rem;
    font-size: .8875rem;
    line-height: 1.4;
  }
}

@media (prefers-reduced-motion: reduce){
  .flash-toast.fade{
    transition: none !important;
  }

  .flash-toast.fade:not(.show),
  .flash-toast.fade.show{
    transform: none !important;
  }
}

/* ======= FIM FLASH ======= */

/* ==========================================================================
   Contato publico — CSP-safe (sem style="")
   ========================================================================== */

.contact-identity-label{
  font-size: .65rem;
  letter-spacing: .05em;
  color: var(--textMutedGlobal, var(--muted, #6c757d));
}

.contact-channel-icon{
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.legal-placeholder-page{
  min-height: 100vh;
  margin: 0;
  background: var(--bg, #ffffff);
  color: var(--text, #171717);
  font: 16px/1.6 system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
}

.legal-placeholder-shell{
  max-width: 860px;
  margin: 20px auto;
  padding: 16px;
}

.legal-placeholder-title{
  margin-top: 0;
}

.error-details{
  max-width: 720px;
}

/* ==========================================================================
   Product slider (widget-product-slider) — trilho 1 linha, responsivo, com snap
   ========================================================================== */

.widget-product-slider .product-slider-track{
  display:flex;
  flex-wrap:nowrap;
  gap: 1rem;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  padding-bottom: .25rem; /* evita cortar sombras */
  scrollbar-width:none; /* Firefox */
}
.widget-product-slider .product-slider-track::-webkit-scrollbar{ display:none; }

.widget-product-slider .product-slider-col{
  flex: 0 0 auto;
  scroll-snap-align:start;
  /* ~2 cards visíveis no mobile, ~3 no tablet, ~4 no desktop */
  width: clamp(170px, 48vw, 260px);
}

@media (min-width: 768px){
  .widget-product-slider .product-slider-col{
    width: clamp(200px, 30vw, 280px);
  }
}
@media (min-width: 1200px){
  .widget-product-slider .product-slider-col{
    width: 260px;
  }
}


/* =========================================================
 * Slider compacto de produtos
 * - Variante usada apenas no widget
 * - Não afeta o card do catálogo
 * ========================================================= */

/* ==========================================================================
   Product slider (widget-product-slider) — trilho 1 linha, responsivo, com snap
   ========================================================================== */

.widget-product-slider .product-slider-track{
  display:flex;
  flex-wrap:nowrap;
  gap: 1rem;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  padding-bottom: .25rem;
  scrollbar-width:none;
}
.widget-product-slider .product-slider-track::-webkit-scrollbar{ display:none; }

.widget-product-slider .product-slider-col{
  flex: 0 0 auto;
  scroll-snap-align:start;
  width: clamp(170px, 48vw, 260px);
}

@media (min-width: 768px){
  .widget-product-slider .product-slider-col{
    width: clamp(200px, 30vw, 280px);
  }
}
@media (min-width: 1200px){
  .widget-product-slider .product-slider-col{
    width: 260px;
  }
}

/* =========================================================
 * Slider compacto de produtos
 * - Variante usada apenas no widget
 * - Não afeta o card do catálogo
 * ========================================================= */

.widget-product-slider .widget-title{
  color: var(--cardTitle, var(--text, #171717));
  font-weight: 700;
}

/* Navegação do slider herdando o mesmo esquema secundário do card */
.widget-product-slider .widget-product-slider-nav{
  background:   var(--cardBtnSecondaryBg, var(--card-bg, var(--cardBg, #fff)));
  color:        var(--cardBtnSecondaryText, var(--card-title, var(--text, #171717)));
  border: 1px solid var(--cardBtnSecondaryBorder, var(--cardBorder, #e5e7eb));
  box-shadow:   var(--cardBtnSecondaryShadow, var(--btnShadow, none));
  border-radius: var(--radiusButton, 999px);
}

.widget-product-slider .widget-product-slider-nav:hover,
.widget-product-slider .widget-product-slider-nav:focus-visible,
.widget-product-slider .widget-product-slider-nav:active,
.widget-product-slider .widget-product-slider-nav.active{
  background:   var(--cardBtnSecondaryBgActive, var(--btnBgActive, var(--brand-700, #d41926)));
  color:        var(--cardBtnSecondaryTextActive, var(--btnTextActive, var(--brandText, #fff)));
  border-color: var(--cardBtnSecondaryBorderActive, var(--btnBorder, var(--brand-700, #d41926)));
  box-shadow:   var(--cardBtnSecondaryShadowActive, var(--cardBtnSecondaryShadow, var(--btnShadow, none)));
  filter: brightness(.98);
  transform: translateY(1px);
}

.widget-product-slider .widget-product-slider-nav:focus-visible{
  outline: 0;
  box-shadow:
    var(--cardBtnSecondaryShadowActive, var(--cardBtnSecondaryShadow, var(--btnShadow, none))),
    0 0 0 .25rem var(--bs-focus-ring-color);
}

.widget-product-slider--compact .product-slider-track{
  gap: .75rem;
}

.widget-product-slider--compact .product-slider-col{
  flex: 0 0 min(220px, 72vw);
  width: min(220px, 72vw);
}

.widget-product-slider--compact .item-slide-card{
  background: var(--card-bg, var(--cardBg, #fff));
  border: 1px solid var(--cardBorder, #e5e7eb);
  box-shadow: var(--cardShadow, 0px 8px 24px rgba(0,0,0,.06));
  border-radius: var(--radiusCard, 1rem);
  overflow: hidden;
}

.widget-product-slider--compact .item-slide-card-media{
  background: var(--formDisabled, #f0f0f0);
}

.widget-product-slider--compact .item-slide-card-img{
  display:block;
}

.widget-product-slider--compact .item-slide-card-highlight{
  position:absolute;
  top:.5rem;
  left:.5rem;
  z-index:3;
  display:inline-flex;
  align-items:center;
  max-width:calc(100% - 1rem);
  min-height:1.65rem;
  padding:.3rem .5rem;
  border:1px solid var(--panelBorder);
  border-radius:var(--radiusChip);
  background:color-mix(in srgb, var(--panelBg) 94%, transparent);
  color:var(--panelText);
  box-shadow:var(--btnShadow);
  font-size:.62rem;
  font-weight:900;
  line-height:1;
  text-transform:uppercase;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  backdrop-filter:blur(8px);
}

.widget-product-slider--compact .item-slide-card-title{
  line-height: 1.25;
  min-height: calc(1.25em * 1);
  color: var(--card-title, var(--text, #171717));
}

/* -webkit-line-clamp e min-height valor 1 por linha */

.slideclamp-2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden}

.widget-product-slider--compact .item-slide-card .card-body{
  padding-bottom: .5rem;
}

.widget-product-slider--compact .item-slide-card .card-footer{
  background: transparent;
  border: 0;
}

.widget-product-slider--compact .item-slide-card .actions{
  margin-top: auto;
}

.widget-product-slider--compact .item-slide-card .btn{
  white-space: nowrap;
}

.widget-product-slider--compact .item-slide-card .item-badge-discount{
  width: auto;
  min-width: 72px;
  max-width: calc(100% - 1rem);
}

.widget-product-slider--compact .item-slide-card-media-wrap--has-highlight .item-badge-discount{
  top:2.55rem;
}

@media (min-width: 576px){
  .widget-product-slider--compact .product-slider-col{
    flex-basis: 210px;
    width: 210px;
  }
}

@media (min-width: 992px){
  .widget-product-slider--compact .product-slider-col{
    flex-basis: 220px;
    width: 220px;
  }
}

  /* ==========================================================================
     Cookie consent banner — CSP-safe (sem inline style)
   ========================================================================== */

#cc-banner.cc-banner {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2147483647;
  padding: 12px 16px;
  background: var(--panelBg, #111111);
  color: var(--panelText, #ffffff);
  border-top: 1px solid var(--panelBorder, rgba(255, 255, 255, 0.14));
  box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.18);
}

.cc-banner__body {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 16px;
}

.cc-banner__text {
  flex: 1 1 320px;
  min-width: 260px;
}

.cc-banner__title {
  margin: 0 0 4px;
  font-size: 14px;
  line-height: 1.3;
  font-weight: 700;
}

.cc-banner__desc {
  margin: 0;
  font-size: 14px;
  line-height: 1.4;
  color: inherit;
  opacity: 0.92;
}

.cc-banner__choices {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
}

.cc-banner__choice {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  line-height: 1.3;
  cursor: pointer;
}

.cc-banner__checkbox {
  margin: 0;
}

.cc-banner__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-left: auto;
}

.cc-banner__btn {
  appearance: none;
  border: 1px solid transparent;
  border-radius: 8px;
  padding: 8px 12px;
  font: inherit;
  line-height: 1.2;
  cursor: pointer;
}

.cc-banner__btn:focus-visible {
  outline: 2px solid var(--primary, #0b5ed7);
  outline-offset: 2px;
}

.cc-banner__btn--primary {
  background: var(--primary, #0b5ed7);
  color: #ffffff;
}

.cc-banner__btn--secondary {
  background: #2d2d2d;
  color: #ffffff;
  border-color: #444444;
}

.cc-banner__btn--ghost {
  background: transparent;
  color: #bbbbbb;
  border-color: #444444;
}

.cc-banner__status {
  flex: 1 0 100%;
  margin: 0;
  font-size: 12px;
  line-height: 1.35;
  color: #ffb4b4;
}

@media (max-width: 768px) {
  .cc-banner__actions {
    width: 100%;
    margin-left: 0;
  }

  .cc-banner__btn {
    flex: 1 1 auto;
  }
}

  /* ==========================================================================
     Fime Cookie consent banner
   ========================================================================== */


   /* ======================= INICIO ADDRESS (público) ======================= */
/* ====== ENDEREÇOS — bridge 100% theme.json ====== */

.page-address {
  color: var(--text);
}

/* Cards/painéis */
.page-address .ui-card {
  background: var(--panelBg);
  color: var(--panelText);
  border: 1px solid var(--panelBorder);
  border-radius: var(--radiusCard);
  box-shadow: var(--cardShadow);
  padding: 6px;
}
.page-address .ui-card h2,
.page-address .ui-card h3 { color: var(--panelText); }

/* Inputs */
.page-address .form-control,
.page-address .form-select {
  background: var(--formBg);
  color: var(--formText);
  border-color: var(--formBorder);
}
.page-address .form-control::placeholder,
.page-address .form-select::placeholder {
  color: var(--textPlaceholder);
  opacity: 1;
}
.page-address .form-control:focus,
.page-address .form-select:focus {
  border-color: var(--formFocus);
  box-shadow: var(--bs-focus-ring-x,0) var(--bs-focus-ring-y,0)
              var(--bs-focus-ring-blur,0) var(--bs-focus-ring-width,.25rem)
              var(--bs-focus-ring-color);
}

/* Textos auxiliares */
.page-address .ui-muted,
.page-address .form-text,
.page-address .text-muted { color: var(--textMutedGlobal) !important; }

/* Badges de status (aprovado/pendente/rejeitado) */
.page-address .ui-badge {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  padding: .25rem .5rem;
  font-size: .75rem;
  font-weight: 700;
  border-radius: var(--radiusChip);
  background: var(--tagBgActive);
  color: var(--tagTextActive);
  border: 1px solid var(--tagBorder);
}

/* Bordas dentro dos cards */
.page-address .ui-card .border,
.page-address .ui-card .border-top,
.page-address .ui-card .border-bottom,
.page-address .ui-card .border-start,
.page-address .ui-card .border-end { border-color: var(--panelBorder) !important; }

/* --- Destinatário: rótulo acima do nome/telefone --- */
.addr-recipient-label {
  display: block;
  font-size: .65rem;
  letter-spacing: .06em;
  opacity: .6;
  text-transform: uppercase;
}

/* --- Mapa Leaflet: container de altura fixa, sem inline style --- */
.addr-map-wrap {
  height: 260px;
  border-radius: var(--radiusCard);
  border: 1px solid var(--panelBorder);
  overflow: hidden;
}

/* --- Mensagens de estado geo --- */
#geoMsg {
  color: var(--textMutedGlobal);
  min-height: 1.25rem;
}

/* --- Host do partial dinâmico por país (estado vazio) --- */
[data-address-form-empty] { color: var(--textMutedGlobal); }

/* --- Partial carregando --- */
[data-address-form][aria-busy="true"] {
  opacity: .6;
  pointer-events: none;
}

/* ======================= FIM ADDRESS (público) ======================= */
