/* ==========================================================================
   Products catalog integration — every selector scoped to .abest-products.
   Breakpoint tokens document native media-query literals (var() is not valid there).
   ========================================================================== */
.abest-products {
    --ap-ink: #233b30;
    --ap-muted: #59685f;
    --ap-brand: #234b3a;
    --ap-sage: #edf2e9;
    --ap-cream: #f7f7f2;
    --ap-line: #dde2da;
    --ap-radius: 8px;
    --ap-content-width: 1380px;
    --ap-breakpoint-mobile: 44rem;
    --ap-breakpoint-tablet: 64rem;
    --ap-breakpoint-wide: 88rem;
    background: #fff;
    color: var(--ap-ink);
    font-size: 15px;
    line-height: 1.6;
    min-width: 0;
}
.abest-products *, .abest-products *::before, .abest-products *::after { box-sizing: border-box; }
.abest-products [hidden] { display: none !important; }
.abest-products :where(h1,h2,h3,p,figure) { margin: 0; }
.abest-products :where(a) { color: inherit; text-decoration: none; }
.abest-products :where(button,input,select) { font: inherit; }
.abest-products :where(button,select,summary) { cursor: pointer; }
.abest-products :where(a,button,input,select,summary):focus-visible { outline: 3px solid #927337; outline-offset: 4px; }
.abest-products .ap-container { width: min(var(--ap-content-width), calc(100% - 80px)); margin-inline: auto; padding-inline: 0; }
.abest-products .ap-sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.abest-products .ap-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .14em; margin-bottom: 14px; }
.abest-products h1 { font-size: clamp(36px,4vw,62px); line-height: 1.1; letter-spacing: -.05em; font-weight: 500; }
.abest-products h1 span { color: #697860; }
.abest-products h2 { font-size: clamp(28px,2.6vw,39px); line-height: 1.2; letter-spacing: -.035em; font-weight: 500; }
.abest-products .ap-hero { background: var(--ap-cream); border-bottom: 1px solid var(--ap-line); }
.abest-products .ap-breadcrumb { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 24px; color: var(--ap-muted); font-size: 12px; }
.abest-products .ap-hero-layout { display: grid; grid-template-columns: 1.12fr 1fr; gap: 44px; align-items: center; padding-block: 42px 36px; }
.abest-products .ap-hero-layout > * { min-width: 0; }
.abest-products .ap-intro { font-size: 15px; line-height: 1.8; color: var(--ap-muted); max-width: 490px; margin-block: 22px; }
.abest-products .ap-text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 44px; font-weight: 600; font-size: 13px; border-bottom: 1px solid #a0ad9b; }
.abest-products .ap-text-link:hover { color: #426834; }
.abest-products .ap-hero-art { overflow: hidden; background: #fff; border-radius: 48% 48% 8px 8px; }
.abest-products .ap-hero-art img { display: block; width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; }
.abest-products .ap-hero-art figcaption { text-align: center; color: var(--ap-muted); font-size: 11px; padding: 10px; }
.abest-products .ap-quick-filters { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; padding-block: 12px 30px; }
.abest-products .ap-quick-filters > span { margin-right: 10px; font-size: 12px; }
.abest-products .ap-quick-filters button { min-height: 44px; max-width: 100%; padding: 8px 18px; border: 1px solid #cdd5c7; border-radius: 25px; background: transparent; color: var(--ap-ink); font-size: 12px; overflow-wrap: anywhere; }
.abest-products .ap-quick-filters button[aria-pressed="true"], .abest-products .ap-quick-filters button:hover { background: var(--ap-brand); color: #fff; border-color: var(--ap-brand); }
.abest-products .ap-assurance { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; padding-block: 24px; border-bottom: 1px solid var(--ap-line); }
.abest-products .ap-assurance > span { display: flex; align-items: center; gap: 12px; font-size: 12px; }
.abest-products .ap-assurance b { font-size: 22px; font-weight: 400; }
.abest-products .ap-catalog { padding-block: 60px 70px; scroll-margin-top: 170px; }
.abest-products .ap-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 32px; }
.abest-products .ap-section-heading > p { font-size: 13px; color: var(--ap-muted); }
.abest-products .ap-catalog-layout { display: grid; grid-template-columns: 220px minmax(0,1fr); gap: 36px; align-items: start; }
.abest-products .ap-sidebar { position: sticky; top: 170px; max-height: calc(100vh - 190px); overflow-y: auto; scrollbar-width: thin; }
.abest-products .ap-filter-drawer > summary { display: none; }
.abest-products .ap-filter-heading { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding-bottom: 15px; border-bottom: 1px solid var(--ap-line); font-size: 12px; }
.abest-products .ap-clear { min-height: 44px; padding: 8px 0 8px 8px; border: 0; background: none; color: var(--ap-muted); font-size: 12px; text-decoration: underline; white-space: nowrap; }
.abest-products #ap-filters fieldset { min-width: 0; margin: 0; padding: 18px 0; border: 0; border-bottom: 1px solid var(--ap-line); }
.abest-products #ap-filters legend { float: left; width: 100%; font-size: 13px; font-weight: 600; margin-bottom: 10px; }
.abest-products #ap-filters label { display: flex; align-items: center; clear: both; gap: 9px; min-height: 44px; font-size: 12px; cursor: pointer; overflow-wrap: anywhere; }
.abest-products #ap-filters input { flex: 0 0 16px; width: 16px; height: 16px; margin: 0; accent-color: var(--ap-brand); }
.abest-products .ap-facet-count { margin-left: auto; color: var(--ap-muted); }
.abest-products .ap-expert { background: var(--ap-sage); padding: 24px; margin-top: 24px; border-radius: var(--ap-radius); }
.abest-products .ap-expert .ap-eyebrow { font-size: 10px; }
.abest-products .ap-expert h3 { font-size: 24px; line-height: 1.2; font-weight: 500; }
.abest-products .ap-expert > p:not(.ap-eyebrow) { font-size: 12px; color: var(--ap-muted); margin-block: 14px; }
.abest-products .ap-results { min-width: 0; }
.abest-products .ap-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.abest-products #ap-result-count { font-size: 12px; }
.abest-products .ap-toolbar-controls { display: flex; gap: 10px; min-width: 0; max-width: 100%; }
.abest-products .ap-toolbar-controls input, .abest-products .ap-toolbar-controls select { min-height: 44px; border: 1px solid var(--ap-line); border-radius: 4px; padding: 8px 12px; background: white; color: var(--ap-ink); font-size: 12px; max-width: 100%; }
.abest-products .ap-search-label { min-width: 0; }
.abest-products .ap-toolbar-controls input { width: 190px; }
.abest-products .ap-active-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.abest-products .ap-active-filters button { max-width: 100%; overflow-wrap: anywhere; min-height: 44px; padding: 7px 12px; margin-bottom: 12px; background: var(--ap-sage); color: var(--ap-ink); border: 1px solid var(--ap-line); border-radius: 4px; font-size: 12px; }
.abest-products .ap-note { font-size: 12px; color: var(--ap-muted); margin-bottom: 18px; }
.abest-products .ap-product-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px 18px; }
.abest-products .ap-card { display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--ap-line); border-radius: var(--ap-radius); overflow: hidden; background: #fff; transition: transform .22s, box-shadow .22s, border-color .22s; }
.abest-products .ap-card:hover, .abest-products .ap-card:focus-within { transform: translateY(-4px); box-shadow: 0 14px 30px rgb(29 57 40 / 9%); border-color: #aebfa6; }
.abest-products .ap-card-visual { position: relative; aspect-ratio: 1; overflow: hidden; background: white; }
.abest-products .ap-product-image { display: block; width: 100%; height: 100%; object-fit: contain; padding: 12px; }
.abest-products .ap-product-sprite { width: 100%; height: 100%; background-size: 300% 200%; background-repeat: no-repeat; }
.abest-products .ap-image-placeholder { display: grid; place-items: center; height: 100%; padding: 30px; background: var(--ap-cream); color: var(--ap-muted); font-size: 13px; text-align: center; }
.abest-products .ap-button { display: inline-flex; justify-content: center; align-items: center; gap: 18px; min-height: 46px; padding: 12px 20px; font-size: 13px; font-weight: 600; line-height: 1.4; border: 1px solid transparent; border-radius: 5px; text-align: center; }
.abest-products .ap-button-primary { background: var(--ap-brand); color: #fff; }
.abest-products .ap-button-primary:hover { background: #163526; }
.abest-products .ap-button-light { background: #fff; color: var(--ap-brand); }
.abest-products .ap-button-light:hover { background: var(--ap-sage); }
.abest-products .ap-card-overlay { position: absolute; bottom: 10px; left: 10px; right: 10px; opacity: 0; transform: translateY(5px); box-shadow: 0 2px 12px #233b301f; transition: opacity .2s, transform .2s; }
.abest-products .ap-card:hover .ap-card-overlay, .abest-products .ap-card:focus-within .ap-card-overlay { opacity: 1; transform: none; }
.abest-products .ap-card-info { display: flex; flex: 1; flex-direction: column; border-top: 1px solid #f1f3ee; padding: 17px 16px 0; min-width: 0; overflow-wrap: anywhere; }
.abest-products .ap-card-category { font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: var(--ap-muted); margin-bottom: 6px; }
.abest-products .ap-card h3 { font-size: 17px; line-height: 1.35; font-weight: 600; }
.abest-products .ap-card h3 a:hover { text-decoration: underline; text-underline-offset: 4px; }
.abest-products .ap-card-description { font-size: 12px; line-height: 1.7; color: var(--ap-muted); margin-top: 9px; margin-bottom: auto; }
.abest-products .ap-specs { display: flex; flex-wrap: wrap; gap: 5px; margin-block: 15px; }
.abest-products .ap-specs span { background: #f4f5f1; border-radius: 3px; padding: 4px 7px; font-size: 10px; }
.abest-products .ap-card-quote { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 48px; font-size: 12px; font-weight: 600; border-top: 1px solid var(--ap-line); }
.abest-products .ap-card-quote:hover { color: #426834; }
.abest-products .ap-collection-footer { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; border-top: 1px solid var(--ap-line); padding-top: 20px; margin-top: 30px; color: var(--ap-muted); font-size: 12px; }
.abest-products .ap-empty { text-align: center; border: 1px dashed var(--ap-line); padding: 60px 20px; border-radius: var(--ap-radius); }
.abest-products .ap-empty p { margin-block: 12px 22px; color: var(--ap-muted); }
.abest-products .ap-process { background: var(--ap-cream); padding-block: 60px; border-block: 1px solid var(--ap-line); }
.abest-products .ap-process-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 32px; list-style: none; padding: 0; margin: 0; }
.abest-products .ap-step { display: flex; justify-content: space-between; border-top: 1px solid #b9c4b1; padding-block: 12px 20px; color: #617153; font-size: 13px; }
.abest-products .ap-process-grid h3 { font-size: 18px; font-weight: 500; margin-bottom: 10px; }
.abest-products .ap-process-grid p { font-size: 13px; line-height: 1.85; color: var(--ap-muted); }
.abest-products .ap-editor-content { padding-block: 35px; }
.abest-products .ap-rfq { display: flex; align-items: center; justify-content: space-between; gap: 40px; margin-block: 60px; padding: 50px; border-radius: var(--ap-radius); background: var(--ap-brand); color: #fff; }
.abest-products .ap-rfq > div { min-width: 0; }
.abest-products .ap-rfq .ap-eyebrow { color: #c4d4af; }
.abest-products .ap-rfq h2 { max-width: 570px; font-size: clamp(32px,3.2vw,46px); }
.abest-products .ap-rfq p:not(.ap-eyebrow) { color: #d0dacd; font-size: 13px; margin-top: 16px; }
.abest-products .ap-rfq-action { display: flex; flex-direction: column; gap: 12px; }
.abest-products .ap-rfq-action > span { font-size: 11px; color: #d0dacd; text-align: center; }
@media (min-width: 88rem) {
    .abest-products .ap-product-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (max-width: 64rem) {
    .abest-products .ap-container { width: calc(100% - 40px); }
    .abest-products .ap-catalog-layout { grid-template-columns: 1fr; }
    .abest-products .ap-sidebar { position: static; max-height: none; overflow: visible; }
    .abest-products .ap-filter-drawer { border: 1px solid var(--ap-line); border-radius: 5px; }
    .abest-products .ap-filter-drawer > summary { display: flex; justify-content: space-between; padding: 12px 16px; font-weight: 600; list-style: none; }
    .abest-products .ap-filter-drawer > summary::-webkit-details-marker { display: none; }
    .abest-products .ap-filter-drawer[open] > summary span { transform: rotate(45deg); }
    .abest-products #ap-filters { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; padding: 0 16px 16px; }
    .abest-products .ap-filter-heading { grid-column: 1/-1; padding-bottom: 0; }
    .abest-products #ap-filters fieldset { border: 0; padding: 0; }
    .abest-products .ap-expert { display: none; }
    .abest-products .ap-assurance { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
    .abest-products .ap-process-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
}
@media (max-width: 50rem) {
    .abest-products .ap-product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .abest-products .ap-hero-layout { gap: 24px; }
    .abest-products .ap-hero-art { border-radius: 8px; }
}
@media (max-width: 44rem) {
    .abest-products .ap-container { width: calc(100% - 32px); }
    .abest-products .ap-hero-layout { grid-template-columns: 1fr; padding-top: 30px; }
    .abest-products .ap-hero-art { display: none; }
    .abest-products .ap-quick-filters > span { width: 100%; }
    .abest-products .ap-quick-filters button { padding-inline: 13px; }
    .abest-products .ap-section-heading { flex-direction: column; align-items: start; gap: 12px; }
    .abest-products .ap-catalog { padding-block: 40px; }
    .abest-products #ap-filters { grid-template-columns: 1fr; }
    .abest-products #ap-filters fieldset { padding-block: 8px; border-bottom: 1px solid var(--ap-line); }
    .abest-products .ap-toolbar { flex-direction: column; align-items: stretch; }
    .abest-products .ap-search-label { flex: 1; }
    .abest-products .ap-toolbar-controls input { width: 100%; }
    .abest-products .ap-card-info { padding-inline: 12px; }
    .abest-products .ap-card h3 { font-size: 15px; }
    .abest-products .ap-product-grid { gap: 14px; }
    .abest-products .ap-card-description { font-size: 11px; }
    .abest-products .ap-process { padding-block: 40px; }
    .abest-products .ap-rfq { flex-direction: column; align-items: start; padding: 28px 24px; margin-block: 35px; }
    .abest-products .ap-rfq-action { width: 100%; }
}
@media (max-width: 23rem) {
    .abest-products .ap-product-grid, .abest-products .ap-process-grid { grid-template-columns: 1fr; }
}
@media (hover: none), (pointer: coarse) {
    .abest-products .ap-card-visual { aspect-ratio: auto; }
    .abest-products .ap-product-image, .abest-products .ap-product-sprite, .abest-products .ap-image-placeholder { height: auto; aspect-ratio: 1; }
    .abest-products .ap-card-overlay { position: static; display: flex; opacity: 1; transform: none; margin: 0 10px 10px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .abest-products *, .abest-products *::before, .abest-products *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}


/* Bounded server catalog: native page links remain usable without JavaScript. */
.abest-products .ap-pagination { margin: 28px 0; }
.abest-products .ap-pagination ul { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; list-style: none; }
.abest-products .ap-pagination a, .abest-products .ap-pagination span { display: grid; place-items: center; min-width: 44px; min-height: 44px; padding: 8px 14px; border: 1px solid #dfe5de; border-radius: 6px; }
.abest-products .ap-pagination .current { background: #245b45; color: #fff; }
.abest-products[aria-busy="true"] #ap-product-grid { opacity: .6; }
