/*


 */

:root{
  --ink:#0A0A08; --paper:#F4F1EB; --accent:#1B3A2D; --accent2:#C8963E;
  --muted:#6B6860; --rule:#D4D0C8; --ad-bg:#F9F7F2;
  --serif:'Playfair Display',Georgia,serif;
  --mono:'IBM Plex Mono',monospace;
  --sans:'IBM Plex Sans',system-ui,sans-serif;
}
*{ box-sizing:border-box; margin:0; padding:0; }
body{ background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:15px; line-height:1.65; }
a{ color:var(--accent); text-decoration:none; }
a:hover{ text-decoration:underline; }

/* ---- masthead ---------------------------------------------------------- */
.mast{ border-bottom:2px solid var(--ink); }
.mast-top{ display:flex; justify-content:space-between; align-items:center; padding:12px 40px;
  border-bottom:.5px solid var(--rule); font-family:var(--mono); font-size:11px; color:var(--muted); letter-spacing:.08em; }
.mast-top a{ color:var(--muted); letter-spacing:.08em; }
.mast-top .right{ display:flex; gap:16px; align-items:center; }
.mast-title-wrap{ text-align:center; padding:28px 40px 20px; border-bottom:.5px solid var(--rule); }
.mast-title{ font-family:var(--serif); font-size:72px; font-weight:900; letter-spacing:-2px; line-height:1; color:inherit; }
.mast-title:hover{ text-decoration:none; }
.mast-title .vc{ color:var(--accent2); }
.mast-tagline{ font-family:var(--mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); margin-top:10px; }
.region-nav,.view-toggle{ display:flex; justify-content:center; }
.region-nav{ border-bottom:.5px solid var(--rule); }
.region-link{ font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink); padding:12px 24px; border-right:.5px solid var(--rule); }
.region-link:first-child{ border-left:.5px solid var(--rule); }
.region-link:hover{ text-decoration:none; }
.region-link.active{ color:var(--paper); background:var(--accent); }
.view-link{ font-family:var(--mono); font-size:12px; letter-spacing:.15em; text-transform:uppercase;
  padding:12px 40px; color:var(--muted); }
.view-link:first-child{ border-right:.5px solid var(--rule); }
.view-link:hover{ text-decoration:none; }
.view-link.active{ background:var(--ink); color:var(--paper); }

/* ---- stat bar ---------------------------------------------------------- */
.statbar{ display:grid; grid-template-columns:repeat(5,1fr); border-bottom:2px solid var(--ink); }
.stat{ padding:20px 28px; border-right:.5px solid var(--rule); }
.stat:last-child{ border-right:none; }
.stat-n{ font-family:var(--serif); font-size:38px; font-weight:700; line-height:1; color:var(--accent); }
.stat-l{ font-family:var(--mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-top:4px; }

/* ---- body grid + feed -------------------------------------------------- */
.body-grid{ display:grid; grid-template-columns:1fr; min-height:100vh; }
.body-grid.has-rail{ grid-template-columns:1fr 300px; }
.body-grid.has-rail .feed{ border-right:.5px solid var(--rule); }
.feed-head{ display:flex; align-items:center; justify-content:space-between; padding:14px 28px;
  border-bottom:.5px solid var(--rule); background:var(--paper); position:sticky; top:0; z-index:10; }
.feed-head h2{ font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); font-weight:500; }
.feed-tag{ font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase;
  background:var(--accent); color:var(--paper); padding:3px 8px; margin-left:10px; }
.feed-count{ font-family:var(--mono); font-size:11px; color:var(--accent2); }
.feed-empty{ padding:48px 28px; text-align:center; color:var(--muted); font-family:var(--mono); font-size:13px; }
.pager{ display:flex; align-items:center; justify-content:center; gap:18px; padding:24px; }
.pager-link{ font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  padding:8px 16px; border:.5px solid var(--rule); color:var(--ink); }
.pager-link:hover{ background:var(--accent); color:var(--paper); text-decoration:none; }
.pager-link.disabled{ color:var(--rule); border-color:var(--rule); pointer-events:none; }
.pager-info{ font-family:var(--mono); font-size:11px; letter-spacing:.08em; color:var(--muted); }

.card{ display:grid; grid-template-columns:1fr auto; gap:16px; align-items:start;
  padding:24px 28px; border-bottom:.5px solid var(--rule); color:inherit; }
