/*
 * Guia de Pipa® — V18 Hero Route Layout
 * Conversão integrada ao Hero e composição editorial em duas colunas.
 */

:root{
  --gpx-bg:#061a2b;
  --gpx-panel:#0b2438;
  --gpx-panel-deep:#071a2a;
  --gpx-line:rgba(255,255,255,.14);
  --gpx-text:#fffaf2;
  --gpx-muted:rgba(255,255,255,.72);
  --gpx-gold:#f2b11f;
  --gpx-teal:#25c2d8;
  --gpx-green:#0f766e;
  --gpx-purple:#b779d1;
}

main.page{
  box-sizing:border-box;
}

.gp-layout-columns,
.gp-layout-column{
  min-width:0;
}

.gp-layout-column > *{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  box-sizing:border-box!important;
}

/* =========================================================
   Como chegar integrado à distância no Hero
   ========================================================= */

.hero .hero-route-cta{
  width:max-content!important;
  max-width:100%!important;
  min-height:58px!important;
  margin-top:14px!important;
  padding:9px 12px 9px 10px!important;
  border:1px solid rgba(242,177,31,.82)!important;
  border-radius:999px!important;
  display:grid!important;
  grid-template-columns:38px minmax(0,1fr) 26px!important;
  align-items:center!important;
  gap:10px!important;
  color:#fff!important;
  background:
    linear-gradient(135deg,rgba(15,118,110,.96),rgba(8,65,72,.96))!important;
  box-shadow:
    0 12px 28px rgba(0,0,0,.27),
    inset 0 1px 0 rgba(255,255,255,.13)!important;
  text-decoration:none!important;
  cursor:pointer!important;
  transition:transform .18s ease,filter .18s ease,border-color .18s ease!important;
}

.hero .hero-route-cta:hover{
  transform:translateY(-2px)!important;
  filter:brightness(1.08)!important;
  border-color:var(--gpx-gold)!important;
}

.hero .hero-route-cta__icon{
  width:38px!important;
  height:38px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:50%!important;
  color:#092034!important;
  background:var(--gpx-gold)!important;
  font-size:20px!important;
}

.hero .hero-route-cta__copy{
  min-width:0!important;
  display:grid!important;
  gap:1px!important;
  text-align:left!important;
}

.hero .hero-route-cta__copy strong{
  overflow:hidden!important;
  color:#fff!important;
  font-size:14px!important;
  line-height:1.2!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

.hero .hero-route-cta__copy small{
  color:rgba(255,255,255,.72)!important;
  font-size:11px!important;
  font-weight:700!important;
  line-height:1.15!important;
}

.hero .hero-route-cta__arrow{
  color:var(--gpx-gold)!important;
  font-size:21px!important;
  font-weight:900!important;
}

/* =========================================================
   Painéis
   ========================================================= */

.gp-experience-section,
.gp-layout-column > .about-card,
.gp-layout-column > .gallery-section,
.gp-layout-column > .info-card,
.gp-layout-column > .benefit-detail-card,
.gp-layout-column > .action-grid,
.gp-layout-column > .gp-semantic,
.gp-layout-column > .related-section,
.gp-layout-column > .gp-eeat{
  border:1px solid var(--gpx-line)!important;
  border-radius:24px!important;
  color:var(--gpx-text)!important;
  background:
    radial-gradient(circle at 88% 12%,rgba(37,194,216,.07),transparent 34%),
    linear-gradient(145deg,var(--gpx-panel),var(--gpx-panel-deep))!important;
  box-shadow:
    0 18px 44px rgba(0,0,0,.23),
    inset 0 1px 0 rgba(255,255,255,.025)!important;
}

.gp-layout-column > .about-card,
.gp-layout-column > .gallery-section,
.gp-layout-column > .info-card,
.gp-layout-column > .benefit-detail-card{
  padding:22px!important;
}

.gp-layout-column > .about-card h2,
.gp-layout-column > .about-card p,
.gp-layout-column > .gallery-section h2,
.gp-layout-column > .gallery-section p,
.gp-layout-column > .info-card h2,
.gp-layout-column > .info-card p{
  color:var(--gpx-text)!important;
}

.gp-layout-column > .info-card{
  border-color:rgba(242,177,31,.4)!important;
}

/* Galeria */

.gp-layout-column > .gallery-section .gallery-slider{
  width:100%!important;
  max-width:none!important;
  gap:12px!important;
}

.gp-layout-column > .gallery-section .gallery-slider figure{
  min-width:min(76vw,340px)!important;
  border-radius:17px!important;
  overflow:hidden!important;
}

.gp-layout-column > .gallery-section img{
  width:100%!important;
  height:auto!important;
  object-fit:cover!important;
}

/* Vídeo / Streetview / Tour */

.gp-experience-section{
  padding:21px!important;
}

.gp-experience-heading{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:start!important;
  gap:16px!important;
  margin-bottom:16px!important;
}

.gp-experience-heading h2{
  margin:7px 0 9px!important;
  color:var(--gpx-text)!important;
  font-size:clamp(1.55rem,3vw,2.25rem)!important;
  line-height:1.04!important;
  letter-spacing:-.035em!important;
}

.gp-experience-heading p{
  color:var(--gpx-muted)!important;
}

.gp-experience-kicker{
  margin:0!important;
  color:var(--gpx-gold)!important;
  font-size:11px!important;
  font-weight:900!important;
  letter-spacing:.13em!important;
  text-transform:uppercase!important;
}

.gp-experience-badge,
.gp-experience-link{
  padding:9px 12px!important;
  border:1px solid rgba(255,255,255,.13)!important;
  border-radius:999px!important;
  color:var(--gpx-text)!important;
  background:rgba(255,255,255,.055)!important;
  font-size:12px!important;
  font-weight:900!important;
  text-decoration:none!important;
}

.gp-streetview-section{
  border-color:rgba(242,177,31,.54)!important;
}

.gp-tour-section .gp-experience-kicker{
  color:var(--gpx-teal)!important;
}

.gp-video-launcher,
.gp-video-frame,
.gp-native-video,
.gp-streetview-frame,
.gp-tour-preview{
  width:100%!important;
  max-width:none!important;
  border:1px solid rgba(255,255,255,.12)!important;
  border-radius:18px!important;
  overflow:hidden!important;
  background:#020b12!important;
}

.gp-video-launcher{
  position:relative!important;
  aspect-ratio:16/9!important;
  padding:0!important;
}

.gp-video-launcher img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}

