/* ============================================
   Best Mechanic Near Me - Directorist CSS Override
   Design System: Navy/Blue/Amber
   ============================================ */

:root {
  --bmn-navy: #1a2b4a;
  --bmn-navy-deep: #0f172a;
  --bmn-blue: #2563eb;
  --bmn-blue-hover: #1d4ed8;
  --bmn-blue-light: #dbeafe;
  --bmn-blue-soft: rgba(37,99,235,0.08);
  --bmn-amber: #f59e0b;
  --bmn-amber-light: #fef3c7;
  --bmn-green: #16a34a;
  --bmn-green-light: #dcfce7;
  --bmn-bg-light: #f8fafc;
  --bmn-slate: #64748b;
  --bmn-slate-light: #94a3b8;
  --bmn-white: #ffffff;
  --bmn-border: #e2e8f0;
  --bmn-dark: #0f172a;
  --bmn-font-heading: 'Plus Jakarta Sans', sans-serif;
  --bmn-font-body: 'DM Sans', sans-serif;
}

/* ===== GLOBAL TYPOGRAPHY ===== */
body,
.directorist-archive-contents,
.directorist-single-contents {
  font-family: var(--bmn-font-body) !important;
  color: var(--bmn-dark);
  -webkit-font-smoothing: antialiased;
}

