/* =====================================================================
   Sousa Barbosa Advocacia — camada compartilhada de todas as páginas
   (cabeçalho com assinatura, menu do celular, rodapé, detalhes globais).
   Carregada depois do <style> de cada página, por isso sobrescreve.
   ===================================================================== */

html{scroll-padding-top:92px;}
::selection{background:#B3A994;color:#102E30;}
p{text-wrap:pretty;}

/* ---------- cabeçalho ---------- */
.topo{transition:box-shadow .25s ease,background-color .25s ease;}
.topo.rolou{box-shadow:0 14px 34px -22px rgba(0,0,0,.7);background:rgba(16,46,48,.97);}
.topo-in{padding-top:12px;padding-bottom:12px;}
.marca{gap:12px;flex:none;}
.marca .escada{width:24px;height:24px;color:var(--bege);}
.marca-texto{display:flex;flex-direction:column;line-height:1;}
.marca-nome{font-size:1.05rem;letter-spacing:0.12em;line-height:1;}
.marca-sub{font-family:var(--sans);font-size:0.53rem;font-weight:500;letter-spacing:0.2em;text-transform:uppercase;color:#BBB7AC;margin-top:5px;white-space:nowrap;}
.menu{gap:clamp(18px,2vw,28px);font-size:0.84rem;}
.menu a{white-space:nowrap;position:relative;padding:4px 0;}
.menu a::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--bege);transform:scaleX(0);transform-origin:left;transition:transform .22s ease;}
.menu a:hover::after,.menu a.ativo::after{transform:scaleX(1);}
.topo-acoes{display:flex;align-items:center;gap:10px;flex:none;}
.menu-btn{display:none;appearance:none;background:none;border:1px solid var(--linha);color:var(--off);width:42px;height:42px;border-radius:2px;cursor:pointer;align-items:center;justify-content:center;padding:0;transition:border-color .18s ease,color .18s ease;}
.menu-btn:hover{border-color:var(--bege);color:var(--bege);}
.menu-btn span{display:block;width:18px;height:1.5px;background:currentColor;position:relative;}
.menu-btn span::before,.menu-btn span::after{content:"";position:absolute;left:0;width:18px;height:1.5px;background:currentColor;}
.menu-btn span::before{top:-6px;}
.menu-btn span::after{top:6px;}
@media (max-width:1120px){
  .menu{display:none;}
  .menu-btn{display:inline-flex;}
}
@media (max-width:600px){
  .marca-sub{display:none;}
  .marca-nome{font-size:0.98rem;letter-spacing:0.09em;}
  .marca .escada{width:21px;height:21px;}
  .topo .btn-sm{padding:10px 14px;font-size:0.78rem;}
  .menu-btn{width:40px;height:40px;}
}
@media (max-width:380px){
  .topo .btn-sm{display:none;}
}

/* ---------- menu do celular ---------- */
.menu-mobile{position:fixed;inset:0;z-index:90;background:var(--verde);color:var(--off);display:none;flex-direction:column;padding:12px var(--pad) 30px;overflow:auto;-webkit-overflow-scrolling:touch;}
.menu-mobile.aberto{display:flex;animation:sbMenuEntra .24s ease both;}
body.menu-aberto{overflow:hidden;}
.menu-mobile-topo{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid var(--linha);}
.menu-fechar{appearance:none;background:none;border:1px solid var(--linha);color:var(--off);width:42px;height:42px;border-radius:2px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;font-size:1.4rem;line-height:1;}
.menu-fechar:hover{border-color:var(--bege);color:var(--bege);}
.menu-mobile nav{display:flex;flex-direction:column;margin-top:6px;}
.menu-mobile nav a{font-family:var(--serif);font-size:clamp(1.35rem,5.6vw,1.8rem);line-height:1.2;padding:15px 0;border-bottom:1px solid var(--linha);text-decoration:none;color:var(--off);display:flex;justify-content:space-between;align-items:center;gap:12px;}
.menu-mobile nav a::after{content:"";width:8px;height:8px;border-right:1px solid var(--bege);border-bottom:1px solid var(--bege);transform:rotate(-45deg);flex:none;opacity:.8;}
.menu-mobile nav a.ativo{color:var(--bege);}
.menu-mobile-fim{margin-top:auto;padding-top:24px;display:flex;flex-direction:column;gap:14px;}
.menu-mobile-fim .btn{width:100%;}
.menu-mobile-contato{font-size:0.86rem;color:var(--sobre-verde-fraco);line-height:1.7;}
.menu-mobile-contato a{text-decoration:none;color:var(--off);}
@keyframes sbMenuEntra{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}

/* ---------- rodapé: assinatura oficial ---------- */
.rodape-fim{align-items:center;gap:14px 28px;}
.assinatura-sb{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--off);}
.assinatura-sb .escada{width:20px;height:20px;color:var(--bege);}
.assinatura-sb b{display:block;font-family:var(--serif);font-weight:400;font-size:0.95rem;letter-spacing:0.12em;line-height:1;}
.assinatura-sb small{display:block;font-family:var(--sans);font-size:0.5rem;font-weight:500;letter-spacing:0.2em;text-transform:uppercase;color:#BBB7AC;margin-top:4px;}

/* ---------- detalhes globais ---------- */
.zap{box-shadow:0 8px 24px rgba(0,0,0,.28),0 0 0 1px rgba(255,255,255,.06);}
.zap:hover{transform:translateY(-2px) scale(1.04);}
.funil :focus-visible,.cartao :focus-visible{outline-color:var(--verde);}

@media (prefers-reduced-motion:reduce){
  .menu-mobile.aberto{animation:none;}
}

/* símbolo em <path> (novo) e em <rect> (antigo) herdam a cor do texto */
.escada path,.escada rect{fill:currentColor;}

/* rótulos de seção: símbolo fixo à esquerda, texto quebra ao lado */
.rotulo{flex-wrap:nowrap;align-items:flex-start;}
.rotulo .escada{flex:none;margin-top:3px;}

/* título do rodapé: evita palavra solta na quebra */
.rodape h2{max-width:19ch;}

/* espaço para o botão do WhatsApp não cobrir a linha das OAB no fim da página */
.rodape-fim{padding-bottom:84px;}
@media (max-width:600px){.rodape-fim{padding-bottom:78px;}}