.card:hover{ background:rgba(27,58,45,.04); text-decoration:none; }
.card-cat{ font-family:var(--mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent2); margin-bottom:5px; }
.card-name{ font-family:var(--serif); font-size:21px; font-weight:700; line-height:1.2; margin-bottom:6px; }
.card-loc{ font-family:var(--mono); font-size:11px; color:var(--muted); margin-bottom:8px; }
.card-desc{ font-size:13px; color:#3D3C38; line-height:1.6; max-width:500px;
  overflow:hidden; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; }
.card-meta{ text-align:right; white-space:nowrap; }
.card-meta .m{ font-family:var(--mono); font-size:11px; color:var(--muted); margin-bottom:4px; }
.card-meta .m.gold{ color:var(--accent2); margin-top:4px; }
.card-meta .m.people{ color:var(--ink); white-space:normal; max-width:220px; }
.card-meta .m.url{ color:var(--accent2); }

/* in-tab result-set search */
/* upper-nav search: magnifying-glass toggle -> dropdown box (~30 chars) */
.nav-search-btn{ background:none; border:none; cursor:pointer; color:var(--muted); padding:4px 8px;
  display:inline-flex; align-items:center; vertical-align:middle; }
.nav-search-btn:hover{ color:var(--accent, #4169ff); }
.nav-search{ display:none; text-align:center; padding:12px 0 0; }
.nav-search.open{ display:block; }
.nav-search input[type=search]{ font:inherit; font-size:14px; width:280px; max-width:82%; padding:8px 12px;
  border:1.5px solid var(--enc, #9db4ff); border-radius:9px; background:#fff; color:var(--ink); }
.nav-search input[type=search]:focus{ outline:none; border-color:var(--accent, #4169ff); }
.search-active{ font-family:var(--mono); font-size:12px; color:var(--muted); padding:10px 28px 0; }
.search-active a{ color:var(--accent, #4169ff); }

/* Business-tier localized map */
.region-map{ border:1.5px solid var(--enc, #9db4ff); border-radius:12px; overflow:hidden; margin:0 0 20px; background:#fff; }
#dmv-map{ height:420px; width:100%; }
.dmv-pin{ background:var(--accent2, #b8860b); border:2px solid #fff; border-radius:50%; box-shadow:0 1px 4px rgba(0,0,0,.4); }
.dmv-pin.multi{ background:var(--accent, #4169ff); display:flex; align-items:center; justify-content:center; }
.dmv-pin.multi span{ color:#fff; font-family:var(--mono, monospace); font-size:12px; font-weight:600; line-height:1; }

/* Pro "add a firm" submission form */
.view-toggle .add-firm{ color:var(--accent, #4169ff); }
.submit-form{ display:flex; flex-direction:column; gap:14px; max-width:480px; margin-top:20px; }
.submit-form .fld{ display:flex; flex-direction:column; gap:5px; font-family:var(--mono); font-size:11px;
  letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.submit-form .fld input, .submit-form .fld select, .submit-form .fld textarea{
  font-family:var(--sans, inherit); font-size:15px; text-transform:none; letter-spacing:0; color:var(--ink);
  padding:9px 12px; border:1.5px solid var(--enc, #9db4ff); border-radius:9px; background:#fff; }
.submit-form .fld input:focus, .submit-form .fld select:focus, .submit-form .fld textarea:focus{
  outline:none; border-color:var(--accent, #4169ff); }
.submit-form .fld-row{ display:flex; gap:14px; } .submit-form .fld-row .fld{ flex:1; }
.submit-form .fld.state{ max-width:90px; } .submit-form .req{ color:var(--accent2, #b8860b); }
.submit-form .btn-primary{ align-self:flex-start; font-family:var(--sans); font-size:14px; cursor:pointer;
  padding:10px 22px; border:none; border-radius:9px; background:var(--accent, #4169ff); color:#fff; }
.match-hint{ font-size:13px; margin-top:-6px; min-height:18px; }
.match-hint .ok{ color:var(--muted); } .match-hint .warn{ color:var(--accent2, #b8860b); font-weight:600; }
.match-hint a{ color:var(--accent, #4169ff); }
.nexus-badge{ margin-top:8px; font-family:var(--mono); font-size:10px; padding:2px 8px;
  background:var(--accent); color:var(--paper); display:inline-block; }

/* ---- sidebar ----------------------------------------------------------- */
.side-sec{ padding:20px; border-bottom:.5px solid var(--rule); }
.side-title{ font-family:var(--mono); font-size:10px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--muted); margin-bottom:14px; padding-bottom:10px; border-bottom:.5px solid var(--rule); }
.signal-row{ display:flex; align-items:center; gap:10px; padding:7px 0; border-bottom:.5px solid var(--rule); font-size:12px; }
.signal-dot{ width:7px; height:7px; border-radius:50%; flex-shrink:0; }
.dot-high{ background:var(--accent); } .dot-med{ background:var(--accent2); } .dot-low{ background:var(--rule); }
.signal-name{ flex:1; font-weight:500; }
.signal-val{ font-family:var(--mono); font-size:11px; color:var(--muted); }
.region-row{ display:flex; justify-content:space-between; align-items:baseline; padding:7px 0; border-bottom:.5px solid var(--rule); font-size:12px; }
.region-row a.active{ font-weight:700; color:var(--accent); }
.region-row .cnt{ font-family:var(--mono); font-size:11px; color:var(--muted); }
.edition-row{ padding:6px 0; border-bottom:.5px solid var(--rule); }
.edition-row a{ font-size:13px; color:var(--accent); display:block; }

/* ---- ad zones ---------------------------------------------------------- */
.ad{ width:100%; background:var(--ad-bg); display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; }
.ad-inline{ height:100px; border-top:.5px solid var(--accent2); border-bottom:.5px solid var(--accent2); }
.ad-sidebar{ height:250px; }
/* Adsterra fixed-size units: exact box, centered, clipped by .ad overflow (no balloon) */
.ad-adsterra-300x250{ width:300px; height:250px; margin-inline:auto; }
.ad-adsterra-728x90{ width:728px; max-width:100%; height:90px; margin-inline:auto; border-top:.5px solid var(--accent2); border-bottom:.5px solid var(--accent2); }
.ad-label{ position:absolute; top:6px; left:12px; font-family:var(--mono); font-size:9px; letter-spacing:.15em; color:#888780; }
.ad-ph{ display:flex; flex-direction:column; align-items:center; gap:4px; opacity:.4; }
.ad-ph .dim{ font-family:var(--mono); font-size:12px; color:var(--accent2); }
.ad-ph .pos{ font-family:var(--mono); font-size:10px; color:#888780; }

/* ---- footer ------------------------------------------------------------ */
.foot{ border-top:2px solid var(--ink); padding:20px 40px; display:flex; justify-content:space-between;
  font-family:var(--mono); font-size:11px; color:var(--muted); }

/* ---- company detail ---------------------------------------------------- */
.detail{ max-width:760px; margin:0 auto; padding:48px 40px; }
.detail .back{ font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.detail h1{ font-family:var(--serif); font-size:46px; font-weight:900; line-height:1.05; margin:14px 0 6px; }
.detail .sub{ font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--accent2); }
.detail .desc{ margin:22px 0; font-size:16px; line-height:1.7; max-width:62ch; }
.detail .facts{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:18px; border-top:.5px solid var(--rule); padding-top:22px; }
.detail .fact{ width:fit-content; } /* shrink to label width, stay left in the cell… */
.detail .fact .k{ font-family:var(--mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.detail .fact .v{ font-family:var(--serif); font-size:22px; font-weight:700; color:var(--accent); margin-top:3px; text-align:center; } /* …so the value centers under the label */

/* ---- auth (login / signup) --------------------------------------------- */
.auth{ max-width:380px; margin:0 auto; padding:48px 40px 64px; }
.auth h1{ font-family:var(--serif); font-size:32px; font-weight:900; margin-bottom:6px; }
.auth-sub{ color:var(--muted); font-size:14px; margin-bottom:18px; }
.auth-input{ display:block; width:100%; padding:11px 13px; margin-bottom:12px; font:inherit; font-size:14px;
  background:#fff; border:1px solid var(--rule); border-radius:0; color:var(--ink); }
.auth-input:focus{ outline:none; border-color:var(--accent); }
.auth-btn{ width:100%; padding:12px; font-family:var(--mono); font-size:12px; letter-spacing:.12em;
  text-transform:uppercase; background:var(--ink); color:var(--paper); border:none; cursor:pointer; }
.auth-btn:hover{ background:var(--accent); }
.auth-error{ background:#fbeded; border:1px solid #e6b8b8; color:#c0392b; padding:9px 12px; font-size:13px; margin-bottom:14px; }
.auth-note{ color:var(--muted); font-size:13px; margin-top:16px; }

/* ---- pricing ----------------------------------------------------------- */
.pricing{ max-width:1000px; margin:0 auto; padding:40px; }
.tiers{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:18px; margin-top:24px; }
.tier{ border:1px solid var(--rule); padding:24px; }
.tier.featured{ border:2px solid var(--accent); }
.coming-soon{ font-family:var(--mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#c0392b; margin-bottom:6px; }
.tier h3{ font-family:var(--serif); font-size:24px; }
.tier .price{ font-family:var(--mono); font-size:13px; color:var(--accent2); margin:6px 0 14px; }
.tier ul{ list-style:none; font-size:13px; line-height:1.9; color:#3D3C38; }
.tier-note{ font-size:11px; line-height:1.5; color:var(--muted); margin-top:12px; padding-top:10px; border-top:.5px solid var(--rule); }

@media(max-width:820px){
  .body-grid{ grid-template-columns:1fr; }
  .statbar{ grid-template-columns:1fr 1fr; }
  .mast-title{ font-size:52px; }
}

/* ===================================================================== *
 *  OSPARNA BRAND THEME — TEST OVERRIDES  (delete this whole block to revert)
 *  Blue 1 #4169ff (royal) + Blue 2 #2d9cec (sky) -> enclosures/buttons/highlights
 *  Grey #4d4d4d -> ALL text (no blue text, except the DMV wordmark)
 *  Dark blue #0d1f4f -> page background
 * ===================================================================== */
:root{
  --ink:#c7ccd8;        /* one grey for ALL text — light, legible on dark blue */
  --muted:#c7ccd8;      /* same grey (no separate label shade) */
  --paper:#ffffff;      /* light reading surface */
  --canvas:#0d1f4f;     /* dark blue page background */
  --accent:#4169ff;     /* Blue 1 — buttons, active enclosures, borders */
  --accent2:#2d9cec;    /* Blue 2 — highlights, selection, wordmark */
  --enc:#4169ff;
  --rule:#2d9cec;       /* all separators: light blue (Blue 2) */
  --ad-bg:#f5f7ff;
}

/* dark-blue canvas everywhere — center included, no light surfaces */
body{ background:var(--canvas); }
.mast, .statbar, .body-grid, .foot, .detail, .auth, .pricing, .feed-head{
  background:var(--canvas);
}
/* dark form/map fields */
.auth-input, .nav-search input[type=search], .region-map,
.submit-form .fld input, .submit-form .fld select, .submit-form .fld textarea{
  background:#0a1840;
}
.ad{ background:rgba(255,255,255,.05); }
/* all right-rail ads -> fixed 300x250 rectangle */
.ad-sidebar{ width:300px; height:250px; margin-inline:auto; }

/* selection + highlights in sky blue */
::selection{ background:var(--accent2); color:#fff; }
::-moz-selection{ background:var(--accent2); color:#fff; }

/* structural enclosures + buttons -> blue (were near-black/green) */
.mast{ border-bottom:2px solid var(--accent2); }
.statbar{ border-bottom:2px solid var(--accent2); }
.foot{ border-top:2px solid var(--accent2); }
/* upper separators (under the top menu, and before the Investors/Companies tabs)
   thickened to 2px to match the rule under the tabs */
.mast-top, .mast-title-wrap{ border-bottom-width:2px; }
.view-link.active{ background:var(--accent); color:#fff; }
.auth-btn{ background:var(--accent); }
.auth-btn:hover{ background:var(--accent2); }
.tier.featured{ border-color:var(--accent); }
.card:hover{ background:rgba(65,105,255,.05); }

/* TEXT IS GREY — never blue: override every blue-text rule */
a,
.stat-n, .card-meta .m.people, .region-row a.active, .edition-row a,
.search-active a, .view-toggle .add-firm, .match-hint a,
.nav-search-btn:hover, .detail .fact .v{ color:var(--ink); }
.card-cat, .feed-count, .card-meta .m.gold, .card-meta .m.url,
.detail .sub, .tier .price, .ad-ph .dim, .match-hint .warn{ color:var(--muted); }
/* old hardcoded greys (#3D3C38 / #888780) -> the one grey */
.card-desc, .tier ul, .ad-label, .ad-ph .pos{ color:var(--ink); }

/* wordmark: "DMV" = Blue 2 (sky), "VC" = grey */
.mast-title{ color:var(--accent2); }
.mast-title .vc{ color:var(--ink); }
