/* ============================================================
   Visit Hickory — Custom Styles
   ============================================================ */

:root {
  --vh-primary:    #1d4ed8;
  --vh-primary-dk: #1e3a8a;
  --vh-accent:     #f59e0b;
  --vh-dark:       #1e293b;
  --vh-light-bg:   #f8fafc;
  --card-radius:   .75rem;
  --card-shadow:   0 1px 3px rgba(0,0,0,.08), 0 4px 12px rgba(0,0,0,.06);
}

/* Base */
body {
  background: var(--vh-light-bg);
  color: #334155;
  font-size: .9375rem;
}

/* Site header */
.site-header {
  z-index: 1025;
}
.sidebar-sticky {
  position: sticky;
  top: 80px;
  z-index: 100;
}
.site-header .navbar {
  background: var(--vh-primary-dk) !important;
}
.site-header .navbar-brand {
  font-size: 1.25rem;
  letter-spacing: -.02em;
}

/* ============================================================
   Business Cards
   ============================================================ */
.business-card {
  border: 1px solid #e2e8f0;
  border-radius: var(--card-radius);
  box-shadow: var(--card-shadow);
  transition: box-shadow .18s ease, transform .18s ease;
  overflow: hidden;
  position: relative;
}
.business-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,.12);
  transform: translateY(-2px);
}

.business-card__img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  background: #f1f5f9;
}

/* Featured ribbon */
.featured-ribbon {
  position: absolute;
  top: 12px;
  right: -28px;
  z-index: 2;
  width: 110px;
  transform: rotate(45deg);
  background: var(--vh-accent);
  text-align: center;
  overflow: hidden;
}
.featured-ribbon span {
  display: block;
  font-size: .65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  padding: 3px 0;
  color: #1e293b;
}

.category-badge {
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .04em;
}

/* Ad unit placeholder */
.ad-unit {
  border: 2px dashed #cbd5e1;
  min-height: 200px;
  border-radius: var(--card-radius);
}

/* ============================================================
   Hero section
   ============================================================ */
.site-hero {
  background: linear-gradient(135deg, var(--vh-primary-dk) 0%, var(--vh-primary) 100%);
  color: #fff;
  padding: 4rem 0;
}

/* ============================================================
   Footer
   ============================================================ */
.site-footer {
  background: var(--vh-dark) !important;
}

/* ============================================================
   Listing detail page
   ============================================================ */
.listing-logo {
  width: 96px;
  height: 96px;
  object-fit: cover;
  border-radius: .5rem;
}

/* ============================================================
   Admin sidebar active link underline fix
   ============================================================ */
.admin-sidebar .nav-link.active {
  border-radius: .375rem;
}

/* ============================================================
   Utilities
   ============================================================ */
.card-img-link {
  display: block;
  overflow: hidden;
}
.card-img-link img {
  transition: transform .25s ease;
}
.card-img-link:hover img {
  transform: scale(1.03);
}

/* Bootstrap override: stretched-link should not escape card */
.business-card { isolation: isolate; }

/* Pagination */
.page-link {
  border-radius: .375rem !important;
  margin: 0 2px;
}

/* Form focus ring */
.form-control:focus,
.form-select:focus {
  border-color: var(--vh-primary);
  box-shadow: 0 0 0 .2rem rgba(29,78,216,.15);
}

/* ============================================================
   Responsive tweaks
   ============================================================ */
@media (max-width: 767.98px) {
  .business-card__img { height: 160px; }
  .navbar-brand { font-size: 1.1rem; }
}
