/* ============================================================
   COMPONENTES — header, footer, menu, bottom-nav, FAB,
   lightbox, badges e card de produto (reutilizável)
   ============================================================ */
:root { --h-header:66px; }
html { scroll-padding-top:calc(var(--h-header) + 12px); }

/* Skip-link (acessibilidade) */
.skip-link {
  position:fixed; top:8px; left:8px; z-index:1300; transform:translateY(-150%);
  background:var(--azul-800); color:#fff; font-weight:700; padding:10px 16px; border-radius:var(--r);
  transition:transform .2s ease;
}
.skip-link:focus { transform:none; }

/* Offset do conteúdo (header é fixo). Home imersiva não tem offset. */
main { padding-top:var(--h-header); }
body.tema-imersivo main { padding-top:0; }

/* ============================================================ HEADER */
.site-header {
  position:fixed; top:0; left:0; right:0; z-index:var(--z-header);
  background:#fff; color:var(--texto);
  box-shadow:0 1px 0 var(--borda);
  transition:transform var(--t-suave), background var(--t-suave), box-shadow var(--t-suave), color var(--t-suave);
}
.site-header-inner {
  display:flex; align-items:center; gap:18px;
  height:var(--h-header);
  max-width:var(--container); margin-inline:auto;
  padding-inline:clamp(16px,4vw,32px);
}
.site-logo { flex-shrink:0; display:flex; align-items:center; }
.site-logo img { height:42px; width:auto; }

.site-nav { display:flex; align-items:center; gap:6px; margin-left:8px; }
.nav-link {
  position:relative; font-weight:600; font-size:.96rem;
  padding:9px 14px; border-radius:8px; color:inherit;
  transition:color var(--t), background var(--t);
}
.nav-link:hover { color:var(--azul-700); }
.nav-link-ativo { color:var(--azul-700); }
.nav-link-ativo::after {
  content:""; position:absolute; left:14px; right:14px; bottom:2px;
  height:2px; border-radius:2px; background:var(--amarelo);
}
.site-header-acoes { margin-left:auto; display:flex; align-items:center; gap:10px; }

.header-orcamento, .header-favoritos {
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:var(--r-full);
  background:var(--azul-100); color:var(--azul-800);
  transition:background var(--t), transform var(--t);
}
.header-orcamento:hover, .header-favoritos:hover { background:var(--azul-200); transform:translateY(-1px); }
.header-orcamento-badge,.header-fav-badge,.bnav-badge,.menu-badge {
  position:absolute; top:-4px; right:-4px; min-width:18px; height:18px; padding:0 5px;
  display:inline-flex; align-items:center; justify-content:center;
  font-size:11px; font-weight:800; color:#fff; background:#e23b3b;
  border-radius:999px; box-shadow:0 0 0 2px #fff;
}
.menu-badge { position:static; box-shadow:none; margin-left:6px; }
.header-hamburguer { display:none; width:44px; height:44px; align-items:center; justify-content:center; border-radius:var(--r-full); color:var(--texto); }

/* Estados de scroll */
.site-header-oculto { transform:translateY(-100%); }

