/* ==========================================================================
   BILIS Delivery — Premium Design System
   Brand: Purple luxury · Glassmorphism · Micro animations
   ========================================================================== */

:root {
  --bilis-primary: #6D28D9;
  --bilis-primary-hover: #7C3AED;
  --bilis-primary-dark: #5B21B6;
  --bilis-secondary: #8B5CF6;
  --bilis-accent: #C4B5FD;
  --bilis-light: #F4F2FF;
  --bilis-dark: #1E1B2E;
  --bilis-white: #FFFFFF;
  --bilis-success: #22C55E;
  --bilis-warning: #F59E0B;
  --bilis-danger: #EF4444;
  --bilis-info: #3B82F6;

  --bilis-gradient: linear-gradient(135deg, #6D28D9, #8B5CF6);
  --bilis-gradient-hero: linear-gradient(135deg, #5B21B6, #7C3AED, #A78BFA);
  --bilis-gradient-soft: linear-gradient(135deg, rgba(109, 40, 217, 0.12) 0%, rgba(139, 92, 246, 0.08) 100%);
  --bilis-mesh: radial-gradient(ellipse at 20% 20%, rgba(139, 92, 246, 0.28) 0%, transparent 50%),
                radial-gradient(ellipse at 80% 10%, rgba(196, 181, 253, 0.35) 0%, transparent 45%),
                radial-gradient(ellipse at 60% 80%, rgba(109, 40, 217, 0.16) 0%, transparent 50%);

  --bilis-font-heading: 'Poppins', sans-serif;
  --bilis-font-body: 'Plus Jakarta Sans', sans-serif;

  --bilis-radius-sm: 10px;
  --bilis-radius-md: 16px;
  --bilis-radius-lg: 24px;
  --bilis-radius-xl: 28px;
  --bilis-radius-btn: 14px;
  --bilis-radius-pill: 999px;

  --bilis-shadow-sm: 0 8px 24px rgba(30, 27, 46, 0.06);
  --bilis-shadow-md: 0 14px 40px rgba(109, 40, 217, 0.12);
  --bilis-shadow-lg: 0 24px 56px rgba(109, 40, 217, 0.16);
  --bilis-shadow-glow: 0 0 40px rgba(109, 40, 217, 0.28);

  --bilis-glass-bg: rgba(255, 255, 255, 0.72);
  --bilis-glass-border: rgba(255, 255, 255, 0.55);
  --bilis-glass-blur: 20px;

  --bilis-navbar-height: 80px;
  --bilis-transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --bilis-body-bg: #F8F7FC;
  --bilis-section-bg: #F8F7FC;
  --bilis-text: #1E1B2E;
  --bilis-text-secondary: #6B6880;
  --bilis-text-muted: #6B6880;
  --bilis-border: #E7E3F8;
  --bilis-divider: #EEEAFB;
  --bilis-card-bg: #FFFFFF;
  --bilis-max-width: 1440px;
  --bilis-content-pad: 32px;
  --bilis-section-gap: 48px;
  --bilis-card-gap: 24px;
}

[data-theme="dark"] {
  --bilis-body-bg: #111114;
  --bilis-section-bg: #111114;
  --bilis-card-bg: #1D1D24;
  --bilis-text: #FFFFFF;
  --bilis-text-secondary: #A1A1AA;
  --bilis-text-muted: #A1A1AA;
  --bilis-glass-bg: rgba(29, 29, 36, 0.82);
  --bilis-glass-border: rgba(139, 92, 246, 0.25);
  --bilis-border: rgba(139, 92, 246, 0.2);
  --bilis-shadow-sm: 0 4px 16px rgba(0, 0, 0, 0.35);
  --bilis-shadow-md: 0 12px 40px rgba(0, 0, 0, 0.45);
  --bilis-shadow-lg: 0 24px 64px rgba(0, 0, 0, 0.55);
}

*, *::before, *::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  -webkit-font-smoothing: antialiased;
}

body {
  font-family: var(--bilis-font-body);
  font-size: 1rem;
  line-height: 1.6;
  letter-spacing: 0.3px;
  color: var(--bilis-text);
  background: var(--bilis-body-bg);
  overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: var(--bilis-font-heading);
  font-weight: 700;
  letter-spacing: 0.3px;
  color: var(--bilis-text);
}

a {
  color: var(--bilis-primary);
  text-decoration: none;
  transition: color var(--bilis-transition);
}

a:hover { color: var(--bilis-primary-hover); }

img { max-width: 100%; height: auto; }

::selection {
  background: rgba(139, 92, 246, 0.35);
  color: var(--bilis-dark);
}

/* Loading Screen */
#bilis-loader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bilis-dark);
  transition: opacity 0.6s ease, visibility 0.6s ease;
}

#bilis-loader.hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.bilis-loader-inner {
  text-align: center;
}

.bilis-loader-logo {
  font-family: var(--bilis-font-heading);
  font-size: 2.5rem;
  font-weight: 800;
  background: var(--bilis-gradient);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom: 1.5rem;
}

.bilis-loader-spinner {
  width: 48px;
  height: 48px;
  margin: 0 auto;
  border: 3px solid rgba(139, 92, 246, 0.2);
  border-top-color: var(--bilis-accent);
  border-radius: 50%;
  animation: bilis-spin 0.8s linear infinite;
}

.bilis-loader-text {
  margin-top: 1rem;
  color: rgba(245, 243, 255, 0.7);
  font-size: 0.875rem;
}

@keyframes bilis-spin {
  to { transform: rotate(360deg); }
}

/* Glass Card */
.glass-card {
  background: var(--bilis-glass-bg);
  backdrop-filter: blur(var(--bilis-glass-blur));
  -webkit-backdrop-filter: blur(var(--bilis-glass-blur));
  border: 1px solid var(--bilis-glass-border);
  border-radius: var(--bilis-radius-lg);
  box-shadow: var(--bilis-shadow-md);
  transition: transform var(--bilis-transition), box-shadow var(--bilis-transition);
}

.glass-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--bilis-shadow-lg);
}

/* Buttons */
.btn-bilis {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.875rem 1.75rem;
  font-family: var(--bilis-font-heading);
  font-weight: 600;
  font-size: 0.9375rem;
  color: var(--bilis-white);
  background: var(--bilis-gradient);
  border: none;
  border-radius: var(--bilis-radius-btn);
  box-shadow: var(--bilis-shadow-sm);
  cursor: pointer;
  transition: transform var(--bilis-transition), box-shadow var(--bilis-transition), filter var(--bilis-transition);
  position: relative;
  overflow: hidden;
}

.btn-bilis::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.2) 0%, transparent 50%);
  opacity: 0;
  transition: opacity var(--bilis-transition);
}

.btn-bilis:hover {
  color: var(--bilis-white);
  transform: translateY(-2px);
  box-shadow: var(--bilis-shadow-glow);
  filter: brightness(1.05);
}

.btn-bilis:hover::before { opacity: 1; }

.btn-bilis:active { transform: translateY(0); }

.btn-bilis-outline {
  background: #fff;
  color: var(--bilis-primary);
  border: 1px solid var(--bilis-border);
  box-shadow: none;
  border-radius: var(--bilis-radius-btn);
}

.btn-bilis-outline:hover {
  background: var(--bilis-section-bg);
  color: var(--bilis-primary);
  border-color: var(--bilis-border);
  box-shadow: var(--bilis-shadow-sm);
}

.btn-bilis-ghost {
  background: rgba(109, 40, 217, 0.08);
  color: var(--bilis-primary);
  box-shadow: none;
}

.btn-bilis-ghost:hover {
  background: rgba(109, 40, 217, 0.15);
  box-shadow: var(--bilis-shadow-sm);
}

.btn-bilis-sm {
  padding: 0.5rem 1.25rem;
  font-size: 0.8125rem;
}

.btn-bilis-lg {
  padding: 1rem 2.25rem;
  font-size: 1rem;
}

.btn-bilis-icon {
  width: 44px;
  height: 44px;
  padding: 0;
  border-radius: 50%;
}

/* Navbar — frosted bar (Design System v1.0) */
.bilis-nav-wrap {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1050;
  height: var(--bilis-navbar-height);
  display: flex;
  align-items: center;
  padding: 0;
  pointer-events: none;
}

.bilis-nav-wrap * {
  pointer-events: auto;
}

.bilis-nav-bar,
.bilis-nav-pill {
  position: relative;
  width: 100%;
  height: var(--bilis-navbar-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0 1.25rem;
  border-radius: 0;
  border: 0;
  border-bottom: 1px solid var(--bilis-border);
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(18px) saturate(1.2);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
  box-shadow: 0 8px 24px rgba(109, 40, 217, 0.06);
  transition: background 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease, color 0.35s ease;
}

.bilis-nav-wrap.is-cinema .bilis-nav-bar:not(.is-scrolled),
.bilis-nav-wrap.is-cinema .bilis-nav-pill:not(.is-scrolled) {
  background: rgba(30, 27, 46, 0.42);
  border-bottom-color: rgba(255, 255, 255, 0.12);
  box-shadow: none;
}

.bilis-nav-logo {
  font-family: var(--bilis-font-heading);
  font-weight: 700;
  font-size: 1.2rem;
  letter-spacing: 0.08em;
  color: var(--bilis-primary);
  text-decoration: none;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
}

.bilis-nav-logo img {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  object-fit: cover;
  display: block;
}

.bilis-nav-logo i { color: var(--bilis-primary); }

.bilis-footer-logo {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  vertical-align: -6px;
  margin-right: 0.25rem;
}

.panel-brand-title {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 1.15rem;
  margin: 0;
}

.panel-brand-title img {
  border-radius: 6px;
  object-fit: cover;
}

.bilis-nav-wrap.is-cinema .bilis-nav-bar:not(.is-scrolled) .bilis-nav-logo,
.bilis-nav-wrap.is-cinema .bilis-nav-bar:not(.is-scrolled) .bilis-nav-logo i {
  color: #fff;
  -webkit-text-fill-color: #fff;
  background: none;
}

.bilis-nav-search {
  display: none;
  align-items: center;
  gap: 0.65rem;
  flex: 1;
  max-width: 420px;
  height: 48px;
  margin: 0 auto;
  padding: 0 1.15rem;
  border-radius: var(--bilis-radius-pill);
  background: var(--bilis-section-bg);
  border: 1px solid transparent;
  transition: border-color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}

.bilis-nav-search i { color: var(--bilis-primary); font-size: 0.95rem; }
.bilis-nav-search input {
  flex: 1;
  border: 0;
  outline: 0;
  background: transparent;
  font-family: var(--bilis-font-body);
  font-size: 0.9rem;
  color: var(--bilis-text);
  min-width: 0;
}
.bilis-nav-search input::placeholder { color: #A3A3B2; }
.bilis-nav-search:focus-within {
  border-color: var(--bilis-primary);
  box-shadow: 0 0 0 4px rgba(109, 40, 217, 0.12);
  background: #fff;
}

.bilis-nav-wrap.is-cinema .bilis-nav-bar:not(.is-scrolled) .bilis-nav-search {
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.18);
}
.bilis-nav-wrap.is-cinema .bilis-nav-bar:not(.is-scrolled) .bilis-nav-search i,
.bilis-nav-wrap.is-cinema .bilis-nav-bar:not(.is-scrolled) .bilis-nav-search input {
  color: #fff;
}
.bilis-nav-wrap.is-cinema .bilis-nav-bar:not(.is-scrolled) .bilis-nav-search input::placeholder {
  color: rgba(255, 255, 255, 0.7);
}

@media (min-width: 768px) {
  .bilis-nav-search { display: flex; }
}

.bilis-nav-links {
  display: none;
  align-items: center;
  gap: 0.15rem;
  flex-shrink: 0;
}

@media (min-width: 1200px) {
  .bilis-nav-links { display: flex; }
}

.bilis-nav-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.45rem 0.85rem;
  border-radius: var(--bilis-radius-pill);
  font-family: var(--bilis-font-heading);
  font-size: 0.84rem;
  font-weight: 500;
  color: var(--bilis-text-secondary);
  text-decoration: none;
  transition: color 0.2s ease, background 0.2s ease;
  white-space: nowrap;
}

.bilis-nav-link:hover,
.bilis-nav-link.active {
  color: var(--bilis-primary);
  background: var(--bilis-section-bg);
}

.bilis-nav-wrap.is-cinema .bilis-nav-bar:not(.is-scrolled) .bilis-nav-link {
  color: rgba(255, 255, 255, 0.9);
}
.bilis-nav-wrap.is-cinema .bilis-nav-bar:not(.is-scrolled) .bilis-nav-link:hover,
.bilis-nav-wrap.is-cinema .bilis-nav-bar:not(.is-scrolled) .bilis-nav-link.active {
  color: #fff;
  background: rgba(255, 255, 255, 0.14);
}

.bilis-nav-actions {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-shrink: 0;
  margin-left: auto;
}

.bilis-nav-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: var(--bilis-radius-btn);
  border: 1px solid var(--bilis-border);
  background: #fff;
  color: var(--bilis-primary);
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
.bilis-nav-icon-btn:hover {
  transform: translateY(-1px);
  box-shadow: var(--bilis-shadow-sm);
  background: var(--bilis-section-bg);
}

.bilis-nav-wrap.is-cinema .bilis-nav-bar:not(.is-scrolled) .bilis-nav-icon-btn {
  border-color: rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
}

.bilis-cart-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 1.15rem;
  height: 1.15rem;
  padding: 0 0.3rem;
  border-radius: 999px;
  background: var(--bilis-primary);
  color: #fff;
  font-size: 0.65rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.bilis-nav-cta {
  display: inline-flex;
  align-items: center;
  background: var(--bilis-gradient);
  color: #fff !important;
  font-family: var(--bilis-font-heading);
  font-size: 0.84rem;
  font-weight: 600;
  padding: 0.6rem 1.15rem;
  border-radius: var(--bilis-radius-btn);
  text-decoration: none !important;
  box-shadow: 0 8px 20px rgba(109, 40, 217, 0.28);
  transition: transform 0.25s ease, filter 0.25s ease, box-shadow 0.25s ease;
}

.bilis-nav-cta:hover {
  color: #fff !important;
  filter: brightness(1.05);
  transform: translateY(-1px);
  box-shadow: var(--bilis-shadow-glow);
}

.bilis-nav-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: var(--bilis-radius-btn);
  border: 1px solid var(--bilis-border);
  background: #fff;
  color: var(--bilis-primary-dark);
  cursor: pointer;
}

.bilis-nav-wrap.is-cinema .bilis-nav-bar:not(.is-scrolled) .bilis-nav-toggle {
  border-color: rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

@media (min-width: 1200px) {
  .bilis-nav-toggle { display: none; }
}

.bilis-nav-mobile {
  display: none;
  position: absolute;
  top: calc(var(--bilis-navbar-height) + 0.5rem);
  left: 1rem;
  right: 1rem;
  max-height: 70vh;
  overflow-y: auto;
  padding: 1rem;
  border-radius: var(--bilis-radius-lg);
  background: rgba(255, 255, 255, 0.98);
  border: 1px solid var(--bilis-divider);
  box-shadow: var(--bilis-shadow-md);
  z-index: 30;
  pointer-events: auto;
}

.bilis-nav-mobile.is-open { display: block; }

.bilis-nav-search--mobile {
  display: flex;
  max-width: none;
  width: 100%;
  margin: 0 0 0.75rem;
  height: 48px;
}

.bilis-nav-mobile a {
  display: block;
  width: 100%;
  padding: 0.75rem 0.35rem;
  border-bottom: 1px solid var(--bilis-divider);
  color: var(--bilis-text);
  font-family: var(--bilis-font-heading);
  font-size: 0.92rem;
  font-weight: 500;
  text-decoration: none;
}

.bilis-nav-mobile .bilis-nav-cta {
  display: flex;
  justify-content: center;
  margin-top: 1rem;
  border: 0;
}

.bilis-nav-dropdown-menu {
  border-radius: var(--bilis-radius-md);
  border: 1px solid var(--bilis-divider);
  box-shadow: var(--bilis-shadow-sm);
  overflow: hidden;
  padding: 0.35rem;
}
.bilis-nav-dropdown-menu .dropdown-item {
  border-radius: 10px;
  font-size: 0.9rem;
  padding: 0.55rem 0.75rem;
}
.bilis-nav-dropdown-menu .dropdown-item:hover {
  background: var(--bilis-section-bg);
  color: var(--bilis-primary);
}

/* Legacy class aliases so older styles don't break */
.bilis-navbar { display: none; }

/* Navbar */
.bilis-navbar-legacy {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1030;
  height: var(--bilis-navbar-height);
}

[data-theme="dark"] .bilis-navbar {
  background: rgba(15, 8, 36, 0.75);
}

.bilis-navbar.scrolled {
  background: rgba(255, 255, 255, 0.92);
  border-bottom-color: var(--bilis-border);
  box-shadow: var(--bilis-shadow-sm);
  height: 64px;
}

[data-theme="dark"] .bilis-navbar.scrolled {
  background: rgba(15, 8, 36, 0.95);
}

/* Cinema landing — readable header over video */
body.landing-cinema .bilis-navbar {
  background: linear-gradient(180deg, rgba(7, 4, 15, 0.55) 0%, rgba(7, 4, 15, 0) 100%);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-bottom-color: transparent;
  box-shadow: none;
}

body.landing-cinema .bilis-navbar .navbar-brand {
  background: none;
  -webkit-text-fill-color: #fff;
  color: #fff;
  text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35);
  transition: color 0.55s cubic-bezier(0.22, 1, 0.36, 1), text-shadow 0.55s ease, background 0.55s ease, -webkit-text-fill-color 0.55s ease;
}

body.landing-cinema .bilis-navbar .nav-link,
body.landing-cinema .bilis-navbar .bilis-dark-toggle {
  color: rgba(255, 255, 255, 0.92);
  transition: color 0.55s cubic-bezier(0.22, 1, 0.36, 1), background 0.55s ease, border-color 0.55s ease;
}

body.landing-cinema .bilis-navbar .bilis-dark-toggle {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.28);
}

body.landing-cinema .bilis-navbar .nav-link:hover,
body.landing-cinema .bilis-navbar .nav-link.active {
  color: #fff;
  background: rgba(255, 255, 255, 0.14);
}

body.landing-cinema .bilis-navbar .navbar-toggler {
  color: #fff;
}

body.landing-cinema .bilis-navbar.scrolled,
body.landing-cinema .bilis-navbar.is-solid {
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: saturate(180%) blur(22px);
  -webkit-backdrop-filter: saturate(180%) blur(22px);
  border-bottom-color: var(--bilis-border);
  box-shadow: 0 8px 32px rgba(31, 17, 71, 0.08);
  height: 64px;
}

[data-theme="dark"] body.landing-cinema .bilis-navbar.scrolled,
[data-theme="dark"] body.landing-cinema .bilis-navbar.is-solid {
  background: rgba(15, 8, 36, 0.88);
}

body.landing-cinema .bilis-navbar.scrolled .navbar-brand,
body.landing-cinema .bilis-navbar.is-solid .navbar-brand {
  background: var(--bilis-gradient);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-shadow: none;
}

body.landing-cinema .bilis-navbar.scrolled .nav-link,
body.landing-cinema .bilis-navbar.is-solid .nav-link {
  color: var(--bilis-text);
}

body.landing-cinema .bilis-navbar.scrolled .nav-link:hover,
body.landing-cinema .bilis-navbar.scrolled .nav-link.active,
body.landing-cinema .bilis-navbar.is-solid .nav-link:hover,
body.landing-cinema .bilis-navbar.is-solid .nav-link.active {
  color: var(--bilis-primary);
  background: rgba(109, 40, 217, 0.08);
}

body.landing-cinema .bilis-navbar.scrolled .bilis-dark-toggle,
body.landing-cinema .bilis-navbar.is-solid .bilis-dark-toggle {
  color: var(--bilis-text);
  background: var(--bilis-glass-bg);
  border-color: var(--bilis-border);
}

body.landing-cinema .bilis-navbar.scrolled .navbar-toggler,
body.landing-cinema .bilis-navbar.is-solid .navbar-toggler {
  color: var(--bilis-text);
}

body.landing-cinema .bilis-navbar.is-hidden {
  transform: translateY(-110%);
}

body.landing-cinema .main-content {
  padding-top: 0;
}

