.cat-page { padding-bottom:15px; }
.cat-intro { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:28px; }
.cat-sample { font-size:12px; color:var(--muted); }
.cat-tools { display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:16px; padding:22px; }
.cat-tools label { display:grid; gap:6px; font-size:12px; font-weight:550; min-width:0; }
.cat-tools select,.cat-tools input { width:100%; min-width:0; font-size:16px; min-height:46px; border:1px solid #b1c9ba; border-radius:8px; padding:8px 11px; background:#ffffffc7; }
.cat-search-box { position:relative; display:flex; align-items:center; }
.cat-search-box img { position:absolute; right:12px; }
.cat-search-box input { padding-right:39px; }
.cat-results-bar { display:flex; justify-content:space-between; gap:20px; padding-block:24px; font-size:13px; color:var(--muted); }
.cat-check { display:flex; align-items:center; gap:8px; cursor:pointer; }
.cat-check input { width:19px; height:19px; accent-color:var(--primary); }
.cat-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:30px 22px; }
.cat-card { min-width:0; }
.cat-card-image { position:relative; aspect-ratio:1; background:#edf2ef; border-radius:14px; overflow:hidden; }
.cat-card-image>a,.cat-card-image>a>img { display:block; width:100%; height:100%; object-fit:cover; }
.cat-save { position:absolute; top:9px; left:9px; display:grid; place-items:center; width:44px; height:44px; border:1px solid #ffffffd9; border-radius:50%; background:#ffffffb8; backdrop-filter:blur(9px); }
.cat-save[aria-pressed=true] { background:#b8e3cb; border-color:#2b784f; }
.cat-new { position:absolute; top:13px; right:13px; border-radius:5px; background:#ffffffdc; padding:1px 8px; font-size:11px; }
.cat-type { display:block; color:var(--muted); font-size:12px; margin-top:14px; }
.cat-card h2 { font-size:17px; line-height:1.8; margin-block:4px 11px; }
.cat-card h2 a { display:inline-flex; min-height:40px; align-items:center; }
.cat-card-bottom { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
.cat-card-bottom strong { font-size:15px; }
.cat-card-bottom small { font-weight:400; color:var(--muted); }
.cat-add { display:flex; align-items:center; gap:6px; min-height:44px; padding:6px 10px; border-radius:8px; background:#e7f2eb; font-size:12px; }
.cat-empty { text-align:center; padding:60px 20px; }
.cat-empty p { margin:10px 0 20px; }
.product-layout { display:grid; grid-template-columns:1fr 1fr; gap:clamp(26px,5vw,70px); align-items:start; }
.product-gallery { min-width:0; }
.product-photo { aspect-ratio:1; overflow:hidden; border-radius:22px; background:#eff4f0; }
.product-photo img { width:100%; height:100%; object-fit:cover; transition:transform .24s ease; }
.product-photo.is-zoom img { transform:scale(1.7); }
.product-views { display:flex; gap:8px; margin-block:14px 8px; }
.product-views button { min-height:44px; padding:7px 14px; font-size:12px; border-radius:8px; border:1px solid var(--line); }
.product-views button[aria-pressed=true] { border-color:var(--primary); background:#e3f1e8; }
.product-description .cat-type { margin:0 0 10px; }
.product-description h1 { font-size:clamp(27px,3vw,38px); }
.product-description>p { color:var(--muted); font-size:14px; margin-top:15px; line-height:2; }
.product-price-large { font-size:27px; font-weight:650; margin-block:23px; }
.product-price-large small { font-size:14px; color:var(--muted); font-weight:400; }
.product-buy { display:grid; grid-template-columns:auto 1fr; gap:14px; align-items:center; padding:22px; }
.product-buy>label { font-size:13px; }
.product-quantity { display:flex; justify-self:end; align-items:center; }
.product-quantity button { width:42px; height:44px; font-size:23px; }
.product-quantity input { width:55px; height:44px; text-align:center; border:1px solid var(--line); border-radius:8px; background:white; }
.product-buy>.shop-primary,.product-save,.product-error { grid-column:1/-1; }
.product-save { min-height:40px; font-size:12px; text-decoration:underline; text-underline-offset:4px; }
.product-error { color:#9c4231; font-size:12px; }
.product-error:empty { display:none; }
.product-specs { margin-top:26px; font-size:13px; }
.product-specs>div { display:flex; justify-content:space-between; gap:20px; padding-block:12px; border-bottom:1px solid var(--line); }
.product-specs dt { color:var(--muted); }
.product-specs dd { margin:0; text-align:left; }
.product-help { display:inline-flex; align-items:center; min-height:44px; color:var(--primary); font-size:13px; }
.product-related { margin-top:65px; }
.product-related .cat-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media(max-width:900px) { .cat-tools { grid-template-columns:1fr 1fr; } .cat-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px 16px; } .product-description h1 { font-size:28px; } }
@media(max-width:700px) { .product-layout { grid-template-columns:1fr; gap:26px; } .cat-intro { flex-wrap:wrap; gap:9px; } .cat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 14px; } .cat-tools { padding:15px; gap:12px; } .cat-search-field { grid-column:1/-1; } .cat-tools label:last-child { grid-column:1/-1; } .cat-card h2 { font-size:15px; } .cat-type { font-size:10px; } .cat-card-bottom strong { font-size:14px; } .product-related .cat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .product-related .cat-card:last-child { display:none; } .cat-results-bar { flex-wrap:wrap; gap:10px; } }
@media(max-width:359px) { .cat-grid { grid-template-columns:1fr; } }
