/* ---------- Root ---------- */
:root{
  /* Core */
  --bg: #f3f4f6;
  --surface: #ffffff;
  --surface-2: #eceff3;
  --paper: #ffffff;

  --ink: #0b1220;
  --ink-2: #22314a;
  --muted: #6a7a93;
  --muted-2: #52637d;

  /* Accent (yellow) */
  --accent: #f7c948;
  --accent-2: #ffdd7a;
  --accent-ink: #2b2100;

  /* Support */
  --good: #1aa36f;
  --warn: #f59e0b;
  --bad:  #ef4444;

  /* UI */
  --border: rgba(13,23,44,.12);
  --border-light: #e7edf6;

  --shadow: 0 18px 50px rgba(0,0,0,.18);
  --shadow-soft: 0 10px 30px rgba(13,23,44,.12);

  --radius-xl: 22px;
  --radius: 16px;
  --radius-sm: 12px;

  --container: min(1160px, 92%);
  --topbar-height: 84px;

  /* “Dark panel” (dropdowns, overlays) */
  --night: rgba(18,31,56,.96);
  --night-border: rgba(255,255,255,.12);
  --night-ink: rgba(234,241,255,.92);
  --night-muted: rgba(234,241,255,.72);
}

*{ box-sizing: border-box; }
html, body{ height: 100%; }
html{ scroll-padding-top: calc(var(--topbar-height) + 12px); }

body{
  margin:0;
  font-family: "Inter", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  line-height: 1.55;
  padding-top: var(--topbar-height);

  background: linear-gradient(180deg, #fafafa 0%, #f3f4f6 52%, #eceff3 100%);

  color: var(--ink);
}

img{ max-width: 100%; display:block; }
a{ color: inherit; }
:focus-visible{
  outline: 3px solid rgba(247,201,72,.55);
  outline-offset: 2px;
  border-radius: 10px;
}

.wrap{ width: var(--container); margin-inline: auto; }

/* =========================================================
   TOP BAR / NAV (Main Site)
========================================================= */
.topbar{
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 100;
  backdrop-filter: blur(10px);
  background: rgba(252,248,242,.86);
  border-bottom: 1px solid rgba(70,54,39,.10);
  z-index: 1000;
  box-shadow: 0 8px 24px rgba(36, 28, 20, .05);
}

.navline{
  display:flex;
  align-items:center;
  justify-content: space-between;
  padding: 14px 0;
  gap: 14px;
}

.brandmark img,
.brand-logo{
  width: 44px;
  height: 44px;
  padding: 0px;
  border-radius: 14px;
  background: rgba(255,255,255,.85);
  border: 1px solid rgba(13,23,44,.12);
  object-fit: contain;
  object-position: center;
  display: block;
  box-shadow: 0 10px 22px rgba(13,23,44,.10);
  filter: none;
}
.brandmark:hover img,
.brand:hover .brand-logo{
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(13,23,44,.14);
  transition: .18s ease;
}

.brandmark{
  display:flex;
  align-items:center;
  gap: 12px;
  text-decoration:none;
  min-width: 220px;
}

.brandmark .title{
  display:flex;
  flex-direction: column;
  line-height: 1.1;
}
.brandmark .title strong{
  font-size: 16px;
  letter-spacing: .4px;
  color: var(--ink);
}
.brandmark .title span{
  font-size: 12px;
  color: rgba(11,18,32,.65);
}

.nav-toggle{ display:none; }
.burger{
  display:none;
  width: 44px;
  height: 40px;
  border: 1px solid rgba(13,23,44,.14);
  border-radius: 12px;
  background: rgba(11,18,32,.04);
  cursor:pointer;
  align-items:center;
  justify-content:center;
}
.burger i{
  width: 18px;
  height: 2px;
  background: rgba(11,18,32,.88);
  position: relative;
  display:block;
}
.burger i::before,
.burger i::after{
  content:"";
  position:absolute;
  left:0;
  width: 18px;
  height: 2px;
  background: rgba(11,18,32,.88);
}
.burger i::before{ top: -6px; }
.burger i::after{ top: 6px; }

.navlinks{
  display:flex;
  align-items:center;
  gap: 8px;
  flex-wrap: nowrap;
}
.navlinks a,
.navlinks button{
  text-decoration:none;
  font-weight: 600;
  font-size: 13px;
  padding: 10px 11px;
  border-radius: 12px;
  color: rgba(11,18,32,.88);
  background: transparent;
  border: 1px solid transparent;
  transition: .18s ease;
}
.navlinks a:hover{
  background: rgba(34,197,94,.08);
  border-color: rgba(13,23,44,.10);
}
.navlinks a.is-active{
  background: rgba(247,201,72,.28);
  border-color: rgba(247,201,72,.45);
  color: #0b1220;
}
.nav-links a.active{
  background: rgba(247,201,72,.28);
  border-color: rgba(247,201,72,.45);
  color: #0b1220;
}
.menu{ position: relative; }
.menu > .menu-btn{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  cursor: default;
}
.menu > .menu-btn::after{
  content:"▾";
  font-size: 12px;
  opacity: .85;
}
.menu-panel{
  position:absolute;
  top: calc(100% + 10px);
  left: 0;
  min-width: 460px;
  max-height: min(65vh, 560px);
  overflow:auto;
  padding: 10px;
  border-radius: 16px;
  background: var(--night);
  border: 1px solid var(--night-border);
  box-shadow: var(--shadow);
  display:grid;
  grid-template-columns: repeat(2, minmax(180px, 1fr));
  gap: 6px;
  opacity: 0;
  transform: translateY(6px);
  pointer-events: none;
  transition: .18s ease;
}
.menu-panel a{
  display:block;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid transparent;
  color: var(--night-ink);
}
.menu-panel a:hover{
  background: rgba(247,201,72,.16);
  border-color: rgba(247,201,72,.28);
}
.menu-panel a.is-active{
  background: rgba(247,201,72,.18);
  border-color: rgba(247,201,72,.34);
  color: #fff8dd;
}
.menu.is-open .menu-panel{
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 10px;
  padding: 11px 14px;
  border-radius: 14px;
  font-weight: 700;
  font-size: 13.5px;
  text-decoration:none;
  border: 1px solid transparent;
  cursor:pointer;
  transition: .18s ease;
}

.btn-primary{
  background: linear-gradient(180deg, var(--accent) 0%, #f5b000 100%);
  color: var(--accent-ink);
  box-shadow: 0 14px 26px rgba(247,201,72,.22);
}
.btn-primary:hover{ filter: brightness(1.02); transform: translateY(-1px); }
.btn-quiet{
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.25);
  color: #ffffff;
}
.btn-quiet:hover{ background: rgba(11,18,32,.06); }

/* =========================================================
   HERO
========================================================= */
.hero{
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  padding: 0;
  background:
    linear-gradient(
      120deg,
      rgba(11,18,32,.55) 0%,
      rgba(11,18,32,.35) 45%,
      rgba(11,18,32,.25) 100%
    ),
    url("static/images/hero-excavator.jpg");

  background-size: cover;
  background-position: center 35%; /* Prevents zoom-crop effect */
  background-repeat: no-repeat;

  color: #ffffff;
}

/* HERO TEXT FIXES */
.hero .stats-head h2{
  color: #ffffff;
}

.hero .stats-head .hint{
  color: rgba(255,255,255,.75);
}

.hero .kpi{
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.20);
}

.hero .kpi .label{
  color: rgba(255,255,255,.80);
}

.hero .kpi .value{
  color: var(--ink);
  font-size: 28px;
  font-weight: 900;
}

.hero-grid{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 22px;
  align-items: stretch;
}

.hero-card{
  border-radius: var(--radius-xl);
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(4px);
  box-shadow: 0 18px 50px rgba(0,0,0,.35);
  overflow:hidden;
}


.hero-message{
  padding: 26px 26px 22px;
  position: relative;
}

/* ===============================
   HERO WORD ROTATION
================================= */

.hero-rotator{
  position: relative;
  height: 70px;
  overflow: hidden;
  font-size: clamp(34px, 3vw + 12px, 52px);
  font-weight: 900;
  line-height: 1.1;
  color: #ffffff;
}

.hero-rotator .slide{
  position: absolute;
  width: 100%;
  opacity: 0;
  animation: rotateWords 15s infinite;
  text-align: left;
}

.hero-rotator .slide:nth-child(1){ animation-delay: 0s; }
.hero-rotator .slide:nth-child(2){ animation-delay: 3s; }
.hero-rotator .slide:nth-child(3){ animation-delay: 6s; }
.hero-rotator .slide:nth-child(4){ animation-delay: 9s; }
.hero-rotator .slide:nth-child(5){ animation-delay: 12s; }

@keyframes rotateWords{
  0%{ opacity:0; transform: translateY(20px); }
  5%{ opacity:1; transform: translateY(0); }
  25%{ opacity:1; transform: translateY(0); }
  30%{ opacity:0; transform: translateY(-20px); }
  100%{ opacity:0; }
}

.hero-about-list{
  margin: 14px 0;
  padding-left: 18px;
  font-size: 14px;
  color: rgba(255,255,255,.9);
}

.hero-about-list li{
  margin-bottom: 6px;
}

.clean-hero{
  background: transparent;
  padding: 40px 0 20px;
}

.clean-hero .hero-inner{
  align-items: stretch;
  grid-template-columns: minmax(340px, .98fr) minmax(0, 1.02fr);
  gap: 26px;
}

.clean-hero .quick-stats{
  background: #ffffff;
  border: 1px solid rgba(13,23,44,.08);
  box-shadow: 0 8px 24px rgba(13,23,44,.08);
}

