[data-aos] {
  pointer-events: none;
}
.aos-animate {
  pointer-events: auto;
}
.aos-init[data-aos][data-aos].aos-animate {
  transform: unset;
}
@media (max-width: 768px) {
  /* Ajuste a posição ou o comportamento da animação no mobile */
  .aos-animate {
    transform: none !important; /* Impede a transformação no mobile */
  }
}
:root {
  /* Cores */
  /*--cor-dourado: #b79347;*/
  --cor-dourado: #F7C561;
  --cor-dourado-escuro: #b38734;

  --cor-vermelho: #3c0f1c;
  --cor-bgPreto: #111;
  --cor-bgBranco: #f8f9fa;
  --cor-bgCinza: #c5c6cc;

  --tamanhominnav: 80px;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--scroll-padding, 50px);
  background-color: var(--cor-vermelho);
}
body {
  overflow-x: hidden;
}

.navbar-custom {
  min-height: var(--tamanhominnav);
  height: auto;
  background-color: var(--cor-vermelho) !important;
  /*box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);*/
  z-index: 99;
  top: 0;
  left: 0;
  width: 100%;
}
.navbar-brand img {
  height: 100%; /* para logo preencher a navbar */
  max-height: 70px; /* limite opcional */
}

[data-aos] {
  z-index: 1; /* ou outro valor menor que o da navbar */
  position: relative;
}
@media (max-width: 991.98px) {
  .navbar-custom {
    height: auto; /* melhor adaptação no mobile */
    min-height: var(--tamanhominnav);
    /*z-index: 9999;*/
    top: 0;
    left: 0;
    width: 100%;
    position: sticky;
    z-index: 99;
  }
}
@media (min-width: 991.98px) {
  .divmenuespaco {
    height: calc(var(--tamanhominnav) + 15px);
    background-color: var(--cor-bgPreto);
  }
}
.navbar-nav .nav-link {
  color: white;
  font-family: "Inter", "Arial", sans-serif;
  /*font-size: 0.875rem;*/
  padding-right: 24px !important;
}
.navbar-nav .nav-link:hover {
color: var(--cor-dourado);
}
.hero {
  background-color: var(--cor-bgBranco);
  padding: 40px 20px;
  text-align: center;
  background: linear-gradient(
      135deg,
      #a87b35 0%,
      #b38734 16%,
      #f7c561 50%,
      #f7e67c 100%
    )
    left bottom no-repeat;
  background-size: 100% 3px; /* Degradê ocupando a base como uma "borda" */
}
.section {
  padding: 60px 20px;
}

.banner-section {
  background-color: var(--cor-bgPreto);
  position: relative;
  color: white;
  /* remove a borda */
  border-bottom: none;
  padding-bottom: 10px; /* se quiser espaço para a borda pseudo */
  overflow: hidden; /* para o pseudo não vazar */
}

.banner-section::before {
  content: "";
  background-image: url("../img/fundo05.jpg");
  background-size: cover;
  background-repeat: no-repeat;
  background-position: top right;
  opacity: 0.5;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  pointer-events: none;
}

/* Pseudo para a borda degradê no bottom */
.banner-section::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 3px; /* altura da borda */
  background: linear-gradient(
    135deg,
    #A87B35 0%,
    #B38734 16%,
    #F7C561 50%,
    #F7E67C 100%
  );
  z-index: 10; /* acima da imagem, abaixo do texto */
}

.estatua-img {
  position: absolute;
  bottom: 0;
  right: 0;
  max-height: 100%;
  width: auto;
  height: auto;
  /*max-width: 40%;*/
  object-fit: contain;
  z-index: 1;
  pointer-events: none; /* impede cliques sobre ela */
}

/* Garante que o conteúdo fique acima do overlay */
.banner-section .container,
.banner-section .text-box {
  position: relative;
  z-index: 2;
}

.text-box {
  max-width: 900px;
  padding-bottom: 60px;
}

