:root{
    --gov-primary:#0b3d75;      /* deep institutional blue */
    --gov-primary-dark:#082c54;
    --gov-accent:#b71c1c;       /* crimson */
    --gov-accent-light:#e53935;
    --gov-gold:#f4b400;
    --gov-bg:#f4f6f9;
    --gov-text:#1f2733;
    --gov-muted:#5b6675;
    --gov-border:#e2e7ee;
    --radius:10px;
    --shadow:0 4px 18px rgba(11,61,117,.08);
}

*{box-sizing:border-box}
body{
    font-family:'Mukta','Poppins',system-ui,Segoe UI,sans-serif;
    color:var(--gov-text);
    background:var(--gov-bg);
    margin:0;
    line-height:1.6;
}
a{text-decoration:none;color:var(--gov-primary)}
a:hover{color:var(--gov-accent)}
.container{max-width:1180px}
img{max-width:100%}

/* ---------- Top bar ---------- */
.topbar{background:var(--gov-primary-dark);color:#cfe0f5;font-size:.85rem;padding:.4rem 0}
.topbar a{color:#cfe0f5}
.topbar a:hover{color:#fff}
.topbar .bi{margin-right:.2rem}
.lang-switch a{padding:.05rem .35rem;border-radius:4px;font-weight:600}
.lang-switch a.active{background:var(--gov-gold);color:#1f2733}
.lang-switch span{opacity:.5}

/* ---------- Brand header ---------- */
.site-header{background:#fff;border-bottom:3px solid var(--gov-accent);padding:.9rem 0}
.brand{display:flex;align-items:center;gap:1rem;color:var(--gov-text)}
.brand:hover{color:var(--gov-text)}
.brand-logo{height:70px;width:auto}
.brand-emblem{font-size:3rem;color:var(--gov-primary);line-height:1}
.brand-text{display:flex;flex-direction:column}
.brand-name{font-size:1.6rem;font-weight:700;color:var(--gov-primary);line-height:1.2}
.brand-sub{font-size:1rem;font-weight:600;color:var(--gov-accent)}
.brand-addr{font-size:.85rem;color:var(--gov-muted)}

/* ---------- Nav ---------- */
.site-nav{background:var(--gov-primary);padding:0}
.site-nav .navbar-nav{gap:.2rem}
.site-nav .nav-link{color:#eaf1fb!important;font-weight:600;padding:.85rem 1.1rem!important;border-radius:0;transition:.15s}
.site-nav .nav-link:hover{background:rgba(255,255,255,.12)}
.site-nav .nav-link.active{background:var(--gov-accent)}
.navbar-toggler{color:#fff;border-color:rgba(255,255,255,.4);margin:.5rem 0}
.navbar-toggler .bi{font-size:1.4rem}

/* ---------- Sections ---------- */
.section{padding:3rem 0}
.section-alt{background:#fff}
.section-title{position:relative;font-weight:700;color:var(--gov-primary);margin-bottom:1.6rem;font-size:1.6rem}
.section-title:after{content:"";display:block;width:64px;height:4px;background:var(--gov-accent);border-radius:2px;margin-top:.5rem}
.section-title.center{text-align:center}
.section-title.center:after{margin:.5rem auto 0}

/* ---------- Hero / slider ---------- */
.hero{position:relative}
.hero .carousel-item{height:440px}
.hero .carousel-item img{width:100%;height:100%;object-fit:cover}
.hero-caption{position:absolute;inset:0;display:flex;align-items:center;
    background:linear-gradient(90deg,rgba(8,44,84,.78) 0%,rgba(8,44,84,.25) 70%,transparent 100%)}
.hero-caption .inner{max-width:620px;color:#fff;padding:0 1rem}
.hero-caption h2{font-size:2.1rem;font-weight:700;margin-bottom:.6rem}
.hero-caption p{font-size:1.05rem;opacity:.95}

/* ---------- Quick links (banners) ---------- */
.quicklinks{margin-top:-2.6rem;position:relative;z-index:3}
.ql-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.1rem;text-align:center;
    height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:.18s;border:1px solid var(--gov-border)}
.ql-card:hover{transform:translateY(-4px);border-color:var(--gov-primary)}
.ql-card img{height:54px;width:54px;object-fit:contain;margin-bottom:.6rem}
.ql-card .ql-icon{font-size:2.2rem;color:var(--gov-primary);margin-bottom:.5rem}
.ql-card span{font-weight:600;font-size:.92rem;color:var(--gov-text)}

/* ---------- Cards ---------- */
.card-clean{background:#fff;border:1px solid var(--gov-border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;height:100%}

/* Notices */
.notice-list{background:#fff;border:1px solid var(--gov-border);border-radius:var(--radius);overflow:hidden}
.notice-row{display:flex;gap:1rem;align-items:flex-start;padding:1rem 1.2rem;border-bottom:1px solid var(--gov-border);transition:.15s}
.notice-row:last-child{border-bottom:0}
.notice-row:hover{background:#f7faff}
.notice-date{flex:0 0 auto;text-align:center;background:var(--gov-primary);color:#fff;border-radius:8px;padding:.4rem .6rem;min-width:64px;line-height:1.1}
.notice-date .d{font-size:1.3rem;font-weight:700;display:block}
.notice-date .m{font-size:.72rem;text-transform:uppercase;opacity:.9}
.notice-row .title{font-weight:600;color:var(--gov-text)}
.notice-row .title:hover{color:var(--gov-accent)}
.badge-new{background:var(--gov-accent);color:#fff;font-size:.65rem;padding:.15rem .4rem;border-radius:4px;vertical-align:middle}

/* Officials */
.official-card{background:#fff;border:1px solid var(--gov-border);border-radius:var(--radius);box-shadow:var(--shadow);
    text-align:center;padding:1.2rem;height:100%;transition:.18s}
.official-card:hover{transform:translateY(-4px)}
.official-photo{width:120px;height:120px;border-radius:50%;object-fit:cover;border:4px solid var(--gov-bg);
    box-shadow:0 0 0 2px var(--gov-primary);margin:0 auto .8rem;background:#dde5ef}
.official-card .name{font-weight:700;color:var(--gov-primary);margin-bottom:.1rem}
.official-card .role{color:var(--gov-accent);font-weight:600;font-size:.9rem}
.official-card .meta{font-size:.82rem;color:var(--gov-muted);margin-top:.3rem}
.official-card .meta i{margin-right:.25rem}

/* Staff directory */
.staff-filters .form-label{color:var(--gov-muted)}

/* Office group heading (app drill-down equivalent) */
.office-title{display:flex;align-items:center;gap:.5rem;font-size:1.15rem;font-weight:700;color:#fff;
    background:linear-gradient(120deg,var(--gov-primary),var(--gov-primary-dark));
    padding:.6rem 1rem;border-radius:8px;margin-bottom:1rem}
.office-title .bi{opacity:.85}
.office-title .office-count{margin-left:auto;background:rgba(255,255,255,.2);font-size:.8rem;font-weight:600;
    padding:.1rem .55rem;border-radius:20px}

/* App-style staff card: photo left, details right */
.staff-app-card{display:flex;gap:.9rem;background:#fff;border:1px solid var(--gov-border);border-radius:var(--radius);
    box-shadow:var(--shadow);padding:.8rem;height:100%;transition:.18s}
.staff-app-card:hover{transform:translateY(-3px);border-color:var(--gov-primary)}
.sac-photo{flex:0 0 auto}
.sac-photo img{width:92px;height:112px;object-fit:cover;border-radius:8px;background:#dde5ef}
.sac-body{min-width:0;display:flex;flex-direction:column}
.sac-name{font-weight:700;font-size:1.05rem;color:var(--gov-primary);line-height:1.25}
.sac-desig{font-weight:600;color:var(--gov-text);font-size:.92rem}
.sac-class{font-weight:700;color:var(--gov-accent);font-size:.85rem;margin-top:.05rem}
.sac-dim{font-size:.76rem;color:var(--gov-muted);margin:.2rem 0}
.sac-line{font-size:.82rem;color:var(--gov-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sac-line .bi{color:var(--gov-primary);margin-right:.25rem}

/* Service cards */
.service-card{display:flex;gap:1rem;align-items:flex-start;background:#fff;border:1px solid var(--gov-border);
    border-radius:var(--radius);padding:1.1rem;height:100%;box-shadow:var(--shadow);transition:.18s}
.service-card:hover{transform:translateY(-3px);border-color:var(--gov-primary)}
.service-card .s-icon{flex:0 0 auto;width:48px;height:48px;border-radius:10px;background:var(--gov-primary);
    color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.4rem}
.service-card .s-body h6{font-weight:700;margin:0 0 .2rem;color:var(--gov-text)}
.service-card .s-body small{color:var(--gov-muted)}

/* News */
.news-card .news-img{height:180px;object-fit:cover;width:100%;background:#dde5ef}
.news-card .news-body{padding:1rem}
.news-card .news-date{font-size:.78rem;color:var(--gov-muted)}
.news-card h6{font-weight:700;margin:.3rem 0}

/* ---------- Page banner ---------- */
.page-banner{background:linear-gradient(120deg,var(--gov-primary),var(--gov-primary-dark));color:#fff;padding:2.2rem 0}
.page-banner h1{font-weight:700;font-size:1.8rem;margin:0}
.page-banner .breadcrumb{margin:.4rem 0 0;font-size:.85rem}
.page-banner .breadcrumb a{color:#cfe0f5}
.page-banner .breadcrumb .sep{opacity:.6;margin:0 .4rem}

/* ---------- Footer ---------- */
.site-footer{background:var(--gov-primary-dark);color:#c7d6ea;padding:3rem 0 0;margin-top:3rem}
.footer-title{color:#fff;font-weight:700;margin-bottom:.8rem}
.footer-heading{color:#fff;font-weight:600;margin-bottom:.9rem;font-size:1rem}
.footer-text{font-size:.9rem;color:#aac0dc}
.footer-links,.footer-contact{list-style:none;padding:0;margin:0}
.footer-links li,.footer-contact li{margin-bottom:.5rem;font-size:.92rem}
.footer-links a{color:#c7d6ea}
.footer-links a:hover{color:#fff;padding-left:4px;transition:.15s}
.footer-contact .bi{color:var(--gov-gold);margin-right:.4rem}
.footer-social{display:flex;gap:.6rem;margin-top:1rem}
.footer-social a{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;
    display:flex;align-items:center;justify-content:center;transition:.15s}
.footer-social a:hover{background:var(--gov-accent)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:2.4rem;padding:1rem 0;font-size:.82rem;color:#9fb6d4}

/* ---------- Utilities ---------- */
.empty-state{text-align:center;padding:3rem 1rem;color:var(--gov-muted)}
.empty-state .bi{font-size:2.4rem;display:block;margin-bottom:.5rem;opacity:.5}
.back-to-top{position:fixed;right:20px;bottom:20px;width:44px;height:44px;border-radius:50%;background:var(--gov-accent);
    color:#fff;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:.25s;z-index:50}
.back-to-top.show{opacity:1;pointer-events:auto}
.back-to-top:hover{color:#fff;background:var(--gov-accent-light)}
.prose{line-height:1.9}
.prose h1,.prose h2,.prose h3,.prose h4{color:var(--gov-primary);font-weight:700;line-height:1.3;margin:1.4rem 0 .7rem}
.prose h1:first-child,.prose h2:first-child,.prose h3:first-child{margin-top:0}
.prose h1{font-size:1.55rem}
.prose h2{font-size:1.3rem}
.prose h3{font-size:1.12rem}
.prose p{margin:0 0 1rem}
.prose strong,.prose b{font-weight:700}
/* WYSIWYG body text often lives in <pre>; render it as normal flowing,
   wrapping text (not monospace) while keeping its intended line gaps. */
.prose pre{white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:1rem;
    line-height:1.9;background:transparent;border:0;padding:0;margin:0 0 1rem;color:inherit}
.prose img{border-radius:8px;max-width:100%;height:auto;margin:.4rem 0}
.prose ul,.prose ol{margin:0 0 1rem 1.3rem}
.prose li{margin-bottom:.3rem}
.prose a{color:var(--gov-accent);text-decoration:underline}
.prose table{width:100%;border-collapse:collapse;margin:0 0 1rem}
.prose td,.prose th{border:1px solid var(--gov-border);padding:.5rem .7rem;vertical-align:top}
.prose blockquote{border-left:4px solid var(--gov-primary);background:#f7faff;margin:0 0 1rem;padding:.6rem 1rem;color:var(--gov-muted)}

@media(max-width:991px){
    .brand-name{font-size:1.25rem}
    .hero .carousel-item{height:300px}
    .quicklinks{margin-top:1.5rem}
    .site-nav .navbar-nav{padding:.5rem 0}
}