/* ===== PAGE HERO / HEADER OVERRIDE ===== */
.entry-hero.page-hero-section {
  background: linear-gradient(135deg, var(--bmn-navy) 0%, #243b5e 100%) !important;
  padding: 48px 0 56px !important;
}

.entry-hero .entry-title {
  font-family: var(--bmn-font-heading) !important;
  font-weight: 800 !important;
  font-size: clamp(28px, 4vw, 42px) !important;
  color: var(--bmn-white) !important;
  letter-spacing: -0.03em !important;
}

/* ===== SEARCH FORM ===== */
.directorist-search-form {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.directorist-search-form .directorist-form-element {
  border: 2px solid var(--bmn-border) !important;
  border-radius: 12px !important;
  padding: 14px 18px !important;
  font-family: var(--bmn-font-body) !important;
  font-size: 15px !important;
  background: var(--bmn-white) !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
}

.directorist-search-form .directorist-form-element:focus {
  border-color: var(--bmn-blue) !important;
  box-shadow: 0 0 0 3px rgba(37,99,235,0.1) !important;
  outline: none !important;
}

.directorist-search-form button[type="submit"],
.directorist-btn-primary,
.directorist-btn.directorist-btn-primary {
  background: var(--bmn-blue) !important;
  color: var(--bmn-white) !important;
  border: none !important;
  border-radius: 10px !important;
  padding: 12px 24px !important;
  font-family: var(--bmn-font-heading) !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  transition: all 0.2s !important;
  cursor: pointer !important;
}

.directorist-btn-primary:hover,
.directorist-btn.directorist-btn-primary:hover {
  background: var(--bmn-blue-hover) !important;
  transform: translateY(-1px) !important;
}

/* ===== LISTING CARDS (GRID VIEW) ===== */
.directorist-archive-items {
  gap: 20px !important;
}

.directorist-listing-single,
.directorist-listing-card {
  background: var(--bmn-white) !important;
  border: 1px solid var(--bmn-border) !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  transition: all 0.25s !important;
  box-shadow: none !important;
}

.directorist-listing-single:hover,
.directorist-listing-card:hover {
  border-color: var(--bmn-blue) !important;
  box-shadow: 0 8px 32px rgba(26,43,74,0.08) !important;
  transform: translateY(-2px) !important;
}

/* Listing card content area */
.directorist-listing-card__body,
.directorist-listing-single__content {
  padding: 24px !important;
}

/* Listing title */
.directorist-listing-card__body .directorist-listing-title a,
.directorist-listing-title a,
.directorist-listing-card__title a {
  font-family: var(--bmn-font-heading) !important;
  font-weight: 700 !important;
  font-size: 18px !important;
  color: var(--bmn-navy) !important;
  text-decoration: none !important;
  letter-spacing: -0.02em !important;
  transition: color 0.2s !important;
}

.directorist-listing-title a:hover,
.directorist-listing-card__title a:hover {
  color: var(--bmn-blue) !important;
}

/* Listing category tags */
.directorist-listing-category span,
.directorist-listing-card__category a,
.directorist-badge {
  font-family: var(--bmn-font-body) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  padding: 4px 10px !important;
  border-radius: 6px !important;
  background: var(--bmn-blue-soft) !important;
  color: var(--bmn-blue) !important;
  border: none !important;
}

/* Listing meta (address, phone) */
.directorist-listing-card__info,
.directorist-listing-single__info,
.directorist-listing-meta {
  font-size: 14px !important;
  color: var(--bmn-slate) !important;
}

.directorist-listing-card__info .directorist-icon-mask,
.directorist-listing-single__info .directorist-icon-mask {
  color: var(--bmn-slate-light) !important;
}

/* ===== STAR RATINGS ===== */
.directorist-icon-mask.star-filled,
.directorist-rating .directorist-icon-mask {
  color: var(--bmn-amber) !important;
}

.directorist-rating__count {
  font-family: var(--bmn-font-heading) !important;
  font-weight: 700 !important;
  color: var(--bmn-dark) !important;
}

/* ===== HEADER BAR (sort, filter, view toggles) ===== */
.directorist-header-bar {
  background: var(--bmn-white) !important;
  border: 1px solid var(--bmn-border) !important;
  border-radius: 12px !important;
  padding: 14px 20px !important;
  margin-bottom: 24px !important;
}

.directorist-listings-header {
  font-family: var(--bmn-font-body) !important;
  color: var(--bmn-slate) !important;
  font-size: 14px !important;
}

.directorist-dropdown__toggle {
  border: 1.5px solid var(--bmn-border) !important;
  border-radius: 8px !important;
  font-family: var(--bmn-font-body) !important;
  font-size: 13px !important;
  color: var(--bmn-dark) !important;
  background: var(--bmn-white) !important;
}

.directorist-dropdown__toggle:hover {
  border-color: var(--bmn-blue) !important;
}

/* ===== ADVANCED FILTER PANEL ===== */
.directorist-advanced-filter__advanced {
  background: var(--bmn-bg-light) !important;
  border: 1px solid var(--bmn-border) !important;
  border-radius: 12px !important;
  padding: 24px !important;
  margin-bottom: 24px !important;
}

.directorist-advanced-filter__title {
  font-family: var(--bmn-font-heading) !important;
  font-weight: 700 !important;
  color: var(--bmn-navy) !important;
}

/* ===== SINGLE LISTING PAGE ===== */
.directorist-single-contents {
  background: var(--bmn-bg-light) !important;
}

.directorist-single-contents .directorist-card {
  background: var(--bmn-white) !important;
  border: 1px solid var(--bmn-border) !important;
  border-radius: 16px !important;
  box-shadow: none !important;
  margin-bottom: 24px !important;
}

.directorist-single-contents .directorist-card__header {
  font-family: var(--bmn-font-heading) !important;
  font-weight: 700 !important;
  color: var(--bmn-navy) !important;
  border-bottom: 1px solid var(--bmn-border) !important;
}

/* Single listing title */
.directorist-single-info .directorist-listing-title,
.directorist-single-header__title {
  font-family: var(--bmn-font-heading) !important;
  font-weight: 800 !important;
  font-size: clamp(26px, 3.5vw, 36px) !important;
  color: var(--bmn-navy) !important;
  letter-spacing: -0.03em !important;
}

/* ===== SIDEBAR ===== */
.directorist-single-contents .directorist-sidebar .directorist-card {
  border-radius: 16px !important;
}

.directorist-single-info__value a {
  color: var(--bmn-blue) !important;
  text-decoration: none !important;
}

.directorist-single-info__value a:hover {
  text-decoration: underline !important;
}

/* ===== PAGINATION ===== */
.directorist-pagination .page-numbers {
  font-family: var(--bmn-font-heading) !important;
  font-weight: 600 !important;
  border-radius: 8px !important;
  border: 1.5px solid var(--bmn-border) !important;
  color: var(--bmn-dark) !important;
  background: var(--bmn-white) !important;
  transition: all 0.2s !important;
  padding: 8px 14px !important;
}

.directorist-pagination .page-numbers.current,
.directorist-pagination .page-numbers:hover {
  background: var(--bmn-blue) !important;
  color: var(--bmn-white) !important;
  border-color: var(--bmn-blue) !important;
}

/* ===== "NO LISTINGS FOUND" ===== */
.directorist-archive-notfound {
  text-align: center !important;
  padding: 60px 20px !important;
  color: var(--bmn-slate) !important;
  font-size: 16px !important;
}

/* ===== CLAIM LISTING BUTTON ===== */
.directorist-btn-claim,
a[href*="claim"] {
  background: transparent !important;
  color: var(--bmn-blue) !important;
  border: 1.5px solid var(--bmn-blue) !important;
  border-radius: 8px !important;
  padding: 8px 16px !important;
  font-family: var(--bmn-font-heading) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  transition: all 0.2s !important;
}

.directorist-btn-claim:hover,
a[href*="claim"]:hover {
  background: var(--bmn-blue) !important;
  color: var(--bmn-white) !important;
}

/* ===== BREADCRUMBS ===== */
.directorist-breadcrumb,
.rank-math-breadcrumb {
  font-size: 13px !important;
  color: var(--bmn-slate) !important;
  padding: 14px 0 !important;
}

.directorist-breadcrumb a,
.rank-math-breadcrumb a {
  color: var(--bmn-slate) !important;
  text-decoration: none !important;
}

.directorist-breadcrumb a:hover,
.rank-math-breadcrumb a:hover {
  color: var(--bmn-blue) !important;
}

/* ===== LOCATION/STATE PAGES ===== */
.directorist-location-listing .directorist-archive-items {
  gap: 16px !important;
}

/* ===== DASHBOARD (for shop owners) ===== */
.directorist-dashboard {
  font-family: var(--bmn-font-body) !important;
}

.directorist-dashboard__nav a {
  font-family: var(--bmn-font-heading) !important;
  font-weight: 600 !important;
  color: var(--bmn-slate) !important;
  transition: color 0.2s !important;
}

.directorist-dashboard__nav a:hover,
.directorist-dashboard__nav a.active {
  color: var(--bmn-blue) !important;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 768px) {
  .directorist-listing-card__body,
  .directorist-listing-single__content {
    padding: 18px !important;
  }

  .directorist-listing-title a {
    font-size: 16px !important;
  }

  .directorist-header-bar {
    padding: 10px 14px !important;
  }

  .directorist-advanced-filter__advanced {
    padding: 16px !important;
  }
}

/* ===== HIDE DIRECTORIST DEFAULT ELEMENTS WE DON'T NEED ===== */
.directorist-listing-card__img-placeholder {
  display: none !important;
}

/* ===== SMOOTH TRANSITIONS ===== */
.directorist-listing-single,
.directorist-listing-card,
.directorist-btn,
.directorist-form-element,
.directorist-dropdown__toggle,
.page-numbers {
  transition: all 0.2s ease !important;
}


/* ===== FIX: Header nav link visibility ===== */
.site-header .header-navigation .menu > li > a,
.site-header .header-navigation a,
.site-header #primary-navigation a,
.site-header .primary-menu-container > ul > li > a,
header .menu-item a,
#masthead a:not(.site-title a):not(.custom-logo-link) {
  color: #cbd5e1 !important;
}
.site-header .header-navigation .menu > li > a:hover,
.site-header .header-navigation a:hover,
.site-header #primary-navigation a:hover,
header .menu-item a:hover {
  color: #ffffff !important;
}

/* ===== FIX: Footer text and link visibility ===== */
.site-footer,
.site-footer .footer-widget-area,
.site-footer .site-footer-bottom-wrap,
.site-footer .footer-html,
.site-footer .site-info,
footer .site-info,
footer.site-footer {
  background: #0f172a !important;
}
.site-footer .footer-html,
.site-footer .footer-html *,
.site-footer .site-info,
.site-footer .site-info *,
.site-footer p,
.site-footer span,
footer .site-info * {
  color: #94a3b8 !important;
}
.site-footer a,
.site-footer .footer-html a,
footer .site-info a {
  color: #cbd5e1 !important;
}
.site-footer a:hover,
.site-footer .footer-html a:hover,
footer .site-info a:hover {
  color: #ffffff !important;
}

/* ===== FIX: WP Admin bar link colors (don't affect admin bar) ===== */
#wpadminbar a {
  color: inherit !important;
}

/* ===== FIX: Page hero title on dark background ===== */
.entry-hero .entry-title {
  color: #ffffff !important;
}


/* ===== Full-bleed page content ===== */
.entry-content-wrap,
.entry-content.single-content {
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
.content-wrap,
.site-main .content-wrap {
  max-width: 100% !important;
  padding: 0 !important;
}
#primary.content-area,
.content-container.site-container {
  max-width: 100% !important;
  padding: 0 !important;
}
/* Keep boxed for Directorist listing pages */
.directorist-archive-contents .directorist-container-fluid {
  max-width: 1100px !important;
  margin: 0 auto !important;
  padding: 0 40px !important;
}
