  :root {
      --cream: #faf7f2;
      --warm: #f5efe6;
      --gold: #c9952a;
      --gold-light: #e8b84b;
      --dark: #1a1208;
      --brown: #6b4423;
      --text: #2d1f0e;
      --muted: #9a8070;
      --card-bg: #ffffff;
      --shadow: 0 8px 32px rgba(26,18,8,0.10);
      --radius: 18px;
      --radius-sm: 10px;
    }

    * { box-sizing: border-box; }

    body {
      font-family: 'Inter', serif;
      background: var(--cream);
      color: var(--text);
      min-height: 100vh;
      padding-bottom: 40px;
    }

    /* ── HEADER ── */
    .site-header {
      background: var(--dark);
      padding: 28px 20px 22px;
      text-align: center;
      position: sticky;
      top: 0;
      z-index: 100;
      box-shadow: 0 4px 24px rgba(0,0,0,0.35);
    }

    .logo-wrap {
      display: inline-flex;
      flex-direction: column;
      align-items: center;
      gap: 4px;
      margin-bottom: 16px;
    }

    .logo-icon {
      width: 56px;
      height: 56px;
      background: linear-gradient(135deg, var(--gold), var(--gold-light));
      border-radius: 16px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 26px;
      box-shadow: 0 4px 16px rgba(201,149,42,0.4);
      margin-bottom: 6px;
    }

    .logo-name {
      font-family: 'Inter', serif;
      font-size: 1.5rem;
      font-weight: 900;
      color: #fff;
      letter-spacing: 0.5px;
      line-height: 1;
    }

    .logo-sub {
      font-size: 0.7rem;
      color: var(--gold-light);
      letter-spacing: 3px;
      text-transform: uppercase;
      font-weight: 500;
    }

    .search-wrap {
      position: relative;
      max-width: 400px;
      margin: 0 auto;
    }

    .search-wrap .bi-search {
      position: absolute;
      left: 14px;
      top: 50%;
      transform: translateY(-50%);
      color: var(--muted);
      font-size: 1rem;
      pointer-events: none;
    }

    .search-input {
      width: 100%;
      background: rgba(255,255,255,0.08);
      border: 1.5px solid rgba(255,255,255,0.12);
      border-radius: 50px;
      padding: 10px 16px 10px 40px;
      color: #fff;
      font-size: 0.9rem;
      font-family: 'Inter', serif;
      outline: none;
      transition: border-color 0.2s, background 0.2s;
    }

    .search-input::placeholder { color: rgba(255,255,255,0.38); }
    .search-input:focus {
      border-color: var(--gold);
      background: rgba(255,255,255,0.13);
    }

    /* ── CATEGORY SLIDER ── */
    .cat-section {
      padding: 22px 0 10px;
      background: var(--warm);
      border-bottom: 1px solid rgba(201,149,42,0.15);
    }

    .cat-track {
      display: flex;
      gap: 14px;
      overflow-x: auto;
      padding: 4px 16px 10px;
      scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
    }
    .cat-track::-webkit-scrollbar { display: none; }

    .cat-item {
      flex: 0 0 auto;
      scroll-snap-align: start;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
      cursor: pointer;
      transition: transform 0.2s;
    }
    .cat-item:active { transform: scale(0.95); }

    .cat-img-wrap {
      width: 72px;
      height: 72px;
      border-radius: 50%;
      overflow: hidden;
      border: 2.5px solid transparent;
      box-shadow: 0 4px 14px rgba(0,0,0,0.10);
      transition: border-color 0.2s, box-shadow 0.2s;
      background: #fff;
    }

    .cat-item.active .cat-img-wrap {
      border-color: var(--gold);
      box-shadow: 0 4px 18px rgba(201,149,42,0.35);
    }

    .cat-img-wrap img {
      width: 100%; height: 100%;
      object-fit: cover;
    }

    .cat-label {
      font-size: 0.72rem;
      font-weight: 600;
      color: var(--muted);
      text-align: center;
      transition: color 0.2s;
      white-space: nowrap;
    }
    .cat-item.active .cat-label { color: var(--gold); }

    /* ── SECTION TITLE ── */
    .section-header {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 26px 16px 14px;
    }

    .section-title {
      font-family: 'Inter', serif;
      font-size: 1.3rem;
      font-weight: 700;
      color: var(--dark);
    }

    .section-line {
      flex: 1;
      height: 1px;
      background: linear-gradient(to right, rgba(201,149,42,0.4), transparent);
    }

    /* ── PRODUCTS ── */
    .products-wrap { padding: 0 12px; }

    /* SINGLE CARD */
    .card-single {
      background: var(--card-bg);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      display: flex;
      align-items: center;
      gap: 14px;
      padding: 14px;
      margin-bottom: 12px;
      border: none;
      transition: transform 0.18s, box-shadow 0.18s;
      cursor: pointer;
      overflow: hidden;
      position: relative;
    }
    .card-single:active { transform: scale(0.985); }

    .card-single .prod-img {
      width: 90px;
      height: 90px;
      border-radius: 12px;
      object-fit: cover;
      flex-shrink: 0;
    }

    .card-single .prod-body { flex: 1; min-width: 0; }

    .prod-name {
      font-family: 'Inter', serif;
      font-size: 1rem;
      font-weight: 700;
      color: var(--dark);
      margin-bottom: 4px;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .prod-desc {
      font-size: 0.78rem;
      color: var(--muted);
      line-height: 1.4;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
      margin-bottom: 8px;
    }

    .prod-footer {
      display: flex;
      align-items: center;
      justify-content: space-between;
    }

    .prod-price {
      font-size: 1.1rem;
      font-weight: 700;
      color: var(--gold);
      font-family: 'Inter', serif;
    }

    .add-btn {
      width: 32px; height: 32px;
      border-radius: 50%;
      background: var(--dark);
      color: var(--gold);
      border: none;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.1rem;
      cursor: pointer;
      transition: background 0.18s, transform 0.15s;
      flex-shrink: 0;
    }
    .add-btn:active { transform: scale(0.88); background: var(--gold); color: #fff; }

    .badge-tag {
      position: absolute;
      top: 10px; right: 10px;
      background: linear-gradient(135deg, #e8b84b, #c9952a);
      color: #fff;
      font-size: 0.6rem;
      font-weight: 700;
      padding: 2px 7px;
      border-radius: 20px;
      text-transform: uppercase;
      letter-spacing: 0.5px;
    }

    /* DUAL CARDS */
    .dual-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      margin-bottom: 12px;
    }

    .card-dual {
      background: var(--card-bg);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      overflow: hidden;
      border: none;
      cursor: pointer;
      transition: transform 0.18s;
    }
    .card-dual:active { transform: scale(0.97); }

    .card-dual .dual-img {
      width: 100%;
      aspect-ratio: 1/1;
      object-fit: cover;
      display: block;
    }

    .card-dual .dual-body {
      padding: 10px 10px 12px;
    }

    .card-dual .prod-name {
      font-size: 0.88rem;
      margin-bottom: 3px;
    }

    .card-dual .prod-desc {
      font-size: 0.72rem;
      -webkit-line-clamp: 2;
      margin-bottom: 8px;
    }

    .card-dual .prod-footer { gap: 4px; }
    .card-dual .prod-price { font-size: 0.95rem; }
    .card-dual .add-btn { width: 28px; height: 28px; font-size: 0.95rem; }

    /* ── CATEGORY SECTIONS ── */
    .cat-section-block { display: none; }
    .cat-section-block.active { display: block; }

    /* ── NO RESULT ── */
    .no-result {
      text-align: center;
      padding: 48px 20px;
      display: none;
    }
    .no-result.show { display: block; }
    .no-result i { font-size: 3rem; color: var(--gold-light); margin-bottom: 12px; }
    .no-result p { color: var(--muted); font-size: 0.95rem; }

    /* ── TOAST ── */
    .cart-toast {
      position: fixed;
      bottom: 24px;
      left: 50%;
      transform: translateX(-50%) translateY(80px);
      background: var(--dark);
      color: #fff;
      padding: 10px 22px;
      border-radius: 50px;
      font-size: 0.85rem;
      font-weight: 500;
      white-space: nowrap;
      z-index: 999;
      opacity: 0;
      transition: transform 0.3s cubic-bezier(.34,1.56,.64,1), opacity 0.3s;
      box-shadow: 0 8px 24px rgba(0,0,0,0.3);
      pointer-events: none;
    }
    .cart-toast.show {
      transform: translateX(-50%) translateY(0);
      opacity: 1;
    }
