/*-------------------------------------------------------------------
As Google Fonts são carregadas por um <link> no <head> do index.php
(mais rápido que @import e sem bloquear o render). Mesmas famílias e
pesos de sempre: Open Sans, Poppins, Roboto e Russo One.
Os @import antigos foram removidos: eram render-blocking, duplicavam
as fontes já carregadas no head e incluíam famílias não usadas
(DM Sans, Outfit).
-------------------------------------------------------------------*/
/*-------------------------------------------------------------------
COMUM A TODOS
--------------------------------------------------------------------*/
@media screen and (max-width: 1023px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  #pctablet,
  .pctablet {
    display: none;
  }

  #smartphone,
  .smartphone {
    display: block
  }
}

@media screen and (min-width: 1024px) {

  /* PARA DISPOSITIVOS GRANDES*/
  #pctablet,
  .pctablet {
    display: block;
  }

  #smartphone,
  .smartphone {
    display: none
  }
}

div {
  box-sizing: border-box;
}

/*resolve o problema de quando existe padding left e right o div filho não sair fora
/*-------------------------------------------------------------------
DESIGN LAYOUT
--------------------------------------------------------------------*/
@media screen and (max-width: 1023px) {
  .site-width {
    width: 98%;
    position: relative;
    margin: 0 auto;
  }

  .site-width2 {
    width: 98%;
    position: relative;
    margin: 0 auto;
  }

  .site-width2.larguraconteudo {
    width: 98%;
  }
}

@media screen and (min-width: 1024px) and (max-width: 1279px) {
  /* escala global: o design é em px/em pensado para 1920; reduz o tamanho base para caber */
  body {
    font-size: 13px;
  }

  .site-width {
    width: 900px;
    position: relative;
    margin: 0 auto;
  }

  .site-width2 {
    width: 950px;
    position: relative;
    margin: 0 auto;
  }

  .site-width2.larguraconteudo {
    width: 900px;
  }
}

@media screen and (min-width: 1280px) and (max-width: 1365px) {
  body {
    font-size: 14px;
  }

  .site-width {
    width: 1050px;
    position: relative;
    margin: 0 auto;
  }

  .site-width2 {
    width: 1100px;
    position: relative;
    margin: 0 auto;
  }

  .site-width2.larguraconteudo {
    width: 1050px;
  }
}

@media screen and (min-width: 1366px) and (max-width: 1919px) {
  body {
    font-size: 15px;
  }

  .site-width {
    width: 1200px;
    position: relative;
    margin: 0 auto;
  }

  .site-width2 {
    width: 1250px;
    position: relative;
    margin: 0 auto;
  }

  .site-width2.larguraconteudo {
    width: 1100px;
  }
}

@media screen and (min-width: 1920px) {
  body {
    font-size: 16px;
  }

  .site-width {
    width: 1350px;
    position: relative;
    margin: 0 auto;
  }

  .site-width2 {
    width: 1700px;
    position: relative;
    margin: 0 auto;
  }

  .site-width2.larguraconteudo {
    width: 1500px;
  }
}


body {
  margin: 0px;
  padding: 0px;
  font-family: "Poppins", sans-serif;
  -webkit-tap-highlight-color: transparent;
}

.row {
  margin: 0px;
  padding: 0px;
}

a:link,
a:visited,
a:hover,
a:active {
  font-family: "Poppins", sans-serif;
  font-size: 1em;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
  background-color: transparent;
}

.home-titulos {
  text-align: center;
  margin-bottom: 40px;
}

.home-titulo {
  font-family: "Poppins", sans-serif;
  color: var(--primaria);
  font-size: 2em;
  font-weight: 700;
  line-height: 1.2;
  margin: 0;
  /* reset: os títulos passaram de div para h2 (SEO) — sem margem de heading */
}

/* H1 acessível mas visualmente oculto (SEO) */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.home-subtitulo {
  font-family: "Poppins", sans-serif;
  color: var(--texto-suave);
  font-size: 1em;
  margin-top: 6px;
}

.button-site {
  /* Cores principais */
  background-color: var(--acento);
  /* Azul vibrante similar à imagem */
  color: var(--acento-texto);
  /* Texto branco */

  /* Dimensões e Espaçamento */
  padding: 8px 50px;
  /* Preenchimento interno (cima/baixo, esquerda/direita) */
  border: none;
  /* Remove a borda padrão do botão */

  /* Forma */
  border-radius: 8px;
  /* Cantos arredondados */

  /* Tipografia */
  font-weight: 700;
  /* Texto em negrito (bold) */
  text-transform: uppercase;
  /* Força o texto para maiúsculas */
  letter-spacing: 0.5px;
  /* Pequeno espaçamento entre as letras (opcional) */
  font-size: 16px;
  /* Tamanho da fonte */

  /* Interação */
  cursor: pointer;
  /* Muda o cursor para uma mão ao passar o mouse */
  transition: background-color 0.3s ease;
  /* Transição suave para o efeito de hover */
}

/* Efeito ao passar o mouse (hover) */
.button-site:hover {
  background-color: var(--botao-hover);
  /* Um azul ligeiramente mais escuro no hover */
  text-decoration: none;
}

/* Efeito ao clicar (active) */
.button-site:active {
  background-color: var(--primaria-muito-escura);
  /* Um azul ainda mais escuro ao clicar */
  transform: translateY(1px);
  /* Pequeno efeito de clique */
}


/*-------------------------------------------------------------------
CONTEÚDO DIMÂMICO / PÁGINAS
--------------------------------------------------------------------*/
.conteudodinamico {
  padding: 50px 0px 80px 0px;
  background-color: var(--fundo-claro);
}

.pagina-titulo {
  font-size: 1.2em;
  font-weight: 600;
  text-transform: uppercase;
  color: var(--texto);
}

.pagina-conteudo {
  font-size: 0.9em;
  font-weight: 400;
  margin-top: 50px;
  color: var(--texto);
}

@media screen and (max-width: 1023px) {

  /* PARA SMARTPHONE E TABLET*/
  .conteudodinamico {
    padding: 35px 20px 80px 20px;
  }

  .pagina-titulo {
    font-size: 1.4em;
    text-align: center
  }

  .pagina-conteudo {
    font-size: 0.8em;
    text-align: justify
  }
}

@media screen and (max-width: 360px) {
  .pagina-titulo {
    font-size: 1.2em;
  }
}

@media screen and (min-width: 361px) and (max-width: 447px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .pagina-titulo {
    font-size: 1.2em;
  }
}

@media screen and (min-width: 1024px) and (max-width: 1279px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .pagina-titulo {
    font-size: 1.1em;
  }

  .pagina-conteudo {
    font-size: 0.7em;
  }
}

@media screen and (min-width: 1280px) and (max-width: 1365px) {

  /* PARA DISPOSITIVOS MÉDIOS*/
  .pagina-titulo {
    font-size: 1.2em;
  }

  .pagina-conteudo {
    font-size: 0.8em;
  }
}

@media screen and (min-width: 1366px) and (max-width: 1919px) {

  /* PARA DISPOSITIVOS MÉDIOS*/
  .pagina-titulo {
    font-size: 1.2em;
  }

  .pagina-conteudo {
    font-size: 0.8em;
  }
}

/*-------------------------------------------------------------------
BANNER
--------------------------------------------------------------------*/
/* estrutura do slideshow (imagens + vídeos youtube/local) */
#slideshowcontent {
  position: relative;
  width: 100%;
  float: left;
  overflow: hidden;
}

#slideshowcontent>ul {
  margin: 0;
  padding: 0;
  list-style: none;
  width: 100%;
  height: 100%;
}

#slideshowcontent li.slide-media {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  overflow: hidden;
}

/* vídeos (youtube / local) a preencher todo o banner */
.video-background-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 1;
}

.video-background-container video {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  object-fit: cover;
}

.video-background-container iframe {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100vw;
  height: 56.25vw;
  /* cobre pela largura (16:9) */
  min-height: 100%;
  min-width: 177.77vh;
  /* garante cobertura pela altura */
  pointer-events: none;
  /* impede interação com o youtube */
}

/* mobile/tablet: a caixa do banner já está em 16:9, por isso o iframe preenche-a
   diretamente (sem o "cover" baseado em vh, que ampliava demasiado o vídeo) */
@media screen and (max-width: 1023px) {
  .video-background-container iframe {
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
  }
}

/* link que cobre o slide (fora do home) */
.slide-link-cover {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 4;
}

/* conteúdo do slide no home (título / descrição / botão) */
.slide-content-wrapper {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  z-index: 5;
  display: flex;
  align-items: flex-end;
  padding: 0 8%;
  box-sizing: border-box;
}

.slide-text-container {
  max-width: 620px;
  padding-bottom: 7%;
  color: var(--branco);
}

.slide-title {
  margin: 0;
  font-family: "Poppins", sans-serif;
  font-size: 2.6em;
  font-weight: 700;
  line-height: 1.1;
  text-shadow: 0 2px 12px var(--sombra-14);
}

.slide-description {
  margin: 14px 0 0 0;
  font-family: "Poppins", sans-serif;
  font-size: 1.1em;
  line-height: 1.5;
  text-shadow: 0 1px 8px var(--sombra-14);
}

.slide-btn {
  display: inline-block;
  margin-top: 22px;
  background: var(--acento);
  font-family: "Poppins", sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-size: 0.9em;
  padding: 13px 34px;
  border-radius: 10px;
  text-decoration: none;
  transition: background-color .25s ease, transform .25s ease;
}

.slide-btn:hover {
  background: var(--acento);
  transform: translateY(-2px);
  text-decoration: none;
}

@media screen and (max-width: 1023px) {
  .slide-content-wrapper {
    padding: 0 6%;
  }

  .slide-title {
    font-size: 1.6em;
  }

  .slide-description {
    font-size: 0.95em;
    margin-top: 10px;
  }

  .slide-btn {
    padding: 11px 26px;
    font-size: 0.8em;
    margin-top: 16px;
  }
}

.slide-before,
.slide-next {
  top: 190px;
  padding: 7px 2px 0px 2px;
  border-radius: 5px;
  z-index: 9
}

.slide-before:hover,
.slide-next:hover {
  transition: all 0.2s ease-in-out;
}

.slide-before {
  left: 20px;
}

.slide-next {
  right: 20px;
}

.slide-before img,
.slide-next img {
  width: 30px;
}

.slideshow-top-gradiante {
  width: 100%;
  position: absolute;
  top: 0px;
  height: 450px;
  z-index: 2;
}

.slideshow-bottom-gradiante {
  width: 100%;
  position: absolute;
  bottom: 0px;
  height: 200px;
  z-index: 2;
}

@media screen and (max-width: 1023px) {
  #banner {
    margin-top: 120px;
  }

  .slide-before,
  .slide-next {
    top: 45%;
  }

  .slide-before img,
  .slide-next img {
    width: 20px;
  }

  .slideshow-top-gradiante {
    display: none;
  }

  .slideshow-bottom-gradiante {
    height: 100px;
  }

  .slide-before {
    left: 10px;
  }

  .slide-next {
    right: 10px;
  }
}

@media screen and (min-width: 1024px) and (max-width: 1365px) {

  .slide-before,
  .slide-next {
    top: 35%;
  }

  .slide-before img,
  .slide-next img {
    width: 20px;
  }

  .slideshow-top-gradiante {
    height: 250px;
  }

  .slideshow-bottom-gradiante {
    height: 100px;
  }

  .slide-before {
    left: 10px;
  }

  .slide-next {
    right: 10px;
  }
}

@media screen and (min-width: 1280px) and (max-width: 1919px) {

  .slide-before,
  .slide-next {
    top: 35%;
  }

  .slideshow-top-gradiante {
    height: 300px;
  }

  .slideshow-bottom-gradiante {
    height: 200px;
  }
}

@media screen and (min-width: 1366px) and (max-width: 1919px) {

  .slide-before,
  .slide-next {
    top: 35%;
  }

  .slideshow-top-gradiante {
    height: 300px;
  }

  .slide-before img,
  .slide-next img {
    width: 25px;
  }
}

/*-------------------------------------------------------------------
BARRA TOPO
--------------------------------------------------------------------*/
/* Navbar Sobreposta */
.navbar-container {
  position: absolute;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 999;

  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: var(--superficie);
  padding: 12px 28px;
  border-radius: 24px;
  box-shadow: 0 4px 20px var(--sombra-07);
  width: 90%;
  max-width: 90%;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  transition: padding 0.35s ease, box-shadow 0.35s ease, border-radius 0.35s ease, background-color 0.35s ease;
}

/* Barra sempre visível ao fazer scroll, com animação moderna de entrada */
.navbar-container.navbar-fixed {
  position: fixed;
  top: 10px;
  padding: 4px 28px;
  box-shadow: 0 10px 30px var(--sombra-09);
  background-color: var(--overlay-03);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  animation: navbarSlideDown 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

/* barra mais fina ao fazer scroll: encolhe o logótipo */
.navbar-container.navbar-fixed .logo-area {
  height: 38px;
}

@keyframes navbarSlideDown {
  from {
    transform: translateX(-50%) translateY(-130%);
    opacity: 0;
  }

  to {
    transform: translateX(-50%) translateY(0);
    opacity: 1;
  }
}

/* mobile: esconde a barra de topo de PC (usa-se a .mobile-top-bar) */
@media screen and (max-width: 1023px) {
  .navbar-container {
    display: none !important;
  }
}

/* Área do Logótipo (Background Image) */
.logo-area {
  display: block;
  flex-shrink: 0;
  width: 160px;
  /* Ajusta a largura conforme o teu logótipo */
  height: 50px;
  transition: height 0.35s ease;
  /* Ajusta a altura conforme o teu logótipo */
  background-image: url('/template/images/logotipo.webp');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center left;
  text-decoration: none;
}

/* Menu de Navegação */
.nav-menu {
  display: flex;
  align-items: center;
  gap: 24px;
}

.nav-link {
  text-decoration: none;
  color: var(--preto-suave);
  font-weight: 500;
  font-size: 15px;
  transition: color 0.2s ease;
}

.nav-link:hover {
  color: var(--primaria);
}

.dropdown-toggle {
  display: flex;
  align-items: center;
  gap: 4px;
}

/* Ações & Redes */
.header-actions {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-shrink: 0;
}

.btn-contact {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  color: var(--primaria);
  font-weight: 700;
  font-size: 14px;
  line-height: 1.2;
  padding: 6px 14px;
  border-radius: 22px;
  transition: color 0.25s ease, background-color 0.25s ease, transform 0.25s ease, box-shadow 0.25s ease;
}

/* efeito moderno: sem sublinhado, pill subtil + lift + ícone a animar */
.btn-contact:hover,
.btn-contact:focus {
  text-decoration: none;
  color: var(--botao);
  background-color: var(--tint-botao-02);
  transform: translateY(-1px);
  box-shadow: 0 6px 16px var(--tint-botao-03);
}

.btn-contact i {
  font-size: 22px;
  transition: transform 0.25s ease;
}

/* ícone do telefone agora é um SVG (phone2.svg) em vez do icon-font */
.btn-contact-icon {
  width: 30px;
  height: 30px;
  display: block;
  flex-shrink: 0;
  /* recolorir o SVG (ficheiro na plataforma, não editável) para o azul
     do tema #003399 via filtro (mesmo recipe usado noutros ícones) */
  filter: brightness(0) invert(1);
  transition: transform 0.25s ease;
}

.btn-contact:hover i,
.btn-contact:hover .btn-contact-icon {
  transform: rotate(-12deg) scale(1.12);
}

.btn-contact span {
  max-width: 90px;
  text-align: left;
  /* texto azul do tema (estava cinzento, herdado do <a> do template) */
  color: var(--primaria);
}

.divider {
  width: 1px;
  height: 35px;
  background-color: var(--borda);
}

.social-links {
  display: flex;
  align-items: center;
  gap: 14px;
}

.social-links a {
  color: var(--primaria);
  font-size: 18px;
  text-decoration: none;
  transition: transform 0.2s ease;
}

.social-links a:hover {
  transform: translateY(-2px);
}

/*-------------------------------------------------------------------
TOPO: BARRA COMPACTA POR ZOOM
O menu horizontal (.menu-pc) tem min-width:800px fixo na plataforma
omeustand e NÃO encolhe por CSS. A 800px + logótipo + redes só cabem
acima de ~1568px; abaixo disso a barra sobrepunha-se. Solução: escalar
a barra INTEIRA com zoom (proporcional, mantém-se centrada por
width:auto + translateX). flex-shrink:0 impede o .nav-menu de comprimir
o menu e causar sobreposição. Um valor de zoom por breakpoint,
calibrado no limite inferior de cada intervalo.
--------------------------------------------------------------------*/
@media screen and (min-width: 1024px) and (max-width: 1279px) {
  .navbar-container {
    zoom: 0.76;
    width: auto;
    max-width: 97%;
  }

  .nav-menu {
    flex-shrink: 0;
    min-width: 0;
  }

  /* logótipo um pouco menor liberta espaço, permitindo mais zoom
     (menu do topo maior) sem sobrepor as ações à direita */
  .navbar-container .logo-area {
    width: 130px;
    height: 64px;
  }

  /* botão de pesquisa: com body 13px o botão é estreito e o texto
     "Pesquisar (67)" quebrava em 2 linhas + a lupa (22px) mantinha-o
     alto (ficava mais alto que os selects). Flex + nowrap + lupa menor
     + altura igual à do selectbox. margin-top menor porque o label
     também encolheu com a fonte (alinha o topo com os selects). */
  .pesquisa-button {
    margin-top: 27px;
    padding: 0 16px;
    height: 41px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    white-space: nowrap;
    box-sizing: border-box;
  }

  .pesquisa-button div {
    float: none;
    margin: 0;
    display: flex;
    align-items: center;
    font-size: 0.85em;
  }

  .pesquisa-button div img,
  .pesquisa-button img {
    width: 15px;
    height: 15px;
  }
}

@media screen and (min-width: 1280px) and (max-width: 1365px) {
  .navbar-container {
    zoom: 0.90;
    width: auto;
    max-width: 97%;
  }

  .nav-menu {
    flex-shrink: 0;
    min-width: 0;
  }

  /* botão de pesquisa: mesma abordagem que a 1024 (lupa menor + altura
     igual ao selectbox) para não ficar mais alto com a fonte a 14px */
  .pesquisa-button {
    margin-top: 28px;
    padding: 0 18px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    white-space: nowrap;
    box-sizing: border-box;
  }

  .pesquisa-button div {
    float: none;
    margin: 0;
    display: flex;
    align-items: center;
    font-size: 0.9em;
  }

  .pesquisa-button div img,
  .pesquisa-button img {
    width: 17px;
    height: 17px;
  }
}

@media screen and (min-width: 1366px) and (max-width: 1919px) {
  .navbar-container {
    zoom: 0.90;
    width: auto;
    max-width: 95%;
  }

  .nav-menu {
    flex-shrink: 0;
    min-width: 0;
  }
}

/*-------------------------------------------------------------------
TOPO: REDES SOCIAIS
--------------------------------------------------------------------*/
.redesocial {
  margin: 0px 6px 0px 6px;
  padding: 6px;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  text-align: center;
  cursor: pointer;
  position: relative;
  float: left;
  -webkit-transition: all 0.5s;
  /* Safari */
  transition: all 0.5s;
  -webkit-box-shadow: 0px 0px 83px -21px var(--overlay-01);
  -moz-box-shadow: 0px 0px 83px -21px var(--overlay-01);
  box-shadow: 0px 0px 83px -21px var(--overlay-01);
}

.redesocial:hover {
  transform: scale(1.05);
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}

.redesocial.whatsapp {
  padding: 5px;
}

.redesocial.messenger {
  padding: 5px;
}

/* Redes do topo: o ícone já vem na cor certa nos SVG _v2 de /template/images/,
   por isso não levam círculo de fundo nem filtro */
.redesocial.facebook,
.redesocial.instagram,
.redesocial.tiktok,
.redesocial.youtube2 {
  background-color: transparent;
  box-shadow: none;
}

.redesocial.whatsapp {
  background-color: var(--sucesso3);
}

.redesocial.messenger {
  background-color: var(--link-azul);
}


/* glifo a branco apenas nas redes que mantêm o círculo colorido;
   as do topo usam os SVG _v2, que já trazem a cor */
/* AI19b (tema escuro): os SVG _v2 trazem a cor da marca do stand; aqui
   sao forcados a branco. brightness(0) leva a preto, invert(1) a branco. */
.redesocial.facebook img,
.redesocial.instagram img,
.redesocial.tiktok img,
.redesocial.youtube2 img {
  filter: brightness(0) invert(1);
}

.redesocial.whatsapp img,
.redesocial.messenger img {
  filter: invert(99%) sepia(0%) saturate(2222%) hue-rotate(96deg) brightness(118%) contrast(96%);
}

@media screen and (min-width: 1024px) and (max-width: 1919px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .redesocial {
    margin: 0px 5px 0px 5px;
    padding: 5px;
    width: 35px;
    height: 35px;
  }

}

/*-------------------------------------------------------------------
MENU PC TOPO
--------------------------------------------------------------------*/

.menu-pc,
.menu-pc-down {
  min-width: 800px;
  position: relative;
  float: left;
  margin: 0 auto;
  padding: 10px 50px 3px 50px;
  border-radius: 50px;
  display: flex;
  justify-content: center;
  -webkit-transition: all 1.5s;
  /* Safari */
  transition: all 1.5s;
}

.menu-pc-down {
  position: fixed;
  top: 0px;
  left: 0px;
  right: 0px;
  z-index: 999;
  min-width: 100%;
  border-radius: 0px;
}

.menu-topo-buttom {
  position: relative;
  float: right;
  padding: 0px 0px 8px 0px
}

a.menu-topo:link,
a.menu-topo:visited {
  font-family: "Poppins", sans-serif;
  color: var(--texto);
  ;
  font-size: 0.95em;
  font-weight: 600;
  text-transform: uppercase;
  position: relative;
  float: right;
  margin: 0px 2px 0px 2px;
  padding: 10px 25px 10px 25px;
  background-color: transparent;
  text-decoration: none;
  -webkit-transition: all 0.5s;
  /* Safari */
  transition: all 0.5s;
}

/* underline animado (cresce a partir do centro) para hover/active */
a.menu-topo::after {
  content: "";
  position: absolute;
  left: 25px;
  right: 25px;
  bottom: 4px;
  height: 2px;
  background-color: var(--acento);
  border-radius: 2px;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

a.menu-topo:hover,
a.menu-topo.active {
  color: var(--primaria);
  text-decoration: none;
}

a.menu-topo:hover::after,
a.menu-topo.active::after {
  transform: scaleX(1);
}

/* seta (triângulo) a apontar para cima, na cor do card */
.menu-topo-arrow {
  width: 12px;
  height: 12px;
  background-color: var(--superficie);
  border: 1px solid var(--fundo-07);
  border-right: none;
  border-bottom: none;
  border-radius: 3px 0 0 0;
  transform: rotate(45deg);
  position: absolute;
  top: -6px;
  left: 26px;
  z-index: 1;
}

.dropdown-content-menu {
  position: absolute;
  top: 48px;
  left: 0px;
  min-width: 230px;
  max-width: 340px;
  z-index: 5;
  display: flex;
  flex-direction: column;
  background-color: var(--superficie);
  border: 1px solid var(--fundo-07);
  border-radius: 14px;
  padding: 8px;
  box-shadow: 0 14px 34px var(--tint-primaria-04), 0 4px 12px var(--sombra-01);
  /* escondido por defeito; revelado no hover com fade + slide */
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  pointer-events: none;
  -webkit-transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
  transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
}

/* ponte invisível: evita que o dropdown feche ao passar o rato do menu para o card */
.dropdown-content-menu::before {
  content: "";
  position: absolute;
  top: -14px;
  left: 0;
  right: 0;
  height: 14px;
}

a.submenu:link,
a.submenu:visited {
  color: var(--texto);
  background-color: transparent;
  border: none;
  width: 100%;
  box-sizing: border-box;
  position: relative;
  border-radius: 10px;
  font-family: "Poppins", sans-serif;
  font-size: 0.85em;
  font-weight: 500;
  padding: 11px 16px;
  margin: 2px 0;
  text-align: left;
  text-decoration: none;
  white-space: nowrap;
  -webkit-transition: background-color 0.18s ease, color 0.18s ease, padding-left 0.18s ease;
  transition: background-color 0.18s ease, color 0.18s ease, padding-left 0.18s ease;
}

a.submenu:hover,
a.submenu.active {
  color: var(--primaria);
  background-color: var(--fundo-claro);
  padding-left: 21px;
}

.menu-topo-buttom:hover .dropdown-content-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}

@media screen and (min-width: 1024px) and (max-width: 1279px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .menutopodiv {
    top: 80px;
  }

  a.menu-topo:link,
  a.menu-topo:visited {
    font-size: 1em;
    margin: 0px 2px 0px 2px;
    padding: 8px 15px 8px 15px;
  }

  .dropdown-content-menu {
    top: 40px;
  }
}

@media screen and (min-width: 1280px) and (max-width: 1365px) {

  /* PARA DISPOSITIVOS MÉDIOS*/
  .menutopodiv {
    top: 90px;
  }

  a.menu-topo:link,
  a.menu-topo:visited {
    font-size: 0.9em;
    margin: 0px 2px 0px 2px;
    padding: 8px 15px 8px 15px;
  }

  .dropdown-content-menu {
    top: 40px;
  }
}

@media screen and (min-width: 1366px) and (max-width: 1919px) {

  /* PARA DISPOSITIVOS MÉDIOS*/
  .menutopodiv {
    top: 80px;
    right: -20px;
  }

  a.menu-topo:link,
  a.menu-topo:visited {
    font-size: 0.85em;
    margin: 0px 2px 0px 2px;
    padding: 8px 15px 8px 15px;
  }

  .dropdown-content-menu {
    top: 40px;
  }
}

/*-------------------------------------------------------------------
MENU MOBILE V4
--------------------------------------------------------------------*/
.mobile-top-bar {
  width: 100%;
  height: 120px;
  color: var(--branco);
  background-color: var(--topo-mobile-fundo);
  overflow: hidden;
  position: fixed;
  top: 0px;
  left: 0px;
  text-align: right;
  z-index: 1003;
  -webkit-transition: all 0.7s;
  transition: all 0.7s;
}

.mobile-top-bar-up {
  top: -130px;
}

.mobile-top-bar-down {
  top: 0px;
}

.mobile-bar-left {
  width: 60%;
  position: relative;
  float: left;
}

.mobile-bar-right {
  width: 40%;
  position: relative;
  float: left;
}

.mobile-bar-left2 {
  width: 30%;
  position: relative;
  float: left;
}

.mobile-bar-center2 {
  width: 50%;
  position: relative;
  float: left;
  display: flex;
  justify-content: center;
  align-items: center;
}

.mobile-bar-right2 {
  width: 20%;
  position: relative;
  float: left;
}

.logotipo-box {
  width: 100%;
  position: relative;
  float: left;
  height: 120px;
  display: flex;
  align-items: center;
}

.mobile-logotipo-bar {
  width: 140px;
  height: 70px;
  margin: 10px 0px 10px 20px;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  position: relative;
}


#mobile-bars {
  position: relative;
  float: right;
  margin: 43px 25px 0px 0px;
  z-index: 1004
}