.text-box h1 {
  font-family: "Playfair Display", serif;
  font-style: normal;
  font-weight: 700;
  font-size: 2.25rem;
  line-height: 56px;
color: var(--cor-dourado);
}

.text-box p {
  font-family: "Inter", Arial, sans-serif;
  font-style: normal;
  font-weight: 400;
  font-size: 1.2rem;
  line-height: 1.8rem;

  max-width: 900px;
  color: rgb(255, 255, 255);
}

.text-box .primeirop {
  font-size: 1.4rem;
  text-align: justify;
}
.segundop {
  text-align: justify !important;
}
.btnBanner {
  background-color: var(--cor-vermelho) !important;
  font-size: 1rem;
  font-weight: 500;
  font-family: Inter, Arial, sans-serif;
  line-height: 1;
  box-shadow: rgba(0, 0, 0, 0.2) 0px 4px 8px;
  color: white;
  padding: 8px 16px;
  transition: 0.3s;
}
.btnBanner:hover {
  transform: translateY(-10px);
  color: white;
}

.btnBanner2 {
  font-size: 1rem;
  font-weight: 500;
  font-family: Inter, Arial, sans-serif;
  line-height: 1;
  box-shadow: rgba(0, 0, 0, 0.2) 0px 4px 8px;
  color: white;
  padding: 8px 16px;
  transition: 0.3s;
}
.btnBanner2:hover {
  transform: translateY(-10px);
}

.animate-up {
  animation: slideUp 1s ease-out;
}

