/*
Theme Name: Evvendory
Theme URI: https://staging.evvendory.com
Author: Roy
Author URI: https://staging.evvendory.com
Description: A modern, clean event vendor directory theme for Evvendory. Features a bold hero section, category grid, vendor listing cards, vendor dashboard, and customer bookings page. Includes custom vendor listings, Stripe subscription integration and Elementor-compatible layouts.
Version: 24.20.11
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: evvendory
Tags: directory, listings, events, vendors, marketplace, modern, clean, responsive
*/

/* ─── GOOGLE FONTS ─────────────────────────────────────── */
/* Fonts loaded through wp_enqueue_style in functions.php. */

/* ─── CSS VARIABLES ────────────────────────────────────── */
:root {
  --ev-bg:        #ffffff;
  --ev-bg2:       #f8f7ff;
  --ev-bg3:       #eff6ff;
  --ev-text:      #0a1628;
  --ev-sub:       #6b7280;
  --ev-muted:     #9ca3af;
  --ev-border:    #e5e7eb;
  --ev-violet:    #2563eb;
  --ev-violetL:   #3b82f6;
  --ev-pink:      #dc2626;
  --ev-gold:      #f59e0b;
  --ev-green:     #059669;
  --ev-cyan:      #0891b2;
  --ev-orange:    #ea580c;
  --ev-dark:      #0a1628;
  --ev-radius:    16px;
  --ev-radius-sm: 10px;
  --ev-radius-lg: 24px;
  --ev-shadow:    0 2px 8px rgba(0,0,0,0.06);
  --ev-shadow-md: 0 8px 24px rgba(0,0,0,0.1);
  --ev-shadow-lg: 0 16px 48px rgba(0,0,0,0.14);
}

/* ─── RESET & BASE ─────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; font-size: 16px; }

body {
  font-family: 'DM Sans', system-ui, -apple-system, sans-serif;
  background: var(--ev-bg);
  color: var(--ev-text);
  line-height: 1.6;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--ev-violet); text-decoration: none; transition: color 0.2s; }
a:hover { color: var(--ev-pink); }

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

ul, ol { list-style: none; }

h1, h2, h3, h4, h5, h6 {
  font-family: 'DM Sans', sans-serif;
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: -0.5px;
  color: var(--ev-text);
}

/* ─── LAYOUT ───────────────────────────────────────────── */
.ev-container { max-width: 1140px; margin: 0 auto; padding: 0 24px; }
.ev-section { padding: 72px 0; }
.ev-section-sm { padding: 48px 0; }

