.shop-main { padding-bottom: 4rem; }
.shop-hero { padding: 2rem 0 1.25rem; }
.shop-hero h1 { font-size: clamp(1.75rem, 4vw, 2.4rem); color: var(--forest); margin: 0.5rem 0; }
.shop-hero p { color: var(--muted); max-width: 40rem; }
.demo-banner {
  margin: 1rem auto 0;
  padding: 0.75rem 1.1rem;
  background: #fff7d6;
  border: 1px solid #e6d48a;
  border-radius: var(--radius-well);
  font-size: 0.9rem;
  color: var(--ink);
}
.shop-filters { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1.5rem; }
.chip {
  border: 1px solid rgba(27,58,47,0.18);
  background: var(--white);
  color: var(--forest);
  border-radius: var(--radius-pill);
  padding: 0.55rem 1rem;
  font: inherit;
  font-weight: 600;
  font-size: 0.9rem;
  cursor: pointer;
  text-decoration: none;
}
.chip.active, .chip:hover { background: var(--lime); border-color: transparent; }
.shop-card .shop-desc {
  color: var(--muted);
  font-size: 0.9rem;
  margin: 0.35rem 0 0.85rem;
  min-height: 2.6em;
}
.shop-card-footer {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: auto;
}
.shop-card-footer .price { font-size: 1.2rem; color: #fff; display: block; }
.shop-card-footer .stock { display: block; font-size: 0.8rem; color: rgba(255,255,255,0.65); margin-top: 0.15rem; }
.shop-card-footer .stock.low { color: #b45309; }
.shop-card .btn { padding: 0.7rem 1.1rem; font-size: 0.9rem; }
.shop-card .btn:disabled { opacity: 0.5; cursor: not-allowed; }
.img-placeholder {
  width: 100%; aspect-ratio: 1; display: grid; place-items: center;
  background: var(--forest-card); color: var(--lime); font-size: 2.5rem; font-weight: 700;
  border-radius: 16px;
}
.shop-cart-btn .cart-count {
  display: inline-grid; place-items: center;
  min-width: 1.4rem; height: 1.4rem; padding: 0 0.35rem;
  margin-left: 0.25rem; border-radius: 999px;
  background: var(--lime); color: var(--ink); font-size: 0.8rem;
}
.cart-panel, .checkout-grid, .status-panel { padding-bottom: 2rem; }
.cart-list { display: grid; gap: 0.85rem; margin-bottom: 1.25rem; }
.cart-row {
  display: grid; grid-template-columns: 72px 1fr auto; gap: 0.85rem;
  background: var(--white); border-radius: var(--radius-card); padding: 0.85rem;
  align-items: center;
}
.cart-row img { width: 72px; height: 72px; object-fit: cover; border-radius: 14px; background: var(--cream); }
.cart-row h3 { font-size: 1rem; margin: 0 0 0.25rem; }
.qty-controls { display: flex; align-items: center; gap: 0.4rem; margin-top: 0.4rem; }
.qty-controls button {
  width: 2.25rem; height: 2.25rem; border-radius: 999px; border: none;
  background: var(--forest); color: white; font-size: 1.1rem; cursor: pointer;
}
.cart-summary, .checkout-aside {
  background: var(--forest); color: white; border-radius: var(--radius-card);
  padding: 1.25rem 1.4rem;
}
.cart-total { font-size: 1.15rem; margin-bottom: 0.85rem; }
.cart-empty { text-align: center; padding: 2rem; }
.hidden { display: none !important; }
.checkout-grid {
  display: grid; gap: 1.25rem;
  grid-template-columns: 1fr;
}
@media (min-width: 860px) {
  .checkout-grid { grid-template-columns: 1.2fr 0.8fr; align-items: start; }
}
.checkout-form, .checkout-aside {
  background: var(--white); color: var(--ink);
  border-radius: var(--radius-card); padding: 1.25rem;
}
.checkout-aside { background: var(--forest); color: white; }
.checkout-form label { display: grid; gap: 0.35rem; margin-bottom: 0.85rem; font-weight: 600; font-size: 0.92rem; }
.checkout-form input, .checkout-form textarea {
  font: inherit; padding: 0.85rem 1rem; border-radius: 14px;
  border: 1px solid rgba(27,58,47,0.18); background: var(--cream);
}
.btn-block { width: 100%; }
.form-error { color: #b91c1c; font-weight: 600; }
.status-panel { padding: 2.5rem 0; max-width: 40rem; }
.status-panel h1 { color: var(--forest); margin: 0.5rem 0 0.75rem; }
.demo-items { margin: 1rem 0 1.25rem; padding-left: 1.1rem; }
.demo-items li { margin: 0.35rem 0; }
.muted { color: var(--muted); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.25rem; }