@keyframes slideUp {
  from {
    transform: translateY(40px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

.animate-right {
  animation: slideRight 1s ease-out;
}

@keyframes slideRight {
  from {
    transform: translateX(-800px);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

.animate-left {
  animation: slideLeft 1s ease-out;
}

@keyframes slideLeft {
  from {
    transform: translateX(800px);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}
.button-group {
  margin-top: 20px;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem; /* espaçamento horizontal e vertical */
}
.timeline-section {
  padding-top: 40px;
  padding-right: 20px;
  padding-bottom: 3px;
  padding-left: 20px;
  position: relative;
  background: linear-gradient(
      135deg,
      #a87b35 0%,
      #b38734 16%,
      #f7c561 50%,
      #f7e67c 100%
    )
    left bottom no-repeat;
  background-size: 100% 3px; /* Degradê ocupando a base como uma "borda" */
  background-color: var(--cor-vermelho);
}

.linha-customizada {
  border: none;             /* Remove a borda padrão do hr */
  height: 3px;              /* Define a altura da linha */
  background: linear-gradient(
    135deg,
    #A87B35 0%,
    #B38734 16%,
    #F7C561 50%,
    #F7E67C 100%
  );
  opacity: 1;
  margin: 1rem 0;           /* margem vertical, opcional */
}
.timeline-section h2 {
  font-family: "Playfair Display", serif;
  font-style: normal;
  font-weight: 700;
  font-size: 2.25rem;
  line-height: 56px;
  color: white;
}

.tituloAtuacao {
  margin: 0;
  font-family: "Playfair Display", serif;
  font-weight: 700;
  font-size: 2.25rem;
  line-height: 1.2;
  color: var(--cor-vermelho);
  font-family: "Playfair Display", serif;
  font-weight: 700;
  margin-bottom: 16px;
}

.subTituloAtuacao {
  margin: 0;
  font-family: "Inter", "Arial", sans-serif;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.5;
  color: var(--cor-vermelho);
  display: block;
  font-size: 1.35rem;
  font-weight: 700;
  margin-bottom: 12px;
}
.descricaoAtuacao {
  margin: 0;
  font-family: "Inter", "Arial", sans-serif;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.5;
  color: var(--cor-dourado-escuro);
  font-weight: 500;
  display: block;
}

/******************* CARDS *****************************/
.card .icon {
  font-size: 3rem;
  background: linear-gradient(
    135deg,
    #A87B35 0%,
    #B38734 16%,
    #F7C561 50%,
    #F7E67C 100%
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  /* Para Firefox */
  background-clip: text;
  color: transparent;
}

.card-text {
  color: gray;
  /*text-align: center;*/
}

.card {
  transition: all 0.5s;
  border: none;
  display: flex;
  justify-content: center; /* Centraliza horizontalmente */
  align-items: center; /* Centraliza verticalmente */
}

.hero .card:hover {
  background-color: var(--cor-vermelho);
  color: #fff;
}
.hero .card:hover .card-title,
.hero .card:hover .card-text {
  color: #fff;
}
.card-title {
  color: var(--cor-vermelho);
}
/******************* Sobre *****************************/

.about {
  background-color: var(--cor-vermelho);
  padding: 40px 20px;
  text-align: center;
  position: relative; /* necessário para o ::after */
}

.about::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 3px; /* altura da "borda" */
  background: linear-gradient(
    135deg,
    #A87B35 0%,
    #B38734 16%,
    #F7C561 50%,
    #F7E67C 100%
  );
}
.about .tituloAtuacao {
  color: #fff;
}
.about .subTituloAtuacao {
color: var(--cor-dourado);
}
.about .descricaoAtuacao {
  color: #fff;
}
.about .card-text {
  text-align: left;
}
.about .card-img {
  display: block; /* Adicione esta linha */
  object-fit: cover;
}

@media (min-width: 768px) {
  .cardsobre {
  position: relative;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  transform-origin: center;
  overflow: hidden;
  backface-visibility: hidden;
  outline: 2px solid var(--cor-vermelho);
  outline-offset: -1px;
  border-radius: 8px;
  background-color: var(--cor-bgBranco); /* garante o fundo branco */
  z-index: 0;
}

.cardsobre::after {
  content: "";
  position: absolute;
  top: -2px; left: -2px; right: -2px; bottom: -2px;
  border-radius: 10px;
  background: linear-gradient(
    135deg,
    #A87B35 0%,
    #B38734 16%,
    #F7C561 50%,
    #F7E67C 100%
  );
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  z-index: 1000;
  /* A seguir, máscara para deixar o centro transparente e mostrar o fundo branco */
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box, 
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: destination-out;
  mask-composite: exclude;
  padding: 5px; /* largura da borda degradê */
}

.cardsobre:hover {
  transform: scale(1.1);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15);
  z-index: 2;
  outline: none; /* remove o outline vermelho */
}

.cardsobre:hover::after {
  opacity: 1;
}

}
@media (max-width: 500px) {
  .rowcorte {
    overflow-x: hidden;
  }
}
.coluna-sobre {
  position: relative; /* Necessário para que o z-index funcione */
  z-index: 1;
  transition: z-index 0s, transform 0.3s ease, box-shadow 0.3s ease;
}

.coluna-sobre:hover {
  z-index: 2;
}
/******************* Testemunha  ***********************/

.testemunha {
  padding: 40px 20px;
  text-align: center;
  background-color: var(--cor-bgBranco);
  position: relative; /* necessário para o ::after */
}

.testemunha::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 3px; /* altura da "borda" */
  background: linear-gradient(
    135deg,
    #A87B35 0%,
    #B38734 16%,
    #F7C561 50%,
    #F7E67C 100%
  );
}
.carousel-control-next,
.carousel-control-prev {
  color: var(--cor-dourado);
  font-size: 2rem;
}
.carousel-control-prev:hover,
.carousel-control-next:hover {
  
  font-size: 2.2rem;
}

#testimonialCarousel .carousel-control-prev,
#testimonialCarousel .carousel-control-next {
  width: auto;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  background: none;
  border: none;
  color: var(--cor-dourado);
  font-size: 2rem;
}
#testimonialCarousel {
  position: relative;
  border-radius: 10px;
  padding: 3px; /* espaço da "borda" */
  background: linear-gradient(
    135deg,
    #A87B35 0%,
    #B38734 16%,
    #F7C561 50%,
    #F7E67C 100%
  );
}

/* Conteúdo interno para manter fundo branco */
#testimonialCarousel > .carousel-inner {
  border-radius: 7px; /* menor que o do pai para ficar dentro */
  background-color: var(--cor-bgBranco); /* fundo branco */
}



#testimonialCarousel .carousel-control-prev {
  left: -40px; /* ou -60px, se quiser mais afastado */
}

