:root {
	--fbch-ink: #1b1e33;
	--fbch-text: #202a2d;
	--fbch-muted: #667176;
	--fbch-surface: #fff;
	--fbch-canvas: #f7f6f1;
	--fbch-border: #e3e5e6;
	--fbch-accent: #0e7e86;
	--fbch-accent-dark: #096b72;
	--fbch-yellow: #ffd83d;
}

.fbch-wrap {
	width: min(1180px, calc(100% - 40px));
	margin: 0 auto;
	padding: clamp(54px, 7vw, 94px) 0;
	color: var(--fbch-text);
	font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 17px;
	line-height: 1.5;
}

body.post-type-archive-fb_propiedad .l-main,
body.post-type-archive-fb_producto .l-main,
body.single-fb_propiedad .l-main,
body.single-fb_producto .l-main { background: var(--fbch-canvas); }

.fbch-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr));
	gap: 28px;
}

.fbch-map-intro {
	max-width: 680px;
	margin: -4px 0 32px;
	color: var(--fbch-muted);
	font-size: 1.08rem;
}

.fbch-card {
	overflow: hidden;
	background: var(--fbch-surface);
	border: 1px solid var(--fbch-border);
	border-radius: 22px;
	box-shadow: none;
}

.fbch-card-image {
	display: block;
	aspect-ratio: 4 / 3;
	background: linear-gradient(135deg, #e8f2f0, #f7f0cd);
	overflow: hidden;
}

.fbch-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .35s ease;
}

.fbch-card:hover .fbch-card-image img { transform: scale(1.035); }
.fbch-placeholder { display: block; width: 100%; height: 100%; }
.fbch-card-body { padding: 20px; }
.fbch-card h2 { margin: 7px 0 10px; font-family: Inter, -apple-system, sans-serif; font-size: clamp(1.15rem, 2vw, 1.45rem); font-weight: 600; line-height: 1.3; }
.fbch-card h2 a { color: var(--fbch-ink); text-decoration: none; }
.fbch-card-meta { min-height: 1.4em; margin: 0; color: var(--fbch-muted); font-size: .9rem; }
.fbch-card-price { margin: 0 0 13px; color: var(--fbch-ink); font-size: 1.15rem; font-weight: 750; }
.fbch-text-link { color: var(--fbch-accent); font-weight: 700; text-decoration: none; }

.fbch-product-card {
	overflow: visible;
	width: 100%;
	max-width: 470px;
	justify-self: center;
}

.fbch-product-card .fbch-card-body {
	display: flex;
	flex-direction: column;
	gap: 17px;
	padding: 18px;
}

.fbch-product-card h2,
.fbch-product-card p {
	margin: 0;
}

.fbch-product-tagline {
	color: var(--fbch-text);
	font-size: 1rem;
	line-height: 1.55;
}

.fbch-product-card .fbch-tiktok {
	margin: 0 -10px;
}

.fbch-product-action {
	margin: 24px 0 0;
	text-align: center;
}

.fbch-product-card .fbch-product-action {
	margin-top: 0;
}

.fbch-product-single-head {
	max-width: 760px;
	margin: 0 auto 30px;
	text-align: center;
}

.fbch-product-single-video {
	display: flex;
	justify-content: center;
}

.fbch-product > article {
	max-width: 760px;
	margin: 0 auto;
	padding: clamp(22px, 4vw, 42px);
	background: #fff;
	border: 1px solid var(--fbch-border);
	border-radius: 22px;
}

.fbch-hero {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
	gap: clamp(28px, 5vw, 72px);
	align-items: start;
}

.fbch-hero-media img {
	display: block;
	width: 100%;
	max-height: 680px;
	object-fit: cover;
	border-radius: 22px;
}

