/* NearbyTraders — light, elderly-friendly theme (2026-02) */
:root{
  --bg:#f6f7f9;
  --surface:#ffffff;
  --text:#1a1a1a;
  --muted:#566273;
  --link:#1f6feb;
  --border:#d9dee6;
  --shadow:0 6px 18px rgba(20,33,61,.08);
  --accent:#1f6feb;
  --accent-hover:#1859c9;
  --star:#f4b400;
  --success:#137333;
  --danger:#b3261e;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Inter,Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  font-size:18px;
  line-height:1.65;
}

a{color:var(--link);text-decoration:underline;text-underline-offset:2px}
a:hover{text-decoration-thickness:2px}

.container{max-width:980px;margin:0 auto;padding:18px 16px 96px}

/* Top navigation */
.nav{position:sticky;top:0;background:rgba(255,255,255,.92);backdrop-filter:saturate(160%) blur(10px);border-bottom:1px solid var(--border);z-index:50}
.nav-inner{max-width:980px;margin:0 auto;display:flex;gap:14px;align-items:center;padding:14px 16px}
.brand{font-weight:800;letter-spacing:.2px;text-decoration:none;color:var(--text);font-size:20px}
.nav a{font-weight:700;color:var(--text);text-decoration:none;padding:10px 10px;border-radius:10px;min-height:44px;display:flex;align-items:center}
.nav a:hover{background:#eef3ff;color:var(--accent)}
.nav .spacer{flex:1}

.breadcrumbs{color:var(--muted);font-size:16px;margin:14px 0 0}
.breadcrumbs a{color:var(--muted);text-decoration:underline}

.hero{padding:10px 0 6px}
.hero h1{margin:10px 0 8px;font-size:36px;line-height:1.15}
.hero p{margin:0 0 14px;color:var(--muted);font-size:18px}

/* Cards / layout (used across directory pages) */
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;margin-top:18px}
.card{grid-column:span 12;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:18px}
@media (min-width:760px){.card.span-6{grid-column:span 6}.card.span-4{grid-column:span 4}}
.card h2{margin:0 0 10px;font-size:22px}
.card ul{margin:10px 0 0;padding-left:20px}
.card li{margin:8px 0;color:var(--muted)}
.card li a{color:var(--text);text-decoration:underline}

.section-title{margin:24px 0 10px;font-size:22px}

.listing{padding:16px 0;border-top:1px solid var(--border)}
.listing:first-child{border-top:none}
.listing h3{margin:0 0 6px;font-size:22px}

.meta{color:var(--muted);font-size:16px;line-height:1.6}
.meta strong{color:var(--text)}

