/* css/style.css - minimal, readable, NYT-inspired layout */
:root{
  --max-width:1100px;
  --accent:#222;
  --muted:#6b6b6b;
  --serif:"Georgia", "Times New Roman", serif;
  --sans: "Helvetica Neue", Arial, sans-serif;
}

*{box-sizing:border-box}
body{
  margin:0;
  font-family:var(--sans);
  color:#111;
  line-height:1.5;
  background:#fff;
}

.container{max-width:var(--max-width);margin:0 auto;padding:20px;}

.masthead{
  border-bottom:1px solid #eee;
  padding:22px 0;
}
.site-title{
  font-family:var(--serif);
  font-size:36px;
  margin:0;
  letter-spacing:1px;
}
.byline{color:var(--muted);margin-top:6px;font-size:14px}

/* layout */
.main-grid{display:grid;grid-template-columns: 1fr 380px;gap:28px;padding:28px 0}
.article{font-family:var(--serif);padding-right:8px}
.article-title{font-size:26px;margin:0 0 8px}
.lede{font-size:16px;color:#222;margin-bottom:18px}
.article-body h3{font-size:18px;margin-top:18px;margin-bottom:6px}

/* sidebar/map */
.sidebar{position:relative}
#map{height:420px;border:1px solid #e6e6e6;border-radius:4px}
.controls{margin-top:10px;display:flex;flex-direction:column;gap:8px}
.controls button, .controls select{
  padding:8px 10px;border-radius:4px;border:1px solid #ddd;background:#fff;font-size:14px;cursor:pointer
}

.list{margin-top:14px}
.list h4{margin:6px 0}
#listItems{list-style:none;padding:0;margin:0;max-height:240px;overflow:auto}
#listItems li{padding:6px 0;border-bottom:1px dashed #f0f0f0;font-size:14px}

/* responsive */
@media (max-width:900px){
  .main-grid{grid-template-columns:1fr; padding:18px 0}
  .sidebar{order:-1}
  #map{height:300px}
}