.clean-hero .hero-media{
  min-height: 100%;
}

.clean-hero .hero-media img{
  min-height: 100%;
  object-position: center;
}

.clean-hero .hero-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
}

.quick-stats--full{
  margin-top: 22px;
}

body:has(.hero--county){
  background: #f4f6fa !important;
}

body.dashboard-page{
  background: #f4f6fa;
}

.badge{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.25);
  color: #ffffff;
  font-weight: 800;
  font-size: 12px;
}
.badge .dot{
  width: 9px;
  height: 9px;
  border-radius: 99px;
  background: var(--accent);
  box-shadow: 0 0 0 5px rgba(247,201,72,.18);
}

.hero-message h1{
  margin: 14px 0 10px;
  font-size: clamp(26px, 2.8vw + 10px, 44px);
  line-height: 1.15;
  letter-spacing: .2px;
  color: #ffffff;
}
.hero-message h1 span{
  color: var(--accent);
  text-shadow: 0 2px 8px rgba(0,0,0,.35);
}
.hero-message p{
  margin: 0;
  color: rgba(255,255,255,.85);
  max-width: 62ch;
  font-size: 14.5px;
}

.hero-actions{
  display:flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}
.hero-media{
  display:flex;
  flex-direction: column;
  gap: 12px;
}
.media-frame{
  height: 260px;
  border-radius: var(--radius-xl);
  overflow:hidden;
  border: 1px solid rgba(13,23,44,.10);
  background: rgba(255,255,255,.55);
  box-shadow: var(--shadow);
}
.media-frame img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.stats{ padding: 18px; }

.stats-head{
  display:flex;
  align-items:flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}
.stats-head h2{
  margin:0;
  font-size: 16px;
  letter-spacing: .2px;
  color: var(--ink);
}
.stats-head .hint{
  margin:0;
  color: rgba(34,49,74,.65);
  font-size: 12.5px;
}

.stats-grid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.kpi{
  padding: 14px 14px 12px;
  border-radius: 18px;
  background: rgba(255,255,255,.70);
  border: 1px solid rgba(13,23,44,.10);
  transition: .18s ease;
}
.kpi:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.85);
}
.kpi .label{
  font-size: 12.5px;
  color: rgba(34,49,74,.65);
  margin: 0 0 8px;
  font-weight: 700;
}
.kpi .value{
  font-size: 28px;
  font-weight: 900;
  margin: 0;
  letter-spacing: .2px;
  color: var(--ink);
}
.kpi .value.good,
.kpi .value.warn,
.kpi .value.neutral{ color: var(--ink); }

.metric-breakdown{
  display:flex;
  flex-wrap:wrap;
  gap: 8px;
  margin-top: 12px;
}

.breakdown-item{
  display:inline-flex;
  align-items:center;
  gap: 7px;
  padding: 7px 11px;
  border-radius: 999px;
  border: 1px solid rgba(13,23,44,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.94) 0%, rgba(244,247,252,.96) 100%);
  color: rgba(34,49,74,.82);
  box-shadow: 0 8px 18px rgba(13,23,44,.05);
  font-size: 11.5px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .1px;
}

.breakdown-item::before{
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #9aa8bd;
  box-shadow: 0 0 0 4px rgba(154,168,189,.14);
}

.breakdown-item:first-child{
  border-color: rgba(26,163,111,.18);
  background: linear-gradient(180deg, rgba(26,163,111,.10) 0%, rgba(255,255,255,.96) 100%);
}

.breakdown-item:first-child::before{
  background: var(--good);
  box-shadow: 0 0 0 4px rgba(26,163,111,.14);
}

.breakdown-item:last-child{
  border-color: rgba(245,158,11,.20);
  background: linear-gradient(180deg, rgba(245,158,11,.10) 0%, rgba(255,255,255,.96) 100%);
}

.breakdown-item:last-child::before{
  background: var(--warn);
  box-shadow: 0 0 0 4px rgba(245,158,11,.14);
}

/* =========================================================
   SECTION SHELL (Light)
========================================================= */
.section{ padding: 30px 0; }
.section,
.projects-section,
.dash-preview,
.gallery-strip,
.contact-section{
  position: relative;
}

.section::before,
.projects-section::before,
.dash-preview::before,
.gallery-strip::before,
.contact-section::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,255,255,0)),
    radial-gradient(520px 150px at 50% 0%, rgba(255,255,255,.18), transparent 74%);
}

.section-light{
  background: #f6f8fc;
  color: var(--ink);
}
.section-light .wrap{ color: var(--ink); }

.section-title{
  display:flex;
  align-items:flex-end;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}
.section-title h2{
  margin:0;
  font-size: clamp(20px, 2vw + 8px, 28px);
  letter-spacing: .2px;
  color: var(--ink);
}
.section-title p{
  margin:0;
  color: var(--muted-2);
  max-width: 70ch;
  font-size: 14px;
}
.panel{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 16px;
}

.panel-card{
  background: #fff;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-soft);
  overflow:hidden;
}
.panel-head{
  padding: 16px 18px;
  background: linear-gradient(135deg, rgba(247,201,72,.22) 0%, rgba(79,129,255,.10) 70%, rgba(255,255,255,.55) 100%);
  border-bottom: 1px solid #e7edf6;
}
.panel-head .chip{
  display:inline-flex;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(247,201,72,.28);
  color: #3a2a00;
  font-weight: 900;
  font-size: 12px;
}
.panel-body{ padding: 16px 18px; }
.panel-body h3{
  margin: 0 0 8px;
  font-size: 16px;
  color: var(--ink);
}
.panel-body .sub{
  margin: 0;
  color: #5b6c85;
  font-size: 14px;
}
.panel-actions{
  padding: 14px 18px 18px;
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
}
.mini-grid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  padding: 16px;
}
.mini{
  border: 1px solid #e7edf6;
  border-radius: 18px;
  background: #fff;
  box-shadow: var(--shadow-soft);
  padding: 14px;
}
.mini h4{
  margin:0 0 8px;
  font-size: 13.5px;
  color: #21314b;
}
.mini .big{
  font-size: 26px;
  font-weight: 900;
  color: #0b1220;
}
.mini .meta{
  margin-top: 6px;
  font-size: 12.5px;
  color: #60718a;
}
.filters{
  background: #fff;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-soft);
  padding: 16px;
  display:flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: end;
  margin-bottom: 14px;
}

.field{
  flex: 1 1 200px;
  min-width: 190px;
  display:flex;
  flex-direction: column;
  gap: 6px;
}
.field label{
  font-weight: 900;
  font-size: 12px;
  color: #4f637d;
}
.field select{
  height: 42px;
  border-radius: 14px;
  border: 1px solid #dde6f2;
  background: #f7f9ff;
  padding: 0 12px;
  font-weight: 700;
  color: #1c2a44;
}
.field input{
  height: 42px;
  border-radius: 14px;
  border: 1px solid #dde6f2;
  background: #f7f9ff;
  padding: 0 12px;
  font-weight: 700;
  color: #1c2a44;
}
.field select:focus{
  outline:none;
  box-shadow: 0 0 0 3px rgba(247,201,72,.35);
  border-color: rgba(247,201,72,.85);
  background: #fff;
}
.field input:focus{
  outline:none;
  box-shadow: 0 0 0 3px rgba(247,201,72,.35);
  border-color: rgba(247,201,72,.85);
  background: #fff;
}

.filter-actions{
  display:flex;
  gap: 10px;
  flex: 0 0 auto;
}

.btn-light{
  background: #0b1220;
  color: #fff;
  border: 1px solid #0b1220;
}
.btn-light:hover{ transform: translateY(-1px); }

.btn-outline{
  background: #fff;
  color: #1c2a44;
  border: 1px solid #dde6f2;
}
.btn-outline:hover{ background: #f7f9ff; }

.cards-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.card{
  background: #fff;
  border: 1px solid #e7edf6;
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-soft);
  padding: 16px;
  display:flex;
  flex-direction: column;
  gap: 10px;
  transition: .18s ease;
}
.card:hover{ transform: translateY(-2px); box-shadow: 0 16px 42px rgba(13,23,44,.16); }
.card h3{
  margin:0;
  font-size: 16px;
  color: #0b1220;
}
.card p{
  margin:0;
  font-size: 14px;
  color: #556881;
}
.meta{
  display:flex;
  flex-wrap: wrap;
  gap: 8px;
}
.tag{
  font-size: 12px;
  font-weight: 900;
  color: #1f2f4b;
  background: rgba(247,201,72,.25);
  border: 1px solid rgba(247,201,72,.45);
  border-radius: 999px;
  padding: 5px 10px;
}
.card a.more{
  margin-top: 4px;
  font-weight: 900;
  text-decoration:none;
  color: #0b1220;
  display:inline-flex;
  gap: 8px;
  align-items:center;
}
.card a.more:hover{ text-decoration: underline; }
.resources-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}
.resource-library-page{
  background:
    radial-gradient(circle at top left, rgba(34,197,94,.10), transparent 26%),
    radial-gradient(circle at top right, rgba(59,130,246,.10), transparent 28%);
}
.resource-shell{
  display:grid;
  grid-template-columns: 320px minmax(0, 1fr);
  gap: 26px;
  align-items:start;
}
.resource-sidebar{
  position: sticky;
  top: calc(var(--topbar-height) + 20px);
  padding: 18px 16px 18px 0;
  border-right: 1px solid rgba(13,23,44,.08);
}
.resource-sidebar-head{
  margin-bottom: 16px;
}
.resource-sidebar-kicker{
  display:block;
  margin-bottom: 10px;
  color:#37465f;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.resource-sidebar-head h2{
  margin:0;
  font-size: 18px;
  color:#0b1220;
}
.resource-tag-list{
  display:grid;
  gap: 6px;
  max-height: calc(100vh - 180px);
  overflow:auto;
  padding-right: 8px;
}
.resource-tag{
  width:100%;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 14px;
  padding: 12px 14px;
  border:0;
  border-radius: 14px;
  background: transparent;
  color:#22314a;
  text-align:left;
  cursor:pointer;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}
