:root{--color-bg:#f5f3ef;--color-bg-card:#fff;--color-primary:#4a7c59;--color-primary-dark:#3a6248;--color-primary-light:#5a9469;--color-accent:#d4a853;--color-accent-dark:#b8923f;--color-text:#2d3b2d;--color-text-muted:#6b7b6b;--color-text-light:#8a9a8a;--color-border:#e0ddd7;--color-border-light:#ebe9e4;--color-error:#c25a5a;--color-success:#4a7c59;--shadow-sm:0 1px 2px rgba(45,59,45,.05);--shadow-md:0 4px 6px rgba(45,59,45,.07);--shadow-lg:0 10px 15px rgba(45,59,45,.1);--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem}body{background-color:var(--color-bg);color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Hiragino Sans","Noto Sans CJK JP",sans-serif;line-height:1.6}a{color:var(--color-primary);text-decoration:none;transition:color .2s ease}a:hover{color:var(--color-primary-dark)}.container{max-width:1280px;margin:0 auto;padding:0 1rem}@media (min-width:640px){.container{padding:0 1.5rem}}.site-header{background-color:var(--color-bg-card);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100}.site-title{font-size:1.5rem;font-weight:700;color:var(--color-primary);letter-spacing:-.02em}.filter-panel{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.filter-section{border-bottom:1px solid var(--color-border-light);padding:1rem}.filter-section:last-child{border-bottom:none}.filter-label{font-size:.875rem;font-weight:600;color:var(--color-text);margin-bottom:.5rem;display:block}.form-input,.form-select{width:100%;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg-card);color:var(--color-text);font-size:.875rem;transition:border-color .2s ease,box-shadow .2s ease}.form-input:focus,.form-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(74,124,89,.1)}.form-checkbox{accent-color:var(--color-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;font-size:.875rem;font-weight:500;border-radius:var(--radius-md);transition:all .2s ease;cursor:pointer;border:none}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover{background-color:var(--color-primary-dark)}.btn-outline{background-color:transparent;border:1px solid var(--color-primary);color:var(--color-primary)}.btn-outline:hover{background-color:var(--color-primary);color:#fff}.btn-accent{background-color:var(--color-accent);color:#fff}.btn-accent:hover{background-color:var(--color-accent-dark)}.product-card{background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.product-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.product-image{aspect-ratio:1/1;width:100%;object-fit:contain;background-color:#fafaf8}.product-body{padding:1rem}.product-title{font-size:.9rem;font-weight:600;color:var(--color-text);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.5rem}.product-price{font-size:1.125rem;font-weight:700;color:var(--color-primary);margin-top:.5rem}.product-meta{font-size:.75rem;color:var(--color-text-muted);margin-top:.5rem}.product-meta span{display:inline-block;margin-right:.75rem}.product-specs{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.5rem}.spec-tag{display:inline-block;padding:.125rem .375rem;font-size:.65rem;font-weight:500;background-color:var(--color-bg);color:var(--color-text-muted);border-radius:var(--radius-sm);border:1px solid var(--color-border-light)}.favorite-btn{position:absolute;top:.5rem;right:.5rem;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background-color:rgba(255,255,255,.9);border:none;border-radius:50%;cursor:pointer;transition:all .2s ease;color:var(--color-text-muted);box-shadow:var(--shadow-sm);z-index:10}.favorite-btn:hover{background-color:#fff;transform:scale(1.1);box-shadow:var(--shadow-md)}.favorite-btn.is-active{color:#e53e3e}.favorite-btn.is-active:hover{color:#c53030}.favorites-toggle-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.75rem;font-weight:500;color:var(--color-text-muted);background-color:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.favorites-toggle-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.favorites-toggle-btn.is-active{background-color:var(--color-primary);border-color:var(--color-primary);color:#fff}.favorites-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .25rem;font-size:.65rem;font-weight:600;background-color:#e53e3e;color:#fff;border-radius:9999px}.component-accordion{border:1px solid var(--color-border-light);border-radius:var(--radius-md);overflow:hidden}.accordion-item{border-bottom:1px solid var(--color-border-light)}.accordion-item:last-child{border-bottom:none}.accordion-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.625rem .75rem;background:0 0;border:none;cursor:pointer;text-align:left;transition:background-color .2s ease}.accordion-header:hover{background-color:var(--color-bg)}.accordion-title{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;color:var(--color-text)}.accordion-icon{color:var(--color-text-muted);transition:transform .2s ease;flex-shrink:0}.accordion-item.is-open .accordion-icon{transform:rotate(180deg)}.accordion-content{background-color:var(--color-bg);border-top:1px solid var(--color-border-light)}.accordion-count{margin-left:auto;padding-right:.25rem}.product-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}@media (min-width:768px){.product-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:1024px){.product-grid{grid-template-columns:repeat(4,1fr)}}.loading-spinner{width:2rem;height:2rem;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-skeleton{background:linear-gradient(90deg,var(--color-border-light) 25%,var(--color-bg) 50%,var(--color-border-light) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}#scroll-trigger{height:1px;margin-top:2rem}.empty-state{text-align:center;padding:3rem 1rem;color:var(--color-text-muted)}.empty-state-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.badge{display:inline-block;padding:.25rem .5rem;font-size:.7rem;font-weight:500;border-radius:var(--radius-sm);background-color:var(--color-primary);color:#fff}.badge-outline{background-color:transparent;border:1px solid var(--color-border);color:var(--color-text-muted)}.noUi-target{background:var(--color-border-light);border:none;box-shadow:none}.noUi-connect{background:var(--color-primary)}.noUi-horizontal .noUi-handle{width:20px;height:20px;border-radius:50%;background:var(--color-primary);border:2px solid #fff;box-shadow:var(--shadow-md);cursor:pointer;top:-6px;right:-10px}.noUi-handle:before,.noUi-handle:after{display:none}.pb-safe{padding-bottom:env(safe-area-inset-bottom,1rem)}.modal-overlay{position:fixed;inset:0;background-color:rgba(0,0,0,.5);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}.modal-content{background-color:var(--color-bg-card);border-radius:var(--radius-lg);max-width:48rem;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);position:relative}.modal-header{padding:1.5rem;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.modal-body{padding:1.5rem}.modal-close{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:50%;border:none;background-color:transparent;color:var(--color-text-muted);cursor:pointer;transition:all .2s ease}.modal-close:hover{background-color:var(--color-bg);color:var(--color-text)}.site-footer{background-color:var(--color-bg-card);border-top:1px solid var(--color-border);padding:2rem 0;margin-top:3rem;color:var(--color-text-muted);font-size:.875rem;text-align:center}