
.wsnb.wsnb{padding:62px 0 68px;color:var(--t)}
.wsnb-in{max-width:1160px;margin:0 auto;padding:0 20px;display:grid;grid-template-columns:1.02fr .98fr;gap:54px;align-items:center}
.wsnb-tag{font-size:10.5px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--suave);margin:0}
.wsnb-tit{font-family:'Cormorant Garamond', Georgia, serif;font-weight:400;font-size:clamp(30px,4.4vw,50px);line-height:1.1;margin:12px 0 0;color:var(--t)}
.wsnb-tit em{font-family:'Great Vibes', cursive;font-style:normal;color:var(--a);font-size:1.24em;display:block}
.wsnb-fio{width:46px;height:1px;background:var(--a);margin:20px 0}
.wsnb-frase{margin:0;font-size:15.5px;line-height:1.78;color:var(--suave);max-width:440px}
.wsnb-hora{margin:16px 0 0;font-size:12.5px;letter-spacing:.06em;color:var(--suave);display:flex;align-items:center;gap:9px}
.wsnb-hora::before{content:'';width:5px;height:5px;border-radius:99px;background:var(--a);flex:none}
.wsnb-palco{position:relative;justify-self:center;width:100%;max-width:410px}
.wsnb-arco{margin:0;overflow:hidden;border-radius:999px 999px 18px 18px;aspect-ratio:4/5;background:var(--nude,rgba(20,15,17,.07))}
.wsnb-arco img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.wsnb-palco:hover .wsnb-arco img{transform:scale(1.05)}
/* fio duplo em volta, com o arco acompanhando o topo da foto */
.wsnb-palco::before{content:'';position:absolute;inset:-13px;border:1px solid var(--a);border-radius:999px 999px 22px 22px;opacity:.5;pointer-events:none}
.wsnb-palco::after{content:'';position:absolute;inset:-20px;border:1px solid var(--a);border-radius:999px 999px 28px 28px;opacity:.22;pointer-events:none}
.wsnb-sprig{position:absolute;left:-30px;bottom:-8px;width:52px;height:auto;z-index:2;transform:rotate(-12deg)}
.wsnb-sprig2{left:auto;right:-28px;top:-14px;transform:scaleX(-1) rotate(-8deg)}
@media(max-width:860px){
  .wsnb.wsnb{padding:42px 0 48px}
  .wsnb-in{grid-template-columns:1fr;gap:34px}
  .wsnb-palco{max-width:320px}
  .wsnb-palco::before{inset:-10px}
  .wsnb-palco::after{inset:-15px}
  .wsnb-sprig{width:42px;left:-20px}
  .wsnb-sprig2{right:-18px}
}

