:root { --bg:#f7f5f0; --card:#ffffff; --ink:#1f2937; --muted:#6b7280;
  --accent:#b45309; --accent-ink:#fff; --line:#e5e7eb; --radius:14px; }
* { box-sizing:border-box; }
body { margin:0; font-family:system-ui,"Segoe UI",Tahoma,Arial,sans-serif;
  background:var(--bg); color:var(--ink); line-height:1.55; }
.hero { background:linear-gradient(135deg,#1f2937,#4b5563); color:#fff;
  padding:3rem 1.25rem; }
.hero-inner { max-width:960px; margin:0 auto; }
.brand { letter-spacing:.12em; text-transform:uppercase; font-size:.8rem;
  opacity:.85; margin:0 0 .5rem; }
.hero h1 { margin:.25rem 0 .5rem; font-size:clamp(1.7rem,5vw,2.6rem); }
.tagline { opacity:.9; max-width:36rem; }
.cta-row { margin-top:1.25rem; }
.cta { display:inline-block; background:var(--accent); color:var(--accent-ink);
  padding:.7rem 1.4rem; border-radius:999px; text-decoration:none;
  font-weight:600; }
main { max-width:1100px; margin:0 auto; padding:1.25rem; }
.filters { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:.75rem; background:var(--card); border:1px solid var(--line);
  border-radius:var(--radius); padding:1rem; margin:-2.2rem 0 1.25rem;
  position:relative; box-shadow:0 6px 24px rgba(0,0,0,.08); }
.filters label { display:grid; gap:.25rem; font-size:.85rem; color:var(--muted); }
.filters select, .filters input { padding:.55rem .6rem; border:1px solid var(--line);
  border-radius:8px; font-size:1rem; color:var(--ink); background:#fff; width:100%; }
.count { grid-column:1/-1; margin:.25rem 0 0; font-weight:600; color:var(--ink); }
.grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:1rem; }
.card { background:var(--card); border:1px solid var(--line);
  border-radius:var(--radius); padding:1rem; display:flex;
  flex-direction:column; gap:.5rem; }
.card h2 { font-size:1.05rem; margin:0; }
.badge { display:inline-block; font-size:.75rem; font-weight:700;
  background:#fef3c7; color:#92400e; border-radius:999px; padding:.15rem .6rem;
  margin-right:.35rem; }
.price { font-size:1.25rem; font-weight:800; color:var(--accent); margin:0; }
.meta { color:var(--muted); font-size:.9rem; margin:0; }
.desc { font-size:.92rem; margin:0; display:-webkit-box; -webkit-line-clamp:3;
  -webkit-box-orient:vertical; overflow:hidden; }
.card .row { display:flex; gap:.5rem; margin-top:auto; padding-top:.5rem; }
.btn { flex:1; text-align:center; padding:.55rem .6rem; border-radius:8px;
  border:1px solid var(--accent); color:var(--accent); background:#fff;
  text-decoration:none; font-weight:600; cursor:pointer; font-size:.95rem; }
.btn.primary { background:var(--accent); color:#fff; }
.modal[hidden] { display:none; }
.modal { position:fixed; inset:0; background:rgba(0,0,0,.55); display:flex;
  align-items:center; justify-content:center; padding:1rem; z-index:10; }
.modal-card { background:#fff; border-radius:var(--radius); max-width:640px;
  width:100%; max-height:88vh; overflow:auto; padding:1.5rem; position:relative; }
.modal-close { position:absolute; top:.6rem; right:.8rem; font-size:1.6rem;
  background:none; border:none; cursor:pointer; }
footer { text-align:center; color:var(--muted); font-size:.85rem;
  padding:2rem 1rem 3rem; }
@media (max-width:480px){ .hero{padding:2.2rem 1rem;} }
