
:root{
	--teal:#159d92;
	--teal-dark:#087d75;
	--mint:#e8f7f4;
	--ink:#182832;
	--muted:#748087;
	--line:#e7edec;
	--bg:#f8faf9;
	--white:#fff;
	--green:#20b96f;
	--shadow:0 14px 35px rgba(24,48,51,.09);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
	margin:0;
	background:#edf2f1;
	color:var(--ink);
	font-family:"Plus Jakarta Sans",sans-serif;
	-webkit-font-smoothing:antialiased;
}
a{text-decoration:none;color:inherit}
button{font:inherit}
img{display:block;max-width:100%}

.page{
	width:100%;
	max-width:560px;
	min-height:100vh;
	margin:auto;
	background:var(--bg);
	overflow:hidden;
	position:relative;
	box-shadow:0 0 70px rgba(0,0,0,.09);
}

.topbar{
	height:72px;
	padding:12px 18px;
	display:flex;
	align-items:center;
	gap:12px;
	background:#fff;
	border-bottom:1px solid var(--line);
	position:sticky;
	top:0;
	z-index:30;
}
.back{
	width:43px;height:43px;
	border-radius:14px;
	border:1px solid var(--line);
	background:#fff;
	display:grid;
	place-items:center;
	font-size:22px;
	color:var(--ink);
}
.page-title{
	font-family:Manrope,sans-serif;
	font-size:18px;
	font-weight:800;
}
.page-subtitle{
	color:var(--muted);
	font-size:9px;
	margin-top:1px;
}
.top-action{
	margin-left:auto;
	width:43px;height:43px;
	border:0;
	border-radius:14px;
	background:var(--mint);
	color:var(--teal-dark);
	display:grid;
	place-items:center;
	font-size:19px;
}
.top-action img{width:22px;height:22px;object-fit:contain;}

/* gallery */
.gallery{
	position:relative;
	background:#e9efee;
}
.gallery-track{
	display:flex;
	overflow-x:auto;
	scroll-snap-type:x mandatory;
	scrollbar-width:none;
}
.gallery-track::-webkit-scrollbar{display:none}
.gallery-slide{
	flex:0 0 100%;
	height:310px;
	scroll-snap-align:start;
	position:relative;
	cursor:pointer;
}
.gallery-slide img{
	width:100%;
	height:100%;
	object-fit:cover;
}
.gallery-count{
	position:absolute;
	right:15px;
	bottom:15px;
	padding:7px 10px;
	border-radius:99px;
	background:rgba(20,30,31,.68);
	color:#fff;
	font-size:9px;
	font-weight:800;
	backdrop-filter:blur(8px);
}
.gallery-hint{
	position:absolute;
	left:15px;
	bottom:15px;
	padding:7px 10px;
	border-radius:99px;
	background:rgba(255,255,255,.92);
	color:var(--ink);
	font-size:9px;
	font-weight:700;
}

/* summary */
.summary{
	margin:-18px 14px 0;
	position:relative;
	z-index:5;
	background:#fff;
	border:1px solid var(--line);
	border-radius:22px;
	padding:17px;
	box-shadow:var(--shadow);
}
.summary-top{
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:10px;
}
.room-name{
	font-family:Manrope,sans-serif;
	font-size:25px;
	line-height:1.1;
	letter-spacing:-.04em;
}
.room-location{
	margin-top:5px;
	color:var(--muted);
	font-size:10px;
}
.status{
	display:inline-flex;
	align-items:center;
	gap:5px;
	padding:7px 9px;
	border-radius:99px;
	background:#e8f8f2;
	color:#21806e;
	font-size:8px;
	font-weight:800;
}
.status:before{
	content:"";
	width:6px;height:6px;
	border-radius:50%;
	background:#19ad80;
}
.summary-bottom{
	margin-top:14px;
	padding-top:13px;
	border-top:1px solid var(--line);
	display:flex;
	align-items:end;
	justify-content:space-between;
}
.price{
	font-family:Manrope,sans-serif;
	font-size:24px;
	color:var(--teal-dark);
	font-weight:800;
	letter-spacing:-.04em;
}
.price small{
	font-family:"Plus Jakarta Sans";
	color:var(--muted);
	font-size:10px;
	font-weight:500;
	letter-spacing:0;
}
.specs{
	display:flex;
	gap:13px;
	color:var(--muted);
	font-size:9px;
}
.specs span{display:flex;gap:4px;align-items:center}

