.rpp-single {
	padding: var(--rpp-space-5, 48px) 0 var(--rpp-space-7, 96px);
}

.rpp-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 12px;
	margin: 0 0 var(--rpp-space-4, 32px);
	padding: 0;
	list-style: none;
	color: var(--rpp-color-text-muted, #6b6560);
	font-size: var(--rpp-fs-meta, 0.875rem);
}

.rpp-breadcrumbs li:not(:last-child)::after {
	content: "/";
	margin-left: 12px;
	color: var(--rpp-color-border, #e6e1d8);
}

.rpp-breadcrumbs [aria-current="page"] {
	color: var(--rpp-color-text, #1a1a1a);
}

.rpp-single__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: var(--rpp-space-6, 64px);
	align-items: start;
}

.rpp-single__header {
	margin-bottom: var(--rpp-space-4, 32px);
}

.rpp-single__header-row {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: var(--rpp-space-3, 24px);
}

.rpp-single__header h1 {
	margin-bottom: 8px;
}

.rpp-single__location {
	margin: 0;
	color: var(--rpp-color-text-muted, #6b6560);
}

.rpp-single__header .rpp-listing__price {
	margin: var(--rpp-space-3, 24px) 0 12px;
	font-size: 1.75rem;
	color: var(--rpp-color-charcoal, #1a1a1a);
}

.rpp-single__favorite {
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	margin: 0;
	display: grid;
	place-items: center;
	border: 1px solid var(--rpp-color-border, #e6e1d8);
	background: var(--rpp-color-surface, #fff);
	color: var(--rpp-color-charcoal, #1a1a1a);
	cursor: pointer;
}

.rpp-single__favorite:hover {
	color: var(--rpp-color-gold, #c4a35a);
	border-color: var(--rpp-color-gold, #c4a35a);
}

.rpp-gallery {
	margin: 0 0 var(--rpp-space-5, 48px);
}

.rpp-gallery__stage {
	position: relative;
	margin: 0;
	background: var(--rpp-color-surface-muted, #f1eee8);
	aspect-ratio: 3 / 2;
	overflow: hidden;
}

.rpp-gallery__open {
	display: block;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: zoom-in;
}

.rpp-gallery__stage img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.rpp-gallery__nav {
	position: absolute;
	top: 50%;
	z-index: 2;
	width: 44px;
	height: 44px;
	transform: translateY(-50%);
	border: 0;
	border-radius: 50%;
	background: var(--rpp-color-charcoal, #1a1a1a);
	color: var(--rpp-color-inverse, #fff);
	cursor: pointer;
	font-size: 1.5rem;
	line-height: 1;
}

.rpp-gallery__nav--prev {
	left: 16px;
}

.rpp-gallery__nav--next {
	right: 16px;
}

.rpp-gallery__status {
	position: absolute;
	right: 16px;
	bottom: 16px;
	margin: 0;
	padding: 6px 10px;
	background: var(--rpp-color-overlay, rgba(17, 17, 17, 0.42));
	color: var(--rpp-color-inverse, #fff);
	font-size: var(--rpp-fs-meta, 0.875rem);
}

.rpp-gallery__thumbs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(88px, 1fr));
	gap: 8px;
	margin: 8px 0 0;
	padding: 0;
	list-style: none;
}

.rpp-gallery__thumb {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--rpp-color-surface-muted, #f1eee8);
}

.rpp-gallery__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.rpp-gallery__thumb[aria-current="true"] {
	outline: 2px solid var(--rpp-color-gold, #c4a35a);
	outline-offset: 2px;
}

.rpp-gallery__placeholder {
	min-height: 320px;
	background: linear-gradient(135deg, #3a4450, #1a1a1a);
}

.rpp-gallery__dialog {
	position: relative;
	padding: 0;
	border: 0;
	max-width: min(96vw, 1200px);
	background: var(--rpp-color-charcoal-deep, #111);
}

.rpp-gallery__dialog::backdrop {
	background: rgba(17, 17, 17, 0.82);
}

.rpp-gallery__dialog img {
	max-height: 86vh;
	width: auto;
	margin: 0 auto;
}

.rpp-gallery__dialog-close {
	position: absolute;
	top: 12px;
	right: 12px;
	border: 0;
	background: var(--rpp-color-gold, #c4a35a);
	color: var(--rpp-color-charcoal, #1a1a1a);
	min-height: 40px;
	padding: 0 16px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
}

.rpp-single__content,
.rpp-details,
.rpp-features,
.rpp-video,
.rpp-map,
.rpp-docs {
	margin-bottom: var(--rpp-space-5, 48px);
}

.rpp-details {
	padding: var(--rpp-space-4, 32px);
	background: var(--rpp-color-surface-muted, #f1eee8);
}

.rpp-details__list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	margin: 0;
}

.rpp-details__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	padding: 12px 0;
	border-bottom: 1px solid var(--rpp-color-border, #e6e1d8);
}

.rpp-details__row dt {
	margin: 0;
	color: var(--rpp-color-text-muted, #6b6560);
	font-weight: 500;
}

.rpp-details__row dd {
	margin: 0;
	font-weight: 600;
}

.rpp-video__frame {
	position: relative;
	aspect-ratio: 16 / 9;
	background: var(--rpp-color-charcoal, #1a1a1a);
}

.rpp-video__frame iframe,
.rpp-video__frame video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

.rpp-map__frame {
	width: 100%;
	height: 360px;
	border: 0;
	background: var(--rpp-color-surface-muted, #f1eee8);
}

.rpp-map__label,
.rpp-map__link {
	margin: 8px 0 0;
	font-size: var(--rpp-fs-meta, 0.875rem);
}

.rpp-docs__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.rpp-docs__list a {
	color: var(--rpp-color-gold, #c4a35a);
	font-weight: 600;
}

.rpp-single__aside {
	position: sticky;
	top: calc(var(--rpp-header-height, 88px) + 24px);
}

.rpp-single__card,
.rpp-agent-teaser {
	padding: var(--rpp-space-4, 32px);
	background: var(--rpp-color-surface, #fff);
	box-shadow: var(--rpp-shadow-card, 0 8px 24px rgba(17, 17, 17, 0.08));
}

.rpp-single__card .rpp-listing__price {
	margin: 0 0 8px;
	font-size: 1.5rem;
}

.rpp-single__id {
	margin: 0 0 var(--rpp-space-3, 24px);
	color: var(--rpp-color-text-muted, #6b6560);
	font-size: var(--rpp-fs-meta, 0.875rem);
}

.rpp-single__card .rpp-button {
	width: 100%;
}

.rpp-single__aside-note {
	margin: 12px 0 0;
	color: var(--rpp-color-text-muted, #6b6560);
	font-size: var(--rpp-fs-meta, 0.875rem);
}

.rpp-agent-teaser {
	margin-top: var(--rpp-space-3, 24px);
}

.rpp-agent-teaser img {
	width: 72px;
	height: 72px;
	object-fit: cover;
	margin-bottom: 12px;
}

.rpp-agent-teaser h2 {
	font-size: 1.25rem;
	margin-bottom: 4px;
}

.rpp-agent-teaser__role {
	margin: 0 0 12px;
	color: var(--rpp-color-text-muted, #6b6560);
}

.rpp-similar {
	margin-top: var(--rpp-space-7, 96px);
}

.rpp-similar__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--rpp-space-3, 24px);
}

@media (max-width: 1100px) {
	.rpp-single__layout {
		grid-template-columns: 1fr;
	}

	.rpp-single__aside {
		position: static;
	}

	.rpp-similar__grid,
	.rpp-details__list {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 640px) {
	.rpp-details__list,
	.rpp-details__row,
	.rpp-similar__grid {
		grid-template-columns: 1fr;
	}

	.rpp-gallery__nav {
		width: 36px;
		height: 36px;
	}
}
