.catalog-page{padding:120px 0 var(--spacing-xxl);background:var(--color-white);min-height:100vh}.catalog-header{text-align:center;margin-bottom:var(--spacing-xxl);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg)}.filter-container{width:100%;max-width:400px;margin-top:var(--spacing-md)}.filter-select{width:100%;border:1px solid var(--color-gray-light);background:var(--color-white);font-family:var(--font-inter),sans-serif;font-size:14px;color:var(--color-black);transition:all .3s ease;outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23000' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 20px center;background-size:12px;padding:14px 50px 14px 20px}.filter-select:focus{border-color:var(--color-black);box-shadow:0 0 0 3px rgba(0,0,0,.05)}.filter-select option{padding:10px;font-weight:300}.catalog-title{font-family:var(--font-playfair),"Playfair Display",serif;font-size:42px;font-weight:400;color:var(--color-black);margin-bottom:var(--spacing-sm);letter-spacing:-.5px}.catalog-subtitle{font-size:14px;color:var(--color-gray-text);letter-spacing:1.5px;text-transform:uppercase;font-weight:300}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:var(--spacing-lg);gap:var(--spacing-lg)}.catalog-item{background:var(--color-white);border:1px solid var(--color-gray-light);transition:all .3s ease;display:flex;flex-direction:column}.catalog-item:hover{box-shadow:0 4px 20px rgba(0,0,0,.08);border-color:var(--color-black)}.catalog-item-image-link{display:block;text-decoration:none}.catalog-item-image{position:relative;width:100%;padding-top:100%;background:var(--color-gray);overflow:hidden}.catalog-item-out-of-stock{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:center;z-index:10;pointer-events:none;padding:12px 0}.catalog-item-out-of-stock span{background:var(--color-black);color:var(--color-white);padding:8px 20px;font-size:12px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;box-shadow:0 2px 8px rgba(0,0,0,.3)}.catalog-item-image img{transition:transform .4s ease}.catalog-item:hover .catalog-item-image img{transform:scale(1.05)}.catalog-item-info{padding:var(--spacing-md);display:flex;flex-direction:column;flex:1 1}.catalog-item-category{font-size:10px;color:var(--color-gray-text);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:var(--spacing-xs);font-weight:300}.catalog-item-name{font-family:var(--font-playfair),"Playfair Display",serif;font-size:18px;color:var(--color-black);margin-bottom:var(--spacing-sm);text-decoration:none;transition:color .3s ease;font-weight:400;line-height:1.3}.catalog-item-description,.catalog-item-name:hover{color:var(--color-gray-text)}.catalog-item-description{font-size:13px;line-height:1.6;margin-bottom:var(--spacing-md);flex:1 1;font-weight:300}.catalog-item-price{font-size:20px;color:var(--color-black);margin-bottom:var(--spacing-md);font-weight:400;letter-spacing:.5px}.catalog-item-buy{width:100%;padding:14px 24px;background:var(--color-black);color:var(--color-white);border:1px solid var(--color-black);text-decoration:none;font-weight:400;letter-spacing:1px;text-transform:uppercase;font-size:11px;transition:all .3s ease;cursor:pointer;font-family:var(--font-inter),sans-serif}.catalog-item-buy:hover{background:var(--color-white);color:var(--color-black)}.catalog-item-buy:disabled{cursor:not-allowed;opacity:.6}.catalog-item-buy:disabled,.catalog-item-buy:disabled:hover{background:var(--color-gray-light);color:var(--color-gray-text)}@media (max-width:1024px){.catalog-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--spacing-md)}}@media (max-width:768px){.catalog-page{padding:100px 0 var(--spacing-xl)}.catalog-title{font-size:32px}.catalog-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-md)}.filter-container{max-width:100%;padding:0 var(--spacing-md)}.filter-select{font-size:16px}}@media (max-width:480px){.catalog-grid{grid-template-columns:1fr}.catalog-title{font-size:28px}}