:root{
  --primary:#0f766e;
  --primary-dark:#0f3d3e;
  --accent:#f6b73c;
  --ink:#102a43;
  --muted:#627d98;
  --soft:#f3f8f8;
  --line:#d9e7e7;
  --card:#ffffff;
}

*{box-sizing:border-box;}
body{
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);
  background:#f7fbfb;
}

.topbar{
  background:rgba(8, 47, 52, .94);
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(255,255,255,.12);
}
.navbar-brand{
  font-weight:800;
  letter-spacing:-.03em;
}
.brand-mark{
  width:38px;
  height:38px;
  display:inline-grid;
  place-items:center;
  border-radius:12px;
  background:linear-gradient(135deg,var(--accent),#ffe08a);
  color:#12343b;
  font-weight:800;
  margin-right:.65rem;
}
.nav-link,
.navbar-nav .menu-item a{
  color:rgba(255,255,255,.78)!important;
  font-weight:500;
  text-decoration:none;
  display:block;
  padding:.5rem;
}
.nav-link:hover,
.navbar-nav .menu-item a:hover{color:#fff!important;}

.hero{
  position:relative;
  min-height:660px;
  display:flex;
  align-items:center;
  overflow:hidden;
  background-image:
    linear-gradient(90deg,rgba(4,28,33,.90) 0%,rgba(4,28,33,.70) 38%,rgba(4,28,33,.22) 72%,rgba(4,28,33,.10) 100%),
    url('../img/putrajaya-hero-bg.jpg');
  background-size:cover;
  background-position:center;
}
.hero::after{
  content:"";
  position:absolute;
  inset:auto 0 0 0;
  height:150px;
  background:linear-gradient(180deg,rgba(247,251,251,0),#f7fbfb);
  pointer-events:none;
}
.hero-content{position:relative;z-index:1;max-width:760px;}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  color:#fff;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.22);
  padding:.45rem .75rem;
  border-radius:999px;
  font-weight:700;
  font-size:.84rem;
  margin-bottom:1.25rem;
}
.hero h1{
  color:#fff;
  font-size:clamp(2.45rem,6vw,5.3rem);
  line-height:.98;
  letter-spacing:-.065em;
  font-weight:800;
  margin-bottom:1.25rem;
}
.hero p{
  color:rgba(255,255,255,.84);
  font-size:1.15rem;
  line-height:1.75;
  max-width:650px;
}
.hero-search{
  background:rgba(255,255,255,.96);
  border-radius:24px;
  padding:.75rem;
  box-shadow:0 28px 90px rgba(0,0,0,.25);
  border:1px solid rgba(255,255,255,.35);
  margin-top:2rem;
}
.hero-search input,.hero-search select{
  border:0;
  background:#f4f8f8;
  border-radius:16px;
  padding:.95rem 1rem;
}
.hero-search input:focus,.hero-search select:focus{
  box-shadow:0 0 0 .25rem rgba(15,118,110,.14);
  background:#fff;
}
.btn-main{
  background:var(--accent);
  color:#173235;
  font-weight:800;
  border:0;
  border-radius:16px;
  padding:.95rem 1.25rem;
}
.btn-main:hover{background:#f0a919;color:#173235;}

.stats-section{
  margin-top:-1.5rem;
  z-index:2;
}
.stat-card{
  background:rgba(255,255,255,.94);
  border:1px solid rgba(217,231,231,.85);
  border-radius:22px;
  box-shadow:0 18px 45px rgba(17,54,60,.08);
  padding:1.3rem;
  height:100%;
}
.stat-number{
  font-weight:800;
  font-size:2.15rem;
  letter-spacing:-.05em;
  color:var(--primary-dark);
}
.stat-label{color:var(--muted);font-weight:600;}

.section-title{
  font-weight:800;
  letter-spacing:-.045em;
  color:var(--primary-dark);
}
.section-subtitle{color:var(--muted);line-height:1.7;}

.agency-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:24px;
  height:100%;
  overflow:hidden;
  box-shadow:0 16px 40px rgba(17,54,60,.06);
  transition:transform .2s ease, box-shadow .2s ease;
}
.agency-card:hover{
  transform:translateY(-4px);
  box-shadow:0 24px 60px rgba(17,54,60,.11);
}
.agency-card .card-top{
  padding:1.25rem 1.25rem .85rem;
  border-bottom:1px solid var(--line);
  background:linear-gradient(135deg,#ffffff,#f4fbfb);
}
.agency-badge{
  display:inline-flex;
  align-items:center;
  padding:.35rem .65rem;
  border-radius:999px;
  background:#e6f6f5;
  color:var(--primary);
  font-weight:800;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  margin-bottom:.8rem;
}
.agency-card h3{
  font-size:1.1rem;
  font-weight:800;
  line-height:1.35;
  letter-spacing:-.025em;
  margin:0;
}
.agency-card .body{padding:1.25rem;}
.info-row{
  display:flex;
  gap:.75rem;
  align-items:flex-start;
  color:#334e68;
  margin-bottom:.85rem;
  line-height:1.55;
}
.info-icon{
  flex:0 0 30px;
  width:30px;
  height:30px;
  border-radius:10px;
  display:grid;
  place-items:center;
  background:#f1f7f7;
}
.agency-actions{
  display:flex;
  gap:.65rem;
  flex-wrap:wrap;
  margin-top:1.15rem;
}
.btn-soft{
  border:1px solid var(--line);
  background:#fff;
  color:var(--primary-dark);
  border-radius:14px;
  font-weight:700;
  padding:.65rem .9rem;
  text-decoration:none;
}
.btn-soft:hover{background:var(--soft);color:var(--primary);}

.directory-panel{
  background:#fff;
  border:1px solid var(--line);
  border-radius:26px;
  overflow:hidden;
  box-shadow:0 18px 50px rgba(17,54,60,.06);
}
.table thead th{
  background:#0f3d3e;
  color:#fff;
  border:0;
  font-size:.84rem;
  letter-spacing:.02em;
  padding:1rem;
}
.table tbody td{
  padding:1rem;
  vertical-align:middle;
  border-color:#edf4f4;
  color:#334e68;
}
.table tbody tr:hover{background:#f8fcfc;}
.category-pill{
  display:inline-block;
  padding:.35rem .6rem;
  border-radius:999px;
  background:#fff4dd;
  color:#8a5a00;
  font-weight:700;
  font-size:.78rem;
  white-space:nowrap;
}

.cta{
  background:linear-gradient(135deg,#0f3d3e,#0f766e);
  border-radius:30px;
  color:#fff;
  overflow:hidden;
  position:relative;
}
.cta::after{
  content:"";
  position:absolute;
  width:360px;
  height:360px;
  border-radius:999px;
  background:rgba(246,183,60,.18);
  right:-110px;
  top:-120px;
}
.cta-content{position:relative;z-index:1;}
.cta-text{color:rgba(255,255,255,.82);line-height:1.7;}
.footer{
  background:#082f34;
  color:rgba(255,255,255,.76);
}
.footer a{color:#fff;text-decoration:none;}
.content-fallback{padding-top:120px!important;}

@media (max-width:991px){
  .hero{min-height:720px;background-position:center top;}
  .hero-search{border-radius:20px;}
}
@media (max-width:575px){
  .hero{min-height:760px;}
  .agency-actions .btn-soft{width:100%;text-align:center;}
  .table{min-width:900px;}
}
