:root{
  --rc-accent:#d9534f;
  --rc-dark:#1f1f1f;
  --rc-card:#ffffff;
  --rc-muted:#f5f5f7;
  --rc-radius:16px;
  --rc-shadow:0 8px 24px rgba(0,0,0,.08);
}
*{box-sizing:border-box}
.rc-wrap{
  position:relative;
  padding:24px;
  background:var(--rc-muted);
  border-radius:var(--rc-radius);
  overflow:hidden;
}
.rc-bg{
  position:absolute; inset:0;
  background-position:center; background-size:cover; z-index:0;
}
.rc-bg::after{
  content:""; position:absolute; inset:0; background:#000;
  opacity:var(--rc-dim, .4);
}
.rc-inner{
  position:relative; z-index:1;
  display:grid; grid-template-columns: 1fr 360px; gap:24px;
}
@media (max-width: 1024px){
  .rc-inner{ grid-template-columns: 1fr; }
}

/* Header */
.rc-header{
  display:flex; align-items:center; gap:14px; margin-bottom:16px;
  color:#fff;
}
.rc-logo{
  width:46px; height:46px; border-radius:50%; background:#fff2; display:grid; place-items:center; font-size:22px;
}
.rc-title{ font-size:28px; font-weight:800; letter-spacing:.2px; }
.rc-sub{ opacity:.85 }

/* Filters */
.rc-filters{
  display:flex; flex-wrap:wrap; gap:8px; margin:18px 0 12px;
}
.rc-chip{
  background:#fff; border:1px solid #eee; padding:8px 12px; border-radius:999px;
  cursor:pointer; transition:.2s; font-weight:600;
}
.rc-chip.active, .rc-chip:hover{ background:var(--rc-accent); color:#fff; border-color:transparent; }

/* Grid */
.rc-grid{
  display:grid; grid-template-columns: repeat(3, 1fr); gap:16px;
}
@media (max-width: 900px){
  .rc-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px){
  .rc-grid{ grid-template-columns: 1fr; }
}

.rc-card{
  background:var(--rc-card); border-radius:var(--rc-radius); box-shadow:var(--rc-shadow);
  overflow:hidden; display:flex; flex-direction:column;
}
.rc-img{ aspect-ratio: 4/3; width:100%; object-fit:cover; }
.rc-body{ padding:12px 14px; display:grid; gap:6px; }
.rc-name{ font-weight:800; font-size:16px; }
.rc-price{ font-weight:800; color:var(--rc-accent); }
.rc-actions{ display:flex; gap:8px; margin-top:6px; }
.rc-btn{
  flex:1; padding:8px 10px; border-radius:10px; border:1px solid #eee; background:#fff; cursor:pointer; font-weight:700;
}
.rc-btn.primary{ background:var(--rc-accent); color:#fff; border-color:transparent; }

/* Cart */
.rc-cart{
  background:#fff; border-radius:var(--rc-radius); box-shadow:var(--rc-shadow); padding:16px; position:sticky; top:16px; height:calc(100vh - 32px); overflow:auto;
}
.rc-cart h3{ margin:0 0 8px; font-size:18px; }
.rc-row{ display:flex; justify-content:space-between; align-items:center; gap:10px; padding:8px 0; border-bottom:1px dashed #eee; }
.rc-row .qty{
  display:flex; align-items:center; gap:6px;
}
.rc-mini{
  opacity:.65; font-size:12px;
}
.rc-total{
  display:flex; justify-content:space-between; margin-top:10px; font-weight:900; font-size:18px;
}
.rc-input{ width:100%; padding:10px 12px; border:1px solid #e5e5e5; border-radius:10px; margin-top:8px; }
.rc-submit{ width:100%; margin-top:10px; padding:12px; border-radius:12px; border:none; background:#111; color:#fff; font-weight:900; cursor:pointer; }
.rc-secondary{ background:#fff; border:1px solid #ddd; color:#111; }

/* Modal */
.rc-modal{ position:fixed; inset:0; background:rgba(0,0,0,.6); display:none; align-items:center; justify-content:center; padding:16px; z-index:9999; }
.rc-modal.open{ display:flex; }
.rc-modal-card{ width:min(860px, 100%); background:#fff; border-radius:16px; overflow:auto; max-height:90vh; box-shadow:var(--rc-shadow); }
.rc-modal-head{ display:flex; justify-content:space-between; align-items:center; padding:12px 16px; border-bottom:1px solid #f0f0f0; }
.rc-modal-body{ padding:16px; display:grid; gap:10px; }
.rc-close{ background:transparent; border:none; font-size:22px; cursor:pointer; }

/* Rating table */
.rc-table{ width:100%; border-collapse:collapse; font-size:14px; }
.rc-table th, .rc-table td{ border:1px solid #eee; padding:8px; vertical-align:top; }
.rc-score{ font-weight:900; }
