* { margin: 0; padding: 0; box-sizing: border-box; }

body {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 13px;
  color: #333;
  line-height: 1.5;
  background: #fff;
}

a { color: #00c; text-decoration: none; cursor: pointer; }
a:hover { text-decoration: underline; }
a:visited { color: #551a8b; }

/* ── layout ── */

#wrap {
  max-width: 960px;
  margin: 0 auto;
  padding: 12px 16px;
}

/* ── header ── */

#header {
  padding: 10px 0 10px;
  border-bottom: 1px solid #ccc;
  margin-bottom: 8px;
}

#header h1 {
  font-size: 26px;
  font-weight: bold;
  display: inline;
}

#header h1 a {
  color: #333;
  text-decoration: none;
}

#header .sub1 {
  font-size: 13px;
  color: #666;
  margin-top: 2px;
}

#header .sub2 {
  font-size: 11px;
  color: #999;
  margin-top: 2px;
}

/* ── filters ── */

#filters {
  padding: 6px 0;
  border-bottom: 1px solid #eee;
  margin-bottom: 10px;
}

.filter-row {
  margin-bottom: 3px;
}

.flabel {
  color: #999;
  margin-right: 6px;
}

.f {
  margin-right: 10px;
  color: #00c;
  font-size: 13px;
}

.f.active {
  font-weight: bold;
  color: #333;
  text-decoration: underline;
}

/* ── main two-column layout ── */

#main {
  display: flex;
  gap: 20px;
  align-items: flex-start;
}

/* ── sidebar ── */

#sidebar {
  width: 170px;
  flex-shrink: 0;
  padding-top: 2px;
}

.sidebar-head {
  font-size: 10px;
  color: #999;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 6px;
}

#cat-list {
  list-style: none;
}

#cat-list li {
  margin-bottom: 4px;
}

.cat {
  color: #00c;
  font-size: 13px;
}

.cat.active {
  font-weight: bold;
  color: #333;
  text-decoration: underline;
}

/* ── listings ── */

#listings {
  flex: 1;
  min-width: 0;
}

#result-count {
  font-size: 11px;
  color: #999;
  margin-bottom: 6px;
}

.listing {
  border-bottom: 1px solid #eee;
  padding: 10px 0;
}

.listing:first-child {
  border-top: 1px solid #eee;
}

.listing-title {
  font-size: 14px;
  font-weight: bold;
  margin-bottom: 1px;
}

.listing-title a {
  color: #00c;
}

.listing-meta {
  font-size: 11px;
  color: #999;
  margin-bottom: 5px;
}

.listing-blurb {
  color: #555;
  margin-bottom: 6px;
  line-height: 1.55;
}

.connect-link {
  font-size: 12px;
  color: #007a00;
}

.connect-link:visited {
  color: #007a00;
}

.connect-inactive {
  font-size: 12px;
  color: #aaa;
}

/* ── editor's note ── */

.editor-note {
  font-size: 12px;
  color: #555;
  font-style: italic;
  background: #fffef0;
  border-left: 3px solid #c8a200;
  padding: 5px 8px;
  margin-bottom: 6px;
  line-height: 1.55;
}

.editor-label {
  font-weight: bold;
  font-style: normal;
  color: #886600;
  text-transform: uppercase;
  font-size: 10px;
  letter-spacing: 0.04em;
  margin-right: 4px;
}

/* ── featured (paid subscriber) listings ── */

.listing.featured {
  border-left: 3px solid #007a00;
  padding-left: 10px;
  margin-left: -13px;
}

.featured-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: normal;
  color: #007a00;
  background: #f0f7e6;
  border: 1px solid #c3e6a8;
  padding: 0px 5px;
  border-radius: 2px;
  margin-left: 6px;
  vertical-align: middle;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.ai-score {
  background: #f0f7e6;
  color: #3a7d0a;
  padding: 1px 6px;
  border-radius: 3px;
  font-size: 11px;
  font-weight: normal;
  margin-left: 8px;
}

.ai-score-mid {
  background: #fff8e6;
  color: #886600;
  padding: 1px 6px;
  border-radius: 3px;
  font-size: 11px;
  font-weight: normal;
  margin-left: 8px;
}

/* ── footer ── */

#footer {
  margin-top: 20px;
  padding-top: 10px;
  border-top: 1px solid #ccc;
  font-size: 12px;
  color: #666;
}

/* ── vendor page ── */

#vendor-page {
  max-width: 620px;
  padding-top: 16px;
}

#vendor-page h2 {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 10px;
  color: #333;
}

#vendor-page h3 {
  font-size: 13px;
  font-weight: bold;
  color: #333;
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 11px;
  color: #999;
}

.vblock {
  border-bottom: 1px solid #eee;
  padding: 14px 0;
}

.vblock:last-child {
  border-bottom: none;
}

.vblock p {
  color: #444;
  line-height: 1.6;
  margin-bottom: 6px;
}

.vblock p:last-child {
  margin-bottom: 0;
}

.vlist {
  list-style: none;
  margin: 0;
  padding: 0;
}

.vlist li {
  color: #444;
  line-height: 1.6;
  padding: 3px 0;
}

.vlist li::before {
  content: "→ ";
  color: #999;
}

.price-line {
  font-size: 16px;
  margin-bottom: 8px !important;
}

.cta-btn {
  display: inline-block;
  padding: 8px 18px;
  border: 1px solid #00c;
  color: #00c;
  font-size: 13px;
  font-weight: bold;
  text-decoration: none;
}

.cta-btn:hover {
  background: #00c;
  color: #fff;
  text-decoration: none;
}

.vsmall {
  font-size: 11px;
  color: #999;
}