.bilis-navbar .navbar-brand {
  font-family: var(--bilis-font-heading);
  font-weight: 800;
  font-size: 1.5rem;
  letter-spacing: 0.08em;
  background: var(--bilis-gradient);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.bilis-navbar .nav-link {
  font-weight: 500;
  color: var(--bilis-text);
  padding: 0.5rem 1rem !important;
  border-radius: var(--bilis-radius-pill);
  transition: all var(--bilis-transition);
}

.bilis-navbar .nav-link:hover,
.bilis-navbar .nav-link.active {
  color: var(--bilis-primary);
  background: rgba(109, 40, 217, 0.08);
}

.bilis-cart-badge {
  position: absolute;
  top: -4px;
  right: -8px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  font-size: 0.65rem;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
  color: var(--bilis-white);
  background: var(--bilis-gradient);
  border-radius: var(--bilis-radius-pill);
}

.bilis-dark-toggle {
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--bilis-border);
  border-radius: 50%;
  background: var(--bilis-glass-bg);
  color: var(--bilis-text);
  cursor: pointer;
  transition: all var(--bilis-transition);
}

.bilis-dark-toggle:hover {
  border-color: var(--bilis-accent);
  color: var(--bilis-accent);
}

/* Hero */
.bilis-hero {
  position: relative;
  min-height: calc(100vh - var(--bilis-navbar-height));
  display: flex;
  align-items: center;
  padding: 3rem 0 5rem;
  overflow: hidden;
}

.bilis-hero-bg {
  position: absolute;
  inset: 0;
  background: var(--bilis-mesh), var(--bilis-light);
  z-index: 0;
}

[data-theme="dark"] .bilis-hero-bg {
  background: var(--bilis-mesh), var(--bilis-dark);
}

.bilis-hero-blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(60px);
  opacity: 0.6;
  animation: bilis-blob-float 8s ease-in-out infinite;
}

.bilis-hero-blob-1 {
  width: 400px;
  height: 400px;
  background: rgba(109, 40, 217, 0.4);
  top: 10%;
  left: -5%;
}

.bilis-hero-blob-2 {
  width: 300px;
  height: 300px;
  background: rgba(168, 85, 247, 0.35);
  top: 50%;
  right: -5%;
  animation-delay: -3s;
}

.bilis-hero-blob-3 {
  width: 250px;
  height: 250px;
  background: rgba(139, 92, 246, 0.3);
  bottom: 10%;
  left: 30%;
  animation-delay: -5s;
}

@keyframes bilis-blob-float {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33% { transform: translate(20px, -30px) scale(1.05); }
  66% { transform: translate(-15px, 20px) scale(0.95); }
}

#hero-canvas {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

.bilis-hero-content {
  position: relative;
  z-index: 2;
}

.bilis-hero-title {
  font-size: clamp(2.5rem, 6vw, 4.25rem);
  line-height: 1.1;
  margin-bottom: 1.25rem;
}

.bilis-hero-title .gradient-text {
  background: var(--bilis-gradient);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.bilis-hero-subtitle {
  font-size: 1.125rem;
  color: var(--bilis-text-muted);
  max-width: 540px;
  margin-bottom: 2rem;
}

.bilis-hero-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.bilis-hero-float {
  position: absolute;
  z-index: 3;
  font-size: 2.5rem;
  filter: drop-shadow(0 8px 24px rgba(109, 40, 217, 0.25));
  pointer-events: none;
}

.bilis-hero-float.burger { top: 20%; right: 15%; }
.bilis-hero-float.pizza { top: 35%; right: 8%; font-size: 2rem; }
.bilis-hero-float.fries { bottom: 30%; right: 20%; font-size: 1.75rem; }
.bilis-hero-float.drink { top: 25%; right: 25%; font-size: 2rem; }
.bilis-hero-float.scooter { bottom: 20%; right: 10%; font-size: 3rem; }

.bilis-hero-stats {
  display: flex;
  gap: 2.5rem;
  margin-top: 3rem;
  flex-wrap: wrap;
}

.bilis-stat-item h3 {
  font-size: 2rem;
  margin-bottom: 0;
  background: var(--bilis-gradient);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Cinema 3D landing hero */
.bilis-hero--cinema {
  min-height: 100vh;
  min-height: 100dvh;
  padding: 0;
  align-items: flex-start;
  justify-content: center;
  perspective: 1400px;
  background: #07040f;
}

.bilis-hero-stage {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  transform-style: preserve-3d;
  will-change: transform;
}

.bilis-hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 58%;
  transform: scale(1.04);
  transform-origin: center center;
  will-change: transform, opacity, filter;
  filter: saturate(1.02) contrast(1.04) brightness(0.72);
}

.bilis-hero--cinema #hero-canvas {
  z-index: 2;
  opacity: 0.22;
  mix-blend-mode: screen;
  pointer-events: none;
}

.bilis-hero-veil {
  position: absolute;
  inset: 0;
  z-index: 3;
  background:
    radial-gradient(
      ellipse 70% 55% at 50% 48%,
      rgba(7, 4, 15, 0.72) 0%,
      rgba(7, 4, 15, 0.5) 42%,
      rgba(7, 4, 15, 0.28) 70%,
      rgba(7, 4, 15, 0.55) 100%
    ),
    linear-gradient(
      180deg,
      rgba(7, 4, 15, 0.78) 0%,
      rgba(7, 4, 15, 0.45) 22%,
      rgba(7, 4, 15, 0.55) 50%,
      rgba(7, 4, 15, 0.62) 72%,
      rgba(7, 4, 15, 0.92) 100%
    );
  pointer-events: none;
}

.bilis-hero-depth {
  position: absolute;
  inset: -10%;
  z-index: 1;
  background:
    radial-gradient(circle at 18% 78%, rgba(168, 85, 247, 0.12), transparent 42%),
    radial-gradient(circle at 82% 28%, rgba(109, 40, 217, 0.12), transparent 38%);
  filter: blur(40px);
  opacity: 0.45;
  pointer-events: none;
  animation: bilis-depth-drift 14s ease-in-out infinite alternate;
}

@keyframes bilis-depth-drift {
  from { transform: translate3d(-2%, 1%, 0) scale(1); }
  to { transform: translate3d(2%, -2%, 0) scale(1.06); }
}

.bilis-hero--cinema .bilis-hero-content {
  z-index: 4;
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
  padding: 0 1.5rem;
  text-align: center;
  color: #fff;
  transform-style: preserve-3d;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.bilis-hero-brand {
  font-family: var(--bilis-font-heading);
  font-weight: 800;
  font-size: clamp(3.25rem, 11vw, 6.25rem);
  letter-spacing: 0.22em;
  line-height: 0.92;
  margin: 0 0 1.15rem;
  padding-left: 0.22em;
  color: #fff;
  text-shadow:
    0 2px 0 rgba(255, 255, 255, 0.08),
    0 12px 48px rgba(0, 0, 0, 0.55),
    0 0 80px rgba(168, 85, 247, 0.28);
  position: relative;
}

.bilis-hero-brand::after {
  content: '';
  display: block;
  width: 2.75rem;
  height: 2px;
  margin: 1rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, rgba(196, 181, 253, 0.95), transparent);
}

.bilis-hero--cinema .bilis-hero-title {
  font-family: var(--bilis-font-heading);
  font-size: clamp(1.35rem, 3.4vw, 2.15rem);
  font-weight: 500;
  letter-spacing: -0.03em;
  color: rgba(255, 255, 255, 0.94);
  margin: 0 auto 1rem;
  max-width: 18em;
  text-shadow: 0 6px 28px rgba(0, 0, 0, 0.55);
  min-height: 2.85em;
  line-height: 1.28;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
}

.bilis-hero-title-lead {
  display: block;
  font-weight: 400;
  font-size: 0.72em;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(237, 233, 254, 0.72);
}

.bilis-hero-typed-wrap {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  min-height: 1.15em;
  background: linear-gradient(115deg, #ddd6fe 0%, #fff 42%, #f5d0fe 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  font-weight: 700;
  letter-spacing: -0.03em;
  font-size: 1.08em;
}

.bilis-hero-typed-cursor {
  display: inline-block;
  margin-left: 3px;
  color: #c4b5fd;
  -webkit-text-fill-color: #c4b5fd;
  animation: bilis-typed-blink 0.9s step-end infinite;
  font-weight: 300;
  opacity: 0.9;
}

@keyframes bilis-typed-blink {
  50% { opacity: 0; }
}

.bilis-hero--cinema .bilis-hero-subtitle {
  color: rgba(237, 233, 254, 0.78);
  margin: 0 auto 2rem;
  max-width: 28rem;
  font-size: clamp(0.95rem, 1.7vw, 1.125rem);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.55;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
}

.bilis-hero--cinema .bilis-hero-cta {
  justify-content: center;
  gap: 0.85rem;
}

.bilis-hero--cinema .bilis-hero-cta-primary {
  box-shadow: 0 10px 36px rgba(109, 40, 217, 0.45);
  padding-inline: 1.85rem;
}

.bilis-hero--cinema .btn-bilis-ghost-light {
  letter-spacing: 0.02em;
  border-color: rgba(255, 255, 255, 0.42);
  background: rgba(255, 255, 255, 0.06);
}

.btn-bilis-ghost-light {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.85rem 1.75rem;
  border-radius: var(--bilis-radius-pill);
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  font-weight: 600;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: background 0.35s ease, border-color 0.35s ease, transform 0.35s ease;
}

.btn-bilis-ghost-light:hover {
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 255, 255, 0.55);
  color: #fff;
  transform: translateY(-1px);
}

.bilis-hero-scroll {
  position: absolute;
  left: 50%;
  bottom: 1.75rem;
  z-index: 5;
  width: 22px;
  height: 36px;
  margin-left: -11px;
  border: 1.5px solid rgba(255, 255, 255, 0.45);
  border-radius: 999px;
  display: flex;
  justify-content: center;
  padding-top: 7px;
  text-decoration: none;
}

.bilis-hero-scroll-line {
  width: 3px;
  height: 8px;
  border-radius: 999px;
  background: #fff;
  animation: bilis-scroll-pulse 1.6s ease-in-out infinite;
}

@keyframes bilis-scroll-pulse {
  0% { opacity: 0; transform: translateY(0); }
  40% { opacity: 1; }
  100% { opacity: 0; transform: translateY(10px); }
}

.bilis-proof {
  position: relative;
  z-index: 2;
  padding: 0;
  margin-top: -2.5rem;
  background: transparent;
}

.bilis-proof .container {
  position: relative;
}

.bilis-proof-stats {
  margin: 0 !important;
  justify-content: stretch;
  align-items: center;
  gap: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  /* Optical balance: less top, more bottom (large display figures sit high in their line box) */
  padding: 1rem 1.5rem 1.35rem;
  border-radius: 28px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.92), rgba(245, 243, 255, 0.88));
  border: 1px solid rgba(109, 40, 217, 0.12);
  box-shadow:
    0 24px 60px rgba(31, 17, 71, 0.12),
    0 2px 0 rgba(255, 255, 255, 0.8) inset;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  overflow: hidden;
}

.bilis-proof .bilis-stat-item {
  text-align: center;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.35rem 1rem;
  margin: 0;
  border-radius: 22px;
  transform: none !important;
  transition: background 0.25s ease;
}

.bilis-proof .bilis-stat-item:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 12%;
  bottom: 12%;
  right: 0;
  width: 1px;
  height: auto;
  background: linear-gradient(180deg, transparent, rgba(109, 40, 217, 0.2), transparent);
}

.bilis-proof .bilis-stat-item:hover {
  background: linear-gradient(180deg, rgba(109, 40, 217, 0.06), rgba(168, 85, 247, 0.04));
}

.bilis-proof .bilis-stat-item h3 {
  font-family: 'Poppins', sans-serif;
  font-size: clamp(2rem, 4vw, 2.75rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 0.9;
  margin: 0;
  padding: 0;
  background: linear-gradient(135deg, #6D28D9 0%, #8B5CF6 50%, #A855F7 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.bilis-proof .bilis-stat-item p {
  color: #6b7280;
  margin: 0;
  padding: 0;
  line-height: 1.2;
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 0.01em;
}

[data-theme="dark"] .bilis-proof-stats {
  background: linear-gradient(135deg, rgba(31, 17, 71, 0.92), rgba(45, 27, 105, 0.88));
  border-color: rgba(167, 139, 250, 0.22);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
}

[data-theme="dark"] .bilis-proof .bilis-stat-item p {
  color: rgba(245, 243, 255, 0.7);
}

[data-theme="dark"] .bilis-proof .bilis-stat-item:not(:last-child)::after {
  background: linear-gradient(180deg, transparent, rgba(167, 139, 250, 0.35), transparent);
}

.bilis-stat-item p {
  margin: 0;
  font-size: 0.875rem;
  color: var(--bilis-text-muted);
}

/* Section */
.bilis-section {
  padding: 5rem 0;
  position: relative;
}

.bilis-section-alt {
  background: var(--bilis-gradient-soft);
}

.bilis-section-header {
  text-align: center;
  max-width: 640px;
  margin: 0 auto 3rem;
}

.bilis-section-label {
  display: inline-block;
  padding: 0.35rem 1rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--bilis-primary);
  background: rgba(109, 40, 217, 0.1);
  border-radius: var(--bilis-radius-pill);
  margin-bottom: 1rem;
}

.bilis-section-title {
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  margin-bottom: 0.75rem;
}

.bilis-section-desc {
  color: var(--bilis-text-muted);
  margin: 0;
}

/* Category Cards */
.bilis-category-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 1.75rem 1rem;
  text-align: center;
  cursor: pointer;
  border-radius: var(--bilis-radius-lg);
  background: var(--bilis-glass-bg);
  border: 1px solid var(--bilis-border);
  transition: all var(--bilis-transition);
}

.bilis-category-card:hover {
  transform: translateY(-6px);
  border-color: var(--bilis-accent);
  box-shadow: var(--bilis-shadow-md);
}

.bilis-category-icon {
  width: 64px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  color: var(--bilis-white);
  background: var(--bilis-gradient);
  border-radius: var(--bilis-radius-md);
  margin-bottom: 1rem;
  box-shadow: var(--bilis-shadow-sm);
}

.bilis-category-name {
  font-family: var(--bilis-font-heading);
  font-weight: 600;
  font-size: 0.9375rem;
  margin-bottom: 0.25rem;
  color: var(--bilis-text);
}

.bilis-category-count {
  font-size: 0.75rem;
  color: var(--bilis-text-muted);
}

/* Restaurant Cards */
.bilis-restaurant-card {
  border-radius: var(--bilis-radius-lg);
  overflow: hidden;
  background: var(--bilis-card-bg);
  border: 1px solid var(--bilis-divider);
  box-shadow: var(--bilis-shadow-sm);
  transition: transform var(--bilis-transition), box-shadow var(--bilis-transition);
}

.bilis-restaurant-card:hover {
  transform: translateY(-8px) scale(1.02);
  box-shadow: var(--bilis-shadow-md);
}

.bilis-restaurant-image {
  position: relative;
  height: 180px;
  overflow: hidden;
  margin: 12px 12px 0;
  border-radius: 18px;
}

.bilis-restaurant-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}

.bilis-restaurant-card:hover .bilis-restaurant-image img {
  transform: scale(1.08);
}

.bilis-restaurant-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  padding: 6px 14px;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--bilis-primary);
  background: var(--bilis-section-bg);
  border-radius: var(--bilis-radius-pill);
}

.bilis-restaurant-badge--closed {
  color: #fff;
  background: #64748b;
}

.bilis-restaurant-favorite {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.9);
  border: none;
  border-radius: 50%;
  color: var(--bilis-text-muted);
  cursor: pointer;
  transition: all var(--bilis-transition);
}

.bilis-restaurant-favorite:hover,
.bilis-restaurant-favorite.active {
  color: var(--bilis-danger);
  transform: scale(1.1);
}

.bilis-restaurant-body {
  padding: 1.25rem 1.35rem 1.5rem;
}

.bilis-restaurant-name {
  font-family: var(--bilis-font-heading);
  font-size: 1.25rem;
  font-weight: 700;
  margin-bottom: 0.5rem;
  color: var(--bilis-text);
}

.bilis-restaurant-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  font-size: 0.875rem;
  color: var(--bilis-text-muted);
}

.bilis-restaurant-cuisine {
  font-size: 0.875rem;
  color: var(--bilis-text-muted);
  margin: 0.65rem 0 0;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.bilis-restaurant-meta span {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.bilis-restaurant-meta .rating {
  color: var(--bilis-warning);
  font-weight: 600;
}

.bilis-status-open {
  color: var(--bilis-success);
  font-weight: 600;
}

.bilis-status-closed {
  color: var(--bilis-danger);
  font-weight: 600;
}

/* Food Cards */
.bilis-food-card {
  border-radius: var(--bilis-radius-lg);
  overflow: hidden;
  background: var(--bilis-glass-bg);
  border: 1px solid var(--bilis-border);
  transition: all var(--bilis-transition);
}

.bilis-food-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--bilis-shadow-md);
}

.bilis-food-image {
  position: relative;
  height: 160px;
  overflow: hidden;
}

.bilis-food-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bilis-food-discount {
  position: absolute;
  top: 10px;
  left: 10px;
  padding: 0.2rem 0.6rem;
  font-size: 0.6875rem;
  font-weight: 700;
  color: var(--bilis-white);
  background: var(--bilis-danger);
  border-radius: var(--bilis-radius-pill);
}

.bilis-food-body {
  padding: 1rem 1.25rem 1.25rem;
}

.bilis-food-name {
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 0.25rem;
}

.bilis-food-restaurant {
  font-size: 0.75rem;
  color: var(--bilis-text-muted);
  margin-bottom: 0.75rem;
}

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

.bilis-food-price {
  font-family: var(--bilis-font-heading);
  font-weight: 700;
  font-size: 1.125rem;
  color: var(--bilis-primary);
}

.bilis-food-price-old {
  font-size: 0.8125rem;
  color: var(--bilis-text-muted);
  text-decoration: line-through;
  margin-left: 0.5rem;
  font-weight: 400;
}

.bilis-add-cart {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bilis-gradient);
  color: var(--bilis-white);
  border: none;
  border-radius: 50%;
  cursor: pointer;
  transition: all var(--bilis-transition);
}

.bilis-add-cart:hover {
  transform: scale(1.1);
  box-shadow: var(--bilis-shadow-glow);
}

/* Timeline / How It Works */
.bilis-timeline {
  position: relative;
  padding: 2rem 0;
}

.bilis-timeline-step {
  text-align: center;
  padding: 2rem 1.5rem;
  position: relative;
}

.bilis-timeline-number {
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.25rem;
  font-family: var(--bilis-font-heading);
  font-weight: 800;
  font-size: 1.25rem;
  color: var(--bilis-white);
  background: var(--bilis-gradient);
  border-radius: 50%;
  box-shadow: var(--bilis-shadow-glow);
}

.bilis-timeline-icon {
  font-size: 2rem;
  color: var(--bilis-accent);
  margin-bottom: 1rem;
}

/* CTA Sections */
.bilis-cta-section {
  border-radius: var(--bilis-radius-xl);
  padding: 4rem 2rem;
  background: var(--bilis-gradient);
  color: var(--bilis-white);
  position: relative;
  overflow: hidden;
}

.bilis-cta-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

.bilis-cta-section h2,
.bilis-cta-section p { color: var(--bilis-white); position: relative; }

.bilis-cta-section .btn-bilis-outline {
  border-color: var(--bilis-white);
  color: var(--bilis-white);
}

.bilis-cta-section .btn-bilis-outline:hover {
  background: var(--bilis-white);
  color: var(--bilis-primary);
}

/* Testimonials */
.bilis-testimonial-card {
  padding: 2rem;
  height: 100%;
}

.bilis-testimonial-stars {
  color: var(--bilis-warning);
  margin-bottom: 1rem;
}

.bilis-testimonial-text {
  font-size: 1rem;
  font-style: italic;
  color: var(--bilis-text-muted);
  margin-bottom: 1.5rem;
  line-height: 1.7;
}

.bilis-testimonial-author {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.bilis-testimonial-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--bilis-accent);
}

.bilis-testimonial-name {
  font-weight: 600;
  margin: 0;
  font-size: 0.9375rem;
}

.bilis-testimonial-role {
  font-size: 0.75rem;
  color: var(--bilis-text-muted);
  margin: 0;
}

/* App Download */
.bilis-app-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.bilis-app-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1.5rem;
  background: var(--bilis-dark);
  color: var(--bilis-white);
  border-radius: var(--bilis-radius-md);
  transition: all var(--bilis-transition);
}

.bilis-app-btn:hover {
  color: var(--bilis-white);
  transform: translateY(-2px);
  box-shadow: var(--bilis-shadow-md);
}