.mobilebar1,
.mobilebar3,
.mobilebar2 {
  width: 25px;
  height: 4px;
  margin: 6px 0;
  transition: 0.4s;
  background-color: var(--superficie);
  border-radius: 2px;
  cursor: pointer;
}

.mobilebar1 {
  width: 28px;
  margin: 6px 0px 0px -3px;
}

.mobilebar2 {
  width: 17px;
  margin: 6px 0px 0px 8px;
}

.mobilechange .mobilebar1 {
  width: 25px;
  margin: 6px 0;
  -webkit-transform: rotate(-45deg) translate(-9px, 6px);
  transform: rotate(-45deg) translate(-9px, 6px);
}

.mobilechange .mobilebar2 {
  opacity: 0;
}

.mobilechange .mobilebar3 {
  -webkit-transform: rotate(45deg) translate(-8px, -5px);
  transform: rotate(45deg) translate(-8px, -5px);
}

.mobile-botao-pesquisa {
  width: 78px;
  height: 78px;
  position: relative;
  float: right;
  margin: 20px 50px 0px 0px;
  border-radius: 24px;
  background-color: var(--acento);
  color: var(--acento-texto);
  text-transform: uppercase;
  font-size: 0.65em;
  font-weight: 600;
  text-align: center;
  cursor: pointer;
}

.mobile-botao-pesquisa img {
  width: 25px;
  margin-top: 16px;
  filter: brightness(0);
}


.mobile-menu-close,
.mobile-menu-open {
  height: 100vh;
  position: fixed;
  overflow: auto;
  text-align: left;
  z-index: 1003;
  -webkit-transition: all 0.7s;
  transition: all 0.7s;
  -webkit-box-shadow: -3px 0px 5px 0px var(--sombra-11);
  -moz-box-shadow: -3px 0px 5px 0px var(--sombra-11);
  box-shadow: -3px 0px 5px 0px var(--sombra-11);
}

.mobile-logotipo-menu-div {
  width: 80%;
  position: relative;
  float: left;
}

.mobile-logotipo-menu {
  width: 100%;
  height: 100px;
  margin: 10px 0px 10px 0px;
  background-position: left center;
  background-repeat: no-repeat;
  background-size: contain;
  position: relative;
}

.mobile-paginas {
  width: 100%;
  position: relative;
  float: left;
  margin-top: 50px;
}

.menu-mobile-paginas {
  width: calc(100% - 24px);
  box-sizing: border-box;
  position: relative;
  float: left;
  margin: 3px 12px;
  padding: 14px 44px 14px 18px;
  font-family: "Poppins", sans-serif;
  font-size: 1em;
  font-weight: 600;
  border-radius: 12px;
  display: inline-block;
  -webkit-transition: background-color .2s ease, color .2s ease;
  transition: background-color .2s ease, color .2s ease;
}

/* cores de active/hover vêm do CSS do template (azul do stand); aqui fica só a forma */
.menu-mobile-paginas.active,
.menu-mobile-paginas:hover {
  color: var(--acento-texto);
  background-color: var(--acento);
}

.menu-mobile-nivel1content {
  width: calc(100% - 24px);
  box-sizing: border-box;
  background-color: var(--quase-preto);
  position: relative;
  float: left;
  margin: 2px 12px 8px 12px;
  padding: 6px;
  border-radius: 12px;
  display: none;
}

.menu-mobile-subpaginas {
  width: 100%;
  box-sizing: border-box;
  position: relative;
  float: left;
  font-family: "Poppins", sans-serif;
  font-size: 0.85em;
  font-weight: 500;
  padding: 12px 16px;
  border-radius: 9px;
  -webkit-transition: background-color .2s ease, color .2s ease;
  transition: background-color .2s ease, color .2s ease;
}

/* seta (chevron) desenhada em CSS: acompanha a cor do texto (currentColor) e roda ao abrir */
.menu-mobile-paginas.arrow::after {
  content: "";
  position: absolute;
  right: 20px;
  top: 50%;
  width: 9px;
  height: 9px;
  margin-top: -6px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  -webkit-transition: transform .25s ease;
  transition: transform .25s ease;
}

.menu-mobile-paginas.arrow.arrow-up::after {
  margin-top: -2px;
  transform: rotate(-135deg);
}

.mobile-menu-bottom {
  width: 100%;
  position: relative;
  float: left;
  padding: 0px 20px 0px 20px;
  margin-top: 40px;
}

.mobile-ligamos {
  width: 100%;
  position: relative;
  float: left;
  text-align: center;
  font-weight: 600;
  padding: 12px 10px 12px 10px;
  border-radius: 30px;
  font-size: 0.85em;
  background-color: var(--acento);
  color: var(--acento-texto);
}

/*--------------------APRESENTA OS MESSENGER E O WHATSAPP NO FIM DA TELA-------------------------------------------*/
.mobile-redes-bottom-div {
  width: 100%;
  position: fixed;
  bottom: 0px;
  z-index: 1002;
  display: flex;
  justify-content: center;
  align-items: center;
  -webkit-transition: all 0.7s;
  transition: all 0.7s;
}

.mobile-redes-bottom-div.up {
  bottom: -100px;
}

.mobile-redes-bottom-div.down {
  bottom: 0px;
}

.mobile-redes-bottom {
  position: relative;
  float: left;
  padding: 10px 20px 6px 20px;
  border-radius: 30px;
  margin: 0px 5px 5px 5px;
  text-align: center;
  transition: all 0.2s ease-in-out;
  cursor: pointer;
}

.mobile-redes-bottom.whatsapp {
  background-color: var(--sucesso);
}

.mobile-redes-bottom.messenger {
  background-color: var(--link-azul);
}

.mobile-redes-bottom img {
  width: 20px;
  height: 20px;
  filter: invert(100%) sepia(0%) saturate(0%) hue-rotate(130deg) brightness(112%) contrast(101%);
}

.mobile-redes-bottom div {
  font-size: 0.9em;
  color: var(--branco);
  font-weight: 500;
  padding-left: 15px;
  position: relative;
  float: right;
}


.mobile-menu-close {
  right: -480px
}

.mobile-menu-open {
  right: 0px
}

@media screen and (max-width: 447px) {
  .mobile-bar-left {
    width: 50%;
  }

  .mobile-bar-right {
    width: 50%;
  }

  .mobile-logotipo-bar {
    width: 120px;
    height: 60px;
    margin: 10px 0px 10px 10px;
  }

  .mobile-logotipo-menu-div {
    width: 70%;
  }

  .mobile-menu-close {
    right: -480px
  }

  .menu-mobile-paginas {
    font-size: 0.9em;
  }

  .menu-mobile-subpaginas {
    font-size: 0.7em;
  }

  .mobile-botao-pesquisa {
    width: 68px;
    height: 68px;
    margin: 25px 40px 0px 0px;
    border-radius: 18px;
    font-size: 0.6em;
  }

  .mobile-botao-pesquisa img {
    width: 20px;
  }

  .mobile-redes-bottom {
    padding: 8px 15px 3px 15px;
    border-radius: 20px;
  }

  .mobile-redes-bottom div {
    font-size: 0.8em;
    padding-left: 10px;
    margin-top: 1px;
  }
}

@media screen and (max-width: 360px) {
  .mobile-botao-pesquisa {
    width: 62px;
    height: 62px;
    margin: 28px 30px 0px 0px;
    border-radius: 20px;
    font-size: 0.5em;
  }

  .mobile-botao-pesquisa img {
    width: 18px;
    margin-top: 13px;
  }

}

@media screen and (min-width: 448px) and (max-width: 1023px) {
  .mobile-menu-close {
    right: -1023px
  }

  .menu-mobile-paginas {
    font-size: 1.2em;
  }

  .menu-mobile-subpaginas {
    font-size: 0.9em;
  }
}

/*-------------------------------------------------------------------
WIDGET - PESQUISA
--------------------------------------------------------------------*/
.pesquisa-widget {
  width: 100%;
  position: relative;
  float: left;
  display: none
}

.pesquisa-posicao {
  display: none;
  z-index: 2;
  position: relative;
  float: left;
  width: 100%;
}

.pesquisa-stage {
  font-family: "Poppins", sans-serif;
  position: relative;
  margin: 0 auto;
}

.pesquisa-box {
  width: 100%;
  position: relative;
  float: left;
  font-weight: 500;
  padding: 25px;
  border-radius: 30px;
  margin-top: 30px;
  z-index: 3;
  background-color: var(--superficie);
  -webkit-box-shadow: 0px 0px 37px 0px var(--sombra-04);
  -moz-box-shadow: 0px 0px 37px 0px var(--sombra-04);
  box-shadow: 0px 0px 37px 0px var(--sombra-04);
}

.pesquisa-cell {
  width: 20%;
  position: relative;
  float: left;
  padding: 0px 10px 15px 10px;
}

.pesquisa-form label {
  font-size: 0.9em;
  line-height: 2em;
  padding-left: 20px;
}

.pesquisa-titulo {
  font-size: 1.5em;
  color: var(--primaria);
  text-transform: uppercase;
  font-weight: 500;
  padding-left: 10px;
  margin: 0;
  /* reset: passou de div para h2 (SEO) */
}

.pesquisa-result {
  margin-top: 20px;
}

.pesquisa-form select {
  font-family: "Poppins", sans-serif;
  font-size: 0.9em;
  width: 100%;
  color: var(--texto);
  font-weight: 500;
  padding: 12px 20px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: var(--input-fundo);
  border: none;
  border-radius: 30px;
  cursor: pointer;
}

.pesquisa-form select>option {
  color: var(--texto);
  font-size: 1em;
  padding: 12px !important;
}

.pesquisa-button div {
  font-size: 0.9em !important;
  margin: 3px 0px 0px 5px;
  position: relative;
  float: right;
}

.pesquisa-button {
  width: 100%;
  position: relative;
  float: left;
  text-align: center;
  padding: 10px 30px 7px 30px;
  margin-top: 30px;
  border-radius: 14px;
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  font-size: 1em;
  color: var(--acento-texto);
  background-color: var(--acento);
  cursor: pointer;
  webkit-transition: all 0.5s;
  transition: all 0.5s;
}

.pesquisa-button:hover {
  opacity: 0.8;
  webkit-transition: all 0.5s;
  transition: all 0.5s;
}


#pesquisa-avancada {
  display: none;
  transition: all 1s ease-in-out
}

/* "Pesquisa Avançada" agora é um link de texto no topo do bloco, à direita do título */
.pesquisa-topo {
  width: 100%;
  position: relative;
  float: left;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 15px;
}

/*-------------------------------------------------------------------
DROPDOWN PERSONALIZADO DA PESQUISA (substitui o select nativo no PC)
--------------------------------------------------------------------*/
.custom-select {
  position: relative;
  width: 100%;
  font-family: "Poppins", sans-serif;
}

.custom-select select {
  display: none !important;
}

.custom-select-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--superficie);
  border: 1px solid var(--borda);
  border-radius: 12px;
  padding: 9px 18px;
  cursor: pointer;
  color: var(--texto);
  font-size: 0.95em;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.custom-select-trigger:hover {
  border-color: var(--primaria);
}

.custom-select.open .custom-select-trigger {
  border-color: var(--primaria);
  box-shadow: 0 0 0 3px var(--tint-primaria-03);
}

.custom-select-value {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.custom-select-arrow {
  width: 9px;
  height: 9px;
  margin-left: 10px;
  margin-top: -4px;
  flex-shrink: 0;
  border-right: 2px solid var(--primaria);
  border-bottom: 2px solid var(--primaria);
  transform: rotate(45deg);
  transition: transform .25s ease;
}

.custom-select.open .custom-select-arrow {
  transform: rotate(-135deg);
  margin-top: 2px;
}

.custom-select-options {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  z-index: 50;
  background: var(--superficie);
  border: 1px solid var(--borda);
  border-radius: 14px;
  box-shadow: 0 12px 32px var(--sombra-07);
  padding: 6px;
  max-height: 260px;
  overflow-y: auto;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s;
}

.custom-select.open .custom-select-options {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.custom-select-option {
  padding: 11px 14px;
  border-radius: 10px;
  cursor: pointer;
  color: var(--texto);
  font-size: 0.92em;
  transition: background-color .15s ease, color .15s ease;
}

.custom-select-option:hover {
  background: var(--fundo-claro);
  color: var(--primaria);
}

.custom-select-option.selected {
  background: var(--acento);
  color: var(--acento-texto);
}

.custom-select.disabled {
  opacity: 0.55;
  pointer-events: none;
}

/* scrollbar discreta da lista */
.custom-select-options::-webkit-scrollbar {
  width: 6px;
}

.custom-select-options::-webkit-scrollbar-thumb {
  background: var(--azul-04);
  border-radius: 6px;
}

.pesquisaOptions {
  position: relative;
  cursor: pointer;
}

.pesquisaOptions-text {
  color: var(--texto-medio2);
  font-size: 0.85em;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding-right: 10px;
  -webkit-transition: color 0.3s;
  transition: color 0.3s;
}

.pesquisaOptions:hover .pesquisaOptions-text {
  color: var(--primaria);
}

.pesquisafiltros-div {
  width: 100%;
  position: relative;
  float: left;
  margin-top: 14px;
  z-index: 1;
  display: flex;
  justify-content: center;
}

.pesquisaFiltros {
  width: auto;
  position: relative;
  cursor: pointer;
  display: none;
  padding: 11px 30px;
  border-radius: 30px;
  background-color: var(--superficie);
  border: 1px solid var(--azul-06);
  box-shadow: 0 4px 14px var(--tint-primaria-03);
  text-align: center;
  white-space: nowrap;
  -webkit-transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
  transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.pesquisaFiltros:hover {
  background-color: var(--acento);
  border-color: var(--primaria);
  box-shadow: 0 6px 18px var(--tint-primaria-06);
}

/* esconde a imagem antiga (ficava branca/invisível por baixo da box) */
.pesquisaFiltros img {
  display: none;
}

.pesquisaFiltros-text {
  position: static;
  display: inline;
  width: auto;
  top: auto;
  color: var(--primaria);
  font-size: 0.8em;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  -webkit-transition: color .2s ease;
  transition: color .2s ease;
}

.pesquisaFiltros-text::before {
  content: "\2715";
  margin-right: 8px;
  font-weight: 700;
}


/* no hover o botao fica com fundo de acento: o icone tem de escurecer */
.pesquisaFiltros:hover img {
  filter: brightness(0);
}

.pesquisaFiltros:hover .pesquisaFiltros-text {
  color: var(--acento-texto);
}

@media screen and (max-width: 1023px) {

  /* PARA DISPOSITIVOS PEQUENOS (SMARTPHONES E TABLETS)*/
  .pesquisa-widget {
    width: 100%;
    position: fixed;
    top: 0px;
    left: 0px;
    z-index: 999999;
  }

  .pesquisa-posicao {
    width: 100vw;
    height: 100vh;
    position: absolute;
    top: 0px;
    left: 0px;
    display: flex;
    justify-content: center;
    background-color: var(--sombra-15);
    opacity: 0;
    -webkit-transition: all 1s;
    transition: all 1s;
  }

  .pesquisa-stage {
    width: 100%;
    position: relative;
    float: left;
    display: flex;
    justify-content: center;
  }

  .pesquisa-box {
    width: 90%;
    position: relative;
    float: left;
    padding: 20px 10px 20px 20px;
    border-radius: 10px;
    margin-top: 30px;
  }

  .pesquisa-result {
    height: 62vh;
    overflow: auto;
    overflow-x: hidden;
    width: 99%;
    padding: 0px 10px 0px 0px
  }

  .pesquisa-titulo {
    font-size: 1.2em;
  }

  /* "Pesquisa Avançada" como pill/botão moderno no mobile (era só texto
     cinzento pequeno, pouco tocável). Fundo azul-claro, cantos
     arredondados, ícone de filtros e texto azul do tema. */
  .pesquisaOptions {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--fundo-claro);
    border: 1px solid var(--azul-04);
    border-radius: 22px;
    padding: 8px 15px;
    -webkit-transition: background .2s ease, border-color .2s ease;
    transition: background .2s ease, border-color .2s ease;
  }

  .pesquisaOptions:active,
  .pesquisaOptions:hover {
    background: var(--fundo-claro6);
    border-color: var(--primaria);
  }

  .pesquisaOptions::before {
    content: "";
    width: 15px;
    height: 15px;
    flex-shrink: 0;
    background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="%23ffffff" stroke-width="2.2" stroke-linecap="round"><line x1="4" y1="9" x2="20" y2="9"/><line x1="4" y1="15" x2="20" y2="15"/><circle cx="10" cy="9" r="2.4" fill="white"/><circle cx="15" cy="15" r="2.4" fill="white"/></svg>') no-repeat center;
    background-size: contain;
  }

  .pesquisaOptions-text {
    color: var(--primaria);
    font-size: 0.72em;
    padding-right: 0px;
  }

  .pesquisafiltros-div {
    width: 100%;
    margin-top: 12px;
  }

  .pesquisaFiltros {
    width: auto;
  }

  .pesquisaFiltros-text {
    font-size: 0.75em;
  }


  .pesquisa-cell {
    width: 100%;
    padding: 0px 0px 2px 0px;
  }

  .pesquisa-button-close {
    position: absolute;
    right: -10px;
    top: -10px;
    width: 40px;
    height: 40px;
    background-color: var(--acento);
    color: var(--acento-texto);
    z-index: 2;
    font-size: 1.3em;
    padding: 4px 0px 0px 0px;
    text-align: center;
    border-radius: 50%;
    cursor: pointer;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
  }

  .pesquisa-button-close:hover {
    color: var(--texto);
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
  }

  .pesquisalimparfiltros {
    width: 100%;
    position: relative;
    float: left;
    bottom: 0px;
    margin-top: 20px;
  }
}

@media screen and (min-width: 1024px) and (max-width: 1279px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .pesquisa-stage {
    width: 85%;
  }

  .pesquisa-posicao {
    margin-top: -60px;
  }

  .pesquisa-posicao.layout2 {
    margin-top: -200px;
  }

  .pesquisa-titulo {
    font-size: 1.1em;
  }

  .pesquisa-box {
    padding: 15px;
    border-radius: 25px;
  }

  .pesquisa-result {
    margin-top: 20px;
  }

  .pesquisa-form select {
    font-size: 1em;
    padding: 12px 15px !important;
  }

  .pesquisa-form label {
    font-size: 0.8em;
  }

  .pesquisa-button img {
    width: 20px;
  }

  .pesquisa-button {
    padding: 10px 10px 8px 10px;
    margin-top: 26px;
    font-size: 0.8em;
    border-radius: 14px;
  }

  .pesquisa-button div {
    font-size: 0.9em !important;
    margin: 4px 0px 0px 5px;
  }

  .pesquisaOptions-text {
    font-size: 0.75em;
  }

  .pesquisafiltros-div {
    margin-top: 12px;
  }

  .pesquisaFiltros {
    width: auto;
  }

  .pesquisaFiltros-text {
    font-size: 0.7em;
  }
}

@media screen and (min-width: 1280px) and (max-width: 1365px) {

  /* PARA DISPOSITIVOS MÉDIOS*/
  .pesquisa-stage {
    width: 75%;
  }

  .pesquisa-posicao {
    margin-top: -70px;
  }

  .pesquisa-posicao.layout2 {
    margin-top: -300px;
  }

  .pesquisa-titulo {
    font-size: 1.1em;
  }

  .pesquisa-box {
    padding: 15px;
    border-radius: 25px;
  }

  .pesquisa-form label {
    font-size: 0.8em;
  }

  .pesquisa-button {
    padding: 10px 15px 8px 15px;
    margin-top: 26px;
    font-size: 0.8em;
    border-radius: 14px;
  }

  .pesquisaOptions-text {
    font-size: 0.8em;
  }

  .pesquisaFiltros-text {
    top: 14px;
    font-size: 0.6em;
  }
}

@media screen and (min-width: 1366px) and (max-width: 1919px) {

  /* PARA DISPOSITIVOS MÉDIOS*/
  .pesquisa-posicao {
    margin-top: -80px;
  }

  .pesquisa-posicao.layout2 {
    margin-top: -300px;
  }

  .pesquisa-stage {
    width: 75%;
  }

  .pesquisa-box {
    margin-top: 15px;
  }

  .pesquisa-titulo {
    font-size: 1.1em;
  }

  .pesquisa-cell {
    padding: 0px 8px 15px 8px;
  }

  .pesquisa-button div {
    font-size: 0.85em !important;
    margin: 3px 0px 0px 5px;
  }

  .pesquisa-button {
    padding: 10px 18px 7px 18px;
    margin-top: 29px;
  }
}

@media screen and (min-width: 1920px) and (max-width: 2559px) {

  /* PARA DISPOSITIVOS MÉDIOS*/
  .pesquisa-stage {
    width: 65%;
  }

  .pesquisa-posicao {
    margin-top: -100px;
  }

  .pesquisa-posicao.layout2 {
    margin-top: -500px;
  }
}

@media screen and (min-width: 2560px) {

  /* PARA DISPOSITIVOS MÉDIOS*/
  .pesquisa-stage {
    width: 50%;
  }

  .pesquisa-posicao {
    margin-top: -130px;
  }

  .pesquisa-posicao.layout2 {
    margin-top: -500px;
  }
}

/*-------------------------------------------------------------------
SEGMENTOS WIDGET V4
--------------------------------------------------------------------*/
#segmentos-owl.owl-theme .owl-dots {
  text-align: center;
}

#segmentos-owl.owl-theme .owl-dots .owl-dot {
  display: inline-block;
}

#segmentos-owl.owl-theme .owl-dots .owl-dot span {
  width: 11px;
  height: 11px;
  border-radius: 50%;
  margin: 5px 7px;
  display: block;
  background: var(--azul-03);
  -webkit-backface-visibility: visible;
  transition: background .2s ease, opacity .2s ease;
  margin-top: 30px;
}

#segmentos-owl.owl-theme .owl-dots .owl-dot.active span,
#segmentos-owl.owl-theme .owl-dots .owl-dot:hover span {
  background: var(--acento);
}

.segmentos-div {
  padding: 50px 0px 20px 0px;
}

.segmentos-result {
  padding: 0px 100px 0px 100px;
  margin-top: 50px;
}

#segmentos-owl {
  width: 100%;
  position: relative;
  float: left;
}

/* Item: imagem em cima (column-reverse, pois o título vem antes no HTML) e legenda por baixo */
.segmentos-iten {
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
}

#segmentos-owl a {
  display: block;
  text-decoration: none;
}

.segmentos-img {
  width: 100%;
  height: 150px;
  /* as imagens são mais largas que altas: com "contain" sobrava uma faixa vazia
     por baixo do carro. Encostar ao fundo tira esse vazio e alinha todos os
     carros pela mesma linha de base */
  background-position: center bottom;
  background-size: contain;
  background-repeat: no-repeat;
  transition: all .2s ease-in-out;
}

.segmentos-titulo {
  font-family: "Poppins", sans-serif;
  text-align: center;
  text-transform: none;
  font-size: 1.15em;
  font-weight: 600;
  color: var(--preto-suave);
  margin: 12px 0 0 0;
}

.segmentos-iten:hover .segmentos-img {
  transform: scale(1.06);
  transition: all .2s ease-in-out;
}

@media screen and (max-width: 1023px) {

  /* estilo simplificado: imagem visível por inteiro e legenda por baixo (sem filtro escuro nem sombra) */
  .segmentos-iten:hover .segmentos-img {
    transform: none;
  }
}

@media screen and (max-width: 480px) {
  .segmentos-result {
    padding: 0px 10px 0px 10px;
  }

  /* caixa mais baixa: a arte ja traz margem propria a volta do carro, por
     isso uma caixa alta so' acumula vazio por cima (o carro esta encostado
     ao fundo, ver .segmentos-img na regra base) */
  .segmentos-img {
    height: 140px;
  }

  #segmentos-owl.owl-theme .owl-dots .owl-dot span {
    width: 8px;
    height: 8px;
  }

  .segmentos-titulo {
    font-size: 1.3em;
  }
}

@media screen and (min-width: 481px) and (max-width: 1023px) {
  .segmentos-result {
    padding: 0px 10px 0px 10px;
  }

  .segmentos-img {
    height: 155px;
  }
}

@media screen and (min-width: 1024px) and (max-width: 1365px) {
  .segmentos-result {
    padding: 0px 80px 0px 80px;
  }

  #segmentos-owl.owl-theme .owl-dots .owl-dot span {
    width: 8px;
    height: 8px;
  }

  .segmentos-titulo {
    font-size: 1.1em;
  }

  .segmentos-img {
    height: 140px;
  }
}

@media screen and (min-width: 1500px) and (max-width: 1919px) {
  .segmentos-img {
    height: 200px;
  }
}

@media screen and (min-width: 2021px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .segmentos-img {
    height: 220px;
  }

}

/*-------------------------------------------------------------------
DESTAQUES - GRELHA (sem carrossel) - estilo PSD_PRcar2026
--------------------------------------------------------------------*/
.destaques-div {
  width: 100%;
  position: relative;
  float: left;
  padding: 80px 0px 80px 0px;
}


/* mais espaço entre o título dos destaques e os cards (scoped à secção
   destaques; a galeria usa o mesmo .home-titulos e mantém o base) */
.destaques-div .home-titulos {
  margin-bottom: 60px;
}

.destaques-result {
  width: 100%;
  position: relative;
  float: left;
  padding: 0px 100px;
}

/* O titulo e o "ver todas" sao irmaos do .destaques-result, por isso nao
   herdavam o recuo lateral dele e ficavam mais largos do que os cartoes.
   Nos breakpoints o seletor foi juntado as regras do .destaques-result,
   para os valores nao poderem divergir. */
.destaques-div .home-titulos-linha {
  padding: 0px 100px;
}

.destaques-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 25px;
}