#testimonialCarousel .carousel-control-next {
  right: -40px;
}
/******************* Planejamento **********************/
.planejamento {
  padding: 40px 20px;
  text-align: center;
  background-color: var(--cor-vermelho);
  //border-bottom: 3px solid var(--cor-dourado);
  position: relative; /* necesario para o ::after */
}
.planejamento::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 3px; /* altura da "borda" */
  background: linear-gradient(
    135deg,
    #A87B35 0%,
    #B38734 16%,
    #F7C561 50%,
    #F7E67C 100%
  );
}
.cardbaixo {
  /*animation: pulseScale 2s infinite ease-in-out;*/
}

/* Animação de scale contínua */
@keyframes pulseScale {
  0%,
  100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.01); /* aumenta 5% no meio do ciclo */
  }
}
.planejamento .tituloAtuacao {
  color: #fff;
}
.planejamento .subTituloAtuacao {
  color: var(--cor-dourado);
}
.planejamento .descricaoAtuacao {
  color: var(--cor-dourado);
}

.planejamento .icon {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 80px; /* Tamanho da bola */
  height: 80px; /* Tamanho da bola */
  border-radius: 50%; /* Faz a borda ser redonda */
  background-color: var(--cor-dourado); /* Cor da bola */
  color: white; /* Cor do ícone */
  font-size: 36px; /* Tamanho do ícone */
}

.planejamento .teste {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap; /* Garante que os cards se ajustem em telas menores */
}

.planejamento .col-md-3,
.planejamento .col-sm-6 {
  display: flex;
  justify-content: center;
  align-items: stretch; /* Garante que todos os cards tenham a mesma altura */
}

.planejamento .card {
  display: flex;
  flex-direction: column;
  justify-content: space-between; /* Para garantir que o conteúdo do card ocupe o espaço restante */
  margin: 10px;
  border: 1px solid #ddd;
  border-radius: 8px;
  height: 100%; /* Isso faz com que todos os cards tenham a mesma altura */
}

.planejamento .card-body {
  padding: 20px;
  flex-grow: 1; /* Faz o conteúdo se expandir para ocupar o espaço disponível */
}

.planejamento .card-title {
  font-size: 18px; /* Ajuste de fonte, se necessário */
}
.planejamento .titulo {
  font-size: 1.4rem;
}
.planejamento .texto {
  margin: 0;
  font-family: "Inter", "Arial", sans-serif;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.5;
  display: block;
  font-size: 1.2rem;
  font-weight: 500;
  margin-bottom: 12px;
  font-family: "Playfair Display", serif;
color: var(--cor-dourado-escuro);
}
.planejamento .cardbaixo {
  position: relative;
  padding: 1rem; /* Ajuste para criar espaço entre borda e conteúdo */
  border-radius: 8px;
  z-index: 1;
  background-color: var(--cor-bgBranco);
  box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25) !important;
  overflow: hidden;
}

