.kbfav{--ink:#141414;--muted:#7a7a7a;--line:#e7e5e1;--cream:#f4f1ec;background:#fff;color:var(--ink);font-family:MontserratKB,Montserrat,Arial,sans-serif;padding:24px 40px 64px}
.kbfav *{box-sizing:border-box}
.kbfav-crumbs{font-size:11px;color:var(--muted);margin-bottom:14px}
.kbfav-crumbs a{color:var(--muted);text-decoration:none}
.kbfav-crumbs a:hover{color:var(--ink)}
.kbfav h1{margin:0 0 6px;font-size:28px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;line-height:1.2}
.kbfav h1 sup{font-size:12px;font-weight:500;color:var(--muted);letter-spacing:0;margin-left:4px}
.kbfav-sub{margin:0 0 28px;font-size:13px;color:var(--muted);line-height:1.5}
.kbfav-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:40px 16px}
.kbfav-card{display:flex;flex-direction:column;font-size:13px;min-width:0}
.kbfav-img{position:relative;display:block;aspect-ratio:3/4;background:#f5f5f5;margin-bottom:10px;overflow:hidden}
.kbfav-img img{width:100%;height:100%;object-fit:cover;display:block}
.kbfav-heart{position:absolute;right:6px;top:6px;width:34px;height:34px;display:grid;place-items:center;border:0;padding:0;background:none;color:var(--ink);cursor:pointer}
.kbfav-heart svg{width:22px;height:20px;fill:currentColor;stroke:currentColor;stroke-width:1.5}
.kbfav-heart:active svg{transform:scale(.85)}
.kbfav-tag{position:absolute;left:8px;top:8px;background:#fff;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:5px 8px}
.kbfav-price{font-size:14px;font-weight:600}
.kbfav-split{color:var(--muted);font-size:11px;margin-top:2px}
.kbfav-name{margin-top:4px;line-height:1.3;min-height:2.6em;color:var(--ink);text-decoration:none}
.kbfav-sz{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;margin:10px 0 8px}
.kbfav-sz button{min-width:0;height:32px;border:1px solid var(--line);border-radius:0;background:#fff;font:500 11px MontserratKB,Montserrat,Arial,sans-serif;color:var(--ink);cursor:pointer;padding:0;transition:border-color .2s ease,background-color .2s ease,color .2s ease}
.kbfav-sz button:hover{border-color:var(--ink)}
.kbfav-sz button.pick{background:var(--ink);border-color:var(--ink);color:#fff}
.kbfav-sz button.off{color:#c3c0ba;background:#fff repeating-linear-gradient(135deg,transparent 0 7px,#ebe8e3 7px 8px);pointer-events:none}
.kbfav-add{display:flex;align-items:center;justify-content:center;width:100%;height:44px;margin-top:auto;border:0;border-radius:0;background:var(--ink);color:#fff;font:600 12px MontserratKB,Montserrat,Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:opacity .2s ease}
.kbfav-add:hover{opacity:.85}
.kbfav-add.ok{background:#fff;color:var(--ink);border:1px solid var(--ink)}
.kbfav-add[disabled]{background:#fff;color:#b5b2ac;border:1px solid var(--line);cursor:default;opacity:1}
.kbfav-hint{min-height:16px;font-size:11px;color:#8a1c1c;margin-top:6px}
.kbfav-empty{margin:8px 0 0;padding:48px 20px;border:1px dashed var(--line);text-align:center}
.kbfav-empty-ic{width:56px;height:56px;margin:0 auto 14px;background:var(--cream);display:grid;place-items:center}
.kbfav-empty-ic svg{width:22px;height:20px;fill:none;stroke:var(--ink);stroke-width:1.5}
.kbfav-empty b{display:block;font-size:15px;font-weight:600}
.kbfav-empty p{font-size:13px;color:var(--muted);margin:8px 0 20px}
.kbfav-btn{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 28px;border:1px solid var(--ink);color:var(--ink);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;transition:background-color .2s ease,color .2s ease}
.kbfav-btn:hover{background:var(--ink);color:#fff}
.kbfav-load{padding:40px 0;color:var(--muted);font-size:13px}
@media (max-width:1199px){.kbfav-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:959px){.kbfav-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:639px){
  .kbfav{padding:16px 20px 40px}
  .kbfav h1{font-size:20px}
  .kbfav-sub{font-size:12px;margin-bottom:20px}
  .kbfav-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 8px}
  .kbfav-card{font-size:12px}
  .kbfav-sz{grid-template-columns:repeat(3,minmax(0,1fr))}
  .kbfav-add{height:40px;font-size:11px}
}
