.room-detail-page{
	background:#f7f5f0;
}

.back-link{
	display:inline-block;
	margin-bottom:18px;
	color:#7a5a16;
	font-weight:700;
}

.room-detail-layout{
	display:grid;
	grid-template-columns:minmax(0,1fr) 392px;
	gap:32px;
	align-items:start;
}

.room-detail-layout h1{
	font-size:42px;
	margin:0;
}

.lead{
	font-size:18px;
	color:#667085;
}

.room-gallery{
	margin:24px 0 28px;
}

.room-gallery-main{
	position:relative;
}

.room-gallery-frame{
	position:relative;
	border-radius:18px;
	overflow:hidden;
	background:linear-gradient(180deg,#efe8dc,#e8dcc9);
	box-shadow:0 16px 34px rgba(31,41,55,.08);
	cursor:zoom-in;
}

.room-gallery-frame img{
	display:block;
	width:100%;
	aspect-ratio:16/9;
	object-fit:cover;
}

.room-gallery-nav{
	position:absolute;
	top:50%;
	z-index:3;
	width:46px;
	height:46px;
	border:0;
	border-radius:50%;
	background:#fff;
	color:#6f5320;
	box-shadow:0 10px 22px rgba(31,41,55,.12);
	display:flex;
	align-items:center;
	justify-content:center;
	font-size:16px;
	cursor:pointer;
	transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease;
}

.room-gallery-nav-prev{
	left:16px;
	transform:translateY(-50%);
}

.room-gallery-nav-next{
	right:16px;
	transform:translateY(-50%);
}

.room-gallery-nav:hover{
	box-shadow:0 14px 28px rgba(31,41,55,.16);
	background:#cda13d;
	color:#fff;
}

.room-gallery-nav:disabled{
	opacity:.4;
	cursor:default;
	box-shadow:0 10px 22px rgba(31,41,55,.08);
}

.room-gallery-360-badge{
	position:absolute;
	top:16px;
	right:16px;
	z-index:4;
	display:flex;
	align-items:center;
	gap:10px;
	padding:10px 14px 10px 12px;
	border:0;
	border-radius:999px;
	background:rgba(16,24,40,.84);
	color:#fff;
	box-shadow:0 14px 28px rgba(15,23,42,.18);
	cursor:pointer;
	backdrop-filter:blur(10px);
	transition:transform .18s ease,background .18s ease,box-shadow .18s ease;
}

.room-gallery-360-badge:hover{
	transform:translateY(-1px);
	background:rgba(16,24,40,.95);
	box-shadow:0 18px 32px rgba(15,23,42,.24);
}

.room-gallery-360-badge-icon{
	width:38px;
	height:38px;
	border-radius:50%;
	display:flex;
	align-items:center;
	justify-content:center;
	background:linear-gradient(135deg,#d6aa44,#b7851d);
	color:#fff;
	font-size:16px;
	flex:0 0 auto;
}

.room-gallery-360-badge-copy{
	display:flex;
	flex-direction:column;
	align-items:flex-start;
	line-height:1.05;
}

.room-gallery-360-badge-copy strong{
	font-size:15px;
	font-weight:800;
	letter-spacing:.01em;
}

.room-gallery-360-badge-copy small{
	margin-top:2px;
	font-size:11px;
	color:rgba(255,255,255,.78);
	font-weight:700;
}

.room-gallery-360-link{
	position:absolute;
	right:14px;
	bottom:14px;
	z-index:2;
	display:inline-flex;
	align-items:center;
	padding:8px 12px;
	border-radius:999px;
	background:rgba(31,41,55,.82);
	color:#fff;
	text-decoration:none;
	font-weight:800;
	font-size:13px;
	letter-spacing:.02em;
	box-shadow:0 10px 20px rgba(15,23,42,.16);
}

.room-gallery-zoom-note{
	position:absolute;
	left:14px;
	bottom:14px;
	z-index:2;
	display:inline-flex;
	align-items:center;
	gap:6px;
	padding:8px 12px;
	border-radius:999px;
	background:rgba(255,255,255,.9);
	color:#1f2933;
	font-weight:800;
	font-size:13px;
	box-shadow:0 10px 20px rgba(15,23,42,.12);
	pointer-events:none;
}

.room-gallery-meta{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	margin-top:12px;
	color:#667085;
}

.room-gallery-meta strong{
	color:#1f2933;
	font-size:16px;
}

.room-gallery-thumbs{
	display:flex;
	gap:10px;
	margin-top:16px;
	overflow-x:auto;
	padding-bottom:4px;
	scroll-snap-type:x proximity;
}

.room-gallery-thumb{
	position:relative;
	flex:0 0 auto;
	width:120px;
	padding:0;
	border:2px solid transparent;
	border-radius:14px;
	overflow:hidden;
	background:#fff;
	box-shadow:0 8px 18px rgba(31,41,55,.08);
	cursor:pointer;
	scroll-snap-align:start;
	transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease;
}

.room-gallery-thumb img{
	display:block;
	width:100%;
	aspect-ratio:4/3;
	object-fit:cover;
}

.room-gallery-thumb:hover{
	transform:translateY(-2px);
	box-shadow:0 12px 24px rgba(31,41,55,.12);
}

.room-gallery-thumb.is-active{
	border-color:#cda13d;
	box-shadow:0 14px 26px rgba(205,161,61,.18);
}

.room-gallery-thumb .gallery-media-badge{
	left:8px;
	bottom:8px;
	font-size:.62rem;
	padding:3px 7px;
}

.room-gallery-placeholder{
	display:flex;
	align-items:center;
	justify-content:center;
	min-height:320px;
	border-radius:18px;
	background:linear-gradient(180deg,#efe8dc,#e8dcc9);
	font-size:54px;
	color:#8a6b2d;
	box-shadow:0 16px 34px rgba(31,41,55,.08);
}

.room-gallery-modal{
	position:fixed;
	inset:0;
	z-index:20000;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:24px;
}

.room-gallery-modal-backdrop{
	position:absolute;
	inset:0;
	background:rgba(15,23,42,.72);
	backdrop-filter:blur(6px);
}

.room-gallery-modal-panel{
	position:relative;
	z-index:1;
	width:min(1180px, calc(100vw - 48px));
	max-height:calc(100vh - 48px);
	display:flex;
	flex-direction:column;
	gap:14px;
	padding:16px;
	border-radius:24px;
	background:linear-gradient(180deg,#fefefe,#f6f1e7);
	box-shadow:0 30px 100px rgba(15,23,42,.35);
	transform:scale(.97);
	opacity:0;
	transition:transform .18s ease, opacity .18s ease;
}

.room-gallery-modal.is-open .room-gallery-modal-panel{
	transform:scale(1);
	opacity:1;
}

.room-gallery-modal-close{
	position:absolute;
	top:14px;
	right:14px;
	z-index:2;
	width:42px;
	height:42px;
	border:0;
	border-radius:50%;
	background:rgba(15,23,42,.85);
	color:#fff;
	font-size:28px;
	line-height:1;
	cursor:pointer;
}

.room-gallery-modal-nav{
	position:absolute;
	top:50%;
	z-index:3;
	display:flex;
	align-items:center;
	justify-content:center;
	width:52px;
	height:52px;
	border:1px solid rgba(255,255,255,.45);
	border-radius:50%;
	background:rgba(15,23,42,.8);
	color:#fff;
	font-size:22px;
	box-shadow:0 10px 26px rgba(15,23,42,.25);
	cursor:pointer;
	transform:translateY(-50%);
	transition:background .18s ease,transform .18s ease;
}

.room-gallery-modal-prev{
	left:28px;
}

.room-gallery-modal-next{
	right:28px;
}

.room-gallery-modal-nav:hover,
.room-gallery-modal-nav:focus-visible{
	background:#c99a31;
	transform:translateY(-50%) scale(1.06);
}

.room-gallery-modal-nav:focus-visible{
	outline:3px solid rgba(255,255,255,.8);
	outline-offset:3px;
}

.room-gallery-modal-stage{
	display:flex;
	align-items:center;
	justify-content:center;
	width:100%;
	min-height:min(68vh,760px);
	border-radius:18px;
	overflow:hidden;
	background:#111827;
}

.room-gallery-modal-stage.is-panorama{
	position:relative;
	background:#0b1220;
}

.room-gallery-modal-image{
	display:block;
	max-width:100%;
	max-height:100%;
	width:auto;
	height:auto;
	object-fit:contain;
	cursor:zoom-out;
}

.room-gallery-panorama{
	width:100%;
	height:min(68vh,760px);
}

.room-gallery-panorama-loader{
	position:absolute;
	inset:0;
	z-index:2;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:14px;
	background:rgba(11,18,32,.42);
	color:rgba(255,255,255,.9);
	font-size:14px;
	font-weight:700;
	backdrop-filter:blur(2px);
	transition:opacity .3s ease,visibility .3s ease;
	pointer-events:none;
}

.room-gallery-panorama-spinner{
	width:34px;
	height:34px;
	border:3px solid rgba(255,255,255,.24);
	border-top-color:#fff;
	border-radius:50%;
	animation:room-gallery-panorama-spin .8s linear infinite;
}

.room-gallery-modal-stage.is-ready .room-gallery-panorama-loader{
	opacity:0;
	visibility:hidden;
}

@keyframes room-gallery-panorama-spin{
	to{transform:rotate(360deg)}
}

@media (prefers-reduced-motion:reduce){
	.room-gallery-panorama-spinner{animation-duration:1.6s}
}

.room-gallery-modal-caption{
	font-weight:700;
	color:#1f2933;
	text-align:center;
}

.room-info-section,.booking-summary-box{
	background:#fff;
	border:1px solid #e5e1d8;
	border-radius:14px;
	padding:24px;
}

.room-facts{
	display:grid;
	grid-template-columns:repeat(2,1fr);
	gap:10px;
	margin:16px 0;
}

.room-facts span i{
	color:#cda13d;
	width:24px;
}
.room-facts .booking-breakfast-included,
.room-facts .booking-breakfast-included i,
.booking-summary-details .booking-breakfast-included i,
.booking-summary-details .booking-breakfast-included strong,
.booking-summary-details .booking-breakfast-included span{color:#198754}

.amenities-list{
	display:flex;
	gap:8px;
	flex-wrap:wrap;
	margin:18px 0;
}

.amenities-list span{
	background:#f0ede6;
	border-radius:999px;
	padding:7px 11px;
	font-size:13px;
}

.booking-summary-box{
	position:sticky;
	top:96px;
	margin-top:88px;
	padding:28px;
	box-shadow:0 14px 30px rgba(31,41,55,.06);
	align-self:start;
}

.booking-summary-box h2{
	margin:0 0 16px;
	font-size:32px;
	line-height:1.08;
}

.booking-summary-box p{
	margin:0 0 10px;
	line-height:1.45;
	color:#667085;
}

.booking-summary-dates{
	font-weight:700;
	font-size:15px;
}

.booking-summary-meta{
	font-weight:700;
}

.summary-price{
	border-top:1px solid #eee;
	border-bottom:1px solid #eee;
	padding:14px 0;
	margin:14px 0;
	display:flex;
	flex-direction:column;
	gap:6px;
}

.summary-price span{
	display:block;
	color:#667085;
	font-size:14px;
	line-height:1.3;
}

.summary-price strong{
	display:block;
	font-size:38px;
	line-height:1.1;
	white-space:nowrap;
	color:#1f2933;
}

.booking-price-breakdown{
	margin:16px 0 18px;
	padding-top:14px;
	border-top:1px solid #eee;
}

.booking-price-breakdown > strong{
	display:block;
	margin-bottom:10px;
	color:#1f2933;
	font-size:15px;
	line-height:1.35;
}

.booking-price-breakdown-list{
	display:grid;
	gap:8px;
}

.booking-price-breakdown-row{
	display:grid;
	grid-template-columns:minmax(0,1fr);
	gap:3px;
	align-items:start;
	padding:8px 0;
	border-top:1px solid #f1eadf;
}

.booking-price-breakdown-row:first-child{
	border-top:0;
	padding-top:0;
}

.booking-price-breakdown-person{
	display:grid;
	grid-column:1 / -1;
	gap:3px;
	min-width:0;
}

.booking-price-breakdown-person > span{
	display:block;
	max-width:100%;
}

.booking-price-breakdown-label,
.booking-price-breakdown-value{
	min-width:0;
	line-height:1.4;
}

.booking-price-breakdown-label{
	font-weight:700;
	color:#1f2933;
	overflow-wrap:anywhere;
}

.booking-price-breakdown-value{
	text-align:left;
	color:#667085;
	overflow-wrap:anywhere;
	word-break:break-word;
}

.booking-price-breakdown-row.is-total{
	grid-template-columns:minmax(0,1fr) auto;
	gap:12px;
	align-items:center;
	padding-top:12px;
	margin-top:2px;
	border-top:1px solid #e5e7eb;
}

.booking-price-breakdown-row.is-total .booking-price-breakdown-label,
.booking-price-breakdown-row.is-total .booking-price-breakdown-value{
	color:#1f2933;
	font-weight:800;
}

.booking-price-breakdown-row.is-total .booking-price-breakdown-value{
	font-size:15px;
	text-align:right;
	white-space:nowrap;
}

.booking-summary-details{
	display:grid;
	gap:12px;
	margin:16px 0 18px;
}

.booking-summary-details > div{
	display:flex;
	gap:12px;
	align-items:flex-start;
	padding:12px 0;
	border-top:1px solid #efe7db;
}

.booking-summary-details > div:first-child{
	border-top:0;
	padding-top:0;
}

.booking-summary-details i{
	margin-top:2px;
	color:#cda13d;
	font-size:16px;
	width:20px;
	text-align:center;
}

.booking-summary-details strong{
	display:block;
	color:#1f2933;
	font-size:14px;
	line-height:1.35;
}

.booking-summary-details span{
	display:block;
	margin-top:3px;
	color:#667085;
	font-size:13px;
	line-height:1.45;
}

.booking-summary-box a{
	display:flex;
	align-items:center;
	justify-content:center;
	text-align:center;
	background:#cda13d;
	color:#fff;
	border-radius:8px;
	min-height:48px;
	padding:10px 14px;
	text-decoration:none;
	font-weight:800;
	font-size:16px;
	line-height:1.2;
}

.booking-summary-box small{
	display:block;
	margin-top:12px;
	color:#667085;
	font-size:13px;
	line-height:1.4;
}

@media(max-width:1399px){
	.room-detail-layout{
		display:flex;
		flex-direction:column;
		gap:24px;
	}

	.room-detail-layout > div,
	.booking-summary-box{
		width:100%;
		max-width:100%;
	}

	.booking-summary-box{
		order:-1;
		position:static;
		top:auto;
		margin-top:0;
	}

	.room-detail-layout h1{
		font-size:38px;
	}

	.room-gallery{
		margin:20px 0 24px;
	}

	.booking-summary-box{
		padding:24px;
	}

	.booking-summary-box h2{
		font-size:28px;
	}

	.summary-price strong{
		font-size:34px;
	}
}

@media(max-width:991px){
	.room-gallery-main{
		grid-template-columns:1fr;
	}

	.room-facts{
		grid-template-columns:1fr;
	}

	.summary-price strong{
		font-size:32px;
	}
}

@media(max-width:767px){
	.room-detail-page{
		background:#f8f6f1;
	}

	.container.py-5{
		padding-top:20px !important;
		padding-bottom:28px !important;
	}

	.back-link{
		margin-bottom:12px;
		font-size:14px;
	}

	.room-detail-layout{
		display:flex;
		flex-direction:column;
		gap:20px;
	}

	.room-detail-layout > div,
	.booking-summary-box{
		width:100%;
		max-width:100%;
		min-width:0;
	}

	.room-detail-layout > div{
		order:1;
	}

	.booking-summary-box{
		order:2;
	}

	.room-detail-layout h1{
		font-size:30px;
		line-height:1.08;
	}

	.lead{
		font-size:16px;
		line-height:1.35;
	}

	.room-gallery-main{
		display:block;
	}

	.room-gallery-nav{
		width:34px;
		height:34px;
		font-size:12px;
		top:44%;
	}

	.room-gallery-360-badge{
		top:10px;
		right:10px;
		padding:6px 8px 6px 8px;
		gap:6px;
	}

	.room-gallery-360-badge-icon{
		width:28px;
		height:28px;
		font-size:12px;
	}

	.room-gallery-360-badge-copy strong{
		font-size:11px;
	}

	.room-gallery-360-badge-copy small{
		font-size:8px;
	}

	.room-gallery-frame img,
	.room-gallery-placeholder{
		aspect-ratio:4/3;
		min-height:240px;
	}

	.room-gallery-thumb{
		width:84px;
	}

	.room-gallery-meta{
		flex-direction:column;
		align-items:flex-start;
		gap:4px;
		margin-top:10px;
	}

	.room-gallery-meta strong{
		font-size:15px;
	}

	.room-gallery-meta span{
		font-size:13px;
	}

	.room-gallery-thumbs{
		gap:8px;
		margin-top:10px;
	}

	.room-gallery-zoom-note{
		left:10px;
		bottom:10px;
		font-size:12px;
		padding:7px 10px;
	}

	.room-gallery-modal{
		padding:12px;
	}

	.room-gallery-modal-panel{
		width:calc(100vw - 24px);
		max-height:calc(100vh - 24px);
		padding:12px;
		border-radius:18px;
	}

	.room-gallery-modal-stage{
		min-height:52vh;
	}

	.room-gallery-modal-nav{
		width:46px;
		height:46px;
		font-size:18px;
	}

	.room-gallery-modal-prev{
		left:20px;
	}

	.room-gallery-modal-next{
		right:20px;
	}

	.room-gallery-panorama{
		height:52vh;
	}

	.room-info-section,
	.booking-summary-box{
		padding:16px;
		border-radius:16px;
	}

	.booking-summary-box{
		padding:18px 16px 16px;
		box-shadow:0 10px 24px rgba(31,41,55,.05);
	}

	.booking-summary-box h2{
		font-size:22px;
		margin-bottom:10px;
	}

	.booking-summary-dates,
	.booking-summary-meta{
		font-size:14px;
	}

	.summary-price{
		padding:12px 0;
		margin:10px 0;
	}

	.summary-price strong{
		font-size:28px;
	}

	.booking-price-breakdown{
		margin:14px 0 16px;
		padding-top:12px;
	}

	.booking-price-breakdown-row{
		grid-template-columns:1fr;
		gap:2px;
		padding:10px 0;
	}

	.booking-price-breakdown-value{
		text-align:left;
	}

	.booking-summary-details{
		gap:10px;
		margin:14px 0 16px;
	}

	.booking-summary-details > div{
		padding:10px 0;
	}

	.booking-summary-box a{
		min-height:46px;
		font-size:15px;
	}

	.booking-summary-box small{
		font-size:12px;
	}

	.room-info-section h2{
		font-size:24px;
		line-height:1.15;
	}

	.room-facts{
		gap:8px;
	}
}

@media(max-width:575px){
	.room-detail-page{
		background:#faf8f3;
	}

	.room-detail-layout h1{
		font-size:27px;
	}

	.lead{
		font-size:15px;
	}

	.room-gallery-frame img,
	.room-gallery-placeholder{
		min-height:220px;
	}

	.room-gallery-nav{
		width:32px;
		height:32px;
	}

	.room-gallery-thumb{
		width:76px;
	}

	.room-gallery-thumb .gallery-media-badge{
		left:6px;
		bottom:6px;
		font-size:.58rem;
		padding:2px 6px;
	}

	.room-gallery-modal-stage{
		min-height:46vh;
	}

	.room-gallery-modal-nav{
		width:42px;
		height:42px;
	}

	.room-gallery-modal-prev{
		left:16px;
	}

	.room-gallery-modal-next{
		right:16px;
	}

	.room-gallery-panorama{
		height:46vh;
	}
}

.booking-promotion{display:flex;align-items:center;gap:11px;padding:12px 14px;border:1px solid #d9bd72;border-radius:9px;background:linear-gradient(135deg,#fff9e8,#f8efcf);color:#5f4612}
.booking-promotion i{font-size:19px;color:#b18421}
.booking-promotion div{display:grid;gap:2px}
.booking-promotion strong,.booking-promotion span{line-height:1.3}
.booking-promotion span{font-size:13px}
.summary-price del{display:block;margin-bottom:3px;color:#8a8f98;font-size:14px}