.planejamento .cardbaixo::before {
  content: "";
  position: absolute;
  inset: 0; /* top: 0; right: 0; bottom: 0; left: 0; */
  border-radius: 8px;
  padding: 2px; /* Largura da borda */
  background: linear-gradient(
    135deg,
    #A87B35 0%,
    #B38734 16%,
    #F7C561 50%,
    #F7E67C 100%
  );
  -webkit-mask: 
    linear-gradient(#fff 0 0) content-box, 
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  z-index: -1;
}

/******************* Contato ***************************/
.contato {
  padding: 40px 20px;
  text-align: center;
  background-color: var(--cor-bgBranco);
  //border-bottom: 3px solid var(--cor-dourado);
  position: relative; /* necesario para o ::after */
}
.contato::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 3px; /* altura da "borda" */
  background: linear-gradient(
    135deg,
    #A87B35 0%,
    #B38734 16%,
    #F7C561 50%,
    #F7E67C 100%
  );
}

.cardcontato {
  background: var(--cor-vermelho);
  color: #fff;
}
.cardcontato .card-title {
  margin: 0;
  font-family: "Playfair Display", serif;
  font-weight: 600;
  font-size: 1.8rem;
  line-height: 1.235;
  color: white;
  font-family: "Playfair Display", serif;
  font-weight: 700;
  margin-bottom: 24px;
  text-align: left;
}

.cardcontato .card-text {
  margin: 0;
  font-family: "Inter", "Arial", sans-serif;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.5;
  margin-bottom: 32px;
  color: #fff;
  text-align: left;
}
.textocontato strong {
  margin: 0;
  font-family: "Inter", "Arial", sans-serif;
  font-size: 1rem;
  line-height: 1.75;
  font-weight: 600;

color: var(--cor-dourado);
}
.textocontato a {
  margin: 0;
  font-family: "Inter", "Arial", sans-serif;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.5;
  color: white;
  -webkit-text-decoration: none;
  text-decoration: none;
}
.textocontato a:hover {
  margin: 0;
  font-family: "Inter", "Arial", sans-serif;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.5;
color: var(--cor-dourado);
  -webkit-text-decoration: none;
  text-decoration: none;
}
.iconecontato {
  line-height: 1 !important;
  font-size: 2rem !important;
  background: linear-gradient(
    135deg,
    #A87B35 0%,
    #B38734 16%,
    #F7C561 50%,
    #F7E67C 100%
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
}

.contato .card-body .linha-customizada {
  box-shadow: 0 0 0 0.1px var(--cor-dourado);
  border: none;
}
.btnenviar {
  background-color: var(--cor-vermelho);
  color: #fff;
  border-color: var(--cor-vermelho);
}
.btnenviar:hover {
  background-color: var(--cor-dourado);
  color: #fff;
  border-color: var(--cor-dourado);
}

/******************* Footer *****************/
footer {
  background-color: var(--cor-vermelho);
  color: white;
  padding: 20px 0;
  text-align: center;
}
.footer-redes {
  display: flex;
  gap: 1rem;
  justify-content: center;
}
.footer-personalizado {
  background-color: var(--cor-vermelho); /* fundo escuro elegante */
  color: white;
  padding: 2rem 1rem;
  font-size: 0.9rem;
}

.footer-conteudo {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 2rem;
}

.footer-info {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.logo-footer {
  width: 120px;
  margin-bottom: 0.5rem;
}

.oab {
color: var(--cor-dourado);
  font-weight: bold;
}

.footer-descricao .slogan {
  max-width: 400px;
  line-height: 1.5;
  color: white;
}

.footer-redes {
  display: flex;
  gap: 1rem;
  align-items: center;
}

.icone-social i {
  font-size: 1.5rem;
  background: linear-gradient(
    135deg,
    #A87B35 0%,
    #B38734 16%,
    #F7C561 50%,
    #F7E67C 100%
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
  transition: color 0.3s;
}

.icone-social:hover i {
  color: white;
}

.footer-copy {
  margin-top: 2rem;
  text-align: center;
  font-size: 0.85rem;
  padding-top: 1rem;
color: var(--cor-dourado);
  position: relative; /* para o pseudo-elemento se posicionar */
  border-top: none;    /* remove a borda padrão */
}

.footer-copy::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 1px; /* altura da borda */
  background: linear-gradient(
    135deg,
    #A87B35 0%,
    #B38734 16%,
    #F7C561 50%,
    #F7E67C 100%
  );
}
.footer-info {
  transition: transform 0.3s ease;
}
.footer-info:hover {
  transform: scale(1.1);
}
@media (max-width: 768px) {
  .footer-conteudo {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
  }

  .footer-info,
  .footer-descricao,
  .footer-redes {
    align-items: center;
  }

  .footer-info {
    align-items: center;
  }
}

/******************* btntopo ***************************/
#btnTopo {
  position: fixed;
  bottom: 30px;
  right: 30px;
  z-index: 999;
  width: 50px;
  height: 50px;
  background: linear-gradient(
  135deg,
  #A87B35 0%,
  #B38734 16%,
  #F7C561 50%,
  #F7E67C 100%
);
  color: white;
  border: none;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  cursor: pointer;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
  transition: background-color 0.3s ease, transform 0.3s ease;
  display: none; /* escondido por padrão */
}

#btnTopo:hover {
  background-color: #c5a552; /* versão escura da dourada */
  transform: scale(1.1);
}

