/* ══════════════════════════════════════
   HERO BANNER — 100vh
══════════════════════════════════════ */
.place-hero {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: start;
  padding: 90px 0 0 0;
}

.place-hero__back-container{
	position: relative;
    z-index: 2;
    display: flex;
    justify-content: start;
    align-items: start;
    max-width: 1200px;
    margin: 0 auto;
    width: 100%;
	padding-top: 2.5rem;
 }	
	
.place-hero__back {
  font-family: var(--font-primary);
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-white);
  letter-spacing: .08em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: .4rem;
  z-index: 10;
  opacity: .9;
  transition: opacity .2s;
}
.place-hero__back:hover { opacity: 1; }
.place-hero__back::before { content: '‹'; font-size: 1.1rem; }

.place-hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.place-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  /*background: linear-gradient(
    to bottom,
    rgba(0,0,0,.40) 0%,
    rgba(0,0,0,.12) 40%,
    rgba(0,0,0,.12) 60%,
    rgba(0,0,0,.38) 100%
  );*/
  z-index: 1;
}

.place-hero__content {
  position: relative;
  padding: clamp(3rem, 6.761vw + 1.416rem, 7.5rem) 0 0 0;
  z-index: 2;
  text-align: center;
  color: var(--color-white);
}

.place-hero__welcome {
  font-family: var(--font-secondary);
  font-size: clamp(4rem, 6vw, 6.5rem);
  line-height: 1;
  margin-bottom: .2rem;
}

.place-hero__city {
  font-family: var(--font-primary);
  font-size: var(--text-h2);
  font-weight: 500;
  letter-spacing: .04em;
}

.place-background{
    background: transparent linear-gradient(180deg, #EBE8EF 0%, #EBE8EF86 48%, #EBE8EF00 100%) 0% 0% no-repeat padding-box;
}

/* ══════════════════════════════════════
   INTRO — Título + Descrição
══════════════════════════════════════ */
.place-intro {
  padding: var(--space-xl) var(--space-base) 0 var(--space-base);
  text-align: center;
}

.place-intro__title {
  font-size: var(--text-h2);
  line-height: var(--leading-h2);
  font-weight: 500;
  color: var(--color-primary);
  margin-bottom: 1.25rem;
}

.place-intro__body {
  font-family: var(--font-primary);
  max-width: 640px;
  margin: 0 auto;
  font-size: var(--text-body);
  line-height: var(--leading-body);
  color: #1a1a1a;
}

/* ══════════════════════════════════════
   GALERIA CAROUSEL (Happy Files)
══════════════════════════════════════ */
.place-gallery {
  padding: var(--space-lg) 0 var(--space-md);
  overflow: hidden;
}

.gallery-swiper {
  width: 100%;
  padding-bottom: 3rem !important;
}

.gallery-swiper .swiper-slide {
    width: 55%;
    max-width: 720px;
    aspect-ratio: 4/3;   /* ← usa este OU o height abaixo, não os dois */
    /* height: 500px; */
    overflow: hidden;
    opacity: .4;
    transition: opacity .4s, transform .4s;
}

.gallery-swiper .swiper-slide-active {
  opacity: 1;
}

.gallery-swiper .swiper-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* custom arrows */
.gallery-nav {
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin-top: -0.5rem;
}

.gallery-nav__btn {
  width: 2.75rem;
  height: 2.75rem;
  border: none !important;
  border-radius: 6px;
  background: transparent !important;
  padding: 0 !important;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s;
}
.gallery-nav__btn:hover { background: var(--color-secondary); }
.gallery-nav__btn:hover svg path { stroke: var(--color-white); }


/* ══════════════════════════════════════
   TABS — Overview / History / Guide
══════════════════════════════════════ */
.place-tabs, .place-properties {
  max-width: 1180px;
  margin: 0 auto;
  padding: var(--space-base) var(--space-base) 0;
  background: var(--color-white);
}

	.tab-panel .tab-text-title{
		color: var(--color-primary) !important;
		font-weight: 500 !important;
		padding: 2rem 0 1.5rem 0;
	}

.place-tabs__inner {
  max-width: 1180px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-md);
  align-items: start;
}

/* esquerda: imagens sobrepostas */
.tabs-images {
  position: relative;
}

.tabs-images__main {
  width: 100%;
  max-width: 475px;
  height: 520px;
  object-fit: cover;
  transition: opacity .35s;
}

.tabs-images__accent {
  position: relative;
  bottom: 90px;
  left: -60px;
  width: 100%;
  max-width: 424px;
  height: 300px;
  aspect-ratio: 4/3;
  object-fit: cover;
  transition: opacity .35s;
}

/* direita: tabs */
.tabs-nav {
  display: flex;
  gap: 0.25rem;
  margin-bottom: 2rem;
  flex-wrap: wrap;
}

.tab-btn {
  padding: .5rem 1.4rem !important;
  font-family: var(--font-primary);
  font-size: var(--text-sm);
  font-weight: 600 !important;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--color-secondary) !important;
  background: transparent !important;
  min-width: 160px;
  border: none !important;
  margin-bottom: -1px;
  cursor: pointer;
  transition: color .2s, border-color .2s;
}