/* Botão "Ver todo stock" - compacto e centrado (não em barra) */
.botoes-div {
  width: 100%;
  position: relative;
  float: left;
  text-align: center;
  margin-top: 45px;
}

.botoes-div a {
  text-decoration: none;
}

.botoes-div .button-site {
  display: inline-block;
  box-shadow: 0px 8px 20px var(--tint-botao-06);
}

.destaque-card a {
  text-decoration: none;
  color: inherit;
  display: block;
}

/* cards com a mesma altura (a caixa branca preenche a célula esticada) — evita "dente" */
.destaque-card>a {
  height: 100%;
}

.destaque-card .viaturas-box {
  height: 100%;
}

.destaque-card .viaturas-box {
  background: var(--superficie);
  border-radius: 14px;
  overflow: hidden;
  position: relative;
  box-shadow: 0px 6px 22px var(--sombra-04);
  transition: transform .2s ease, box-shadow .2s ease;
}

.destaque-card:hover .viaturas-box {
  transform: translateY(-4px);
  box-shadow: 0px 12px 28px var(--sombra-07);
}

.destaque-card .viaturas-img {
  width: 100%;
  height: 225px;
  position: relative;
  background-color: var(--fundo-07);
  /* placeholder: garante contraste para as setas brancas mesmo antes de a foto carregar */
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
}

.viaturas-badges {
  position: absolute;
  left: 12px;
  bottom: 12px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  z-index: 2;
}

.viaturas-badge {
  font-family: "Poppins", sans-serif;
  font-size: 0.7em;
  font-weight: 700;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 20px;
  line-height: 1;
  letter-spacing: 0.3px;
}

.viaturas-info-box {
  width: 100%;
  position: relative;
  float: left;
  padding: 18px 20px 20px 20px;
  box-sizing: border-box;
}

.viaturas-marca {
  font-family: "Poppins", sans-serif;
  font-size: 1.5em;
  font-weight: 700;
  /* definida na paleta do stand */
  color: var(--marca-viatura, #ffffff);
  line-height: 1.1;
}

.viaturas-modelo {
  font-family: "Poppins", sans-serif;
  font-size: 1em;
  color: var(--texto-suave);
  margin-top: 2px;
}

.viaturas-preco-div {
  margin: 14px 0px 12px 0px;
}

.viaturas-preco {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  column-gap: 8px;
  row-gap: 0px;
}

.viaturas-preco-label {
  font-size: 0.95em;
  font-weight: 600;
  color: var(--texto-medio);
}

.viaturas-preco-antes {
  font-size: 0.85em;
  color: var(--texto-claro);
  text-decoration: line-through;
}

.viaturas-preco-atual {
  font-size: 1.35em;
  font-weight: 700;
  color: var(--primaria);
}

/* em promoção: "Preço: <antes>" à esquerda e o preço atual à direita */
.viaturas-preco:has(.viaturas-preco-antes) .viaturas-preco-atual {
  margin-left: auto;
}

/* em promoção: mensalidade à direita, por baixo do preço atual */
.viaturas-preco-div:has(.viaturas-preco-antes) {
  text-align: right;
}

.viaturas-preco-div:has(.viaturas-preco-antes) .viaturas-preco {
  text-align: left;
}

/* mensalidade em pill moderno */
.viaturas-mensalidade {
  display: inline-block;
  margin-top: 8px;
  padding: 3px 12px;
  border-radius: 20px;
  background: var(--fundo-claro);
  color: var(--primaria);
  font-size: 0.76em;
  font-weight: 700;
  line-height: 1.4;
}

.viaturas-mensalidade span {
  font-weight: 500;
  opacity: 0.75;
}

/* badge de desconto (promoção) — canto superior direito da foto */
.viaturas-desconto {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  background: linear-gradient(135deg, var(--primaria), var(--botao));
  color: var(--acento-texto);
  font-family: "Poppins", sans-serif;
  font-size: 0.82em;
  font-weight: 700;
  letter-spacing: 0.3px;
  padding: 6px 13px;
  border-radius: 20px;
  line-height: 1;
  box-shadow: 0px 4px 12px var(--tint-01);
}

.viaturas-info-div {
  display: flex;
  border-top: 1px solid var(--borda4);
  padding-top: 14px;
}

.viaturas-info-cell {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0px;
  font-family: "Poppins", sans-serif;
  min-width: 0;
}

.viaturas-icon {
  width: 18px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  margin-right: 9px;
}

.viaturas-icon img {
  width: 18px;
  height: auto;
  opacity: 0.7;
}

.viaturas-icon-info {
  font-size: 0.82em;
  color: var(--texto-medio);
  white-space: nowrap;
}

/* rodapé dos cards de destaque (home): ícone + valor empilhados e
   centrados em cada célula, para espaçamentos iguais. O valor pode
   quebrar linha (combustíveis longos tipo "Híbrido (Gasolina)") em vez
   de transbordar/sobrepor. Escopo só à home (.destaques-grid); o stock
   usa .viaturas-cell e mantém o seu layout. */
/* rodapé (ano/km/combustível) igual nos cards da home E do stock.
   Nos destaques os cells são .viaturas-info-cell; no stock são divs com
   estilo inline (width:25%/35%...). Alvo comum: .viaturas-info-div > div.
   !important para vencer o estilo inline do stock. Layout: ícone em cima,
   valor centrado por baixo, 3 colunas iguais. */
.destaque-card .viaturas-info-div {
  display: flex !important;
}

.destaque-card .viaturas-info-div > div {
  flex: 1 1 0 !important;
  width: auto !important;
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  text-align: center !important;
  gap: 5px !important;
  float: none !important;
}

.destaque-card .viaturas-icon {
  margin-right: 0;
}

.destaque-card .viaturas-icon-info {
  white-space: normal;
  line-height: 1.25;
}

.destaque-card .vendido {
  position: absolute;
  top: 12px;
  right: 12px;
  background: var(--preto-suave);
  color: var(--branco);
  font-size: 0.75em;
  font-weight: 700;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 20px;
  z-index: 3;
}

@media screen and (min-width:1024px) and (max-width:1279px) {
  .destaques-result,
  .destaques-div .home-titulos-linha {
    padding: 0px 40px;
  }

  .destaques-grid {
    gap: 18px;
  }

  /* cards compactos (4 colunas): foto mais baixa + fontes e rodapé
     reduzidos para caber sem sobreposição. Escopo só à home
     (.destaques-grid) — o stock usa .viaturas-cell e não é afetado. */
  .destaque-card .viaturas-img {
    height: 148px;
  }

  .destaque-card .viaturas-info-box {
    padding: 14px 10px 14px 10px;
  }

  .destaque-card .viaturas-marca {
    font-size: 1.15em;
  }

  .destaque-card .viaturas-modelo {
    font-size: 0.85em;
  }

  .destaque-card .viaturas-preco-div {
    margin: 10px 0px 10px 0px;
  }

  .destaque-card .viaturas-preco-atual {
    font-size: 1.15em;
  }

  .destaque-card .viaturas-preco-label {
    font-size: 0.85em;
  }

  .destaque-card .viaturas-info-div {
    padding-top: 10px;
  }

  .destaque-card .viaturas-info-cell {
    gap: 3px;
  }

  .destaque-card .viaturas-icon,
  .destaque-card .viaturas-icon img {
    width: 12px;
  }

  .destaque-card .viaturas-icon-info {
    font-size: 0.66em;
  }
}

@media screen and (min-width:1280px) and (max-width:1365px) {
  .destaques-result,
  .destaques-div .home-titulos-linha {
    padding: 0px 40px;
  }

  .destaques-grid {
    gap: 18px;
  }

  .destaque-card .viaturas-img {
    height: 172px;
  }

  .destaque-card .viaturas-info-box {
    padding: 16px 14px 16px 14px;
  }

  .destaque-card .viaturas-marca {
    font-size: 1.25em;
  }

  .destaque-card .viaturas-modelo {
    font-size: 0.9em;
  }

  .destaque-card .viaturas-info-div {
    padding-top: 12px;
  }

  .destaque-card .viaturas-info-cell {
    gap: 4px;
  }

  .destaque-card .viaturas-icon,
  .destaque-card .viaturas-icon img {
    width: 14px;
  }

  .destaque-card .viaturas-icon-info {
    font-size: 0.7em;
  }
}

@media screen and (min-width:1366px) and (max-width:1919px) {
  /* cards mais compactos também aqui (estavam com o tamanho base 225px,
     ficavam demasiado grandes a 1366) */
  .destaque-card .viaturas-img {
    height: 185px;
  }

  .destaque-card .viaturas-info-box {
    padding: 18px 16px 18px 16px;
  }

  .destaque-card .viaturas-marca {
    font-size: 1.35em;
  }

  .destaque-card .viaturas-modelo {
    font-size: 0.92em;
  }

  .destaque-card .viaturas-info-cell {
    gap: 4px;
  }

  .destaque-card .viaturas-icon,
  .destaque-card .viaturas-icon img {
    width: 15px;
  }

  .destaque-card .viaturas-icon-info {
    font-size: 0.72em;
  }
}

@media screen and (min-width:768px) and (max-width:1023px) {
  .destaques-result,
  .destaques-div .home-titulos-linha {
    padding: 0px 30px;
  }

  .destaques-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 30px;
  }
}

@media screen and (max-width:767px) {
  .destaques-result,
  .destaques-div .home-titulos-linha {
    padding: 0px 15px;
  }

  .destaques-grid {
    grid-template-columns: 1fr;
    gap: 35px;
  }

  .destaques-titulo {
    font-size: 1.5em;
  }

  .destaque-card .viaturas-img {
    height: 235px;
  }
}

/*-------------------------------------------------------------------
STOCK - GRELHA DE VIATURAS (usa o card dos destaques via .destaque-card)
--------------------------------------------------------------------*/
.viaturas-cell {
  width: 25%;
  position: relative;
  display: inline-block;
  vertical-align: top;
  float: none;
  padding: 12px;
  box-sizing: border-box;
}

/* Botão "Carregar mais" (substitui o scroll contínuo) */
.viaturas-carregarmais {
  width: 100%;
  display: flex;
  justify-content: center;
  padding: 40px 0 20px 0;
  clear: both;
}

/* alinhado ao botão-tema .button-site (mesma cor #1e40af, cantos 8px,
   maiúsculas/bold) mantendo a sombra + lift próprios */
.button-carregar-mais {
  font-family: "Poppins", sans-serif;
  font-size: 16px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--acento-texto);
  background-color: var(--acento);
  border: none;
  border-radius: 8px;
  padding: 12px 46px;
  cursor: pointer;
  box-shadow: 0 6px 18px var(--tint-botao-04);
  -webkit-transition: background-color .3s ease, transform .2s ease, box-shadow .2s ease;
  transition: background-color .3s ease, transform .2s ease, box-shadow .2s ease;
}

.button-carregar-mais:hover {
  background-color: var(--botao-hover);
  -webkit-transform: translateY(-2px);
  transform: translateY(-2px);
  box-shadow: 0 8px 22px var(--tint-botao-05);
}

.button-carregar-mais:disabled {
  opacity: 0.7;
  cursor: default;
  -webkit-transform: none;
  transform: none;
}

/* setas de troca de foto: só no mobile (no desktop usa-se o hover) */
.viaturas-foto-previews,
.viaturas-foto-next {
  display: none;
}

@media screen and (min-width:768px) and (max-width:1023px) {
  .viaturas-cell {
    width: 50%;
    /* mais espaço vertical entre cards no tablet */
    padding: 16px 12px;
  }
}

@media screen and (max-width:767px) {
  .viaturas-cell {
    width: 100%;
    /* mais espaço entre cards no telemóvel (1 coluna) */
    padding: 20px 12px;
  }
}

/* mobile: setas sobre a fotografia para trocar de imagem */
@media screen and (max-width:1023px) {

  .destaque-card .viaturas-foto-previews,
  .destaque-card .viaturas-foto-next {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    z-index: 3;
    top: 120px;
    width: 36px;
    height: 36px;
    background: var(--overlay-02);
    border-radius: 50%;
    box-shadow: 0px 2px 6px var(--sombra-09);
    cursor: pointer;
  }

  .destaque-card .viaturas-foto-previews {
    left: 22px;
  }

  .destaque-card .viaturas-foto-next {
    right: 22px;
  }

  .destaque-card .viaturas-foto-previews img,
  .destaque-card .viaturas-foto-next img {
    width: 12px;
    height: auto;
  }
}

/* garante que as setas dos destaques (home) ancoram ao card */
#destaquesgrid .destaque-card {
  position: relative;
}

/* stock: fontes um pouco menores + alturas iguais (normaliza a parte variável) */
.viaturas-cell .viaturas-marca {
  font-size: 1.3em;
  min-height: 1.1em;
}

.viaturas-cell .viaturas-modelo {
  font-size: 0.9em;
  line-height: 1.4;
  min-height: 2.5em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.viaturas-cell .viaturas-preco-atual {
  font-size: 1.2em;
}

.viaturas-cell .viaturas-preco-label,
.viaturas-cell .viaturas-preco-antes {
  font-size: 0.88em;
}

.viaturas-cell .viaturas-mensalidade {
  font-size: 0.8em;
}

.viaturas-cell .viaturas-icon-info {
  font-size: 0.76em;
}


/*-------------------------------------------------------------------
LAYOUT DETALHES VIATURA
--------------------------------------------------------------------*/
.viatura-padding-right {
  padding-right: 0px;
}

.viatura-padding-left {
  padding-left: 100px;
}

.viatura-cabecalho {
  margin-top: 0px;
}

/* Página de viatura não tem banner: em PC (navbar visível e sobreposta) é preciso
   afastar o conteúdo do topo para não ficar por baixo da barra do menu. */
@media screen and (min-width: 1024px) {
  .viatura-cabecalho {
    margin-top: 150px;
  }
}

.viatura-titulo {
  font-size: 1.3em;
  font-weight: 600;
  text-transform: uppercase;
}

.viatura-preco,
.viatura-mensalidade,
.viatura-precoantes {
  position: relative;
  float: left;
  text-align: center;
  padding: 12px 30px 12px 30px;
  border-radius: 8px;
  font-size: 1.2em;
  font-weight: 500;
}

.viatura-precoantes span {
  text-decoration: line-through;
  font-size: 1em;
}

.viatura-mensalidade span {
  font-size: 0.65em;
  font-style: italic
}

.viatura-precoantes {
  background-color: var(--input-fundo);
  color: var(--texto);
}

/* preço "Antes" apresentado dentro da pílula de preço quando existe precoantes > preco */
.viatura-preco-antes {
  display: block;
  margin-top: 5px;
  font-size: 0.72em;
  font-weight: 500;
  opacity: 0.92;
}

.viatura-preco-antes i {
  font-style: normal;
  text-decoration: line-through;
}

/* pílula de preço quando a viatura está VENDIDA (substitui o preço) */
.viatura-preco-vendido {
  background-color: var(--preto-suave) !important;
  color: var(--branco) !important;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* área de preço: PVP + badge de poupança lado a lado (centrados verticalmente) */
.viatura-preco-area {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
}

/* badge do desconto (poupança) em destaque, ao lado do preço */
.viatura-desconto-badge {
  padding: 9px 22px;
  border-radius: 8px;
  background: linear-gradient(135deg, var(--primaria), var(--botao));
  color: var(--acento-texto);
  font-weight: 700;
  font-size: 0.95em;
  box-shadow: 0 6px 16px var(--tint-primaria-07);
}

/* badge "VENDIDO" sobre a fotografia principal */
.viatura-foto-wrapper {
  position: relative;
}

.triangulo-vendido {
  position: absolute;
  top: 20px;
  left: 20px;
  z-index: 6;
  background-color: var(--preto-suave);
  color: var(--branco);
  font-weight: 700;
  font-size: 0.95em;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 9px 22px;
  border-radius: 8px;
  box-shadow: 0 8px 20px var(--sombra-11);
}

.triangulo-vendido span {
  color: var(--branco);
}


.viatura-info {
  position: relative;
  float: left;
  margin-right: 20px;
}

.viatura-info img {
  width: 24px;
}

.viatura-info-titulo {
  font-size: 0.9em;
  font-weight: 500;
  position: relative;
  float: left;
  padding-top: 3px;
}

.viatura-info-texto {
  font-size: 0.9em;
  font-weight: 500;
  padding-top: 3px;
}

.viatura-subtitulos {
  font-size: 1.1em;
  font-weight: 500;
  text-transform: uppercase
}

.viatura-textos {
  font-size: 0.9em;
  font-weight: 400;
  line-height: 1.6em
}

/* Linha de especificação — ficha técnica moderna (label à esquerda, valor à direita) */
.viatura-spec {
  display: flex !important;
  align-items: center;
  gap: 14px;
  padding: 12px 8px;
  margin-bottom: 0 !important;
  border-bottom: 1px solid var(--fundo-07);
  -webkit-transition: background-color .2s ease;
  transition: background-color .2s ease;
}

.viatura-spec:hover {
  background-color: var(--superficie);
  border-radius: 10px;
}

.viatura-spec>.div-50 {
  width: auto !important;
  float: none !important;
  padding-top: 0 !important;
}

.viatura-spec>.div-50:first-child {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  min-width: 0;
}

.viatura-spec>.viatura-info-texto {
  text-align: right;
  font-weight: 600;
  flex: 0 0 auto;
  max-width: 55%;
}

.viatura-spec .viatura-info {
  float: none !important;
  display: inline-flex;
  align-items: center;
  margin-right: 14px !important;
  flex: 0 0 auto;
}

.viatura-spec .viatura-info-titulo {
  float: none !important;
  padding-top: 0 !important;
}

/* Condições de Financiamento (detalhe da viatura) */
.viatura-financiamento-box {
  width: 100%;
  box-sizing: border-box;
  background-color: var(--superficie);
  border: 1px solid var(--fundo-claro6);
  border-radius: 16px;
  padding: 24px 26px;
}

.viatura-financiamento-desde {
  display: inline-block;
  background-color: var(--fundo-claro);
  color: var(--primaria);
  font-weight: 700;
  font-size: 1.15em;
  padding: 10px 24px;
  border-radius: 30px;
  margin-bottom: 22px;
}

.viatura-financiamento-desde span {
  font-size: 0.6em;
  font-style: italic;
  font-weight: 500;
  margin-left: 2px;
}

.viatura-financiamento-valores {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 44px;
}

.viatura-financiamento-item {
  font-size: 0.95em;
  font-weight: 500;
  color: var(--texto-azulado);
}

.viatura-financiamento-item strong {
  color: var(--primaria-escura);
  font-weight: 700;
}

.viatura-financiamento-texto {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--fundo-claro6);
  font-size: 0.85em;
  color: var(--texto-cinza);
  line-height: 1.6;
}

@media screen and (max-width: 767px) {
  .viatura-financiamento-box {
    padding: 20px;
  }

  .viatura-financiamento-valores {
    gap: 12px 26px;
  }
}

.viatura-equipamento-cell {
  width: 33.333%;
  position: relative;
  float: left;
  padding: 0px 10px 0px 10px;
  display: inline-block;
}

.viatura-equipamento-categoria {
  display: flex;
  align-items: center;
}

.viatura-equipamento-categoria-icon {
  position: relative;
  float: left;
  height: 40px;
}

.viatura-equipamento-categoria-icon img {
  width: auto;
  height: 30px;
}

.viatura-equipamento-categoria-nome {
  position: relative;
  float: left;
  font-size: 1.2em;
  font-weight: 500;
  margin-left: 15px;
  margin-top: -7px;
}

.viatura-equipamento-cell {
  width: 25%;
  position: relative;
  float: left;
  padding-right: 10px;
  margin-bottom: 20px;
}

.viatura-equipamento {
  width: 100%;
  height: 50px;
  position: relative;
  float: left;
  display: flex;
  align-items: center;
  border-radius: 20px;
  padding: 10px 15px 10px 15px;
}

.viatura-equipamento-icon {
  position: relative;
  float: left;
}

.viatura-equipamento-icon img {
  width: 15px;
  height: auto;
  float: right;
}

.viatura-equipamento-nome {
  font-weight: 400;
  position: relative;
  float: left;
  font-size: 0.9em;
  margin-left: 10px;
}

.viatura-buttons-stage,
.viatura-contactos-stage {
  width: 100%;
  position: relative;
  float: left;
  display: flex;
  justify-content: center;
  align-items: center;
}

.viatura-botoes {
  position: relative;
  float: left;
  padding: 12px 20px 8px 20px;
  border-radius: 30px;
  margin: 0px 3px 20px 3px;
  font-size: 0.9em;
  text-align: center;
  transition: all 0.2s ease-in-out;
  cursor: pointer;
}

.viatura-botoes:hover {
  opacity: 0.8;
  transition: all 0.2s ease-in-out;
}

.viatura-botoes img {
  width: 20px;
  height: auto;
}

.viatura-botoes div {
  font-size: 0.9em;
  font-weight: 500;
  padding-left: 15px;
  margin-top: 2px;
  position: relative;
  float: right;
}

.viatura-botoes.whatsapp {
  padding: 4px 30px 0px 30px;
  border-radius: 30px;
  margin: 0px 3px 10px 3px;
}

.viatura-botoes.whatsapp img {
  width: 35px;
  height: auto;
}

.viatura-botoes.whatsapp div {
  font-size: 1em;
  margin-top: 9px;
}

.viatura-botoes.messenger {
  padding: 4px 30px 0px 30px;
  border-radius: 30px;
  margin: 0px 3px 10px 3px;
}

.viatura-botoes.messenger img {
  width: 35px;
  height: auto;
}

.viatura-botoes.messenger div {
  font-size: 1em;
  margin-top: 9px;
}

.viatura-botoes.informacoes {
  width: 100%;
  padding: 13px 30px 13px 30px;
  text-align: center;
  border-radius: 30px;
  margin: 0px;
}

.viatura-botoes.informacoes span {
  font-size: 1.2em;
}

.viatura-botoes.telefone {
  width: 100%;
  padding: 13px 30px 13px 30px;
  text-align: center;
  border-radius: 30px;
  margin: 20px 0px 0px 0px;
}

.viatura-botoes.telefone img {
  width: 20px;
  padding-right: 20px;
  filter: brightness(0);
}

.viatura-botoes.telefone span {
  font-size: 1.2em;
}

.viatura-botoes.telefone i {
  font-size: 0.8em;
}

/* botões do detalhe da viatura: cantos a 8px (padrão do site), em vez de totalmente arredondados.
   !important para vencer as várias redefinições de border-radius (variantes + media queries). */
.viatura-botoes,
.viatura-botoes.whatsapp,
.viatura-botoes.messenger,
.viatura-botoes.informacoes,
.viatura-botoes.telefone {
  border-radius: 8px !important;
}

.bxslider {
  padding-bottom: 50px !important
}

.bx-wrapper,
.bx-viewport,
.bx-wrapper li {
  height: 500px !important;
}

.bx-wrapper li {
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  border-radius: 20px;
}

.flexslider ul .link-img div {
  width: 100%;
  height: 80px;
  border-radius: 10px;
}

#bx-pager .link-img {
  opacity: 1;
}

.bx-wrapper img {
  width: 100%;
  border-radius: 20px;
}

.flexslider ul .link-img div {
  width: 100%;
  height: 80px;
  border-radius: 20px;
}

/*----thumbnail-----*/
#bx-pager .flex-next {
  right: 0px;
  margin-right: 0px;
  height: 40px;
  top: 49%;
}

#bx-pager .flex-prev {
  left: 0px;
  margin-left: 0px;
  height: 40px;
  top: 49%;
}

.viatura-localizacao-div,
.button-site,
.viatura-localizacao-direcoes {
  justify-content: center;
  display: flex;
  align-items: center;
}

.viatura-localizacao-titulo {
  text-align: center;
  text-transform: uppercase
}

.viatura-localizacao-box {
  width: 80%;
  position: relative;
  float: left;
  margin-top: 40px;
  background-color: var(--superficie);
  border-radius: 45px;
  padding: 15px;
  min-height: 200px;
}

.viatura-localizacao-left {
  width: 65%;
  position: relative;
  float: left;
}

.viatura-localizacao-right {
  width: 35%;
  position: relative;
  float: left;
  text-align: center;
  padding: 30px 15px 15px 15px;
}

.viatura-localizacao-left iframe {
  width: 100%;
  height: 290px;
  border-radius: 45px;
}

.viatura-localizacao-icon {
  text-align: center
}

.viatura-localizacao-icon i {
  font-size: 1.5em;
}

.viatura-localizacao-icon span {
  font-size: 1em;
  font-weight: 600;
}

.viatura-localizacao-morada {
  font-size: 0.9em;
  color: var(--texto);
  font-weight: 500;
  margin-top: 30px
}

.viatura-localizacao-direcoes {
  margin-top: 40px
}

.button-site.direcoes {
  padding: 15px 40px 15px 40px;
}

.button-site .direcoes-icon {
  font-size: 1.3em;
  padding-left: 15px;
}

@media screen and (max-width: 1023px) {

  /* PARA SMARTPHONE E TABLET*/
  .viatura-titulo {
    font-size: 1.3em;
    text-align: center;
    margin-top: 50px;
  }

  .viatura-precos-div {
    display: flex;
    justify-content: center;
  }

  .viatura-equipamento-cell {
    width: 100%;
    padding: 0px 10px 0px 10px;
  }

  .flexslider ul .link-img div {
    width: 100%;
    height: 50px;
    border-radius: 10px;
  }

  .bx-wrapper,
  .bx-viewport,
  .bx-wrapper li {
    height: 300px !important;
  }

  #bx-pager .link-img {
    padding: 1px;
  }

  /*----thumbnail-----*/
  #bx-pager .flex-next {
    right: 0px;
    margin-right: 0px;
    height: 40px;
    top: 140%;
  }

  #bx-pager .flex-prev {
    left: 0px;
    margin-left: 0px;
    height: 40px;
    top: 140%;
  }

  .viatura-localizacao-box,
  .viatura-localizacao-left,
  .viatura-localizacao-right {
    width: 100%;
  }

  .viatura-localizacao-right {
    padding: 30px 15px 45px 15px;
  }

  .viatura-localizacao-icon i {
    font-size: 1.3em;
  }

  .viatura-localizacao-icon span {
    font-size: 0.9em;
  }

  .viatura-localizacao-morada {
    font-size: 0.75em;
    margin-top: 20px
  }

  .viatura-localizacao-direcoes {
    position: absolute;
    bottom: -40px;
    z-index: 1;
    width: 100%;
    float: left;
  }

  .button-site.direcoes {
    padding: 15px 25px 15px 25px;
    font-size: 0.75em
  }

  .button-site .direcoes-icon {
    font-size: 1.15em;
    padding-left: 15px;
  }
}

