/* Local homepage only. Catalogue/product-detail card rules remain untouched. */
.avm-parts { --avm-part-title-size: 15px; --avm-part-description-size: 13px; --avm-part-identity-space: 18px; background: #f3f4f6; color: #080a1d; scroll-margin-top: 24px; }
.avm-parts, .avm-parts * { box-sizing: border-box; }
.avm-parts ::selection { background: #012fea; color: #fff; }
.avm-parts__inner { max-width: 1440px; margin: 0 auto; padding: 48px 20px; }
.avm-parts__heading { margin-bottom: 28px; }
.avm-parts h2 { margin: 0 0 16px; font: 400 28px/1.12 'Akzidenz-Grotesk Pro Bold Ext', Helvetica, Arial, sans-serif; letter-spacing: -.025em; text-wrap: balance; }
.avm-parts h2::before { content: ''; display: inline-block; width: 8px; height: 8px; margin: 0 12px 5px 0; background: #f5a123; }
.avm-parts__heading > p { max-width: 49ch; margin: 0; color: #505669; font: 16px/1.5 Helvetica, Arial, sans-serif; }
.avm-parts .avm-parts__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.avm-parts .avm-part { display: flex; flex-direction: column; min-width: 0; margin: 0; padding: 0; background: #fff; border: 1px solid #dde0e6; border-radius: 0; }
.avm-parts .avm-part { transition: border-color 180ms cubic-bezier(.16, 1, .3, 1), box-shadow 180ms cubic-bezier(.16, 1, .3, 1); }
.avm-parts .avm-part:has(a:focus-visible) { border-color: #012fea; box-shadow: 0 6px 18px rgba(8, 10, 29, .12); }
.avm-parts .avm-part:active { border-color: #b8c7f5; box-shadow: 0 2px 10px rgba(1, 47, 234, .1); transition-duration: 90ms; }
.avm-parts .avm-part:nth-child(n+5) { display: none; }
.avm-part__main { display: block; color: inherit; text-decoration: none; min-width: 0; }
.avm-part__image { position: relative; aspect-ratio: 1; background: #e9eaec; overflow: hidden; }
.avm-parts .avm-part__photo { display: block; width: 100%; height: 100%; max-width: none; object-fit: contain; }
/* Reserve the whole identity group, keeping the description close to its P/N. */
.avm-part__identity { min-height: calc(var(--avm-part-title-size) * 2.4 + var(--avm-part-description-size) * 1.3 + var(--avm-part-identity-space)); padding: 10px 10px 4px; }
.avm-parts .avm-part h3 { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; max-height: 2.4em; margin: 0 0 4px; color: #080a1d; font: 400 var(--avm-part-title-size)/1.2 'Akzidenz-Grotesk Pro Bold Ext', Helvetica, Arial, sans-serif; letter-spacing: -.02em; white-space: normal; overflow: hidden; overflow-wrap: anywhere; text-overflow: ellipsis; }
.avm-part__identity > p { height: 1.3em; margin: 0; color: #505669; font: var(--avm-part-description-size)/1.3 Helvetica, Arial, sans-serif; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.avm-part__details { margin-top: auto; padding: 0 10px 7px; }
.avm-part__stock { position: absolute; top: 8px; right: 8px; padding: 5px 7px; color: #244d3c; background: #e1ede5; font: 600 11px/1.2 Helvetica, Arial, sans-serif; white-space: nowrap; }
.avm-part__price { margin: 0; color: #9c5000; font: 14px/1.3 Helvetica, Arial, sans-serif; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.avm-part__price--amount { color: #1f4f3a; font-family: 'Akzidenz-Grotesk Pro Bold Ext', Helvetica, Arial, sans-serif; font-weight: 400; }
.avm-part__price p { margin: 0; }
.avm-part__actions { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 8px 8px; }
.avm-parts .avm-part__view, .avm-parts .avm-part__cart { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 44px; margin: 0; padding: 10px 8px; border: 0; border-radius: 0; color: #fff; background: #080a1d; font: 14px/1.3 Helvetica, Arial, sans-serif; text-decoration: none; cursor: pointer; }
.avm-parts .avm-part__view { flex: 1 1 0; min-width: max-content; background: #18243d; }
.avm-part__view svg { display: none; flex-shrink: 0; }
.avm-parts .avm-part__cart { flex: 0 0 44px; width: 44px; height: 44px; color: #080a1d; background: #e9ebf0; }
.avm-parts .avm-part__cart svg { flex-shrink: 0; }
.avm-parts .avm-part__cart.loading { opacity: .55; cursor: progress; }
.avm-parts .avm-part__cart.added { background: #dbeae2; color: #244d3c; }
.avm-parts .added_to_cart { flex-basis: 100%; display: block; min-height: 44px; padding: 12px 0 0; color: #012fea; font: 14px/1.4 Helvetica, Arial, sans-serif; text-decoration: underline; text-underline-offset: 4px; }
.avm-parts__bottom { display: flex; justify-content: center; margin-top: 28px; }
.avm-parts .avm-parts__catalog { display: inline-flex; align-items: center; justify-content: space-between; gap: 36px; min-height: 52px; min-width: 240px; padding: 15px 22px; color: #fff; background: #012fea; font: 16px/1.4 Helvetica, Arial, sans-serif; text-decoration: none; }
.avm-parts__empty { max-width: 60ch; font: 18px/1.6 Helvetica, Arial, sans-serif; }
.avm-parts a:focus-visible { outline: 3px solid #012fea !important; outline-offset: 4px; }
.avm-parts .avm-parts__catalog:focus-visible { outline-color: #080a1d !important; }
@media (hover: hover) and (pointer: fine) {
    .avm-parts .avm-part:hover { border-color: #c1cdf8; box-shadow: 0 4px 18px rgba(1, 47, 234, .11); }
    .avm-part__main:hover h3 { color: #012fea; }
    .avm-parts .avm-part__view:hover { background: #012fea; }
    .avm-parts .avm-part__cart:hover { background: #dce2fc; color: #012fea; }
}
@media (prefers-reduced-motion: reduce) {
    .avm-parts .avm-part { transition: none; }
}
@media (min-width: 601px) {
    .avm-parts { --avm-part-title-size: 18px; --avm-part-description-size: 14px; --avm-part-identity-space: 26px; }
    .avm-parts__inner { padding: 56px 32px; }
    .avm-parts h2 { font-size: 38px; }
    .avm-parts__heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; }
    .avm-parts h2 { flex: 1 1 50%; margin-bottom: 0; }
    .avm-parts__heading > p { flex: 1 1 42%; max-width: 40ch; }
    .avm-parts .avm-parts__grid { gap: 16px; }
    .avm-part__identity { padding: 14px 14px 8px; }
    .avm-part__details { padding: 0 14px 10px; }
    .avm-part__stock { font-size: 12px; }
    .avm-part__price { font-size: 16px; }
    .avm-part__actions { margin: 0 12px 12px; gap: 8px; }
    .avm-parts .avm-part__view { font-size: 16px; }
    .avm-part__view svg { display: block; }
}
@media (min-width: 768px) and (max-width: 1100px) {
    .avm-parts .avm-parts__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
    .avm-parts .avm-part:nth-child(n+5) { display: flex; }
    .avm-part__view svg { display: none; }
    .avm-parts .avm-part__view { font-size: 14px; }
}
@media (min-width: 1101px) {
    .avm-parts { --avm-part-title-size: 21px; }
    .avm-parts__inner { padding: 64px clamp(24px, 5.5vw, 88px); }
    .avm-parts .avm-parts__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
    .avm-parts h2 { font-size: 42px; }
    .avm-parts__heading { margin-bottom: 36px; }
}
@media (max-width: 359px) {
    .avm-parts { --avm-part-title-size: 20px; }
    .avm-parts .avm-parts__grid { grid-template-columns: minmax(0, 1fr); }
    .avm-part__view svg { display: block; }
}
