/* KLF Product Grid: cards, table, tabs, quick view. Follows the KLF theme variables. */
.klf-wrap{width:100%;font-family:var(--klf-font,Montserrat,Arial,sans-serif);color:var(--klf-fg,#1a2140)}
.klf-filters{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 22px;justify-content:center}
.klf-filters[hidden]{display:none}
.klf-filter{appearance:none;font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;border:1px solid var(--klf-line,#E2E5EE);padding:10px 16px;background:var(--klf-card,#fff);color:var(--klf-fg,#1a2140);cursor:pointer;transition:.2s;border-radius:0;font-family:inherit;line-height:1.3}
.klf-filter:hover{border-color:var(--klf-red,#D7202A);color:var(--klf-red,#D7202A)}
.klf-filter.is-active{background:var(--klf-navy,#223464);border-color:var(--klf-navy,#223464);color:#fff}
.klf-subfilters{margin-top:-8px}
.klf-filter--sub{padding:8px 14px;font-size:10.5px;background:var(--klf-mist,#F4F5F9)}
.klf-filter--sub.is-active{background:var(--klf-red,#D7202A);border-color:var(--klf-red,#D7202A)}

.klf-grid{display:grid;grid-template-columns:repeat(var(--klf-cols,3),minmax(0,1fr));gap:24px}
.klf-card[hidden]{display:none!important}
.klf-grid .klf-card{background:var(--klf-card,#fff);border:1px solid var(--klf-line,#E2E5EE);display:flex;flex-direction:column;transition:box-shadow .3s,border-color .3s}
.klf-grid .klf-card:hover{box-shadow:0 20px 44px rgba(20,30,70,.13);border-color:var(--klf-gold,#B99A5B)}
.klf-card__media{background:#fff;aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;padding:14px;border-bottom:1px solid var(--klf-line,#E2E5EE);overflow:hidden}
.klf-card__media img{max-height:100%;max-width:100%;width:auto;height:auto;object-fit:contain;transition:transform .5s;display:block}
.klf-card:hover .klf-card__media img{transform:scale(1.05)}
.klf-card__noimg{font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--klf-mute,#5c6482);padding:12px;text-align:center}
.klf-card__body{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1}
.klf-card__cat{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--klf-mute,#5c6482);margin-bottom:4px}
.klf-card__code{font:700 11px var(--klf-font,Montserrat,Arial,sans-serif);letter-spacing:.16em;color:var(--klf-red,#D7202A);background:none;padding:0}
.klf-card__title{margin:6px 0 14px;font-size:15px;line-height:1.3;color:var(--klf-fg,#1a2140);font-weight:700;letter-spacing:-.01em}
.klf-specs{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:12.5px;margin:0}
.klf-spec{display:contents}
.klf-spec dt{color:var(--klf-mute,#5c6482);text-transform:uppercase;font-size:10px;letter-spacing:.12em;padding-top:2px;font-weight:600;margin:0}
.klf-spec dd{font-weight:600;margin:0;color:var(--klf-fg,#1a2140)}
.klf-card__actions{display:flex;gap:8px;margin-top:14px}
.klf-card__actions .klf-btn{flex:1;padding:11px 12px;font-size:10.5px;letter-spacing:.12em}
.klf-btn--primary{background:var(--klf-navy,#223464);border-color:var(--klf-navy,#223464);color:#fff}
.klf-btn--primary:hover{background:var(--klf-red,#D7202A);border-color:var(--klf-red,#D7202A)}

/* add to quote button */
.klf-aq{margin-top:16px;width:100%;padding:11px;border:1px solid var(--klf-line,#E2E5EE);background:transparent;color:var(--klf-fg,#1a2140);font:700 10.5px var(--klf-font,Montserrat,Arial,sans-serif);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:.2s;border-radius:0;line-height:1.4}
.klf-card__body .klf-aq{margin-top:16px}
.klf-aq:hover{border-color:var(--klf-red,#D7202A);color:var(--klf-red,#D7202A)}
.klf-aq.on{background:var(--klf-navy,#223464);color:#fff;border-color:var(--klf-navy,#223464)}
.klf-card__body > .klf-spacer{flex:1 1 auto;display:block}

/* table layout */
.klf-table-wrap{overflow-x:auto;border:1px solid var(--klf-line,#E2E5EE)}
table.klf-table{width:100%;border-collapse:collapse;font-size:13px;min-width:640px;background:var(--klf-card,#fff);margin:0}
table.klf-table th{background:var(--klf-navy,#223464);color:#fff;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;padding:14px 16px;text-align:left;border:0;font-weight:600}
table.klf-table td{padding:14px 16px;border:0;border-bottom:1px solid var(--klf-line,#E2E5EE);color:var(--klf-fg,#1a2140);vertical-align:middle}
table.klf-table tbody tr:nth-child(even) td{background:var(--klf-mist,#F4F5F9)}
table.klf-table td b{font-weight:700}
table.klf-table td small{display:block;color:var(--klf-red,#D7202A);font-size:10.5px;letter-spacing:.12em;font-weight:700}
table.klf-table .klf-aq{margin:0;padding:9px 12px;width:auto;white-space:nowrap}

.klf-empty{text-align:center;color:var(--klf-mute,#5c6482);padding:24px}
.klf-empty[hidden]{display:none}

/* quick view modal */
.klf-modal[hidden]{display:none}
.klf-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:16px}
.klf-modal__backdrop{position:absolute;inset:0;background:rgba(8,12,30,.6)}
.klf-modal__dialog{position:relative;background:var(--klf-bg,#fff);color:var(--klf-fg,#1a2140);max-width:520px;width:100%;max-height:90vh;overflow:auto;padding:26px}
.klf-modal__close{position:absolute;top:8px;right:12px;background:none;border:0;font-size:28px;line-height:1;cursor:pointer;color:var(--klf-mute,#5c6482)}
.klf-modal__media{background:#fff;border:1px solid var(--klf-line,#E2E5EE);margin-bottom:14px;display:flex;justify-content:center;padding:10px}
.klf-modal__media:empty{display:none}
.klf-modal__media img{max-height:240px;width:auto;max-width:100%;object-fit:contain}
.klf-modal__title{margin:0 0 12px;font-size:20px;color:var(--klf-fg,#1a2140)}
.klf-qv-desc{margin-top:12px;font-size:14px;color:var(--klf-mute,#5c6482)}
body.klf-modal-open{overflow:hidden}

@media(max-width:980px){.klf-grid{grid-template-columns:repeat(min(var(--klf-cols,3),2),minmax(0,1fr))}}
@media(max-width:620px){.klf-grid{grid-template-columns:1fr}.klf-card__actions{flex-direction:column}}
