/* =========================================================================
   CENTRALIZED TYPOGRAPHY SYSTEM (DOR MAIN WEBSITE)
   Design Tokens:
     --site-title-font-size: 16px   -> All titles and headings
     --site-content-font-size: 14px -> All respective content and descriptions
   ========================================================================= */
:root {
  --site-title-font-size: 16px;
  --site-content-font-size: 14px;
}

/**
 * @file
 * Styles for the DOR Main Website theme.
 */

/* =====================================================
   HERO BANNER - IMAGES ONLY PRESENTATION
   ===================================================== */
.hero-slider .slide-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.hero-slider .slide-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}

.hero-slider .slide-bg::after {
  pointer-events: none;
}

/* Extra safeguard to ensure no residual slide text or CTA buttons render */
.hero-slider .slide-content,
.hero-slider .slide-cta {
  display: none !important;
}

/* =====================================================
   REUSABLE INNER PAGE STYLING - DOR MAIN
   ===================================================== */
.inner-page-banner {
  position: relative;
  background-size: cover !important;
  background-position: center !important;
  padding: 2.25rem 0 !important;
  box-shadow: inset 0 -2px 10px rgba(0, 0, 0, 0.15);
}

.inner-page-banner .breadcrumb {
  --bs-breadcrumb-divider: '›';
  --bs-breadcrumb-divider-color: rgba(255, 255, 255, 0.55);
  font-size: var(--site-content-font-size, 14px);
}

.inner-page-banner .breadcrumb-item a {
  color: rgba(255, 255, 255, 0.8);
  text-decoration: none;
  transition: color 0.2s ease;
}

.inner-page-banner .breadcrumb-item a:hover {
  color: #ffc107;
  text-decoration: underline !important;
}

.inner-page-banner .breadcrumb-item.active {
  color: #ffffff;
  font-weight: 500;
}

.inner-page-main {
  background-color: #ffffff;
  padding-top: 2rem !important;
  padding-bottom: 4rem !important;
  min-height: 500px;
}

