.imgsComposition {
  position: relative;
  overflow: hidden;
}

.imgsComposition .montanhas {
  position: absolute;
  bottom: 26%;
  left: 0;
  z-index: 3;
}

.glass-button {
  color: #e6e6e6;
  backdrop-filter: blur(12px);
  position: absolute;
  bottom: 26%;
  left: 50%;
  transform: translateX(-50%);
  padding: 18px 100px;
  background: #e6e6e6;
  background-color: #3333334d;
  backdrop-filter: blur(12px);
  box-shadow: 0px 0px 2px 0px #f2f2f2 inset;
  border: none;
  z-index: 4;
}

.glass-button:hover {
  color: #1a1a1a;
  position: absolute;
  bottom: 26%;
  left: 50%;
  transform: translateX(-50%);
  padding: 18px 100px;
  background-color: #e6e6e6;
  border: none;
}

.discoverPortugal {
  margin-bottom: 216px;
}

.discoverPortugal,
.discover-img {
  width: 100%;
}

.swiper-pagination-bullet-active {
  background: white;
}

.discoverPortugal img {
  margin-top: 64px;
  object-fit: cover;
}

.vinhas {
  margin-bottom: 215px;
}

#smooth-wrapper .row,
#smooth-wrapper .section,
#smooth-wrapper section {
  position: relative;
  overflow: hidden;
}

#smooth-wrapper .section,
#smooth-wrapper section {
  text-align: center;
}

.horiz-gallery-strip,
.horiz-gallery-wrapper {
  display: flex;
  flex-wrap: nowrap;
  will-change: transform;
  position: relative;
}

.horiz-gallery-strip {
  gap: 20px;
}

.project-wrap {
  /* width: 33vw; */
  width: 800px;
  box-sizing: content-box;
  position: relative; /* referência para o texto */
  overflow: hidden;
}

.project-wrap img {
  width: 100%;
  aspect-ratio: 1/1;
  object-fit: cover;
  display: block;
}

.card-content {
  position: absolute;
  bottom: 22px;
  left: 30px;
  right: 30px;
  color: #fff;
  z-index: 2;
  text-align: left;
}

/**ANIMAÇÕES CAROUSEL INICIAL-----------------------*/

.reviews-carousel-title {
  width: 700px;
  margin-left: 208px;
}

.card-content .h2 {
  transform: translateY(50px); /* começa em baixo */
  transition: transform 0.5s ease;
}

/* TEXTO ESCONDIDO */
.card-content .h3 {
  margin-top: 12px;
  opacity: 0;
  transform: translateY(40px);
  transition: all 0.5s ease;
}

/* Gradiente por baixo */
.project-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0) 79.33%,
    rgba(0, 0, 0, 0.6) 92.31%
  );
  opacity: 0;
  transition: opacity 0.5s ease;
  pointer-events: none;
}

/* HOVER */
.project-wrap:hover .h2 {
  transform: translateY(0);
}

.project-wrap:hover .h3 {
  opacity: 1;
  transform: translateY(0);
}

.project-wrap:hover::after {
  opacity: 1;
}

.project-wrap.is-active .h2 {
  transform: translateY(0);
}

.project-wrap.is-active .h3 {
  opacity: 1;
  transform: translateY(0);
}

.project-wrap.is-active::after {
  opacity: 1;
}

/* Quando existe hover noutro card (não no is-active) */
.horiz-gallery-strip:has(.project-wrap:hover:not(.is-active))
  .project-wrap.is-active
  .h2 {
  transform: translateY(40px);
}

.horiz-gallery-strip:has(.project-wrap:hover:not(.is-active))
  .project-wrap.is-active
  .h3 {
  opacity: 0;
  transform: translateY(40px);
}

.horiz-gallery-strip:has(.project-wrap:hover:not(.is-active))
  .project-wrap.is-active::after {
  opacity: 0;
}

/* --------------------------------------------------------- */
.explore-btn {
  padding: 15px 85px;
  margin-top: 100px;
  margin-bottom: 45px;
}

.explore-btn:hover {
  color: black;
}


.meet-partners {
    /* margin-top: 52px; */
    margin-top: 32px;
    margin-bottom: 20px;
}

/* -----------------------BRANDS CAROUSEL---------------------------------- */
.brands-carousel {
  display: flex;
  flex-wrap: wrap;
  /* height: 260px;*/
  height: 194px; 
}

.brands-carousel .swiper {
  width: 100%;
  height: 100%;
}

.brands-carousel .swiper-slide {
  text-align: center;
  font-size: 18px;
  display: flex;
  justify-content: center;
  align-items: center;
  /* width: 140px !important;
  height: 140px; */
  width: 100px !important;
  height: 100px;
}

.brands-carousel .swiper-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.brands-carousel .swiper-slide img:hover {
  transform: scale(1.15);
}