.resource-tag span{
  font-size: 14px;
  line-height: 1.5;
  font-weight: 700;
}
.resource-tag strong{
  font-size: 14px;
  font-weight: 900;
  color:#cb2a1d;
}
.resource-tag:hover,
.resource-tag.is-active{
  background: rgba(255,255,255,.76);
  color:#b42318;
  transform: translateX(3px);
}
.resource-main{
  min-width:0;
}
.resource-main-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 16px;
  margin-bottom: 18px;
}
.resource-main-head h1{
  margin:0 0 8px;
  font-size: clamp(34px, 4vw, 54px);
  line-height: 1.05;
  color:#0b1220;
}
.resource-main-head p{
  margin:0;
  max-width: 64ch;
  font-size: 14px;
  line-height: 1.7;
  color:#60718a;
}
.resource-library-head{
  display:grid;
  gap: 18px;
  margin-bottom: 22px;
}
.resource-library-title{
  margin-bottom: 0;
}
.resource-summary-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.resource-summary-card{
  text-align:left;
  padding: 18px;
  border-radius: 22px;
  border: 1px solid rgba(13,23,44,.10);
  background: rgba(255,255,255,.88);
  box-shadow: var(--shadow-soft);
  cursor:pointer;
  transition: .18s ease;
}
.resource-summary-card strong{
  display:block;
  font-size: 15px;
  color:#0b1220;
}
.resource-summary-card span{
  display:block;
  margin-top: 8px;
  font-size: 13px;
  line-height: 1.6;
  color:#60718a;
}
.resource-summary-card:hover,
.resource-summary-card.is-active{
  transform: translateY(-2px);
  border-color: rgba(247,201,72,.45);
  background: linear-gradient(180deg, rgba(247,201,72,.16), rgba(255,255,255,.96));
}
.resource-filters-card{
  margin-bottom: 18px;
  padding: 18px;
  border-radius: 24px;
  border: 1px solid rgba(13,23,44,.10);
  background: rgba(255,255,255,.92);
  box-shadow: var(--shadow-soft);
}
.resource-filters-card--maarifa{
  margin-bottom: 24px;
}
.resource-filter-form{
  display:grid;
  grid-template-columns: minmax(220px, 1.35fr) repeat(2, minmax(180px, .9fr)) auto;
  gap: 14px;
  align-items:end;
}
.resource-filter-form--compact{
  grid-template-columns: minmax(220px, 1.3fr) minmax(180px, .85fr) minmax(150px, .65fr) auto;
}
.resource-filter-field{
  display:flex;
  flex-direction:column;
  gap: 6px;
}
.resource-filter-field label{
  font-size: 12px;
  font-weight: 900;
  color:#4f637d;
}
.resource-filter-field input,
.resource-filter-field select{
  width:100%;
  height: 44px;
  border-radius: 14px;
  border: 1px solid #dde6f2;
  background: #f7f9ff;
  padding: 0 12px;
  font-weight: 700;
  color:#1c2a44;
}
.resource-filter-field input:focus,
.resource-filter-field select:focus{
  outline:none;
  box-shadow: 0 0 0 3px rgba(247,201,72,.35);
  border-color: rgba(247,201,72,.85);
  background:#fff;
}
.resource-group{
  margin-top: 24px;
}
.resource-group-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap: 14px;
  margin-bottom: 16px;
}
.resource-group-head h3{
  margin:0 0 6px;
  font-size: 24px;
  color:#0b1220;
}
.resource-group-head p{
  margin:0;
  max-width: 74ch;
  color:#60718a;
  font-size: 13.5px;
  line-height: 1.7;
}
.resource-empty,
.resource-no-results{
  padding: 18px 20px;
  border-radius: 20px;
  border: 1px dashed rgba(13,23,44,.16);
  background: rgba(255,255,255,.72);
  color:#5f7189;
  font-size: 13.5px;
  line-height: 1.7;
}
.resource-no-results{
  margin-bottom: 20px;
  border-style: solid;
  background: rgba(247,201,72,.14);
}
.resource-doc{
  display:flex;
  flex-direction:column;
  overflow:hidden;
  min-height: 100%;
  border-radius: 24px;
  border: 1px solid rgba(13,23,44,.10);
  background: #fff;
  box-shadow: 0 18px 42px rgba(13,23,44,.10);
  text-decoration:none;
  color: inherit;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.resources-grid--maarifa{
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}
.resource-doc--maarifa{
  min-height: 0;
  border-radius: 28px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 18px 44px rgba(15,23,42,.09);
  padding-top: 10px;
}
.resource-doc--maarifa:hover{
  transform: translateY(-5px);
}
.resource-doc:hover{
  transform: translateY(-4px);
  box-shadow: 0 24px 52px rgba(13,23,44,.15);
  border-color: rgba(247,201,72,.55);
}
.resource-doc:hover .resource-doc__media img,
.resource-doc:hover .resource-doc__cta{
  transform: translateY(-2px);
}
.resource-doc:hover .resource-doc__cta{
  opacity: 1;
}
.resource-doc__media{
  position:relative;
  aspect-ratio: 16 / 10;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 14px;
  background: linear-gradient(135deg, #dfe9f6 0%, #f3f7fc 100%);
}
.resource-doc--maarifa .resource-doc__media{
  min-height: 0;
  aspect-ratio: auto;
  padding: 0 22px;
  background: transparent;
  justify-content: flex-start;
}
.resource-doc__media--pdf{
  flex-direction: row;
  gap: 0;
}
.resource-doc--maarifa .resource-doc__media::after{
  display:none;
}
.resource-doc__icon{
  width: 78px;
  height: 96px;
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff, #f5f6f8);
  border: 1px solid rgba(13,23,44,.08);
  box-shadow: 0 10px 24px rgba(13,23,44,.09);
  display:flex;
  align-items:center;
  justify-content:center;
  color:#d92d20;
  font-size: 18px;
  font-weight: 900;
  letter-spacing: .08em;
}
.resource-doc--maarifa .resource-doc__icon{
  width: 54px;
  height: 68px;
  border-radius: 14px;
  font-size: 14px;
  box-shadow: 0 8px 18px rgba(13,23,44,.08);
}
.resource-doc--maarifa .resource-doc__type{
  position: static;
  order: 2;
  margin-left: auto;
  padding: 5px 9px;
  font-size: 11px;
}
.resource-doc__media::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(11,18,32,0) 35%, rgba(11,18,32,.14) 100%);
  pointer-events:none;
}
.resource-doc__media img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  display:block;
  position:relative;
  z-index:0;
  transition: transform .28s ease;
}
.resource-doc__media--policy{
  background: linear-gradient(135deg, #173a72 0%, #1f5aa6 54%, #8fb3e0 100%);
}
.resource-doc__media--legal{
  background: linear-gradient(135deg, #731f1f 0%, #b42318 56%, #f2b0a9 100%);
}
.resource-doc__media--county{
  background: linear-gradient(135deg, #215f34 0%, #2f7d32 54%, #9ed4a0 100%);
}
.resource-doc__media--guidance{
  background: linear-gradient(135deg, #8a4d00 0%, #d97706 54%, #f2cf8f 100%);
}
.resource-doc__eyebrow,
.resource-doc__mark,
.resource-doc__year,
.resource-doc__cta{
  position: relative;
  z-index: 1;
}
.resource-doc__eyebrow{
  position: absolute;
  top: 18px;
  left: 18px;
  display: inline-flex;
  align-items: center;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.22);
  color: rgba(255,255,255,.92);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  backdrop-filter: blur(10px);
}
.resource-doc__mark{
  display: block;
  font-size: 34px;
  font-weight: 900;
  letter-spacing: .08em;
  color: #fff;
  text-transform: uppercase;
}
.resource-doc__year{
  display: inline-flex;
  margin-top: 10px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.18);
  color: rgba(255,255,255,.9);
  font-size: 12px;
  font-weight: 800;
}

@media (max-width: 1260px){
  .brandmark{
    min-width: 190px;
  }

  .brandmark .title span{
    font-size: 11px;
  }

  .navlinks{
    gap: 6px;
  }

  .navlinks a,
  .navlinks button{
    font-size: 12.5px;
    padding: 9px 10px;
  }
}
.resource-doc__cta{
  position: absolute;
  left: 18px;
  bottom: 18px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  color: #0b1220;
  font-size: 12px;
  font-weight: 900;
  box-shadow: 0 12px 26px rgba(13,23,44,.14);
  opacity: .94;
  transition: transform .22s ease, opacity .22s ease;
}
.resource-doc__body,
.resource-doc__footer{
  padding-inline: 22px;
}
.resource-doc__badge,
.resource-doc__type{
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .04em;
}
.resource-doc__badge{
  display:inline-flex;
  width: fit-content;
  padding: 7px 12px;
  color: #0b1220;
  background: rgba(247,201,72,.22);
  border: 1px solid rgba(247,201,72,.45);
}
.resource-doc__type{
  position:absolute;
  top: 16px;
  right: 16px;
  z-index:1;
  padding: 6px 10px;
  color: #4f637d;
  background: rgba(255,255,255,.8);
  border: 1px solid rgba(13,23,44,.12);
  backdrop-filter: blur(8px);
}
.resource-doc__body{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap: 14px;
  flex:1;
  padding-top: 20px;
  padding-bottom: 18px;
}
.resource-doc--maarifa .resource-doc__body{
  gap: 12px;
  padding-top: 14px;
  padding-bottom: 16px;
}
.resource-doc__body h3{
  margin: 0;
  font-size: 19px;
  line-height: 1.25;
  color: #0b1220;
}
.resource-doc--maarifa .resource-doc__body h3{
  font-size: 16px;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  min-height: 44px;
}
.resource-doc__body p{
  margin:0;
  font-size: 14px;
  line-height: 1.7;
  color: #556881;
}
.resource-doc__tags{
  display:flex;
  flex-wrap:wrap;
  gap: 8px;
}
.resource-doc__tag{
  display:inline-flex;
  align-items:center;
  padding: 6px 10px;
  border-radius: 10px;
  background: #f5f7fb;
  color:#43536d;
  border: 1px solid rgba(13,23,44,.06);
  font-size: 11px;
  font-weight: 800;
}
.resource-doc__tag--policy{
  background: #eef4ff;
  color:#1f5aa6;
}
.resource-doc__tag--legal{
  background: #fff1f0;
  color:#b42318;
}
.resource-doc__tag--county{
  background: #eef9ef;
  color:#2f7d32;
}
.resource-doc__tag--guide{
  background: #fff6e8;
  color:#d97706;
}
.resource-doc__footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding-top: 12px;
  padding-bottom: 20px;
  border-top: 1px solid rgba(13,23,44,.08);
  font-weight: 900;
  color: #0b1220;
}
.resource-doc--maarifa .resource-doc__footer{
  padding-top: 12px;
  padding-bottom: 16px;
}
.resource-doc__meta-label{
  display:block;
  margin-bottom: 3px;
  color:#0b1220;
  font-size: 12px;
  font-weight: 900;
}
.resource-doc--maarifa .resource-doc__footer strong{
  color:#6d7a8f;
  font-size: 12px;
  font-weight: 700;
}
.resource-doc__action{
  width: 42px;
  height: 42px;
  border-radius: 10px;
  border: 1px solid rgba(13,23,44,.12);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size: 20px;
  background:#fff;
}
.resource-doc__arrow{
  font-size: 20px;
  line-height: 1;
}
.contact-shell{
  background: #fff;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-soft);
  padding: 18px;
}
.form{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-top: 12px;
}
.form .full{ grid-column: 1 / -1; }
.form input,
.form textarea{
  width:100%;
  border-radius: 14px;
  border: 1px solid #dde6f2;
  background: #f7f9ff;
  padding: 12px;
  font-weight: 700;
  color: var(--ink);
}
.form textarea{ min-height: 140px; resize: vertical; }
.form input:focus,
.form textarea:focus{
  outline:none;
  box-shadow: 0 0 0 3px rgba(247,201,72,.35);
  border-color: rgba(247,201,72,.85);
  background: #fff;
}
.form label{
  font-size: 12px;
  font-weight: 900;
  color: #4f637d;
  display:block;
  margin-bottom: 6px;
}
.send-row{
  margin-top: 10px;
  display:flex;
  gap: 10px;
  align-items:center;
  justify-content:flex-start;
}
.footer{
  padding: 28px 0 34px;
  color: rgba(245,241,233,.82);
  background:
    radial-gradient(680px 260px at 18% 0%, rgba(183,58,68,.16), transparent 62%),
    radial-gradient(720px 240px at 82% 0%, rgba(34,79,138,.16), transparent 60%),
    linear-gradient(180deg, #1f2024 0%, #17181c 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}
.footer .footline{
  display:flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 10px;
  border-top: 1px solid rgba(255,255,255,.10);
  padding-top: 18px;
  margin-top: 26px;
}
.footer a{ color: rgba(255,245,228,.84); }
.footer a:hover{ color: rgba(255,255,255,.98); }
.sep{ opacity:.45; padding: 0 8px; }
@media (max-width: 1020px){
  .hero-grid{ grid-template-columns: 1fr; }
  .panel{ grid-template-columns: 1fr; }
  .resources-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .resources-grid--maarifa{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .resource-shell{ grid-template-columns: 1fr; }
  .resource-sidebar{
    position: static;
    padding: 0;
    border-right: 0;
  }
  .resource-tag-list{
    max-height: none;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding-right: 0;
  }
  .resource-summary-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .resource-filter-form{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 860px){
  .burger{ display:flex; }
  .navlinks{
    position: absolute;
    left: 0;
    right: 0;
    top: 68px;
    z-index: 1200;
    padding: 14px;
    background: rgba(255,255,255,.94);
    border-bottom: 1px solid rgba(13,23,44,.10);
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    opacity: 0;
    transform: translateY(-10px);
    pointer-events:none;
    transition: .18s ease;
  }
  .nav-toggle:checked ~ .navlinks{
    opacity: 1;
    transform: translateY(0);
    pointer-events:auto;
  }
  .menu-panel{
    position: static;
    min-width: 0;
    max-height: none;
    display: none;
    opacity: 1;
    transform:none;
    pointer-events:none;
    margin-top: 6px;
    grid-template-columns: 1fr;
  }
  .menu.is-open .menu-panel{
    display: grid;
    pointer-events:auto;
  }
  .menu{ width:100%; }
  .menu > .menu-btn{
    width:100%;
    justify-content: space-between;
    cursor: pointer;
  }
}

@media (max-width: 700px){
  .stats-grid{ grid-template-columns: 1fr; }
  .mini-grid{ grid-template-columns: 1fr; }
  .cards-grid{ grid-template-columns: 1fr; }
  .resources-grid{ grid-template-columns: 1fr; }
  .resources-grid--maarifa,
  .resource-tag-list,
  .resource-summary-grid,
  .resource-filter-form{ grid-template-columns: 1fr; }
  .resource-main-head h1{ font-size: 32px; }
  .form{ grid-template-columns: 1fr; }
}
.container{
  width: var(--container);
  margin-inline: auto;
}
.container > *{ max-width: 100%; }
.skip-link{
  position: absolute;
  left: -999px;
  top: 12px;
  z-index: 9999;
  padding: 10px 14px;
  border-radius: 12px;
  background: #fff;
  color: #0b1220;
  font-weight: 800;
  text-decoration: none;
  box-shadow: var(--shadow-soft);
}
.skip-link:focus{ left: 16px; }
.navbar{
  position: sticky;
  top: 0;
  z-index: 120;
  backdrop-filter: blur(10px);
  background: rgba(255,255,255,.75);
  border-bottom: 1px solid rgba(13,23,44,.10);
}

.nav-inner{
  display:flex;
  align-items:center;
  justify-content: space-between;
  padding: 14px 0;
  gap: 14px;
}

.brand{
  display:flex;
  align-items:center;
  gap: 12px;
  text-decoration:none;
  min-width: 220px;
}

.brand-text{
  font-weight: 900;
  letter-spacing: .4px;
  font-size: 14px;
  color: rgba(11,18,32,.92);
}

/* Nav links (county) */
.nav-links{
  display:flex;
  align-items:center;
  gap: 10px;
}

.nav-links a{
  text-decoration:none;
  font-weight: 600;
  font-size: 13.5px;
  padding: 10px 12px;
  border-radius: 12px;
  color: rgba(11,18,32,.88);
  background: transparent;
  border: 1px solid transparent;
  transition: .18s ease;
}
.nav-links a:hover{
  background: rgba(34,197,94,.08);
  border-color: rgba(13,23,44,.10);
}
.nav-links a.active{
  background: rgba(247,201,72,.28);
  border-color: rgba(247,201,72,.45);
  color: #0b1220;
}
.btn-cta{ 
  background: linear-gradient(180deg, var(--accent) 0%, #f5b000 100%);
  color: var(--accent-ink);
  box-shadow: 0 14px 26px rgba(247,201,72,.22);
}
.btn-cta:hover{ filter: brightness(1.02); transform: translateY(-1px); }
.btn-ghost,
.btn-login{
  background: rgba(11,18,32,.04);
  border: 1px solid rgba(13,23,44,.12);
  color: rgba(11,18,32,.88);
}
.btn-ghost:hover,
.btn-login:hover{ background: rgba(11,18,32,.06); }
.nav-burger{
  display:none;
  width: 44px;
  height: 40px;
  border: 1px solid rgba(13,23,44,.14);
  border-radius: 12px;
  background: rgba(11,18,32,.04);
  cursor:pointer;
  align-items:center;
  justify-content:center;
  gap: 4px;
  flex-direction: column;
}
.nav-burger span{
  width: 18px;
  height: 2px;
  background: rgba(11,18,32,.88);
  display:block;
  border-radius: 2px;
}

/* Dropdown (Counties) */
.has-dd{ position: relative; }

.dropdown{
  position:absolute;
  top: calc(100% + 10px);
  left: 0;
  min-width: 220px;
  padding: 10px;
  border-radius: 16px;
  background: var(--night);
  border: 1px solid var(--night-border);
  box-shadow: var(--shadow);
  opacity: 0;
  transform: translateY(6px);
  pointer-events: none;
  transition: .18s ease;
}

.dropdown a{
  display:block;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid transparent;
  color: var(--night-ink);
}

.dropdown a:hover{
  background: rgba(247,201,72,.16);
  border-color: rgba(247,201,72,.28);
}
.has-dd:hover .dropdown,
.has-dd:focus-within .dropdown{
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.dd-toggle{ display:none; }
.dd-caret{ display:none; }
.page-head{ padding: 18px 0 0; }

.page-head-inner{
  display:flex;
  align-items:flex-end;
  justify-content: space-between;
  gap: 12px;
}

.page-kicker{
  display:flex;
  align-items:center;
  gap: 10px;
  flex-wrap: wrap;
}

.county-badge{
  display:inline-flex;
  align-items:center;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(247,201,72,.18);
  border: 1px solid rgba(247,201,72,.28);
  color: rgba(11,18,32,.92);
  font-weight: 900;
  font-size: 12px;
}

.page-meta{
  font-size: 12.5px;
  color: rgba(34,49,74,.65);
  font-weight: 800;
}

.breadcrumbs{
  font-size: 12.5px;
  color: rgba(34,49,74,.65);
  display:flex;
  gap: 8px;
  align-items:center;
  flex-wrap: wrap;
}
.breadcrumbs a{
  color: rgba(11,18,32,.88);
  text-decoration:none;
  font-weight: 900;
}
.breadcrumbs a:hover{ text-decoration: underline; }

/* ---------- County hero layout ---------- */
.hero--county{ padding: 26px 0 18px; }

.hero--county .hero-inner{
  display:grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 22px;
  align-items: center;
}

.hero--county .hero-media{
  border-radius: var(--radius-xl);
  overflow:hidden;
  border: 1px solid rgba(13,23,44,.10);
  background: rgba(255,255,255,.55);
  box-shadow: var(--shadow);
}

.hero--county .hero-media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-rotator{
  margin: 0;
  font-size: clamp(26px, 2.8vw + 10px, 44px);
  line-height: 1.15;
  letter-spacing: .2px;
  color: var(--ink);
}

.divider{
  height: 1px;
  width: 100%;
  margin: 14px 0;
  background: rgba(13,23,44,.12);
}

.lead{
  margin: 0;
  color: rgba(34,49,74,.78);
  max-width: 70ch;
  font-size: 14.5px;
}
.quick-stats{
  margin-top: 16px;
  padding: 16px;
  border-radius: var(--radius-xl);
  border: 1px solid rgba(13,23,44,.10);
  background: rgba(255,255,255,.55);
  box-shadow: var(--shadow);
}

.qs-header{
  font-weight: 900;
  letter-spacing: .2px;
  margin-bottom: 12px;
  font-size: 14px;
  color: var(--ink);
}

.quick-stats .cards{
  display:grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}

.stat-card{
  padding: 14px;
  border-radius: 18px;
  background: rgba(255,255,255,.70);
  border: 1px solid rgba(13,23,44,.10);
  transition: .18s ease;
}
.stat-card:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.85);
}
.stat-card h3{
  margin:0 0 8px;
  font-size: 12.5px;
  color: rgba(34,49,74,.70);
  font-weight: 900;
}
.stat-number{
  font-size: 28px;
  font-weight: 900;
  margin: 0;
  color: var(--ink);
}
.stat-number.warn{ color: #b45309; }
.stat-sub{
  margin-top: 6px;
  font-size: 12.5px;
  color: rgba(34,49,74,.65);
}

.kpi-box .metric-breakdown{
  margin-top: 12px;
}
.dash-preview,
.projects-section,
.gallery-strip,
.contact-section{
  background: #f6f8fc;
  color: var(--ink);
  padding: 30px 0;
}

.dash-preview .dash-sub,
.projects-section .dash-sub,
.gallery-strip .dash-sub,
.contact-section .contact-sub{
  color: var(--muted-2);
}
.dash-head{ margin-bottom: 16px; }
.dash-head h2{ margin: 0 0 8px; color: #0b1220; }
.dash-sub{ margin: 0; font-size: 14px; max-width: 75ch; }

.dash-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.dash-card{
  background: #fff;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-soft);
  padding: 16px;
  display:flex;
  flex-direction: column;
  gap: 10px;
}

.dash-card-head{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
}
.dash-card h3{ margin:0; font-size: 16px; color:#0b1220; }

.pill{
  font-size: 12px;
  font-weight: 900;
  color: #1f2f4b;
  background: rgba(247,201,72,.25);
  border: 1px solid rgba(247,201,72,.45);
  border-radius: 999px;
  padding: 5px 10px;
}

.big-number{
  font-size: 26px;
  font-weight: 900;
  color: #0b1220;
}
.muted{ color:#60718a; font-size: 12.5px; }

.list{
  margin: 0;
  padding-left: 18px;
  color: #556881;
  font-size: 14px;
}
.dash-foot{
  margin-top: auto;
  font-size: 13px;
  color: #3b4c66;
}
.dash-foot a{
  color: #0b1220;
  font-weight: 900;
  text-decoration:none;
}
.dash-foot a:hover{ text-decoration: underline; }

.county-investment-section{
  background: #f6f8fc;
  color: var(--ink);
}

.county-investment-grid{
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(300px, .85fr);
  gap: 18px;
  align-items: stretch;
}

.county-investment-card,
.county-investment-summary{
  padding: 20px;
}

.county-investment-card{
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.county-investment-chart-shell{
  position: relative;
  height: 320px;
  min-height: 320px;
}

.county-investment-card canvas{
  display: block;
  width: 100% !important;
  height: 100% !important;
  min-height: 0;
}

.county-investment-card-head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.county-investment-card-head h3{
  margin: 0 0 6px;
  font-size: 18px;
  color: #0b1220;
}

.county-investment-card-head p{
  margin: 0;
  font-size: 13.5px;
  line-height: 1.6;
  color: #556881;
  max-width: 62ch;
}

.chart-chip--soft{
  background: rgba(29,79,145,.08);
  border: 1px solid rgba(29,79,145,.14);
  color: #1d4f91;
}

.chart-card-chip-group{
  display: inline-flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  justify-content: flex-end;
}

.county-investment-summary{
  display: grid;
  gap: 12px;
  align-content: start;
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(244,247,252,.94));
}

.county-investment-stat{
  border: 1px solid #e6edf6;
  border-radius: 18px;
  background: rgba(255,255,255,.96);
  padding: 16px 18px;
  box-shadow: 0 14px 32px rgba(15,23,42,.05);
}

.county-investment-stat-label{
  display: block;
  margin-bottom: 7px;
  font-size: 11.5px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #6a7b94;
}

.county-investment-stat strong{
  display: block;
  font-size: 24px;
  line-height: 1.2;
  color: #0b1220;
}

.county-investment-stat small{
  display: block;
  margin-top: 6px;
  font-size: 12.5px;
  color: #556881;
}

.county-investment-breakdown{
  border: 1px solid #e6edf6;
  border-radius: 18px;
  background: rgba(255,255,255,.96);
  padding: 14px 16px;
  display: grid;
  gap: 10px;
  box-shadow: 0 14px 32px rgba(15,23,42,.05);
}

.county-investment-breakdown-row{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid #edf2f8;
}

.county-investment-breakdown-row:last-child{
  padding-bottom: 0;
  border-bottom: 0;
}

.county-investment-sector{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 13.5px;
  font-weight: 800;
  color: #22314a;
}

.county-investment-sector i{
  width: 11px;
  height: 11px;
  border-radius: 999px;
  display: inline-block;
  flex: 0 0 11px;
}

.county-investment-breakdown-row strong{
  font-size: 13.5px;
  color: #0b1220;
}

.county-investment-empty{
  margin: 0;
  font-size: 14px;
  color: #60718a;
}

.projects-filters{
  background: #fff;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-soft);
  padding: 16px;
  display:flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: end;
  margin-bottom: 14px;
}

.filter-group{
  flex: 1 1 200px;
  min-width: 190px;
  display:flex;
  flex-direction: column;
  gap: 6px;
}

.filter-group label{
  font-weight: 900;
  font-size: 12px;
  color: #4f637d;
}

.filter-group select,
.filter-group input{
  height: 42px;
  border-radius: 14px;
  border: 1px solid #dde6f2;
  background: #f7f9ff;
  padding: 0 12px;
  font-weight: 700;
  color: #1c2a44;
}
.filter-group select:focus,
.filter-group input:focus{
  outline:none;
  box-shadow: 0 0 0 3px rgba(247,201,72,.35);
  border-color: rgba(247,201,72,.85);
  background: #fff;
}

.projects-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.project-card{
  background: #fff;
  border: 1px solid #e7edf6;
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-soft);
  padding: 16px;
  display:flex;
  flex-direction: column;
  gap: 10px;
  transition: .18s ease;
  cursor: pointer;
}
.project-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 16px 42px rgba(13,23,44,.16);
}
.project-card h3{ margin:0; font-size: 16px; color:#0b1220; }
.project-card p{ margin:0; font-size: 14px; color:#556881; }

.project-meta{
  display:flex;
  flex-wrap: wrap;
  gap: 8px;
}
.project-meta span{
  font-size: 12px;
  font-weight: 900;
  color: #1f2f4b;
  background: rgba(247,201,72,.25);
  border: 1px solid rgba(247,201,72,.45);
  border-radius: 999px;
  padding: 5px 10px;
}

.project-details p{
  margin: 0;
  font-size: 13.5px;
  color: #42546f;
}

.read-more-btn{
  margin-top: 10px;
  padding: 10px 14px;
  border-radius: 12px;
  border: 1px solid rgba(13,23,44,.10);
  background: rgba(255,255,255,.88);
  box-shadow: 0 10px 20px rgba(13,23,44,.06);
  font-weight: 800;
  font-size: 13px;
  letter-spacing: .1px;
  text-decoration:none;
  color: #0b1220;
  display:inline-flex;
  gap: 8px;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition: .18s ease;
}
.read-more-btn:hover{
  text-decoration: none;
  transform: translateY(-1px);
  background: rgba(247,201,72,.18);
  border-color: rgba(247,201,72,.36);
  box-shadow: 0 12px 26px rgba(13,23,44,.10);
}

.read-more-btn:focus-visible{
  text-decoration: none;
}

.projects-pagination{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-top:18px;
  padding:14px 16px;
  border:1px solid rgba(13,23,44,.08);
  border-radius:16px;
  background:#fff;
  box-shadow:var(--shadow-soft);
}

.pagination-meta{
  color:#5b6b82;
  font-size:13px;
  font-weight:700;
}

.pagination-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}

.pagination-btn{
  border:1px solid rgba(13,23,44,.12);
  background:#fff;
  color:#22314a;
  border-radius:12px;
  padding:9px 12px;
  min-width:42px;
  font-weight:800;
  cursor:pointer;
  transition:.18s ease;
}

.pagination-btn:hover:not(:disabled){
  transform:translateY(-1px);
  border-color:rgba(247,201,72,.45);
  background:rgba(247,201,72,.18);
}

.pagination-btn.is-active{
  background:#0b1220;
  border-color:#0b1220;
  color:#fff;
}

.pagination-btn:disabled{
  opacity:.5;
  cursor:not-allowed;
}

.is-pagination-hidden{
  display:none !important;
}

.ministry-hero .entity.dept-toggle{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.ministry-hero .entity.dept-toggle::after{
  content:"▾";
  font-size:14px;
  font-weight:900;
  color: rgba(11,18,32,.72);
  transition: transform .18s ease;
}

.ministry-hero .entity.dept-toggle.active::after{
  transform: rotate(180deg);
}
.gallery-grid{
  display:grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
}

.g-item{
  position: relative;
  border-radius: var(--radius-xl);
  overflow:hidden;
  border: 1px solid #e7edf6;
  background: #fff;
  box-shadow: var(--shadow-soft);
  text-decoration:none;
}

.g-item img{
  width: 100%;
  height: 165px;
  object-fit: cover;
  transition: .25s ease;
}

.g-item:hover img{ transform: scale(1.05); }

.g-caption{
  position:absolute;
  left: 12px;
  bottom: 12px;
  padding: 7px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  background: rgba(11,18,32,.78);
  color: #fff;
  border: 1px solid rgba(247,201,72,.35);
}
.contact-inner{
  background: #fff;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-soft);
  padding: 18px;
}

.form-grid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-top: 12px;
}

.form-field label{
  font-size: 12px;
  font-weight: 900;
  color: #4f637d;
  display:block;
  margin-bottom: 6px;
}

.form-field input,
.form-field textarea{
  width:100%;
  border-radius: 14px;
  border: 1px solid #dde6f2;
  background: #f7f9ff;
  padding: 12px;
  font-weight: 700;
  color: var(--ink);
}

.form-field textarea{ resize: vertical; }

.form-field input:focus,
.form-field textarea:focus{
  outline:none;
  box-shadow: 0 0 0 3px rgba(247,201,72,.35);
  border-color: rgba(247,201,72,.85);
  background: #fff;
}

.form-field.full{ grid-column: 1 / -1; }

.btn-send{
  margin-top: 10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 11px 14px;
  border-radius: 14px;
  font-weight: 900;
  border: 1px solid #0b1220;
  background: #0b1220;
  color: #fff;
  cursor:pointer;
  transition: .18s ease;
}
.btn-send:hover{ transform: translateY(-1px); }

.contact-page{
  background:
    radial-gradient(circle at top right, rgba(247,201,72,.20), transparent 28%),
    linear-gradient(180deg, #f6f8fc 0%, #eef3fb 100%);
}

.intake-card{
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(13,23,44,.10);
  border-radius: 24px;
  box-shadow: var(--shadow-soft);
}

.contact-intake .section-title{
  margin-bottom: 12px;
}

.report-status{
  margin: 0 0 16px;
  padding: 14px 16px;
  border-radius: 18px;
  border: 1px solid rgba(13,23,44,.10);
  font-size: 13.5px;
  font-weight: 700;
  line-height: 1.65;
}

.report-status.is-success{
  background: rgba(26,163,111,.12);
  border-color: rgba(26,163,111,.28);
  color: #155d44;
}

.report-status.is-warning{
  background: rgba(247,201,72,.18);
  border-color: rgba(247,201,72,.34);
  color: #5c4700;
}

.report-status.is-error{
  background: rgba(180,83,9,.10);
  border-color: rgba(180,83,9,.24);
  color: #7c2d12;
}

.report-route-grid{
  display:grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
  margin: 18px 0 20px;
}

.route-card{
  padding: 16px;
  border-radius: 20px;
  border: 1px solid rgba(13,23,44,.10);
  background: rgba(255,255,255,.88);
  color: #22314a;
  text-align:left;
  cursor:pointer;
  box-shadow: 0 14px 28px rgba(13,23,44,.06);
  transition: .18s ease;
}

.route-card strong{
  display:block;
  font-size: 14px;
  color:#0b1220;
}

.route-card span{
  display:block;
  margin-top: 8px;
  font-size: 12.5px;
  line-height: 1.6;
  color:#5f7189;
}

.route-card:hover,
.route-card.is-active{
  transform: translateY(-2px);
  border-color: rgba(247,201,72,.48);
  background: linear-gradient(180deg, rgba(247,201,72,.20), rgba(255,255,255,.96));
  box-shadow: 0 18px 32px rgba(13,23,44,.10);
}

.report-shell{
  display:grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 16px;
  align-items:start;
}

.report-intake-form{
  display:grid;
  grid-template-columns: 1fr;
  gap: 16px;
  align-items: start;
}

.report-column{
  display:grid;
  gap: 16px;
  align-items:start;
}

.intake-card{
  padding: 20px;
}

.intake-card--wide{
  grid-column: 1 / -1;
}

.report-form-grid--single{
  grid-template-columns: 1fr;
}

.intake-card-head{
  margin-bottom: 16px;
}

.intake-card-head h3{
  margin: 0 0 6px;
  font-size: 19px;
  color:#0b1220;
}

.intake-card-head p{
  margin: 0;
  color:#5b6d86;
  font-size: 13.5px;
  line-height: 1.65;
}

.report-form-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.intake-field{
  display:flex;
  flex-direction:column;
  gap: 7px;
}

.intake-field--full{
  grid-column: 1 / -1;
}

.intake-field label{
  font-size: 12px;
  font-weight: 900;
  color:#4f637d;
}

.intake-field input,
.intake-field select,
.intake-field textarea{
  width:100%;
  border-radius: 16px;
  border: 1px solid #dde6f2;
  background: #f7f9ff;
  padding: 12px 14px;
  font-weight: 700;
  color:#1c2a44;
}

.intake-field textarea{
  resize: vertical;
  min-height: 120px;
}

.intake-field input:focus,
.intake-field select:focus,
.intake-field textarea:focus{
  outline:none;
  box-shadow: 0 0 0 3px rgba(247,201,72,.35);
  border-color: rgba(247,201,72,.85);
  background:#fff;
}

.file-dropzone{
  display:flex;
  align-items:center;
  gap: 14px;
  min-height: 84px;
  border-radius: 18px;
  border: 1px dashed rgba(13,23,44,.16);
  background: linear-gradient(180deg, rgba(247,249,255,.96), rgba(255,255,255,.92));
  padding: 16px;
  cursor:pointer;
  transition: .18s ease;
}

.file-dropzone:hover,
.file-dropzone:focus-visible,
.file-dropzone.is-dragover{
  border-color: rgba(247,201,72,.72);
  box-shadow: 0 0 0 3px rgba(247,201,72,.24);
  background: #fffdf6;
}

.file-dropzone.has-files{
  border-style: solid;
}

.file-dropzone__icon{
  width: 44px;
  height: 44px;
  border-radius: 14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(247,201,72,.2);
  color:#7a5a00;
  font-size: 28px;
  font-weight: 700;
  flex: 0 0 44px;
}

.file-dropzone__copy{
  display:grid;
  gap: 4px;
}

.file-dropzone__copy strong{
  color:#0b1220;
  font-size: 14px;
}

.file-dropzone__copy span{
  color:#5b6d86;
  font-size: 12.5px;
  line-height: 1.6;
}

.file-dropzone__list{
  display:grid;
  gap: 8px;
  margin-top: 10px;
}

.file-dropzone__item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(255,255,255,.9);
  border: 1px solid rgba(13,23,44,.08);
  color:#344760;
  font-size: 12.5px;
}

.file-dropzone__item strong{
  color:#0b1220;
  font-size: 12px;
}

.report-guidance{
  margin-top: 14px;
  border-radius: 18px;
  padding: 14px 16px;
  background: rgba(247,201,72,.13);
  border: 1px solid rgba(247,201,72,.24);
  color:#4e5f77;
  font-size: 13.5px;
  line-height: 1.65;
}

.consent-check{
  display:flex;
  align-items:flex-start;
  gap: 10px;
  color:#42546f;
  line-height: 1.65;
}

.consent-check input{
  margin-top: 3px;
}

.send-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 18px;
}

.send-note{
  margin:0;
  color:#60718a;
  font-size: 12.5px;
  line-height: 1.6;
  max-width: 46ch;
}
@media (max-width: 1020px){
  .hero--county .hero-inner{ grid-template-columns: 1fr; }
  .dash-grid{ grid-template-columns: 1fr; }
  .county-investment-grid{ grid-template-columns: 1fr; }
  .county-investment-card{ min-height: auto; }
  .gallery-grid{ grid-template-columns: repeat(3, 1fr); }
  .report-shell,
  .report-intake-form{ grid-template-columns: 1fr; }
  .report-route-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 860px){
  .nav-burger{ display:flex; }

  .nav-links{
    position: absolute;
    left: 0;
    right: 0;
    top: 68px;
    padding: 14px;
    background: rgba(255,255,255,.94);
    border-bottom: 1px solid rgba(13,23,44,.10);
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    opacity: 0;
    transform: translateY(-10px);
    pointer-events:none;
    transition: .18s ease;
  }
  .nav-toggle:checked ~ .nav-links{
    opacity: 1;
    transform: translateY(0);
    pointer-events:auto;
  }
  .dropdown{
    position: static;
    opacity: 1;
    transform:none;
    pointer-events:auto;
    display:none;
    margin-top: 6px;
  }
  .dd-toggle{ display:block; position:absolute; opacity:0; pointer-events:auto; }

  .dd-caret{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    border: 1px solid rgba(13,23,44,.12);
    background: rgba(11,18,32,.04);
    cursor: pointer;
    margin-left: auto;
    color: rgba(11,18,32,.82);
  }
  .dd-caret::before{ content:"▾"; opacity:.9; }
  .dd-toggle:checked ~ .dropdown{ display:block; }
}

@media (max-width: 700px){
  .projects-grid{ grid-template-columns: 1fr; }
  .gallery-grid{ grid-template-columns: repeat(2, 1fr); }
  .form-grid{ grid-template-columns: 1fr; }
  .quick-stats .cards{ grid-template-columns: 1fr; }
  .projects-pagination{
    flex-direction:column;
    align-items:stretch;
  }
  .pagination-actions{
    justify-content:flex-start;
  }
  .report-route-grid,
  .report-form-grid{
    grid-template-columns: 1fr;
  }
}
.details-page{ padding: 22px 0 56px; }
.details-head{
  margin: 10px 0 18px;
  border-radius: var(--radius-xl);
  border: 1px solid rgba(13,23,44,.10);
  background: rgba(255,255,255,.55);
  box-shadow: var(--shadow);
  overflow:hidden;
}
.details-head-inner{
  padding: 18px;
  display:flex;
  align-items:flex-end;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}
.details-title{
  margin: 10px 0 6px;
  font-size: clamp(22px, 2vw + 10px, 34px);
  line-height: 1.15;
  color: var(--ink);
}
.details-sub{
  margin: 0;
  color: rgba(34,49,74,.75);
  font-size: 14px;
  max-width: 75ch;
}
.details-back{ white-space: nowrap; }

/* Pane switching via hash */
.project-pane, .default-pane{ display:none; }
.project-pane:target{ display:block; }
.default-pane{ display:block; }
.project-pane:target ~ .default-pane{ display:none; }
.details-top{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin: 16px 0 12px;
}
.back-link{
  text-decoration:none;
  font-weight: 900;
  color: rgba(11,18,32,.88);
}
.back-link:hover{ text-decoration: underline; }

.details-pill{
  display:inline-flex;
  align-items:center;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(247,201,72,.18);
  border: 1px solid rgba(247,201,72,.28);
  color: rgba(11,18,32,.92);
  font-weight: 900;
  font-size: 12px;
}
.detail-grid{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 14px;
}
.detail-card{
  background: #fff;
  border: 1px solid var(--border-light);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-soft);
  padding: 16px;
  color: var(--ink);
}

.detail-card h2, .detail-card h3{
  margin: 0 0 10px;
  color: #0b1220;
}

.detail-lead{
  margin: 0;
  color: #556881;
  font-size: 14px;
}

.detail-divider{
  height: 1px;
  background: #e7edf6;
  margin: 14px 0;
}

.clean-list{
  margin: 10px 0 0;
  padding-left: 18px;
  color: #42546f;
  font-size: 14px;
}

/* Meta grid */
.meta-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}
.meta-item{
  background: #f7f9ff;
  border: 1px solid #dde6f2;
  border-radius: 14px;
  padding: 12px;
}
.meta-k{
  font-size: 12px;
  font-weight: 900;
  color: #4f637d;
  margin-bottom: 4px;
}
.meta-v{
  font-weight: 800;
  color: #0b1220;
  font-size: 13.5px;
}
.project-list{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}
.project-link{
  display:block;
  padding: 14px;
  border-radius: 16px;
  border: 1px solid #e7edf6;
  background: #fff;
  text-decoration:none;
  box-shadow: var(--shadow-soft);
  transition: .18s ease;
}
.project-link:hover{
  transform: translateY(-2px);
  box-shadow: 0 16px 42px rgba(13,23,44,.16);
}
.project-link b{
  display:block;
  margin-bottom: 4px;
  color: #0b1220;
}
.link-sub{
  color: #556881;
  font-size: 13px;
  font-weight: 700;
}
@media (max-width: 900px){
  .detail-grid{ grid-template-columns: 1fr; }
}
@media (max-width: 720px){
  .project-list{ grid-template-columns: 1fr; }
}
@media (max-width: 520px){
  .meta-grid{ grid-template-columns: 1fr; }
}
/* =========================================================
   BUDGET ALLOCATION CHART SECTION
========================================================= */

#budget-chart{
  position: relative;
}

/* Card wrapper polish */
#budget-chart .panel-card{
  padding: 26px;
  border-radius: var(--radius-xl);
  background: linear-gradient(
    180deg,
    rgba(255,255,255,.96) 0%,
    rgba(247,249,255,.96) 100%
  );
  border: 1px solid var(--border-light);
  box-shadow: var(--shadow-soft);
  transition: .2s ease;
}

#budget-chart .panel-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 20px 48px rgba(13,23,44,.16);
}

/* Chart canvas sizing */
#budget-chart canvas{
  width: 100% !important;
  max-height: 320px;
}

/* Section title spacing tuning */
#budget-chart .section-title{
  margin-bottom: 20px;
}

