.visor-patrimonios {
	--vp-color-ink: #12202b;
	--vp-color-ink-soft: #3f5663;
	--vp-color-paper: #ffffff;
	--vp-color-paper-soft: #eef3f4;
	--vp-color-border: #d6e1e4;
	--vp-color-border-strong: #20323c;
	--vp-color-blue: #0f5975;
	--vp-color-yellow: #8a7f1f;
	--vp-color-overlay: rgba(10, 18, 25, 0.52);
	--vp-shadow-soft: 0 1rem 2.4rem -1.6rem rgba(18, 32, 43, 0.42);
	--vp-shadow-card: 0 0.45rem 1rem -0.8rem rgba(18, 32, 43, 0.55);
	--vp-radius-large: 0;
	--vp-radius-medium: 0;
	--vp-radius-small: 0;
	--vp-grid-max-width: 80rem;
	--vp-grid-inline-size: min(100%, var(--vp-grid-max-width));
	--vp-section-inline-size: 960px;
	--vp-grid-inline-size-px: 928px;
	--vp-cell-size: 29px;
	--vp-title-scale: 1;
	--vp-panel-scale: 1;
	--vp-ui-scale: 1;
	--vp-space-scale: 1;
	--vp-background-blur: 6px;
	--vp-background-transition: 0.5s ease;
	color: var(--vp-color-ink);
}

.visor-patrimonios,
.visor-patrimonios * {
	box-sizing: border-box;
}

.visor-patrimonios img {
	max-width: 100%;
	display: block;
}

.visor-patrimonios button {
	font: inherit;
}

.visor-patrimonios .vp-section {
	width: 100%;
	max-width: calc(var(--vp-grid-max-width) + 2rem);
	margin: 0 auto;
	padding: 2rem 1rem;
}

.visor-patrimonios .vp-section__header {
	margin-bottom: 1.5rem;
}

.visor-patrimonios .vp-section__title {
	margin: 0;
	display: inline-block;
	padding-bottom: 0.55rem;
	border-bottom: 0.24rem solid var(--vp-color-border-strong);
	color: var(--vp-color-ink);
	font-size: clamp(1.35rem, calc(var(--vp-section-inline-size) * 0.04), 2.7rem);
	font-weight: 900;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	line-height: 1.1;
}

.visor-patrimonios .vp-section__empty,
.visor-patrimonios .vp-block-placeholder {
	padding: 1.25rem 1.5rem;
	background: var(--vp-color-paper);
	border: 1px solid var(--vp-color-border);
	border-radius: var(--vp-radius-medium);
	box-shadow: var(--vp-shadow-soft);
	color: var(--vp-color-ink-soft);
}

.visor-patrimonios .vp-grid-shell {
	position: relative;
	overflow: hidden;
	padding: 0;
}

.visor-patrimonios .vp-grid-shell__background {
	position: absolute;
	inset: 0;
	pointer-events: none;
	overflow: hidden;
	border-radius: inherit;
}

.visor-patrimonios .vp-grid-shell__background-layer,
.visor-patrimonios .vp-grid-shell__background-overlay {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity var(--vp-background-transition), filter var(--vp-background-transition), background-color var(--vp-background-transition);
}

.visor-patrimonios .vp-grid-shell__background-layer {
	background-image: var(--vp-background-base);
	background-position: center;
	background-size: cover;
	filter: blur(var(--vp-background-blur));
}

.visor-patrimonios .vp-grid-shell__background-layer--next {
	background-image: var(--vp-background-next);
	opacity: 0;
}

.visor-patrimonios .vp-grid-shell__background-layer--next.is-visible {
	opacity: 1;
}

.visor-patrimonios .vp-grid-shell__background-overlay {
	background: transparent;
}

.visor-patrimonios .vp-grid-shell.is-revealed .vp-grid-shell__background-layer--base,
.visor-patrimonios .vp-grid-shell.is-revealed .vp-grid-shell__background-overlay {
	opacity: 1;
}

.visor-patrimonios .vp-grid-shell.is-revealed .vp-grid-shell__background-layer--next.is-visible {
	opacity: 1;
}

.visor-patrimonios .vp-grid-shell.is-hovered .vp-grid-shell__background-overlay {
	background: var(--vp-color-overlay);
}

.visor-patrimonios .vp-grid-shell.is-detail-open .vp-grid-shell__background-layer {
	filter: blur(0);
}

