:root {
  --cdmt-primary: #0047b3; /* EVN Blue */
  --cdmt-primary-hover: #003380;
  --cdmt-secondary: #ff8c00; /* EVN Orange */
  --cdmt-secondary-hover: #e67e00;
  --cdmt-text: #2c3e50;
  --cdmt-text-light: #6c757d;
  --cdmt-bg-light: #f8f9fa;
  --cdmt-border: #edf2f7;
  --cdmt-gradient: linear-gradient(135deg, #0047b3 0%, #002255 100%);
}

body {
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  color: var(--cdmt-text);
  line-height: 1.6;
  background-color: #fcfdfe;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 700;
  color: var(--cdmt-primary);
}

.text-primary { color: var(--cdmt-primary) !important; }
.text-warning { color: var(--cdmt-secondary) !important; }
.bg-primary { background-color: var(--cdmt-primary) !important; }
.bg-warning { background-color: var(--cdmt-secondary) !important; }
.text-primary-light { color: #ebf4ff !important; }

/* Utilities */
.hover-scale { transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
.hover-scale:hover { transform: scale(1.03); }
.transition-all { transition: all 0.3s ease; }
.hover-warning:hover { color: var(--cdmt-secondary) !important; }

/* Shadows */
.soft-shadow { box-shadow: 0 10px 30px rgba(0, 71, 179, 0.08) !important; }
.card-shadow { box-shadow: 0 4px 20px rgba(0,0,0,0.05); transition: all 0.3s ease; }
.card-shadow:hover { box-shadow: 0 10px 30px rgba(0,71,179,0.12); transform: translateY(-5px); }

/* Header & Nav */
.top-bar { background: var(--cdmt-gradient); }
.cdmt-header .dropdown-menu { animation: fadeUp 0.3s ease; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

.cdmt-header .dropdown-item:hover {
  background-color: rgba(0, 71, 179, 0.05);
  color: var(--cdmt-primary);
  font-weight: 500;
}

.cdmt-header .navbar-nav .nav-link {
  color: #34495e;
  padding: 0.5rem 1rem !important;
  margin: 0 0.2rem;
  transition: all 0.3s ease;
  position: relative;
}
.cdmt-header .navbar-nav .nav-link:hover, .cdmt-header .navbar-nav .nav-link.active {
  color: var(--cdmt-primary) !important;
}
.cdmt-header .navbar-nav .nav-link::after {
  content: ''; position: absolute; width: 0; height: 3px; bottom: -2px; left: 50%;
  background-color: var(--cdmt-secondary); transition: all 0.3s ease; transform: translateX(-50%); border-radius: 3px;
}
.cdmt-header .navbar-nav .nav-link:hover::after, .cdmt-header .navbar-nav .nav-link.active::after { width: 30px; }

.cta-btn {
  background: var(--cdmt-gradient); border: none; color: white !important;
  box-shadow: 0 4px 15px rgba(0, 71, 179, 0.3); transition: all 0.3s ease;
}
.cta-btn:hover { transform: translateY(-3px); box-shadow: 0 8px 25px rgba(0, 71, 179, 0.4); }

/* Hero Slider */
.hero-item { height: 650px; background-size: cover; background-position: center; position: relative; }
.hero-overlay {
  position: absolute; top:0; left:0; right:0; bottom:0;
  background: linear-gradient(90deg, rgba(0,34,85,0.85) 0%, rgba(0,71,179,0.4) 100%);
  display: flex; align-items: center;
}
.hero-title { font-size: 3.5rem; font-weight: 800; text-shadow: 2px 2px 4px rgba(0,0,0,0.6); color: white; letter-spacing: -1px; }

/* Quick Access Bar (Floating) */
.quick-access-wrapper {
  margin-top: -65px;
  position: relative;
  z-index: 10;
}
.quick-access-bar {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  border-radius: 16px;
  padding: 20px;
}
.qa-item {
  display: flex; flex-direction: column; align-items: center; text-align: center;
  text-decoration: none; color: var(--cdmt-text);
  padding: 15px 5px; border-radius: 12px; transition: all 0.3s ease;
}
.qa-item:hover { background-color: #f8f9fa; transform: translateY(-5px); color: var(--cdmt-primary); }
.qa-icon-box {
  width: 55px; height: 55px; border-radius: 12px;
  background: rgba(0, 71, 179, 0.08); color: var(--cdmt-primary);
  display: flex; align-items: center; justify-content: center; font-size: 1.6rem; margin-bottom: 12px;
  transition: all 0.3s ease;
}
.qa-item:hover .qa-icon-box { background: var(--cdmt-gradient); color: white; box-shadow: 0 5px 15px rgba(0,71,179,0.3); }
.qa-title { font-weight: 600; font-size: 0.9rem; margin-top: 5px;}

/* News & Announcements */
.news-featured-card {
  border-radius: 16px; overflow: hidden; position: relative; height: 400px;
  background-size: cover; background-position: center;
}
.news-overlay {
  position: absolute; top:0; left:0; right:0; bottom:0;
  background: linear-gradient(to top, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0) 100%);
  display: flex; flex-direction: column; justify-content: flex-end; padding: 25px; color: white;
}
.news-date-badge { background: var(--cdmt-secondary); color: white; font-weight: 700; padding: 5px 12px; border-radius: 20px; font-size: 0.75rem; display: inline-block; margin-bottom: 12px; }

.news-small-item { display: flex; gap: 15px; margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px dashed var(--cdmt-border); }
.news-small-item:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.news-small-img { width: 110px; height: 85px; border-radius: 10px; object-fit: cover; }
.news-small-title { font-weight: 600; font-size: 1rem; color: var(--cdmt-text); text-decoration: none; transition: color 0.2s; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.news-small-title:hover { color: var(--cdmt-primary); }

.announcement-list { list-style: none; padding: 0; margin: 0; }
.announcement-item { display: flex; align-items: flex-start; margin-bottom: 15px; padding: 12px; border-radius: 10px; transition: background 0.2s; }
.announcement-item:hover { background: #f8f9fa; }
.announcement-date { min-width: 60px; text-align: center; background: rgba(0,71,179,0.05); padding: 8px 5px; border-radius: 8px; margin-right: 15px; border: 1px solid rgba(0,71,179,0.1); }
.announcement-date .day { display: block; font-size: 1.2rem; font-weight: 800; color: var(--cdmt-primary); line-height: 1; }
.announcement-date .month { display: block; font-size: 0.7rem; font-weight: 600; color: var(--cdmt-text-light); text-transform: uppercase; margin-top: 3px; }
.announcement-title { font-size: 0.95rem; font-weight: 500; color: var(--cdmt-text); text-decoration: none; }
.announcement-title:hover { color: var(--cdmt-primary); }

.job-item { display: block; padding: 15px; border-radius: 12px; border: 1px solid var(--cdmt-border); margin-bottom: 12px; text-decoration: none; transition: all 0.3s ease; background: white; }
.job-item:hover { border-color: var(--cdmt-primary); transform: translateX(5px); box-shadow: 0 5px 15px rgba(0,0,0,0.03); }
.job-title { font-size: 0.95rem; font-weight: 600; color: var(--cdmt-primary); margin-bottom: 5px; }
.job-company { font-size: 0.85rem; color: var(--cdmt-text-light); }
.badge-hot { background-color: #ff3b30; color: white; font-size: 0.7rem; padding: 3px 8px; border-radius: 10px; font-weight: 600; }

/* Programs section */
.program-card { border: none; border-radius: 16px; overflow: hidden; background: white; }
.program-card .card-img-top { height: 200px; object-fit: cover; transition: transform 0.6s ease; }
.program-card:hover .card-img-top { transform: scale(1.08); }
.program-icon { width: 65px; height: 65px; background: white; color: var(--cdmt-primary); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.5rem; position: absolute; top: 165px; right: 25px; box-shadow: 0 5px 15px rgba(0,0,0,0.1); z-index: 10; transition: all 0.3s ease; }
.program-card:hover .program-icon { background: var(--cdmt-primary); color: white; transform: rotateY(180deg); }

/* Footer */
.footer { background-color: #111827 !important; }
.footer-links a { color: rgba(255,255,255,0.6); text-decoration: none; transition: all 0.2s; display: block; padding: 5px 0; }
.footer-links a:hover { color: var(--cdmt-secondary); transform: translateX(5px); }
.social-icon { width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,0.1); color: white; display: flex; align-items: center; justify-content: center; text-decoration: none; transition: all 0.3s; }
.social-icon:hover { background: var(--cdmt-secondary); color: white; transform: translateY(-3px); }

/* Responsive adjustments */
@media (max-width: 991.98px) {
  .quick-access-wrapper { margin-top: 20px; }
  .hero-item { height: 500px; }
  .hero-title { font-size: 2.5rem; }
}