/* sections */
section{
	padding:27px 21px 0;
}
.label{
	display:flex;
	align-items:center;
	gap:7px;
	color:#526068;
	font-size:10px;
	font-weight:800;
	letter-spacing:.7px;
	margin-bottom:7px;
}
.label:before{
	content:"";
	width:8px;height:8px;
	border-radius:50%;
	background:var(--teal);
}
.title{
	font-family:Manrope,sans-serif;
	font-size:24px;
	line-height:1.15;
	letter-spacing:-.04em;
	font-weight:800;
}
.title span{color:var(--teal)}

/* room facilities */
.fac-grid{
	margin-top:17px;
	display:grid;
	grid-template-columns:repeat(4,1fr);
	background:#fff;
	border:1px solid var(--line);
	border-radius:18px;
	overflow:hidden;
}
.fac{
	min-height:96px;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	text-align:center;
	padding:9px 4px;
	border-right:1px solid var(--line);
	border-bottom:1px solid var(--line);
}
.fac:nth-child(4n){border-right:0}
.fac:nth-last-child(-n+4){border-bottom:0}
.fac img{
	width:39px;height:39px;
	object-fit:contain;
	margin-bottom:6px;
}
.fac b{
	font-size:9px;
	line-height:1.15;
}
.fac span{
	color:var(--muted);
	font-size:8px;
	margin-top:2px;
}

/* description */
.info-card{
	margin-top:15px;
	background:#fff;
	border:1px solid var(--line);
	border-radius:18px;
	padding:16px;
	color:#59666c;
	font-size:11px;
	line-height:1.65;
}

/* cost */
.cost-card{
	margin-top:15px;
	background:#fff;
	border:1px solid var(--line);
	border-radius:18px;
	overflow:hidden;
}
.cost-row{
	display:flex;
	justify-content:space-between;
	gap:10px;
	padding:13px 15px;
	border-bottom:1px solid var(--line);
	font-size:11px;
}
.cost-row:last-child{border-bottom:0}
.cost-row span:first-child{color:var(--muted)}
.cost-row strong{font-size:10px}