.highlighted-region:empty,
.highlighted-region:has([data-drupal-messages-fallback].hidden),
.highlighted-region:has(.hidden:only-child) {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.highlighted-region:has(.messages) {
  margin-bottom: 1.5rem !important;
}

.inner-page-content-box {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* Prose formatting for dynamic body content */
.content-body-prose {
  font-size: var(--site-content-font-size, 14px);
  line-height: 1.75;
  color: #334155;
}

.content-body-prose h2 {
  color: #0f172a;
  font-weight: 700;
  font-size: var(--site-title-font-size, 16px);
  margin-top: 1.75rem;
  margin-bottom: 0.85rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid #e2e8f0;
}

.content-body-prose h3 {
  color: #1e293b;
  font-weight: 600;
  font-size: var(--site-title-font-size, 16px);
  margin-top: 1.5rem;
  margin-bottom: 0.75rem;
}

.content-body-prose h4 {
  color: #334155;
  font-weight: 600;
  font-size: var(--site-title-font-size, 16px);
  margin-top: 1.25rem;
  margin-bottom: 0.5rem;
}

.content-body-prose p {
  margin-bottom: 1.25rem;
}

.content-body-prose ul {
  padding-left: 1.75rem;
  margin-bottom: 1.25rem;
  list-style-type: disc;
}

.content-body-prose ol {
  padding-left: 1.75rem;
  margin-bottom: 1.25rem;
  list-style-type: decimal;
}

.content-body-prose ul ul {
  padding-left: 1.75rem;
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
  list-style-type: circle;
}

.content-body-prose ol ol {
  padding-left: 1.75rem;
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
  list-style-type: lower-alpha;
}

.content-body-prose li {
  margin-bottom: 0.5rem;
  line-height: 1.7;
}

.content-body-prose blockquote {
  border-left: 4px solid #023e82;
  padding: 1rem 1.25rem;
  margin: 1.5rem 0;
  background-color: #f1f5f9;
  border-radius: 0 8px 8px 0;
  font-style: italic;
  color: #475569;
}

.content-body-prose table {
  width: 100%;
  margin-bottom: 1.5rem;
  border-collapse: collapse;
}

.content-body-prose table th,
.content-body-prose table td {
  padding: 0.75rem 1rem;
  border: 1px solid #e2e8f0;
}

.content-body-prose table th {
  background-color: #f8fafc;
  color: #0f172a;
  font-weight: 600;
}

/* Image styling */
.inner-page-media-card img,
.inner-page-full-image img {
  border-radius: 12px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.07);
}

.image-caption {
  font-size: var(--site-content-font-size, 14px);
  color: #64748b;
}

/* Document download cards */
.document-download-card {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  transition: all 0.2s ease-in-out;
}

.document-download-card:hover {
  background: #ffffff;
  border-color: #023e82;
  box-shadow: 0 6px 16px rgba(2, 62, 130, 0.12);
  transform: translateY(-2px);
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .inner-page-banner {
    padding: 2.5rem 0;
  }
  .inner-page-banner .page-title {
    font-size: var(--site-title-font-size, 16px) !important;
  }
  .inner-page-content-box {
    padding: 0 !important;
  }
  .inner-page-media-card {
    position: static !important;
    margin-bottom: 1.5rem;
  }
}

/* =====================================================
   IMPORTANT / ESSENTIAL LINKS PANEL - REFERENCE DESIGN
   ===================================================== */
.important-links-panel {
  background: #ffffff;
  border-radius: 16px;
  padding: 24px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
  border: 1px solid #edf2f7;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.important-links-header {
  padding-bottom: 14px;
  margin-bottom: 16px;
  border-bottom: 1px solid #eef2f6;
}

.important-links-header h3 {
  font-size: var(--site-title-font-size, 16px);
  font-weight: 700;
  color: #023e82;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}

.important-links-header h3 i {
  color: #023e82;
  font-size: 22px;
  line-height: 1;
}

.important-links-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex;
  flex-direction: column;
  gap: 11px;
}

.important-links-list li {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.important-links-list li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 13px 18px;
  background-color: #f8fafc;
  border: 1px solid #eef2f6;
  border-radius: 10px;
  color: #1e293b;
  font-size: var(--site-content-font-size, 14px);
  font-weight: 500;
  line-height: 1.4;
  text-decoration: none !important;
  transition: all 0.22s ease-in-out;
}

.important-links-list li a .link-text {
  color: inherit;
  flex-grow: 1;
  padding-right: 12px;
}

.important-links-list li a .link-icon {
  font-size: 14px;
  color: #94a3b8;
  flex-shrink: 0;
  transition: transform 0.22s ease-in-out, color 0.22s ease-in-out;
}

.important-links-list li a:hover {
  background-color: #ffffff;
  border-color: #023e82;
  color: #023e82;
  transform: translateX(4px);
  box-shadow: 0 4px 14px rgba(2, 62, 130, 0.1);
}

.important-links-list li a:hover .link-icon {
  color: #023e82;
  transform: translate(2px, -2px);
}

.important-links-list li a:focus-visible {
  outline: 2px solid #023e82;
  outline-offset: 2px;
}

/* =====================================================
   MAIN WEBSITE FOOTER - SINGLE ROW LAYOUT & TIGHT SPACING
   ===================================================== */
.main-footer {
  background: var(--darker-grey, #162f6a);
  color: #ffffff;
  padding-top: 18px !important;
  border-top: none !important;
  outline: none !important;
}

.footer-main {
  padding-bottom: 12px !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-main-row {
  display: flex !important;
  align-items: flex-start !important;
}

.footer-main-row > * {
  margin-top: 0 !important;
}

@media (min-width: 992px) {
  .footer-main-row {
    flex-wrap: nowrap !important;
  }
  .footer-col-logo {
    flex: 0 0 35% !important;
    max-width: 35% !important;
  }
  .footer-col-links {
    flex: 0 0 17.5% !important;
    max-width: 17.5% !important;
  }
  .footer-col-contact {
    flex: 0 0 30% !important;
    max-width: 30% !important;
  }
}

/* Align top baseline of Logo with Headings */
.footer-logo {
  display: flex;
  align-items: center;
  margin-top: 0 !important;
  margin-bottom: 10px !important;
  padding-top: 0 !important;
}

.footer-logo-icon img {
  max-height: 60px;
  width: auto;
  max-width: 100%;
  display: block;
  margin-top: 0 !important;
}

/* Reduced spacing between titles and their respective content (no underline) */
.footer-heading {
  font-size: var(--site-title-font-size, 16px) !important;
  font-weight: 700 !important;
  color: #ffffff !important;
  margin-top: 0 !important;
  margin-bottom: 8px !important;
  padding-bottom: 0 !important;
  position: relative !important;
  line-height: 1.25 !important;
  letter-spacing: 0.2px;
  text-decoration: none !important;
  border-bottom: none !important;
}

.footer-heading::after {
  display: none !important;
  content: none !important;
  width: 0 !important;
  height: 0 !important;
  border: none !important;
}

.footer-links {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.footer-links li {
  margin-bottom: 5px !important;
  line-height: 1.35;
}

.footer-links a {
  color: rgba(255, 255, 255, 0.8) !important;
  font-size: var(--site-content-font-size, 14px) !important;
  text-decoration: none !important;
  transition: all 0.2s ease;
  display: inline-flex;
  align-items: center;
}

.footer-links a:hover {
  color: #ffffff !important;
  transform: translateX(4px);
}

.footer-about {
  color: rgba(255, 255, 255, 0.75) !important;
  font-size: var(--site-content-font-size, 14px) !important;
  line-height: 1.6 !important;
  margin-bottom: 12px !important;
}

.footer-social {
  display: flex !important;
  gap: 10px !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.footer-contact-item {
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px !important;
  margin-bottom: 12px !important;
  padding-left: 0 !important;
}

.footer-contact-item:last-child {
  margin-bottom: 0 !important;
}

.footer-contact-icon {
  width: 18px !important;
  height: auto !important;
  min-width: 18px !important;
  min-height: auto !important;
  background: none !important;
  border: none !important;
  border-radius: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  color: #ffffff !important;
  flex-shrink: 0 !important;
  font-size: 1.15rem !important;
  margin-top: 2px !important;
  line-height: 1.25 !important;
}

.footer-contact-info {
  color: rgba(255, 255, 255, 0.8) !important;
  font-size: var(--site-content-font-size, 14px) !important;
  line-height: 1.4 !important;
}

.footer-contact-info strong {
  display: block !important;
  color: #ffffff !important;
  font-size: var(--site-content-font-size, 14px) !important;
  margin-bottom: 2px !important;
}

.footer-email-link {
  color: inherit !important;
  text-decoration: none !important;
  transition: color 0.2s ease;
}

.footer-email-link:hover {
  color: #ffffff !important;
  text-decoration: underline !important;
}

.footer-bottom {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  padding: 14px 0 !important;
  gap: 8px !important;
}

.footer-bottom-links {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
  gap: 24px !important;
  margin: 0 auto !important;
}

.footer-bottom-links a {
  color: rgba(255, 255, 255, 0.8) !important;
  font-size: var(--site-content-font-size, 14px) !important;
  text-decoration: none !important;
  transition: all 0.2s ease;
}

.footer-bottom-links a:hover {
  color: #ffffff !important;
  text-decoration: underline !important;
}

.footer-copyright {
  color: rgba(255, 255, 255, 0.7) !important;
  font-size: var(--site-content-font-size, 14px) !important;
  text-align: center !important;
  max-width: 950px !important;
  margin: 0 auto !important;
  line-height: 1.5 !important;
}

/* === ACCESSIBILITY UNIFIED SUITE === */
@import url("accessibility.css");

/* =========================================================================
   ACCESSIBILITY STYLESHEET (UNIFIED ACROSS ALL 4 SITES)
   - Skip to Main Content target styling & focus indicators
   - 5-Level Font Resizing (-2, -1, 0, +1, +2) excluding Topbar & Header
   - High Contrast Dark Palette (#121212, #1E1E1E, #252525, #F5F5F5)
   ========================================================================= */

/* -------------------------------------------------------------------------
   1. SKIP TO MAIN CONTENT TARGET & ACCESSIBLE FOCUS
   ------------------------------------------------------------------------- */
#main-content,
#mainContent,
main[tabindex="-1"] {
  scroll-margin-top: 110px !important;
  outline: none !important;
}

#main-content:focus,
#mainContent:focus,
main[tabindex="-1"]:focus,
#main-content:focus-visible,
#mainContent:focus-visible,
main[tabindex="-1"]:focus-visible,
main:focus,
main:focus-visible {
  outline: none !important;
  outline-offset: 0 !important;
  box-shadow: none !important;
}

/* Skip Link Target Styling - Preserve native theme appearance */
#main-content,
#mainContent,
main[tabindex="-1"] {
  scroll-margin-top: 120px !important;
  outline: none !important;
}

/* Ensure hidden skip links become accessible when focused via keyboard Tab */
.visually-hidden-focusable:focus,
.visually-hidden:focus {
  position: absolute !important;
  z-index: 100000 !important;
  clip: auto !important;
  clip-path: none !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
}

/* Universal Visible Focus Indicator */
:focus-visible {
  outline: 3px solid #ffc107 !important;
  outline-offset: 2px !important;
}

/* -------------------------------------------------------------------------
   2. FONT RESIZE SCALING (-2, -1, 0, +1, +2)
   CRITICAL: Topbar, Header, Logo, and Navigation Menus ARE STRICTLY EXCLUDED
   ------------------------------------------------------------------------- */
.gov-top-header,
.top-utility-bar,
.gov-utility-bar,
.utility-controls,
.topbar,
.main-header,
header[role="banner"],
.navbar,
.nav-menu,
.navbar-nav,
.offcanvas,
#mobileNavOffcanvas,
.main-nav,
.gov-brand-box,
.brand-wrapper,
.header-emblem,
.campaign-logo-img,
.site-logo {
  zoom: 1 !important;
}

/* Zoom scaling applied only to Main Content & Footer */
:is(body.font-scale-m2, html.font-scale-m2) :is(#main-content, main, .main-content, .inner-page-main, footer, .gov-footer, .main-footer, .site-footer) {
  zoom: 0.88;
}
:is(body.font-scale-m1, html.font-scale-m1) :is(#main-content, main, .main-content, .inner-page-main, footer, .gov-footer, .main-footer, .site-footer) {
  zoom: 0.94;
}
:is(body.font-scale-0, html.font-scale-0) :is(#main-content, main, .main-content, .inner-page-main, footer, .gov-footer, .main-footer, .site-footer) {
  zoom: 1;
}
:is(body.font-scale-p1, html.font-scale-p1) :is(#main-content, main, .main-content, .inner-page-main, footer, .gov-footer, .main-footer, .site-footer) {
  zoom: 1.06;
}
:is(body.font-scale-p2, html.font-scale-p2) :is(#main-content, main, .main-content, .inner-page-main, footer, .gov-footer, .main-footer, .site-footer) {
  zoom: 1.12;
}

/* Font button active states */
.gov-font-btn.active,
.text-resize-btn.active,
.btn-acc.active,
.accessibility-btn.active,
.font-size-btn.active {
  background-color: #0b2545 !important;
  color: #ffc107 !important;
  font-weight: 700 !important;
  border-color: #ffc107 !important;
}

/* -------------------------------------------------------------------------
   3. HIGH CONTRAST DARK MODE PALETTE
   Main background: #121212
   Cards / surfaces: #1E1E1E
   Elevated / modals: #252525
   Primary text: #F5F5F5
   Secondary text: #D0D0D0
   Borders: #383838 / #555555
   Links / accents: #60A5FA / #FFC107
   ------------------------------------------------------------------------- */

/* HTML & Body Base */
body.dark-contrast,
body.high-contrast,
html.dark-contrast,
html.high-contrast {
  background-color: #121212 !important;
  color: #f5f5f5 !important;
}

/* Header & Topbars */
body.dark-contrast .gov-top-header,
body.dark-contrast .top-utility-bar,
body.dark-contrast .gov-utility-bar,
body.high-contrast .gov-top-header,
body.high-contrast .top-utility-bar,
body.high-contrast .gov-utility-bar {
  background-color: #0a0a0a !important;
  color: #d0d0d0 !important;
  border-bottom: 1px solid #383838 !important;
}

body.dark-contrast .main-header,
body.high-contrast .main-header,
body.dark-contrast header[role="banner"],
body.high-contrast header[role="banner"] {
  background-color: #161616 !important;
  color: #f5f5f5 !important;
  border-bottom: 1px solid #383838 !important;
}

body.dark-contrast .main-nav,
body.dark-contrast .navbar,
body.high-contrast .main-nav,
body.high-contrast .navbar {
  background-color: #1c1c1c !important;
  border-bottom: 1px solid #383838 !important;
}

body.dark-contrast .nav-link,
body.high-contrast .nav-link,
body.dark-contrast .dropdown-item,
body.high-contrast .dropdown-item {
  color: #f5f5f5 !important;
}

body.dark-contrast .nav-link:hover,
body.dark-contrast .nav-link.active,
body.high-contrast .nav-link:hover,
body.high-contrast .nav-link.active {
  color: #ffc107 !important;
}

/* Sections & Page Wrappers */
body.dark-contrast section,
body.high-contrast section,
body.dark-contrast .section,
body.high-contrast .section,
body.dark-contrast .section-padding,
body.high-contrast .section-padding,
body.dark-contrast .section-light,
body.high-contrast .section-light,
body.dark-contrast .bg-light,
body.high-contrast .bg-light,
body.dark-contrast .bg-white,
body.high-contrast .bg-white,
body.dark-contrast .bg-theme-white,
body.high-contrast .bg-theme-white,
body.dark-contrast .bg-theme-subtle,
body.high-contrast .bg-theme-subtle,
body.dark-contrast .main-wrapper,
body.high-contrast .main-wrapper,
body.dark-contrast main,
body.high-contrast main,
body.dark-contrast #main-content,
body.high-contrast #main-content {
  background-color: #121212 !important;
  color: #f5f5f5 !important;
}

/* Cards, Tiles, Panels, Sidebars */
body.dark-contrast .card,
body.high-contrast .card,
body.dark-contrast .portal-card,
body.high-contrast .portal-card,
body.dark-contrast .leader-card,
body.high-contrast .leader-card,
body.dark-contrast .sitting-member-card,
body.high-contrast .sitting-member-card,
body.dark-contrast .sitting-card-img-wrap,
body.high-contrast .sitting-card-img-wrap,
body.dark-contrast .service-card,
body.high-contrast .service-card,
body.dark-contrast .quick-card,
body.high-contrast .quick-card,
body.dark-contrast .area-card,
body.high-contrast .area-card,
body.dark-contrast .board-card,
body.high-contrast .board-card,
body.dark-contrast .stat-card,
body.high-contrast .stat-card,
body.dark-contrast .about-card,
body.high-contrast .about-card,
body.dark-contrast .trust-card,
body.high-contrast .trust-card,
body.dark-contrast .gov-link-tile,
body.high-contrast .gov-link-tile,
body.dark-contrast .notice-item,
body.high-contrast .notice-item,
body.dark-contrast .news-item-card,
body.high-contrast .news-item-card,
body.dark-contrast .inner-page-content-box,
body.high-contrast .inner-page-content-box,
body.dark-contrast .inner-page-sidebar,
body.high-contrast .inner-page-sidebar,
body.dark-contrast .notice-strip-section,
body.high-contrast .notice-strip-section,
body.dark-contrast .ticker-wrap,
body.high-contrast .ticker-wrap,
body.dark-contrast .whats-new,
body.high-contrast .whats-new {
  background-color: #1e1e1e !important;
  border-color: #383838 !important;
  color: #f5f5f5 !important;
}

/* Inner Page Banners */
body.dark-contrast .inner-page-banner,
body.high-contrast .inner-page-banner {
  background: #181818 !important;
  border-bottom: 2px solid #383838 !important;
}

/* Headings & Text */
body.dark-contrast h1, body.high-contrast h1,
body.dark-contrast h2, body.high-contrast h2,
body.dark-contrast h3, body.high-contrast h3,
body.dark-contrast h4, body.high-contrast h4,
body.dark-contrast h5, body.high-contrast h5,
body.dark-contrast h6, body.high-contrast h6,
body.dark-contrast .section-title, body.high-contrast .section-title,
body.dark-contrast .section-heading, body.high-contrast .section-heading,
body.dark-contrast .card-title, body.high-contrast .card-title,
body.dark-contrast .page-title, body.high-contrast .page-title,
body.dark-contrast .portal-card-title, body.high-contrast .portal-card-title,
body.dark-contrast .leader-name, body.high-contrast .leader-name,
body.dark-contrast strong, body.high-contrast strong {
  color: #f5f5f5 !important;
}

body.dark-contrast p, body.high-contrast p,
body.dark-contrast span:not(.badge):not(.btn), body.high-contrast span:not(.badge):not(.btn),
body.dark-contrast li, body.high-contrast li,
body.dark-contrast label, body.high-contrast label,
body.dark-contrast .text-muted, body.high-contrast .text-muted,
body.dark-contrast .text-secondary, body.high-contrast .text-secondary,
body.dark-contrast .portal-card-domain, body.high-contrast .portal-card-domain,
body.dark-contrast .page-subtitle, body.high-contrast .page-subtitle {
  color: #d0d0d0 !important;
}

/* Links */
body.dark-contrast a:not(.btn):not(.badge):not(.nav-link),
body.high-contrast a:not(.btn):not(.badge):not(.nav-link) {
  color: #60a5fa !important;
}

body.dark-contrast a:not(.btn):not(.badge):not(.nav-link):hover,
body.high-contrast a:not(.btn):not(.badge):not(.nav-link):hover {
  color: #93c5fd !important;
  text-decoration: underline !important;
}

/* Tables */
body.dark-contrast table,
body.high-contrast table,
body.dark-contrast .table,
body.high-contrast .table,
body.dark-contrast .gov-table,
body.high-contrast .gov-table {
  background-color: #1e1e1e !important;
  color: #f5f5f5 !important;
  border-color: #383838 !important;
}

body.dark-contrast table thead,
body.high-contrast table thead,
body.dark-contrast .table thead,
body.high-contrast .table thead,
body.dark-contrast table th,
body.high-contrast table th,
body.dark-contrast .table th,
body.high-contrast .table th {
  background-color: #252525 !important;
  color: #f5f5f5 !important;
  border-color: #383838 !important;
}

body.dark-contrast table td,
body.high-contrast table td,
body.dark-contrast .table td,
body.high-contrast .table td {
  background-color: #1e1e1e !important;
  color: #f5f5f5 !important;
  border-color: #383838 !important;
}

body.dark-contrast table tbody tr:nth-of-type(even) td,
body.high-contrast table tbody tr:nth-of-type(even) td,
body.dark-contrast .table tbody tr:nth-of-type(even) td,
body.high-contrast .table tbody tr:nth-of-type(even) td {
  background-color: #181818 !important;
}

body.dark-contrast table tbody tr:hover td,
body.high-contrast table tbody tr:hover td,
body.dark-contrast .table tbody tr:hover td,
body.high-contrast .table tbody tr:hover td {
  background-color: #262626 !important;
}

/* Form Inputs */
body.dark-contrast input[type="text"], body.high-contrast input[type="text"],
body.dark-contrast input[type="search"], body.high-contrast input[type="search"],
body.dark-contrast input[type="email"], body.high-contrast input[type="email"],
body.dark-contrast input[type="password"], body.high-contrast input[type="password"],
body.dark-contrast input[type="date"], body.high-contrast input[type="date"],
body.dark-contrast select, body.high-contrast select,
body.dark-contrast textarea, body.high-contrast textarea,
body.dark-contrast .form-control, body.high-contrast .form-control,
body.dark-contrast .form-select, body.high-contrast .form-select {
  background-color: #1e1e1e !important;
  color: #f5f5f5 !important;
  border-color: #555555 !important;
}

body.dark-contrast input::placeholder,
body.high-contrast input::placeholder,
body.dark-contrast textarea::placeholder,
body.high-contrast textarea::placeholder {
  color: #888888 !important;
}

/* Dropdowns & Modals (Elevated Surfaces) */
body.dark-contrast .dropdown-menu,
body.high-contrast .dropdown-menu,
body.dark-contrast .modal-content,
body.high-contrast .modal-content,
body.dark-contrast .popover,
body.high-contrast .popover,
body.dark-contrast .offcanvas,
body.high-contrast .offcanvas {
  background-color: #252525 !important;
  color: #f5f5f5 !important;
  border: 1px solid #383838 !important;
}

body.dark-contrast .dropdown-item:hover,
body.dark-contrast .dropdown-item:focus,
body.high-contrast .dropdown-item:hover,
body.high-contrast .dropdown-item:focus {
  background-color: #383838 !important;
  color: #60a5fa !important;
}

/* Badges & Pagination */
body.dark-contrast .badge:not(.bg-warning):not(.bg-danger):not(.bg-success),
body.high-contrast .badge:not(.bg-warning):not(.bg-danger):not(.bg-success) {
  background-color: #252525 !important;
  color: #f5f5f5 !important;
  border: 1px solid #555555 !important;
}

body.dark-contrast .pagination .page-link,
body.high-contrast .pagination .page-link {
  background-color: #1e1e1e !important;
  color: #f5f5f5 !important;
  border-color: #383838 !important;
}

body.dark-contrast .pagination .page-item.active .page-link,
body.high-contrast .pagination .page-item.active .page-link {
  background-color: #2563eb !important;
  border-color: #2563eb !important;
  color: #ffffff !important;
}

/* Footers */
body.dark-contrast footer,
body.high-contrast footer,
body.dark-contrast .gov-footer,
body.high-contrast .gov-footer,
body.dark-contrast .main-footer,
body.high-contrast .main-footer,
body.dark-contrast .site-footer,
body.high-contrast .site-footer {
  background-color: #0e0e0e !important;
  color: #d0d0d0 !important;
  border-top: 1px solid #383838 !important;
}

body.dark-contrast footer a,
body.high-contrast footer a,
body.dark-contrast .gov-footer a,
body.high-contrast .gov-footer a,
body.dark-contrast .main-footer a,
body.high-contrast .main-footer a {
  color: #60a5fa !important;
}

/* Contrast Button Active States */
body.dark-contrast #btn-contrast-toggle,
body.high-contrast #btn-contrast-toggle,
body.dark-contrast #btnHighContrast,
body.high-contrast #btnHighContrast,
body.dark-contrast .contrast-toggle-btn,
body.high-contrast .contrast-toggle-btn,
body.dark-contrast .btn-theme-toggle,
body.high-contrast .btn-theme-toggle {
  background-color: #ffc107 !important;
  color: #000000 !important;
  border-color: #ffc107 !important;
}

.gov-theme-btn.btn-white.active {
  box-shadow: 0 0 0 2px #ffc107 !important;
}
.gov-theme-btn.btn-black.active {
  box-shadow: 0 0 0 2px #ffc107 !important;
}

/* CRITICAL: PRESERVE ALL IMAGES, LOGOS, AND PHOTOS WITHOUT INVERSION */
img,
picture,
svg:not(.bi):not(.gov-flag-icon),
video,
canvas,
iframe {
  filter: none !important;
}

/* =====================================================
   DYNAMIC MULTI-LEVEL DROPDOWN & MEGA MENU STYLING
   ===================================================== */
.main-nav .container {
  position: relative;
}

.nav-menu {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
  justify-content: space-between;
}

.nav-menu > li {
  position: relative;
}

.nav-menu > li.has-mega-menu {
  position: static;
}

.nav-menu > li > a {
  display: flex;
  align-items: center;
  padding: 16px 10px;
  color: #0b3c61;
  font-weight: 600;
  font-size: var(--site-content-font-size, 14px);
  text-decoration: none;
  transition: all 0.2s ease;
  white-space: nowrap;
  position: relative;
}

.nav-menu > li > a:hover,
.nav-menu > li:hover > a,
.nav-menu > li.active > a,
.nav-menu > li.open > a {
  color: #004d80;
  background-color: rgba(13, 110, 253, 0.06);
}

.nav-menu > li > a i {
  font-size: 0.72rem;
  margin-left: 5px;
  transition: transform 0.2s ease;
}

.nav-menu > li:hover > a i,
.nav-menu > li.open > a i {
  transform: rotate(180deg);
}

/* Underline indicator matching across all items (Divisions, Acts & Rules, etc.) */
.nav-menu > li > a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 0;
  height: 3px;
  background: #0b3c61;
  transition: all 0.25s ease;
  transform: translateX(-50%);
}

.nav-menu > li:hover > a::after,
.nav-menu > li.active > a::after,
.nav-menu > li.open > a::after,
.nav-menu > li:focus-within > a::after {
  width: 80% !important;
}

/* Base Dropdown Styling */
.nav-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 250px;
  background: #ffffff;
  border-radius: 6px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12), 0 2px 6px rgba(0, 0, 0, 0.08);
  border: 1px solid #e2e8f0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
  z-index: 1000;
  padding: 10px 0;
}

.nav-menu > li:hover > .nav-dropdown,
.nav-menu > li:focus-within > .nav-dropdown,
.nav-menu > li.open > .nav-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* Right-align dropdowns for items near the right edge */
.nav-menu > li:nth-last-child(-n+3):not(.has-mega-menu) > .nav-dropdown {
  left: auto;
  right: 0;
}

.nav-dropdown a {
  display: block;
  padding: 9px 20px;
  color: #1e293b;
  font-size: var(--site-content-font-size, 14px);
  font-weight: 500;
  text-decoration: none;
  transition: background 0.15s ease, color 0.15s ease, padding-left 0.15s ease;
  line-height: 1.4;
  white-space: nowrap;
}

.nav-dropdown a:hover,
.nav-dropdown a:focus {
  background: #f1f5f9;
  color: #0b3c61;
  padding-left: 24px;
}

/* Dropdown Menu Single-Column Styling */
.nav-dropdown.nav-dropdown-wide {
  min-width: 250px;
  width: max-content;
  max-width: 340px;
  display: block;
  padding: 10px 0;
}

.nav-dropdown.nav-dropdown-wide a {
  border-radius: 0;
  padding: 9px 20px;
}

.nav-dropdown.nav-dropdown-wide a:hover,
.nav-dropdown.nav-dropdown-wide a:focus {
  padding-left: 24px;
}

/* Mega Menu (Shared identically across Acts & Rules, Divisions, and Data & Statistics) */
.nav-dropdown.nav-mega-menu {
  left: 15px;
  right: 15px;
  width: calc(100% - 30px);
  min-width: unset;
  padding: 24px 30px;
  background: #ffffff !important;
  border-radius: 8px !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12), 0 2px 6px rgba(0, 0, 0, 0.08) !important;
  border: 1px solid #e2e8f0 !important;
  max-height: calc(85vh - 100px);
  overflow-y: auto;
}

