.epc-brand-grid,.epc-product-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.epc-brand-card,.epc-product-card { display:flex; flex-direction:column; min-width:0; border:1px solid var(--line,#ddd); border-radius:8px; background:#fff; overflow:hidden; transition:box-shadow .15s; }
.epc-brand-card { padding:24px; }
.epc-brand-card:hover,.epc-product-card:hover { box-shadow:0 8px 24px rgba(0,0,0,.12); }
.epc-brand-card:focus-visible,.epc-product-card:focus-visible { outline:3px solid #244d35; outline-offset:4px; }
.epc-brand-image { height:112px; display:flex; align-items:center; justify-content:center; margin-bottom:24px; }
.epc-brand-image img { max-width:100%; max-height:100%; object-fit:contain; }
.epc-brand-card h3,.epc-product-card h3 { font-size:21px; line-height:1.3; overflow-wrap:anywhere; }
.epc-brand-card p,.epc-card-copy p { font-size:15px; color:#5e6a64; }
.epc-card-action { display:block; margin-top:auto; padding-top:16px; font-size:15px; font-weight:700; color:#244d35; }
.epc-product-image { aspect-ratio:1; padding:20px; background:#fff; display:grid; place-items:center; }
.epc-product-image img { width:100%; height:100%; min-height:0; object-fit:contain; }
.epc-card-copy { padding:20px; display:flex; flex-direction:column; flex:1; }
.epc-brand-name { font-size:13px; color:#5e6a64; margin-bottom:10px; }
.epc-catalog { padding:150px 6% 100px; min-height:70vh; }
.epc-catalog h1 { font-family:Georgia,serif; font-size:48px; line-height:1.1; margin:18px 0; overflow-wrap:anywhere; }
.epc-catalog h2 { font-size:30px; margin:36px 0 18px; }
.epc-catalog-breadcrumb { display:flex; flex-wrap:wrap; gap:10px; color:#5e6a64; font-size:14px; }
.epc-filters { display:flex; gap:12px; align-items:end; flex-wrap:wrap; margin:32px 0; padding:22px 0; border-block:1px solid var(--line,#ddd); }
.epc-filters label { flex:1 1 240px; }
.epc-filters .button { border:0; font:inherit; cursor:pointer; }
.epc-product-detail { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; align-items:start; margin-top:32px; }
.epc-detail-image { background:white; aspect-ratio:1; padding:30px; display:grid; place-items:center; }
.epc-detail-image img { width:100%; height:100%; min-height:0; object-fit:contain; }
.epc-detail-copy p { color:#5e6a64; }
.epc-detail-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:28px; }
.epc-variant-form { display:flex; gap:12px; flex-wrap:wrap; margin:24px 0; }
.epc-variant-form label { width:100%; font-weight:700; }
.epc-variant-form select { width:100%; min-width:0; max-width:100%; padding:12px; border:1px solid #aaa; border-radius:4px; font:inherit; font-size:14px; }
.epc-variant-form button { border:0; font:inherit; cursor:pointer; }
.epc-variant-list { margin:20px 0; border-block:1px solid #ddd; padding:16px 0; }
.epc-variant-list summary { cursor:pointer; font-weight:700; }
.epc-variant-list ul { padding-left:20px; }
.epc-variant-list li { margin:12px 0; overflow-wrap:anywhere; }
.epc-selected-variant { overflow-wrap:anywhere; }
.epc-specs { margin:28px 0; }
.epc-specs div { display:grid; grid-template-columns:minmax(100px,.4fr) minmax(0,1fr); gap:16px; border-top:1px solid var(--line,#ddd); padding:14px 0; }
.epc-specs dt { font-weight:700; }
.epc-specs dd { margin:0; color:#5e6a64; white-space:pre-line; overflow-wrap:anywhere; }
.epc-brand-heading { display:flex; gap:32px; align-items:center; margin-bottom:28px; }
.epc-brand-heading img { width:180px; max-height:120px; object-fit:contain; }
.epc-empty { padding:32px 0; }
.epc-pagination { display:flex; flex-wrap:wrap; gap:12px; padding:32px 0; }
.epc-pagination a,.epc-pagination span { padding:10px 14px; border:1px solid #ddd; border-radius:4px; }
@media(max-width:1020px) { .epc-brand-grid,.epc-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .epc-product-detail { gap:28px; } }
@media(max-width:680px) { .epc-catalog { padding:120px 18px 80px; } .epc-catalog h1 { font-size:34px; } .epc-brand-grid,.epc-product-grid,.epc-product-detail { grid-template-columns:minmax(0,1fr); } .epc-brand-heading { flex-direction:column; align-items:start; gap:12px; } .epc-specs div { grid-template-columns:minmax(0,1fr); gap:6px; } }