/* Optional: subtle chart header badge */
#budget-chart .section-title h2::after{
  content: " DATA VIEW";
  font-size: 11px;
  font-weight: 900;
  margin-left: 10px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(247,201,72,.22);
  border: 1px solid rgba(247,201,72,.35);
  color: #3a2a00;
  letter-spacing: .4px;
}

/* Smooth load feel */
#budget-chart .panel-card{
  animation: chartFadeIn .45s ease both;
}

#budget-chart .budget-chart-grid{
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
  gap: 18px;
  align-items: stretch;
}

#budget-chart .thematic-card{
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 400px;
}

#budget-chart .sector-card{
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 400px;
}

#budget-chart .sector-card::before{
  content: "";
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  height: 5px;
  background: linear-gradient(90deg, #1f7a5a 0%, #2f6fb2 55%, #e8b949 100%);
}

#budget-chart .mini-head{
  margin-bottom: 18px;
}

#budget-chart .mini-head h3{
  margin: 0 0 6px;
  font-size: 18px;
  color: #0b1220;
}

#budget-chart .mini-head p{
  margin: 0;
  font-size: 13.5px;
  color: rgba(34,49,74,.72);
}

#budget-chart .sector-card .mini-head{
  padding-right: 24px;
}

#budget-chart .sector-card canvas,
#budget-chart .thematic-card canvas{
  flex: 1;
  min-height: 250px;
}