@media screen and (max-width: 360px) {
  .viatura-botoes {
    padding: 10px 10px 4px 10px;
  }

  .viatura-botoes img {
    width: 15px;
  }

  .viatura-botoes div {
    font-size: 0.75em;
    padding-left: 8px;
    margin-top: 0px;
  }

  .viatura-botoes.whatsapp {
    padding: 4px 20px 0px 20px;
  }

  .viatura-botoes.whatsapp img {
    width: 25px;
  }

  .viatura-botoes.whatsapp div {
    font-size: 0.9em;
    margin-top: 5px;
  }

  .viatura-botoes.messenger {
    padding: 4px 20px 0px 20px;
  }

  .viatura-botoes.messenger img {
    width: 25px;
  }

  .viatura-botoes.messenger div {
    font-size: 0.9em;
    margin-top: 5px;
  }

  .viatura-botoes.informacoes {
    padding: 10px 20px 10px 20px;
  }

  .viatura-botoes.informacoes span {
    font-size: 0.9em;
  }
}

@media screen and (min-width: 361px) and (max-width: 447px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .viatura-botoes {
    padding: 12px 15px 6px 15px;
  }

  .viatura-botoes img {
    width: 20px;
  }

  .viatura-botoes div {
    font-size: 0.8em;
    padding-left: 10px;
    margin-top: 3px;
  }

  .viatura-botoes.whatsapp {
    padding: 4px 25px 0px 25px;
  }

  .viatura-botoes.whatsapp img {
    width: 32px;
  }

  .viatura-botoes.whatsapp div {
    font-size: 1em;
    margin-top: 7px;
  }

  .viatura-botoes.messenger {
    padding: 4px 25px 0px 25px;
  }

  .viatura-botoes.messenger img {
    width: 32px;
  }

  .viatura-botoes.messenger div {
    font-size: 1em;
    margin-top: 7px;
  }

  .viatura-botoes.informacoes {
    padding: 10px 20px 10px 20px;
  }

  .viatura-botoes.informacoes span {
    font-size: 1.2em;
  }
}

@media screen and (min-width: 448px) and (max-width: 1023px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .viatura-botoes {
    padding: 12px 17px 8px 17px;
  }

  .viatura-botoes img {
    width: 20px;
  }

  .viatura-botoes div {
    font-size: 0.9em;
    padding-left: 10px;
    margin-top: 0px;
  }
}

@media screen and (min-width: 1024px) and (max-width: 1919px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .viatura-padding-left {
    padding-left: 30px;
  }

  .viatura-cabecalho {
    margin-top: 150px;
  }

  .viatura-titulo {
    font-size: 1.1em;
  }

  .viatura-botoes {
    padding: 10px 20px 6px 20px;
    border-radius: 20px;
    font-size: 0.9em;
  }

  .viatura-botoes img {
    width: 15px;
    height: auto;
  }

  .viatura-botoes div {
    padding-left: 8px;
    margin-top: -2px;
  }

  .viatura-botoes.whatsapp,
  .viatura-botoes.messenger {
    padding: 4px 27px 0px 27px;
    border-radius: 30px;
  }

  .viatura-botoes.whatsapp img,
  .viatura-botoes.messenger img {
    width: 30px;
  }

  .viatura-botoes.whatsapp div,
  .viatura-botoes.messenger div {
    font-size: 0.9em;
    margin-top: 6px
  }

  .viatura-botoes.informacoes {
    padding: 10px 20px 10px 20px;
    border-radius: 20px;
  }

  .viatura-botoes.informacoes span {
    font-size: 1em;
  }

  .viatura-preco,
  .viatura-mensalidade {
    padding: 8px 25px 5px 25px;
    font-size: 1em;
  }

  .viatura-info img {
    width: 20px;
  }

  .viatura-info-titulo {
    font-size: 0.8em;
  }

  .viatura-info-texto {
    font-size: 0.75em;
    padding-top: 3px;
  }

  .viatura-subtitulos {
    font-size: 1em;
  }

  .viatura-textos {
    font-size: 0.75em;
  }

  .bx-wrapper,
  .bx-viewport,
  .bx-wrapper li {
    height: 300px !important;
  }
}

@media screen and (min-width: 1024px) and (max-width: 1365px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .viatura-cabecalho {
    margin-top: 150px;
  }

  .viatura-equipamento-categoria-nome {
    font-size: 1em;
    margin-top: -7px;
  }

  .viatura-equipamento-nome {
    font-size: 0.7em;
  }

  .viatura-botoes.whatsapp,
  .viatura-botoes.messenger {
    padding: 4px 20px 0px 20px;
  }

  .viatura-localizacao-left iframe {
    height: 225px;
  }

  .viatura-localizacao-right {
    padding: 15px 15px 15px 15px;
  }

  .viatura-localizacao-icon i {
    font-size: 1.3em;
  }

  .viatura-localizacao-icon span {
    font-size: 0.9em;
  }

  .viatura-localizacao-morada {
    font-size: 0.75em;
    margin-top: 20px
  }

  .viatura-localizacao-direcoes {
    margin-top: 20px;
  }

  .button-site.direcoes {
    padding: 12px 20px 12px 20px;
    font-size: 0.7em
  }

  .button-site .direcoes-icon {
    font-size: 1.1em;
    padding-left: 15px;
  }
}

@media screen and (min-width: 1280px) and (max-width: 1365px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .viatura-padding-left {
    padding-left: 60px;
  }

  .bx-wrapper,
  .bx-viewport,
  .bx-wrapper li {
    height: 400px !important;
  }
}

@media screen and (min-width: 1366px) and (max-width: 1919px) {

  /* PARA DISPOSITIVOS MÉDIOS*/
  .viatura-padding-left {
    padding-left: 60px;
  }

  .bx-wrapper,
  .bx-viewport,
  .bx-wrapper li {
    height: 400px !important;
  }
}

/*-------------------------------------------------------------------
SERVIÇOS - CARROSSEL (espaço à esquerda, a sangrar para a direita)
--------------------------------------------------------------------*/
.servicos-div {
  width: 100%;
  position: relative;
  float: left;
  padding: 80px 0px 80px 0px;
  overflow: hidden;
  background-color: var(--superficie);
}

.servicos-result {
  width: 100%;
  position: relative;
  float: left;
}

/* container do carrossel: espaço à esquerda (alinhado ao conteúdo), estende-se até à direita */
.servicos-largura {
  width: 100%;
  position: relative;
  float: left;
  padding-left: 15px;
}

.servicos-cell {
  padding: 10px 15px 40px 15px;
}

.servicos-titulo {
  text-align: center;
  color: var(--primaria);
  font-family: "Poppins", sans-serif;
  font-size: 1.5em;
  font-weight: 700;
  margin-bottom: 18px;
  line-height: 1.2;
}

.servicos-box {
  position: relative;
  background: var(--superficie);
  border-radius: 16px;
  box-shadow: 0px 8px 24px var(--sombra-04);
  padding: 20px;
}

.servicos-img {
  width: 100%;
  height: 270px;
  position: relative;
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  border-radius: 8px;
  border: 1px solid var(--borda4);
}

/* era um botao em pill ancorado ao canto da fotografia de 270px do AI18w; com
   o icone de 52px ficava por cima dele. Passa a link de texto por baixo da
   descricao (ver plugins/servicos/*/layout.php). */
.servicos-saibamais {
  position: static;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 14px;
  padding: 0px;
  background: none;
  box-shadow: none;
  border-radius: 0px;
  font-family: "Poppins", sans-serif;
  font-size: 0.72em;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.1px;
  text-decoration: none;
  transition: gap .2s ease;
}

.servicos-saibamais::after {
  content: "\2192";
  font-size: 1.15em;
  line-height: 1;
}

.servicos-saibamais:hover {
  gap: 12px;
  text-decoration: none;
}

.servicos-descricao {
  padding: 18px 8px 6px 8px;
  font-family: "Poppins", sans-serif;
  font-size: 0.95em;
  color: var(--preto-suave);
  line-height: 1.5;
}

/* setas de navegação (canto inferior direito, a uma pequena distância da margem da tela) */
.servicos-largura.owl-theme .owl-nav {
  display: block !important;
  text-align: right;
  margin-top: 25px;
  padding-right: 160px;
}

.servicos-largura .owl-nav button.owl-prev,
.servicos-largura .owl-nav button.owl-next {
  display: inline-block !important;
  margin-left: 22px;
  background: transparent !important;
  border: none;
  padding: 0;
}

.servicos-largura .owl-nav button.owl-prev:hover,
.servicos-largura .owl-nav button.owl-next:hover {
  background: transparent !important;
}

/* setas finas desenhadas com borda (2px) em vez de glifos "cheios" */
.owl-nav-cell {
  display: inline-block;
  width: 32px;
  height: 32px;
  border-style: solid;
  border-color: var(--primaria);
  border-width: 2px 2px 0px 0px;
  cursor: pointer;
  transition: opacity .2s ease;
  vertical-align: middle;
}

.servicos-largura .owl-nav button.owl-prev .owl-nav-cell {
  transform: rotate(-135deg);
}

.servicos-largura .owl-nav button.owl-next .owl-nav-cell {
  transform: rotate(45deg);
}

.owl-nav-cell:hover {
  opacity: 0.55;
}

/* telemóvel/tablet: setas centradas no ecrã */
@media screen and (max-width:1023px) {
  .servicos-largura.owl-theme .owl-nav {
    text-align: center;
    padding-right: 0px;
  }

  .servicos-largura .owl-nav button.owl-prev,
  .servicos-largura .owl-nav button.owl-next {
    margin: 0px 16px;
  }
}

/* gutter à esquerda alinhado ao conteúdo centrado (site-width2), a sangrar à direita.
   As setas ficam junto à direita da tela (padding-right fixo na regra base). */
@media screen and (min-width:1024px) and (max-width:1279px) {
  .servicos-largura {
    padding-left: calc((100% - 900px)/2);
  }
}

@media screen and (min-width:1280px) and (max-width:1365px) {
  .servicos-largura {
    padding-left: calc((100% - 980px)/2);
  }
}

@media screen and (min-width:1366px) and (max-width:1919px) {
  .servicos-largura {
    padding-left: calc((100% - 1150px)/2);
  }
}

@media screen and (min-width:1920px) {
  .servicos-largura {
    padding-left: calc((100% - 1500px)/2);
  }
}

/* 1024-1365: passa a 3 cards por vista (ver funcoes.js) — reduz foto,
   paddings, fontes e setas; traz o botão "Saber mais" para dentro do
   card para não sobrepor o card seguinte com menos margem. */
@media screen and (min-width:1024px) and (max-width:1365px) {
  .servicos-cell {
    padding: 10px 10px 30px 10px;
  }

  .servicos-box {
    padding: 14px;
  }

  .servicos-img {
    height: 175px;
  }

  .servicos-titulo {
    font-size: 1.25em;
  }

  .servicos-descricao {
    font-size: 0.85em;
    padding: 12px 4px 4px 4px;
  }

  .servicos-saibamais {
    font-size: 0.78em;
  }

  .servicos-largura.owl-theme .owl-nav {
    margin-top: 18px;
  }

  .servicos-largura .owl-nav-cell {
    width: 24px;
    height: 24px;
  }

  .servicos-largura .owl-nav button.owl-prev,
  .servicos-largura .owl-nav button.owl-next {
    margin-left: 16px;
  }
}

/*----------------------------------------------------------------------
EQUIPA - WIDGET
-----------------------------------------------------------------------*/
.equipa-div,
.equipa-box,
.equipa-img,
.equipa-nome,
.equipa-funcao,
.equipa-whatsapp,
.equipa-telemovel-titulo,
.equipa-telemovel,
.equipa-tlm-law {
  width: 100%;
  position: relative;
  float: left;
}

.equipa-div {
  padding: 80px 0px 80px 0px;
  background-color: var(--fundo-claro6);
}

#equipa-titulo {
  text-align: center;
  margin-bottom: 10px;
}

.equipa-result {
  margin-top: 50px;
  padding: 0px 60px 0px 60px
}

.equipa-cell {
  width: 25%;
  position: relative;
  float: left;
  padding: 0px 12px 0px 12px;
  margin-bottom: 24px;
}

/* card branco (como imagem 1) */
.equipa-box {
  background: var(--superficie);
  padding: 15px 15px 22px 15px;
  border-radius: 16px;
  text-align: center;
  box-shadow: 0px 8px 24px var(--sombra-04);
}

.equipa-img {
  height: 275px;
  border-radius: 12px;
  /* as fotos sao verticais e a caixa e mais larga que alta: ancorar no topo faz
     com que o corte do "cover" saia por baixo e nunca pela cabeca da pessoa */
  background-position: center top;
  background-repeat: no-repeat;
  background-size: cover;
}

.equipa-nome {
  margin-top: 16px;
  font-size: 1.3em;
  font-weight: 700;
  color: var(--primaria);
}

.equipa-funcao {
  margin-top: 2px;
  font-size: 0.85em;
  font-weight: 600;
  color: var(--texto-suave);
}

/* botão WhatsApp em pill (tamanho por altura, centrado) */
.equipa-whatsapp {
  margin-top: 18px;
  height: auto;
  padding: 0px;
  text-align: center;
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
}

.equipa-whatsapp a {
  display: inline-block;
}

.equipa-whatsapp img {
  width: auto;
  height: 46px;
}

.equipa-whatsapp:hover {
  transform: scale(1.04);
  -webkit-transition: all 0.4s;
  transition: all 0.4s;
}

.equipa-telemovel-titulo {
  margin-top: 16px;
  height: auto;
  font-size: 1em;
  font-weight: 700;
  color: var(--texto-suave);
}

.equipa-telemovel {
  margin-top: 2px;
  height: auto;
  font-size: 1.5em;
  font-weight: 700;
  color: var(--preto-suave);
  text-decoration: none;
}

.equipa-telemovel a {
  color: inherit;
  text-decoration: none;
  transition: color .2s ease;
}

.equipa-telemovel a:hover {
  color: var(--primaria);
  text-decoration: none;
}

.equipa-tlm-law {
  margin-top: 2px;
  font-size: 0.7em;
  font-weight: 600;
  color: var(--texto-claro);
}

/* desktop: grelha flex com alturas iguais (evita o "dente" dos floats) */
@media screen and (min-width:1024px) {
  .equipa-result {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
  }

  .equipa-cell {
    float: none;
    display: flex;
  }

  .equipa-box {
    float: none;
    width: 100%;
  }
}

@media screen and (max-width: 1023px) {
  .equipa-cell {
    width: 100%;
    padding: 0px 15px 0px 15px;
    margin-bottom: 30px;
  }

  .equipa-result {
    margin-top: 50px;
    padding: 0px
  }

  .equipa-box {
    padding: 10px 10px 25px 10px;
    border-radius: 20px;
  }

  .equipa-img {
    height: 360px;
    border-radius: 20px;
  }

  .equipa-nome {
    font-size: 1.25em;
  }

  .equipa-funcao {
    font-size: 0.7em;
  }

  .equipa-whatsapp {
    padding: 0px 80px 0px 80px;
    margin-top: 18px;
  }

  .equipa-telemovel-titulo {
    margin-top: 20px;
    font-size: 1em;
  }

  .equipa-telemovel {
    margin-top: -5px;
    font-size: 1.25em;
  }

  .equipa-tlm-law {
    margin-top: -4px;
    font-size: 0.55em;
  }
}

@media screen and (min-width: 361px) and (max-width: 1023px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .equipa-box {
    padding: 15px 15px 20px 15px;
    border-radius: 30px;
  }

  .equipa-img {
    height: 440px;
    border-radius: 30px;
  }

  .equipa-nome {
    font-size: 1.4em;
  }

  .equipa-funcao {
    font-size: 0.8em;
  }

  .equipa-whatsapp {
    padding: 0px 90px 0px 90px;
    margin-top: 12px;
  }

  .equipa-telemovel-titulo {
    margin-top: 50px;
    font-size: 1.1em;
  }

  .equipa-telemovel {
    margin-top: -2px;
    font-size: 1.4em;
  }

  .equipa-tlm-law {
    margin-top: -2px;
    font-size: 0.7em;
  }
}

@media screen and (min-width: 768px) and (max-width: 959px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .equipa-cell {
    width: 50%;
    padding: 0px 15px 0px 15px;
    margin-bottom: 30px;
  }
}

@media screen and (min-width: 960px) and (max-width: 1023px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .equipa-cell {
    width: 33%;
    padding: 0px 15px 0px 15px;
    margin-bottom: 30px;
  }
}

@media screen and (min-width: 1024px) and (max-width: 1365px) {
  .equipa-result {
    margin-top: 80px;
    padding: 0px
  }

  .equipa-cell {
    padding: 0px 10px 0px 10px;
    margin-bottom: 20px;
  }

  .equipa-box {
    padding: 10px 10px 15px 10px;
    border-radius: 20px;
  }

  .equipa-img {
    height: 225px;
    border-radius: 20px;
  }

  .equipa-nome {
    font-size: 1.15em;
  }

  .equipa-funcao {
    font-size: 0.7em;
  }

  .equipa-telemovel-titulo {
    margin-top: 0px;
    font-size: 1em;
  }

  .equipa-telemovel {
    font-size: 1.3em;
  }
}

@media screen and (min-width: 1280px) and (max-width: 1365px) {
  .equipa-img {
    height: 260px;
    border-radius: 20px;
  }
}

@media screen and (min-width: 1366px) and (max-width: 1919px) {
  .equipa-result {
    padding: 0px 0px 0px 0px
  }

  .equipa-cell {
    padding: 0px 10px 0px 10px;
    margin-bottom: 20px;
  }

  .equipa-box {
    padding: 10px 10px 15px 10px;
    border-radius: 20px;
  }

  .equipa-img {
    height: 260px;
    border-radius: 20px;
  }

  .equipa-nome {
    font-size: 1.3em;
  }

  .equipa-funcao {
    font-size: 0.75em;
  }

  .equipa-telemovel-titulo {
    margin-top: 20px;
    font-size: 1.1em;
  }

}

/*-------------------------------------------------------------------
GALERIA CLIENTES
--------------------------------------------------------------------*/
.galeriacl-div {
  font-family: "Poppins", sans-serif;
  padding: 80px 0px 80px 0px;
  background-color: var(--fundo-claro);
  text-align: center
}

/*-------------------------------------------------------------------
GALERIA CLIENTES - WIDGET - MODAL
--------------------------------------------------------------------*/
.galeriacl-modal-backdrop {
  width: 100vw;
  height: 100vh;
  position: absolute;
  display: flex;
  justify-content: center;
  z-index: 999999;
  background-color: var(--sombra-15);
}

.galeriacl-modal {
  width: 40%;
  min-height: 100px;
  padding: 20px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  border-radius: 10px;
  opacity: 0;
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
}

.galeriacl-modal-content {
  width: 100%;
  height: 300px;
  overflow: auto;
  position: relative;
  float: left;
  padding: 20px 0px 30px 0px;
}

.galeriacl-button-close {
  position: absolute;
  right: -15px;
  top: -17px;
  width: 30px;
  height: 30px;
  z-index: 2;
  font-size: 1.2em;
  text-align: center;
  border-radius: 50%;
  cursor: pointer;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}

.galeriacl-button-close:hover {
  transform: scale(1.15);
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}


.galeriacl-modal-img-div,
.galeriacl-modal-nome,
.galeriacl-modal-data,
.galeriacl-modal-texto,
.galeriacl-modal-fotografias {
  width: 100%;
  position: relative;
  float: left;
}

.galeriacl-modal-img-div {
  margin-top: -120px;
}

.galeriacl-modal-img {
  width: 500px;
  height: 350px;
  position: relative;
  margin-left: auto;
  margin-right: auto;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  overflow: hidden;
  border-radius: 10%;
}

.galeriacl-modal-data {
  margin-top: 10px;
  font-size: 0.9em;
  text-align: center
}

.galeriacl-modal-nome {
  margin-top: 0px;
  font-size: 1.1em;
  font-weight: 700;
  text-align: center;
}

.galeriacl-modal-texto {
  margin-top: 20px;
  font-size: 0.85em;
  text-align: justify;
}

.galeriacl-modal-foto {
  position: relative;
  float: left;
  margin: 20px;
  width: 25%;
  height: 120px;
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  border-radius: 10px;
  overflow: hidden;
}

@media screen and (max-width: 1023px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .galeriacl-modal {
    width: 90%;
    min-height: 100px;
    max-height: 70vh;
  }

  .galeriacl-modal-content {
    height: 300px;
  }

  .galeriacl-modal-img {
    width: 90%;
    height: 240px;
  }
}

@media screen and (max-width: 360px) {

  /* PARA SMARTPHONE E TABLET*/
  .galeriacl-modal-img {
    width: 90%;
    height: 200px;
  }

  .galeriacl-modal-nome {
    font-size: 0.9em;
  }

  .galeriacl-modal-data {
    font-size: 0.75em;
  }

  .galeriacl-modal-texto {
    font-size: 0.8em;
  }
}

/* width */
.galeriacl-modal-content::-webkit-scrollbar {
  width: 2px;
}

/*----------------------------------------------------------------------
GALERIA CLIENTES - WIDGET
-----------------------------------------------------------------------*/
#galeriacl-widget.owl-theme .owl-dots,
.owl-theme .owl-nav {
  text-align: center;
  -webkit-tap-highlight-color: transparent
}

.owl-theme .owl-nav {
  margin-top: 10px
}

.owl-theme .owl-nav .disabled {
  opacity: .5;
  cursor: default
}

.owl-theme .owl-nav.disabled+.owl-dots {
  margin-top: 10px
}

.owl-theme .owl-dots .owl-dot {
  display: inline-block;
  zoom: 1
}

#galeriacl-widget.owl-theme .owl-dots .owl-dot span {
  width: 11px;
  height: 11px;
  border-radius: 50%;
  margin: 5px 7px;
  display: block;
  -webkit-backface-visibility: visible;
  transition: opacity .2s ease;
  margin-top: 30px;
}

#galeriacl-widget {
  width: 100%;
  position: relative;
  float: left;
}

.galeriacl-cell {
  width: 25%;
  position: relative;
  float: left;
}

.galeriacl-vermais {
  position: relative;
  width: 250px;
  border-radius: 20px;
  cursor: pointer;
  padding: 12px 30px 12px 30px;
  margin-left: auto;
  margin-right: auto;
  font-family: 'Montserrat', sans-serif;
  font-size: 1em;
  font-weight: 500;
  text-align: center;
  margin-top: 80px;
}

.galeriacl-vermais:hover {
  opacity: 0.8;
}

.galeriacl-stage,
.galeriacl-iten,
.galeriacl-img-div,
.galeriacl-nome,
.galeriacl-data,
.galeriacl-texto {
  width: 100%;
  position: relative;
  float: left;
}

.galeriacl-stage {
  padding: 12px 12px 34px 12px;
  cursor: pointer
}

/* card branco (aspeto dos testemunhos / imagem 2) */
.galeriacl-iten {
  background: var(--superficie);
  border-radius: 16px;
  padding: 9px 9px 20px 9px;
  text-align: center;
  box-shadow: 0px 8px 24px var(--sombra-04);
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}

.galeriacl-img {
  width: 100%;
  aspect-ratio: 3 / 2;
  /* rácio landscape fixo em vez de altura fixa: as fotos deixam de ficar
     quase quadradas/altas quando há mais cards por vista (ex.: 4 a 1280) */
  position: relative;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  overflow: hidden;
  border-radius: 12px;
}

.galeriacl-nome {
  margin-top: 16px;
  font-size: 1.2em;
  font-weight: 700;
  color: var(--preto-suave);
  line-height: 1.25;
  /* reserva sempre 2 linhas e limita a 2 → todos os cards ficam com a
     mesma altura independentemente do tamanho do nome (evita o "dente"
     no layout em grelha, ex.: "Reguengos de Monsaraz" em 2 linhas) */
  min-height: 2.5em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.galeriacl-data {
  margin-top: 6px;
  font-size: 0.9em;
  color: var(--texto-suave);
}

.galeriacl-texto {
  display: none;
}

.galeriacl-button-div {
  display: flex;
  justify-content: center;
  margin-top: 50px;
}

/* navegação em pill centrada, com setas afastadas (como imagem 2) */
#galeriaclultimas .owl-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 48px;
  width: -moz-fit-content;
  width: fit-content;
  margin: 35px auto 0px auto;
  padding: 10px 30px;
  background: var(--superficie);
  border-radius: 30px;
  box-shadow: 0px 4px 14px var(--sombra-04);
}

#galeriaclultimas .owl-nav button.owl-prev,
#galeriaclultimas .owl-nav button.owl-next {
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  background: transparent !important;
  border: none;
  padding: 0px;
  margin: 0px;
  cursor: pointer;
}

#galeriaclultimas .owl-nav .owl-left-cell,
#galeriaclultimas .owl-nav .owl-right-cell {
  display: flex;
  align-items: center;
  line-height: 0;
}

#galeriaclultimas .owl-nav button.owl-prev:hover,
#galeriaclultimas .owl-nav button.owl-next:hover {
  background: transparent !important;
  opacity: 0.55;
}

#galeriaclultimas .owl-nav .owl-left-cell img,
#galeriaclultimas .owl-nav .owl-right-cell img {
  width: 22px;
  height: auto;
  display: block;
}

@media screen and (max-width: 1023px) {

  /* PARA DISPOSITIVOS PEQUENOS (SMARTPHONES E TABLETS)*/
  .galeriacl-img {
    width: 100%;
    height: 220px;
  }

  .galeriacl-vermais {
    width: 200px;
    font-size: 0.9em;
    margin-top: 50px;
  }
}

@media screen and (max-width: 360px) {

  /* PARA SMARTPHONE E TABLET*/
  .galeriacl-img {
    height: 170px;
  }
}

@media screen and (min-width: 1024px) and (max-width: 1279px) {
  /* PARA DISPOSITIVOS GRANDES (PCS COM BAIXA RESOLUÇÃO)*/

  /* menos espaçamento entre cards e nome mais pequeno a 1024 */
  .galeriacl-stage {
    padding: 8px 6px 20px 6px;
  }

  .galeriacl-nome {
    font-size: 1em;
  }
}

@media screen and (min-width: 1280px) and (max-width: 1919px) {

  /* PARA DISPOSITIVOS GRANDES (PCS COM BAIXA RESOLUÇÃO)*/
  /* mesmo ajuste do 1024: menos espaçamento entre cards e nome menor */
  .galeriacl-stage {
    padding: 8px 6px 20px 6px;
  }

  .galeriacl-nome {
    font-size: 1em;
  }
}

