@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');
/* ============================================================
   Restaurant Plugin — stylesheet
   Namespaced with .rst- to avoid clashing with the theme.
   ============================================================ */
:root {
  /* --- v6 design tokens --- */
  --rst2-primary:#FF6B6B;
  --rst2-secondary:#4ECDC4;
  --rst2-accent:#FFE66D;
  --rst2-dark:#2C3E50;
  --rst2-light:#F7F9FC;
  --rst2-g1:linear-gradient(135deg,#667eea 0%,#764ba2 100%);
  --rst2-g2:linear-gradient(135deg,#f093fb 0%,#f5576c 100%);
  --rst2-g3:linear-gradient(135deg,#4facfe 0%,#00f2fe 100%);
  --rst2-sh-sm:0 2px 8px rgba(0,0,0,.08);
  --rst2-sh-md:0 8px 30px rgba(0,0,0,.12);
  --rst2-sh-lg:0 20px 60px rgba(0,0,0,.15);
  --rst-red:#e63946;
  --rst-red-d:#c0202d;
  --rst-green:#16a34a;
  --rst-ink:#1f2430;
  --rst-muted:#8a8f98;
  --rst-line:#eef0f2;
  --rst-bg:#f6f7f9;
  /* legacy aliases kept for any inline references */
  --rst-orange:#e63946;
  --rst-orange-d:#c0202d;
}

/* ============================================================
   Wrapper
   ============================================================ */
/* Marketplace wrapper — normal card in Sngine column layout */
.rst-wrap { max-width:none; margin:0; background:#fff; border-radius:20px; border:1px solid #eef0f2; box-shadow:0 3px 18px rgba(0,0,0,.07); overflow:hidden; font-family:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif; }
.rst-wrap * { box-sizing:border-box; }
.rst-page-body { padding:20px; }

/* ============================================================
   Plugin marketplace header (solid red — no gradient)
   ============================================================ */
.rst-mkt-header {
  background:#e63946;
  padding:32px 28px; display:flex; align-items:center;
  justify-content:space-between; gap:20px; flex-wrap:wrap;
  position:relative; overflow:hidden;
  border-radius:0 0 18px 18px;
}
.rst-mkt-header::before {
  content:''; position:absolute; top:-50px; right:240px;
  width:160px; height:160px;
  background:rgba(255,255,255,.08); border-radius:50%;
  pointer-events:none;
}
.rst-mkt-header::after {
  content:''; position:absolute; bottom:-70px; right:60px;
  width:220px; height:220px;
  background:rgba(255,255,255,.06); border-radius:50%;
  pointer-events:none;
}
.rst-mkt-header-left { position:relative; z-index:1; }
.rst-mkt-header-left h1 { font-size:28px; font-weight:900; color:#fff; margin:0 0 6px; letter-spacing:-0.3px; }
.rst-mkt-header-left p { font-size:14px; color:rgba(255,255,255,.88); margin:0; max-width:none; white-space:nowrap; line-height:1.45; }
.rst-mkt-header-right { display:flex; align-items:center; gap:12px; flex-wrap:wrap; position:relative; z-index:1; }
.rst-mkt-food-icons { display:flex; gap:4px; font-size:26px; opacity:.9; }
.rst-mkt-food-icons span { filter:drop-shadow(0 2px 4px rgba(0,0,0,.25)); }

.rst-mkt-cta-btn {
  display:inline-flex; align-items:center; gap:7px;
  background:#fff; color:#e63946;
  font-size:13px; font-weight:800; padding:10px 20px;
  border-radius:24px; text-decoration:none; white-space:nowrap;
  box-shadow:0 4px 16px rgba(0,0,0,.18); transition:all .15s;
}
.rst-mkt-cta-btn:hover { background:#fef2f2; color:#c0202d; transform:translateY(-1px); box-shadow:0 6px 20px rgba(0,0,0,.22); }

/* ============================================================
   Centered search bar
   ============================================================ */
.rst-search-center {
  padding:0 0 20px;
}
.rst-search-form {
  position:relative; width:100%;
  display:flex; align-items:center;
}
.rst-search-icon {
  position:absolute; left:22px;
  color:#b0b5be; font-size:17px; pointer-events:none; z-index:1;
}
.rst-search-input {
  width:100%; padding:17px 54px 17px 54px;
  border:2px solid var(--rst-line); border-radius:50px;
  font-size:16px; font-family:inherit; background:#fff;
  outline:none; transition:border-color .2s, box-shadow .2s;
  box-shadow:0 4px 20px rgba(0,0,0,.09);
}
.rst-search-input:focus { border-color:#e63946; box-shadow:0 4px 28px rgba(230,57,70,.15); }
.rst-search-input::placeholder { color:#b0b5be; }
.rst-search-clear {
  position:absolute; right:20px; background:none; border:none;
  cursor:pointer; color:#8a8f98; font-size:15px; padding:6px;
  transition:color .15s; line-height:1;
}
.rst-search-clear:hover { color:#e63946; }

/* ============================================================
   Cuisine category icons (modern circular style)
   ============================================================ */
.rst-cat-section {
  position:relative; display:flex; align-items:center;
  margin:6px 0 4px; gap:4px; padding:0 2px;
}
.rst-cat-strip {
  display:flex; gap:6px; overflow-x:auto; scroll-behavior:smooth;
  scrollbar-width:none; padding:3px 4px; flex:1; align-items:flex-start;
}
.rst-cat-strip::-webkit-scrollbar { display:none; }

/* Deliveroo-style category photo tiles */
.rst-cat-icon-btn {
  display:flex; flex-direction:column; align-items:center; gap:7px;
  background:none; border:none; cursor:pointer;
  padding:8px 4px; flex-shrink:0; transition:transform .15s;
}
.rst-cat-icon-btn:hover { transform:translateY(-3px); }
.rst-cat-icon-circle {
  width:80px; height:80px; border-radius:18px;
  background:#f6f7f9; border:none;
  display:flex; align-items:center; justify-content:center;
  font-size:34px; overflow:hidden;
  box-shadow:0 4px 14px rgba(0,0,0,.11); transition:box-shadow .18s;
}
.rst-cat-icon-circle img { width:100%; height:100%; object-fit:cover; border-radius:inherit; display:block; }
.rst-cat-icon-btn:hover .rst-cat-icon-circle { box-shadow:0 6px 20px rgba(0,0,0,.17); }
/* No selected/active state styling — all tiles look the same */
.rst-cat-icon-label {
  font-size:12px; font-weight:700; color:#333; white-space:nowrap;
  max-width:84px; overflow:hidden; text-overflow:ellipsis; text-align:center; line-height:1;
}

/* Legacy pill buttons — kept for backward compatibility */
.rst-cat-pill {
  display:inline-flex; align-items:center; gap:7px;
  padding:9px 18px; border-radius:30px;
  background:#fff; border:1.5px solid var(--rst-line);
  font-size:13.5px; font-weight:600; color:#555;
  cursor:pointer; white-space:nowrap; flex-shrink:0;
  transition:all .18s; line-height:1;
}
.rst-cat-pill:hover { border-color:#444; color:#444; }
.rst-cat-pill.active { background:rgba(0,0,0,.30); border-color:rgba(0,0,0,.30); color:#fff; }

.rst-cat-arrow {
  width:34px; height:34px; border-radius:50%; flex-shrink:0;
  background:#fff; border:1.5px solid var(--rst-line);
  cursor:pointer; font-size:13px; color:#555;
  display:flex; align-items:center; justify-content:center;
  transition:all .15s; box-shadow:0 2px 8px rgba(0,0,0,.08);
}
.rst-cat-arrow:hover { border-color:#444; color:#444; }
.rst-cat-arrow.hidden { opacity:0; pointer-events:none; }

/* ============================================================
   Buttons
   ============================================================ */
.rst-btn {
  display:inline-flex; align-items:center; gap:8px; border:none; cursor:pointer; text-decoration:none;
  padding:11px 22px; border-radius:30px; font-weight:700; font-size:14px; transition:transform .15s, box-shadow .15s;
}
.rst-btn:hover { transform:translateY(-2px); }
.rst-btn-primary { background:#e63946; color:#fff; box-shadow:0 6px 18px rgba(230,57,70,.3); }
.rst-btn-primary:hover { color:#fff; background:#c0202d; }
.rst-btn-white { background:#fff; color:#c0202d; box-shadow:0 6px 18px rgba(0,0,0,.12); }
.rst-btn-white:hover { color:#c0202d; }
.rst-btn-ghost { background:rgba(255,255,255,.15); color:#fff; }
.rst-btn-ghost:hover { color:#fff; background:rgba(255,255,255,.25); }
.rst-btn-block { width:100%; justify-content:center; }
.rst-btn-lg { padding:14px 26px; font-size:15px; }
.rst-btn-green { background:#16a34a; color:#fff; box-shadow:0 6px 18px rgba(22,163,74,.3); }
.rst-btn-green:hover { color:#fff; background:#15803d; }
.rst-btn-sm { padding:7px 14px; font-size:12.5px; border-radius:9px; }
.rst-btn-outline { background:#fff; border:1.5px solid var(--rst-line); color:#444; }
.rst-btn-danger { background:#fef2f2; color:#dc2626; }

/* ============================================================
   Section titles
   ============================================================ */
.rst-sec-title { font-size:17px; font-weight:800; color:var(--rst-ink); margin:6px 0 14px; display:flex; align-items:center; gap:9px; padding:14px 18px; background:#fff; border:1px solid var(--rst-line); border-radius:14px; box-shadow:0 2px 8px rgba(0,0,0,.04); }
.rst-sec-title .fa { color:#e63946; }

/* All-restaurants header card — single flex row */
.rst-all-header { background:#fff; border:1px solid var(--rst-line); border-radius:14px; box-shadow:0 2px 8px rgba(0,0,0,.04); padding:12px 18px; margin:6px 0 16px; display:flex; align-items:center; gap:14px; }
.rst-all-title { font-size:17px; font-weight:800; color:var(--rst-ink); display:flex; align-items:center; gap:9px; white-space:nowrap; flex-shrink:0; }
.rst-all-title .fa { color:#e63946; }
.rst-all-title span { font-weight:600; color:#8a8f98; font-size:14px; }
/* Compact inline search */
.rst-all-inline-search { flex:1; position:relative; display:flex; align-items:center; min-width:0; }
.rst-all-inline-search .fa { position:absolute; left:12px; color:#b0b5be; font-size:14px; pointer-events:none; }
.rst-all-inline-search input { width:100%; padding:9px 36px 9px 34px; border:1.5px solid var(--rst-line); border-radius:30px; font-size:13.5px; font-family:inherit; background:#f6f7f9; outline:none; transition:border-color .2s, background .2s; }
.rst-all-inline-search input:focus { border-color:#e63946; background:#fff; }
.rst-all-inline-search input::placeholder { color:#b0b5be; }
.rst-all-inline-search button { position:absolute; right:10px; background:none; border:none; cursor:pointer; color:#8a8f98; font-size:13px; padding:4px; line-height:1; }
.rst-all-inline-search button:hover { color:#e63946; }

/* ============================================================
   Restaurant grid
   ============================================================ */
.rst-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-bottom:26px; }
.rst-card {
  background:#fff; border-radius:18px; overflow:hidden;
  border:1px solid var(--rst-line); box-shadow:0 2px 14px rgba(0,0,0,.05);
  transition:transform .22s, box-shadow .22s; display:flex; flex-direction:column;
  cursor:pointer;
}
.rst-card:hover { transform:translateY(-5px); box-shadow:0 16px 36px rgba(0,0,0,.12); }

/* cover */
.rst-card-cover { position:relative; height:200px; background:#e63946; overflow:hidden; }
.rst-card-cover-img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s ease; }
.rst-card:hover .rst-card-cover-img { transform:scale(1.04); }
.rst-card-cover-ph { width:100%; height:100%; display:flex; align-items:center; justify-content:center; background:#e63946; color:#fff; font-size:52px; opacity:.8; }

/* legacy cover children */
.rst-card-cover img { width:100%; height:100%; object-fit:cover; }
.rst-card-cover .rst-ph { width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:#fff; font-size:44px; opacity:.85; }

/* badges */
.rst-card-badge {
  position:absolute; top:12px; right:12px;
  display:inline-flex; align-items:center; gap:4px;
  padding:5px 12px; border-radius:20px;
  font-size:11.5px; font-weight:800; letter-spacing:.2px;
}
.rst-card-badge.open { background:rgba(22,163,74,.92); color:#fff; }
.rst-card-badge.closed { background:rgba(80,80,90,.82); color:#fff; }
.rst-card-feat { position:absolute; top:12px; left:12px; width:30px; height:30px; border-radius:50%; background:rgba(220,38,38,.92); color:#fff; display:flex; align-items:center; justify-content:center; font-size:12px; }
.rst-card-story-ring { position:absolute; bottom:12px; left:12px; background:#e63946; color:#fff; border-radius:20px; padding:4px 10px; font-size:11px; font-weight:800; display:flex; align-items:center; gap:3px; }
.rst-card-free-del { position:absolute; bottom:12px; right:12px; background:rgba(22,163,74,.93); color:#fff; border-radius:20px; padding:4px 10px; font-size:11px; font-weight:800; display:flex; align-items:center; gap:4px; }

/* legacy badges */
.rst-badge { position:absolute; top:12px; right:12px; padding:5px 11px; border-radius:9px; font-size:11.5px; font-weight:800; color:#fff; }
.rst-badge.open { background:rgba(22,163,74,.95); }
.rst-badge.closed { background:rgba(107,114,128,.95); }
.rst-badge.feat { top:12px; left:12px; right:auto; background:rgba(220,38,38,.95); }

/* logo overlap */
.rst-card-logo-wrap { display:flex; align-items:flex-end; padding:0 16px; margin-top:-28px; position:relative; z-index:2; }
.rst-card-logo {
  width:60px; height:60px; border-radius:14px;
  border:3px solid #fff; background:#fff;
  box-shadow:0 4px 14px rgba(0,0,0,.15);
  display:flex; align-items:center; justify-content:center;
  color:#e63946; font-size:22px; overflow:hidden; flex-shrink:0;
}
.rst-card-logo img { width:100%; height:100%; object-fit:cover; }

/* legacy logo */
.rst-card-cover .rst-card-logo { position:absolute; left:16px; bottom:-24px; width:56px; height:56px; border-radius:14px; margin-top:0; }

/* card body */
.rst-card-body { padding:10px 16px 16px; flex:1; display:flex; flex-direction:column; }
.rst-card-name { font-size:16px; font-weight:800; color:var(--rst-ink); margin:0 0 3px; display:flex; align-items:center; gap:5px; }
.rst-card-name a { color:inherit; text-decoration:none; }
.rst-card-name a:hover { color:#c0202d; }
.rst-card-verified { color:#e63946; font-size:14px; }
.rst-card-sub { font-size:12.5px; color:var(--rst-muted); margin-bottom:5px; display:flex; align-items:center; gap:5px; }
.rst-card-dot { color:#d1d5db; }
.rst-card-addr { font-size:12px; color:var(--rst-muted); margin-bottom:9px; display:flex; align-items:flex-start; gap:5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rst-card-addr .fa { color:#e63946; flex-shrink:0; margin-top:1px; }
.rst-card-foot { display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:10px; border-top:1px solid var(--rst-line); gap:6px; }
.rst-card-foot-right { display:flex; align-items:center; gap:5px; flex-shrink:0; }
.rst-card-rating { display:inline-flex; align-items:center; gap:4px; font-size:13px; font-weight:700; color:#f59e0b; }
.rst-card-rating-cnt { color:#8a8f98; font-weight:500; font-size:12px; }
.rst-card-new-badge { font-size:12px; font-weight:700; color:#e63946; display:inline-flex; align-items:center; gap:3px; background:#fff0f1; border-radius:20px; padding:2px 8px; }
/* Star display: filled (amber) + empty (light red) */
.rst-sf { color:#f59e0b; font-size:13px; }
.rst-se { color:#fca5a5; font-size:13px; }
/* Card star rating row */
.rst-card-stars-row { display:flex; align-items:center; gap:6px; margin:5px 0 8px; }
.rst-card-stars { display:inline-flex; gap:2px; }
.rst-card-rc { font-size:12.5px; font-weight:700; color:#1f2430; }
.rst-card-rc-cnt { color:#8a8f98; font-weight:500; }
/* Delivery time badge on card footer */
.rst-card-delivery-time { display:inline-flex; align-items:center; gap:4px; font-size:12px; font-weight:700; color:#16a34a; background:#f0fdf4; border-radius:20px; padding:3px 9px; }
.rst-card-min-order { font-size:11.5px; font-weight:700; color:#555; background:#f6f7f9; padding:3px 9px; border-radius:20px; display:inline-flex; align-items:center; gap:4px; }
.rst-card-min-order .fa { color:#e63946; font-size:10px; }
.rst-card-items { font-size:12px; color:var(--rst-muted); }

/* legacy card body */
.rst-card-meta { font-size:12.5px; color:var(--rst-muted); margin-bottom:10px; display:flex; gap:10px; flex-wrap:wrap; }
.rst-card-meta .fa { color:#e63946; margin-right:3px; }
.rst-rating { color:#f59e0b; font-weight:700; }
.rst-card-foot .rst-info { font-size:12px; color:var(--rst-muted); }

/* ============================================================
   Empty state
   ============================================================ */
.rst-empty { text-align:center; padding:60px 20px; color:var(--rst-muted); }
.rst-empty .fa { font-size:52px; color:#e2e5ea; margin-bottom:14px; }
.rst-empty h3 { font-size:18px; color:#555; margin-bottom:6px; }

/* ============================================================
   Pagination
   ============================================================ */
.rst-pagination { display:flex; justify-content:center; gap:6px; margin:8px 0 20px; }
.rst-pagination a, .rst-pagination span { min-width:40px; height:40px; display:flex; align-items:center; justify-content:center; border-radius:10px; font-weight:600; font-size:14px; text-decoration:none; background:#fff; border:1px solid var(--rst-line); color:#444; }
.rst-pagination a:hover { border-color:#e63946; color:#c0202d; }
.rst-pagination .cur { background:#e63946; border-color:#e63946; color:#fff; }

/* ============================================================
   Slideshow
   ============================================================ */
.rst-slideshow { position:relative; overflow:hidden; border-radius:0; margin-bottom:0; height:320px; background:#f0f2f5; }
.rst-slide-track { display:flex; height:100%; transition:transform .45s cubic-bezier(.4,0,.2,1); }
.rst-slide { min-width:100%; height:100%; position:relative; overflow:hidden; background:#e63946; }
.rst-slide-img { width:100%; height:100%; object-fit:cover; display:block; }
.rst-slide-placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:80px; color:rgba(255,255,255,.4); }
.rst-slide-caption {
  position:absolute; left:0; right:0; bottom:0;
  padding:30px 28px 20px;
  background:rgba(0,0,0,.5);
}
.rst-slide-caption h2 { color:#fff; font-size:24px; font-weight:900; margin:0 0 4px; }
.rst-slide-caption p { color:rgba(255,255,255,.9); font-size:13.5px; margin:0; }
.rst-slide-arrow {
  position:absolute; top:50%; transform:translateY(-50%);
  width:40px; height:40px; border-radius:50%;
  background:rgba(255,255,255,.9); border:none; cursor:pointer;
  font-size:14px; color:#333; z-index:10;
  box-shadow:0 2px 10px rgba(0,0,0,.2); transition:all .15s;
}
.rst-slide-arrow:hover { background:#fff; transform:translateY(-50%) scale(1.1); }
.rst-slide-arrow.prev { left:14px; }
.rst-slide-arrow.next { right:14px; }
.rst-slide-dots { position:absolute; bottom:10px; left:50%; transform:translateX(-50%); display:flex; gap:6px; z-index:10; }
.rst-slide-dot { width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.5); cursor:pointer; transition:all .2s; border:none; }
.rst-slide-dot.active { background:#fff; width:22px; border-radius:4px; }

/* ============================================================
   Single restaurant page
   ============================================================ */
.rst-store-hero { border-radius:20px; overflow:hidden; position:relative; margin-bottom:0; min-height:320px; background:#e63946; }
.rst-store-hero.no-cover { min-height:140px; }
.rst-store-hero img.cover { width:100%; height:320px; object-fit:cover; }
.rst-store-hero .overlay { position:absolute; inset:0; background:linear-gradient(to bottom, rgba(0,0,0,.08) 0%, rgba(0,0,0,.72) 100%); }
.rst-store-hero.no-cover .overlay { background:rgba(0,0,0,.20); }
.rst-store-head { position:absolute; left:0; right:0; bottom:0; display:flex; align-items:flex-end; gap:16px;
  /* center content in 1200px column even though image is full-width */
  padding-top:22px; padding-bottom:22px;
  padding-left:max(24px, calc(50% - 576px));
  padding-right:max(24px, calc(50% - 576px));
}
.rst-store-logo { width:82px; height:82px; border-radius:18px; border:3px solid #fff; background:#fff center/cover no-repeat; flex-shrink:0; display:flex; align-items:center; justify-content:center; color:#e63946; font-size:32px; overflow:hidden; }
.rst-store-logo img { width:100%; height:100%; object-fit:cover; }
.rst-store-info h1 { color:#fff; font-size:24px; font-weight:900; margin:0 0 4px; }
.rst-store-info .sub { color:rgba(255,255,255,.9); font-size:13.5px; display:flex; gap:12px; flex-wrap:wrap; }
.rst-store-info .sub .fa { margin-right:4px; }

/* Open/Closed badge — top-right corner of hero */
.rst-hero-status-corner {
  position:absolute; top:16px; right:16px; z-index:5;
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(0,0,0,.48); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(255,255,255,.18); border-radius:24px;
  padding:7px 14px; font-size:13px; font-weight:700; color:#fff;
}
.rst-hero-status-corner.open { color:#4ade80; }
.rst-hero-status-corner.closed { color:#f87171; }
.rst-hero-status-dot {
  width:9px; height:9px; border-radius:50%; flex-shrink:0; display:inline-block;
}
.rst-hero-status-corner.open .rst-hero-status-dot { background:#4ade80; animation:rstStatusPulse 2s infinite; }
.rst-hero-status-corner.closed .rst-hero-status-dot { background:#f87171; }
@keyframes rstStatusPulse {
  0%   { box-shadow:0 0 0 0 rgba(74,222,128,.6); }
  70%  { box-shadow:0 0 0 9px rgba(74,222,128,0); }
  100% { box-shadow:0 0 0 0 rgba(74,222,128,0); }
}

/* Hero star rating row */
.rst-hero-rating {
  display:inline-flex; align-items:center; gap:6px;
  margin-top:8px; color:rgba(255,255,255,.95);
}
.rst-hero-stars-row { display:inline-flex; gap:2px; }
.rst-hero-stars-row .fa { font-size:13px; color:#ffd166; }
.rst-hero-stars-row .rst-se { color:rgba(255,255,255,.32); }
.rst-hero-rating-num { font-size:13.5px; font-weight:800; }
.rst-hero-rating-cnt { font-size:12.5px; color:rgba(255,255,255,.72); font-weight:500; }


/* ============================================================
   Two-column store layout (menu left + basket right)
   ============================================================ */
/* Single-column layout — basket is now a drawer, no right panel */
.rst-store-layout { display:block; }
.rst-menu-col { min-width:0; }

/* ---- 3D Basket icon in tabs row ---- */
.rst-tab-basket-btn {
  flex-shrink:0; width:44px; height:44px; border-radius:50%; border:none; cursor:pointer;
  background:linear-gradient(145deg,#ff6b7a,#e63946,#b91c1c);
  color:#fff; font-size:17px;
  display:flex; align-items:center; justify-content:center; position:relative;
  box-shadow:0 4px 12px rgba(230,57,70,.45), 0 2px 4px rgba(0,0,0,.15), inset 0 1px 0 rgba(255,255,255,.22);
  transition:transform .15s, box-shadow .15s;
  margin-left:4px;
}
.rst-tab-basket-btn:hover { transform:translateY(-2px) scale(1.06); box-shadow:0 8px 22px rgba(230,57,70,.55),inset 0 1px 0 rgba(255,255,255,.22); }
.rst-tab-basket-btn:active { transform:scale(.96); box-shadow:0 2px 6px rgba(230,57,70,.3),inset 0 1px 0 rgba(255,255,255,.1); }
.rst-tab-basket-badge {
  position:absolute; top:-4px; right:-4px;
  background:#fff; color:#e63946; font-size:9px; font-weight:900;
  min-width:18px; height:18px; border-radius:9px; padding:0 4px;
  display:flex; align-items:center; justify-content:center;
  border:2px solid #e63946; line-height:1; box-shadow:0 1px 4px rgba(0,0,0,.15);
}

/* ---- Hero rating as a clickable button ---- */
.rst-hero-rating-btn { background:none; border:none; padding:0; cursor:pointer; display:flex; align-items:center; gap:6px; }
.rst-hero-rating-btn:hover .rst-hero-stars-row .fa { transform:scale(1.15); }

/* ---- Owner dashboard overlay on hero ---- */
.rst-owner-overlay-btn {
  position:absolute; bottom:14px; right:14px; z-index:5;
  background:rgba(0,0,0,.65); backdrop-filter:blur(8px);
  color:#fff; font-size:12px; font-weight:700;
  padding:8px 14px; border-radius:10px; text-decoration:none;
  display:flex; align-items:center; gap:7px;
  box-shadow:0 4px 16px rgba(0,0,0,.3); transition:background .15s;
}
.rst-owner-overlay-btn:hover { background:rgba(0,0,0,.82); color:#fff; text-decoration:none; }
/* ---- Corner button inside red mkt-header (My Dashboard / Add Business) ---- */
.rst-mkt-corner-btn {
  position:absolute; top:12px; right:16px; z-index:2;
  background:rgba(0,0,0,.32); backdrop-filter:blur(6px);
  color:#fff; font-size:12px; font-weight:700;
  padding:7px 13px; border-radius:20px; text-decoration:none;
  display:inline-flex; align-items:center; gap:6px;
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 2px 8px rgba(0,0,0,.2); transition:background .15s;
}
.rst-mkt-corner-btn:hover { background:rgba(0,0,0,.55); color:#fff; text-decoration:none; }
.rst-mkt-corner-apply { background:rgba(255,255,255,.18); }
.rst-mkt-corner-apply:hover { background:rgba(255,255,255,.30); }

/* ---- Meal Deal strip ---- */
.rst-deal-strip { background:linear-gradient(135deg,#1a1e2e 0%,#252b40 100%); border-radius:18px; overflow:hidden; margin-bottom:24px; box-shadow:0 8px 32px rgba(0,0,0,.18); }
.rst-deal-header { background:linear-gradient(90deg,#e63946,#c0202d); padding:14px 20px; display:flex; align-items:center; gap:14px; }
.rst-deal-fire { font-size:28px; filter:drop-shadow(0 2px 6px rgba(0,0,0,.3)); flex-shrink:0; }
.rst-deal-header-text { font-size:17px; font-weight:900; color:#fff; letter-spacing:1.5px; text-transform:uppercase; line-height:1; }
.rst-deal-header-sub { font-size:11.5px; color:rgba(255,255,255,.7); margin-top:2px; }
.rst-deal-nav-btn { margin-left:auto; flex-shrink:0; width:36px; height:36px; border-radius:50%; border:none; cursor:pointer; background:rgba(255,255,255,.18); color:#fff; font-size:14px; display:flex; align-items:center; justify-content:center; transition:background .15s, transform .15s; }
.rst-deal-nav-btn:hover { background:rgba(255,255,255,.30); transform:scale(1.08); }
.rst-deal-items { padding:14px 16px; display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.rst-deal-item {
  display:flex; flex-direction:column;
  background:rgba(255,255,255,.07); border-radius:14px; overflow:hidden;
  cursor:pointer; border:1px solid rgba(255,255,255,.08);
  transition:background .18s, transform .15s;
}
.rst-deal-item:hover { background:rgba(255,255,255,.13); transform:translateY(-2px); }
.rst-deal-extra { display:none; }
.rst-deal-items.expanded .rst-deal-extra { display:flex; }
.rst-deal-item-img { width:100%; height:110px; object-fit:cover; }
.rst-deal-item-ph { width:100%; height:110px; background:rgba(255,255,255,.06); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.22); font-size:30px; }
.rst-deal-item-body { flex:1; padding:10px 10px 12px; display:flex; flex-direction:column; gap:5px; }
.rst-deal-item-name { font-weight:800; font-size:13px; color:#fff; line-height:1.3; }
.rst-deal-item-desc { font-size:11.5px; color:rgba(255,255,255,.55); overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; flex:1; }
.rst-deal-item-foot { display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:6px; }
.rst-deal-item-price { font-size:16px; font-weight:900; color:#ffd166; }
.rst-deal-opts { font-size:10px; font-weight:600; color:rgba(255,255,255,.4); }
.rst-deal-add-btn {
  flex-shrink:0; width:30px; height:30px; border-radius:50%; border:none; cursor:pointer;
  background:#e63946; color:#fff; font-size:12px;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 3px 10px rgba(230,57,70,.5); transition:transform .15s, box-shadow .15s;
}
.rst-deal-add-btn:hover { transform:scale(1.15); box-shadow:0 5px 14px rgba(230,57,70,.65); }
@media (max-width:600px) { .rst-deal-items { grid-template-columns:repeat(2,1fr); } }

/* 2-column card grid inside each category */
.rst-items-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:12px; }

/* menu */
/* Category tab strip (public restaurant page) */
.rst-menu-tabs-wrap { position:sticky; top:0; z-index:100; display:flex; align-items:center; gap:4px; margin-bottom:16px; background:#fff; border:1px solid var(--rst-line); border-radius:14px; padding:6px 8px; box-shadow:0 2px 8px rgba(0,0,0,.04); overflow:hidden; }
.rst-menu-tabs { display:flex; gap:6px; overflow-x:auto; scroll-behavior:smooth; scrollbar-width:none; flex:1; padding:2px 0; }
.rst-menu-tabs::-webkit-scrollbar { display:none; }
.rst-menu-tab { flex-shrink:0; padding:8px 16px; border-radius:10px; border:none; background:transparent; font-size:13.5px; font-weight:700; color:var(--rst-muted); cursor:pointer; transition:all .15s; white-space:nowrap; }
.rst-menu-tab:hover { background:#f0f2f5; color:var(--rst-ink); }
.rst-menu-tab.active { background:#e63946; color:#fff; }
.rst-menu-tab-arrow { flex-shrink:0; width:32px; height:32px; border-radius:50%; border:1.5px solid var(--rst-line); background:#fff; color:var(--rst-muted); font-size:12px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all .15s; }
.rst-menu-tab-arrow:hover { border-color:#e63946; color:#e63946; background:#fff0f1; }
.rst-menu-cat { margin-bottom:18px; background:#fff; border:1px solid var(--rst-line); border-radius:18px; padding:18px 18px 6px; box-shadow:0 2px 10px rgba(0,0,0,.04); }
.rst-menu-cat h3 { font-size:17px; font-weight:800; color:var(--rst-ink); margin:0 0 14px; padding-bottom:10px; border-bottom:2px solid var(--rst-line); display:flex; align-items:center; gap:8px; }
.rst-menu-cat h3::before { content:""; display:inline-block; width:4px; height:18px; border-radius:3px; background:#e63946; }
/* Card-style menu items (v5.5) */
.rst-item { display:flex; gap:12px; background:#fff; border:1px solid var(--rst-line); border-radius:14px; padding:14px; margin-bottom:0; align-items:flex-start; transition:box-shadow .15s, transform .15s; position:relative; }
.rst-item.unavail { opacity:.55; }
.rst-item-body { flex:1; min-width:0; }
.rst-item-name { font-size:14.5px; font-weight:700; color:var(--rst-ink); margin:0 0 4px; }
.rst-item-desc { font-size:12.5px; color:var(--rst-muted); margin:0 0 8px; line-height:1.45; }
.rst-item-foot { display:flex; align-items:center; justify-content:space-between; }
.rst-item-price { font-size:15px; font-weight:800; color:#c0202d; }
.rst-item-badge { font-size:10.5px; font-weight:700; color:#c0202d; background:#fff1f2; padding:2px 8px; border-radius:6px; margin-left:8px; }
.rst-item-hoverable { cursor:pointer; }
.rst-item-hoverable:hover { transform:translateY(-2px); box-shadow:0 6px 20px rgba(0,0,0,.09); }

/* Add button — absolute at bottom-right of image (v5.5) */
.rst-add-btn {
  position:absolute; bottom:-10px; right:-10px;
  width:32px; height:32px; border-radius:50%;
  background:#e63946; color:#fff; border:2.5px solid #fff;
  font-size:15px; font-weight:700; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  padding:0; line-height:1; z-index:2;
  box-shadow:0 3px 10px rgba(230,57,70,.4);
  transition:transform .12s;
}
.rst-add-btn:hover { transform:scale(1.15); }

/* ============================================================
   Basket panel (sticky desktop / slide-up mobile)
   ============================================================ */
.rst-basket { position:sticky; top:80px; background:#fff; border:1px solid var(--rst-line); border-radius:18px; overflow:hidden; box-shadow:0 4px 20px rgba(0,0,0,.06); display:flex; flex-direction:column; }
.rst-basket-head { background:#e63946; color:#fff; padding:16px 18px; font-weight:800; font-size:16px; display:flex; align-items:center; justify-content:space-between; flex-shrink:0; }
.rst-basket-close-btn { background:none; border:none; font-size:24px; cursor:pointer; color:rgba(255,255,255,.75); line-height:1; }
.rst-basket-close-btn:hover { color:#fff; }
.rst-basket-body { padding:14px 16px; max-height:400px; overflow-y:auto; flex:1; }
.rst-basket-empty { text-align:center; color:var(--rst-muted); padding:30px 10px; font-size:14px; }
.rst-basket-empty .fa { font-size:38px; color:#e6e8ec; display:block; margin-bottom:10px; }
.rst-bl { display:flex; gap:10px; padding:10px 0; border-bottom:1px solid var(--rst-line); }
.rst-bl:last-child { border-bottom:none; }
.rst-bl-info { flex:1; min-width:0; }
.rst-bl-name { font-size:13.5px; font-weight:700; color:var(--rst-ink); }
.rst-bl-opts { font-size:11.5px; color:var(--rst-muted); margin-top:2px; }
.rst-bl-price { font-size:13px; font-weight:700; color:#c0202d; white-space:nowrap; }
.rst-qty { display:inline-flex; align-items:center; gap:8px; margin-top:6px; }
.rst-qty button { width:24px; height:24px; border-radius:7px; border:1px solid var(--rst-line); background:#f7f8fa; cursor:pointer; font-weight:700; color:#444; }
.rst-qty span { font-size:13px; font-weight:700; min-width:18px; text-align:center; }
.rst-basket-foot { padding:14px 16px; border-top:1px solid var(--rst-line); flex-shrink:0; }
.rst-tot-row { display:flex; justify-content:space-between; font-size:13.5px; color:#555; margin-bottom:6px; }
.rst-tot-row.grand { font-size:17px; font-weight:800; color:var(--rst-ink); margin:8px 0 12px; }

/* Mobile basket backdrop */
.rst-basket-mobile-bg { position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:9400; display:none; }
.rst-basket-mobile-bg.show { display:block; }

/* reviews */
.rst-reviews { background:#fff; border:1px solid var(--rst-line); border-radius:18px; padding:20px; margin-top:20px; }
.rst-review { display:flex; gap:12px; padding:12px 0; border-bottom:1px solid var(--rst-line); }
.rst-review:last-child { border-bottom:none; }
.rst-review img { width:42px; height:42px; border-radius:50%; object-fit:cover; }
.rst-stars { display:inline-flex; gap:2px; margin:2px 0 4px; }
.rst-star-pick { font-size:26px; color:#e2e5ea; cursor:pointer; }
.rst-star-pick.on { color:#f59e0b; }

/* ============================================================
   Modals
   ============================================================ */
.rst-modal { position:fixed; inset:0; z-index:100000; display:none; align-items:center; justify-content:center; padding:16px; }
.rst-modal.show { display:flex; }
.rst-modal-bd { position:absolute; inset:0; background:rgba(15,18,25,.55); }
.rst-modal-panel { position:relative; z-index:1; background:#fff; border-radius:20px; width:480px; max-width:100%; max-height:92vh; overflow-y:auto; box-shadow:0 30px 80px rgba(0,0,0,.3); }
.rst-modal-panel.wide { width:620px; }
.rst-modal-head { padding:20px 22px; border-bottom:1px solid var(--rst-line); display:flex; align-items:center; justify-content:space-between; }
.rst-modal-head h3 { margin:0; font-size:18px; font-weight:800; color:var(--rst-ink); }
.rst-modal-x { background:none; border:none; font-size:24px; cursor:pointer; color:#999; line-height:1; }
.rst-modal-body { padding:22px; }
.rst-modal-foot { padding:16px 22px; border-top:1px solid var(--rst-line); display:flex; gap:10px; }

/* ============================================================
   Redesigned item popup (options + simple items)
   ============================================================ */
.rst-opt-modal-panel { width:520px; overflow:hidden; }

/* Hero image area */
.rst-opt-hero { position:relative; width:100%; height:240px; overflow:hidden; background:#f3f4f6; flex-shrink:0; }
.rst-opt-hero img { width:100%; height:100%; object-fit:cover; display:block; }
.rst-opt-hero-close {
  position:absolute; top:12px; right:12px;
  width:34px; height:34px; border-radius:50%;
  background:rgba(0,0,0,.45); border:none; color:#fff;
  font-size:20px; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  backdrop-filter:blur(4px); transition:background .15s;
}
.rst-opt-hero-close:hover { background:rgba(0,0,0,.65); }

/* Header sits right below hero or at top if no image */
.rst-opt-head { padding:18px 22px 14px; }
.rst-opt-head h3 { font-size:19px; font-weight:900; }

/* Description text below header */
.rst-opt-desc-text { margin:0; padding:0 22px 14px; color:#6b7280; font-size:13.5px; line-height:1.55; border-bottom:1px solid var(--rst-line); }

/* Options body */
.rst-opt-modal-body { padding:18px 22px; max-height:260px; overflow-y:auto; }

/* Option groups */
.rst-opt-group { margin-bottom:20px; }
.rst-opt-group:last-child { margin-bottom:0; }
.rst-opt-group h4 { font-size:13.5px; font-weight:800; color:var(--rst-ink); margin:0 0 10px; display:flex; align-items:center; gap:8px; }
.rst-opt-req { font-size:10px; font-weight:700; color:#dc2626; background:#fef2f2; padding:2px 8px; border-radius:20px; border:1px solid #fecaca; text-transform:uppercase; letter-spacing:.3px; }
.rst-opt-values { display:flex; flex-direction:column; gap:8px; }
.rst-opt-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.rst-opt-val { display:flex; align-items:center; justify-content:space-between; padding:12px 16px; border:1.5px solid var(--rst-line); border-radius:12px; cursor:pointer; font-size:14px; transition:all .15s; user-select:none; }
.rst-opt-val:hover { border-color:#e63946; background:#fff8f8; }
.rst-opt-val.sel { border-color:#e63946; background:#fff1f2; }
.rst-opt-val .delta { color:#c0202d; font-weight:700; font-size:13px; white-space:nowrap; margin-left:8px; }

/* Footer */
.rst-opt-modal-foot { padding:14px 18px; background:#fafbfc; align-items:center; gap:12px; }
.rst-opt-qty-ctrl {
  display:inline-flex; align-items:center; gap:0;
  border:1.5px solid var(--rst-line); border-radius:12px;
  overflow:hidden; flex-shrink:0;
}
.rst-opt-qty-ctrl button {
  width:42px; height:42px; border:none; background:#fff;
  cursor:pointer; font-weight:800; color:#444; font-size:20px;
  display:flex; align-items:center; justify-content:center;
  transition:background .15s;
}
.rst-opt-qty-ctrl button:hover { background:#f3f4f6; }
.rst-opt-qty-ctrl span {
  font-size:15px; font-weight:800; min-width:38px; text-align:center;
  border-left:1.5px solid var(--rst-line); border-right:1.5px solid var(--rst-line);
  height:42px; display:flex; align-items:center; justify-content:center;
}
.rst-opt-add-btn { height:44px; font-size:14px; font-weight:800; border-radius:12px; }
.rst-opt-price-tag { font-weight:600; opacity:.88; }

/* ============================================================
   Restaurant closed popup
   ============================================================ */
.rst-closed-panel { width:400px; text-align:center; overflow:hidden; }
.rst-closed-x {
  position:absolute; top:14px; right:16px;
  background:none; border:none; font-size:24px; cursor:pointer; color:#9ca3af; line-height:1;
}
.rst-closed-x:hover { color:#374151; }
.rst-closed-body { padding:36px 28px 32px; }
.rst-closed-icon { font-size:60px; margin-bottom:16px; line-height:1; }
.rst-closed-body h3 { font-size:22px; font-weight:900; margin:0 0 10px; color:var(--rst-ink); }
.rst-closed-body p { color:#6b7280; font-size:14.5px; margin:0 0 22px; line-height:1.6; }

/* forms */
.rst-field { margin-bottom:16px; }
.rst-field label { display:block; font-size:13px; font-weight:700; color:#475569; margin-bottom:6px; }
.rst-field input[type=text], .rst-field input[type=number], .rst-field input[type=email], .rst-field input[type=tel], .rst-field textarea, .rst-field select {
  width:100%; padding:11px 14px; border:1.5px solid var(--rst-line); border-radius:11px; font-size:14px; font-family:inherit;
}
.rst-field input:focus, .rst-field textarea:focus, .rst-field select:focus { outline:none; border-color:#e63946; }
.rst-field textarea { min-height:80px; resize:vertical; }
.rst-row2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.rst-toggle { display:flex; align-items:center; gap:10px; font-size:14px; color:#333; cursor:pointer; }
.rst-toggle input { width:18px; height:18px; accent-color:#e63946; }
.rst-help { font-size:12px; color:var(--rst-muted); margin-top:4px; }

/* ============================================================
   Owner dashboard
   ============================================================ */
/* Legacy (keep for any lingering theme refs) */
.rst-dash-head { background:#2b2f3a; border-radius:20px; padding:22px 24px; color:#fff; margin-bottom:20px; display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.rst-dash-head .logo { width:64px; height:64px; border-radius:16px; background:#fff center/cover; display:flex; align-items:center; justify-content:center; color:#e63946; font-size:26px; overflow:hidden; }
.rst-dash-head .logo img { width:100%; height:100%; object-fit:cover; }
.rst-dash-head h1 { font-size:21px; font-weight:800; margin:0 0 4px; }
.rst-dash-head .sub { font-size:13px; color:rgba(255,255,255,.65); }
.rst-dash-head .spacer { flex:1; }
/* New dashboard cover + logo header */
.rst-dash-cover { position:relative; border-radius:20px 20px 0 0; height:180px; background:#2b2f3a center/cover no-repeat; overflow:visible; }
.rst-dash-cover.has-cover { background-size:cover; }
.rst-dash-cover-overlay { position:absolute; inset:0; background:linear-gradient(160deg,rgba(0,0,0,.28) 0%,rgba(0,0,0,.55) 100%); border-radius:20px 20px 0 0; }
.rst-dash-cover-actions { position:absolute; top:14px; right:14px; display:flex; gap:8px; z-index:3; }
.rst-dash-photo-btn { display:inline-flex; align-items:center; gap:6px; background:rgba(0,0,0,.45); border:1.5px solid rgba(255,255,255,.25); color:#fff; border-radius:20px; padding:6px 12px; font-size:12.5px; font-weight:700; cursor:pointer; transition:background .15s; }
.rst-dash-photo-btn:hover { background:rgba(0,0,0,.7); }
.rst-dash-photo-btn.danger { padding:6px 10px; }
.rst-dash-photo-btn.danger:hover { background:rgba(220,38,38,.7); }
/* Logo bubble on cover */
.rst-dash-logo-wrap { position:absolute; bottom:-42px; left:22px; z-index:4; display:flex; align-items:flex-end; gap:8px; }
.rst-dash-logo { width:84px; height:84px; border-radius:50%; background:#fff; border:4px solid #fff; box-shadow:0 4px 16px rgba(0,0,0,.18); display:flex; align-items:center; justify-content:center; color:#e63946; font-size:32px; overflow:hidden; flex-shrink:0; }
.rst-dash-logo img { width:100%; height:100%; object-fit:cover; display:block; border-radius:50%; }
.rst-dash-logo-btns { display:flex; gap:5px; margin-bottom:6px; }
.rst-dash-logo-btn { display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:50%; background:rgba(0,0,0,.45); border:1.5px solid rgba(255,255,255,.3); color:#fff; font-size:12px; cursor:pointer; transition:background .15s; }
.rst-dash-logo-btn:hover { background:rgba(0,0,0,.7); }
.rst-dash-logo-btn.danger:hover { background:rgba(220,38,38,.7); }
/* Info row below cover */
.rst-dash-info-row { background:#fff; border:1px solid var(--rst-line); border-top:none; border-radius:0 0 20px 20px; padding:52px 22px 18px; display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:20px; }
.rst-dash-name { font-size:21px; font-weight:900; color:var(--rst-ink); margin:0 0 4px; }
.rst-dash-sub { font-size:13px; color:var(--rst-muted); display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.rst-dash-pub-link { color:#e63946; font-weight:700; text-decoration:none; }
.rst-dash-pub-link:hover { text-decoration:underline; }
.rst-dash-info-left { flex:1; min-width:0; }
.rst-dash-info-right { display:flex; align-items:center; gap:8px; flex-shrink:0; flex-wrap:wrap; }
.rst-open-toggle { display:inline-flex; align-items:center; gap:8px; background:#f6f7f9; border:1.5px solid var(--rst-line); padding:8px 14px; border-radius:12px; font-size:13px; font-weight:600; color:var(--rst-ink); cursor:default; }
.switch { position:relative; width:44px; height:24px; }
.switch input { opacity:0; width:0; height:0; }
.switch .sl { position:absolute; cursor:pointer; inset:0; background:#5a6172; border-radius:24px; transition:.2s; }
.switch .sl:before { content:""; position:absolute; height:18px; width:18px; left:3px; bottom:3px; background:#fff; border-radius:50%; transition:.2s; }
.switch input:checked + .sl { background:#16a34a; }
.switch input:checked + .sl:before { transform:translateX(20px); }

.rst-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:22px; }
.rst-stat { background:#fff; border:1px solid var(--rst-line); border-radius:16px; padding:18px; }
.rst-stat .v { font-size:24px; font-weight:900; color:var(--rst-ink); }
.rst-stat .l { font-size:12.5px; color:var(--rst-muted); margin-top:2px; }
.rst-stat .ic { width:38px; height:38px; border-radius:11px; display:flex; align-items:center; justify-content:center; font-size:16px; margin-bottom:10px; }
.rst-stat .ic.o { background:#fff1f2; color:#c0202d; }
.rst-stat .ic.g { background:#ecfdf5; color:#16a34a; }
.rst-stat .ic.b { background:#eff6ff; color:#2563eb; }
.rst-stat .ic.p { background:#faf5ff; color:#9333ea; }

.rst-tabs { display:flex; gap:6px; background:#fff; border:1px solid var(--rst-line); border-radius:14px; padding:6px; margin-bottom:20px; flex-wrap:wrap; }
.rst-tab { padding:10px 18px; border-radius:10px; font-size:14px; font-weight:700; color:#555; cursor:pointer; border:none; background:none; }
.rst-tab.active { background:#e63946; color:#fff; }
.rst-pane { display:none; }
.rst-pane.active { display:block; }

.rst-panel { background:#fff; border:1px solid var(--rst-line); border-radius:16px; padding:22px; margin-bottom:18px; }
.rst-panel-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; flex-wrap:wrap; gap:10px; }
.rst-panel-head h3 { font-size:17px; font-weight:800; color:var(--rst-ink); margin:0; }

/* menu manager rows */
.rst-mm-cat { margin-bottom:20px; }
.rst-mm-cat-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.rst-mm-cat-head h4 { font-size:15px; font-weight:800; color:var(--rst-ink); margin:0; }
.rst-mm-item { display:flex; align-items:center; gap:12px; padding:10px 12px; border:1px solid var(--rst-line); border-radius:12px; margin-bottom:8px; }
.rst-mm-item img { width:52px; height:52px; border-radius:9px; object-fit:cover; background:#f0f2f5; }
.rst-mm-item .n { font-weight:700; font-size:14px; color:var(--rst-ink); }
.rst-mm-item .d { font-size:12px; color:var(--rst-muted); }
.rst-mm-item .pr { font-weight:800; color:#c0202d; margin-left:auto; }
.rst-mm-actions { display:flex; gap:6px; }
.rst-iconbtn { width:32px; height:32px; border-radius:8px; border:1px solid var(--rst-line); background:#fff; cursor:pointer; color:#666; }
.rst-iconbtn:hover { background:#f7f8fa; }
.rst-iconbtn.del:hover { background:#fef2f2; color:#dc2626; border-color:#fecaca; }

/* order rows */
.rst-order { border:1px solid var(--rst-line); border-radius:14px; padding:14px 16px; margin-bottom:10px; }
.rst-order-head { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:8px; }
.rst-order-ref { font-weight:800; color:var(--rst-ink); }
.rst-order-items { font-size:13px; color:#555; line-height:1.5; }
.rst-ostatus { font-size:11.5px; font-weight:800; padding:4px 10px; border-radius:8px; text-transform:capitalize; }
.rst-ostatus.new { background:#fff1f2; color:#c0202d; }
.rst-ostatus.confirmed,.rst-ostatus.preparing { background:#eff6ff; color:#2563eb; }
.rst-ostatus.ready { background:#f0fdf4; color:#16a34a; }
.rst-ostatus.completed { background:#ecfdf5; color:#065f46; }
.rst-ostatus.cancelled { background:#fef2f2; color:#dc2626; }

/* ============================================================
   Onboarding / Apply
   ============================================================ */
.rst-onboard { max-width:620px; margin:0 auto; background:#fff; border:1px solid var(--rst-line); border-radius:20px; overflow:hidden; }
.rst-onboard-head { background:#e63946; color:#fff; padding:30px; text-align:center; }
.rst-onboard-head .ic { font-size:44px; margin-bottom:8px; }
.rst-onboard-head h2 { font-size:22px; font-weight:900; margin:0 0 6px; }
.rst-onboard-head p { font-size:14px; opacity:.9; margin:0; }
.rst-onboard-body { padding:26px; }

/* plans */
.rst-plans { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:14px; }
.rst-plan { border:2px solid var(--rst-line); border-radius:16px; padding:20px; text-align:center; cursor:pointer; transition:all .15s; }
.rst-plan:hover, .rst-plan.sel { border-color:#e63946; box-shadow:0 8px 22px rgba(230,57,70,.15); }
.rst-plan .pn { font-weight:800; font-size:16px; color:var(--rst-ink); }
.rst-plan .pp { font-size:28px; font-weight:900; color:#c0202d; margin:8px 0 2px; }
.rst-plan .pd { font-size:12.5px; color:var(--rst-muted); }

/* alerts */
.rst-alert { padding:14px 16px; border-radius:12px; font-size:13.5px; margin-bottom:16px; display:flex; gap:10px; align-items:flex-start; }
.rst-alert .fa { margin-top:2px; }
.rst-alert.warn { background:#fffbeb; border:1px solid #fde68a; color:#92400e; }
.rst-alert.info { background:#eff6ff; border:1px solid #bfdbfe; color:#1e40af; }
.rst-alert.ok { background:#ecfdf5; border:1px solid #a7f3d0; color:#065f46; }

/* floating basket button (mobile) */
.rst-fab { display:none; position:fixed; left:16px; right:16px; bottom:16px; z-index:9000; }
.rst-fab button { width:100%; padding:15px; border-radius:14px; border:none; background:#e63946; color:#fff; font-weight:800; font-size:15px; box-shadow:0 10px 30px rgba(230,57,70,.35); display:flex; align-items:center; justify-content:space-between; padding-left:20px; padding-right:20px; }

/* apply page */
.rst-apply-hero { background:#e63946; padding:36px 30px 30px; text-align:center; color:#fff; }
.rst-apply-hero-icon { font-size:48px; margin-bottom:10px; }
.rst-apply-hero h1 { font-size:26px; font-weight:900; margin:0 0 8px; }
.rst-apply-hero p { font-size:15px; opacity:.9; margin:0; }

.rst-apply-benefits { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:24px; }
.rst-apply-benefit { display:flex; align-items:flex-start; gap:14px; background:#fff; border:1px solid var(--rst-line); border-radius:14px; padding:16px; }
.rst-apply-benefit-icon { width:42px; height:42px; border-radius:11px; background:#fff1f2; color:#c0202d; font-size:18px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.rst-apply-benefit strong { display:block; font-size:14px; color:var(--rst-ink); margin-bottom:3px; }
.rst-apply-benefit p { font-size:12.5px; color:var(--rst-muted); margin:0; }

.rst-apply-rules { background:#fffbeb; border:1px solid #fde68a; border-radius:14px; padding:18px 20px; margin-bottom:24px; }
.rst-apply-rules h3 { font-size:14px; font-weight:800; color:#92400e; margin:0 0 12px; display:flex; align-items:center; gap:8px; }
.rst-apply-rules ul { list-style:none; padding:0; margin:0; }
.rst-apply-rules li { font-size:13.5px; color:#78350f; margin-bottom:8px; display:flex; align-items:flex-start; gap:10px; }
.rst-apply-rules li:last-child { margin-bottom:0; }
.rst-apply-rules li .fa { color:#f59e0b; margin-top:2px; flex-shrink:0; }

.rst-apply-form-wrap { background:#fff; border:1px solid var(--rst-line); border-radius:16px; padding:24px; margin-bottom:20px; }
.rst-apply-form-wrap h3 { font-size:17px; font-weight:800; color:var(--rst-ink); margin:0 0 6px; display:flex; align-items:center; gap:9px; }
.rst-apply-form-wrap h3 .fa { color:#e63946; }
.rst-apply-section-label { font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:1px; color:var(--rst-muted); margin:0 0 12px; }
.rst-apply-login-notice { text-align:center; padding:40px 20px; background:#fff; border:1px solid var(--rst-line); border-radius:16px; margin-bottom:20px; }
.rst-apply-login-notice p { font-size:15px; color:#555; margin-bottom:16px; }

/* apply thank-you */
@keyframes rstBounceIn { 0%{transform:scale(0);opacity:0} 60%{transform:scale(1.15);opacity:1} 100%{transform:scale(1)} }
.rst-apply-thankyou { text-align:center; padding:40px 24px; }
.rst-apply-ty-icon { font-size:72px; color:#16a34a; margin-bottom:16px; animation:rstBounceIn .6s cubic-bezier(.175,.885,.32,1.275) forwards; }
.rst-apply-thankyou h2 { font-size:26px; font-weight:900; color:var(--rst-ink); margin:0 0 12px; }
.rst-apply-thankyou p { font-size:15px; color:#555; line-height:1.6; max-width:420px; margin:0 auto; }

/* ============================================================
   Featured items strip (restaurant page)
   ============================================================ */
.rst-featured-strip { margin-bottom:24px; }
.rst-featured-strip .rst-sec-title { font-size:15px; margin-bottom:12px; }
.rst-featured-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.rst-feat-item { display:flex; gap:12px; background:#fff1f2; border:1.5px solid #fecaca; border-radius:14px; padding:12px; cursor:pointer; transition:box-shadow .18s, transform .18s; }
.rst-feat-item:hover { box-shadow:0 6px 20px rgba(220,38,38,.13); transform:translateY(-2px); }
.rst-feat-item-img { width:72px; height:72px; border-radius:10px; object-fit:cover; flex-shrink:0; }
.rst-feat-item-ph { width:72px; height:72px; border-radius:10px; background:#f8f8f8; display:flex; align-items:center; justify-content:center; color:#ddd; font-size:24px; flex-shrink:0; }
.rst-feat-item-body { flex:1; min-width:0; display:flex; flex-direction:column; justify-content:center; }
.rst-feat-item-name { font-weight:700; font-size:14px; color:#1f2430; margin-bottom:4px; }
.rst-feat-item-desc { font-size:12px; color:#8a8f98; margin-bottom:6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rst-feat-item-price { font-weight:800; font-size:15px; color:#dc2626; }

.rst-item-clickable { cursor:pointer; }
.rst-item-clickable:hover { opacity:.85; }
.rst-item-name.rst-item-clickable:hover { color:#c0202d; }

/* ============================================================
   Approved / verified badge
   ============================================================ */
.rst-approved-badge { display:inline-flex; align-items:center; color:#16a34a; font-size:13px; margin-left:5px; vertical-align:middle; }
.rst-approved-badge-lg { font-size:13px; font-weight:700; background:rgba(22,163,74,.15); color:#16a34a; padding:3px 10px; border-radius:20px; gap:5px; }
.rst-card-name .rst-approved-badge { font-size:14px; }

/* ============================================================
   Save animation overlay
   ============================================================ */
@keyframes rstFadeUp { from{opacity:0;transform:translate(-50%,-50%) scale(.8)} to{opacity:1;transform:translate(-50%,-50%) scale(1)} }
.rst-save-toast {
  position:fixed; top:50%; left:50%; transform:translate(-50%,-50%);
  background:#fff; border-radius:20px; padding:28px 36px; text-align:center;
  box-shadow:0 20px 60px rgba(0,0,0,.18); z-index:300000;
  animation:rstFadeUp .3s ease; min-width:200px;
}
.rst-save-toast .icon { font-size:42px; margin-bottom:10px; }
.rst-save-toast .msg { font-size:16px; font-weight:700; color:#1f2430; }
.rst-save-toast.green .icon { color:#16a34a; }
.rst-save-toast.red .icon { color:#dc2626; }

/* ============================================================
   Search + filter (legacy helper)
   ============================================================ */
.rst-searchbar { display:flex; gap:10px; margin-bottom:18px; flex-wrap:wrap; }
.rst-searchbar input[type=text] { flex:1; min-width:220px; padding:12px 16px; border:1.5px solid var(--rst-line); border-radius:12px; font-size:14px; }
.rst-searchbar input[type=text]:focus { outline:none; border-color:#e63946; }
.rst-chips { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:22px; }
.rst-chip { padding:7px 15px; border-radius:20px; background:#fff; border:1.5px solid var(--rst-line); font-size:13px; font-weight:600; color:#555; text-decoration:none; transition:all .15s; }
.rst-chip:hover { border-color:#e63946; color:#c0202d; }
.rst-chip.active { background:#e63946; border-color:#e63946; color:#fff; }

/* ============================================================
   Cuisine chip/tag input
   ============================================================ */
.rst-chip-input {
  display:flex; flex-wrap:wrap; gap:6px; align-items:center;
  min-height:42px; padding:6px 12px;
  border:1.5px solid #eef0f2; border-radius:10px; cursor:text;
  background:#fff; transition:border-color .2s;
}
.rst-chip-input:focus-within { border-color:#e63946; }
.rst-chip {
  display:inline-flex; align-items:center; gap:5px;
  background:#ffeaea; color:#c0202d; border-radius:20px;
  padding:3px 10px; font-size:13px; font-weight:600;
}
.rst-chip-del { cursor:pointer; line-height:1; opacity:.7; font-size:15px; transition:opacity .15s; }
.rst-chip-del:hover { opacity:1; }

/* ============================================================
   Hero (legacy — single restaurant hero variant)
   ============================================================ */
.rst-hero { background:#e63946; border-radius:22px; padding:30px 30px 26px; margin-bottom:22px; position:relative; overflow:hidden; }
.rst-hero h1 { font-size:26px; font-weight:900; color:#fff; margin:0 0 6px; letter-spacing:-.5px; }
.rst-hero p { font-size:15px; color:rgba(255,255,255,.9); margin:0 0 16px; }
.rst-hero-actions { display:flex; gap:10px; flex-wrap:wrap; }
.rst-hero-corner-link { position:absolute; top:18px; right:18px; display:inline-flex; align-items:center; gap:6px; background:rgba(255,255,255,.18); color:#fff; font-size:12.5px; font-weight:700; padding:7px 14px; border-radius:20px; text-decoration:none; border:1.5px solid rgba(255,255,255,.35); transition:background .15s; }
.rst-hero-corner-link:hover { background:rgba(255,255,255,.30); color:#fff; }
.rst-hero-corner-link .fa { font-size:12px; }

/* ============================================================
   Blinking dot (kept for any lingering uses)
   ============================================================ */
@keyframes rstBlink { 0%,100%{opacity:1} 50%{opacity:.3} }
.rst-story-dot { font-size:9px; color:#e63946; animation:rstBlink 1.6s ease-in-out infinite; }

/* ============================================================
   Story viewer (full-screen fixed overlay — hidden by default)
   ============================================================ */
.rst-story-viewer {
  position:fixed; inset:0; z-index:200000;
  display:none; background:#000; overflow:hidden;
}
.rst-story-viewer.show { display:block; }
.rst-sv-wrap { position:relative; width:100%; height:100%; }
.rst-sv-progress {
  position:absolute; top:0; left:0; right:0; z-index:3;
  display:flex; gap:4px; padding:12px 16px 0;
}
.rst-sv-bar { flex:1; height:3px; background:rgba(255,255,255,.35); border-radius:2px; overflow:hidden; }
.rst-sv-bar-fill { height:100%; width:0; background:#fff; border-radius:2px; }
.rst-sv-header {
  position:absolute; top:20px; left:16px; z-index:3;
  display:flex; align-items:center; gap:10px;
}
.rst-sv-avatar { width:38px; height:38px; border-radius:50%; object-fit:cover; border:2px solid #fff; background:#555; display:flex; align-items:center; justify-content:center; }
.rst-sv-name { color:#fff; font-weight:700; font-size:14px; text-decoration:none; display:block; }
.rst-sv-time { color:rgba(255,255,255,.75); font-size:12px; }
.rst-sv-close {
  position:absolute; top:16px; right:16px; z-index:3;
  background:rgba(0,0,0,.4); border:none; color:#fff;
  font-size:24px; width:36px; height:36px; border-radius:50%;
  cursor:pointer; display:flex; align-items:center; justify-content:center; line-height:1;
}
.rst-sv-nav { position:absolute; inset:0; display:flex; z-index:2; pointer-events:none; }
.rst-sv-nav-l, .rst-sv-nav-r { flex:1; cursor:pointer; pointer-events:all; }
.rst-sv-media { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; z-index:1; }
.rst-sv-text {
  position:absolute; bottom:60px; left:0; right:0; z-index:3;
  padding:20px 24px; background:linear-gradient(transparent,rgba(0,0,0,.55));
  color:#fff; font-size:15px; line-height:1.5;
}

/* ============================================================
   Story section (single restaurant page)
   ============================================================ */
.rst-story-section { background:#fff; border:1px solid var(--rst-line); border-radius:16px; padding:14px 16px; margin-bottom:20px; box-shadow:0 2px 8px rgba(0,0,0,.04); }
.rst-story-section-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.rst-story-section-title { display:flex; align-items:center; gap:8px; font-weight:800; font-size:15px; color:var(--rst-ink); }
.rst-story-count-badge { background:#e63946; color:#fff; border-radius:20px; padding:1px 7px; font-size:11.5px; font-weight:700; }
.rst-story-strip { display:flex; gap:14px; overflow-x:auto; scrollbar-width:none; padding:4px 2px; }
.rst-story-strip::-webkit-scrollbar { display:none; }
.rst-story-bubble { display:flex; flex-direction:column; align-items:center; gap:6px; cursor:pointer; flex-shrink:0; }
.rst-story-bubble:hover .rst-story-av { transform:scale(1.05); }
.rst-story-av-wrap { position:relative; }
.rst-story-av { width:64px; height:64px; border-radius:50%; background:#f0f2f5; border:3px solid var(--rst-line); display:flex; align-items:center; justify-content:center; overflow:hidden; font-size:22px; color:#c9ccd2; transition:transform .18s; }
.rst-story-av img { width:100%; height:100%; object-fit:cover; }
.rst-story-av.has-story { border-color:#e63946; box-shadow:0 0 0 2px #fff, 0 0 0 4.5px #e63946; }
.rst-story-av .no-img { display:flex; align-items:center; justify-content:center; width:100%; height:100%; }
.rst-story-num-badge { position:absolute; bottom:-2px; right:-2px; background:#e63946; color:#fff; border-radius:50%; width:22px; height:22px; font-size:10.5px; font-weight:700; display:flex; align-items:center; justify-content:center; border:2px solid #fff; }
.rst-story-bubble > span:last-child { font-size:11.5px; font-weight:600; color:var(--rst-ink); max-width:72px; text-align:center; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rst-story-empty-state { text-align:center; padding:12px 10px 4px; color:var(--rst-muted); font-size:13.5px; }
.rst-story-empty-state .fa { font-size:26px; color:#e2e5ea; margin-bottom:8px; display:block; }
.rst-story-empty-state p { margin:0; }

/* ============================================================
   Hero FAB (basket icon pinned to hero photo)
   ============================================================ */
.rst-hero-fab { position:absolute; bottom:18px; right:18px; z-index:5; }
.rst-hero-fab-btn {
  position:relative; width:54px; height:54px; border-radius:50%;
  border:none; background:#e63946; color:#fff;
  font-size:22px; cursor:pointer; display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 22px rgba(230,57,70,.5); transition:transform .15s;
}
.rst-hero-fab-btn:hover { transform:scale(1.09); }
.rst-hero-fab-badge {
  position:absolute; top:-5px; right:-5px;
  min-width:20px; height:20px; border-radius:10px;
  background:#fff; color:#e63946; font-size:11px; font-weight:800;
  display:flex; align-items:center; justify-content:center;
  padding:0 5px; border:2px solid #e63946;
  box-shadow:0 2px 6px rgba(0,0,0,.18);
}
@keyframes rstBounce {
  0%   { transform:scale(1); }
  30%  { transform:scale(1.42); }
  60%  { transform:scale(0.88); }
  80%  { transform:scale(1.16); }
  100% { transform:scale(1); }
}
.rst-hero-fab-btn.bounce { animation:rstBounce .5s cubic-bezier(.175,.885,.32,1.275); }

/* ============================================================
   Description bar (below hero)
   ============================================================ */
.rst-desc-bar {
  display:flex; align-items:flex-start; gap:10px;
  background:#f6f7f9; border:1px solid var(--rst-line);
  border-radius:12px; padding:12px 20px;
  max-width:1200px; margin:14px auto 0;
  font-size:13.5px; color:#555; line-height:1.5;
}
.rst-desc-bar .fa { color:#e63946; margin-top:2px; flex-shrink:0; }

/* ============================================================
   Float bar (mobile only — shows when basket has items)
   Class-based: JS adds .has-items; CSS shows on mobile only
   ============================================================ */
.rst-float-bar {
  position:fixed; left:0; right:0; bottom:0; z-index:9000;
  display:none; padding:10px 14px 14px;
}
.rst-float-bar.has-items { display:block; }
.rst-float-bar-btn {
  width:100%; border:none; cursor:pointer;
  background:#e63946; color:#fff; border-radius:16px; padding:14px 20px;
  display:flex; align-items:center; justify-content:space-between;
  font-size:14px; font-weight:700;
  box-shadow:0 8px 30px rgba(230,57,70,.48); transition:transform .12s;
}
.rst-float-bar-btn:hover { transform:translateY(-2px); }
.rst-float-bar-left { display:flex; align-items:center; gap:8px; }
.rst-float-bar-left .fa { font-size:16px; }
.rst-float-bar-count { background:rgba(255,255,255,.25); border-radius:8px; padding:2px 8px; font-size:13px; font-weight:800; }
.rst-float-bar-mid { font-size:15px; font-weight:800; }
.rst-float-bar-total { font-size:15px; font-weight:800; }

/* ============================================================
   Basket drawer — slides up from bottom (mobile) / from right (desktop)
   ============================================================ */
.rst-basket-drawer {
  position:fixed; inset:0; z-index:10000;
  pointer-events:none; opacity:0; transition:opacity .25s;
}
.rst-basket-drawer.open { pointer-events:all; opacity:1; }
.rst-drawer-bg {
  position:absolute; inset:0; background:rgba(0,0,0,.5);
  opacity:0; transition:opacity .25s;
}
.rst-basket-drawer.open .rst-drawer-bg { opacity:1; }
/* Mobile: slide up sheet */
.rst-drawer-sheet {
  position:absolute; left:0; right:0; bottom:0;
  background:#fff; border-radius:24px 24px 0 0;
  max-height:85vh; display:flex; flex-direction:column;
  transform:translateY(100%); transition:transform .3s cubic-bezier(.32,.72,0,1);
  box-shadow:0 -8px 40px rgba(0,0,0,.2);
}
.rst-basket-drawer.open .rst-drawer-sheet { transform:translateY(0); }
/* Desktop: slide in from right */
@media (min-width:768px) {
  .rst-drawer-sheet {
    left:auto; top:0; bottom:0; width:380px; max-width:90%;
    border-radius:0; max-height:100vh;
    transform:translateX(100%);
  }
  .rst-basket-drawer.open .rst-drawer-sheet { transform:translateX(0); }
  .rst-drawer-handle { display:none; }
}
.rst-drawer-handle { display:flex; justify-content:center; padding:12px 0 4px; flex-shrink:0; }
.rst-drawer-handle span { width:40px; height:4px; border-radius:2px; background:#e2e5ea; }
.rst-drawer-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:4px 20px 14px; flex-shrink:0; border-bottom:1px solid var(--rst-line);
}
.rst-drawer-head h3 { margin:0; font-size:17px; font-weight:800; color:var(--rst-ink); display:flex; align-items:center; gap:8px; }
.rst-drawer-head h3 .fa { color:#e63946; }
.rst-drawer-x { background:none; border:none; font-size:26px; cursor:pointer; color:#9ca3af; line-height:1; }
.rst-drawer-x:hover { color:#374151; }
.rst-drawer-body { flex:1; overflow-y:auto; padding:14px 20px; }
.rst-basket-empty { text-align:center; color:var(--rst-muted); padding:30px 10px; font-size:14px; display:flex; flex-direction:column; align-items:center; gap:8px; }
.rst-basket-empty .fa { font-size:38px; color:#e6e8ec; }
.rst-drawer-foot { padding:14px 20px 20px; border-top:1px solid var(--rst-line); flex-shrink:0; background:#fff; }

/* ============================================================
   Item image wrap (position:relative so add-btn can overflow)
   ============================================================ */
.rst-item-img-wrap {
  width:88px; height:88px; border-radius:12px;
  flex-shrink:0; background:#f0f2f5;
  display:flex; align-items:center; justify-content:center;
  position:relative;
}
.rst-item-img-wrap img.rst-item-img { width:100%; height:100%; object-fit:cover; display:block; border-radius:12px; }
.rst-item-img-ph { color:#c9ccd2; font-size:26px; }
.rst-item-opts { font-size:12px; font-weight:600; color:#8a8f98; }
.rst-item-pop { background:#fff7ed; color:#c2410c; border:none; padding:2px 8px; border-radius:6px; font-size:10.5px; font-weight:700; margin-left:6px; }

/* ============================================================
   Responsive
   ============================================================ */

/* Desktop: hide mobile-only controls */
@media (min-width:992px) {
  .rst-hero-fab { display:none; }
  .rst-float-bar.has-items { display:none !important; }
}

@media (max-width:991px) {
  .rst-grid { grid-template-columns:repeat(2,1fr); }

  /* Single-column layout on mobile — basket becomes fixed slide-up */
  .rst-store-layout { grid-template-columns:1fr; }

  /* Basket: fixed slide-up panel on mobile */
  .rst-basket {
    position:fixed !important;
    left:0; right:0; bottom:0; top:auto;
    border-radius:20px 20px 0 0;
    max-height:82vh;
    z-index:9500;
    transform:translateY(100%);
    transition:transform .3s cubic-bezier(.32,.72,0,1);
    overflow:hidden;
  }
  .rst-basket.open { transform:translateY(0); }
  .rst-basket-body { max-height:none; flex:1; overflow-y:auto; }

  /* 2-col items grid collapses to 1-col on mobile */
  .rst-items-grid { grid-template-columns:1fr; }

  .rst-fab { display:block; }
  .rst-stats { grid-template-columns:repeat(2,1fr); }
  .rst-mkt-header { flex-direction:column; align-items:flex-start; border-radius:0 0 14px 14px; padding:24px 20px; }
  .rst-mkt-header-right { width:100%; }
  .rst-mkt-food-icons { display:none; }
  .rst-slideshow { height:220px; }
  .rst-slide-caption h2 { font-size:18px; }
}
@media (max-width:575px) {
  .rst-grid { grid-template-columns:1fr; }
  .rst-hero h1 { font-size:22px; }
  .rst-row2 { grid-template-columns:1fr; }
  .rst-featured-grid { grid-template-columns:1fr; }
  .rst-apply-benefits { grid-template-columns:1fr; }
}

/* ============================================================
   Compact checkout modal (v5.6)
   ============================================================ */
.rst-co-panel {
  background:#fff;
  border-radius:18px;
  width:min(460px,94vw);
  max-height:92vh;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  position:relative;
  z-index:1;
}
.rst-addr-confirm-panel { width:min(400px,92vw); }

.rst-co-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 18px 12px;
  border-bottom:1px solid var(--rst-line);
  flex-shrink:0;
}
.rst-co-head h3 { margin:0; font-size:16px; font-weight:800; color:var(--rst-ink); }

.rst-co-body {
  padding:14px 18px;
  overflow-y:auto;
  flex:1;
}

.rst-co-foot {
  padding:11px 18px;
  border-top:1px solid var(--rst-line);
  display:flex;
  gap:10px;
  flex-shrink:0;
}

/* 2-column name + phone row */
.rst-co-row2 { display:grid; grid-template-columns:1fr 1fr; gap:10px; }

/* Compact field */
.rst-co-field { margin-bottom:10px; }
.rst-co-field label {
  display:block;
  font-size:12px;
  font-weight:700;
  color:var(--rst-muted);
  margin-bottom:4px;
  text-transform:uppercase;
  letter-spacing:.3px;
}
.rst-co-field input,
.rst-co-field textarea {
  width:100%;
  border:1.5px solid var(--rst-line);
  border-radius:10px;
  padding:9px 12px;
  font-size:14px;
  background:var(--rst-bg);
  color:var(--rst-ink);
  box-sizing:border-box;
  transition:border-color .15s;
  font-family:inherit;
}
.rst-co-field input:focus,
.rst-co-field textarea:focus { outline:none; border-color:var(--rst-red); }
.rst-co-field textarea { resize:none; }

/* Compact order type row */
.rst-co-type-row { display:flex; gap:8px; }
.rst-plan-sm {
  flex:1; text-align:center; padding:9px 12px !important;
  font-size:13px; margin:0 !important;
}

/* Compact btn override */
.rst-btn-sm { padding:10px 16px; font-size:14px; }

/* Address confirmation box */
.rst-addr-confirm-q { margin:0 0 10px; font-size:14px; color:var(--rst-ink); font-weight:600; }
.rst-addr-confirm-box {
  background:var(--rst-bg);
  border:1.5px solid var(--rst-line);
  border-radius:12px;
  padding:14px 16px;
  font-size:15px;
  font-weight:700;
  color:var(--rst-ink);
  line-height:1.5;
}
.rst-addr-confirm-warn {
  margin:10px 0 0;
  font-size:12px;
  color:#c0202d;
  font-weight:600;
  display:flex;
  align-items:flex-start;
  gap:6px;
}
.rst-addr-confirm-warn .fa { margin-top:2px; flex-shrink:0; }

@media (max-width:480px) {
  .rst-co-row2 { grid-template-columns:1fr; }
}

/* ============================================================
   Restaurant detail page (v6) — transparent shell, floating cards
   ============================================================ */
.rst-wrap.rst-detail { background:transparent; border:none; box-shadow:none; border-radius:0; overflow:visible; color:var(--rst2-dark); }
.rst-detail .rst-page-body { padding:0 14px; margin-top:-30px; position:relative; z-index:10; }

/* ---- Hero ---- */
.rst-hero2 { position:relative; height:370px; border-radius:20px 20px 40px 40px; overflow:hidden; background:var(--rst2-dark); box-shadow:var(--rst2-sh-lg); }
.rst-hero2.no-cover { height:290px; }
.rst-hero2-cover { width:100%; height:100%; object-fit:cover; display:block; }
.rst-hero2-scrim { position:absolute; inset:0; background:linear-gradient(to bottom, rgba(0,0,0,.28) 0%, rgba(0,0,0,.30) 35%, rgba(0,0,0,.78) 100%); }
.rst-hero2-content { position:absolute; left:32px; right:32px; bottom:58px; z-index:2; display:flex; flex-direction:column; align-items:flex-start; gap:11px; color:#fff; }
.rst-hero2-logo {
  width:78px; height:78px; border-radius:50%; border:4px solid #fff;
  background:#fff; overflow:hidden; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  color:var(--rst2-primary); font-size:30px; box-shadow:var(--rst2-sh-md);
}
.rst-hero2-logo img { width:100%; height:100%; object-fit:cover; }
.rst-hero2-badge {
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(255,255,255,.2); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  padding:7px 16px; border-radius:50px; font-size:13.5px; font-weight:500;
  border:1px solid rgba(255,255,255,.3); color:#fff;
}
.rst-hero2-badge.open { background:rgba(46,213,115,.28); border-color:rgba(46,213,115,.45); color:#7bffb0; }
.rst-hero2-badge.closed { background:rgba(255,107,107,.26); border-color:rgba(255,107,107,.45); color:#ffb3b3; }
.rst-hero2-dot { width:8px; height:8px; border-radius:50%; background:currentColor; flex-shrink:0; }
.rst-hero2-badge.open .rst-hero2-dot { animation:rstStatusPulse 2s infinite; }
.rst-hero2-name { font-size:40px; line-height:1.1; font-weight:800; color:#fff; margin:0; text-shadow:2px 2px 8px rgba(0,0,0,.35); display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.rst-hero2-verified { color:#4ECDC4; font-size:22px; display:inline-flex; }
.rst-hero2-info { display:flex; gap:20px; align-items:center; font-size:14px; flex-wrap:wrap; color:rgba(255,255,255,.95); }
.rst-hero2-info > span { display:flex; align-items:center; gap:7px; }
.rst-hero2-info .fa { opacity:.85; }
.rst-hero2-rating {
  display:inline-flex; align-items:center; gap:6px;
  background:var(--rst2-accent); color:var(--rst2-dark);
  padding:5px 14px; border-radius:20px; font-weight:600; font-size:13.5px;
  border:none; cursor:pointer; font-family:inherit; transition:transform .2s, box-shadow .2s;
}
.rst-hero2-rating:hover { transform:translateY(-2px); box-shadow:0 6px 18px rgba(255,230,109,.45); }
.rst-hero2-owner {
  position:absolute; top:18px; right:18px; z-index:3;
  display:inline-flex; align-items:center; gap:7px;
  background:rgba(255,255,255,.2); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.3); color:#fff;
  font-size:12.5px; font-weight:600; padding:8px 16px; border-radius:50px;
  text-decoration:none; transition:background .2s, transform .2s;
}
.rst-hero2-owner:hover { background:rgba(255,255,255,.34); color:#fff; text-decoration:none; transform:translateY(-2px); }

/* ---- Description card ---- */
.rst-desc2 {
  display:flex; align-items:flex-start; gap:14px;
  background:#fff; border-radius:24px; padding:18px 22px; margin-bottom:24px;
  box-shadow:var(--rst2-sh-md); font-size:14px; color:#5a6577; line-height:1.6;
}
.rst-desc2-icon {
  width:40px; height:40px; border-radius:13px; flex-shrink:0;
  background:var(--rst2-g3); color:#fff; font-size:16px;
  display:flex; align-items:center; justify-content:center;
}

/* ---- Meal Deals ---- */
.rst-deals2 {
  background:var(--rst2-g2); border-radius:30px; padding:28px;
  margin-bottom:28px; box-shadow:0 20px 60px rgba(245,87,108,.28);
  color:#fff; position:relative; overflow:hidden;
}
.rst-deals2::before {
  content:''; position:absolute; top:-50%; right:-15%;
  width:380px; height:380px; background:rgba(255,255,255,.1);
  border-radius:50%; pointer-events:none;
}
.rst-deals2-head { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:22px; position:relative; z-index:1; }
.rst-deals2-title { font-size:26px; font-weight:700; display:flex; align-items:center; gap:12px; line-height:1.2; }
.rst-deals2-title .fa { font-size:28px; }
.rst-deals2-sub { opacity:.9; font-size:13.5px; margin-top:4px; }
.rst-deals2-viewall {
  background:rgba(255,255,255,.2); border:none; color:#fff;
  padding:10px 20px; border-radius:50px; cursor:pointer;
  font-weight:600; font-size:13.5px; font-family:inherit; flex-shrink:0;
  display:inline-flex; align-items:center; gap:8px; transition:background .2s, transform .2s;
}
.rst-deals2-viewall:hover { background:rgba(255,255,255,.34); transform:translateY(-2px); }
.rst-deals2-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; position:relative; z-index:1; }
.rst-deal2-card {
  background:rgba(255,255,255,.15); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-radius:20px; padding:16px; border:1px solid rgba(255,255,255,.2);
  transition:all .3s; cursor:pointer; display:flex; flex-direction:column;
}
.rst-deal2-card:hover { transform:translateY(-5px); background:rgba(255,255,255,.25); box-shadow:0 15px 40px rgba(0,0,0,.2); }
.rst-deal-extra { display:none; }
.rst-deals2-grid.expanded .rst-deal-extra { display:flex; }
.rst-deal2-img { width:100%; height:140px; border-radius:15px; object-fit:cover; margin-bottom:14px; box-shadow:var(--rst2-sh-sm); }
.rst-deal2-ph { background:rgba(255,255,255,.16); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.5); font-size:32px; }
.rst-deal2-name { font-size:17px; font-weight:700; margin-bottom:4px; line-height:1.3; }
.rst-deal2-desc { font-size:12.5px; opacity:.9; margin-bottom:14px; line-height:1.45; flex:1; overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.rst-deal2-foot { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:auto; }
.rst-deal2-price { font-size:22px; font-weight:800; line-height:1; }
.rst-deal2-price span { font-size:11px; font-weight:500; opacity:.75; }
.rst-deal2-add {
  width:44px; height:44px; border-radius:50%; background:#fff; color:#f5576c;
  border:none; font-size:18px; cursor:pointer; transition:all .3s; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
}
.rst-deal2-add:hover { transform:scale(1.1) rotate(90deg); box-shadow:0 5px 20px rgba(0,0,0,.2); }

/* ---- Category tabs ---- */
.rst-tabs2-wrap {
  position:sticky; top:0; z-index:100;
  display:flex; align-items:center; gap:12px; margin-bottom:26px;
  padding:10px 12px; border-radius:50px;
  background:rgba(247,249,252,.9); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  box-shadow:0 4px 22px rgba(0,0,0,.07);
}
.rst-tabs2 { display:flex; gap:12px; overflow-x:auto; scroll-behavior:smooth; scrollbar-width:none; flex:1; padding:3px 2px; }
.rst-tabs2::-webkit-scrollbar { display:none; }
.rst-tab2 {
  padding:12px 24px; border-radius:50px; background:#fff;
  border:2px solid transparent; cursor:pointer;
  font-weight:600; font-size:14.5px; font-family:inherit; color:var(--rst2-dark);
  white-space:nowrap; flex-shrink:0; transition:all .3s;
  box-shadow:var(--rst2-sh-sm); display:flex; align-items:center; gap:8px;
}
.rst-tab2:hover { border-color:var(--rst2-primary); transform:translateY(-2px); }
.rst-tab2.active { background:var(--rst2-g1); color:#fff; border-color:transparent; transform:scale(1.05); box-shadow:0 6px 20px rgba(102,126,234,.4); }
.rst-tab2.active:hover { border-color:transparent; transform:scale(1.05) translateY(-2px); }
.rst-tabs2-arrow {
  flex-shrink:0; width:36px; height:36px; border-radius:50%;
  border:none; background:#fff; color:var(--rst2-dark); font-size:12px;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  box-shadow:var(--rst2-sh-sm); transition:all .2s;
}
.rst-tabs2-arrow:hover { color:var(--rst2-primary); transform:scale(1.1); }
.rst-tabs2-basket {
  flex-shrink:0; width:50px; height:50px; border-radius:50%;
  border:none; cursor:pointer; background:var(--rst2-g2); color:#fff; font-size:19px;
  display:flex; align-items:center; justify-content:center; position:relative;
  box-shadow:0 8px 26px rgba(245,87,108,.42); transition:transform .25s, box-shadow .25s;
}
.rst-tabs2-basket:hover { transform:scale(1.1); box-shadow:0 12px 32px rgba(245,87,108,.55); }
.rst-tabs2-basket:active { transform:scale(.95); }
.rst-tabs2-basket-badge {
  position:absolute; top:-4px; right:-4px;
  background:var(--rst2-accent); color:var(--rst2-dark);
  min-width:24px; height:24px; border-radius:12px; padding:0 6px;
  font-size:11.5px; font-weight:700; line-height:1;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 2px 8px rgba(0,0,0,.2);
}

/* ---- Menu sections ---- */
.rst-menu2-section { background:#fff; border-radius:30px; padding:28px; margin-bottom:26px; box-shadow:var(--rst2-sh-md); }
.rst-menu2-head { display:flex; align-items:center; gap:14px; margin-bottom:22px; padding-bottom:16px; border-bottom:2px dashed #e4e8ef; }
.rst-menu2-icon {
  width:52px; height:52px; border-radius:16px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-size:24px; color:rgba(44,62,80,.75);
}
.rst-menu2-icon.g0 { background:linear-gradient(135deg,#ff9a9e 0%,#fecfef 100%); }
.rst-menu2-icon.g1 { background:linear-gradient(135deg,#a8edea 0%,#fed6e3 100%); }
.rst-menu2-icon.g2 { background:linear-gradient(135deg,#ffeaa7 0%,#fdcb6e 100%); }
.rst-menu2-icon.g3 { background:linear-gradient(135deg,#c2e9fb 0%,#a1c4fd 100%); }
.rst-menu2-icon.g4 { background:linear-gradient(135deg,#d4fc79 0%,#96e6a1 100%); }
.rst-menu2-icon.g5 { background:linear-gradient(135deg,#e0c3fc 0%,#8ec5fc 100%); }
/* high specificity — beats the legacy .rst-menu-cat h3 rules */
.rst-menu2-section .rst-menu2-title { font-size:22px; font-weight:700; color:var(--rst2-dark); margin:0; padding:0; border:none; display:block; letter-spacing:-.2px; }
.rst-menu2-section .rst-menu2-title::before { content:none; display:none; }
.rst-menu2-count { color:#9aa1ad; font-size:13px; margin-top:2px; }
.rst-menu2-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:18px; }

/* ---- Menu item cards ---- */
.rst-item2 {
  background:var(--rst2-light); border-radius:20px; padding:16px;
  display:flex; gap:16px; transition:all .3s;
  border:2px solid transparent; position:relative; overflow:hidden; cursor:pointer;
}
.rst-item2::before {
  content:''; position:absolute; top:0; left:0; width:5px; height:100%;
  background:var(--rst2-g1); opacity:0; transition:opacity .3s;
}
.rst-item2:hover { transform:translateX(5px); border-color:var(--rst2-primary); box-shadow:var(--rst2-sh-md); }
.rst-item2:hover::before { opacity:1; }
.rst-item2.unavail { opacity:.55; cursor:default; }
.rst-item2.unavail:hover { transform:none; border-color:transparent; box-shadow:none; }
.rst-item2.unavail:hover::before { opacity:0; }
.rst-item2-img { width:96px; height:96px; border-radius:15px; object-fit:cover; flex-shrink:0; box-shadow:var(--rst2-sh-sm); }
.rst-item2-ph { background:#e9edf3; display:flex; align-items:center; justify-content:center; color:#c3cad6; font-size:28px; }
.rst-item2-content { flex:1; min-width:0; display:flex; flex-direction:column; justify-content:space-between; gap:10px; }
.rst-item2-header { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; margin-bottom:6px; }
.rst-item2-name { font-size:16px; font-weight:700; color:var(--rst2-dark); line-height:1.3; }
.rst-item2-badge {
  background:linear-gradient(135deg,#ffeaa7 0%,#fdcb6e 100%); color:var(--rst2-dark);
  padding:4px 10px; border-radius:20px; font-size:10px; font-weight:700;
  text-transform:uppercase; white-space:nowrap; flex-shrink:0; letter-spacing:.3px;
}
.rst-item2-badge.off { background:#e4e8ef; color:#7d8694; }
.rst-item2-desc { font-size:12.5px; color:#78828f; line-height:1.5; overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.rst-item2-foot { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.rst-item2-price { font-size:20px; font-weight:800; color:var(--rst2-primary); line-height:1; }
.rst-item2-price span { font-size:12px; color:#9aa1ad; font-weight:400; }
.rst-item2-add {
  width:40px; height:40px; border-radius:50%; border:none; flex-shrink:0;
  background:var(--rst2-g2); color:#fff; font-size:16px; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 14px rgba(245,87,108,.35); transition:all .3s;
}
.rst-item2-add:hover { transform:scale(1.12) rotate(90deg); box-shadow:0 6px 20px rgba(245,87,108,.5); }

/* ---- v6 responsive ---- */
@media (max-width:900px) {
  .rst-deals2-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:768px) {
  .rst-hero2 { height:300px; border-radius:16px 16px 30px 30px; }
  .rst-hero2-content { left:20px; right:20px; bottom:46px; gap:9px; }
  .rst-hero2-logo { width:58px; height:58px; border-width:3px; font-size:22px; }
  .rst-hero2-name { font-size:27px; }
  .rst-hero2-info { gap:12px; font-size:13px; }
  .rst-detail .rst-page-body { padding:0 10px; margin-top:-24px; }
  .rst-desc2 { padding:14px 16px; border-radius:20px; font-size:13.5px; }
  .rst-deals2 { padding:20px; border-radius:24px; }
  .rst-deals2-title { font-size:21px; }
  .rst-deals2-grid { grid-template-columns:1fr; }
  .rst-menu2-section { padding:20px; border-radius:24px; }
  .rst-menu2-grid { grid-template-columns:1fr; }
  .rst-tabs2-wrap { gap:8px; padding:8px 10px; }
  .rst-tab2 { padding:10px 18px; font-size:13.5px; }
}

/* ============================================================
   v6 polish — basket drawer + item modal (match new design)
   ============================================================ */
.rst-drawer-sheet, .rst-modal-panel, .rst-co-panel { font-family:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif; }
.rst-drawer-head { background:var(--rst2-g2); border-bottom:none; padding:18px 20px; }
.rst-drawer-head h3 { color:#fff; font-weight:700; }
.rst-drawer-head h3 .fa { color:#fff; }
.rst-drawer-x { color:rgba(255,255,255,.85); }
.rst-drawer-x:hover { color:#fff; }
.rst-drawer-foot .rst-tot-row.grand { color:var(--rst2-dark); }
.rst-bl-price { color:var(--rst2-primary); }
.rst-basket-empty .fa { color:#dfe4ec; }

.rst-modal-panel, .rst-co-panel { border-radius:26px; }
.rst-opt-modal-panel { border-radius:26px; }
.rst-opt-head h3 { color:var(--rst2-dark); }
.rst-opt-val { border-radius:14px; }
.rst-opt-val:hover { border-color:var(--rst2-primary); background:#fff7f7; }
.rst-opt-val.sel { border-color:var(--rst2-primary); background:#fff1f1; }
.rst-opt-val .delta { color:var(--rst2-primary); }
.rst-opt-req { color:#f5576c; background:#fff0f4; border-color:#ffd6e2; }
.rst-opt-add-btn { background:var(--rst2-g2); box-shadow:0 6px 20px rgba(245,87,108,.35); border-radius:14px; }
.rst-opt-add-btn:hover { background:var(--rst2-g2); filter:brightness(1.06); }
.rst-opt-qty-ctrl { border-radius:14px; }
.rst-star-pick.on { color:#fdcb6e; }

/* ============================================================
   v6 — Reviews modal (animated star picker)
   ============================================================ */
.rst-rv-modal { padding:14px; }
.rst-rv-panel {
  position:relative; z-index:1; background:#fff; border-radius:28px;
  width:540px; max-width:100%; max-height:92vh; overflow:hidden;
  display:flex; flex-direction:column;
  box-shadow:0 30px 80px rgba(0,0,0,.32);
  font-family:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  animation:rstRvIn .35s cubic-bezier(.175,.885,.32,1.275);
}
@keyframes rstRvIn { from { opacity:0; transform:translateY(28px) scale(.94); } to { opacity:1; transform:none; } }

/* --- score header --- */
.rst-rv-head { background:var(--rst2-g2); color:#fff; padding:26px 26px 22px; text-align:center; position:relative; overflow:hidden; flex-shrink:0; }
.rst-rv-head::before { content:''; position:absolute; top:-60%; right:-18%; width:280px; height:280px; background:rgba(255,255,255,.12); border-radius:50%; pointer-events:none; }
.rst-rv-x { position:absolute; top:14px; right:16px; z-index:2; width:34px; height:34px; border-radius:50%; border:none; cursor:pointer; background:rgba(255,255,255,.22); color:#fff; font-size:22px; line-height:1; display:flex; align-items:center; justify-content:center; transition:background .2s, transform .2s; }
.rst-rv-x:hover { background:rgba(255,255,255,.4); transform:rotate(90deg); }
.rst-rv-score { font-size:52px; font-weight:800; line-height:1; position:relative; z-index:1; text-shadow:0 3px 10px rgba(0,0,0,.18); }
.rst-rv-head-stars { margin:8px 0 4px; display:flex; justify-content:center; gap:4px; position:relative; z-index:1; }
.rst-rv-head-stars .fa { font-size:17px; color:var(--rst2-accent); }
.rst-rv-head-stars .fa.dim { color:rgba(255,255,255,.38); }
.rst-rv-head-sub { font-size:13px; opacity:.92; position:relative; z-index:1; }
.rst-rv-head-icon { font-size:42px; line-height:1; position:relative; z-index:1; animation:rstStarWobble 2.4s ease-in-out infinite; }
.rst-rv-head-title { font-size:20px; font-weight:800; margin:8px 0 3px; position:relative; z-index:1; }
@keyframes rstStarWobble { 0%,100%{transform:rotate(-8deg) scale(1)} 50%{transform:rotate(8deg) scale(1.12)} }

/* --- body --- */
.rst-rv-body { padding:22px; overflow-y:auto; flex:1; }

/* --- review form --- */
.rst-rv-form { background:var(--rst2-light); border-radius:22px; padding:22px 20px; margin-bottom:22px; text-align:center; }
.rst-rv-form-title { font-size:15px; font-weight:700; color:var(--rst2-dark); margin-bottom:14px; }
.rst-rv-stars { display:flex; justify-content:center; gap:6px; margin-bottom:6px; }
.rst-star-pick {
  background:none; border:none; padding:2px 4px; cursor:pointer; line-height:1;
  font-size:40px; color:#dfe3ea; transition:color .18s, transform .18s;
  transform-origin:center bottom;
}
.rst-star-pick:hover { transform:scale(1.18) translateY(-3px); }
.rst-star-pick.on { color:#FFA502; text-shadow:0 4px 14px rgba(255,165,2,.45); }
.rst-star-pick.pop { animation:rstStarPop .42s cubic-bezier(.175,.885,.32,1.275); }
@keyframes rstStarPop { 0%{transform:scale(1)} 35%{transform:scale(1.45) rotate(-12deg)} 65%{transform:scale(.9) rotate(6deg)} 100%{transform:scale(1)} }
.rst-rv-label { font-size:13.5px; font-weight:600; color:#8a93a2; min-height:20px; margin-bottom:14px; transition:color .2s; }
.rst-rv-label.set { color:var(--rst2-primary); animation:rstLabelIn .3s ease; }
@keyframes rstLabelIn { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:none} }

.rst-rv-textwrap { position:relative; margin-bottom:14px; }
.rst-rv-textwrap textarea {
  width:100%; border:2px solid #e4e8ef; border-radius:16px;
  padding:13px 15px 26px; font-size:13.5px; font-family:inherit; resize:vertical;
  outline:none; transition:border-color .2s, box-shadow .2s; background:#fff; color:var(--rst2-dark);
}
.rst-rv-textwrap textarea:focus { border-color:var(--rst2-primary); box-shadow:0 0 0 5px rgba(255,71,87,.1); }
.rst-rv-counter { position:absolute; right:14px; bottom:10px; font-size:11px; color:#b3bac6; pointer-events:none; }

.rst-rv-post {
  width:100%; border:none; cursor:pointer; position:relative;
  background:var(--rst2-g2); color:#fff; border-radius:16px; padding:14px;
  font-size:14.5px; font-weight:700; font-family:inherit;
  box-shadow:0 8px 24px rgba(245,87,108,.36); transition:transform .18s, box-shadow .18s, opacity .2s;
  display:flex; align-items:center; justify-content:center; gap:9px;
}
.rst-rv-post:hover { transform:translateY(-2px); box-shadow:0 12px 30px rgba(245,87,108,.48); }
.rst-rv-post:active { transform:translateY(0) scale(.98); }
.rst-rv-post:disabled { opacity:.65; cursor:default; transform:none; }
.rst-rv-post.loading .rst-rv-post-label { visibility:hidden; }
.rst-rv-spin { display:none; position:absolute; width:20px; height:20px; border:2.5px solid rgba(255,255,255,.35); border-top-color:#fff; border-radius:50%; animation:rstSpin .7s linear infinite; }
.rst-rv-post.loading .rst-rv-spin { display:block; }
@keyframes rstSpin { to { transform:rotate(360deg); } }
.rst-rv-post.done { background:linear-gradient(135deg,#2ED573,#1dd1a1); box-shadow:0 8px 24px rgba(46,213,115,.4); }

/* --- notes (guest / owner / already reviewed) --- */
.rst-rv-note { display:flex; align-items:center; gap:14px; background:var(--rst2-light); border-radius:20px; padding:18px; margin-bottom:22px; }
.rst-rv-note.ok { background:#eafaf1; }
.rst-rv-note-icon { font-size:30px; line-height:1; flex-shrink:0; }
.rst-rv-note strong { display:block; font-size:14.5px; color:var(--rst2-dark); margin-bottom:3px; }
.rst-rv-note p { margin:0; font-size:12.5px; color:#828b99; line-height:1.5; }

/* --- review list --- */
.rst-rv-list-title { font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.6px; color:#a0a8b5; margin:0 0 12px; }
.rst-rv-item { display:flex; gap:13px; padding:14px 0; border-bottom:1px dashed #e6eaf1; opacity:0; animation:rstRvItemIn .45s ease-out forwards; }
.rst-rv-item:last-child { border-bottom:none; }
@keyframes rstRvItemIn { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:none} }
.rst-rv-av { width:44px; height:44px; border-radius:50%; object-fit:cover; flex-shrink:0; box-shadow:var(--rst2-sh-sm); }
.rst-rv-item-body { flex:1; min-width:0; }
.rst-rv-item-top { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.rst-rv-item-top strong { font-size:14px; color:var(--rst2-dark); }
.rst-rv-date { font-size:11.5px; color:#a8b0bd; flex-shrink:0; }
.rst-rv-item-stars { display:flex; gap:2px; margin:3px 0 6px; }
.rst-rv-item-stars .fa { font-size:12px; color:#FFA502; }
.rst-rv-item-stars .fa.dim { color:#e2e6ed; }
.rst-rv-text { margin:0; font-size:13px; color:#5d6675; line-height:1.55; }
.rst-rv-empty { text-align:center; padding:26px 0; color:#a0a8b5; font-size:13px; }
.rst-rv-empty div { font-size:34px; margin-bottom:8px; }

@media (max-width:600px) {
  .rst-rv-panel { border-radius:22px; }
  .rst-rv-score { font-size:42px; }
  .rst-star-pick { font-size:34px; }
  .rst-rv-body { padding:18px; }
}
@keyframes rstShake { 0%,100%{transform:translateX(0)} 20%{transform:translateX(-9px)} 40%{transform:translateX(9px)} 60%{transform:translateX(-6px)} 80%{transform:translateX(6px)} }

/* ============================================================
   v6 — Marketplace page
   ============================================================ */
.rst-wrap.rst-mkt { background:transparent; border:none; box-shadow:none; border-radius:0; overflow:visible; color:var(--rst2-dark); }
.rst-mkt .rst-page-body { padding:0 14px; margin-top:-34px; position:relative; z-index:10; }

/* ---- Header ---- */
.rst-mkt2-header {
  background:var(--rst2-g2); color:#fff;
  padding:32px 30px 74px; border-radius:20px 20px 40px 40px;
  position:relative; overflow:hidden; box-shadow:var(--rst2-sh-lg);
}
.rst-mkt2-header::before {
  content:''; position:absolute; top:-50%; right:-10%;
  width:520px; height:520px; background:rgba(255,255,255,.1);
  border-radius:50%; animation:rstFloat 20s infinite ease-in-out; pointer-events:none;
}
.rst-mkt2-header::after {
  content:''; position:absolute; bottom:-30%; left:-5%;
  width:360px; height:360px; background:rgba(255,255,255,.08);
  border-radius:50%; animation:rstFloat 15s infinite ease-in-out reverse; pointer-events:none;
}
@keyframes rstFloat {
  0%,100% { transform:translate(0,0) rotate(0deg); }
  33%     { transform:translate(30px,-50px) rotate(120deg); }
  66%     { transform:translate(-20px,30px) rotate(240deg); }
}
.rst-mkt2-top { display:flex; justify-content:space-between; align-items:center; gap:18px; flex-wrap:wrap; position:relative; z-index:1; }
.rst-mkt2-logo { display:flex; align-items:center; gap:15px; color:#fff; text-decoration:none; min-width:0; }
.rst-mkt2-logo-icon {
  width:58px; height:58px; flex-shrink:0;
  background:rgba(255,255,255,.2); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-radius:20px; display:flex; align-items:center; justify-content:center;
  font-size:27px; border:2px solid rgba(255,255,255,.3); transition:transform .3s;
}
.rst-mkt2-header:hover .rst-mkt2-logo-icon { transform:rotate(-10deg) scale(1.08); }
.rst-mkt2-logo-text h1 { font-size:27px; font-weight:800; margin:0 0 4px; color:#fff; text-shadow:2px 2px 6px rgba(0,0,0,.22); letter-spacing:-.3px; line-height:1.15; }
.rst-mkt2-logo-text p { font-size:13.5px; opacity:.95; font-weight:400; margin:0; line-height:1.4; }
.rst-mkt2-btn {
  flex-shrink:0; display:inline-flex; align-items:center; gap:9px;
  background:rgba(255,255,255,.25); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border:2px solid rgba(255,255,255,.3); color:#fff;
  padding:12px 24px; border-radius:50px; font-weight:600; font-size:14px;
  text-decoration:none; transition:all .3s; white-space:nowrap;
}
.rst-mkt2-btn:hover { background:#fff; color:#f5576c; transform:translateY(-2px); box-shadow:0 10px 30px rgba(0,0,0,.2); text-decoration:none; }
.rst-mkt2-emojis { display:flex; gap:14px; font-size:28px; margin-top:14px; position:relative; z-index:1; animation:rstEmojiBounce 2s infinite; }
@keyframes rstEmojiBounce { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-9px); } }

/* ---- Cuisine chips ---- */
.rst-chip2-strip { display:flex; gap:14px; overflow-x:auto; scrollbar-width:none; padding:6px 4px 12px; flex:1; }
.rst-chip2-strip::-webkit-scrollbar { display:none; }
.rst-chip2 {
  background:#fff; border:2px solid transparent; padding:14px 26px; border-radius:20px;
  cursor:pointer; transition:all .3s; display:flex; flex-direction:column; align-items:center; gap:9px;
  min-width:112px; box-shadow:var(--rst2-sh-sm); position:relative; overflow:hidden; flex-shrink:0;
  font-family:inherit;
}
.rst-chip2::before {
  content:''; position:absolute; inset:0;
  background:var(--rst2-g1); opacity:0; transition:opacity .3s;
}
.rst-chip2:hover::before, .rst-chip2.active::before { opacity:1; }
.rst-chip2:hover, .rst-chip2.active { transform:translateY(-5px); box-shadow:var(--rst2-sh-md); }
.rst-chip2-img {
  width:58px; height:58px; border-radius:15px; position:relative; z-index:1;
  background:var(--rst2-light); display:flex; align-items:center; justify-content:center;
  font-size:28px; overflow:hidden; transition:transform .3s; box-shadow:none; border:none;
}
.rst-chip2-img img { width:100%; height:100%; object-fit:cover; border-radius:inherit; display:block; }
.rst-chip2:hover .rst-chip2-img, .rst-chip2.active .rst-chip2-img { transform:scale(1.1) rotate(5deg); }
.rst-chip2-label { font-weight:600; font-size:13.5px; position:relative; z-index:1; color:var(--rst2-dark); transition:color .3s; max-width:96px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rst-chip2:hover .rst-chip2-label, .rst-chip2.active .rst-chip2-label { color:#fff; }

/* ---- Search bar card ---- */
.rst-searchbar2 {
  background:#fff; border-radius:25px; padding:18px 26px;
  box-shadow:var(--rst2-sh-md); margin:8px 0 30px;
  display:flex; align-items:center; gap:18px; flex-wrap:wrap;
}
.rst-searchbar2-icon {
  width:48px; height:48px; flex-shrink:0; background:var(--rst2-g1);
  border-radius:15px; display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:19px;
}
.rst-searchbar2-text { font-weight:700; font-size:17px; color:var(--rst2-dark); margin-right:auto; white-space:nowrap; }
.rst-searchbar2-text span { color:var(--rst2-primary); }
.rst-searchbar2-box { flex:1; min-width:260px; position:relative; display:flex; align-items:center; }
.rst-searchbar2-box > .fa { position:absolute; left:21px; color:#a8b0bd; font-size:16px; pointer-events:none; }
.rst-searchbar2-box input {
  width:100%; padding:15px 44px 15px 52px;
  border:2px solid #e6eaf1; border-radius:50px;
  font-size:14.5px; font-family:inherit; color:var(--rst2-dark);
  transition:all .3s; outline:none; background:#fff;
}
.rst-searchbar2-box input:focus { border-color:var(--rst2-primary); box-shadow:0 0 0 5px rgba(255,71,87,.1); }
.rst-searchbar2-box input::placeholder { color:#b0b8c4; }
.rst-searchbar2-clear { position:absolute; right:16px; background:none; border:none; cursor:pointer; color:#a8b0bd; font-size:15px; padding:5px; line-height:1; transition:color .2s; }
.rst-searchbar2-clear:hover { color:var(--rst2-primary); }

/* ---- Restaurant cards ---- */
.rst-mkt .rst-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:26px; margin-bottom:30px; }
.rst-card2 {
  background:#fff; border-radius:30px; overflow:hidden;
  box-shadow:var(--rst2-sh-md); cursor:pointer; position:relative;
  transition:transform .4s cubic-bezier(.175,.885,.32,1.275), box-shadow .4s;
  opacity:0; animation:rstCardIn .5s ease-out forwards;
}
@keyframes rstCardIn { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:none} }
.rst-card2:hover { transform:translateY(-10px) scale(1.02); box-shadow:var(--rst2-sh-lg); }
.rst-card2-imgwrap { position:relative; height:220px; overflow:hidden; background:var(--rst2-light); }
.rst-card2-img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s; }
.rst-card2:hover .rst-card2-img { transform:scale(1.1); }
.rst-card2-ph { display:flex; align-items:center; justify-content:center; background:var(--rst2-g2); color:rgba(255,255,255,.7); font-size:52px; }
.rst-card2-badges { position:absolute; top:18px; left:18px; right:18px; display:flex; justify-content:space-between; gap:10px; z-index:2; }
.rst-badge2 {
  padding:7px 15px; border-radius:50px; font-size:12.5px; font-weight:700;
  display:inline-flex; align-items:center; gap:6px;
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border:2px solid rgba(255,255,255,.3); white-space:nowrap;
}
.rst-badge2 .fa { font-size:8px; }
.rst-badge2.open { background:rgba(46,213,115,.9); color:#fff; }
.rst-badge2.closed { background:rgba(255,71,87,.9); color:#fff; }
.rst-badge2.delivery { background:rgba(255,255,255,.95); color:var(--rst2-dark); }
.rst-badge2.delivery .fa { font-size:11px; }
.rst-badge2.new { background:var(--rst2-g2); color:#fff; border-color:transparent; padding:4px 12px; font-size:11px; animation:rstBadgePulse 2s infinite; }
@keyframes rstBadgePulse { 0%,100% { box-shadow:0 0 0 0 rgba(245,87,108,.45); } 50% { box-shadow:0 0 0 9px rgba(245,87,108,0); } }
.rst-card2-stories { position:absolute; bottom:16px; right:18px; z-index:2; background:var(--rst2-g2); color:#fff; border-radius:50px; padding:5px 13px; font-size:11.5px; font-weight:700; display:inline-flex; align-items:center; gap:5px; }
.rst-card2-stories .fa { font-size:9px; }

.rst-card2-info { padding:22px; }
.rst-card2-header { display:flex; align-items:center; gap:14px; margin-bottom:6px; }
.rst-card2-avatar {
  width:52px; height:52px; flex-shrink:0; border-radius:15px; overflow:hidden;
  border:3px solid #fff; background:var(--rst2-light); box-shadow:var(--rst2-sh-sm);
  display:flex; align-items:center; justify-content:center; color:var(--rst2-primary); font-size:20px;
}
.rst-card2-avatar img { width:100%; height:100%; object-fit:cover; }
.rst-card2-details { flex:1; min-width:0; }
.rst-card2-name { font-size:19px; font-weight:700; color:var(--rst2-dark); margin:0 0 5px; display:flex; align-items:center; gap:8px; line-height:1.25; }
.rst-card2-verified { color:var(--rst2-primary); font-size:15px; flex-shrink:0; }
.rst-card2-meta { display:flex; align-items:center; gap:12px; color:#8a93a2; font-size:13px; flex-wrap:wrap; }
.rst-card2-meta span { display:flex; align-items:center; gap:5px; min-width:0; }
.rst-card2-meta .fa { font-size:11px; opacity:.8; }

.rst-card2-rating-row { display:flex; align-items:center; gap:12px; margin-top:15px; padding-top:15px; border-top:1px dashed #e2e7ef; flex-wrap:wrap; }
.rst-card2-rating { display:flex; align-items:center; gap:6px; }
.rst-card2-stars { display:inline-flex; gap:2px; }
.rst-card2-stars .fa { color:var(--rst2-accent); font-size:14px; }
.rst-card2-stars .fa.dim { color:#e2e7ef; }
.rst-card2-rtext { font-weight:700; color:var(--rst2-dark); font-size:14px; margin-left:3px; }
.rst-card2-rcount { color:#a0a8b5; font-size:12.5px; }
.rst-card2-items { background:var(--rst2-light); padding:7px 15px; border-radius:20px; font-size:13px; font-weight:600; color:var(--rst2-dark); display:inline-flex; align-items:center; gap:7px; }
.rst-card2-items .fa { color:var(--rst2-primary); font-size:11px; }
.rst-card2-time { margin-left:auto; background:var(--rst2-g1); color:#fff; padding:8px 17px; border-radius:20px; font-weight:600; font-size:13px; display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }
.rst-card2-time .fa { font-size:11px; }

/* ---- marketplace responsive ---- */
@media (max-width:768px) {
  .rst-mkt2-header { padding:24px 20px 62px; border-radius:16px 16px 30px 30px; }
  .rst-mkt2-logo-text h1 { font-size:21px; }
  .rst-mkt2-logo-text p { font-size:12.5px; }
  .rst-mkt2-logo-icon { width:48px; height:48px; font-size:22px; border-radius:16px; }
  .rst-mkt2-btn { padding:10px 18px; font-size:13px; }
  .rst-mkt2-emojis { font-size:23px; gap:11px; }
  .rst-mkt .rst-page-body { padding:0 10px; margin-top:-38px; }
  .rst-mkt .rst-grid { grid-template-columns:1fr; gap:20px; }
  .rst-searchbar2 { flex-direction:column; align-items:stretch; padding:16px 18px; border-radius:22px; gap:14px; }
  .rst-searchbar2-text { margin-right:0; }
  .rst-searchbar2-box { min-width:100%; }
  .rst-chip2 { min-width:96px; padding:12px 18px; }
  .rst-chip2-img { width:48px; height:48px; font-size:24px; }
  .rst-card2-imgwrap { height:190px; }
}

/* ============================================================
   v6.2 — Meal Deals: tighter / smaller
   ============================================================ */
.rst-deals2 { padding:20px; border-radius:26px; margin-bottom:22px; }
.rst-deals2-head { margin-bottom:16px; }
.rst-deals2-title { font-size:21px; gap:10px; }
.rst-deals2-title .fa { font-size:22px; }
.rst-deals2-sub { font-size:12px; margin-top:2px; }
.rst-deals2-viewall { padding:8px 16px; font-size:12.5px; gap:6px; }
.rst-deals2-grid { gap:12px; }
.rst-deal2-card { padding:11px; border-radius:16px; }
.rst-deal2-img { height:96px; border-radius:12px; margin-bottom:10px; }
.rst-deal2-ph { font-size:26px; }
.rst-deal2-name { font-size:14px; margin-bottom:3px; }
.rst-deal2-desc { font-size:11.5px; margin-bottom:10px; -webkit-line-clamp:2; }
.rst-deal2-price { font-size:17px; }
.rst-deal2-price span { font-size:10px; }
.rst-deal2-add { width:34px; height:34px; font-size:14px; }
.rst-deal2-card:hover { transform:translateY(-4px); }
@media (max-width:768px) {
  .rst-deals2 { padding:16px; border-radius:22px; }
  .rst-deals2-title { font-size:19px; }
  .rst-deal2-img { height:130px; }
}

/* ============================================================
   v6.2 — Marketplace search box: compact, right aligned
   ============================================================ */
.rst-searchbar2 { padding:14px 20px; gap:14px; flex-wrap:nowrap; }
.rst-searchbar2-icon { width:42px; height:42px; border-radius:13px; font-size:17px; }
.rst-searchbar2-text { font-size:16px; }
.rst-searchbar2-box { flex:0 1 290px; min-width:0; max-width:290px; margin-left:auto; }
.rst-searchbar2-box > .fa { left:16px; font-size:14px; }
.rst-searchbar2-box input { padding:10px 36px 10px 40px; font-size:13.5px; border-radius:50px; }
.rst-searchbar2-box input:focus { box-shadow:0 0 0 4px rgba(255,71,87,.1); }
.rst-searchbar2-clear { right:13px; font-size:13px; }
@media (max-width:820px) {
  .rst-searchbar2 { flex-wrap:wrap; }
  .rst-searchbar2-box { flex:1 1 100%; max-width:100%; margin-left:0; }
}

/* ============================================================
   v6.2 — Item popup (redesigned)
   ============================================================ */
.rst-opt2-modal { padding:16px; }
.rst-opt2-modal .rst-modal-bd { background:rgba(0,0,0,.6); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.rst-opt2-panel {
  position:relative; z-index:1; background:#fff; border-radius:35px;
  width:480px; max-width:100%; max-height:90vh; overflow:hidden;
  display:flex; flex-direction:column;
  box-shadow:0 25px 80px rgba(0,0,0,.3);
  font-family:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  animation:rstOptIn .4s cubic-bezier(.175,.885,.32,1.275);
}
@keyframes rstOptIn { from { opacity:0; transform:translateY(50px) scale(.95); } to { opacity:1; transform:none; } }

/* image header */
.rst-opt2-imgsec { position:relative; height:250px; overflow:hidden; flex-shrink:0; background:linear-gradient(135deg,#ffeaa7 0%,#fdcb6e 100%); }
.rst-opt2-img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.rst-opt2-panel:hover .rst-opt2-img { transform:scale(1.05); }
.rst-opt2-ph { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:64px; color:rgba(255,255,255,.75); }
.rst-opt2-close {
  position:absolute; top:18px; right:18px; z-index:10;
  width:44px; height:44px; border:none; border-radius:50%; cursor:pointer;
  background:rgba(255,255,255,.95); backdrop-filter:blur(10px);
  color:var(--rst2-dark); font-size:18px;
  display:flex; align-items:center; justify-content:center;
  box-shadow:var(--rst2-sh-md); transition:all .3s;
}
.rst-opt2-close:hover { background:var(--rst2-primary); color:#fff; transform:rotate(90deg); }
.rst-opt2-badge {
  position:absolute; bottom:18px; left:18px; z-index:5;
  background:var(--rst2-g2); color:#fff;
  padding:9px 18px; border-radius:50px; font-weight:700; font-size:13px;
  display:inline-flex; align-items:center; gap:8px;
  box-shadow:var(--rst2-sh-md); animation:rstBadgePulse 2s infinite;
}

/* content */
.rst-opt2-content { padding:26px; overflow-y:auto; flex:1; }
.rst-opt2-content::-webkit-scrollbar { width:6px; }
.rst-opt2-content::-webkit-scrollbar-track { background:#f1f1f1; border-radius:10px; }
.rst-opt2-content::-webkit-scrollbar-thumb { background:var(--rst2-g2); border-radius:10px; }

.rst-opt2-header { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; margin-bottom:10px; }
.rst-opt2-itemname { font-size:25px; font-weight:800; color:var(--rst2-dark); margin:0; line-height:1.2; text-transform:capitalize; }
.rst-opt2-pricetag { background:var(--rst2-g2); color:#fff; padding:8px 16px; border-radius:15px; font-weight:700; font-size:17px; white-space:nowrap; flex-shrink:0; }
.rst-opt2-desc { color:#828b99; font-size:14px; line-height:1.6; margin:0 0 22px; padding-bottom:18px; border-bottom:2px dashed #e4e8ef; }

/* option groups */
.rst-opt2-group { margin-bottom:22px; }
.rst-opt2-title { font-size:16.5px; font-weight:700; color:var(--rst2-dark); margin-bottom:13px; display:flex; align-items:center; gap:10px; }
.rst-opt2-title::before { content:''; width:4px; height:20px; background:var(--rst2-g2); border-radius:10px; flex-shrink:0; }
.rst-opt2-req { font-size:11.5px; color:var(--rst2-primary); font-weight:600; margin-left:auto; background:rgba(255,71,87,.1); padding:4px 11px; border-radius:20px; }
.rst-opt2-list { display:flex; flex-direction:column; gap:10px; }
.rst-opt2-item {
  background:var(--rst2-light); border:2px solid transparent; border-radius:18px;
  padding:14px 18px; cursor:pointer; transition:all .3s;
  display:flex; align-items:center; gap:14px;
  position:relative; overflow:hidden; margin:0;
}
.rst-opt2-item:hover { border-color:var(--rst2-primary); transform:translateX(5px); }
.rst-opt2-item.sel { border-color:var(--rst2-primary); background:rgba(255,71,87,.05); }
.rst-opt2-input { position:absolute; opacity:0; pointer-events:none; width:0; height:0; }
.rst-opt2-radio {
  width:23px; height:23px; border:2px solid #d6dbe4; border-radius:50%;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  position:relative; z-index:1; transition:all .3s; background:#fff;
}
.rst-opt2-item.multi .rst-opt2-radio { border-radius:8px; }
.rst-opt2-item.sel .rst-opt2-radio { border-color:var(--rst2-primary); background:var(--rst2-primary); }
.rst-opt2-item.sel .rst-opt2-radio::after {
  content:''; width:9px; height:9px; background:#fff; border-radius:50%;
  animation:rstDotIn .25s cubic-bezier(.175,.885,.32,1.275);
}
.rst-opt2-item.multi.sel .rst-opt2-radio::after { width:11px; height:6px; background:none; border-left:2.5px solid #fff; border-bottom:2.5px solid #fff; border-radius:1px; transform:rotate(-45deg); margin-top:-2px; }
@keyframes rstDotIn { from { transform:scale(0); } to { transform:scale(1); } }
.rst-opt2-name { font-weight:600; font-size:15px; color:var(--rst2-dark); flex:1; min-width:0; position:relative; z-index:1; }
.rst-opt2-price { font-weight:700; font-size:15px; color:var(--rst2-primary); position:relative; z-index:1; flex-shrink:0; }
.rst-opt2-price.free { color:var(--rst2-secondary); }

/* quantity */
.rst-opt2-qty { display:flex; align-items:center; gap:18px; margin-bottom:22px; padding:16px 20px; background:var(--rst2-light); border-radius:20px; }
.rst-opt2-qty-label { font-weight:700; font-size:15px; color:var(--rst2-dark); }
.rst-opt2-qty-ctrl { display:flex; align-items:center; gap:14px; margin-left:auto; }
.rst-opt2-qty-ctrl button {
  width:42px; height:42px; border:none; border-radius:15px; background:#fff;
  color:var(--rst2-dark); font-size:15px; font-weight:700; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:var(--rst2-sh-sm); transition:all .3s;
}
.rst-opt2-qty-ctrl button:hover { background:var(--rst2-primary); color:#fff; transform:scale(1.1); }
.rst-opt2-qty-ctrl button:active { transform:scale(.95); }
.rst-opt2-qty-ctrl span { font-size:22px; font-weight:800; color:var(--rst2-dark); min-width:38px; text-align:center; }

/* add to basket */
.rst-opt2-add {
  width:100%; padding:17px; border:none; cursor:pointer;
  background:var(--rst2-g2); color:#fff; border-radius:20px;
  font-size:16px; font-weight:700; font-family:inherit;
  display:flex; align-items:center; justify-content:center; gap:11px;
  box-shadow:0 10px 30px rgba(245,87,108,.4);
  position:relative; overflow:hidden; transition:all .3s;
}
.rst-opt2-add::before {
  content:''; position:absolute; top:0; left:-100%; width:100%; height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);
  transition:left .5s;
}
.rst-opt2-add:hover::before { left:100%; }
.rst-opt2-add:hover { transform:translateY(-3px); box-shadow:0 15px 40px rgba(245,87,108,.5); }
.rst-opt2-add:active { transform:translateY(0); }
.rst-opt2-add .fa { font-size:19px; }
.rst-opt2-total { background:rgba(255,255,255,.3); padding:5px 14px; border-radius:10px; font-weight:800; }

@media (max-width:480px) {
  .rst-opt2-panel { border-radius:25px; max-height:95vh; }
  .rst-opt2-imgsec { height:200px; }
  .rst-opt2-content { padding:20px; }
  .rst-opt2-itemname { font-size:21px; }
  .rst-opt2-add { padding:16px; font-size:15px; }
}

/* ============================================================
   v6.3 — White card shell for the two public pages
   (no overflow:hidden — that would break the sticky menu tabs;
    the hero/header carry matching radii instead)
   ============================================================ */
.rst-wrap.rst-detail,
.rst-wrap.rst-mkt {
  background:#fff;
  border:none;
  border-radius:20px;
  box-shadow:0 3px 18px rgba(0,0,0,.07);
}
.rst-detail .rst-page-body { padding:0 18px 22px; }
.rst-mkt    .rst-page-body { padding:0 18px 22px; }

/* Inner cards get a hairline so they stay readable on a white page */
.rst-desc2,
.rst-menu2-section,
.rst-searchbar2,
.rst-card2 { border:1px solid #edf0f5; }

.rst-chip2 { border:2px solid #f0f3f8; }
.rst-chip2:hover, .rst-chip2.active { border-color:transparent; }

/* Sticky tab bar — slightly more defined against white */
.rst-tabs2-wrap { background:rgba(241,244,249,.93); border:1px solid #edf0f5; }

/* Menu item cards sit on the section's white, keep them tinted */
.rst-item2 { background:#f7f9fc; }

@media (max-width:768px) {
  .rst-wrap.rst-detail,
  .rst-wrap.rst-mkt { border-radius:16px; }
  .rst-detail .rst-page-body { padding:0 12px 18px; }
  .rst-mkt    .rst-page-body { padding:0 12px 18px; }
}

/* ============================================================
   v6.3 — Mobile: plugin content above the sidebar column
   (backs up the Bootstrap order-* classes on the templates,
    in case a theme build ships without those utilities)
   ============================================================ */
@media (max-width:767.98px) {
  .row > .col-md-9.order-1 { order:-1 !important; }
  .row > .col-md-3.order-2 { order:1 !important;  margin-top:18px; }
}

/* ============================================================
   v6.3.4 — compact layout tweaks
   ============================================================ */
/* Marketplace: 3 cards per row, smaller cards */
.rst-mkt .rst-grid { grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:24px; }
.rst-card2 { border-radius:20px; }
.rst-card2-imgwrap { height:150px; }
.rst-card2-badges { top:12px; left:12px; right:12px; }
.rst-badge2 { padding:5px 11px; font-size:11px; }
.rst-card2-info { padding:14px 16px 16px; }
.rst-card2-header { gap:10px; margin-bottom:4px; }
.rst-card2-avatar { width:42px; height:42px; border-radius:12px; border-width:2px; font-size:16px; }
.rst-card2-name { font-size:15.5px; margin-bottom:3px; gap:6px; }
.rst-card2-verified { font-size:13px; }
.rst-card2-meta { gap:8px; font-size:12px; }
.rst-card2-rating-row { margin-top:10px; padding-top:10px; gap:8px; }
.rst-card2-stars .fa { font-size:11px; }
.rst-card2-rtext { font-size:12.5px; }
.rst-card2-rcount { font-size:11.5px; }
.rst-card2-items { padding:5px 10px; font-size:11.5px; }
.rst-card2-time { padding:6px 12px; font-size:11.5px; }
.rst-card2:hover { transform:translateY(-6px); }
@media (max-width:1100px) { .rst-mkt .rst-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px)  { .rst-mkt .rst-grid { grid-template-columns:1fr; } }

/* Marketplace: cuisine categories sit higher over the hero */
.rst-mkt2-header { padding:26px 28px 92px; }
.rst-mkt .rst-page-body { margin-top:-72px; }
.rst-mkt .rst-cat-section { margin:0 0 6px; }
.rst-mkt2-emojis { margin-top:10px; }
@media (max-width:768px) { .rst-mkt2-header { padding:22px 18px 78px; } .rst-mkt .rst-page-body { margin-top:-60px; } }

/* Restaurant page: smaller menu items */
.rst-menu2-section { padding:18px 18px 14px; border-radius:20px; margin-bottom:14px; }
.rst-menu2-head { gap:10px; margin-bottom:14px; padding-bottom:10px; }
.rst-menu2-icon { width:40px; height:40px; border-radius:12px; font-size:18px; }
.rst-menu2-section .rst-menu2-title { font-size:18px; }
.rst-menu2-count { font-size:12px; }
.rst-menu2-grid { grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:10px; }
.rst-item2 { padding:10px 12px; gap:12px; border-radius:14px; }
.rst-item2-img { width:64px; height:64px; border-radius:12px; }
.rst-item2-ph { font-size:20px; }
.rst-item2-content { gap:6px; }
.rst-item2-header { margin-bottom:2px; gap:6px; }
.rst-item2-name { font-size:14px; }
.rst-item2-badge { padding:3px 8px; font-size:9px; }
.rst-item2-desc { font-size:11.5px; line-height:1.4; -webkit-line-clamp:1; }
.rst-item2-price { font-size:15px; }
.rst-item2-price span { font-size:10.5px; }
.rst-item2-add { width:30px; height:30px; font-size:13px; }
.rst-item2:hover { transform:translateX(3px); }

/* Basket drawer: only as tall as its content */
@media (min-width:768px) {
  .rst-drawer-sheet { top:0; bottom:auto; height:auto; max-height:calc(100vh - 20px); border-radius:0 0 0 24px; }
}
.rst-drawer-body { flex:0 1 auto; padding:10px 18px; }
.rst-drawer-foot { padding:10px 18px 16px; }
.rst-drawer-foot .rst-tot-row { padding:3px 0; }
.rst-drawer-foot .rst-btn-lg { margin-top:8px; }
.rst-basket-empty { padding:18px 10px; }

/* ============================================================
   v6.3.4b — mobile polish
   ============================================================ */
/* Hero: search bar in the header, small corner icon instead of the big button */
.rst-mkt2-header { position:relative; }
.rst-mkt2-top { align-items:center; }
.rst-mkt2-search {
  flex:1 1 260px; min-width:200px; max-width:420px; position:relative; display:flex; align-items:center;
  margin-left:auto; z-index:1;
}
.rst-mkt2-search > .fa { position:absolute; left:16px; color:#fff; opacity:.85; font-size:14px; pointer-events:none; }
.rst-mkt2-search input {
  width:100%; border:2px solid rgba(255,255,255,.35); background:rgba(255,255,255,.22);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  color:#fff; border-radius:50px; padding:11px 40px 11px 42px; font-size:14px; font-weight:500;
  outline:none; transition:all .25s; font-family:inherit;
}
.rst-mkt2-search input::placeholder { color:rgba(255,255,255,.85); }
.rst-mkt2-search input:focus { background:#fff; color:var(--rst2-dark); border-color:#fff; box-shadow:0 8px 24px rgba(0,0,0,.18); }
.rst-mkt2-search input:focus::placeholder { color:#a8b0bd; }
.rst-mkt2-search input:focus + .rst-mkt2-search-clear, .rst-mkt2-search:focus-within > .fa { color:var(--rst2-primary); opacity:1; }
.rst-mkt2-search-clear { position:absolute; right:10px; width:26px; height:26px; border-radius:50%; border:0; background:rgba(0,0,0,.15); color:#fff; cursor:pointer; font-size:11px; display:flex; align-items:center; justify-content:center; }
.rst-mkt2-corner {
  position:absolute; top:12px; right:12px; z-index:3;
  width:40px; height:40px; border-radius:14px; display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.22); border:2px solid rgba(255,255,255,.35); color:#fff; font-size:15px;
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); text-decoration:none; transition:all .25s;
}
.rst-mkt2-corner:hover { background:#fff; color:#f5576c; transform:translateY(-2px); text-decoration:none; }
.rst-mkt2-corner-plus { position:absolute; top:-6px; right:-6px; width:18px; height:18px; border-radius:50%; background:#ffd166; color:#2c3e50; font-size:12px; font-weight:800; line-height:18px; text-align:center; }
.rst-mkt2-header .rst-mkt2-top { padding-right:48px; }
.rst-searchbar2 { padding:12px 18px; border-radius:18px; }
.rst-searchbar2-text { font-size:15px; }

/* Cuisine categories: small, compact */
.rst-chip2 { padding:8px 12px; border-radius:14px; min-width:76px; gap:5px; }
.rst-chip2-img { width:38px; height:38px; border-radius:11px; font-size:20px; }
.rst-chip2-label { font-size:11.5px; max-width:72px; }
.rst-chip2:hover, .rst-chip2.active { transform:translateY(-2px); }
.rst-chip2-strip { gap:8px; padding:4px 2px 8px; }
.rst-cat-icon-btn { padding:4px 2px; gap:4px; }

/* Restaurant page: smaller category tabs */
.rst-tabs2 { gap:6px; }
.rst-tab2 { padding:7px 13px; font-size:12.5px; border-radius:30px; gap:5px; }
.rst-tab2.active { transform:none; }
.rst-tab2.active:hover { transform:translateY(-1px); }
.rst-tabs2-basket { width:40px; height:40px; font-size:15px; }
.rst-tabs2-basket-badge { min-width:20px; height:20px; font-size:10.5px; top:-5px; right:-5px; }
.rst-tabs2-wrap { padding:8px 10px; }

/* Floating basket button (mobile + desktop) */
.rst-float-basket {
  position:fixed; right:18px; bottom:24px; z-index:9990;
  height:54px; min-width:54px; padding:0 18px 0 16px; border-radius:30px; border:0; cursor:pointer;
  background:var(--rst2-g2); color:#fff; font-family:inherit; font-weight:700; font-size:14px;
  display:flex; align-items:center; gap:10px;
  box-shadow:0 10px 30px rgba(245,87,108,.45);
  transform:translateY(120px); opacity:0; transition:transform .35s cubic-bezier(.175,.885,.32,1.275), opacity .25s;
}
.rst-float-basket .fa { font-size:19px; }
.rst-float-basket.has-items { transform:translateY(0); opacity:1; }
.rst-float-basket-badge {
  position:absolute; top:-6px; left:-4px; min-width:22px; height:22px; border-radius:11px; padding:0 6px;
  background:#ffd166; color:#2c3e50; font-size:11.5px; font-weight:800; line-height:22px; text-align:center;
  box-shadow:0 2px 8px rgba(0,0,0,.2);
}
.rst-float-basket-total { font-size:14px; }
.rst-float-basket.bump { animation:rstBasketBump .6s cubic-bezier(.175,.885,.32,1.275); }
@keyframes rstBasketBump { 0%{transform:translateY(0) scale(1)} 30%{transform:translateY(-10px) scale(1.15) rotate(-6deg)} 60%{transform:translateY(0) scale(.95) rotate(4deg)} 100%{transform:translateY(0) scale(1)} }
@media (max-width:767px) {
  .rst-float-basket { bottom:78px; right:14px; }  /* above the theme's bottom bar */
  .rst-basket-drawer { z-index:100000; }
}

/* Basket: WhatsApp green checkout + icon */
.rst-drawer-foot .rst-btn-primary, .rst-co-send, .rst-btn-wa {
  background:#25d366 !important; border-color:#25d366 !important; color:#fff !important;
  box-shadow:0 8px 22px rgba(37,211,102,.35) !important;
}
.rst-drawer-foot .rst-btn-primary:hover, .rst-co-send:hover { background:#1ebe5b !important; }
.rst-drawer-foot .rst-btn-primary .fab, .rst-co-send .fab { font-size:18px; margin-right:4px; }

/* Mobile marketplace: one card per row, featured included */
@media (max-width:640px) {
  .rst-mkt .rst-grid { grid-template-columns:1fr !important; gap:14px; }
  .rst-card2-imgwrap { height:160px; }
  .rst-mkt2-header .rst-mkt2-top { padding-right:0; }
  .rst-mkt2-search { max-width:none; flex-basis:100%; margin-top:4px; }
  .rst-mkt2-corner { top:10px; right:10px; width:36px; height:36px; }
  .rst-mkt2-logo { padding-right:44px; }
  .rst-mkt2-emojis { display:none; }
}
@media (min-width:768px) { .rst-float-basket { right:96px; bottom:22px; } }
