:root{
  --pvivo-bege:#fff;--pvivo-verde:#3D7654;--pvivo-preto:#111111;--pvivo-cinza:#B8B3A8;--pvivo-branco:#fff;--pvivo-visita-left-desktop:540px;
}
html{scroll-behavior:smooth}body{margin:0;background:var(--pvivo-bege);color:var(--pvivo-preto);font-family:Arial,Helvetica,sans-serif}a{color:inherit}
body.pvivo-dark{--pvivo-bege:#111;--pvivo-preto:#fff;--pvivo-cinza:#333;--pvivo-branco:#1b1b1b;background:#111;color:#fff}
body.pvivo-contrast{filter:contrast(1.22)}body.pvivo-font-plus{font-size:118%}
.pvivo-site-top{min-height:58px;background:#000;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:8px 5vw;gap:20px;position:relative;z-index:50}
.pvivo-top-logo img{max-height:36px;width:auto;opacity:.85}.pvivo-top-nav{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.pvivo-top-nav ul{display:flex;gap:18px;list-style:none;margin:0;padding:0;flex-wrap:wrap}.pvivo-top-nav a,.pvivo-access-toggle{color:#fff;text-decoration:none;background:transparent;border:0;font-weight:700;cursor:pointer;font-size:14px}
.pvivo-access-panel{position:fixed;right:18px;top:172px;background:#fff;color:#111;padding:16px;border-radius:14px;box-shadow:0 16px 34px rgba(0,0,0,.2);z-index:999;display:grid;gap:8px}.pvivo-access-panel[hidden]{display:none}.pvivo-access-panel button{border:1px solid #ddd;background:#f7f7f7;border-radius:8px;padding:8px 10px;cursor:pointer}
.pvivo-top-highlights{background:var(--pvivo-topbar-bg);box-shadow:0 4px 20px rgba(0,0,0,.08);padding:10px 5vw;overflow:hidden}.pvivo-top-highlights-inner{display:flex;align-items:center;gap:22px;max-width:1240px;margin:0 auto}.pvivo-highlight-track{display:flex;gap:18px;overflow:hidden;flex:1}.pvivo-highlight-item{display:flex;align-items:center;gap:8px;text-decoration:none;min-width:230px;font-weight:800}.pvivo-highlight-item img{width:48px;height:48px;object-fit:cover;border-radius:8px}
.pvivo-estrutura-wrap{min-height:100vh;background:radial-gradient(circle at 50% 10%,rgba(255,255,255,.55),transparent 38%),var(--pvivo-bege);padding:0 20px 30px}.pvivo-estrutura-master{width:min(1120px,94vw);margin:0 auto;position:relative}
.pvivo-logo-row{display:flex;margin-top:var(--pvivo-logo-margin-top)}.pvivo-logo-left{justify-content:flex-start}.pvivo-logo-center{justify-content:center}.pvivo-logo-right{justify-content:flex-end}.pvivo-brand-logo{width:var(--pvivo-logo-width);left:var(--pvivo-logo-left);max-width:82vw;height:auto;display:block}
.pvivo-hero-title{
	font-size:clamp(44px,7.4vw,105px);
	line-height:.86;
	letter-spacing:-.06em;
	text-transform:uppercase;
	margin:18px 0 14px;
	font-weight:950;
	text-align:center
}
.pvivo-hero-subtitle{
	text-align:center;
	font-size:clamp(16px,2vw,22px);
	margin:0 0 18px;
	color:#333
}
.pvivo-dark .pvivo-hero-subtitle{color:#ddd}
.pvivo-hero-visual{
	position:relative;
	width:min(var(--pvivo-hero-width),92vw);
	height:var(--pvivo-hero-height);
	left:var(--pvivo-hero-left);
	margin:0 auto}
.pvivo-hero-image{width:100%;
	height:100%;
	object-fit:cover;
	display:block;
	box-shadow:0 18px 35px rgba(0,0,0,.18)
}
.pvivo-hanging-menu{
	position:absolute;
	right:var(--pvivo-hanging-right);
	top:var(--pvivo-hanging-top);
	z-index:5
}.pvivo-hanging-menu ul{
	display:flex;
	flex-direction:column;
	gap:var(--pvivo-hanging-gap);
	list-style:none;
	margin:0;
	padding:0
}.pvivo-hanging-menu a{
	width:var(--pvivo-hanging-width);
	min-height:var(--pvivo-hanging-height);
	background:#fff;
	color:#111;
	display:grid;
	place-items:center;
	text-align:center;
	text-decoration:none;
	text-transform:uppercase;
	font-weight:950;
	font-size:13px;
	line-height:1.15;
	box-shadow:0 14px 20px rgba(0,0,0,.18);
	transform-origin:top center;
	animation:pvivoSwing 6.8s ease-in-out infinite;
	rotate:0
}
/*.pvivo-hanging-menu li:nth-child(2) a{animation-duration:7.5s;animation-delay:.3s;rotate:-6deg}.pvivo-hanging-menu li:nth-child(3) a{animation-duration:8.1s;animation-delay:.65s;rotate:-7deg}
.pvivo-hanging-menu li:nth-child(4) a{animation-duration:7.2s;animation-delay:.95s;rotate:-1deg}
@keyframes pvivoSwing{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}*/
.pvivo-visitas{
	position:absolute;
	z-index:4;
	left:53%;
	bottom:var(--pvivo-visita-bottom);
	transform:translateX(-50%);
	width:var(--pvivo-visita-width);
	height:var(--pvivo-visita-height);
	color:#111;
	background:#111;
	text-decoration:none;
	display:grid;
	place-items:center;
	text-align:center;
	border-radius:50% 50% 0 0;
	font-size:16px;
	font-weight:350;
	line-height:.92;
	box-shadow:20px 20px 20px rgba(255,255,255,.05)
}
.pvivo-como-chegar{
	width:min(var(--pvivo-hero-width),92vw);
	left:var(--pvivo-hero-left);
	position:relative;
	margin:10px auto 0;
	display:flex;
	gap:14px;
	align-items:left;
	background:#111;
	color:white;
	font-weight:950;
	text-transform:uppercase
}
.pvivo-como-chegar img{
	width:54px;
	height:54px;
	object-fit:contain;
}
.pvivo-page{
	padding:20px 5vw
}
.pvivo-content{
	max-width:980px; 
	margin:auto;
	background:#fff;
	padding:10px; 
}
.pvivo-content h1{
	color:var(--pvivo-verde)
}
.pvivo-footer{ 
	color:#fff;
	background:#111;
	padding:5px 5vw;
	margin:0 auto
}
.pvivo-footer-grid{
	display:grid;
	grid-template-columns:repeat(5,1fr);
    line-height:1.8;
	gap:10px;
	max-width:1240px;
	margin:0 auto
}
.pvivo-footer h3{
	text-transform:uppercase;
	font-size:13px;
	color:#fff
}
.pvivo-footer h4{
	text-transform:lowercase;
	gap:10px;
	font-size:14px;
	color:#E7E3D9
}
.pvivo-footer a{
	display:block;
	gap:13px;
	font-size:14px;
	text-decoration:none;
	margin:0 0 0 0
}
.pvivo-footer p{
	text-transform:lowercase;
	font-size:14px;
	color:#fff
}
.pvivo-footer-final{
	text-align:center;
	margin-top:0
}
.pvivo-whatsapp{
	position:fixed;
	bottom:76px;
	background:#25d366;
	color:#fff;
	padding:12px 10px;
	border-radius:999px;
	text-decoration:none;
	font-weight:900;
	z-index:998
}
.pvivo-whatsapp-right{
	right:18px
}
.pvivo-whatsapp-left{
	left:18px
}
.pvivo-float-nav{
	position:fixed;
	right:18px;
	bottom:18px;
	background:#fff;
	color:#111;
	border:1px solid #ddd;
	border-radius:999px;
	padding:10px 14px;
	text-decoration:none;
	font-weight:800;
	box-shadow:0 12px 24px rgba(0,0,0,.18);
	z-index:998;
	font-size:13px
}
/*@media(max-width:1180px){.pvivo-hero-visual{left:0}.pvivo-como-chegar{left:0}.pvivo-hanging-menu{right:20px;top:24px}.pvivo-hanging-menu a{width:155px;min-height:66px;font-size:11px}.pvivo-footer-grid{grid-template-columns:repeat(2,1fr)}}*/
/*@media(max-width:760px){.pvivo-site-top{justify-content:center;text-align:center}.pvivo-top-nav,.pvivo-top-nav ul{justify-content:center}.pvivo-top-highlights-inner{display:block}.pvivo-hero-title{font-size:20px}.pvivo-hanging-menu{position:static;margin:22px auto 0}.pvivo-hanging-menu ul{align-items:center}.pvivo-hanging-menu a{width:min(78vw,320px)}.pvivo-visitas{width:210px;height:92px;font-size:25px}.pvivo-como-chegar{font-size:12px}.pvivo-footer-grid{grid-template-columns:1fr}}*/
/*@media(prefers-reduced-motion:reduce){.pvivo-hanging-menu a{animation:none}}*/


/* ============================================================
   Patch v4.1 — Ajustes obrigatórios de fidelidade visual
   ============================================================ */

/* Container mestre: todos os elementos principais formam um só bloco */
.pvivo-estrutura-master{
  max-width:1400px;
}

/* Logo ancorada à mesma composição da imagem */
.pvivo-logo-row{
  position:relative;
  left:var(--pvivo-logo-left);
  top:var(--pvivo-logo-top);
  width:min(var(--pvivo-hero-width),92vw);
  margin-left:auto;
  margin-right:auto;
}

/* Bloco da imagem, menu, visitas e como chegar */
.pvivo-hero-block{
  width:min(var(--pvivo-hero-width),92vw);
  position:relative;
  left:var(--pvivo-hero-left);
  top:var(--pvivo-hero-top);
  margin:0 auto;
}

/* A imagem é a referência de ancoragem de todos os objetos */
.pvivo-hero-visual{
  position:relative !important;
  width:100% !important;
  left:0 !important;
  margin:0 !important;
  overflow:visible;
}

/* Menu pendurado obrigatório: sempre ancorado à imagem em desktop/tablet */
/* top:var(--pvivo-hanging-top) !important; */
.pvivo-hanging-menu{
  position:absolute !important;
  right:var(--pvivo-hanging-right) !important;
  top:80px !important;
  z-index:40;
  width:auto;
}

.pvivo-hanging-menu a{
  width:clamp(var(--pvivo-hanging-min-width), var(--pvivo-hanging-width), var(--pvivo-hanging-max-width));
  min-height:var(--pvivo-hanging-height);
  border:0px solid rgba(0,0,0,.35);
    font-size:14px;
}

/* Visitas guiadas sempre dentro do container da foto */
.pvivo-visitas{
  position:absolute !important; 
  bottom:var(--pvivo-visita-bottom) !important;
  z-index:var(--pvivo-visita-z);
    font-size:10px;
  box-shadow:10px 10px 10px #999999;
}

/* Como chegar sincronizado com a largura da imagem */
.pvivo-como-chegar{
  width:100% !important;
  left:0 !important;
  margin:10px 0 0 !important;
  z-index:var(--pvivo-como-z);
  position:relative;
    font-size:10px;
}

/* Tablet: mantém menu lateral, só reduz dimensões */
@media(min-width:768px) and (max-width:1199px){
  .pvivo-hero-block{
    left:0;
    width:min(860px,86vw);
  }
  .pvivo-logo-row{
    width:min(860px,86vw);
  }
  .pvivo-hanging-menu{
    right:-115px !important;
    top:44px !important;
  }
  .pvivo-hanging-menu a{
    width:145px;
    min-height:64px;
    font-size:11px;
  }
}

/* Mobile: somente aqui os quadros migram para baixo da imagem */
@media(max-width:767px){
  .pvivo-hero-block{
    left:0;
    width:100%;
  }
  .pvivo-logo-row{
    width:100%;
    left:0;
  }
  .pvivo-hanging-menu{
    top:110px !important;
    position:relative !important;
	left:-100px !important;
    right:auto !important;
    margin:22px auto 0;
    z-index:3;
  }
  .pvivo-hanging-menu ul{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:38px 26px;
    align-items:center;
    justify-items:center;
  }
  .pvivo-hanging-menu a{
    width:min(38vw,260px);
    min-height:120px;
    font-size:12px;
    line-height:1.15;
  }
  .pvivo-visitas{
    bottom:-1px !important;
    font-size:12px;
    z-index:6;
  }
  .pvivo-como-chegar{
    font-size:20px;
    line-height:1.35;
    background:rgba(231,227,217,.92);
    padding:12px;
    box-sizing:border-box;
  }
}

/* Modo Designer opcional: habilitar adicionando class pvivo-debug no body */
body.pvivo-debug .pvivo-estrutura-master,
body.pvivo-debug .pvivo-hero-block,
body.pvivo-debug .pvivo-hero-visual,
body.pvivo-debug .pvivo-como-chegar{
  outline:1px dashed #fff;
}


/* ============================================================
   Patch v1.2 — Correções solicitadas
   ============================================================ */
.pvivo-top-anchor{position:absolute;top:0;left:0;width:1px;height:1px}
.pvivo-site-top{display:none!important}
.pvivo-access-floating{position:fixed;top:102px;right:18px;z-index:1000;background:rgba(0,0,0,.7);color:#fff;border:0;border-radius:999px;padding:8px 12px;font-weight:800;cursor:pointer}

/* Barra de destaques com navegação gradual para a esquerda */
.pvivo-top-highlights{overflow:hidden;white-space:nowrap;padding:10px 0;background:var(--pvivo-topbar-bg);box-shadow:0 4px 20px rgba(0,0,0,.08)}
.pvivo-top-highlights-inner{max-width:none;width:100%;display:flex;align-items:center;gap:24px}
.pvivo-top-highlights-label{flex:0 0 auto;margin-left:2vw}
.pvivo-highlight-viewport{flex:1;overflow:hidden}
.pvivo-highlight-track{display:flex;gap:42px;width:max-content;animation:pvivoMarquee var(--pvivo-topbar-speed-desktop) linear infinite;will-change:transform}
.pvivo-highlight-track:hover{animation-play-state:paused}
.pvivo-highlight-item{flex:0 0 auto;min-width:260px;display:flex;align-items:center;gap:8px;text-decoration:none;font-weight:800}
.pvivo-highlight-item img{width:48px;height:48px;object-fit:cover;border-radius:4px}
@keyframes pvivoMarquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* Variáveis por dispositivo */
.pvivo-logo-row{width:min(var(--pvivo-hero-width-desktop),92vw)!important;left:var(--pvivo-logo-left-desktop)!important;top:var(--pvivo-logo-top-desktop)!important}
.pvivo-brand-logo{width:var(--pvivo-logo-width-desktop)!important;left:var(--pvivo-logo-left-desktop)}
.pvivo-hero-block{width:min(var(--pvivo-hero-width-desktop),92vw)!important;left:var(--pvivo-hero-left-desktop)!important;top:var(--pvivo-hero-top-desktop)!important;position:relative;margin:0 auto}
.pvivo-hero-visual{width:100%!important;position:relative!important;left:0!important;margin:0!important;overflow:visible}
.pvivo-hero-image{width:100%!important;height:var(--pvivo-hero-height-desktop)!important;object-fit:cover}
.pvivo-como-chegar{width:100%!important;left:0!important;margin:18px 0 0!important;box-sizing:border-box}

/* Menu pendurado com movimento contínuo no desktop */
.pvivo-hanging-menu{
	position:absolute!important;
	right:var(--pvivo-hanging-right-desktop)!important;
	top:var(--pvivo-hanging-top-desktop)!important;
	z-index:50!important
}
.pvivo-hanging-menu ul{gap:var(--pvivo-hanging-gap-desktop)!important}
.pvivo-hanging-menu a{width:var(--pvivo-hanging-width-desktop)!important;min-height:var(--pvivo-hanging-height-desktop)!important;animation:pvivoSwingStrong 5.8s ease-in-out infinite!important;transform-origin:top center!important}
/* .pvivo-hanging-menu li:nth-child(2) a{animation-duration:6.4s!important;animation-delay:.4s!important}
.pvivo-hanging-menu li:nth-child(3) a{animation-duration:7.1s!important;animation-delay:.8s!important}
.pvivo-hanging-menu li:nth-child(4) a{animation-duration:6.7s!important;animation-delay:1.1s!important}
@keyframes pvivoSwingStrong{0%{transform:rotate(-2.2deg)}50%{transform:rotate(2.2deg)}100%{transform:rotate(-2.2deg)}} */

.pvivo-visitas{width:var(--pvivo-visita-width-desktop)!important;height:var(--pvivo-visita-height-desktop)!important;bottom:var(--pvivo-visita-bottom-desktop)!important;left:var(--pvivo-visita-left-desktop)!important;z-index:40!important}

/* Tablet: menu sempre acima dos DIV seguintes */
@media(min-width:768px) and (max-width:1199px){
  .pvivo-highlight-track{animation-duration:var(--pvivo-topbar-speed-tablet)}
  .pvivo-logo-row{width:min(var(--pvivo-hero-width-tablet),92vw)!important;left:var(--pvivo-logo-left-tablet)!important;top:var(--pvivo-logo-top-tablet)!important}
  .pvivo-brand-logo{width:var(--pvivo-logo-width-tablet)!important}
  .pvivo-hero-block{width:min(var(--pvivo-hero-width-tablet),92vw)!important;left:var(--pvivo-hero-left-tablet)!important;top:var(--pvivo-hero-top-tablet)!important}
  .pvivo-hero-image{height:var(--pvivo-hero-height-tablet)!important}
  .pvivo-hanging-menu{position:absolute!important;right:var(--pvivo-hanging-right-tablet)!important;top:var(--pvivo-hanging-top-tablet)!important;z-index:60!important}
  .pvivo-hanging-menu ul{display:flex!important;flex-direction:column!important;gap:var(--pvivo-hanging-gap-tablet)!important}
  .pvivo-hanging-menu a{width:var(--pvivo-hanging-width-tablet)!important;min-height:var(--pvivo-hanging-height-tablet)!important;font-size:11px!important}
  .pvivo-visitas{width:var(--pvivo-visita-width-tablet)!important;height:var(--pvivo-visita-height-tablet)!important;bottom:var(--pvivo-visita-bottom-tablet)!important}
}

/* Mobile: menu vai abaixo da imagem, mas acima dos DIVs seguintes */
@media(max-width:767px){
  .pvivo-highlight-track{animation-duration:var(--pvivo-topbar-speed-mobile)}
  .pvivo-top-highlights-inner{gap:14px}
  .pvivo-top-highlights-label{margin-left:12px}
  .pvivo-logo-row{width:var(--pvivo-hero-width-mobile)!important;left:var(--pvivo-logo-left-mobile)!important;top:var(--pvivo-logo-top-mobile)!important}
  .pvivo-brand-logo{width:var(--pvivo-logo-width-mobile)!important}
  .pvivo-hero-block{width:var(--pvivo-hero-width-mobile)!important;left:var(--pvivo-hero-left-mobile)!important;top:var(--pvivo-hero-top-mobile)!important}
  .pvivo-hero-image{height:var(--pvivo-hero-height-mobile)!important}
  .pvivo-hanging-menu{position:relative!important;right:auto!important;top:auto!important;z-index:60!important;margin:42px auto 0!important}
  .pvivo-hanging-menu ul{display:grid!important;grid-template-columns:1fr 1fr!important;gap:var(--pvivo-hanging-gap-mobile)!important}
  .pvivo-hanging-menu a{width:var(--pvivo-hanging-width-mobile)!important;min-height:var(--pvivo-hanging-height-mobile)!important;font-size:clamp(16px,5vw,24px)!important;animation:pvivoSwingStrong 5.8s ease-in-out infinite!important}
  .pvivo-visitas{width:var(--pvivo-visita-width-mobile)!important;height:var(--pvivo-visita-height-mobile)!important;bottom:var(--pvivo-visita-bottom-mobile)!important}
}

/* ============================================================
   Patch — Controle horizontal do elemento VISITAS GUIADAS
   Objetivo:
   1. Manter o elemento centralizado por padrão.
   2. Permitir ajuste fino horizontal via variável CSS.
   3. Separar controle por Desktop, Tablet e Mobile.
   ============================================================ */

:root{
  /* Posição-base: 50% mantém o objeto centralizado no container da imagem */
  --pvivo-visita-left-desktop:54%;
  --pvivo-visita-left-tablet:70%;
  --pvivo-visita-left-mobile:50%;

  /* Ajuste fino: valores positivos movem para direita; negativos movem para esquerda */
  --pvivo-visita-left-offset-desktop:0px;
  --pvivo-visita-left-offset-tablet:0px;
  --pvivo-visita-left-offset-mobile:0px;

  /* Controle opcional de tipografia, útil para próximos ajustes no Customizer */
  --pvivo-visita-font-size-desktop:18px;/*clamp(22px,3vw,38px);*/
  --pvivo-visita-font-size-tablet:14px;/*clamp(22px,3vw,38px);*/
  --pvivo-visita-font-size-mobile:16px;
}

/* Desktop */
.pvivo-visitas{
  /*left:var(--pvivo-visita-left-desktop)!important;*/
	  
    position:absolute!important;
  transform:translateX(-50%) translateX(var(--pvivo-visita-left-offset-desktop))!important;
  font-size:var(--pvivo-visita-font-size-desktop)!important;
}

/* Tablet */
@media(min-width:768px) and (max-width:1199px){
  .pvivo-visitas{
   /* left:var(--pvivo-visita-left-tablet)!important;*/
	  
    position:absolute!important;
    transform:translateX(-50%) translateX(var(--pvivo-visita-left-offset-tablet))!important;
    font-size:var(--pvivo-visita-font-size-tablet)!important;
  }
}

/* Mobile */
@media(max-width:767px){
  .pvivo-visitas{
    /*left:var(--pvivo-visita-left-mobile)!important;*/
	  
    left:-50px;
    top:110px;
    position:absolute!important;
    transform:translateX(-50%) translateX(var(--pvivo-visita-left-offset-mobile))!important;
    font-size:12px !important;
  }
}

.pvivo-home-button{
    position:fixed;
    top:60px;
    left:10px;
    z-index:9999;
    background:#fff;
    color:#111;
    padding:10px 16px;
    border-radius:999px;
    text-decoration:none;
    font-weight:700;
    box-shadow:0 8px 18px #999999;
}

body.home .pvivo-home-button{
    display:none;
}
.ccjb-nav-btn{

position:fixed;
top:50%;
transform:translateY(-50%);

width:60px;
height:60px;

border-radius:50%;

background:#fff;

box-shadow:0 8px 20px rgba(0,0,0,.20);

display:flex;

justify-content:center;

align-items:center;

font-size:34px;

font-weight:bold;

text-decoration:none;

color:#1d1d1d;

z-index:999999;

transition:.25s;

}

.ccjb-nav-btn:hover{

transform:translateY(-50%) scale(1.08);

}

.ccjb-nav-prev{

left:20px;

}

.ccjb-nav-next{

right:20px;

}
/* ============================================================
   Patch v2.0 — Landing Estrutura Hero Fullscreen
   Objetivo: aproximar a capa da referência LANDING-ESTRUTURA-V02,
   preservando menu dinâmico, destaques culturais, acessibilidade,
   botão explorar, variáveis e animações existentes.
   ============================================================ */

body:has(.pvivo-landing-v02){
  background:#000;
  overflow-x:hidden;
}

.pvivo-landing-v02{
  background:#000;
  min-height:100vh;
}

/* Barra superior: faixa branca horizontal com miniatura, título e marquee. */
.pvivo-landing-v02 .pvivo-top-highlights{
  position:relative;
  z-index:120;
  height:60px;
  padding:0;
  background:#fff!important;
  color:#111;
  box-shadow:none;
  border:0;
}

.pvivo-landing-v02 .pvivo-top-highlights-inner{
  height:60px;
  display:flex;
  align-items:center;
  gap:50px;
  width:100%;
  max-width:none;
  margin:0;
}

.pvivo-landing-v02 .pvivo-top-highlights-label{
  height:60px;
  min-width:150px;
  margin:60px;
  padding:0 18px;
  display:grid;
  place-items:center;
  text-align:center;
  font-size:16px;
  line-height:1.15;
  font-weight:950;
  text-transform:uppercase;
  white-space:normal;
}

.pvivo-landing-v02 .pvivo-highlight-viewport{
  height:60px;
  display:flex;
  align-items:center;
  overflow:hidden;
}

.pvivo-landing-v02 .pvivo-highlight-track{
  height:60px;
  align-items:center;
  gap:62px;
  animation:pvivoMarquee var(--pvivo-topbar-speed-desktop, 35s) linear infinite;
}

.pvivo-landing-v02 .pvivo-highlight-item{
  min-width:auto;
  height:60px;
  display:flex;
  align-items:center;
  gap:12px;
  font-size:18px;
  font-weight:700;
  text-transform:uppercase;
  color:#111;
  white-space:nowrap;
}

.pvivo-landing-v02 .pvivo-highlight-item img{
  width:54px;
  height:54px;
  margin:12px;
  border-radius:0;
  object-fit:contain;
  background:#fff;
}

/* Remove a lógica antiga de container bege centralizado apenas nesta landing. */
.pvivo-landing-v02 .pvivo-estrutura-wrap,
.pvivo-landing-v02 .pvivo-estrutura-wrap-v02{
  min-height:calc(100vh - 60px);
  padding:0!important;
  margin:0;
  background:#000!important;
}

.pvivo-landing-v02 .pvivo-hero-fullscreen{
  position:relative;
  min-height:calc(100vh - 60px);
  width:100vw;
  overflow:hidden;
  background:#000;
}

.pvivo-landing-v02 .pvivo-hero-bg{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center;
  display:block!important;
  box-shadow:none!important;
  z-index:1;
}

.pvivo-landing-v02 .pvivo-hero-overlay{
  position:absolute;
  inset:0;
  z-index:2;
  background:rgba(0,0,0,.46);
  pointer-events:none;
}

.pvivo-landing-v02 .pvivo-hero-content-v02{
  position:absolute;
  inset:0;
  z-index:3;
}

/* Logotipo sobre a imagem, no canto superior esquerdo. */
.pvivo-landing-v02 .pvivo-logo-row{
  position:absolute!important;
  left:2.5vw!important;
  top:40px!important;
  width:auto!important;
  margin:0!important;
  z-index:10;
  display:block!important;
}

.pvivo-landing-v02 .pvivo-brand-logo{
  width:clamp(380px, 42vw, 720px)!important;
  max-width:58vw!important;
  height:auto!important;
  display:block;
  filter:drop-shadow(0 5px 2px rgba(0,0,0,.55));
}

/* Menu lateral: mantém geração via wp_nav_menu/pvivo_render_hanging_menu. */
.pvivo-landing-v02 .pvivo-hanging-menu{
  position:absolute!important;
  top:32px!important;
  right:2.7vw!important;
  z-index:20!important;
}

.pvivo-landing-v02 .pvivo-hanging-menu ul{
  display:flex!important;
  flex-direction:column!important;
  gap:22px!important;
  list-style:none;
  margin:0;
  padding:0;
}

/* 
.pvivo-landing-v02 .pvivo-hanging-menu a{
  width:160px!important;
  min-height:92px!important;
  padding:10px;
  box-sizing:border-box;
  background:#fff;
  color:#111;
  border:0!important;
  box-shadow:0 12px 18px rgba(0,0,0,.30);
  rotate:0deg!important;
  transform:rotate(0deg)!important;
  animation:none!important;
  font-size:13px!important;
  line-height:1.18;
  font-weight:950;
  letter-spacing:.01em;
}
*/

.pvivo-landing-v02 .pvivo-hanging-menu a{
  width:185px!important;
  height:152px!important;
  min-height:132px!important;

  padding:30px 28px;
  box-sizing:border-box;

  background-color:transparent!important;
  background-image:url('../img/moldura-menu.png');
  background-repeat:no-repeat;
  background-position:center;
  background-size:100% 100%;

  color:#111;
  border:0!important;
  box-shadow:none!important;

  display:flex!important;
  align-items:center;
  justify-content:center;

  text-align:center;
  text-decoration:none;
  text-transform:uppercase;

  rotate:0deg!important;
  transform:rotate(0deg)!important;
  animation:none!important;

  font-size:12px!important;
  line-height:1.15;
  font-weight:950;
  letter-spacing:.01em;
}

.pvivo-landing-v02 .pvivo-hanging-menu a:hover,
.pvivo-landing-v02 .pvivo-hanging-menu a:focus-visible{
  transform:scale(1.04)!important;
  outline:2px solid rgba(255,255,255,.85);
  outline-offset:3px;
}

/* O botão Visitas Guiadas continua funcional, mas fica discreto para não duplicar o card do menu. */
.pvivo-landing-v02 .pvivo-visitas{
  position:absolute!important;
  right:2.7vw!important;
  bottom:24px!important;
  left:auto!important;
  width:auto!important;
  height:auto!important;
  min-width:108px;
  padding:10px 14px;
  border-radius:999px;
  background:#fff;
  color:#111;
  font-size:13px!important;
  font-weight:800;
  line-height:1.1;
  box-shadow:0 12px 24px rgba(0,0,0,.20);
  transform:none!important;
  z-index:25!important;
}

/* Como chegar permanece preservado, porém em posição inferior e sem interferir no hero. */
.pvivo-landing-v02 .pvivo-como-chegar{
  position:absolute!important;
  left:6.2vw!important;
  bottom:26px!important;
  width:min(760px, 58vw)!important;
  margin:0!important;
  display:flex;
  align-items:center;
  gap:12px;
  color:#fff;
  font-size:12px!important;
  line-height:1.25;
  font-weight:900;
  text-transform:uppercase;
  text-shadow:0 2px 6px rgba(0,0,0,.65);
  background:transparent!important;
  padding:0!important;
  z-index:22;
}

.pvivo-landing-v02 .pvivo-como-chegar img{
  width:50px;
  height:50px;
  border-radius:50%;
  background:#fff;
  object-fit:contain;
  flex:0 0 auto;
}

/* Acessibilidade reposicionada para dialogar com o novo hero. */
body:has(.pvivo-landing-v02) .pvivo-access-floating{
  top:84px;
  right:18px;
  z-index:1000;
}

/* Tablet */
@media(min-width:768px) and (max-width:1199px){
  .pvivo-landing-v02 .pvivo-brand-logo{
    width:clamp(330px, 50vw, 560px)!important;
    max-width:62vw!important;
  }

  .pvivo-landing-v02 .pvivo-hanging-menu{
    top:6px!important;
    left:840px!important;
    right:24px!important;
  }

  .pvivo-landing-v02 .pvivo-hanging-menu a{
    width:142px!important;
    min-height:78px!important;
    font-size:11px!important;
  }

  .pvivo-landing-v02 .pvivo-hanging-menu ul{
    gap:18px!important;
  }

  .pvivo-landing-v02 .pvivo-como-chegar{
    width:min(620px, 62vw)!important;
  }
}

/* Mobile */
@media(max-width:767px){
  .pvivo-landing-v02 .pvivo-top-highlights,
  .pvivo-landing-v02 .pvivo-top-highlights-inner,
  .pvivo-landing-v02 .pvivo-highlight-viewport,
  .pvivo-landing-v02 .pvivo-highlight-track{
    height:54px;
  }

  .pvivo-landing-v02 .pvivo-top-highlights-label{
    min-width:60px;
    height:80px;
    font-size:13px;
    padding:0 20px;
  }

  .pvivo-landing-v02 .pvivo-highlight-item{
    height:54px;
    font-size:14px;
    gap:0;
  }

  .pvivo-landing-v02 .pvivo-highlight-item img{
    width:46px;
    height:46px;
  }

  .pvivo-landing-v02 .pvivo-estrutura-wrap-v02,
  .pvivo-landing-v02 .pvivo-hero-fullscreen{
    min-height:auto;
  }

  .pvivo-landing-v02 .pvivo-hero-fullscreen{
    overflow:visible;
    padding-bottom:26px;
  }

  .pvivo-landing-v02 .pvivo-hero-bg{
    position:relative!important;
    height:62vh!important;
    min-height:440px;
  }

  .pvivo-landing-v02 .pvivo-hero-overlay{
    height:62vh;
    min-height:440px;
    bottom:auto;
  }

  .pvivo-landing-v02 .pvivo-hero-content-v02{
    position:absolute;
    inset:0;
  }

  .pvivo-landing-v02 .pvivo-logo-row{
    left:18px!important;
    top:10px!important;
  }

  .pvivo-landing-v02 .pvivo-brand-logo{
    width:min(78vw, 390px)!important;
    max-width:78vw!important;
  }

  .pvivo-landing-v02 .pvivo-hanging-menu{
    position:relative!important;
	left:20px !important;
    top:110px !important;
    right:auto!important;
    margin:22px auto 0!important;
    padding:0 18px;
    z-index:40!important;
  }

  .pvivo-landing-v02 .pvivo-hanging-menu ul{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:16px!important;
  }

  .pvivo-landing-v02 .pvivo-hanging-menu a{
    width:100%!important;
    min-height:86px!important;
    font-size:12px!important;
  }

  .pvivo-landing-v02 .pvivo-visitas{
    right:18px!important;
    bottom:18px!important;
    font-size:12px!important;
  }

  .pvivo-landing-v02 .pvivo-como-chegar{
    position:relative!important;
    left:auto!important;
    bottom:auto!important;
    width:auto!important;
    margin:18px 18px 0!important;
    color:#fff;
    font-size:11px!important;
  }

  body:has(.pvivo-landing-v02) .pvivo-access-floating{
    top:66px;
    right:10px;
  }
}

@supports not selector(body:has(.pvivo-landing-v02)){
  .pvivo-landing-v02{background:#000;}
}

/* ============================================================
   PATCH FINAL — BARRA "VIAGEM NO TEMPO"
   Objetivos:
   1. Manter o marquee contínuo com a lista duplicada no PHP.
   2. Exibir a moldura "Viagem no Tempo" em tamanho reduzido.
   3. Permitir que a moldura ultrapasse a barra para baixo.
   4. Preservar o recorte apenas na área móvel dos destaques.
   ============================================================ */

/* A lista duplicada no PHP exige deslocamento de somente 50%. */
@keyframes pvivoMarquee{
  0%{
    transform:translateX(0);
  }
  100%{
    transform:translateX(-50%);
  }
}

/* A barra externa precisa aceitar o vazamento vertical da moldura. */
.pvivo-landing-v02 .pvivo-top-highlights{
  position:relative!important;
  height:60px!important;
  min-height:60px!important;
  padding:0!important;
  overflow:visible!important;
  z-index:120!important;
}

/* O contêiner interno também não pode cortar a moldura. */
.pvivo-landing-v02 .pvivo-top-highlights-inner{
  position:relative!important;
  width:100%!important;
  height:60px!important;
  min-height:60px!important;
  display:flex!important;
  align-items:center!important;
  gap:0!important;
  overflow:visible!important;
}

/*
 * Área reservada para a moldura.
 * O tamanho desta área é independente do tamanho real da imagem.
 */
.pvivo-landing-v02 .pvivo-top-highlights-label{
  position:relative!important;
  flex:0 0 128px!important;
  width:128px!important;
  min-width:128px!important;
  max-width:128px!important;
  height:60px!important;
  min-height:60px!important;
  margin:60px !important;
  padding:0!important;
  display:block!important;
  overflow:visible!important;
  z-index:130!important;
}

/*
 * Moldura em tamanho semelhante à referência.
 * A imagem começa próxima ao topo da barra e ultrapassa a base.
 */
.pvivo-landing-v02 .pvivo-topbar-logo{
  position:absolute!important;
  top:-18px!important;
  left:110%!important;

  width:82px!important;
  min-width:82px!important;
  max-width:82px!important;
  height:auto!important;
  max-height:none!important;

  display:block!important;
  margin:20px !important;
  padding:0!important;

  transform:translateX(-50%)!important;
  transform-origin:center top!important;

  object-fit:contain!important;
  z-index:140!important;
}

/* Fallback textual quando não houver imagem configurada. */
.pvivo-landing-v02 .pvivo-topbar-text{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1.05;
}

/*
 * Somente o carrossel deve ser recortado horizontalmente.
 * A moldura fica fora deste viewport e pode vazar para baixo.
 */
.pvivo-landing-v02 .pvivo-highlight-viewport{
  position:relative!important;
  flex:1 1 auto!important;
  min-width:0!important;
  height:60px!important;
  overflow:hidden!important;
  z-index:121!important;
}

.pvivo-landing-v02 .pvivo-highlight-track{
  height:60px!important;
  display:flex!important;
  align-items:center!important;
  width:max-content!important;
  gap:62px!important;
  overflow:visible!important;
  animation-name:pvivoMarquee!important;
  animation-timing-function:linear!important;
  animation-iteration-count:infinite!important;
  will-change:transform;
}

/* Garante que o hero permaneça atrás da moldura vazada. */
.pvivo-landing-v02 .pvivo-estrutura-wrap-v02,
.pvivo-landing-v02 .pvivo-hero-fullscreen{
  position:relative;
  z-index:1;
}

/* Tablet */
@media(min-width:768px) and (max-width:1199px){
  .pvivo-landing-v02 .pvivo-top-highlights-label{
    flex-basis:112px!important;
    width:112px!important;
    min-width:112px!important;
    max-width:112px!important;
  }

  .pvivo-landing-v02 .pvivo-topbar-logo{
    width:76px!important;
    min-width:76px!important;
    max-width:76px!important;
    top:0!important;
  }
}

/* Mobile */
@media(max-width:767px){
  .pvivo-landing-v02 .pvivo-top-highlights,
  .pvivo-landing-v02 .pvivo-top-highlights-inner,
  .pvivo-landing-v02 .pvivo-highlight-viewport,
  .pvivo-landing-v02 .pvivo-highlight-track{
    height:54px!important;
    min-height:54px!important;
  }

  .pvivo-landing-v02 .pvivo-top-highlights-label{
    flex:0 0 76px!important;
    width:76px!important;
    min-width:76px!important;
    max-width:76px!important;
    height:54px!important;
    min-height:54px!important;
    margin:10px !important;
    padding:0!important;
  }

  .pvivo-landing-v02 .pvivo-topbar-logo{
    width:66px!important;
    min-width:66px!important;
    max-width:66px!important;
    top:0!important;
  }

  .pvivo-landing-v02 .pvivo-highlight-track{
    gap:28px!important;
  }

  .pvivo-landing-v02 .pvivo-highlight-item{
    gap:8px!important;
  }
}

/* Usuários que preferem menos movimento. */
@media(prefers-reduced-motion:reduce){
  .pvivo-landing-v02 .pvivo-highlight-track{
    animation:none!important;
    transform:none!important;
  }
}

/* ============================================================
   PATCH FINAL v2 — MARQUEE MULTINAVEGADOR E CUSTOMIZER
   ============================================================ */

/*
 * A sequência é duplicada no PHP. Por isso, o deslocamento correto
 * para uma repetição contínua e sem salto é -50%.
 */
@-webkit-keyframes pvivoMarquee{
  0%{
    -webkit-transform:translate3d(0,0,0);
    transform:translate3d(0,0,0);
  }
  100%{
    -webkit-transform:translate3d(-50%,0,0);
    transform:translate3d(-50%,0,0);
  }
}

@keyframes pvivoMarquee{
  0%{
    -webkit-transform:translate3d(0,0,0);
    transform:translate3d(0,0,0);
  }
  100%{
    -webkit-transform:translate3d(-50%,0,0);
    transform:translate3d(-50%,0,0);
  }
}

/* Não interromper o movimento ao passar o mouse ou tocar na barra. */
.pvivo-highlight-track:hover,
.pvivo-highlight-track:focus,
.pvivo-highlight-track:focus-within{
  -webkit-animation-play-state:running!important;
  animation-play-state:running!important;
}

/* Execução contínua no frontend, inclusive Safari e navegadores móveis. */
.pvivo-landing-v02 .pvivo-highlight-track{
  display:-webkit-box!important;
  display:-webkit-flex!important;
  display:flex!important;

  -webkit-box-align:center!important;
  -webkit-align-items:center!important;
  align-items:center!important;

  -webkit-flex-wrap:nowrap!important;
  flex-wrap:nowrap!important;

  width:-webkit-max-content!important;
  width:max-content!important;
  min-width:max-content!important;

  overflow:visible!important;

  -webkit-animation-name:pvivoMarquee!important;
  animation-name:pvivoMarquee!important;

  -webkit-animation-duration:var(--pvivo-topbar-speed-desktop,35s)!important;
  animation-duration:var(--pvivo-topbar-speed-desktop,35s)!important;

  -webkit-animation-timing-function:linear!important;
  animation-timing-function:linear!important;

  -webkit-animation-delay:0s!important;
  animation-delay:0s!important;

  -webkit-animation-iteration-count:infinite!important;
  animation-iteration-count:infinite!important;

  -webkit-animation-direction:normal!important;
  animation-direction:normal!important;

  -webkit-animation-fill-mode:none!important;
  animation-fill-mode:none!important;

  -webkit-animation-play-state:running!important;
  animation-play-state:running!important;

  -webkit-transform:translate3d(0,0,0);
  transform:translate3d(0,0,0);

  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;

  will-change:transform;
}

/*
 * O tamanho definido em Aparência > Personalizar é gravado na variável
 * inline --pvivo-topbar-logo-width. Não usar largura fixa aqui.
 */
.pvivo-landing-v02 .pvivo-topbar-logo{
  width:var(--pvivo-topbar-logo-width,82px)!important;
  min-width:0!important;
  max-width:none!important;
  height:auto!important;

  position:absolute!important;
  top:-1px!important;
  left:110%!important;

  margin:0px !important;
  padding:0!important;

  -webkit-transform:translateX(-50%)!important;
  transform:translateX(-50%)!important;
  -webkit-transform-origin:center top!important;
  transform-origin:center top!important;

  object-fit:contain!important;
  display:block!important;
  z-index:140!important;
}

/* A moldura pode ultrapassar a barra; somente os posts ficam recortados. */
.pvivo-landing-v02 .pvivo-top-highlights,
.pvivo-landing-v02 .pvivo-top-highlights-inner,
.pvivo-landing-v02 .pvivo-top-highlights-label{
  overflow:visible!important;
}

.pvivo-landing-v02 .pvivo-highlight-viewport{
  overflow:hidden!important;
  min-width:0!important;
  isolation:isolate;
}

/* Tablet */
@media(min-width:768px) and (max-width:1199px){
  .pvivo-landing-v02 .pvivo-highlight-track{
    -webkit-animation-duration:var(--pvivo-topbar-speed-tablet,32s)!important;
    animation-duration:var(--pvivo-topbar-speed-tablet,32s)!important;
  }
}

/* Mobile */
@media(max-width:767px){
  .pvivo-landing-v02 .pvivo-highlight-track{
    -webkit-animation-duration:var(--pvivo-topbar-speed-mobile,28s)!important;
    animation-duration:var(--pvivo-topbar-speed-mobile,28s)!important;
  }
}

/*
 * O requisito do projeto é movimento contínuo em todos os dispositivos.
 * Portanto, esta regra sobrescreve eventuais bloqueios anteriores por
 * prefers-reduced-motion presentes no arquivo.
 */
@media(prefers-reduced-motion:reduce){
  .pvivo-landing-v02 .pvivo-highlight-track{
    -webkit-animation-name:pvivoMarquee!important;
    animation-name:pvivoMarquee!important;
    -webkit-animation-iteration-count:infinite!important;
    animation-iteration-count:infinite!important;
    -webkit-animation-play-state:running!important;
    animation-play-state:running!important;
  }
}
/* Ícones das redes sociais */

.pvivo-footer-social-icons{

    display:flex;
    gap:10px;
    margin-top:10px;
    align-items:center;
}

.pvivo-footer-social-icons a{

    display:flex;
    align-items:center;
    justify-content:center;
    text-decoration:none;
}

.pvivo-footer-social-icons img{

    width:34px;
    height:34px;

    display:block;

    transition:transform .25s ease,
               opacity .25s ease;
}

.pvivo-footer-social-icons img:hover{

    transform:scale(1.20);

    opacity:.9;
}
/* ============================================================
   PATCH DEFINITIVO v3 — BARRA "VIAGEM NO TEMPO"
   Movimento contínuo + velocidades do Aparência > Personalizar
   Deve permanecer no FINAL deste arquivo.
   ============================================================ */

@-webkit-keyframes pvivoMarqueeContinuousV3{
  from{
    -webkit-transform:translate3d(0,0,0);
    transform:translate3d(0,0,0);
  }
  to{
    -webkit-transform:translate3d(-50%,0,0);
    transform:translate3d(-50%,0,0);
  }
}

@keyframes pvivoMarqueeContinuousV3{
  from{
    -webkit-transform:translate3d(0,0,0);
    transform:translate3d(0,0,0);
  }
  to{
    -webkit-transform:translate3d(-50%,0,0);
    transform:translate3d(-50%,0,0);
  }
}

/* O viewport é o único elemento que recorta a faixa móvel. */
.pvivo-landing-v02 .pvivo-highlight-viewport{
  position:relative!important;
  display:block!important;
  min-width:0!important;
  overflow:hidden!important;
  isolation:isolate;
}

/*
 * A track contém dois grupos idênticos gerados pelo PHP.
 * O gap fica nos grupos, e não na track, para que -50% termine
 * exatamente no início da segunda cópia, sem salto visual.
 */
.pvivo-landing-v02 .pvivo-highlight-track{
  display:-webkit-flex!important;
  display:flex!important;
  -webkit-flex-flow:row nowrap!important;
  flex-flow:row nowrap!important;
  -webkit-align-items:center!important;
  align-items:center!important;

  width:max-content!important;
  min-width:max-content!important;
  max-width:none!important;
  gap:0!important;
  overflow:visible!important;

  -webkit-animation-name:pvivoMarqueeContinuousV3!important;
  animation-name:pvivoMarqueeContinuousV3!important;
  -webkit-animation-duration:var(--pvivo-topbar-speed-desktop,35s)!important;
  animation-duration:var(--pvivo-topbar-speed-desktop,35s)!important;
  -webkit-animation-timing-function:linear!important;
  animation-timing-function:linear!important;
  -webkit-animation-delay:0s!important;
  animation-delay:0s!important;
  -webkit-animation-iteration-count:infinite!important;
  animation-iteration-count:infinite!important;
  -webkit-animation-direction:normal!important;
  animation-direction:normal!important;
  -webkit-animation-fill-mode:none!important;
  animation-fill-mode:none!important;
  -webkit-animation-play-state:running!important;
  animation-play-state:running!important;

  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
  will-change:transform;
}

/* Estrutura recomendada: dois .pvivo-highlight-group idênticos. */
.pvivo-landing-v02 .pvivo-highlight-group{
  display:-webkit-flex!important;
  display:flex!important;
  -webkit-flex-flow:row nowrap!important;
  flex-flow:row nowrap!important;
  -webkit-align-items:center!important;
  align-items:center!important;
  -webkit-flex:0 0 auto!important;
  flex:0 0 auto!important;
  gap:62px!important;
  padding-right:62px!important;
  box-sizing:border-box!important;
}

.pvivo-landing-v02 .pvivo-highlight-item{
  -webkit-flex:0 0 auto!important;
  flex:0 0 auto!important;
  white-space:nowrap!important;
}

/* Não pausa ao passar o mouse, focar ou tocar. */
.pvivo-landing-v02 .pvivo-highlight-track:hover,
.pvivo-landing-v02 .pvivo-highlight-track:focus,
.pvivo-landing-v02 .pvivo-highlight-track:focus-within,
.pvivo-landing-v02 .pvivo-highlight-track:active{
  -webkit-animation-play-state:running!important;
  animation-play-state:running!important;
}

/* Velocidade definida no Personalizar para tablet. */
@media (min-width:768px) and (max-width:1199px){
  .pvivo-landing-v02 .pvivo-highlight-track{
    -webkit-animation-duration:var(--pvivo-topbar-speed-tablet,32s)!important;
    animation-duration:var(--pvivo-topbar-speed-tablet,32s)!important;
  }

  .pvivo-landing-v02 .pvivo-highlight-group{
    gap:44px!important;
    padding-right:44px!important;
  }
}

/* Velocidade definida no Personalizar para celular. */
@media (max-width:767px){
  .pvivo-landing-v02 .pvivo-highlight-track{
    -webkit-animation-duration:var(--pvivo-topbar-speed-mobile,28s)!important;
    animation-duration:var(--pvivo-topbar-speed-mobile,28s)!important;
  }

  .pvivo-landing-v02 .pvivo-highlight-group{
    gap:28px!important;
    padding-right:28px!important;
  }
}

/* O requisito do projeto é manter esta faixa em movimento contínuo. */
@media (prefers-reduced-motion:reduce){
  .pvivo-landing-v02 .pvivo-highlight-track{
    -webkit-animation-name:pvivoMarqueeContinuousV3!important;
    animation-name:pvivoMarqueeContinuousV3!important;
    -webkit-animation-iteration-count:infinite!important;
    animation-iteration-count:infinite!important;
    -webkit-animation-play-state:running!important;
    animation-play-state:running!important;
  }
}
/* ========================================================
   FOOTER — CASA DE CULTURA JOSÉ BONIFÁCIO
   ======================================================== */

.pvivo-footer {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 28px 24px 14px;
    background: #000;
    color: #fff;
    box-sizing: border-box;
}

.pvivo-footer-inner {
    display: grid;

    /*
     * Logo
     * Como chegar
     * Memória 1
     * Memória 2
     * Institucional
     * Contato
     */
    grid-template-columns:
        80px
        minmax(150px, 1.15fr)
        minmax(145px, 1fr)
        minmax(175px, 1.15fr)
        minmax(140px, .9fr)
        minmax(145px, .95fr);

    column-gap: 22px;
    row-gap: 18px;

    width: 100%;
    max-width: 1380px;
    margin: 0 auto;

    align-items: start;
}

/* Logo principal */

.pvivo-footer-brand {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    padding-top: 1px;
}

.pvivo-footer-logo {
    display: block;
    width: 72px;
    height: 72px;
    max-width: none;
    object-fit: contain;
    background: #fff;
}

/* Colunas */

.pvivo-footer-column {
    min-width: 0;
}

.pvivo-footer-column h3 {
    margin: 0 0 14px;
    padding: 0;

    color: #fff;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    line-height: 1.2;
    font-weight: 700;

    text-transform: uppercase;
    letter-spacing: 0;
}

.pvivo-footer-column nav {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
}

/*
 * A segunda coluna de Memória começa no mesmo ponto
 * visual dos links da primeira coluna.
 */
.pvivo-footer-memory-continuation {
    padding-top: 32px;
}

/* Links e textos */

.pvivo-footer a,
.pvivo-footer p {
    font-family: Arial, Helvetica, sans-serif;
}

.pvivo-footer-column a {
    display: block;

    margin: 0;
    padding: 0;

    color: #fff;

    font-size: 13px;
    line-height: 1.56;
    font-weight: 600;

    text-decoration: none;

    overflow-wrap: anywhere;

    transition:
        color .18s ease,
        opacity .18s ease;
}

.pvivo-footer-column a:hover,
.pvivo-footer-column a:focus-visible {
    color: #f0d8a5;
    text-decoration: underline;
}

.pvivo-footer-location > a {
    margin-bottom: 10px;
}

.pvivo-footer-location strong {
    font-weight: 700;
}

.pvivo-footer-location span {
    display: block;
}

.pvivo-footer-email {
    font-size: 11px !important;
    line-height: 1.25 !important;
}

/* Contato e redes sociais */

.pvivo-footer-social-label {
    margin: 13px 0 7px;

    color: #fff;

    font-size: 12px;
    line-height: 1.2;
    font-weight: 600;
}

.pvivo-footer-social-icons {
    display: flex;
    align-items: center;
    gap: 8px;
}

.pvivo-footer-social-icons a {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 26px;
    height: 26px;
    padding: 0;

    border-radius: 4px;
}

.pvivo-footer-social-icons img {
    display: block;

    width: 22px;
    height: 22px;
    max-width: 22px;

    object-fit: contain;
}

/* Texto inferior */

.pvivo-footer-final {
    width: 100%;
    margin: 20px auto 0;
    padding: 0;

    color: #fff;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    line-height: 1.3;
    font-weight: 600;
    font-style: italic;

    text-align: center;
 
}

/* ========================================================
   TABLET
   ======================================================== */

@media (max-width: 1180px) {

    .pvivo-footer-inner {
        grid-template-columns:
            80px
            minmax(180px, 1.2fr)
            minmax(170px, 1fr)
            minmax(170px, 1fr);
    }

    .pvivo-footer-memory-continuation {
        padding-top: 32px;
    }

    .pvivo-footer-institutional {
        grid-column: 2;
    }

    .pvivo-footer-contact {
        grid-column: 3 / span 2;
    }
}

/* ========================================================
   TABLET PEQUENO
   ======================================================== */

@media (max-width: 820px) {

    .pvivo-footer {
        padding: 28px 22px 16px;
    }

    .pvivo-footer-inner {
        grid-template-columns:
            90px
            repeat(2, minmax(0, 1fr));

        column-gap: 24px;
        row-gap: 28px;
    }

    .pvivo-footer-brand {
        grid-row: 1;
    }

    .pvivo-footer-location {
        grid-column: 2;
    }

    .pvivo-footer-memory {
        grid-column: 3;
    }

    .pvivo-footer-memory-continuation {
        grid-column: 2;
        padding-top: 0;
    }

    .pvivo-footer-institutional {
        grid-column: 3;
    }

    .pvivo-footer-contact {
        grid-column: 2 / span 2;
    }

    .pvivo-footer-logo {
        width: 80px;
        height: 80px;
    }
}

/* ========================================================
   CELULAR
   ======================================================== */

@media (max-width: 580px) {

    .pvivo-footer {
        padding: 28px 20px 18px;
    }

    .pvivo-footer-inner {
        display: grid;
        grid-template-columns: 1fr;
        gap: 25px;
    }

    .pvivo-footer-brand,
    .pvivo-footer-location,
    .pvivo-footer-memory,
    .pvivo-footer-memory-continuation,
    .pvivo-footer-institutional,
    .pvivo-footer-contact {
        grid-column: 1;
        padding-top: 0;
    }

    .pvivo-footer-brand {
        justify-content: center;
    }

    .pvivo-footer-logo {
        width: 105px;
        height: 105px;
    }

    .pvivo-footer-column {
        text-align: left;
    }

    .pvivo-footer-column h3 {
        margin-bottom: 10px;
        font-size: 14px;
    }

    .pvivo-footer-column a {
        font-size: 14px;
        line-height: 1.65;
    }

    .pvivo-footer-column nav {
        gap: 7px;
    }

    .pvivo-footer-social-icons a {
        width: 30px;
        height: 30px;
    }

    .pvivo-footer-social-icons img {
        width: 24px;
        height: 24px;
        max-width: 24px;
    }

    .pvivo-footer-final {
        margin-top: 28px;
        font-size: 10px;
    }
}

/* ============================================================
   PATCH v4.0 — MENU PRINCIPAL RESPONSIVO À ALTURA DO VIEWPORT
   Escopo: somente a Landing Page Estrutura marcada com
   .pvivo-menu-viewport-fit.

   Objetivos:
   - manter TODOS os quadros do Menu Principal visíveis;
   - preservar a proporção original da moldura (185 x 152);
   - reagir à altura útil real do navegador/dispositivo;
   - não depender de F11, maximização ou resolução fixa;
   - manter o menu dinâmico do WordPress, sem hardcode de itens.
   ============================================================ */

/* O hero passa a usar a altura dinâmica visível quando suportada. */
@supports (height: 100dvh){
  .pvivo-menu-viewport-fit .pvivo-estrutura-wrap-v02{
    min-height:calc(100dvh - 60px)!important;
  }

  .pvivo-menu-viewport-fit .pvivo-hero-fullscreen{
    min-height:calc(100dvh - 60px)!important;
    height:calc(100dvh - 60px)!important;
  }
}

/* Desktop e tablet: coluna à direita, como na referência F11. */
@media (min-width:768px){
  .pvivo-menu-viewport-fit .pvivo-hanging-menu{
    position:absolute!important;
    top:clamp(10px,2.2vh,32px)!important;
    right:clamp(10px,2.7vw,44px)!important;
    bottom:clamp(10px,1.8vh,22px)!important;
    left:auto!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    z-index:40!important;
  }

  .pvivo-menu-viewport-fit .pvivo-hanging-menu ul{
    height:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    display:flex!important;
    flex-direction:column!important;
    flex-wrap:nowrap!important;
    justify-content:stretch!important;
    align-items:flex-end!important;
    gap:clamp(6px,1.7vh,22px)!important;
  }

  /*
   * Cada LI recebe uma fração igual da altura disponível.
   * Isso torna a solução independente da quantidade de itens do menu.
   */
  .pvivo-menu-viewport-fit .pvivo-hanging-menu li{
    flex:1 1 0!important;
    min-height:0!important;
    min-width:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    margin:0!important;
    padding:0!important;
  }

  .pvivo-menu-viewport-fit .pvivo-hanging-menu a{
    /* relação visual da moldura original: 185 / 152 */
    aspect-ratio:185 / 152!important;
    height:min(100%,152px)!important;
    width:auto!important;
    max-width:185px!important;
    min-height:0!important;
    min-width:0!important;

    padding:clamp(8px,2.6vh,30px) clamp(8px,1.8vw,28px)!important;
    box-sizing:border-box!important;

    display:flex!important;
    align-items:center!important;
    justify-content:center!important;

    font-size:clamp(9px,1.25vh,12px)!important;
    line-height:1.12!important;
    overflow:hidden!important;
  }
}

/*
 * Desktop baixo (janela não maximizada, notebook, navegador com barras):
 * reduz moldura e espaçamento pela ALTURA, não só pela largura.
 */
@media (min-width:768px) and (max-height:760px){
  .pvivo-menu-viewport-fit .pvivo-hanging-menu{
    top:8px!important;
    bottom:8px!important;
  }

  .pvivo-menu-viewport-fit .pvivo-hanging-menu ul{
    gap:6px!important;
  }

  .pvivo-menu-viewport-fit .pvivo-hanging-menu a{
    max-height:118px!important;
    max-width:144px!important;
    padding:10px 14px!important;
    font-size:clamp(8px,1.35vh,10px)!important;
  }
}

/* Telas muito baixas em orientação paisagem. */
@media (min-width:768px) and (max-height:620px){
  .pvivo-menu-viewport-fit .pvivo-hanging-menu a{
    max-height:92px!important;
    max-width:112px!important;
    padding:7px 9px!important;
    font-size:8px!important;
  }
}

/* Mobile: todos os quadros permanecem dentro da primeira área útil. */
@media (max-width:767px){
  @supports (height: 100dvh){
    .pvivo-menu-viewport-fit .pvivo-hero-fullscreen{
      min-height:calc(100dvh - 54px)!important;
      height:calc(100dvh - 54px)!important;
      padding-bottom:0!important;
      overflow:hidden!important;
    }

    .pvivo-menu-viewport-fit .pvivo-hero-bg,
    .pvivo-menu-viewport-fit .pvivo-hero-overlay{
      height:100%!important;
      min-height:0!important;
    }
  }

  .pvivo-menu-viewport-fit .pvivo-hanging-menu{
    position:absolute!important;
    left:clamp(12px,4vw,24px)!important;
    right:clamp(12px,4vw,24px)!important;
    top:clamp(235px,32vh,360px)!important;
    bottom:max(14px,env(safe-area-inset-bottom))!important;
    width:auto!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    z-index:40!important;
  }

  .pvivo-menu-viewport-fit .pvivo-hanging-menu ul{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-auto-rows:minmax(0,1fr)!important;
    align-items:center!important;
    justify-items:center!important;
    gap:clamp(8px,1.6vh,18px) clamp(12px,4vw,28px)!important;
  }

  .pvivo-menu-viewport-fit .pvivo-hanging-menu li{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }

  /* Se houver quantidade ímpar, o último quadro fica centralizado. */
  .pvivo-menu-viewport-fit .pvivo-hanging-menu li:last-child:nth-child(odd){
    grid-column:1 / -1!important;
    width:50%!important;
  }

  .pvivo-menu-viewport-fit .pvivo-hanging-menu a{
    aspect-ratio:185 / 152!important;
    width:min(100%,clamp(112px,34vw,190px))!important;
    height:auto!important;
    max-height:100%!important;
    min-height:0!important;
    padding:clamp(9px,2.2vh,20px) clamp(8px,3vw,18px)!important;
    box-sizing:border-box!important;
    font-size:clamp(10px,3.1vw,14px)!important;
    line-height:1.08!important;
    overflow:hidden!important;
  }
}

/* Celular baixo: libera mais altura para o menu. */
@media (max-width:767px) and (max-height:780px){
  .pvivo-menu-viewport-fit .pvivo-hanging-menu{
    top:clamp(190px,28vh,250px)!important;
  }

  .pvivo-menu-viewport-fit .pvivo-hanging-menu ul{
    gap:6px 12px!important;
  }

  .pvivo-menu-viewport-fit .pvivo-hanging-menu a{
    width:min(100%,132px)!important;
    font-size:10px!important;
    padding:8px 10px!important;
  }
}

/* Evita que o botão flutuante cubra o último quadro. */
.pvivo-menu-viewport-fit ~ .pvivo-float-nav,
body:has(.pvivo-menu-viewport-fit) .pvivo-float-nav{
  z-index:150!important;
}
/* ============================================================
   PATCH v4.1
   MOBILE — POSIÇÃO VERTICAL DA LOGO PRINCIPAL
   ============================================================ */

@media (max-width: 767px) {

    /*
     * Abaixa a logo principal do Museu.
     * Quanto MAIOR o valor de top, mais para BAIXO ela ficará.
     */
    .pvivo-menu-viewport-fit .pvivo-main-logo {
        top: 245px !important;
        left: 150% !important;

        transform: translateX(-50%) !important;

        width: min(82vw, 560px) !important;
        max-width: 82vw !important;

        z-index: 135 !important;
    }

    /*
     * Mantém os quadros do menu abaixo da área reservada
     * para a identidade visual.
     */
    .pvivo-menu-viewport-fit .pvivo-hanging-menu {
        z-index: 40 !important;
    }
}