.bilis-qr-placeholder {
  width: 140px;
  height: 140px;
  padding: 12px;
  background: var(--bilis-white);
  border-radius: var(--bilis-radius-md);
  box-shadow: var(--bilis-shadow-md);
}

/* Auth Pages */
.bilis-auth-wrapper {
  min-height: calc(100vh - var(--bilis-navbar-height));
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem 1rem;
  background: var(--bilis-mesh), var(--bilis-light);
}

[data-theme="dark"] .bilis-auth-wrapper {
  background: var(--bilis-mesh), var(--bilis-dark);
}

.bilis-auth-card {
  width: 100%;
  max-width: 440px;
  padding: 2.5rem;
}

.bilis-auth-logo {
  text-align: center;
  margin-bottom: 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.65rem;
}

.bilis-auth-logo img {
  width: 72px;
  height: 72px;
  border-radius: 16px;
  object-fit: cover;
  box-shadow: 0 8px 24px rgba(109, 40, 217, 0.25);
}

.bilis-auth-logo span {
  font-family: var(--bilis-font-heading);
  font-weight: 800;
  font-size: 1.75rem;
  letter-spacing: 0.08em;
  background: var(--bilis-gradient);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.bilis-form-group {
  margin-bottom: 1.25rem;
}

.bilis-form-label {
  display: block;
  font-weight: 500;
  font-size: 0.875rem;
  margin-bottom: 0.5rem;
  color: var(--bilis-text);
}

.bilis-form-control {
  width: 100%;
  padding: 0.875rem 1rem;
  font-family: var(--bilis-font-body);
  font-size: 0.9375rem;
  color: var(--bilis-text);
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid var(--bilis-border);
  border-radius: var(--bilis-radius-sm);
  transition: all var(--bilis-transition);
}

[data-theme="dark"] .bilis-form-control {
  background: rgba(31, 17, 71, 0.5);
}

.bilis-form-control:focus {
  outline: none;
  border-color: var(--bilis-accent);
  box-shadow: 0 0 0 3px rgba(168, 85, 247, 0.2);
}

.bilis-input-group {
  position: relative;
}

.bilis-input-group .bilis-form-control {
  padding-right: 3rem;
}

.bilis-password-toggle {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: var(--bilis-text-muted);
  cursor: pointer;
  padding: 0.25rem;
}

.bilis-form-error {
  font-size: 0.8125rem;
  color: var(--bilis-danger);
  margin-top: 0.35rem;
}

.bilis-form-footer {
  text-align: center;
  margin-top: 1.5rem;
  font-size: 0.875rem;
  color: var(--bilis-text-muted);
}

/* Footer */
.bilis-footer {
  background: var(--bilis-dark);
  color: rgba(245, 243, 255, 0.8);
  padding: 4rem 0 0;
}

.bilis-footer h5 {
  color: var(--bilis-white);
  font-size: 1rem;
  margin-bottom: 1.25rem;
}

.bilis-footer a {
  color: rgba(245, 243, 255, 0.7);
  font-size: 0.875rem;
  display: block;
  padding: 0.35rem 0;
  transition: color var(--bilis-transition);
}

.bilis-footer a:hover {
  color: var(--bilis-accent);
}

.bilis-footer-brand {
  font-family: var(--bilis-font-heading);
  font-weight: 800;
  font-size: 1.5rem;
  letter-spacing: 0.08em;
  color: var(--bilis-white);
  margin-bottom: 1rem;
}

.bilis-footer-social {
  display: flex;
  gap: 0.75rem;
  margin-top: 1.25rem;
}

.bilis-footer-social a {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(139, 92, 246, 0.2);
  border-radius: 50%;
  color: var(--bilis-white);
  padding: 0;
}

.bilis-footer-social a:hover {
  background: var(--bilis-accent);
  color: var(--bilis-white);
}

.bilis-newsletter-form {
  display: flex;
  gap: 0.5rem;
}

.bilis-newsletter-form input {
  flex: 1;
  padding: 0.75rem 1rem;
  border: 1px solid rgba(139, 92, 246, 0.3);
  border-radius: var(--bilis-radius-pill);
  background: rgba(255, 255, 255, 0.08);
  color: var(--bilis-white);
}

.bilis-newsletter-form input::placeholder {
  color: rgba(245, 243, 255, 0.5);
}

.bilis-footer-bottom {
  margin-top: 3rem;
  padding: 1.5rem 0;
  border-top: 1px solid rgba(139, 92, 246, 0.2);
  text-align: center;
  font-size: 0.8125rem;
  color: rgba(245, 243, 255, 0.5);
}

/* Toasts */
.bilis-toast-container {
  position: fixed;
  top: calc(var(--bilis-navbar-height) + 1rem);
  right: 1rem;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  max-width: 380px;
}

.bilis-toast {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  background: var(--bilis-glass-bg);
  backdrop-filter: blur(var(--bilis-glass-blur));
  border: 1px solid var(--bilis-glass-border);
  border-radius: var(--bilis-radius-md);
  box-shadow: var(--bilis-shadow-lg);
  animation: bilis-toast-in 0.4s ease;
}

.bilis-toast.success { border-left: 4px solid var(--bilis-success); }
.bilis-toast.error { border-left: 4px solid var(--bilis-danger); }
.bilis-toast.info { border-left: 4px solid var(--bilis-info); }
.bilis-toast.warning { border-left: 4px solid var(--bilis-warning); }

.bilis-toast-close {
  margin-left: auto;
  background: none;
  border: none;
  color: var(--bilis-text-muted);
  cursor: pointer;
  padding: 0;
  font-size: 1.125rem;
}

@keyframes bilis-toast-in {
  from { opacity: 0; transform: translateX(100%); }
  to { opacity: 1; transform: translateX(0); }
}

/* Skeleton */
.bilis-skeleton {
  background: linear-gradient(90deg, rgba(109,40,217,0.06) 25%, rgba(139,92,246,0.12) 50%, rgba(109,40,217,0.06) 75%);
  background-size: 200% 100%;
  animation: bilis-shimmer 1.5s infinite;
  border-radius: var(--bilis-radius-sm);
}

@keyframes bilis-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* Empty State */
.bilis-empty-state {
  text-align: center;
  padding: 4rem 2rem;
}

.bilis-empty-icon {
  width: 80px;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.5rem;
  font-size: 2rem;
  color: var(--bilis-accent);
  background: rgba(109, 40, 217, 0.1);
  border-radius: 50%;
}

/* Page Hero (inner pages) — navbar clearance comes from .main-content */
.bilis-page-hero {
  padding: 2.75rem 0 2rem;
  background: var(--bilis-gradient-soft);
  text-align: center;
}

.bilis-page-hero h1 {
  font-size: clamp(2rem, 4vw, 3rem);
  margin-bottom: 0.75rem;
}

.bilis-page-hero p {
  color: var(--bilis-text-muted);
  max-width: 560px;
  margin: 0 auto;
}

/* Error / Maintenance */
.bilis-error-page {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 2rem;
  background: var(--bilis-mesh), var(--bilis-light);
}

[data-theme="dark"] .bilis-error-page {
  background: var(--bilis-mesh), var(--bilis-dark);
}

.bilis-error-code {
  font-size: clamp(6rem, 15vw, 10rem);
  font-weight: 800;
  line-height: 1;
  background: var(--bilis-gradient);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Swiper overrides */
.swiper-pagination-bullet-active {
  background: var(--bilis-primary) !important;
}

/* Utilities */
.gradient-text {
  background: var(--bilis-gradient);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.text-muted-bilis { color: var(--bilis-text-muted) !important; }

.main-content {
  /* Clear fixed navbar on every page (heroes no longer need to pad for it) */
  padding-top: var(--bilis-navbar-height);
  min-height: calc(100vh - var(--bilis-navbar-height));
}

/* Responsive */
@media (max-width: 991.98px) {
  .bilis-hero-float { display: none; }
  .bilis-navbar .navbar-collapse {
    background: var(--bilis-glass-bg);
    backdrop-filter: blur(20px);
    border-radius: var(--bilis-radius-md);
    padding: 1rem;
    margin-top: 0.5rem;
    border: 1px solid var(--bilis-border);
  }

  body.landing-cinema .bilis-navbar:not(.scrolled):not(.is-solid) .navbar-collapse {
    background: rgba(7, 4, 15, 0.88);
    border-color: rgba(255, 255, 255, 0.12);
  }

  body.landing-cinema .bilis-navbar:not(.scrolled):not(.is-solid) .navbar-collapse .nav-link {
    color: rgba(255, 255, 255, 0.92);
  }

  .bilis-hero--cinema .bilis-hero-content {
    max-height: none;
  }

  .bilis-hero-brand {
    letter-spacing: 0.1em;
    font-size: clamp(2.4rem, 14vw, 3.5rem);
  }

  .bilis-hero-video {
    object-position: center 62%;
  }
}

@media (max-width: 767.98px) {
  .bilis-section { padding: 3.5rem 0; }
  .bilis-hero-stats { gap: 1.5rem; }
  .bilis-cta-section { padding: 3rem 1.5rem; }
  .bilis-auth-card { padding: 2rem 1.5rem; }
  .bilis-newsletter-form { flex-direction: column; }
  .bilis-proof-stats {
    grid-template-columns: 1fr;
    gap: 0;
    border-radius: 22px;
    padding: 0.85rem 1rem 1rem;
  }

  .bilis-proof .bilis-stat-item {
    padding: 0.85rem 0.75rem;
  }

  .bilis-proof .bilis-stat-item:not(:last-child)::after {
    display: none;
  }

  .bilis-proof .bilis-stat-item:not(:last-child) {
    border-bottom: 1px solid rgba(109, 40, 217, 0.1);
  }

  .bilis-proof {
    margin-top: -1.5rem;
    padding: 0 0 1rem;
  }
}

@media (max-width: 575.98px) {
  .bilis-hero-cta { flex-direction: column; }
  .bilis-hero-cta .btn-bilis,
  .bilis-hero-cta .btn-bilis-ghost-light { width: 100%; }
}

/* Order tracking timeline */
.bilis-order-track { position: relative; padding-left: 0.5rem; }
.bilis-track-step {
  display: flex;
  gap: 1rem;
  padding-bottom: 1.5rem;
  position: relative;
  opacity: 0.45;
}
.bilis-track-step.done, .bilis-track-step.active { opacity: 1; }
.bilis-track-step:not(:last-child)::before {
  content: '';
  position: absolute;
  left: 1.25rem;
  top: 2.5rem;
  bottom: 0;
  width: 2px;
  background: var(--bilis-border);
}
.bilis-track-step.done:not(:last-child)::before { background: var(--bilis-secondary); }
.bilis-track-icon {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bilis-gradient-soft);
  color: var(--bilis-primary);
  flex-shrink: 0;
  z-index: 1;
}
.bilis-track-step.active .bilis-track-icon {
  background: var(--bilis-gradient);
  color: #fff;
  box-shadow: var(--bilis-shadow-glow);
}
.bilis-account-nav .nav-link {
  color: var(--bilis-text-muted);
  border-radius: var(--bilis-radius-sm);
  padding: 0.65rem 0.85rem;
}
.bilis-account-nav .nav-link.active,
.bilis-account-nav .nav-link:hover {
  background: var(--bilis-gradient-soft);
  color: var(--bilis-primary);
}
.bilis-page-hero-compact {
  padding: 2rem 0 1.25rem;
}
.bilis-footer {
  background: var(--bilis-dark);
  margin-top: 4rem;
}
.bilis-footer-links a {
  color: rgba(255,255,255,0.65);
  display: block;
  padding: 0.25rem 0;
}
.bilis-footer-links a:hover { color: #fff; }
.bilis-pagination .page-link {
  border-radius: var(--bilis-radius-sm);
  margin: 0 0.15rem;
  color: var(--bilis-primary);
}
.bilis-pagination .active .page-link {
  background: var(--bilis-gradient);
  border-color: transparent;
}

/* Location bar + maps */
.bilis-location-bar {
  display: flex;
  align-items: stretch;
  overflow: hidden;
  padding: 0 !important;
}

.bilis-location-trigger {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.95rem 1.15rem;
  border: 0;
  background: transparent;
  text-align: left;
  color: inherit;
  width: 100%;
}

.bilis-location-icon {
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(109, 40, 217, 0.1);
  color: var(--bilis-primary);
  flex-shrink: 0;
}

.bilis-location-text {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}

.bilis-location-eyebrow {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--bilis-text-muted);
}

.bilis-location-text strong {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--bilis-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: min(70vw, 36rem);
}

.bilis-location-chevron {
  margin-left: auto;
  color: var(--bilis-text-muted);
}

.bilis-location-clear {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  border-left: 1px solid var(--bilis-border);
  color: var(--bilis-text-muted);
  text-decoration: none;
}

.bilis-location-clear:hover { color: var(--bilis-danger); }

.bilis-location-results,
.bilis-location-saved {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.bilis-location-result,
.bilis-location-saved-item {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  width: 100%;
  padding: 0.7rem 0.85rem;
  border: 1px solid var(--bilis-border);
  border-radius: var(--bilis-radius-sm);
  background: var(--bilis-white);
  text-align: left;
  color: var(--bilis-text);
  font-size: 0.875rem;
}

.bilis-location-result:hover,
.bilis-location-saved-item:hover {
  border-color: rgba(109, 40, 217, 0.35);
  background: rgba(109, 40, 217, 0.04);
}

.bilis-location-result i,
.bilis-location-saved-item i {
  color: var(--bilis-primary);
  margin-top: 0.15rem;
}

.bilis-map-wrap {
  border-radius: var(--bilis-radius-md);
  overflow: hidden;
  border: 1px solid var(--bilis-border);
}

.bilis-map {
  width: 100%;
  height: 280px;
  z-index: 1;
}

.bilis-map--store {
  height: 200px;
}

.bilis-restaurant-distance {
  position: absolute;
  bottom: 12px;
  right: 12px;
  padding: 6px 12px;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--bilis-text);
  background: rgba(255, 255, 255, 0.95);
  border-radius: var(--bilis-radius-pill);
  box-shadow: var(--bilis-shadow-sm);
}
  font-weight: 700;
  color: var(--bilis-dark);
  background: rgba(255, 255, 255, 0.94);
  border-radius: var(--bilis-radius-pill);
  box-shadow: 0 4px 14px rgba(31, 17, 71, 0.12);
}

[data-theme="dark"] .bilis-location-result,
[data-theme="dark"] .bilis-location-saved-item {
  background: rgba(255, 255, 255, 0.04);
  color: inherit;
}

/* Checkout delivery tiers */
.bilis-delivery-tier {
  display: block;
  cursor: pointer;
  height: 100%;
}

.bilis-delivery-tier input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.bilis-delivery-tier-inner {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  height: 100%;
  padding: 1rem;
  border-radius: 18px;
  border: 1px solid rgba(109, 40, 217, 0.14);
  background: rgba(255, 255, 255, 0.72);
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.bilis-delivery-tier.is-active .bilis-delivery-tier-inner,
.bilis-delivery-tier:hover .bilis-delivery-tier-inner {
  border-color: rgba(109, 40, 217, 0.45);
  box-shadow: 0 10px 28px rgba(109, 40, 217, 0.12);
  transform: translateY(-1px);
}

.bilis-delivery-tier-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(109, 40, 217, 0.1);
  color: var(--bilis-primary);
  margin-bottom: 0.35rem;
}

.bilis-delivery-tier-price {
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--bilis-dark);
  margin-top: 0.35rem;
}



/* Order home — Design System v1.0 */
.bilis-order-home-hero {
  background: var(--bilis-section-bg);
  padding: 2.5rem 0 2.25rem;
  border-bottom: 1px solid var(--bilis-divider);
}
.bilis-order-home-hero-inner { max-width: 40rem; }
.bilis-order-home-hero h1 {
  font-family: var(--bilis-font-heading);
  font-size: clamp(1.85rem, 4vw, 2.6rem);
  font-weight: 700;
  margin: 0.35rem 0 0.65rem;
  color: var(--bilis-text);
}
.bilis-order-home-hero p {
  margin: 0;
  color: var(--bilis-text-secondary);
  font-size: 1rem;
  line-height: 1.6;
}
.bilis-order-home { margin-top: -1.25rem; position: relative; z-index: 2; }
.bilis-card-surface {
  background: var(--bilis-card-bg);
  border: 1px solid var(--bilis-divider);
  border-radius: var(--bilis-radius-lg);
  box-shadow: var(--bilis-shadow-sm);
  padding: 1.5rem;
}
.bilis-order-filters { padding: 1.5rem; }
.bilis-search-pill {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  height: 54px;
  padding: 0 1.15rem;
  border-radius: var(--bilis-radius-pill);
  background: var(--bilis-section-bg);
  border: 1px solid transparent;
  transition: border-color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}
.bilis-search-pill i { color: var(--bilis-primary); }
.bilis-search-pill input {
  flex: 1;
  border: 0;
  outline: 0;
  background: transparent;
  font-size: 0.95rem;
  color: var(--bilis-text);
  min-width: 0;
}
.bilis-search-pill input::placeholder { color: #A3A3B2; }
.bilis-search-pill:focus-within {
  background: #fff;
  border-color: var(--bilis-primary);
  box-shadow: 0 0 0 4px rgba(109, 40, 217, 0.12);
}
.bilis-input,
.form-select.bilis-input,
.form-control.bilis-input {
  height: 54px;
  border-radius: var(--bilis-radius-btn);
  border-color: #DDD6FE;
  padding: 0.75rem 1rem;
  font-size: 0.95rem;
}
.bilis-input:focus,
.form-select.bilis-input:focus {
  border-color: var(--bilis-primary);
  box-shadow: 0 0 0 4px rgba(109, 40, 217, 0.12);
}
.bilis-location-bar--premium {
  background: var(--bilis-card-bg);
  border: 1px solid var(--bilis-divider);
  border-radius: var(--bilis-radius-lg);
  box-shadow: var(--bilis-shadow-sm);
  overflow: hidden;
}
.bilis-location-bar--premium .bilis-location-icon {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: var(--bilis-gradient);
  color: #fff;
  box-shadow: 0 8px 20px rgba(109, 40, 217, 0.28);
}
.bilis-location-bar--premium .bilis-location-text strong {
  font-family: var(--bilis-font-heading);
  font-weight: 600;
  font-size: 1rem;
  color: var(--bilis-text);
}
.bilis-order-count {
  color: var(--bilis-text-secondary);
  font-size: 0.95rem;
}
.bilis-order-count strong { color: var(--bilis-primary); font-weight: 700; }
.bilis-restaurant-grid { --bs-gutter-x: 1.75rem; --bs-gutter-y: 1.75rem; }
.bilis-order-empty {
  padding: 3.5rem 1.5rem;
}
.bilis-order-empty-icon {
  width: 72px;
  height: 72px;
  margin: 0 auto 1.25rem;
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bilis-section-bg);
  color: var(--bilis-primary);
  font-size: 1.6rem;
}
.bilis-order-empty h4 {
  font-family: var(--bilis-font-heading);
  font-weight: 700;
  margin-bottom: 0.5rem;
}

/* ==========================================================================
   Cart & Checkout UI v3.0
   ========================================================================== */

.bilis-checkout-page {
  --checkout-bg: #F8F7FC;
  --checkout-section: #F3F0FF;
  --checkout-border: #ECE9F7;
  --checkout-card-shadow: 0 12px 40px rgba(109, 40, 217, 0.08);
  --checkout-summary-shadow: 0 18px 50px rgba(109, 40, 217, 0.12);
  background: var(--checkout-bg);
  min-height: calc(100vh - var(--bilis-navbar-height));
  padding: 32px 0 80px;
}

.bilis-checkout-shell {
  width: min(1440px, 100%);
  margin: 0 auto;
  padding: 0 32px;
}

.bilis-checkout-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 420px;
  gap: 32px;
  align-items: start;
}

.bilis-checkout-main { min-width: 0; }

/* Cards */
.bilis-cart-card,
.bilis-checkout-summary,
.bilis-success-card {
  background: var(--bilis-white);
  border: 1px solid var(--checkout-border);
  border-radius: 28px;
  padding: 32px;
  box-shadow: var(--checkout-card-shadow);
  transition: transform 200ms ease, box-shadow 200ms ease;
}

.bilis-cart-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 44px rgba(109, 40, 217, 0.12);
}

.bilis-cart-card-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 8px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--checkout-border);
}

.bilis-cart-title {
  font-family: var(--bilis-font-heading);
  font-weight: 700;
  font-size: 2rem;
  line-height: 1.2;
  color: var(--bilis-text);
  margin: 0 0 0.35rem;
}

