.sp-single-wrap{
	font-family:'Inter', sans-serif;
	max-width:1100px;
	margin:0 auto;
	padding:24px clamp(16px, 4vw, 40px) 60px;
}

.sp-single-gallery{ margin-bottom:24px; }
.sp-gallery-main{
	border-radius:14px; overflow:hidden; aspect-ratio:16/9; background:#f2ede2;
}
.sp-gallery-main img{ width:100%; height:100%; object-fit:cover; display:block; }
.sp-gallery-placeholder{
	aspect-ratio:16/9; border-radius:14px;
	background:linear-gradient(135deg, #ece6da, #f7f3ea);
}
.sp-gallery-thumbs{
	display:flex; gap:10px; margin-top:10px;
}
.sp-gallery-thumbs img{
	width:100px; height:70px; object-fit:cover; border-radius:8px;
	cursor:pointer; border:2px solid transparent; transition:border-color .15s ease, opacity .15s ease;
	opacity:.75;
}
.sp-gallery-thumbs img:hover{ opacity:1; }
.sp-gallery-thumbs img.is-active{
	border-color:#c1391f; opacity:1;
}

.sp-single-body{
	display:grid;
	grid-template-columns:1fr 340px;
	gap:36px;
	align-items:start;
}

.sp-single-op{
	display:inline-block;
	background:#10151c; color:#f6f1e7;
	font-size:.75rem; font-weight:600;
	padding:4px 12px; border-radius:100px;
	margin-bottom:10px;
}
.sp-single-title{
	font-family:'Fraunces', serif; font-weight:500;
	font-size:1.7rem; color:#1c130d; margin-bottom:6px;
}
.sp-single-location{ color:#8a8378; font-size:.95rem; margin-bottom:16px; }
.sp-single-price{
	font-family:'Fraunces', serif; font-weight:500;
	font-size:1.9rem; color:#c1391f; margin-bottom:22px;
}
.sp-single-price span{ font-size:1rem; color:#8a8378; font-weight:400; }

.sp-single-specs{
	display:flex; flex-wrap:wrap; gap:22px;
	padding:18px 0; border-top:1px solid #ece6da; border-bottom:1px solid #ece6da;
	margin-bottom:24px;
}
.sp-single-specs .spec{ text-align:left; }
.sp-single-specs .spec strong{
	display:block; font-family:'Fraunces', serif; font-size:1.15rem; color:#1c130d;
}
.sp-single-specs .spec span{ font-size:.8rem; color:#8a8378; }

.sp-single-desc h3{
	font-family:'Fraunces', serif; font-weight:500; font-size:1.15rem; margin-bottom:10px;
}
.sp-single-desc p{ color:#5a5148; line-height:1.65; margin-bottom:28px; }

.sp-upsell-banner{
	display:flex; align-items:center; justify-content:space-between; gap:16px;
	background:linear-gradient(140deg, #1c130d, #10151c);
	color:#f6f1e7;
	border-radius:14px;
	padding:20px 24px;
}
.sp-upsell-banner strong{ font-family:'Fraunces', serif; font-weight:500; display:block; margin-bottom:4px; }
.sp-upsell-banner p{ color:#d9d0c2; font-size:.88rem; max-width:340px; }
.sp-upsell-banner a{
	background:#e8b360; color:#3a2a12; text-decoration:none;
	padding:10px 20px; border-radius:100px; font-weight:600; font-size:.88rem;
	white-space:nowrap;
}

.sp-contact-card{
	background:#fff; border:1px solid #ece6da; border-radius:14px;
	padding:22px; position:sticky; top:20px;
}
.sp-contact-card h3{ font-family:'Fraunces', serif; font-weight:500; font-size:1.15rem; margin-bottom:6px; }
.sp-hint{ font-size:.85rem; color:#8a8378; margin-bottom:16px; }

.sp-contact-card .sp-field{ margin-bottom:12px; }
.sp-contact-card label{ display:block; font-size:.8rem; font-weight:600; color:#5a5148; margin-bottom:4px; }
.sp-contact-card input, .sp-contact-card textarea{
	width:100%; padding:10px 12px; border:1px solid #ddd6cb; border-radius:8px; font-size:.92rem;
}
.sp-contact-btn{
	width:100%; background:#c1391f !important; color:#fff !important; border:none !important;
	padding:12px; border-radius:100px; font-weight:600; font-size:.95rem; cursor:pointer;
}
.sp-contact-btn:hover{ background:#a52e17 !important; }

.sp-contact-success{ text-align:center; padding:20px 0; color:#2a7a2a; }

@media (max-width:800px){
	.sp-single-body{ grid-template-columns:1fr; }
	.sp-contact-card{ position:static; }
	.sp-upsell-banner{ flex-direction:column; align-items:flex-start; }
}
