/* Keep the catalogue visual; sourcing actions belong in its floating details. */
#filter-bar { padding-block: 16px; }
#filter-bar .collection-tools {
    display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px;
    margin-top: 14px; padding-top: 14px; border-top: 1px solid #eae6df;
}
#filter-bar .collection-series { margin: 0; padding: 0; border: 0; gap: 10px; }
#filter-bar .series-picker { width: clamp(180px, 21vw, 280px); }
#filter-bar .collection-tool { display: flex; align-items: center; gap: 10px; min-width: 0; }
#filter-bar .collection-tool > span, #filter-bar .collection-series-label {
    font-size: 13px; font-weight: 500; color: #70685f; white-space: nowrap;
}
#filter-bar .collection-tool select, #filter-bar .series-picker-trigger {
    min-height: 44px; margin: 0; padding: 10px 34px 10px 12px;
    border: 1px solid #ded7ce; border-radius: 9px; background-color: #fbfaf7;
    font-size: 13px; font-weight: 500; letter-spacing: 0; text-transform: none;
    color: #28241f; max-width: 220px; width: 100%; cursor: pointer;
}
#filter-bar .series-picker-trigger { max-width: none; padding-right: 12px; }
#filter-bar .collection-tool select:focus-visible { outline: 2px solid #8e8578; outline-offset: 2px; }
#filter-bar .collection-enquiry-link {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    min-height: 46px; padding: 10px 14px; border: 1px solid #d8ccba; border-radius: 12px;
    font-size: 13px; font-weight: 600; color: #28241f; background: #f8f3e9;
    box-shadow: 0 3px 9px #49372108; text-decoration: none; white-space: nowrap;
    transition: transform .2s, background .2s, box-shadow .2s;
}
.collection-cart { position: relative; margin-left: auto; }
#filter-bar .collection-enquiry-link:hover, #filter-bar .collection-enquiry-link:focus-visible { background: #f0e5d3; transform: translateY(-2px); box-shadow: 0 6px 16px #49372112; }
.collection-enquiry-link:focus-visible { outline: 2px solid #8e8578; outline-offset: 3px; }
.collection-cart-icon { flex: none; }
.collection-enquiry-count { display: inline-grid; place-items: center; min-width: 23px; height: 23px; padding-inline: 5px; border-radius: 50%; background: #e8dfd0; color: #74644e; font-size: 11px; }
.has-items .collection-enquiry-count { background: #d95b2b; color: white; box-shadow: 0 2px 6px #d95b2b25; }
.collection-cart-notice { position: absolute; z-index: 85; right: 0; top: calc(100% + 9px); width: max-content; max-width: min(260px, calc(100vw - 32px)); padding: 10px 13px; border: 1px solid #d8ccba; border-radius: 9px; background: #fffdfa; color: #4e6545; font-size: 12px; line-height: 1.5; box-shadow: 0 8px 24px #49372115; }
.collection-cart-notice[hidden] { display: none; }
.collection-select-picker { position: relative; width: 190px; min-width: 0; }
#sort-select + .collection-select-trigger { min-width: 170px; }
.collection-select-picker select[hidden] { display: none !important; }
#filter-bar .collection-select-trigger {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid #ded7ce;
    border-radius: 9px; background: #fbfaf7; color: #28241f; font-size: 13px;
    line-height: 1.5; font-weight: 500; text-align: left; cursor: pointer;
}
.collection-select-value { min-width: 0; overflow-wrap: anywhere; }
.collection-select-trigger svg { flex: none; transition: transform .18s; }
.collection-select-trigger[aria-expanded="true"] svg { transform: rotate(180deg); }
#filter-bar .collection-select-trigger:hover, #filter-bar .collection-select-trigger[aria-expanded="true"] { border-color: #b6ac9e; background: #f5f1ea; }
.collection-select-trigger:focus-visible, .collection-select-option:focus-visible { outline: 2px solid #8e8578; outline-offset: 2px; }
.collection-select-panel { position: absolute; top: calc(100% + 8px); left: 0; z-index: 90; display: grid; gap: 3px; overflow-y: auto; overscroll-behavior: contain; padding: 7px; border: 1px solid #e2dacf; border-radius: 13px; background: #fffdfa; box-shadow: 0 16px 44px #2b231821; scrollbar-width: thin; scrollbar-color: #d5cdc0 transparent; }
.collection-select-panel[hidden] { display: none; }
.collection-select-option { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; width: 100%; padding: 10px 12px; border: 1px solid transparent; border-radius: 7px; color: #665f56; background: transparent; font-size: 13px; line-height: 1.5; text-align: left; cursor: pointer; }
.collection-select-option:hover { background: #f3eee6; color: #171717; }
.collection-select-option[aria-selected="true"] { background: #eee7dc; border-color: #e1d6c5; color: #211c16; font-weight: 600; }
.collection-select-check { flex: none; visibility: hidden; }
[aria-selected="true"] .collection-select-check { visibility: visible; }
#category-title { padding-top: 28px; }
#collection-results { padding-top: 20px; }
#products-grid { align-items: stretch; }
.product-preview { display: flex; flex-direction: column; width: 100%; height: 100%; padding: 0; border: 0; background: none; text-align: left; color: inherit; cursor: pointer; border-radius: inherit; }
.product-preview:focus-visible { outline: 3px solid #a58e72; outline-offset: 4px; }
.product-preview .product-card-caption { width: 100%; }
.product-preview .product-card-caption .product-card-name { display: block; margin: 0; font-size: 16px; color: #171717; overflow-wrap: anywhere; }
.product-preview .product-card-caption .product-card-size { display: block; margin-top: 5px; font-size: 13px; color: #7b7369; }
.product-preview-hint { display: none; position: static; align-items: center; gap: 5px; margin-top: 12px; padding: 9px 0 0; border-top: 1px solid #eee6d9; color: #77654d; font-size: 12px; line-height: 1.4; font-weight: 600; }
.product-preview-hint svg { flex: none; color: #ad6337; }
@media (max-width: 767px), (hover: none), (pointer: coarse) {
    .product-preview-hint { display: inline-flex; }
    .product-preview .product-card-caption { display: flex; flex-direction: column; }
    .product-preview .product-card-size { margin-bottom: auto; }
}
.collection-mobile-toolbar, .collection-filter-footer { display: none; }
#collection-filter-panel[hidden] { display: none; }
#products-grid .product-card-overlay {
    top: var(--floating-top, 22px) !important; left: var(--floating-left, calc(100% - 36px)) !important;
    right: auto !important; max-height: var(--floating-height, calc(100dvh - 32px));
    width: min(320px, calc(100vw - 24px)) !important; overflow-y: auto; overscroll-behavior: contain;
    opacity: 0 !important; visibility: hidden !important; pointer-events: none;
    transform: translateY(6px) !important; transition: opacity .18s, transform .18s, visibility .18s;
}
#products-grid .product-card.is-open .product-card-overlay {
    opacity: 1 !important; visibility: visible !important; pointer-events: auto; transform: none !important;
}
.product-details-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.product-details-close { display: grid; place-items: center; flex: none; width: 32px; height: 32px; border-radius: 50%; border: 1px solid #e5dfd6; color: #70685f; background: white; cursor: pointer; font-size: 20px; line-height: 1; }
.product-details-heading h5 { margin-top: 6px; margin-bottom: 14px; }
.product-details-panel .product-details-note { font-size: 13px; margin: 12px 0; }
.product-details-actions { display: grid; gap: 8px; margin-top: 14px; }
.product-details-panel .product-inquiry-link { justify-content: center; }
.product-detail-links { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 8px; }
.product-detail-links .product-detail-action {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    min-width: 0; min-height: 48px; padding: 10px 8px; border: 1px solid #ded3c3;
    border-radius: 10px; font-size: 15px; font-weight: 600; line-height: 1.35;
    text-align: center; text-decoration: none; color: #514536; background: #fffefa;
    cursor: pointer; transition: transform .18s, box-shadow .18s, background .18s, border-color .18s;
    -webkit-tap-highlight-color: transparent; touch-action: manipulation;
}
.product-detail-action svg { flex: none; transition: transform .2s; }
.product-detail-links .product-detail-add { background: #f2e9db; border-color: #d7c6ad; }
.product-detail-links .product-detail-action:focus-visible { outline: 2px solid #927350; outline-offset: 3px; }
@media (hover: hover) and (pointer: fine) {
    .product-detail-links .product-detail-action:hover { transform: translateY(-2px); background: #f5eedf; border-color: #bca585; box-shadow: 0 5px 12px #49372110; }
    .product-detail-view:hover svg { transform: translateX(3px); }
    .product-detail-add:hover .product-add-plus { transform: rotate(90deg) scale(1.12); }
}
.product-detail-links .product-detail-action:active { transform: translateY(1px) scale(.97); box-shadow: none; }
.product-detail-links .product-detail-add.is-added { background: #eaf1e5; border-color: #c4d3b9; color: #49623d; }
.product-add-check, .is-added .product-add-plus { display: none; }
.is-added .product-add-check { display: block; }
.product-details-panel [data-add-feedback] { display: block; grid-column: 1 / -1; font-size: 13px; line-height: 1.5; color: #4c6a4a; }
.product-details-panel [data-add-feedback]:empty { display: none; }
#collection-results > [data-commerce-status] { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); }
@media (max-width: 1099px) {
    #filter-bar .collection-tools { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px 24px; }
    #filter-bar .collection-tool { display: grid; grid-template-columns: 84px minmax(0, 1fr); }
    #filter-bar .collection-series { width: 100%; }
    #filter-bar .series-picker { width: auto; flex: 1; }
    #filter-bar .collection-tool select { max-width: none; min-width: 0; }
    .collection-cart { margin-left: 0; justify-self: end; }
    .collection-select-picker { width: 100%; }
}
@media (max-width: 767px) {
    #filter-bar { padding-block: 10px !important; }
    #filter-bar .collection-mobile-toolbar { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; padding-inline: 16px; }
    #collection-filter-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 10px 12px; border: 1px solid #ddd2c0; border-radius: 11px; color: #4f4231; background: #fffdf9; font-size: 14px; font-weight: 600; cursor: pointer; }
    #collection-filter-toggle[aria-expanded="true"] { border-color: #bca384; background: #f1e8d8; }
    #collection-filter-toggle:focus-visible, #collection-apply-filters:focus-visible { outline: 2px solid #8e8578; outline-offset: 2px; }
    #collection-active-count:not([hidden]) { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 2px 5px; border-radius: 50%; background: #6b5639; color: white; font-size: 11px; }
    #collection-filter-panel { padding-top: 16px; max-height: calc(100dvh - 170px); overflow-y: auto; overscroll-behavior: contain; }
    #collection-filter-panel > div:first-child { display: block; }
    #filter-bar .collection-categories { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; overflow: visible; white-space: normal; }
    #filter-bar .collection-categories .filter-btn { width: 100%; min-height: 44px; padding: 10px !important; border-radius: 9px; font-size: 11px; letter-spacing: 0; white-space: normal; line-height: 1.4; }
    #filter-bar .collection-tools { grid-template-columns: minmax(0, 1fr) auto; gap: 10px 14px; }
    #filter-bar .collection-tool { grid-column: 1 / -1; gap: 8px; min-width: 0; }
    #filter-bar .collection-series { grid-row: 1; grid-column: 1; min-width: 0; }
    #filter-bar .collection-series-label { display: block; }
    #filter-bar .collection-series { grid-column: 1 / -1; display: grid; grid-template-columns: 84px minmax(0,1fr); align-items: center; gap: 8px; }
    #filter-bar .series-picker { width: 100%; }
    #filter-bar .collection-tool select, #filter-bar .series-picker-trigger { max-width: none; min-width: 0; font-size: 12px; }
    #filter-bar .series-picker-trigger { gap: 6px; padding-inline: 10px; }
    .collection-cart { grid-row: 1; grid-column: 2; align-self: center; justify-self: end; }
    #filter-bar .collection-enquiry-link { gap: 6px; font-size: 12px; padding: 9px 10px; }
    #filter-bar .collection-select-trigger { min-height: 44px; }
    #sort-select + .collection-select-trigger { min-width: 0; }
    #filter-bar .series-picker-panel { width: min(340px, calc(100vw - 32px)); max-width: calc(100vw - 32px); grid-template-columns: 1fr; }
    #collection-filter-panel .series-picker-panel, #collection-filter-panel .collection-select-panel { position: static !important; width: 100% !important; max-width: none !important; max-height: 230px !important; margin-top: 8px; box-shadow: 0 5px 12px #49372108; }
    .collection-filter-footer { display: flex; padding: 16px; }
    #collection-apply-filters { display: inline-flex; justify-content: center; align-items: center; gap: 14px; width: 100%; min-height: 44px; border-radius: 9px; background: #2a251e; color: white; font-size: 14px; font-weight: 600; cursor: pointer; }
    #filter-bar .collection-mobile-toolbar > .collection-cart { margin-left: auto; grid-column: auto; }
    #category-title { padding-top: 24px; }
    #products-grid { gap: 14px !important; }
    .product-details-close { width: 44px; height: 44px; }
    .product-preview .product-card-caption .product-card-name { font-size: 14px; }
}
@media (max-width: 359px) {
    .product-detail-links { grid-template-columns: minmax(0, 1fr); }
    .collection-enquiry-link > span:first-of-type { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .collection-enquiry-link > span:last-of-type { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    #products-grid .product-card-overlay, #filter-bar .collection-enquiry-link, .collection-select-trigger svg, .product-detail-action, .product-detail-action svg { transition: none !important; }
    #filter-bar .collection-enquiry-link:hover, .product-detail-links .product-detail-action:hover, .product-detail-links .product-detail-action:active, .product-detail-action:hover svg { transform: none; }
}