/* Custom Sleek Scrollbar for Mega Menus */
.nav-dropdown.nav-mega-menu::-webkit-scrollbar {
  width: 6px;
}
.nav-dropdown.nav-mega-menu::-webkit-scrollbar-track {
  background: #f8fafc;
  border-radius: 3px;
}
.nav-dropdown.nav-mega-menu::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 3px;
}
.nav-dropdown.nav-mega-menu::-webkit-scrollbar-thumb:hover {
  background: #0d3b66;
}

.mega-menu-inner {
  display: flex;
  gap: 28px;
  width: 100%;
  align-items: start;
}

.mega-menu-column {
  flex: 1;
  min-width: 0;
}

.mega-menu-heading {
  font-size: var(--site-title-font-size, 16px);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: #0d3b66 !important;
  border-bottom: 2px solid #0d3b66 !important;
  padding-bottom: 8px;
  margin-bottom: 12px;
}

.mega-menu-heading a {
  color: #0d3b66 !important;
  text-decoration: none;
  display: inline-block;
  padding: 0;
}

.mega-menu-heading a:hover,
.mega-menu-heading a:focus {
  color: #004d80 !important;
  background: transparent;
  padding: 0;
  text-decoration: underline;
}

.mega-menu-heading span {
  display: inline-block;
  color: #0d3b66 !important;
}