/******************* btnWhatsapp ************************/
#btnWhatsapp {
  position: fixed;
  bottom: 95px;
  right: 30px;
  z-index: 998;
  width: 50px;
  height: 50px;
  background-color: #25d366;
  color: white;
  border: none;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
  cursor: pointer;
  text-decoration: none;
  overflow: visible;
}

#btnWhatsapp i {
  z-index: 2;
  position: relative;
}

#btnWhatsapp .pulse {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: #25d366;
  animation: pulseAnim 1s infinite ease-out;
  z-index: 1;
  opacity: 0.5;
}

/* Balão com a seta */
#btnWhatsapp .label {
  position: absolute;
  right: 60px; /* Posição inicial à direita */
  bottom: 50%;
  transform: translateY(50%) translateX(20px); /* Inicialmente um pouco à direita */
  opacity: 0;
  background-color: #111;
  color: white;
  padding: 8px 12px;
  border-radius: 5px;
  font-size: 1rem;
  white-space: nowrap;
  pointer-events: none;
  transition: opacity 1s ease, transform 1s ease; /* Animação do deslizamento */
  z-index: 2;
}

/* Seta do balão */
#btnWhatsapp .label::after {
  content: "";
  position: absolute;
  right: -10px; /* A seta agora vai estar à direita do balão */
  top: 50%;
  transform: translateY(-50%);
  border-width: 6px;
  border-style: solid;
  border-color: transparent transparent transparent #111; /* Cor da seta */
}

/* Quando o botão é hover, a label desliza */
#btnWhatsapp:hover .label {
  opacity: 1;
  transform: translateY(50%) translateX(0); /* Movimenta a label para a posição final */
}

@keyframes pulseAnim {
  0% {
    transform: scale(1);
    opacity: 0.5;
  }
  70% {
    transform: scale(1.5);
    opacity: 0;
  }
  100% {
    transform: scale(1.5);
    opacity: 0;
  }
}

/******************* Timeline Demo - 7 *****************/
.main-timeline7 {
  overflow: hidden;
  position: relative;
}
.main-timeline7 .timeline {
  width: 50%;
  float: left;
  z-index: 1;
  position: relative;
}
.main-timeline7 .timeline:after,
.main-timeline7 .timeline:before {
  content: "";
  display: block;
  clear: both;
}
/*Barra 01*/
.main-timeline7 .timeline:before {
  content: "";
  width: 40px;
  height: 90%;
  background: var(--cor-dourado);
  position: absolute;
  top: 10%;
  right: -20px;
}
.main-timeline7 .timeline:last-child:before {
  height: 0;
}

