/* ================= DESIGN TOKENS ================= */
:root{
  --color-primary:#123C7A;      /* Royal Blue */
  --color-primary-dark:#0B2955;
  --color-secondary:#2E86DE;    /* Sky Blue */
  --color-accent:#D4A017;       /* Golden Accent */
  --color-accent-light:#F0C75E;
  --color-light:#F4F6F9;        /* Light Gray */
  --color-white:#FFFFFF;
  --text-dark:#16213E;
  --text-muted:#5B6472;
  --border-soft:#E4E9F2;
  --radius-sm:8px;
  --radius:20px;
  --radius-lg:36px;
  --shadow-soft:0 10px 30px rgba(18,60,122,.08);
  --shadow-hover:0 20px 45px rgba(18,60,122,.16);
  --font-display:'Poppins',sans-serif;
  --font-body:'Inter',sans-serif;
  --font-data:'Roboto',sans-serif;
  --header-h:118px;
  --topbar-h:38px;
}
[data-theme="dark"]{
  --color-light:#0E1526;
  --color-white:#141C30;
  --text-dark:#EDF1FA;
  --text-muted:#9AA6BF;
  --border-soft:#26314C;
  --shadow-soft:0 10px 30px rgba(0,0,0,.35);
  --shadow-hover:0 20px 45px rgba(0,0,0,.5);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth; overflow-x:clip; width:100%;}
body{
  font-family:var(--font-body);
  color:var(--text-dark);
  background:var(--color-light);
  margin:0;
  overflow-x:clip;
  transition:background .3s ease,color .3s ease;
}
/* ================= SCROLLBAR ================= */
html{scrollbar-color:var(--color-secondary) var(--color-light); scrollbar-width:thin;}
::-webkit-scrollbar{width:12px; height:12px;}
::-webkit-scrollbar-track{background:var(--color-light);}
::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,var(--color-primary),var(--color-secondary));
  border-radius:10px; border:2px solid var(--color-light); background-clip:padding-box;
}
::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--color-secondary),var(--color-accent)); background-clip:padding-box;}
::-webkit-scrollbar-corner{background:var(--color-light);}