#budget-chart .sector-chart-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:16px;
}

#budget-chart .sector-chip{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(13,23,44,.08);
  background:#fff;
  color:#22314a;
  cursor:pointer;
  font-size:12px;
  font-weight:700;
  box-shadow:0 10px 18px rgba(13,23,44,.05);
  transition:.18s ease;
}

#budget-chart .sector-chip:hover,
#budget-chart .sector-chip.is-active{
  transform:translateY(-1px);
  border-color:rgba(247,201,72,.42);
  background:rgba(247,201,72,.16);
}

#budget-chart .sector-chip strong{
  margin-left:auto;
  color:#0b1220;
  font-size:12px;
}

#budget-chart .sector-chip-dot{
  width:10px;
  height:10px;
  border-radius:999px;
  flex:0 0 auto;
}

#budget-chart .sector-chart-note{
  margin-top:16px;
  padding:14px 16px;
  border-radius:16px;
  background:linear-gradient(180deg, rgba(247,249,255,.9), rgba(255,255,255,.98));
  border:1px solid rgba(13,23,44,.08);
  color:#4c5d75;
  display:flex;
  flex-direction:column;
  gap:4px;
}

#budget-chart .sector-chart-note strong{
  color:#0b1220;
  font-size:13px;
}

@keyframes chartFadeIn{
  from{
    opacity: 0;
    transform: translateY(8px);
  }
  to{
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 980px){
  #budget-chart .budget-chart-grid{
    grid-template-columns: 1fr;
  }
}