@media screen and (min-width: 1023px) {

  /* PARA DISPOSITIVOS GRANDES (PCS COM BAIXA RESOLUÇÃO)*/
  .galeriacl-iten:hover {
    transform: translateY(-5px);
    box-shadow: 0px 12px 28px var(--sombra-07);
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
  }
}

@media screen and (min-width: 2021px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .galeriacl-img {
    height: 220px;
  }
}

/* width */
.galeriacl-content::-webkit-scrollbar {
  width: 2px;
}


/*-------------------------------------------------------------------
REVIEWS
--------------------------------------------------------------------*/
.reviews-div {
  font-family: "Poppins", sans-serif;
  padding: 80px 0px 80px 0px;
  background-color: var(--fundo-claro);
  text-align: center
}

/*-------------------------------------------------------------------
REVIEWS - WIDGET - MODAL
--------------------------------------------------------------------*/
.reviews-modal-backdrop {
  width: 100vw;
  height: 100vh;
  position: absolute;
  display: flex;
  justify-content: center;
  z-index: 999999;
}

.reviews-modal {
  width: 40%;
  min-height: 100px;
  padding: 20px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  border-radius: 10px;
  opacity: 0;
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
}

.reviews-modal-content {
  width: 100%;
  height: 300px;
  overflow: auto;
  position: relative;
  float: left;
  padding: 20px 0px 30px 0px;
}

.reviews-button-close {
  position: absolute;
  right: -15px;
  top: -15px;
  width: 30px;
  height: 30px;
  z-index: 2;
  font-size: 1.3em;
  text-align: center;
  border-radius: 50%;
  cursor: pointer;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}

.reviews-button-close:hover {
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}


.reviews-modal-img-div,
.reviews-modal-nome,
.reviews-modal-stars,
.reviews-modal-data,
.reviews-modal-texto,
.reviews-modal-origem,
.reviews-modal-fotografias {
  width: 100%;
  position: relative;
  float: left;
}

.reviews-modal-img {
  width: 80px;
  height: 80px;
  position: relative;
  margin-left: auto;
  margin-right: auto;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  overflow: hidden;
  border-radius: 50%;
}

.reviews-modal-data {
  margin-top: 10px;
  font-size: 0.9em;
  text-align: center
}

.reviews-modal-nome {
  margin-top: 0px;
  font-size: 1.1em;
  font-weight: 700;
  text-align: center;
}

.reviews-modal-texto {
  margin-top: 20px;
  color: var(--texto);
  font-size: 1em;
  text-align: justify;
}

.reviews-modal-origem {
  margin-top: 30px;
}

.reviews-modal-stars {
  margin-top: 20px;
  text-align: center;
  height: 20px;
  overflow: hidden
}

.reviews-modal-foto {
  position: relative;
  float: left;
  margin: 20px;
  width: 25%;
  height: 120px;
  background-position: center center;
  background-size: contain;
  background-repeat: no-repeat;
}

.reviews-modal-stars img {
  width: 20px;
  height: auto;
  position: relative;
  float: left;
  margin: 0px 3px 0px 3px;
}

.reviews-modal-origem img {
  max-width: 100%;
  width: 30px;
  height: auto;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

@media screen and (max-width: 1023px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .reviews-modal {
    width: 90%;
    min-height: 100px;
    max-height: 70vh;
  }

  .reviews-modal-content {
    height: 300px;
  }
}

/* width */
.reviews-modal-content::-webkit-scrollbar {
  width: 2px;
}

/*----------------------------------------------------------------------
REVIEWS - WIDGET
-----------------------------------------------------------------------*/
#reviews-widget.owl-theme .owl-dots,
.owl-theme .owl-nav {
  text-align: center;
  -webkit-tap-highlight-color: transparent
}

.owl-theme .owl-nav {
  margin-top: 10px
}

.owl-theme .owl-nav .disabled {
  opacity: .5;
  cursor: default
}

.owl-theme .owl-nav.disabled+.owl-dots {
  margin-top: 10px
}

.owl-theme .owl-dots .owl-dot {
  display: inline-block;
  zoom: 1
}

#reviews-widget.owl-theme .owl-dots {
  margin-top: 20px;
}

#reviews-widget.owl-theme .owl-dots .owl-dot span {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  margin: 5px 6px;
  display: block;
  background: var(--azul-04);
  -webkit-backface-visibility: visible;
  transition: all .2s ease;
}

#reviews-widget.owl-theme .owl-dots .owl-dot.active span,
#reviews-widget.owl-theme .owl-dots .owl-dot:hover span {
  background: var(--acento);
}

#reviews-widget {
  width: 100%;
  position: relative;
  float: left;
}

.reviews-cell {
  width: 25%;
  position: relative;
  float: left;
}

.reviews-vermais {
  position: relative;
  width: 250px;
  border-radius: 5px;
  cursor: pointer;
  padding: 8px 30px 8px 30px;
  margin-left: auto;
  margin-right: auto;
  font-size: 1em;
  text-align: center;
  margin-top: 80px;
}

.reviews-vermais:hover {
  opacity: 0.8;
}

.reviews-avaliacao,
.reviews-stage,
.reviews-iten,
.reviews-img-div,
.reviews-nome,
.reviews-stars,
.reviews-data,
.reviews-texto,
.reviews-origem {
  width: 100%;
  position: relative;
  float: left;
}

.reviews-avaliacao {
  font-size: 1.5em;
  text-align: center;
  margin-bottom: 20px;
}

.reviews-avaliacao span {
  font-weight: 500;
  font-size: 1.4em;
  padding: 0px 5px 0px 5px;
}

.reviews-stage {
  padding: 12px 12px 34px 12px;
  cursor: pointer
}

/* card branco (aspeto imagem 1) */
.reviews-iten {
  background: var(--superficie);
  border-radius: 16px;
  padding: 26px 22px;
  text-align: center;
  box-shadow: 0px 8px 24px var(--sombra-04);
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}

.reviews-iten:hover {
  transform: translateY(-5px);
  box-shadow: 0px 12px 28px var(--sombra-07);
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}

.reviews-img {
  width: 80px;
  height: 80px;
  position: relative;
  margin-left: auto;
  margin-right: auto;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  overflow: hidden;
  border-radius: 50%;
}

.reviews-stars {
  margin-top: 20px;
  text-align: center;
  height: 20px;
  overflow: hidden
}

.reviews-stars img {
  width: 20px !important;
  height: auto;
  position: relative;
  float: left;
  margin: 0px 3px 0px 3px;
}

.reviews-data {
  margin-top: 10px;
  font-size: 0.9em;
  color: var(--texto-claro);
}

.reviews-nome {
  margin-top: 16px;
  font-size: 1.05em;
  font-weight: 700;
  color: var(--preto-suave);
  height: auto;
  overflow: visible;
}

.reviews-texto {
  margin-top: 16px;
  font-size: 0.85em;
  color: var(--texto-medio2);
  height: 100px;
  overflow: hidden;
  text-align: center;
  line-height: 1.5;
}

.reviews-origem {
  margin-top: 20px;
}

.reviews-origem img {
  max-width: 100%;
  width: 30px !important;
  height: auto;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

@media screen and (max-width: 1023px) {

  /* PARA DISPOSITIVOS PEQUENOS (SMARTPHONES E TABLETS)*/
  .reviews-avaliacao {
    font-size: 1.4em;
  }

  .reviews-avaliacao span {
    font-size: 1.3em;
  }

  .reviews-img {
    width: 80px;
    height: 80px;
  }

  .reviews-vermais {
    width: 200px;
    font-size: 0.9em;
    margin-top: 50px;
  }
}

@media screen and (min-width: 1024px) and (max-width: 1279px) {

  /* PARA DISPOSITIVOS GRANDES (PCS COM BAIXA RESOLUÇÃO)*/
  .reviews-avaliacao {
    font-size: 1.3em;
  }

  .reviews-data {
    font-size: 0.7em;
  }

  .reviews-nome {
    font-size: 0.9em;
  }

  .reviews-texto {
    margin-top: 20px;
    font-size: 0.8em;
    height: 80px;
  }
}

@media screen and (min-width: 1280px) and (max-width: 1919px) {

  /* PARA DISPOSITIVOS GRANDES (PCS COM BAIXA RESOLUÇÃO)*/
  .reviews-stage {
    padding: 8px 8px 34px 8px;
  }
}

/* width */
.reviews-content::-webkit-scrollbar {
  width: 2px;
}

/*-------------------------------------------------------------------
REVIEWS - CORES (camada de cor que faltava)
Acentos adaptados de vermelho -> azul do site (#003399/#1e40af).
--------------------------------------------------------------------*/
/* modal */
.reviews-modal-backdrop {
  background-color: var(--sombra-15);
}

.reviews-modal {
  background-color: var(--superficie);
  color: var(--texto);
}

.reviews-button-close {
  background-color: var(--superficie);
  color: var(--texto);
}

.reviews-button-close:hover {
  color: var(--primaria);
}

.reviews-modal-data {
  color: var(--texto-claro);
}

.reviews-modal-nome {
  color: var(--texto);
}

.reviews-modal-texto {
  color: var(--texto);
}

.reviews-modal-content::-webkit-scrollbar-track {
  background: var(--superficie) !important;
}

.reviews-modal-content::-webkit-scrollbar-thumb {
  background: var(--texto) !important;
}

.reviews-modal-content::-webkit-scrollbar-thumb:hover {
  background: var(--texto-medio);
}

/* widget */
.reviews-avaliacao {
  color: var(--texto);
}

.reviews-vermais {
  background-color: var(--acento);
  color: var(--acento-texto);
  border-radius: 20px;
  font-weight: 500;
}

.reviews-content::-webkit-scrollbar-track {
  background: var(--superficie) !important;
}

.reviews-content::-webkit-scrollbar-thumb {
  background: var(--preto) !important;
}

.reviews-content::-webkit-scrollbar-thumb:hover {
  background: var(--texto-medio);
}



/*-------------------------------------------------------------------
MODALS
--------------------------------------------------------------------*/
.modalbackdrop {
  width: 100%;
  height: 100vh;
  position: absolute;
  display: flex;
  justify-content: center;
  z-index: 10050;
  background-color: var(--sombra-15);
}

.modal-alert {
  width: 40%;
  min-height: 300px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  border-radius: 10px;
  opacity: 0;
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
}

.modal-titulo {
  width: 100%;
  position: relative;
  float: left;
  font-size: 1.1em;
  font-weight: 500;
  text-align: left;
  padding: 20px
}

.modal-content {
  width: 100%;
  max-height: 70vh;
  overflow: auto;
  position: relative;
  float: left;
  font-size: 0.9em;
  margin-bottom: 80px;
  border: none;
  text-align: left;
  padding: 0px 20px 20px 20px;
}

.modal-bottom {
  min-height: 40px;
  font-size: 0.9em;
  position: absolute;
  bottom: 0px;
  text-align: right;
  padding: 20px
}

.modal-button-sucesso,
.modal-button-close {
  position: relative;
  float: right;
  padding: 12px 30px 12px 55px;
  margin: 0px 2px 0px 2px;
  font-size: 0.9em;
  text-align: center;
  border-radius: 30px;
  cursor: pointer;
  -webkit-box-shadow: 0px 0px 13px -3px var(--sombra-13);
  -moz-box-shadow: 0px 0px 13px -3px var(--sombra-13);
  box-shadow: 0px 0px 13px -3px var(--sombra-13);
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}

.modal-button-close {
  float: left;
}

.modal-button-close:hover,
.modal-button-sucesso:hover {
  opacity: 0.8;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}

.modal-button-sucesso img,
.modal-button-close img {
  width: 18px;
  position: absolute;
  top: 12px;
  left: 25px;
}

@media screen and (max-width: 1023px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .modal-alert {
    width: 90%;
  }
}

/*-------------------------------------------------------------------
SHARE
--------------------------------------------------------------------*/
.modalsharebackdrop {
  width: 100%;
  height: 100vh;
  position: absolute;
  display: flex;
  justify-content: center;
  z-index: 10050;
  background-color: var(--sombra-15);
}

.modal-share {
  width: 40%;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  border-radius: 10px;
  opacity: 0;
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
}

.modal-share-content {
  width: 100%;
  max-height: 70vh;
  overflow: auto;
  position: relative;
  float: left;
  padding: 20px;
}

.share-cell {
  width: 25%;
  position: relative;
  float: left;
  text-align: center;
  padding: 20px;
}

.share-iten {
  width: 100%;
  position: relative;
  float: left;
  border-radius: 10px;
  padding: 20px;
  cursor: pointer;
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
}

.share-iten:hover {
  transform: scale(0.9);
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
}

.share-iten img {
  height: 50px;
  width: auto;
}

.modal-share-close {
  position: absolute;
  right: -20px;
  top: -20px;
  width: 40px;
  height: 40px;
  z-index: 2;
  font-size: 1.5em;
  padding: 4px 0px 0px 4px;
  text-align: center;
  border-radius: 50%;
  cursor: pointer;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}

@media screen and (max-width: 1023px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .modal-share {
    width: 90%;
  }

  .share-cell {
    width: 33.33%;
    padding: 10px
  }

  .share-cell img {
    height: 50px;
    width: auto;
  }
}

@media screen and (min-width: 1024px) and (max-width: 1279px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .modal-share {
    width: 50%;
  }

  .share-cell img {
    height: 30px;
  }
}

@media screen and (min-width: 1280px) and (max-width: 1919px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .share-cell img {
    height: 30px;
  }
}

/*-------------------------------------------------------------------
FORMULÁRIOS
--------------------------------------------------------------------*/
.formulario-all label {
  font-size: 0.9em;
  line-height: 2em;
  font-family: "Poppins", sans-serif;
}

.formulario-all select {
  font-family: "Poppins", sans-serif;
  font-size: 0.9em;
  width: 100%;
  color: var(--texto);
  font-weight: 500;
  padding: 12px 35px 12px 12px !important;
  background: url("https://omeustand.pt/websites/resources/images/navigation-menu.svg") no-repeat;
  background-size: 20px;
  background-position: right center;
  background-color: var(--superficie);
  border: none;
  border-right: 10px solid var(--transp-01);
}

.formulario-all input,
.formulario-all textarea {
  box-sizing: border-box;
  font-family: "Poppins", sans-serif;
  font-weight: 500;
  padding: 14px;
  width: 100%;
  font-size: 0.9em;
}


.formulario-all input[type="checkbox"] {
  width: 20px;
  height: 20px;
  border-radius: 10px !important;
  color: var(--acento-texto);
  font-size: 12px;
  padding: 5px;
  margin: 10px;
  transform: rotate(-45deg);
  transition: transform 0.5s ease-in-out;
}

.formulario-all input[type="checkbox"]:checked {
  transform: rotate(0deg);
  transition: transform 0.5s ease-in-out;
}

.formulario-all span {
  position: absolute;
  top: 12px;
  left: 50px
}

/*-------------------------------------------------------------------
CONTACTOS
--------------------------------------------------------------------*/
.contactos-texto {
  font-size: 1em;
}

.contactos-morada-titulo {
  padding: 20px;
  font-size: 1.2em;
  font-weight: 600;
}

.contactos-info img {
  width: 30px;
  padding-right: 20px;
}

.contactos-info span {
  font-size: 0.95em;
  position: absolute;
  top: 7px;
}

.contactos-info i {
  font-size: 0.8em;
}


.contactos-form label {
  font-size: 0.9em;
  padding-left: 10px;
  line-height: 2em;
  font-family: "Poppins", sans-serif;
}

.contactos-form select {
  font-family: "Poppins", sans-serif;
  font-size: 0.9em;
  width: 100%;
  font-weight: 500;
  padding: 12px 35px 12px 12px !important;
  background: url("https://omeustand.pt/websites/resources/images/navigation-menu.svg") no-repeat;
  background-size: 20px;
  background-position: right center;
  border: none;
  border-right: 10px solid var(--transp-01);
}


.contactos-form input,
.contactos-form textarea {
  border-radius: 30px;
  box-sizing: border-box;
  font-family: "Poppins", sans-serif;
  border: none;
  font-weight: 500;
  padding: 14px;
  width: 100%;
  font-size: 0.9em;
}

.contactos-form input::placeholder,
.contactos-form textarea::placeholder {
  font-weight: 500;
  font-size: 0.9em;
}

input[type="checkbox"] {
  width: 20px;
  height: 20px;
  border-radius: 10px !important;
  color: var(--acento-texto);
  font-size: 12px;
  padding: 5px;
  margin: 10px;
  cursor: pointer;
  transform: rotate(-45deg);
  transition: transform 0.5s ease-in-out;
}

input[type="checkbox"]:checked {
  transform: rotate(0deg);
  transition: transform 0.5s ease-in-out;
}

.contactos-form span {
  position: absolute;
  top: 12px;
  left: 50px
}

a.contactos:link,
a.contactos:visited,
a.contactos:hover,
a.contactos:active {
  font-size: 0.9em;
  text-decoration: none;
  font-weight: 500;
}

a.contactos:hover {
  opacity: 0.9;
}

.contactos-button-align {
  display: flex;
  justify-content: center;
}

/* ============================================================
   PÁGINA DE CONTACTOS — UI moderno (cards, mapa, horário)
   ============================================================ */
.contactos-wrapper {
  padding: 10px 0 60px 0;
}

.contactos-intro {
  font-size: 1.05em;
  color: var(--texto-azulado);
  text-align: center;
  max-width: 62ch;
  margin: 0 auto 42px auto;
  line-height: 1.6;
}

.contactos-content {
  display: grid;
  gap: 28px;
}

/* 1 morada: card da morada + formulário lado a lado */
.contactos-single .contactos-content {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: start;
}

/* 2+ moradas: moradas em grelha no topo, formulário por baixo */
.contactos-multi .contactos-content {
  grid-template-columns: 1fr;
}
.contactos-multi .contactos-moradas-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 24px;
}
/* o formulário ocupa a mesma largura que a grelha de moradas por cima */
.contactos-multi .contactos-form-card {
  width: 100%;
  margin: 6px 0 0 0;
}

/* card da morada */
.contactos-card {
  background: var(--superficie);
  border: 1px solid var(--fundo-claro);
  border-radius: 18px;
  padding: 28px 28px 24px 28px;
  box-shadow: 0 12px 30px var(--tint-primaria-01);
  -webkit-transition: box-shadow .25s ease, transform .25s ease;
  transition: box-shadow .25s ease, transform .25s ease;
}
.contactos-card:hover {
  box-shadow: 0 18px 40px var(--tint-primaria-03);
  -webkit-transform: translateY(-2px);
  transform: translateY(-2px);
}

.contactos-card-titulo {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: "Poppins", sans-serif;
  font-size: 1.25em;
  font-weight: 700;
  color: var(--primaria);
  margin-bottom: 22px;
}
.contactos-card-pin {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--primaria), var(--botao));
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.contactos-card-linhas {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.contactos-linha {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  font-size: 0.95em;
  color: var(--texto);
  line-height: 1.5;
}
.contactos-linha > img,
.contactos-linha > svg {
  flex: 0 0 auto;
  width: 22px;
  height: 22px;
  margin-top: 2px;
}
.contactos-linha > img {
  filter: brightness(0) invert(1);
}
.contactos-linha a {
  color: var(--primaria-escura);
  font-weight: 600;
  text-decoration: none;
}
.contactos-linha a:hover {
  color: var(--primaria);
  text-decoration: underline;
}
.contactos-linha i {
  display: block;
  font-size: 0.8em;
  font-style: normal;
  color: var(--texto-azulado4);
  margin-top: 1px;
}
.contactos-linha-horario strong {
  color: var(--primaria-escura);
}

/* mapa embutido */
.contactos-mapa {
  margin-top: 22px;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--fundo-claro);
  line-height: 0;
}
.contactos-mapa iframe {
  width: 100% !important;
  height: 220px !important;
  border: 0 !important;
  display: block;
}

/* botão obter direções */
.contactos-direcoes-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 18px;
  padding: 11px 22px;
  border-radius: 8px;
  background: var(--fundo-claro);
  color: var(--primaria);
  font-weight: 600;
  font-size: 0.9em;
  text-decoration: none;
  -webkit-transition: background-color .2s ease, color .2s ease;
  transition: background-color .2s ease, color .2s ease;
}
.contactos-direcoes-btn img {
  width: 18px;
  height: 18px;
  filter: brightness(0) invert(1);
}
.contactos-direcoes-btn:hover {
  background: var(--acento);
  color: var(--acento-texto);
  text-decoration: none;
}
.contactos-direcoes-btn:hover img {
  filter: brightness(0);
}

/* card do formulário */
.contactos-form-card {
  background: var(--superficie);
  border: 1px solid var(--fundo-claro);
  border-radius: 18px;
  padding: 30px 30px 34px 30px;
  box-shadow: 0 12px 30px var(--tint-primaria-01);
}
.contactos-form-titulo {
  font-family: "Poppins", sans-serif;
  font-size: 1.25em;
  font-weight: 700;
  color: var(--primaria);
  margin-bottom: 24px;
}
.contactos-termos {
  display: flex;
  align-items: center;
  font-size: 0.9em;
  color: var(--texto-azulado);
}
/* neutraliza o position:absolute genérico de .contactos-form span nos termos */
.contactos-termos span {
  position: static;
  top: auto;
  left: auto;
}
.contactos-termos a {
  color: var(--primaria);
}

/* mobile */
@media screen and (max-width: 1023px) {
  .contactos-single .contactos-content {
    grid-template-columns: 1fr;
  }
  .contactos-multi .contactos-moradas-grid {
    grid-template-columns: 1fr;
  }
}
@media screen and (max-width: 767px) {

  .contactos-card,
  .contactos-form-card {
    padding: 22px 20px;
  }
  .contactos-intro {
    font-size: 0.98em;
    margin-bottom: 30px;
  }
  .contactos-card-titulo {
    font-size: 1.15em;
  }
}

@media screen and (min-width: 1024px) and (max-width: 1919px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .contactos-texto {
    font-size: 0.7em;
  }

  .contactos-morada-titulo {
    font-size: 1.1em;
  }

  .contactos-info img {
    width: 25px;
  }

  .contactos-info span {
    font-size: 0.85em;
    top: 7px;
  }

  .contactos-info i {
    font-size: 0.7em;
  }

  .contactos-form label {
    font-size: 0.8em;
    padding-left: 10px;
  }

}

@media screen and (min-width: 1280px) and (max-width: 1365px) {

  /* PARA DISPOSITIVOS MÉDIOS*/
  .contactos-texto {
    font-size: 0.8em;
  }

  .contactos-morada-titulo {
    font-size: 1.2em;
  }
}

@media screen and (min-width: 1366px) and (max-width: 1919px) {

  /* PARA DISPOSITIVOS MÉDIOS*/
  .contactos-texto {
    font-size: 0.8em;
  }

  .contactos-morada-titulo {
    font-size: 1.2em;
  }
}


/*-------------------------------------------------------------------
WIDGET - FINANCIAMENTO V1
--------------------------------------------------------------------*/
.financiamento-titulos {
  font-size: 1.2em;
  font-weight: 600;
  margin-bottom: 20px;
}

.financiamento-form label {
  font-size: 0.9em;
  line-height: 2em;
  padding-left: 10px;
  font-family: "Poppins", sans-serif;
}

.financiamento-form select {
  font-family: "Poppins", sans-serif;
  font-size: 0.9em;
  width: 100%;
  font-weight: 500;
  cursor: pointer;
  padding: 12px 35px 12px 12px !important;
  background: url("https://omeustand.pt/websites/resources/images/navigation-menu.svg") no-repeat;
  background-size: 20px;
  background-position: right center;
  border: none;
  border-radius: 30px;
  border-right: 10px solid var(--transp-01);
  background-color: var(--input-fundo);
  background-position: right 15px center;
  color: var(--texto);
}

.financiamento-form input[type="text"],
.financiamento-form input[type="email"],
.financiamento-form textarea {
  box-sizing: border-box;
  border: none;
  font-family: "Poppins", sans-serif;
  border-radius: 30px;
  font-weight: 500;
  padding: 14px;
  width: 100%;
  font-size: 0.9em;
}

.financiamento-form input[type="text"]::placeholder,
.financiamento-form input[type="email"]::placeholder,
.financiamento-form textarea::placeholder {
  font-weight: 500;
  font-size: 0.9em;
}

input[type="checkbox"] {
  width: 20px;
  height: 20px;
  border-radius: 10px !important;
  color: var(--acento-texto);
  font-size: 12px;
  padding: 5px;
  margin: 10px;
  transform: rotate(-45deg);
  transition: transform 0.5s ease-in-out;
}

input[type="checkbox"]:checked {
  transform: rotate(0deg);
  transition: transform 0.5s ease-in-out;
}

a.financiamento:link,
a.financiamento:visited,
a.financiamento:hover,
a.financiamento:active {
  font-size: 0.9em;
  text-decoration: none;
  font-weight: 500;
}

a.financiamento:hover {
  opacity: 0.9;
}


.financiamento-addmore {
  position: relative;
  float: left;
  font-size: 1em;
  font-weight: 500;
  padding: 8px 30px 8px 30px;
  border-radius: 30px;
  cursor: pointer;
  box-shadow: none;
  border: none;
  -webkit-transition: all 0.5s;
  transition: all 0.5s;
}

.financiamento-addmore:hover {
  opacity: 0.8;
}

.financiamento-align-buttom {
  display: flex;
  justify-content: center;
}


.financiamento-form input[type="file"] {
  text-align: center;
  padding: 40px;
  border-radius: 5px;
  cursor: pointer;
}

.financiamento-loading {
  display: flex;
  justify-content: center;
}

.financiamento-loading img {
  width: 100px;
  height: auto;
}

@media screen and (max-width: 1023px) {
  /* PARA SMARTPHONE E TABLET*/

}

@media screen and (min-width: 1024px) and (max-width: 1365px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .financiamento-titulos {
    font-size: 1.1em;
  }

  .financiamento-form label {
    font-size: 0.7em;
  }
}

/*-------------------------------------------------------------------
WIDGET - COMPRAMOS V1
--------------------------------------------------------------------*/
.compramos-titulos {
  font-size: 1.2em;
  font-weight: 500;
  margin-bottom: 20px;
}

.compramos-form label {
  font-size: 0.9em;
  padding-left: 10px;
  line-height: 2em;
  font-family: "Poppins", sans-serif;
}

