/* Scoped to our widgets so the shop theme and other sidebars stay independent. */
.zgvf-widget.zgvf-widget {
    box-sizing: border-box; padding: 22px; margin-bottom: 20px;
    border: 1px solid #e9e5dd; border-radius: 16px;
    background: #fff; color: #111; font-family: Arial, sans-serif;
    font-size: 14px; line-height: 1.45; box-shadow: 0 4px 20px rgba(17,17,17,.035);
}
.zgvf-widget *, .zgvf-widget *::before, .zgvf-widget *::after { box-sizing: border-box; }
.zgvf-widget .widget-title, .zgvf-widget .widgettitle {
    margin: 0 0 18px; padding: 0; border: 0; color: #111;
    font: 600 18px/1.35 Arial, sans-serif; text-transform: none; letter-spacing: 0;
}
.zgvf-widget .widget-title::before, .zgvf-widget .widget-title::after { display: none; }
.zgvf-panel.zgvf-widget { border-top: 3px solid #d5aa4d; }
.zgvf-panel .zgvf-section {
    margin: 0; padding: 18px 0; border: 0; border-top: 1px solid #eeeae3;
    border-radius: 0; background: transparent; box-shadow: none;
}
.zgvf-panel .zgvf-section-title {
    color: #111; margin: 0 0 12px; padding: 0; font: 600 14px/1.4 Arial, sans-serif;
    text-transform: none; letter-spacing: 0;
}
.zgvf-widget .zgvf-search-wrap { margin-bottom: 10px; }
.zgvf-widget input.zgvf-search {
    display: block; width: 100%; height: 40px; min-height: 40px; padding: 8px 12px;
    border: 1px solid #e6e1d8; border-radius: 8px; background: #faf9f6;
    color: #111; font: 14px/1.4 Arial, sans-serif; box-shadow: none;
}
.zgvf-widget .zgvf-search::placeholder { color: #777; }
.zgvf-widget .zgvf-list {
    margin: 0; padding: 0 5px 0 0; list-style: none; max-height: 360px;
    overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin;
    scrollbar-color: #d5aa4d #f3f0e9;
}
.zgvf-widget .zgvf-list::-webkit-scrollbar { width: 5px; }
.zgvf-widget .zgvf-list::-webkit-scrollbar-track { background: #f3f0e9; border-radius: 5px; }
.zgvf-widget .zgvf-list::-webkit-scrollbar-thumb { background: #d5aa4d; border-radius: 5px; }
.zgvf-widget .zgvf-list .zgvf-item {
    display: block; margin: 0; padding: 0; border: 0; list-style: none; line-height: 1.3;
}
.zgvf-widget .zgvf-list .zgvf-item::before { display: none; }
.zgvf-widget .zgvf-item a.zgvf-option {
    display: flex; align-items: center; gap: 9px; width: 100%; min-height: 36px;
    padding: 7px 6px; border: 0; border-radius: 6px; color: #333;
    text-decoration: none; font: 14px/1.3 Arial, sans-serif; background: transparent;
}
.zgvf-widget .zgvf-item a.zgvf-option::before {
    content: ''; display: block; position: static; flex: 0 0 16px; width: 16px; height: 16px;
    margin: 0; border: 1px solid #cbc5b9; border-radius: 4px; background: #fff;
}
.zgvf-widget .zgvf-item a.zgvf-option::after { display: none; }
.zgvf-widget .zgvf-item a.zgvf-option:hover { background: #faf5e9; color: #111; }
.zgvf-widget .zgvf-item.is-selected a.zgvf-option { background: #faf3e2; color: #111; font-weight: 600; }
.zgvf-widget .zgvf-item.is-selected a.zgvf-option::before {
    border-color: #b48b30; background: #d5aa4d; box-shadow: inset 0 0 0 3px #faf3e2;
}
.zgvf-widget .zgvf-option-label { min-width: 0; overflow-wrap: anywhere; }
.zgvf-widget .zgvf-count {
    flex-shrink: 0; margin-left: auto; padding: 1px 7px; border-radius: 5px;
    background: #f2f0eb; color: #666; font-size: 12px; font-weight: 400;
}
.zgvf-widget .zgvf-clear {
    display: inline-block; margin-top: 10px; color: #78602c; text-decoration: underline;
    text-underline-offset: 3px; font-size: 12px;
}
.zgvf-widget .zgvf-active-list { display: flex; flex-wrap: wrap; gap: 7px; }
.zgvf-widget .zgvf-chip {
    display: inline-flex; align-items: center; gap: 7px; max-width: 100%; padding: 6px 9px;
    border: 1px solid #eadab5; border-radius: 7px; color: #55431e;
    background: #fcf7eb; text-decoration: none; line-height: 1.35; font-size: 12px;
}
.zgvf-widget .zgvf-chip span { overflow-wrap: anywhere; }
.zgvf-widget .zgvf-chip b { flex-shrink: 0; font-size: 16px; line-height: 1; font-weight: 400; }
.zgvf-widget .zgvf-price-inputs { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 10px; }
.zgvf-widget .zgvf-price-inputs label { display: block; min-width: 0; margin: 0; }
.zgvf-widget .zgvf-price-inputs label span { display: block; margin-bottom: 5px; font-size: 12px; color: #666; }
.zgvf-widget .zgvf-price-inputs input {
    width: 100%; min-width: 0; height: 42px; padding: 8px; margin: 0; border: 1px solid #ddd6c8;
    border-radius: 8px; background: #fff; color: #111; font: 14px/1.3 Arial, sans-serif;
}
.zgvf-widget button.zgvf-price-submit, .zgvf-widget a.zgvf-reset-panel {
    display: block; width: 100%; margin: 12px 0 0; padding: 11px 9px; height: auto; min-height: 42px;
    border: 1px solid #d5aa4d; border-radius: 8px; background: #d5aa4d; color: #111;
    font: 600 13px/1.4 Arial, sans-serif; text-align: center; text-transform: none;
    text-decoration: none; letter-spacing: 0; cursor: pointer; box-shadow: none;
}
.zgvf-widget button.zgvf-price-submit:hover { background: #c99c3d; border-color: #c99c3d; }
.zgvf-widget a.zgvf-reset-panel { background: #fff; border-color: #e4ded2; color: #666; }
.zgvf-widget .zgvf-price-error { margin: 8px 0 0; color: #9d2929; font-size: 12px; }
.zgvf-widget :focus-visible { outline: 2px solid #a77819; outline-offset: 2px; }
.zgvf-widget .zgvf-item[hidden], .zgvf-widget [hidden] { display: none !important; }
@media (max-width: 480px) {
    .zgvf-widget.zgvf-widget { padding: 18px; }
    .zgvf-panel .zgvf-section { padding: 16px 0; }
}

/* Woodmart can enforce content-box and larger input padding in its sidebar. */
.zgvf-widget .zgvf-search-wrap {
    display: block; box-sizing: border-box !important; width: 100%; max-width: 100%; min-width: 0;
    padding: 0; margin-left: 0; margin-right: 0;
}
.zgvf-widget .zgvf-search-wrap input[type="search"].zgvf-search,
.zgvf-widget .zgvf-price-inputs input[type="number"] {
    box-sizing: border-box !important; width: 100% !important; max-width: 100% !important;
    min-width: 0 !important; margin-left: 0 !important; margin-right: 0 !important;
    height: 42px !important; min-height: 42px !important; padding: 8px 10px !important;
    font: 14px/1.4 Arial, sans-serif !important; text-indent: 0;
}
