/* ==========================================================================
   PVX — SHELL. Carregado por TODAS as páginas ativas.
   Contém apenas o cabeçalho padrão, o menu mobile e utilidades de acesso.
   Nenhuma regra global de body/tipografia/.wrap/.btn — para não interferir
   no CSS já existente das páginas do Mapa Vivo, Maturity Scan e Experiência.
   Todo seletor aqui é escopado em .pvxnav / .pvxdrawer / .pvx-skip.
   ========================================================================== */

:root{
  --pvx-navy:#091750;
  --pvx-mag:#E6187E;
  --pvx-mag-2:#c8106a;
  --pvx-line:#e6e8f0;
  --pvx-off:#f4f6fb;
  --pvx-nav-h:66px;
}

/* --- utilidades de acesso -------------------------------------------------- */
.pvx-skip{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--pvx-navy);color:#fff;padding:12px 20px;border-radius:0 0 10px 0;
  font-family:'Archivo',system-ui,sans-serif;font-weight:700;text-decoration:none;
}
.pvx-skip:focus{left:0}
.pvx-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* --- cabeçalho padrão (branco, fixo, mesmo em todas as páginas) ------------ */
.pvxnav{
  position:fixed;top:0;left:0;right:0;z-index:90;
  background:#fff;border-bottom:1px solid var(--pvx-line);
  font-family:'Archivo',system-ui,-apple-system,sans-serif;
  transition:box-shadow .25s;
}
.pvxnav.is-stuck{box-shadow:0 4px 22px rgba(1,24,80,.09)}
.pvxnav__in{
  max-width:100%;margin:0 auto;padding:0 clamp(24px,5vw,104px);
  display:flex;align-items:center;gap:20px;height:var(--pvx-nav-h);
}
.pvxnav__brand{display:inline-flex;align-items:center;min-height:44px;flex:0 0 auto}
/* Lockup horizontal 4,5:1, já sem margem no arquivo: a altura manda e a
   largura é consequência. object-fit:contain garante que nada seja cortado
   se a caixa mudar. Sem padding no container — ele recriaria a margem que
   acabamos de tirar do PNG. */
/* 58px em barra de 66px: 4px de respiro em cima e embaixo. O arquivo já
   está sem margem, então tudo que sobra vira logo. */