.compramos-form select {
  font-family: "Poppins", sans-serif;
  font-size: 0.9em;
  width: 100%;
  font-weight: 500;
  cursor: pointer;
  padding: 12px 35px 12px 12px !important;
  background: url("https://omeustand.pt/websites/resources/images/navigation-menu.svg") no-repeat;
  background-size: 20px;
  background-position: right center;
  border-radius: 30px;
  border-right: 10px solid var(--transp-01);
  background-color: var(--input-fundo);
  background-position: right 15px center;
  color: var(--texto);
  border: none;
}

.compramos-form input[type="text"],
.compramos-form input[type="email"],
.compramos-form textarea {
  box-sizing: border-box;
  font-family: "Poppins", sans-serif;
  border: none;
  border-radius: 30px;
  font-weight: 500;
  padding: 14px;
  width: 100%;
  font-size: 0.9em;
}

.compramos-form input[type="text"]::placeholder,
.compramos-form input[type="email"]::placeholder,
.compramos-form textarea::placeholder {
  font-weight: 500;
  font-size: 0.9em;
}

input[type="checkbox"] {
  width: 20px;
  height: 20px;
  border-radius: 10px !important;
  color: var(--acento-texto);
  font-size: 12px;
  padding: 5px;
  margin: 10px;
  transform: rotate(-45deg);
  transition: transform 0.5s ease-in-out;
}

input[type="checkbox"]:checked {
  transform: rotate(0deg);
  transition: transform 0.5s ease-in-out;
}

a.compramos:link,
a.compramos:visited,
a.compramos:hover,
a.compramos:active {
  font-size: 0.9em;
  text-decoration: none;
  font-weight: 500;
}

a.compramos:hover {
  opacity: 0.9;
}

.compramos-anexos-subtitulo {
  font-size: 1.05em;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  padding-bottom: 10px;
}

.compramos-hide {
  display: none;
}

.compramos-drop-container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 12px;
}

.compramos-drop-container {
  position: relative;
  display: flex;
  gap: 12px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 190px;
  overflow: hidden;
  padding: 18px;
  border-radius: 14px;
  cursor: pointer;
  -webkit-transition: background .2s ease, border-color .2s ease, box-shadow .2s ease;
  transition: background .2s ease, border-color .2s ease, box-shadow .2s ease;
}

/* ícone de câmara (SVG) por cima da legenda */
.compramos-drop-container::before {
  content: "";
  width: 44px;
  height: 44px;
  flex: 0 0 auto;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 24 24' fill='none' stroke='%23808080' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z'/><circle cx='12' cy='13' r='4'/></svg>");
  -webkit-transition: transform .2s ease;
  transition: transform .2s ease;
}

.compramos-drop-container:hover::before {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z'/><circle cx='12' cy='13' r='4'/></svg>");
  -webkit-transform: translateY(-2px);
  transform: translateY(-2px);
}

.compramos-drop-title {
  font-family: "Poppins", sans-serif;
  font-size: 0.9em;
  font-weight: 600;
  text-align: center;
  line-height: 1.35;
  -webkit-transition: color .2s ease;
  transition: color .2s ease;
}

.compramos-drop-container input[type=file] {
  display: none;
}

/* com foto escolhida (preview visível): preenche a caixa e esconde ícone + legenda */
.compramos-drop-container:has(img:not(.compramos-hide)) {
  padding: 0;
  border-style: solid;
  border-color: var(--primaria);
}

.compramos-drop-container:has(img:not(.compramos-hide))::before,
.compramos-drop-container:has(img:not(.compramos-hide)) .compramos-drop-title {
  display: none;
}

@media screen and (min-width: 1024px) and (max-width: 1279px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .compramos-drop-container {
    height: 150px;
    gap: 8px;
    padding: 14px;
  }

  .compramos-drop-container::before {
    width: 32px;
    height: 32px;
  }

  .compramos-drop-title {
    font-size: 0.8em;
  }
}

/*-------------------------------------------------------------------
WIDGET - OFICINA
--------------------------------------------------------------------*/
.oficina-titulos {
  font-size: 1.2em;
  font-weight: 500;
  margin-bottom: 20px;
  text-align: left
}

.oficina-servico {
  padding: 20px;
  width: 180px;
  position: relative;
  float: left;
  margin: 10px 20px 10px 0px;
  text-align: center;
  border-radius: 20px;
  webkit-transition: all 0.3s;
  transition: all 0.3s;
}

.oficina-servico img {
  width: 60px;
  height: auto;
}

.oficina-servico span {
  font-size: 0.9em;
  font-weight: 500;
}

.oficina-form label {
  font-size: 0.9em;
  padding-left: 10px;
  line-height: 2em;
  font-family: "Poppins", sans-serif;
}

.oficina-servico:hover,
.oficina-servico.active {
  cursor: pointer;
  webkit-transition: all 0.5s;
  transition: all 0.5s;
}

.oficina-servico:hover span {
  webkit-transition: all 0.5s;
  transition: all 0.5s;
}

.oficina-servico:hover img {
  webkit-transition: all 0.3s;
  transition: all 0.3s;
}

.oficina-servico.active span {
  webkit-transition: all 0.5s;
  transition: all 0.5s;
}

.oficina-servico.active img {
  webkit-transition: all 0.3s;
  transition: all 0.3s;
}


.oficina-form select {
  font-family: "Poppins", sans-serif;
  font-size: 0.9em;
  width: 100%;
  font-weight: 500;
  cursor: pointer;
  padding: 15px 35px 14px 12px !important;
  background: url("https://omeustand.pt/websites/resources/images/navigation-menu.svg") no-repeat;
  background-size: 20px;
  background-position: right center;
  border-radius: 30px;
  border-right: 10px solid var(--transp-01);
  background-position: right 15px center;
  border: none;
}

.oficina-form input[type="text"],
.oficina-form input[type="email"],
.oficina-form textarea {
  box-sizing: border-box;
  font-family: "Poppins", sans-serif;
  border: none;
  border-radius: 30px;
  font-weight: 500;
  padding: 14px;
  width: 100%;
  font-size: 0.9em;
}

.oficina-form input[type="text"]::placeholder,
.oficina-form input[type="email"]::placeholder,
.oficina-form textarea::placeholder {
  font-weight: 500;
  font-size: 0.9em;
}

/* Checkbox moderno (uniforme em todos os formulários) */
input[type="checkbox"] {
  -webkit-appearance: none;
  appearance: none;
  width: 20px !important;
  height: 20px !important;
  min-width: 20px;
  border: 2px solid var(--azul-02) !important;
  border-radius: 6px !important;
  background-color: var(--superficie) !important;
  padding: 0 !important;
  margin: 0 8px 0 0 !important;
  cursor: pointer;
  position: relative;
  vertical-align: middle;
  transform: none !important;
  -webkit-transition: background-color .2s ease, border-color .2s ease;
  transition: background-color .2s ease, border-color .2s ease;
}

input[type="checkbox"]:hover {
  border-color: var(--primaria) !important;
}

input[type="checkbox"]:checked {
  background-color: var(--acento) !important;
  border-color: var(--primaria) !important;
  transform: none !important;
}

input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 2px;
  width: 5px;
  height: 10px;
  border: solid var(--branco);
  border-width: 0 2px 2px 0;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

a.oficina:link,
a.oficina:visited,
a.oficina:hover,
a.oficina:active {
  font-size: 0.9em;
  text-decoration: none;
  font-weight: 500;
}

a.oficina:hover {
  opacity: 0.9;
}

@media screen and (max-width: 1023px) {

  /* PARA SMARTPHONE E TABLET*/
  .oficina-titulos {
    font-size: 1.2em;
    text-align: center
  }

  .oficina-servico {
    padding: 15px;
    width: 160px;
  }

  .oficina-servico img {
    width: 40px;
  }

  .oficina-servico span {
    font-size: 0.8em;
  }
}

@media screen and (max-width: 360px) {
  .oficina-servico {
    padding: 10px;
    width: 140px;
    max-width: 140px;
    margin: 5px;
  }

  .oficina-servico img {
    width: 40px;
  }

  .oficina-servico span {
    font-size: 0.75em;
  }
}

@media screen and (min-width: 361px) and (max-width: 447px) {
  /* PARA DISPOSITIVOS PEQUENOS*/

}

@media screen and (min-width: 448px) and (max-width: 1023px) {
  /* PARA DISPOSITIVOS PEQUENOS*/

}

@media screen and (min-width: 1024px) and (max-width: 1279px) {

  /* PARA DISPOSITIVOS PEQUENOS*/
  .oficina-servico {
    padding: 15px;
    width: 160px;
    max-width: 160px;
  }

  .oficina-servico img {
    width: 40px;
  }

  .oficina-servico span {
    font-size: 0.8em;
  }
}

@media screen and (min-width: 1280px) and (max-width: 1919px) {
  .oficina-servico {
    padding: 20px;
    width: 170px;
    max-width: 170px;
  }

  .oficina-servico img {
    width: 40px;
  }

  .oficina-servico span {
    font-size: 0.8em;
  }
}

/*-------------------------------------------------------------------
MORADAS - WIDGET
--------------------------------------------------------------------*/
.moradas-div {
  width: 100%;
  position: relative;
  float: left;
  padding: 70px 0px 80px 0px;
  background-color: var(--fundo-claro);
}

.moradas-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 30px;
}

.moradas-card {
  flex: 0 1 400px;
  background: var(--superficie);
  border-radius: 22px;
  box-shadow: 0px 8px 28px var(--sombra-01);
  padding: 38px 38px 55px 38px;
}

.moradas-titulo {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 22px;
}

.moradas-pin {
  flex-shrink: 0;
}

.moradas-titulo span {
  color: var(--primaria);
  font-family: "Poppins", sans-serif;
  font-size: 1.2em;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.moradas-morada {
  color: var(--azul-01);
  font-family: "Poppins", sans-serif;
  font-size: 0.98em;
  line-height: 1.6;
  margin-bottom: 22px;
}

.moradas-linha {
  margin-bottom: 18px;
  color: var(--texto);
  font-family: "Poppins", sans-serif;
  font-size: 0.98em;
}

.moradas-label {
  color: var(--primaria);
  font-weight: 700;
}

.moradas-linha a {
  color: var(--texto);
  text-decoration: none;
  transition: color .2s ease;
}

.moradas-linha a:hover {
  color: var(--primaria);
  text-decoration: none;
}

.moradas-law {
  color: var(--texto-claro);
  font-size: 0.78em;
  margin-top: 2px;
}

.moradas-foto-div {
  position: relative;
  z-index: 1;
  margin-top: 26px;
}

.moradas-foto {
  width: 100%;
  height: 175px;
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  border-radius: 16px;
}

.moradas-direcoes {
  position: absolute;
  z-index: 2;
  left: 50%;
  bottom: -38px;
  transform: translateX(-50%);
  width: 96px;
  height: 96px;
  background: var(--fundo-claro);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-shadow: 0px 4px 16px var(--sombra-07);
}

.moradas-direcoes {
  -webkit-transition: transform .2s ease, background-color .2s ease;
  transition: transform .2s ease, background-color .2s ease;
}

.moradas-direcoes:hover {
  text-decoration: none;
  background: var(--fundo-claro6);
  transform: translateX(-50%) scale(1.05);
}

.moradas-direcoes img {
  /* !important para vencer o `.owl-item img { width:100% }` do carrossel
     owl (no mobile as moradas ficam num carrossel; sem isto o ícone
     renderiza a 96px e o ícone+texto saem do círculo) */
  width: 26px !important;
  max-width: 26px !important;
  height: auto !important;
}

.moradas-direcoes span {
  color: var(--primaria-escura);
  font-family: "Poppins", sans-serif;
  font-size: 0.62em;
  font-weight: 700;
  text-align: center;
  margin-top: 3px;
  line-height: 1.1;
}

/* quando não há foto, o botão fica centrado por baixo */
.moradas-direcoes-solo {
  position: relative;
  left: auto;
  bottom: auto;
  transform: none;
  margin: 30px auto 0px auto;
}

.moradas-direcoes-solo:hover {
  transform: scale(1.05);
}

@media screen and (min-width:768px) and (max-width:1023px) {
  .moradas-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
  }

  .moradas-card {
    padding: 30px 28px 50px 28px;
  }
}

@media screen and (max-width:767px) {
  .moradas-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .moradas-card {
    padding: 30px 26px 50px 26px;
  }
}

/* carrossel mobile: espaço para a sombra não ser cortada + setas */
@media screen and (max-width:1023px) {
  .moradas-grid .owl-stage-outer {
    padding: 20px 0px 40px 0px;
  }

  .moradas-grid .owl-nav {
    text-align: center;
    margin-top: 6px;
  }

  .moradas-grid .owl-nav button.owl-prev,
  .moradas-grid .owl-nav button.owl-next {
    display: inline-block !important;
    margin: 0px 26px;
    background: transparent !important;
    border: none;
    padding: 0px;
  }

  .moradas-nav-cell {
    display: inline-block;
    width: 18px;
    height: 18px;
    border-style: solid;
    border-color: var(--primaria);
    border-width: 2px 2px 0px 0px;
    cursor: pointer;
  }

  .moradas-grid .owl-nav button.owl-prev .moradas-nav-cell {
    transform: rotate(-135deg);
  }

  .moradas-grid .owl-nav button.owl-next .moradas-nav-cell {
    transform: rotate(45deg);
  }

  .moradas-grid.owl-theme .owl-dots {
    margin-top: 6px;
  }

  .moradas-grid.owl-theme .owl-dots .owl-dot span {
    background: var(--azul-04);
  }

  .moradas-grid.owl-theme .owl-dots .owl-dot.active span {
    background: var(--acento);
  }
}

/*-------------------------------------------------------------------
RODAPÉ
--------------------------------------------------------------------*/
.rodape-div {
  width: 100%;
  position: relative;
  float: left;
  padding: 70px 0px 70px 0px;
  background-color: var(--fundo-claro6);
}

.rodape-logo {
  width: 190px;
  height: 72px;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: left center;
  margin-bottom: 45px;
}

.rodape-cols {
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
  justify-content: space-between;
}

.rodape-col {
  flex: 1 1 220px;
  min-width: 180px;
}

.rodape-titulo {
  font-family: "Poppins", sans-serif;
  color: var(--primaria-escura);
  font-size: 1.15em;
  font-weight: 700;
  margin-bottom: 22px;
}

.rodape-titulo-mt {
  margin-top: 45px;
}

.rodape-redes {
  display: flex;
  align-items: center;
  gap: 22px;
}

.rodape-redes a {
  display: inline-flex;
  line-height: 0;
}

/* Mesmos SVG _v2 do topo. O comentario antigo dizia que ja vinham na cor
   certa, mas trazem a cor da marca do stand (#173eb3 no jorgecar): no tema
   escuro ficavam azuis. brightness(0) leva a preto, invert(1) a branco. */
.rodape-redes a img {
  width: 28px;
  height: auto;
  filter: brightness(0) invert(1);
  transition: transform .2s ease, opacity .2s ease;
}

.rodape-redes a:hover img {
  transform: translateY(-2px);
  opacity: 0.8;
}

.rodape-premios {
  display: flex;
  align-items: center;
}

.rodape-premio {
  width: 220px;
  max-width: 100%;
  height: 72px;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: left center;
}

.rodape-links {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.rodape-links a,
.rodape-links span {
  font-family: "Open Sans", sans-serif;
  color: var(--texto-azulado3);
  font-size: 0.92em;
  font-weight: 400;
  text-decoration: none;
  transition: color .2s ease;
}

.rodape-links a:hover {
  color: var(--primaria);
  text-decoration: none;
}

@media screen and (max-width:1023px) {
  .rodape-div {
    padding: 50px 0px 50px 0px;
  }

  .rodape-cols {
    gap: 35px;
  }
}

@media screen and (max-width:767px) {
  .rodape-cols {
    gap: 55px;
  }

  .rodape-col {
    flex: 1 1 100%;
    text-align: center;
  }

  /* mais espaço entre "Redes Sociais" e "Prémios e Distinções" (mesma coluna) */
  .rodape-titulo-mt {
    margin-top: 55px;
  }

  .rodape-logo {
    margin: 0 auto 35px auto;
    background-position: center center;
  }

  .rodape-redes {
    justify-content: center;
  }

  .rodape-premios {
    justify-content: center;
  }

  .rodape-premio {
    background-position: center center;
  }

  .rodape-links {
    align-items: center;
  }
}

/*-------------------------------------------------------------------
RODAPÉ - DIREITOS + DEVELOPED
--------------------------------------------------------------------*/
.developed-div {
  width: 100%;
  position: relative;
  float: left;
  background-color: var(--fundo-claro);
  border-top: 1px solid var(--azul-06);
  padding: 26px 0px;
}

.developed-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}

.developed-direitos {
  font-family: "Open Sans", sans-serif;
  font-size: 0.95em;
  font-weight: 500;
  color: var(--texto-azulado3);
}

.developed-direitos .anoatual,
.developed-direitos .standname {
  color: var(--primaria);
  font-weight: 700;
}

.developed-by {
  display: flex;
  align-items: center;
  gap: 14px;
}

.developed-titulo {
  font-family: "Poppins", sans-serif;
  font-weight: 700;
  font-size: 0.95em;
  color: var(--primaria-escura);
}

.developed-logo {
  line-height: 0;
}

.developed-logo img {
  width: 58px;
  height: auto;
  display: block;
  -webkit-transition: transform .3s ease;
  transition: transform .3s ease;
}

.developed-logo img:hover {
  -webkit-transform: scale(1.08);
  transform: scale(1.08);
}

@media screen and (max-width:767px) {
  .developed-inner {
    flex-direction: column;
    text-align: center;
    gap: 16px;
  }
}

/*-------------------------------------------------------------------
SCROLL UP
--------------------------------------------------------------------*/
.scrolltop {
  position: fixed;
  right: 15px;
  border-radius: 10px;
  bottom: 50px;
  width: 40px;
  padding: 8px 10px 4px 10px;
  box-shadow: 0px 0px 15px -3px var(--sombra-04);
  z-index: 2;
  cursor: pointer;
  display: none
}

/*-------------------------------------------------------------------
FORMULÁRIOS
--------------------------------------------------------------------*/
/* estilo base (fechado) de todas as selectbox do site — igual ao da pesquisa */
select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  text-indent: 1px;
  text-overflow: '';
  font-family: "Poppins", sans-serif;
  font-size: 0.95em;
  color: var(--texto);
  background-color: var(--superficie);
  border: 1px solid var(--borda);
  border-radius: 12px;
  padding: 9px 40px 9px 16px;
  cursor: pointer;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
  box-shadow: 0px 2px 6px var(--sombra-01);
  transition: border-color .2s ease, box-shadow .2s ease;
}

select:hover {
  border-color: var(--primaria);
}

select:focus {
  outline: none;
  border-color: var(--primaria);
  box-shadow: 0px 0px 0px 3px var(--tint-primaria-03);
}

select>option {
  background-color: var(--superficie);
  color: var(--texto);
}

/* select de ordenação do stock — alinhado à direita */
/* a caixa de ordenacao encosta a direita. O margin-left:auto do select
   nativo deixou de chegar: com os dropdowns personalizados o select fica
   escondido dentro de um .custom-select (width:100%), que passava a ocupar
   a linha toda. Alinha-se agora pelo contentor. */
#ordenacao {
  display: flex;
  justify-content: flex-end;
}

#ordenacaoviaturas {
  display: block;
  width: 240px;
  max-width: 100%;
  margin-left: auto;
  margin-right: 0;
}

#ordenacao .custom-select {
  width: 260px;
  max-width: 100%;
}

/*-------------------------------------------------------------------
FICHA DA VIATURA: COMERCIAIS / EQUIPA
Reaproveita os cartões do widget da equipa (.equipa-*); aqui só se
ajusta o espaçamento, porque estão dentro da coluna da ficha e não
a toda a largura da página.
--------------------------------------------------------------------*/
.viatura-comerciais-titulo {
  text-align: center;
}

.viatura-comerciais-result {
  margin-top: 30px;
  padding: 0px;
}

@media screen and (max-width: 1023px) {
  .viatura-comerciais-result {
    margin-top: 20px;
  }
}

/*-------------------------------------------------------------------
TEMA AI19B — AJUSTES DE ESTRUTURA
Cantos retos, maiúsculas espaçadas e acento branco. Só estrutura;
as cores estão todas no /template/css/style.source.css do stand.
--------------------------------------------------------------------*/

/* ---------- TOPO ---------- */
.header-actions {
  display: flex;
  align-items: center;
  gap: 18px;
}

.btn-lupa {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0px;
  border: none;
  background: none;
  cursor: pointer;
  transition: opacity .2s ease;
}

.btn-lupa:hover {
  opacity: 0.65;
}

/* botao de contacto: contorno, sem preenchimento (como no tema) */
.btn-contact {
  display: inline-flex;
  align-items: center;
  padding: 11px 26px;
  border: 1px solid;
  border-radius: 0px;
  text-decoration: none;
  font-size: 0.78em;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  transition: background-color .25s ease, color .25s ease;
}

.btn-contact:link,
.btn-contact:visited,
.btn-contact:hover,
.btn-contact:active {
  text-decoration: none;
}

/* O span do modelo base traz color e max-width proprios. A cor tinha de
   deixar de ser fixa: como o hover so' muda a cor do <a>, o span ficava
   branco sobre o fundo branco do hover — o texto desaparecia. O
   max-width de 90px era para o layout com icone, que aqui nao existe. */
.btn-contact span {
  color: inherit;
  max-width: none;
}

/* ---------- TITULO DE SECCAO COM LINK A DIREITA ---------- */
.home-titulos-linha {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}

.home-titulos-linha .home-titulo {
  text-align: left;
  margin: 0px;
}

.ver-todas {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-family: "Poppins", sans-serif;
  font-size: 0.78em;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  white-space: nowrap;
  transition: gap .2s ease;
}

.ver-todas:link,
.ver-todas:visited,
.ver-todas:hover,
.ver-todas:active {
  text-decoration: none;
}

.ver-todas:hover {
  gap: 15px;
}

/* ---------- VISITE-NOS (cartoes vindos das moradas) ---------- */
.visite-div {
  padding: 70px 0px 70px 0px;
}

.visite-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(420px, 1fr));
  gap: 24px;
}

.visite-card {
  display: grid;
  grid-template-columns: 1fr 42%;
  align-items: stretch;
  min-height: 210px;
  overflow: hidden;
}

.visite-texto {
  padding: 34px 30px 34px 34px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.visite-titulo {
  font-family: "Poppins", sans-serif;
  font-size: 1.15em;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  line-height: 1.4;
}

.visite-prefixo {
  font-weight: 300;
}

.visite-morada {
  font-family: "Poppins", sans-serif;
  font-size: 0.9em;
  line-height: 1.7;
  margin-top: 14px;
}

.visite-botao {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  align-self: flex-start;
  margin-top: 22px;
  padding: 11px 22px;
  border: 1px solid;
  border-radius: 0px;
  font-family: "Poppins", sans-serif;
  font-size: 0.75em;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.1px;
  transition: background-color .25s ease, color .25s ease;
}

.visite-botao:link,
.visite-botao:visited,
.visite-botao:hover,
.visite-botao:active {
  text-decoration: none;
}

.visite-foto {
  background-position: center center;
  background-size: cover;
  background-repeat: no-repeat;
  min-height: 210px;
}

/* ---------- FAIXA DE SERVICOS (4 colunas com separadores) ---------- */
/* mais folga em cima para separar a faixa dos destaques (que fecha com
   80px de padding); em baixo chega menos, porque os testemunhos ja abrem
   com 90px */
.servicos-div {
  padding: 110px 0px 70px 0px;
}

.servicos-cell {
  text-align: center;
  padding: 0px 24px;
}

.servicos-box {
  background: none;
  box-shadow: none;
  border-radius: 0px;
  padding: 0px;
}

/* icones de linha (SVG monocromaticos em plugins/servicos/images).
   Sem moldura: a regra base do modelo desenha border + border-radius para a
   fotografia de 270px do AI18w; aqui e' apenas o icone. */
.servicos-img {
  width: 76px;
  height: 76px;
  margin: 0px auto 20px auto;
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
  border: none;
  border-radius: 0px;
}

/* mais respiro entre os cartoes e as setas do carrossel */
.servicos-largura.owl-theme .owl-nav {
  margin-top: 55px;
}

.servicos-titulo {
  font-family: "Poppins", sans-serif;
  font-size: 0.85em;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.1px;
  line-height: 1.5;
  margin-top: 0px;
}

.servicos-descricao {
  font-family: "Poppins", sans-serif;
  font-size: 0.8em;
  line-height: 1.6;
  margin-top: 10px;
}

/* ---------- HERO: dois botoes lado a lado ---------- */
.slide-botoes {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-top: 26px;
}

.slide-subtitulo {
  font-family: "Poppins", sans-serif;
  font-size: 0.8em;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 3px;
  margin-top: 16px;
}

/* ---------- RESPONSIVO ---------- */
@media screen and (max-width: 1023px) {
  /* margem lateral: o .site-width so' deixa 1% de cada lado (4px num
     ecra de 375), o que colava os cartoes as bordas */
  .visite-div {
    padding: 45px 14px 45px 14px;
  }

  .visite-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .visite-card {
    grid-template-columns: 1fr;
    border-radius: 12px;
  }

  .visite-texto {
    padding: 24px 20px;
  }

  /* a fotografia e o mapa com a mesma altura, para os dois cartoes
     ficarem com o mesmo peso */
  .visite-foto,
  .visite-mapa {
    min-height: 180px;
  }

  /* o cartao "sobre nos" tem a foto em fundo: precisa de corpo proprio */
  .visite-card-sobre {
    min-height: 250px;
  }

  .home-titulos-linha {
    gap: 10px;
  }

  .servicos-div {
    padding: 70px 0px 50px 0px;
  }

  .servicos-cell {
    padding: 0px 12px;
  }

  .servicos-largura.owl-theme .owl-nav {
    margin-top: 34px;
  }

  /* espaco entre o banner e os segmentos: eram 100px (50 de padding da
     seccao + 50 de margem do resultado). A margem do resultado existia
     para separar o titulo da seccao dos cartoes, mas neste modelo a
     seccao nao tem titulo — era espaco morto. */
  .segmentos-div {
    padding: 34px 0px 14px 0px;
  }

  .segmentos-result {
    margin-top: 0px;
  }

  .btn-contact {
    padding: 9px 18px;
    font-size: 0.72em;
  }
}

/* hero: 1o botao solido, 2o com contorno */
.slide-btn-2 {
  background: none;
  border: 1px solid;
}


/*-------------------------------------------------------------------
RODAPÉ (tema AI19b) — logótipo, contactos em linha e redes
--------------------------------------------------------------------*/
.rodape-div {
  padding: 40px 0px 40px 0px;
}

.rodape-linha {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  flex-wrap: wrap;
}

.rodape-logo-link {
  flex: 0 0 auto;
}

.rodape-logo {
  width: 190px;
  height: 52px;
  background-position: left center;
  background-size: contain;
  background-repeat: no-repeat;
}

.rodape-contactos {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 42px;
  flex-wrap: wrap;
}

.rodape-contacto {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-family: "Poppins", sans-serif;
  font-size: 0.83em;
  line-height: 1.55;
}

.rodape-contacto svg {
  flex: 0 0 auto;
  margin-top: 2px;
}

.rodape-contacto a:link,
.rodape-contacto a:visited,
.rodape-contacto a:hover,
.rodape-contacto a:active {
  text-decoration: none;
}

.rodape-redes {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 16px;
}

.rodape-redes a {
  display: inline-flex;
  transition: opacity .2s ease;
}

.rodape-redes a:hover {
  opacity: 0.6;
}

/* barra de baixo: direitos à esquerda, assinatura à direita */
.developed-div {
  padding: 18px 0px 18px 0px;
  border-top: 1px solid;
}

.developed-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}

