/* Homepage cards: only the editor's selection. */
/* Match the benefits row’s bottom padding on the other side of the divider. */
.home-products-section { padding-top: 1.875rem; border-top: 1px solid #d9deec; }
.home-products-section + .body-slider { margin-top: 3rem; }
.home-products-title { color: #020b40; font-size: 1.6rem; margin-bottom: 1.5rem; text-transform: uppercase; }
.home-product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; margin: 0; }
.home-product-grid.products > .product-item { flex: none; max-width: none; width: auto; padding: 0; margin: 0; min-width: 0; }
.home-product-grid .product-item-inner { display: flex; flex-direction: column; align-items: center; }
.home-product-grid .product-description { flex: 1 0 auto; padding: .75rem; }
.home-product-grid .product-item-title { font-size: 1.1rem; line-height: 1.4; }
.home-product-grid .product-item-specs { display: none; }
.home-product-grid .product-item .price { font-size: 1.8rem; }
.home-product-grid .product-item-inner > .price, .home-product-grid .product-item-inner > form.cart { flex: 0 0 auto; width: 100%; align-self: center; }
.home-product-grid .product-item .btn { white-space: normal; min-width: 0; width: calc(100% - 1rem); max-width: 95%; }
.home-product-grid .sku { overflow-wrap: anywhere; }

/* Existing contact information, separated into editable store cards. */
.home-stores-section { margin-top: 3rem; padding: 2rem 0 1rem; border-top: 1px solid #d9deec; }
.home-stores-heading { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.5rem; }
.home-stores-heading > img { width: 48px; height: 48px; object-fit: contain; }
.home-stores-heading h2 { margin: 0; color: #020b40; font-size: 1.6rem; line-height: 1.3; }
.home-store-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.home-store-card { position: relative; padding: 1.5rem 1.2rem; background: #f5f6fa; border: 1px solid #e1e4ee; border-radius: 0; color: #202846; }
.home-store-marker { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; margin-bottom: .8rem; border-radius: 50%; background: #f2c029; color: #020b40; font-size: 1.5rem; }
.home-store-card h3 { margin: 0 0 .3rem; font-size: 1.25rem; color: #020b40; }
.home-store-address { font-weight: 700; margin-bottom: .9rem; line-height: 1.4; }
.home-store-details { font-size: .95rem; line-height: 1.8; overflow-wrap: anywhere; }
.home-store-details p { margin: 0; }
.home-store-details a { color: #020b40; text-decoration: underline; text-underline-offset: 3px; }
.home-store-map { display: inline-block; margin-top: 1rem; font-weight: 700; color: #020b40; }
.home-stores-footer { padding-top: 1.5rem; text-align: center; }
.home-stores-footer p { margin-bottom: 1rem; }
.home-stores-footer .btn { margin-top: .5rem; }

/* Compact filter toolbar. Range sliders expand over the grid rather than pushing it down. */
.ak-category-filters { position: relative; margin: 1rem 0; padding: .7rem 0; border-top: 1px solid #e1e4ee; border-bottom: 1px solid #e1e4ee; }
.ak-filter-fields { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.ak-filter { position: relative; flex: 1 1 120px; min-width: 0; max-width: 170px; margin: 0; }
.ak-range-filter summary, .ak-filter-select select { box-sizing: border-box; display: flex; align-items: center; width: 100%; min-height: 40px; margin: 0; padding: .55rem .7rem; border: 1px solid #d1d6e3; border-radius: 0; background: #fff; color: #020b40; font-size: .88rem; font-weight: 500; cursor: pointer; }
.ak-range-filter summary { position: relative; height: 44px; min-height: 44px; padding: .4rem 2.2rem .4rem .7rem; line-height: 1.2; list-style: none; flex-direction: column; align-items: flex-start; justify-content: center; gap: .2rem; }
.ak-filter-select select { appearance: none; -webkit-appearance: none; padding-right: 2.2rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='m1 1 4 4 4-4' fill='none' stroke='%23020b40' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; background-size: 10px 6px; }
.ak-range-filter summary::-webkit-details-marker { display: none; }
.ak-range-filter summary::after { content: ''; position: absolute; right: 1rem; top: 50%; width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-70%) rotate(45deg); }
.ak-range-filter[open] summary, .ak-filter-active summary, .ak-filter-active select { border-color: #d4a91f; background-color: #fffcf0; }
.ak-filter-selection { font-size: .72rem; color: #4c536c; }
.ak-filter-selection:empty { display: none; }
.ak-range-panel { position: absolute; top: calc(100% + 7px); left: 0; width: 280px; max-width: calc(100vw - 36px); z-index: 30; padding: 1rem; border: 1px solid #d9deec; border-radius: 0; background: #fff; box-shadow: 0 8px 25px #020b4026; }
.ak-range-panel fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.ak-range-panel legend { float: none; width: auto; margin: 0 0 .75rem; padding: 0; font-size: .95rem; font-weight: 700; color: #020b40; }
.ak-dual-range { display: none; position: relative; height: 36px; margin: 0 8px .6rem; --ak-range-start: 0%; --ak-range-end: 100%; }
.ak-range-ready .ak-dual-range { display: block; }
.ak-range-track { position: absolute; top: 15px; left: 0; right: 0; height: 5px; border-radius: 4px; background: linear-gradient(to right, #e1e4ee 0%, #e1e4ee var(--ak-range-start), #e2b324 var(--ak-range-start), #e2b324 var(--ak-range-end), #e1e4ee var(--ak-range-end), #e1e4ee 100%); }
.ak-dual-range input[type=range] { appearance: none; -webkit-appearance: none; position: absolute; inset: 0; width: 100%; height: 36px; min-height: 0; margin: 0; padding: 0; border: 0; outline: 0; background: transparent; pointer-events: none; }
.ak-dual-range input[type=range]::-webkit-slider-thumb { appearance: none; -webkit-appearance: none; width: 22px; height: 22px; border: 2px solid #020b40; border-radius: 50%; background: #fff; pointer-events: auto; cursor: ew-resize; }
.ak-dual-range input[type=range]::-moz-range-thumb { width: 18px; height: 18px; border: 2px solid #020b40; border-radius: 50%; background: #fff; pointer-events: auto; cursor: ew-resize; }
.ak-dual-range input[type=range]:focus-visible::-webkit-slider-thumb { outline: 3px solid #f2c029; outline-offset: 2px; }
.ak-dual-range input[type=range]:focus-visible::-moz-range-thumb { outline: 3px solid #f2c029; outline-offset: 2px; }
.ak-dual-range input[data-bound=max] { z-index: 3; }
.ak-range-numbers { display: flex; gap: .6rem; }
.ak-range-numbers label { width: 50%; margin: 0; color: #4c536c; font-size: .8rem; }
.ak-range-numbers input { display: block; width: 100%; min-height: 38px; margin-top: .25rem; padding: .4rem .5rem; border: 1px solid #cbd1df; border-radius: 0; color: #020b40; font-size: 1rem; }
.ak-filter-submit, .ak-range-apply { border: 0; border-radius: 0; padding: .6rem .9rem; background: #020b40; color: #fff; font-size: .85rem; cursor: pointer; }
.ak-range-apply { margin-top: .8rem; width: 100%; }
.ak-filter-reset { flex: 0 0 auto; color: #4c536c; font-size: .82rem; text-decoration: underline; padding: .5rem .2rem; }
.ak-filter :focus-visible, .ak-filter-submit:focus-visible, .ak-range-apply:focus-visible { outline: 2px solid #e2b324; outline-offset: 2px; }
.ak-result-count { font-size: .9rem; color: #4c536c; }
.ak-result-count p { margin-bottom: .7rem; }
.ak-filter-status { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.ak-products-region { position: relative; min-height: 5rem; }
.ak-products-loader { display: none; position: absolute; top: 1rem; left: 50%; transform: translateX(-50%); z-index: 10; pointer-events: none; }
.ak-loader-spinner { display: inline-block; flex: 0 0 auto; width: 44px; height: 44px; border: 5px solid #d9deec; border-top-color: #020b40; border-radius: 50%; animation: ak-loader-spin .75s linear infinite; }
#ak-category-results[aria-busy=true] .ak-products-loader { display: flex; }
@keyframes ak-loader-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ak-loader-spinner { animation: none; } }
#ak-category-results[aria-busy=true] .products { opacity: .45; pointer-events: none; }
#ak-category-results[aria-busy=true] .ak-category-filters { cursor: progress; }
#ak-category-results:focus { outline: none; }
#home-products-title, #home-stores-title, #ak-category-results { scroll-margin-top: 110px; }
@media (max-width: 1199px) {
    .home-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .home-store-grid { grid-template-columns: 1fr; }
}
@media (max-width: 575px) {
    .home-product-grid { gap: .65rem; }
    .home-product-grid .product-item-title { font-size: .95rem; }
    .home-product-grid .product-item .product-item-image { height: 9rem; }
    .home-product-grid .product-item .price { font-size: 1.4rem; }
    .home-product-grid .product-item .btn { padding: .5rem .75rem; font-size: 1rem; }
    .home-stores-heading h2 { font-size: 1.3rem; }
    .ak-filter { flex-basis: calc(50% - .3rem); max-width: none; }
    .ak-filter:nth-child(even) .ak-range-panel { left: auto; right: 0; }
}
@media (max-width: 359px) { .home-product-grid { grid-template-columns: 1fr; } }