.tab-btn.is-active, .tab-btn:hover {
  color: var(--color-secondary);
  border: 1px solid var(--color-secondary) !important;
}

.tab-panel { display: none; }
.tab-panel.is-active { display: block; }

.tab-panel .tab-text {  font-family: var(--font-primary); font-size: var(--text-body); line-height: var(--leading-body); color: var(--color-text-muted); max-width: 500px; }
.tab-panel .tab-text h2,
.tab-panel .tab-text h3 { font-size: clamp(1.2rem,2vw,1.75rem); font-weight: 500; color: var(--color-text); margin-bottom: 1rem; line-height: 1.3; }
.tab-panel .tab-text p  { margin-bottom: 1rem; color: var(--color-text);}
.tab-panel .tab-text h4 { font-size: var(--text-body-md); font-weight: 700; color: var(--color-text); margin: 1.5rem 0 .75rem; }
.tab-panel .tab-text ul { list-style: square; padding-left: 1.2rem; }
.tab-panel .tab-text ul li { margin-bottom: .35rem; color: var(--color-text); }
.tab-panel .tab-text strong { font-weight: 600; }
	.place-properties{
		max-width: 1200px;
		margin: 0 auto;
		position: relative;
		padding: var(--space-base) 15px var(--space-lg) 15px;
	}
	.place-properties h2{
		text-align: center;
		padding-bottom: 3rem;
	}	
	.properties-view-more-mobile{
		display: none;
	}
/* ══════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════ */
	@media (max-width: 1240px){
			.place-hero__back-container {
		padding: 2.5rem 35px 0;
	}
	}	
	@media (min-width: 900px){
		    .tabs-images {
  position: -webkit-sticky;
  position: sticky;
  top: 100px;
  align-self: start;
}
		.place-tabs__inner {
			position: relative;
		}
	}
	
@media (max-width: 900px) {
  .place-tabs__inner { grid-template-columns: 1fr; }
  .gallery-swiper .swiper-slide { width: 85%; }
	.tab-panel .tab-text{ margin: 0 auto;}
	.tab-btn{
		min-width: 90px !important;
	}
	.tabs-nav {
		justify-content: space-evenly;
	}
	.tabs-images{
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
	}
	.tab-text-title{
		font-size: 25px !important;
	}
	.place-tabs__inner {
			gap: 0;
		}	

}
@media (max-width: 600px) {
	.properties-view-more-mobile{
		display: flex !important;
		justify-content: center;
		position: relative !important;
		bottom: initial !important;
		right: initial !important;
		max-width: 100% !important;
		padding: clamp(3rem, 6.761vw + 1.416rem, 7.5rem) 0 clamp(3rem, 6.761vw + 1.416rem, 7.5rem) 0 !important;
	}
		.tabs-images{
		display: flex;
		flex-direction: column;
		align-items: end;
		justify-content: end;
	}
  .gallery-swiper .swiper-slide { max-width: 280px; height: 200px; }
	
	.place-hero__back-container {
		padding: 2.5rem 20px 0;
	}
	.tabs-images__main {
		height: 335px;
		max-width: 300px;
	}
	.tabs-images{
		padding-top: 3rem;
		padding-bottom: 0;
	}
 .tabs-images__accent {
  bottom: 90px;
  left: -80px;
  width: 100%;
  max-width: 270px;
  height: 200px;
  aspect-ratio: 4/3;
  object-fit: cover;
  transition: opacity .35s;
}
}
	@media(min-width: 2400px){
		.place-tabs__inner, .place-tabs, .place-properties{
			max-width: 1920px;
		}
		.tabs-images__main {
    width: 100%;
    max-width: 760px;
    height: 600px;
}
		.tab-panel .tab-text {
			max-width: 800px;
		}
		.tabs-images__accent {
			max-width: 525px;
		}
	}
	/* ══════════════════════════════════════
   READ MORE — Tab text
══════════════════════════════════════ 
.tab-text-inner {
  position: relative;
  overflow: hidden;
  transition: max-height .45s ease;
}

.tab-text-inner.is-collapsed {
  max-height: 450px; 
}

.tab-text-inner.is-expanded {
  max-height: 6000px; 
}

.tab-text-inner.is-collapsed::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50px;
  background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%);
  pointer-events: none;
}

.tab-read-more {
  display: inline-block;
  margin-top: .75rem;
  font-family: var(--font-primary);
  font-size: var(--text-sm);
  font-weight: 600 !important;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--color-secondary) !important;
  background: none !important;
  border: none !important;
  cursor: pointer;
  padding: 2rem 0 1rem 0 !important;
  transition: opacity .2s;
}

.tab-read-more:hover {
  opacity: .75;
}

/* esconde o botão se o texto couber sem overflow 
.tab-read-more.is-hidden {
  display: none;
}*/

.properties-outer__arrow-container {
	justify-content: start !important;
	padding: 60px 0 0 0 !important;
}