/*
Theme Name: Valibra
Theme URI: https://valibra.com.br
Description: Site institucional do Valibra. Filho do Twenty Twenty-Five, no padrao do site da Brazuca Informatica.
Author: Brazuca Informatica
Template: twentytwentyfive
Version: 1.2.0
Text Domain: valibra-child
*/

:root{--vlb-gut:max(1.5rem,calc(50% - 600px))}

.entry-content > .wp-block-group{padding-left:var(--vlb-gut);padding-right:var(--vlb-gut);padding-top:4.5rem;padding-bottom:4.5rem;margin-block-start:0}
.entry-content > .wp-block-group > *{max-width:1200px;margin-left:auto;margin-right:auto}

.vlb-hero{background:#1E3A5F;color:#fff;padding-top:6rem;padding-bottom:6rem}
.vlb-eyebrow{color:#2FBF71;font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.8rem;margin:0 0 .75rem}
.vlb-hero h1{color:#fff;font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.1;margin:0 0 1.1rem;max-width:18ch}
.vlb-hero p.lead{color:#C7D3E1;font-size:1.08rem;line-height:1.65;max-width:46ch;margin:0 0 2rem}
.vlb-hero .wp-block-buttons{gap:.75rem}
.vlb-hero .wp-block-button__link{padding:.85rem 1.6rem;font-weight:600;font-size:1rem}
.vlb-hero .is-style-outline .wp-block-button__link{color:#fff;border:1px solid rgba(255,255,255,.45)}

main h2{font-size:clamp(1.6rem,3vw,2.1rem);margin:0 0 .5rem}
.vlb-regua{width:64px;height:4px;background:#2FBF71;border-radius:2px;margin:.75rem auto 1.25rem}
main .has-text-align-center + .vlb-regua + p{color:#5A6474;margin-bottom:2.5rem}

.wp-block-columns{gap:1.5rem;margin-top:1rem}
.vlb-card{background:#fff;border:1px solid #DDE3EC;border-radius:14px;padding:1.75rem;height:100%;box-shadow:0 1px 2px rgba(16,28,51,.04)}
.vlb-card h3{font-size:1.06rem;margin:0 0 .55rem;color:#1E3A5F;line-height:1.35}
.vlb-card p{color:#5A6474;font-size:.95rem;line-height:1.65;margin:0}

.vlb-passo{width:40px;height:40px;border-radius:50%;background:#2FBF71;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;margin-bottom:.9rem}
main .wp-block-column h3{font-size:1.06rem;color:#1E3A5F;margin:0 0 .5rem}
main .wp-block-column p{color:#5A6474;font-size:.95rem;line-height:1.65}

.vlb-seo{background:#F5F7FA;color:#3A4553;font-size:.96rem;line-height:1.8}
.vlb-seo h2{color:#1E3A5F;margin-bottom:1rem}
.vlb-seo h3{color:#1E3A5F;font-size:1.12rem;margin:1.8rem 0 .5rem}
.vlb-seo a{color:#1A9E58;text-decoration:underline}

@media (max-width:781px){
  .entry-content > .wp-block-group{padding-top:3rem;padding-bottom:3rem}
  .vlb-hero{padding-top:3.5rem;padding-bottom:3.5rem}
}

/* alinhamento a esquerda dentro do container, no padrao Brazuca */
.entry-content > .wp-block-group.vlb-hero > *{margin-left:0;margin-right:auto}
.entry-content > .wp-block-group.vlb-seo > *{margin-left:0;margin-right:auto;max-width:900px}

/* cabecalho */
.vlb-header{padding:1.1rem var(--vlb-gut);border-bottom:1px solid #E8EDF3;background:#fff}
.vlb-header .wp-block-site-title a{color:#1E3A5F;font-weight:800;font-size:1.28rem;text-decoration:none;letter-spacing:-.01em}
.vlb-nav{gap:1.6rem;align-items:center}
.vlb-nav p{margin:0;font-size:.95rem}
.vlb-nav a{color:#3A4553;text-decoration:none;font-weight:500}
.vlb-nav a:hover{color:#1A9E58}
.vlb-nav .vlb-cta a{background:#2FBF71;color:#fff;padding:.55rem 1.1rem;border-radius:8px;font-weight:600}

/* Marca: icone do app + nome (v1.2.0) */
.vlb-header .wp-block-html{display:flex;align-items:center}
.vlb-marca{display:flex;align-items:center;gap:.65rem;text-decoration:none}
.vlb-marca__icone{width:40px;height:40px;display:block;border-radius:10px;flex:none}
.vlb-marca__nome{color:#1E3A5F;font-weight:800;font-size:1.3rem;letter-spacing:-.01em;line-height:1}

/* Alinhamento a esquerda do hero e do bloco SEO (vence o layout constrained do core) */
.entry-content > .wp-block-group.vlb-hero,
.entry-content > .wp-block-group.vlb-seo{padding-left:var(--vlb-gut) !important;padding-right:var(--vlb-gut) !important}
.entry-content > .wp-block-group.vlb-hero > *{margin-left:0 !important;margin-right:auto !important}
.entry-content > .wp-block-group.vlb-seo > *{margin-left:0 !important;margin-right:auto !important;max-width:900px !important}

/* Cabecalho colado no primeiro bloco (sem linha e sem folga) */
.vlb-header{border-bottom:0}
.wp-site-blocks > main{margin-block-start:0 !important}

/* Respiro entre as linhas de cards */
.entry-content .wp-block-columns{margin-top:2rem}

/* Rodape */
.vlb-footer{background:#152047;color:#C9D2E3;padding:4rem var(--vlb-gut) 1.75rem;margin-block-start:0}
.vlb-footer__inner{max-width:1200px;margin:0 auto}
.vlb-footer__grid{display:grid;grid-template-columns:2.2fr 1fr 1fr 1fr;gap:2.5rem}
.vlb-footer__marca p{margin:.9rem 0 0;font-size:.95rem;line-height:1.7;max-width:42ch;color:#C9D2E3}
.vlb-marca--footer .vlb-marca__nome{color:#fff}
.vlb-footer h4{color:#fff;font-size:.875rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin:0 0 .8rem}
.vlb-footer ul{list-style:none;padding-left:0;margin:0}
.vlb-footer li{margin-bottom:.55rem;font-size:.9375rem}
.vlb-footer a{color:#C9D2E3;text-decoration:none}
.vlb-footer a:hover{color:#2FBF71}
.vlb-footer__bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:2.75rem;padding-top:1.25rem;font-size:.8125rem;color:#8B96AB;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between}
@media (max-width:781px){.vlb-footer__grid{grid-template-columns:1fr 1fr;gap:2rem}}
@media (max-width:480px){.vlb-footer__grid{grid-template-columns:1fr}}

/* Menu fixo que afina ao rolar */
.wp-site-blocks > header{position:sticky;top:0;z-index:120}
.admin-bar .wp-site-blocks > header{top:32px}
@media (max-width:782px){.admin-bar .wp-site-blocks > header{top:46px}}
.vlb-header{transition:padding .18s ease,box-shadow .18s ease}
.vlb-marca__icone{transition:width .18s ease,height .18s ease}
.vlb-marca__nome{transition:font-size .18s ease}
.vlb-header.is-slim{padding-top:.45rem;padding-bottom:.45rem;box-shadow:0 2px 14px rgba(16,28,51,.10)}
.vlb-header.is-slim .vlb-marca__icone{width:30px;height:30px}
.vlb-header.is-slim .vlb-marca__nome{font-size:1.08rem}
.vlb-header.is-slim .vlb-nav .vlb-cta a{padding:.42rem .95rem}

/* Botoes flutuantes */
.vlb-flutuante{position:fixed;right:20px;z-index:130;display:flex;align-items:center;justify-content:center;border-radius:50%;box-shadow:0 6px 18px rgba(16,28,51,.22);text-decoration:none;border:0;padding:0}
.vlb-zap{bottom:20px;width:56px;height:56px;background:#25D366}
.vlb-zap svg{width:30px;height:30px;fill:#fff}
.vlb-zap:hover{background:#1EBE5B}
.vlb-topo{bottom:88px;width:44px;height:44px;background:#1E3A5F;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease,visibility .2s ease}
.vlb-topo svg{width:20px;height:20px;fill:#fff}
.vlb-topo.is-visible{opacity:1;visibility:visible;transform:none}
.vlb-topo:hover{background:#16283F}
@media (max-width:600px){.vlb-flutuante{right:14px}.vlb-zap{width:50px;height:50px;bottom:14px}.vlb-topo{width:40px;height:40px;bottom:74px}}

/* Cabecalho fixo em camada propria: evita o texto da pagina "vazar" por cima
   durante a rolagem (artefato de repintura do Chrome em elemento sticky). */
.wp-site-blocks > header{background:#fff;will-change:transform;transform:translateZ(0);backface-visibility:hidden}
.vlb-header{box-shadow:0 1px 0 rgba(16,28,51,.06)}
html{scroll-padding-top:96px}

/* CAUSA REAL da sobreposicao dos cards: o bloco HTML do WordPress nao herda
   box-sizing:border-box. Com height:100% + padding 28px + borda 1px, cada card
   estourava 58px alem da coluna e invadia a linha de baixo. */
.vlb-card,.vlb-passo,.wp-block-html > div{box-sizing:border-box}