.developed-direitos,
.developed-by {
  font-family: "Poppins", sans-serif;
  font-size: 0.76em;
}

.developed-by {
  display: flex;
  align-items: center;
  gap: 10px;
}

.developed-logo img {
  width: 26px;
  height: auto;
  display: block;
}

@media screen and (max-width: 1023px) {
  /* em coluna: logotipo, contactos e, por baixo, as redes. Antes era uma
     linha com flex-wrap, e as redes acabavam ao lado dos contactos */
  .rodape-linha {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    gap: 26px;
  }

  .rodape-logo {
    background-position: center center;
    margin: 0px auto;
  }

  .rodape-contactos {
    flex-direction: column;
    align-items: center;
    gap: 22px;
  }

  /* icone por cima do texto, nao ao lado */
  .rodape-contacto {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
  }

  /* mais respiro entre os contactos e as redes */
  .rodape-redes {
    margin-top: 12px;
  }

  .developed-inner {
    justify-content: center;
    text-align: center;
  }
}


/*-------------------------------------------------------------------
TOPO (tema AI19b) — barra preta de largura total
O AI18w usava uma "pílula" flutuante centrada e escalava-a com zoom
porque o menu tinha min-width:800px. A toda a largura há espaço de
sobra, por isso o menu passa a dimensionar-se sozinho e o zoom sai.
--------------------------------------------------------------------*/
.navbar-container {
  position: absolute;
  top: 0px;
  left: 0px;
  transform: none;
  width: 100%;
  max-width: 100%;
  /* o <header> nao e um <div>, por isso nao apanha o box-sizing do framework:
     sem isto o padding somava-se aos 100% e a barra transbordava 92px */
  box-sizing: border-box;
  padding: 16px 46px;
  border-radius: 0px;
  box-shadow: none;
  justify-content: flex-start;
}

/* o menu deixa de estar ao centro: fica logo a seguir ao logótipo */
.nav-menu {
  margin-left: 46px;
  margin-right: auto;
}

.navbar-container .menu-pc {
  min-width: 0px;
  padding: 0px;
  border-radius: 0px;
}

/* o espacamento vinha sobretudo do a.menu-topo (padding 10px 25px = 50px por
   item). Passa a estar so no contentor, e o nowrap evita que rotulos de duas
   palavras ("Quem somos") partam em duas linhas. */
.navbar-container .menu-topo-buttom {
  padding: 0px 14px;
}

.navbar-container a.menu-topo:link,
.navbar-container a.menu-topo:visited,
.navbar-container a.menu-topo:hover,
.navbar-container a.menu-topo:active {
  padding: 8px 0px;
  margin: 0px;
  white-space: nowrap;
  font-size: 0.82em;
  letter-spacing: 0.6px;
}

/* O sublinhado do menu acompanha a largura do item. A regra base usa
   left/right: 25px, feita para o padding de 8px 25px do AI18w; aqui o
   padding e' 8px 0px, por isso o traco perdia 50px de largura em todos
   os itens — em "Viaturas" sobravam 11px e em "Home" ficava a zero, ou
   seja, a pagina ativa nao mostrava marca nenhuma. */
.navbar-container a.menu-topo::after {
  left: 0px;
  right: 0px;
}

.navbar-container .logo-area {
  width: 200px;
  height: 40px;
  background-position: left center;
}

/* barra ao fazer scroll: mesma forma, apenas mais fina */
.navbar-container.navbar-fixed {
  top: 0px;
  padding: 9px 46px;
  border-radius: 0px;
}

.navbar-container.navbar-fixed .logo-area {
  height: 34px;
}

/* a animação do AI18w reposicionava com translateX(-50%); aqui a barra
   já não está centrada por transform, por isso desce a direito */
.navbar-container.navbar-fixed {
  animation: navbarDescer 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes navbarDescer {
  from {
    transform: translateY(-130%);
    opacity: 0;
  }

  to {
    transform: translateY(0);
    opacity: 1;
  }
}

/* anula o zoom por breakpoint herdado do AI18w */
@media screen and (min-width: 1024px) and (max-width: 1919px) {
  .navbar-container {
    zoom: 1;
    width: 100%;
    max-width: 100%;
  }

  .navbar-container .logo-area {
    width: 170px;
    height: 36px;
  }

  .nav-menu {
    margin-left: 28px;
  }

  .navbar-container .menu-topo-buttom {
    padding: 0px 9px;
  }

  .navbar-container a.menu-topo:link,
  .navbar-container a.menu-topo:visited,
  .navbar-container a.menu-topo:hover,
  .navbar-container a.menu-topo:active {
    font-size: 0.76em;
  }
}

/* hero: cantos retos, a condizer com os restantes botoes do tema */
.slide-btn {
  border-radius: 0px;
}

/* a cor sai do bloco acima e passa a estar presa aos estados do link: assim
   vence o a:link global sem !important, e deixa o .slide-btn-2 (que vem depois,
   no CSS do stand) poder impor a sua propria cor */
.slide-btn:link,
.slide-btn:visited,
.slide-btn:hover,
.slide-btn:active {
  color: var(--acento-texto);
}


/*-------------------------------------------------------------------
BANNER (tema AI19b)
As setas vinham do framework partilhado: retangulos brancos a 190px do
topo. Passam a botoes circulares centrados verticalmente. O .ativo tem
especificidade (0,2,0), por isso a posicao tem de ser reposta la.
--------------------------------------------------------------------*/
.slide-before,
.slide-next {
  top: 50%;
  transform: translateY(-50%);
  width: 54px;
  height: 54px;
  padding: 0px;
  border-radius: 50%;
  border: 1px solid;
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  transition: background-color .25s ease, border-color .25s ease, transform .25s ease, opacity .35s ease;
}

.slide-before.ativo {
  left: 34px;
}

.slide-next.ativo {
  right: 34px;
}

.slide-before img,
.slide-next img {
  width: 15px;
  height: auto;
}

.slide-before:hover,
.slide-next:hover {
  transform: translateY(-50%) scale(1.08);
}

/* o scrim garante a leitura do texto sobre qualquer fotografia e nao
   pode apanhar cliques, senao tapava as setas e os botoes */
.slideshow-top-gradiante,
.slideshow-bottom-gradiante {
  pointer-events: none;
}

.slideshow-top-gradiante {
  height: 200px;
}

.slideshow-bottom-gradiante {
  height: 62%;
}

/* texto do hero alinhado com o logotipo da barra de topo */
.slide-content-wrapper {
  padding: 0px 46px;
}

.slide-text-container {
  max-width: 760px;
  padding-bottom: 70px;
}

@media screen and (max-width: 1023px) {

  .slide-before,
  .slide-next {
    width: 42px;
    height: 42px;
  }

  .slide-before.ativo {
    left: 14px;
  }

  .slide-next.ativo {
    right: 14px;
  }

  .slide-before img,
  .slide-next img {
    width: 12px;
  }

  .slide-content-wrapper {
    padding: 0px 20px;
  }

  .slide-text-container {
    padding-bottom: 40px;
  }
}


/*-------------------------------------------------------------------
PESQUISA (tema AI19b)
Deixa de ser um cartão flutuante com cantos de 30px e passa a barra
encostada por baixo do banner, com o rótulo dentro da própria caixa
de cada campo (por cima do valor).
--------------------------------------------------------------------*/
.pesquisa-stage {
  max-width: 100%;
}

.pesquisa-box {
  padding: 26px 46px 30px 46px;
  border-radius: 0px;
  box-shadow: none;
}

/* linha do título: título à esquerda, atalhos discretos à direita */
.pesquisa-titulo {
  font-size: 0.95em;
  font-weight: 600;
  letter-spacing: 1.4px;
  padding-left: 0px;
  margin-bottom: 18px;
}

/* os campos passam a uma linha só, todos com a mesma largura.
   O width:100% e indispensavel: o contentor pai flutua sem largura
   definida, e um flex container la dentro encolhia para zero, fazendo
   cada campo cair para a sua propria linha */
.pesquisa-result {
  width: 100%;
}

.pesquisa-form {
  width: 100%;
  display: flex;
  align-items: stretch;
  gap: 14px;
  flex-wrap: wrap;
}

.pesquisa-cell {
  width: auto;
  flex: 1 1 0;
  min-width: 150px;
  float: none;
  padding: 0px;
}

/* a caixa do campo é o proprio <label>: rotulo em cima, valor em baixo */
.pesquisa-cell label {
  display: block;
  box-sizing: border-box;
  width: 100%;
  padding: 9px 14px 10px 14px;
  border: 1px solid;
  border-radius: 6px;
  font-size: 0.72em;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.3px;
  cursor: pointer;
  transition: border-color .2s ease;
}

/* Ao abrir, o trigger nao ganha contorno nem halo. A regra base pintava a
   borda de --primaria (branco) e acrescentava um anel de 3px; o painel de
   opcoes que aparece por baixo ja diz que esta aberto. */
.custom-select.open .custom-select-trigger {
  border-color: var(--borda);
  box-shadow: none;
}

/* o dropdown personalizado fica sem caixa propria: a caixa e o label */
.pesquisa-form .custom-select-trigger {
  background: none;
  border: none;
  border-radius: 0px;
  padding: 0px;
  min-height: 0px;
  height: auto;
  font-size: 1.22em;
  font-weight: 400;
  line-height: 1.4;
}

.pesquisa-form .custom-select-options {
  border-radius: 6px;
}

/* selectbox nativa (mobile), mesma logica */
.pesquisa-form select {
  background: none;
  border: none;
  border-radius: 0px;
  padding: 0px;
  height: auto;
  font-size: 1.22em;
  box-shadow: none;
}

/* botao de pesquisa: mesma altura dos campos, sem margem de topo */
.pesquisa-button {
  width: auto;
  flex: 0 0 auto;
  float: none;
  margin-top: 0px;
  padding: 0px 34px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: 0.8em;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.1px;
  white-space: nowrap;
}

.pesquisa-button img {
  margin-right: 0px;
}

/* titulo a esquerda, atalhos a direita, tudo na mesma linha */
.pesquisa-topo {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 18px;
}

.pesquisa-topo .pesquisa-titulo {
  margin: 0px;
  margin-right: auto;
}

.pesquisafiltros-div,
.pesquisaOptions-div {
  width: auto;
  float: none;
  margin: 0px;
  padding: 0px;
}

/* Eram texto simples de 0.72em, quase impercetivel sobre o painel escuro.
   Passam a pilulas com contorno, com o mesmo peso visual dos campos. */
.pesquisaOptions,
.pesquisaFiltros {
  padding: 9px 20px;
  border: 1px solid;
  border-radius: 999px;
  background: none;
  box-shadow: none;
  gap: 8px;
  text-align: center;
  white-space: nowrap;
  -webkit-transition: background-color .2s ease, border-color .2s ease;
  transition: background-color .2s ease, border-color .2s ease;
}

/* so' o "Pesquisa Avancada" leva display: o "Limpar Filtros" e' ligado e
   desligado pelo JS com display inline (funcoes.source.js) */
.pesquisaOptions {
  display: inline-flex;
  align-items: center;
}

.pesquisaOptions-text,
.pesquisaFiltros-text {
  /* block + line-height fixa: um e' filho de inline-flex e o outro de um
     bloco, e sem isto as duas pilulas ficavam com alturas diferentes */
  display: block;
  line-height: 1.45;
  font-size: 0.75em;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding-right: 0px;
}

/* seta que roda quando o painel avancado abre */
.pesquisaOptions::after {
  content: "";
  width: 6px;
  height: 6px;
  border-style: solid;
  border-width: 0px 1.5px 1.5px 0px;
  transform: rotate(45deg);
  margin-top: -3px;
  -webkit-transition: transform .25s ease;
  transition: transform .25s ease;
}

.pesquisa-box:has(#pesquisa-avancada.aberta) .pesquisaOptions::after {
  transform: rotate(-135deg);
  margin-top: 2px;
}

.pesquisa-box {
  position: relative;
}

@media screen and (max-width: 1023px) {
  .pesquisa-box {
    padding: 20px;
  }

  .pesquisa-cell {
    flex: 1 1 100%;
  }

  .pesquisa-button {
    flex: 1 1 100%;
    padding: 14px 20px;
  }

  .pesquisaOptions-div,
  .pesquisafiltros-div {
    position: relative;
    top: auto;
    right: auto;
    margin-top: 14px;
  }
}

/* a célula do botão não é um campo: não estica como os outros, e o
   wrapper interno traz display:inline-block inline no HTML — daí o
   !important, sem ele o botão não acompanha a altura dos campos */
.pesquisa-cell:has(.pesquisa-button) {
  flex: 0 0 auto;
  min-width: 0px;
  display: flex;
  align-items: stretch;
  text-align: left;
}

.pesquisa-cell:has(.pesquisa-button) > div {
  display: flex !important;
  align-items: stretch;
}

.pesquisa-button {
  /* estica ate a altura da linha. O height:auto e preciso para anular as
     alturas fixas (41/42px) que o AI18w punha nos breakpoints do zoom,
     zoom esse que este tema ja nao usa */
  align-self: stretch;
  height: auto;
}

.pesquisa-button > div {
  line-height: 1;
}

/* a barra fica POR BAIXO do hero: o AI18w puxava-a para cima (margens de -60 a
   -130px por breakpoint) e estreitava-a (85% a 50%) para parecer um cartao */
.pesquisa-posicao {
  margin-top: 0px;
}

.pesquisa-stage {
  width: 100%;
  max-width: 100%;
}

/* pesquisa avancada: e um so item flex com varios campos la dentro. Sem isto
   os campos empilhavam numa coluna estreita entre o ultimo campo e o botao. */
#pesquisa-avancada.aberta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  flex: 1 1 100%;
  width: 100%;
  margin-top: 14px;
  /* depois do botao, para a primeira linha ficar completa */
  order: 2;
}

.pesquisa-cell:has(.pesquisa-button) {
  order: 1;
}


/*-------------------------------------------------------------------
BANNER: indicadores de slide e animação de entrada
--------------------------------------------------------------------*/
.slide-dots {
  position: absolute;
  left: 0px;
  right: 0px;
  bottom: 26px;
  z-index: 6;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  pointer-events: none;
}

.slide-dot {
  pointer-events: auto;
  width: 40px;
  height: 3px;
  padding: 0px;
  border: none;
  border-radius: 2px;
  cursor: pointer;
  overflow: hidden;
  position: relative;
  transition: width .3s ease, opacity .3s ease;
  opacity: 0.55;
}

.slide-dot:hover {
  opacity: 0.9;
}

.slide-dot.ativo {
  width: 64px;
  opacity: 1;
}

/* barra que acompanha os 6s de cada slide */
.slide-dot-progresso {
  position: absolute;
  top: 0px;
  left: 0px;
  bottom: 0px;
  width: 0%;
}

.slide-dot.ativo .slide-dot-progresso {
  animation: slideProgresso 6s linear forwards;
}

@keyframes slideProgresso {
  from {
    width: 0%;
  }

  to {
    width: 100%;
  }
}

/* o slide que entra aproxima-se ligeiramente enquanto aparece */
/* a aproximacao dura o mesmo que o fade (700ms) e usa forwards, para nao
   haver um salto no fim; a classe so sai quando o slide deixa de estar ativo */
#slideshowcontent li.slide-media.a-entrar {
  animation: slideEntrada 1.6s ease-out forwards;
}

@keyframes slideEntrada {
  from {
    transform: scale(1.06);
  }

  to {
    transform: scale(1);
  }
}

@media screen and (max-width: 1023px) {
  .slide-dots {
    bottom: 14px;
    gap: 7px;
  }

  .slide-dot {
    width: 26px;
  }

  .slide-dot.ativo {
    width: 42px;
  }
}


/*-------------------------------------------------------------------
TESTEMUNHOS (tema AI19b) - cartao de citacao
  O widget de reviews e' partilhado e o HTML e' gerado pelo JS
  (img-div, nome, stars, data, texto, origem por esta ordem).
  Para nao mexer no JS partilhado, a reordenacao e' feita em grid
  com grid-template-areas.
--------------------------------------------------------------------*/
.reviews-div {
  padding: 90px 0px 80px 0px;
}

/* media de avaliacao: passa de texto solto a badge */
.reviews-avaliacao {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 7px;
  width: auto;
  float: none;
  font-size: 0.8em;
  font-weight: 400;
  letter-spacing: 0.4px;
  padding: 11px 24px;
  border-radius: 999px;
  border: 1px solid;
  margin: 0px 0px 44px 0px;
}

.reviews-avaliacao span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 1.3em;
  font-weight: 700;
  padding: 0px;
}

.reviews-avaliacao span img {
  width: 15px !important;
  height: auto;
}

.reviews-stage {
  padding: 8px 10px 34px 10px;
}

.reviews-iten {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  grid-template-areas:
    "texto  texto texto"
    "stars  stars stars"
    "avatar nome  origem"
    "avatar data  origem";
  column-gap: 0px;
  row-gap: 0px;
  padding: 30px 26px 26px 26px;
  border-radius: 18px;
  border: 1px solid;
  box-shadow: none;
  text-align: left;
}

.reviews-iten:hover {
  transform: translateY(-4px);
  box-shadow: none;
}

/* aspa decorativa como marca de agua */
.reviews-iten::before {
  content: "\201C";
  position: absolute;
  top: 4px;
  right: 20px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 6em;
  line-height: 1;
  pointer-events: none;
}

.reviews-texto {
  grid-area: texto;
  margin-top: 0px;
  padding: 0px;
  font-size: 0.9em;
  line-height: 1.75;
  height: 100px;
  text-align: left;
}

.reviews-stars {
  grid-area: stars;
  margin: 20px 0px 22px 0px;
  height: 16px;
  text-align: left;
}

.reviews-stars img {
  width: 15px !important;
  margin: 0px 4px 0px 0px;
}

/* linha separadora: sem column-gap para o traco ficar continuo */
.reviews-img-div {
  grid-area: avatar;
  align-self: start;
  width: 46px;
  padding-top: 20px;
  border-top: 1px solid;
}

.reviews-img {
  width: 46px;
  height: 46px;
  margin: 0px;
}

.reviews-nome {
  grid-area: nome;
  /* start (nao end): a caixa tem de comecar no topo da linha para o
     border-top ficar alinhado com o do avatar e o da origem */
  align-self: start;
  margin-top: 0px;
  padding: 20px 0px 0px 14px;
  border-top: 1px solid;
  font-size: 0.88em;
  font-weight: 600;
  text-align: left;
}

.reviews-data {
  grid-area: data;
  align-self: start;
  margin-top: 2px;
  padding: 0px 0px 0px 14px;
  font-size: 0.75em;
  text-align: left;
}

.reviews-origem {
  grid-area: origem;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: auto;
  margin-top: 0px;
  padding: 20px 0px 0px 14px;
  border-top: 1px solid;
}

.reviews-origem img {
  width: 22px !important;
  margin: 0px;
}

@media screen and (max-width: 1023px) {
  .reviews-div {
    padding: 60px 0px 55px 0px;
  }

  .reviews-avaliacao {
    font-size: 0.78em;
    padding: 10px 20px;
    margin-bottom: 32px;
  }

  .reviews-iten {
    padding: 26px 20px 22px 20px;
  }

  .reviews-iten::before {
    font-size: 4.6em;
    right: 14px;
  }

  .reviews-texto {
    height: 112px;
  }
}


/*-------------------------------------------------------------------
FAIXA DE SERVICOS: faixa de servicos centrada
  O modelo base so' define padding-left (a faixa sangra para a direita,
  como no AI18w). Aqui espelha-se o padding do lado direito em cada
  breakpoint, ficando a faixa alinhada com os destaques e centrada.
--------------------------------------------------------------------*/
.servicos-largura {
  padding-right: 15px;
}

/* as setas passam a encostar ao limite direito da faixa */
.servicos-largura.owl-theme .owl-nav {
  padding-right: 0px;
}

@media screen and (min-width:1024px) and (max-width:1279px) {
  .servicos-largura {
    padding-right: calc((100% - 900px)/2);
  }
}

@media screen and (min-width:1280px) and (max-width:1365px) {
  .servicos-largura {
    padding-right: calc((100% - 980px)/2);
  }
}

@media screen and (min-width:1366px) and (max-width:1919px) {
  .servicos-largura {
    padding-right: calc((100% - 1150px)/2);
  }
}

@media screen and (min-width:1920px) {
  .servicos-largura {
    padding-right: calc((100% - 1500px)/2);
  }
}


/* ---------- cartao SOBRE NOS: a foto passa a fundo do cartao ----------
   Nas moradas a foto ocupa a coluna da direita; aqui cobre o cartao todo
   e o texto assenta por cima, com um degrade a proteger a leitura. */
.visite-card-sobre {
  grid-template-columns: 1fr;
  position: relative;
}

.visite-card-sobre .visite-foto {
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  z-index: 0;
  min-height: 0px;
}

/* vela do degrade (a cor fica no css do stand) */
.visite-card-sobre::before {
  content: "";
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  z-index: 1;
  pointer-events: none;
}

.visite-card-sobre .visite-texto {
  position: relative;
  z-index: 2;
  max-width: 58%;
}

@media screen and (max-width: 1023px) {
  .visite-card-sobre .visite-texto {
    max-width: 100%;
  }
}


/* ---------- mapa incorporado na coluna da direita do cartao ----------
   O iframe vem do backoffice com width/height fixos no HTML; aqui e'
   esticado para preencher a coluna toda. */
.visite-mapa {
  position: relative;
  min-height: 210px;
  overflow: hidden;
}

.visite-mapa iframe {
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  max-width: none;
  border: 0px;
  display: block;
}

@media screen and (max-width: 1023px) {
  .visite-mapa {
    min-height: 210px;
  }
}


/*-------------------------------------------------------------------
PAGINA DE VIATURA (tema AI19b) - nova disposicao
  Topo: galeria + bloco de decisao (nome, preco, 4 destaques, contactos).
  Abaixo: acordeao no telemovel, seccoes abertas + ancoras no PC.
  Ver plugins/viatura/{layout-pc,layout-mobile,identidade,destaques,ficha,secoes}.php
--------------------------------------------------------------------*/
.viatura-page {
  width: 100%;
  position: relative;
  float: left;
}

/* a navbar do PC e sobreposta e esta pagina nao tem banner por baixo dela
   (o offset vivia em .viatura-cabecalho, que deixou de existir) */
@media screen and (min-width: 1024px) {
  .viatura-page {
    margin-top: 150px;
  }
}

/* ---------- TOPO ---------- */
.viatura-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 400px;
  gap: 44px;
  align-items: start;
}

.viatura-hero-galeria {
  min-width: 0;
}

.viatura-hero-info {
  min-width: 0;
  position: sticky;
  top: 110px;
}

/* contador e lupa por cima da fotografia */
.viatura-galeria-contador {
  position: absolute;
  right: 14px;
  bottom: 14px;
  z-index: 5;
  padding: 5px 13px;
  border-radius: 999px;
  font-family: "Poppins", sans-serif;
  font-size: 0.72em;
  font-weight: 600;
  letter-spacing: 0.5px;
  pointer-events: none;
  opacity: 0;
  transition: opacity .25s ease;
}

.viatura-galeria-contador.visivel {
  opacity: 1;
}

/* so afordancia visual: sem pointer-events o clique passa para a foto e
   e o lightGallery que ja estava ligado que abre o ecra inteiro */
.viatura-galeria-lupa {
  position: absolute;
  right: 14px;
  top: 14px;
  z-index: 5;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 15px 15px;
  pointer-events: none;
}

/* ---------- identidade ---------- */
.viatura-id-nome {
  margin: 0px;
  font-family: "Poppins", sans-serif;
  font-size: 1.55em;
  font-weight: 700;
  line-height: 1.25;
}