.bilis-cart-sub {
  color: var(--bilis-text-muted);
  font-size: 0.95rem;
  margin: 0;
}

/* Cart item */
.bilis-cart-item {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 24px;
  padding: 28px 0;
  border-bottom: 1px solid var(--checkout-border);
}

.bilis-cart-item:last-of-type { border-bottom: none; }

.bilis-cart-item-media img {
  width: 96px;
  height: 96px;
  object-fit: cover;
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(30, 27, 46, 0.1);
  background: var(--checkout-section);
}

.bilis-cart-item-top {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
}

.bilis-cart-item-name {
  font-family: var(--bilis-font-heading);
  font-weight: 700;
  font-size: 1.5rem;
  line-height: 1.25;
  margin: 0 0 0.25rem;
  color: var(--bilis-text);
}

.bilis-cart-item-resto {
  font-family: var(--bilis-font-body);
  font-size: 0.875rem;
  color: var(--bilis-text-muted);
}

.bilis-cart-item-price {
  font-family: var(--bilis-font-heading);
  font-weight: 700;
  font-size: 1.625rem;
  color: var(--bilis-primary);
  white-space: nowrap;
}

.bilis-cart-item-notes {
  font-size: 0.875rem;
  color: var(--bilis-text-muted);
  margin: 0.5rem 0 0;
}

.bilis-cart-item-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  margin-top: 16px;
}

/* Quantity stepper */
.bilis-qty {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 52px;
  padding: 6px;
  background: #F7F5FF;
  border-radius: 16px;
}

.bilis-qty-btn {
  width: 40px;
  height: 40px;
  border: none;
  border-radius: 50%;
  background: #fff;
  color: var(--bilis-primary);
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(109, 40, 217, 0.1);
  transition: transform 200ms ease, background 200ms ease, color 200ms ease;
  min-width: 40px;
  min-height: 40px;
}

.bilis-qty-btn:hover {
  background: var(--bilis-primary);
  color: #fff;
  transform: scale(1.08);
}

.bilis-qty-btn.is-bounce { animation: bilis-qty-bounce 280ms ease; }
.bilis-qty-btn.is-fade { animation: bilis-qty-fade 220ms ease; }

@keyframes bilis-qty-bounce {
  0% { transform: scale(1); }
  40% { transform: scale(1.18); }
  100% { transform: scale(1); }
}
@keyframes bilis-qty-fade {
  0% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.55; transform: scale(0.92); }
  100% { opacity: 1; transform: scale(1); }
}

.bilis-qty-input {
  width: 42px;
  border: none;
  background: transparent;
  text-align: center;
  font-weight: 600;
  font-size: 1rem;
  color: var(--bilis-text);
  -moz-appearance: textfield;
}
.bilis-qty-input::-webkit-outer-spin-button,
.bilis-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.bilis-cart-remove {
  border: none;
  background: transparent;
  color: var(--bilis-text-muted);
  font-size: 0.95rem;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 48px;
  padding: 0.35rem 0.5rem;
  transition: color 200ms ease;
}
.bilis-cart-remove:hover { color: var(--bilis-danger); }

.bilis-cart-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 8px;
  padding-top: 24px;
  border-top: 1px solid var(--checkout-border);
}

.bilis-continue-shopping {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.25rem;
  min-height: 48px;
  border-radius: 16px;
  background: #fff;
  border: 1px solid var(--checkout-border);
  color: var(--bilis-primary);
  font-weight: 600;
  text-decoration: none;
  transition: background 200ms ease, transform 200ms ease;
}
.bilis-continue-shopping i { color: var(--bilis-primary); }
.bilis-continue-shopping:hover {
  background: #F3EFFF;
  color: var(--bilis-primary-dark);
  transform: translateY(-1px);
}

.bilis-cart-clear {
  border: none;
  background: transparent;
  color: var(--bilis-text-muted);
  font-size: 0.9rem;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.bilis-cart-clear:hover { color: var(--bilis-danger); }

/* Empty cart */
.bilis-cart-empty {
  max-width: 480px;
  margin: 4rem auto;
  text-align: center;
  padding: 3rem 2rem;
  background: #fff;
  border-radius: 28px;
  border: 1px solid var(--checkout-border);
  box-shadow: var(--checkout-card-shadow);
}
.bilis-cart-empty-icon {
  width: 96px;
  height: 96px;
  margin: 0 auto 1.5rem;
  border-radius: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--checkout-section);
  color: var(--bilis-primary);
  font-size: 2.4rem;
  box-shadow: 0 12px 32px rgba(109, 40, 217, 0.12);
}
.bilis-cart-empty h1 {
  font-family: var(--bilis-font-heading);
  font-weight: 700;
  font-size: 1.75rem;
  margin-bottom: 0.5rem;
}
.bilis-cart-empty p {
  color: var(--bilis-text-muted);
  margin-bottom: 1.75rem;
}
.bilis-cart-empty .bilis-checkout-cta {
  display: inline-flex;
  width: auto;
  padding-inline: 2rem;
  text-decoration: none;
}

/* Vouchers */
.bilis-voucher-section,
.bilis-upsell-section {
  margin-top: 28px;
  padding: 28px;
  background: var(--checkout-section);
  border-radius: 28px;
}

.bilis-section-heading {
  font-family: var(--bilis-font-heading);
  font-weight: 700;
  font-size: 1.25rem;
  margin: 0 0 1rem;
  color: var(--bilis-text);
}

.bilis-voucher-track,
.bilis-upsell-track {
  display: flex;
  gap: 14px;
  overflow-x: auto;
  padding-bottom: 6px;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
}

.bilis-voucher-card {
  flex: 0 0 auto;
  width: 168px;
  scroll-snap-align: start;
  text-align: left;
  border: 2px solid transparent;
  background: #fff;
  border-radius: 18px;
  padding: 14px 16px;
  box-shadow: 0 8px 24px rgba(109, 40, 217, 0.08);
  transition: transform 200ms ease, border-color 200ms ease, background 200ms ease;
}
.bilis-voucher-card:hover { transform: translateY(-2px) scale(1.02); }
.bilis-voucher-card.is-active {
  border-color: var(--bilis-primary);
  background: #F7F5FF;
  animation: bilis-voucher-pop 320ms ease;
}
@keyframes bilis-voucher-pop {
  0% { transform: scale(1); }
  45% { transform: scale(1.06); }
  100% { transform: scale(1); }
}
.bilis-voucher-emoji { display: block; font-size: 1.25rem; margin-bottom: 0.25rem; }
.bilis-voucher-label {
  display: block;
  font-family: var(--bilis-font-heading);
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--bilis-primary);
}
.bilis-voucher-code {
  display: block;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--bilis-text-muted);
  margin-top: 0.2rem;
}
.bilis-voucher-title {
  display: block;
  font-size: 0.8rem;
  color: var(--bilis-text-secondary);
  margin-top: 0.35rem;
}

/* Upsell */
.bilis-upsell-card {
  flex: 0 0 auto;
  width: 180px;
  scroll-snap-align: start;
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid var(--checkout-border);
  box-shadow: 0 8px 24px rgba(109, 40, 217, 0.06);
  transition: transform 200ms ease;
}
.bilis-upsell-card:hover { transform: translateY(-3px); }
.bilis-upsell-image img {
  width: 100%;
  height: 120px;
  object-fit: cover;
  display: block;
  background: #eee;
}
.bilis-upsell-body { padding: 12px 14px 16px; }
.bilis-upsell-body h4 {
  font-family: var(--bilis-font-heading);
  font-weight: 600;
  font-size: 0.95rem;
  margin: 0 0 0.35rem;
  line-height: 1.3;
}
.bilis-upsell-price {
  font-weight: 700;
  color: var(--bilis-primary);
  margin-bottom: 0.65rem;
}
.bilis-upsell-add {
  width: 100%;
  border: none;
  border-radius: 12px;
  height: 40px;
  background: var(--bilis-gradient);
  color: #fff;
  font-weight: 600;
  font-size: 0.875rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  transition: transform 200ms ease, box-shadow 200ms ease;
}
.bilis-upsell-add:hover {
  transform: scale(1.03);
  box-shadow: 0 8px 20px rgba(109, 40, 217, 0.3);
  color: #fff;
}

/* Sticky summary */
.bilis-checkout-summary-wrap {
  position: sticky;
  top: calc(var(--bilis-navbar-height) + 24px);
}

.bilis-checkout-summary {
  width: 100%;
  box-shadow: var(--checkout-summary-shadow);
}

.bilis-summary-title {
  font-family: var(--bilis-font-heading);
  font-weight: 700;
  font-size: 2.25rem;
  line-height: 1.15;
  margin: 0 0 1.25rem;
  color: var(--bilis-text);
}

.bilis-summary-resto {
  font-weight: 600;
  color: var(--bilis-text-secondary);
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--checkout-border);
}

.bilis-summary-items {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin-bottom: 1.25rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--checkout-border);
}

.bilis-summary-item {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 0.95rem;
  color: var(--bilis-text-secondary);
}

.bilis-coupon-form { margin-bottom: 1.5rem; }
.bilis-coupon-field {
  display: flex;
  gap: 10px;
  align-items: stretch;
}
.bilis-coupon-field input {
  flex: 1;
  height: 56px;
  border: 1px solid var(--checkout-border);
  border-radius: 16px;
  padding: 0 1.1rem;
  font-size: 1rem;
  background: #F7F5FF;
  outline: none;
  transition: border-color 200ms ease, box-shadow 200ms ease;
}
.bilis-coupon-field input:focus {
  border-color: var(--bilis-primary);
  box-shadow: 0 0 0 4px rgba(109, 40, 217, 0.12);
  background: #fff;
}
.bilis-coupon-apply {
  height: 56px;
  padding: 0 1.25rem;
  border: none;
  border-radius: 16px;
  background: var(--bilis-gradient);
  color: #fff;
  font-weight: 600;
  box-shadow: 0 10px 24px rgba(109, 40, 217, 0.28);
  transition: transform 200ms ease, box-shadow 200ms ease;
}
.bilis-coupon-apply:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(109, 40, 217, 0.35);
}

.bilis-price-breakdown {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  margin-bottom: 1.5rem;
}
.bilis-price-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--bilis-font-body);
  font-size: 1rem;
  color: var(--bilis-text-secondary);
}
.bilis-price-row span:last-child { font-weight: 600; color: var(--bilis-text); }
.bilis-price-row--muted span:last-child { color: var(--bilis-text-muted); font-weight: 500; }
.bilis-price-row--discount { color: var(--bilis-success); }
.bilis-price-row--discount span { color: var(--bilis-success); font-weight: 600; }
.bilis-price-row--discount.is-zero { display: none; }
.bilis-price-total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  margin-top: 0.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--checkout-border);
  font-family: var(--bilis-font-heading);
  font-weight: 700;
  font-size: 1.875rem;
  color: var(--bilis-primary);
}
.bilis-price-total span:first-child {
  font-size: 1.1rem;
  color: var(--bilis-text);
}

.bilis-checkout-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 60px;
  border: none;
  border-radius: 18px;
  background: linear-gradient(135deg, #6D28D9, #8B5CF6);
  color: #fff !important;
  font-size: 1.125rem;
  font-weight: 600;
  text-decoration: none;
  box-shadow: 0 12px 32px rgba(109, 40, 217, 0.35);
  transition: transform 200ms ease, box-shadow 200ms ease;
  position: relative;
  overflow: hidden;
}
.bilis-checkout-cta:hover:not(:disabled) {
  transform: translateY(-2px);
  box-shadow: 0 16px 40px rgba(109, 40, 217, 0.45);
  color: #fff !important;
}
.bilis-checkout-cta:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.bilis-checkout-cta.is-ripple::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at var(--rx, 50%) var(--ry, 50%), rgba(255,255,255,0.35), transparent 55%);
  animation: bilis-cta-ripple 480ms ease-out;
  pointer-events: none;
}
@keyframes bilis-cta-ripple {
  from { opacity: 0.9; transform: scale(0.6); }
  to { opacity: 0; transform: scale(1.4); }
}

.bilis-summary-trust {
  margin: 1rem 0 0;
  text-align: center;
  font-size: 0.85rem;
  color: var(--bilis-text-muted);
}
.bilis-summary-trust i { color: var(--bilis-primary); margin-right: 0.25rem; }

/* Checkout blocks */
.bilis-checkout-block {
  padding: 28px 0;
  border-bottom: 1px solid var(--checkout-border);
}
.bilis-checkout-block--last { border-bottom: none; padding-bottom: 0; }
.bilis-checkout-block-title {
  font-family: var(--bilis-font-heading);
  font-weight: 700;
  font-size: 1.25rem;
  margin: 0 0 1.1rem;
  display: flex;
  align-items: center;
  gap: 0.55rem;
  color: var(--bilis-text);
}
.bilis-checkout-block-title i { color: var(--bilis-primary); }

.bilis-address-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.bilis-address-card {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  padding: 14px;
  border-radius: 20px;
  border: 2px solid var(--checkout-border);
  background: #fff;
  cursor: pointer;
  transition: border-color 200ms ease, background 200ms ease, transform 200ms ease;
}
.bilis-address-card:hover { transform: translateY(-1px); }
.bilis-address-card.is-selected {
  border-color: var(--bilis-primary);
  background: #F7F5FF;
}
.bilis-address-card input { position: absolute; opacity: 0; pointer-events: none; }
.bilis-address-map {
  width: 72px;
  height: 72px;
  border-radius: 16px;
  background: linear-gradient(145deg, #EDE9FE, #DDD6FE);
  color: var(--bilis-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
}
.bilis-address-body {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}
.bilis-address-body strong {
  font-family: var(--bilis-font-heading);
  font-weight: 700;
}
.bilis-address-recipient,
.bilis-address-line {
  font-size: 0.9rem;
  color: var(--bilis-text-secondary);
}
.bilis-address-warn {
  font-size: 0.8rem;
  color: var(--bilis-warning);
}
.bilis-address-empty {
  padding: 1.25rem;
  border-radius: 18px;
  background: var(--checkout-section);
}
.bilis-manage-link {
  display: inline-block;
  margin-top: 0.85rem;
  font-weight: 600;
  color: var(--bilis-primary);
  text-decoration: none;
}
.bilis-manage-link:hover { text-decoration: underline; }

.bilis-delivery-tier {
  display: block;
  height: 100%;
  cursor: pointer;
}
.bilis-delivery-tier input { position: absolute; opacity: 0; pointer-events: none; }
.bilis-delivery-tier-inner {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  height: 100%;
  padding: 1.1rem;
  border-radius: 20px;
  border: 2px solid var(--checkout-border);
  background: #fff;
  transition: border-color 200ms ease, background 200ms ease, transform 200ms ease;
}
.bilis-delivery-tier.is-active .bilis-delivery-tier-inner,
.bilis-delivery-tier:has(input:checked) .bilis-delivery-tier-inner {
  border-color: var(--bilis-primary);
  background: #F7F5FF;
  transform: translateY(-2px);
}
.bilis-delivery-tier-icon {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: var(--checkout-section);
  color: var(--bilis-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.35rem;
}
.bilis-delivery-tier-price {
  font-family: var(--bilis-font-heading);
  font-weight: 700;
  font-size: 1.15rem;
  color: var(--bilis-primary);
  margin-top: 0.35rem;
}

.bilis-payment-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 12px;
}
.bilis-payment-card {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  height: 64px;
  padding: 0 1rem;
  border-radius: 16px;
  border: 2px solid var(--checkout-border);
  background: #fff;
  cursor: pointer;
  transition: border-color 200ms ease, background 200ms ease, transform 200ms ease;
}
.bilis-payment-card:hover:not(.is-disabled) { transform: translateY(-1px); }
.bilis-payment-card.is-selected {
  border-color: var(--bilis-primary);
  background: #F7F5FF;
}
.bilis-payment-card.is-disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.bilis-payment-card input { position: absolute; opacity: 0; pointer-events: none; }
.bilis-payment-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--checkout-section);
  color: var(--bilis-primary);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.bilis-payment-label {
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--bilis-text);
}

.bilis-tip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.bilis-tip-btn {
  min-width: 72px;
  min-height: 44px;
  padding: 0.5rem 0.9rem;
  border-radius: 12px;
  border: 1px solid var(--checkout-border);
  background: #fff;
  font-weight: 600;
  color: var(--bilis-text-secondary);
  transition: background 200ms ease, border-color 200ms ease, color 200ms ease;
}
.bilis-tip-btn.active,
.bilis-tip-btn:hover {
  border-color: var(--bilis-primary);
  background: #F7F5FF;
  color: var(--bilis-primary);
}

.bilis-checkout-input {
  border-radius: 14px !important;
  border-color: var(--checkout-border) !important;
  min-height: 48px;
  padding: 0.75rem 1rem;
  background: #F7F5FF;
}
.bilis-checkout-input:focus {
  border-color: var(--bilis-primary) !important;
  box-shadow: 0 0 0 4px rgba(109, 40, 217, 0.12) !important;
  background: #fff;
}

/* Success */
.bilis-success-page { display: flex; align-items: center; }
.bilis-success-card {
  max-width: 640px;
  margin: 2rem auto;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.bilis-success-check {
  width: 88px;
  height: 88px;
  margin: 0 auto 1.5rem;
  border-radius: 50%;
  background: var(--bilis-gradient);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.2rem;
  box-shadow: 0 16px 40px rgba(109, 40, 217, 0.35);
  animation: bilis-check-pop 500ms cubic-bezier(0.34, 1.56, 0.64, 1);
}
@keyframes bilis-check-pop {
  from { transform: scale(0.4); opacity: 0; }
  to { transform: scale(1); opacity: 1; }
}
.bilis-success-confetti {
  pointer-events: none;
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 20%, rgba(139, 92, 246, 0.35) 0 6px, transparent 7px),
    radial-gradient(circle at 80% 18%, rgba(34, 197, 94, 0.35) 0 5px, transparent 6px),
    radial-gradient(circle at 30% 70%, rgba(245, 158, 11, 0.4) 0 5px, transparent 6px),
    radial-gradient(circle at 70% 65%, rgba(109, 40, 217, 0.3) 0 7px, transparent 8px),
    radial-gradient(circle at 50% 40%, rgba(59, 130, 246, 0.3) 0 4px, transparent 5px);
  opacity: 0.7;
  animation: bilis-confetti-fade 2.2s ease forwards;
}
@keyframes bilis-confetti-fade {
  0% { opacity: 0; transform: translateY(8px); }
  20% { opacity: 0.85; }
  100% { opacity: 0; transform: translateY(-12px); }
}
.bilis-success-card h1 {
  font-family: var(--bilis-font-heading);
  font-weight: 700;
  font-size: 2rem;
  margin-bottom: 0.5rem;
  position: relative;
}
.bilis-success-card > p {
  color: var(--bilis-text-secondary);
  margin-bottom: 1.75rem;
  position: relative;
}
.bilis-success-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  text-align: left;
  margin-bottom: 1.5rem;
  position: relative;
}
.bilis-success-meta .label {
  display: block;
  font-size: 0.8rem;
  color: var(--bilis-text-muted);
  margin-bottom: 0.15rem;
}
.bilis-success-total { color: var(--bilis-primary); }
.bilis-success-items {
  text-align: left;
  margin-bottom: 1.75rem;
  padding: 1rem;
  border-radius: 16px;
  background: var(--checkout-section);
  position: relative;
}
.bilis-success-actions {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  position: relative;
}
.bilis-success-actions .bilis-checkout-cta { text-decoration: none; }
.bilis-success-actions .bilis-continue-shopping { justify-content: center; }

/* Mobile */
.bilis-mobile-checkout-bar {
  display: none;
}

@media (max-width: 1100px) {
  .bilis-checkout-grid {
    grid-template-columns: 1fr;
  }
  .bilis-checkout-summary-wrap {
    position: static;
  }
}

