.gv-groups {
    --gv-title-size: 14px;
    --gv-list-text: #666;
    --gv-list-bg: #fff;
    --gv-list-border: #e5e7eb;
    --gv-list-active: #f2994a;
    --gv-list-hover: #f2994a;
    --gv-list-border-width: 2px;
    --gv-photo-width: 60px;
    --gv-photo-height: 60px;
    --gv-photo-border: #e5e7eb;
    --gv-photo-active: #f2994a;
    --gv-photo-hover: #f2994a;
    --gv-photo-radius: 5px;
    --gv-color-border: #e5e7eb;
    --gv-color-active: #f2994a;
    --gv-color-hover: #f2994a;
    --gv-color-border-width: 2px;
    --gv-color-radius: 50%;
    box-sizing: border-box;
    margin: 1rem 0;
}
.gv-groups *, .gv-groups *::before, .gv-groups *::after { box-sizing: inherit; }
.gv-group { margin: 0 0 1rem; }
.gv-group:last-child { margin-bottom: 0; }
.gv-group__title { margin: 0 0 .5rem; font-size: var(--gv-title-size); font-weight: 600; line-height: 1.3; }
.gv-group__items { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; }
.gv-list-item {
    display: inline-flex; align-items: center; min-height: 2.25rem; padding: .35rem .7rem;
    color: var(--gv-list-text); background: var(--gv-list-bg); border: var(--gv-list-border-width) solid var(--gv-list-border);
    border-radius: .35rem; text-decoration: none; line-height: 1.2; transition: border-color .15s ease, box-shadow .15s ease;
}
a.gv-list-item:hover, a.gv-list-item:focus-visible { border-color: var(--gv-list-hover); }
.gv-list-item.is-active { border-color: var(--gv-list-active); box-shadow: 0 0 0 1px var(--gv-list-active); }
.gv-photo-item {
    display: inline-flex; align-items: center; justify-content: center; width: var(--gv-photo-width); height: var(--gv-photo-height);
    overflow: hidden; color: inherit; background: #fff; border: 2px solid var(--gv-photo-border); border-radius: var(--gv-photo-radius); text-decoration: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.gv-photo-item img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gv-photo-item__fallback { max-width: 100%; padding: .25rem; overflow: hidden; font-size: .7rem; text-align: center; text-overflow: ellipsis; }
a.gv-photo-item:hover, a.gv-photo-item:focus-visible { border-color: var(--gv-photo-hover); }
.gv-photo-item.is-active { border-color: var(--gv-photo-active); box-shadow: 0 0 0 1px var(--gv-photo-active); }
.gv-color-item {
    display: inline-block; width: 2rem; height: 2rem; background: var(--gv-color, #d1d5db); border: var(--gv-color-border-width) solid var(--gv-color-border);
    border-radius: var(--gv-color-radius); text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
a.gv-color-item:hover, a.gv-color-item:focus-visible { border-color: var(--gv-color-hover); transform: translateY(-1px); }
.gv-color-item.is-active { border-color: var(--gv-color-active); box-shadow: 0 0 0 1px var(--gv-color-active); }
.gv-list-item.is-unavailable, .gv-photo-item.is-unavailable, .gv-color-item.is-unavailable { opacity: .45; }
.gv-groups--limited:not(.is-expanded) .gv-groups__content { max-height: var(--gv-max-height, 180px); overflow: hidden; }
.gv-groups__toggle { margin: .5rem 0 0; padding: 0; color: inherit; background: none; border: 0; border-bottom: 1px dashed currentColor; cursor: pointer; }
.gv-visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (prefers-reduced-motion: reduce) {
    .gv-list-item, .gv-photo-item, .gv-color-item { transition: none; }
}
