:root {
  --su-primary: #ff7a00;
  --su-primary-dark: #d86200;
  --su-dark: #1c1c1e;
  --su-radius: 16px;
}

body {
  font-family: 'Segoe UI', system-ui, sans-serif;
  background: #fafafa;
  transition: background .3s, color .3s;
}

/* ---------- Navbar ---------- */
.navbar-custom {
  background: rgba(28, 28, 30, 0.9);
  backdrop-filter: blur(8px);
  transition: background .3s;
}
.navbar-brand { font-size: 1.4rem; }

/* ---------- Hero ---------- */
.hero {
  min-height: 70vh;
  position: relative;
  background: linear-gradient(rgba(0,0,0,.55), rgba(0,0,0,.55)),
              url('https://images.unsplash.com/photo-1523050854058-8df90110c9f1?auto=format&fit=crop&w=1600&q=80') center/cover no-repeat;
}
.hero-overlay { position: absolute; inset: 0; }
.hero h1 { letter-spacing: 2px; text-shadow: 0 2px 10px rgba(0,0,0,.4); }

.search-box {
  max-width: 520px;
  position: relative;
  background: #fff;
  border-radius: 50px;
  padding: 10px 20px;
  display: flex;
  align-items: center;
  gap: 10px;
  box-shadow: 0 8px 24px rgba(0,0,0,.25);
}
.search-box i { color: var(--su-primary); }
.search-box input {
  border: none;
  outline: none;
  box-shadow: none;
  flex: 1;
}

/* ---------- Categorías ---------- */
.btn-cat {
  border-radius: 50px;
  border: 1px solid #ddd;
  background: #fff;
  padding: 8px 18px;
  font-size: .9rem;
  transition: all .2s;
}
.btn-cat:hover, .btn-cat.active {
  background: var(--su-primary);
  border-color: var(--su-primary);
  color: #fff;
}

/* ---------- Section title ---------- */
.section-title {
  font-weight: 700;
  position: relative;
}

/* ---------- Card local ---------- */
.local-card {
  background: #fff;
  border-radius: var(--su-radius);
  overflow: hidden;
  box-shadow: 0 6px 20px rgba(0,0,0,.08);
  transition: transform .25s, box-shadow .25s;
  height: 100%;
}
.local-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 14px 30px rgba(0,0,0,.15);
}
.local-card img {
  height: 190px;
  width: 100%;
  object-fit: cover;
}
.local-card .badge-estado {
  position: absolute;
  top: 12px; left: 12px;
  font-size: .75rem;
}
.local-card .card-img-wrapper { position: relative; }
.local-card .card-body { padding: 1.1rem; }
.local-card .precio { color: var(--su-primary); font-weight: 700; }
.local-card .rating { color: #f5b301; font-size: .85rem; }

/* ---------- Modal menu items ---------- */
.menu-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid #eee;
}
.menu-item:last-child { border-bottom: none; }
.menu-item .precio { color: var(--su-primary); font-weight: 700; }

/* ---------- Footer ---------- */
footer { background: var(--su-dark); }

/* ---------- Dark mode ---------- */
body.dark {
  background: #121214;
  color: #eee;
}
body.dark .bg-body-tertiary { background: #1c1c1e !important; }
body.dark .local-card, body.dark .search-box, body.dark .btn-cat { background: #1f1f22; color: #eee; }
body.dark .btn-cat { border-color: #333; }
body.dark .modal-content { background: #1f1f22; color: #eee; }

@media (max-width: 576px) {
  .hero h1 { font-size: 2rem; }
}