h1,h2,h3,h4,h5{font-family:var(--font-display); color:var(--text-dark); font-weight:700; margin:0;}
a{text-decoration:none;}
img{max-width:100%; display:block;}
.container-xl{max-width:1500px; margin:0 auto; padding:0 20px;}
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-data); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--color-secondary); font-weight:700; margin-bottom:12px;
}
.eyebrow::before{content:''; width:22px; height:2px; background:var(--color-accent); display:inline-block;}
.section-title{font-size:clamp(1.6rem,3vw,2.4rem); line-height:1.2;}
.section-sub{color:var(--text-muted); max-width:640px; margin-top:10px; font-size:1rem;}
.section-head{margin-bottom:20px;}
.section-pad{padding:14px 0;}
@media (max-width:767px){
  .section-pad{padding:8px 0;}
  .container-xl{padding:0;}
  #announcements .container-xl,
  #contact .container-xl,
  #govsites .container-xl{
    padding-left:14px;
    padding-right:14px;
  }
  .footer-bottom{padding-left:14px; padding-right:14px;}
}
.btn-primary-gov{
  background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));
  color:#fff; border:none; padding:13px 28px; border-radius:50px; font-weight:600; font-size:.92rem;
  display:inline-flex; align-items:center; gap:10px; box-shadow:0 10px 24px rgba(46,134,222,.32);
  transition:transform .25s ease, box-shadow .25s ease; position:relative; overflow:hidden;
}
.btn-primary-gov:hover{transform:translateY(-3px); box-shadow:0 16px 32px rgba(46,134,222,.4); color:#fff;}
.btn-outline-gov{
  border:1.5px solid var(--color-primary); color:var(--color-primary); padding:12px 26px; border-radius:50px;
  font-weight:600; font-size:.92rem; display:inline-flex; align-items:center; gap:10px; background:transparent;
  transition:all .25s ease;
}
.btn-outline-gov:hover{background:var(--color-primary); color:#fff; transform:translateY(-3px);}
.badge-gold{background:linear-gradient(135deg,var(--color-accent),var(--color-accent-light)); color:#3a2a00; font-weight:700;}

/* Ripple */
.ripple{position:relative; overflow:hidden;}
.ripple-el{position:absolute; border-radius:50%; background:rgba(255,255,255,.55); transform:scale(0); animation:rip .6s ease-out; pointer-events:none;}
@keyframes rip{to{transform:scale(3); opacity:0;}}

/* ================= PAGE LOADER ================= */
#page-loader{
  position:fixed; inset:0; background:var(--color-primary-dark); z-index:99999;
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:16px;
  transition:opacity .5s ease, visibility .5s ease;
}
#page-loader.hidden{opacity:0; visibility:hidden;}
.loader-emblem{width:64px; height:64px; animation:spin 1.4s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.loader-text{color:#fff; font-family:var(--font-display); letter-spacing:.08em; font-size:.85rem; text-transform:uppercase;}

/* ================= SCROLL PROGRESS ================= */
#scroll-progress{position:fixed; top:0; left:0; height:3px; width:0; background:linear-gradient(90deg,var(--color-accent),var(--color-secondary)); z-index:9999;}

/* ================= TOP BAR ================= */
.topbar{
  background:var(--color-primary-dark); color:#cfe0ff; font-size:.78rem; height:var(--topbar-h);
  display:flex; align-items:center;
}
.topbar a{color:#cfe0ff; opacity:.9;}
.topbar a:hover{color:var(--color-accent-light);}
.topbar-inner{display:flex; justify-content:space-between; align-items:center; width:100%;}
.topbar-left span, .topbar-left a{margin-right:18px; white-space:nowrap;}
.topbar-login-btn{color:#fff; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.28); border-radius:20px; padding:4px 14px; font-size:.78rem; font-weight:700; display:inline-flex; align-items:center; gap:6px; transition:.2s ease; white-space:nowrap;}
.topbar-login-btn:hover{background:var(--color-accent); color:#3a2a00;}
.topbar-user-group{display:flex; align-items:center; gap:12px;}
.topbar-user{color:#cfe0ff; font-size:.78rem; display:inline-flex; align-items:center; gap:6px; white-space:nowrap;}
.topbar-logout-btn{background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.28); color:#fff; border-radius:20px; padding:3px 12px; font-size:.72rem; font-weight:700; cursor:pointer; transition:.2s ease;}
.topbar-logout-btn:hover{background:var(--color-accent); color:#3a2a00;}
.lang-switch{background:transparent; color:#cfe0ff; border:1px solid rgba(255,255,255,.25); border-radius:20px; font-size:.75rem; padding:3px 12px;}
.lang-switch option{color:#111;}

/* ================= HEADER ================= */
header.site-header{
  position:sticky; top:0; z-index:1000; background:var(--color-white); box-shadow:var(--shadow-soft);
  transition:background .35s ease, box-shadow .3s ease;
}
header.site-header.scrolled{
  background:linear-gradient(135deg,var(--color-primary),var(--color-secondary)); box-shadow:var(--shadow-hover);
}
header.site-header.scrolled .brand-text .brand-name{color:#fff;}
header.site-header.scrolled .brand-text .brand-tag{color:rgba(255,255,255,.75);}
header.site-header.scrolled nav.main-nav a{color:#fff;}
header.site-header.scrolled nav.main-nav a::after{background:var(--color-accent-light);}
header.site-header.scrolled .search-box input{background:rgba(255,255,255,.14); color:#fff; border-color:rgba(255,255,255,.35);}
header.site-header.scrolled .search-box input::placeholder{color:rgba(255,255,255,.7);}
header.site-header.scrolled .search-box input:focus{border-color:#fff;}
header.site-header.scrolled .search-box button{color:#fff;}
header.site-header.scrolled .icon-btn{background:rgba(255,255,255,.16); color:#fff;}
header.site-header.scrolled .icon-btn:hover{background:#fff; color:var(--color-primary);}
header.site-header.scrolled .hamburger span{background:#fff;}
.header-inner{display:flex; align-items:center; justify-content:space-between; padding:14px 0;}
.brand{display:flex; align-items:center; gap:12px;}
.brand-emblem{width:52px; height:52px; flex-shrink:0;}
.brand-text .brand-name{font-family:var(--font-display); font-weight:800; font-size:1.25rem; color:var(--color-primary); line-height:1.1;}
.brand-text .brand-tag{font-size:.72rem; color:var(--text-muted); letter-spacing:.04em;}
nav.main-nav ul{list-style:none; display:flex; gap:28px; margin:0; padding:0;}
nav.main-nav a{color:var(--text-dark); font-weight:600; font-size:.92rem; position:relative; padding:6px 0;}
nav.main-nav a::after{content:''; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--color-accent); transition:width .25s ease;}
nav.main-nav a:hover::after, nav.main-nav a.active::after{width:100%;}
.header-actions{display:flex; align-items:center; gap:14px;}
.search-box{position:relative;}
.search-box input{
  border:1.5px solid var(--border-soft); border-radius:24px; padding:9px 40px 9px 16px; font-size:.85rem;
  width:190px; background:var(--color-light); color:var(--text-dark); transition:width .3s ease;
}
.search-box input:focus{width:230px; outline:none; border-color:var(--color-secondary);}
.search-box button{position:absolute; right:6px; top:50%; transform:translateY(-50%); background:none; border:none; color:var(--color-primary);}
.icon-btn{width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--color-light); color:var(--color-primary); border:none; font-size:1rem; transition:.25s;}
.icon-btn:hover{background:var(--color-primary); color:#fff;}
.hamburger{display:none; flex-direction:column; gap:5px; background:none; border:none; padding:6px;}
.hamburger span{width:26px; height:3px; background:var(--color-primary); border-radius:2px; transition:.3s;}

/* ================= HERO ================= */
.hero{
  position:relative; width:100%; overflow:hidden;
  aspect-ratio:21/8; min-height:220px; max-height:420px;
}
.hero .swiper, .hero .swiper-wrapper{height:100%;}
.hero-slide{position:relative; width:100%; height:100%;}
.hero-slide .bg{position:absolute; inset:0; z-index:0; overflow:hidden; width:100%; height:100%;}
.hero-slide .bg img{width:100%; height:100%; object-fit:cover; object-position:center; display:block;}
@media (max-width:991px){
  .hero{aspect-ratio:16/9; min-height:200px; max-height:360px;}
}
@media (max-width:575px){
  .hero{aspect-ratio:16/10; min-height:180px; max-height:280px;}
}
@media (max-width:380px){
  .hero{aspect-ratio:16/11; min-height:160px; max-height:240px;}
}
.hero .swiper-pagination-bullet{background:#fff; opacity:.5; width:9px; height:9px;}
.hero .swiper-pagination-bullet-active{opacity:1; background:var(--color-accent); width:26px; border-radius:5px;}

/* ================= NEWS TICKER ================= */
.ticker-bar{background:var(--color-primary); color:#fff; display:flex; align-items:center; overflow:hidden; position:relative;}
.ticker-label{background:var(--color-accent); color:#3a2a00; font-weight:800; font-size:.78rem; text-transform:uppercase; letter-spacing:.05em; padding:10px 20px; flex-shrink:0; display:flex; align-items:center; gap:8px; z-index:2;}
.ticker-viewport{overflow:hidden; flex:1; padding:10px 0;}
.ticker-track{display:flex; gap:60px; white-space:nowrap; animation:tickerMove 16s linear infinite;}
.ticker-bar:hover .ticker-track{animation-play-state:paused;}
.ticker-track span{font-size:.86rem; display:inline-flex; align-items:center; gap:8px;}
.ticker-track span i{color:var(--color-accent-light);}
@keyframes tickerMove{from{transform:translateX(0);} to{transform:translateX(-50%);}}
@media (max-width:767px){
  .ticker-bar{flex-direction:column; align-items:stretch;}
  .ticker-label{width:100%; justify-content:center; padding:8px 16px;}
  .ticker-viewport{width:100%; padding:8px 0;}
}

/* ================= STATS ================= */
.stats-section{background:linear-gradient(180deg,var(--color-white),var(--color-light));}
.stat-card{
  background:var(--color-white); border-radius:var(--radius); padding:20px 24px; text-align:center;
  box-shadow:var(--shadow-soft); border:1px solid var(--border-soft); transition:transform .3s ease, box-shadow .3s ease;
  height:100%;
}
.stat-card:hover{transform:translateY(-8px); box-shadow:var(--shadow-hover);}
.stat-icon{width:64px; height:64px; border-radius:50%; margin:0 auto 16px; display:flex; align-items:center; justify-content:center; font-size:1.5rem; color:#fff; background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));}
.stat-number{font-family:var(--font-data); font-size:2.2rem; font-weight:700; color:var(--color-primary);}
.stat-label{color:var(--text-muted); font-size:.9rem; font-weight:600; margin-top:4px;}

/* ================= QUICK SERVICES (two-tone split) ================= */
.service-card{
  position:relative; background:var(--color-white); border-radius:20px; overflow:hidden; height:100%;
  box-shadow:var(--shadow-soft); transition:transform .3s ease, box-shadow .3s ease;
}
.service-card:hover{box-shadow:var(--shadow-hover); transform:translateY(-8px);}
.service-top{padding:22px 24px 34px; background:var(--service-accent, var(--color-primary)); display:flex; align-items:center; gap:14px;}
.service-icon{width:52px; height:52px; border-radius:14px; background:rgba(255,255,255,.22); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.3rem; flex-shrink:0;}
.service-top h5{color:#fff; margin:0; font-size:1rem;}
.service-body{position:relative; background:var(--color-white); border-radius:18px 18px 0 0; margin-top:-18px; padding:20px 24px 22px;}
.service-body p{color:var(--text-muted); font-size:.85rem; line-height:1.55; margin-bottom:14px;}
.service-link{color:var(--service-accent, var(--color-primary)); font-weight:700; font-size:.85rem; display:inline-flex; align-items:center; gap:6px;}
.service-link i{transition:transform .25s ease;}
.service-card:hover .service-link i{transform:translateX(4px);}

/* ================= GALLERY ================= */
.gallery-track-wrap{overflow:hidden; position:relative;}
.gallery-track{display:flex; gap:20px; width:max-content; animation:galleryScroll 40s linear infinite;}
.gallery-track-wrap:hover .gallery-track{animation-play-state:paused;}
@keyframes galleryScroll{from{transform:translateX(0);} to{transform:translateX(-50%);}}
.gallery-item{width:280px; height:200px; border-radius:var(--radius); overflow:hidden; cursor:pointer; position:relative; flex-shrink:0; box-shadow:var(--shadow-soft);}
.gallery-item svg{width:100%; height:100%; transition:transform .5s ease;}
.gallery-item:hover svg{transform:scale(1.08);}
.gallery-item .gtag{position:absolute; bottom:12px; left:12px; color:#fff; font-weight:700; font-size:.85rem; z-index:2;}
.gallery-item::after{content:''; position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,.55), transparent 55%);}

/* Lightbox */
.lightbox-overlay{position:fixed; inset:0; background:rgba(11,20,40,.92); z-index:9998; display:none; align-items:center; justify-content:center; padding:30px;}
.lightbox-overlay.active{display:flex;}
.lightbox-overlay img, .lightbox-overlay svg{max-width:min(800px,90vw); max-height:80vh; border-radius:12px;}
.lightbox-close{position:absolute; top:26px; right:34px; color:#fff; font-size:1.8rem; background:none; border:none;}

/* ================= LOGIN / REGISTER MODAL ================= */
.auth-overlay{position:fixed; inset:0; background:rgba(11,20,40,.6); backdrop-filter:blur(3px); z-index:9998; display:none; align-items:center; justify-content:center; padding:20px;}
.auth-overlay.active{display:flex;}
.auth-modal{
  position:relative; width:100%; max-width:420px; background:var(--color-white); border-radius:var(--radius);
  box-shadow:0 30px 70px rgba(11,20,40,.35); padding:32px 30px 28px; max-height:92vh; overflow-y:auto; overflow-x:hidden;
  transform:translateY(20px) scale(.97); opacity:0; transition:transform .35s ease, opacity .35s ease;
  scrollbar-width:none; -ms-overflow-style:none;
}
.auth-modal::-webkit-scrollbar{width:0; height:0; display:none;}
.auth-overlay.active .auth-modal{transform:translateY(0) scale(1); opacity:1;}
.auth-close{position:absolute; top:16px; right:16px; width:34px; height:34px; border-radius:50%; background:var(--color-light); border:none; color:var(--text-dark); font-size:.9rem; display:flex; align-items:center; justify-content:center;}
.auth-close:hover{background:var(--color-primary); color:#fff;}
.auth-head{text-align:center; margin-bottom:22px;}
.auth-head .brand-emblem{width:44px; height:44px; margin:0 auto 10px;}
.auth-head h4{font-size:1.25rem; margin-bottom:4px;}
.auth-head p{color:var(--text-muted); font-size:.85rem; margin:0;}
.auth-tabs{display:flex; background:var(--color-light); border-radius:50px; padding:4px; margin-bottom:22px;}
.auth-tab{flex:1; border:none; background:transparent; padding:10px 0; border-radius:50px; font-weight:700; font-size:.86rem; color:var(--text-muted); transition:.25s;}
.auth-tab.active{background:linear-gradient(135deg,var(--color-primary),var(--color-secondary)); color:#fff; box-shadow:0 6px 16px rgba(46,134,222,.3);}
.auth-panel{display:none;}
.auth-panel.active{display:block;}
.auth-field{margin-bottom:9px;}
.auth-field label{display:block; font-size:.8rem; font-weight:600; color:var(--text-dark); margin-bottom:6px;}
.auth-input-wrap{position:relative;}
.auth-input-wrap i{position:absolute; left:15px; top:50%; transform:translateY(-50%); color:var(--color-secondary); font-size:.9rem;}
.auth-input-wrap input, .auth-input-wrap select{
  width:100%; padding:11px 14px 11px 40px; border-radius:10px; border:1.5px solid var(--border-soft);
  background:var(--color-light); color:var(--text-dark); font-size:.88rem; transition:.2s;
}
.auth-input-wrap input:focus, .auth-input-wrap select:focus{outline:none; border-color:var(--color-secondary); background:var(--color-white);}
.auth-input-wrap .toggle-pass{left:auto; right:15px; cursor:pointer; background:none; border:none; padding:0;}
.auth-row-between{display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; font-size:.82rem;}
.auth-row-between a{color:var(--color-secondary); font-weight:600;}
.auth-check{display:flex; align-items:center; gap:7px; color:var(--text-muted);}
.auth-check input{accent-color:var(--color-primary);}
.auth-submit{width:100%; justify-content:center; padding:12px; font-size:.92rem;}
.auth-switch{text-align:center; font-size:.85rem; color:var(--text-muted); margin-top:18px;}
.auth-switch a{color:var(--color-primary); font-weight:700;}
.auth-error{display:none; background:#FDEAEA; color:#c0392b; border-radius:10px; padding:9px 14px; font-size:.8rem; margin-bottom:14px;}
.auth-error.show{display:block;}
.auth-success{display:none; background:#E6F8EE; color:#0f8a4c; border-radius:10px; padding:9px 14px; font-size:.8rem; margin-bottom:14px;}
.auth-success.show{display:block;}

/* ================= ANNOUNCEMENTS ================= */
.announce-item{background:var(--color-white); border:1px solid var(--border-soft); border-radius:var(--radius); margin-bottom:14px; overflow:hidden; box-shadow:var(--shadow-soft);}
.announce-head{display:flex; align-items:center; justify-content:space-between; padding:14px 24px; cursor:pointer; gap:16px;}
.announce-head:hover{background:rgba(46,134,222,.04);}
.date-badge{background:var(--color-light); border:1px solid var(--border-soft); border-radius:10px; text-align:center; padding:6px 12px; font-family:var(--font-data); flex-shrink:0; min-width:58px;}
.date-badge .d{font-size:1.1rem; font-weight:700; color:var(--color-primary); line-height:1;}
.date-badge .m{font-size:.68rem; text-transform:uppercase; color:var(--text-muted);}
.cat-badge{font-size:.68rem; padding:4px 12px; border-radius:20px; font-weight:700; text-transform:uppercase; letter-spacing:.03em;}
.cat-badge.cat-notice{background:#E7F1FF; color:var(--color-secondary);}
.cat-badge.cat-tender{background:#FFF2DA; color:#8a5a00;}
.cat-badge.cat-result{background:#E6F8EE; color:#0f8a4c;}
.announce-title{font-weight:600; font-size:.95rem; flex:1;}
.announce-toggle{width:34px; height:34px; border-radius:50%; background:var(--color-light); display:flex; align-items:center; justify-content:center; transition:transform .3s ease; flex-shrink:0;}
.announce-item.open .announce-toggle{transform:rotate(45deg); background:var(--color-primary); color:#fff;}
.announce-body{max-height:0; overflow:hidden; transition:max-height .35s ease;}
.announce-body-inner{padding:0 24px 14px 24px; color:var(--text-muted); font-size:.9rem; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;}

/* ================= TIMELINE (LATEST UPDATES) ================= */
.timeline-wrap{position:relative; padding-left:36px;}
.timeline-wrap::before{content:''; position:absolute; left:9px; top:6px; bottom:6px; width:2px; background:var(--border-soft);}
.timeline-card{position:relative; background:var(--color-white); border:1px solid var(--border-soft); border-radius:var(--radius); padding:16px 24px; margin-bottom:16px; box-shadow:var(--shadow-soft); transition:.3s;}
.timeline-card:hover{transform:translateX(6px); box-shadow:var(--shadow-hover);}
.timeline-card::before{content:''; position:absolute; left:-32px; top:26px; width:14px; height:14px; border-radius:50%; background:var(--color-accent); border:3px solid var(--color-white); box-shadow:0 0 0 2px var(--color-accent);}
.timeline-date{font-size:.75rem; color:var(--color-secondary); font-weight:700; text-transform:uppercase; letter-spacing:.04em;}
.timeline-card h5{margin:8px 0 8px; font-size:1.02rem;}
.timeline-card p{color:var(--text-muted); font-size:.88rem; margin-bottom:10px;}
.read-more{color:var(--color-primary); font-weight:700; font-size:.83rem;}
.pagination-gov{display:flex; gap:8px; justify-content:center; margin-top:10px;}
.pagination-gov button{width:38px; height:38px; border-radius:10px; border:1px solid var(--border-soft); background:var(--color-white); font-weight:700; color:var(--text-dark);}
.pagination-gov button.active{background:var(--color-primary); color:#fff; border-color:var(--color-primary);}

/* ================= FEATURED SERVICES (two-tone split) ================= */
.feature-card{position:relative; background:var(--color-white); border-radius:20px; overflow:hidden; height:100%; box-shadow:var(--shadow-soft); transition:transform .4s ease;}
.feature-card:hover{transform:translateY(-8px); box-shadow:var(--shadow-hover);}
.feature-card svg{display:none;}
.feature-top{padding:24px 28px 34px; background:var(--feature-accent, var(--color-secondary)); position:relative;}
.feature-top .fbadge{display:inline-block; background:rgba(255,255,255,.9); color:var(--text-dark); font-size:.7rem; font-weight:800; padding:4px 12px; border-radius:20px; text-transform:uppercase; margin-bottom:14px;}
.feature-top-row{display:flex; align-items:center; gap:14px;}
.feature-icon{width:56px; height:56px; border-radius:14px; background:rgba(255,255,255,.22); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.4rem; flex-shrink:0;}
.feature-top h4{color:#fff; margin:0;}
.feature-card-content{position:relative; background:var(--color-white); border-radius:18px 18px 0 0; margin-top:-18px; padding:20px 28px 26px; color:var(--text-dark);}
.feature-card-content p{color:var(--text-muted); font-size:.87rem; margin-bottom:16px;}

/* ================= DEPARTMENTS (two-tone split) ================= */
.dept-card{
  position:relative; background:var(--color-white); border-radius:20px; overflow:hidden; height:100%;
  box-shadow:var(--shadow-soft); transition:transform .4s ease;
}
.dept-card:hover{transform:translateY(-8px); box-shadow:var(--shadow-hover);}
.dept-top{padding:22px 28px 34px; background:var(--dept-accent, var(--color-secondary)); display:flex; align-items:center; gap:14px;}
.dept-icon{width:54px; height:54px; border-radius:14px; background:rgba(255,255,255,.22); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.3rem; flex-shrink:0;}
.dept-top h5{color:#fff; margin:0;}
.dept-body{position:relative; background:var(--color-white); border-radius:18px 18px 0 0; margin-top:-18px; padding:20px 28px 22px;}
.dept-body p{color:var(--text-muted); font-size:.87rem; margin-bottom:16px; line-height:1.55;}
.dept-stats{display:flex; gap:20px; border-top:1px dashed var(--border-soft); padding-top:14px;}
.dept-stats div strong{display:block; font-family:var(--font-data); color:var(--dept-accent, var(--color-primary)); font-size:1.1rem;}
.dept-stats div span{font-size:.72rem; color:var(--text-muted);}

/* ================= BENEFITS (GLASS) ================= */
.benefits-section{
  position:relative; padding:60px 0; overflow:hidden;
  background:var(--color-white);
}
.benefits-section::before, .benefits-section::after{
  content:''; position:absolute; width:420px; height:420px; border-radius:50%; background:rgba(46,134,222,.05); z-index:0;
}
.benefits-section::before{top:-160px; left:-120px;}
.benefits-section::after{bottom:-180px; right:-140px;}
.benefits-section .section-title, .benefits-section .eyebrow{color:var(--text-dark);}
.benefits-section .eyebrow{color:var(--color-secondary);}
.benefits-section .section-sub{color:var(--text-muted);}
.benefit-glass{
  position:relative; background:var(--color-white); border-radius:20px; overflow:hidden; height:100%; transition:.3s;
  box-shadow:var(--shadow-soft);
}
.benefit-glass:hover{box-shadow:var(--shadow-hover); transform:translateY(-8px);}
.benefit-top{padding:22px 24px 34px; background:var(--benefit-accent, var(--color-secondary)); display:flex; align-items:center; gap:14px;}
.benefit-glass .b-icon{width:52px; height:52px; border-radius:14px; background:rgba(255,255,255,.22); display:flex; align-items:center; justify-content:center; color:#fff; font-size:1.3rem; flex-shrink:0;}
.benefit-top h5{color:#fff; margin:0; font-size:1rem;}
.benefit-body{position:relative; background:var(--color-white); border-radius:18px 18px 0 0; margin-top:-18px; padding:20px 24px 22px;}
.benefit-glass p{color:var(--text-muted); font-size:.85rem; margin:0;}

/* ================= PROCESS ================= */
.process-wrap{display:flex; align-items:flex-start; justify-content:space-between; position:relative; gap:10px;}
.process-line{position:absolute; top:34px; left:60px; right:60px; height:3px; background:var(--border-soft); z-index:0; overflow:hidden;}
.process-line-fill{height:100%; width:0; background:linear-gradient(90deg,var(--color-primary),var(--color-secondary)); transition:width 1.4s ease;}
.process-step{position:relative; z-index:1; text-align:center; flex:1;}
.process-num{width:68px; height:68px; border-radius:50%; background:var(--color-white); border:3px solid var(--border-soft); display:flex; align-items:center; justify-content:center; font-family:var(--font-data); font-weight:700; font-size:1.3rem; color:var(--color-primary); margin:0 auto 18px; transition:.4s;}
.process-step.active .process-num{border-color:var(--color-accent); background:var(--color-primary); color:#fff;}
.process-step h5{font-size:.95rem; margin-bottom:6px;}
.process-step p{font-size:.8rem; color:var(--text-muted); max-width:170px; margin:0 auto;}

/* ================= TESTIMONIALS ================= */
.testimonial-card{background:var(--color-white); border-radius:var(--radius); padding:24px 36px; text-align:center; box-shadow:var(--shadow-soft); border:1px solid var(--border-soft); max-width:680px; margin:0 auto;}
.t-avatar{width:76px; height:76px; border-radius:50%; margin:0 auto 16px; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,var(--color-primary),var(--color-secondary)); color:#fff; font-family:var(--font-display); font-weight:700; font-size:1.4rem;}
.t-stars{color:var(--color-accent); margin-bottom:14px; font-size:.9rem;}
.testimonial-card p.quote{font-size:1.02rem; color:var(--text-dark); line-height:1.65; margin-bottom:18px; font-style:italic;}
.t-name{font-weight:700;}
.t-role{font-size:.8rem; color:var(--text-muted);}

/* ================= FAQ ================= */
.faq-search{max-width:520px; margin:0 auto 36px; position:relative;}
.faq-search input{width:100%; padding:14px 50px 14px 20px; border-radius:50px; border:1.5px solid var(--border-soft); background:var(--color-white); font-size:.92rem;}
.faq-search i{position:absolute; right:20px; top:50%; transform:translateY(-50%); color:var(--color-secondary);}
.faq-item{background:var(--color-white); border:1px solid var(--border-soft); border-radius:var(--radius); margin-bottom:12px; overflow:hidden; break-inside:avoid;}
#faqList{column-count:2; column-gap:20px;}
@media (max-width:767px){ #faqList{column-count:1;} }
.faq-q{padding:18px 22px; display:flex; justify-content:space-between; align-items:center; cursor:pointer; font-weight:600; font-size:.93rem;}
.faq-a{max-height:0; overflow:hidden; transition:max-height .35s ease;}
.faq-a p{padding:0 22px 20px; color:var(--text-muted); font-size:.88rem; margin:0;}
.faq-item.open .faq-q i{transform:rotate(180deg);}
.faq-q i{transition:transform .3s ease; color:var(--color-secondary);}

/* ================= DOWNLOAD CENTER ================= */
.download-card{background:var(--color-white); border:1px solid var(--border-soft); border-radius:var(--radius); padding:16px 24px; display:flex; align-items:center; gap:16px; box-shadow:var(--shadow-soft); transition:.3s; height:100%;}
.download-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-hover);}
.dl-icon{width:52px; height:52px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:1.3rem; color:#fff; flex-shrink:0;}
.dl-pdf{background:#E64848;} .dl-doc{background:#2E6BE6;} .dl-xls{background:#1E9E5A;} .dl-zip{background:#9B59B6;}
.download-card .dl-name{font-weight:700; font-size:.9rem;}
.download-card .dl-meta{font-size:.75rem; color:var(--text-muted);}
.dl-btn{margin-left:auto; width:38px; height:38px; border-radius:50%; background:var(--color-light); color:var(--color-primary); display:flex; align-items:center; justify-content:center; transition:.25s; flex-shrink:0;}
.dl-btn:hover{background:var(--color-primary); color:#fff; transform:translateY(-2px);}

/* ================= FLOATING BUTTONS ================= */
.floating-stack{position:fixed; right:22px; bottom:22px; display:flex; flex-direction:column; gap:12px; z-index:900;}
.fab{width:50px; height:50px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-size:1.15rem; box-shadow:0 8px 22px rgba(0,0,0,.22); border:none; transition:.25s;}
.fab:hover{transform:translateY(-4px) scale(1.05);}
.fab-whatsapp{background:#25D366;}
.fab-call{background:var(--color-secondary);}
.fab-dark{background:var(--color-primary-dark);}
.fab-top{background:var(--color-accent); color:#3a2a00; opacity:0; pointer-events:none; transform:translateY(10px);}
.fab-top.show{opacity:1; pointer-events:auto; transform:translateY(0);}

/* ================= NOTIFICATION MODAL ================= */
.notif-toast{
  position:fixed; left:24px; bottom:24px; z-index:9997;
  width:360px; max-width:calc(100vw - 48px);
  background:linear-gradient(160deg,var(--color-white) 0%,var(--color-light) 100%);
  border-radius:22px; padding:22px 24px 20px;
  box-shadow:0 24px 60px rgba(18,60,122,.28), 0 0 0 1px rgba(46,134,222,.08);
  border-left:5px solid var(--color-accent);
  transform:translateX(-130%); opacity:0; transition:transform .55s cubic-bezier(.2,.9,.25,1.1), opacity .5s ease;
  overflow:hidden;
}
.notif-toast::before{
  content:''; position:absolute; top:-40px; right:-40px; width:140px; height:140px; border-radius:50%;
  background:radial-gradient(circle,rgba(46,134,222,.18),transparent 70%);
}
.notif-toast.active{transform:translateX(0); opacity:1;}
.notif-toast .n-icon{width:56px; height:56px; border-radius:16px; background:linear-gradient(135deg,var(--color-primary),var(--color-secondary),var(--color-accent)); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.4rem; margin-bottom:14px; box-shadow:0 10px 22px rgba(18,60,122,.35);}
.notif-close{position:absolute; top:14px; right:14px; width:30px; height:30px; border-radius:50%; background:var(--color-light); border:none; color:var(--text-dark); font-size:.8rem;}
.notif-toast h5{font-size:1.02rem; margin-bottom:8px; background:linear-gradient(90deg,var(--color-primary),var(--color-secondary)); -webkit-background-clip:text; background-clip:text; color:transparent;}
.notif-toast p{color:var(--text-muted); font-size:.85rem; margin:0 0 16px; line-height:1.5;}
.notif-toast .btn-primary-gov{padding:10px 18px; font-size:.85rem;}
.notif-progress{position:absolute; left:0; bottom:0; height:3px; width:100%; background:linear-gradient(90deg,var(--color-accent),var(--color-secondary),var(--color-primary)); transform-origin:left; animation:notifShrink 10s linear forwards;}
@keyframes notifShrink{from{transform:scaleX(1);} to{transform:scaleX(0);}}

/* ================= SKELETON ================= */
.skeleton{background:linear-gradient(90deg, var(--border-soft) 25%, #f0f3f9 37%, var(--border-soft) 63%); background-size:400% 100%; animation:sk 1.4s ease infinite; border-radius:10px;}
@keyframes sk{0%{background-position:100% 50%;} 100%{background-position:0 50%;}}

/* ================= FOOTER ================= */
footer.site-footer{background:var(--color-primary-dark); color:#c9d6ee; padding-top:70px;}
footer h6{color:#fff; font-family:var(--font-display); font-size:1rem; margin-bottom:20px;}
footer ul{list-style:none; padding:0; margin:0;}
footer ul li{margin-bottom:11px;}
footer a{color:#b7c6e6; font-size:.87rem;}
footer a:hover{color:var(--color-accent-light);}
.footer-brand p{color:#a9baDC; font-size:.87rem; line-height:1.7;}
.social-row{display:flex; gap:10px; margin-top:18px;}
.social-row a{width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; color:#fff; transition:.25s;}
.social-row a:hover{background:var(--color-accent); color:#3a2a00; transform:translateY(-3px);}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1); margin-top:50px; padding:22px 0; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px; font-size:.82rem;}
.visitor-counter{display:flex; align-items:center; gap:10px; font-family:var(--font-data);}
.visitor-counter .digits{display:flex; gap:4px;}
.visitor-counter .digits span{background:rgba(255,255,255,.1); padding:5px 8px; border-radius:5px; font-weight:700; color:var(--color-accent-light);}

.util-wave{display:block; width:100%; line-height:0;}
.util-wave svg{display:block; width:100%; height:56px;}
@media (max-width:767px){ .util-wave svg{height:34px;} }

/* ================= GOV WEBSITES BADGES ================= */
.govsites-section{background:var(--color-white); padding:44px 0 54px;}
.govsites-section h2{font-size:clamp(1.4rem,2.6vw,1.9rem); color:var(--color-primary); border-left:4px solid var(--color-primary); padding-left:14px; margin-bottom:30px;}
.gov-badge-row-wrap{overflow:hidden; position:relative;}
.gov-badge-row{display:flex; flex-wrap:nowrap; gap:18px; width:max-content; animation:govBadgeScroll 26s linear infinite;}
.gov-badge-row-wrap:hover .gov-badge-row{animation-play-state:paused;}
@keyframes govBadgeScroll{from{transform:translateX(0);} to{transform:translateX(-50%);}}
.gov-badge{
  display:flex; align-items:center; gap:12px; background:var(--color-white); border:1px solid var(--border-soft);
  border-radius:50px; padding:10px 24px 10px 12px; box-shadow:var(--shadow-soft); transition:.25s; min-width:180px;
}
.gov-badge:hover{transform:translateY(-4px); box-shadow:var(--shadow-hover); border-color:var(--gov-c,var(--color-secondary));}
.gov-badge .gov-icon{width:40px; height:40px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center; color:#fff; font-size:1rem; background:var(--gov-c,var(--color-secondary));}
.gov-badge span{font-weight:700; font-size:.86rem; color:var(--text-dark);}

/* ================= FOOTER BOTTOM BAR ================= */
.footer-bottom-bar{background:var(--color-primary-dark); filter:brightness(.82); padding:14px 0; margin-top:0;}
.footer-bottom-bar .wrap-inner{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;}
.lang-pill{display:inline-flex; align-items:center; gap:8px; background:var(--color-primary); color:#fff; border:none; border-radius:50px; padding:9px 18px; font-size:.82rem; font-weight:600;}
.lang-pill select{background:transparent; border:none; color:#fff; font-weight:600; font-size:.82rem;}
.lang-pill select option{color:#111;}
.footer-meta{color:#e4ebff; font-size:.85rem; text-align:center; flex:1;}
.footer-meta strong{color:#fff;}
@media (max-width:700px){.footer-bottom-bar .wrap-inner{justify-content:center; text-align:center;}}

/* ================= UTIL ================= */
.glow-hover{transition:box-shadow .3s ease;}
.glow-hover:hover{box-shadow:0 0 0 4px rgba(46,134,222,.15);}
.divider-wave{display:block; width:100%; height:60px;}
@media (max-width: 991px){
  nav.main-nav, .search-box, .header-actions .icon-btn.desktop-only{display:none;}
  .hamburger{display:flex;}
  .process-wrap{flex-direction:column; align-items:center; gap:34px;}
  .process-line{display:none;}
}
@media (max-width: 767px){
  .topbar{height:auto; padding:6px 0;}
  .topbar-inner{flex-wrap:wrap; row-gap:4px;}
  .topbar-left{display:flex; flex-wrap:wrap; row-gap:4px;}
  .footer-bottom{flex-direction:column; text-align:center;}
}
/* Mobile off-canvas nav */
.mobile-nav{position:fixed; top:0; right:0; width:300px; max-width:85vw; height:100%; background:var(--color-white); z-index:1100; box-shadow:-10px 0 30px rgba(0,0,0,.2); transform:translateX(100%); transition:transform .35s ease; padding:26px; overflow-y:auto;}
.mobile-nav.open{transform:translateX(0);}
.mobile-nav ul{list-style:none; padding:0;}
.mobile-nav ul li{margin-bottom:6px;}
.mobile-nav ul a{display:block; padding:12px 10px; font-weight:600; color:var(--text-dark); border-radius:8px;}
.mobile-nav ul a:hover{background:var(--color-light);}
.mobile-backdrop{position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:1090; display:none;}
.mobile-backdrop.show{display:block;}

/* ================= AUTH MODAL MOBILE FIX ================= */
@media (max-width:480px){
  .auth-modal{padding:20px 16px 18px; max-height:96vh;}
  .auth-head{margin-bottom:14px;}
  .auth-head .brand-emblem{width:36px; height:36px; margin-bottom:6px;}
  .auth-head h4{font-size:1.08rem;}
  .auth-head p{font-size:.78rem;}
  .auth-tabs{margin-bottom:14px; padding:3px;}
  .auth-tab{padding:8px 0; font-size:.8rem;}
  .auth-field{margin-bottom:6px;}
  .auth-field label{font-size:.75rem; margin-bottom:4px;}
  .auth-input-wrap input, .auth-input-wrap select{
    padding:9px 12px 9px 34px; font-size:.8rem; border-radius:8px;
  }
  .auth-input-wrap i{left:12px; font-size:.8rem;}
  .auth-input-wrap .toggle-pass{right:12px;}
  .auth-row-between{margin-bottom:12px; font-size:.76rem;}
  .auth-submit{padding:10px; font-size:.86rem;}
  .auth-switch{margin-top:12px; font-size:.78rem;}
}