.wsnb-acoes{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.wsnb-b{position:relative;overflow:hidden;display:inline-block;text-decoration:none;border:var(--fio,1px) solid var(--borda);color:var(--t);border-radius:var(--raio-bt,999px);padding:12px 22px;font-size:12px;font-weight:600;letter-spacing:var(--letra,.13em);text-transform:var(--caixa,uppercase);transition:border-color .3s,color .3s}
.wsnb-b span{position:relative;z-index:1}
.wsnb-b::before{content:'';position:absolute;inset:0;background:var(--a);transform:translateX(-101%);transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.wsnb-b:hover::before{transform:translateX(0)}
.wsnb-b:hover{color:var(--f);border-color:var(--a)}
.wsnb-b1{background:var(--a);border-color:var(--a);color:var(--sa,var(--f))}
.wsnb-b1::before{background:var(--t);opacity:.16}
.wsnb-b1:hover{color:var(--sa,var(--f))}
@media(prefers-reduced-motion:reduce){.wsnb-b::before{transition: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). */
.wsnb,.wsnb *,.wsnb *::before,.wsnb *::after{box-sizing:border-box}
.wsnb a[href],.wsnb button{-webkit-tap-highlight-color:transparent}
.wsnb a[href]:active,.wsnb button:active{transform:scale(.97)}
.wsnb .ws-bt{position:relative;overflow:hidden;isolation:isolate}
.wsnb .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. */
.wsnb .ws-bt::after{content:'';position:absolute;inset:0;z-index:-1;background:var(--t);opacity:0;transition:opacity .35s}
.wsnb .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. */
.wsnb.ws-js .ws-tit{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.wsnb.ws-js.ws-vis .ws-tit{opacity:1;transform:none}
.wsnb.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. */
.wsnb[style*="--fx"]{background-size:180% 180%;animation:wsnbFx 20s ease-in-out infinite}
@keyframes wsnbFx{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.wsnb[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)}
.wsnb[style*="--fx"] .ws-bt{box-shadow:0 10px 26px color-mix(in srgb,var(--a) 32%,transparent)}
.wsnb[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:wsnbCriativa 16s ease-in-out infinite}
@keyframes wsnbCriativa{0%,100%{background-position:0% 0%,100% 100%,0% 50%}50%{background-position:40% 30%,60% 70%,100% 50%}}
.wsnb[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)}
.wsnb[data-ws-tema="criativa"] .ws-bt{box-shadow:0 10px 26px color-mix(in srgb,var(--a) 32%,transparent)}
/* EFEITO E BRILHO (03/09): ligado pelo data-ws-fx do <section>. Nenhum mexe em
   cor: só no acabamento. Todos param para quem pede menos movimento. */
.wsnb[data-ws-fx="brilho"] .ws-tit em,.wsnb[data-ws-fx="brilho"] h1 em,.wsnb[data-ws-fx="brilho"] h2 em,.wsnb[data-ws-fx="brilho"] h3 em{text-shadow:0 0 18px color-mix(in srgb,var(--a) 55%,transparent)}
.wsnb[data-ws-fx="brilho"] .ws-bt,.wsnb[data-ws-fx="brilho"] a[class*="-b1"],.wsnb[data-ws-fx="brilho"] a[class*="-botao"],.wsnb[data-ws-fx="brilho"] a[class*="-cta"]{box-shadow:0 8px 26px color-mix(in srgb,var(--a) 42%,transparent)}
.wsnb[data-ws-fx="brilho"] img{transition:filter .45s ease,transform .6s cubic-bezier(.2,.7,.2,1)}
.wsnb[data-ws-fx="brilho"] figure:hover img,.wsnb[data-ws-fx="brilho"] a:hover img{filter:brightness(1.08) saturate(1.06)}
.wsnb[data-ws-fx="neon"] .ws-tit em,.wsnb[data-ws-fx="neon"] h1 em,.wsnb[data-ws-fx="neon"] h2 em,.wsnb[data-ws-fx="neon"] h3 em{color:var(--a);text-shadow:0 0 6px color-mix(in srgb,var(--a) 85%,transparent),0 0 22px color-mix(in srgb,var(--a) 55%,transparent),0 0 44px color-mix(in srgb,var(--a) 30%,transparent)}
.wsnb[data-ws-fx="neon"] .ws-bt,.wsnb[data-ws-fx="neon"] a[class*="-b1"],.wsnb[data-ws-fx="neon"] a[class*="-botao"],.wsnb[data-ws-fx="neon"] a[class*="-cta"]{box-shadow:0 0 0 1px color-mix(in srgb,var(--a) 70%,transparent),0 0 18px color-mix(in srgb,var(--a) 45%,transparent),inset 0 0 12px color-mix(in srgb,var(--a) 22%,transparent)}
.wsnb[data-ws-fx="vidro"] [class*="-card"],.wsnb[data-ws-fx="vidro"] [class*="-cel"],.wsnb[data-ws-fx="vidro"] [class*="-cx"]{background:color-mix(in srgb,var(--card) 62%,transparent)!important;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);border:1px solid color-mix(in srgb,var(--t) 12%,transparent)}
.wsnb[data-ws-fx="relevo"] [class*="-card"],.wsnb[data-ws-fx="relevo"] [class*="-cel"],.wsnb[data-ws-fx="relevo"] figure{box-shadow:0 22px 44px -26px var(--sombra),0 6px 14px -10px var(--sombra)}
.wsnb[data-ws-fx="relevo"] img{border-radius:inherit}
.wsnb[data-ws-fx="luz"] figure{position:relative;overflow:hidden}
.wsnb[data-ws-fx="luz"] figure::after{content:'';position:absolute;top:0;bottom:0;width:38%;left:-45%;background:linear-gradient(100deg,transparent 0%,color-mix(in srgb,#fff 55%,transparent) 50%,transparent 100%);transform:skewX(-12deg);animation:wsnbLuz 5.5s ease-in-out infinite;pointer-events:none}
@keyframes wsnbLuz{0%{left:-45%}55%{left:118%}100%{left:118%}}
@media(prefers-reduced-motion:reduce){
.wsnb[data-ws-fx="luz"] figure::after{animation:none;opacity:0}
.wsnb[data-ws-fx="brilho"] img{transition:none}
.wsnb a[href]:active,.wsnb button:active{transform:none}
.wsnb .ws-bt::after{transition:none}
.wsnb.ws-js .ws-tit{opacity:1;transform:none;transition:none}
.wsnb[data-ws-tema="criativa"],.wsnb[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(> .wsnb){max-width:none;margin:0;padding:0}
.dep section:has(> .in > .wsnb){padding:0}
.wsnb img.lazyload,.wsnb 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. */
.wsnb img{object-position:var(--ws-foco,50% 0%)}
