.header-product-search { grid-column: 1 / -1; display: flex; gap: 0; width: min(100%, 680px); margin: 0 auto; }
.header-product-search input { width: 100%; padding: 12px 14px; border: 1px solid var(--line); border-radius: 4px 0 0 4px; min-width: 0; }
.header-product-search button { width: 48px; flex: 0 0 48px; border: 0; border-radius: 0 4px 4px 0; background: var(--charcoal); color: white; cursor: pointer; }
.search-icon { display: inline-block; width: 15px; height: 15px; border: 2px solid currentColor; border-radius: 50%; position: relative; }
.search-icon::after { content: ''; position: absolute; width: 7px; height: 2px; background: currentColor; transform: rotate(45deg); right: -6px; bottom: -3px; }
.predictive-search { position: relative; min-width: 0; flex: 1; text-align: left; }
.predictive-search input { width: 100%; min-width: 0; margin: 0; }
.predictive-search input:focus { outline: 2px solid var(--green); outline-offset: 2px; }
.search-dropdown { position: absolute; top: calc(100% + 6px); left: 0; width: 100%; min-width: 0; background: #fff; color: #252525; border: 1px solid #d4d4d4; border-radius: 4px; box-shadow: 0 10px 30px #0002; z-index: 40; font: 14px/1.4 Arial, sans-serif; max-height: min(480px, 60vh); overflow-y: auto; }
.search-dropdown[hidden] { display: none; }
.search-option { display: flex; align-items: center; gap: 12px; padding: 12px; border-bottom: 1px solid #eee; }
.search-option:hover, .search-option[aria-selected="true"] { background: #edf4f0; }
.search-option img { width: 52px; height: 60px; object-fit: contain; flex: 0 0 52px; background: white; }
.search-option-copy { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.search-option strong, .search-option small { display: block; }
.search-option small { color: #666; margin-top: 3px; }
.search-option-price { display: block; margin-top: 5px; color: #27684f; font-weight: bold; }
.search-message, .search-all { display: block; padding: 12px; }
.search-all { background: #fafafa; font-weight: bold; text-decoration: underline; }
.search-announcement { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.quick-finder { position: relative; z-index: 2; }
.filter-bar > .predictive-search { flex: 1 1 240px; }
@media (max-width: 700px) {
  .header-product-search { width: 100%; }
  .search-option { padding: 10px; }
  .quick-finder .predictive-search { width: 100%; }
}
