
.wsbb.wsbb{padding:62px 0}
.wsbb .wssv-in{max-width:1160px;margin:0 auto;padding:0 16px}
.wsbb .wssv-cab{text-align:center;max-width:660px;margin:0 auto 34px}
.wsbb .wssv-risco{width:56px;height:3px;background:var(--a);margin:0 auto 16px}
.wsbb .wssv-titulo{font-family:'Oswald', 'Arial Narrow', sans-serif;font-size:clamp(28px,4vw,46px);line-height:1.05;color:var(--t);margin:0 0 12px;
  text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.wsbb .wssv-ass{color:var(--a)}
.wsbb .wssv-sub{font-size:14px;line-height:1.7;color:var(--suave);margin:0;letter-spacing:.04em}
/* o fundo da grade pintava a celula VAZIA da ultima linha como um bloco cheio;
   a separacao vem da borda de cada cartao, nao do fundo da grade */
.wsbb-grade{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:2px}
.wsbb-card{position:relative;background:var(--card);overflow:hidden;outline:1px solid var(--borda)}
.wsbb-fio{position:absolute;top:0;left:0;right:0;height:3px;background:var(--a);z-index:2}
.wsbb-card img{display:block;width:100%;height:260px;object-fit:cover;filter:grayscale(1) contrast(1.06);transition:filter .5s ease,transform .6s ease}
.wsbb-card:hover img{filter:grayscale(0) contrast(1);transform:scale(1.04)}
.wsbb-pe{display:flex;align-items:baseline;gap:10px;padding:14px 16px 18px}
.wsbb-n{font-size:11px;font-weight:700;letter-spacing:.22em;color:var(--a)}
.wsbb-nome{font-family:'Oswald', 'Arial Narrow', sans-serif;font-size:18px;line-height:1.15;color:var(--t);margin:0;
  text-transform:uppercase;letter-spacing:.08em;font-weight:700}
@media(max-width:640px){.wsbb{padding:40px 0}.wsbb-card img{height:210px}}
@media(prefers-reduced-motion:reduce){.wsbb-card img{transition:none}.wsbb-card:hover img{transform:none}}

/* o mesmo chão da prévia: ela roda num documento com box-sizing:border-box em
   tudo. Num tema sem esse reset, padding e borda mediam diferente no publicado
   (botão de largura cheia estourando no celular, caixa interna mais larga). */
.wssv,.wssv *,.wssv *::before,.wssv *::after{box-sizing:border-box}
.wssv a[href],.wssv button{-webkit-tap-highlight-color:transparent}
.wssv a[href]:active,.wssv button:active{transform:scale(.97)}
.wssv .ws-bt{position:relative;overflow:hidden;isolation:isolate}
.wssv .ws-bt>span{position:relative;z-index:1}
/* z-index negativo DENTRO do isolate: fica atrás do texto sem precisar que o
   texto esteja num <span> — vários CTAs são <a>texto</a> puro. */
.wssv .ws-bt::after{content:'';position:absolute;inset:0;z-index:-1;background:var(--t);opacity:0;transition:opacity .35s}
.wssv .ws-bt:hover::after{opacity:.14}
/* Esconde SÓ quando o JavaScript confirmou que está vivo (classe ws-js, posta
   pelo próprio script do bloco, antes da pintura). Sem isso o título nascia em
   opacity:0 e, se o JS falhasse, o texto do site sumia para o visitante — o
   teste pegou isso. Agora o padrão é visível, e a animação é o extra. */
.wssv.ws-js .ws-tit{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.wssv.ws-js.ws-vis .ws-tit{opacity:1;transform:none}
.wssv.ws-js.ws-vis .ws-tit:nth-of-type(2){transition-delay:.08s}
/* CRIATIVA (02/09: "as cores criativas que têm efeitos não estão funcionando"):
   o degradê de antes ia do branco ao papel e quase não se via numa paleta
   clara. Agora o esquema pinta de verdade — dois halos da cor da marca que
   andam devagar, o degradê de fundo em movimento, a palavra de destaque do
   título com brilho e sombra colorida nos botões. Tudo dentro do bloco (sem
   nada vazando para a lateral) e parado para quem pede menos movimento. */
/* v3.40.0 (03/09: "não está aplicando no layout, efeito de cor"): o efeito
   pega pelo --fx que está no style do próprio bloco — o atributo data-ws-tema
   se perdia quando o bloco era regravado e os efeitos morriam com ele. Vale
   para Degradê, Degradê escuro, Pérola e Criativa: o fundo ganha movimento
   lento, a palavra de destaque brilha e o botão ganha sombra da marca. */
.wssv[style*="--fx"]{background-size:180% 180%;animation:wssvFx 20s ease-in-out infinite}
@keyframes wssvFx{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.wssv[style*="--fx"] .ws-tit em{background:linear-gradient(92deg,var(--a) 0%,color-mix(in srgb,var(--a) 55%,var(--t)) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--a)}
.wssv[style*="--fx"] .ws-bt{box-shadow:0 10px 26px color-mix(in srgb,var(--a) 32%,transparent)}
.wssv[data-ws-tema="criativa"]{--fx:radial-gradient(52% 44% at 100% 0%,color-mix(in srgb,var(--a) 42%,#fff) 0%,transparent 62%),radial-gradient(46% 40% at 0% 100%,color-mix(in srgb,var(--a) 30%,#fff) 0%,transparent 60%),linear-gradient(135deg,#fff 0%,color-mix(in srgb,var(--a) 12%,#fff) 55%,color-mix(in srgb,var(--a) 28%,#fff) 100%)!important;background-size:160% 160%,160% 160%,200% 200%!important;animation:wssvCriativa 16s ease-in-out infinite}
@keyframes wssvCriativa{0%,100%{background-position:0% 0%,100% 100%,0% 50%}50%{background-position:40% 30%,60% 70%,100% 50%}}
.wssv[data-ws-tema="criativa"] .ws-tit em{background:linear-gradient(92deg,var(--a) 0%,color-mix(in srgb,var(--a) 55%,#fff) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--a)}
.wssv[data-ws-tema="criativa"] .ws-bt{box-shadow:0 10px 26px color-mix(in srgb,var(--a) 32%,transparent)}
@media(prefers-reduced-motion:reduce){
.wssv a[href]:active,.wssv button:active{transform:none}
.wssv .ws-bt::after{transition:none}
.wssv.ws-js .ws-tit{opacity:1;transform:none;transition:none}
.wssv[data-ws-tema="criativa"],.wssv[style*="--fx"]{animation:none}
}
.dep .in.ws-cheio{max-width:none;margin:0;padding:0}
.dep section.ws-cheio-pai{padding:0}
.dep .in:has(> .wssv){max-width:none;margin:0;padding:0}
.dep section:has(> .in > .wssv){padding:0}
.wssv img.lazyload,.wssv img.lazyloading{width:100%!important;max-width:100%}
/* v3.43.0 (03/09: "que foque sempre no topo da foto, está ficando cortado"):
   quando a foto é cortada para caber no quadro, o corte come de baixo, não de
   cima — numa foto de pessoa o rosto está em cima. */
.wssv img{object-position:var(--ws-foco,50% 0%)}