.fbch-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin: 0 0 17px;
	padding: 7px 13px;
	color: #29484c;
	background: #e8f0ef;
	border-radius: 999px;
	font-size: .76rem;
	font-weight: 700;
	letter-spacing: .08em;
	line-height: 1;
	text-transform: uppercase;
}
.fbch-eyebrow::before { width: 7px; height: 7px; background: var(--fbch-yellow); border-radius: 50%; content: ""; }
.fbch-title { margin: 0 0 20px; color: var(--fbch-ink); font-family: "Playfair Display", Georgia, serif; font-size: clamp(2.75rem, 5vw, 4.15rem); font-weight: 700; letter-spacing: -.015em; line-height: 1.08; }
.fbch-price { margin: 0 0 20px; color: var(--fbch-ink); font-size: clamp(1.35rem, 3vw, 2rem); font-weight: 800; }
.fbch-facts { display: flex; flex-wrap: wrap; gap: 10px; padding: 0; margin: 20px 0; list-style: none; }
.fbch-facts li { padding: 8px 12px; background: #e8f0ef; border-radius: 999px; }
.fbch-address { color: var(--fbch-muted); }
.fbch-content { margin-top: clamp(36px, 6vw, 80px); font-size: 1.05rem; }
.fbch-media-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin-top: 38px; align-items: start; }
.fbch-media-grid > *:only-child { grid-column: 1 / -1; }
.fbch-tiktok { display: flex; justify-content: center; min-width: 0; }
.fbch-tiktok iframe { max-width: 100%; }
.fbch-map iframe { width: 100%; min-height: 430px; border: 0; border-radius: 22px; }
.fbch-map p { margin: 8px 0 0; color: var(--fbch-muted); font-size: .8rem; }
.fbch-rating { color: #b16d00; font-weight: 750; }
.fbch-buy {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 20px;
	color: var(--fbch-ink) !important;
	background: #fff;
	border: 1px solid var(--fbch-border);
	border-radius: 14px;
	font-size: .92rem;
	font-weight: 600;
	text-decoration: none !important;
	box-shadow: none;
	transition: border-color .2s ease, color .2s ease, transform .2s ease;
}
.fbch-buy:hover { color: var(--fbch-accent) !important; border-color: var(--fbch-accent); transform: translateY(-1px); }

.fbch-back { margin-bottom: 28px; }
.fbch-back a { color: var(--fbch-muted); text-decoration: none; }

.fbch-property-map-shell {
	overflow: hidden;
	background: var(--fbch-surface);
	border: 1px solid var(--fbch-border);
	border-radius: 22px;
	box-shadow: none;
}

.fbch-map-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	align-items: end;
	padding: 20px;
	background: #fff;
}

.fbch-map-filters label {
	display: grid;
	gap: 6px;
	min-width: min(100%, 190px);
	color: var(--fbch-muted);
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.fbch-map-filters select {
	min-height: 46px;
	padding: 0 38px 0 14px;
	color: var(--fbch-ink);
	background: #f7f8f7;
	border: 1px solid var(--fbch-border);
	border-radius: 12px;
	font: inherit;
	font-size: .95rem;
	font-weight: 600;
	letter-spacing: normal;
	text-transform: none;
}
.fbch-map-filters select:focus { border-color: var(--fbch-accent); outline: 3px solid rgba(14, 126, 134, .14); }

.fbch-map-count {
	margin: 0 0 13px auto;
	color: var(--fbch-muted);
	font-weight: 700;
}

.fbch-property-map {
	width: 100%;
	height: min(72vh, 720px);
	min-height: 520px;
	background: #e8efed;
}

.fbch-map-popup {
	width: min(310px, 70vw);
	height: min(550px, 62vh);
	overflow: hidden;
	border-radius: 12px;
}

.fbch-map-popup iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

.fbch-map-notice {
	padding: 28px;
	background: #f7f8f7;
	border: 1px solid var(--fbch-border);
	border-radius: 16px;
	color: var(--fbch-muted);
}

.fbch-wrap .nav-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 36px; }
.fbch-wrap .page-numbers { min-width: 42px; padding: 9px 13px; color: var(--fbch-ink); background: #fff; border: 1px solid var(--fbch-border); border-radius: 12px; text-align: center; text-decoration: none; }
.fbch-wrap .page-numbers.current { color: #fff; background: var(--fbch-accent); border-color: var(--fbch-accent); }

@media (max-width: 800px) {
	.fbch-hero,
	.fbch-media-grid { grid-template-columns: 1fr; }
	.fbch-wrap { width: min(100% - 28px, 1180px); }
	.fbch-map-count { width: 100%; margin: 0; }
	.fbch-property-map { min-height: 62vh; }
}
