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

.sh-single-gallery{ margin-bottom:24px; }
.sh-gallery-main{
	border-radius:14px; overflow:hidden; aspect-ratio:16/9; background:#f2ede2;
}
.sh-gallery-main img{ width:100%; height:100%; object-fit:cover; display:block; }
.sh-gallery-placeholder{
	aspect-ratio:16/9; border-radius:14px;
	background:linear-gradient(135deg, #ece6da, #f7f3ea);
}
.sh-gallery-thumbs{
	display:flex; gap:10px; margin-top:10px;
}
.sh-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;
}
.sh-gallery-thumbs img:hover{ opacity:1; }
.sh-gallery-thumbs img.is-active{
	border-color:#c1391f; opacity:1;
}

/* Foto principal y miniaturas con el mismo tamaño de siempre. El formulario sube
   a la altura de las miniaturas (a la derecha de ellas) y su borde inferior queda
   alineado con el cuadro negro. */
.sh-single-wrap{ display:grid; grid-template-columns:minmax(0,1fr) 340px; column-gap:36px; align-items:start; }
.sh-single-gallery, .sh-single-body{ display:contents; }
.sh-gallery-main, .sh-gallery-placeholder{ grid-column:1 / -1; grid-row:1; }
.sh-gallery-thumbs{ grid-column:1; grid-row:2; margin-bottom:24px; }
.sh-single-main{ grid-column:1; grid-row:3; display:flex; flex-direction:column; align-self:stretch; min-width:0; }
.sh-single-main .sh-upsell-banner{ margin-top:auto; }
.sh-single-main .sh-single-op{ align-self:flex-start; }
.sh-single-sidebar{ grid-column:2; grid-row:2 / span 2; margin-top:10px; align-self:stretch; display:flex; flex-direction:column; justify-content:flex-end; }

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

.sh-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;
}
.sh-single-specs .spec{ text-align:left; }
.sh-single-specs .spec strong{
	display:block; font-family:'Fraunces', serif; font-size:1.15rem; color:#1c130d;
}
.sh-single-specs .spec span{ font-size:.8rem; color:#8a8378; }

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

.sh-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;
}
.sh-upsell-banner strong{ font-family:'Fraunces', serif; font-weight:500; display:block; margin-bottom:4px; }
.sh-upsell-banner p{ color:#d9d0c2; font-size:.88rem; max-width:340px; }
.sh-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;
}

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

.sh-contact-card .sh-field{ margin-bottom:12px; }
.sh-contact-card label{ display:block; font-size:.8rem; font-weight:600; color:#5a5148; margin-bottom:4px; }
.sh-contact-card input, .sh-contact-card textarea{
	width:100%; padding:10px 12px; border:1px solid #ddd6cb; border-radius:8px; font-size:.92rem;
}
.sh-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;
}
.sh-contact-btn:hover{ background:#a52e17 !important; }

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

@media (max-width:800px){
	.sh-single-wrap{ grid-template-columns:minmax(0,1fr); }
	.sh-gallery-thumbs, .sh-single-main, .sh-single-sidebar{ grid-column:1; }
	.sh-gallery-thumbs{ grid-row:2; } .sh-single-main{ grid-row:3; } .sh-single-sidebar{ grid-row:4; margin-top:0; }
	.sh-upsell-banner{ flex-direction:column; align-items:flex-start; }
}
.sh-agente-btn{ display:flex; align-items:center; justify-content:center; gap:8px; width:100%; box-sizing:border-box; padding:13px 16px; border-radius:10px; background:#25d366; color:#fff !important; font-weight:600; font-size:.95rem; text-decoration:none !important; transition:background .2s ease, transform .2s ease, box-shadow .2s ease; }
.sh-agente-btn:hover{ background:#1ebe5a; transform:translateY(-2px); box-shadow:0 8px 18px rgba(37,211,102,.28); }
.sh-agente-or{ display:flex; align-items:center; gap:10px; margin:16px 0 14px; color:#8a8378; font-size:.8rem; text-align:center; }
.sh-agente-or::before, .sh-agente-or::after{ content:""; flex:1; height:1px; background:#e6e1d6; }