@media (max-width: 768px) {
  .bilis-checkout-page { padding: 20px 0 120px; }
  .bilis-checkout-shell { padding: 0 16px; }
  .bilis-cart-card,
  .bilis-checkout-summary,
  .bilis-voucher-section,
  .bilis-upsell-section { padding: 20px; border-radius: 22px; }
  .bilis-cart-title { font-size: 1.6rem; }
  .bilis-summary-title { font-size: 1.75rem; }
  .bilis-cart-item {
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 14px;
    padding: 20px 0;
  }
  .bilis-cart-item-media img { width: 72px; height: 72px; border-radius: 14px; }
  .bilis-cart-item-name { font-size: 1.15rem; }
  .bilis-cart-item-price { font-size: 1.25rem; }
  .bilis-cart-item-top { flex-direction: column; gap: 6px; }
  .bilis-success-meta { grid-template-columns: 1fr; }
  .bilis-payment-grid { grid-template-columns: 1fr 1fr; }

  .bilis-mobile-checkout-bar {
    display: flex;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1040;
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(16px);
    border-top: 1px solid var(--checkout-border);
    box-shadow: 0 -12px 40px rgba(109, 40, 217, 0.12);
    gap: 12px;
    align-items: center;
  }
  .bilis-mobile-checkout-bar .bilis-mobile-total {
    flex: 1;
    min-width: 0;
  }
  .bilis-mobile-checkout-bar .label {
    display: block;
    font-size: 0.75rem;
    color: var(--bilis-text-muted);
  }
  .bilis-mobile-checkout-bar strong {
    font-family: var(--bilis-font-heading);
    font-size: 1.25rem;
    color: var(--bilis-primary);
  }
  .bilis-mobile-checkout-bar .bilis-checkout-cta {
    width: auto;
    flex: 1.2;
    height: 52px;
    font-size: 1rem;
  }
}

/* Dark mode */
[data-theme="dark"] .bilis-checkout-page {
  --checkout-bg: #111114;
  --checkout-section: #1C1C21;
  --checkout-border: rgba(139, 92, 246, 0.22);
  --checkout-card-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
  --checkout-summary-shadow: 0 18px 50px rgba(0, 0, 0, 0.45);
}
[data-theme="dark"] .bilis-cart-card,
[data-theme="dark"] .bilis-checkout-summary,
[data-theme="dark"] .bilis-success-card,
[data-theme="dark"] .bilis-cart-empty,
[data-theme="dark"] .bilis-voucher-card,
[data-theme="dark"] .bilis-upsell-card,
[data-theme="dark"] .bilis-address-card,
[data-theme="dark"] .bilis-delivery-tier-inner,
[data-theme="dark"] .bilis-payment-card,
[data-theme="dark"] .bilis-tip-btn,
[data-theme="dark"] .bilis-continue-shopping,
[data-theme="dark"] .bilis-qty-btn {
  background: #1C1C21;
  color: #fff;
}
[data-theme="dark"] .bilis-checkout-summary { background: #23232B; }
[data-theme="dark"] .bilis-qty,
[data-theme="dark"] .bilis-coupon-field input,
[data-theme="dark"] .bilis-checkout-input,
[data-theme="dark"] .bilis-success-items {
  background: #16161A;
  color: #fff;
}
[data-theme="dark"] .bilis-cart-item-name,
[data-theme="dark"] .bilis-cart-title,
[data-theme="dark"] .bilis-summary-title,
[data-theme="dark"] .bilis-payment-label,
[data-theme="dark"] .bilis-price-row span:last-child,
[data-theme="dark"] .bilis-price-total span:first-child {
  color: #fff;
}
[data-theme="dark"] .bilis-cart-item-price,
[data-theme="dark"] .bilis-price-total,
[data-theme="dark"] .bilis-upsell-price,
[data-theme="dark"] .bilis-delivery-tier-price,
[data-theme="dark"] .bilis-voucher-label {
  color: #8B5CF6;
}
[data-theme="dark"] .bilis-mobile-checkout-bar {
  background: rgba(28, 28, 33, 0.94);
}

/* ==========================================================================
   Marketplace Home — Design System v3.0
   ========================================================================== */

.bilis-mkt-container {
  width: 100%;
  max-width: var(--bilis-max-width);
  margin: 0 auto;
  padding-inline: clamp(16px, 4vw, var(--bilis-content-pad));
}

body.landing-marketplace {
  background: var(--bilis-body-bg);
}

body.landing-marketplace .main-content {
  padding-top: 0;
}

/* —— Glass nav over marketplace hero —— */
.bilis-nav-wrap.is-marketplace .bilis-nav-bar {
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow: none;
}

.bilis-nav-wrap.is-marketplace .bilis-nav-bar:not(.is-scrolled) .bilis-nav-logo,
.bilis-nav-wrap.is-marketplace .bilis-nav-bar:not(.is-scrolled) .bilis-nav-logo i,
.bilis-nav-wrap.is-marketplace .bilis-nav-bar:not(.is-scrolled) .bilis-nav-link,
.bilis-nav-wrap.is-marketplace .bilis-nav-bar:not(.is-scrolled) .bilis-nav-user {
  color: #fff;
}

.bilis-nav-wrap.is-marketplace .bilis-nav-bar:not(.is-scrolled) .bilis-nav-search {
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 255, 255, 0.22);
}

.bilis-nav-wrap.is-marketplace .bilis-nav-bar:not(.is-scrolled) .bilis-nav-search i,
.bilis-nav-wrap.is-marketplace .bilis-nav-bar:not(.is-scrolled) .bilis-nav-search input {
  color: #fff;
}

.bilis-nav-wrap.is-marketplace .bilis-nav-bar:not(.is-scrolled) .bilis-nav-search input::placeholder {
  color: rgba(255, 255, 255, 0.65);
}

.bilis-nav-wrap.is-marketplace .bilis-nav-bar:not(.is-scrolled) .bilis-nav-link:hover,
.bilis-nav-wrap.is-marketplace .bilis-nav-bar:not(.is-scrolled) .bilis-nav-link.active {
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
}

/* Icon buttons: glass chips + white glyphs (never white-on-white) */
.bilis-nav-wrap.is-marketplace .bilis-nav-bar:not(.is-scrolled) .bilis-nav-icon-btn,
.bilis-nav-wrap.is-marketplace .bilis-nav-bar:not(.is-scrolled) .bilis-nav-toggle {
  color: #fff;
  background: rgba(255, 255, 255, 0.18);
  border-color: rgba(255, 255, 255, 0.32);
  box-shadow: none;
}

.bilis-nav-wrap.is-marketplace .bilis-nav-bar:not(.is-scrolled) .bilis-nav-icon-btn:hover,
.bilis-nav-wrap.is-marketplace .bilis-nav-bar:not(.is-scrolled) .bilis-nav-toggle:hover {
  background: rgba(255, 255, 255, 0.28);
  color: #fff;
}

.bilis-nav-wrap.is-marketplace .bilis-nav-bar:not(.is-scrolled) .bilis-cart-badge {
  background: #fff;
  color: var(--bilis-primary);
}

.bilis-nav-wrap.is-marketplace .bilis-nav-bar.is-scrolled {
  background: var(--bilis-glass-bg);
  border-bottom-color: var(--bilis-border);
  box-shadow: var(--bilis-shadow-sm);
}

.bilis-nav-wrap.is-marketplace .bilis-nav-bar.is-scrolled .bilis-nav-icon-btn,
.bilis-nav-wrap.is-marketplace .bilis-nav-bar.is-scrolled .bilis-nav-toggle {
  background: #fff;
  border-color: var(--bilis-border);
  color: var(--bilis-primary);
}

.bilis-nav-wrap.is-marketplace .bilis-nav-bar.is-scrolled .bilis-cart-badge {
  background: var(--bilis-primary);
  color: #fff;
}

.bilis-nav-notify.has-pulse::after {
  content: '';
  position: absolute;
  top: 8px;
  right: 8px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #EF4444;
  box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.5);
  animation: bilis-notify-pulse 2s infinite;
}

@keyframes bilis-notify-pulse {
  0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.45); }
  70% { box-shadow: 0 0 0 8px rgba(239, 68, 68, 0); }
  100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}

.bilis-nav-icon-btn.bilis-cart-bounce {
  animation: bilis-cart-bounce 0.55s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes bilis-cart-bounce {
  0% { transform: scale(1); }
  35% { transform: scale(1.22); }
  100% { transform: scale(1); }
}

/* —— Hero —— */
.bilis-mkt-hero {
  position: relative;
  min-height: 420px;
  padding: calc(var(--bilis-navbar-height) + 28px) 0 56px;
  overflow: hidden;
  color: #fff;
  isolation: isolate;
}

.bilis-mkt-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(135deg, #5B21B6 0%, #8B5CF6 52%, #A78BFA 100%);
  animation: bilis-gradient-shift 12s ease-in-out infinite alternate;
}

@keyframes bilis-gradient-shift {
  from { filter: hue-rotate(0deg) saturate(1); }
  to { filter: hue-rotate(12deg) saturate(1.08); }
}

.bilis-mkt-hero-mesh {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 50% 60% at 80% 30%, rgba(255, 255, 255, 0.18), transparent 55%),
    radial-gradient(ellipse 40% 50% at 15% 80%, rgba(91, 33, 182, 0.45), transparent 50%);
  pointer-events: none;
}

.bilis-mkt-scooter {
  position: absolute;
  bottom: 18%;
  left: -8%;
  font-size: 2.4rem;
  color: rgba(255, 255, 255, 0.92);
  filter: drop-shadow(0 10px 24px rgba(30, 27, 46, 0.35));
  animation: bilis-scooter-ride 18s linear infinite;
  z-index: 1;
}

@keyframes bilis-scooter-ride {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(35vw) translateY(-8px); }
  50% { transform: translateX(70vw) translateY(4px); }
  75% { transform: translateX(105vw) translateY(-6px); }
  100% { transform: translateX(120vw) translateY(0); }
}

.bilis-mkt-float {
  position: absolute;
  z-index: 1;
  font-size: clamp(1.75rem, 3vw, 2.75rem);
  filter: drop-shadow(0 12px 20px rgba(30, 27, 46, 0.25));
  animation: bilis-food-float 5.5s ease-in-out infinite;
  user-select: none;
  pointer-events: none;
}

.bilis-mkt-float--burger { top: 22%; right: 18%; animation-delay: 0s; }
.bilis-mkt-float--pizza { top: 38%; right: 8%; animation-delay: 0.8s; font-size: 2.2rem; }
.bilis-mkt-float--tea { bottom: 28%; right: 22%; animation-delay: 1.4s; }
.bilis-mkt-float--fries { top: 58%; right: 14%; animation-delay: 0.4s; font-size: 2rem; }

@keyframes bilis-food-float {
  0%, 100% { transform: translateY(0) rotate(-4deg); }
  50% { transform: translateY(-14px) rotate(4deg); }
}

.bilis-mkt-hero-inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 40px;
  align-items: center;
}

.bilis-mkt-hero-brand {
  font-family: var(--bilis-font-heading);
  font-weight: 800;
  font-size: clamp(2.5rem, 5vw, 3.75rem);
  letter-spacing: 0.12em;
  margin: 0 0 0.75rem;
  line-height: 1;
  text-shadow: 0 8px 32px rgba(30, 27, 46, 0.25);
}

.bilis-mkt-hero-title {
  font-family: var(--bilis-font-heading);
  font-size: clamp(1.65rem, 3.2vw, 2.5rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
  margin: 0 0 0.75rem;
  color: #fff;
  max-width: 16ch;
}

.bilis-mkt-hero-sub {
  margin: 0 0 1.5rem;
  color: rgba(255, 255, 255, 0.82);
  font-size: 1.05rem;
}

.bilis-mkt-search {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 60px;
  padding: 0.35rem 0.45rem 0.35rem 1.15rem;
  background: #fff;
  color: #1E1B2E;
  border-radius: var(--bilis-radius-pill);
  box-shadow: 0 16px 40px rgba(30, 27, 46, 0.18);
}

.bilis-mkt-search > i { color: var(--bilis-primary); }

.bilis-mkt-search input {
  flex: 1;
  border: 0;
  outline: 0;
  background: transparent;
  font: 500 1rem var(--bilis-font-body);
  color: var(--bilis-text);
  min-width: 0;
}

.bilis-mkt-search input::placeholder { color: #9B98B0; }

.bilis-mkt-search-voice,
.bilis-mkt-search-go {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 48px;
  min-height: 48px;
  border: 0;
  border-radius: var(--bilis-radius-pill);
  cursor: pointer;
  transition: transform var(--bilis-transition), background var(--bilis-transition);
}

.bilis-mkt-search-voice {
  background: var(--bilis-section-bg);
  color: var(--bilis-primary);
}

.bilis-mkt-search-go {
  padding-inline: 1.25rem;
  background: var(--bilis-gradient);
  color: #fff;
  font-weight: 600;
}

.bilis-mkt-search-voice:hover,
.bilis-mkt-search-go:hover { transform: scale(1.04); }

.bilis-mkt-search--hero {
  margin-bottom: 1rem;
  max-width: 560px;
  z-index: 30;
}

.bilis-mkt-search-suggest {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 10px);
  z-index: 40;
  padding: 0.85rem;
  background: #fff;
  color: var(--bilis-text);
  border: 1px solid var(--bilis-border);
  border-radius: 20px;
  box-shadow: 0 20px 48px rgba(30, 27, 46, 0.22);
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  animation: bilis-fade-in 0.25s ease;
}

.bilis-mkt-search-suggest[hidden] { display: none !important; }

.bilis-mkt-suggest-label {
  margin: 0.45rem 0.65rem 0.2rem;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #6B6880;
}

.bilis-mkt-search-suggest button {
  border: 0;
  background: transparent;
  text-align: left;
  padding: 0.7rem 0.85rem;
  border-radius: 12px;
  font: 500 0.95rem var(--bilis-font-body);
  color: #1E1B2E;
  cursor: pointer;
  min-height: 48px;
}

.bilis-mkt-search-suggest button:hover {
  background: #F8F7FC;
  color: var(--bilis-primary);
}

@keyframes bilis-fade-in {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Solid white card + dark text so it never inherits hero white */
.bilis-mkt-address-card {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  max-width: 560px;
  margin-bottom: 1.25rem;
  padding: 0.85rem 1rem;
  background: #fff;
  color: #1E1B2E;
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 20px;
  box-shadow: 0 14px 36px rgba(30, 27, 46, 0.16);
  position: relative;
  z-index: 1;
}

.bilis-mkt-address-map {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  background: #F3F0FF;
  color: var(--bilis-primary);
  font-size: 1.15rem;
  flex-shrink: 0;
}

.bilis-mkt-address-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
  color: #1E1B2E;
}

.bilis-mkt-address-label {
  font-size: 0.75rem;
  color: #6B6880;
  opacity: 1;
}

.bilis-mkt-address-label i {
  color: var(--bilis-primary);
  margin-right: 0.2rem;
}

.bilis-mkt-address-value {
  font-size: 0.95rem;
  color: #1E1B2E;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.bilis-mkt-eta {
  font-size: 0.8rem;
  color: #6B6880;
  opacity: 1;
}

.bilis-mkt-eta strong {
  color: var(--bilis-primary);
}

.bilis-mkt-address-change {
  color: var(--bilis-primary);
  font-weight: 700;
  font-size: 0.875rem;
  text-decoration: none;
  min-height: 48px;
  padding-inline: 0.35rem;
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}

.bilis-mkt-address-change:hover {
  color: var(--bilis-primary-dark);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Keep CTA clear of open suggestions */
.bilis-mkt-hero-copy.is-searching .bilis-mkt-address-card,
.bilis-mkt-hero-copy.is-searching .bilis-mkt-hero-cta {
  opacity: 0.35;
  pointer-events: none;
  transition: opacity 0.2s ease;
}

.bilis-mkt-hero-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.bilis-mkt-hero-visual {
  display: flex;
  justify-content: center;
  align-items: center;
}

.bilis-mkt-hero-plate {
  position: relative;
  width: min(100%, 420px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.2), 0 30px 60px rgba(30, 27, 46, 0.25);
  display: grid;
  place-items: center;
  overflow: hidden;
}

.bilis-mkt-hero-food {
  width: 88%;
  height: 88%;
  object-fit: cover;
  border-radius: 50%;
  animation: bilis-food-float 7s ease-in-out infinite;
}

.bilis-mkt-hero-badge {
  position: absolute;
  bottom: 12%;
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.55rem 0.95rem;
  border-radius: var(--bilis-radius-pill);
  background: rgba(255, 255, 255, 0.95);
  color: var(--bilis-primary);
  font-weight: 700;
  font-size: 0.85rem;
  box-shadow: var(--bilis-shadow-md);
  white-space: nowrap;
}

/* —— Sections —— */
.bilis-mkt-section {
  padding-block: var(--bilis-section-gap);
}

.bilis-mkt-section--tight {
  padding-block: 1.25rem;
}

.bilis-mkt-section--alt {
  background: rgba(109, 40, 217, 0.04);
}

.bilis-mkt-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.bilis-mkt-section-title {
  font-family: var(--bilis-font-heading);
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
  font-weight: 700;
  margin: 0 0 0.25rem;
  color: var(--bilis-text);
}

.bilis-mkt-section-desc {
  margin: 0;
  color: var(--bilis-text-secondary);
  font-size: 0.95rem;
}

.bilis-mkt-see-all {
  font-weight: 600;
  color: var(--bilis-primary);
  white-space: nowrap;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
}

/* Categories chips */
.bilis-mkt-chips {
  display: flex;
  gap: 0.75rem;
  overflow-x: auto;
  padding-bottom: 0.35rem;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.bilis-mkt-chips::-webkit-scrollbar { display: none; }

.bilis-mkt-chip {
  flex: 0 0 auto;
  scroll-snap-align: start;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 48px;
  padding: 0.55rem 1rem;
  border-radius: var(--bilis-radius-pill);
  background: var(--bilis-card-bg);
  color: var(--bilis-text);
  border: 1px solid var(--bilis-border);
  box-shadow: var(--bilis-shadow-sm);
  font-weight: 600;
  font-size: 0.9rem;
  transition: transform var(--bilis-transition), box-shadow var(--bilis-transition), border-color var(--bilis-transition);
}

.bilis-mkt-chip:hover {
  transform: translateY(-2px);
  border-color: var(--bilis-accent);
  box-shadow: var(--bilis-shadow-md);
  color: var(--bilis-primary);
}

.bilis-mkt-chip-emoji { font-size: 1.15rem; }

.bilis-mkt-chip--photo {
  padding-left: 0.45rem;
}

.bilis-mkt-chip-thumb {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--bilis-lavender, #EDE9FE);
  border: 1px solid rgba(109, 40, 217, 0.12);
}

.bilis-mkt-chip-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Greeting */
.bilis-mkt-greeting {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  flex-wrap: wrap;
  padding: 1.25rem 1.5rem;
  border-radius: 24px;
  background: var(--bilis-card-bg);
  box-shadow: var(--bilis-shadow-sm);
  border: 1px solid var(--bilis-border);
}

.bilis-mkt-greeting-title {
  margin: 0 0 0.25rem;
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
}

.bilis-mkt-greeting-sub {
  margin: 0;
  color: var(--bilis-text-secondary);
}

.bilis-mkt-greeting-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.bilis-mkt-greeting-pills span {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 40px;
  padding: 0.4rem 0.85rem;
  border-radius: var(--bilis-radius-pill);
  background: var(--bilis-section-bg);
  color: var(--bilis-text-secondary);
  font-size: 0.85rem;
  font-weight: 600;
}

/* Restaurant cards */
.bilis-r-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--bilis-card-gap);
}

.bilis-r-card {
  background: var(--bilis-card-bg);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: var(--bilis-shadow-sm);
  border: 1px solid transparent;
  transition: transform var(--bilis-transition), box-shadow var(--bilis-transition);
}

.bilis-r-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--bilis-shadow-lg);
}

.bilis-r-card-media {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--bilis-section-bg);
}

.bilis-r-card-media-link {
  display: block;
  width: 100%;
  height: 100%;
}

.bilis-r-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.bilis-r-card:hover .bilis-r-card-media img { transform: scale(1.05); }

.bilis-r-card-name a {
  color: inherit;
  text-decoration: none;
}

.bilis-r-card-name a:hover { color: var(--bilis-primary); }

.bilis-r-card-promo {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  padding: 0.35rem 0.7rem;
  border-radius: var(--bilis-radius-pill);
  background: var(--bilis-gradient);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
}

.bilis-r-card-status {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  padding: 0.3rem 0.65rem;
  border-radius: var(--bilis-radius-pill);
  font-size: 0.72rem;
  font-weight: 700;
  background: rgba(255, 255, 255, 0.92);
}

.bilis-r-card-status.is-open { color: #15803D; }
.bilis-r-card-status.is-closed { color: #B91C1C; }

.bilis-r-card-logo {
  position: absolute;
  left: 16px;
  bottom: -22px;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--bilis-shadow-md);
  overflow: hidden;
  display: grid;
  place-items: center;
  z-index: 2;
}

.bilis-r-card-logo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bilis-r-card-logo--fallback {
  color: var(--bilis-primary);
  font-size: 1.1rem;
}

.bilis-r-card-body { padding: 1.75rem 1rem 1.1rem; }

.bilis-r-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.45rem;
}

