/**
 * DBIM Level-1 audit fixes (Levithan report LTPL/DoSJE/01, Oct 2026).
 *
 * Loaded after common.css / dbim-typography.css / dbim-tables.css so these
 * overrides win without editing the original rules. Each block names the
 * audit finding it closes.
 *
 * DBIM blue colour group: key #0373DF, darkest #014B92, lightest #E5EFF9.
 * Functional: Liberty Green #198754.
 */

:root {
    --dbim-key: #0373DF;
    --dbim-key-dark: #014B92;
    --dbim-key-light: #E5EFF9;
    --dbim-green: #198754;
    --dbim-muted: #4B5563;   /* 7.5:1 on white, 6.4:1 on #E5EFF9 */
}

/* 8.1 .btn-success (#2E7D32) → Liberty Green. The Customizer's Additional
   CSS redefines :root{--success-color} after this file; html:root outranks it. */
html:root {
    --success-color: var(--dbim-green);
    /* Body text: Deep Earthy Brown (DBIM functional palette). The Elementor
       kit's TextDark colour is changed to match by mosje-dbim-remediation. */
    --text-dark: #150202;
    --bs-body-color: #150202;
    /* Vacancy/tender card headers and info badges used peach #FFEDD5. */
    --seconday-50: var(--dbim-key-light);
}

/* ------------------------------------------------------------------
 * 8.5  Noto Sans everywhere: neutralise font-family pasted from Word.
 * Only elements that carry an inline font-family are touched, so icon
 * fonts (FontAwesome <i> inside content) keep their own family.
 * ------------------------------------------------------------------ */
.elementor-widget-text-editor [style*="font-family"],
.elementor-widget-html [style*="font-family"],
.elementor-widget-heading [style*="font-family"],
.entry-content [style*="font-family"] {
    font-family: inherit !important;
}

/* ------------------------------------------------------------------
 * 8.6  Type scale. Template page titles are <h1 class="h3|h4">, which the
 * .h3/.h4 utility rules shrink to 20px; an H1 must use the H1 size.
 * Elementor heading widgets sized per widget (28px, 18px, 16px…) fall
 * back to the scale for H1 and H2. h4–h6 keep their widget sizes (the
 * homepage statistics figures are 40px h4s).
 * ------------------------------------------------------------------ */
h1.h3, h1.h4,
body[class*="elementor-kit-"] h1.h3,
body[class*="elementor-kit-"] h1.h4,
body[class*="elementor-kit-"] h1.elementor-heading-title {
    font-size: var(--dbim-fs-h1) !important;
    line-height: var(--dbim-lh-heading) !important;
}

/* Heading widgets given .dbim-keep-size (e.g. the slim homepage "Latest
   Updates" bar) keep their own size. */
body[class*="elementor-kit-"] .elementor-widget-heading:not(.dbim-keep-size) h2.elementor-heading-title {
    font-size: var(--dbim-fs-h2) !important;
    line-height: var(--dbim-lh-heading) !important;
}

/* ------------------------------------------------------------------
 * 8.9  Contrast (WCAG 2.1 AA 4.5:1).
 * Key blue #0373DF on light tints (#F8F9FA, #F9FAFB, #E5EFF9) is 4.0–4.4:1,
 * so primary-coloured text, links and outline buttons use the darkest
 * shade of the same colour group.
 * ------------------------------------------------------------------ */
/* common.css and the Customizer's Additional CSS (printed after every
   stylesheet) set #0373DF !important; `html body` outranks both. */
.text-primary,
html body a.text-primary,
html body a.text-primary:hover,
html body a.text-primary:focus,
html .page-template .text-primary,
html body.page-template a.text-primary,
html body.page-template a.text-primary:hover,
html body .link-primary,
html body .link-primary:hover,
html body .link-primary:focus {
    color: var(--dbim-key-dark) !important;
}

.btn-link,
.page .btn-link,
.single .btn-link,
.page .btn.btn-link,
.single .btn.btn-link,
html .page-template .btn-link,
html .page-template .btn.btn-link {
    --bs-btn-color: var(--dbim-key-dark) !important;
    --bs-btn-hover-color: var(--dbim-key-dark) !important;
    color: var(--dbim-key-dark) !important;
}

.btn-outline-primary,
.single .btn-outline-primary,
.page .btn-outline-primary {
    --bs-btn-color: var(--dbim-key-dark) !important;
    --bs-btn-border-color: var(--dbim-key-dark) !important;
    --bs-btn-hover-color: var(--dbim-key-dark) !important;
    --bs-btn-hover-border-color: var(--dbim-key-dark) !important;
    --bs-btn-active-color: var(--dbim-key-dark) !important;
    --bs-btn-active-border-color: var(--dbim-key-dark) !important;
}

