.sof-catalog{--sof-green:#426a20;--sof-text:#2c302b;--sof-muted:#767c72;--sof-border:#e8ebe5;color:var(--sof-text);margin:24px auto 48px;max-width:1200px;font-family:inherit}
.sof-catalog *{box-sizing:border-box}
.sof-catalog-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:30px;padding-bottom:22px;border-bottom:1px solid var(--sof-border)}
.sof-eyebrow{font-size:11px!important;font-weight:700!important;letter-spacing:.15em!important;color:var(--sof-green)!important;margin:0 0 10px!important}
.sof-catalog-head h2{font-size:clamp(27px,3vw,39px)!important;font-weight:500!important;line-height:1.18!important;letter-spacing:-.025em!important;margin:0 0 10px!important;color:var(--sof-text)!important}
.sof-catalog-intro{font-size:15px!important;line-height:1.6!important;color:var(--sof-muted)!important;max-width:600px;margin:0!important}
.sof-count{white-space:nowrap;color:var(--sof-muted);font-size:13px;padding-bottom:4px}
.sof-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 22px}
.sof-card{border:1px solid var(--sof-border);background:#fff;border-radius:5px;overflow:hidden;min-width:0;box-shadow:0 2px 7px rgba(30,44,25,.025);transition:box-shadow .2s ease,transform .2s ease}
.sof-card:hover{box-shadow:0 11px 25px rgba(30,44,25,.095);transform:translateY(-3px)}
.sof-card-image{position:relative;display:block;overflow:hidden;background:#f3f1ed;aspect-ratio:1/1}
.sof-card-image img{width:100%!important;height:100%!important;display:block!important;object-fit:cover!important;transition:transform .35s ease;margin:0!important}
.sof-card:hover .sof-card-image img{transform:scale(1.035)}
.sof-image-hint{position:absolute;bottom:13px;right:13px;background:rgba(255,255,255,.96);color:var(--sof-text);padding:7px 10px;border-radius:3px;font-size:12px;opacity:0;transform:translateY(5px);transition:opacity .2s ease,transform .2s ease}
.sof-card:hover .sof-image-hint,.sof-card-image:focus-visible .sof-image-hint{opacity:1;transform:none}
.sof-card-body{padding:19px 19px 20px;display:flex;flex-direction:column;align-items:flex-start;min-height:174px}
.sof-card-type{font-size:11px!important;font-weight:650!important;letter-spacing:.09em!important;text-transform:uppercase;color:var(--sof-green)!important;margin:0 0 9px!important;line-height:1.3!important}
.sof-card h3{font-size:17px!important;line-height:1.4!important;font-weight:500!important;letter-spacing:-.01em!important;color:var(--sof-text)!important;margin:0 0 20px!important;overflow-wrap:anywhere}
.sof-shop,.sof-shop:visited{display:inline-flex!important;align-items:center;justify-content:space-between;gap:17px;padding:10px 14px;margin-top:auto;background:var(--sof-green)!important;color:white!important;border:1px solid var(--sof-green);border-radius:3px;text-decoration:none!important;font-size:12px!important;font-weight:700!important;letter-spacing:.025em;line-height:1.4!important;transition:background .2s ease}
.sof-shop:hover,.sof-shop:focus-visible{background:#304f17!important;color:white!important;text-decoration:none!important}
.sof-shop span{font-size:16px;line-height:1}
.sof-empty{padding:24px;border:1px solid #e8ebe5}
@media(max-width:850px){.sof-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sof-catalog-head h2{font-size:31px!important}}
@media(max-width:580px){.sof-grid{grid-template-columns:1fr;gap:22px}.sof-catalog-head{display:block}.sof-count{display:block;margin-top:12px}.sof-card-body{min-height:0}.sof-image-hint{display:none}}
@media(prefers-reduced-motion:reduce){.sof-card,.sof-card-image img,.sof-image-hint{transition:none}.sof-card:hover{transform:none}}

/* Type filters, version 0.3 */
.sof-filterbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px;margin:0 0 24px;padding:15px 18px;background:#f7f8f5;border:1px solid var(--sof-border);border-radius:5px}
.sof-filter-label{font-size:11px;font-weight:700;letter-spacing:.11em;color:var(--sof-muted)}
.sof-filter-buttons{display:flex;flex-wrap:wrap;gap:8px}
.sof-filter-btn{appearance:none;cursor:pointer;background:#fff!important;color:var(--sof-text)!important;border:1px solid #daddd5!important;border-radius:4px!important;padding:9px 13px!important;font-family:inherit!important;font-weight:600!important;font-size:12px!important;line-height:1.3!important;box-shadow:none!important;text-transform:none!important;letter-spacing:0!important;transition:background .15s ease,border-color .15s ease}
.sof-filter-btn:hover{border-color:var(--sof-green)!important}
.sof-filter-btn.is-active,.sof-filter-btn.is-active:hover{background:var(--sof-green)!important;color:white!important;border-color:var(--sof-green)!important}
.sof-filter-btn:focus-visible{outline:2px solid var(--sof-green);outline-offset:3px}
.sof-visible-count{font-size:12px;color:var(--sof-muted);margin-left:auto}
.sof-card[hidden],.sof-no-results[hidden]{display:none!important}
.sof-no-results{padding:20px;color:var(--sof-muted)}
@media(max-width:580px){.sof-filterbar{align-items:flex-start;flex-direction:column}.sof-visible-count{margin-left:0}.sof-filter-buttons{width:100%}.sof-filter-btn{flex:1 1 auto}}
/* Additional filters, v0.4 */
.sof-filterbar{display:block}
.sof-filter-row{display:flex;align-items:center;gap:12px 18px;flex-wrap:wrap}
.sof-selects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}
.sof-select-label{display:flex;flex-direction:column;gap:6px;min-width:0;color:var(--sof-muted);font-size:11px;font-weight:700;letter-spacing:.05em}
.sof-select-label select{width:100%;min-width:0;max-width:100%;height:42px;padding:8px 28px 8px 11px;border:1px solid #daddd5;border-radius:4px;color:var(--sof-text);background:#fff;font-family:inherit;font-size:13px;font-weight:500;letter-spacing:0;cursor:pointer}
.sof-select-label select:focus-visible,.sof-reset:focus-visible{outline:2px solid var(--sof-green);outline-offset:2px}
.sof-filter-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:15px}
.sof-visible-count{margin-left:0}
.sof-reset{border:0!important;background:transparent!important;box-shadow:none!important;color:var(--sof-green)!important;text-decoration:underline!important;font-size:12px!important;padding:8px!important;text-transform:none!important;cursor:pointer}
@media(max-width:850px){.sof-selects{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.sof-selects{grid-template-columns:1fr;gap:10px}.sof-filter-row{align-items:flex-start;flex-direction:column}.sof-filter-btn{flex:1 1 auto}.sof-filter-footer{width:100%}}
