/* ==========================================================================
   Gilgit-Baltistan Judicial Academy — Site Stylesheet
   Palette: Navy #0a2a5e | Deep Green #0d4f2f | Gold #c9a227 | Gray #f4f6f8
   ========================================================================== */
:root{
  --navy:#0a2a5e;
  --navy-dark:#081c3b;
  --green:#0d4f2f;
  --gold:#c9a227;
  --gray:#f4f6f8;
  --ink:#1c2530;
  --white:#ffffff;
  --radius:.5rem;
  --font-display:"Merriweather", Georgia, "Times New Roman", serif;
  --font-body:"Source Sans Pro","Segoe UI",Arial,sans-serif;
}
*{scroll-behavior:smooth}
body{
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--white);
  font-size:1rem;
  overflow-x: hidden;
}
h1,h2,h3,h4,.brand-font{font-family:var(--font-display);}
a{color:var(--navy)}
a:hover{color:var(--gold)}

/* Skip link */
.skip-link{position:absolute;left:-999px;top:0;background:var(--gold);color:var(--navy-dark);padding:.6rem 1rem;z-index:2000;font-weight:700;border-radius:0 0 .4rem 0}
.skip-link:focus{left:0}

/* Government top bar */
.govbar{background:var(--navy-dark);color:#dfe6f0;font-size:.82rem;padding:.35rem 0}
.govbar .container{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.4rem}
.govbar .a11y-btns button{background:transparent;border:1px solid #3a5686;color:#dfe6f0;border-radius:3px;font-size:.72rem;padding:.05rem .45rem;margin-left:.25rem}
.govbar .a11y-btns button:hover{background:var(--gold);color:var(--navy-dark);border-color:var(--gold)}
.govbar a{color:#dfe6f0;text-decoration:none;margin-left:1rem}
.govbar a:hover{color:var(--gold)}

/* Masthead */
.masthead{background:linear-gradient(90deg,var(--navy) 0%,var(--navy-dark) 100%);color:#fff;padding:1.1rem 0;border-bottom:4px solid var(--gold)}
.masthead .emblem{width:62px;height:62px;border-radius:50%;background:var(--gold);color:var(--navy-dark);display:flex;align-items:center;justify-content:center;font-size:1.6rem;flex:0 0 auto}
.masthead h1{font-size:1.55rem;letter-spacing:.5px;margin:0;line-height:1.15}
.masthead .subtitle{font-size:.9rem;color:#d9c98a;letter-spacing:.6px;margin:0}
.masthead .gov-of{font-size:.78rem;color:#b9c6dd;text-transform:uppercase;letter-spacing:1px;margin:0}

/* Main nav */
.mainnav{background:var(--navy)}
.mainnav .navbar-brand{display:none}
.mainnav .nav-link{color:#e9edf2 !important;font-weight:600;font-size:.92rem;padding:.85rem .9rem !important}
.mainnav .nav-link:hover,.mainnav .nav-link:focus,.mainnav .nav-link.active{color:var(--gold) !important}
.mainnav .dropdown-menu{border-radius:0;border-top:3px solid var(--gold);border-color:#e3e7ec}
.mainnav .dropdown-item{font-size:.9rem;padding:.5rem 1.1rem}
.mainnav .dropdown-item:hover{background:var(--gray);color:var(--navy)}
.mainnav.shrink .nav-link{padding:.55rem .9rem !important}

/* Hero */
.hero-carousel .carousel-item{height:78vh;min-height:420px;position:relative}
.hero-carousel img{width:100%;height:100%;object-fit:cover;filter:brightness(.7)}
.hero-carousel .overlay-caption{position:absolute;inset:0;display:flex;align-items:center;background:linear-gradient(90deg,rgba(8,28,59,.82) 0%,rgba(8,28,59,.45) 60%,rgba(8,28,59,.15) 100%)}
.hero-carousel .caption-box{max-width:680px;color:#fff;padding:0 5%}
.hero-carousel h2{font-size:2.4rem;font-weight:700;line-height:1.2}
.hero-carousel p.lead{color:#dfe6f0}
.hero-carousel .btn-gold{background:var(--gold);border-color:var(--gold);color:var(--navy-dark);font-weight:700}
.hero-carousel .btn-gold:hover{background:#b18f20;border-color:#b18f20}
.hero-carousel .btn-outline-light:hover{color:var(--navy-dark)}

/* Section styling */
.section{padding:3.4rem 0}
.section-alt{background:var(--gray)}
.section-title{position:relative;font-weight:700;margin-bottom:.35rem}
.section-title::after{content:"";display:block;width:64px;height:4px;background:var(--gold);margin-top:.6rem}
.section-title.center::after{margin-left:auto;margin-right:auto}
.section-sub{color:#5b6572;max-width:760px}

/* Cards */
.card{border:1px solid #e3e7ec;border-radius:var(--radius);transition:transform .2s ease,box-shadow .2s ease}
.card:hover{transform:translateY(-4px);box-shadow:0 .75rem 1.5rem rgba(10,42,94,.12)}
.icon-card{text-align:center;padding:1.6rem 1rem;height:100%}
.icon-card .bi{font-size:2.1rem;color:var(--navy);margin-bottom:.6rem;display:inline-block}
.icon-card:hover .bi{color:var(--gold)}
.leader-card img,.faculty-card img{width:100%;aspect-ratio:1/1;object-fit:cover;border-bottom:3px solid var(--gold)}
.badge-cat{background:var(--navy);color:#fff;font-weight:500}
.badge-open{background:#1e7e42}
.badge-closed{background:#8a1f2b}

/* Stats */
.stats-strip{background:var(--navy-dark);color:#fff}
.stats-strip .num{font-family:var(--font-display);font-size:2.6rem;color:var(--gold);font-weight:700}
.stats-strip .lbl{color:#c7d2e3;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}

/* Nav pill / list group */
.list-group-item.active{background:var(--navy);border-color:var(--navy)}

/* Footer */
.site-footer{background:var(--navy-dark);color:#c7d2e3;padding-top:3rem}
.site-footer h6{color:var(--gold);text-transform:uppercase;font-size:.82rem;letter-spacing:1px;margin-bottom:1rem}
.site-footer a{color:#c7d2e3;text-decoration:none;display:block;margin-bottom:.45rem;font-size:.9rem}
.site-footer a:hover{color:var(--gold)}
.site-footer .social a{display:inline-flex;width:34px;height:34px;border:1px solid #2c447a;border-radius:50%;align-items:center;justify-content:center;margin-right:.4rem}
.copyright{border-top:1px solid #22345c;margin-top:2rem;padding:1rem 0;font-size:.82rem;text-align:center;color:#9aa9c4}

/* Back to top */
#backTop{position:fixed;right:1.2rem;bottom:1.2rem;width:44px;height:44px;border-radius:50%;background:var(--navy);color:#fff;border:none;display:none;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,.25);z-index:1500}
#backTop.show{display:flex}
#backTop:hover{background:var(--gold);color:var(--navy-dark)}

/* Accessibility */
html.contrast body{background:#000;color:#fff}
html.contrast .navbar,html.contrast .masthead,html.contrast .govbar,html.contrast .site-footer{background:#000 !important;border-color:#ffef00 !important}
html.contrast a{color:#ffef00 !important}
html.contrast .card{background:#000;border-color:#ffef00}
html.contrast .btn-gold{background:#ffef00;color:#000;border-color:#ffef00}

/* Gallery / lightbox */
.gallery-item{cursor:pointer;overflow:hidden;border-radius:var(--radius);position:relative}
.gallery-item img{width:100%;height:220px;object-fit:cover;transition:transform .3s}
.gallery-item:hover img{transform:scale(1.06)}
.gallery-item .cap{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(0deg,rgba(8,28,59,.85),transparent);color:#fff;padding:.6rem .8rem;font-size:.85rem}
#lightbox{position:fixed;inset:0;background:rgba(8,28,59,.92);display:none;align-items:center;justify-content:center;z-index:2000;padding:2rem}
#lightbox.show{display:flex}
#lightbox img{max-width:90%;max-height:80vh;border:4px solid #fff}
#lightbox .lb-close{position:absolute;top:1.2rem;right:1.6rem;color:#fff;font-size:2rem;background:none;border:none}

/* Calendar */
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.calendar-grid .dow{text-align:center;font-weight:700;color:var(--navy);font-size:.8rem;padding:.3rem 0}
.calendar-grid .day{background:var(--gray);min-height:78px;border-radius:4px;padding:.3rem;font-size:.78rem;position:relative}
.calendar-grid .day.blank{background:transparent}
.calendar-grid .day .d-num{font-weight:700;color:#5b6572}
.calendar-grid .day.has-event{background:#e7edf7}
.calendar-grid .day .evt{display:block;background:var(--navy);color:#fff;border-radius:3px;padding:1px 4px;margin-top:2px;font-size:.68rem;line-height:1.2}

/* Utility */
.text-navy{color:var(--navy)}
.text-gold{color:var(--gold)}
.bg-navy{background:var(--navy)}
.bg-gold{background:var(--gold)}
.pagination .page-link{color:var(--navy)}
.pagination .page-item.active .page-link{background:var(--navy);border-color:var(--navy)}
.form-label{font-weight:600;font-size:.9rem}
.page-banner{background:linear-gradient(90deg,var(--navy),var(--navy-dark));color:#fff;padding:2.4rem 0;border-bottom:4px solid var(--gold)}
.page-banner h1{font-size:2rem;margin:0}
.breadcrumb a{color:#dfe6f0}
.demo-note{background:#fff8e1;border:1px dashed var(--gold);border-radius:var(--radius);padding:.75rem 1rem;font-size:.85rem}

/* ==========================================================================
   Important Notices Popup Modal (Styled matching FPSC / Official Portal Reference)
   ========================================================================== */
.notices-modal .modal-dialog {
  max-width: 680px;
  margin: 1.75rem auto;
}
.notices-modal .modal-content {
  border: 1px solid rgba(0,0,0,0.12);
  border-radius: 12px;
  box-shadow: 0 20px 45px rgba(0, 0, 0, 0.45);
  padding: 1.75rem 1.6rem 1.4rem;
  background: #ffffff;
}
.notices-modal-header {
  position: relative;
  text-align: center;
  padding-bottom: 0.9rem;
  margin-bottom: 1.1rem;
}
.notices-modal-title {
  color: #d61f1f; /* Bold red as in reference */
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 2.15rem;
  margin: 0;
  letter-spacing: 0.5px;
  line-height: 1.2;
}
.notices-close-btn {
  position: absolute;
  right: -0.25rem;
  top: -0.5rem;
  background: transparent;
  border: none;
  font-size: 2rem;
  line-height: 1;
  color: #212529;
  cursor: pointer;
  padding: 0.2rem 0.5rem;
  transition: color 0.2s, transform 0.2s;
}
.notices-close-btn:hover {
  color: #d61f1f;
  transform: scale(1.15);
}
.notices-list {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  max-height: 60vh;
  overflow-y: auto;
  padding-right: 0.2rem;
}
/* Notice item pill/card matching green reference */
.notice-item-btn {
  display: block;
  width: 100%;
  background: #c7e8cb; /* Mint light green background */
  border: 1.5px solid #94d4a3;
  border-radius: 6px;
  padding: 0.85rem 1.25rem;
  color: #0d381c;
  font-size: 0.96rem;
  font-weight: 600;
  text-align: center;
  text-decoration: none;
  transition: all 0.2s ease-in-out;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
  line-height: 1.45;
}
.notice-item-btn:hover, .notice-item-btn:focus {
  background: #b2e0b9;
  border-color: #6fc384;
  color: #072511;
  transform: translateY(-2px);
  box-shadow: 0 5px 12px rgba(13, 79, 47, 0.16);
  text-decoration: none;
}
.notice-item-btn .notice-badge {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  background: #0d4f2f;
  color: #ffffff;
  padding: 0.15rem 0.45rem;
  border-radius: 4px;
  margin-right: 0.5rem;
  vertical-align: middle;
}
.notices-modal-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 1.25rem;
  padding-top: 0.9rem;
  border-top: 1px solid #e5e9ee;
  font-size: 0.85rem;
  color: #637080;
}
.notices-modal-footer .form-check-label {
  cursor: pointer;
  user-select: none;
}
/* Floating button to re-open notices anytime */
.notices-floating-trigger {
  position: fixed;
  left: 1.2rem;
  bottom: 1.2rem;
  z-index: 1040;
  box-shadow: 0 4px 15px rgba(214, 31, 31, 0.35);
  animation: pulseNotice 2.5s infinite;
}
@keyframes pulseNotice {
  0% { transform: scale(1); }
  50% { transform: scale(1.04); }
  100% { transform: scale(1); }
}

@media(max-width:991px){
  .hero-carousel .carousel-item{height:60vh}
  .hero-carousel h2{font-size:1.7rem}
  .masthead h1{font-size:1.15rem}
  .notices-modal-title{font-size:1.7rem}
  .notice-item-btn{font-size:0.88rem;padding:0.75rem 1rem}
}
