/* Hispaviena – directorio */
:root {
	--hv-red: #c8102e;
	--hv-red-dark: #9d0c24;
	--hv-ink: #1f1b18;
	--hv-muted: #6b625b;
	--hv-line: #e9e2da;
	--hv-sand: #faf6f1;
	--hv-card: #ffffff;
	--hv-gold: #f2b134;
	--hv-radius: 14px;
	--hv-shadow: 0 1px 2px rgba(31, 27, 24, .06), 0 6px 18px rgba(31, 27, 24, .06);
}

.hv-dir { margin: 24px 0 40px; color: var(--hv-ink); }
.hv-dir [hidden] { display: none !important; }

/* Barra de filtros */
.hv-toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 12px; }
.hv-search, .hv-dist {
	font: inherit; font-size: 15px; padding: 10px 14px; border: 1px solid var(--hv-line);
	border-radius: 999px; background: #fff; color: var(--hv-ink); min-height: 44px;
}
.hv-search { flex: 1 1 220px; }
.hv-dist { flex: 0 1 220px; }
.hv-search:focus, .hv-dist:focus { outline: 2px solid var(--hv-red); outline-offset: 1px; }

.hv-view { display: inline-flex; border: 1px solid var(--hv-line); border-radius: 999px; overflow: hidden; background: #fff; }
.hv-view-btn {
	font: inherit; font-size: 14px; font-weight: 600; padding: 10px 18px; border: 0; background: transparent;
	color: var(--hv-muted); cursor: pointer; min-height: 44px;
}
.hv-view-btn.is-active { background: var(--hv-ink); color: #fff; }

.hv-chips { display: flex; gap: 8px; overflow-x: auto; padding: 2px 0 10px; scrollbar-width: thin; }
.hv-chip {
	flex: 0 0 auto; font: inherit; font-size: 14px; padding: 8px 14px; border-radius: 999px;
	border: 1px solid var(--hv-line); background: #fff; color: var(--hv-ink); cursor: pointer; min-height: 40px;
}
.hv-chip:hover { border-color: var(--hv-ink); }
.hv-chip.is-active { background: var(--hv-red); border-color: var(--hv-red); color: #fff; }

.hv-count { font-size: 14px; color: var(--hv-muted); margin: 4px 0 14px; padding: 0; }
.hv-empty { padding: 24px; text-align: center; color: var(--hv-muted); background: var(--hv-sand); border-radius: var(--hv-radius); }

/* Rejilla de tarjetas */
.hv-grid { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; gap: 18px; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.hv-grid--compact { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.hv-card {
	position: relative; display: flex; flex-direction: column; background: var(--hv-card); border: 1px solid var(--hv-line);
	border-radius: var(--hv-radius); box-shadow: var(--hv-shadow); overflow: hidden; padding: 0 !important; margin: 0 !important;
	transition: transform .15s ease, box-shadow .15s ease;
}
.hv-card:hover { transform: translateY(-2px); box-shadow: 0 2px 4px rgba(31,27,24,.08), 0 12px 28px rgba(31,27,24,.10); }
.hv-card.is-featured { border-color: var(--hv-gold); box-shadow: 0 0 0 2px rgba(242, 177, 52, .35), var(--hv-shadow); }
.hv-card-img { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--hv-sand); }
.hv-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hv-card-body { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px 18px; flex: 1; }
.hv-card-meta { display: flex; flex-wrap: wrap; gap: 6px; }
.hv-badge {
	display: inline-block; font-size: 12px; font-weight: 600; line-height: 1; letter-spacing: .02em; padding: 6px 9px;
	border-radius: 999px; background: #fbe9ec; color: var(--hv-red-dark);
}
.hv-badge--feat { background: var(--hv-gold); color: #3a2a00; }
.hv-badge--soft { background: var(--hv-sand); color: var(--hv-muted); }
.hv-card-title { font-size: 19px !important; line-height: 1.25 !important; margin: 4px 0 0 !important; padding: 0 !important; font-weight: 700; }
.hv-card-title a { color: var(--hv-ink); text-decoration: none; }
.hv-card-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.hv-card-addr, .hv-card-text, .hv-card-tags { margin: 0 !important; padding: 0 !important; font-size: 14px; line-height: 1.5; }
.hv-card-addr { color: var(--hv-muted); }
.hv-card-tags { color: var(--hv-ink); opacity: .8; }
.hv-card-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 10px; position: relative; z-index: 2; }

.hv-btn {
	display: inline-flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 600; line-height: 1;
	padding: 11px 14px; min-height: 40px; border-radius: 10px; border: 1px solid var(--hv-line); background: #fff;
	color: var(--hv-ink) !important; text-decoration: none; cursor: pointer;
}
.hv-btn:hover { border-color: var(--hv-ink); }
.hv-btn--primary { background: var(--hv-red); border-color: var(--hv-red); color: #fff !important; }
.hv-btn--primary:hover { background: var(--hv-red-dark); border-color: var(--hv-red-dark); }

/* Mapa */
.hv-map { margin: 0 0 18px; }
.hv-map-canvas { height: 460px; border-radius: var(--hv-radius); border: 1px solid var(--hv-line); background: var(--hv-sand); }
.hv-map-note { font-size: 12px; color: var(--hv-muted); margin: 6px 0 0 !important; padding: 0 !important; }
.hv-map--single { position: relative; margin-top: 24px; }
.hv-map--single .hv-map-canvas { height: 300px; }
.hv-map--single .hv-map-load { position: absolute; top: 130px; left: 50%; transform: translateX(-50%); }
.hv-map--single.is-loaded .hv-map-load { display: none; }
.hv-popup a { font-weight: 700; color: var(--hv-red); }

/* Ficha */
.hv-single { background: var(--hv-sand); padding: 32px 0 56px; }
.hv-single .container { max-width: 1120px; }
.hv-lokal-head { margin-bottom: 20px; }
.hv-lokal-title { font-size: clamp(30px, 4vw, 44px) !important; line-height: 1.1 !important; margin: 10px 0 6px !important; padding: 0 !important; font-weight: 800; color: var(--hv-ink); }
.hv-lokal-tags { font-size: 17px; color: var(--hv-muted); margin: 0 !important; }
.hv-lokal-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 28px; align-items: start; }
.hv-lokal-main, .hv-lokal-side { background: #fff; border: 1px solid var(--hv-line); border-radius: var(--hv-radius); padding: 22px; }
.hv-lokal-side { position: sticky; top: 100px; }
.hv-lokal-img { margin: -22px -22px 18px; }
.hv-lokal-img img { width: 100%; display: block; border-radius: var(--hv-radius) var(--hv-radius) 0 0; }
.hv-lokal-content:empty { display: none; }
.hv-lokal-es { color: var(--hv-muted); }
.hv-facts { margin: 0 0 16px; }
.hv-facts dt { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--hv-muted); margin-top: 12px; }
.hv-facts dd { margin: 2px 0 0; font-size: 16px; }
.hv-facts a { color: var(--hv-red); }
.hv-verified { font-size: 13px; color: var(--hv-muted); margin: 14px 0 0 !important; }
.hv-claim { font-size: 13px; margin: 8px 0 0 !important; line-height: 1.8; }
.hv-claim a { color: var(--hv-muted); text-decoration: underline; }
.hv-related { margin-top: 40px; }
.hv-related h2 { font-size: 24px; margin-bottom: 14px; }

@media (max-width: 900px) {
	.hv-lokal-grid { grid-template-columns: 1fr; }
	.hv-lokal-side { position: static; order: -1; }
	.hv-map-canvas { height: 380px; }
}
@media (max-width: 480px) {
	.hv-dist { flex: 1 1 100%; }
	.hv-view { width: 100%; }
	.hv-view-btn { flex: 1; }
	.hv-single { padding-top: 16px; }
	.hv-lokal-main, .hv-lokal-side { padding: 16px; }
	.hv-lokal-img { margin: -16px -16px 16px; }
}
