/* =============================================================================
   DBIM - Digital Brand Identity Manual (Government of India)
   Global layer: tokens, typography, icons, focus, buttons, accessibility modes,
   responsive safety net, cookie consent.  Colour group: BLUE.
   Loaded after the legacy stylesheets so element-level defaults here win, while
   legacy class-level rules keep working.
   ============================================================================= */

/* ---------- 1. Tokens (Colours §2, Typography §4) ---------- */
:root {
    /* Primary palette - Blue colour group */
    --dbim-blue-1: #162F6A;
    --dbim-blue-2: #214AA8;
    --dbim-blue-3: #5279D7;
    --dbim-blue-4: #A3BBF3;
    --dbim-blue-5: #D2DFFF;
    --dbim-blue-6: #EEF3FF;

    /* Functional palette */
    --dbim-linen: #EBEAEA;
    --dbim-white: #FFFFFF;
    --dbim-brown: #150202;          /* text on light backgrounds */
    --dbim-black: #000000;
    --dbim-deep-blue: #1D0A69;
    --dbim-success: #198754;
    --dbim-warning: #FFC107;
    --dbim-error: #DC3545;
    --dbim-info: #0D6EFD;
    --dbim-grey-1: #C6C6C6;
    --dbim-grey-2: #8E8E8E;
    --dbim-grey-3: #606060;

    --dbim-font: 'Noto Sans', 'Noto Sans Devanagari', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;

    /* Type scale - website (px) */
    --dbim-h1: 36px;
    --dbim-h2: 24px;
    --dbim-h3: 20px;
    --dbim-p1: 16px;
    --dbim-p2: 14px;
    --dbim-small: 12px;

    --dbim-gutter: 16px;
    --dbim-radius: 8px;
    --dbim-focus: 0 0 0 3px #fff, 0 0 0 6px #0D6EFD;
    --dbim-bp-nav: 1100px;
}

@media (max-width: 767.98px) {
    :root {
        /* Type scale - mobile (px) */
        --dbim-h1: 24px;
        --dbim-h2: 20px;
        --dbim-h3: 16px;
        --dbim-p1: 14px;
        --dbim-p2: 12px;
        --dbim-small: 10px;
    }
}

/* ---------- 2. Base typography ---------- */
html {
    font-size: 100%;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body {
    font-family: var(--dbim-font);
    font-size: var(--dbim-p1);
    line-height: 1.5;
    color: var(--dbim-brown);
    background-color: var(--dbim-white);
    overflow-wrap: break-word;
    word-wrap: break-word;
    text-align: left;            /* DBIM 4.1.1: body text left aligned */
}

button, input, select, textarea, optgroup {
    font-family: inherit;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--dbim-font);
    line-height: 1.3;
    color: var(--dbim-blue-1);
}
h1 { font-size: var(--dbim-h1); font-weight: 700; }
h2 { font-size: var(--dbim-h2); font-weight: 600; }
h3 { font-size: var(--dbim-h3); font-weight: 600; }
h4, h5, h6 { font-size: var(--dbim-p1); font-weight: 600; }

p, li, td, th, label, dd, dt, figcaption {
    line-height: 1.5;
}
small, .small { font-size: var(--dbim-small); }

a { color: var(--dbim-blue-2); }
a:hover { color: var(--dbim-blue-1); }
a:not([class]):hover { text-decoration: underline; }

/* Visible, consistent keyboard focus (replaces legacy orange outline) */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
    outline: 3px solid var(--dbim-info);
    outline-offset: 2px;
}
a:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline: none; }

/* ---------- 3. Responsive safety net (all pages) ---------- */
img, video, canvas, svg { max-width: 100%; }
iframe, embed, object { max-width: 100%; }
img { height: auto; }
pre { max-width: 100%; overflow: auto; }
.dbim-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.dbim-table-wrap > table { margin-bottom: 0; }
table { max-width: 100%; }

body { max-width: 100%; overflow-x: hidden; }

/* Reduced motion: no smooth scrolling or hover transitions. Moving content (marquees, slider)
   keeps its default 'play' state; users stop it with the visible pause controls. */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    a, button, .dbim-btn, .dbim-opt, .dbim-tool { transition-duration: .01ms !important; }
}