.bilis-r-card-name {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.3;
}

.bilis-r-card-fav {
  width: 40px;
  height: 40px;
  min-width: 40px;
  border: 0;
  border-radius: 50%;
  background: var(--bilis-section-bg);
  color: var(--bilis-text-secondary);
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: transform 0.25s ease, color 0.25s ease, background 0.25s ease;
}

.bilis-r-card-fav.is-active,
.bilis-r-card-fav:hover {
  color: #EF4444;
  background: rgba(239, 68, 68, 0.1);
}

.bilis-r-card-fav.is-active { animation: bilis-heart-pop 0.45s ease; }

@keyframes bilis-heart-pop {
  0% { transform: scale(1); }
  40% { transform: scale(1.3); }
  100% { transform: scale(1); }
}

.bilis-r-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 0.85rem;
  font-size: 0.82rem;
  color: var(--bilis-text-secondary);
  margin-bottom: 0.65rem;
}

.bilis-r-card-meta .fa-star { color: #F59E0B; }
.bilis-r-card-meta .fa-motorcycle { color: var(--bilis-primary); }

.bilis-r-card-footer {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  font-size: 0.8rem;
  color: var(--bilis-text-secondary);
}

.bilis-r-card-fee {
  color: var(--bilis-primary);
  font-weight: 600;
}

/* Promo carousel */
.bilis-promo-swiper {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
}

.bilis-promo-card {
  display: block;
  position: relative;
  min-height: clamp(200px, 28vw, 320px);
  border-radius: 24px;
  background:
    linear-gradient(
      105deg,
      rgba(15, 10, 28, 0.92) 0%,
      rgba(30, 16, 60, 0.88) 32%,
      rgba(55, 25, 100, 0.72) 58%,
      rgba(30, 16, 60, 0.55) 78%,
      rgba(15, 10, 28, 0.4) 100%
    ),
    var(--promo-img) center / cover no-repeat;
  color: #fff;
  text-decoration: none;
  overflow: hidden;
}

.bilis-promo-overlay {
  position: relative;
  z-index: 1;
  height: 100%;
  min-height: inherit;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  /* Clear prev/next arrow hit areas so text never sits under icons */
  padding: clamp(1.35rem, 3vw, 2.35rem) clamp(4.25rem, 8vw, 5.5rem);
  max-width: 640px;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.45);
}

.bilis-promo-tag {
  display: inline-flex;
  align-self: flex-start;
  padding: 0.3rem 0.7rem;
  border-radius: var(--bilis-radius-pill);
  background: rgba(0, 0, 0, 0.4);
  font-size: 0.75rem;
  font-weight: 700;
  margin-bottom: 0.65rem;
  text-shadow: none;
}

.bilis-promo-overlay h2 {
  color: #fff;
  margin: 0 0 0.35rem;
  font-size: clamp(1.5rem, 3vw, 2.25rem);
}

.bilis-promo-overlay p {
  margin: 0 0 1rem;
  color: rgba(255, 255, 255, 0.9);
}

.bilis-promo-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.25rem;
}

.bilis-countdown {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.45rem 0.8rem;
  border-radius: var(--bilis-radius-pill);
  background: rgba(0, 0, 0, 0.45);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  text-shadow: none;
}

.bilis-countdown--inline {
  background: rgba(109, 40, 217, 0.12);
  color: var(--bilis-primary);
  padding: 0.25rem 0.65rem;
}

.bilis-promo-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 48px;
  padding: 0.55rem 1.15rem;
  border-radius: var(--bilis-radius-pill);
  background: #fff;
  color: var(--bilis-primary);
  font-weight: 700;
  text-shadow: none;
}

.bilis-promo-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.95);
  color: var(--bilis-primary);
  box-shadow: 0 8px 24px rgba(15, 10, 28, 0.28);
  cursor: pointer;
}

.bilis-promo-prev { left: 14px; }
.bilis-promo-next { right: 14px; }

.bilis-promo-swiper .swiper-pagination-bullet {
  background: rgba(255, 255, 255, 0.45);
  opacity: 1;
}

.bilis-promo-swiper .swiper-pagination-bullet-active {
  background: #fff;
}

/* Product cards */
.bilis-p-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--bilis-card-gap);
}

.bilis-mkt-hscroll {
  display: flex;
  gap: var(--bilis-card-gap);
  overflow-x: auto;
  padding-bottom: 0.5rem;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
}

.bilis-mkt-hscroll .bilis-p-card {
  flex: 0 0 min(280px, 78vw);
  scroll-snap-align: start;
}

.bilis-p-card {
  background: var(--bilis-card-bg);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: var(--bilis-shadow-sm);
  transition: transform var(--bilis-transition), box-shadow var(--bilis-transition);
}

.bilis-p-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--bilis-shadow-md);
}

.bilis-p-card-media {
  position: relative;
  aspect-ratio: 5 / 4;
  overflow: hidden;
  background: var(--bilis-section-bg);
}

.bilis-p-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.45s ease;
}

.bilis-p-card:hover .bilis-p-card-media img { transform: scale(1.06); }

.bilis-p-card-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  padding: 0.35rem 0.65rem;
  border-radius: var(--bilis-radius-pill);
  background: #EF4444;
  color: #fff;
  font-weight: 800;
  font-size: 0.8rem;
  animation: bilis-badge-pulse 1.8s ease-in-out infinite;
}

@keyframes bilis-badge-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.06); }
}

.bilis-p-card-body { padding: 1rem 1.1rem 1.15rem; }

.bilis-p-card-name {
  margin: 0 0 0.2rem;
  font-size: 1.05rem;
  font-weight: 700;
}

.bilis-p-card-rest {
  margin: 0 0 0.75rem;
  color: var(--bilis-text-secondary);
  font-size: 0.875rem;
}

.bilis-p-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.bilis-p-card-price {
  color: var(--bilis-primary);
  font-weight: 800;
  font-size: 1.05rem;
}

.bilis-p-card-old {
  margin-left: 0.35rem;
  color: var(--bilis-text-muted);
  text-decoration: line-through;
  font-size: 0.85rem;
  font-weight: 500;
}

.bilis-add-expand {
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 50%;
  background: var(--bilis-gradient);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  cursor: pointer;
  box-shadow: var(--bilis-shadow-md);
  transition: width 0.28s ease, border-radius 0.28s ease, transform 0.2s ease;
  overflow: hidden;
  white-space: nowrap;
  font-weight: 700;
}

.bilis-add-expand:hover { transform: scale(1.05); }

.bilis-add-expand.is-open {
  width: 118px;
  border-radius: 999px;
  padding-inline: 0.65rem;
}

.bilis-add-expand .bilis-qty-ctrl {
  display: none;
  align-items: center;
  gap: 0.45rem;
}

.bilis-add-expand.is-open .bilis-qty-ctrl { display: inline-flex; }
.bilis-add-expand.is-open > .fa-plus { display: none; }

.bilis-add-expand .bilis-qty-ctrl button {
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.22);
  color: #fff;
  cursor: pointer;
}

/* Essentials */
.bilis-mkt-essentials {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--bilis-card-gap);
}

.bilis-mkt-essential {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  min-height: 140px;
  padding: 1.25rem;
  border-radius: 24px;
  background: var(--bilis-card-bg);
  border: 1px solid var(--bilis-border);
  box-shadow: var(--bilis-shadow-sm);
  color: var(--bilis-text);
  font-weight: 700;
  transition: transform var(--bilis-transition), box-shadow var(--bilis-transition);
}

.bilis-mkt-essential:hover {
  transform: translateY(-4px);
  box-shadow: var(--bilis-shadow-md);
  color: var(--bilis-primary);
}

.bilis-mkt-essential-icon { font-size: 2rem; }

/* Brands */
.bilis-mkt-brands {
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

.bilis-mkt-brands-track {
  display: flex;
  gap: 1rem;
  width: max-content;
  animation: bilis-brand-marquee 32s linear infinite;
}

.bilis-mkt-brand {
  flex: 0 0 auto;
  min-height: 64px;
  min-width: 140px;
  padding: 0.75rem 1.25rem;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: var(--bilis-card-bg);
  border: 1px solid var(--bilis-border);
  color: var(--bilis-text);
  font-weight: 700;
  box-shadow: var(--bilis-shadow-sm);
}

@keyframes bilis-brand-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* Rewards */
.bilis-rewards-card {
  display: grid;
  grid-template-columns: 1.4fr 0.6fr;
  gap: 1.5rem;
  padding: clamp(1.5rem, 3vw, 2.5rem);
  border-radius: 28px;
  background: linear-gradient(135deg, #5B21B6, #8B5CF6 55%, #A78BFA);
  color: #fff;
  box-shadow: var(--bilis-shadow-lg);
  overflow: hidden;
  position: relative;
}

.bilis-rewards-label {
  display: inline-block;
  margin-bottom: 0.5rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.85;
}

.bilis-rewards-copy h2 {
  color: #fff;
  margin: 0 0 0.4rem;
  font-size: clamp(1.4rem, 2.5vw, 2rem);
}

.bilis-rewards-copy p {
  margin: 0 0 1.25rem;
  color: rgba(255, 255, 255, 0.85);
}

.bilis-rewards-stats {
  display: flex;
  gap: 1.5rem;
  margin-bottom: 1.25rem;
}

.bilis-rewards-stats div {
  display: flex;
  flex-direction: column;
}

.bilis-rewards-stats strong {
  font-size: 1.35rem;
  font-variant-numeric: tabular-nums;
}

.bilis-rewards-stats span {
  font-size: 0.8rem;
  opacity: 0.8;
}

.bilis-rewards-progress-head {
  display: flex;
  justify-content: space-between;
  font-size: 0.85rem;
  margin-bottom: 0.45rem;
}

.bilis-rewards-bar {
  height: 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.22);
  overflow: hidden;
}

.bilis-rewards-bar span {
  display: block;
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: #fff;
  transition: width 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}

.bilis-rewards-bar.is-filled span {
  width: var(--progress, 80%);
}

.bilis-rewards-art {
  display: grid;
  place-items: center;
  font-size: clamp(4rem, 8vw, 6rem);
  opacity: 0.9;
}

/* Live delivery */
.bilis-live-card {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: var(--bilis-card-gap);
  align-items: stretch;
  background: var(--bilis-card-bg);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: var(--bilis-shadow-sm);
  border: 1px solid var(--bilis-border);
}

.bilis-live-map {
  position: relative;
  min-height: 240px;
  background: linear-gradient(160deg, #EDE9FE, #DDD6FE 40%, #C4B5FD);
}

.bilis-live-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(109, 40, 217, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(109, 40, 217, 0.08) 1px, transparent 1px);
  background-size: 28px 28px;
}

.bilis-live-pin,
.bilis-live-you {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  transform: translate(-50%, -50%);
  background: #fff;
  color: var(--bilis-primary);
  box-shadow: var(--bilis-shadow-md);
  animation: bilis-food-float 4s ease-in-out infinite;
}

.bilis-live-you {
  background: var(--bilis-primary);
  color: #fff;
}

.bilis-live-copy { padding: 1.75rem; }

.bilis-live-stats {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.65rem;
}

.bilis-live-stats li {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  color: var(--bilis-text-secondary);
}

.bilis-live-stats strong {
  color: var(--bilis-text);
  min-width: 4.5rem;
}

/* Reviews */
.bilis-review-card {
  height: 100%;
  padding: 1.5rem;
  border-radius: 24px;
  background: var(--bilis-card-bg);
  border: 1px solid var(--bilis-border);
  box-shadow: var(--bilis-shadow-sm);
}

.bilis-review-stars {
  color: #F59E0B;
  margin-bottom: 0.75rem;
  display: flex;
  gap: 0.2rem;
}

.bilis-review-text {
  margin: 0 0 1.25rem;
  color: var(--bilis-text);
  line-height: 1.55;
}

.bilis-review-author {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.bilis-review-photo,
.bilis-review-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
}

.bilis-review-avatar {
  display: grid;
  place-items: center;
  background: var(--bilis-gradient);
  color: #fff;
  font-weight: 700;
}

.bilis-review-author strong {
  display: block;
  font-size: 0.95rem;
}

.bilis-review-author span {
  color: var(--bilis-text-secondary);
  font-size: 0.8rem;
}

/* Floating cart */
.bilis-float-cart {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 1040;
  display: none;
  align-items: center;
  gap: 0.75rem;
  min-height: 64px;
  padding: 0.65rem 1.1rem 0.65rem 0.65rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.82);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(231, 227, 248, 0.9);
  box-shadow: var(--bilis-shadow-lg);
  color: var(--bilis-text);
  text-decoration: none;
  transform: translateY(120%);
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.bilis-float-cart.is-visible {
  display: inline-flex;
  transform: translateY(0);
}

.bilis-float-cart-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--bilis-gradient);
  color: #fff;
}

.bilis-float-cart-meta {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}

.bilis-float-cart-meta small {
  color: var(--bilis-text-secondary);
}

/* Footer apps */
.bilis-app-btn--footer {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #fff;
  border-radius: 12px;
  padding: 0.55rem 0.9rem;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 600;
  font-size: 0.875rem;
}

.bilis-app-btn--footer:hover { background: rgba(255, 255, 255, 0.18); color: #fff; }

.bilis-footer-newsletter .form-control {
  border-radius: 999px 0 0 999px;
  border: 0;
  min-height: 48px;
}

.bilis-footer-newsletter .btn {
  border-radius: 0 999px 999px 0;
  min-height: 48px;
  font-weight: 600;
}

/* Button ripple */
.bilis-btn-ripple {
  position: relative;
  overflow: hidden;
}

.bilis-btn-ripple .ripple {
  position: absolute;
  border-radius: 50%;
  transform: scale(0);
  animation: bilis-ripple 0.6s linear;
  background: rgba(255, 255, 255, 0.45);
  pointer-events: none;
}

@keyframes bilis-ripple {
  to { transform: scale(4); opacity: 0; }
}

/* Skeleton */
.bilis-skeleton-card {
  border-radius: 24px;
  background: linear-gradient(90deg, #EDE9FE 25%, #F5F3FF 50%, #EDE9FE 75%);
  background-size: 200% 100%;
  animation: bilis-shimmer 1.4s ease infinite;
  min-height: 220px;
}

@keyframes bilis-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* Dark marketplace overrides */
[data-theme="dark"] .bilis-mkt-section--alt { background: rgba(139, 92, 246, 0.06); }
[data-theme="dark"] .bilis-mkt-search,
[data-theme="dark"] .bilis-mkt-search-suggest,
[data-theme="dark"] .bilis-mkt-address-card,
[data-theme="dark"] .bilis-mkt-chip,
[data-theme="dark"] .bilis-mkt-greeting,
[data-theme="dark"] .bilis-r-card,
[data-theme="dark"] .bilis-p-card,
[data-theme="dark"] .bilis-mkt-essential,
[data-theme="dark"] .bilis-mkt-brand,
[data-theme="dark"] .bilis-live-card,
[data-theme="dark"] .bilis-review-card {
  background: var(--bilis-card-bg);
  border-color: var(--bilis-border);
  color: var(--bilis-text);
}
[data-theme="dark"] .bilis-mkt-search input,
[data-theme="dark"] .bilis-mkt-search-suggest button,
[data-theme="dark"] .bilis-mkt-address-value,
[data-theme="dark"] .bilis-mkt-address-info {
  color: var(--bilis-text);
}
[data-theme="dark"] .bilis-mkt-address-label,
[data-theme="dark"] .bilis-mkt-eta,
[data-theme="dark"] .bilis-mkt-suggest-label {
  color: var(--bilis-text-secondary);
}
[data-theme="dark"] .bilis-mkt-address-map {
  background: rgba(139, 92, 246, 0.18);
  color: #C4B5FD;
}
[data-theme="dark"] .bilis-mkt-address-change {
  color: #C4B5FD;
}
[data-theme="dark"] .bilis-mkt-search-suggest button:hover {
  background: rgba(139, 92, 246, 0.12);
  color: #C4B5FD;
}
[data-theme="dark"] .bilis-float-cart {
  background: rgba(29, 29, 36, 0.88);
  border-color: rgba(139, 92, 246, 0.3);
  color: #fff;
}
[data-theme="dark"] .bilis-live-map {
  background: linear-gradient(160deg, #1D1D24, #2A2140 50%, #3B2760);
}
[data-theme="dark"] .bilis-r-card-logo,
[data-theme="dark"] .bilis-r-card-status {
  background: #1D1D24;
}

/* Responsive */
@media (max-width: 1199.98px) {
  .bilis-r-grid { grid-template-columns: repeat(3, 1fr); }
  .bilis-p-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 991.98px) {
  .bilis-mkt-hero-inner { grid-template-columns: 1fr; }
  .bilis-mkt-hero-visual { display: none; }
  .bilis-mkt-float--burger,
  .bilis-mkt-float--pizza { right: 6%; }
  .bilis-r-grid { grid-template-columns: repeat(2, 1fr); }
  .bilis-mkt-essentials { grid-template-columns: repeat(2, 1fr); }
  .bilis-rewards-card,
  .bilis-live-card { grid-template-columns: 1fr; }
  .bilis-rewards-art { display: none; }
  .bilis-float-cart {
    left: 16px;
    right: 16px;
    bottom: 16px;
    justify-content: center;
  }
  .bilis-promo-nav { display: none; }
  .bilis-promo-overlay {
    padding: clamp(1.25rem, 4vw, 1.75rem);
  }
}

@media (max-width: 575.98px) {
  .bilis-r-grid,
  .bilis-p-grid { grid-template-columns: 1fr; }
  .bilis-mkt-hero { padding-bottom: 40px; }
  .bilis-mkt-hero-title { max-width: none; }
  .bilis-mkt-search--bar .bilis-mkt-search-go { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .bilis-mkt-scooter,
  .bilis-mkt-float,
  .bilis-mkt-hero-food,
  .bilis-mkt-brands-track,
  .bilis-mkt-hero-bg,
  .bilis-p-card-badge,
  .bilis-nav-notify.has-pulse::after {
    animation: none !important;
  }
}

/* ==========================================================================
   Restaurant Details — Design System v3.0
   ========================================================================== */

body.restaurant-detail {
  background: var(--bilis-body-bg);
}

.bilis-rd {
  padding-bottom: 120px;
}

.bilis-rd-container {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 24px clamp(16px, 4vw, 32px) 48px;
}

/* Hero */
.bilis-rd-hero {
  position: relative;
  height: 400px;
  border-radius: 24px;
  overflow: hidden;
  margin-bottom: 24px;
  box-shadow: var(--bilis-shadow-lg);
}

.bilis-rd-hero-media {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.bilis-rd-hero-img {
  width: 100%;
  height: 120%;
  object-fit: cover;
  transform: scale(1.06);
  will-change: transform;
}

.bilis-rd-hero-overlay {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 70% at 20% 85%, rgba(0, 0, 0, 0.55), transparent 55%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.35) 40%, rgba(0, 0, 0, 0.7) 100%);
}

.bilis-rd-hero-actions {
  position: absolute;
  top: 20px;
  right: 20px;
  z-index: 3;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-end;
}

.bilis-rd-action {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 48px;
  padding: 0.55rem 0.95rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.14);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  color: #fff;
  font-weight: 600;
  font-size: 0.875rem;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.bilis-rd-action:hover {
  background: rgba(255, 255, 255, 0.24);
  border-color: rgba(255, 255, 255, 0.4);
  color: #fff;
  transform: translateY(-1px);
}

.bilis-rd-action.is-active {
  background: rgba(124, 58, 237, 0.85);
  border-color: rgba(255, 255, 255, 0.35);
  color: #fff;
}

.bilis-rd-action.is-active i {
  color: #fff;
  animation: bilis-rd-heart-pop 0.45s ease;
}

@keyframes bilis-rd-heart-pop {
  0% { transform: scale(1); }
  40% { transform: scale(1.35); }
  100% { transform: scale(1); }
}

.bilis-rd-action span { display: inline; }

.bilis-rd-hero-card {
  position: absolute;
  left: 24px;
  bottom: 24px;
  z-index: 2;
  display: flex;
  gap: 1.25rem;
  align-items: flex-end;
  padding: 24px;
  border-radius: 24px;
  background: rgba(255, 255, 255, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.32);
  backdrop-filter: blur(24px) saturate(1.2);
  -webkit-backdrop-filter: blur(24px) saturate(1.2);
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.28);
  color: #fff;
  max-width: min(920px, calc(100% - 48px));
  right: auto;
}

.bilis-rd-logo {
  width: 96px;
  height: 96px;
  border-radius: 16px;
  overflow: hidden;
  flex-shrink: 0;
  border: 2px solid rgba(255, 255, 255, 0.95);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.28);
  background: #fff;
}

.bilis-rd-logo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bilis-rd-hero-copy { min-width: 0; flex: 1; }

.bilis-rd-status-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem;
  margin-bottom: 0.45rem;
}

