.vh-search__row { display: flex; gap: .5rem; flex-wrap: wrap; }
.vh-search__input { flex: 1 1 18rem; }

.vh-categories { display: grid; gap: 1rem; }
.vh-categories--cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.vh-categories--cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.vh-categories--cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.vh-category { display: block; padding: 1.25rem; background: var(--vh-panel, #EEE6DD); border-radius: .75rem; text-decoration: none; color: inherit; }
.vh-category__icon svg { width: 2rem; height: 2rem; stroke: var(--vh-wine, #7A1F35); }
.vh-category__name { display: block; font-weight: 700; margin: .5rem 0 .25rem; }
.vh-category__desc { display: block; font-size: .875rem; }
.vh-categories__note { font-size: .875rem; opacity: .8; }

.vh-filter__group { margin-bottom: 1.25rem; }
.vh-filter__label { display: block; font-weight: 600; margin-bottom: .35rem; }
.vh-filter__input,
.vh-filter__select { width: 100%; }
.vh-filter__check { display: flex; gap: .5rem; align-items: center; margin-bottom: .35rem; }

.vh-results.is-loading { opacity: .5; }
.vh-results__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.vh-card { display: flex; gap: 1rem; padding: 1rem; background: #fff; border: 1px solid var(--vh-border, #E3D9CE); border-radius: .75rem; }
.vh-card--top { border-color: var(--vh-gold, #C9A86A); }
.vh-card__logo img { width: 72px; height: 72px; object-fit: contain; }
.vh-card__title { margin: 0 0 .25rem; font-size: 1.125rem; }
.vh-card__meta { display: flex; flex-wrap: wrap; gap: .5rem; font-size: .875rem; margin: 0 0 .5rem; }
.vh-card__action { display: inline-block; margin-top: .5rem; font-weight: 600; }

.vh-badge { display: inline-flex; align-items: center; padding: .15rem .5rem; border-radius: 999px; font-size: .75rem; background: var(--vh-sage, #8FB29A); color: #1d2f24; }
.vh-badge--empfohlen { background: var(--vh-gold, #C9A86A); color: #3b2c0f; }
.vh-badge--lang { background: var(--vh-panel, #EEE6DD); color: var(--vh-wine, #7A1F35); }

@media (max-width: 782px) {
	.vh-categories--cols-3,
	.vh-categories--cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vh-card { flex-direction: column; }
}

.vh-filter__actions { display: flex; align-items: center; gap: 1rem; margin-top: 1.5rem; }
.vh-filter__submit { padding: .6rem 1.25rem; border: 0; border-radius: .4rem; background: var(--vh-sage-dark, #4F7A5E); color: #fff; cursor: pointer; }
.vh-filter__reset { font-size: .875rem; }

.vh-results__bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.vh-results__sort { display: flex; align-items: center; gap: .5rem; font-size: .875rem; }
.vh-results__count { margin: 0; font-weight: 600; }

.vh-single__head { display: flex; gap: 1.25rem; align-items: flex-start; margin-bottom: 1.5rem; }
.vh-single__logo img { width: 96px; height: 96px; object-fit: contain; }
.vh-single__body { display: grid; gap: 2rem; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.vh-single__feature-list { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.vh-single__feature-list li { padding: .2rem .6rem; border-radius: 999px; background: var(--vh-panel, #EEE6DD); font-size: .875rem; }

@media (max-width: 782px) {
	.vh-single__body { grid-template-columns: 1fr; }
	.vh-single__head { flex-direction: column; }
}
.vh-filter__attribution { margin-top: 1rem; font-size: .75rem; opacity: .7; }