/* -----------------------REVIEWS CAROUSEL---------------------------------- */

.reviews-carousel {
  margin-top: -120px;
  /* padding-left: 208px; */
  margin-bottom: 194px;
}

.sec {
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 40px;
}

/* Seção 2 */
.sec2 {
  overflow: hidden;
}

.cards-wrapper {
  height: 100%;
  width: 100%;
  display: flex;
  align-items: center;
  position: relative;
}

/* IMPORTANTE → padding reduzido para que o 1º card apareça */
.cards-h {
  display: flex;
  gap: 86px;
  z-index: 2;
  margin-top: 80px;
}

.card {
  width: 538px;
  max-height: 538px;
  background: #000000;
  box-shadow: 0px 0px 20px 0px #0000000d;
  padding: 40px;
  display: flex;
  gap: 62px;
}

.card-reviewer {
  line-height: 22px;
  letter-spacing: 0.06em;
}

.modal {
  background-color: rgba(0, 0, 0, 0.8);
}

.bg-fade {
  position: absolute;
  width: 100%;
  height: 100%;
  background: linear-gradient(0deg, #000000 0%, rgba(2, 34, 61, 0) 22.24%);
  z-index: 1;
  pointer-events: none;
}

.card-opinion {
  font-size: 22px;
  font-weight: 400;
  line-height: 30px;
  color: white;
  letter-spacing: 0.06em;
  margin: 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 13; /* quantidade de linhas visíveis */
  overflow: hidden;
}

.timeline-line {
  position: absolute;
  top: 55%;
  left: 26%;
  height: 2px;
  background: linear-gradient(90deg, #eaeaea 10.1%, #d2c878 92.54%);
  z-index: 1;
  border: none;
}

.timeline-line::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 11px;
  height: 11px;
  background-color: #ffffff;
  border-radius: 50%;
  z-index: 2;
}

.modal-dialog {
  max-width: 50%;
}

.modal-header {
  border: none;
  padding: 104px 67px 32px 40px;
}

.modal-content {
  border-radius: 0;
  background-color: #000000;
  color: white;
  border: 1px solid white;
}

.modal-body {
  padding: 30px 99px 104px 99px;
}

.modal-body::-webkit-scrollbar {
  width: 8px;
}

.modal-body::-webkit-scrollbar-thumb {
  background-color: white;
}

.btn-close {
  --bs-btn-close-bg: url("/Grape/imgs/icons/close.png");
  opacity: 1;
  background-size: 32px;
}

.btn-close:hover {
  opacity: 1;
}

.text-banner {
  font-family: Comfortaa;
  font-weight: 700;
  font-size: 5rem;
  line-height: 100%;
  letter-spacing: 0;
  color: #ffffff;
  z-index: 2;
  display: flex;
  width: 100%;
  justify-content: center;
}

.text-banner-small {
  font-family: Comfortaa;
  font-weight: 700;
  font-size: 2rem;
  line-height: 100%;
  letter-spacing: 0;
  color: #ffffff;
  z-index: 2;
  display: flex;
  width: 100%;
  justify-content: center;
}

.animate-text-banner {
  position: absolute;
  bottom: 22%;
  z-index: 2;
  width: 100%;
  transition: bottom 1.8s ease;
   opacity: 1;
}

.animate-text-banner.active-banner {
  bottom: 62%;
}

.section-about{
  margin-bottom: 62px;
}

.section-about-me{
  margin-top: 68px;
}

.about-title{
  color: #b17f4a;
}

.about-info{
  font-size: 24px;
    font-weight: 500;
    line-height: 34px;
    color: white;
    white-space: pre-line;
}


.animate-text-banner{
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 3;
}

/* 
.mySwiperDiscoverPortugal .swiper-slide {
  text-align: center;
  font-size: 18px;
  background: #444;
  display: flex;
  justify-content: center;
  align-items: center;
}

.mySwiperDiscoverPortugal .swiper-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
} */

@media (max-width: 991px) {
  .discoverPortugal .discover-info {
    margin: 0;
  }

  .discoverPortugal img {
    margin-top: 15px;
    margin-bottom: 36px;
    height: 420px;
    object-fit: cover;
  }

  .discoverPortugal .discover-info .discover-info-txt {
    margin-bottom: 61px;
  }

  #smooth-wrapper,
  #smooth-content {
    overflow: visible !important;
  }

  .horiz-gallery-wrapper {
    overflow: visible !important;
    height: auto !important;
  }

  .horiz-gallery-strip {
    flex-direction: column !important;
    gap: 32px;
    padding: 0 20px;
    transform: none !important; /* Remove qualquer transformação do JS */
    width: 100% !important;
    padding: 0;
  }

  .project-wrap {
    width: 100% !important;
    max-width: 100%;
    flex-shrink: 0;
  }

  .project-wrap img {
    width: 100%;
    height: auto;
    aspect-ratio: 1/1;
  }

  /* Texto sempre visível em mobile */
  .card-content .h2 {
    transform: translateY(0) !important;
    font-size: 22px;
  }

  .card-content .h3 {
    opacity: 1 !important;
    transform: translateY(0) !important;
    margin-top: 8px;
    font-size: 18px;
    line-height: 26px;
    letter-spacing: 0.02em;
  }

  .project-wrap::after {
    opacity: 1 !important;
  }

  /* Ajusta o botão */
  .explore-btn {
    padding: 12px 46px;
    margin: 24px 24px 94px 24px;
    font-size: 17px;
  }

  .btn-wrapper {
    padding: 0 20px;
  }

  .btn-wrapper a.explore-btn:hover {
    color: black !important;
  }

  /* Ajusta espaçamento do texto dentro dos cards */
  .card-content {
    bottom: 15px;
    left: 20px;
    right: 20px;
  }

  .portfolio-container {
    padding: 0;
  }

  .meet-partners {
    margin-top: 40px;
    margin-bottom: 11px;
    font-size: 22px;
  }

  .brands-carousel {
    height: 216px;
  }

  .brands-carousel .meet-partners {
    margin-left: 12px;
  }

  .brands-carousel .swiper-slide {
    width: 120px !important;
    height: 120px !important;
  }

  .reviews-carousel {
    margin-top: 100px;
  }

  .reviews-carousel-title {
    width: 40dvh;
    margin-left: 18px;
  }

  .reviews-carousel-title p {
    font-size: 40px;
    width: 70%;
  }

  .reviews-carousel-title .aspas {
    font-size: 86px;
    height: 48px;
  }

  .timeline-line {
    width: 200px !important;
    transform: rotate(90deg) !important;
    top: 128%;
    left: 58%;
  }

  .mySwiperReviewsMobile .swiper-wrapper .swiper-slide {
    width: 327px;
  }

  .mySwiperReviewsMobile .card {
    width: auto;
    gap: 15px;
    padding: 20px;
    height: 540px;
  }

  .mySwiperReviewsMobile .card .card-header {
    padding: 0;
  }

  .mySwiperReviewsMobile .card .card-header img {
    margin-top: -24px;
  }

  .mySwiperReviewsMobile .card .card-reviewer {
    font-weight: 700;
    font-size: 22px;
    line-height: 22px;
    letter-spacing: 0.06em;
  }

  .mySwiperReviewsMobile .card .card-opinion {
    font-weight: 400;
    font-size: 16px;
    line-height: 22px;
    letter-spacing: 0.06em;
    -webkit-line-clamp: 19;
  }

  .mySwiperReviewsMobile .swiper-pagination-bullet {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.4);
    opacity: 1;
    margin: 0 4px !important;
    transition: all 0.3s ease;
  }

  .mySwiperReviewsMobile .swiper-pagination-bullet-active {
    background: #ffffff;
    width: 20px;
    height: 6px;
    border-radius: 3px;
  }

  .modal-dialog-scrollable .modal-content {
    max-height: 80%;
  }

  .modal-dialog {
    max-width: 90%;
    margin: auto;
  }

  .modal-dialog-centered {
    display: flex;
    align-items: center;
    min-height: calc(100% - 1rem);
  }

  .modal-header {
    padding: 40px 20px 16px 20px;
  }

  .modal-body {
    padding: 20px;
  }

  .modal-body::-webkit-scrollbar-thumb {
    background: #ffffff;
  }

  /* header */

  .imgsComposition {
    position: relative;
    overflow: hidden;
    height: 100dvh;
  }

  .reviews-carousel-mobile {
    margin-top: 120px;
    margin-bottom: 120px;
  }

  .imgsComposition .montanhas {
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 3;
    height: 72%;
    object-fit: cover;
  }
  .ceu {
    height: 138%;
    object-fit: cover;
  }
  .text-banner {
    font-size: 2.5rem;
    padding: 12px 24px;
    justify-content: left;
  }

  .text-banner-small {
    font-size: 1.2rem;
    padding: 0px 24px;
    justify-content: left;
  }

  .animate-text-banner {
    bottom: 0%;
  }

  .animate-text-banner.active-banner {
    bottom: 10%;
  }

  .glass-button {
    display: block;
    margin: auto;
    position: absolute;
    bottom: 156px;
    left: 50%;
    transform: translateX(-50%);
    padding: 18px 100px;
    max-width: 320px;
    width: 100%;
    z-index: 4;
  }

  .glass-button:hover {
    bottom: 92px;
    left: 50%;
  }

  .discoverPortugal {
    margin-top: 56px;
  }

  .about-info{
    font-size: 18px;
    line-height: 26px;
  }

  #videoInicial{
    object-position: -948px center;
  }
}