.bilis-rd-status {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0.2rem 0.7rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);
}

.bilis-rd-status.is-open {
  background: #10B981;
  color: #fff;
}

.bilis-rd-status.is-closed {
  background: rgba(255, 255, 255, 0.85);
  color: #4B5563;
}

.bilis-rd-opens {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.9);
}

.bilis-rd-name {
  font-family: var(--bilis-font-heading);
  font-weight: 800;
  font-size: clamp(1.75rem, 4vw, 2.625rem);
  line-height: 1.15;
  margin: 0 0 0.35rem;
  color: #fff;
  letter-spacing: -0.02em;
}

.bilis-rd-tagline {
  margin: 0 0 0.75rem;
  font-size: 1.05rem;
  color: rgba(255, 255, 255, 0.92);
}

.bilis-rd-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.85rem;
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.92);
}

.bilis-rd-badges .fa-star { color: #FBBF24; }
.bilis-rd-badges .fa-motorcycle { color: #E9D5FF; }

.bilis-rd-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
}

.bilis-rd-chip--promo {
  background: rgba(109, 40, 217, 0.85);
  color: #fff;
}

.bilis-rd-chip--hot {
  background: #EF4444;
  color: #fff;
}

/* Closed notice */
.bilis-rd-closed {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 1.25rem;
  align-items: center;
  padding: 1.5rem 1.75rem;
  margin-bottom: 32px;
  border-radius: 24px;
  background: linear-gradient(135deg, #1E1B2E, #3B2760);
  color: #fff;
  box-shadow: var(--bilis-shadow-md);
}

.bilis-rd-closed-icon {
  font-size: 2.5rem;
  line-height: 1;
}

.bilis-rd-closed h2 {
  margin: 0 0 0.35rem;
  color: #fff;
  font-size: 1.35rem;
}

.bilis-rd-closed p { margin: 0 0 0.65rem; color: rgba(255,255,255,.85); }

.bilis-rd-hours {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.15rem 0.75rem;
  margin: 0 0 0.5rem;
  font-size: 0.9rem;
}

.bilis-rd-hours dt {
  grid-column: 1 / -1;
  font-weight: 700;
  margin-top: 0.25rem;
}

.bilis-rd-hours dd { margin: 0; color: rgba(255,255,255,.85); }

.bilis-rd-closed-note {
  margin: 0 !important;
  font-size: 0.875rem;
  color: rgba(255,255,255,.75) !important;
}

/* Stats */
.bilis-rd-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

.bilis-rd-stat {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 1.1rem 1.15rem;
  border-radius: 16px;
  background: #fff;
  border: 1px solid rgba(231, 227, 248, 0.9);
  box-shadow: 0 10px 28px rgba(30, 27, 46, 0.06);
  transition: transform var(--bilis-transition), box-shadow var(--bilis-transition);
}

.bilis-rd-stat:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 36px rgba(109, 40, 217, 0.1);
}

.bilis-rd-stat-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #F3E8FF;
  color: #7C3AED;
  font-size: 1.05rem;
  flex-shrink: 0;
}

.bilis-rd-stat strong {
  display: block;
  font-size: 1.05rem;
  color: #1E1B2E;
}

.bilis-rd-stat span {
  font-size: 0.8rem;
  color: #6B6880;
}

/* Sticky nav */
.bilis-rd-sticky {
  position: sticky;
  top: var(--bilis-navbar-height);
  z-index: 40;
  margin: 0 0 24px;
  padding: 0;
}

.bilis-rd-sticky-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 16px 24px;
  border-radius: 24px;
  background: #fff;
  border: 1px solid rgba(231, 227, 248, 0.9);
  box-shadow: 0 10px 28px rgba(30, 27, 46, 0.06);
  transition: box-shadow 0.25s ease;
}

.bilis-rd-sticky.is-stuck .bilis-rd-sticky-inner {
  box-shadow: 0 14px 36px rgba(109, 40, 217, 0.1);
}

.bilis-rd-pills {
  display: flex;
  gap: 0.5rem;
  overflow-x: auto;
  flex: 1;
  min-width: 0;
  scrollbar-width: none;
}

.bilis-rd-pills::-webkit-scrollbar { display: none; }

.bilis-rd-pill {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0.4rem 0.95rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid #E5E7EB;
  color: #6B6880;
  font-weight: 600;
  font-size: 0.875rem;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.15s ease;
}

.bilis-rd-pill:hover {
  color: #6D28D9;
  border-color: #C4B5FD;
}

.bilis-rd-pill:active {
  transform: scale(0.95);
}

.bilis-rd-pill.is-active {
  background: #7C3AED;
  border-color: #7C3AED;
  color: #fff;
}

.bilis-rd-search {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  width: 320px;
  max-width: 100%;
  min-height: 48px;
  padding: 0.25rem 0.4rem 0.25rem 1rem;
  border-radius: 999px;
  background: #F3F4F6;
  border: 1px solid transparent;
  flex-shrink: 0;
}

.bilis-rd-search i { color: #7C3AED; }

.bilis-rd-search input {
  flex: 1;
  border: 0;
  outline: 0;
  background: transparent;
  min-width: 0;
  font: 500 0.95rem var(--bilis-font-body);
  color: #1E1B2E;
}

.bilis-rd-search input::placeholder { color: #9CA3AF; }

.bilis-rd-search-voice {
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #7C3AED;
  cursor: pointer;
}

/* Sections */
.bilis-rd-section { margin-bottom: 24px; }

.bilis-rd-section-head {
  margin-bottom: 1.25rem;
}

.bilis-rd-section-head h2 {
  margin: 0 0 0.25rem;
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
}

.bilis-rd-section-head p {
  margin: 0;
  color: var(--bilis-text-secondary);
}

.bilis-rd-muted { color: var(--bilis-text-secondary); }

/* Food grid */
.bilis-rd-food-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.bilis-rd-food-grid--featured {
  grid-template-columns: repeat(4, 1fr);
}

.bilis-rd-food {
  background: var(--bilis-card-bg);
  border-radius: 24px;
  overflow: hidden;
  box-shadow: var(--bilis-shadow-sm);
  border: 1px solid transparent;
  transition: transform var(--bilis-transition), box-shadow var(--bilis-transition);
}

.bilis-rd-food:hover {
  transform: translateY(-6px);
  box-shadow: var(--bilis-shadow-lg);
}

.bilis-rd-food.is-hidden { display: none; }

.bilis-rd-food.is-unavailable {
  opacity: 0.72;
  filter: grayscale(0.35);
  background: #F5F5F7;
}

.bilis-rd-food.is-unavailable:hover {
  transform: none;
  box-shadow: var(--bilis-shadow-sm);
}

.bilis-rd-food.is-unavailable .bilis-rd-food-media img {
  opacity: 0.55;
}

.bilis-rd-badge--closed {
  background: #6B6880;
  color: #fff;
}

.bilis-rd-food-media {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 20px 20px 0 0;
  background: var(--bilis-section-bg);
}

.bilis-rd-food-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .45s ease;
}

.bilis-rd-food:hover .bilis-rd-food-media img { transform: scale(1.05); }

.bilis-rd-food-badges {
  position: absolute;
  top: 12px;
  left: 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  z-index: 2;
}

.bilis-rd-badge {
  padding: 0.28rem 0.6rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  color: #fff;
  background: rgba(30,27,46,.72);
}

.bilis-rd-badge--best { background: var(--bilis-gradient); }
.bilis-rd-badge--new { background: #2563EB; }
.bilis-rd-badge--chef { background: #7C3AED; }
.bilis-rd-badge--promo { background: #DC2626; }
.bilis-rd-badge--spicy { background: #EA580C; }
.bilis-rd-badge--vegan { background: #16A34A; }

.bilis-rd-food-quick {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  gap: 0.75rem;
  padding: 0.65rem 0.85rem;
  background: linear-gradient(transparent, rgba(0,0,0,.7));
  color: #fff;
  font-size: 0.78rem;
  font-weight: 600;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .25s ease, transform .25s ease;
}

.bilis-rd-food:hover .bilis-rd-food-quick {
  opacity: 1;
  transform: translateY(0);
}

.bilis-rd-food-body { padding: 1rem 1.1rem 1.15rem; }

.bilis-rd-food-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}

.bilis-rd-food-name {
  margin: 0;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.3;
}

.bilis-rd-food-name a {
  color: inherit;
  text-decoration: none;
}

.bilis-rd-food-name a:hover { color: var(--bilis-primary); }

.bilis-rd-food-rating {
  flex-shrink: 0;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--bilis-text-secondary);
}

.bilis-rd-food-rating .fa-star { color: #F59E0B; }

.bilis-rd-food-desc {
  margin: 0 0 0.85rem;
  color: var(--bilis-text-secondary);
  font-size: 0.9rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.7em;
}

.bilis-rd-food-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.bilis-rd-food-price {
  color: var(--bilis-primary);
  font-size: 1.35rem;
  font-weight: 700;
}

.bilis-rd-food-old {
  margin-left: 0.35rem;
  color: var(--bilis-text-muted);
  text-decoration: line-through;
  font-size: 0.9rem;
  font-weight: 500;
}

.bilis-rd-add {
  width: 56px;
  height: 56px;
  border: 0;
  border-radius: 50%;
  background: var(--bilis-gradient);
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 1.15rem;
  cursor: pointer;
  box-shadow: var(--bilis-shadow-md);
  transition: transform .2s ease;
}

.bilis-rd-add:hover { transform: scale(1.08); }

.bilis-rd-add.is-disabled {
  background: #9CA3AF;
  cursor: not-allowed;
  box-shadow: none;
}

/* Horizontal popular */
.bilis-rd-hscroll {
  display: flex;
  gap: 20px;
  overflow-x: auto;
  padding-bottom: 0.5rem;
  scroll-snap-type: x mandatory;
}

.bilis-rd-hscroll-item {
  flex: 0 0 min(300px, 78vw);
  scroll-snap-align: start;
}

.bilis-rd-menu-title {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin: 0 0 1rem;
  font-size: 1.25rem;
}

.bilis-rd-menu-title span {
  font-size: 0.85rem;
  color: var(--bilis-text-secondary);
  font-weight: 600;
}

.bilis-rd-menu-block {
  margin-bottom: 2.5rem;
}

.bilis-rd-menu-block.is-empty-filter { display: none; }

/* Combo */
.bilis-rd-combo {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  padding: 1.5rem;
  border-radius: 24px;
  background: var(--bilis-card-bg);
  border: 1px solid var(--bilis-border);
  box-shadow: var(--bilis-shadow-sm);
  overflow: hidden;
}

.bilis-rd-combo-badge {
  position: absolute;
  top: 14px;
  right: 14px;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  background: #DC2626;
  color: #fff;
  font-weight: 800;
  font-size: 0.8rem;
  animation: bilis-badge-pulse 1.8s ease-in-out infinite;
}

.bilis-rd-combo-items {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  flex-wrap: wrap;
}

.bilis-rd-combo-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.bilis-rd-combo-item img {
  width: 88px;
  height: 88px;
  border-radius: 18px;
  object-fit: cover;
}

.bilis-rd-combo-item strong {
  max-width: 140px;
  font-size: 0.95rem;
}

.bilis-rd-combo-plus {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--bilis-primary);
}

.bilis-rd-combo-cta {
  display: flex;
  align-items: center;
  gap: 1rem;
}

/* Reviews */
.bilis-rd-reviews {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 24px;
}

.bilis-rd-reviews-summary {
  padding: 1.5rem;
  border-radius: 24px;
  background: var(--bilis-card-bg);
  border: 1px solid var(--bilis-border);
  box-shadow: var(--bilis-shadow-sm);
}

.bilis-rd-reviews-score {
  text-align: center;
  margin-bottom: 1.25rem;
}

.bilis-rd-reviews-score strong {
  display: block;
  font-size: 3.5rem;
  line-height: 1;
  color: var(--bilis-text);
}

.bilis-rd-stars {
  color: #F59E0B;
  margin: 0.35rem 0;
}

.bilis-rd-star-muted { opacity: 0.25; }

.bilis-rd-bars { display: grid; gap: 0.45rem; }

.bilis-rd-bar-row {
  display: grid;
  grid-template-columns: 2rem 1fr 2.5rem;
  gap: 0.5rem;
  align-items: center;
  font-size: 0.8rem;
  color: var(--bilis-text-secondary);
}

.bilis-rd-bar {
  height: 8px;
  border-radius: 999px;
  background: #EDE9FE;
  overflow: hidden;
}

.bilis-rd-bar i {
  display: block;
  height: 100%;
  background: var(--bilis-gradient);
  border-radius: inherit;
}

.bilis-rd-review-list { display: grid; gap: 0.85rem; }

.bilis-rd-review {
  padding: 1.15rem 1.25rem;
  border-radius: 20px;
  background: var(--bilis-card-bg);
  border: 1px solid var(--bilis-border);
}

.bilis-rd-review-head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
}

.bilis-rd-review-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--bilis-gradient);
  color: #fff;
  font-weight: 700;
  flex-shrink: 0;
}

.bilis-rd-review-head strong { display: block; font-size: 0.95rem; }

.bilis-rd-verified {
  font-size: 0.75rem;
  color: #16A34A;
}

.bilis-rd-review-rating {
  margin-left: auto;
  color: #F59E0B;
  font-size: 0.8rem;
}

.bilis-rd-review p {
  margin: 0;
  color: var(--bilis-text-secondary);
  line-height: 1.55;
}

/* About */
.bilis-rd-about {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 24px;
  padding: 1.5rem;
  border-radius: 24px;
  background: var(--bilis-card-bg);
  border: 1px solid var(--bilis-border);
}

.bilis-rd-about h2 { margin-top: 0; }

.bilis-rd-about-list {
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.65rem;
}

.bilis-rd-about-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  color: var(--bilis-text-secondary);
}

.bilis-rd-about-list i {
  color: var(--bilis-primary);
  margin-top: 0.2rem;
}

.bilis-rd-map-wrap { position: relative; }

.bilis-rd-map {
  height: 240px;
  border-radius: 20px;
  overflow: hidden;
}

.bilis-rd-map-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.65rem;
  font-weight: 600;
  font-size: 0.875rem;
}

/* Similar */
.bilis-rd-similar {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  padding-bottom: 0.35rem;
}

.bilis-rd-similar-card {
  flex: 0 0 min(260px, 75vw);
  display: flex;
  gap: 0.85rem;
  align-items: center;
  padding: 0.75rem;
  border-radius: 20px;
  background: var(--bilis-card-bg);
  border: 1px solid var(--bilis-border);
  color: inherit;
  text-decoration: none;
  box-shadow: var(--bilis-shadow-sm);
  transition: transform .2s ease;
}

.bilis-rd-similar-card:hover {
  transform: translateY(-3px);
  color: inherit;
}

.bilis-rd-similar-card img {
  width: 72px;
  height: 72px;
  border-radius: 16px;
  object-fit: cover;
}

.bilis-rd-similar-card strong {
  display: block;
  margin-bottom: 0.2rem;
}

.bilis-rd-similar-card span {
  font-size: 0.8rem;
  color: var(--bilis-text-secondary);
}

