.catalog-page{background:#fafaf8;color:#222}
.catalog-page .site-header{position:relative;background:#232624;color:#fff}
.catalog-page .site-header.mobile-open{background:#232624}
.catalog-main{max-width:1440px;margin:auto;padding:56px 6vw 88px}
.catalog-breadcrumb{font-size:13px;color:#666;display:flex;gap:12px;margin-bottom:32px}
.catalog-header{border-bottom:1px solid var(--line);padding-bottom:28px}
.catalog-header h1{font-size:36px;line-height:1.4;letter-spacing:0;font-weight:400;margin:12px 0}
.catalog-header p{max-width:760px;line-height:1.8;color:#666}
.catalog-categories{display:flex;flex-wrap:wrap;gap:12px 28px;padding:24px 0;border-bottom:1px solid var(--line)}
.catalog-categories a{font-size:14px;padding:8px 0;border-bottom:2px solid transparent}
.catalog-categories a[aria-current=page]{color:var(--red);border-color:var(--red)}
.catalog-toolbar{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:28px 0;flex-wrap:wrap}
.catalog-controls{display:flex;gap:16px;flex-wrap:wrap}
.catalog-controls label{display:grid;gap:8px;font-size:12px;color:#666}
.catalog-controls input,.catalog-controls select{font:inherit;font-size:14px;color:#222;background:#fff;border:1px solid #bdbdb7;border-radius:0;padding:12px;min-height:44px;max-width:100%}
.catalog-controls input{width:260px}
.catalog-count{font-size:13px;color:#666;margin:0}
.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 24px}
.sample-card{min-width:0}
.sample-image{display:block;width:100%;aspect-ratio:4/5;border:0;padding:0;background:#eee;overflow:hidden;cursor:zoom-in}
.sample-image img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .25s}
.sample-image:hover img{transform:scale(1.025)}
.sample-meta{display:flex;justify-content:space-between;gap:12px;align-items:start;padding-top:16px}
.sample-meta h2{font-size:18px;font-weight:500;line-height:1.5;letter-spacing:0;margin:0;overflow-wrap:anywhere}
.sample-meta p{font-size:12px;line-height:1.6;color:#666;margin:6px 0 0}
.sample-inquiry{font-size:13px;border-bottom:1px solid #777;white-space:nowrap;padding:6px 0}
.catalog-empty{padding:64px 0;border-top:1px solid var(--line);line-height:1.9}
.catalog-empty a{border-bottom:1px solid currentColor}
.sample-dialog{border:0;padding:0;width:min(1040px,94vw);max-width:94vw;max-height:92dvh;background:#fafaf8;color:#222}
.sample-dialog::backdrop{background:rgba(0,0,0,.75)}
.sample-dialog-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 20px}
.sample-dialog-header h2{font-size:18px;overflow-wrap:anywhere;margin:0}
.sample-close{border:1px solid #ccc;background:transparent;width:44px;height:44px;flex-shrink:0;cursor:pointer;font-size:26px}
.sample-dialog img{display:block;width:100%;height:65dvh;object-fit:contain;background:#eee}
.sample-dialog-footer{padding:16px 20px;display:flex;gap:16px;justify-content:space-between;flex-wrap:wrap;font-size:14px}
.sample-dialog-footer a{text-decoration:underline;text-underline-offset:4px}
.catalog-page :focus-visible{outline:2px solid var(--red);outline-offset:4px}
.catalog-home-image{width:100%;height:100%;object-fit:cover;display:block}
.product-card-link .catalog-home-image{position:relative;filter:none}
.product-card[href]{display:block;cursor:pointer}
.product-card[href]:focus-visible{outline:3px solid #fff;outline-offset:-5px}
.product-card .product-visual:has(.catalog-home-image){filter:none}
.catalog-empty button{font:inherit;padding:10px 16px;border:1px solid #aaa;background:transparent;cursor:pointer;margin-right:16px}
.product-card .product-visual:has(.catalog-home-image){background:none}
.product-card .product-visual:has(.catalog-home-image)::after{display:none}
@media(max-width:900px){.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-header h1{font-size:30px}}
@media(max-width:560px){.catalog-main{padding:32px 20px 56px}.catalog-header h1{font-size:26px}.catalog-grid{gap:28px 14px}.sample-meta{display:block}.sample-meta h2{font-size:15px}.sample-inquiry{display:inline-block;margin-top:6px}.catalog-controls{width:100%}.catalog-controls label:first-child{flex:1}.catalog-controls input{width:100%}.catalog-categories{gap:6px 20px}.catalog-categories a{font-size:13px}}
@media(prefers-reduced-motion:reduce){.sample-image img{transition:none}}