.visor-patrimonios .vp-grid-shell.is-detail-open .vp-grid-shell__background-overlay {
	opacity: 0;
	background: transparent;
}

.visor-patrimonios .vp-grid {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: repeat(var(--vp-grid-columns), minmax(0, 1fr));
	grid-template-rows: repeat(var(--vp-grid-rows), minmax(0, 1fr));
	grid-auto-columns: minmax(0, 1fr);
	grid-auto-rows: minmax(0, 1fr);
	width: var(--vp-grid-inline-size);
	aspect-ratio: calc(var(--vp-grid-columns) / var(--vp-grid-rows));
	justify-content: start;
	align-content: start;
	gap: 0;
}

.visor-patrimonios .vp-cell {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	min-width: 0;
	min-height: 0;
	overflow: hidden;
	border: 0;
	padding: 0;
	transition: opacity 180ms ease, transform 180ms ease, background-color 180ms ease, color 180ms ease;
}

.visor-patrimonios .vp-cell.is-dimmed {
	opacity: 0.28;
}

.visor-patrimonios .vp-cell--image {
	background: var(--vp-color-paper-soft);
	cursor: pointer;
	outline: 0;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1);
}

.visor-patrimonios .vp-cell--image::after {
	content: '';
	position: absolute;
	inset: 0;
	background: transparent;
	transition: background-color 140ms ease;
}

.visor-patrimonios .vp-cell--image:hover::after,
.visor-patrimonios .vp-cell--image:focus-visible::after {
	background: rgba(18, 32, 43, 0.34);
}

.visor-patrimonios .vp-cell__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	pointer-events: none;
	user-select: none;
}

.visor-patrimonios .vp-cell--summary {
	animation: vp-slide-in 0.35s ease-out both;
}

.visor-patrimonios .vp-cell--detail {
	animation: vp-slide-in 0.35s ease-out 0.18s both;
}

.visor-patrimonios .vp-cell--title {
	padding: clamp(0.125rem, calc(0.5rem * var(--vp-space-scale)), 0.5rem);
	background: rgba(255, 255, 255, 0.94);
	color: var(--vp-color-ink);
	text-align: center;
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(0.35rem);
}

.visor-patrimonios .vp-cell--title.is-visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
}

.visor-patrimonios .vp-cell--title:hover,
.visor-patrimonios .vp-cell--title:focus-visible {
	background: var(--vp-color-border-strong);
	color: var(--vp-color-paper);
}

.visor-patrimonios .vp-cell__title-text {
	font-size: clamp(0.4rem, calc(0.9rem * var(--vp-title-scale)), 0.9rem);
	font-weight: 900;
	line-height: 1.2;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	pointer-events: none;
}

.visor-patrimonios .vp-cell--back,
.visor-patrimonios .vp-cell--expand {
	background: rgba(255, 255, 255, 0.92);
	color: var(--vp-color-ink);
	cursor: pointer;
	gap: 0.18rem;
	flex-direction: column;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: clamp(0.28rem, calc(0.5rem * var(--vp-ui-scale)), 0.58rem);
	font-weight: 900;
	line-height: 1.1;
}

.visor-patrimonios .vp-cell--back:hover,
.visor-patrimonios .vp-cell--back:focus-visible,
.visor-patrimonios .vp-cell--expand:hover,
.visor-patrimonios .vp-cell--expand:focus-visible {
	background: var(--vp-color-border-strong);
	color: var(--vp-color-paper);
}

.visor-patrimonios .vp-cell__back-arrow {
	font-size: clamp(0.5rem, calc(1rem * var(--vp-ui-scale)), 1rem);
	line-height: 1;
}

.visor-patrimonios .vp-cell--summary {
	padding: 0;
	background: rgba(255, 255, 255, 0.96);
	align-items: stretch;
	justify-content: stretch;
	box-shadow: var(--vp-shadow-card);
}

.visor-patrimonios .vp-cell__summary-inner {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: clamp(0.04rem, calc(0.24rem * var(--vp-space-scale)), 0.45rem);
	padding: clamp(0.08rem, calc(0.45rem * var(--vp-space-scale)), 0.7rem);
	text-align: center;
	width: 100%;
	height: 100%;
}