.kpi .more{
  display:inline-flex;
  align-items:center;
  gap: 6px;
  margin-top: 8px;
  font-size: 12.5px;
  font-weight: 900;
  text-decoration: none;
  color: #0b1220;
  opacity: .85;
}

.kpi .more:hover{
  text-decoration: underline;
  opacity: 1;
}

/* mini budget chart card */

.mini-chart{
  padding-bottom: 12px;
}

.mini-chart canvas{
  width: 100% !important;
  max-height: 160px;
  margin-top: 6px;
}

#county-budget-trend canvas{
  width:100% !important;
  max-height: 460px;
}

.chart-actions{
  display:flex;
  gap:10px;
  align-items:center;
}

.btn-sm{
  padding:8px 14px;
  font-size:13px;
}

.menu-panel a.is-active{
  font-weight: 600;
  color: var(--accent);
}
/* =========================================
   MINISTRY DRILLDOWN PROJECTS
========================================= */

.project-item{
  padding:10px 12px;
  border-radius:12px;
  background:#f7f9ff;
  border:1px solid #dde6f2;
  margin-bottom:8px;
  cursor:pointer;
  font-weight:600;
  transition:.2s ease;
}

.project-item:hover{
  background:#fff;
  transform:translateX(4px);
  box-shadow:0 8px 18px rgba(13,23,44,.12);
}