/*Bola grande 01*/
.main-timeline7 .timeline-icon {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: var(--cor-dourado);
  overflow: hidden;
  text-align: center;
  position: absolute;
  top: 0;
  right: -40px;
  z-index: 3;
}
.main-timeline7 .timeline-icon:before {
  content: "";
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--cor-vermelho);
  box-shadow: 0 0 0 4px var(--cor-vermelho);
  margin: auto;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
}
.main-timeline7 .timeline-icon i {
  font-size: 35px;
  color: var(--cor-dourado);
  line-height: 80px;
  z-index: 1;
  position: relative;
}
.main-timeline7 .year {
  display: block;
  padding: 0 60px 0 30px;
  font-size: 30px;
  color: #303a3b;
  text-align: right;
  border-bottom: 2px solid var(--cor-dourado);
  z-index: 2;
  position: relative;
}
.main-timeline7 .year:before {
  content: "";
  display: block;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--cor-dourado);
  border: 5px solid #fff;
  box-shadow: 0 0 0 4px var(--cor-dourado);
  margin: auto;
  position: absolute;
  bottom: -15px;
  left: 4px;
}
.main-timeline7 .year:after {
  content: "";
  /*border-left: 10px solid var(--cor-dourado);*/
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  position: absolute;
  bottom: -11px;
  left: 50px;
}
.main-timeline7 .timeline-content {
  padding: 18px 60px 18px 40px;
  text-align: right;
  position: relative;
  z-index: 1;
}
.main-timeline7 .timeline-content:after,
.main-timeline7 .timeline-content:before {
  content: "";
  width: 80px;
  height: 150px;
  border-radius: 50%;
  position: absolute;
  top: -7%;
  right: 15px;
  z-index: -1;
}
.main-timeline7 .timeline-content:after {
  left: auto;
  right: -95px;
}
.main-timeline7 .timeline:last-child .timeline-content:after,
.main-timeline7 .timeline:last-child .timeline-content:before {
  width: 0;
  height: 0;
}
.main-timeline7 .title {
  font-size: 22px;
  font-weight: 700;
color: var(--cor-dourado);
  margin-top: 0;
}
.main-timeline7 .description {
  font-size: 15px;
  color: #fff !important;
  line-height: 25px;
}
.main-timeline7 .timeline:nth-child(2) {
  margin-top: 180px;
}
@media (min-width: 991px) {
  .main-timeline7 .timeline:nth-child(2) {
    margin-bottom: 130px !important;
  }
}

.main-timeline7 .timeline:nth-child(4) {
  margin-top: 80px;
}
.main-timeline7 .timeline:nth-child(even) {
  margin-bottom: 0px;
}

.main-timeline7 .timeline:nth-child(odd) {
  margin: -140px 0 0;
}
.main-timeline7 .timeline:first-child,
.main-timeline7 .timeline:last-child:nth-child(even) {
  margin: 0 !important;
}
/*linha 02*/
.main-timeline7 .timeline:nth-child(2n) .timeline-icon,
.main-timeline7 .timeline:nth-child(2n):before {
  right: auto;
  left: -20px;
  background: var(--cor-bgBranco);
}
.main-timeline7 .timeline:nth-child(2n) .timeline-icon {
  left: -40px;
}
.main-timeline7 .timeline:nth-child(2n) .year {
  padding: 0 30px 0 60px;
  text-align: left;
  border-bottom: 2px solid var(--cor-bgBranco);
}
.main-timeline7 .timeline:nth-child(2n) .year:before {
  left: auto;
  right: 4px;
}
/*Seta*/
.main-timeline7 .timeline:nth-child(2n) .year:after {
  border-left: none;
  /*border-right: 10px solid var(--cor-bgBranco);*/
  right: 50px;
}
.main-timeline7 .timeline:nth-child(2n) .timeline-content {
  padding: 18px 40px 18px 60px;
  text-align: left;
}
.main-timeline7 .timeline:nth-child(2n) .timeline-content:before {
  left: -95px;
}
.main-timeline7 .timeline:nth-child(2n) .timeline-content:after {
  left: 15px;
}
.main-timeline7 .timeline:nth-child(2n) .timeline-icon:before {
  border-color: var(--cor-vermelho);
  box-shadow: 0 0 0 4px var(--cor-vermelho);
  background: var(--cor-dourado);
}
.main-timeline7 .timeline:nth-child(2n) .timeline-icon i {
  color: var(--cor-bgBranco);
}
.main-timeline7 .timeline:nth-child(2n) .year:before {
  background: var(--cor-bgBranco);
  box-shadow: 0 0 0 4px var(--cor-bgBranco);
  border: 5px solid var(--cor-dourado);
}