.visor-patrimonios .vp-cell__summary-title {
	margin: 0;
	font-size: clamp(0.42rem, calc(1rem * var(--vp-panel-scale)), 1rem);
	font-weight: 900;
	line-height: 1.08;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.visor-patrimonios .vp-cell__summary-text {
	margin: 0;
	font-size: clamp(0.34rem, calc(0.9rem * var(--vp-panel-scale)), 0.9rem);
	line-height: 1.14;
}

.visor-patrimonios .vp-cell__detail-text {
	margin: 0;
	font-size: clamp(0.36rem, calc(1rem * var(--vp-panel-scale)), 1rem);
	line-height: 1.14;
}

.visor-patrimonios .vp-cell--detail {
	padding: clamp(0.08rem, calc(0.45rem * var(--vp-space-scale)), 0.7rem);
	text-align: center;
	box-shadow: var(--vp-shadow-card);
}

.visor-patrimonios .vp-cell--detail-secondary {
	background: rgba(15, 89, 117, 0.96);
	color: var(--vp-color-paper);
}

.visor-patrimonios .vp-cell--detail-tertiary {
	background: rgba(138, 127, 31, 0.96);
	color: var(--vp-color-paper);
}

.visor-patrimonios .vp-cell--expand {
	overflow: visible;
	position: relative;
}

.visor-patrimonios .vp-cell__expand-inner {
	position: absolute;
	inset: 0.2rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 0.125rem;
	transition: transform 160ms ease;
}

.visor-patrimonios .vp-cell__expand-inner::before {
	content: '';
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		linear-gradient(currentColor, currentColor) left top / 1.1rem 0.125rem no-repeat,
		linear-gradient(currentColor, currentColor) left top / 0.125rem 1.1rem no-repeat,
		linear-gradient(currentColor, currentColor) right top / 1.1rem 0.125rem no-repeat,
		linear-gradient(currentColor, currentColor) right top / 0.125rem 1.1rem no-repeat,
		linear-gradient(currentColor, currentColor) left bottom / 1.1rem 0.125rem no-repeat,
		linear-gradient(currentColor, currentColor) left bottom / 0.125rem 1.1rem no-repeat,
		linear-gradient(currentColor, currentColor) right bottom / 1.1rem 0.125rem no-repeat,
		linear-gradient(currentColor, currentColor) right bottom / 0.125rem 1.1rem no-repeat;
}

.visor-patrimonios .vp-cell--expand:hover .vp-cell__expand-inner,
.visor-patrimonios .vp-cell--expand:focus-visible .vp-cell__expand-inner {
	transform: scale(1.035);
}

.visor-patrimonios .vp-cell__expand-label {
	position: relative;
	z-index: 1;
	font-size: clamp(0.28rem, calc(0.58rem * var(--vp-ui-scale)), 0.58rem);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: 0.06em;
}

.visor-patrimonios .vp-cell__expand-icon {
	position: relative;
	z-index: 1;
	font-size: clamp(0.5rem, calc(0.95rem * var(--vp-ui-scale)), 0.95rem);
	line-height: 1;
}

.visor-patrimonios .vp-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
	background: rgba(8, 13, 17, 0.82);
	cursor: zoom-out;
}

.visor-patrimonios .vp-modal__dialog {
	max-width: min(96vw, 96rem);
	max-height: 92vh;
	display: flex;
	align-items: center;
	justify-content: center;
}

.visor-patrimonios .vp-modal__image {
	max-width: 100%;
	max-height: 92vh;
	object-fit: contain;
	border-radius: var(--vp-radius-medium);
	box-shadow: 0 1.4rem 3rem -1.2rem rgba(0, 0, 0, 0.55);
}

.visor-patrimonios .vp-cell:focus-visible,
.visor-patrimonios .vp-modal:focus-visible {
	outline: 0.2rem solid #7ec4de;
	outline-offset: -0.2rem;
}

@media (max-width: 782px) {
	.visor-patrimonios .vp-section {
		padding: 1.25rem 0.75rem;
	}

	.visor-patrimonios .vp-section__title {
		font-size: clamp(1.2rem, calc(var(--vp-section-inline-size) * 0.055), 2rem);
	}

	.visor-patrimonios .vp-modal {
		padding: 1rem;
	}
}

@keyframes vp-slide-in {
	0% {
		opacity: 0;
		transform: translateX(60%);
	}

	100% {
		opacity: 1;
		transform: translateX(0);
	}
}