.btn-elementor-primary-outline .elementor-button {
    color: var(--dbim-key-dark);
    border-color: var(--dbim-key-dark);
}

/* Search highlight (#0373DF on #FFF3CD is 4.2:1) */
mark,
.search-list mark {
    color: var(--dbim-key-dark);
}

/* UX4G .text-muted / --bs-gray is #938BB6 (3.2:1 on white) */
.text-muted,
.form-text,
caption {
    color: var(--dbim-muted) !important;
}

/* /samavesh-citizen-portals/ portal names (#FF671F, 2.9:1) */
.portals-links-sec strong {
    color: var(--dbim-key-dark) !important;
}
/* …and their saffron card borders */
.portals-links-sec .elementor-icon-list-item > a,
.home-org-items-sec.portals-links-sec .elementor-icon-list-item > a {
    border-color: var(--dbim-key) !important;
}

/* /dashboard/ (inline styles in the page's HTML widget) */
.mosje-cat-metric-label,
.mosje-trend-footnote {
    color: var(--dbim-muted) !important;
}
.mosje-tab:not(.active):not([aria-selected="true"]) {
    color: var(--dbim-muted) !important;
}
.mosje-chart-card-sub {
    color: #FFFFFF !important;
}
/* Category figures: amber #BB772B (3.2:1) and greens #2E7D32 / #2BA84A
   (3.1–4.5:1) on their tinted cards → darker shades of the same hues. */
.mosje-obc .mosje-cat-metric-value,
.mosje-topclass-num {
    color: #8C5A1E !important;   /* 5.2:1 on #FDF0DC */
}
.mosje-shreyas .mosje-cat-metric-value,
.mosje-hostel-num {
    color: #146C43 !important;   /* 5.6:1 on #E7F3E9 */
}

/* ------------------------------------------------------------------
 * 8.1  Off-palette colours (theme-level).
 * --success-color (#2E7D32 → Liberty Green) is set in :root above.
 * BETA tag #FFD323 → key colour group.
 * ------------------------------------------------------------------ */
.beta-tag {
    background: var(--dbim-key-dark);
    color: #FFFFFF;
}

/* Cookie banner "Accept All" (mosje-cookie-consent hard-codes #2E7D32 with
   !important): primary CTA in the key colour. */
html body #mcc-btn-accept-all,
html body #mcc-page-btn-accept-all {
    background-color: var(--dbim-key) !important;
    border-color: var(--dbim-key) !important;
    color: #FFFFFF !important;
}
html body #mcc-btn-accept-all:hover,
html body #mcc-btn-accept-all:focus,
html body #mcc-page-btn-accept-all:hover,
html body #mcc-page-btn-accept-all:focus {
    background-color: var(--dbim-key-dark) !important;
    border-color: var(--dbim-key-dark) !important;
}
html body .mcc-card-essential {
    border-color: var(--dbim-green) !important;
}

/* ------------------------------------------------------------------
 * 8.3  Social media cards: key colour instead of brand colours.
 * ------------------------------------------------------------------ */
.fb-widget .social-card-header,
.twitter-widget .social-card-header,
.instagram-widget .social-card-header,
.youtube-widget .social-card-header {
    background: var(--dbim-key-light);
    color: var(--dbim-key-dark);
    border-bottom-color: #C6DCF9;
}
.social-widgets-row .fb-widget a.social-card-header,
.social-widgets-row .twitter-widget a.social-card-header,
.social-widgets-row .instagram-widget a.social-card-header,
.social-widgets-row .youtube-widget a.social-card-header {
    color: var(--dbim-key-dark);
}
/* Brand-coloured SVGs from mosje_social_icon(): CSS fill beats the fill
   attribute. The YouTube play triangle (fill="#fff") stays white. */
[data-social-widgets] svg[fill="#1877F2"],
[data-social-widgets] svg[fill="#000"],
[data-social-widgets] path[fill^="url(#ig-grad"],
[data-social-widgets] path[fill="#FF0000"] {
    fill: var(--dbim-key-dark);
}
.fb-follow-btn,
.ig-follow-btn,
.yt-follow-btn {
    background: var(--dbim-key-dark);
}
.fb-follow-btn:hover,
.ig-follow-btn:hover,
.yt-follow-btn:hover {
    background: var(--dbim-key);
    opacity: 1;
}

/* ------------------------------------------------------------------
 * 8.4  Icon sizes: icon boxes on the 24px grid, natural aspect ratio.
 * ------------------------------------------------------------------ */
/* Header: flag and open-in-new icons were stretched by the flex anchor. */
a.d-flex > img[src*="Indian-Flag"],
a.d-flex > img[src*="open_in_new_icon"] {
    align-self: center;
    height: auto;
}