.main-timeline7 .timeline:nth-child(2n) .title {
color: var(--cor-dourado);
}
.main-timeline7 .timeline:nth-child(3n) .timeline-icon,
.main-timeline7 .timeline:nth-child(3n):before {
  background: var(--cor-dourado);
}
.main-timeline7 .timeline:nth-child(3n) .timeline-icon:before {
  border-color: var(--cor-vermelho);
  box-shadow: 0 0 0 4px var(--cor-vermelho);
}
.main-timeline7 .timeline:nth-child(3n) .year:before {
  background: var(--cor-dourado);
  box-shadow: 0 0 0 4px var(--cor-dourado);
}
.main-timeline7 .timeline:nth-child(3n) .title {
  color: var(--cor-dourado);
}
.main-timeline7 .timeline:nth-child(4n) .timeline-icon,
.main-timeline7 .timeline:nth-child(4n):before {
  background: var(--cor-bgBranco);
}
.main-timeline7 .timeline:nth-child(4n) .timeline-icon:before {
  border-color: var(--cor-vermelho);
  box-shadow: 0 0 0 4px var(--cor-vermelho);
}
.main-timeline7 .timeline:nth-child(4n) .year:before {
  background: var(--cor-bgBranco);
  box-shadow: 0 0 0 4px var(--cor-bgBranco);
}
.main-timeline7 .timeline:nth-child(4n) .title {
  color: var(--cor-dourado);
}
@media only screen and (max-width: 990px) {
  .main-timeline7 .timeline {
    width: 100%;
  }
  .main-timeline7 .timeline:nth-child(even),
  .main-timeline7 .timeline:nth-child(odd) {
    margin: 0;
  }
  .main-timeline7 .timeline:before,
  .main-timeline7 .timeline:nth-child(2n):before {
    width: 30px;
    height: 100%;
    left: 25px;
  }
  .main-timeline7 .timeline-icon,
  .main-timeline7 .timeline:nth-child(2n) .timeline-icon {
    left: 0;
  }
  .main-timeline7 .timeline:nth-child(2n) .year,
  .main-timeline7 .year {
    text-align: left;
    padding: 0 30px 0 100px;
  }
  .main-timeline7 .timeline:nth-child(2n) .year:before,
  .main-timeline7 .year:before {
    left: auto;
    right: 4px;
  }
  .main-timeline7 .year:after {
    left: auto;
    right: 50px;
    /*border-right: 10px solid var(--cor-dourado);*/
    border-left: none;
  }
  .main-timeline7 .timeline-content .description {
    color: #666;
  }
  .main-timeline7 .timeline-content,
  .main-timeline7 .timeline:nth-child(2n) .timeline-content {
    text-align: left;
    padding: 18px 40px 18px 100px;
  }
  .main-timeline7 .timeline-content:after,
  .main-timeline7 .timeline-content:before {
    width: 0;
    height: 0;
  }
}
.btn-close.position-absolute {
  top: 1rem; /* ajuste para ficar um pouco afastado do topo */
  right: 1rem; /* ajuste para ficar afastado da direita */
  z-index: 1051; /* para garantir que esteja no topo */
}
.modal-content {
  position: relative; /* referência para posição absoluta */
}
.modal-body {
  padding: 0 !important;
}
.btn-close {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-width='2' d='M2 2l12 12M14 2L2 14'/%3e%3c/svg%3e");
}