.bilis-rd-similar-card .fa-star { color: #F59E0B; }

/* Empty */
.bilis-rd-empty {
  text-align: center;
  padding: 4rem 1.5rem;
  border-radius: 24px;
  background: var(--bilis-card-bg);
  border: 1px solid var(--bilis-border);
}

.bilis-rd-empty-art { font-size: 3.5rem; margin-bottom: 0.75rem; }

/* Floating cart */
.bilis-rd-float-cart {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 1040;
  display: none;
  align-items: center;
  gap: 1rem;
  min-height: 72px;
  padding: 0.75rem 0.85rem 0.75rem 1.25rem;
  border-radius: 999px;
  background: rgba(255,255,255,.86);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(231,227,248,.95);
  box-shadow: var(--bilis-shadow-lg);
  transform: translateY(120%);
  transition: transform .35s cubic-bezier(.22,1,.36,1);
}

.bilis-rd-float-cart.is-visible {
  display: inline-flex;
  transform: translateY(0);
}

.bilis-rd-float-cart.is-bounce {
  animation: bilis-cart-bounce .55s cubic-bezier(.34,1.56,.64,1);
}

.bilis-rd-float-meta {
  display: flex;
  flex-direction: column;
  line-height: 1.25;
}

.bilis-rd-float-meta span {
  color: var(--bilis-text-secondary);
  font-size: 0.85rem;
}

.bilis-rd-float-btn {
  min-height: 48px;
  border-radius: 999px !important;
  padding-inline: 1.25rem !important;
}

/* Dark */
[data-theme="dark"] .bilis-rd-stat,
[data-theme="dark"] .bilis-rd-food,
[data-theme="dark"] .bilis-rd-combo,
[data-theme="dark"] .bilis-rd-reviews-summary,
[data-theme="dark"] .bilis-rd-review,
[data-theme="dark"] .bilis-rd-about,
[data-theme="dark"] .bilis-rd-similar-card,
[data-theme="dark"] .bilis-rd-empty {
  background: #1C1C21;
  border-color: rgba(139,92,246,.2);
}

[data-theme="dark"] .bilis-rd-sticky-inner {
  background: #1C1C21;
  border-color: rgba(139, 92, 246, 0.25);
}

[data-theme="dark"] .bilis-rd-pill {
  background: #1C1C21;
  color: #A1A1AA;
  border-color: rgba(139, 92, 246, 0.25);
}

[data-theme="dark"] .bilis-rd-pill.is-active {
  background: #7C3AED;
  border-color: #7C3AED;
  color: #fff;
}

[data-theme="dark"] .bilis-rd-search {
  background: #111114;
  border-color: rgba(139, 92, 246, 0.25);
}

[data-theme="dark"] .bilis-rd-search input { color: #fff; }

[data-theme="dark"] .bilis-rd-stat-icon {
  background: rgba(124, 58, 237, 0.18);
  color: #8B5CF6;
}

[data-theme="dark"] .bilis-rd-stat strong { color: #fff; }
[data-theme="dark"] .bilis-rd-stat span { color: #A1A1AA; }

[data-theme="dark"] .bilis-rd-bar { background: rgba(139,92,246,.2); }

[data-theme="dark"] .bilis-rd-float-cart {
  background: rgba(28,28,33,.92);
  border-color: rgba(139,92,246,.3);
  color: #fff;
}

[data-theme="dark"] .bilis-rd-hero-overlay {
  background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, rgba(0,0,0,.6) 50%, rgba(17,17,20,.88) 100%);
}

/* Responsive */
@media (max-width: 1199.98px) {
  .bilis-rd-food-grid { grid-template-columns: repeat(2, 1fr); }
  .bilis-rd-food-grid--featured { grid-template-columns: repeat(2, 1fr); }
  .bilis-rd-stats { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 991.98px) {
  .bilis-rd-hero { height: 360px; border-radius: 24px; }
  .bilis-rd-hero-card {
    left: 16px;
    right: 16px;
    bottom: 16px;
    max-width: none;
    flex-direction: column;
    align-items: flex-start;
  }
  .bilis-rd-name { font-size: 1.75rem; }
  .bilis-rd-sticky-inner { flex-direction: column; align-items: stretch; padding: 14px 16px; }
  .bilis-rd-search { width: 100%; }
  .bilis-rd-reviews,
  .bilis-rd-about { grid-template-columns: 1fr; }
  .bilis-rd-closed {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .bilis-rd-closed-icon { margin: 0 auto; }
  .bilis-rd-action span { display: none; }
  .bilis-rd-float-cart {
    left: 16px;
    right: 16px;
    bottom: 16px;
    justify-content: space-between;
  }
}

@media (max-width: 575.98px) {
  .bilis-rd-food-grid,
  .bilis-rd-food-grid--featured { grid-template-columns: 1fr; }
  .bilis-rd-hero { height: 320px; }
  .bilis-rd-logo { width: 72px; height: 72px; }
  .bilis-rd-stats { grid-template-columns: 1fr 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .bilis-rd-combo-badge,
  .bilis-rd-float-cart.is-bounce,
  .bilis-rd-hero-img {
    animation: none !important;
  }
}

/* ==========================================================================
   Customer Dashboard & Profile — Design System v3.0
   ========================================================================== */

body.account-dashboard {
  background: #F8F7FC;
}

body.account-dashboard .main-content {
  padding-top: var(--bilis-navbar-height);
}

.bilis-dash {
  padding-bottom: 96px;
}

.bilis-dash-container {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding-inline: clamp(16px, 4vw, 32px);
}

/* Banner */
.bilis-dash-banner {
  min-height: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 24px;
  background: linear-gradient(180deg, #F3E8FF 0%, #FFFFFF 100%);
  border-bottom: 1px solid rgba(109, 40, 217, 0.06);
}

.bilis-dash-title {
  margin: 0;
  text-align: center;
  font-family: var(--bilis-font-heading);
  font-weight: 700;
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  color: #1E1B2E;
  letter-spacing: -0.02em;
}

/* Grid */
.bilis-dash-grid {
  display: grid;
  grid-template-columns: 320px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

/* Sidebar */
.bilis-dash-sidebar {
  background: #fff;
  border-radius: 24px;
  padding: 1.25rem;
  box-shadow: 0 10px 30px rgba(30, 27, 46, 0.06);
  border: 1px solid rgba(231, 227, 248, 0.9);
  position: sticky;
  top: calc(var(--bilis-navbar-height) + 16px);
}

.bilis-dash-user {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.35rem 0.35rem 1.15rem;
  margin-bottom: 0.65rem;
  border-bottom: 1px solid #EEEAFB;
}

.bilis-dash-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.bilis-dash-avatar--initial {
  display: grid;
  place-items: center;
  background: var(--bilis-gradient);
  color: #fff;
  font-weight: 700;
  font-size: 1.25rem;
}

.bilis-dash-user-meta strong {
  display: block;
  color: #1E1B2E;
  font-size: 1rem;
  line-height: 1.3;
}

.bilis-dash-user-meta span {
  color: #6B6880;
  font-size: 0.85rem;
}

.bilis-dash-nav {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.bilis-dash-nav-link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-height: 48px;
  padding: 0.65rem 0.9rem;
  border-radius: 14px;
  color: #6B6880;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease;
}

.bilis-dash-nav-link i {
  width: 1.15rem;
  text-align: center;
  color: inherit;
}

.bilis-dash-nav-link:hover {
  background: #F3E8FF;
  color: #6D28D9;
}

.bilis-dash-nav-link.is-active {
  background: #F3E8FF;
  color: #6D28D9;
}

/* Main canvas / panel */
.bilis-dash-canvas {
  min-width: 0;
}

.bilis-dash-panel {
  background: #fff;
  border-radius: 24px;
  padding: clamp(1.5rem, 3vw, 3rem);
  box-shadow: 0 10px 30px rgba(30, 27, 46, 0.06);
  border: 1px solid rgba(231, 227, 248, 0.9);
  min-height: 360px;
}

.bilis-dash-panel--stack {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.bilis-dash-panel-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.bilis-dash-panel--stack .bilis-dash-panel-head {
  margin-bottom: 0;
}

.bilis-dash-panel-title {
  margin: 0 0 0.2rem;
  font-size: 1.25rem;
  color: #1E1B2E;
}

.bilis-dash-panel-sub {
  margin: 0;
  color: #6B6880;
  font-size: 0.925rem;
}

.bilis-dash-link {
  color: #6D28D9;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

.bilis-dash-link:hover { color: #5B21B6; }

/* Empty */
.bilis-dash-empty {
  text-align: center;
  padding: 3.5rem 1rem;
  max-width: 420px;
  margin: 0 auto;
}

.bilis-dash-empty--compact {
  padding: 2rem 0.5rem;
}

.bilis-dash-empty-icon {
  width: 72px;
  height: 72px;
  margin: 0 auto 1rem;
  border-radius: 20px;
  display: grid;
  place-items: center;
  background: #F3E8FF;
  color: #6D28D9;
  font-size: 1.6rem;
}

.bilis-dash-empty h2 {
  margin: 0 0 0.4rem;
  font-size: 1.35rem;
  color: #1E1B2E;
}

.bilis-dash-empty p {
  margin: 0 0 1.25rem;
  color: #6B6880;
}

/* Orders */
.bilis-dash-orders {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.bilis-dash-order {
  display: flex;
  gap: 1rem;
  padding: 1.1rem;
  border-radius: 20px;
  border: 1px solid #EEEAFB;
  background: #fff;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.bilis-dash-order:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 36px rgba(109, 40, 217, 0.1);
}

.bilis-dash-order-media img {
  width: 72px;
  height: 72px;
  border-radius: 16px;
  object-fit: cover;
  background: #F8F7FC;
}

.bilis-dash-order-body {
  flex: 1;
  min-width: 0;
}

.bilis-dash-order-top {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 0.75rem;
}

.bilis-dash-order-resto {
  margin: 0 0 0.25rem;
  font-size: 1.05rem;
  color: #1E1B2E;
}

.bilis-dash-order-meta {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  color: #6B6880;
  font-size: 0.875rem;
}

.bilis-dash-order-aside {
  text-align: right;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.35rem;
}

.bilis-dash-order-total {
  color: #6D28D9;
  font-size: 1.1rem;
}

.bilis-dash-order-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem;
}

.bilis-dash-text-btn {
  color: #6D28D9;
  font-weight: 700;
  font-size: 0.9rem;
  text-decoration: none;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  padding-inline: 0.5rem;
}

.bilis-dash-status {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0.2rem 0.7rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  background: #F3E8FF;
  color: #6D28D9;
}

.bilis-dash-status--success { background: #DCFCE7; color: #15803D; }
.bilis-dash-status--info { background: #E0E7FF; color: #3730A3; }
.bilis-dash-status--active { background: #F3E8FF; color: #6D28D9; }
.bilis-dash-status--pending { background: #FEF3C7; color: #B45309; }
.bilis-dash-status--muted { background: #F3F4F6; color: #6B7280; }

/* Shared list / forms */
.bilis-dash-list {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.bilis-dash-list-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.1rem;
  border-radius: 16px;
  border: 1px solid #EEEAFB;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.bilis-dash-list-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(109, 40, 217, 0.08);
}

.bilis-dash-list-item.is-unread {
  background: #Faf5ff;
  border-color: rgba(109, 40, 217, 0.2);
}

.bilis-dash-list-item--block {
  align-items: flex-start;
}

.bilis-dash-wallet {
  text-align: center;
  padding: 1.75rem 1rem;
  border-radius: 20px;
  background: linear-gradient(180deg, #F3E8FF 0%, #FFFFFF 100%);
  border: 1px solid #EEEAFB;
}

.bilis-dash-wallet-bal {
  display: block;
  margin-top: 0.35rem;
  font-size: clamp(2rem, 4vw, 2.75rem);
  color: #6D28D9;
  letter-spacing: -0.03em;
}

.bilis-dash-fav-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.85rem;
}

.bilis-dash-fav-card {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  padding: 1rem 1.1rem;
  border-radius: 16px;
  border: 1px solid #EEEAFB;
  background: #fff;
  color: #1E1B2E;
  text-decoration: none;
  font-weight: 600;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.bilis-dash-fav-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(109, 40, 217, 0.1);
  color: #6D28D9;
}

.bilis-dash-label {
  display: block;
  margin-bottom: 0.4rem;
  font-weight: 600;
  font-size: 0.875rem;
  color: #1E1B2E;
}

.bilis-dash-input {
  width: 100%;
  min-height: 48px;
  padding: 0.7rem 0.95rem;
  border-radius: 14px;
  border: 1px solid #E7E3F8;
  background: #F8F7FC;
  color: #1E1B2E;
  font: 500 0.95rem var(--bilis-font-body);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.bilis-dash-input:focus {
  outline: 0;
  border-color: #8B5CF6;
  box-shadow: 0 0 0 4px rgba(139, 92, 246, 0.15);
  background: #fff;
}

/* Floating cart */
.bilis-dash-float-cart {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 1040;
  display: none;
  align-items: center;
  gap: 0.75rem;
  min-height: 64px;
  padding: 0.65rem 1.1rem 0.65rem 0.65rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.86);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(231, 227, 248, 0.95);
  box-shadow: 0 18px 40px rgba(109, 40, 217, 0.16);
  color: #1E1B2E;
  text-decoration: none;
}

.bilis-dash-float-cart.is-visible { display: inline-flex; }

.bilis-dash-float-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--bilis-gradient);
  color: #fff;
}

.bilis-dash-float-meta {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}

.bilis-dash-float-meta small { color: #6B6880; }

/* Dark */
[data-theme="dark"] body.account-dashboard { background: #111114; }

[data-theme="dark"] .bilis-dash-banner {
  background: linear-gradient(180deg, rgba(139, 92, 246, 0.18) 0%, #111114 100%);
  border-bottom-color: rgba(139, 92, 246, 0.15);
}

[data-theme="dark"] .bilis-dash-title,
[data-theme="dark"] .bilis-dash-panel-title,
[data-theme="dark"] .bilis-dash-order-resto,
[data-theme="dark"] .bilis-dash-user-meta strong,
[data-theme="dark"] .bilis-dash-empty h2,
[data-theme="dark"] .bilis-dash-label {
  color: #fff;
}

[data-theme="dark"] .bilis-dash-sidebar,
[data-theme="dark"] .bilis-dash-panel,
[data-theme="dark"] .bilis-dash-order,
[data-theme="dark"] .bilis-dash-list-item,
[data-theme="dark"] .bilis-dash-fav-card {
  background: #1C1C21;
  border-color: rgba(139, 92, 246, 0.2);
  color: #fff;
}

[data-theme="dark"] .bilis-dash-nav-link { color: #A1A1AA; }

[data-theme="dark"] .bilis-dash-nav-link:hover,
[data-theme="dark"] .bilis-dash-nav-link.is-active {
  background: rgba(139, 92, 246, 0.18);
  color: #C4B5FD;
}

[data-theme="dark"] .bilis-dash-input {
  background: #111114;
  border-color: rgba(139, 92, 246, 0.25);
  color: #fff;
}

[data-theme="dark"] .bilis-dash-wallet {
  background: linear-gradient(180deg, rgba(139, 92, 246, 0.2) 0%, #1C1C21 100%);
}

[data-theme="dark"] .bilis-dash-float-cart {
  background: rgba(28, 28, 33, 0.92);
  border-color: rgba(139, 92, 246, 0.3);
  color: #fff;
}

/* Responsive */
@media (max-width: 991.98px) {
  .bilis-dash-grid { grid-template-columns: 1fr; }
  .bilis-dash-sidebar { position: static; }
  .bilis-dash-nav {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
  }
  .bilis-dash-float-cart {
    left: 16px;
    right: 16px;
    bottom: 16px;
    justify-content: center;
  }
}

@media (max-width: 575.98px) {
  .bilis-dash-fav-grid { grid-template-columns: 1fr; }
  .bilis-dash-order { flex-direction: column; }
  .bilis-dash-order-aside { align-items: flex-start; text-align: left; }
  .bilis-dash-nav { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Bilis Velocity Auth — login / create account (MD redesign)
   Soft minimal #FAFAFA + electric violet energy
   ========================================================================== */
:root {
  --bilis-electric: #6366F1;
  --bilis-electric-end: #7C3AED;
  --bilis-auth-bg: #FAFAFA;
  --bilis-auth-gradient: linear-gradient(135deg, #6366F1 0%, #7C3AED 55%, #5B21B6 100%);
  --bilis-auth-mesh:
    radial-gradient(ellipse at 12% 8%, rgba(99, 102, 241, 0.22) 0%, transparent 52%),
    radial-gradient(ellipse at 88% 18%, rgba(124, 58, 237, 0.18) 0%, transparent 48%),
    radial-gradient(ellipse at 70% 92%, rgba(196, 181, 253, 0.28) 0%, transparent 50%);
}

.bilis-auth-wrapper.bilis-auth-velocity {
  position: relative;
  isolation: isolate;
  min-height: calc(100vh - var(--bilis-navbar-height, 72px));
  background: var(--bilis-auth-mesh), var(--bilis-auth-bg);
  overflow: hidden;
}

.bilis-auth-wrapper.bilis-auth-velocity::before,
.bilis-auth-wrapper.bilis-auth-velocity::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  filter: blur(2px);
  z-index: 0;
  pointer-events: none;
  animation: bilisAuthDrift 14s ease-in-out infinite alternate;
}

.bilis-auth-wrapper.bilis-auth-velocity::before {
  width: min(70vw, 480px);
  height: min(70vw, 480px);
  top: -12%;
  left: -10%;
  background: radial-gradient(circle, rgba(99,102,241,.28), transparent 70%);
}

.bilis-auth-wrapper.bilis-auth-velocity::after {
  width: min(60vw, 420px);
  height: min(60vw, 420px);
  bottom: -8%;
  right: -12%;
  background: radial-gradient(circle, rgba(124,58,237,.22), transparent 70%);
  animation-duration: 18s;
  animation-direction: alternate-reverse;
}

@keyframes bilisAuthDrift {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to { transform: translate3d(24px, -30px, 0) scale(1.06); }
}

.bilis-auth-velocity .bilis-auth-card {
  position: relative;
  z-index: 1;
  max-width: 440px;
  padding: 2.25rem 2rem;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(99, 102, 241, 0.14);
  box-shadow: 0 24px 60px rgba(99, 102, 241, 0.12);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-radius: 28px;
}

.bilis-auth-velocity .bilis-auth-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.5rem;
  text-decoration: none;
}

.bilis-auth-velocity .bilis-auth-brand-logo {
  width: 72px;
  height: 72px;
  border-radius: 18px;
  object-fit: cover;
  box-shadow: 0 12px 28px rgba(99, 102, 241, 0.22);
}

.bilis-auth-velocity .bilis-auth-title {
  font-family: var(--bilis-font-heading);
  font-weight: 800;
  font-size: clamp(1.75rem, 4vw, 2rem);
  letter-spacing: -0.03em;
  line-height: 1.15;
  color: var(--bilis-dark);
  margin: 0 0 0.4rem;
  text-align: center;
}

.bilis-auth-velocity .bilis-auth-sub {
  color: #66667A;
  font-size: 0.95rem;
  margin: 0 0 1.75rem;
  text-align: center;
}

.bilis-auth-velocity .bilis-auth-logo { display: none; }

.bilis-auth-velocity .bilis-glass-field {
  position: relative;
  margin-bottom: 1rem;
}

.bilis-auth-velocity .bilis-glass-field .bilis-form-control {
  min-height: 64px;
  padding: 1.45rem 3rem 0.65rem 2.85rem;
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(99, 102, 241, 0.12);
  border-radius: 18px;
  box-shadow: none;
  transition: transform .18s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
}

.bilis-auth-velocity .bilis-glass-field .bilis-form-control:focus {
  outline: none;
  transform: scale(1.02);
  background: rgba(255, 255, 255, 0.94);
  border-color: rgba(99, 102, 241, 0.4);
  box-shadow: 0 10px 28px rgba(99, 102, 241, 0.18);
}

.bilis-auth-velocity .bilis-glass-field .bilis-glass-icon {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: #66667A;
  z-index: 2;
  pointer-events: none;
}

.bilis-auth-velocity .bilis-glass-field.is-focused .bilis-glass-icon {
  color: var(--bilis-electric-end);
}

.bilis-auth-velocity .bilis-glass-field .bilis-float-label {
  position: absolute;
  left: 2.85rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.95rem;
  color: #66667A;
  pointer-events: none;
  transition: top .18s ease, font-size .18s ease, color .18s ease, transform .18s ease;
  z-index: 2;
}

/* CSS-first float (no JS required): placeholder=" " on inputs */
.bilis-auth-velocity .bilis-glass-field:has(.bilis-form-control:focus) .bilis-float-label,
.bilis-auth-velocity .bilis-glass-field:has(.bilis-form-control:not(:placeholder-shown)) .bilis-float-label,
.bilis-auth-velocity .bilis-glass-field.is-active .bilis-float-label,
.bilis-auth-velocity .bilis-glass-field.is-focused .bilis-float-label {
  top: 0.7rem;
  transform: none;
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--bilis-electric-end);
}

.bilis-auth-velocity .bilis-glass-field .bilis-form-control::placeholder {
  color: transparent;
  opacity: 0;
}

.bilis-auth-velocity .bilis-glass-field .bilis-velocity-track {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 0;
  height: 2px;
  overflow: hidden;
  border-radius: 2px;
  opacity: 0;
}

.bilis-auth-velocity .bilis-glass-field.is-focused .bilis-velocity-track {
  opacity: 1;
}

.bilis-auth-velocity .bilis-glass-field .bilis-velocity-bar {
  width: 30%;
  height: 100%;
  background: var(--bilis-auth-gradient);
  border-radius: 2px;
  animation: bilisVelocityPulse 1.1s ease-in-out infinite;
}

@keyframes bilisVelocityPulse {
  from { transform: translateX(-20%); }
  to { transform: translateX(280%); }
}

.bilis-auth-velocity .bilis-password-toggle {
  right: 14px;
  color: #66667A;
}

.bilis-auth-velocity .bilis-auth-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 0.25rem 0 1.25rem;
}

.bilis-auth-velocity .bilis-auth-meta a {
  font-weight: 600;
  font-size: 0.85rem;
  color: var(--bilis-electric-end);
  text-decoration: none;
}

.bilis-auth-velocity .btn-bilis-velocity {
  position: relative;
  width: 100%;
  height: 56px;
  border: 0;
  border-radius: 999px;
  background: var(--bilis-auth-gradient);
  color: #fff;
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: 0.01em;
  box-shadow: 0 14px 32px rgba(99, 102, 241, 0.35);
  transition: transform .15s ease, box-shadow .2s ease, width .35s cubic-bezier(.2,.8,.2,1), border-radius .35s ease;
  overflow: hidden;
}

.bilis-auth-velocity .btn-bilis-velocity:hover {
  transform: translateY(-1px) scale(1.01);
  box-shadow: 0 18px 40px rgba(99, 102, 241, 0.42);
  color: #fff;
}

.bilis-auth-velocity .btn-bilis-velocity.is-loading {
  width: 56px;
  margin-inline: auto;
  border-radius: 50%;
  pointer-events: none;
}

.bilis-auth-velocity .btn-bilis-velocity.is-loading .btn-label {
  opacity: 0;
}

.bilis-auth-velocity .btn-bilis-velocity .btn-spinner {
  position: absolute;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
}

.bilis-auth-velocity .btn-bilis-velocity.is-loading .btn-spinner {
  display: flex;
}

.bilis-auth-velocity .btn-spinner::after {
  content: "";
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 2.5px solid rgba(255,255,255,.35);
  border-top-color: #fff;
  animation: bilisSpinFast .55s linear infinite;
}

@keyframes bilisSpinFast {
  to { transform: rotate(360deg); }
}

.bilis-auth-velocity .bilis-auth-or {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin: 1.35rem 0;
  color: #B6B6C5;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  font-weight: 600;
}

.bilis-auth-velocity .bilis-auth-or::before,
.bilis-auth-velocity .bilis-auth-or::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #ECECF1;
}

.bilis-auth-velocity .bilis-oauth-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem;
}

.bilis-auth-velocity .bilis-oauth-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  height: 48px;
  border-radius: 999px;
  border: 1px solid rgba(30, 27, 46, 0.08);
  background: rgba(255,255,255,0.75);
  color: var(--bilis-dark);
  font-weight: 600;
  font-size: 0.85rem;
  text-decoration: none;
  transition: transform .15s ease, box-shadow .2s ease;
}

.bilis-auth-velocity .bilis-oauth-chip:hover {
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(30,27,46,0.08);
  color: var(--bilis-dark);
}

.bilis-auth-velocity .bilis-form-footer {
  margin-top: 1.5rem;
  color: #66667A;
}

.bilis-auth-velocity .bilis-form-footer a {
  color: var(--bilis-electric-end);
  font-weight: 600;
  text-decoration: none;
}

.bilis-auth-velocity .bilis-passkey-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  margin: 0.85rem auto 0;
  padding: 0.55rem 1rem;
  border-radius: 999px;
  background: rgba(99, 102, 241, 0.08);
  border: 1px solid rgba(99, 102, 241, 0.18);
  color: var(--bilis-electric-end);
  font-weight: 600;
  font-size: 0.85rem;
  text-decoration: none;
}

@media (max-width: 575.98px) {
  .bilis-auth-velocity .bilis-auth-card {
    padding: 1.75rem 1.25rem;
    border-radius: 22px;
  }
  .bilis-auth-velocity .bilis-oauth-row {
    grid-template-columns: 1fr;
  }
}