.kv{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.kv a,.kv span{display:inline-flex;align-items:center;font-size:16px;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:10px 14px;text-decoration:none;background:#fff}
.kv a:hover{border-color:#b8c3d6;box-shadow:0 1px 0 rgba(0,0,0,.02)}

/* Forms */
.search-form{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:18px;margin:16px 0;display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.form-group{display:flex;flex-direction:column;gap:6px}
.form-group.full{flex:1;min-width:240px}
.form-group label{font-size:16px;color:var(--text);font-weight:800}
.form-group input,.form-group select{height:48px;padding:10px 12px;background:#fff;border:1px solid var(--border);border-radius:12px;color:var(--text);font-size:18px;font-family:inherit}
.form-group input:focus,.form-group select:focus{outline:3px solid rgba(31,111,235,.18);border-color:var(--accent)}
.form-group input::placeholder{color:#7a8797}

.btn-search,.btn-submit{
  height:48px;
  padding:0 18px;
  background:var(--accent);
  color:#fff;
  border:none;
  border-radius:12px;
  font-weight:800;
  cursor:pointer;
  font-size:18px;
}
.btn-search:hover,.btn-submit:hover{background:var(--accent-hover)}
.btn-search:disabled,.btn-submit:disabled{opacity:.6;cursor:not-allowed}

@media (max-width:540px){
  .btn-search{width:100%}
}

/* Status boxes */
.loading{text-align:center;padding:18px;color:var(--muted)}
.spinner{display:inline-block;width:18px;height:18px;border:3px solid #d7dce6;border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite;vertical-align:-3px;margin-right:8px}
@keyframes spin{to{transform:rotate(360deg)}}
.error{background:#fff2f1;border:1px solid #f2b8b5;border-radius:12px;padding:14px;margin:16px 0;color:var(--danger);font-size:16px}
.success{background:#edf7ee;border:1px solid #b7dfc0;border-radius:12px;padding:14px;margin:16px 0;color:var(--success);font-size:16px}

/* Search results */
.sort-controls{display:flex;gap:10px;flex-wrap:wrap}
.sort-btn{height:44px;padding:0 14px;background:var(--surface);border:1px solid var(--border);border-radius:12px;color:var(--text);cursor:pointer;font-size:16px;font-weight:800}
.sort-btn.active{background:#e8f0ff;border-color:#b5cdfc;color:var(--accent)}
.sort-btn:hover{border-color:#b8c3d6}

.results-header{display:flex;justify-content:space-between;align-items:center;margin:18px 0 10px;flex-wrap:wrap;gap:12px}
.result-count{color:var(--muted);font-size:16px}

.result-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:18px;margin:12px 0}
.result-card h3{margin:0 0 8px;font-size:24px;line-height:1.2}

.trade-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:#eef3ff;color:var(--accent);border:1px solid #cfe0ff;font-weight:900;font-size:15px}

.result-meta{color:var(--muted);font-size:16px;line-height:1.6;margin:8px 0}

.result-rating{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px}
.stars{color:var(--star);letter-spacing:1px;font-size:18px}
.rating-text{color:var(--muted);font-size:16px}

.result-actions{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap;align-items:center}
.btn-action{
  min-height:48px;
  padding:10px 14px;
  background:#eef3ff;
  border:1px solid #cfe0ff;
  border-radius:12px;
  color:var(--accent);
  font-size:16px;
  font-weight:900;
  cursor:pointer;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.btn-action:hover{background:#e2ecff}

.btn-claim-link{font-size:16px;color:var(--muted);text-decoration:underline;cursor:pointer;background:transparent;border:none;padding:10px 4px;min-height:44px}
.btn-claim-link:hover{color:var(--text)}

/* Modal (claim listing) */
.modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(17,24,39,.55);z-index:80;align-items:center;justify-content:center;overflow:auto;padding:18px}
.modal.active{display:flex}
.modal-content{background:var(--surface);border:1px solid var(--border);border-radius:18px;box-shadow:0 22px 60px rgba(0,0,0,.20);padding:22px;max-width:560px;width:100%}
.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.modal-header h2{margin:0;font-size:26px;line-height:1.2}
.modal-close{background:#f2f4f7;border:1px solid var(--border);color:var(--text);font-size:22px;cursor:pointer;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center}
.modal-close:hover{background:#e9edf3}
.form-field{margin-bottom:14px}
.form-field label{display:block;font-size:16px;color:var(--text);margin-bottom:6px;font-weight:800}
.form-field input[type="text"],.form-field input[type="email"],.form-field input[type="tel"],.form-field textarea{width:100%;padding:12px 12px;background:#fff;border:1px solid var(--border);border-radius:12px;color:var(--text);font-size:18px;font-family:inherit;resize:vertical}
.form-field input:focus,.form-field textarea:focus{outline:3px solid rgba(31,111,235,.18);border-color:var(--accent)}
.form-field textarea{min-height:110px}

.modal-confirmation{text-align:center;padding:16px}
.modal-confirmation h3{margin:0 0 12px;color:var(--success);font-size:24px}
.modal-confirmation p{color:var(--muted);margin:0}

/* Content (guides / legal) */
.content{font-size:18px;line-height:1.85;color:var(--text)}
.content h2{font-size:28px;margin:26px 0 12px;color:var(--text)}
.content h3{font-size:22px;margin:18px 0 8px;color:var(--text)}
.content p{margin:0 0 14px}
.content ul{margin:12px 0;padding-left:22px}
.content li{margin:8px 0}

.cta{background:#eef3ff;border:1px solid #cfe0ff;border-radius:16px;padding:18px;margin:18px 0}
.cta p{margin:0;font-size:18px}
.cta a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;margin-top:12px;padding:10px 14px;background:var(--accent);color:#fff;border-radius:12px;text-decoration:none;font-weight:900}
.cta a:hover{background:var(--accent-hover)}

/* Footer */
.footer{margin-top:36px;color:var(--muted);font-size:16px}
.footer a{color:var(--text)}

/* Back to top */
.back-to-top{
  position:fixed;
  right:16px;
  bottom:16px;
  min-height:52px;
  padding:0 16px;
  border-radius:999px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.95);
  box-shadow:var(--shadow);
  font-size:16px;
  font-weight:900;
  color:var(--text);
  cursor:pointer;
  display:none;
}
.back-to-top.show{display:inline-flex;align-items:center}
