:root{
  --bg:#ffffff;
  --panel:#f7f8fb;
  --text:#111827;
  --muted:#6b7280;
  --brand:#1a73e8;
  --border:#e5e7eb;
  --radius:16px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:var(--bg)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{width:min(1180px,92%);margin-inline:auto}
h1{font-size:2rem;line-height:1.2;margin:0.25rem 0 0.75rem}
h2{font-size:1.375rem;margin:0 0 0.75rem}
h3{font-size:1.05rem;margin:0 0 0.35rem}
p{margin:0.25rem 0 0.75rem;color:var(--muted)}

.topbar{display:flex;justify-content:space-between;align-items:center;padding:10px 0;color:var(--muted)}
.lang-btn{border:1px solid var(--border);background:#fff;border-radius:10px;padding:6px 10px;margin-right:8px}
.search{border:1px solid var(--border);border-radius:999px;padding:8px 14px;min-width:260px}
.link{font-size:.9rem}

.navbar{display:grid;grid-template-columns:230px 1fr auto;gap:1rem;align-items:center;padding:14px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.logo strong{display:block}
.logo small{display:block;color:var(--muted)}
.menu{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0;margin:0}
.menu a{padding:8px 10px;border-radius:10px;color:#374151}
.menu a:hover{background:var(--panel)}
.nav-right{display:flex;gap:.5rem}

.btn{display:inline-block;padding:10px 14px;border-radius:12px;border:1px solid var(--border)}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}
.btn.outline{background:#fff;color:#111}

.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;padding:18px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);margin:20px auto}
.hero .updated{display:inline-block;background:var(--panel);height:10px;width:120px;border-radius:999px;margin:6px 0}
.hero .hero-right img{border-radius:12px;filter:contrast(.95) saturate(.9)}
.hero-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0 1rem}

.section{margin:28px auto}
.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:16px}
.card:hover{box-shadow:0 2px 8px rgba(0,0,0,.05)}

.two-col{display:grid;grid-template-columns:1.4fr .9fr;gap:20px;margin:28px auto}
.notice{background:#fff;border:1px solid var(--border);border-radius:14px;padding:16px;margin-bottom:12px}
.person-card{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--border);border-radius:14px;padding:12px;margin-bottom:12px}
.avatar{width:56px;height:56px;border-radius:50%;object-fit:cover}

.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.project-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:16px;position:relative}
.tag{position:absolute;right:12px;top:12px;border-radius:999px;font-size:.8rem;padding:4px 8px}
.tag.ongoing{background:#e7f2ff;color:#1452a0}
.tag.completed{background:#e9fbe7;color:#1b7a2f}

.ward-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.ward-search{border:1px solid var(--border);border-radius:12px;padding:10px 12px}
.map-box{border:1px solid var(--border);border-radius:14px;overflow:hidden}

.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.event-card{background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden}
.event-card p{padding:10px}

.feedback-bar{display:flex;justify-content:space-between;align-items:center;background:#123c7a;color:#fff;border-radius:14px;padding:18px;margin:34px auto}
.feedback-bar .btn.outline{border-color:#fff;color:#fff;background:transparent}

.footer{margin-top:34px;border-top:1px solid var(--border);padding:22px 0;background:#fff}
.footer-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.footer h4{margin:.25rem 0 .5rem}
.footer a, .footer p{display:block;color:#4b5563;margin:.25rem 0;font-size:.95rem}
.footer-copy{text-align:center;color:#6b7280;margin-top:12px}

@media (max-width: 980px){
  .hero{grid-template-columns:1fr}
  .two-col{grid-template-columns:1fr}
  .project-grid,.card-grid,.event-grid{grid-template-columns:1fr 1fr}
  .navbar{grid-template-columns:1fr;gap:.5rem}
}
@media (max-width: 640px){
  .project-grid,.card-grid,.event-grid{grid-template-columns:1fr}
  .footer-cols{grid-template-columns:1fr 1fr}
  .ward-row{grid-template-columns:1fr}
}