.gp-video-launcher__play{
  position:absolute!important;
  inset:50% auto auto 50%!important;
  z-index:2!important;
  width:66px!important;
  height:66px!important;
  transform:translate(-50%,-50%)!important;
  display:grid!important;
  place-items:center!important;
  border:2px solid var(--gpx-gold)!important;
  border-radius:50%!important;
  color:#fff!important;
  background:rgba(5,16,26,.8)!important;
}

.gp-video-frame,
.gp-native-video{
  aspect-ratio:16/9!important;
}

.gp-streetview-frame{
  min-height:390px!important;
}

.gp-streetview-frame iframe,
.gp-streetview-frame embed,
.gp-streetview-frame object{
  width:100%!important;
  height:440px!important;
  min-height:390px!important;
  display:block!important;
  border:0!important;
}

.gp-tour-preview{
  position:relative!important;
  min-height:280px!important;
  display:block!important;
}

/* Contatos e Perfil */

.gp-experience-contact-panel{
  padding:18px!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
}

.gp-experience-contact-panel::before{
  content:"Informações e contato";
  grid-column:1 / -1;
  color:var(--gpx-gold);
  font-size:11px;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.gp-experience-contact-panel .mini-card{
  min-height:92px!important;
  border:1px solid rgba(255,255,255,.14)!important;
  border-radius:16px!important;
  color:var(--gpx-text)!important;
  background:rgba(255,255,255,.04)!important;
  box-shadow:none!important;
}

.gp-experience-profile{
  border-color:rgba(183,121,209,.3)!important;
  background:
    linear-gradient(145deg,rgba(26,31,59,.96),rgba(8,24,39,.98))!important;
  opacity:.94!important;
}

/* =========================================================
   Desktop
   Esquerda: Hero, Sobre, Endereço
   Direita: Galeria, Vídeo, Streetview, Tour, Contato...
   ========================================================= */

@media(min-width:980px){
  main.page{
    width:min(100% - 40px,1480px)!important;
    max-width:1480px!important;
    margin-inline:auto!important;
  }

  .gp-layout-columns{
    display:grid!important;
    grid-template-columns:minmax(0,.96fr) minmax(520px,1.04fr)!important;
    gap:24px!important;
    align-items:start!important;
  }

  .gp-layout-column{
    display:grid!important;
    gap:18px!important;
    align-content:start!important;
  }

  .gp-layout-column--left > .hero{
    min-height:700px!important;
  }
}

/* =========================================================
   Mobile
   Hero, Sobre, Endereço, Galeria, Vídeo, Streetview...
   ========================================================= */

@media(max-width:979px){
  main.page{
    width:100%!important;
    max-width:560px!important;
    margin-inline:auto!important;
  }

  .gp-layout-columns{
    display:flex!important;
    flex-direction:column!important;
    gap:18px!important;
  }

  .gp-layout-column{
    display:contents!important;
  }

  .gp-layout-column > *{
    width:100%!important;
    margin:0!important;
  }

  .gp-experience-heading{
    grid-template-columns:1fr!important;
  }

  .gp-streetview-frame,
  .gp-streetview-frame iframe,
  .gp-streetview-frame embed,
  .gp-streetview-frame object{
    min-height:320px!important;
    height:320px!important;
  }

  .gp-experience-contact-panel{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media(max-width:560px){
  .hero .hero-route-cta{
    width:100%!important;
  }

  .gp-experience-contact-panel{
    grid-template-columns:1fr!important;
  }
}


/* =========================================================
   V18.1 — Hero CTA em largura total
   ========================================================= */

.hero .hero-route-cta{
  width:100%!important;
  max-width:none!important;
  min-height:64px!important;
  padding:10px 14px 10px 11px!important;
  grid-template-columns:42px minmax(0,1fr) 30px!important;
  gap:11px!important;
  border-radius:20px!important;
}

.hero .hero-route-cta__icon{
  width:42px!important;
  height:42px!important;
}

.hero .hero-route-cta__copy strong{
  font-size:15px!important;
}

.hero .hero-route-cta__copy small{
  font-size:12px!important;
}

.hero .hero-route-cta__arrow{
  text-align:center!important;
  font-size:24px!important;
}

/* =========================================================
   V18.1 — Galeria editorial estável
   Impede a coluna direita de crescer pelo tamanho intrínseco
   das imagens e cria uma apresentação em três cartões.
   ========================================================= */

.gp-layout-columns,
.gp-layout-column,
.gp-layout-column--right,
.gp-layout-column > .gallery-section,
.gp-layout-column > .gallery-section .gallery-slider{
  min-width:0!important;
  max-width:100%!important;
}

.gp-layout-column > .gallery-section{
  position:relative!important;
  overflow:hidden!important;
  padding:20px!important;
}

.gp-layout-column > .gallery-section .gallery-heading{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:16px!important;
  margin-bottom:15px!important;
}

.gp-layout-column > .gallery-section .gallery-heading h2{
  margin:3px 0 0!important;
  color:var(--gpx-text)!important;
  font-size:clamp(1.35rem,2vw,1.8rem)!important;
  line-height:1.05!important;
}

.gp-layout-column > .gallery-section .gallery-heading > span{
  flex:0 0 auto!important;
  padding:7px 10px!important;
  border:1px solid rgba(255,255,255,.13)!important;
  border-radius:999px!important;
  color:rgba(255,255,255,.76)!important;
  background:rgba(255,255,255,.045)!important;
  font-size:11px!important;
  font-weight:800!important;
}

.gp-layout-column > .gallery-section .gallery-slider{
  width:100%!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  grid-auto-flow:row!important;
  grid-auto-columns:auto!important;
  gap:12px!important;
  overflow:visible!important;
  scroll-snap-type:none!important;
  scrollbar-width:none!important;
}

.gp-layout-column > .gallery-section .gallery-slider::-webkit-scrollbar{
  display:none!important;
}

.gp-layout-column > .gallery-section .gallery-slider figure{
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
  display:block!important;
}

.gp-layout-column > .gallery-section .gallery-thumb{
  position:relative!important;
  width:100%!important;
  aspect-ratio:4/3!important;
  padding:0!important;
  border:1px solid rgba(255,255,255,.13)!important;
  border-radius:16px!important;
  overflow:hidden!important;
  background:#071522!important;
  box-shadow:0 10px 24px rgba(0,0,0,.18)!important;
}

.gp-layout-column > .gallery-section .gallery-thumb img{
  width:100%!important;
  height:100%!important;
  display:block!important;
  object-fit:cover!important;
  transition:transform .28s ease!important;
}

.gp-layout-column > .gallery-section .gallery-thumb:hover img{
  transform:scale(1.035)!important;
}

.gp-layout-column > .gallery-section .gallery-zoom{
  position:absolute!important;
  right:9px!important;
  top:9px!important;
  width:28px!important;
  height:28px!important;
  display:grid!important;
  place-items:center!important;
  border:1px solid rgba(255,255,255,.25)!important;
  border-radius:50%!important;
  color:#fff!important;
  background:rgba(5,17,28,.72)!important;
  backdrop-filter:blur(8px)!important;
  font-size:15px!important;
}

.gp-layout-column > .gallery-section .gallery-slider figcaption{
  display:none!important;
}

.gp-gallery-dots{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  margin-top:13px;
}

.gp-gallery-dot{
  width:7px;
  height:7px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.32);
}

.gp-gallery-dot.is-active{
  width:9px;
  height:9px;
  background:var(--gpx-gold);
}

/* Em desktop mostramos três imagens; as seguintes ficam disponíveis
   no lightbox sem alterar a largura da coluna. */
@media(min-width:980px){
  .gp-layout-column > .gallery-section .gallery-slider figure:nth-child(n+4){
    display:none!important;
  }
}

/* =========================================================
   Mobile — galeria horizontal compacta como no mockup
   ========================================================= */

@media(max-width:979px){
  .gp-layout-column > .gallery-section{
    padding:16px!important;
  }

  .gp-layout-column > .gallery-section .gallery-slider{
    display:flex!important;
    gap:9px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x mandatory!important;
    overscroll-behavior-inline:contain!important;
    padding-bottom:3px!important;
  }

  .gp-layout-column > .gallery-section .gallery-slider figure{
    flex:0 0 30%!important;
    min-width:94px!important;
    scroll-snap-align:start!important;
  }

  .gp-layout-column > .gallery-section .gallery-thumb{
    aspect-ratio:1/1!important;
    border-radius:12px!important;
  }

  .gp-layout-column > .gallery-section .gallery-heading > span{
    font-size:10px!important;
  }
}

@media(max-width:560px){
  .gp-layout-column > .gallery-section .gallery-slider figure{
    flex-basis:31.5%!important;
  }

  .hero .hero-route-cta{
    min-height:62px!important;
  }
}


/* =========================================================
   V18.2 — Conversão, ordem editorial, modal de vídeo e FAB
   ========================================================= */

/* CTA de rota: função primeiro, distância como apoio */
.hero .hero-route-cta{
  min-height:78px!important;
  padding:12px 15px 12px 12px!important;
  grid-template-columns:46px minmax(0,1fr) 34px!important;
  gap:12px!important;
  border-radius:20px!important;
  border-color:rgba(242,177,31,.96)!important;
  background:
    linear-gradient(135deg,rgba(15,118,110,.98),rgba(6,67,75,.98))!important;
}

.hero .hero-route-cta__icon{
  width:46px!important;
  height:46px!important;
  font-size:22px!important;
}

.hero .hero-route-cta__copy{
  gap:3px!important;
}

.hero .hero-route-cta__copy strong{
  color:#fff!important;
  font-size:16px!important;
  font-weight:900!important;
  letter-spacing:.035em!important;
  text-transform:uppercase!important;
  white-space:normal!important;
}

.hero .hero-route-cta__copy small{
  color:var(--gpx-gold)!important;
  font-size:12px!important;
  font-weight:850!important;
  line-height:1.2!important;
}

.hero .hero-route-cta__arrow{
  width:34px!important;
  height:34px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:50%!important;
  color:#092034!important;
  background:var(--gpx-gold)!important;
  font-size:21px!important;
}

/* Perfil na coluna esquerda */
.gp-layout-column--left > .gp-experience-profile{
  margin-top:0!important;
}

/* Encerramento editorial em largura total */
.gp-layout-closing{
  width:100%!important;
  margin-top:20px!important;
  display:grid!important;
  gap:16px!important;
}

.gp-layout-closing > .gp-eeat{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  box-sizing:border-box!important;
  padding:24px!important;
  border:1px solid rgba(242,177,31,.34)!important;
  border-radius:22px!important;
  background:
    radial-gradient(circle at 92% 12%,rgba(37,194,216,.08),transparent 32%),
    linear-gradient(145deg,var(--gpx-panel),var(--gpx-panel-deep))!important;
  box-shadow:0 18px 44px rgba(0,0,0,.2)!important;
}

.gp-layout-closing > .footer{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
}

/* Endereço mais legível */
.gp-layout-column--left > .info-card{
  padding:23px!important;
}
.gp-layout-column--left > .info-card h2{
  margin:.35rem 0 .5rem!important;
  font-size:1.28rem!important;
}
.gp-layout-column--left > .info-card p{
  font-size:.96rem!important;
  line-height:1.55!important;
}

/* Modal de vídeo */
.gp-video-modal{
  position:fixed!important;
  inset:0!important;
  z-index:99998!important;
  display:none!important;
  place-items:center!important;
  padding:24px!important;
}
.gp-video-modal.is-open{
  display:grid!important;
}
.gp-video-modal__backdrop{
  position:absolute!important;
  inset:0!important;
  border:0!important;
  background:rgba(1,9,16,.88)!important;
  backdrop-filter:blur(8px)!important;
  cursor:pointer!important;
}
.gp-video-modal__dialog{
  position:relative!important;
  z-index:1!important;
  width:min(94vw,980px)!important;
  max-height:90vh!important;
  overflow:hidden!important;
  border:1px solid rgba(255,255,255,.18)!important;
  border-radius:22px!important;
  background:#061a2b!important;
  box-shadow:0 30px 90px rgba(0,0,0,.55)!important;
}
.gp-video-modal__header{
  min-height:58px!important;
  padding:13px 62px 13px 18px!important;
  display:flex!important;
  align-items:center!important;
  border-bottom:1px solid rgba(255,255,255,.12)!important;
}
.gp-video-modal__header strong{
  color:#fff!important;
  font-size:15px!important;
}
.gp-video-modal__close{
  position:absolute!important;
  top:10px!important;
  right:10px!important;
  z-index:2!important;
  width:38px!important;
  height:38px!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  border:1px solid rgba(255,255,255,.18)!important;
  border-radius:50%!important;
  color:#fff!important;
  background:rgba(255,255,255,.08)!important;
  font-size:25px!important;
  line-height:1!important;
  cursor:pointer!important;
}
.gp-video-modal__frame{
  width:100%!important;
  aspect-ratio:16/9!important;
  display:block!important;
  border:0!important;
  background:#000!important;
}
body.gp-video-modal-open{
  overflow:hidden!important;
}

/* Botão voltar ao topo: corrige regras globais de width:100% */
#backToTop,
#back-to-top,
#scrollTop,
#scroll-top,
.back-to-top,
.back-to-top-button,
.scroll-to-top,
.scroll-top,
.to-top,
.gp-back-to-top,
[data-back-to-top]{
  position:fixed!important;
  right:20px!important;
  bottom:20px!important;
  left:auto!important;
  top:auto!important;
  z-index:99990!important;
  width:48px!important;
  min-width:48px!important;
  max-width:48px!important;
  height:48px!important;
  min-height:48px!important;
  max-height:48px!important;
  padding:0!important;
  margin:0!important;
  display:grid!important;
  place-items:center!important;
  border:1px solid rgba(242,177,31,.72)!important;
  border-radius:50%!important;
  color:#fff!important;
  background:rgba(15,118,110,.96)!important;
  box-shadow:0 12px 30px rgba(0,0,0,.32)!important;
  overflow:hidden!important;
  text-indent:-9999px!important;
  font-size:0!important;
}
#backToTop::before,
#back-to-top::before,
#scrollTop::before,
#scroll-top::before,
.back-to-top::before,
.back-to-top-button::before,
.scroll-to-top::before,
.scroll-top::before,
.to-top::before,
.gp-back-to-top::before,
[data-back-to-top]::before{
  content:"↑"!important;
  text-indent:0!important;
  font-size:22px!important;
  font-weight:900!important;
  line-height:1!important;
}

@media(max-width:979px){
  .gp-layout-closing{
    margin-top:0!important;
  }
  .gp-video-modal{
    padding:12px!important;
  }
  .gp-video-modal__dialog{
    width:100%!important;
    border-radius:18px!important;
  }
}

@media(max-width:560px){
  .hero .hero-route-cta{
    min-height:74px!important;
  }
  #backToTop,
  #back-to-top,
  #scrollTop,
  #scroll-top,
  .back-to-top,
  .back-to-top-button,
  .scroll-to-top,
  .scroll-top,
  .to-top,
  .gp-back-to-top,
  [data-back-to-top]{
    right:14px!important;
    bottom:14px!important;
    width:46px!important;
    min-width:46px!important;
    max-width:46px!important;
    height:46px!important;
    min-height:46px!important;
    max-height:46px!important;
  }
}


/* =========================================================
   V18.2.1 — Hero inferior + correção definitiva do botão topo
   ========================================================= */

/* A imagem ganha protagonismo; todo o conteúdo editorial fica ancorado
   na faixa inferior do Hero. */
.hero{
  position:relative!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-end!important;
  align-items:stretch!important;
  overflow:hidden!important;
}

.hero__image{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
}

.hero__content{
  position:relative!important;
  z-index:2!important;
  width:100%!important;
  max-width:none!important;
  margin-top:auto!important;
  padding-top:clamp(220px,42vh,430px)!important;
  padding-bottom:clamp(24px,4vw,42px)!important;
  align-self:flex-end!important;
  box-sizing:border-box!important;
}

/* Gradiente mais concentrado na base: preserva a leitura sem escurecer
   desnecessariamente a parte superior da fotografia. */
.hero::after{
  content:""!important;
  position:absolute!important;
  z-index:1!important;
  inset:28% 0 0!important;
  pointer-events:none!important;
  background:linear-gradient(
    180deg,
    rgba(4,20,35,0) 0%,
    rgba(4,20,35,.22) 24%,
    rgba(4,20,35,.78) 66%,
    rgba(4,20,35,.96) 100%
  )!important;
}

/* O bloco de rota passa a ser um CTA horizontal inequívoco e estável. */
.hero .hero-route-cta{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  min-height:76px!important;
  margin:18px 0 0!important;
  padding:11px 14px 11px 12px!important;
  grid-template-columns:48px minmax(0,1fr) 42px!important;
  gap:13px!important;
  border-radius:20px!important;
  box-sizing:border-box!important;
}

.hero .hero-route-cta__icon{
  width:48px!important;
  height:48px!important;
  min-width:48px!important;
  border-radius:50%!important;
  font-size:22px!important;
  line-height:1!important;
}

.hero .hero-route-cta__copy{
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:3px!important;
  overflow:visible!important;
  white-space:normal!important;
}

.hero .hero-route-cta__copy strong{
  width:auto!important;
  max-width:100%!important;
  overflow:visible!important;
  color:#fff!important;
  font-size:clamp(17px,2.3vw,21px)!important;
  font-weight:900!important;
  line-height:1.02!important;
  letter-spacing:.01em!important;
  text-transform:uppercase!important;
  text-overflow:clip!important;
  white-space:normal!important;
}

.hero .hero-route-cta__copy small{
  width:auto!important;
  max-width:100%!important;
  color:rgba(255,255,255,.82)!important;
  font-size:clamp(12px,1.6vw,14px)!important;
  font-weight:700!important;
  line-height:1.25!important;
  white-space:normal!important;
}

.hero .hero-route-cta__arrow{
  width:38px!important;
  height:38px!important;
  display:grid!important;
  place-items:center!important;
  justify-self:end!important;
  border-radius:50%!important;
  color:#092034!important;
  background:var(--gpx-gold)!important;
  font-size:20px!important;
  line-height:1!important;
}

/* Visitas permanece visualmente ligado ao conjunto inferior. */
.hero .visit-counter{
  margin-top:14px!important;
}

/* Correção abrangente para qualquer nomenclatura usada pelo botão
   de retorno ao topo no tema principal ou por plugins. */
#backToTop,
#back-to-top,
#backTop,
#btnTop,
#btn-top,
#btnTopo,
#btn-topo,
#scrollTop,
#scroll-top,
#scrollToTop,
#goTop,
#go-top,
.back-to-top,
.back-to-top-button,
.backTop,
.btn-top,
.btn-topo,
.scroll-to-top,
.scroll-top,
.scrollTop,
.to-top,
.go-top,
.gp-back-to-top,
[data-back-to-top],
[data-scroll-top],
[aria-label*="topo" i],
[title*="topo" i]{
  position:fixed!important;
  right:18px!important;
  bottom:18px!important;
  left:auto!important;
  top:auto!important;
  z-index:2147483000!important;
  width:50px!important;
  min-width:50px!important;
  max-width:50px!important;
  height:50px!important;
  min-height:50px!important;
  max-height:50px!important;
  aspect-ratio:1/1!important;
  padding:0!important;
  margin:0!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  place-items:center!important;
  flex:0 0 50px!important;
  border:1px solid rgba(242,177,31,.78)!important;
  border-radius:999px!important;
  color:#fff!important;
  background:#0f766e!important;
  box-shadow:0 12px 30px rgba(0,0,0,.34)!important;
  overflow:hidden!important;
  text-indent:-9999px!important;
  white-space:nowrap!important;
  font-size:0!important;
  line-height:0!important;
  transform:none!important;
}

#backToTop::before,
#back-to-top::before,
#backTop::before,
#btnTop::before,
#btn-top::before,
#btnTopo::before,
#btn-topo::before,
#scrollTop::before,
#scroll-top::before,
#scrollToTop::before,
#goTop::before,
#go-top::before,
.back-to-top::before,
.back-to-top-button::before,
.backTop::before,
.btn-top::before,
.btn-topo::before,
.scroll-to-top::before,
.scroll-top::before,
.scrollTop::before,
.to-top::before,
.go-top::before,
.gp-back-to-top::before,
[data-back-to-top]::before,
[data-scroll-top]::before,
[aria-label*="topo" i]::before,
[title*="topo" i]::before{
  content:"↑"!important;
  position:static!important;
  width:auto!important;
  height:auto!important;
  display:block!important;
  color:#fff!important;
  text-indent:0!important;
  font-size:22px!important;
  font-weight:900!important;
  line-height:1!important;
  transform:none!important;
}

@media(max-width:760px){
  .hero__content{
    padding-top:clamp(250px,48vh,420px)!important;
    padding-bottom:24px!important;
  }

  .hero .hero-route-cta{
    min-height:76px!important;
    padding:10px 12px!important;
    grid-template-columns:46px minmax(0,1fr) 40px!important;
    gap:11px!important;
    border-radius:19px!important;
  }

  .hero .hero-route-cta__icon{
    width:46px!important;
    height:46px!important;
    min-width:46px!important;
  }
}

@media(max-width:420px){
  .hero__content{
    padding-top:230px!important;
  }

  .hero .hero-route-cta__copy strong{
    font-size:16px!important;
  }

  .hero .hero-route-cta__copy small{
    font-size:12px!important;
  }

  #backToTop,
  #back-to-top,
  #backTop,
  #btnTop,
  #btn-top,
  #btnTopo,
  #btn-topo,
  #scrollTop,
  #scroll-top,
  #scrollToTop,
  #goTop,
  #go-top,
  .back-to-top,
  .back-to-top-button,
  .backTop,
  .btn-top,
  .btn-topo,
  .scroll-to-top,
  .scroll-top,
  .scrollTop,
  .to-top,
  .go-top,
  .gp-back-to-top,
  [data-back-to-top],
  [data-scroll-top],
  [aria-label*="topo" i],
  [title*="topo" i]{
    right:14px!important;
    bottom:14px!important;
    width:46px!important;
    min-width:46px!important;
    max-width:46px!important;
    height:46px!important;
    min-height:46px!important;
    max-height:46px!important;
    flex-basis:46px!important;
  }
}


/* =========================================================
   V18.2.2 — CTA de conversão, Hero e botão voltar ao topo
   ========================================================= */

/* Hero: imagem mais limpa, sem faixa degradê atravessando a fotografia. */
.hero::after{
  content:""!important;
  position:absolute!important;
  z-index:1!important;
  inset:auto 0 0!important;
  height:58%!important;
  pointer-events:none!important;
  background:linear-gradient(
    to bottom,
    rgba(4,20,35,0) 0%,
    rgba(4,20,35,.10) 22%,
    rgba(4,20,35,.62) 72%,
    rgba(4,20,35,.82) 100%
  )!important;
}

/* O conteúdo continua ancorado embaixo, mas recebe apenas uma proteção
   localizada e suave para leitura. */
.hero__content{
  position:relative!important;
  z-index:2!important;
  width:100%!important;
  max-width:none!important;
  margin-top:auto!important;
  padding-top:clamp(250px,46vh,470px)!important;
  padding-bottom:clamp(24px,3vw,34px)!important;
  box-sizing:border-box!important;
}

.hero__content::before{
  content:""!important;
  position:absolute!important;
  z-index:-1!important;
  left:-18px!important;
  right:-18px!important;
  bottom:0!important;
  height:72%!important;
  border-radius:30px 30px 0 0!important;
  background:linear-gradient(
    to bottom,
    rgba(4,20,35,0) 0%,
    rgba(4,20,35,.18) 30%,
    rgba(4,20,35,.42) 100%
  )!important;
  pointer-events:none!important;
}

/* CTA Como chegar: fundo sólido, sem efeitos gráficos internos. */
.hero .hero-route-cta{
  position:relative!important;
  isolation:isolate!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  min-height:76px!important;
  margin:18px 0 0!important;
  padding:11px 13px!important;
  display:grid!important;
  grid-template-columns:48px minmax(0,1fr) 42px!important;
  align-items:center!important;
  gap:13px!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  border:1.5px solid #f2b11f!important;
  border-radius:20px!important;
  color:#fff!important;
  background:#08756d!important;
  box-shadow:0 12px 28px rgba(0,0,0,.22)!important;
  text-decoration:none!important;
}

.hero .hero-route-cta::before,
.hero .hero-route-cta::after,
.hero .hero-route-cta__copy::before,
.hero .hero-route-cta__copy::after,
.hero .hero-route-cta__copy strong::before,
.hero .hero-route-cta__copy strong::after,
.hero .hero-route-cta__copy small::before,
.hero .hero-route-cta__copy small::after{
  content:none!important;
  display:none!important;
  background:none!important;
}

.hero .hero-route-cta:hover{
  transform:translateY(-2px)!important;
  filter:brightness(1.05)!important;
  border-color:#ffc52d!important;
}

.hero .hero-route-cta__icon{
  position:relative!important;
  z-index:1!important;
  width:48px!important;
  min-width:48px!important;
  height:48px!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  border-radius:50%!important;
  color:#082033!important;
  background:#f2b11f!important;
  font-size:21px!important;
  line-height:1!important;
}

.hero .hero-route-cta__copy{
  position:relative!important;
  z-index:1!important;
  min-width:0!important;
  width:auto!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:3px!important;
  padding:0!important;
  overflow:visible!important;
  background:none!important;
  text-align:left!important;
}

.hero .hero-route-cta__copy strong{
  display:block!important;
  width:auto!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  color:#fff!important;
  background:none!important;
  font-size:clamp(17px,2vw,21px)!important;
  font-weight:900!important;
  line-height:1.05!important;
  letter-spacing:0!important;
  text-transform:uppercase!important;
  text-overflow:clip!important;
  white-space:normal!important;
}

.hero .hero-route-cta__copy small{
  display:block!important;
  width:auto!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  color:rgba(255,255,255,.86)!important;
  background:none!important;
  font-size:13px!important;
  font-weight:750!important;
  line-height:1.2!important;
  text-overflow:clip!important;
  white-space:normal!important;
}

.hero .hero-route-cta__arrow{
  position:relative!important;
  z-index:1!important;
  justify-self:end!important;
  width:38px!important;
  min-width:38px!important;
  height:38px!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  border-radius:50%!important;
  color:#082033!important;
  background:#f2b11f!important;
  font-size:20px!important;
  font-weight:900!important;
  line-height:1!important;
}

/* Ações essenciais de conversão: Ligar e WhatsApp voltam a ficar visíveis
   imediatamente abaixo do contador. */
.hero .quick-actions{
  position:relative!important;
  z-index:3!important;
  width:100%!important;
  margin-top:14px!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
}

.hero .quick-actions:empty{
  display:none!important;
}

.hero .quick-actions .btn{
  min-width:0!important;
  min-height:48px!important;
  width:100%!important;
  padding:10px 14px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  box-sizing:border-box!important;
  border-radius:15px!important;
  font-size:14px!important;
  font-weight:850!important;
  line-height:1.1!important;
  text-decoration:none!important;
  white-space:nowrap!important;
}

.hero .quick-actions .btn--primary{
  border:1px solid rgba(242,177,31,.82)!important;
  color:#082033!important;
  background:#f2b11f!important;
}

.hero .quick-actions .btn--whatsapp{
  border:1px solid rgba(255,255,255,.18)!important;
  color:#fff!important;
  background:#128c62!important;
}

.hero .quick-actions .btn-icon{
  width:19px!important;
  height:19px!important;
  object-fit:contain!important;
}

/* Botão voltar ao topo: somente uma seta, sem pseudo-elementos duplicados. */
#backToTop::before,#backToTop::after,
#back-to-top::before,#back-to-top::after,
#backTop::before,#backTop::after,
#btnTop::before,#btnTop::after,
#btn-top::before,#btn-top::after,
#btnTopo::before,#btnTopo::after,
#btn-topo::before,#btn-topo::after,
#scrollTop::before,#scrollTop::after,
#scroll-top::before,#scroll-top::after,
#scrollToTop::before,#scrollToTop::after,
#goTop::before,#goTop::after,
#go-top::before,#go-top::after,
.back-to-top::before,.back-to-top::after,
.back-to-top-button::before,.back-to-top-button::after,
.backTop::before,.backTop::after,
.btn-top::before,.btn-top::after,
.btn-topo::before,.btn-topo::after,
.scroll-to-top::before,.scroll-to-top::after,
.scroll-top::before,.scroll-top::after,
.scrollTop::before,.scrollTop::after,
.to-top::before,.to-top::after,
.go-top::before,.go-top::after,
.gp-back-to-top::before,.gp-back-to-top::after,
[data-back-to-top]::before,[data-back-to-top]::after,
[data-scroll-top]::before,[data-scroll-top]::after,
[aria-label*="topo" i]::before,[aria-label*="topo" i]::after,
[title*="topo" i]::before,[title*="topo" i]::after{
  content:none!important;
  display:none!important;
}

#backToTop,
#back-to-top,
#backTop,
#btnTop,
#btn-top,
#btnTopo,
#btn-topo,
#scrollTop,
#scroll-top,
#scrollToTop,
#goTop,
#go-top,
.back-to-top,
.back-to-top-button,
.backTop,
.btn-top,
.btn-topo,
.scroll-to-top,
.scroll-top,
.scrollTop,
.to-top,
.go-top,
.gp-back-to-top,
[data-back-to-top],
[data-scroll-top],
[aria-label*="topo" i],
[title*="topo" i]{
  text-indent:0!important;
  font-size:22px!important;
  line-height:1!important;
  color:#fff!important;
}

@media(max-width:760px){
  .hero__content{
    padding-top:clamp(270px,50vh,440px)!important;
    padding-bottom:22px!important;
  }

  .hero__content::before{
    left:-14px!important;
    right:-14px!important;
    height:76%!important;
  }

  .hero .hero-route-cta{
    min-height:74px!important;
    padding:10px 12px!important;
    grid-template-columns:46px minmax(0,1fr) 40px!important;
    gap:11px!important;
  }

  .hero .hero-route-cta__icon{
    width:46px!important;
    min-width:46px!important;
    height:46px!important;
  }
}

@media(max-width:480px){
  .hero .quick-actions{
    grid-template-columns:1fr 1fr!important;
    gap:8px!important;
  }

  .hero .quick-actions .btn{
    min-height:46px!important;
    padding:9px 10px!important;
    font-size:13px!important;
  }

  .hero .hero-route-cta__copy strong{
    font-size:16px!important;
  }

  .hero .hero-route-cta__copy small{
    font-size:12px!important;
  }
}


/* =========================================================
   V18.2.2.2 — ordem mobile corrigida
   Atua somente abaixo de 980px. Desktop permanece inalterado.
   ========================================================= */
@media (max-width:979px){
  .gp-layout-columns{
    display:block!important;
  }

  .gp-layout-column--left{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:14px!important;
    width:100%!important;
  }

  .gp-layout-column--right{
    display:none!important;
  }
}


/* =========================================================
   HERO — Ligar + WhatsApp e altura integral no mobile
   Únicas alterações desta atualização.
   ========================================================= */

.hero-contact-actions{
  position:relative;
  z-index:4;
  width:100%;
  margin:10px 0 0;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.hero-contact-actions .hero-contact-button:only-child{
  grid-column:1 / -1;
}

.hero-contact-button{
  width:100%;
  min-width:0;
  min-height:50px;
  padding:11px 14px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  box-sizing:border-box;
  border-radius:15px;
  font-size:14px;
  font-weight:850;
  line-height:1;
  text-decoration:none;
  white-space:nowrap;
  box-shadow:0 8px 18px rgba(0,0,0,.16);
}

.hero-contact-button--phone{
  color:#082033;
  background:#f2b11f;
  border:1px solid #f2b11f;
}

.hero-contact-button--whatsapp{
  color:#fff;
  background:#128c62;
  border:1px solid rgba(255,255,255,.2);
}

.hero-contact-button__icon{
  width:20px;
  height:20px;
  display:block;
  flex:0 0 20px;
  object-fit:contain;
}

.hero .visit-counter{
  margin-top:12px!important;
}

@media (max-width:979px){
  .hero{
    height:100svh!important;
    min-height:100svh!important;
    max-height:100svh!important;
    overflow:hidden!important;
    display:flex!important;
    flex-direction:column!important;
    box-sizing:border-box!important;
  }

  .hero__content{
    flex:1 1 auto!important;
    min-height:0!important;
    height:auto!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-end!important;
    box-sizing:border-box!important;
    padding-bottom:max(22px,env(safe-area-inset-bottom))!important;
  }
}

@supports not (height:100svh){
  @media (max-width:979px){
    .hero{
      height:100vh!important;
      min-height:100vh!important;
      max-height:100vh!important;
    }
  }
}

@media (max-width:420px){
  .hero-contact-actions{
    gap:8px;
  }

  .hero-contact-button{
    min-height:48px;
    padding:10px;
    font-size:13px;
  }
}


/* =========================================================
   Ajuste isolado — Hero com Ligar + WhatsApp dentro da tela
   ========================================================= */
@media (max-width:979px){
  .hero:has(.hero-contact-actions){
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:100dvh!important;
    overflow:hidden!important;
  }

  .hero:has(.hero-contact-actions) .hero__content{
    min-height:0!important;
    height:100%!important;
    flex:1 1 100%!important;
    justify-content:flex-end!important;
    padding-top:clamp(130px,20dvh,210px)!important;
    padding-bottom:max(12px,env(safe-area-inset-bottom))!important;
    overflow:hidden!important;
  }

  .hero:has(.hero-contact-actions) .hero-contact-actions{
    margin-top:8px!important;
  }

  .hero:has(.hero-contact-actions) .visit-counter{
    margin-top:8px!important;
  }
}

@supports not (height:100dvh){
  @media (max-width:979px){
    .hero:has(.hero-contact-actions){
      height:100svh!important;
      min-height:100svh!important;
      max-height:100svh!important;
    }

    .hero:has(.hero-contact-actions) .hero__content{
      padding-top:clamp(130px,20svh,210px)!important;
    }
  }
}