.mega-menu-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.mega-menu-list li {
  margin-bottom: 3px;
}

.mega-menu-list li a {
  display: block;
  padding: 5px 8px;
  color: #334155 !important;
  font-size: var(--site-content-font-size, 14px);
  font-weight: 500;
  border-radius: 4px;
  transition: all 0.15s ease;
  text-decoration: none;
  white-space: normal;
  word-break: break-word;
}

.mega-menu-list li a:hover,
.mega-menu-list li a:focus {
  background: #f1f5f9 !important;
  color: #0d3b66 !important;
  padding-left: 12px;
}

/* High Contrast & Dark Mode Navigation Styles */
body.high-contrast .nav-menu > li > a,
body.dark-contrast .nav-menu > li > a {
  color: #f8fafc !important;
}

body.high-contrast .nav-menu > li > a:hover,
body.dark-contrast .nav-menu > li > a:hover,
body.high-contrast .nav-menu > li:hover > a,
body.dark-contrast .nav-menu > li:hover > a,
body.high-contrast .nav-menu > li.active > a,
body.dark-contrast .nav-menu > li.active > a,
body.high-contrast .nav-menu > li.open > a,
body.dark-contrast .nav-menu > li.open > a {
  color: #ffc107 !important;
  background-color: #222222 !important;
}

body.high-contrast .nav-dropdown,
body.dark-contrast .nav-dropdown {
  background: #181818 !important;
  border-color: #444444 !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.7) !important;
}

body.high-contrast .nav-dropdown a,
body.dark-contrast .nav-dropdown a {
  color: #e2e8f0 !important;
}

body.high-contrast .nav-dropdown a:hover,
body.dark-contrast .nav-dropdown a:hover,
body.high-contrast .nav-dropdown a:focus,
body.dark-contrast .nav-dropdown a:focus {
  background: #282828 !important;
  color: #ffc107 !important;
}

body.high-contrast .mega-menu-heading,
body.dark-contrast .mega-menu-heading {
  color: #ffc107 !important;
  border-bottom-color: #ffc107 !important;
}

body.high-contrast .mega-menu-heading a,
body.dark-contrast .mega-menu-heading a,
body.high-contrast .mega-menu-heading span,
body.dark-contrast .mega-menu-heading span {
  color: #ffc107 !important;
}

body.high-contrast .mega-menu-list li a,
body.dark-contrast .mega-menu-list li a {
  color: #e2e8f0 !important;
}

body.high-contrast .mega-menu-list li a:hover,
body.dark-contrast .mega-menu-list li a:hover,
body.high-contrast .mega-menu-list li a:focus,
body.dark-contrast .mega-menu-list li a:focus {
  background: #282828 !important;
  color: #ffc107 !important;
}

/* Mobile Responsiveness (Under 992px) */
@media (max-width: 991.98px) {
  .nav-menu {
    flex-direction: column;
    align-items: stretch;
  }

  .nav-menu > li > a {
    padding: 12px 18px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    justify-content: space-between;
  }

  .nav-dropdown {
    position: static !important;
    width: 100% !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    background: #f8fafc !important;
    padding: 6px 0 !important;
    display: none;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }

  .nav-dropdown.show {
    display: block !important;
  }

  .nav-dropdown.nav-dropdown-wide {
    grid-template-columns: 1fr !important;
    min-width: unset !important;
    padding: 4px 10px !important;
  }

  .nav-dropdown.nav-mega-menu {
    padding: 10px 14px !important;
    max-height: 480px !important;
  }

  .mega-menu-inner {
    flex-direction: column !important;
    gap: 16px !important;
  }

  .mega-menu-heading {
    margin-bottom: 6px !important;
    padding-bottom: 4px !important;
    font-size: var(--site-title-font-size, 16px) !important;
  }

  .mega-menu-list li a {
    padding: 6px 12px !important;
  }

  body.high-contrast .nav-dropdown,
  body.dark-contrast .nav-dropdown {
    background: #242424 !important;
  }
}


/* Button group link padding */
.constx-btn-group a {
  padding: 12px 20px !important;
}

/* Non-clickable parent menu trigger & focus styles */
.nav-menu > li.has-dropdown > a,
.nav-dropdown-toggle {
  cursor: pointer;
  user-select: none;
}

.nav-menu > li > a:focus-visible,
.nav-dropdown-toggle:focus-visible {
  outline: 2px solid #0056b3;
  outline-offset: 2px;
}

/* Breadcrumb parent item (plain text, non-clickable) */
.inner-page-banner .breadcrumb-item:not(.active):not(:has(a)) {
  color: rgba(255, 255, 255, 0.7);
  font-weight: 500;
}

/* Guarantee single-column dropdown layout for all standard dropdowns */
.nav-dropdown:not(.nav-mega-menu) {
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  width: max-content !important;
  min-width: 260px !important;
  max-width: 380px !important;
}

.nav-dropdown:not(.nav-mega-menu) > a {
  display: block !important;
  width: 100% !important;
  box-sizing: border-box !important;
  white-space: nowrap !important;
}

/* =========================================================================
   HEADER BRAND IDENTITY & GOVERNMENT LOGOS (LIGHT & DARK MODE COMPATIBLE)
   ========================================================================= */

/* Header Row & Compact Spacing */
.header-main {
  padding: 6px 0 4px 0 !important;
}

.main-header.scrolled .header-main {
  padding: 4px 0 !important;
}

/* Brand Link Container */
.brand-identity-link {
  display: inline-flex !important;
  align-items: center !important;
  gap: 12px !important;
  text-decoration: none !important;
  color: inherit !important;
  user-select: text !important;
}

.brand-identity-link:hover,
.brand-identity-link:focus,
.brand-identity-link:active {
  text-decoration: none !important;
}

/* Ashoka Emblem */
.header-emblem-wrap {
  width: 36px !important;
  height: 54px !important;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.header-emblem {
  width: auto;
  height: 100%;
  max-height: 54px !important;
  max-width: 36px !important;
  object-fit: contain;
  display: block;
}

.header-emblem.emblem-dark {
  display: none !important;
}

.header-emblem.emblem-light {
  display: block !important;
}

/* Dark / High Contrast Mode Emblem Switch */
body.dark-contrast .header-emblem.emblem-light,
body.high-contrast .header-emblem.emblem-light,
html.dark-contrast .header-emblem.emblem-light,
html.high-contrast .header-emblem.emblem-light {
  display: none !important;
}

body.dark-contrast .header-emblem.emblem-dark,
body.high-contrast .header-emblem.emblem-dark,
html.dark-contrast .header-emblem.emblem-dark,
html.high-contrast .header-emblem.emblem-dark {
  display: block !important;
}

/* Department Titles */
.header-brand-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  line-height: 1.15;
}

.dept-title-hi {
  font-family: 'Poppins', 'Noto Sans Devanagari', 'Mangal', sans-serif;
  font-size: var(--site-title-font-size, 16px);
  font-weight: 700;
  color: #111827;
  letter-spacing: 0.2px;
  line-height: 1.2;
}

.dept-title-en {
  font-family: 'Poppins', sans-serif;
  font-size: var(--site-title-font-size, 16px);
  font-weight: 700;
  color: #0b1e33;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  line-height: 1.2;
  margin-top: 1px;
}

.dept-title-sub {
  font-family: 'Poppins', sans-serif;
  font-size: var(--site-content-font-size, 14px);
  font-weight: 500;
  color: #475569;
  letter-spacing: 0.15px;
  line-height: 1.2;
  margin-top: 2px;
  white-space: nowrap;
}

/* Dark Mode Typography Contrast */
body.dark-contrast .dept-title-hi,
body.high-contrast .dept-title-hi,
html.dark-contrast .dept-title-hi,
html.high-contrast .dept-title-hi {
  color: #f1f5f9 !important;
}

body.dark-contrast .dept-title-en,
body.high-contrast .dept-title-en,
html.dark-contrast .dept-title-en,
html.high-contrast .dept-title-en {
  color: #ffffff !important;
}

body.dark-contrast .dept-title-sub,
body.high-contrast .dept-title-sub,
html.dark-contrast .dept-title-sub,
html.high-contrast .dept-title-sub {
  color: #cbd5e1 !important;
}

/* Compact Search Bar */
.search-bar input {
  padding: 10px 46px 10px 20px !important;
  font-size: var(--site-content-font-size, 14px) !important;
}

.search-bar button {
  width: 36px !important;
  height: 36px !important;
}

/* Right-Side Government Campaign Logos (Clean white background container in both themes) */
.header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.partner-logo-container {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: #ffffff !important;
  border-radius: 8px;
  padding: 4px 10px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
  border: 1px solid rgba(0, 0, 0, 0.06);
  height: 44px;
  box-sizing: border-box;
}

.header-partner-logo {
  height: 34px;
  width: auto;
  max-width: 120px;
  object-fit: contain;
  display: block;
}

/* In Dark / High Contrast Mode: Keep permanent clean white background container, NO filters or color inversion */
body.dark-contrast .partner-logo-container,
body.high-contrast .partner-logo-container,
html.dark-contrast .partner-logo-container,
html.high-contrast .partner-logo-container {
  background-color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.25) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5) !important;
}

body.dark-contrast .header-partner-logo,
body.high-contrast .header-partner-logo,
html.dark-contrast .header-partner-logo,
html.high-contrast .header-partner-logo {
  filter: none !important;
  opacity: 1 !important;
}

/* Menu Items Vertical Padding: Tighten Space to Logo */
.nav-menu > li > a {
  padding: 10px 10px !important;
}

/* Responsive Behavior */
@media (max-width: 1199.98px) {
  .dept-title-sub {
    font-size: var(--site-content-font-size, 14px);
  }
  .header-actions {
    gap: 10px;
  }
  .partner-logo-container { height: 40px; padding: 3px 8px; }
  .header-partner-logo { height: 30px; max-width: 105px; }
}