/* Mega-menu dropdown chevrons (glyph stays 14px, box is 24px). */
.e-n-menu-dropdown-icon > span {
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Icon-list icons. */
.elementor-icon-list-items .elementor-icon-list-icon {
    min-width: 24px;
    min-height: 24px;
    justify-content: center;
    align-items: center;
}

/* ------------------------------------------------------------------
 * 8.10 Button sizes: three standard sizes.
 *   sm 32px (5px 16px), md 40px (9px 16px), lg 48px (11px 18px)
 * ------------------------------------------------------------------ */
body .btn-sm,
body .btn-group-sm > .btn,
html .page-template .btn-sm {
    --bs-btn-padding-y: 5px;
    --bs-btn-padding-x: 16px;
    padding: 5px 16px;
}
html .page-template .btn-md {
    padding: 9px 16px;
}
/* Nested tabs (homepage Our Offerings / Our Organisations). */
.hello-elementor-default.elementor-default .elementor-widget-n-tabs {
    --n-tabs-title-padding-inline-start: 16px;
    --n-tabs-title-padding-inline-end: 16px;
}

/* ------------------------------------------------------------------
 * 8.11 Visible hover state on every clickable item.
 * style.css forced `background:none!important` on inactive tab hover;
 * this restores a tint (same selectors, later in the cascade).
 * ------------------------------------------------------------------ */
html .elementor .elementor-element.elementor-widget-n-tabs:not(:has(>.elementor-widget-container))>.e-n-tabs[data-touch-mode=false]>.e-n-tabs-heading .e-n-tab-title[aria-selected=false]:hover,
html .elementor .elementor-element.elementor-widget-n-tabs>.elementor-widget-container>.e-n-tabs[data-touch-mode=false]>.e-n-tabs-heading .e-n-tab-title[aria-selected=false]:hover {
    background: rgba(3, 115, 223, 0.12) !important;
    color: var(--dbim-key-dark) !important;
}

.btn-light-primary-2:hover {
    --bs-btn-hover-bg: var(--dbim-key-light);
    --bs-btn-hover-color: var(--dbim-key-dark);
    background-color: var(--dbim-key-light);
    color: var(--dbim-key-dark);
}

/* Linked heading text (e.g. the homepage statistics band) */
.elementor-widget-heading .elementor-heading-title a:hover,
.elementor-widget-heading .elementor-heading-title a:focus-visible {
    text-decoration: underline;
    text-underline-offset: 3px;
}
.elementor-widget-text-editor p > a:only-child:hover {
    text-decoration: underline;
}

/* Footer logo link */
.footer-main-logo a {
    transition: opacity 0.2s;
}
.footer-main-logo a:hover,
.footer-main-logo a:focus-visible {
    opacity: 0.85;
}
.footer-main-logo a:hover span,
.footer-main-logo a:focus-visible span {
    text-decoration: underline;
}

/* 8.19 Heading widgets retagged to div/p by mosje-dbim-remediation (they were
   not real headings) keep the weight and line height the hN tag gave them;
   widget-level typography still wins. */
.dbim-was-heading .elementor-heading-title {
    font-weight: 500;
    line-height: 1.25;
}

/* 8.19 Homepage "Latest Updates" slider: item type labels were <h6>; now
   <p class="update-slide-type">, same look. */
.update-slide-content .update-slide-type {
    font-size: var(--dbim-fs-h6);
    font-weight: 500;
    line-height: var(--dbim-lh-heading);
}

/* ------------------------------------------------------------------
 * 8.19 Visually hidden page heading (front page H1).
 * ------------------------------------------------------------------ */
.dbim-sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* ------------------------------------------------------------------
 * 8.21 Hon'ble Prime Minister quote ([pm_quote], DBIM Annexure A.4).
 * ------------------------------------------------------------------ */
/* The section has no padding of its own, so it takes no space while empty. */
.dbim-pm-quote-section:has(.dbim-pm-quote) {
    padding-top: 32px;
    padding-bottom: 8px;
}
.dbim-pm-quote {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 24px;
    background: var(--dbim-key-light);
    border-radius: 12px;
}
.dbim-pm-quote__img {
    flex: 0 0 auto;
    width: 160px;
    height: auto;
}
.dbim-pm-quote__body {
    margin: 0;
}
.dbim-pm-quote__text {
    margin: 0 0 12px;
    font-size: var(--dbim-fs-h3);
    line-height: 1.5;
    font-style: italic;
    color: var(--dbim-key-dark);
}
.dbim-pm-quote__cite {
    font-style: normal;
    font-weight: 600;
    font-size: var(--dbim-fs-p2);
    color: #1F2937;
}
@media (max-width: 767px) {
    .dbim-pm-quote {
        flex-direction: column;
        text-align: center;
    }
    .dbim-pm-quote__img {
        width: 120px;
    }
}