/* ---------- 4. Utilities ---------- */
.dbim-sr {
    position: absolute !important;
    width: 1px; height: 1px;
    margin: -1px; padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.dbim-skip {
    position: fixed;
    left: 16px;
    top: -80px;
    z-index: 5000;
    padding: 10px 18px;
    background: var(--dbim-blue-1);
    color: #fff;
    font-weight: 600;
    border-radius: 0 0 var(--dbim-radius) var(--dbim-radius);
    text-decoration: none;
    transition: top .15s;
}
.dbim-skip:focus { top: 0; color: #fff; }

/* ---------- 5. DBIM icon set (SVGs recoloured through currentColor) ---------- */
.dbim-ico {
    display: inline-block;
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
    background-color: currentColor;
    -webkit-mask: var(--dbim-ico) center / contain no-repeat;
    mask: var(--dbim-ico) center / contain no-repeat;
    vertical-align: middle;
}
.dbim-ico--sm { width: 18px; height: 18px; }
.dbim-ico--accessibility   { --dbim-ico: url('../images/dbim_icons/accessibility.svg'); }
.dbim-ico--chevron-right   { --dbim-ico: url('../images/dbim_icons/chevron-right.svg'); }
.dbim-ico--chevron-left    { --dbim-ico: url('../images/dbim_icons/chevron-left.svg'); }
.dbim-ico--arrow-left      { --dbim-ico: url('../images/dbim_icons/arrow-left.svg'); }
.dbim-ico--dark-contrast   { --dbim-ico: url('../images/dbim_icons/dark-contrast.svg'); }
.dbim-ico--dark-mode       { --dbim-ico: url('../images/dbim_icons/dark-mode.svg'); }
.dbim-ico--light-mode      { --dbim-ico: url('../images/dbim_icons/light-mode.svg'); }
.dbim-ico--external        { --dbim-ico: url('../images/dbim_icons/external-link.svg'); width: 16px; height: 16px; margin-left: 4px; }
.dbim-ico--open-in-new     { --dbim-ico: url('../images/dbim_icons/open-in-new.svg'); }
.dbim-ico--facebook        { --dbim-ico: url('../images/dbim_icons/facebook.svg'); }
.dbim-ico--instagram       { --dbim-ico: url('../images/dbim_icons/instagram.svg'); }
.dbim-ico--whatsapp        { --dbim-ico: url('../images/dbim_icons/whatsapp.svg'); }
.dbim-ico--youtube         { --dbim-ico: url('../images/dbim_icons/youtube.svg'); }
.dbim-ico--x               { --dbim-ico: url('../images/dbim_icons/x.svg'); }
.dbim-ico--format-clear    { --dbim-ico: url('../images/dbim_icons/format-clear.svg'); }
.dbim-ico--hide-image      { --dbim-ico: url('../images/dbim_icons/hide-image.svg'); }
.dbim-ico--highlight-links { --dbim-ico: url('../images/dbim_icons/highlight-links.svg'); }
.dbim-ico--invert          { --dbim-ico: url('../images/dbim_icons/invert.svg'); }
.dbim-ico--language        { --dbim-ico: url('../images/dbim_icons/language.svg'); }
.dbim-ico--menu            { --dbim-ico: url('../images/dbim_icons/menu.svg'); }
.dbim-ico--pause           { --dbim-ico: url('../images/dbim_icons/line/pause.svg'); }
.dbim-ico--play            { --dbim-ico: url('../images/dbim_icons/line/play_arrow.svg'); }
.dbim-ico--pdf             { --dbim-ico: url('../images/dbim_icons/pdf.svg'); width: 16px; height: 16px; margin-left: 4px; }
.dbim-ico--saturation      { --dbim-ico: url('../images/dbim_icons/saturation.svg'); }
.dbim-ico--search          { --dbim-ico: url('../images/dbim_icons/search.svg'); }
.dbim-ico--skip            { --dbim-ico: url('../images/dbim_icons/skip-to-content.svg'); }
.dbim-ico--speech          { --dbim-ico: url('../images/dbim_icons/speech.svg'); }
.dbim-ico--text-decrease   { --dbim-ico: url('../images/dbim_icons/text-size-decrease.svg'); }
.dbim-ico--text-increase   { --dbim-ico: url('../images/dbim_icons/text-size-increase.svg'); }
.dbim-ico--monitor         { --dbim-ico: url('../images/dbim_icons/monitor.svg'); }
.dbim-ico--cursor          { --dbim-ico: url('../images/dbim_icons/default-cursor.svg'); }
.dbim-ico--calendar        { --dbim-ico: url('../images/dbim_icons/calendar-month.svg'); }

/* ---------- 6. CTA buttons (DBIM 4.5) ---------- */
.dbim-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    padding: 8px 20px;
    font-family: var(--dbim-font);
    font-size: var(--dbim-p1);
    font-weight: 600;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: .02em;
    color: var(--dbim-blue-1);
    background: var(--dbim-blue-5);
    border: 1px solid var(--dbim-blue-1);
    border-radius: 4px;
    cursor: pointer;
    text-decoration: none;
    transition: background-color .2s, color .2s, box-shadow .2s;
}
.dbim-btn:hover { background: var(--dbim-blue-1); color: #fff; text-decoration: none; }
.dbim-btn:focus-visible { outline: none; box-shadow: var(--dbim-focus); }
.dbim-btn[disabled], .dbim-btn.disabled, .dbim-btn[aria-disabled="true"] {
    background: var(--dbim-linen); color: var(--dbim-grey-3); border-color: var(--dbim-grey-1);
    cursor: not-allowed; pointer-events: none;
}
.dbim-btn--primary { background: var(--dbim-blue-1); color: #fff; }
.dbim-btn--primary:hover { background: var(--dbim-blue-2); border-color: var(--dbim-blue-2); }

/* Bootstrap primary buttons follow the Blue group */
.btn-primary {
    --bs-btn-bg: var(--dbim-blue-1);
    --bs-btn-border-color: var(--dbim-blue-1);
    --bs-btn-hover-bg: var(--dbim-blue-2);
    --bs-btn-hover-border-color: var(--dbim-blue-2);
    --bs-btn-active-bg: var(--dbim-blue-2);
    --bs-btn-active-border-color: var(--dbim-blue-2);
    --bs-btn-disabled-bg: var(--dbim-grey-2);
    --bs-btn-disabled-border-color: var(--dbim-grey-2);
}
.btn-outline-primary {
    --bs-btn-color: var(--dbim-blue-1);
    --bs-btn-border-color: var(--dbim-blue-1);
    --bs-btn-hover-bg: var(--dbim-blue-1);
    --bs-btn-hover-border-color: var(--dbim-blue-1);
}

/* ---------- 7. Accessibility modes (toggled from the header panel) ---------- */
html.dbim-fs--1 body { zoom: .9; }
html.dbim-fs-1 body { zoom: 1.12; }
html.dbim-fs-2 body { zoom: 1.25; }
html.dbim-fs-3 body { zoom: 1.4; }

html.dbim-gray { filter: grayscale(1); }
html.dbim-invert { filter: invert(1) hue-rotate(180deg); }
html.dbim-gray.dbim-invert { filter: invert(1) hue-rotate(180deg) grayscale(1); }
html.dbim-invert img, html.dbim-invert video, html.dbim-invert iframe,
html.dbim-invert picture {
    filter: invert(1) hue-rotate(180deg);
}

html.dbim-links a:not(.dbim-btn):not(.dbim-nav__link) {
    background-color: #FFF59D !important;
    color: #000 !important;
    text-decoration: underline !important;
    outline: 1px dashed #000;
    outline-offset: 1px;
}
html.dbim-links .dbim-nav__link { text-decoration: underline !important; }

html.dbim-no-img img:not(.dbim-keep),
html.dbim-no-img video { visibility: hidden !important; }
html.dbim-no-img [style*="background-image"] { background-image: none !important; }

html.dbim-paused *, html.dbim-paused *::before, html.dbim-paused *::after {
    animation: none !important;
    transition: none !important;
}

/* Soft dark theme */
html.dbim-theme-dark body,
html.dbim-theme-dark body *:not(.dbim-ico):not(img):not(svg):not(video):not(iframe):not(option) {
    background-color: #0B1226 !important;
    color: #EEF2FF !important;
    border-color: #3B4A7A !important;
    box-shadow: none !important;
}
html.dbim-theme-dark a:not(.dbim-btn) { color: var(--dbim-blue-4) !important; }
html.dbim-theme-dark input, html.dbim-theme-dark textarea, html.dbim-theme-dark select {
    background-color: #131E3F !important;
}
html.dbim-theme-dark .dbim-ico { background-color: currentColor !important; }

/* High contrast theme (black / yellow / white) */
html.dbim-theme-contrast body,
html.dbim-theme-contrast body *:not(.dbim-ico):not(img):not(svg):not(video):not(iframe):not(option) {
    background-color: #000 !important;
    color: #fff !important;
    border-color: #fff !important;
    box-shadow: none !important;
    text-shadow: none !important;
}
html.dbim-theme-contrast a:not(.dbim-btn),
html.dbim-theme-contrast a:not(.dbim-btn) * { color: #FFEB3B !important; }
html.dbim-theme-contrast h1, html.dbim-theme-contrast h2, html.dbim-theme-contrast h3,
html.dbim-theme-contrast h4, html.dbim-theme-contrast h5, html.dbim-theme-contrast h6 { color: #fff !important; }
html.dbim-theme-contrast .dbim-ico { background-color: currentColor !important; }
html.dbim-theme-contrast :focus-visible { outline-color: #FFEB3B !important; }

/* Google Translate: keep the page unshifted and hide its banner */
body { top: 0 !important; }
.skiptranslate iframe, iframe.skiptranslate, .goog-te-banner-frame { display: none !important; }
#goog-gt-tt, .goog-te-balloon-frame { display: none !important; }
.goog-text-highlight { background: none !important; box-shadow: none !important; }

/* ---------- 8. Cookie consent banner (DBIM 7.6.1) ---------- */
.dbim-consent {
    position: fixed;
    left: 0; right: 0; bottom: 0;
    z-index: 1900;               /* below the site notice dialog (2000) and the nav drawer (3000) */
    background: var(--dbim-white);
    color: var(--dbim-brown);
    border-top: 4px solid var(--dbim-blue-1);
    box-shadow: 0 -6px 24px rgba(21, 2, 2, .18);
    font-family: var(--dbim-font);
}
.dbim-consent[hidden] { display: none; }
.dbim-consent__inner {
    max-width: 1320px;
    margin: 0 auto;
    padding: 16px var(--dbim-gutter);
    display: flex;
    flex-wrap: wrap;
    gap: 16px 24px;
    align-items: center;
    justify-content: space-between;
}
.dbim-consent__text { flex: 1 1 420px; font-size: var(--dbim-p2); margin: 0; }
.dbim-consent__text a { font-weight: 600; }
.dbim-consent__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.dbim-consent__actions .dbim-btn { min-height: 40px; font-size: var(--dbim-p2); padding: 6px 16px; }
.dbim-consent__custom {
    flex: 1 1 100%;
    border-top: 1px solid var(--dbim-grey-1);
    padding-top: 12px;
    display: grid;
    gap: 8px;
    font-size: var(--dbim-p2);
}
.dbim-consent__custom[hidden] { display: none; }
.dbim-consent__custom label { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.dbim-consent__custom input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--dbim-blue-1); }
.dbim-consent__custom .dbim-btn { justify-self: start; }
@media (max-width: 575.98px) {
    .dbim-consent__actions { width: 100%; }
    .dbim-consent__actions .dbim-btn { flex: 1 1 auto; }
}
html.dbim-theme-contrast .dbim-consent, html.dbim-theme-dark .dbim-consent { border-top-width: 4px; }

/* Optical size normalisation: the supplied SVGs fill their boxes differently,
   so scale the outliers to match the common ~75% footprint. */
.dbim-ico--speech { -webkit-mask-size: 98%; mask-size: 98%; }
.dbim-ico--monitor { -webkit-mask-size: 92%; mask-size: 92%; }
.dbim-ico--skip { -webkit-mask-size: 84%; mask-size: 84%; }
.dbim-ico--language, .dbim-ico--accessibility { -webkit-mask-size: 96%; mask-size: 96%; }
.dbim-ico--dark-contrast { -webkit-mask-size: 92%; mask-size: 92%; }
.dbim-ico--highlight-links { -webkit-mask-size: 100%; mask-size: 100%; }