@media (max-width: 991.98px) {
  .header-main {
    padding: 8px 0 !important;
  }
  .brand-identity-link {
    gap: 10px !important;
  }
  .header-emblem-wrap {
    width: 32px !important;
    height: 48px !important;
  }
  .header-emblem {
    max-height: 48px !important;
    max-width: 32px !important;
  }
  .dept-title-hi {
    font-size: var(--site-title-font-size, 16px);
  }
  .dept-title-en {
    font-size: var(--site-title-font-size, 16px);
  }
  .dept-title-sub {
    font-size: var(--site-content-font-size, 14px);
  }
  .partner-logo-container { height: 36px; padding: 3px 7px; }
  .header-partner-logo { height: 26px; max-width: 90px; }
  .nav-menu > li > a {
    padding: 12px 18px !important;
  }
}

@media (max-width: 575.98px) {
  .brand-identity-link {
    gap: 8px !important;
  }
  .header-emblem-wrap {
    width: 28px !important;
    height: 42px !important;
  }
  .header-emblem {
    max-height: 42px !important;
    max-width: 28px !important;
  }
  .dept-title-hi {
    font-size: var(--site-title-font-size, 16px);
  }
  .dept-title-en {
    font-size: var(--site-title-font-size, 16px);
  }
  .dept-title-sub {
    display: none;
  }
  .partner-logo-container { height: 32px; padding: 2px 6px; }
  .header-partner-logo { height: 22px; max-width: 80px; }
}


/* =========================================================================
   HOMEPAGE DYNAMIC THEME SYSTEM (CENTRALIZED CSS VARIABLES)
   Covers:
     1. About Section - Image Cards & Content (.constx-about-section, .minister-card)
     2. Head of the Department Section (#director-message, .director-card-wrapper)
     3. Latest News & Events Section (#media-news, .campus-tour-box, .research-highlights-card)
     4. Social Media Section (#social-media-feed, .gallery-wrapper, .social-media-card)
   ========================================================================= */

/* Default Light Mode Semantic Theme Variables */
:root {
  --site-title-font-size: 16px;
  --site-content-font-size: 14px;
  /* Surfaces & Backgrounds */
  --dor-section-bg: #ffffff;
  --dor-section-subtle-bg: #f8fafc;
  --dor-card-bg: #ffffff;
  --dor-card-subtle-bg: #f4f5f7;
  --dor-card-elevated-bg: #f1f5f9;

  /* Typography */
  --dor-text-primary: #1e293b;
  --dor-text-secondary: #475569;
  --dor-text-muted: #64748b;
  --dor-heading-color: #0f172a;
  --dor-heading-accent: rgb(22, 47, 106);
  --dor-designation-color: #005075;

  /* Borders & Dividers */
  --dor-border-color: #e2e8f0;
  --dor-border-subtle: #eaeaea;
  --dor-divider-color: #dcdfe6;

  /* Links & Accents */
  --dor-link-color: #0b3c61;
  --dor-link-hover: #0284c7;
  --dor-accent-color: rgb(22, 47, 106);
  --dor-badge-bg: #f3f4f6;
  --dor-badge-color: #475569;

  /* Overlays & Shadows */
  --dor-card-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
  --dor-card-shadow-hover: 0 15px 40px rgba(0, 0, 0, 0.1);
  --dor-img-overlay: linear-gradient(180deg, rgba(15, 23, 42, 0) 0%, rgba(15, 23, 42, 0.75) 100%);
  --dor-img-border: #e2e8f0;

  /* Social Platform Branding */
  --dor-twitter-color: #0f172a;
  --dor-facebook-color: #1877f2;
  --dor-instagram-color: #e1306c;
}

/* Dark & High Contrast Mode Variable Overrides */
:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast, body.dark-mode, html[data-theme="dark"]) {
  /* Surfaces & Backgrounds */
  --dor-section-bg: #121212;
  --dor-section-subtle-bg: #181818;
  --dor-card-bg: #1e1e1e;
  --dor-card-subtle-bg: #222222;
  --dor-card-elevated-bg: #282828;

  /* Typography */
  --dor-text-primary: #f5f5f5;
  --dor-text-secondary: #d0d0d0;
  --dor-text-muted: #a0a0a0;
  --dor-heading-color: #ffffff;
  --dor-heading-accent: #ffc107;
  --dor-designation-color: #93c5fd;

  /* Borders & Dividers */
  --dor-border-color: #383838;
  --dor-border-subtle: #333333;
  --dor-divider-color: #444444;

  /* Links & Accents */
  --dor-link-color: #60a5fa;
  --dor-link-hover: #93c5fd;
  --dor-accent-color: #ffc107;
  --dor-badge-bg: #2a2a2a;
  --dor-badge-color: #e2e8f0;

  /* Overlays & Shadows */
  --dor-card-shadow: 0 10px 30px rgba(0, 0, 0, 0.45);
  --dor-card-shadow-hover: 0 15px 40px rgba(0, 0, 0, 0.6);
  --dor-img-overlay: linear-gradient(180deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.9) 100%);
  --dor-img-border: #383838;

  /* Social Platform Branding */
  --dor-twitter-color: #ffffff;
  --dor-facebook-color: #4299e1;
  --dor-instagram-color: #f472b6;
}

/* -------------------------------------------------------------------------
   1. ABOUT SECTION – IMAGE CARDS & CONTENT
   ------------------------------------------------------------------------- */