/* ─── TYPOGRAPHY ───────────────────────────────────────── */
.ev-label {
  display: inline-block;
  padding: 4px 14px; border-radius: 20px;
  font-size: 11px; font-weight: 700;
  letter-spacing: 1px; text-transform: uppercase;
  margin-bottom: 12px;
}
.ev-label-purple { background: #eff6ff; color: #2563eb; }
.ev-label-pink   { background: #fee2e2; color: #dc2626; }
.ev-label-gold   { background: #fef9c3;        color: #ca8a04;          }
.ev-label-green  { background: #dcfce7;        color: var(--ev-green);  }
.ev-label-white  { background: rgba(255,255,255,0.15); color: rgba(255,255,255,0.9); }

.ev-gradient-text {
  background: linear-gradient(135deg, #2563eb, #dc2626);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ─── BUTTONS ──────────────────────────────────────────── */
.ev-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 11px 24px; border-radius: var(--ev-radius-sm);
  font-family: 'DM Sans', sans-serif;
  font-size: 14px; font-weight: 700;
  cursor: pointer; transition: all 0.2s;
  border: none; text-decoration: none;
}
.ev-btn-primary {
  background: linear-gradient(135deg, var(--ev-violet), var(--ev-pink));
  color: white;
  box-shadow: 0 4px 14px rgba(37,99,235,0.35);
}
.ev-btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(37,99,235,0.45);
  color: white;
}
.ev-btn-outline {
  background: transparent;
  border: 1.5px solid var(--ev-border);
  color: var(--ev-text);
}
.ev-btn-outline:hover { border-color: var(--ev-violet); color: var(--ev-violet); }
.ev-btn-white {
  background: white; color: var(--ev-violet);
  box-shadow: 0 4px 14px rgba(0,0,0,0.15);
}
.ev-btn-white:hover { transform: translateY(-2px); color: var(--ev-violet); }
.ev-btn-lg { padding: 14px 32px; font-size: 16px; border-radius: var(--ev-radius); }
.ev-btn-sm { padding: 8px 16px; font-size: 13px; }
.ev-btn-full { width: 100%; }

/* ─── HEADER / NAV ─────────────────────────────────────── */
#ev-header {
  position: sticky; top: 0; z-index: 999;
  background: rgba(255,255,255,0.94);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--ev-border);
  box-shadow: 0 1px 12px rgba(0,0,0,0.05);
}
.ev-nav {
  display: flex; align-items: center; justify-content: space-between;
  height: 68px;
}
.ev-logo {
  display: flex; align-items: center; gap: 12px;
  text-decoration: none;
}
.ev-logo-img { height: 44px; width: auto; }
.ev-logo-placeholder {
  width: 44px; height: 44px; border-radius: 12px;
  border: 2px dashed var(--ev-border);
  display: flex; align-items: center; justify-content: center;
  font-size: 9px; color: var(--ev-muted);
  text-align: center; line-height: 1.3;
  font-weight: 700; letter-spacing: 0.5px;
}
.ev-logo-text .ev-logo-name {
  font-size: 22px; font-weight: 900; letter-spacing: -0.8px;
  background: linear-gradient(135deg, #2563eb, #dc2626);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  background-clip: text; line-height: 1;
}
.ev-logo-text .ev-logo-tag {
  font-size: 9px; color: var(--ev-muted);
  letter-spacing: 2.5px; text-transform: uppercase; margin-top: 2px;
}
.ev-nav-links { display: flex; align-items: center; gap: 2px; }
.ev-nav-link {
  padding: 8px 14px; border-radius: 10px;
  font-size: 14px; font-weight: 500; color: var(--ev-sub);
  background: none; border: none; cursor: pointer;
  transition: all 0.2s; text-decoration: none; display: inline-block;
}
.ev-nav-link:hover, .ev-nav-link.current-menu-item { background: var(--ev-bg3); color: var(--ev-violet); }
.ev-nav-divider { width: 1px; height: 24px; background: var(--ev-border); margin: 0 8px; }
.ev-nav-actions { display: flex; align-items: center; gap: 8px; }

/* Mobile hamburger */
.ev-hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 8px; border: none; background: none; }
.ev-hamburger span { display: block; width: 22px; height: 2px; background: var(--ev-text); border-radius: 2px; transition: all 0.3s; }

/* ─── HERO ─────────────────────────────────────────────── */
.ev-hero {
  background: linear-gradient(160deg, #0a1628 0%, #0f2d5e 50%, #1a3a7a 100%);
  padding: 96px 0 76px;
  position: relative; overflow: hidden;
  text-align: center;
}
.ev-hero::before {
  content: '';
  position: absolute; top: -100px; right: -100px;
  width: 500px; height: 500px; border-radius: 50%;
  background: radial-gradient(circle, rgba(220,38,38,0.2) 0%, transparent 70%);
  pointer-events: none;
}
.ev-hero::after {
  content: '';
  position: absolute; bottom: -80px; left: -80px;
  width: 400px; height: 400px; border-radius: 50%;
  background: radial-gradient(circle, rgba(37,99,235,0.25) 0%, transparent 70%);
  pointer-events: none;
}
.ev-hero-inner { position: relative; z-index: 1; max-width: 860px; margin: 0 auto; padding: 0 24px; }
.ev-hero-badge {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.18);
  border-radius: 24px; padding: 6px 18px; margin-bottom: 28px;
  font-size: 12px; font-weight: 600; color: rgba(255,255,255,0.85); letter-spacing: 1px;
}
.ev-hero h1 {
  font-size: clamp(36px, 5.5vw, 64px);
  font-weight: 900; color: white; letter-spacing: -2.5px;
  margin-bottom: 20px; line-height: 1.08;
}
.ev-hero h1 em {
  font-style: normal;
  background: linear-gradient(135deg, #2563eb, #16a34a, #f59e0b, #ea580c, #dc2626);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
  background-clip: text;
}
.ev-hero-sub {
  color: rgba(255,255,255,0.65); font-size: 18px;
  max-width: 500px; margin: 0 auto 44px; line-height: 1.7;
}

/* Search Box */
.ev-search-box {
  background: white; border-radius: 18px; padding: 8px;
  display: flex; gap: 0; max-width: 820px; margin: 0 auto;
  box-shadow: 0 20px 60px rgba(0,0,0,0.3);
}
.ev-search-field {
  flex: 1; display: flex; align-items: center; gap: 10px;
  padding: 10px 16px; border-right: 1px solid var(--ev-border);
}
.ev-search-field:last-of-type { border-right: none; }
.ev-search-field .ev-search-icon { font-size: 18px; flex-shrink: 0; }
.ev-search-field input,
.ev-search-field select {
  border: none; outline: none; font-size: 14px;
  color: var(--ev-text); background: none; width: 100%;
  font-family: 'DM Sans', sans-serif;
}
.ev-search-field input::placeholder { color: var(--ev-muted); }
.ev-search-submit {
  background: linear-gradient(135deg, var(--ev-violet), var(--ev-pink));
  border: none; border-radius: 12px; padding: 14px 28px;
  color: white; font-size: 15px; font-weight: 700;
  cursor: pointer; white-space: nowrap; font-family: 'DM Sans', sans-serif;
  transition: all 0.2s;
}
.ev-search-submit:hover { box-shadow: 0 6px 20px rgba(37,99,235,0.45); transform: translateY(-1px); }

/* Stats */
.ev-hero-stats { display: flex; justify-content: center; gap: 48px; margin-top: 40px; flex-wrap: wrap; }
.ev-stat-num { font-size: 26px; font-weight: 900; color: white; letter-spacing: -1px; }
.ev-stat-label { font-size: 12px; color: rgba(255,255,255,0.5); margin-top: 2px; }

/* ─── SECTION HEADER ───────────────────────────────────── */
.ev-section-header { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 36px; }
.ev-section-header h2 { font-size: 30px; }
.ev-section-sub { color: var(--ev-sub); font-size: 14px; margin-top: 6px; }
.ev-see-all { font-size: 13px; color: var(--ev-violet); font-weight: 600; text-decoration: none; white-space: nowrap; }
.ev-see-all:hover { color: var(--ev-pink); }

/* ─── CATEGORY GRID ────────────────────────────────────── */
.ev-cat-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 14px;
}
.ev-cat-card {
  background: var(--ev-bg2); border: 1.5px solid var(--ev-border);
  border-radius: 18px; padding: 22px 14px; text-align: center;
  cursor: pointer; transition: all 0.25s; text-decoration: none;
  display: block;
}
.ev-cat-card:hover {
  transform: translateY(-4px);
  border-color: transparent;
  box-shadow: 0 12px 32px rgba(0,0,0,0.1);
}
.ev-cat-icon {
  width: 52px; height: 52px; border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  font-size: 26px; margin: 0 auto 12px;
  transition: transform 0.25s;
}
.ev-cat-card:hover .ev-cat-icon { transform: scale(1.1); }
.ev-cat-name { font-size: 12px; font-weight: 700; color: var(--ev-text); }
.ev-cat-count { font-size: 11px; color: var(--ev-muted); margin-top: 3px; }
.ev-cat-card-all {
  background: linear-gradient(135deg, var(--ev-violet), var(--ev-pink));
  border-color: transparent;
}
.ev-cat-card-all .ev-cat-name { color: white; }
.ev-cat-card-all .ev-cat-count { color: rgba(255,255,255,0.6); }
.ev-cat-card-all .ev-cat-icon { background: rgba(255,255,255,0.15); }

/* ─── LISTING CARDS ────────────────────────────────────── */
.ev-listings-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
}
.ev-listing-card {
  background: white; border: 1.5px solid var(--ev-border);
  border-radius: 20px; overflow: hidden;
  cursor: pointer; transition: all 0.25s;
  box-shadow: var(--ev-shadow);
  display: block; text-decoration: none; color: inherit;
}
a.ev-listing-card { display: block; text-decoration: none; color: inherit; }
a.ev-listing-card:hover { color: inherit; }
.ev-listing-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 40px rgba(0,0,0,0.1);
  border-color: rgba(37,99,235,0.2);
}
.ev-listing-img {
  height: 160px; position: relative;
  display: flex; align-items: center; justify-content: center; font-size: 56px;
}
.ev-listing-badge {
  position: absolute; top: 12px; left: 12px;
  padding: 4px 10px; border-radius: 20px;
  font-size: 11px; font-weight: 700; color: white;
}
.ev-listing-verified {
  position: absolute; top: 12px; right: 12px;
  background: white; border-radius: 20px; padding: 4px 10px;
  font-size: 11px; font-weight: 600; color: var(--ev-green);
  box-shadow: 0 2px 8px rgba(0,0,0,0.12);
  display: flex; align-items: center; gap: 4px;
}
.ev-listing-body { padding: 18px; }
.ev-listing-cat { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 5px; }
.ev-listing-name { font-size: 16px; font-weight: 800; color: var(--ev-text); margin-bottom: 3px; }
.ev-listing-loc { font-size: 12px; color: var(--ev-sub); margin-bottom: 10px; }
.ev-listing-bio { font-size: 13px; color: var(--ev-sub); line-height: 1.6; margin-bottom: 12px; }
.ev-listing-tags { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.ev-listing-tag { background: var(--ev-bg2); border: 1px solid var(--ev-border); border-radius: 20px; padding: 3px 10px; font-size: 11px; color: var(--ev-sub); }
.ev-listing-footer { display: flex; justify-content: space-between; align-items: center; padding-top: 12px; border-top: 1px solid var(--ev-border); margin-bottom: 12px; }
.ev-listing-price { font-size: 18px; font-weight: 900; color: var(--ev-violet); }
.ev-listing-price span { font-size: 12px; font-weight: 400; color: var(--ev-muted); }
.ev-listing-rating { font-size: 12px; font-weight: 600; color: var(--ev-text); }
.ev-listing-stars { color: #f59e0b; }

/* ─── HOW IT WORKS ─────────────────────────────────────── */
.ev-hiw {
  background: linear-gradient(160deg, #0a1628, #0f2d5e);
  text-align: center;
}
.ev-hiw h2 { color: white; font-size: 34px; margin-bottom: 10px; }
.ev-hiw .ev-hiw-sub { color: rgba(255,255,255,0.55); font-size: 16px; margin-bottom: 52px; }
.ev-hiw-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.ev-hiw-step { text-align: center; }
.ev-hiw-num {
  width: 52px; height: 52px; border-radius: 16px;
  margin: 0 auto 16px;
  background: linear-gradient(135deg, rgba(37,99,235,0.4), rgba(220,38,38,0.3));
  border: 1px solid rgba(255,255,255,0.1);
  display: flex; align-items: center; justify-content: center;
  font-size: 22px; font-weight: 900; color: white;
}
.ev-hiw-step h4 { font-size: 14px; font-weight: 800; color: white; margin-bottom: 8px; }
.ev-hiw-step p { font-size: 13px; color: rgba(255,255,255,0.5); line-height: 1.7; }

/* ─── CITIES ───────────────────────────────────────────── */
.ev-cities { background: var(--ev-bg2); }
.ev-cities-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.ev-city-card {
  border-radius: 20px; overflow: hidden; cursor: pointer;
  transition: all 0.25s; position: relative;
  height: 180px; display: flex; align-items: flex-end; padding: 20px;
  text-decoration: none;
}
.ev-city-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(0,0,0,0.2); }
.ev-city-bg { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 72px; background: #1e1b4b; }
.ev-city-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(15,10,46,0.85) 0%, rgba(15,10,46,0.2) 100%); }
.ev-city-info { position: relative; z-index: 1; }
.ev-city-name { font-size: 18px; font-weight: 800; color: white; display: block; }
.ev-city-count { font-size: 12px; color: rgba(255,255,255,0.6); margin-top: 2px; display: block; }

/* ─── CTA BANNER ───────────────────────────────────────── */
.ev-cta-inner {
  background: linear-gradient(135deg, var(--ev-violet), var(--ev-pink));
  border-radius: 28px; padding: 60px 48px;
  display: flex; align-items: center; justify-content: space-between; gap: 40px;
  position: relative; overflow: hidden;
  box-shadow: 0 20px 60px rgba(37,99,235,0.3);
}
.ev-cta-inner::before { content: ''; position: absolute; top: -60px; right: -60px; width: 280px; height: 280px; border-radius: 50%; background: rgba(255,255,255,0.08); }
.ev-cta-text h2 { color: white; font-size: 30px; margin-bottom: 10px; letter-spacing: -1px; }
.ev-cta-text p { color: rgba(255,255,255,0.75); font-size: 15px; line-height: 1.7; max-width: 400px; }
.ev-cta-actions { flex-shrink: 0; text-align: center; position: relative; z-index: 1; }
.ev-cta-price { font-size: 48px; font-weight: 900; color: white; letter-spacing: -2px; line-height: 1; }
.ev-cta-per { font-size: 14px; color: rgba(255,255,255,0.6); margin-bottom: 20px; }
.ev-cta-note { font-size: 12px; color: rgba(255,255,255,0.5); margin-top: 10px; }

/* ─── TESTIMONIALS ─────────────────────────────────────── */
.ev-testi-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 36px; }
.ev-testi-card { background: var(--ev-bg2); border: 1.5px solid var(--ev-border); border-radius: 20px; padding: 28px; }
.ev-testi-stars { color: #f59e0b; font-size: 16px; margin-bottom: 12px; }
.ev-testi-text { font-size: 14px; color: var(--ev-text); line-height: 1.8; margin-bottom: 20px; font-style: italic; }
.ev-testi-author { display: flex; align-items: center; gap: 12px; }
.ev-testi-avatar { width: 42px; height: 42px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 22px; }
.ev-testi-name { font-size: 14px; font-weight: 700; color: var(--ev-text); }
.ev-testi-role { font-size: 12px; color: var(--ev-muted); }

/* ─── FOOTER ───────────────────────────────────────────── */
#ev-footer { background: #0a1628; padding: 60px 0 28px; }
.ev-footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px; margin-bottom: 48px; }
.ev-footer-brand p { font-size: 13px; color: rgba(255,255,255,0.45); line-height: 1.8; margin-top: 16px; max-width: 280px; }
.ev-footer-col h4 { font-size: 12px; font-weight: 700; color: white; margin-bottom: 18px; text-transform: uppercase; letter-spacing: 1px; }
.ev-footer-col a { display: block; font-size: 13px; color: rgba(255,255,255,0.45); margin-bottom: 10px; transition: color 0.2s; }
.ev-footer-col a:hover { color: white; }
.ev-footer-bottom { border-top: 1px solid rgba(255,255,255,0.08); padding-top: 24px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; }
.ev-footer-copy { font-size: 12px; color: rgba(255,255,255,0.2); }
.ev-footer-hidden { display: flex; gap: 16px; }
.ev-footer-secret { font-size: 11px; color: rgba(255,255,255,0.06); transition: color 0.2s; }
.ev-footer-secret:hover { color: rgba(255,255,255,0.3); }