.viatura-id-marca {
  display: block;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.viatura-id-versao {
  display: block;
  margin-top: 7px;
  font-size: 0.58em;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0.3px;
}

/* o preco deixa de ser pilula branca: passa a numero grande a esquerda */
.viatura-preco-area {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin-top: 22px;
}

.viatura-preco {
  float: none;
  padding: 0px;
  border-radius: 0px;
  background: none;
  box-shadow: none;
  text-align: left;
  font-family: "Poppins", sans-serif;
  font-size: 2.2em;
  font-weight: 700;
  line-height: 1.1;
}

/* "Vendida" mantem-se como selo (o fundo vermelho vem do css do stand) */
.viatura-preco-vendido {
  padding: 8px 18px;
  border-radius: 999px;
  font-size: 1.2em;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.viatura-preco-consulta {
  font-size: 1.5em;
}

.viatura-preco-antes {
  display: inline-block;
  margin-top: 0px;
  font-size: 0.8em;
  font-weight: 400;
  opacity: 1;
}

.viatura-desconto-badge {
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 0.72em;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  box-shadow: none;
}

.viatura-mensalidade {
  float: none;
  padding: 0px;
  border-radius: 0px;
  background: none;
  text-align: left;
  font-family: "Poppins", sans-serif;
  font-size: 0.9em;
  font-weight: 500;
}

.viatura-mensalidade span {
  font-style: normal;
  font-size: 0.92em;
}

.viatura-selos {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 18px;
}

.viatura-selo {
  padding: 6px 13px;
  border: 1px solid;
  border-radius: 999px;
  font-family: "Poppins", sans-serif;
  font-size: 0.68em;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.9px;
}

/* ---------- os 4 destaques ---------- */
.viatura-destaques {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 26px;
  border: 1px solid;
  border-radius: 4px;
  overflow: hidden;
}

.viatura-destaque {
  padding: 17px 14px;
  text-align: center;
  min-width: 0;
}

.viatura-destaque:nth-child(odd) {
  border-right: 1px solid;
}

.viatura-destaque:nth-child(-n+2) {
  border-bottom: 1px solid;
}

.viatura-destaque-icon {
  height: 22px;
  margin-bottom: 9px;
}

.viatura-destaque-icon img {
  width: 22px;
  height: 22px;
}

.viatura-destaque-valor {
  font-family: "Poppins", sans-serif;
  font-size: 0.95em;
  font-weight: 700;
  line-height: 1.3;
}

.viatura-destaque-nome {
  margin-top: 3px;
  font-family: "Poppins", sans-serif;
  font-size: 0.66em;
  text-transform: uppercase;
  letter-spacing: 1px;
}

/* ---------- comerciais promovidos para junto do topo ---------- */
.viatura-comerciais-topo {
  margin-top: 55px;
}

/* ---------- ancoras (PC) ---------- */
.viatura-ancoras {
  display: flex;
  gap: 30px;
  flex-wrap: wrap;
  margin-top: 70px;
  padding: 14px 0px;
  border-bottom: 1px solid;
  position: sticky;
  top: 76px;
  z-index: 8;
}

.viatura-ancora {
  font-family: "Poppins", sans-serif;
  font-size: 0.74em;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.1px;
  text-decoration: none;
  padding-bottom: 4px;
  border-bottom: 2px solid transparent;
  transition: color .2s ease, border-color .2s ease;
}

.viatura-ancora:link,
.viatura-ancora:visited,
.viatura-ancora:hover,
.viatura-ancora:active {
  text-decoration: none;
}

/* ---------- seccoes ---------- */
.viatura-secao {
  margin-top: 90px;
}

/* a que vem logo a seguir as ancoras precisa de menos folga: a barra de
   ancoras ja traz padding e risco proprios */
.viatura-ancoras + .viatura-secao {
  margin-top: 46px;
}

.viatura-secao-cabeca {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 0px 0px 16px 0px;
  border-bottom: 1px solid;
}

.viatura-secao-titulo {
  font-family: "Poppins", sans-serif;
  font-size: 1.02em;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.2px;
}

/* a seta so faz sentido quando ha acordeao (telemovel) */
.viatura-secao-seta {
  display: none;
}

.viatura-secao-corpo {
  padding-top: 28px;
}

/* ---------- ficha tecnica ---------- */
.viatura-ficha-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0px 44px;
}

.viatura-ficha-item {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 13px 0px;
  border-bottom: 1px solid;
}

/* o regime de IVA e um paragrafo legal: ocupa a linha toda */
.viatura-ficha-item-largo {
  grid-column: 1 / -1;
}

/* sem risco na ultima linha: encostava-se ao titulo da seccao seguinte */
.viatura-ficha-item:last-child {
  border-bottom: none;
}

.viatura-ficha-icon {
  height: 18px;
}

.viatura-ficha-icon img {
  width: 18px;
  height: 18px;
}

.viatura-ficha-nome {
  font-family: "Poppins", sans-serif;
  font-size: 0.82em;
}

.viatura-ficha-valor {
  font-family: "Poppins", sans-serif;
  font-size: 0.85em;
  font-weight: 600;
  text-align: right;
}

/* ---------- barra de acao fixa (so telemovel) ---------- */
.viatura-barra {
  display: none;
}

/* ---------- TELEMOVEL / TABLET ---------- */
@media screen and (max-width: 1023px) {
  .viatura-hero {
    grid-template-columns: 1fr;
    gap: 0px;
  }

  .viatura-hero-info {
    position: static;
    margin-top: 24px;
  }

  /* galeria de margem a margem. Nao basta anular o padding do
     .conteudodinamico (20px): o .site-width2 tem 98% e centra-se, sobrando 1%
     de cada lado. Com 100vw + calc(50% - 50vw) a foto encosta as bordas
     independentemente do que os antecessores tenham. */
  .viatura-hero-galeria {
    width: 100vw;
    max-width: 100vw;
    margin-top: -35px;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
  }

  .viatura-id-nome {
    font-size: 1.3em;
  }

  .viatura-preco {
    font-size: 1.9em;
  }

  /* no telemovel a navegacao e o proprio acordeao */
  .viatura-ancoras {
    display: none;
  }

  .viatura-comerciais-topo {
    margin-top: 36px;
  }

  .viatura-secao,
  .viatura-ancoras + .viatura-secao {
    margin-top: 0px;
    border-bottom: 1px solid;
  }

  .viatura-secao-cabeca {
    padding: 20px 0px;
    border-bottom: none;
    cursor: pointer;
  }

  .viatura-secao-titulo {
    font-size: 0.86em;
  }

  .viatura-secao-seta {
    display: block;
    width: 9px;
    height: 9px;
    flex-shrink: 0;
    border-right: 2px solid;
    border-bottom: 2px solid;
    transform: rotate(45deg);
    margin-top: -4px;
    transition: transform .25s ease;
  }

  .viatura-secao.aberta .viatura-secao-seta {
    transform: rotate(-135deg);
    margin-top: 3px;
  }

  .viatura-secao .viatura-secao-corpo {
    display: none;
    padding-top: 4px;
    padding-bottom: 28px;
  }

  .viatura-secao.aberta .viatura-secao-corpo {
    display: block;
  }

  .viatura-ficha-grid {
    grid-template-columns: 1fr;
    gap: 0px;
  }

  /* mais folga lateral (soma-se aos ~24px que vem do .conteudodinamico e do
     .site-width2) e espaco em baixo para a barra fixa nao tapar o fim.
     O padding e simetrico, por isso o calc(50% - 50vw) da galeria continua
     a levar a foto ate as bordas. */
  .viatura-page-mobile {
    padding-left: 10px;
    padding-right: 10px;
    margin-bottom: 64px;
  }

  .viatura-barra {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    position: fixed;
    left: 0px;
    right: 0px;
    bottom: 0px;
    z-index: 999990;
    padding: 10px 16px;
    padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid;
    transform: translateY(110%);
    transition: transform .3s ease;
  }

  .viatura-barra.visivel {
    transform: translateY(0px);
  }

  .viatura-barra-preco {
    display: flex;
    flex-direction: column;
    min-width: 0;
  }

  .viatura-barra-valor {
    font-family: "Poppins", sans-serif;
    font-size: 1.05em;
    font-weight: 700;
    line-height: 1.2;
  }

  .viatura-barra-mes {
    margin-top: 2px;
    font-family: "Poppins", sans-serif;
    font-size: 0.64em;
  }

  .viatura-barra-acoes {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
  }

  .viatura-barra-tel {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border: 1px solid;
    border-radius: 999px;
    flex-shrink: 0;
  }

  .viatura-barra-tel img {
    width: 18px;
    height: 18px;
  }

  .viatura-barra-btn {
    padding: 13px 24px;
    border-radius: 999px;
    cursor: pointer;
    font-family: "Poppins", sans-serif;
    font-size: 0.76em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    white-space: nowrap;
  }
}


/*-------------------------------------------------------------------
CARROSSEIS: os pontos passam a barras, iguais as do banner
  As regras antigas estavam presas a IDs (#segmentos-owl, #reviews-widget,
  ...), por isso a lista tem de as repetir para as vencer na cascata.
--------------------------------------------------------------------*/
#segmentos-owl.owl-theme .owl-dots .owl-dot span,
#galeriacl-widget.owl-theme .owl-dots .owl-dot span,
#reviews-widget.owl-theme .owl-dots .owl-dot span,
.moradas-grid.owl-theme .owl-dots .owl-dot span,
.owl-theme .owl-dots .owl-dot span {
  width: 40px;
  height: 3px;
  margin: 0px 5px;
  padding: 0px;
  border: none;
  border-radius: 2px;
  display: block;
  transition: width .3s ease, background-color .3s ease;
}

#segmentos-owl.owl-theme .owl-dots .owl-dot.active span,
#galeriacl-widget.owl-theme .owl-dots .owl-dot.active span,
#reviews-widget.owl-theme .owl-dots .owl-dot.active span,
.moradas-grid.owl-theme .owl-dots .owl-dot.active span,
.owl-theme .owl-dots .owl-dot.active span {
  width: 56px;
}

#segmentos-owl.owl-theme .owl-dots,
#galeriacl-widget.owl-theme .owl-dots,
#reviews-widget.owl-theme .owl-dots,
.moradas-grid.owl-theme .owl-dots,
.owl-theme .owl-dots {
  margin-top: 34px;
  line-height: 0;
}

@media screen and (max-width: 1023px) {

  #segmentos-owl.owl-theme .owl-dots .owl-dot span,
  #galeriacl-widget.owl-theme .owl-dots .owl-dot span,
  #reviews-widget.owl-theme .owl-dots .owl-dot span,
  .moradas-grid.owl-theme .owl-dots .owl-dot span,
  .owl-theme .owl-dots .owl-dot span {
    width: 26px;
    margin: 0px 4px;
  }

  #segmentos-owl.owl-theme .owl-dots .owl-dot.active span,
  #galeriacl-widget.owl-theme .owl-dots .owl-dot.active span,
  #reviews-widget.owl-theme .owl-dots .owl-dot.active span,
  .moradas-grid.owl-theme .owl-dots .owl-dot.active span,
  .owl-theme .owl-dots .owl-dot.active span {
    width: 42px;
  }
}


/* Atalho para as restantes moradas: o rodape mostra so a primeira (linha
   unica, por causa do tema), por isso quando o stand tem mais do que uma
   e preciso um caminho para elas. Ver layout.php. */
.rodape-mais-moradas {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  flex: 0 0 auto;
  font-family: "Poppins", sans-serif;
  font-size: 0.74em;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  text-decoration: none;
  white-space: nowrap;
  transition: gap .2s ease;
}

.rodape-mais-moradas::after {
  content: "\2192";
  font-size: 1.15em;
  line-height: 1;
}

.rodape-mais-moradas:hover {
  gap: 12px;
  text-decoration: none;
}


/*-------------------------------------------------------------------
MODAL DO TESTEMUNHO (tema AI19b)
  Antes: a fotografia subia -80px e ficava colada por cima da moldura, o
  corpo tinha 300px fixos (deixando um vazio grande nos textos curtos) e o
  botao de fechar estava fora do modal, no canto. Passa a um cartao de
  citacao alinhado com os do carrossel.
--------------------------------------------------------------------*/
.reviews-modal-backdrop {
  align-items: center;
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
}

.reviews-modal {
  width: 560px;
  max-width: 92vw;
  min-height: 0px;
  padding: 40px 38px 32px 38px;
  border-radius: 18px;
  border: 1px solid;
  overflow: visible;
  text-align: center;
}

/* aspa decorativa, a mesma linguagem dos cartoes do carrossel */
.reviews-modal::before {
  content: "\201C";
  position: absolute;
  top: 6px;
  right: 26px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 6.5em;
  line-height: 1;
  pointer-events: none;
}

/* fechar: passa para dentro do modal */
.reviews-button-close {
  top: 14px;
  right: 14px;
  width: 34px;
  height: 34px;
  font-size: 0px;
  border: 1px solid;
  display: flex;
  align-items: center;
  justify-content: center;
}

.reviews-button-close::before {
  content: "\2715";
  font-family: "Poppins", sans-serif;
  font-size: 13px;
  line-height: 1;
}

/* fotografia: sem a sobreposicao de -80px (ver funcoes.source.js) */
.reviews-modal-img-div {
  margin-top: 0px;
}

.reviews-modal-img {
  width: 84px;
  height: 84px;
  border: 0px;
  box-shadow: 0 0 0 1px var(--borda);
}

.reviews-modal-content {
  height: auto;
  max-height: 58vh;
  padding: 0px;
  overflow-y: auto;
  overflow-x: hidden;
  text-align: center;
}

.reviews-modal-nome {
  margin-top: 18px;
  font-family: "Poppins", sans-serif;
  font-size: 1.15em;
  font-weight: 700;
  text-align: center;
}

.reviews-modal-stars {
  margin-top: 12px;
  height: 16px;
  text-align: center;
}

.reviews-modal-stars img {
  width: 15px !important;
  height: auto;
  margin: 0px 3px;
}

.reviews-modal-data {
  margin-top: 8px;
  font-size: 0.75em;
  text-align: center;
}

/* risco a separar a identidade da citacao */
.reviews-modal-texto {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid;
  font-size: 0.95em;
  line-height: 1.85;
  text-align: center;
}

.reviews-modal-origem {
  margin-top: 26px;
}

.reviews-modal-origem img {
  width: 22px !important;
}

/* barra de scroll discreta quando o testemunho e longo */
.reviews-modal-content::-webkit-scrollbar {
  width: 4px;
}

@media screen and (max-width: 1023px) {

  /* no telemovel comporta-se como uma folha que sobe de baixo */
  .reviews-modal {
    width: 100%;
    max-width: 100%;
    top: auto;
    bottom: 0px;
    transform: none;
    padding: 34px 22px 26px 22px;
    border-radius: 18px 18px 0px 0px;
    border-bottom: none;
  }

  .reviews-modal::before {
    font-size: 4.8em;
    right: 18px;
  }

  .reviews-modal-content {
    max-height: 62vh;
  }

  .reviews-modal-img {
    width: 72px;
    height: 72px;
  }
}


/*-------------------------------------------------------------------
TESTEMUNHOS: setas de navegacao (as mesmas do banner)
  Botoes circulares centrados verticalmente sobre os cartoes.
--------------------------------------------------------------------*/
#reviews-widget.owl-theme .owl-nav {
  margin: 0px;
  line-height: 0;
}

#reviews-widget .owl-nav button.owl-prev,
#reviews-widget .owl-nav button.owl-next {
  position: absolute;
  /* o -19px compensa a altura do bloco de pontos, que fica no fluxo por
     baixo dos cartoes e puxaria o centro do widget para baixo */
  top: 50%;
  margin-top: -19px;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  padding: 0px;
  border-radius: 50%;
  border: 1px solid;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 6;
  cursor: pointer;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  transition: background-color .25s ease, border-color .25s ease, transform .25s ease;
}

#reviews-widget .owl-nav button.owl-prev {
  left: -6px;
}

#reviews-widget .owl-nav button.owl-next {
  right: -6px;
}

#reviews-widget .owl-nav button.owl-prev img,
#reviews-widget .owl-nav button.owl-next img {
  width: 14px;
  height: auto;
}

#reviews-widget .owl-nav button.owl-prev:hover,
#reviews-widget .owl-nav button.owl-next:hover {
  transform: translateY(-50%) scale(1.08);
}

/* quando nao ha para onde ir, a seta apaga-se em vez de desaparecer */
#reviews-widget .owl-nav button.owl-prev.disabled,
#reviews-widget .owl-nav button.owl-next.disabled {
  opacity: 0.25;
  cursor: default;
}

#reviews-widget .owl-nav button.owl-prev.disabled:hover,
#reviews-widget .owl-nav button.owl-next.disabled:hover {
  transform: translateY(-50%);
}

@media screen and (max-width: 767px) {

  /* no telemovel o cartao ocupa a largura toda: as setas ficariam por cima
     do texto. Fica so o arrastar e os pontos. */
  #reviews-widget.owl-theme .owl-nav {
    display: none;
  }
}


/*-------------------------------------------------------------------
PESQUISA NO TELEMOVEL (tema AI19b)
  O campo desenhava duas caixas encaixadas: a de fora vinha do
  .pesquisa-cell label (AI19b) e a de dentro do select, que apanhava a
  regra global "select {}" mais o padding !important da regra base de
  mobile. Alem disso o label tinha padding-left: 20px enquanto o select
  ficava a 100% da celula, transbordando 20px a direita.
  Fica uma caixa so' por campo, com o rotulo em cima e o valor em baixo.
--------------------------------------------------------------------*/
@media screen and (max-width: 1023px) {

  .pesquisa-box {
    padding: 20px 16px 18px 16px;
    border-radius: 16px;
  }

  /* titulo e atalhos: o titulo sozinho na primeira linha, os dois
     atalhos lado a lado na segunda */
  .pesquisa-topo {
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 16px;
  }

  .pesquisa-topo .pesquisa-titulo {
    flex: 1 1 100%;
    margin-right: 0px;
    font-size: 1em;
  }

  /* os dois atalhos na mesma linha: o .pesquisafiltros-div trazia
     width: 100% e justify-content: center da regra base, o que empurrava
     o "pesquisa avancada" para a linha seguinte */
  .pesquisafiltros-div,
  .pesquisaOptions-div {
    width: auto;
    flex: 0 1 auto;
    justify-content: flex-start;
    margin-top: 0px;
  }

  /* Compactos, mas nao ao ponto de caberem os dois na mesma linha: num
     ecra de 375 a soma dava 322px para 306 disponiveis, e so' cabiam com
     texto a ~8px. Ficam empilhados e alinhados a esquerda. */
  .pesquisaOptions,
  .pesquisaFiltros {
    padding: 9px 16px;
    gap: 7px;
  }

  .pesquisaOptions-text,
  .pesquisaFiltros-text {
    font-size: 0.68em;
    letter-spacing: 0.8px;
  }

  .pesquisa-form {
    gap: 10px;
  }

  /* uma caixa so': e' o proprio <label> */
  .pesquisa-cell label {
    padding: 9px 14px 10px 14px;
    border-radius: 12px;
  }

  /* o select deixa de ter caixa propria e passa a ser so' o valor */
  .pesquisa-form .pesquisa-cell select {
    width: 100%;
    height: auto;
    padding: 2px 24px 0px 0px !important;
    margin: 0px;
    border: none;
    border-radius: 0px;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: right center;
    background-size: 12px 12px;
    font-size: 1.05em;
    font-weight: 400;
    line-height: 1.4;
  }

  /* o rotulo deixa de empurrar o campo para a direita */
  .pesquisa-form label {
    padding-left: 0px;
  }

  /* botao sempre no fim: no PC ele tem order:1 e o painel avancado
     order:2, para fechar a primeira linha. Empilhado no telemovel isso
     punha o "Pesquisar" no meio, entre os campos basicos e os avancados. */
  .pesquisa-cell:has(.pesquisa-button) {
    order: 3;
    flex: 1 1 100%;
  }

  /* o HTML embrulha o botao num div com display:inline-block inline, que
     nao estica: sem isto o botao ficava com 191px em vez da largura toda */
  .pesquisa-cell:has(.pesquisa-button) > div {
    width: 100%;
  }

  .pesquisa-button {
    flex: 1 1 100%;
    margin-top: 6px;
    padding: 15px 20px;
    border-radius: 12px;
  }

  /* mais ar entre campos: empilhados, 10px liam-se como uma coluna colada */
  .pesquisa-form {
    gap: 16px;
  }

  #pesquisa-avancada {
    gap: 16px;
    margin-top: 0px;
  }

  /* fechar: passa para dentro do painel */
  .pesquisa-button-close {
    right: 12px;
    top: 12px;
    width: 34px;
    height: 34px;
    padding: 0px;
    font-size: 0px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid;
  }

  .pesquisa-button-close::before {
    content: "\2715";
    font-family: "Poppins", sans-serif;
    font-size: 13px;
    line-height: 1;
  }
}


/*-------------------------------------------------------------------
BANNER NO TELEMOVEL: conteudo mais contido
  O banner mede ~211px de altura e o titulo vinha a 1.6em (25.6px), o que
  o punha em duas linhas e enchia quase toda a faixa, deixando o texto
  colado aos botoes e as fotografias sem respirar.
--------------------------------------------------------------------*/
@media screen and (max-width: 1023px) {
  .slide-content-wrapper {
    padding: 0px 20px;
  }

  .slide-title {
    font-size: 1.15em;
    line-height: 1.2;
  }

  .slide-subtitulo {
    font-size: 0.62em;
    letter-spacing: 2px;
    margin-top: 10px;
  }

  .slide-description {
    font-size: 0.82em;
    margin-top: 8px;
  }

  .slide-botoes {
    gap: 10px;
    margin-top: 16px;
  }

  .slide-btn,
  .slide-btn-2 {
    padding: 9px 18px;
    margin-top: 0px;
    border-radius: 8px;
  }

  /* o font-size precisa dos estados de link: a regra global
     "a:link{font-size:1em}" e' (0,1,1) e vencia o .slide-btn (0,1,0) */
  .slide-btn:link,
  .slide-btn:visited,
  .slide-btn:hover,
  .slide-btn:active,
  .slide-btn-2:link,
  .slide-btn-2:visited,
  .slide-btn-2:hover,
  .slide-btn-2:active {
    font-size: 0.68em;
  }
}


/* identificacao fiscal por baixo da linha de direitos */
.developed-fiscal {
  display: block;
  margin-top: 5px;
  font-family: "Poppins", sans-serif;
  font-size: 0.92em;
  font-weight: 400;
}


/*-------------------------------------------------------------------
MODAL "NOS LIGAMOS" (tema AI19b)
  O markup vem do framework partilhado, por isso tudo aqui e' CSS.
  Antes: 40% de largura para um so' campo, min-height de 300px com o
  rodape em position:absolute (o que obrigava a 80px de margem morta no
  conteudo) e dois botoes em pilula com icones circulares.
--------------------------------------------------------------------*/
.modal-alert {
  width: 460px;
  max-width: 92vw;
  min-height: 0px;
  padding: 30px 30px 24px 30px;
  border-radius: 16px;
  border: 1px solid;
  /* coluna com "order": ao confirmar, o framework remove o titulo/conteudo
     e faz append da mensagem de agradecimento *depois* do rodape. Com o
     rodape estatico isso punha o "Fechar" por cima da mensagem; o order
     garante que fica sempre no fim, seja qual for a ordem no DOM. */
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.modal-titulo,
.modal-content {
  order: 1;
}

.modal-titulo {
  float: none;
  padding: 0px;
  font-family: "Poppins", sans-serif;
  font-size: 1.2em;
  font-weight: 700;
  line-height: 1.35;
}

.modal-content {
  float: none;
  max-height: 60vh;
  margin-bottom: 0px;
  padding: 0px;
  font-family: "Poppins", sans-serif;
  font-size: 0.88em;
  line-height: 1.6;
}

/* o rodape deixa de ser absoluto: era isso que obrigava o modal a
   reservar 300px de altura e 80px de margem por baixo do conteudo */
.modal-bottom {
  order: 2;
  position: static;
  min-height: 0px;
  padding: 0px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}

.modal-button-sucesso,
.modal-button-close {
  float: none;
  margin: 0px;
  padding: 12px 24px;
  border-radius: 10px;
  box-shadow: none;
  border: 1px solid transparent;
  font-family: "Poppins", sans-serif;
  font-size: 0.78em;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

/* os icones eram circulos ancorados a esquerda (dai o padding-left de
   55px); os rotulos dizem o mesmo sem o peso visual */
.modal-button-sucesso img,
.modal-button-close img {
  display: none;
}

.modal-button-sucesso:hover,
.modal-button-close:hover {
  opacity: 1;
}

@media screen and (max-width: 1023px) {
  .modal-alert {
    width: 92%;
    max-width: 92%;
    padding: 24px 20px 20px 20px;
  }

  .modal-bottom {
    gap: 10px;
  }

  /* em ecra estreito os dois botoes dividem a linha */
  .modal-button-sucesso,
  .modal-button-close {
    flex: 1 1 0;
    padding: 13px 16px;
    text-align: center;
  }
}


/* o contador e a lupa sao movidos para aqui pelo DetalhesFotos: esta e' a
   moldura da foto principal, sem a tira de miniaturas */
.viatura-foto-wrapper .bx-wrapper {
  position: relative;
}


/*-------------------------------------------------------------------
TOPO: logotipo maior no PC
  Estava a 170x36 entre 1024 e 1919 (e 200x40 acima disso), pequeno para
  a largura da barra. Cresce, e a barra ganha altura para o acompanhar
  sem apertar o menu.
--------------------------------------------------------------------*/
/* O logotipo (600x65) tem um racio de 9.23:1. Com background-size:contain
   quem manda e' a LARGURA da caixa: numa caixa de 170x36 renderiza a
   170x18 e sobram 18px de altura por usar. Ou seja, mexer na altura da
   caixa (ou na altura da barra) nao o faz crescer — so' a largura.
   Por isso a barra fica com as medidas originais. */
@media screen and (min-width: 1024px) {
  .navbar-container .logo-area {
    width: 340px;
    height: 40px;
  }

  /* ao fazer scroll a caixa baixa para 34px (regra ja existente): a
     340px o logotipo pediria 36.8px e ficaria cortado, por isso encolhe
     tambem na largura — como a propria barra encolhe */
  .navbar-container.navbar-fixed .logo-area {
    width: 310px;
  }
}

@media screen and (min-width: 1280px) and (max-width: 1919px) {
  .navbar-container .logo-area {
    width: 310px;
    height: 36px;
  }
}

/* a 1024-1279 a barra tem menos largura livre para o menu */
@media screen and (min-width: 1024px) and (max-width: 1279px) {
  .navbar-container .logo-area {
    width: 240px;
    height: 36px;
  }
}


/*-------------------------------------------------------------------
PESQUISA NO PC: mesma largura dos cartoes de viatura
  Ocupava a largura toda da tela. Passa a acompanhar a coluna de
  conteudo, que e' o .site-width2 menos o padding do .destaques-result
  (os valores abaixo sao essa conta ja feita, por breakpoint).
--------------------------------------------------------------------*/
@media screen and (min-width: 1024px) {
  .pesquisa-stage {
    margin-left: auto;
    margin-right: auto;
  }
}

/* site-width2 950 - padding 2x40 */
@media screen and (min-width: 1024px) and (max-width: 1279px) {
  .pesquisa-stage {
    width: 870px;
    max-width: 96%;
  }
}

/* site-width2 1100 - padding 2x40 */
@media screen and (min-width: 1280px) and (max-width: 1365px) {
  .pesquisa-stage {
    width: 1020px;
    max-width: 96%;
  }
}

/* site-width2 1250 - padding 2x100 */
@media screen and (min-width: 1366px) and (max-width: 1919px) {
  .pesquisa-stage {
    width: 1050px;
    max-width: 96%;
  }
}

/* site-width2 1700 - padding 2x100 */
@media screen and (min-width: 1920px) {
  .pesquisa-stage {
    width: 1500px;
    max-width: 96%;
  }
}