.pvxnav__logo{height:58px;width:auto;display:block;flex:0 0 auto;object-fit:contain}
/* 900–1100px: o menu inteiro ainda está na barra e disputa a largura. */
@media (max-width:1100px){.pvxnav__logo{height:48px}}
/* abaixo de 900 o menu vira hambúrguer e devolve a largura ao logo. */
@media (max-width:900px){.pvxnav__logo{height:56px}}
@media (max-width:560px){.pvxnav__logo{height:48px}}
.pvxnav__links{display:flex;align-items:center;gap:4px;margin-left:auto}
.pvxnav__links a{
  display:inline-flex;align-items:center;min-height:44px;padding:0 11px;
  font-size:13.5px;font-weight:600;color:var(--pvx-navy);text-decoration:none;
  border-radius:8px;opacity:.82;transition:opacity .15s,background .15s;
}
.pvxnav__links a:hover{opacity:1;background:var(--pvx-off)}
.pvxnav__links a[aria-current="page"]{opacity:1;color:var(--pvx-mag)}
.pvxnav__cta{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  margin-left:10px;min-height:44px;padding:10px 20px;border-radius:11px;
  background:#1E6FF0;color:#fff;text-decoration:none;
  font-size:14.5px;font-weight:700;white-space:nowrap;box-shadow:0 6px 16px rgba(230,24,126,.24);
  transition:background .18s;
}
.pvxnav__cta:hover{background:#1560db}
.pvxnav__burger{
  display:none;margin-left:auto;width:46px;height:46px;
  align-items:center;justify-content:center;
  background:none;border:1px solid var(--pvx-line);border-radius:10px;cursor:pointer;
}
.pvxnav__burger span{display:block;width:20px;height:2px;background:var(--pvx-navy);position:relative}
.pvxnav__burger span::before,.pvxnav__burger span::after{content:'';position:absolute;left:0;width:20px;height:2px;background:var(--pvx-navy)}
.pvxnav__burger span::before{top:-6px}
.pvxnav__burger span::after{top:6px}

/* --- menu mobile ----------------------------------------------------------- */
.pvxdrawer{
  position:fixed;inset:0;z-index:100;background:var(--pvx-navy);
  display:none;flex-direction:column;padding:20px clamp(20px,4vw,34px) 40px;
  font-family:'Archivo',system-ui,sans-serif;
}
.pvxdrawer.is-open{display:flex}
.pvxdrawer__top{display:flex;justify-content:flex-end;height:var(--pvx-nav-h);align-items:center}
.pvxdrawer__close{width:46px;height:46px;background:none;border:1px solid rgba(255,255,255,.3);border-radius:10px;color:#fff;font-size:26px;line-height:1;cursor:pointer}
.pvxdrawer__links{display:flex;flex-direction:column;gap:2px;margin-top:12px}
.pvxdrawer__links a{
  display:flex;align-items:center;min-height:56px;color:#fff;text-decoration:none;
  font-family:'Fraunces',Georgia,serif;font-size:23px;border-bottom:1px solid rgba(255,255,255,.12);
}
.pvxdrawer__cta{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  margin-top:26px;min-height:52px;padding:14px 24px;border-radius:12px;
  background:#1E6FF0;color:#fff;text-decoration:none;font-size:16px;font-weight:700;
  white-space:nowrap;
}
.pvxnav__cta svg,.pvxdrawer__cta svg{width:17px;height:17px;flex:0 0 auto}

/* --- foco visível ---------------------------------------------------------- */
.pvxnav :where(a,button):focus-visible,
.pvx-skip:focus-visible{outline:3px solid var(--pvx-mag);outline-offset:3px;border-radius:6px}
.pvxdrawer :where(a,button):focus-visible{outline:3px solid #fff;outline-offset:3px;border-radius:6px}

@media (max-width:900px){
  .pvxnav__links,.pvxnav__cta{display:none}
  .pvxnav__burger{display:flex}
}
@media (max-width:640px){
  :root{--pvx-nav-h:62px}
}
@media (prefers-reduced-motion:reduce){
  .pvxnav,.pvxnav__links a,.pvxnav__cta{transition:none}
}

/* ==========================================================================
   RODAPÉ GLOBAL — idêntico nas 4 páginas ativas.
   Escopado em .pvxfoot para não colidir com o CSS legado das páginas.
   ========================================================================== */
.pvxfoot{background:#061034;color:#a9b4cf;font-family:'Archivo',system-ui,sans-serif;font-size:14px;line-height:1.5}
.pvxfoot__in{max-width:100%;margin:0 auto;padding:0 clamp(24px,5vw,104px);min-width:0}
/* Rodapé compacto: o respiro vem do espaçamento entre blocos, não de padding. */
.pvxfoot__top{padding:clamp(26px,2.8vw,38px) 0 clamp(18px,2vw,24px)}
.pvxfoot__grid{display:grid;min-width:0;grid-template-columns:1.5fr .85fr .95fr 1.05fr 1fr;gap:clamp(16px,2.2vw,32px)}

/* 1 · identidade */
/* Os três logos na mesma altura. Como as proporções são próximas
   (2,25 · 1,91 · 1,94), altura igual entrega área equivalente — o PVX
   vinha com o dobro da área do MOSO e 2,5x a do SucceXX. */
.pvxfoot__id img{height:clamp(40px,3.6vw,50px);width:auto;display:block}
.pvxfoot__lock{margin:12px 0 0;font-size:15px;line-height:1.25;color:#eef1f8}
.pvxfoot__lock b{font-weight:700}
.pvxfoot__lock b span{color:var(--pvx-mag)}
.pvxfoot__lock .l2{display:block;font-size:12.5px;font-weight:400;color:#9fabc9;margin-top:2px}
.pvxfoot__rule{display:block;width:46px;height:2px;margin:14px 0;background:linear-gradient(90deg,#E6187E,#1E6FF0)}
.pvxfoot__claim{font-size:13px;line-height:1.55;color:#9fabc9;max-width:32ch;margin:0}
.pvxfoot__soc{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:16px}
.pvxfoot__soc a{gap:10px;align-items:center;min-height:40px}
.pvxfoot__soc i{flex:0 0 auto;width:32px;height:32px;border-radius:9px;border:1px solid rgba(255,255,255,.28);display:grid;place-items:center}
.pvxfoot__soc a:hover i{border-color:var(--pvx-mag);background:rgba(230,24,126,.12)}
.pvxfoot__soc svg{width:15px;height:15px;fill:currentColor}
.pvxfoot__soc span{font-size:13.5px;color:#cfd8ee}

/* 2–5 · colunas de links */
.pvxfoot__lbl{font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#c4a9ff;margin:0}
.pvxfoot__lbl::after{content:'';display:block;width:22px;height:2px;margin-top:8px;background:linear-gradient(90deg,#E6187E,#8A5CD1)}
.pvxfoot ul{list-style:none;margin:10px 0 0;padding:0}
.pvxfoot a{display:inline-flex;align-items:center;min-height:44px;color:#cfd8ee;text-decoration:none;font-size:13.5px}
.pvxfoot a:hover{color:#fff}
/* o alvo de 44px existe para o dedo; no ponteiro fino ele só alonga o rodapé */
@media (pointer:fine){.pvxfoot a,.pvxfoot__pend{min-height:30px}.pvxfoot__soc a{min-height:40px}}
.pvxfoot__pend{display:inline-flex;align-items:center;min-height:44px;color:#5f6d8f;font-size:13.5px;cursor:default}
.pvxfoot__nota{margin:6px 0 0;font-size:11px;line-height:1.4;color:#5f6d8f}
.pvxfoot__zap{gap:8px}
.pvxfoot__zap i{flex:0 0 auto;width:20px;height:20px;display:grid;place-items:center;color:#4fd18a}
.pvxfoot__zap svg{width:16px;height:16px;fill:currentColor}
.pvxfoot__zap:hover i{color:#6ee0a2}
.pvxfoot__cta{display:inline-flex!important;align-items:center;justify-content:center;margin-top:12px;padding:10px 20px;border:1px solid var(--pvx-mag);border-radius:999px;color:#fff!important;font-weight:700;font-size:13.5px;transition:background .2s}
.pvxfoot__cta:hover{background:var(--pvx-mag)}

/* 5 · parceiro + QR */
.pvxfoot__moso{height:clamp(40px,3.6vw,50px);width:auto;display:block;margin-top:16px}
/* align-items:flex-start é obrigatório: com o stretch padrão a imagem
   de largura automática esticava para a coluna inteira e distorcia. */
.pvxfoot__parc{display:flex;flex-direction:column;align-items:flex-start}
.pvxfoot__parc .pvxfoot__rule{margin:auto 0 0}
.pvxfoot__lbl--2{margin-top:22px}
.pvxfoot__succ{height:clamp(40px,3.6vw,50px);width:auto;display:block;margin-top:16px}
.pvxfoot__qrk{margin:0 0 8px;font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#c4a9ff}
.pvxfoot .pvxfoot__qr{display:inline-flex;min-height:0;padding:5px;background:#fff;border-radius:9px}
.pvxfoot .pvxfoot__qr img{width:88px;height:88px;display:block}

/* barra inferior — só a realização, sem repetir logo da seção acima */
.pvxfoot__bar{border-top:1px solid rgba(255,255,255,.1);background:#040c28}
.pvxfoot__barin{max-width:100%;margin:0 auto;padding:14px clamp(24px,5vw,104px);display:flex;flex-wrap:wrap;align-items:center;gap:16px 32px}
.pvxfoot__cred{display:flex;align-items:center;gap:14px}
.pvxfoot__credlbl{font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#8494b5;white-space:nowrap}
.pvxfoot__cred img{height:34px;width:auto;display:block}
.pvxfoot__legal{margin-left:0;text-align:left}
.pvxfoot__copy{margin:0;font-size:11.5px;line-height:1.5;color:#8494b5}

@media (max-width:1180px){
  /* a identidade ocupa a linha e os quatro blocos de links dividem a seguinte:
     em três colunas eles quebravam em duas linhas e o rodapé crescia 200px */
  .pvxfoot__grid{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:24px}
  .pvxfoot__id{grid-column:1/-1}
}
@media (max-width:700px){
  .pvxfoot__grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:20px;gap:14px}
  /* quem já está no celular não fotografa a própria tela */
  .pvxfoot__qrk,.pvxfoot .pvxfoot__qr{display:none}
  .pvxfoot__parc .pvxfoot__rule{display:none}
  .pvxfoot__claim{max-width:none}
  .pvxfoot__top{padding:22px 0 16px}
  .pvxfoot__barin{flex-direction:column;align-items:flex-start;gap:14px}
  .pvxfoot__legal{margin-left:0;text-align:left}
}
.pvxfoot :where(a):focus-visible{outline:3px solid var(--pvx-mag);outline-offset:3px;border-radius:6px}