.constx-about-section {
  padding: 2rem 0;
  background-color: var(--dor-section-bg);
  transition: background-color 0.3s ease, color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .constx-about-section {
  background-color: var(--dor-section-bg) !important;
}

.constx-title {
  color: var(--dor-heading-color);
  font-weight: 700;
  margin-bottom: 20px;
  letter-spacing: 0.5px;
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .constx-title {
  color: var(--dor-heading-color) !important;
}

.constx-title .text-orange {
  color: var(--dor-heading-accent);
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .constx-title .text-orange {
  color: var(--dor-heading-accent) !important;
}

.constx-description,
.constx-description p {
  color: var(--dor-text-secondary);
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .constx-description,
:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .constx-description p {
  color: var(--dor-text-secondary) !important;
}

.constx-badge {
  background-color: var(--dor-badge-bg);
  color: var(--dor-badge-color);
  border: 1px solid var(--dor-border-color);
  transition: all 0.3s ease;
}

/* Minister Cards (Image Cards in About Section) */
.minister-card {
  background: var(--dor-card-bg);
  border: 1px solid var(--dor-border-color);
  box-shadow: var(--dor-card-shadow);
  border-radius: 8px;
  overflow: hidden;
  transition: all 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .minister-card {
  background: var(--dor-card-bg) !important;
  border-color: var(--dor-border-color) !important;
  box-shadow: var(--dor-card-shadow) !important;
}

.minister-img-wrapper {
  position: relative;
  border: 1px solid var(--dor-img-border);
  background-color: var(--dor-card-elevated-bg);
  overflow: hidden;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .minister-img-wrapper {
  border-color: var(--dor-border-color) !important;
  background-color: var(--dor-card-elevated-bg) !important;
}

.minister-name {
  color: var(--dor-heading-color);
  font-weight: 700;
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .minister-name {
  color: var(--dor-heading-color) !important;
}

.minister-role {
  color: var(--dor-text-muted);
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .minister-role {
  color: var(--dor-text-secondary) !important;
}

.minister-bottom-stripe {
  background-color: var(--dor-heading-accent);
  transition: background-color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .minister-bottom-stripe {
  background-color: var(--dor-heading-accent) !important;
}

/* Alternative / Dynamic Image Cards (.constx-img-card, .constx-consult-card) */
.constx-img-card {
  border: 1px solid var(--dor-img-border);
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .constx-img-card {
  border-color: var(--dor-border-color) !important;
}

.constx-img-card::after {
  background: var(--dor-img-overlay);
}

.constx-consult-card {
  background: var(--dor-card-bg);
  border: 1px solid var(--dor-border-color);
  box-shadow: var(--dor-card-shadow);
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .constx-consult-card {
  background: var(--dor-card-bg) !important;
  border-color: var(--dor-border-color) !important;
  box-shadow: var(--dor-card-shadow) !important;
}

.constx-consult-card .card-title {
  color: var(--dor-heading-color);
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .constx-consult-card .card-title {
  color: var(--dor-heading-color) !important;
}

.constx-consult-card .card-phone,
.constx-consult-card .card-phone a {
  color: var(--dor-link-color);
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .constx-consult-card .card-phone,
:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .constx-consult-card .card-phone a {
  color: var(--dor-link-color) !important;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .constx-btn-group .btn-orange {
  background: #ffc107 !important;
  color: #121212 !important;
  font-weight: 700 !important;
  border: 1px solid #ffc107 !important;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .constx-btn-group .btn-orange:hover {
  background: #e0a800 !important;
  color: #000000 !important;
}

/* -------------------------------------------------------------------------
   2. HEAD OF THE DEPARTMENT SECTION
   ------------------------------------------------------------------------- */
#director-message.director-message-section,
.director-message-section {
  padding: 50px 0;
  background-color: var(--dor-section-subtle-bg);
  transition: background-color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) #director-message.director-message-section {
  background-color: var(--dor-section-subtle-bg) !important;
}

.director-card-wrapper {
  background: var(--dor-card-bg);
  border: 1px solid var(--dor-border-color);
  box-shadow: var(--dor-card-shadow);
  border-radius: 20px;
  transition: all 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .director-card-wrapper {
  background: var(--dor-card-bg) !important;
  border-color: var(--dor-border-color) !important;
  box-shadow: var(--dor-card-shadow) !important;
}

.director-img-frame {
  border: 4px solid var(--dor-card-elevated-bg);
  box-shadow: var(--dor-card-shadow);
  transition: all 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .director-img-frame {
  border-color: var(--dor-card-elevated-bg) !important;
}

.director-badge {
  background: var(--dor-accent-color);
  color: #ffffff;
  transition: all 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .director-badge {
  background: #ffc107 !important;
  color: #121212 !important;
  font-weight: 700 !important;
}

.quote-icon {
  color: var(--dor-heading-accent);
  opacity: 0.25;
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .quote-icon,
:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .quote-icon i {
  color: #ffc107 !important;
  opacity: 0.35 !important;
}

.director-name {
  color: var(--dor-heading-color);
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .director-name {
  color: var(--dor-heading-color) !important;
}

.director-designation {
  color: var(--dor-designation-color);
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .director-designation {
  color: var(--dor-designation-color) !important;
}

.director-message-text p {
  color: var(--dor-text-secondary);
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .director-message-text p {
  color: var(--dor-text-secondary) !important;
}

.director-footer {
  border-top: 1px solid var(--dor-border-color);
  transition: border-color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .director-footer {
  border-top-color: var(--dor-border-color) !important;
}

.signature-block .sign-text {
  color: var(--dor-heading-accent);
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .signature-block .sign-text {
  color: var(--dor-heading-accent) !important;
}

.btn-director-more {
  background: var(--dor-accent-color);
  color: #ffffff !important;
  transition: all 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .btn-director-more {
  background: #ffc107 !important;
  color: #121212 !important;
  font-weight: 700 !important;
  box-shadow: 0 4px 12px rgba(255, 193, 7, 0.25) !important;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .btn-director-more:hover {
  background: #e0a800 !important;
  color: #000000 !important;
  box-shadow: 0 6px 16px rgba(255, 193, 7, 0.35) !important;
}

/* -------------------------------------------------------------------------
   3. LATEST NEWS & EVENTS SECTION
   ------------------------------------------------------------------------- */
#media-news {
  background-color: var(--dor-section-bg);
  transition: background-color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) #media-news {
  background-color: var(--dor-section-bg) !important;
}

#media-news .section-header h2 {
  color: var(--dor-heading-color);
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) #media-news .section-header h2 {
  color: var(--dor-heading-color) !important;
}

#media-news .section-header p {
  color: var(--dor-text-secondary);
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) #media-news .section-header p {
  color: var(--dor-text-secondary) !important;
}

.title-column {
  background: var(--dor-card-subtle-bg);
  border: 1px solid var(--dor-border-color);
  border-radius: 12px;
  box-shadow: var(--dor-card-shadow);
  transition: all 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .title-column {
  background: var(--dor-card-bg) !important;
  border-color: var(--dor-border-color) !important;
  box-shadow: var(--dor-card-shadow) !important;
}

.sub-camp-title-box,
.sub-camp-title-box a {
  color: var(--dor-heading-color) !important;
  transition: color 0.3s ease;
}

.sub-camp-title-box a:hover {
  color: var(--dor-link-hover) !important;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .sub-camp-title-box,
:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .sub-camp-title-box a {
  color: var(--dor-heading-color) !important;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .sub-camp-title-box a:hover {
  color: var(--dor-link-hover) !important;
}

.camp-text-outer-box12 p {
  color: var(--dor-text-secondary) !important;
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .camp-text-outer-box12 p {
  color: var(--dor-text-secondary) !important;
}

.announcements-tags span {
  background: var(--dor-badge-bg) !important;
  color: var(--dor-badge-color) !important;
  border: 1px solid var(--dor-border-color);
  transition: all 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .announcements-tags span {
  background: var(--dor-badge-bg) !important;
  color: var(--dor-badge-color) !important;
  border-color: var(--dor-border-color) !important;
}

.announcements-tags span i {
  color: var(--dor-heading-accent) !important;
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .announcements-tags span i {
  color: var(--dor-heading-accent) !important;
}

.research-highlights-card {
  background: var(--dor-card-bg) !important;
  border: 1px solid var(--dor-border-color) !important;
  box-shadow: var(--dor-card-shadow);
  border-radius: 16px;
  transition: all 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .research-highlights-card {
  background: var(--dor-card-bg) !important;
  border-color: var(--dor-border-color) !important;
  box-shadow: var(--dor-card-shadow) !important;
}

.research-highlights-card:hover {
  box-shadow: var(--dor-card-shadow-hover);
  border-color: var(--dor-heading-accent) !important;
}

.research-highlights-card-item .card-content h5,
.research-highlights-card-item .card-content h5 a {
  color: var(--dor-heading-color) !important;
  transition: color 0.3s ease;
}

.research-highlights-card-item .card-content h5 a:hover {
  color: var(--dor-link-hover) !important;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .research-highlights-card-item .card-content h5,
:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .research-highlights-card-item .card-content h5 a {
  color: var(--dor-heading-color) !important;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .research-highlights-card-item .card-content h5 a:hover {
  color: var(--dor-link-hover) !important;
}

.research-highlights-card-item .card-content p {
  color: var(--dor-text-secondary) !important;
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .research-highlights-card-item .card-content p {
  color: var(--dor-text-secondary) !important;
}

.tj-primary-btn {
  background: var(--dor-accent-color);
  color: #ffffff !important;
  transition: all 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .tj-primary-btn {
  background: #ffc107 !important;
  color: #121212 !important;
  font-weight: 700 !important;
  border: 1px solid #ffc107 !important;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .tj-primary-btn .btn-text span,
:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .tj-primary-btn .btn-icon i {
  color: #121212 !important;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .tj-primary-btn:hover {
  background: #e0a800 !important;
  color: #000000 !important;
}

/* -------------------------------------------------------------------------
   4. SOCIAL MEDIA SECTION
   ------------------------------------------------------------------------- */
#social-media-feed.section-light {
  background-color: var(--dor-section-subtle-bg);
  transition: background-color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) #social-media-feed.section-light {
  background-color: var(--dor-section-subtle-bg) !important;
}

#social-media-feed .section-header h2 {
  color: var(--dor-heading-color);
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) #social-media-feed .section-header h2 {
  color: var(--dor-heading-color) !important;
}

#social-media-feed .section-header p {
  color: var(--dor-text-secondary);
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) #social-media-feed .section-header p {
  color: var(--dor-text-secondary) !important;
}

.social-media-card,
#social-media-feed .gallery-wrapper {
  background-color: var(--dor-card-bg) !important;
  border: 1px solid var(--dor-border-color) !important;
  box-shadow: var(--dor-card-shadow) !important;
  border-radius: 20px;
  padding: 30px;
  height: 520px;
  overflow-y: auto !important;
  overflow-x: hidden;
  transition: all 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .social-media-card,
:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) #social-media-feed .gallery-wrapper {
  background-color: var(--dor-card-bg) !important;
  border-color: var(--dor-border-color) !important;
  box-shadow: var(--dor-card-shadow) !important;
}

.social-card-header,
#social-media-feed .gallery-wrapper > div:first-child {
  border-bottom: 1px solid var(--dor-border-subtle) !important;
  padding-bottom: 15px;
  transition: border-color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .social-card-header,
:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) #social-media-feed .gallery-wrapper > div:first-child {
  border-bottom-color: var(--dor-border-subtle) !important;
}

.social-card-title,
#social-media-feed .gallery-wrapper h3 {
  font-size: var(--site-title-font-size, 16px);
  color: var(--dor-heading-color) !important;
  font-weight: 700;
  margin: 0;
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .social-card-title,
:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) #social-media-feed .gallery-wrapper h3 {
  color: var(--dor-heading-color) !important;
}

.social-card-link,
#social-media-feed .gallery-wrapper a:not(.twitter-tweet a) {
  color: var(--dor-link-color) !important;
  font-weight: 600;
  font-size: var(--site-content-font-size, 14px);
  text-decoration: none !important;
  transition: color 0.3s ease;
}

.social-card-link:hover,
#social-media-feed .gallery-wrapper a:not(.twitter-tweet a):hover {
  color: var(--dor-link-hover) !important;
  text-decoration: underline !important;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .social-card-link,
:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) #social-media-feed .gallery-wrapper a:not(.twitter-tweet a) {
  color: var(--dor-link-color) !important;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .social-card-link:hover,
:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) #social-media-feed .gallery-wrapper a:not(.twitter-tweet a):hover {
  color: var(--dor-link-hover) !important;
}

/* Preserved official branding icons */
.social-icon-twitter,
#social-media-feed .fa-x-twitter {
  color: var(--dor-twitter-color) !important;
  margin-right: 10px;
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .social-icon-twitter,
:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) #social-media-feed .fa-x-twitter {
  color: var(--dor-twitter-color) !important;
}

.social-icon-facebook,
#social-media-feed .fa-facebook-f {
  color: var(--dor-facebook-color) !important;
  margin-right: 10px;
}

.social-icon-instagram,
#social-media-feed .fa-instagram {
  color: var(--dor-instagram-color) !important;
  margin-right: 10px;
}

/* Tweets and blockquotes inside social feed */
#social-media-feed .twitter-tweet,
#social-media-feed blockquote {
  color: var(--dor-text-primary) !important;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) #social-media-feed .twitter-tweet,
:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) #social-media-feed blockquote,
:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) #social-media-feed .twitter-tweet p,
:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) #social-media-feed blockquote p {
  color: var(--dor-text-primary) !important;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) #social-media-feed .twitter-tweet a {
  color: var(--dor-link-color) !important;
}


/* -------------------------------------------------------------------------
   5. TABBED ANNOUNCEMENTS & IMPORTANT LINKS SECTION (#media-announcements)
   Section immediately after Latest News & Events
   ------------------------------------------------------------------------- */
#media-announcements.section-light {
  background-color: var(--dor-section-subtle-bg);
  transition: background-color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) #media-announcements.section-light {
  background-color: var(--dor-section-subtle-bg) !important;
}

/* Media Tabs */
.media-tabs {
  gap: 12px;
}

.media-tab {
  background: var(--dor-card-bg);
  border: 2px solid var(--dor-border-color);
  color: var(--dor-text-secondary);
  transition: all 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .media-tab {
  background: var(--dor-card-bg) !important;
  border-color: var(--dor-border-color) !important;
  color: var(--dor-text-secondary) !important;
}

.media-tab:hover {
  border-color: var(--dor-link-hover);
  color: var(--dor-link-hover);
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .media-tab:hover {
  border-color: var(--dor-heading-accent) !important;
  color: var(--dor-heading-accent) !important;
}

.media-tab.active {
  background: var(--dor-accent-color);
  border-color: var(--dor-accent-color);
  color: #ffffff;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .media-tab.active {
  background: var(--dor-heading-accent) !important;
  border-color: var(--dor-heading-accent) !important;
  color: #121212 !important;
  font-weight: 700 !important;
  box-shadow: 0 4px 12px rgba(255, 193, 7, 0.25) !important;
}

/* Press / Announcement Item Cards */
.press-item {
  background: var(--dor-card-bg);
  border: 1px solid var(--dor-border-color);
  box-shadow: var(--dor-card-shadow);
  border-radius: 12px;
  transition: all 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .press-item {
  background: var(--dor-card-bg) !important;
  border-color: var(--dor-border-color) !important;
  box-shadow: var(--dor-card-shadow) !important;
}

.press-item:hover {
  border-color: var(--dor-heading-accent) !important;
  box-shadow: var(--dor-card-shadow-hover);
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .press-item:hover {
  border-color: var(--dor-heading-accent) !important;
}

.press-date .day {
  color: var(--dor-heading-accent);
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .press-date .day {
  color: var(--dor-heading-accent) !important;
}

.press-date .month {
  color: var(--dor-text-muted);
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .press-date .month {
  color: var(--dor-text-secondary) !important;
}

.press-info h4,
.press-info h4 a {
  color: var(--dor-heading-color) !important;
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .press-info h4,
:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .press-info h4 a {
  color: var(--dor-heading-color) !important;
}

.press-info h4 a:hover {
  color: var(--dor-link-hover) !important;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .press-info h4 a:hover {
  color: var(--dor-link-hover) !important;
}

.press-info p {
  color: var(--dor-text-secondary);
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .press-info p {
  color: var(--dor-text-secondary) !important;
}

/* Important Links Panel */
.important-links-panel {
  background: var(--dor-card-bg);
  border: 1px solid var(--dor-border-color);
  box-shadow: var(--dor-card-shadow);
  border-radius: 16px;
  transition: all 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .important-links-panel {
  background: var(--dor-card-bg) !important;
  border-color: var(--dor-border-color) !important;
  box-shadow: var(--dor-card-shadow) !important;
}

.important-links-header {
  border-bottom: 2px solid var(--dor-border-subtle);
  transition: border-color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .important-links-header {
  border-bottom-color: var(--dor-border-subtle) !important;
}

.important-links-header h3 {
  color: var(--dor-heading-color);
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .important-links-header h3 {
  color: var(--dor-heading-color) !important;
}

.important-links-header h3 i {
  color: var(--dor-heading-accent);
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .important-links-header h3 i {
  color: var(--dor-heading-accent) !important;
}

.important-links-list li a {
  background: var(--dor-card-subtle-bg);
  border: 1px solid var(--dor-border-color);
  color: var(--dor-text-primary);
  transition: all 0.25s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .important-links-list li a {
  background: var(--dor-card-elevated-bg) !important;
  border-color: var(--dor-border-color) !important;
  color: var(--dor-text-primary) !important;
}

.important-links-list li a:hover {
  background: var(--dor-accent-color);
  color: #ffffff;
  border-color: var(--dor-accent-color);
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .important-links-list li a:hover {
  background: var(--dor-heading-accent) !important;
  color: #121212 !important;
  border-color: var(--dor-heading-accent) !important;
  font-weight: 700 !important;
}

.important-links-list li a .link-icon {
  color: inherit !important;
}

/* -------------------------------------------------------------------------
   6. HOMEPAGE FAQ SECTION (#faqs)
   ------------------------------------------------------------------------- */
#faqs.faq-section,
.faq-section {
  padding: 60px 0;
  background-color: var(--dor-section-subtle-bg);
  transition: background-color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) #faqs.faq-section {
  background-color: var(--dor-section-subtle-bg) !important;
}

#faqs .section-header h2 {
  color: var(--dor-heading-color);
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) #faqs .section-header h2 {
  color: var(--dor-heading-color) !important;
}

#faqs .section-header p {
  color: var(--dor-text-secondary);
  transition: color 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) #faqs .section-header p {
  color: var(--dor-text-secondary) !important;
}

/* FAQ Sidebar Helpdesk Card */
.faq-sidebar-card {
  background: linear-gradient(145deg, #162f6a 0%, #0c1c44 100%);
  border-radius: 16px;
  padding: 36px 28px;
  color: #ffffff;
  box-shadow: 0 12px 35px rgba(22, 47, 106, 0.18);
  transition: all 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-sidebar-card {
  background: linear-gradient(145deg, #1e1e1e 0%, #151515 100%) !important;
  border: 1px solid var(--dor-border-color) !important;
  box-shadow: 0 12px 35px rgba(0, 0, 0, 0.5) !important;
}

.faq-sidebar-card h4 {
  color: #ffffff;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-sidebar-card h4 {
  color: var(--dor-heading-color) !important;
}

.faq-sidebar-card p {
  color: #d1d5db;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-sidebar-card p {
  color: var(--dor-text-secondary) !important;
}

.faq-sidebar-icon {
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #4C9AFF;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-sidebar-icon {
  background: rgba(255, 193, 7, 0.15) !important;
  border-color: rgba(255, 193, 7, 0.3) !important;
  color: #ffc107 !important;
}

.faq-helpdesk-box {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-helpdesk-box {
  background: rgba(255, 255, 255, 0.04) !important;
  border-color: var(--dor-border-color) !important;
}

.faq-helpdesk-item i {
  color: #4C9AFF;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-helpdesk-item i {
  color: #ffc107 !important;
}

.faq-helpdesk-item .item-title {
  color: #9ca3af;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-helpdesk-item .item-title {
  color: var(--dor-text-muted) !important;
}

.faq-helpdesk-item .item-value,
.faq-helpdesk-item .item-value a {
  color: #ffffff;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-helpdesk-item .item-value,
:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-helpdesk-item .item-value a {
  color: var(--dor-text-primary) !important;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-helpdesk-item .item-value a:hover {
  color: var(--dor-link-hover) !important;
}

.faq-sidebar-btn {
  background: #ffffff;
  color: #162f6a;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-sidebar-btn {
  background: #ffc107 !important;
  color: #121212 !important;
  font-weight: 700 !important;
  border: 1px solid #ffc107 !important;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-sidebar-btn:hover {
  background: #e0a800 !important;
  color: #000000 !important;
}

/* FAQ Category Filter Buttons */
.faq-filter-btn {
  background: var(--dor-card-bg);
  border: 1px solid var(--dor-border-color);
  color: var(--dor-text-secondary);
  transition: all 0.25s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-filter-btn {
  background: var(--dor-card-bg) !important;
  border-color: var(--dor-border-color) !important;
  color: var(--dor-text-secondary) !important;
}

.faq-filter-btn:hover {
  border-color: var(--dor-accent-color);
  color: var(--dor-accent-color);
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-filter-btn:hover {
  border-color: var(--dor-heading-accent) !important;
  color: var(--dor-heading-accent) !important;
}

.faq-filter-btn.active {
  background: var(--dor-accent-color);
  border-color: var(--dor-accent-color);
  color: #ffffff;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-filter-btn.active {
  background: var(--dor-heading-accent) !important;
  border-color: var(--dor-heading-accent) !important;
  color: #121212 !important;
  font-weight: 700 !important;
}

/* FAQ Accordion Items & Question Buttons */
.faq-accordion .accordion-item {
  background-color: var(--dor-card-bg);
  border: 1px solid var(--dor-border-color);
  box-shadow: var(--dor-card-shadow);
  border-radius: 12px !important;
  overflow: hidden;
  transition: all 0.3s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-accordion .accordion-item {
  background-color: var(--dor-card-bg) !important;
  border-color: var(--dor-border-color) !important;
  box-shadow: var(--dor-card-shadow) !important;
}

.faq-accordion .accordion-item.open,
.faq-accordion .accordion-item:has(.accordion-button:not(.collapsed)) {
  border-color: var(--dor-accent-color);
  box-shadow: var(--dor-card-shadow-hover);
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-accordion .accordion-item.open,
:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-accordion .accordion-item:has(.accordion-button:not(.collapsed)) {
  border-color: var(--dor-heading-accent) !important;
}

.faq-accordion .accordion-button {
  background-color: var(--dor-card-bg);
  color: var(--dor-heading-accent);
  transition: all 0.25s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-accordion .accordion-button {
  background-color: var(--dor-card-bg) !important;
  color: var(--dor-text-primary) !important;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-accordion .accordion-button span {
  color: var(--dor-text-primary) !important;
}

.faq-accordion .accordion-button:not(.collapsed) {
  background-color: var(--dor-card-subtle-bg);
  color: var(--dor-heading-accent);
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-accordion .accordion-button:not(.collapsed) {
  background-color: var(--dor-card-elevated-bg) !important;
  color: var(--dor-heading-accent) !important;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-accordion .accordion-button:not(.collapsed) span {
  color: var(--dor-heading-accent) !important;
}

/* Question Tag */
.faq-tag {
  background-color: #e0f2fe;
  color: #0284c7;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-tag {
  background-color: var(--dor-badge-bg) !important;
  color: var(--dor-heading-accent) !important;
  border: 1px solid var(--dor-heading-accent) !important;
}

/* Expand / Collapse Chevron Icon */
.faq-icon-wrapper {
  background-color: var(--dor-card-subtle-bg);
  color: var(--dor-heading-accent);
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-icon-wrapper {
  background-color: var(--dor-card-elevated-bg) !important;
  color: var(--dor-text-secondary) !important;
}

.faq-accordion .accordion-button:not(.collapsed) .faq-icon-wrapper {
  background-color: var(--dor-accent-color);
  color: #ffffff;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-accordion .accordion-button:not(.collapsed) .faq-icon-wrapper {
  background-color: var(--dor-heading-accent) !important;
  color: #121212 !important;
}

/* Accordion Body / Answer Text */
.faq-accordion .accordion-body {
  background-color: var(--dor-card-bg);
  color: var(--dor-text-secondary);
  border-top: 1px solid var(--dor-border-subtle);
  transition: all 0.25s ease;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-accordion .accordion-body {
  background-color: var(--dor-card-bg) !important;
  color: var(--dor-text-secondary) !important;
  border-top-color: var(--dor-border-subtle) !important;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-accordion .accordion-body p,
:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-accordion .accordion-body li,
:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-accordion .accordion-body div {
  color: var(--dor-text-secondary) !important;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-accordion .accordion-body a {
  color: var(--dor-link-color) !important;
}

:is(body.dark-contrast, body.high-contrast, html.dark-contrast, html.high-contrast) .faq-accordion .accordion-body a:hover {
  color: var(--dor-link-hover) !important;
  text-decoration: underline !important;
}


/* =========================================================================
   GLOBAL STANDARDIZED TYPOGRAPHY SUITE (MAIN DOR WEBSITE)
   Strict Standards:
     --site-title-font-size: 16px   -> All titles and headings
     --site-content-font-size: 14px -> All respective content and descriptions
   Applies across Desktop, Tablet, Mobile, Light & Dark themes, and Drupal dynamic content.
   ========================================================================= */

/* 1. Base Typography & Font Family */
html,
body {
  font-family: 'Poppins', sans-serif;
  font-size: var(--site-content-font-size, 14px);
  line-height: 1.5;
}

/* 2. All Titles and Headings (16px) */
/* Native Heading Tags & Heading Utility Classes */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: 'Poppins', sans-serif;
  font-size: var(--site-title-font-size, 16px);
  line-height: 1.35;
}

/* Homepage Section Headings */
.section-header h2,
.section-header h3,
.section-header h4,
.section-title,
.sec-title,
.sec-heading h2,
.sec-heading h3,
.constx-title,
.constx-sub-title,
.campus-tour-box.Performing-Arts-box span.camp-title-box {
  font-size: var(--site-title-font-size, 16px);
}

/* Inner Page Titles & Content Headings */
.page-title,
h1.page-title,
.inner-page-banner h1,
.inner-page-banner .page-title,
.inner-page-content-box h1,
.inner-page-content-box h2,
.inner-page-content-box h3,
.inner-page-content-box h4,
.inner-page-content-box h5,
.inner-page-content-box h6,
.content-body-prose h1,
.content-body-prose h2,
.content-body-prose h3,
.content-body-prose h4,
.content-body-prose h5,
.content-body-prose h6 {
  font-size: var(--site-title-font-size, 16px);
}

/* Sidebar Headings */
.inner-page-sidebar h1,
.inner-page-sidebar h2,
.inner-page-sidebar h3,
.inner-page-sidebar h4,
.inner-page-sidebar h5,
.inner-page-sidebar h6,
.sidebar-heading,
.sidebar-title {
  font-size: var(--site-title-font-size, 16px);
}

/* Card Titles & Leadership Headings */
.card-title,
.portal-card-title,
.portal-title,
.minister-name,
.card-name,
.director-name,
.news-block .inner-box .lower-content h3,
.news-block .inner-box .lower-content h3 a,
.project-content h4,
.project-content h4 a,
.project-area .project-item .project-content .title,
.project-area .project-item .project-content .title a,
.sub-camp-title-box,
.sub-camp-title-box a,
.news-title-text h3,
.news-title-text h3 a,
.research-highlights-card-item .card-content h5,
.research-highlights-card-item .card-content h5 a,
.press-info h4,
.press-info h4 a,
.important-links-header h3,
.social-card-title,
#social-media-feed .gallery-wrapper h3,
.faq-sidebar-card h4,
.helpdesk-title,
.about-card h3,
.update-card h4,
.scheme-card h3,
.scheme-card h4,
.download-info h4,
.csr-item h4 {
  font-size: var(--site-title-font-size, 16px);
}

/* News & Event Titles / Ticker */
.news-title,
.news-list-title,
.featured-news-title,
.ticker-label,
.ticker-item,
.announcement-title,
.news-heading {
  font-size: var(--site-title-font-size, 16px);
}

/* FAQ Questions */
.accordion-button,
.faq-question,
.faq-item h4,
.faq-title {
  font-size: var(--site-title-font-size, 16px);
}

/* Document & Attachment Titles */
.inner-page-documents h3,
.document-download-card .doc-name {
  font-size: var(--site-title-font-size, 16px);
}

/* Header Brand Titles & Navigation Dropdown Section Titles */
.dept-title-hi,
.dept-title-en,
.mega-menu-heading,
.mega-menu-heading a,
.mega-menu-heading span,
.dropdown-section-title,
.dropdown-col h5 {
  font-size: var(--site-title-font-size, 16px);
}

/* Table Section Headings, Modals, Form Section Headings & Footer */
table caption,
.table-title,
.table-heading,
.gov-table-title,
.modal-title,
.modal-header h1,
.modal-header h2,
.modal-header h3,
.modal-header h4,
.modal-header h5,
.modal-header h6,
fieldset > legend,
.form-section-title,
legend,
.footer-heading,
.footer-col h4,
.footer-col h5 {
  font-size: var(--site-title-font-size, 16px);
}

/* Drupal Dynamic Content Titles */
.field--name-title,
.node__title,
.block__title,
.views-element-container h2,
.views-element-container h3,
.views-element-container h4 {
  font-size: var(--site-title-font-size, 16px);
}

/* 3. All Respective Content and Descriptive Text (14px) */
/* Paragraphs, Descriptions & Subtitles */
p,
.description,
.desc,
.section-header p,
.section-subtitle,
.page-subtitle,
.lead,
.constx-description,
.constx-description p,
.constx-text-desc,
.constx-about-desc,
.minister-role,
.card-role,
.director-designation,
.director-message-text,
.director-message-text p,
.sign-text,
.project-content p,
.camp-text-outer-box12 p,
.research-highlights-card-item .card-content p,
.social-media-card p,
.twitter-tweet p,
.faq-sidebar-card p,
.faq-helpdesk-item .item-title,
.faq-helpdesk-item .item-value,
.faq-helpdesk-item .item-value a,
.accordion-body,
.accordion-body p,
.faq-answer,
.about-card p,
.update-card p,
.scheme-card p,
.csr-item p,
.image-caption {
  font-size: var(--site-content-font-size, 14px);
  line-height: 1.55;
}

/* Inner Page & Drupal Prose Content */
.content-body-prose,
.content-body-prose p,
.content-body-prose span,
.content-body-prose div,
.inner-page-content-box,
.inner-page-content-box p,
.inner-page-content-box span,
.node__content,
.node__content p,
.field--type-text,
.field--type-text-long,
.field--type-text-with-summary,
.field__item {
  font-size: var(--site-content-font-size, 14px);
  line-height: 1.6;
}

/* Navigation Links & Menus */
.nav-menu > li > a,
.nav-dropdown a,
.dropdown-menu a,
.dropdown-item,
.mega-menu-list li a,
.mega-menu-column a {
  font-size: var(--site-content-font-size, 14px);
}

/* Breadcrumbs */
.breadcrumb,
.breadcrumb-item,
.breadcrumb-item a,
.breadcrumb-item span {
  font-size: var(--site-content-font-size, 14px);
}

/* Lists & Nested Lists */
ul:not(.pagination):not(.slider-dots) li,
ol li,
.content-body-prose ul li,
.content-body-prose ol li,
.list-group-item,
.inner-page-sidebar li,
.inner-page-sidebar a,
.important-links-list li a,
.important-links-list li a .link-text,
.footer-links li,
.footer-links a {
  font-size: var(--site-content-font-size, 14px);
}

/* Tables */
table,
.table,
.gov-table,
table th,
table td,
.table th,
.table td,
thead th,
tbody td {
  font-size: var(--site-content-font-size, 14px);
}

/* Form Controls, Labels & Helpers */
label,
.form-label,
.form-text,
.help-block,
input:not([type="checkbox"]):not([type="radio"]),
select,
textarea,
.form-control,
.form-select,
.search-bar input,
.gov-lang-select select {
  font-size: var(--site-content-font-size, 14px);
}

input::placeholder,
textarea::placeholder,
.form-control::placeholder {
  font-size: var(--site-content-font-size, 14px);
}

/* Buttons & Action Links */
button:not(.gov-font-btn):not(.font-size-btn):not(.slider-nav):not(.slider-dot):not(.ticker-btn):not(.owl-prev):not(.owl-next):not(.mobile-menu-toggle),
.btn,
.btn-primary,
.btn-primary-custom,
.btn-orange,
.btn-director-more,
.btn-scheme,
.tj-primary-btn,
.tj-primary-btn .btn-text span,
.text-btn,
.faq-sidebar-btn,
.faq-filter-btn,
.media-tab,
.social-card-link,
.project-btn,
.footer-bottom-links a,
.gov-link {
  font-size: var(--site-content-font-size, 14px);
}

/* Badges, Metadata, Dates & Supporting Information */
small,
.small,
.text-muted,
.meta,
.date,
.post-date,
.announcements-tags,
.announcements-tags span,
.press-date span.day,
.press-date span.month,
.doc-meta,
.doc-meta span,
.badge,
.new-badge,
.director-badge,
.faq-tag {
  font-size: var(--site-content-font-size, 14px);
}

/* Footer Contact Details, Address & Information */
.footer-about,
.footer-contact-info,
.footer-contact-info span,
.footer-contact-info strong,
.footer-email-link,
.footer-copyright {
  font-size: var(--site-content-font-size, 14px);
}

/* Error Messages, Validation & Notifications */
.alert,
.messages,
.messages--error,
.messages--status,
.messages--warning,
.invalid-feedback,
.valid-feedback,
.pagination .page-link {
  font-size: var(--site-content-font-size, 14px);
}

/* 4. Responsive Enforcement (Desktop, Tablet, Mobile) */
@media (max-width: 1199.98px), (max-width: 991.98px), (max-width: 767.98px), (max-width: 575.98px) {
  h1, h2, h3, h4, h5, h6,
  .h1, .h2, .h3, .h4, .h5, .h6,
  .section-header h2,
  .section-title,
  .sec-title,
  .constx-title,
  .page-title,
  h1.page-title,
  .inner-page-banner h1,
  .inner-page-banner .page-title,
  .director-name,
  .minister-name,
  .footer-heading,
  .accordion-button,
  .important-links-header h3,
  .dept-title-hi,
  .dept-title-en {
    font-size: var(--site-title-font-size, 16px) !important;
  }

  p,
  .section-header p,
  .page-subtitle,
  .constx-description,
  .constx-description p,
  .director-message-text p,
  .minister-role,
  .footer-about,
  .footer-contact-info,
  .footer-links a,
  .nav-menu > li > a,
  .nav-dropdown a,
  .mega-menu-list li a,
  .search-bar input,
  .content-body-prose,
  .content-body-prose p {
    font-size: var(--site-content-font-size, 14px) !important;
  }
}


/* =====================================================
   SUBSIDIARIES / PARTNER LOGOS (HEIGHT PRESERVED, FULL-ROW WIDTH)
   - Height: 90px (preserved)
   - Width: 100%, max-width: 100% (eliminates extra side margins)
   - Maintain original logo colors (no grayscale/desaturation)
   - Subtle card hover animation (elevation & smooth outline/shadow)
   ===================================================== */
.subsidiary-item {
  width: 100%;
  max-width: 100%;
  height: 90px;
  margin: 0 auto;
  aspect-ratio: auto;
  padding: 10px 20px;
  border-radius: 8px;
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
  filter: none;
  opacity: 1;
}

.subsidiary-item:hover {
  filter: none !important;
  opacity: 1 !important;
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(22, 47, 106, 0.12), 0 0 0 1px rgba(22, 47, 106, 0.1);
  border-color: rgba(22, 47, 106, 0.15);
}

.subsidiary-item img,
.subsidiary-item:hover img,
.subsidiary-logo img,
.subsidiary-logo:hover img {
  filter: none !important;
  opacity: 1 !important;
  max-height: 70px !important;
  max-width: 170px !important;
  width: auto;
  height: auto;
  object-fit: contain;
}



/* =====================================================
   HEADER PARTNER LINKS
   ===================================================== */
.header-partner-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  cursor: pointer;
  line-height: 0;
}


/* Services & Initiatives card hover overlay - remove blue overlay */
.project-card:hover .project-overlay {
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0) 65%) !important;
}
