:root { --page-ink: var(--color-navy); --page-surface: #f4fafc; --page-line: rgba(7, 50, 74, .14); }

.detail-page { background: #fbfcfb; }
.detail-page main { overflow: hidden; }
.page-shell { width: min(calc(100% - (2 * var(--page-gutter))), var(--container-width)); margin-inline: auto; }
.page-hero { position: relative; min-height: 480px; display: grid; align-items: end; padding: clamp(74px, 9vw, 132px) var(--page-gutter) 66px; background: linear-gradient(110deg, #f8f6f0 0%, #eef8fa 62%, #d9f0f6 100%); }
.page-hero::after { position: absolute; right: -12%; bottom: -45%; width: 62vw; max-width: 820px; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(0, 143, 213, .18), transparent 65%); content: ""; pointer-events: none; }
.page-hero .page-shell { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(260px, .65fr); align-items: end; gap: 60px; }
.budget-hero { min-height: clamp(600px, calc(100vh - 70px), 790px); min-height: clamp(600px, calc(100svh - 70px), 790px); min-height: clamp(600px, calc(100dvh - 70px), 790px); align-items: center; padding-top: clamp(72px, 8vw, 116px); padding-bottom: clamp(56px, 7vw, 86px); isolation: isolate; background: #eaf6fa; }
.budget-hero::after { display: none; }
.budget-hero-backdrop { position: absolute; inset: 0; z-index: -1; background-image: linear-gradient(90deg, rgba(248,246,240,.93) 0%, rgba(248,246,240,.82) 27%, rgba(233,247,251,.26) 56%, rgba(233,247,251,.04) 100%), var(--cms-budget-hero-desktop, url("../assets/kabindra-brand/budget-hero-landscape-v3.webp")); background-position: center; background-size: cover; }
.budget-hero .page-shell { width: min(calc(100% - (2 * var(--page-gutter))), 1320px); grid-template-columns: minmax(0, .88fr) minmax(600px, 1.12fr); align-items: center; gap: clamp(34px, 3.5vw, 52px); }
.budget-hero-copy { max-width: 630px; }
.page-hero.budget-hero h1 { max-width: 640px; font-family: "Inter", Arial, sans-serif; font-size: clamp(62px, 6.5vw, 96px); font-weight: 800; letter-spacing: -.045em; line-height: 1.02; word-spacing: .015em; text-wrap: pretty; }
.budget-hero-copy > p:last-child { max-width: 550px; margin-top: 28px; font-size: 17px; }
.budget-hero-quote { max-width: 490px; margin: 26px 0 0; padding: 14px 0 0 18px; border-left: 2px solid var(--color-blue); }
.budget-hero-quote-text { margin: 0; color: var(--page-ink); font-family: "Inter Tight", Inter, sans-serif; font-size: clamp(18px, 1.7vw, 24px); font-weight: 600; letter-spacing: -.025em; line-height: 1.18; }
.budget-hero-quote-author { display: block; margin-top: 8px; color: var(--color-accent); font-size: 11px; font-style: normal; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.budget-hero-summary-grid { width: 100%; display: grid; grid-template-columns: 1fr; gap: 12px; align-items: stretch; }
.budget-hero-card { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: visible; isolation: isolate; width: 100%; justify-self: stretch; padding: 16px 18px 14px; border: 1px solid rgba(255,255,255,.9); border-radius: 22px; background: rgba(250,253,254,.68); box-shadow: 0 22px 48px rgba(7,50,74,.13), 0 0 26px rgba(0,143,213,.14), inset 0 1px rgba(255,255,255,.86); backdrop-filter: blur(16px) saturate(125%); }
.budget-hero-card::after { position: absolute; z-index: -1; inset: -10px; border-radius: inherit; background: radial-gradient(ellipse at center, rgba(0,143,213,.18) 0%, rgba(124,211,239,.1) 42%, transparent 72%); filter: blur(12px); opacity: .72; content: ""; pointer-events: none; }
.budget-hero-card > * { position: relative; z-index: 1; }
.budget-hero-card-heading { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 3px 14px; min-height: 0; padding-bottom: 10px; border-bottom: 1px solid rgba(7,50,74,.12); }
.budget-hero-card-heading .budget-source-status { grid-column: 1 / -1; }
.budget-hero-card:not(.budget-hero-card-central) .budget-hero-card-heading { border-top: 3px solid var(--color-blue); padding-top: 9px; }
.budget-hero-card-central .budget-hero-card-heading { border-top: 3px solid var(--color-navy); padding-top: 9px; }
.budget-source-name { color: var(--page-ink); font-family: "Inter", Arial, sans-serif; font-size: 14px; font-weight: 800; letter-spacing: -.02em; line-height: 1.2; }
.budget-source-meta { color: var(--color-body); font-size: 10px; }
.budget-source-status { color: var(--color-blue); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.budget-hero-card-central.is-provisional .budget-source-status { color: #805f00; }
.budget-provisional-card-note { grid-column: 1 / -1; display: flex; align-items: center; gap: 7px; margin: 9px 0 0; padding: 8px 10px; border-radius: 10px; background: #fff7d9; color: #634c00; font-size: 10px; font-weight: 700; line-height: 1.35; }
.budget-provisional-card-note i { flex: 0 0 auto; font-size: 16px; }
.budget-hero-card-row { position: relative; display: grid; grid-template-columns: 40px minmax(0, 1fr); align-items: center; gap: 9px; min-height: 94px; padding: 10px 12px; border-right: 1px solid rgba(7,50,74,.12); border-bottom: 0; }
.budget-hero-card-row:nth-last-child(2) { border-right: 0; }
.budget-hero-card-row > div { min-width: 0; }
.budget-hero-card-row > div > span { display: block; color: var(--page-ink); font-size: 14px; font-weight: 700; }
.budget-hero-card-row strong { display: block; margin-top: 4px; overflow-wrap: normal; word-break: normal; color: var(--page-ink); font-family: "Inter Tight", Inter, sans-serif; font-size: clamp(18px, 1.35vw, 22px); font-variant-numeric: tabular-nums; letter-spacing: -.045em; line-height: 1.02; }
.budget-hero-card-row small { display: block; margin-top: 5px; color: var(--color-body); font-size: 10px; line-height: 1.25; }
.budget-hero-icon { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid rgba(0,143,213,.14); border-radius: 50%; color: var(--color-blue); background: rgba(235,246,255,.66); font-size: 19px; }
.budget-hero-icon.is-green { color: #168c79; background: rgba(223,247,239,.7); }
.budget-hero-map-icon { display: none; }
.budget-rupee-symbol { color: inherit; font-family: Inter, sans-serif; font-size: 21px; font-weight: 700; line-height: 1; }
.budget-hero-card-foot { grid-column: 1 / -1; display: flex; align-items: center; flex-wrap: wrap; gap: 5px 7px; padding-top: 10px; color: var(--color-blue); font-size: 10px; }
.budget-hero-card-foot i { font-size: 17px; }
.budget-hero-card-foot b { color: var(--color-body); font-weight: 600; }
.budget-hero-source-switch { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 2px 0 16px; }
.budget-hero-source-button { min-width: 0; display: grid; gap: 4px; padding: 10px 12px; border: 1px solid rgba(7,50,74,.14); color: var(--page-ink); background: rgba(255,255,255,.52); cursor: pointer; text-align: left; }
.budget-hero-source-button strong { font-family: Inter, sans-serif; font-size: 11px; letter-spacing: .01em; line-height: 1.2; }
.budget-hero-source-button small { color: var(--color-muted); font-size: 9px; line-height: 1.2; }
.budget-hero-source-button.is-active, .budget-hero-source-button:hover { border-color: var(--color-blue); background: rgba(232,247,253,.86); }
.budget-hero-source-button.is-active small { color: var(--color-blue); }
.page-kicker { margin: 0 0 16px; color: var(--color-accent); font-size: 11px; font-weight: 800; letter-spacing: .16em; line-height: 1.2; text-transform: uppercase; }
.page-hero h1 { max-width: 760px; margin: 0; color: var(--page-ink); font-family: "Inter Tight", Inter, sans-serif; font-size: clamp(54px, 7vw, 100px); font-weight: 800; letter-spacing: -.075em; line-height: .9; text-wrap: pretty; }
.page-hero h1 em { color: var(--color-accent); font-style: normal; }
.page-hero-copy > p:last-child { max-width: 610px; margin: 24px 0 0; color: var(--color-body); font-size: 17px; line-height: 1.6; }
.page-hero-note { max-width: 320px; padding-top: 16px; border-top: 1px solid var(--page-line); color: var(--color-body); font-size: 13px; line-height: 1.6; }
.page-hero-note strong { display: block; margin-bottom: 8px; color: var(--page-ink); font-family: "Inter Tight", Inter, sans-serif; font-size: 20px; letter-spacing: -.035em; }
.page-section { padding: clamp(54px, 7vw, 100px) var(--page-gutter); }
.page-section.tinted { background: var(--page-surface); }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 30px; }
.section-head h2 { max-width: 720px; margin: 0; color: var(--page-ink); font-family: "Inter Tight", Inter, sans-serif; font-size: clamp(38px, 5vw, 70px); letter-spacing: -.07em; line-height: .94; text-wrap: pretty; }
.section-head p { max-width: 350px; margin: 0 0 5px; color: var(--color-body); font-size: 14px; line-height: 1.55; }
.page-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.page-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.info-panel { min-height: 220px; padding: 28px; border: 1px solid var(--page-line); background: #fff; }
.info-panel h3 { margin: 0 0 12px; color: var(--page-ink); font-family: "Inter Tight", Inter, sans-serif; font-size: 25px; letter-spacing: -.05em; line-height: 1; }
.info-panel p { margin: 0; color: var(--color-body); font-size: 14px; line-height: 1.6; }
.map-panel { min-height: 380px; position: relative; overflow: hidden; display: flex; align-items: end; padding: 28px; background: linear-gradient(150deg, #0a3b57, #007db9); color: #fff; }
.map-panel::before { position: absolute; inset: 0; background-image: linear-gradient(22deg, transparent 48%, rgba(255,255,255,.12) 49%, transparent 50%), linear-gradient(74deg, transparent 48%, rgba(255,255,255,.1) 49%, transparent 50%); background-size: 72px 72px, 96px 96px; content: ""; opacity: .42; }
.map-panel-content { position: relative; z-index: 1; max-width: 320px; }
.map-panel i { margin-bottom: 22px; display: block; font-size: 38px; }
.map-panel h3 { margin: 0 0 10px; color: #fff; font-family: "Inter Tight", Inter, sans-serif; font-size: 32px; letter-spacing: -.06em; }
.map-panel p { margin: 0; color: rgba(255,255,255,.78); font-size: 13px; line-height: 1.55; }
.map-link { display: inline-flex; gap: 8px; align-items: center; margin-top: 20px; color: #fff; border-bottom: 1px solid rgba(255,255,255,.62); font-size: 12px; font-weight: 700; }
.data-list { display: grid; gap: 10px; }
.data-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 17px 18px; border-bottom: 1px solid var(--page-line); background: #fff; }
.data-row h3 { margin: 0 0 5px; color: var(--page-ink); font-family: "Inter Tight", Inter, sans-serif; font-size: 20px; letter-spacing: -.04em; }
.data-row p { margin: 0; color: var(--color-body); font-size: 12px; line-height: 1.45; }
.data-row-meta { color: var(--color-accent); font-size: 10px; font-weight: 800; letter-spacing: .1em; text-align: right; text-transform: uppercase; }
.empty-state { padding: 46px 24px; border: 1px dashed var(--page-line); background: rgba(255,255,255,.58); text-align: center; }
.empty-state i { color: var(--color-accent); font-size: 30px; }
.empty-state h3 { margin: 14px 0 8px; color: var(--page-ink); font-family: "Inter Tight", Inter, sans-serif; font-size: 27px; letter-spacing: -.05em; }
.empty-state p { max-width: 410px; margin: 0 auto; color: var(--color-body); font-size: 13px; line-height: 1.55; }
.budget-source-bar { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 28px; }
.budget-source-bar h2 { margin: 0; color: var(--page-ink); font-family: "Inter", Arial, sans-serif; font-size: clamp(38px, 5vw, 66px); letter-spacing: -.045em; line-height: 1.03; }
.budget-source-bar p:last-child { max-width: 650px; margin: 16px 0 0; color: var(--color-body); font-size: 14px; line-height: 1.55; }
.budget-source-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.budget-provisional-notice { margin: -9px 0 20px; padding: 15px 17px; border: 1px solid #ead98c; border-radius: 12px; background: #fffaf0; color: #614c08; }
.budget-provisional-notice[hidden] { display: none; }
.budget-provisional-title { display: flex; align-items: flex-start; gap: 10px; }
.budget-provisional-title > i { flex: 0 0 auto; margin-top: 1px; color: #a27b00; font-size: 21px; }
.budget-provisional-notice strong { display: block; font-size: 13px; line-height: 1.4; }
.budget-provisional-notice p { max-width: 850px; margin: 5px 0 10px 31px; font-size: 12px; line-height: 1.55; }
.budget-provisional-notice ul { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 0 31px; padding: 0; list-style: none; }
.budget-provisional-notice li { padding: 5px 8px; border: 1px solid rgba(128,95,0,.2); border-radius: 999px; background: rgba(255,255,255,.7); font-size: 10px; font-weight: 700; }
.budget-source-button, .page-action-button { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 14px; border: 1px solid var(--color-border); color: var(--page-ink); background: rgba(255,255,255,.72); cursor: pointer; font-size: 11px; font-weight: 800; }
.budget-source-button span { color: var(--color-muted); font-size: 9px; font-weight: 600; }
.budget-source-button.is-active, .budget-source-button:hover { border-color: var(--color-blue); color: #fff; background: var(--color-blue); }
.budget-source-button.is-active span { color: rgba(255,255,255,.78); }
.budget-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.budget-metric { min-height: 148px; display: grid; grid-template-columns: 52px minmax(0, 1fr); align-items: center; gap: 13px; padding: 17px 18px 15px; border: 1px solid rgba(188,211,223,.9); border-radius: 16px; background: rgba(255,255,255,.8); box-shadow: 0 12px 26px rgba(7,50,74,.06); }
.budget-metric-icon { width: 52px; height: 52px; display: grid; place-items: center; border: 1px solid rgba(0,143,213,.14); border-radius: 50%; color: var(--color-blue); background: #edf7ff; font-size: 23px; }
.budget-metric:nth-child(3) .budget-metric-icon { color: #168c79; background: #e9f8f2; }
.budget-metric:nth-child(4) .budget-metric-icon { color: #a86a00; background: #fff6dd; }
.budget-metric-copy { min-width: 0; display: grid; gap: 9px; }
.budget-metric-label { color: var(--color-body); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.budget-metric strong { color: var(--page-ink); font-family: "Inter Tight", Inter, sans-serif; font-size: clamp(22px, 2.6vw, 34px); letter-spacing: -.05em; line-height: 1; }
.budget-metric small { color: var(--color-muted); font-size: 10px; line-height: 1.35; }
.budget-chart-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-bottom: 14px; }
.budget-chart-panel, .budget-records-panel, .budget-source-notes { border: 1px solid var(--page-line); background: rgba(255,255,255,.68); }
.budget-chart-panel { min-width: 0; padding: 20px 20px 15px; }
.budget-panel-heading, .budget-records-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.budget-panel-heading .page-kicker { margin-bottom: 8px; }
.budget-panel-heading h3, .budget-records-heading h3 { margin: 0; color: var(--page-ink); font-family: "Inter", Arial, sans-serif; font-size: 24px; letter-spacing: -.035em; line-height: 1.08; }
.budget-panel-heading > span { color: var(--color-muted); font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.budget-chart { min-height: 190px; display: flex; align-items: center; padding-top: 15px; }
.budget-chart-list { width: 100%; display: grid; gap: 14px; }
.budget-chart-row { display: grid; grid-template-columns: minmax(150px, 1.05fr) minmax(90px, 1.8fr) auto; gap: 12px; align-items: center; }
.budget-chart-label { min-width: 0; overflow: hidden; color: var(--page-ink); font-size: 11px; font-weight: 600; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.budget-chart-track { height: 10px; overflow: hidden; border-radius: 999px; background: rgba(0,125,185,.1); }
.budget-chart-bar { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--color-blue), var(--color-accent)); transform-origin: left center; }
.budget-chart-value { color: var(--color-body); font-size: 10px; font-weight: 700; white-space: nowrap; }
.budget-chart svg { display: block; width: 100%; height: auto; overflow: visible; }
.budget-chart-gridline { stroke: rgba(7,50,74,.1); stroke-width: 1; }
.budget-chart-bar { fill: var(--color-accent); opacity: .86; }
.budget-chart-label { fill: var(--page-ink); font-family: Inter, sans-serif; font-size: 13px; }
.budget-chart-value { fill: var(--color-body); font-family: Inter, sans-serif; font-size: 12px; font-weight: 700; }
.budget-records-panel { padding: 22px 20px 0; }
.budget-records-heading { align-items: start; margin-bottom: 20px; }
.budget-records-heading .page-kicker { margin-bottom: 8px; }
.budget-records-heading p:last-child { margin: 9px 0 0; color: var(--color-body); font-size: 12px; }
.budget-export-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.page-action-button { border-color: var(--color-blue); color: var(--color-blue); background: transparent; }
.page-action-button:hover { color: #fff; background: var(--color-blue); }
.budget-filters { display: grid; grid-template-columns: minmax(260px, 1.4fr) repeat(2, minmax(180px, .7fr)); gap: 10px; margin-bottom: 16px; }
.budget-filters label { display: grid; gap: 7px; color: var(--page-ink); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.budget-filters input, .budget-filters select { width: 100%; min-height: 42px; border: 1px solid var(--color-border); border-radius: 0; padding: 0 11px; color: var(--page-ink); background: rgba(255,255,255,.8); font: inherit; font-size: 12px; font-weight: 500; letter-spacing: normal; text-transform: none; }
.budget-filters input:focus, .budget-filters select:focus { border-color: var(--color-accent); outline: 3px solid rgba(0,143,213,.14); }
.budget-table-wrap { overflow: auto; border-top: 1px solid var(--page-line); }
.budget-table-wrap:focus-visible { outline: 3px solid rgba(0, 143, 213, .22); outline-offset: 2px; }
.budget-table { width: 100%; min-width: 1060px; border-collapse: collapse; }
.budget-table th { padding: 12px 12px; color: var(--color-muted); background: rgba(244,250,252,.72); font-size: 9px; font-weight: 800; letter-spacing: .11em; text-align: left; text-transform: uppercase; white-space: nowrap; }
.budget-table td { padding: 14px 12px; border-top: 1px solid rgba(7,50,74,.1); color: var(--color-body); font-size: 12px; line-height: 1.45; vertical-align: top; }
.budget-table tr:hover td { background: rgba(233,247,251,.5); }
.budget-programme-title { display: block; max-width: 340px; color: var(--page-ink); font-family: "Noto Sans Devanagari", "Mukta", sans-serif; font-size: 13px; font-weight: 600; line-height: 1.45; }
.budget-programme-meta { display: block; margin-top: 5px; color: var(--color-muted); font-family: Inter, sans-serif; font-size: 9px; line-height: 1.35; }
.budget-amount { color: var(--page-ink) !important; font-weight: 800; white-space: nowrap; }
.budget-serial { width: 54px; color: var(--color-muted) !important; font-variant-numeric: tabular-nums; text-align: center; }
.budget-table-empty { padding: 30px !important; color: var(--color-muted) !important; text-align: center; }
.budget-source-notes { margin-top: 14px; padding: 20px; }
.budget-source-notes .page-kicker { margin-bottom: 8px; }
.budget-source-notes > p:not(.page-kicker) { max-width: 900px; margin: 0; color: var(--color-body); font-size: 12px; line-height: 1.6; }
.budget-source-notes details { margin-top: 14px; color: var(--page-ink); font-size: 12px; }
.budget-source-notes summary { cursor: pointer; font-weight: 800; }
.budget-source-notes ul { margin: 10px 0 0; padding-left: 18px; color: var(--color-body); font-size: 11px; line-height: 1.6; }
.budget-disclaimer { margin: 16px 0 0; padding-top: 12px; border-top: 1px solid rgba(7,50,74,.1); color: var(--color-muted); font-size: 11px; line-height: 1.5; }
.budget-disclaimer strong { color: var(--page-ink); font-weight: 800; }
.budget-disclaimer a { color: var(--color-blue); font-weight: 800; text-decoration: underline; text-underline-offset: 2px; }
.filter-bar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.filter-button { min-height: 42px; padding: 0 16px; border: 1px solid var(--color-border); color: var(--page-ink); background: #fff; cursor: pointer; font-size: 12px; font-weight: 700; }
.filter-button.is-active, .filter-button:hover { border-color: var(--color-blue); color: #fff; background: var(--color-blue); }
.budget-list { display: grid; gap: 14px; }
.budget-card { display: grid; grid-template-columns: minmax(180px, .75fr) minmax(0, 1.25fr); gap: 28px; padding: 24px; border: 1px solid var(--page-line); background: #fff; }
.budget-card h3 { margin: 0 0 8px; color: var(--page-ink); font-family: "Inter Tight", Inter, sans-serif; font-size: 26px; letter-spacing: -.05em; }
.budget-card p { margin: 0; color: var(--color-body); font-size: 13px; line-height: 1.55; }
.budget-value { display: grid; align-content: center; gap: 9px; }
.budget-value strong { color: var(--color-accent); font-family: "Inter Tight", Inter, sans-serif; font-size: 30px; letter-spacing: -.05em; }
.budget-track { height: 8px; overflow: hidden; background: #e8f1f3; }
.budget-track span { display: block; height: 100%; background: var(--color-accent); transform-origin: left; animation: budget-fill 650ms var(--ease-out) both; }
@keyframes budget-fill { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.media-tabs { display: flex; gap: 22px; margin-bottom: 24px; border-bottom: 1px solid var(--page-line); }
.media-tab { padding: 0 0 13px; border: 0; border-bottom: 2px solid transparent; color: var(--color-muted); background: none; cursor: pointer; font-size: 13px; font-weight: 800; }
.media-tab.is-active { border-color: var(--color-accent); color: var(--page-ink); }
.media-card { padding: 22px 0; display: grid; grid-template-columns: 1fr auto; gap: 22px; border-bottom: 1px solid var(--page-line); }
.media-card h3 { margin: 0 0 7px; color: var(--page-ink); font-family: "Inter Tight", Inter, sans-serif; font-size: 25px; letter-spacing: -.05em; }
.media-card p { max-width: 650px; margin: 0; color: var(--color-body); font-size: 13px; line-height: 1.55; }
.media-meta { color: var(--color-accent); font-size: 10px; font-weight: 800; letter-spacing: .1em; text-align: right; text-transform: uppercase; }
.contact-layout { display: grid; grid-template-columns: minmax(250px, .72fr) minmax(0, 1.28fr); gap: 60px; align-items: start; }
.contact-copy h2 { max-width: 480px; margin: 0; color: var(--page-ink); font-family: "Inter Tight", Inter, sans-serif; font-size: clamp(42px, 5.8vw, 76px); letter-spacing: -.075em; line-height: .92; }
.contact-copy p { max-width: 390px; margin: 21px 0 0; color: var(--color-body); font-size: 15px; line-height: 1.6; }
.contact-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding: 28px; border: 1px solid var(--page-line); background: #fff; }
.contact-form label { display: grid; gap: 8px; color: var(--page-ink); font-size: 11px; font-weight: 800; }
.contact-form label.wide { grid-column: 1 / -1; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; border: 1px solid var(--color-border); border-radius: 0; padding: 12px 13px; color: var(--page-ink); background: #fbfdfd; font: inherit; font-size: 13px; font-weight: 500; }
.contact-form textarea { min-height: 150px; resize: vertical; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--color-accent); outline: 3px solid rgba(0,143,213,.14); }
.contact-consent { grid-column: 1 / -1; display: flex !important; grid-template-columns: auto 1fr; display: flex; gap: 9px !important; align-items: start; color: var(--color-body) !important; font-size: 11px !important; font-weight: 500 !important; line-height: 1.45; }
.contact-consent input { flex: 0 0 24px; width: 24px; height: 24px; margin-top: 0; }
.form-submit { grid-column: 1 / -1; justify-self: start; min-height: 48px; padding: 0 22px; border: 1px solid var(--color-blue); color: #fff; background: var(--color-blue); cursor: pointer; font-size: 12px; font-weight: 800; box-shadow: var(--shadow-button); }
.form-submit:hover { background: var(--color-blue-hover); transform: translateY(-1px); }
.form-message { grid-column: 1 / -1; min-height: 20px; margin: 0; color: var(--color-body); font-size: 12px; line-height: 1.45; }
.form-message.success { color: #14623d; }
.form-message.error { color: #a03939; }
.page-footer { padding: 22px var(--page-gutter); border-top: 1px solid var(--page-line); color: var(--color-body); background: #fff; font-size: 11px; }
.page-footer .page-shell { display: flex; justify-content: space-between; gap: 18px; }
.back-home { color: var(--color-blue); font-weight: 800; }
.budget-back-top { margin-left: auto; color: var(--color-blue); font-weight: 800; }
.budget-pagination { display: flex; min-height: 62px; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 0 10px; border-top: 1px solid var(--page-line); }
.budget-pagination[hidden] { display: none; }
.budget-page-button { min-width: 92px; min-height: 44px; padding: 0 14px; border: 1px solid var(--color-border); border-radius: 6px; color: var(--color-blue); background: #fff; cursor: pointer; font: inherit; font-size: 11px; font-weight: 800; }
.budget-page-button:hover:not(:disabled), .budget-page-button:focus-visible { border-color: var(--color-blue); background: #eef9fe; }
.budget-page-button:disabled { color: var(--color-muted); cursor: not-allowed; opacity: .55; }
.budget-page-status { color: var(--color-body); font-size: 11px; font-weight: 700; text-align: center; }

@media (max-width: 767px) {
  .page-shell { width: 100%; }
  .page-hero { min-height: 430px; padding: 58px 20px 50px; }
  .page-hero .page-shell { display: block; }
  .page-hero h1 { font-size: clamp(50px, 15vw, 72px); }
  .page-hero-copy > p:last-child { margin-top: 20px; font-size: 15px; }
  .page-hero-note { margin-top: 38px; padding-top: 14px; }
  .budget-hero { min-height: auto; padding: 64px 20px 28px; }
  .budget-hero-backdrop { background-position: 67% center; background-size: auto 100%; }
  .budget-hero .page-shell { width: 100%; }
  .page-hero.budget-hero h1 { max-width: 360px; font-size: clamp(48px, 14vw, 64px); letter-spacing: -.035em; line-height: 1.03; }
  .budget-hero-copy > p:last-child { max-width: 360px; margin-top: 22px; font-size: 15px; }
  .budget-hero-summary-grid { grid-template-columns: 1fr; gap: 12px; margin-top: 32px; }
  .budget-hero-card { display: block; margin-top: 0; padding: 16px 17px 14px; border-radius: 20px; }
  .budget-hero-card-heading { display: grid; grid-template-columns: 1fr; }
  .budget-hero-card-heading .budget-source-status { grid-column: auto; }
  .budget-provisional-card-note { display: flex; }
  .budget-hero-card-row { grid-template-columns: 50px minmax(0, 1fr); gap: 12px; min-height: 86px; }
  .budget-hero-card-row { padding: 0; border-right: 0; border-bottom: 1px solid rgba(7,50,74,.12); }
  .budget-hero-card-row:nth-last-child(2) { border-bottom: 0; }
  .budget-hero-icon { width: 50px; height: 50px; font-size: 21px; }
  .budget-hero-card-row > div > span { font-size: 12px; }
  .budget-hero-card-row strong { font-size: 22px; }
  .budget-hero-card-row small { margin-top: 5px; font-size: 10px; }
  .budget-hero-map-icon { margin-top: 19px; font-size: 34px; }
  .budget-hero-card-foot { padding-top: 13px; font-size: 10px; }
  .budget-hero-source-switch { margin-top: 3px; }
  .budget-hero-source-button { padding: 9px 10px; }
  .page-section { padding: 54px 20px 64px; }
  .section-head { display: block; margin-bottom: 24px; }
  .section-head h2 { font-size: 45px; }
  .section-head p { margin-top: 13px; font-size: 13px; }
  .page-grid, .page-grid.three { grid-template-columns: 1fr; }
  .map-panel { min-height: 300px; }
  .budget-card, .contact-layout { grid-template-columns: 1fr; gap: 22px; }
  .contact-layout { gap: 34px; }
  .contact-form { grid-template-columns: 1fr; padding: 20px; }
  .contact-form label.wide, .form-submit, .form-message, .contact-consent { grid-column: auto; }
  .media-card { grid-template-columns: 1fr; gap: 9px; }
  .media-meta { text-align: left; }
  .page-footer .page-shell { display: block; }
  .page-footer .back-home { display: inline-block; margin-top: 8px; }

  .budget-source-bar { display: block; margin-bottom: 24px; }
  .budget-source-actions { justify-content: flex-start; margin-top: 18px; }
  .budget-provisional-notice { margin-top: 0; padding: 14px 13px; }
  .budget-provisional-title { gap: 9px; }
  .budget-provisional-title > i { font-size: 20px; }
  .budget-provisional-notice strong { font-size: 14px; line-height: 1.35; }
  .budget-provisional-notice p { margin: 9px 0 12px; font-size: 13px; line-height: 1.55; }
  .budget-provisional-notice ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin: 0; }
  .budget-provisional-notice li { min-height: 34px; display: flex; align-items: center; justify-content: center; padding: 6px 7px; border-radius: 8px; font-size: 10px; line-height: 1.25; text-align: center; overflow-wrap: anywhere; }
  .budget-source-button { flex: 1 1 150px; }
  .budget-summary { grid-template-columns: 1fr; }
  .budget-metric { min-height: 112px; grid-template-columns: 40px minmax(0, 1fr); gap: 9px; padding: 14px; border-radius: 13px; }
  .budget-metric-icon { width: 40px; height: 40px; font-size: 18px; }
  .budget-metric-copy { gap: 7px; }
  .budget-metric strong { font-size: 23px; }
  .budget-chart-grid { grid-template-columns: 1fr; }
  .budget-chart-panel { padding: 17px 14px 12px; }
  .budget-panel-heading h3, .budget-records-heading h3 { font-size: 22px; }
  .budget-chart { min-height: 0; }
  .budget-chart-row { grid-template-columns: minmax(0, 1fr) auto; gap: 7px 10px; }
  .budget-chart-track { grid-column: 1 / -1; grid-row: 2; }
  .budget-records-panel { padding: 18px 14px 0; }
  .budget-records-heading { display: block; }
  .budget-export-actions { justify-content: flex-start; margin-top: 16px; }
  .budget-filters { grid-template-columns: 1fr; }
  .budget-source-notes { padding: 17px 14px; }
}

/* Tablet widths are common on small Android devices and split-screen views.
   Collapse dense layouts before their cards become narrower than their text. */
@media (max-width: 980px) and (min-width: 768px) {
  .page-hero .page-shell,
  .budget-hero .page-shell {
    display: block;
    width: min(calc(100% - (2 * var(--page-gutter))), 760px);
  }

  .page-hero .page-shell { padding-top: 18px; }
  .budget-hero .page-shell { width: min(calc(100% - (2 * var(--page-gutter))), 760px); }
  .budget-hero-copy { max-width: 680px; }
  .budget-hero-summary-grid { max-width: 680px; margin-top: 36px; }
  .page-grid.three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .budget-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .budget-chart-grid { grid-template-columns: 1fr; }
  .contact-layout { grid-template-columns: minmax(220px, .8fr) minmax(0, 1.2fr); gap: 28px; }
  .section-head { align-items: start; gap: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  .budget-track span { animation: none; }
}

/* Compact detail pages: preserve the desktop system while reducing scroll
   cost and keeping dense data inside purposeful, bounded controls. */
@media (max-width: 767px) {
  .detail-page main {
    overflow-x: clip;
  }

  .page-hero {
    min-height: 0;
    padding: 44px var(--compact-gutter) 40px;
  }

  .page-hero h1 {
    max-width: 430px;
    font-size: clamp(36px, 10.6vw, 44px);
    letter-spacing: -.055em;
    line-height: .96;
    word-spacing: .04em;
  }

  .page-hero-copy > p:last-child {
    margin-top: 17px;
    font-size: 14px;
    line-height: 1.5;
  }

  .page-hero-note {
    margin-top: 24px;
    padding-top: 12px;
    font-size: 12px;
    line-height: 1.5;
  }

  .page-hero-note strong {
    margin-bottom: 5px;
    font-size: 18px;
  }

  .page-section {
    padding: 44px var(--compact-gutter) 52px;
  }

  .section-head {
    margin-bottom: 20px;
  }

  .section-head h2,
  .contact-copy h2 {
    font-size: clamp(34px, 9.8vw, 40px);
    line-height: .98;
    word-spacing: .05em;
  }

  .section-head p,
  .contact-copy p {
    margin-top: 11px;
    font-size: 13px;
    line-height: 1.5;
  }

  .page-grid,
  .page-grid.three {
    gap: 11px;
  }

  .map-panel {
    min-height: 238px;
    padding: 20px;
  }

  .map-panel i {
    margin-bottom: 14px;
    font-size: 31px;
  }

  .map-panel h3 {
    font-size: 28px;
  }

  .info-panel,
  .info-panel[style] {
    min-height: 205px !important;
    padding: 21px;
  }

  .info-panel h3 {
    font-size: 23px;
  }

  .empty-state {
    padding: 32px 18px;
  }

  .data-row {
    gap: 12px;
    padding: 14px;
  }

  .data-row h3 {
    font-size: 18px;
  }

  .contact-layout {
    gap: 24px;
  }

  .contact-form {
    gap: 12px;
    padding: 16px;
    border-radius: 12px;
  }

  .contact-form input,
  .contact-form select {
    min-height: 46px;
  }

  .contact-form textarea {
    min-height: 116px;
  }

  .contact-form .contact-consent {
    min-height: 44px;
    align-items: center;
  }

  .contact-form .contact-consent input {
    width: 24px;
    height: 24px;
    min-height: 24px;
    padding: 0;
  }

  .form-submit {
    width: 100%;
    min-height: 50px;
  }

  .media-tabs {
    gap: 16px;
    overflow-x: auto;
    margin-bottom: 18px;
    scrollbar-width: none;
  }

  .media-tabs::-webkit-scrollbar {
    display: none;
  }

  .media-tab {
    flex: 0 0 auto;
    min-height: 44px;
    padding-top: 8px;
    white-space: nowrap;
  }

  .page-footer {
    padding-inline: var(--compact-gutter);
  }

  .budget-hero {
    padding: 44px var(--compact-gutter) 24px;
  }

  .budget-hero-backdrop {
    background-image: linear-gradient(90deg, rgba(248,246,240,.93) 0%, rgba(248,246,240,.76) 38%, rgba(233,247,251,.16) 100%), var(--cms-budget-hero-mobile, url("../assets/kabindra-brand/budget-hero-landscape-v3-mobile.webp"));
    background-position: 65% center;
  }

  .page-hero.budget-hero h1 {
    max-width: 420px;
    font-size: clamp(39px, 11.5vw, 47px);
    line-height: 1;
  }

  .budget-hero-copy > p:last-child {
    margin-top: 17px;
    font-size: 14px;
  }

  .budget-hero-quote,
  .budget-hero-card-central {
    display: none;
  }

  .budget-hero-summary-grid {
    display: block;
    margin-top: 22px;
  }

  .budget-hero-card:not(.budget-hero-card-central) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 13px;
    border-radius: 16px;
  }

  .budget-hero-card-heading,
  .budget-hero-card-foot,
  .budget-hero-card:not(.budget-hero-card-central) > .budget-hero-card-row:nth-child(4) {
    grid-column: 1 / -1;
  }

  .budget-hero-card-heading {
    min-height: 0;
    padding: 7px 0 10px;
  }

  .budget-hero-card:not(.budget-hero-card-central) > .budget-hero-card-row {
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 7px;
    min-height: 72px;
    padding: 7px 5px;
  }

  .budget-hero-card:not(.budget-hero-card-central) > .budget-hero-card-row:nth-child(2) {
    border-right: 1px solid rgba(7, 50, 74, .12);
  }

  .budget-hero-card:not(.budget-hero-card-central) > .budget-hero-card-row:nth-child(4) {
    min-height: 64px;
  }

  .budget-hero-icon {
    width: 30px;
    height: 30px;
    font-size: 15px;
  }

  .budget-rupee-symbol {
    font-size: 16px;
  }

  .budget-hero-card-row > div > span {
    font-size: 10px;
    line-height: 1.2;
  }

  .budget-hero-card-row strong {
    margin-top: 3px;
    font-size: clamp(16px, 4.7vw, 19px);
  }

  .budget-hero-card-row small {
    display: none;
  }

  .budget-hero-card-foot {
    padding-top: 9px;
  }

  .budget-section {
    padding-top: 42px;
  }

  .budget-source-bar h2 {
    font-size: clamp(34px, 9.8vw, 40px);
  }

  .budget-source-bar p:last-child {
    margin-top: 12px;
    font-size: 13px;
  }

  .budget-source-actions {
    margin-top: 14px;
  }

  .budget-source-button {
    min-height: 46px;
  }

  .budget-summary {
    display: flex;
    gap: 9px;
    overflow-x: auto;
    margin-right: calc(-1 * var(--compact-gutter));
    padding: 2px var(--compact-gutter) 9px 0;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .budget-summary::-webkit-scrollbar {
    display: none;
  }

  .budget-metric {
    flex: 0 0 min(68vw, 228px);
    min-height: 94px;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 8px;
    padding: 12px;
    scroll-snap-align: start;
  }

  .budget-metric-icon {
    width: 36px;
    height: 36px;
    font-size: 17px;
  }

  .budget-metric-copy {
    gap: 5px;
  }

  .budget-metric strong {
    font-size: 20px;
  }

  .budget-chart-grid {
    gap: 10px;
  }

  .budget-chart-panel {
    padding: 14px 12px 12px;
  }

  .budget-panel-heading h3,
  .budget-records-heading h3 {
    font-size: 20px;
  }

  .budget-chart-list {
    gap: 11px;
  }

  .budget-records-panel {
    padding: 15px 12px 0;
  }

  .budget-export-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    margin-top: 13px;
  }

  .page-action-button {
    min-height: 44px;
    padding-inline: 9px;
  }

  .budget-filters {
    gap: 9px;
    margin-bottom: 12px;
  }

  .budget-filters input,
  .budget-filters select {
    min-height: 46px;
  }

  .budget-table-wrap {
    overscroll-behavior-x: contain;
  }

  .budget-table th {
    position: sticky;
    top: 0;
    z-index: 1;
  }

  .budget-table td {
    padding-block: 12px;
  }

  .budget-pagination {
    min-height: 60px;
    gap: 8px;
  }

  .budget-page-button {
    min-width: 76px;
    padding-inline: 10px;
  }

  .budget-page-status {
    font-size: 10px;
  }

  .budget-source-notes {
    margin-top: 10px;
    padding: 15px 12px;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .page-hero {
    min-height: 0;
    padding-top: 72px;
    padding-bottom: 56px;
  }

  .budget-hero {
    padding-top: 64px;
    padding-bottom: 48px;
  }

  .budget-hero-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.managed-contact-details { margin:24px 0 0; padding:20px; display:grid; grid-template-columns:auto 1fr; gap:8px 16px; border:1px solid rgba(7,50,74,.14); background:#fff; }
.managed-contact-details dt { color:#607b8d; font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.managed-contact-details dd { margin:0; color:#07324a; font-size:13px; font-weight:700; overflow-wrap:anywhere; }
.managed-contact-details a { color:inherit; }
.managed-contact-notice { grid-column:1/-1; margin:8px 0 0 !important; padding-top:12px; border-top:1px solid rgba(7,50,74,.12); color:#607b8d !important; font-size:11px !important; }