/* =========================================
   REPORT MODAL
========================================= */

.report-modal{
  position:fixed;
  inset:0;
  background:rgba(11,18,32,.6);
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  pointer-events:none;
  transition:.25s ease;
  z-index:2000;
}

.report-modal.active{
  opacity:1;
  pointer-events:auto;
}

.report-content{
  width:100%;
  max-width:500px;
  background:#fff;
  border-radius:22px;
  padding:24px;
  box-shadow:0 30px 60px rgba(0,0,0,.2);
  animation:fadeSlide .25s ease;
}

@keyframes fadeSlide{
  from{ opacity:0; transform:translateY(15px);}
  to{ opacity:1; transform:translateY(0);}
}

.report-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:16px;
}

.close-report{
  border:none;
  background:none;
  font-size:18px;
  cursor:pointer;
}

.report-form{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.report-form input,
.report-form textarea{
  padding:10px;
  border-radius:12px;
  border:1px solid #dde6f2;
  background:#f7f9ff;
  font-weight:600;
}

.merl-gis-showcase{
  margin: 22px 0 20px;
  padding: 22px;
  border-radius: 28px;
  border: 1px solid rgba(13,23,44,.08);
  box-shadow: 0 18px 44px rgba(13,23,44,.10);
  background:
    radial-gradient(circle at top right, rgba(247,201,72,.22), transparent 34%),
    linear-gradient(135deg, #f8fbff 0%, #eef4fb 100%);
}

.merl-gis-showcase--ministry{
  background:
    radial-gradient(circle at top right, rgba(33,136,204,.16), transparent 34%),
    linear-gradient(135deg, #f7fbff 0%, #ecf4ff 100%);
}

.merl-gis-hero{
  display:grid;
  grid-template-columns:minmax(0, 1.25fr) minmax(280px, .9fr);
  gap:18px;
  margin-bottom:18px;
}

.merl-gis-copy,
.merl-gis-panel,
.merl-gis-analytics,
.detail-map-card{
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(13,23,44,.08);
  border-radius: 22px;
  box-shadow: 0 14px 34px rgba(13,23,44,.08);
}

.merl-gis-copy{
  padding:22px;
}

.merl-gis-kicker{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 12px;
  border-radius:999px;
  background: rgba(247,201,72,.22);
  border:1px solid rgba(247,201,72,.36);
  color:#3a2a00;
  font-size:11px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.merl-gis-copy h3{
  margin:14px 0 10px;
  font-size:28px;
  line-height:1.15;
  color:#0b1220;
}

.merl-gis-copy p,
.merl-gis-panel-head p,
.merl-gis-list-item p,
.detail-map-head p,
.detail-map-fallback,
.merl-gis-fallback p{
  margin:0;
  color:#566983;
  line-height:1.6;
}

.merl-gis-shell{
  display:grid;
  grid-template-columns:minmax(0, 1.2fr) minmax(280px, .82fr);
  gap:18px;
}

.merl-gis-side{
  display:grid;
  grid-template-rows:auto minmax(0, 1fr);
  gap:18px;
}

.merl-gis-panel,
.merl-gis-analytics,
.merl-gis-list,
.detail-map-card{
  padding:18px;
}

.merl-gis-panel-head,
.detail-map-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:14px;
}

.merl-gis-panel-head strong,
.detail-map-head h3{
  display:block;
  margin:0;
  font-size:18px;
  color:#0b1220;
}

.merl-gis-badge,
.detail-map-meta span{
  display:inline-flex;
  align-items:center;
  padding:7px 11px;
  border-radius:999px;
  background:rgba(11,18,32,.06);
  border:1px solid rgba(13,23,44,.10);
  color:#1d2b45;
  font-size:11px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.merl-gis-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:14px;
}

.merl-gis-chip{
  border:1px solid rgba(13,23,44,.10);
  background:#fff;
  color:#122036;
  border-radius:999px;
  padding:9px 13px;
  font-weight:800;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:8px;
  transition:.18s ease;
}

.merl-gis-chip span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:24px;
  height:24px;
  border-radius:999px;
  background:#eef3fb;
  color:#3c4e68;
  font-size:11px;
}

.merl-gis-chip:hover,
.merl-gis-chip.is-active{
  transform:translateY(-1px);
  background:#0b1220;
  color:#fff;
  border-color:#0b1220;
}

.merl-gis-chip.is-active span,
.merl-gis-chip:hover span{
  background:rgba(255,255,255,.16);
  color:#fff;
}

.merl-gis-map,
.merl-detail-map{
  min-height:360px;
  border-radius:20px;
  overflow:hidden;
  border:1px solid rgba(13,23,44,.08);
  background:linear-gradient(135deg, #dfe8f2 0%, #f5f8fc 100%);
}

.merl-gis-analytics{
  border-radius:22px;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(13,23,44,.08);
  box-shadow:0 14px 34px rgba(13,23,44,.08);
}

.merl-gis-bars{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.merl-gis-bar-row{
  display:flex;
  flex-direction:column;
  gap:7px;
}

.merl-gis-bar-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  font-size:13px;
  color:#22314a;
  font-weight:800;
}

.merl-gis-bar-head span{
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.merl-gis-bar-dot{
  width:10px;
  height:10px;
  border-radius:999px;
  flex:0 0 auto;
}

.merl-gis-bar-track{
  height:12px;
  border-radius:999px;
  background:#edf2f8;
  overflow:hidden;
}

.merl-gis-bar-fill{
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg, #e8b949 0%, #0b1220 100%);
}

.merl-gis-list{
  display:flex;
  flex-direction:column;
  gap:12px;
  max-height:520px;
  overflow:auto;
}

.merl-gis-list-item{
  padding:14px 15px;
  border-radius:18px;
  background:#f8fbff;
  border:1px solid rgba(13,23,44,.08);
  appearance:none;
  width:100%;
  text-align:left;
  cursor:pointer;
  transition:.18s ease;
}

.merl-gis-list-item:hover{
  transform:translateY(-1px);
  background:#fff;
  box-shadow:0 12px 24px rgba(13,23,44,.08);
}

.merl-gis-list-item h4{
  margin:0 0 6px;
  font-size:15px;
  color:#0b1220;
}

.merl-gis-list-meta,
.detail-map-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}

.merl-gis-list-meta span{
  display:inline-flex;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(247,201,72,.20);
  border:1px solid rgba(247,201,72,.36);
  color:#3d2f0d;
  font-size:11px;
  font-weight:800;
}

.merl-gis-fallback,
.detail-map-fallback{
  margin-top:12px;
  padding:14px;
  border-radius:16px;
  background:#fff6df;
  border:1px solid rgba(247,201,72,.36);
  color:#5a4609;
}

.detail-grid{
  align-items:start;
}

.detail-map-card{
  min-width:0;
}

.detail-map-link{
  margin-top:12px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:#0b1220;
  font-weight:800;
  text-decoration:none;
}

.detail-map-link:hover{
  text-decoration:underline;
}

.merl-gis-info{
  max-width:260px;
  font-family:inherit;
  color:#112036;
}

.merl-gis-info--project p{
  margin:8px 0 0;
  font-size:12.5px;
  line-height:1.6;
  color:#5b6d86;
}

.merl-gis-info-meta,
.merl-project-modal-gis__meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}

.merl-gis-info-meta span,
.merl-project-modal-gis__meta span{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(247,201,72,.18);
  border:1px solid rgba(247,201,72,.34);
  color:#3f310d;
  font-size:11px;
  font-weight:800;
}

.merl-gis-info-location{
  margin-top:10px;
  font-size:12.5px;
  line-height:1.6;
  color:#31435c;
}

.merl-gis-info-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}

.merl-gis-info-btn{
  border:1px solid #0b1220;
  background:#0b1220;
  color:#fff;
  border-radius:12px;
  padding:8px 12px;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
}

.merl-gis-info-btn--quiet{
  background:#fff;
  color:#0b1220;
  border-color:rgba(13,23,44,.12);
}

.merl-project-geo{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  margin-top:2px;
  font-size:12px;
  color:#51637c;
}

.merl-project-geo__label{
  display:inline-flex;
  align-items:center;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(11,18,32,.06);
  border:1px solid rgba(13,23,44,.10);
  color:#0f1d34;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.merl-project-modal-gis{
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid rgba(13,23,44,.10);
}

.merl-project-modal-gis__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}

.merl-project-modal-gis__head strong{
  color:#0b1220;
}

.merl-project-modal-gis__head span{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(11,18,32,.06);
  border:1px solid rgba(13,23,44,.10);
  color:#1d2b45;
  font-size:11px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.merl-spotlight{
  outline:3px solid rgba(232,185,73,.68);
  outline-offset:2px;
  box-shadow:0 20px 44px rgba(13,23,44,.16);
}

@media (max-width: 1180px){
  .merl-gis-hero,
  .merl-gis-shell,
  .detail-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width: 760px){
  .merl-gis-showcase{
    padding:16px;
    border-radius:22px;
  }

  .merl-gis-copy,
  .merl-gis-panel,
  .merl-gis-analytics,
  .merl-gis-list,
  .detail-map-card{
    padding:16px;
  }

  .merl-gis-copy h3{
    font-size:24px;
  }

  .merl-gis-map,
  .merl-detail-map{
    min-height:300px;
  }
}