/* Tema imersivo (home): header transparente sobre o hero */
body.tema-imersivo .site-header { background:transparent; box-shadow:none; color:#fff; }
body.tema-imersivo .site-header .nav-link:hover,
body.tema-imersivo .site-header .nav-link-ativo { color:#fff; }
body.tema-imersivo .site-header .nav-link-ativo::after { background:var(--amarelo); }
body.tema-imersivo .site-header .header-orcamento,
body.tema-imersivo .site-header .header-favoritos { background:rgba(255,255,255,.16); color:#fff; }
body.tema-imersivo .site-header .header-hamburguer { color:#fff; }
body.tema-imersivo .site-header.site-header-solido {
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(14px) saturate(160%); -webkit-backdrop-filter:blur(14px) saturate(160%);
  color:var(--texto); box-shadow:0 6px 24px rgba(6,32,90,.12);
}
body.tema-imersivo .site-header.site-header-solido .nav-link:hover,
body.tema-imersivo .site-header.site-header-solido .nav-link-ativo { color:var(--azul-700); }
body.tema-imersivo .site-header.site-header-solido .header-orcamento,
body.tema-imersivo .site-header.site-header-solido .header-favoritos { background:var(--azul-100); color:var(--azul-800); }
body.tema-imersivo .site-header.site-header-solido .header-hamburguer { color:var(--texto); }

/* ============================================================ BREADCRUMB */
.breadcrumb {
  display:flex; flex-wrap:wrap; align-items:center; gap:8px; row-gap:4px;
  font-size:.82rem; color:var(--texto-suave); margin-bottom:18px;
}
.breadcrumb a:hover { color:var(--azul-700); }
.breadcrumb strong { color:var(--texto); font-weight:600; }

/* ============================================================ FOOTER */
.site-footer { background:var(--grad-escuro); color:rgba(255,255,255,.82); margin-top:60px; }
.site-footer-inner {
  max-width:var(--container); margin-inline:auto;
  padding:clamp(32px,3.5vw,48px) clamp(16px,4vw,32px) 36px;
  display:grid; gap:clamp(24px,3vw,40px); grid-template-columns:1.6fr 1fr 1fr 1.3fr;
}
/* Faixa de compra/entrega no topo do rodapé (substitui a 5ª coluna apertada) */
.footer-strip {
  max-width:var(--container); margin-inline:auto;
  padding:18px clamp(16px,4vw,32px);
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:12px 32px;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.footer-strip-item { display:flex; align-items:center; gap:10px; color:rgba(255,255,255,.82); font-size:.92rem; }
.footer-strip-item svg { color:var(--amarelo); flex-shrink:0; }
.footer-strip-obs { color:rgba(255,255,255,.5); font-size:.82rem; }
.footer-marca img { height:40px; margin-bottom:16px; }
.footer-marca p { max-width:36ch; color:rgba(255,255,255,.62); font-size:.95rem; line-height:1.6; }
.footer-social { display:flex; gap:10px; margin-top:20px; }
.footer-social a {
  width:42px; height:42px; border-radius:var(--r-full); display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.1); color:#fff; transition:background var(--t), transform var(--t);
}
.footer-social a:hover { background:rgba(255,255,255,.2); transform:translateY(-2px); }

.footer-col { display:flex; flex-direction:column; }
.footer-titulo { font-size:.76rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:#fff; margin-bottom:18px; }

.footer-links a { color:rgba(255,255,255,.78); width:max-content; transition:color var(--t); }
.footer-links a:hover { color:#fff; }
.footer-links a + a { margin-top:11px; }

/* Navegar/Categorias: coluna normal no desktop, sanfona nativa no mobile (sem JS) */
.footer-acc-sum { display:block; list-style:none; }
.footer-acc-sum::-webkit-details-marker { display:none; }
.footer-acc-ic { display:none; }
.footer-acc-body { display:flex; flex-direction:column; }
/* Telefone em destaque (NAP — âncora de contato, pró-SEO local) */
.footer-fone span { font-size:1.02rem; font-weight:700; color:#fff; }

.footer-item { display:flex; align-items:flex-start; gap:10px; color:rgba(255,255,255,.8); font-size:.9rem; line-height:1.45; }
.footer-item svg { color:var(--amarelo); flex-shrink:0; margin-top:1px; }
a.footer-item:hover { color:#fff; }
.footer-item + .footer-item { margin-top:14px; }
.footer-obs { font-size:.8rem; color:rgba(255,255,255,.5); margin-top:14px; line-height:1.4; }

/* Assinatura da agência (LZ4) — na coluna da marca: discreta, caprichada, com presença */
.footer-feito { display:flex; flex-direction:column; gap:9px; margin-top:24px; padding-top:20px; border-top:1px solid rgba(255,255,255,.1); }
.footer-feito-txt { font-size:.68rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.45); }
.footer-lz4 { display:inline-flex; align-items:center; }
.footer-lz4 img { height:72px; width:auto; display:block; opacity:.92; transition:opacity var(--t), transform var(--t); }
.footer-lz4:hover img { opacity:1; transform:translateY(-1px); }

/* Base do rodapé — UMA linha só: © + institucional (esq.) · aviso comercial (dir.) */
.footer-base {
  border-top:1px solid rgba(255,255,255,.12);
  padding:22px clamp(16px,4vw,32px) 26px;
  max-width:var(--container); margin-inline:auto;
  display:flex; align-items:center; justify-content:space-between; gap:10px 28px; flex-wrap:wrap;
}
.footer-base-left { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.footer-copy { font-size:.82rem; color:rgba(255,255,255,.6); }
.footer-legal { color:rgba(255,255,255,.7); font-size:.82rem; transition:color var(--t); }
.footer-legal:hover { color:#fff; text-decoration:underline; }
.footer-sep { color:rgba(255,255,255,.28); font-size:.82rem; }
.footer-mini { font-size:.78rem; color:rgba(255,255,255,.42); margin:0; text-align:right; }

/* ============================================================ MENU LATERAL (mobile) */
.menu-overlay {
  position:fixed; inset:0; z-index:var(--z-menu);
  background:rgba(6,18,46,.5); backdrop-filter:blur(3px);
  opacity:0; transition:opacity .32s ease;
}
.menu-overlay.menu-aberto { opacity:1; }
.menu-panel {
  position:absolute; top:0; right:0; bottom:0; width:min(88vw,372px);
  background:var(--bg); padding:16px; display:flex; flex-direction:column; gap:14px;
  transform:translateX(100%); transition:transform .34s cubic-bezier(.4,0,.2,1);
  box-shadow:-24px 0 60px rgba(6,32,90,.28); overflow-y:auto;
}
.menu-aberto .menu-panel { transform:none; }
.menu-header { display:flex; align-items:center; justify-content:space-between; padding:2px 4px 12px; border-bottom:1px solid var(--borda); }
.menu-logo { height:26px; width:auto; }
.menu-fechar { width:38px; height:38px; display:flex; align-items:center; justify-content:center; border-radius:var(--r-full); background:#fff; color:var(--texto); box-shadow:var(--sombra-sm); transition:background var(--t), color var(--t); }
.menu-fechar:hover { background:var(--azul-100); color:var(--azul-800); }

/* Cartão de resumo do orçamento */
.menu-resumo { display:flex; align-items:center; gap:12px; padding:14px; border-radius:var(--r); background:var(--grad-marca); color:#fff; box-shadow:var(--sombra-md); transition:transform var(--t), box-shadow var(--t); }
.menu-resumo:hover { transform:translateY(-2px); box-shadow:var(--sombra-lg); }
.menu-resumo-icone { display:flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:var(--r-sm); background:rgba(255,255,255,.18); flex-shrink:0; }
.menu-resumo-info { display:flex; flex-direction:column; min-width:0; flex:1; }
.menu-resumo-info strong { font-size:.98rem; }
.menu-resumo-info span { font-size:.8rem; color:rgba(255,255,255,.82); }
.menu-resumo-total { font-family:var(--ff-display); font-weight:800; font-size:1.02rem; white-space:nowrap; }
.menu-resumo-seta { opacity:.85; flex-shrink:0; }

/* Navegação */
.menu-nav { display:flex; flex-direction:column; gap:2px; }
.menu-nav a, .menu-explorar {
  display:flex; align-items:center; gap:12px; text-align:left; width:100%;
  font-size:1rem; font-weight:600; padding:12px; border-radius:var(--r-sm);
  color:var(--texto); background:none; transition:background var(--t), color var(--t);
}
.menu-nav a svg, .menu-explorar svg { color:var(--texto-suave); flex-shrink:0; transition:color var(--t); }
.menu-nav a:hover, .menu-explorar:hover { background:#fff; }
.menu-nav a:hover svg, .menu-explorar:hover svg { color:var(--azul-700); }
.menu-nav a.menu-link-ativo { background:#fff; color:var(--azul-800); box-shadow:var(--sombra-sm); }
.menu-nav a.menu-link-ativo svg { color:var(--azul-700); }
.menu-badge { margin-left:auto; }
.menu-badge-est { margin-left:8px; }

/* Favoritos (resumo) */
.menu-salvos { background:#fff; border:1px solid var(--borda); border-radius:var(--r); padding:14px; }
.menu-salvos-cab { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.menu-salvos-titulo { font-size:.74rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--texto-suave); }
.menu-salvos-vertodos { font-size:.78rem; font-weight:700; color:var(--azul-700); }
.menu-salvos-vertodos:hover { text-decoration:underline; }
.menu-vazio { font-size:.88rem; color:var(--texto-suave); line-height:1.5; }
.menu-salvo { display:flex; align-items:center; gap:10px; padding:8px 0; }
.menu-salvo + .menu-salvo { border-top:1px solid var(--borda); }
.menu-salvo-thumb { width:44px; height:44px; border-radius:10px; overflow:hidden; flex-shrink:0; background:var(--azul-50); }
.menu-salvo-thumb img { width:100%; height:100%; object-fit:cover; }
.menu-salvo-info { flex:1; min-width:0; color:inherit; }
.menu-salvo-info strong { display:block; font-size:.85rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.menu-salvo-info span { font-size:.8rem; color:var(--azul-700); font-weight:700; }
.menu-salvo-x { font-size:1.3rem; line-height:1; color:var(--texto-suave); width:26px; height:26px; border-radius:8px; flex-shrink:0; transition:background var(--t), color var(--t); }
.menu-salvo-x:hover { background:#ffe3e3; color:#e23b3b; }
.menu-salvo-mais { display:block; margin-top:8px; font-size:.82rem; font-weight:700; color:var(--azul-700); }

/* Explorar + WhatsApp */
.menu-explorar { color:var(--azul-700); }
.menu-explorar svg { color:var(--azul-700); }
.menu-explorar-tag { margin-left:auto; font-size:.66rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--azul-700); background:var(--azul-100); padding:3px 8px; border-radius:6px; }
.menu-wa { margin-top:auto; }

/* ============================================================ BOTTOM-NAV (mobile) */
.bottom-nav {
  position:fixed; bottom:0; left:0; right:0; z-index:var(--z-bottomnav);
  display:none; align-items:flex-end; justify-content:space-around;
  background:#fff;                                   /* opaco: conteúdo atrás não "suja" mais o nav */
  border-top:1px solid var(--borda);                 /* separação limpa, sem sombra (igual à home) */
  padding:5px 8px calc(6px + env(safe-area-inset-bottom));   /* barra mais fina */
}
.bnav-item {
  flex:1; display:flex; flex-direction:column; align-items:center; gap:2px;
  font-size:.63rem; font-weight:600; letter-spacing:.01em; color:var(--texto-suave); padding:2px;
  transition:color var(--t);
}
.bnav-item:not(.bnav-wa) svg { width:21px; height:21px; }   /* ícones um pouco menores */
.bnav-item.bnav-ativo { color:var(--azul-700); }
.bnav-icon-wrap { position:relative; }
.bnav-wa { color:var(--wa-escuro); }
.bnav-wa-circle {
  display:flex; align-items:center; justify-content:center;
  width:46px; height:46px; margin-top:-20px; border-radius:var(--r-full);
  background:var(--wa); color:#fff; box-shadow:var(--sombra-wa);
  border:3px solid #fff;
}
.bnav-wa-circle svg { width:22px; height:22px; }

/* ============================================================ ASSISTENTE DARINHO (FAB + painel) */
.dp-assist { position:fixed; right:22px; bottom:22px; z-index:var(--z-fab); }

/* botão flutuante (ocupa o lugar do antigo FAB do WhatsApp) */
.dp-assist-fab {
  position:relative; z-index:3;
  width:64px; height:64px; border-radius:var(--r-full);
  background:var(--grad-marca); box-shadow:var(--sombra-lg);
  display:flex; align-items:center; justify-content:center;
  transition:transform var(--t), box-shadow var(--t);
}
.dp-assist-fab:hover { transform:translateY(-2px) scale(1.06); box-shadow:var(--sombra-xl); }
.dp-assist-fab:active { transform:scale(.95); }
.dp-assist-fab picture { display:block; width:100%; height:100%; }
.dp-assist-fab-img { width:100%; height:100%; border-radius:var(--r-full); object-fit:cover; object-position:50% 18%; }
.dp-assist-fab-ping { position:absolute; inset:0; border-radius:var(--r-full); pointer-events:none; animation:dpAssistPing 2.8s ease-out infinite; }
@keyframes dpAssistPing {
  0%   { box-shadow:0 0 0 0 rgba(30,95,208,.5); }
  70%  { box-shadow:0 0 0 15px rgba(30,95,208,0); }
  100% { box-shadow:0 0 0 0 rgba(30,95,208,0); }
}
.dp-assist-aberto .dp-assist-fab-ping { display:none; }

/* balão-teaser (mostrado uma vez) */
.dp-assist-teaser {
  position:absolute; z-index:2; right:2px; bottom:calc(100% + 12px);
  width:max-content; max-width:214px;
  background:#fff; color:var(--texto); border-radius:var(--r) var(--r) 5px var(--r);
  box-shadow:var(--sombra-lg); padding:11px 30px 11px 14px;
  font-size:var(--fs-sm); line-height:1.35;
  opacity:0; transform:translateY(8px) scale(.94); transform-origin:bottom right;
  transition:opacity var(--t), transform var(--t-mola);
}
.dp-assist-teaser-on { opacity:1; transform:none; }
.dp-assist-teaser strong { color:var(--azul-700); }
.dp-assist-teaser-x {
  position:absolute; top:6px; right:7px; width:20px; height:20px; border-radius:var(--r-full);
  color:var(--texto-suave); display:flex; align-items:center; justify-content:center;
}
.dp-assist-teaser-x:hover { background:var(--nuvem); color:var(--texto); }

/* painel */
.dp-assist-painel {
  position:absolute; z-index:2; right:0; bottom:calc(100% + 14px);
  width:min(360px, calc(100vw - 28px));
  display:flex; flex-direction:column; max-height:min(70vh, 552px); overflow:hidden;
  background:#fff; border:1px solid var(--borda); border-radius:var(--r-lg); box-shadow:var(--sombra-xl);
  transform-origin:bottom right;
  opacity:0; transform:translateY(14px) scale(.955);
  transition:opacity .4s ease, transform .44s cubic-bezier(.16,.84,.44,1);
}
.dp-assist-aberto .dp-assist-painel { opacity:1; transform:none; }

.dp-assist-cab {
  display:flex; align-items:center; gap:10px; padding:11px 12px 12px 14px;
  background:var(--grad-marca); color:#fff;
}
.dp-assist-avatar {
  width:38px; height:38px; flex-shrink:0; border-radius:var(--r-full); overflow:hidden;
  background:rgba(255,255,255,.16); box-shadow:inset 0 0 0 2px rgba(255,255,255,.4);
}
.dp-assist-avatar picture { display:block; width:100%; height:100%; }
.dp-assist-avatar img { width:100%; height:100%; object-fit:cover; object-position:50% 16%; }
.dp-assist-cab-txt { flex:1; min-width:0; line-height:1.2; }
.dp-assist-cab-txt strong { display:block; font-size:.92rem; font-weight:800; letter-spacing:-.01em; }
.dp-assist-cab-txt span { font-size:var(--fs-2xs); opacity:.82; }
.dp-assist-fechar {
  width:28px; height:28px; flex-shrink:0; border-radius:var(--r-full);
  background:rgba(255,255,255,.16); color:#fff;
  display:flex; align-items:center; justify-content:center; transition:background var(--t);
}
.dp-assist-fechar:hover { background:rgba(255,255,255,.3); }

.dp-assist-corpo { padding:10px 12px 12px; overflow-y:auto; overscroll-behavior:contain; }
.dp-assist-op {
  display:flex; align-items:center; gap:10px; width:100%; text-align:left;
  padding:8px 10px; border-radius:var(--r-sm); background:var(--nuvem);
  transition:background var(--t), transform var(--t);
}
.dp-assist-op + .dp-assist-op { margin-top:6px; }
.dp-assist-op:hover, .dp-assist-op:focus-visible { background:var(--azul-100); transform:translateX(2px); }
.dp-assist-ic {
  width:34px; height:34px; flex-shrink:0; border-radius:9px;
  background:#fff; box-shadow:var(--sombra-sm); color:var(--azul-700);
  display:flex; align-items:center; justify-content:center; line-height:1;
  transition:background var(--t), color var(--t);
}
.dp-assist-ic svg { width:18px; height:18px; }
.dp-assist-op:hover .dp-assist-ic, .dp-assist-op:focus-visible .dp-assist-ic { background:var(--azul-800); color:#fff; }
.dp-assist-ic-wa { color:var(--wa-escuro); }
.dp-assist-op-wa:hover .dp-assist-ic-wa { background:var(--wa); color:#fff; }
.dp-assist-op-txt { flex:1; min-width:0; line-height:1.2; }
.dp-assist-op-txt strong { display:block; font-size:var(--fs-sm); font-weight:700; color:var(--texto); }
.dp-assist-op-txt span { font-size:var(--fs-2xs); color:var(--texto-suave); }
.dp-assist-seta { color:var(--azul-400); flex-shrink:0; opacity:0; transform:translateX(-4px); transition:opacity var(--t), transform var(--t); }
.dp-assist-op:hover .dp-assist-seta, .dp-assist-op:focus-visible .dp-assist-seta { opacity:1; transform:none; }
.dp-assist-op-wa { background:rgba(37,211,102,.12); }
.dp-assist-op-wa:hover { background:rgba(37,211,102,.2); transform:translateX(2px); }

/* scrim (aparece só no mobile, ao abrir) */
.dp-assist-scrim { position:fixed; z-index:1; inset:0; background:rgba(6,32,90,.32); display:none; }

/* ---- Concierge: telas, chips, recomendação, dúvidas, rodapé ---- */
.dp-assist-corpo { flex:1 1 auto; min-height:0; }          /* corpo rola; rodapé fica fixo embaixo */

.dp-assist-fala {
  background:var(--azul-50); color:var(--tinta-2); font-size:var(--fs-xs); line-height:1.4;
  border-radius:var(--r-sm); padding:9px 11px; margin:0 0 10px;
}

/* busca rápida (topo do início) */
.dp-assist-busca-campo {
  display:flex; align-items:center; gap:8px; margin-bottom:12px;
  padding:0 11px; border-radius:var(--r-sm); background:var(--nuvem);
  box-shadow:inset 0 0 0 1.5px var(--borda); transition:background var(--t), box-shadow var(--t);
}
.dp-assist-busca-campo:focus-within { background:#fff; box-shadow:inset 0 0 0 1.5px var(--azul-500); }
.dp-assist-busca-campo svg { width:17px; height:17px; flex-shrink:0; color:var(--texto-suave); }
.dp-assist-busca-campo input {
  flex:1; min-width:0; border:none; background:none; outline:none;
  padding:10px 0; font-size:var(--fs-sm); color:var(--texto);
}
.dp-assist-busca-campo input::placeholder { color:var(--texto-suave); }
.dp-assist-busca-campo input::-webkit-search-cancel-button { -webkit-appearance:none; }
.dp-assist-busca-res:not(:empty) { margin-bottom:4px; }
.dp-assist-busca-vazio { font-size:var(--fs-xs); color:var(--texto-suave); text-align:center; padding:12px 8px; line-height:1.45; }

/* opção-destaque (CTA principal do início) */
.dp-assist-op-destaque { background:var(--grad-marca); box-shadow:var(--sombra-md); }
.dp-assist-op-destaque .dp-assist-op-txt strong { color:#fff; }
.dp-assist-op-destaque .dp-assist-op-txt span { color:#fff; opacity:.85; }
.dp-assist-op-destaque .dp-assist-ic { background:rgba(255,255,255,.18); color:#fff; box-shadow:none; }
.dp-assist-op-destaque .dp-assist-seta { color:#fff; opacity:.9; transform:none; }
.dp-assist-op-destaque:hover, .dp-assist-op-destaque:focus-visible { background:var(--grad-marca); transform:translateY(-1px); box-shadow:var(--sombra-lg); }
.dp-assist-op-destaque:hover .dp-assist-ic, .dp-assist-op-destaque:focus-visible .dp-assist-ic { background:rgba(255,255,255,.28); color:#fff; }

.dp-assist-voltar {
  display:inline-flex; align-items:center; gap:3px; margin:0 0 8px -4px;
  font-size:var(--fs-2xs); font-weight:700; color:var(--texto-suave);
  padding:4px 8px 4px 4px; border-radius:var(--r-sm); transition:background var(--t), color var(--t);
}
.dp-assist-voltar:hover { color:var(--azul-700); background:var(--nuvem); }

/* pergunta / título de tela — topo da hierarquia */
.dp-assist-pergunta { font-family:var(--ff-display); font-weight:800; font-size:1.02rem; color:var(--texto); letter-spacing:-.01em; margin:0 2px 10px; }

/* pílulas de escolha (ambiente / prioridade / categorias) */
.dp-assist-chips { display:flex; flex-wrap:wrap; gap:8px; }
.dp-assist-chip {
  display:inline-flex; align-items:center; text-align:left; line-height:1.15;
  font-size:var(--fs-sm); font-weight:600; color:var(--tinta-2);
  padding:7px 12px; border-radius:var(--r-full);
  background:var(--nuvem); box-shadow:inset 0 0 0 1.5px var(--borda);
  transition:background var(--t), box-shadow var(--t), color var(--t), transform var(--t);
}
.dp-assist-chip:hover, .dp-assist-chip:focus-visible {
  background:#fff; color:var(--azul-800); box-shadow:inset 0 0 0 1.5px var(--azul-500); transform:translateY(-1px);
}
.dp-assist-chips + .dp-assist-op { margin-top:12px; }   /* separa o "ver catálogo" dos chips (não grudar) */

/* dica do Darinho (resultado) */
.dp-assist-dica {
  display:flex; gap:9px; align-items:flex-start;
  background:var(--amarelo-200); border-radius:var(--r-sm); padding:9px 11px; margin:0 0 12px;
}
.dp-assist-dica svg { width:20px; height:20px; flex-shrink:0; color:#a97f00; }
.dp-assist-dica p { font-size:var(--fs-xs); line-height:1.4; color:#5f4b12; }

.dp-assist-res-tit { font-size:var(--fs-xs); font-weight:700; color:var(--texto-suave); margin:0 2px 8px; }

/* cards de piso recomendado (compactos) */
.dp-assist-pisos { display:flex; flex-direction:column; gap:7px; }
.dp-assist-piso {
  display:flex; align-items:center; gap:10px; padding:7px; border-radius:var(--r-sm);
  background:var(--nuvem); box-shadow:inset 0 0 0 1px var(--borda);
  transition:background var(--t), box-shadow var(--t), transform var(--t);
}
.dp-assist-piso:hover { background:#fff; box-shadow:var(--sombra); transform:translateX(2px); }
.dp-assist-piso-img { width:46px; height:46px; flex-shrink:0; border-radius:9px; overflow:hidden; background:var(--azul-100); }
.dp-assist-piso-img img { width:100%; height:100%; object-fit:cover; }
.dp-assist-piso-txt { flex:1; min-width:0; line-height:1.2; }
.dp-assist-piso-txt strong { display:block; font-size:var(--fs-sm); font-weight:700; color:var(--texto); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dp-assist-piso-sub { font-size:var(--fs-2xs); color:var(--texto-suave); }
.dp-assist-tags { display:flex; flex-wrap:wrap; gap:4px; margin-top:3px; }
.dp-assist-tag { font-size:10px; font-weight:700; color:var(--azul-700); background:var(--azul-100); padding:2px 6px; border-radius:var(--r-full); }
.dp-assist-piso-dir { display:flex; flex-direction:column; align-items:flex-end; gap:1px; flex-shrink:0; }
.dp-assist-piso-preco { font-size:var(--fs-sm); font-weight:800; color:var(--azul-800); white-space:nowrap; }
.dp-assist-piso-preco small { font-weight:600; color:var(--texto-suave); font-size:10px; }
.dp-assist-piso .dp-assist-seta { opacity:.5; transform:none; color:var(--azul-400); }

/* ver todos + ações do resultado */
.dp-assist-ver-todos {
  display:flex; align-items:center; justify-content:center; gap:4px; width:100%;
  margin-top:10px; padding:10px; border-radius:var(--r-sm);
  background:var(--azul-100); color:var(--azul-800); font-weight:700; font-size:var(--fs-sm);
  transition:background var(--t);
}
.dp-assist-ver-todos:hover { background:var(--azul-200); }
.dp-assist-ver-todos .dp-assist-seta { opacity:1; transform:none; color:var(--azul-700); }
.dp-assist-res-acoes { display:flex; gap:7px; margin-top:7px; }
.dp-assist-mini {
  flex:1; display:inline-flex; align-items:center; justify-content:center; gap:5px;
  font-size:var(--fs-2xs); font-weight:700; color:var(--texto-suave);
  padding:9px 8px; border-radius:var(--r-sm); background:var(--nuvem); transition:background var(--t), color var(--t);
}
.dp-assist-mini:hover { background:var(--linha); color:var(--texto); }
.dp-assist-mini-wa { color:var(--wa-escuro); background:rgba(37,211,102,.12); }
.dp-assist-mini-wa:hover { background:rgba(37,211,102,.2); color:var(--wa-escuro); }

/* dúvidas (accordion) */
.dp-assist-faqs { display:flex; flex-direction:column; gap:5px; }
.dp-assist-faq { background:var(--nuvem); border-radius:var(--r-sm); overflow:hidden; }
.dp-assist-faq summary {
  display:flex; align-items:center; justify-content:space-between; gap:10px; cursor:pointer; list-style:none;
  padding:10px 12px; font-size:var(--fs-sm); font-weight:700; color:var(--texto);
}
.dp-assist-faq summary::-webkit-details-marker { display:none; }
.dp-assist-faq-mais { position:relative; width:13px; height:13px; flex-shrink:0; }
.dp-assist-faq-mais::before, .dp-assist-faq-mais::after {
  content:""; position:absolute; top:50%; left:50%; width:11px; height:2px; border-radius:2px;
  background:var(--azul-600); transform:translate(-50%,-50%); transition:transform var(--t);
}
.dp-assist-faq-mais::after { transform:translate(-50%,-50%) rotate(90deg); }
.dp-assist-faq[open] .dp-assist-faq-mais::after { transform:translate(-50%,-50%) rotate(0deg); }
.dp-assist-faq-a { padding:0 12px 11px; }
.dp-assist-faq-a p { font-size:var(--fs-xs); line-height:1.45; color:var(--tinta-2); }
.dp-assist-faq-cta { display:inline-flex; align-items:center; gap:3px; margin-top:8px; font-size:var(--fs-2xs); font-weight:700; color:var(--azul-700); }
.dp-assist-faq-cta .dp-assist-seta { opacity:1; transform:none; width:14px; height:14px; }
.dp-assist-faq-cta:hover { color:var(--azul-800); }

/* rodapé fixo (calcular + whatsapp sempre à mão) — compacto */
.dp-assist-rodape { display:flex; gap:7px; padding:8px 10px; border-top:1px solid var(--borda); background:#fff; }
.dp-assist-rod-btn {
  flex:1; display:inline-flex; align-items:center; justify-content:center; gap:6px; white-space:nowrap;
  font-size:var(--fs-xs); font-weight:700; color:var(--azul-800);
  padding:8px 10px; border-radius:var(--r-sm); background:var(--azul-50); transition:background var(--t), transform var(--t);
}
.dp-assist-rod-btn svg { width:16px; height:16px; }
.dp-assist-rod-btn:hover { background:var(--azul-100); transform:translateY(-1px); }
.dp-assist-rod-wa { color:#fff; background:var(--wa); box-shadow:var(--sombra-wa); }
.dp-assist-rod-wa:hover { background:var(--wa-escuro); }

/* ============================================================ VOLTAR-TOPO */
.btn-voltar-topo {
  position:fixed; right:22px; bottom:94px; z-index:var(--z-fab);
  width:46px; height:46px; border-radius:var(--r-full);
  background:#fff; color:var(--azul-800); box-shadow:var(--sombra-md);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity var(--t), transform var(--t), visibility var(--t);
}
.btn-voltar-topo.visivel { opacity:1; visibility:visible; transform:none; }

/* ============================================================ LIGHTBOX */
.lightbox {
  position:fixed; inset:0; z-index:var(--z-lightbox);
  background:rgba(4,12,30,.92); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center; padding:24px;
  animation:subirFade .25s ease;
}
.lightbox-img { max-width:94vw; max-height:88vh; border-radius:var(--r); box-shadow:var(--sombra-xl); }
.lightbox-fechar {
  position:absolute; top:18px; right:18px; width:46px; height:46px;
  border-radius:var(--r-full); background:rgba(255,255,255,.14); color:#fff;
  display:flex; align-items:center; justify-content:center;
}

/* ============================================================ TOAST */
.dp-toast {
  position:fixed; left:50%; bottom:24px; transform:translateX(-50%) translateY(16px);
  z-index:1250; max-width:90vw; text-align:center;
  background:var(--carvao); color:#fff; font-weight:600; font-size:.9rem;
  padding:12px 20px; border-radius:var(--r-full); box-shadow:var(--sombra-lg);
  opacity:0; pointer-events:none; transition:opacity .25s ease, transform .25s ease;
}
.dp-toast-visivel { opacity:1; transform:translateX(-50%) translateY(0); }
@media (max-width:860px) { .dp-toast { bottom:calc(86px + env(safe-area-inset-bottom)); } }

/* ============================================================ CARD DE PRODUTO (reutilizável) */
.grade-pisos {
  display:grid; gap:clamp(10px,2vw,22px);
  grid-template-columns:repeat(2,minmax(0,1fr)); /* mobile: 2 colunas */
}
@media (min-width:600px){  .grade-pisos { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (min-width:900px){  .grade-pisos { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media (min-width:1200px){ .grade-pisos { grid-template-columns:repeat(5,minmax(0,1fr)); } } /* desktop: 5 por fileira, cards maiores */
.card-piso {
  position:relative; display:flex; flex-direction:column;
  background:var(--superficie); border-radius:var(--r-md); overflow:hidden;
  box-shadow:var(--sombra-sm); border:1px solid var(--borda);
  transition:transform var(--t-suave), box-shadow var(--t-suave), border-color var(--t);
}
.card-piso:hover { transform:translateY(-5px); box-shadow:var(--sombra-lg); border-color:transparent; }
.card-piso-link { display:flex; flex-direction:column; flex:1; color:inherit; }
.card-piso-midia { position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--azul-50); }
.card-piso-midia img {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform .7s var(--t-suave), opacity .45s ease;
}
.card-piso-peca { opacity:0; }
.card-piso:hover .card-piso-img { transform:scale(1.07); }
.card-piso:hover .card-piso-peca { opacity:1; }
.card-piso-tags { position:absolute; top:var(--sp-3); left:var(--sp-3); display:flex; flex-direction:column; gap:var(--sp-2); align-items:flex-start; z-index:2; }
.card-piso-corpo { padding:var(--sp-3); display:flex; flex-direction:column; gap:var(--sp-1); flex:1; }
.card-piso-nome { font-size:clamp(.9375rem,.95vw,1.0625rem); font-weight:700; line-height:1.25; color:var(--texto); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.card-piso-sub { font-size:var(--fs-xs); color:var(--texto-suave); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.card-piso-rodape { margin-top:auto; padding-top:var(--sp-2); display:flex; align-items:flex-end; justify-content:space-between; gap:var(--sp-2); }
.card-piso-precos { display:flex; flex-direction:column; gap:0; min-width:0; line-height:1.1; }
.card-piso-antigo { font-size:var(--fs-2xs); color:var(--texto-suave); text-decoration:line-through; }
.card-piso-atual { font-size:clamp(1.15rem,1.5vw,1.4rem); font-weight:800; color:var(--azul-800); font-family:var(--ff-display); letter-spacing:-.01em; }
.card-piso-atual small { font-size:.62rem; font-weight:700; color:var(--texto-suave); margin-left:1px; }
.card-piso-seta {
  flex-shrink:0; width:34px; height:34px; border-radius:var(--r-full);
  display:flex; align-items:center; justify-content:center;
  background:var(--azul-50); color:var(--azul-700);
  transition:background var(--t), color var(--t), transform var(--t);
}
.card-piso:hover .card-piso-seta { background:var(--azul-800); color:#fff; transform:translateX(2px); }
/* badges discretos no card (sem gradiente/glow de template) */
.card-piso-tags .tag-badge { box-shadow:none; padding:var(--sp-1) var(--sp-2); font-size:.62rem; border-radius:var(--r-sm); background:rgba(13,21,38,.74); color:#fff; -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }
.card-piso-tags .tag-desconto { box-shadow:none; padding:var(--sp-1) var(--sp-2); font-size:.62rem; border-radius:var(--r-sm); }

/* Coração de favoritar (mesmo estilo da página de produto) */
.card-piso-salvar {
  position:absolute; top:var(--sp-3); right:var(--sp-3); z-index:3;
  width:44px; height:44px; border-radius:var(--r-full);
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.9); backdrop-filter:blur(6px); color:var(--texto-suave);
  box-shadow:var(--sombra); transition:all var(--t);
}
.card-piso-salvar svg { fill:none; stroke:currentColor; stroke-width:2; }
.card-piso-salvar:hover { color:#e23b3b; transform:scale(1.08); }
.card-piso-salvar-ativo { color:#e23b3b; }
.card-piso-salvar-ativo svg { fill:#e23b3b; stroke:#e23b3b; }

/* ============================================================ RESPONSIVO */
@media (max-width:860px) {
  .site-nav,.header-wa { display:none; }
  .header-hamburguer { display:flex; }
  .bottom-nav { display:flex; }
  /* pilha no canto: bottom-nav → Darinho → voltar-ao-topo */
  .dp-assist { right:16px; bottom:calc(78px + env(safe-area-inset-bottom)); }
  .btn-voltar-topo { bottom:calc(150px + env(safe-area-inset-bottom)); right:16px; }
  .dp-assist-aberto .dp-assist-scrim { display:block; }
  .dp-assist-painel { width:min(342px, calc(100vw - 24px)); max-height:min(66vh, 560px); }
  .dp-assist-teaser { max-width:200px; }
  .site-footer { margin-bottom:calc(50px + env(safe-area-inset-bottom)); }   /* reserva = altura do nav fino (sem deixar faixa cinza embaixo) */
  .site-footer-inner { grid-template-columns:1fr; gap:20px; padding:clamp(28px,6vw,40px) clamp(16px,4vw,32px) 26px; }
  /* hierarquia mobile: marca → contato → sanfonas → base */
  .footer-marca { order:1; }
  .footer-atendimento { order:2; }
  .footer-acc { order:3; border-top:1px solid rgba(255,255,255,.1); }
  .footer-lz4 img { height:52px; }
  /* sanfona interativa (nativa) */
  .footer-acc-sum { display:flex; align-items:center; justify-content:space-between; gap:12px; cursor:pointer; padding:14px 0; }
  .footer-acc-sum .footer-titulo { margin-bottom:0; }
  .footer-acc-ic { display:block; flex-shrink:0; color:rgba(255,255,255,.55); transition:transform var(--t); }
  .footer-acc[open] .footer-acc-ic { transform:rotate(180deg); }
  .footer-acc-body { padding-bottom:14px; }
  .footer-base { justify-content:center; text-align:center; }
  .footer-base-left { justify-content:center; }
  .footer-mini { text-align:center; max-width:none; }
}
@media (min-width:861px) {
  .menu-overlay { display:none; }
  /* sanfonas abertas via JS no desktop; trava o clique pra não fecharem (viram colunas) */
  .footer-acc-sum { pointer-events:none; }
}
@media (max-width:520px) {
  /* rodapé em pilha única + sanfonas; faixa de pagamento mais junta */
  .site-footer-inner { gap:18px; }
  .footer-strip { gap:10px 18px; }
}

/* ── Links de guias (contextuais: conteúdo → orçamento) ── */
.bloco-guias-secao { padding-block:clamp(20px,3vw,36px); }
.bloco-guias {
  display:flex; flex-wrap:wrap; align-items:center; gap:12px 16px;
  background:var(--azul-50); border:1px solid var(--borda); border-radius:var(--r-lg);
  padding:clamp(16px,2.5vw,24px);
}
.bloco-guias-txt { margin-right:auto; }   /* empurra os links p/ a direita no desktop; quebra limpo no mobile */
.bloco-guias-txt .eyebrow { margin:0; }
.bloco-guias-txt h2 { font-size:1.2rem; margin:2px 0 0; }
.bloco-guias-links { display:flex; flex-wrap:wrap; gap:10px; }
.bloco-guias-links a {
  display:inline-flex; align-items:center; gap:6px; background:#fff;
  border:1px solid var(--borda); border-radius:999px; padding:9px 16px;
  font-weight:600; color:var(--azul-800); text-decoration:none; transition:transform var(--t), border-color var(--t);
}
.bloco-guias-links a:hover { border-color:var(--azul-500); transform:translateY(-1px); }
@media (max-width:560px) {
  .bloco-guias-links { width:100%; flex-direction:column; gap:8px; }
  .bloco-guias-links a { width:100%; justify-content:space-between; }
}

/* ── Prova social no rodapé (estrelas reais da loja, via LOJA_NOTA) ── */
.footer-avaliacao { display:flex; align-items:center; gap:8px; margin-top:6px; flex-wrap:wrap; }
.footer-estrelas { display:inline-flex; color:#f5b301; }
.footer-nota { font-size:.9rem; color:rgba(255,255,255,.85); }
.footer-nota strong { color:#fff; }