/* location */
.location-card{
	margin-top:15px;
	background:#fff;
	border:1px solid var(--line);
	border-radius:18px;
	overflow:hidden;
}
.map{
	height:160px;
	display:grid;
	place-items:center;
	position:relative;
	background:
	linear-gradient(135deg,rgba(21,157,146,.08),rgba(255,255,255,.8)),
	repeating-linear-gradient(30deg,#eaf0ef 0,#eaf0ef 2px,#f8faf9 2px,#f8faf9 34px);
}
.map:before{
	content:"";
	width:78%;
	height:2px;
	background:#cbd8d5;
	transform:rotate(-18deg);
}
.pin{
	position:absolute;
	width:48px;height:48px;
	border-radius:50% 50% 50% 5px;
	transform:rotate(-45deg);
	background:var(--teal);
}
.pin:after{
	content:"";
	position:absolute;
	width:16px;height:16px;
	border-radius:50%;
	background:#fff;
	top:16px;left:16px;
}
.location-text{
	padding:14px;
}
.location-text h3{
	font-family:Manrope;
	font-size:15px;
}
.location-text p{
	color:var(--muted);
	font-size:9px;
	margin-top:3px;
}
.maps{
	display:inline-flex;
	color:var(--teal);
	font-size:9px;
	font-weight:800;
	margin-top:8px;
}

/* CTA */
.cta{
	margin:27px 21px 30px;
	padding:21px 17px;
	border-radius:21px;
	color:#fff;
	background:linear-gradient(135deg,#0d9389,#116d67);
	position:relative;
	overflow:hidden;
}
.cta:after{
	content:"";
	position:absolute;
	width:160px;height:160px;
	right:-80px;top:-90px;
	border-radius:50%;
	background:rgba(255,255,255,.08);
}
.cta h2{
	position:relative;
	z-index:2;
	font-family:Manrope;
	font-size:22px;
	line-height:1.15;
	letter-spacing:-.04em;
}
.cta p{
	position:relative;
	z-index:2;
	color:#d7f2ef;
	font-size:9px;
	margin:7px 0 14px;
}
.cta-btn{
	position:relative;
	z-index:2;
	width:100%;
	min-height:47px;
	border-radius:14px;
	background:#fff;
	color:var(--teal-dark);
	display:flex;
	align-items:center;
	justify-content:center;
	gap:8px;
	font-size:10px;
	font-weight:800;
}

/* floating WA */
.whatsapp{
	position:fixed;
	z-index:50;
	right:max(16px,calc((100vw - 560px)/2 + 16px));
	bottom:18px;
	width:57px;height:57px;
	border-radius:50%;
	background:var(--green);
	display:grid;
	place-items:center;
	box-shadow:0 10px 28px rgba(32,185,111,.32);
}
.whatsapp img{width:30px;height:30px;object-fit:contain}
.wa-label{
	position:absolute;
	right:64px;
	white-space:nowrap;
	background:#fff;
	color:#5c686d;
	border-radius:9px;
	padding:6px 8px;
	font-size:9px;
	box-shadow:0 5px 15px rgba(0,0,0,.08);
}

/* bottom nav */
.bottom-nav{
	position:sticky;
	z-index:35;
	bottom:0;
	height:70px;
	padding:5px 9px calc(5px + env(safe-area-inset-bottom));
	display:grid;
	grid-template-columns:repeat(5,1fr);
	background:rgba(255,255,255,.96);
	backdrop-filter:blur(16px);
	border-top:1px solid var(--line);
}

.btn-icon2{
	width:34px;
	height:30px;
	object-fit:contain;
	flex:0 0 24px;
}
.location-link{
	margin-top:13px;
	display:inline-flex;
	color:var(--teal);
	font-size:12px;font-weight:800;
}
.nav-item{
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:2px;
	color:#879298;
	font-size:8px;
	font-weight:700;
}
.nav-item img{
	width:28px;height:28px;
	object-fit:contain;
}
.nav-item.active{color:var(--teal)}
.nav-center{
	width:50px;height:50px;
	margin-top:-21px;
	border:5px solid var(--bg);
	border-radius:50%;
	background:var(--teal);
	color:#fff;
	display:grid;
	place-items:center;
	box-shadow:0 8px 22px rgba(21,157,146,.3);
}
.nav-center img{width:22px;height:22px}
.nav-center-label{margin-top:3px}

/* popup */
.popup{
	position:fixed;
	inset:0;
	z-index:100;
	background:rgba(8,20,22,.95);
	display:none;
	align-items:center;
	justify-content:center;
}
.popup.show{display:flex}
.popup img{
	width:100%;
	max-height:82vh;
	object-fit:contain;
}
.popup-close,.popup-prev,.popup-next{
	position:absolute;
	width:43px;height:43px;
	border:0;
	border-radius:50%;
	background:rgba(255,255,255,.94);
	color:var(--ink);
	display:grid;
	place-items:center;
	font-size:22px;
}
.popup-close{right:17px;top:17px}
.popup-prev{left:15px;top:50%;transform:translateY(-50%)}
.popup-next{right:15px;top:50%;transform:translateY(-50%)}
.popup-count{
	position:absolute;
	left:50%;
	bottom:25px;
	transform:translateX(-50%);
	color:#fff;
	font-size:10px;
	font-weight:700;
}

@media(max-width:390px){
	.gallery-slide{height:280px}
	.room-name{font-size:23px}
	.price{font-size:22px}
	.fac-grid{grid-template-columns:repeat(4,1fr)}
}

/* LOCATION STYLE MATCH INDEX */
.location-card{box-shadow:0 8px 25px rgba(24,45,51,.06)}
.location-card .map{height:210px}
.location-text{padding:18px}
.location-text h3{font-family:"Manrope",sans-serif;font-size:19px}
.location-text p{font-size:12px;color:var(--muted);margin-top:3px}
.maps{margin-top:13px;display:inline-flex;color:var(--teal);font-size:12px;font-weight:800}

/* ===== LOKASI + CTA BERSEBELAHAN ===== */
.location-cta-row{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:14px;
	align-items:stretch;
	padding:27px 21px 0;
}
.location-cta-row .location-col,
.location-cta-row .cta-col{
	min-width:0;
	display:flex;
}
.location-cta-row .location-col section{
	padding:0;
	width:100%;
	display:flex;
	flex-direction:column;
}
.location-cta-row .location-card{
	flex:1;
	margin-top:20px;
	display:flex;
	flex-direction:column;
}
.location-cta-row .location-card .map{
	height:150px;
}
.location-cta-row .location-text{
	flex:1;
}
.location-cta-row .cta-col .cta{
	width:100%;
	margin:43px 0 0;
	min-height:calc(100% - 43px);
	display:flex;
	flex-direction:column;
	justify-content:center;
}
.location-cta-row .cta-col .cta h2{
	font-size:21px;
}
.location-cta-row .cta-col .cta p{
	line-height:1.5;
}

@media(max-width:430px){
	.location-cta-row{
		gap:10px;
		padding-left:16px;
		padding-right:16px;
	}
	.location-cta-row .location-card .map{
		height:135px;
	}
	.location-cta-row .location-text{
		padding:13px;
	}
	.location-cta-row .location-text h3{
		font-size:14px;
	}
	.location-cta-row .location-text p{
		font-size:9px;
		line-height:1.45;
	}
	.location-cta-row .maps{
		font-size:9px;
	}
	.location-cta-row .cta{
		padding:17px 13px;
		border-radius:18px;
	}
	.location-cta-row .cta h2{
		font-size:18px;
	}
	.location-cta-row .cta p{
		font-size:8px;
	}
	.location-cta-row .cta-btn{
		min-height:42px;
		font-size:9px;
	}
}


/* ===== FINAL LOCATION / CTA ALIGNMENT FIX ===== */
.location-cta-row{
	align-items:start !important;
	margin-bottom:38px !important;
}
.location-cta-row .location-col,
.location-cta-row .cta-col{
	align-items:flex-start !important;
}
.location-cta-row .location-col section{
	height:auto !important;
}
.location-cta-row .location-card{
	height:auto !important;
	flex:none !important;
	margin-top:20px !important;
}
.location-cta-row .cta-col .cta{
	margin-top:20px !important;
	min-height:0 !important;
	height:100% !important;
	align-self:flex-start !important;
}
/* Both cards share the same top and visual height. */
.location-cta-row .location-card,
.location-cta-row .cta-col .cta{
	height:276px !important;
}
/* Extra breathing room above the fixed/sticky bottom navigation. */
.bottom-nav{
	margin-top:38px !important;
}
@media(max-width:430px){
	.location-cta-row{
		margin-bottom:42px !important;
	}
	.location-cta-row .location-card,
	.location-cta-row .cta-col .cta{
		height:276px !important;
	}
	.bottom-nav{
		margin-top:42px !important;
	}
}


/* ===== EXACT LOCATION + CTA POSITION ===== */
.location-cta-row{
	align-items:start !important;
	padding-top:27px !important;
	margin-bottom:42px !important;
}
.location-cta-row .location-card,
.location-cta-row .cta-col .cta{
	height:225px !important;
	min-height:225px !important;
	max-height:245px !important;
}
.location-cta-row .location-card{
	margin-top:20px !important;
	flex:none !important;
}
.location-cta-row .location-card .map{
	height:119px !important;
	min-height:119px !important;
	flex:none !important;
}
.location-cta-row .location-text{
	padding:13px 14px !important;
	flex:1 !important;
}
.location-cta-row .location-text h3{
	font-size:14px !important;
}
.location-cta-row .location-text p{
	font-size:9px !important;
	line-height:1.45 !important;
}
.location-cta-row .maps{
	margin-top:8px !important;
	font-size:9px !important;
}
.location-cta-row .cta-col .cta{
	margin:48px 0 0 !important;
	padding:17px 13px !important;
	align-self:flex-start !important;
	justify-content:center !important;
}
.location-cta-row .cta-col .cta h2{
	font-size:18px !important;
	line-height:1.15 !important;
}
.location-cta-row .cta-col .cta p{
	font-size:10px !important;
	line-height:1.5 !important;
}
.location-cta-row .cta-col .cta-btn{
	min-height:43px !important;
	font-size:9px !important;
}
.bottom-nav{
	margin-top:42px !important;
}


/* Final adjustment: green CTA down to align with the Maps card */
.location-cta-row .cta-col .cta{
	margin-top:66px !important;
}


/* Green CTA: force visual drop without affecting the Maps card */
.location-cta-row .cta-col .cta{
	margin-top:66px !important;
	transform:translateY(0px) !important;
}