/* ─── FORMS ────────────────────────────────────────────── */
.ev-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ev-form-field { display: flex; flex-direction: column; }
.ev-form-field.full { grid-column: 1 / -1; }
.ev-form-field label { font-size: 11px; font-weight: 700; color: var(--ev-sub); margin-bottom: 6px; letter-spacing: 1px; text-transform: uppercase; }
.ev-form-field input,
.ev-form-field select,
.ev-form-field textarea {
  background: var(--ev-bg2); border: 1.5px solid var(--ev-border);
  border-radius: 12px; padding: 12px 14px; color: var(--ev-text);
  font-size: 14px; outline: none; font-family: 'DM Sans', sans-serif;
  transition: border-color 0.2s;
}
.ev-form-field input:focus,
.ev-form-field select:focus,
.ev-form-field textarea:focus { border-color: var(--ev-violet); }
.ev-form-field textarea { height: 100px; resize: vertical; }

/* ─── STATUS PILLS ─────────────────────────────────────── */
.ev-status { display: inline-block; padding: 3px 12px; border-radius: 20px; font-size: 11px; font-weight: 700; }
.ev-status-confirmed { background: #dcfce7; color: #059669; }
.ev-status-pending   { background: #fef9c3; color: #ca8a04; }
.ev-status-new       { background: #dbeafe; color: #2563eb; }
.ev-status-cancelled { background: #fee2e2; color: #dc2626; }
.ev-status-active    { background: #dcfce7; color: #059669; }

/* ─── DASHBOARD ────────────────────────────────────────── */
.ev-dash { display: flex; min-height: calc(100vh - 68px); }
.ev-sidebar { width: 240px; flex-shrink: 0; background: #0a1628; padding: 28px 14px; display: flex; flex-direction: column; gap: 4px; }
.ev-sidebar-profile { padding: 0 12px 24px; border-bottom: 1px solid rgba(255,255,255,0.08); margin-bottom: 12px; }
.ev-sidebar-avatar { font-size: 32px; margin-bottom: 8px; }
.ev-sidebar-name { font-size: 15px; font-weight: 800; color: white; }
.ev-sidebar-role { font-size: 11px; color: rgba(255,255,255,0.4); margin-top: 2px; }
.ev-sidebar-link { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 12px; cursor: pointer; color: rgba(255,255,255,0.5); font-size: 13px; font-weight: 500; border: none; background: none; width: 100%; text-align: left; transition: all 0.2s; text-decoration: none; }
.ev-sidebar-link:hover { background: rgba(255,255,255,0.06); color: white; }
.ev-sidebar-link.active { background: linear-gradient(135deg, rgba(37,99,235,0.5), rgba(22,163,74,0.3)); color: white; font-weight: 700; }
.ev-sidebar-icon { font-size: 17px; width: 24px; text-align: center; }
.ev-sidebar-badge { background: var(--ev-pink); color: white; border-radius: 20px; padding: 1px 7px; font-size: 10px; margin-left: auto; }
.ev-sidebar-divider { height: 1px; background: rgba(255,255,255,0.06); margin: 8px 12px; }
.ev-dash-main { flex: 1; background: var(--ev-bg2); padding: 36px 40px; overflow-y: auto; }
.ev-dash-header { margin-bottom: 32px; }
.ev-dash-header h1 { font-size: 26px; font-weight: 900; letter-spacing: -0.8px; }
.ev-dash-header p { color: var(--ev-sub); font-size: 14px; margin-top: 4px; }

/* Dash stat cards */
.ev-dash-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 28px; }
.ev-dash-stat { background: white; border: 1.5px solid var(--ev-border); border-radius: 18px; padding: 22px; }
.ev-dash-stat-icon { width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 22px; margin-bottom: 14px; }
.ev-dash-stat-val { font-size: 28px; font-weight: 900; letter-spacing: -1px; }
.ev-dash-stat-label { font-size: 12px; color: var(--ev-sub); margin-top: 4px; }
.ev-dash-stat-change { font-size: 11px; margin-top: 8px; font-weight: 600; color: var(--ev-green); }

/* Dash card */
.ev-dash-card { background: white; border: 1.5px solid var(--ev-border); border-radius: 18px; padding: 24px; margin-bottom: 20px; }
.ev-dash-card-title { font-size: 15px; font-weight: 800; margin-bottom: 18px; display: flex; justify-content: space-between; align-items: center; }
.ev-dash-card-title a { font-size: 12px; font-weight: 500; color: var(--ev-violet); }

/* Booking rows */
.ev-booking-row { display: flex; align-items: center; justify-content: space-between; padding: 14px 0; border-bottom: 1px solid var(--ev-border); }
.ev-booking-row:last-child { border-bottom: none; }
.ev-booking-info { display: flex; align-items: center; gap: 14px; }
.ev-booking-avatar { width: 42px; height: 42px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 22px; }
.ev-booking-name { font-size: 14px; font-weight: 700; }
.ev-booking-detail { font-size: 12px; color: var(--ev-sub); margin-top: 2px; }
.ev-booking-price { font-size: 15px; font-weight: 800; color: var(--ev-violet); }
.ev-booking-date { font-size: 12px; color: var(--ev-sub); margin-top: 2px; }

/* Inquiry card */
.ev-inquiry-card { border: 1.5px solid var(--ev-border); border-radius: 14px; padding: 18px; margin-bottom: 12px; transition: all 0.2s; }
.ev-inquiry-card:hover { border-color: rgba(37,99,235,0.3); box-shadow: 0 4px 16px rgba(0,0,0,0.06); }
.ev-inquiry-top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 10px; }
.ev-inquiry-client { font-size: 15px; font-weight: 800; }
.ev-inquiry-event { font-size: 12px; color: var(--ev-sub); margin-top: 2px; }
.ev-inquiry-meta { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.ev-inquiry-meta span { font-size: 12px; color: var(--ev-sub); }
.ev-inquiry-meta strong { color: var(--ev-text); }
.ev-inquiry-actions { display: flex; gap: 8px; }
.ev-btn-accept { padding: 8px 20px; border-radius: 10px; background: linear-gradient(135deg, #059669, #0891b2); border: none; color: white; font-size: 13px; font-weight: 700; cursor: pointer; }
.ev-btn-decline { padding: 8px 20px; border-radius: 10px; background: none; border: 1.5px solid #fee2e2; color: #dc2626; font-size: 13px; font-weight: 600; cursor: pointer; }

/* Tabs */
.ev-tabs { display: flex; gap: 4px; background: var(--ev-bg2); border-radius: 12px; padding: 4px; margin-bottom: 24px; }
.ev-tab { flex: 1; padding: 9px; border-radius: 9px; border: none; background: none; font-size: 13px; font-weight: 500; color: var(--ev-sub); cursor: pointer; transition: all 0.2s; font-family: 'DM Sans', sans-serif; }
.ev-tab.active { background: white; color: var(--ev-violet); font-weight: 700; box-shadow: 0 2px 8px rgba(0,0,0,0.08); }

/* Quick actions */
.ev-quick-actions { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 28px; }
.ev-quick-action { background: white; border: 1.5px solid var(--ev-border); border-radius: 16px; padding: 18px; text-align: center; cursor: pointer; transition: all 0.2s; text-decoration: none; display: block; }
.ev-quick-action:hover { border-color: var(--ev-violet); box-shadow: 0 4px 16px rgba(37,99,235,0.1); }
.ev-quick-icon { font-size: 28px; margin-bottom: 8px; }
.ev-quick-label { font-size: 12px; font-weight: 700; color: var(--ev-text); }

/* Upcoming event block */
.ev-upcoming {
  background: linear-gradient(135deg, #0a1628, #0f2d5e);
  border-radius: 18px; padding: 24px; margin-bottom: 20px; color: white;
}
.ev-upcoming-label { font-size: 11px; color: rgba(255,255,255,0.5); letter-spacing: 2px; text-transform: uppercase; margin-bottom: 8px; }
.ev-upcoming-title { font-size: 20px; font-weight: 900; letter-spacing: -0.5px; margin-bottom: 18px; }
.ev-upcoming-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.ev-upcoming-item label { font-size: 10px; color: rgba(255,255,255,0.4); letter-spacing: 1px; text-transform: uppercase; display: block; margin-bottom: 4px; }
.ev-upcoming-item span { font-size: 14px; font-weight: 700; color: white; }

/* Chart */
.ev-chart { display: flex; align-items: flex-end; gap: 8px; height: 80px; margin: 16px 0 8px; }
.ev-bar { flex: 1; border-radius: 6px 6px 0 0; background: linear-gradient(135deg, var(--ev-violet), var(--ev-pink)); opacity: 0.15; transition: opacity 0.2s; }
.ev-bar:hover, .ev-bar.peak { opacity: 1; }
.ev-chart-labels { display: flex; gap: 8px; }
.ev-chart-label { flex: 1; text-align: center; font-size: 10px; color: var(--ev-muted); }

/* ─── PAGE SPECIFIC ────────────────────────────────────── */
.ev-page-header { padding: 60px 0 40px; }
.ev-page-header h1 { font-size: 40px; margin-bottom: 8px; }
.ev-page-header p { color: var(--ev-sub); font-size: 15px; }

/* Join page */
.ev-benefits { background: #dcfce7; border: 1px solid #bbf7d0; border-radius: 16px; padding: 24px; margin-bottom: 28px; }
.ev-benefits h3 { font-size: 15px; font-weight: 700; color: var(--ev-green); margin-bottom: 14px; }
.ev-benefit { font-size: 13px; color: var(--ev-sub); margin-bottom: 8px; }
.ev-pricing-box { background: linear-gradient(135deg, rgba(245,200,66,0.08), rgba(249,115,22,0.05)); border: 1.5px solid rgba(245,200,66,0.3); border-radius: 20px; padding: 32px; margin-bottom: 32px; text-align: center; }
.ev-pricing-name { font-size: 13px; font-weight: 700; color: var(--ev-sub); letter-spacing: 2px; text-transform: uppercase; margin-bottom: 12px; }
.ev-pricing-amount { font-size: 56px; font-weight: 900; color: var(--ev-gold); letter-spacing: -2px; line-height: 1; }
.ev-pricing-per { font-size: 18px; color: var(--ev-sub); }
.ev-pricing-note { font-size: 12px; color: var(--ev-muted); margin: 8px 0 20px; }
.ev-pricing-includes { text-align: left; margin-bottom: 24px; }
.ev-pricing-item { font-size: 13px; color: var(--ev-green); margin-bottom: 6px; }

/* About */
.ev-mission { background: rgba(245,200,66,0.06); border-left: 4px solid var(--ev-gold); border-radius: 0 16px 16px 0; padding: 20px 24px; margin: 32px 0; }
.ev-mission p { color: #ca8a04; font-size: 17px; font-style: italic; }
.ev-diff-item { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 14px; }
.ev-diff-icon { color: var(--ev-green); font-size: 16px; flex-shrink: 0; margin-top: 2px; }
.ev-diff-text { color: var(--ev-sub); font-size: 14px; line-height: 1.6; }

/* Contact */
.ev-contact-box { background: white; border: 1.5px solid var(--ev-border); border-radius: 20px; padding: 32px; }
.ev-contact-box h2 { font-size: 24px; margin-bottom: 8px; }
.ev-contact-box p { color: var(--ev-sub); font-size: 14px; margin-bottom: 24px; }

/* ─── WORDPRESS SPECIFICS ──────────────────────────────── */
.wp-block-image { margin: 0; }
.aligncenter { text-align: center; }
.alignleft { float: left; margin-right: 20px; }
.alignright { float: right; margin-left: 20px; }
.screen-reader-text { border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }

/* ─── RESPONSIVE ───────────────────────────────────────── */
@media (max-width: 1024px) {
  .ev-cat-grid { grid-template-columns: repeat(4, 1fr); }
  .ev-listings-grid { grid-template-columns: repeat(2, 1fr); }
  .ev-footer-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
  .ev-dash-stats { grid-template-columns: repeat(2, 1fr); }
  .ev-quick-actions { grid-template-columns: repeat(2, 1fr); }
  .ev-upcoming-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
  .ev-nav-links { display: none; }
  .ev-hamburger { display: flex; }
  .ev-nav-links.open { display: flex; flex-direction: column; position: fixed; top: 68px; left: 0; right: 0; background: white; border-bottom: 1px solid var(--ev-border); padding: 16px; gap: 4px; z-index: 998; box-shadow: 0 8px 24px rgba(0,0,0,0.1); }
  .ev-cat-grid { grid-template-columns: repeat(3, 1fr); }
  .ev-listings-grid { grid-template-columns: 1fr; }
  .ev-hiw-grid { grid-template-columns: repeat(2, 1fr); }
  .ev-cities-grid { grid-template-columns: repeat(2, 1fr); }
  .ev-cta-inner { flex-direction: column; text-align: center; padding: 40px 24px; }
  .ev-cta-text p { max-width: 100%; }
  .ev-testi-grid { grid-template-columns: 1fr; }
  .ev-footer-grid { grid-template-columns: 1fr; gap: 24px; }
  .ev-section { padding: 48px 0; }
  .ev-search-box { flex-direction: column; gap: 0; border-radius: 14px; }
  .ev-search-field { border-right: none; border-bottom: 1px solid var(--ev-border); }
  .ev-search-field:last-of-type { border-bottom: none; }
  .ev-hero-stats { gap: 24px; }
  .ev-form-grid { grid-template-columns: 1fr; }
  .ev-dash { flex-direction: column; }
  .ev-sidebar { width: 100%; flex-direction: row; flex-wrap: wrap; padding: 16px; gap: 6px; }
  .ev-sidebar-profile { display: none; }
  .ev-sidebar-link { flex: 1; min-width: 100px; justify-content: center; }
  .ev-sidebar-icon { display: none; }
  .ev-dash-main { padding: 20px; }
  .ev-dash-stats { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
  .ev-cat-grid { grid-template-columns: repeat(2, 1fr); }
  .ev-cities-grid { grid-template-columns: 1fr; }
  .ev-section-header { flex-direction: column; align-items: flex-start; gap: 10px; }
  .ev-hiw-grid { grid-template-columns: 1fr; }
}

/* v18 launch readiness: visible keyboard focus, accessible skip navigation and reduced motion */
.ev-skip-link { position: fixed; left: 12px; top: -120px; z-index: 10000; padding: 12px 18px; color: #fff; background: #0a1628; border-radius: 6px; font-weight: 700; }
.ev-skip-link:focus { top: 12px; }
:where(a, button, input, select, textarea, [tabindex]):focus-visible { outline: 3px solid #1d4ed8; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
/* Human visitors should never interact with the anti-spam trap. */
.ev-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; opacity: 0 !important; pointer-events: none !important; }

/* v21 discovery fields */
.ev-v21-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:9px;max-height:250px;overflow:auto;padding:12px;border:1px solid #dce2eb;border-radius:10px}.ev-v21-options label{font-size:13px;display:flex;align-items:center;gap:8px}.ev-v21-fieldset{grid-column:1/-1;border:1px solid #dce2eb;border-radius:12px;padding:15px}.ev-v21-fieldset legend{font-weight:700}.ev-v21-filter{min-width:160px}.ev-v21-suggest{padding:16px;background:#f5f8fe;border-radius:12px;margin:12px 0}

/* v23: accessible skip link is visually hidden until keyboard focus. */
a.ev-skip-link:not(:focus):not(:focus-visible) { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; border:0!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; clip-path:inset(50%)!important; white-space:nowrap!important; }
a.ev-skip-link:focus, a.ev-skip-link:focus-visible { position:fixed!important; top:12px!important; left:12px!important; width:auto!important; height:auto!important; padding:12px 18px!important; clip:auto!important; clip-path:none!important; z-index:100000!important; }

/* v24.6 — lightweight service icons and compact sidebar branding */
.ev-cat-icon { background:#eaf0ff; color:#285ad8; }
.ev-cat-icon svg { display:block; width:27px; height:27px; }
.ev-cat-card:hover .ev-cat-icon { background:#dce7ff; }
.ev-sidebar-profile .ev-sidebar-avatar { width:98px; height:68px; max-width:100%; margin:0 0 12px; overflow:hidden; background:transparent; font-size:0; }
.ev-sidebar-profile .ev-sidebar-avatar img { width:100%; height:100%; object-fit:contain; object-position:left center; }

/* v24.7 — vendor-owned logo in dashboard (Evvendory site branding unchanged) */
.ev-sidebar-profile .ev-sidebar-avatar.ev-v247-avatar { width:76px; height:76px; border-radius:15px; background:#eef1fb; display:flex; align-items:center; justify-content:center; margin:0 0 12px; }
.ev-v247-business-logo { display:block; width:100%; height:100%; max-width:100%; object-fit:contain; border-radius:12px; }
.ev-v247-initials { color:#244da8; font-size:27px; font-weight:800; letter-spacing:1px; }
.ev-v247-logo-row { display:flex; gap:16px; align-items:center; flex-wrap:wrap; }
.ev-v247-logo-thumb { width:76px; height:76px; display:flex; align-items:center; justify-content:center; background:#eef1fb; border:1px solid #dfe5f2; border-radius:14px; flex-shrink:0; }
.ev-v247-logo-row input[type=file] { display:block; max-width:100%; margin:0 0 8px; }
.ev-v247-logo-row small { display:block; line-height:1.5; }
.ev-v247-remove { margin-top:10px; display:flex; gap:7px; align-items:center; font-size:13px; }
.ev-v247-preview-logo { width:44px; height:44px; border-radius:9px; flex-shrink:0; background:#e7efff; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.ev-v247-preview-logo .ev-v247-initials { font-size:17px; }

/* v24.8 vendor business image editor and shared image/icon fallbacks */
.ev-v248-image-panel { border:1px solid #d5e2fa; border-radius:16px; background:#f8faff; padding:18px; margin-bottom:12px; }
.ev-v248-image-panel h3 { margin:0 0 6px; font-size:17px; color:#153d86; }
.ev-v248-image-panel p { margin:0 0 15px; color:#475569; font-size:13px; }
.ev-v248-image-panel strong { display:block; margin:14px 0 10px; font-size:13px; }
.ev-v248-icon-picker { display:grid; grid-template-columns:repeat(auto-fill,minmax(122px,1fr)); gap:9px; margin-bottom:12px; }
.ev-v248-icon-option { display:flex!important; align-items:center; flex-direction:column; text-align:center; padding:12px 7px!important; border:1px solid #dce4f0; border-radius:12px; background:white; cursor:pointer; gap:8px; letter-spacing:normal!important; text-transform:none!important; line-height:1.3; font-size:12px!important; }
.ev-v248-icon-option:has(input:checked) { border:2px solid #2563eb; background:#eff6ff; }
.ev-v248-icon-option input { width:16px!important; height:16px!important; padding:0!important; }
.ev-v248-icon-drawing { color:#2563eb; display:grid; place-items:center; }
.ev-v248-brand-icon { display:inline-flex; align-items:center; justify-content:center; color:#2563eb; width:100%; height:100%; }
.ev-v248-brand-icon svg { width:55%; height:55%; max-width:44px; max-height:44px; }
.ev-v248-brand-image { width:100%; height:100%; object-fit:contain; }
.ev-v248-card-logo { display:inline-flex; width:44px; height:44px; background:#eff6ff; border-radius:10px; flex-shrink:0; }
.ev-vendor-card-placeholder .ev-v248-brand-icon svg { width:58px; height:58px; max-width:58px; max-height:58px; }

/* v24.15 — single-business vendor listing overview */
.ev-v2415-listing-row{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.ev-v2415-listing-information{display:flex;flex-direction:column;gap:5px;min-width:210px;flex:1}
.ev-v2415-listing-information strong{font-size:18px;color:var(--ev-text)}
.ev-v2415-listing-information span{font-size:13px;font-weight:700;color:var(--ev-sub)}
.ev-v2415-listing-information small{font-size:13px;color:var(--ev-sub);line-height:1.5}
.ev-v2415-listing-links{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
@media(max-width:600px){.ev-v2415-listing-links{width:100%}.ev-v2415-listing-links .ev-btn{flex:1;text-align:center}}

/* v24.16: read-only, mobile-friendly inquiry history */
.ev-v2416-history{display:grid;gap:10px}
.ev-v2416-history-item{border:1px solid #e2e8f0;border-radius:12px;background:#fff;overflow:hidden}
.ev-v2416-history-summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(120px,1.4fr) minmax(95px,1fr) minmax(125px,1.1fr) auto;gap:12px;align-items:center;padding:16px}
.ev-v2416-history-summary::-webkit-details-marker{display:none}
.ev-v2416-history-summary:focus-visible{outline:3px solid #2563eb;outline-offset:-3px}
.ev-v2416-history-customer{display:flex;flex-direction:column;gap:4px;min-width:0;overflow-wrap:anywhere}
.ev-v2416-history-customer small{color:#64748b}
.ev-v2416-history-date{font-size:13px;color:#475569}
.ev-v2416-status{border-radius:999px;padding:5px 9px;display:inline-block;font-size:12px;font-weight:700;width:max-content;max-width:100%}
.ev-v2416-status-closed{color:#991b1b;background:#fee2e2}
.ev-v2416-status-confirmed{color:#166534;background:#dcfce7}
.ev-v2416-status-pending{color:#92400e;background:#fef3c7}
.ev-v2416-history-action{font-size:13px;font-weight:700;color:#2563eb;white-space:nowrap}
.ev-v2416-history-item[open] .ev-v2416-history-action span{display:inline-block;transform:rotate(180deg)}
.ev-v2416-history-detail{padding:16px;border-top:1px solid #e2e8f0;background:#f8fafc}
.ev-v2416-history-grid{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ev-v2416-history-grid>div{min-width:0;overflow-wrap:anywhere}
.ev-v2416-history-grid dt{font-size:12px;font-weight:700;color:#64748b;margin-bottom:4px}
.ev-v2416-history-grid dd{margin:0;font-size:14px;color:#0f172a;white-space:normal}
.ev-v2416-readonly{font-size:12px;color:#64748b;margin:16px 0 0}
@media(max-width:720px){.ev-v2416-history-summary{grid-template-columns:minmax(0,1fr) auto;gap:8px}.ev-v2416-history-date{grid-column:1}.ev-v2416-history-action{grid-column:2;grid-row:1}.ev-v2416-status{grid-column:1 / -1}.ev-v2416-history-grid{grid-template-columns:1fr}}

/* v24.17.1: booking cards use vendor uploaded logo or their selected icon. */
.ev-booking-avatar.ev-booking-brand { overflow:hidden; flex-shrink:0; }
.ev-booking-avatar.ev-booking-brand .ev-v248-brand-image { display:block; width:100%; height:100%; object-fit:contain; }
.ev-booking-avatar.ev-booking-brand .ev-v248-brand-icon { display:flex; width:100%; height:100%; }

/* 24.18.4 customer favorites */
.ev-fav-form{display:inline-flex;margin:0;vertical-align:middle}.ev-fav-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #e2e8f0;background:#fff;color:#334155;border-radius:12px;font-size:13px;font-weight:700;padding:9px 13px;cursor:pointer;text-decoration:none;line-height:1.3;min-height:36px}.ev-fav-button:hover,.ev-fav-button:focus-visible{border-color:#e11d48;color:#be123c}.ev-fav-button.is-saved{color:#be123c;background:#fff1f2;border-color:#fecdd3}.ev-fav-card-control{position:absolute;top:12px;right:12px;z-index:3}.ev-vendor-card{position:relative}.ev-fav-card-control .ev-fav-button{box-shadow:0 2px 10px rgba(0,0,0,.12)}

/* v24.18.5 — consistent rounded save controls */
.ev-fav-form {display:inline-flex; margin:0; vertical-align:middle;}
.ev-fav-button, a.ev-fav-button, button.ev-fav-button {
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:11px 17px; min-height:43px; box-sizing:border-box;
  border:1.5px solid #d7dfed; border-radius:15px; background:#fff;
  color:#10213d; font-size:14px; font-weight:700; line-height:1.2;
  font-family:inherit; white-space:nowrap; text-decoration:none;
  box-shadow:0 2px 8px rgba(16,33,61,.05);
  cursor:pointer; transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;
  -webkit-appearance:none; appearance:none;
}
.ev-fav-button .ev-fav-heart {font-size:24px; line-height:.8; font-weight:400; color:#52647e;}
.ev-fav-button:hover, a.ev-fav-button:hover, button.ev-fav-button:hover {
  border-color:#f1a7b5; background:#fff7f9; color:#be123c;
  box-shadow:0 4px 12px rgba(190,18,60,.09); transform:translateY(-1px);
}
.ev-fav-button:hover .ev-fav-heart {color:#be123c;}
.ev-fav-button:focus-visible {outline:3px solid #93c5fd; outline-offset:3px;}
.ev-fav-button.is-saved, button.ev-fav-button.is-saved {
  background:#fff1f2; border-color:#fda4af; color:#be123c;
}
.ev-fav-button.is-saved .ev-fav-heart {color:#e11d48;}
.ev-fav-card-control .ev-fav-button {padding:9px 12px; min-height:39px; border-radius:13px; font-size:12px;}
.ev-fav-card-control .ev-fav-heart {font-size:20px;}
@media (max-width:600px) {.ev-fav-button{max-width:100%;} .ev-fav-card-control .ev-fav-button{padding:8px 10px;}}

/* v24.18.6: show uploaded business logo when no cover photo has been uploaded. */
.ev-vendor-card-photo .ev-logo-cover{width:100%;height:100%;object-fit:contain;box-sizing:border-box;padding:24px;background:#eef3ff;}

/* v24.18.7 — Compact, accessible mobile customer/vendor dashboard navigation */
.ev-v24187-mobilebar, .ev-v24187-backdrop, .ev-v24187-drawer-heading { display:none; }
@media (max-width:768px) {
  .ev-v24187-dash { display:flex; flex-direction:column; min-width:0; }
  .ev-v24187-dash .ev-v24187-mobilebar {
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    padding:12px 18px; background:#fff; border-bottom:1px solid #e5eaf2;
    position:relative; z-index:2; min-height:70px;
  }
  .ev-v24187-mobilebar-title { display:flex; flex-direction:column; min-width:0; gap:2px; }
  .ev-v24187-mobilebar-title strong { color:#0a1628; font-size:17px; line-height:1.25; }
  .ev-v24187-mobilebar-title span { color:#64748b; font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .ev-v24187-menu-toggle { display:inline-flex; align-items:center; gap:8px; flex-shrink:0; border:1px solid #dbe2ef; border-radius:12px; background:#f8fafc; color:#0a1628; font-size:14px; font-weight:700; padding:10px 14px; cursor:pointer; min-height:44px; }
  .ev-v24187-menu-toggle span:first-child { font-size:21px; line-height:1; }
  .ev-v24187-dash .ev-sidebar {
    display:flex; flex-direction:column; flex-wrap:nowrap; align-items:stretch; gap:4px;
    position:fixed; left:0; top:0; bottom:0; width:min(85vw,320px); max-width:320px;
    height:100dvh; overflow-y:auto; overscroll-behavior:contain; padding:18px 14px 28px;
    z-index:10002; box-shadow:14px 0 35px rgba(0,0,0,.2);
    transform:translateX(-105%); transition:transform .22s ease; visibility:hidden;
  }
  .ev-v24187-dash.ev-v24187-open .ev-sidebar { transform:translateX(0); visibility:visible; }
  .ev-v24187-dash .ev-sidebar-profile { display:block; padding-bottom:15px; margin-bottom:8px; }
  .ev-v24187-dash .ev-sidebar-link { flex:none; min-width:0; width:100%; justify-content:flex-start; padding:12px 14px; min-height:46px; color:rgba(255,255,255,.75); }
  .ev-v24187-dash .ev-sidebar-link.active { color:#fff; }
  .ev-v24187-dash .ev-sidebar-icon { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; }
  .ev-v24187-dash .ev-sidebar-badge { margin-left:auto; }
  .ev-v24187-dash .ev-v24187-drawer-heading { display:flex; align-items:center; justify-content:space-between; padding:0 6px 14px; color:white; font-size:15px; }
  .ev-v24187-close { border:1px solid rgba(255,255,255,.22); color:#fff; background:rgba(255,255,255,.09); width:44px; height:44px; border-radius:12px; cursor:pointer; font-size:20px; }
  .ev-v24187-dash .ev-v24187-backdrop { display:block; position:fixed; inset:0; z-index:10001; background:rgba(3,10,24,.62); border:0; padding:0; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .22s ease,visibility .22s ease; }
  .ev-v24187-dash.ev-v24187-open .ev-v24187-backdrop { opacity:1; visibility:visible; pointer-events:auto; }
  .ev-v24187-dash .ev-dash-main { width:100%; min-width:0; padding:22px 16px 32px; }
  .ev-v24187-dash .ev-dash-card { max-width:100%; }
  .ev-v24187-dash .ev-v2415-listing-links { display:flex; flex-wrap:wrap; gap:10px; }
  .ev-v24187-dash .ev-v2415-listing-links a { min-height:42px; display:inline-flex; align-items:center; justify-content:center; }
}
@media (max-width:380px) {
  .ev-v24187-dash .ev-dash-main { padding:18px 12px 26px; }
  .ev-v24187-mobilebar-title strong { font-size:15px; }
  .ev-v24187-menu-toggle { padding:9px 10px; }
}
@media (prefers-reduced-motion:reduce) {
  .ev-v24187-dash .ev-sidebar, .ev-v24187-dash .ev-v24187-backdrop { transition:none !important; }
}

/* v24.18.8: Saved Vendors card uses the vendor-uploaded logo or selected service icon. */
.ev-saved-vendor-brand { overflow:hidden; }
.ev-saved-vendor-brand .ev-v248-brand-image {
  display:block; width:100%; height:100%; object-fit:contain; padding:14px;
}
.ev-saved-vendor-brand .ev-v248-brand-icon {
  display:flex; width:100%; height:100%; align-items:center; justify-content:center;
}
.ev-saved-vendor-brand .ev-v248-brand-icon svg {
  width:64px; height:64px; max-width:64px; max-height:64px;
}

/* v24.20.0 homepage state + city responsive search */
.ev-search-box .ev-search-location {min-width:0;flex:1 1 165px}
.ev-search-location select {min-width:0;width:100%;max-width:100%}
@media(max-width:700px){.ev-search-box .ev-search-location{flex:1 1 100%;width:100%}}

/* v24.20.1 privacy and listing controls */
.evv-lifecycle {margin-top:24px;padding:22px;max-width:100%;box-sizing:border-box}
.evv-lifecycle h2 {font-size:23px;margin:0 0 12px}
.evv-lifecycle h3 {font-size:17px;margin:0 0 8px}
.evv-lifecycle-group {border-top:1px solid #e2e8f0;padding:17px 0}
.evv-lifecycle-group p {line-height:1.55;color:#526078}
.evv-lifecycle form {display:flex;flex-direction:column;gap:10px;margin:12px 0}
.evv-lifecycle input[type=password] {width:100%;max-width:440px;padding:11px;border:1px solid #cbd5e1;border-radius:9px}
.evv-lifecycle label {display:block;font-weight:600}
.evv-lifecycle-actions {display:flex;flex-wrap:wrap;gap:10px}
.evv-lifecycle button {max-width:100%;white-space:normal;min-height:44px}
.evv-lifecycle-notice {padding:14px;border-radius:10px;background:#eff6ff;color:#1e40af}
@media(max-width:600px){.evv-lifecycle{padding:16px}.evv-lifecycle-actions{flex-direction:column}.evv-lifecycle-actions button{width:100%}}

/* v24.20.2 — Public vendor profile mobile quote experience */
.ev-profile-quote-panel { scroll-margin-top: 100px; min-width: 0; }
.ev-mobile-quote-cta { display: none; }
@media (max-width: 767px) {
  body.single-ev_vendor .ev-vendor-profile-layout { min-width: 0; }
  body.single-ev_vendor .ev-vendor-profile-main { min-width: 0; }
  body.single-ev_vendor .ev-profile-quote-panel { position: static !important; scroll-margin-top: 95px; min-width: 0; }
  body.single-ev_vendor .ev-profile-quote-panel input,
  body.single-ev_vendor .ev-profile-quote-panel select,
  body.single-ev_vendor .ev-profile-quote-panel textarea { max-width: 100%; min-width: 0; box-sizing: border-box; font-size: 16px; }
  body.single-ev_vendor .ev-section.ev-section-sm { padding-bottom: 94px; }
  body.single-ev_vendor .ev-mobile-quote-cta {
    position: fixed; z-index: 250; bottom: max(12px, env(safe-area-inset-bottom));
    left: 16px; right: 16px; width: auto; box-sizing: border-box;
    min-height: 52px; padding: 12px 20px;
    display: flex; align-items: center; justify-content: space-between;
    color: #fff; background: linear-gradient(110deg,#315fe9,#ce2945);
    border-radius: 14px; box-shadow: 0 8px 24px rgba(17, 28, 58, .22);
    font-weight: 800; font-size: 16px; text-decoration: none;
  }
  body.single-ev_vendor .ev-mobile-quote-cta:focus-visible { outline: 3px solid #f5b400; outline-offset: 3px; }
  @media (prefers-reduced-motion: no-preference) {
    body.single-ev_vendor { scroll-behavior: smooth; }
  }
}

/* v24.20.3 advertising status labels */
.evads-status-expired{background:#f1f5f9!important;color:#475569!important}.evads-status-upcoming{background:#dbeafe!important;color:#1d4ed8!important}.evads-history-label{font-weight:700;color:#64748b;padding:15px 0 7px;border-top:1px solid #e2e8f0}.evads-section-title{font-size:17px;margin:16px 0 12px}

/* v24.20.10 — Responsive listing editor. Keep form controls inside the viewport. */
.ev-dash-card, .ev-dash-card form, .ev-form-grid, .ev-form-grid > *, .ev-v248-image-panel, .ev-v247-logo-row, .ev-v247-logo-row > div {min-width:0;max-width:100%;box-sizing:border-box;}
.ev-v248-image-panel {overflow-wrap:anywhere;}
.ev-v248-image-panel input[type="file"] {display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box;font-size:14px;}
.ev-v248-image-panel .ev-v247-logo-row {display:flex;flex-wrap:wrap;align-items:flex-start;}
.ev-v248-image-panel .ev-v248-icon-picker {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:100%;}
.ev-v248-image-panel .ev-v248-icon-option {min-width:0;max-width:100%;overflow-wrap:anywhere;box-sizing:border-box;}
.ev-form-grid :is(input:not([type="radio"]):not([type="checkbox"]),textarea,select) {max-width:100%;min-width:0;box-sizing:border-box;}
@media(max-width:700px) {
 .ev-dash-card:has(#ev-business-image-settings) {padding:clamp(12px,4vw,20px);max-width:100%;overflow:hidden;}
 .ev-dash-card:has(#ev-business-image-settings) .ev-form-grid {grid-template-columns:minmax(0,1fr);}
 .ev-v248-image-panel .ev-v247-logo-row {display:grid;grid-template-columns:minmax(0,1fr);gap:12px;}
 .ev-v248-image-panel .ev-v248-icon-picker {grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;}
 .ev-v248-image-panel .ev-v248-icon-option {padding:10px 6px;font-size:12px;}
 .ev-v248-image-panel .ev-v247-logo-thumb {max-width:100%;}
 .ev-form-grid fieldset {min-width:0;max-width:100%;box-sizing:border-box;}
}
