﻿﻿/* =============================================================
   CSEZ Website — Custom Stylesheet
   Extracted from index.html (File 1 of 11)
   Additional component styles will be appended per file.
   ============================================================= */

/* -----------------------------------------------------------
   FONTS & BASE
   ----------------------------------------------------------- */
body {
    margin: 0;
    background: #fff;
    font-family: 'TikTok Sans', sans-serif;
    color: #121212;
}

/* Base brand color for plain inline content links (e.g. "Click here to…" links
   in static RTI pages) — pairs with the existing html.csez-contrast-dark `a` rule,
   which otherwise had no light-mode counterpart and left these links browser-blue. */
a {
    color: #057671;
}

a:hover,
a:focus {
    color: #045a56;
}

@keyframes csezmarquee {
    0% {
        transform: translate3d(0, 0, 0);
    }

    100% {
        transform: translate3d(-50%, 0, 0);
    }
}

/* -----------------------------------------------------------
   SKIP LINK  (WCAG 2.4.1)
   ----------------------------------------------------------- */
.skip-link {
    position: absolute;
    top: -100%;
    left: 0;
    background: #057671;
    color: #fff;
    padding: 0.625rem 1.125rem;
    font-size: 0.9375rem;
    font-weight: 600;
    z-index: 9999;
    text-decoration: none;
}

.skip-link:focus {
    top: 0;
}

/* -----------------------------------------------------------
   SHARED CONTAINER
   ----------------------------------------------------------- */
.csez-container {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 var(--space-lg);
}

/* -----------------------------------------------------------
   UTILITY BAR
   ----------------------------------------------------------- */
.utility-bar {
    background: #057671;
    color: #fff;
}

.utility-bar-inner {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 var(--space-lg);
    height: 3.5rem;
    display: flex;
    align-items: center;
    gap: 1.125rem;
    font-size: 0.9375rem;
    flex-wrap: wrap;
}

.utility-link {
    cursor: pointer;
    color: #fff;
    text-decoration: none;
    background: none;
    border: none;
    font-size: 0.9375rem;
    font-family: inherit;
    padding: 0;
    white-space: nowrap;
}

.utility-link:hover,
.utility-link:focus {
    text-decoration: underline;
    outline: 0.125rem solid #fff;
    outline-offset: 0.125rem;
}

.utility-divider {
    display: inline-block;
    width: 0.0625rem;
    height: 1rem;
    background: rgba(255, 255, 255, .35);
    flex-shrink: 0;
}

.font-sizer {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    font-size: 0.9375rem;
}

.font-size-btn {
    cursor: pointer;
    color: #fff;
    background: none;
    border: none;
    font-size: 0.9375rem;
    font-family: inherit;
    padding: 0;
}

.font-size-btn:focus {
    outline: 0.125rem solid #fff;
    outline-offset: 0.125rem;
}

.font-size-btn:disabled,
.font-size-btn[aria-disabled="true"] {
    opacity: 0.28;
    cursor: not-allowed;
    pointer-events: none;
}

.lang-switcher-wrap {
    position: relative;
}

/* Google Translate injects its own <select> into this container — keep it in the
   layout (not display:none, which can break the widget) but out of sight; the
   custom .lang-switcher button is the visible/accessible control. */
.visually-hidden-translate {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.lang-switcher {
    display: flex;
    align-items: center;
    gap: 0.3125rem;
    cursor: pointer;
    color: #fff;
    background: none;
    border: none;
    font-size: 0.9375rem;
    font-family: inherit;
}

.lang-switcher:focus {
    outline: 0.125rem solid #fff;
    outline-offset: 0.125rem;
}

.lang-dropdown {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    margin: 0.375rem 0 0;
    padding: 0.375rem 0;
    min-width: 6.5rem;
    background: #fff;
    border: 1px solid #e3e3e3;
    border-radius: 0.25rem;
    box-shadow: 0 0.375rem 1.25rem rgba(0, 0, 0, .15);
    list-style: none;
    z-index: 200;
}

.lang-dropdown.is-open {
    display: block;
}

.lang-option {
    padding: 0.5rem 1rem;
    color: #057671;
    font-size: 0.9375rem;
    cursor: pointer;
    white-space: nowrap;
}

.lang-option:hover,
.lang-option:focus {
    background: #f4faf9;
    outline: none;
}

.lang-option.is-selected {
    font-weight: 700;
    background: #f4faf9;
}

.contrast-switcher {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    margin-left: 0.375rem;
}

.contrast-btn-light {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    background: #fff;
    color: #000;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    border: none;
}

.contrast-btn-dark {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    background: #000;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    border: 1px solid #fff;
}

.contrast-btn-light:focus,
.contrast-btn-dark:focus {
    outline: 0.125rem solid #fff;
    outline-offset: 0.125rem;
}

.social-links {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 1rem;
}

.carousel-indicators [data-bs-target] {
    background-color: #D9D9D9;
    width: 0.25rem;
    height: 0.3125rem;
    border-radius: 0.25rem;
    border-top: 0 solid transparent;
    border-bottom: 0 solid transparent;
    margin-right: 0;
    margin-left: 0;
}

.social-fb {
    color: #1877F2;
    display: flex;
    text-decoration: none;
}

.social-x {
    color: #fff;
    display: flex;
    text-decoration: none;
}

.social-ig {
    width: 1.25rem;
    height: 1.25rem;
    border-radius: 0.3125rem;
    background: linear-gradient(45deg, #FFDD55 6%, #FF543E 50%, #C837AB 94%);
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.social-img {
    width: 1.25rem;
    height: 1.25rem;
    object-fit: contain;
    border-radius: 0.1875rem;
}

.social-img-yt {
    width: 1.5rem;
    height: 1.25rem;
    object-fit: contain;
}

.social-fb:focus,
.social-x:focus,
.social-ig:focus {
    outline: 0.125rem solid #fff;
    outline-offset: 0.125rem;
}

/* -----------------------------------------------------------
   SITE BANNER
   ----------------------------------------------------------- */
.site-banner {
    position: relative;
    height: 7.5rem;
    background: #fff;
    overflow: hidden;
}

.banner-teal-bg {
    position: absolute;
    inset: 0;
    background: #3EA29D;
    clip-path: polygon(0 0, 52% 0, 46% 100%, 0 100%);
}

.banner-inner {
    position: relative;
    max-width: var(--container-max);
    margin: 0 auto;
    height: 100%;
    padding: 0 var(--space-lg);
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 1.5rem;
}

.banner-logo-link {
    display: flex;
    align-items: center;
    margin-right: auto;
    text-decoration: none;
}

.banner-logo {
    height: 3.75rem;
    width: auto;
    object-fit: contain;
}

.banner-campaign-logo {
    height: 5.5rem;
    width: auto;
    object-fit: contain;
}

/* Gaps widen left-to-right to match the govt-campaign-strip layout in the Figma
   reference: emblem/Swachh Bharat sit close together, AI Summit/Azadi get more room. */
.logo-ai-summit {
    margin-left: 1.5rem;
}

.logo-azadi {
    margin-left: 3rem;
}

/* Sticky header — utility bar, banner and main nav stay pinned together while scrolling. */
.site-header-sticky {
    position: sticky;
    top: 0;
    z-index: 1010;
}

/* -----------------------------------------------------------
   PRIMARY NAVIGATION
   ----------------------------------------------------------- */
.main-nav-wrapper {
    background: #fff;
    border-top: 1px solid #e3e3e3;
    border-bottom: 1px solid #e3e3e3;
    position: relative;
}

.main-nav-inner {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 var(--space-lg);
    min-height: 4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    flex-wrap: wrap;
}

/* Hamburger — hidden on desktop */
.nav-hamburger {
    display: none;
    flex-direction: column;
    gap: 0.3125rem;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.5rem;
    margin-left: auto;
}

.nav-hamburger span {
    display: block;
    width: 1.5rem;
    height: 0.125rem;
    background: #057671;
    border-radius: 0.125rem;
}

.nav-hamburger:focus {
    outline: 0.125rem solid #057671;
    outline-offset: 0.125rem;
}

.primary-nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    /* Scales down smoothly as more top-level items are added (via --nav-count, set
       server-side from the actual menu count) so the row stays well-spanned instead
       of wrapping or overflowing. Ceiling matches the design's full-size spacing and
       holds through 9 items (today's count plus one), only shrinking past that. */
    --nav-count: 8;
    gap: clamp(1.25rem, calc(3.6rem - (var(--nav-count) * 0.15rem)), 2.25rem);
    flex-wrap: wrap;
    justify-content: center;
}

.primary-nav-list .nav-item {
    position: relative;
}

.primary-nav-list .nav-link {
    position: relative;
    text-decoration: none;
    color: #057671;
    font-size: clamp(1rem, calc(1.7rem - (var(--nav-count) * 0.05rem)), 1.125rem);
    font-weight: 500;
    padding: 1.1875rem 0;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-family: inherit;
    background: none;
    border: none;
    cursor: pointer;
}

.primary-nav-list .nav-link:hover {
    text-decoration: underline;
}

.primary-nav-list .nav-link:focus-visible {
    outline: 0.125rem solid #057671;
    outline-offset: 0.1875rem;
}

.primary-nav-list .nav-link svg {
    transition: transform 0.2s ease;
}

.primary-nav-list .nav-link[aria-expanded="true"] svg {
    transform: rotate(180deg);
}

.primary-nav-list .nav-link[aria-current="page"]::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 0.1875rem;
    background: #057671;
}

/* Dropdown */
.primary-nav-list .nav-item:hover .nav-dropdown,
.primary-nav-list .nav-item:focus-within .nav-dropdown {
    display: block;
}

.nav-dropdown {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    background: #fff;
    border: 1px solid #e3e3e3;
    box-shadow: 0 0.375rem 1.25rem rgba(0, 0, 0, .1);
    z-index: 200;
    list-style: none;
    margin: 0;
    padding: 0.5rem 0;
    min-width: 13.75rem;
}

.nav-dropdown li a {
    display: block;
    padding: 0.625rem 1.25rem;
    color: #057671;
    text-decoration: none;
    font-size: 1rem;
    white-space: nowrap;
}

.nav-dropdown li a:hover,
.nav-dropdown li a:focus {
    background: #f4faf9;
    outline: none;
}

/* -----------------------------------------------------------
   HERO
   ----------------------------------------------------------- */
.hero-section {
    position: relative;
    height: 46.125rem;
    background: #f4faf9;
    overflow: hidden;
    /* The scroll-linked zoom transition below animates `transform` inside this box; without
       a hard paint boundary, iOS Safari can let that repaint bleed into the next sibling
       (the ticker, which runs its own transform animation) and drop its compositing layer. */
    contain: layout paint;
}

/* Hero carousel — full-bleed slider */
.hero-carousel {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.hero-carousel .carousel-inner,
.hero-carousel .carousel-item {
    height: 100%;
}

/* Scroll-linked zoom: as the hero scrolls out of view, its image gently
   scales up and dims — shared by both the Home carousel (.carousel-inner)
   and the About hero (.hero-slides), toggled via .is-scrolled in accessibility.js. */
.hero-carousel .carousel-inner,
.hero-slides {
    transition: transform .6s ease-out, opacity .6s ease-out;
    will-change: transform;
}

.hero-section.is-scrolled .carousel-inner,
.about-hero-section.is-scrolled .hero-slides {
    transform: scale(1.08);
    opacity: .85;
}

.hero-slide-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.hero-slide-link {
    display: block;
    width: 100%;
    height: 100%;
}

/* Dark left-to-right overlay so white text is readable over any banner */
.hero-carousel::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    /*background: linear-gradient(*/
    /*  to right,*/
    /*  rgba(0,0,0,0.62) 0%,*/
    /*  rgba(0,0,0,0.42) 38%,*/
    /*  rgba(0,0,0,0.15) 62%,*/
    /*  transparent 80%*/
    /*);*/
}

.hero-content-wrap {
    position: absolute;
    inset: 0;
    padding: 0 10.3125rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    z-index: 2;
}

.hero-text-box {
    max-width: 55%;
}

/* Slider bar indicators */
.hero-dots {
    position: absolute;
    left: 9%;
    right: auto;
    bottom: 25%;
    margin: 0;
    padding: 0;
    justify-content: flex-start;
    gap: 0.3125rem;
    z-index: 3;
}

.hero-dot {
    width: 0.4375rem;
    height: 0.4375rem;
    border-radius: 50%;
    border: none;
    background: rgba(255, 255, 255, 0.50);
    opacity: 1;
    flex: none;
    margin: 0;
    padding: 0;
    transition: background .3s, width .3s, border-radius .3s;
}

.hero-dot.active {
    width: 2.375rem;
    height: 0.3125rem;
    border-radius: 0.25rem;
    background: #D9D9D9;
    opacity: 1;
}

.hero-dot:hover,
.hero-dot:focus {
    background: rgba(255, 255, 255, 0.80);
    opacity: 1;
}

/* Prev/Next arrow controls — subtle, visible on hover/focus */
.hero-carousel-btn {
    width: 2.75rem;
    opacity: 0;
    transition: opacity .2s;
    z-index: 3;
}

.hero-section:hover .hero-carousel-btn,
.about-hero-section:hover .hero-carousel-btn,
.hero-carousel-btn:focus {
    opacity: 1;
}

.hero-eyebrow {
    font-size: 0.9375rem;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.80);
    letter-spacing: 0.125rem;
    text-transform: uppercase;
    margin: 0 0 0.875rem;
}

.hero-section h1 {
    font-size: 4.5rem;
    line-height: normal;
    font-weight: 600;
    margin: 0 0 1.375rem;
    color: #ffffff;
    text-shadow: 0 0.125rem 0.75rem rgba(0, 0, 0, 0.25);
    text-transform: uppercase;
}

.hero-body {
    font-size: 1.1875rem;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.88);
    margin: 0 0 2rem;
    max-width: 30rem;
}

/* -----------------------------------------------------------
   BUTTONS
   ----------------------------------------------------------- */
.btn-teal {
    display: inline-flex;
    align-items: center;
    gap: 0.625rem;
    background: #3EA29D;
    color: #fff;
    text-decoration: none;
    font-weight: 600;
    font-family: inherit;
    border: none;
    cursor: pointer;
    transition: background .15s;
}

.btn-teal:hover,
.btn-teal:focus {
    background: #2d8a85;
    color: #fff;
    outline: 0.125rem solid #057671;
    outline-offset: 0.125rem;
}

.btn-teal-lg {
    font-size: 1.1875rem;
    padding: 1rem 2.125rem;
}

.btn-teal-md {
    font-size: 1.0625rem;
    padding: 0.875rem 1.875rem;
}

.btn-teal-sm {
    font-size: 0.9375rem;
    padding: 0.6875rem 1.375rem;
}

/* -----------------------------------------------------------
   TICKER / MARQUEE
   ----------------------------------------------------------- */
.ticker-bar {
    background: #057671;
    color: #fff;
    overflow: hidden;
    white-space: nowrap;
    /* Give the ticker its own stacking/compositing context so the hero carousel's fade
       transition directly above it never forces a repaint that interrupts the scroll. */
    isolation: isolate;
    contain: layout paint;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
}

.ticker-track {
    display: inline-flex;
    align-items: center;
    padding: 0.875rem 0;
    animation: csezmarquee 38s linear infinite;
    /* iOS Safari can drop the compositing layer at the animation loop boundary and fail
       to repaint, making the ticker flicker to invisible; pinning it to its own GPU layer
       keeps it painted throughout the loop. */
    will-change: transform;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.ticker-item {
    display: inline-flex;
    align-items: center;
    font-size: 1.25rem;
    padding: 0 1.75rem;
    border-right: 0.0625rem solid rgba(255, 255, 255, .3);
}

/* -----------------------------------------------------------
   PROMO GRID (Mann ki Baat / Jansunwai)
   ----------------------------------------------------------- */
.promo-grid {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 2rem var(--space-lg) 0.5rem;
}

.promo-img-link {
    display: block;
    text-decoration: none;
    background: #f4faf9;
    border-radius: 0.75rem;
    padding: 1.75rem;
    height: 100%;
}

.promo-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.promo-heading {
    /*font-size: 1.75rem;*/
    /*font-weight: 800;*/
    font-size: 3.0rem;
    font-weight: 600;
    color: #121212;
    text-transform: uppercase;
    margin: 0;
}

.promo-img {
    width: 100%;
    display: block;
    border-radius: 0.5rem;
}

.promo-arrow {
    flex: none;
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 0.5rem;
    background: #3EA29D;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* -----------------------------------------------------------
   SECTION UTILITIES
   ----------------------------------------------------------- */
.section-container {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 5rem var(--space-lg) 0;
}

.bg-light-green {
    background: #f4faf9;
    margin-top: 10rem;
}

.section-heading-center {
    text-align: center;
    font-size: 2rem;
    font-weight: 600;
    letter-spacing: 0.0625rem;
    margin: 0 0 2.5rem;
}

.section-heading {
    font-size: 3.5rem;
    font-weight: 600;
    line-height: normal;
    margin: 0 0 1.375rem;
}

#launchpad-heading {
    font-size: 3.5rem;
}

.section-body {
    font-size: 1.5rem;
    line-height: 1.7;
    color: #444;
    margin: 0 0 2rem;
}

.section-header-flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 2rem;

}

.section-heading-lg {
    font-size: 3.5rem;
    font-weight: 600;
    margin: 0;
}

/* -----------------------------------------------------------
   LOCATION
   ----------------------------------------------------------- */
.location-hero-wrap {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 var(--space-lg);
}

.location-item {
    text-align: center;
}

.location-title {
    font-size: 2.5rem;
    font-weight: 600;
    margin: 0 0 0.75rem;
    color: #121212;
}

.location-desc {
    font-size: 1.25rem;
    line-height: 1.7;
    color: #444;
    max-width: 50rem;
    margin: 0 auto 2rem;
}

.location-desc-toggle {
    background: none;
    border: none;
    padding: 0;
    color: #057671;
    font-weight: 600;
    font-size: inherit;
    text-decoration: underline;
    cursor: pointer;
}

.location-desc-toggle:hover,
.location-desc-toggle:focus {
    color: #145f55;
}

.location-img-wrap {
    position: relative;
}

.location-img {
    width: 100%;
    height: auto;
    border-radius: 0.5rem;
    border: 1px solid #e5e5e5;
    display: block;
}

.location-carousel-btn {
    width: 2.75rem;
    height: 2.75rem;
    top: 50%;
    transform: translateY(-50%);
    background: #3EA29D;
    border-radius: 50%;
    opacity: 1;
}

.location-carousel-btn.carousel-control-prev {
    left: 1.25rem;
}

.location-carousel-btn.carousel-control-next {
    right: 1.25rem;
}

.location-dots {
    position: static;
    margin-top: 1.5rem;
    gap: 0.5rem;
}

.location-dot {
    width: 0.625rem;
    height: 0.625rem;
    border-radius: 50%;
    background: #d5d5d5;
    opacity: 1;
    border: none;
}

.location-dot.active {
    background: #3EA29D;
}

/* -----------------------------------------------------------
   QUICK LINKS
   ----------------------------------------------------------- */
.quick-link-card {
    text-decoration: none;
    background: #f4faf9;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1.875rem 0.75rem;
    min-height: 11.875rem;
    transition: background .15s;
    height: 100%;
}

.quick-link-icon img {
    width: 3.5rem;
    height: 3.5rem;
    margin-bottom: 1.5rem;
}

.quick-link-card:hover,
.quick-link-card:focus {
    background: #e3f1ef;
    outline: 0.125rem solid #3EA29D;
    outline-offset: 0.125rem;
}

.quick-link-icon {
    color: #3EA29D;
    display: flex;
}

.quick-link-label {
    font-size: 1.5rem;
    line-height: normal;
    color: #121212;
    font-weight: 500;
    text-align: center;
}

/* -----------------------------------------------------------
   TWO-COLUMN LAYOUTS
   ----------------------------------------------------------- */
.two-col-section {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 10rem var(--space-lg) 3rem;
}

.img-center-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
}

.img-left-wrap {
    display: flex;
    align-items: center;
}

.responsive-img {
    width: 100%;
    height: auto;
    object-fit: contain;
}

.responsive-img-sm {
    width: 100%;
    height: auto;
    display: block;
}

.launchpadCvrr p.section-body {
    padding-right: 2.813rem;
}

/* -----------------------------------------------------------
   STATS
   ----------------------------------------------------------- */
.stats-section {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 2.5rem var(--space-lg) 0;
}

.stat-item {
    padding: 0 1.875rem;
    border-left: 0.375rem solid #3EA29D;
    border-radius: 0.25rem;
}

.stat-value {
    font-size: 3rem;
    font-weight: 500;
    color: #121212;
}

.stat-value-suffix {
    color: #3EA29D;
}

.stat-label {
    font-size: 1.5rem;
    color: #666;
    margin-top: 0.375rem;
}

/* -----------------------------------------------------------
   5-STEP LAUNCHPAD
   ----------------------------------------------------------- */
.steps-inner {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 5rem var(--space-lg);
}

.steps-grid {
    list-style: none;
    padding-left: 0;
}

.steps-grid li {
    position: relative;
}

.step-lauchpadCVr {
    padding-right: 2rem;
    position: relative;
}

.step-icon {
    color: #3EA29D;
    margin-bottom: 3rem;
    display: flex;
    position: relative;
    z-index: 1;
}

.step-lauchpadCVr::before {
    content: "";
    position: absolute;
    top: 5.5rem;
    left: 0;
    width: 0.625rem;
    height: 0.625rem;
    background: #3EA29D;
    z-index: 2;
}

.step-lauchpadCVr::after {
    content: "";
    position: absolute;
    top: 5.75rem;
    left: 0.625rem;
    right: -2rem;
    height: 1px;
    background: #d8d8d8;
    z-index: 0;
}

.step-title {
    font-size: 1.75rem;
    line-height: 2.25rem;
    font-weight: 500;
    margin-bottom: 1rem;
    color: #121212;
}

.step-desc {
    font-size: 1.25rem;
    line-height: 1.6;
    color: #595959;
}

.btn-center-wrap {
    display: flex;
    justify-content: center;
    margin-top: 2.75rem;
}

/* -----------------------------------------------------------
   WHY CHOOSE SEZ
   ----------------------------------------------------------- */
.why-sez-section {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 10rem var(--space-lg) 0rem;
}

#why-sez-heading {
    font-size: 3.5rem;
    line-height: normal;
    font-weight: 600;
    color: #121212;
    margin-bottom: 3rem;
}

.why-chip {
    background: url(../assets/images/home/hd-Bg.png) no-repeat;
    color: #fff;
    font-size: 1.75rem;
    line-height: 2.25rem;
    font-weight: 500;
    padding: 0.5rem 0.8125rem;
    margin-bottom: 0.875rem;
    width: 100%;
}

.why-desc {
    font-size: 1.25rem;
    line-height: 1.6;
    color: #595959;
    margin: 0;
}

.why-grid>div:nth-child(-n+2) .whychooseSngle {
    margin-bottom: 2rem;
}

.whycooseRightCvr {
    padding-left: 6rem;
}

/* -----------------------------------------------------------
   CAROUSEL CONTROLS
   ----------------------------------------------------------- */
.carousel-controls {
    display: flex;
    gap: 0.75rem;
}

.carousel-btn {
    width: 2.625rem;
    height: 2.625rem;
    border: 0.0625rem solid #d0d0d0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    background: #fff;
}

.carousel-btn:hover,
.carousel-btn:focus {
    border-color: #3EA29D;
    outline: 0.125rem solid #3EA29D;
    outline-offset: 0.125rem;
}

.carousel-btn:disabled,
.carousel-btn[aria-disabled="true"] {
    opacity: 0.28;
    cursor: not-allowed;
    pointer-events: none;
}

.carousel-btn-lg {
    width: 2.875rem;
    height: 2.875rem;
    border: 0.0625rem solid #ccc;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    background: #fff;
}

.carousel-btn-lg:hover,
.carousel-btn-lg:focus {
    border-color: #3EA29D;
    outline: 0.125rem solid #3EA29D;
    outline-offset: 0.125rem;
}

/* -----------------------------------------------------------
   ECOSYSTEM
   ----------------------------------------------------------- */
.ecosystem-section {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 10rem var(--space-lg) 0rem;
}

.ecosystem-card {
    background: #f4faf9;
    padding: 1.875rem 1.625rem;
    min-height: 12.5rem;
    height: 100%;
}

a.ecosystem-card,
a.ecosystem-card:hover {
    color: inherit;
    text-decoration: none;
    transition: box-shadow .15s ease;
}

a.ecosystem-card:hover {
    box-shadow: 0 4px 14px rgba(0, 0, 0, .08);
}

.ecosystem-icon {
    color: #3EA29D;
    margin-bottom: 3.25rem;
    display: flex;
}

.ecosystem-title {
    font-size: 1.75rem;
    line-height: 2.5rem;
    font-weight: 500;
    margin-bottom: 0.625rem;
}

.ecosystem-desc {
    font-size: 1.25rem;
    line-height: 2rem;
    color: #595959;
}

/* Horizontal scroll carousel — 4 cards visible (col-lg-3 = 25% each), rest reached via .carousel-btn prev/next; runs at every viewport width, not just mobile/tablet */
.ecosystem-grid {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.ecosystem-grid::-webkit-scrollbar {
    display: none;
}

.ecosystem-grid .row {
    flex-wrap: nowrap;
}

.ecosystem-grid .row>[class*="col-"] {
    flex: 0 0 auto;
    scroll-snap-align: start;
}

.bg-light-green .section-heading-center {
    margin-bottom: 2.5rem;
}

.transfrOrdr .query-header {
    grid-template-columns: 6rem 1fr 1fr 3fr 0.9fr;
}

.transfrOrdr .query-row {
    grid-template-columns: 6rem 1fr 1fr 3fr 0.9fr;
}

.listofunitcochin .query-row,
.listofunitcochin .query-header {
    grid-template-columns: 1fr 3fr 3fr 1fr;
}

/* -----------------------------------------------------------
   SEZ UNITS DIRECTORY (grouped RTI unit list, /portal/units)
   ----------------------------------------------------------- */
.unit-directory-group {
    margin-bottom: 1.5rem;
    border: 1px solid #e6e6e6;
    border-radius: .5rem;
    overflow: hidden;
}

.unit-directory-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    background: #c4e6e6;
    color: #1a1a1a;
    font-weight: 700;
    font-size: 1.125rem;
    line-height: 1.5;
    padding: 1.375rem 1.25rem;
    border: none;
    text-align: left;
    cursor: pointer;
}

.unit-directory-icon {
    flex-shrink: 0;
    margin-left: 1rem;
    transition: transform .15s ease;
}

.unit-directory-header[aria-expanded="true"] .unit-directory-icon {
    transform: rotate(180deg);
}

.unit-directory-body {
    display: none;
}

.unit-directory-body.is-open {
    display: block;
}

.unit-directory-row {
    padding: 1.5rem 1.25rem;
    font-size: 1.125rem;
    line-height: 1.5;
    color: #444;
    background: #ffffff;
}

.unit-directory-row.alt {
    background: #f1f8f8;
}




.hero-carousel {
    position: relative;
}

.carousel-item {
    position: relative;
}

.hero-carousel .carousel-item::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,
            rgba(20, 96, 92, 0.85) 0%,
            rgba(20, 96, 92, 0.65) 35%,
            rgba(20, 96, 92, 0.2) 60%,
            rgba(20, 96, 92, 0) 100%);
    z-index: 1;
}

.hero-content-wrap {
    position: absolute;
    z-index: 5;
}

.hero-dots,
.hero-carousel-btn,
.carousel-control-prev,
.carousel-control-next {
    z-index: 5;
}

.update-item:first-child {
    border-bottom: 1px solid #eee;
    padding-bottom: 2rem;
    margin-bottom: 2rem;
}

.about-hero-section {
    position: relative;
    overflow: hidden;
}

.about-hero-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg,
            rgba(20, 96, 92, 0.90) 0%,
            rgba(20, 96, 92, 0.75) 35%,
            rgba(20, 96, 92, 0.35) 60%,
            rgba(20, 96, 92, 0) 100%);
    z-index: 1;
    pointer-events: none;
}

/* Keep content above overlay */
.about-hero-grid,
.hero-nav,
.hero-carousel-btn {
    position: relative;
    z-index: 2;
}


.about-hero-section {
    position: relative;
}


.about-hero-section .hero-nav {
    position: absolute;
    left: 11%;
    bottom: 20%;
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.about-hero-section .hero-nav button {
    appearance: none;
    border: none;
    background: none;
    padding: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
}

.about-hero-section .hero-nav .dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.4);
    display: block;
}

.about-hero-section .hero-nav .dash {
    width: 34px;
    height: 6px;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.4) !important;
    display: block;
}

.evntsmainCvr .ecosystem-title {
    font-size: 1.5rem;
    line-height: 2rem;
}

.contrast-switcher button.access-active {
    border: 2px solid #000;
}

@media (min-width: 2000px) {
    .why-chip {
        background: #057671;
    }
}

@media (max-width: 767.98px) {
    .unit-directory-header {
        font-size: 1rem;
        padding: 1rem 1.25rem;
    }

    .unit-directory-row {
        font-size: 1rem;
        padding: 1rem 1.25rem;
    }
}

p {
    font-size: 1.5rem;
    line-height: 2.5rem;
    color: #595959;
}

.function-icon img {
    width: 2.5rem;
    height: 2.5rem;
}

.sidebar-layout .col-12.col-lg-10 {
    padding-left: 4.5rem;
}


.sidebar-page-h1-sm {
    font-size: 2.625rem;
    font-weight: 800;
    margin: 0 0 1rem;
}

.sidebar-page-intro {
    font-size: 1.5rem;
    line-height: 2.5rem;
    color: #595959;
    margin: 0 0 3.5rem;
}

.sidebar-page-intro--lg {
    margin-bottom: 2.75rem;
}

.sidebar-reports-h2 {
    font-size: 3rem;
    line-height: 4.5rem;
    font-weight: 600;
    margin: 0rem;
}

.uac-page-h1 {
    font-size: 3rem;
    font-weight: 600;
    margin: 0 0 1.5rem;
}

/* -----------------------------------------------------------
   RTI HOME PAGE
   ----------------------------------------------------------- */
.rti-home-h1 {
    font-size: 3rem;
    font-weight: 600;
    margin: 0 0 1.5rem;
}

.rti-home-intro {
    font-size: 1.25rem;
    line-height: 2.5rem;
    color: #595959;
    margin: 0 0 2.5rem;
}

.rti-btn-group {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 4rem;
}

.rti-section-block {
    margin-bottom: 5rem;
}

.rti-section-h2 {
    font-size: 1.75rem;
    font-weight: 800;
    margin: 0 0 1.5rem;
}

.rti-section-h2--lg {
    margin-bottom: 2rem;
}

.btn-teal-outline {
    background: #fff;
    color: #057671;
    border: 0.125rem solid #057671;
}

.btn-teal-outline:hover,
.btn-teal-outline:focus {
    background: #f4faf9;
    color: #057671;
    outline-color: #057671;
}

.rti-contact-svg {
    width: 100%;
    max-width: 25rem;
    height: auto;
}

.rti-contact-grid--full {
    max-width: 100%;
    padding: 0;
}

.rti-officers-grid--compact {
    padding: 0 0 4rem;
}

.rti-info-card--teal {
    background: #eef7f5;
}

/* RTI officer avatar colours */
.avatar-teal {
    background: #3EA29D;
}

.avatar-purple {
    background: #5b4ad6;
}

.avatar-orange {
    background: #c2622a;
}

/* RTI Home — full-width Contact Info and Officers sections */
.rti-contact-section {
    padding: 10rem 0;
}

.rti-officers-section {
    padding: 5rem 0 0rem;
}

.rti-fs-inner {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 var(--space-lg);
}

.rti-fs-heading {
    font-size: 3rem;
    font-weight: 600;
    text-align: center;
    margin-bottom: 1.5rem;
    color: #000100;
}

.rti-fs-sub {
    text-align: center;
    color: #474747;
    font-size: 1.5rem;
    margin: 0 auto 2.5rem;
    line-height: 2.5rem;
}

.rti-bldg-img {
    width: 100%;
    min-height: 22rem;
    object-fit: cover;
    border-radius: 0.5rem;
    display: block;
}

.rti-cdetail-list {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.rti-cdetail-row {
    display: flex;
    gap: 0.875rem;
    align-items: flex-start;
}

.rti-cdetail-icon {
    flex-shrink: 0;
    margin-top: 0.5rem;
}

.rti-cdetail-text {
    font-size: 1.25rem;
    color: #474747;
    line-height: 2.25rem;
}

.rti-cdetail-link {
    text-decoration: none;
}

.rti-cdetail-link:hover,
.rti-cdetail-link:focus {
    color: #3EA29D;
    text-decoration: underline;
}

.contact-office-card .rti-cdetail-icon {
    margin-top: 0rem;
}

.rti-officer-card {
    text-align: center;
    background: #fff;
    border: 1px solid #e4eeed;
    border-radius: 0.75rem;
    padding: 2rem 1.5rem;
    height: 100%;
    box-shadow: 0 4px 24px rgba(0, 0, 0, .07);
}

.rti-info-desc p {
    font-size: 1.25rem;
    line-height: 2.25rem;
}

.query-row--last {
    border-bottom: none;
}

/* -----------------------------------------------------------
   TENDERS PAGE
   ----------------------------------------------------------- */
.tenders-main h1 {
    font-size: 3rem;
    font-weight: 600;
    margin: 0 0 1rem;
}

.tenders-intro-text {
    font-size: 1.125rem;
    color: #555;
    margin: 0 0 2.5rem;
}

.tender-card--muted {
    opacity: .75;
}

/* -----------------------------------------------------------
   VACANCIES PAGE
   ----------------------------------------------------------- */
.vacancy-card--teal {
    --vac-bg: #f0f7f7;
}

.vacancy-card--amber {
    --vac-bg: #fdf8f0;
}

/* -----------------------------------------------------------
   ICON IMAGES  (step/ecosystem 48×48)
   ----------------------------------------------------------- */
.icon-img-48 {
    width: 3rem;
    height: 5rem;
    object-fit: contain;
    display: block;
}

/* -----------------------------------------------------------
   PARTNER FOOTER LOGOS  (varying heights for visual balance)
   ----------------------------------------------------------- */
.partner-logo-my-gov {
    height: 7.438rem;
    object-fit: contain;
}

.partner-logo-pm-india {
    height: 7.438rem;
    object-fit: contain;
}

.partner-logo-data-gov {
    height: 7.438rem;
    object-fit: contain;
}

.partner-logo-ngs {
    height: 7.438rem;
    object-fit: contain;
}

/* -----------------------------------------------------------
   EVENT CARD BACKGROUNDS  (CSS custom-property driven)
   ----------------------------------------------------------- */
.event-bg-ev1 {
    --card-bg: url(../assets/img/ev1.png) center/cover no-repeat;
}

.event-bg-ev2 {
    --card-bg: url(../assets/img/ev2.png) center/cover no-repeat;
}

.event-bg-ev3 {
    --card-bg: url(../assets/img/ev3.png) center/cover no-repeat;
}

.event-bg-ev4 {
    --card-bg: url(../assets/img/ev4.jpg) center/cover no-repeat;
}

/* -----------------------------------------------------------
   TENANT PANEL BACKGROUNDS
   ----------------------------------------------------------- */
.tenant-bg-aequs {
    --tile-bg: url(../assets/images/home/aequs.png);
}

.tenant-bg-biocon {
    --tile-bg: url(../assets/images/home/biocon.png);
}

.tenant-bg-infopark {
    --tile-bg: url(../assets/images/home/infopark.png);
}

.tenant-bg-infosys {
    --tile-bg: url(../assets/images/home/infosys.png);
}

.tenant-bg-cognizant {
    --tile-bg: url(../assets/images/home/Infopark-sez.png);
}

.tenant-bg-hcl {
    --tile-bg: url(../assets/images/home/hcl.png);
}

.tenant-bg-csez {
    --tile-bg: url(../assets/images/home/Amruth.png);
}

.tenant-bg-teal {
    --tile-bg: linear-gradient(rgba(62, 162, 157, 0.7),
            rgba(62, 162, 157, 0.7)),
        url('/img-cache/assets/images/home/under-viewall.png');
}

.lasttenantCard {
    position: relative;
    height: 100%;
}

.lasttenantCard a.btn-teal.btn-teal-md {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.lasttenantCard .btn-teal {
    background: #FFFFFF;
    color: #3EA29D;
}

.lasttenantCard .btn-teal:hover svg,
.lasttenantCard .btn-teal:focus svg {
    stroke: #fff;
}

.lasttenantCard .tenant-img-panel {
    height: 100%;
}

/* -----------------------------------------------------------
   CONTACT US
   ----------------------------------------------------------- */
.officers-band .officers-section--bengaluru {
    padding-top: 10rem;
    padding-bottom: 0rem;
}

/* -----------------------------------------------------------
   UAC CARD IMAGES  (rti-approval-commitee)
   ----------------------------------------------------------- */


/* -----------------------------------------------------------
   SHARED SIDEBAR PAGE HEADINGS  (bulletin / RTI pages)
   ----------------------------------------------------------- */
.sidebar-page-h1 {
    font-size: 3rem;
    line-height: 4.5rem;
    font-weight: 600;
    margin-bottom: 0rem;
}

.rti-queryCvr {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2rem;
}




.query-table th:first-child,
.query-table td:first-child {
    width: 6rem;
}

.query-table-wrapper {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.query-table {
    width: 100%;
    min-width: 60rem;
    border-collapse: collapse;
    table-layout: fixed;
}

.query-header {
    background: #c4e6e6;
}

.query-header[role="row"] {
    display: grid;
}

.query-row[role="row"] {
    display: grid;
}

.query-header th,
.query-cell {
    text-align: left;
    padding: 1rem;
    vertical-align: middle;
}

.query-header th {
    font-weight: 600;
    font-size: 1.25rem;
    line-height: 1.75rem;
}

.query-row.alt {
    background: #f1f8f8;
}

.query-row:not(.alt) {
    background: #ffffff;
}



/* =========================================
   PAGE TABS (Documents / Statistics sub-nav)
========================================= */

.nav-tabs {
    border-bottom: 0.0625rem solid #e5e7eb;
    gap: 0.25rem;
}

.nav-tabs .nav-link {
    color: #6b7280;
    font-weight: 500;
    font-size: 1.0625rem;
    background: transparent;
    border: none;
    border-bottom: 0.1875rem solid transparent;
    border-radius: 0;
    padding: 0.75rem 1.25rem;
    margin-bottom: -0.0625rem;
}

.nav-tabs .nav-link:hover {
    color: #057671;
    border-bottom-color: #c4e6e6;
}

.nav-tabs .nav-link:focus-visible {
    outline: 0.125rem solid #057671;
    outline-offset: 0.125rem;
}

.nav-tabs .nav-link.active {
    color: #057671;
    font-weight: 700;
    background: transparent;
    border-bottom-color: #057671;
}

#doc-tabs .nav-link {
    font-size: 1.7rem;
}

html.csez-contrast-dark .nav-tabs {
    border-bottom-color: #333 !important;
}

html.csez-contrast-dark .nav-tabs .nav-link {
    color: #ccc !important;
}

html.csez-contrast-dark .nav-tabs .nav-link:hover,
html.csez-contrast-dark .nav-tabs .nav-link.active {
    color: #3EA29D !important;
    border-bottom-color: #3EA29D !important;
}



/* =========================================
   TABLE HORIZONTAL SCROLL
========================================= */

.query-table-wrapper {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}


/* =========================================
   TABLE
========================================= */

.yearwiseTable {
    display: table !important;
    width: 100%;
    min-width: 60rem;
    border-collapse: collapse;
    table-layout: fixed;
}

.yearwiseTable .query-header {
    display: table-header-group !important;
}

.yearwiseTable .query-header tr {
    display: table-row !important;
}


/* =========================================
   COLUMN WIDTHS
========================================= */

.yearwiseTable th:nth-child(1),
.yearwiseTable td:nth-child(1) {
    width: 7rem;
}

.yearwiseTable th:nth-child(2),
.yearwiseTable td:nth-child(2) {
    width: 8rem;
}

.yearwiseTable th:nth-child(3),
.yearwiseTable td:nth-child(3) {
    width: 8rem;
}

.yearwiseTable th:nth-child(4),
.yearwiseTable td:nth-child(4) {
    width: 11rem;
}

.yearwiseTable th:nth-child(5),
.yearwiseTable td:nth-child(5),
.yearwiseTable th:nth-child(6),
.yearwiseTable td:nth-child(6) {
    width: 8rem;
}

.yearwiseTable th:nth-child(7),
.yearwiseTable td:nth-child(7) {
    width: 8rem;
}

.yearwiseTable th:nth-child(8),
.yearwiseTable td:nth-child(8) {
    width: 8rem;
}




/* Employments heading */

.yearwiseTable .qh-group {
    height: 2.5rem;
    text-align: center;
}


/* Male / Female / Total */

.yearwiseTable .qh-sub {
    padding: 0.75rem 0.5rem;
    border-top: 1px solid rgba(0, 0, 0, 0.15);
}

.filter-bar.proCuremnt+.query-table th:first-child,
.filter-bar.proCuremnt+.query-table td:first-child {
    width: auto;
}

.listofunitcochin .query-table th:first-child,
.listofunitcochin .query-table td:first-child {
    width: 10rem;
}








/* ============================================================
   FLUID REM SCALING — DO NOT REMOVE OR OVERRIDE
   All rem values in this file scale with viewport width.
   Formula: (viewport ÷ design-width) × 16
   ============================================================ */
html {
    font-size: calc(100vw * 16 / 1920);
    /* Large screen: 1920px design */
    scroll-behavior: smooth;
    scroll-padding-top: 1rem;
}

/* Horizontal scroll carousel card width — narrower per-card width on tablet / mobile so the swipe/scroll motion reads clearly; desktop keeps Bootstrap's col-lg-3 25% width (4 cards visible per view) */
@media (max-width: 62rem) {
    html {
        font-size: calc(100vw * 16 / 768);
        /* Tablet: 768px design */
    }

    .ecosystem-grid .row>[class*="col-"] {
        width: 50%;
    }
}

@media (max-width: 36rem) {



    html {
        font-size: calc(100vw * 16 / 390);
        /* Mobile: 390px design */
    }

    .ecosystem-grid .row>[class*="col-"] {
        width: 100%;
    }
}

/* -----------------------------------------------------------
   RECENT EVENTS
   ----------------------------------------------------------- */
.events-section {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 10rem var(--space-lg) 0rem;
}

.event-card {
    position: relative;
    height: 30rem;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    background: var(--card-bg, #3EA29D);
    text-decoration: none;
}

.event-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0, 0, 0, .75), rgba(0, 0, 0, 0) 60%);
}

.event-title {
    position: relative;
    color: #fff;
    font-size: 1.5rem;
    font-weight: 500;
    line-height: 1.6;
    padding: 1.25rem;
}

/* -----------------------------------------------------------
   LATEST UPDATES
   ----------------------------------------------------------- */
.updates-section {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 10rem var(--space-lg) 0rem;
}

.update-tab {
    height: 12.438rem;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.update-tab-eou {
    background-image: url('/img-cache/assets/images/home/eou-scheme.png');
}

.update-tab-csez {
    background-image: url('../assets/images/home/csez-authority.png');
}

.update-tab-label {
    color: #fff;
    font-size: 2rem;
    font-weight: 700;
    padding-right: 1.375rem;
    position: relative;
    line-height: 1.35;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
}

.update-tab.update-tab-eou {
    margin-bottom: 2rem;
}

.update-list {
    display: flex;
    flex-direction: column;
}

.update-item {
    flex: 1;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 1.25rem;
    border-bottom: 1px solid #eee;
}

.updates-tab-col {
    padding-right: 3.75rem;
}

.update-item:last-child {
    border-bottom: none;
}

.update-item-body {
    flex: 1;
}

.update-item-title {
    font-size: 1.65rem;
    font-weight: 500;
    color: #000000;
    line-height: 2rem;
    margin-bottom: 1rem;
}

.update-item-date {
    font-size: 1.25rem;
    color: #595959;
}

.update-item-arrow {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    color: #3EA29D;
}

/* -----------------------------------------------------------
   SEZ TENANTS
   ----------------------------------------------------------- */
.sez-tenants-bg {
    background: #f4faf9;
    margin-top: 10rem;
}

.tenants-inner {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 4rem var(--space-lg);
}

.tenant-card {
    overflow: hidden;
    padding-bottom: 3.5rem;
}

.tenant-img-panel {
    height: 15rem;
    background: var(--tile-bg, #3EA29D);
    background-size: cover;
    background-position: center;
}

.tenant-info {
    padding: 1.5rem 0rem 0rem 0rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-height: 4.625rem;
    justify-content: center;
}

.tenant-logo {
    height: 4.5rem;
    width: auto;
    max-width: 8.75rem;
    object-fit: contain;
    object-position: left;
}

.tenant-loc {
    font-size: 1.5rem;
    line-height: 2.5rem;
    color: #595959;
    margin-bottom: 0;
}

/* -----------------------------------------------------------
   TESTIMONIAL
   ----------------------------------------------------------- */
.testimonial-section {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 10rem var(--space-lg);
}

.testimonial-inner {
    display: block;
}

.testimonial-top {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-bottom: 2.5rem;
}

.testimonial-quote-mark {
    width: 3.5rem;
    height: auto;
    flex-shrink: 0;
}

.testimonial-heading {
    font-size: 3.5rem;
    line-height: 1.1;
    font-weight: 600;
    margin: 0;
    color: #121212;
}

.testimonial-blockquote {
    margin: 0;
    padding: 0;
    padding-left: 5.625rem;
}

.testimonial-quote {
    font-size: 1.5rem;
    line-height: 2.5rem;
    color: #5C5C5C;
    margin: 0 0 2.25rem;
}

.testimonial-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.testimonial-person {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.testimonial-avatar {
    width: 5.5rem;
    height: 5.5rem;
    border-radius: 50%;
    background: #3EA29D;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.375rem;
    font-weight: 700;
    flex-shrink: 0;
    user-select: none;
}

.testimonial-name {
    font-size: 2rem;
    line-height: 3rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
    color: #151515;
}

.testimonial-role {
    font-size: 1.25rem;
    line-height: 2rem;
    color: #5C5C5C;
    margin-bottom: 0;
}

.testimonial-controls {
    display: flex;
    gap: 1.5rem;
}

.carousel-btn-lg {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity 0.2s ease;
}

.carousel-btn-lg:hover {
    opacity: 0.7;
}

/* -----------------------------------------------------------
   FAQ
   ----------------------------------------------------------- */

.faq-inner {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0rem var(--space-lg);
}

#faq-heading {
    font-size: 3.5rem;
    font-weight: 600;
    color: #121212;
    margin: 0 0 1rem;
}

.faq-item {
    border-bottom: 1px solid #cfcfcf;
    padding: 1.375rem 0;
}

.faq-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    cursor: pointer;
}

.faq-question {
    font-size: 2rem;
    line-height: normal;
    font-weight: 500;
    color: #121212;
}

.faq-sign {
    font-size: 2.5rem;
    color: #3EA29D;
    flex: none;
}

.faq-answer {
    font-size: 1.5rem;
    line-height: 2.5rem;
    color: #595959;
    margin: 1rem 0 0;
}

.faq-cta {
    margin-top: 2rem;
}

.faq-illustration {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

.faq-illustration-img {
    width: 100%;
    max-width: 32.688rem;
    height: auto;
    display: block;
    padding-left: 3.125rem;
}

.faq-item .faq-answer {
    display: none;
}

.faq-item.faq-open .faq-answer {
    display: block;
}

/* -----------------------------------------------------------
   FOOTER
   ----------------------------------------------------------- */
.site-footer {
    background: #fff;
}

.partner-band {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 4rem var(--space-lg) 3rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.partner-logo-wrap {
    flex: 1;
    display: flex;
    justify-content: center;
}

.partner-logo-wrap a {
    display: inline-flex;
    align-items: center;
}

.partner-divider {
    width: 1px;
    height: 3.625rem;
    background: #e3e3e3;
    flex-shrink: 0;
}

/* Footer partner logos become a horizontal slider once more than the default
   4 are configured in admin — scoped to the same ≥62rem breakpoint as the
   nowrap row above; narrower widths already wrap to multiple rows via the
   ≤62rem override below, so no slider/arrows are needed there. */
.partner-band-wrap {
    position: relative;
    max-width: var(--container-max);
    margin: 0 auto;
}

.partner-band-nav {
    display: none;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    background: #fff;
    box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.08);
}

.partner-band-nav.is-visible {
    display: flex;
}

.partner-band-nav-prev {
    left: 0.75rem;
}

.partner-band-nav-next {
    right: 0.75rem;
}

@media (min-width: 62.0625rem) {

    .partner-band.is-scrollable {
        flex-wrap: nowrap;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        justify-content: flex-start;
    }

    .partner-band.is-scrollable::-webkit-scrollbar {
        display: none;
    }

    .partner-band.is-scrollable .partner-logo-wrap {
        flex: 0 0 25%;
        scroll-snap-align: start;
    }
}

.contact-band-wrapper {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 var(--space-lg);
}

.contact-band {
    background: #057671;
    display: flex;
    align-items: center;
    padding: 1.125rem 2rem;
    gap: 3rem;
}

.contact-logo-link {
    display: flex;
    align-items: center;
    flex: none;
    text-decoration: none;
}

.contact-logo {
    height: 5.188rem;
    width: auto;
    object-fit: contain;
}

.contact-details {
    display: flex;
    align-items: center;
    gap: 3rem;
    margin-left: auto;
}

.contact-detail-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    color: #fff;
    font-size: 1.5rem;
    font-weight: 600;
    text-decoration: none;
}

.contact-detail-item:hover {
    color: #e0f2f1;
}

.footer-link-cols {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 3rem var(--space-lg) 2.25rem;
}

.footer-col-heading {
    font-size: 1.5rem;
    font-weight: 700;
    color: #121212;
    margin: 0 0 1.125rem;
}

.footer-address {
    font-size: 1.25rem;
    color: #595959;
    line-height: 1.9;
    margin: 0;
}

.footer-link-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
    font-size: 1.25rem;
}

.footer-link {
    color: #595959;
    text-decoration: none;
}

.footer-link:hover,
.footer-link:focus {
    color: #057671;
    text-decoration: underline;
}

.copyright-bar-wrapper {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 0 var(--space-lg);
}

.copyright-bar {
    border-top: 1px solid #e3e3e3;
    padding: 1.25rem 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.25rem;
    font-size: 0.875rem;
    color: #888;
}



/* ---- units-list ---- */

span.units-title {
    font-size: 1.5rem;
    line-height: 3rem;
    font-weight: 500;
    color: #000000;


}

.units-title-meta {
    padding: 0.5rem 1.5rem;
    background: #C4E5E3;
}

.unit-list-points div {
    font-size: 1.25rem;
    line-height: 3rem;
    color: #555454;
    padding: 1.5rem 1.5rem;
}

.unit-list-points div:nth-child(odd) {
    background-color: #F4FAF9;
}

.sidebar-page-head h1 {
    margin-bottom: 1.5rem;
}

.sidebar-page-head p {
    margin-bottom: 2.5rem;
}

.eou-unitHeading {
    font-size: 3.5rem;
    line-height: normal;
    color: #057671;
    font-weight: 600;
    margin-bottom: 1.25rem;
}

.eou-unit-head {
    padding: 1.5rem 2rem;
    background: #FFFFFF;
    border-radius: 1rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.eou-unitCvr {
    margin-bottom: 4.438rem;
}

.prdctSearch {
    justify-content: flex-end;
    margin-bottom: 1.563rem;
}

/*.prdctSearch .query-row {*/
/*    grid-template-columns: 6rem 1.4fr 1fr 1.1fr 1.9fr 1fr;*/
/*}*/
/*.prdctSearch .query-header {*/
/*    grid-template-columns: 6rem 1.4fr 1fr 1.1fr 1.9fr 1fr;*/
/*}*/
.fundsTable .query-row,
.fundsTable .query-header {
    grid-template-columns: 6rem 1.6fr 1.2fr 1.2fr 1fr;
}

.auditReportsTable .query-row,
.auditReportsTable .query-header {
    grid-template-columns: 6rem 3.2fr 1.3fr 0.9fr 1.3fr 1.1fr;
}

.grantsTable .query-row,
.grantsTable .query-header {
    grid-template-columns: 6rem 1.6fr 1.1fr 1.3fr 1.3fr 1fr;
}

.officialsTable .query-row,
.officialsTable .query-header {
    grid-template-columns: 6rem 2.8fr 3.9fr 2.5fr 1.3fr;
}

.unitsTable .query-row,
.unitsTable .query-header {
    grid-template-columns: 6rem 4.4fr 3.6fr 1.4fr;
}

.exportsTable .query-row,
.exportsTable .query-header {
    grid-template-columns: 6rem 3.4fr 2.2fr 2.7fr;
}

.procurementTable .query-row,
.procurementTable .query-header {
    grid-template-columns: 1.3fr 2fr 2.1fr 1fr;
}

.recruitmentTable .query-row,
.recruitmentTable .query-header {
    grid-template-columns: 6rem 3.4fr 1.8fr;
}

.investmentTable .query-row,
.investmentTable .query-header {
    grid-template-columns: 6rem 6.2fr 3.3fr;
}

.employmentTable .query-row,
.employmentTable .query-header {
    grid-template-columns: 6rem 4.3fr 1.75fr 1.75fr 1.75fr;
}

.employmentTable .qh-group {
    grid-column: 3 / span 3;
}

.transferTable .query-row,
.transferTable .query-header {
    grid-template-columns: 6rem 2.2fr 1.9fr 4.6fr 1.3fr;
}

.rtiQueriesTable .query-row,
.rtiQueriesTable .query-header {
    grid-template-columns: 5rem 2fr 3fr 1.3fr 1.1fr 1.5fr;
}

.yearwiseTable .query-row,
.yearwiseTable .query-header {
    grid-template-columns: 2fr 2fr 1.75fr 1fr 1.5fr 1.6fr 2.2fr 2fr;
}

.yearwiseTable .qh-group {
    grid-column: 4 / span 3;
}

/* -----------------------------------------------------------
   RESPONSIVE
   ----------------------------------------------------------- */

/* ── 87.5rem: Large desktop ──────────────────────────────── */
/*@media (max-width: 87.5rem) {*/
/*  .hero-section h1  { font-size: 3rem; }*/
/*  .about-hero-h1    { font-size: 3rem; }*/
/*}*/

/* ── 75rem: Small laptop / tablet landscape ────────────── */
@media (max-width: 75rem) {
    .about-hero-h1 {
        font-size: 2.75rem;
    }
}


button.manual-item-title.cc-item-title {
    font-size: 1.5rem;
    line-height: 2rem;
}

/* ── 62rem: Tablet portrait ─────────────────────────────── */
@media (max-width: 62rem) {
    .main-nav-wrapper {
        border-bottom: 0;
    }

    .evntsmainCvr .ecosystem-title {
        font-size: 1.25rem !important;
        line-height: 1.75rem !important;
    }

    button.manual-item-title.cc-item-title {
        font-size: 1rem;
        line-height: 1.5rem;
    }

    .contact-band {
        justify-content: space-around;
    }

    .evolution-heading {
        text-align: center;
    }

    .locator-wrap {
        margin-top: 1rem !important;
    }

    .locator-sidebar {
        display: flex !important;
        flex-direction: column !important;
        max-height: 100vh !important;
    }

    .locator-list {
        flex: 1 !important;
        overflow-y: auto !important;
        min-height: 0 !important;
    }

    .main-nav-inner {
        gap: 0rem;
    }

    .utility-bar-inner {
        display: none;
    }

    .nav-dropdown {
        display: none !important;
    }

    .nav-dropdown.is-open {
        display: block !important;
    }









    .about-hero-section .hero-nav {
        display: flex;
        align-items: center;
        left: 50%;
        bottom: 13%;
        transform: translateX(-50%);
        margin: 0;
        padding: 0;
        justify-content: center;
        gap: 0.3125rem;
        z-index: 3;
    }

    .rti-fs-heading {
        font-size: 1.65rem;
        line-height: 2.5rem;
        margin-bottom: 0.5rem;
    }

    .promo-arrow {
        width: 2.5rem;
        height: 2.5rem;
    }

    .testimonial-top {
        margin-bottom: 1.5rem;
    }

    .faq-illustration-img {
        padding-left: 0rem;
    }

    .partner-logo-wrap {
        text-align: center;
    }

    .tenant-card {
        padding-bottom: 1rem;
    }

    .tenant-logo {
        height: 2.5rem;
    }

    .update-item:first-child {
        padding-bottom: 1rem;
        margin-bottom: 1rem;
    }

    .hero-dots {
        left: 50%;
        bottom: 13%;
        transform: translateX(-50%);
        margin: 0;
        padding: 0;
        justify-content: center;
        gap: 0.3125rem;
        z-index: 3;
    }

    .hero-text-box {
        max-width: 80%;
        margin: 0 auto;
        text-align: center;
    }

    /* Utility bar — font size and contrast are accessibility-critical (GIGW), so they
     stay visible and wrap onto their own line instead of being hidden; only the
     purely decorative social links are dropped to save space. */
    .utility-bar-inner {
        height: auto;
        padding: 0.5rem 1.25rem;
        gap: 0.75rem;
    }

    .social-links {
        display: none;
    }

    /* Updates — .updates-tab-col and .update-list stack (Bootstrap col-lg-5/col-lg-7)
     below the lg breakpoint; Bootstrap's row gutter only adds horizontal spacing,
     so a gap is needed here or the tab images and "LATEST UPDATES" heading sit flush. */
    .updates-tab-col {
        margin-bottom: 2rem;
    }

    /* Site banner */
    .site-banner {
        height: auto;
        padding: 0.875rem 0;
    }

    /* min width guarantees the logo (fixed 5:1 aspect ratio) always fits on the teal
     background — a plain 40% shrinks below the logo's rendered width on narrow phones,
     spilling the white logo onto the white banner background where it becomes invisible. */
    .banner-teal-bg {
        clip-path: none;
        width: max(40%, 14rem);
    }

    .banner-inner {
        gap: 1rem;
    }

    .banner-logo {
        height: 3rem;
    }

    .banner-campaign-logo {
        height: 4.25rem;
    }

    .logo-ai-summit {
        margin-left: 0.75rem;
    }

    .logo-azadi {
        margin-left: 1.5rem;
    }

    /* Navigation */
    .nav-hamburger {
        display: flex;
        padding: 0.75rem;
        min-width: 2.75rem;
        min-height: 2.75rem;
        justify-content: center;
        align-items: center;
    }

    .main-nav-inner {
        justify-content: flex-end;
        min-height: 3.25rem;
    }

    .primary-nav-list {
        display: none;
        flex-direction: column;
        gap: 0;
        width: 100%;
        padding-bottom: 0.75rem;
    }

    .primary-nav-list.is-open {
        display: flex;
    }

    .primary-nav-list .nav-item {
        width: 100%;
        border-bottom: 1px solid #eee;
    }

    .primary-nav-list .nav-link {
        padding: 0.875rem 0.25rem;
        width: 100%;
        font-size: 1rem;
        justify-content: space-between;
    }

    .nav-dropdown {
        position: static;
        box-shadow: none;
        border: none;
        margin-left: 0.75rem;
    }

    /* Hero */
    .hero-section {
        height: 30rem;
    }

    .hero-section h1 {
        font-size: 2.375rem;
    }

    .hero-body {
        font-size: 1.0625rem;
    }

    /* Typography */
    .section-heading-center {
        font-size: 1.75rem;
    }

    .section-heading {
        font-size: 1.875rem;
    }

    #launchpad-heading {
        font-size: 1.75rem;
    }

    .section-heading-lg {
        font-size: 1.625rem;
    }

    .page-intro h1 {
        font-size: 2.25rem;
    }

    .vacancies-intro h1 {
        font-size: 2.25rem;
    }

    .tenders-main h1 {
        font-size: 2.25rem;
    }

    .vision-heading {
        font-size: 1.875rem;
    }

    .mission-heading {
        font-size: 1.875rem;
    }

    .functions-heading {
        font-size: 1.875rem;
    }

    .evolution-heading {
        font-size: 2rem;
    }

    .contact-form-title {
        font-size: 1.75rem;
    }

    .stat-value {
        font-size: 2.125rem;
    }

    /* Footer */
    .contact-band {
        flex-wrap: wrap;
        gap: 1.25rem;
        padding: 1.125rem var(--space-lg);
    }

    .contact-details {
        flex-wrap: wrap;
        gap: 1rem;
        margin-left: 0;
    }

    .contact-detail-item {
        font-size: 1.125rem;
    }

    /* Footer partner band — nowrap row of 4 logos + 3 dividers only fits at
     ≥62rem (desktop); without this it silently overflowed the whole page
     between 48rem and 62rem (the ≤48rem rule below already fixes it under
     48rem). */
    .partner-band {
        flex-wrap: wrap;
        justify-content: center;
        row-gap: 1.25rem;
        padding: 4rem var(--space-lg) 3rem;
    }

    .partner-divider {
        display: none;
    }

    /* Updates table */
    .update-tab {
        width: 12.5rem;
    }

    .update-tab-label {
        font-size: 1.0625rem;
    }

    /* Testimonial */
    .testimonial-quote {
        font-size: 1.125rem;
    }

    /* Contact form — the row's align-items:stretch (fine on desktop, where
     both columns are naturally similar height) forces .contact-map-panel
     to match .contact-form-panel's height once the narrower 2-up column
     makes the form wrap taller; with background-size:contain + center,
     the image then renders tiny and stranded in a lot of blank space
     above/below it. Top-align instead so the image panel sizes to its own
     (much smaller) min-height. */
    .contact-grid .row {
        align-items: flex-start !important;
    }

    /* overrides Bootstrap's .align-items-stretch utility class in the markup, which is itself !important */
    .contact-form-panel {
        padding: 2rem 1.75rem;
    }

    .contact-map-panel {
        min-height: 23.75rem;
    }
}


/* -----------------------------------------------------------
   NAV DROPDOWN — JS-toggled open state (mobile / keyboard)
   ----------------------------------------------------------- */
.nav-dropdown.is-open {
    display: block;
}

/* -----------------------------------------------------------
   RTI SIDEBAR LAYOUT  (bulletin, RTI pages)
   ----------------------------------------------------------- */
.sidebar-layout {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 6rem var(--space-lg) 0rem;
}

.sidebar-heading {
    background: #3EA29D;
    color: #fff;
    font-size: 1.65rem;
    font-weight: 700;
    padding: 1rem 1.375rem;
    box-shadow: 0 0.25rem 0.75rem rgba(20, 16, 4, .08);
    width: 100%;
    border: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    font-family: inherit;
    text-align: left;
    cursor: pointer;
}

.sidebar-heading>span {
    min-width: 0;
    overflow-wrap: break-word;
}

/* Longer group titles (e.g. "Special Economic Zones") step down so they fit on one line */
.sidebar-heading--long {
    font-size: 1.3rem;
    line-height: 1.95rem;
}

.sidebar-heading-icon {
    flex-shrink: 0;
    transition: transform 0.2s ease;
}

.sidebar-heading[aria-expanded="false"] .sidebar-heading-icon {
    transform: rotate(-90deg);
}

.sidebar-nav-group {
    overflow: hidden;
}

.sidebar-nav-group[hidden] {
    display: none;
}

.sidebar-link {
    display: block;
    text-decoration: none;
    font-size: 1.25rem;
    color: #1a1a1a;
    padding: 1.125rem 1rem;
    border: 3px solid #F4FAF9;
    background: transparent;
}

.sidebar-layout .col-lg-3 aside:not(:first-child) {
    margin-top: 1.5rem;
}

@media (min-width: 62rem) {
    .sidebar-layout .row {
        --bs-gutter-x: 3rem;
    }

    .sidebar-layout .col-lg-3 {
        flex: 0 0 20%;
        max-width: 20%;
    }

    .sidebar-layout .col-lg-9 {
        flex: 0 0 78%;
        max-width: 78%;
    }
}

.sidebar-link:hover,
.sidebar-link:focus {
    background: #eef7f5;
    color: #057671;
}

.sidebar-link[aria-current="page"] {
    background: #eef7f5;
}

/* -----------------------------------------------------------
   FILTER BAR  (bulletin, RTI approval, RTI circulars, tenders)
   ----------------------------------------------------------- */
.filter-bar {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.tendersHead {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 5rem;
}

.filter-controls {
    display: flex;
    align-items: center;
    gap: 0.875rem;
}

.filter-select {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    border: 1px solid #057671;
    border-radius: 0.5rem;
    padding: 0.75rem 1.125rem;
    font-size: 1.125rem;
    color: #555;
    min-width: 10rem;
    background: #F4FAF9;
    cursor: pointer;
    font-family: inherit;
}

.filter-select:focus {
    outline: 0.125rem solid #3EA29D;
    outline-offset: 0.125rem;
}

.filter-select-icon {
    margin-left: auto;
}

.filter-search-input {
    border: none;
    background: transparent;
    outline: none;
    font: inherit;
    color: inherit;
    width: 100%;
    min-width: 8rem;
}

/* Selects paired with an explicit .filter-select-icon chevron (Tenders) must not also show the browser's native arrow. */
select.filter-search-input:has(+ .filter-select-icon) {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
}

.filter-search-input::placeholder {
    color: #6E6666;
}

.btn-search {
    background: #0a6b66;
    color: #fff;
    border: none;
    border-radius: 0.5rem;
    padding: 0.8125rem 1.875rem;
    font-size: 1rem;
    font-family: inherit;
    font-weight: 500;
    cursor: pointer;
}

.btn-search:hover,
.btn-search:focus {
    background: #085a55;
    outline: 0.125rem solid #057671;
    outline-offset: 0.125rem;
}

/* -----------------------------------------------------------
   YEAR ACCORDION  (bulletin, RTI circulars)
   ----------------------------------------------------------- */
.year-group {
    background: #f3faf9;
    padding: 0 1.75rem;
    margin-bottom: 1.25rem;
}

.year-group-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem 0;
    width: 100%;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
}

.year-group-header:focus-visible {
    outline: 0.125rem solid #3ea29d;
    outline-offset: 0.125rem;
}

.year-group-body {
    padding-bottom: 1rem;
}

.year-group-meta {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.year-icon-box {
    width: 2.625rem;
    height: 2.625rem;
    border-radius: 0.5rem;
    background: #d4ece8;
    display: flex;
    align-items: center;
    justify-content: center;
}

.year-icon-box i {
    font-size: 1.375rem;
    line-height: 1;
}

.year-chevron {
    font-size: 1.125rem;
    line-height: 1;
    color: #057671;
}

.year-title-open {
    font-size: 2rem;
    line-height: 2.5rem;
    font-weight: 600;
    color: #121212;
}

.year-title-closed {
    font-size: 2rem;
    line-height: 2.5rem;
    font-weight: 400;
    color: #121212;
}

/* -----------------------------------------------------------
   GRID TABLE  (bulletin, RTI approval, RTI query)
   ----------------------------------------------------------- */
.grid-table {
    background: #fff;
}

.grid-table-header {
    display: grid;
    background: #d6ece8;
}

.grid-table-header div {
    padding: 1.125rem 1.375rem;
    font-size: 1.25rem;
    font-weight: 700;
}

.grid-table-row {
    display: grid;
    border-bottom: 1px solid #eee;
}

.grid-table-row:last-child {
    border-bottom: none;
}

.grid-table-row.alt {
    background: #f3faf9;
}

.grid-table-cell {
    padding: 1.375rem;
    font-size: 1.125rem;
    color: #555454;
    line-height: 1.5;
}

/* -----------------------------------------------------------
   INFO TABLE  (static contact-detail tables — Vigilance, Grievances)
   Brand-tinted variant of Bootstrap's .table-bordered so plain
   static content tables don't stay raw browser-gray.
   ----------------------------------------------------------- */
.csez-info-table {
    border-color: #d6ece8;
}

.csez-info-table> :not(caption)>*>* {
    padding: 1rem 1.25rem;
    border-color: #d6ece8;
    font-size: 1.0625rem;
}

.csez-info-table thead th {
    background: #d6ece8;
    font-weight: 700;
    color: #121212;
}

.view-link {
    color: #057671;
    font-size: 1.25rem;
    font-weight: 600;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}

.manual-item-icon img {
    width: 2.5rem;
    height: 2.5rem;
}

.view-link:hover,
.view-link:focus {
    text-decoration: underline;
    outline: 0.125rem solid #0a6b66;
    outline-offset: 0.125rem;
}

/* -----------------------------------------------------------
   CIRCULARS LIST  (RTI circulars — plain list rows, no grid-table)
   ----------------------------------------------------------- */
.circ-list {
    background: #fff;
}

.circ-icon-box {
    width: 3rem;
    height: 3rem;
    border-radius: 0.75rem;
    background: #DBF3EF;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.circ-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.25rem 1.375rem;
    border-bottom: 1px solid #eee;
}

.circ-item:last-child {
    border-bottom: none;
}

.circ-item-main {
    flex: 1 1 auto;
    min-width: 0;
}

.circ-item-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #121212;
    line-height: 1.5;
}

.circ-item-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem 1.5rem;
    margin-top: 0.375rem;
    font-size: 1rem;
    color: #6E6666;
}

.circ-item .view-link {
    flex: 0 0 auto;
}

/* -----------------------------------------------------------
   PAGINATION  (Bootstrap .pagination override — brand teal)
   ----------------------------------------------------------- */
.pagination .page-link {
    color: #057671;
    border-color: #d6ece8;
}

.pagination .page-link:hover,
.pagination .page-link:focus {
    color: #057671;
    background-color: #eef7f5;
    border-color: #057671;
    box-shadow: none;
}

.pagination .page-item.active .page-link {
    background-color: #057671;
    border-color: #057671;
    color: #fff;
}

.pagination .page-item.disabled .page-link {
    color: #aaa;
    background-color: #f8f9fa;
    border-color: #eee;
}

.procedure-description {
    line-height: 1.6;
    margin-bottom: 0.75rem;
}

.procedure-description :is(p, table, ul, ol, h1, h2, h3, h4, h5, h6) {
    margin-bottom: 0.75rem;
}

/* Legacy content pasted from Gmail/Google Docs carries its own inline
   style="color:..." on every <a> — only !important in an external sheet
   can beat an inline style, so the color/underline overrides need it here. */
.procedure-description a {
    color: #057671 !important;
    font-weight: 600;
    text-decoration: none !important;
    word-break: break-word;
    display: inline-flex;
    align-items: flex-start;
    gap: 0.375rem;
    border-bottom: 0.0625rem solid transparent;
    transition: border-color 0.15s;
}

.procedure-description a::before {
    content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23057671' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7'/%3E%3Cpath d='M7 7h10v10'/%3E%3C/svg%3E");
    flex-shrink: 0;
    margin-top: 0.125rem;
}

.procedure-description a:hover,
.procedure-description a:focus-visible {
    border-bottom-color: #057671;
}

/* Legacy content also mixes headings (h4/h5) in for plain label lines and
   link-only lines alike — normalize them to read as labels, not oversized
   headings, regardless of which tag the original editor happened to use. */
.procedure-description :is(h1, h2, h3, h4, h5, h6) {
    font-size: 1rem;
    font-weight: 700;
    color: #1f2d2b;
    line-height: 1.5;
}

/* A line that's just a pasted resource link (its own <p>/<h*> with nothing
   else in it) reads as a card instead of a raw hyperlink dumped on its own line. */
.procedure-description :is(p, h1, h2, h3, h4, h5, h6):has(> a:only-child) {
    display: flex;
    background: #f2f9f8;
    border: 0.0625rem solid #d7ece9;
    border-radius: 0.5rem;
    padding: 0.6875rem 0.9375rem;
    margin-top: -0.25rem;
}

/* The plain-text label right before a link card (e.g. "REX – Registered
   Exporter system") sits snug above it instead of floating with a full gap. */
.procedure-description :is(p, h1, h2, h3, h4, h5, h6):has(+ :is(p, h1, h2, h3, h4, h5, h6) > a:only-child) {
    margin-bottom: 0.375rem;
}

/* -----------------------------------------------------------
   VACANCY CARDS
   ----------------------------------------------------------- */
.vacancy-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.vacancy-card {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 1.25rem;
    background: #f2f9f8;
    border: 0.0625rem solid #e3f0ee;
    border-radius: 0.75rem;
    padding: 1.25rem 6.5rem 1.25rem 1.5rem;
}

.vacancy-num {
    flex: none;
    width: 2.625rem;
    height: 2.625rem;
    border-radius: 0.5rem;
    background: #d4ece8;
    color: #057671;
    font-weight: 700;
    font-size: 1.125rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.vacancy-body {
    flex: 1;
    min-width: 0;
}

.vacancy-title {
    font-weight: 700;
    color: #121212;
    font-size: 1.125rem;
    line-height: 1.4;
    margin-bottom: 0.25rem;
}

.vacancy-desc {
    color: #555;
    font-size: 0.9375rem;
    line-height: 1.5;
    margin-bottom: 0.75rem;
}

.vacancy-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem 1.5rem;
    align-items: center;
    font-size: 0.9375rem;
}

.vacancy-posted,
.vacancy-deadline {
    display: inline-flex;
    align-items: center;
    gap: 0.4375rem;
    font-weight: 600;
}

.vacancy-posted {
    color: #057671;
}

.vacancy-deadline {
    color: #c62828;
}

.vacancy-deadline.is-closed {
    color: #888;
}

.vacancy-posted::before,
.vacancy-deadline::before {
    content: '';
    flex: none;
    width: 1.125rem;
    height: 1.125rem;
}

.vacancy-posted::before {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23057671' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E") no-repeat center / contain;
}

.vacancy-deadline::before {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23c62828' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 3'/%3E%3C/svg%3E") no-repeat center / contain;
}

.vacancy-deadline.is-closed::before {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 3'/%3E%3C/svg%3E") no-repeat center / contain;
}

.vacancy-view {
    position: absolute;
    top: 1.25rem;
    right: 1.5rem;
    color: #057671;
    font-weight: 700;
    font-size: 0.9375rem;
    text-decoration: underline;
    display: inline-flex;
    align-items: center;
    gap: 0.3125rem;
    white-space: nowrap;
}

.vacancy-view:hover,
.vacancy-view:focus-visible {
    outline: 0.125rem solid #057671;
    outline-offset: 0.125rem;
}

@media (max-width: 36rem) {
    .partner-logo-wrap a {
        display: block;
    }

    .banner-teal-bg {
        width: 100%;
    }

    .btn-center-wrap {
        margin-top: 0.75rem;
    }

    .vacancy-card {
        flex-direction: column;
        padding: 1.125rem 1.25rem;
    }

    .vacancy-view {
        position: static;
        margin-top: 0.75rem;
    }
}

html.csez-contrast-dark .vacancy-card {
    background: #10221f !important;
    border-color: #1f3d38 !important;
}

html.csez-contrast-dark .vacancy-num {
    background: #2a4a46 !important;
    color: #3EA29D !important;
}

html.csez-contrast-dark .vacancy-title {
    color: #f0f0f0 !important;
}

html.csez-contrast-dark .vacancy-desc {
    color: #bbb !important;
}

html.csez-contrast-dark .vacancy-posted {
    color: #3EA29D !important;
}

html.csez-contrast-dark .vacancy-view {
    color: #3EA29D !important;
}

/* -----------------------------------------------------------
   CIRCULAR ITEM  (RTI circulars)
   ----------------------------------------------------------- */
.circular-item {
    margin-top: 0.875rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    border-bottom: 1px solid #E4E4E4;
}

.circular-item:last-child {
    border-bottom: none;
}

.circular-title {
    font-size: 1.5rem;
    line-height: 2rem;
    margin-bottom: 0.75rem;
    font-weight: 500;
    color: #000100;
}

.circular-meta {
    font-size: 1.25rem;
    line-height: 2rem;
    color: #363636;
}

/* -----------------------------------------------------------
   ABOUT US PAGE
   ----------------------------------------------------------- */
/*.about-hero-section { max-width: var(--container-max); margin: 0 auto; padding: 4rem var(--space-lg) 0; }*/
/*.about-hero-h1   { font-size: 3.5rem; line-height: 1.08; font-weight: 800; margin: 0; }*/
/*.about-hero-lead { font-size: 1.188rem; line-height: 1.6; color: #555; margin: 0.5rem 0 0; }*/
/*.about-hero-img  {*/
/*  margin-top: 2.75rem;*/
/*  height: 27.5rem;*/
/*  background-image: url('../assets/images/about-us/about-csez.png');*/
/*  background-size: cover;*/
/*  background-position: center 30%;*/
/*}*/



/* ============ HERO / SLIDER ============ */
.about-hero-section {
    position: relative;
    width: 100%;
    height: 46.125rem;
    /* 540px */
    min-height: 20rem;
    overflow: hidden;
    color: var(--white);
    isolation: isolate;
}


.abtLftCvr {
    height: 46.125rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.about-intro h2 {
    font-size: 3.5rem;
    line-height: normal;
    text-transform: uppercase;
    color: #121212;
    font-weight: 600;
}

/* ---- slides ---- */
.hero-slides {
    position: absolute;
    inset: 0;
}

.hero-slide {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: 0;
    transform: scale(1.06);
    transition: opacity 1.1s ease, transform 6s ease;
    z-index: 1;
}

.hero-slide.is-active {
    opacity: 1;
    transform: scale(1);
    z-index: 2;
}

/* teal gradient overlay so text stays legible, matches reference */
.hero-slide::before {
    content: "";
    position: absolute;
    inset: 0;
}

/* ---- content grid ---- */
.about-hero-grid {
    position: relative;
    z-index: 10;
    max-width: 85%;
    margin: 0 auto;
    height: 100%;
    padding: 0 3.5rem;
}

@media (min-width: 48rem) {}

.about-hero-h1 {
    text-transform: uppercase;
    margin: 0;
    max-width: 52rem;
}

.about-hero-lead {
    font-size: 1.5rem;
    line-height: 2.5rem;
    font-weight: 400;
    margin: 0;
    color: #FFFFFF;
    max-width: 45rem;
}

/* ---- slide indicators (dash + dots, bottom-left) ---- */
.hero-nav {
    position: absolute;
    left: 3.5rem;
    bottom: 2rem;
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.hero-nav button {
    appearance: none;
    border: none;
    background: none;
    padding: 0;
    cursor: pointer;
    display: block;
}

.hero-nav .dash {
    width: 1.875rem;
    height: 0.125rem;
    background: var(--white);
    transition: width .35s ease, background .35s ease;
}

.hero-nav .dot {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.4);
    transition: background .35s ease, transform .35s ease;
}

.hero-nav button.is-active .dash {
    width: 2.8rem;
    background: var(--white);
}

.hero-nav button.is-active .dot {
    background: var(--white);
    transform: scale(1.15);
}

/* ---- responsive ---- */
@media (max-width: 48rem) {
    .about-hero-section {
        height: auto;
        min-height: 28rem;
        padding: 3rem 0;
    }

    .about-hero-grid {
        padding: 0 1.5rem;
    }

    .about-hero-grid .row {
        height: auto;
        flex-direction: column;
        align-items: flex-start;
        gap: 1.5rem;
    }

    .about-hero-h1 {
        font-size: 1.75rem;
        max-width: 100%;
    }

    .abtRghtCvr {
        margin-left: 0;
        border-left: none;
        border-top: 0.0625rem solid var(--line);
        padding-left: 0;
        padding-top: 1rem;
        max-width: 100%;
    }

    .hero-nav {
        left: 1.5rem;
        bottom: 1.25rem;
    }
}















.about-intro {
    max-width: 87%;
    margin: 0 auto;
    padding: 10rem var(--space-lg) 0;
    text-align: center;
    font-size: 1.5rem;
    line-height: 2.5rem;
    color: #595959;
    margin-top: 0;
}

/* Heading stays centred; the body copy reads better justified than centred */
.about-intro #about-text {
    text-align: justify;
}

.evolution-section {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 10rem var(--space-lg) 10rem;
}

.evolution-heading {
    font-size: 3.5rem;
    line-height: normal;
    font-weight: 600;
    margin: 0 0 2.5rem;
}

.evolution-grid {
    position: relative;
}

.evolution-grid .row {
    position: relative;
}

.evolution-grid .row::before {
    content: "";
    position: absolute;
    top: 6.7rem;
    left: 0;
    right: 0;
    height: 1px;
    background: #d8d8d8;
    z-index: 0;
}

.evolution-grid [class*="col-"] {
    position: relative;
}

.evolution-year {
    font-size: 2.875rem;
    font-weight: 800;
    color: #057671;
    line-height: 1;
}

.evolution-rule {
    height: 0.1875rem;
    background: #006BE9;
    width: 0.875rem;
    margin: 0.875rem 0 1.25rem;
    position: relative;
    z-index: 1;
}

.evolution-text {
    font-size: 1.5rem;
    line-height: 2.5rem;
    color: #595959;
    margin: 0;
}

.vision-band {
    position: relative;
    background: url(../assets/images/home/vision-bg.png);
    overflow: hidden;
}

.vision-dot-bg {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(rgba(255, 255, 255, .18) 0.125rem, transparent 0.125rem);
    background-size: 1.625rem 1.625rem;
    opacity: .5;
}

.vision-content {
    position: relative;
    max-width: 62.5rem;
    margin: 0 auto;
    padding: 4.5rem var(--space-lg);
    text-align: center;
    color: #fff;
}

.vision-heading {
    font-size: 3.5rem;
    line-height: normal;
    font-weight: 600;
    margin: 0 0 1.5rem;
}

.vision-text,
.vision-text p {
    font-size: 2rem;
    line-height: 3rem;
    margin: 0;
    font-weight: 500;
    color: #FFFFFF;
}

.mission-section {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 4.5rem var(--space-lg);
}

.mission-heading {
    font-size: 3.5rem;
    line-height: normal;
    font-weight: 600;
    margin: 0 0 1.5rem;
}

.mission-item {
    margin-bottom: 5rem;
}

.mission-title {
    padding-left: 1.5rem;
    border-left: 0.25rem solid #3EA29D;
    font-size: 2rem;
    line-height: 2.5rem;
    font-weight: 500;
    margin-bottom: 1rem;
}

.mission-desc {
    padding-left: 1.5rem;
    font-size: 1.5rem;
    line-height: 2.5rem;
    color: #595959;
    margin: 0;
}

.functions-section {
    background: #eef6fb;
}

.functions-inner {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 4.5rem var(--space-lg);
}

.functions-heading {
    font-size: 3.5rem;
    line-height: normal;
    font-weight: 600;
    margin: 0 0 3rem;
}

.functions-img {
    width: 100%;
    height: auto;
    object-fit: contain;
}

.function-item {
    display: flex;
    align-items: flex-start;
    gap: 1.25rem;
    padding: 2rem 0;
    border-bottom: 1px solid #d3e2ec;
}

.function-item:last-child {
    border-bottom: none;
}

.function-icon {
    color: #3EA29D;
    display: flex;
    flex: none;
    margin-top: 0.125rem;
}

.function-title {
    font-size: 2rem;
    line-height: 2.5rem;
    font-weight: 500;
    margin-bottom: 1rem;
}

.functionRight {
    padding-left: 3.125rem;
}

.function-desc {
    font-size: 1.5rem;
    line-height: 2.5rem;
    color: #595959;
}

/* -----------------------------------------------------------
   CONTACT US PAGE
   ----------------------------------------------------------- */
.page-intro {
    max-width: 65%;
    margin: 0 auto;
    padding: 3.5rem var(--space-lg) 0.5rem;
    text-align: center;
}

.page-intro h1 {
    font-size: 3.5rem;
    font-weight: 600;
    margin: 0 0 1.5rem;
}

.page-intro p {
    font-size: 1.5rem;
    line-height: 2.5rem;
    color: #000000;
    margin: 0;
}

.contact-grid {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 3rem var(--space-lg);
}

.contact-map-panel {
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    background-image: url('../assets/images/contact-us/contact-us.png');
    height: 100%;
    min-height: 55.25rem;
    border-radius: 1.5rem;
}

.contact-map-label {
    background: #fff;
    box-shadow: 0 0.25rem 0.75rem rgba(20, 16, 4, .12);
    padding: 1rem 1.25rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.9375rem;
    font-weight: 600;
    color: #121212;
}

.contact-form-panel {
    background: #F4FAF9;
    border-radius: 1.5rem;
    padding: 2.5rem 2rem;
    height: 100%;
}

.contact-form-title {
    font-size: 3rem;
    line-height: 4.5rem;
    font-weight: 600;
    margin: 0 0 1rem;
}

.form-stack {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.form-group {}

.form-label {
    display: block;
    font-size: 1.25rem;
    line-height: 2rem;
    font-weight: 500;
    margin-bottom: 6px;
    color: #000000;
}

.form-input,
.form-textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #dcdcdc;
    background: #fff;
    border-radius: 0.75rem;
    padding: 0.9375rem 1.125rem;
    font-size: 1.5rem;
    line-height: 2.5rem;
    font-family: inherit;
    outline: none;
}

.form-input:focus,
.form-textarea:focus {
    border-color: #3EA29D;
    outline: 0.125rem solid #3EA29D;
    outline-offset: -0.0625rem;
}

.form-textarea {
    resize: vertical;
    height: 6.25rem;
}

.form-submit-row {
    display: flex;
    justify-content: flex-end;
}

.officers-section {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 10rem var(--space-lg) 0rem;
}

.officers-section-title {
    text-align: center;
    font-size: 3rem;
    line-height: 3.5rem;
    font-weight: 600;
    margin: 0 0 2.5rem;
}

.officer-contact-item span {
    font-size: 1.25rem;
    line-height: 2.5rem;
    color: #474747;
}

.officer-contact-item a {
    font-size: 1.25rem;
    line-height: 2.5rem;
    color: #474747;
    text-decoration: none;
}

.officer-contact-item img {
    margin-top: .25rem;
    width: 1.5rem;
    height: 1.5rem;
}

.officer-card {
    background: #fff;
    border: 1px solid #e6e6e6;
    border-radius: 0.75rem;
    box-shadow: 0 0.125rem 0.875rem rgba(0, 0, 0, 0.07);
    padding: 1.5rem;
    height: 100%;
}

.officer-header {
    display: flex;
    align-items: center;
    gap: 1.125rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid #D4D4D4;
}

.officer-photo {
    width: 4rem;
    height: 4rem;
    border-radius: 50%;
    object-fit: cover;
    flex: none;
}

.officer-name {
    font-size: 1.5rem;
    line-height: 2rem;
    font-weight: 600;
    color: #000000;
    margin-bottom: 4px;
}

.officer-role {
    font-size: 1.25rem;
    line-height: 1.75rem;
    font-weight: 400;
    color: #000000;
    margin-bottom: 0rem;
}

.officer-contacts {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 1.375rem;
    font-size: 0.9375rem;
    color: #444;
}

.officer-contact-item {
    display: flex;
    gap: 0.75rem;
    align-items: center;
}

.officer-contact-item.top {
    align-items: flex-start;
}

.officers-band {
    width: 100%;
}

.officers-section-title--caps {
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

/* -----------------------------------------------------------
   RTI HOME PAGE
   ----------------------------------------------------------- */
.rti-stats-grid {
    margin-bottom: 6.5rem;
}

.rti-stat-card {
    padding: 2rem 1.75rem;
    border-radius: 1.25rem;
    min-height: 16.375rem;
}

.rti-stat-bg-green {
    background: #eef7f5;
}

.rti-stat-bg-purple {
    background: #efedfb;
}

.rti-stat-bg-orange {
    background: #fcefe6;
}

.rti-stat-icon-box {
    width: 3.75rem;
    height: 3.75rem;
    border-radius: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.75rem;
    font-size: 2.125rem;
}

.rti-stat-icon-box-green {
    background: #d7efe9;
    color: #057671;
}

.rti-stat-icon-box-purple {
    background: #ddd8f7;
    color: #5b4ad6;
}

.rti-stat-icon-box-orange {
    background: #f9dcc4;
    color: #c2622a;
}

.rti-stat-value {
    font-size: 3.75rem;
    font-weight: 700;
    line-height: 1;
}

.rti-stat-label {
    font-size: 1rem;
    font-weight: 400;
    color: #6b7f7c;
    margin-top: 1rem;
}

.rti-stat-value-green {
    color: #057671;
}

.rti-stat-value-purple {
    color: #5b4ad6;
}

.rti-stat-value-orange {
    color: #c2622a;
}

.rti-info-card {
    position: relative;
    background: #f1f1f1;
    padding: 1.875rem 1.875rem 1.375rem;
    overflow: hidden;
    border-radius: 1rem;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.rti-info-deco {
    position: absolute;
    right: -2.5rem;
    bottom: -2.5rem;
    width: 13.75rem;
    height: 13.75rem;
    border-radius: 50%;
    border: 1.875rem solid rgba(255, 255, 255, .7);
    opacity: .7;
}

.rti-info-deco::before {
    content: '';
    position: absolute;
    inset: -3.75rem;
    border-radius: 50%;
    border: 1.25rem solid rgba(255, 255, 255, .5);
}

.rti-info-body {
    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.rti-info-title {
    font-size: 2rem;
    line-height: 2.5rem;
    font-weight: 600;
    margin: 0 0 1.5rem;
}

.rti-info-desc {
    font-size: 1.5rem;
    line-height: 2.5rem;
    color: #474747;
    margin: 0rem;
    flex: 1;
}

.rti-info-link-wrap {
    display: flex;
    justify-content: flex-end;
    margin-top: auto;
}

.rti-contact-intro {
    max-width: 68.75rem;
    margin: 0 auto;
    padding: 1.5rem var(--space-lg) 0.5rem;
    text-align: center;
}

.rti-contact-grid {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 2.25rem var(--space-lg) 1rem;
}

.rti-contact-details {
    display: flex;
    flex-direction: column;
    gap: 1.375rem;
    font-size: 1.063rem;
    color: #333;
}

.rti-contact-item {
    display: flex;
    gap: 0.875rem;
}

.rti-contact-item.top {
    align-items: flex-start;
}

.rti-contact-item.mid {
    align-items: center;
}

.rti-officers-intro {
    max-width: 68.75rem;
    margin: 0 auto;
    padding: 3rem var(--space-lg) 0.5rem;
    text-align: center;
}

.rti-officers-grid {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 2.5rem var(--space-lg) 4rem;
}

.rti-officer {
    text-align: center;
}

.rti-officer-avatar {
    width: 7.5rem;
    height: 7.5rem;
    border-radius: 50%;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.375rem;
    font-weight: 700;
    margin: 0 auto 1.125rem;
    box-shadow: 0 0 0 4px #fff, 0 0 0 6px #dde9e8;
}

.rti-officer-name {
    font-size: 1.25rem;
    line-height: 1.75rem;
    font-weight: 600;
    color: #000000;
    margin-bottom: 0.375rem;
}

.rti-officer-dept {
    font-size: 1rem;
    line-height: 1.5rem;
    color: #000000;
    margin-bottom: 0.375rem;
}

.rti-officer-title {
    font-size: 1rem;
    line-height: 1.5rem;
    color: #3EA29D;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid #E6E6E6;
    margin-bottom: 1rem;
}

.rti-officer-contacts {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 1.125rem;
    align-items: center;
    font-size: 0.9375rem;
    color: #444;
}

.rti-officer-contact-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.rti-officer-contact-icon {
    font-size: 1.125rem;
    flex-shrink: 0;
    color: #3EA29D;
}

.rti-officers-group {
    margin-top: 2rem;
}

/* Left-align contact rows so multi-line addresses read cleanly in the wider cards */
.rti-officers-group .rti-officer-contacts {
    align-items: flex-start;
    text-align: left;
}

.rti-officers-group .rti-officer-contact-item {
    align-items: flex-start;
}

.rti-officers-group .rti-officer-contact-icon {
    margin-top: 0.125rem;
}

.rti-officers-group-heading {
    font-size: 1.75rem;
    font-weight: 600;
    text-align: center;
    color: #3EA29D;
    margin-bottom: 1.5rem;
}

.rti-officers-group-note {
    text-align: center;
    font-size: 0.9375rem;
    font-style: italic;
    color: #474747;
    margin: 1.25rem 0 0;
    padding-top: 1rem;
    border-top: 1px solid #E6E6E6;
}

.rti-officer-contact-item span {
    font-size: 1rem;
    line-height: 1.5rem;
    color: #474747;
}

.rti-cdetail-icon img {
    width: 1.5rem;
    height: 1.5rem;
}

/*.promo-img-link img{*/
/*  height: 19.375rem;*/
/*}*/
/* -----------------------------------------------------------
   RTI MANUAL PAGE
   ----------------------------------------------------------- */
.manual-item {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding: 2.375rem 1.5rem;
    border-bottom: 1px solid #eee;
    text-decoration: none;
}

.manual-item.alt {
    background: #f1f9f7;
}

.manual-item-icon {
    flex: none;
    display: flex;
}

.manual-item-title {
    flex: 1;
    font-size: 1.5rem;
    line-height: 2.25rem;
    color: #000000;
}

/* -----------------------------------------------------------
   CONTACT US PAGE
   ----------------------------------------------------------- */
.contact-page-inner {
    padding: 4rem var(--space-lg) 1rem;
}

.contact-form-card {
    background: #eef7f6;
    border-radius: 1rem;
    padding: 2.5rem;
    height: 100%;
}

.contact-form-h2 {
    font-size: 1.75rem;
    font-weight: 700;
    color: #000100;
    margin-bottom: 0.25rem;
}

.contact-form-sub {
    color: #6b6b6b;
    font-size: 1.25rem;
    margin-bottom: 1.5rem;
}

.contact-form-card .form-control {
    border-radius: 0.75rem;
    border: 1px solid #dfe9e8;
    padding: 1.5rem 1rem;
    background: #fff;
    font-size: 1.25rem;
    line-height: 1.5;
}

.contact-form-card .form-control:focus {
    border-color: #057671;
    box-shadow: 0 0 0 0.2rem rgba(5, 118, 113, 0.15);
}

.contact-form-card .form-label {
    color: #000100;
    margin-bottom: 0.375rem;
}

.contact-office-groups {
    margin-top: 10rem;
}

.contact-office-section+.contact-office-section {
    margin-top: 4rem;
}

.contact-office-section-title {
    text-align: center;
    font-size: 3rem;
    line-height: 3.5rem;
    font-weight: 600;
    color: #333;
    margin-bottom: 2.5rem;
}

.contact-office-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: #fff;
    border: 1px solid #e4eeed;
    border-radius: 0.75rem;
    padding: 2rem;
    box-shadow: 0 4px 24px rgba(0, 0, 0, .07);
}

.contact-office-name {
    font-size: 1.5rem;
    line-height: 2rem;
    font-weight: 700;
    color: #000100;
    margin-bottom: 0.25rem;
}

.contact-office-dept {
    font-size: 1.125rem;
    line-height: 1.75rem;
    color: #555;
    margin-bottom: 1rem;
    font-weight: 600;
}

.contact-office-divider {
    border-top: 1px solid #e6e6e6;
    margin: 0 0 1.25rem;
}

.contact-office-card .rti-cdetail-list {
    gap: 0.875rem;
}

.contact-office-card .rti-cdetail-text {
    font-size: 1.125rem;
    line-height: 1.75rem;
}

.contact-office-card .rti-cdetail-icon img {
    width: 1.125rem;
    height: 1.125rem;
}

/* -----------------------------------------------------------
   RTI QUERY TABLE
   ----------------------------------------------------------- */
.query-table {
    overflow-x: auto;
}

.query-header div {
    padding: 1.375rem 1.25rem;
    font-size: 1.125rem;
    font-weight: 700;
}

.query-row.alt {
    background: #f3faf9;
}

.query-cell {
    padding: 1.5rem 1.25rem;
    font-size: 1.125rem;
    color: #444;
    line-height: 1.5;
}

.query-empty {
    grid-column: 1 / -1;
    padding: 2rem 1.25rem;
    font-size: 1.25rem;
    color: #757575;
    text-align: center;
}

/* Two-tier .query-header for a grouped column (e.g. one label over several sub-columns) */
.query-header--grouped {
    grid-template-rows: auto auto;
}

.query-header--grouped .qh-group {
    grid-row: 1;
    text-align: center;
    border-bottom: 1px solid rgba(0, 0, 0, 0.12);
    padding-bottom: 0.75rem;
}

.query-header--grouped .qh-sub {
    grid-row: 2;
}

/* Card wrapping multiple named query-tables (e.g. one per office) */
.officials-card {
    background: #fff;
    border: 1px solid #e6e6e6;
    border-radius: 1rem;
    overflow: hidden;
    padding: 2rem 0 0rem;
}

.officials-group+.officials-group {
    margin-top: 2rem;
}

.officials-group-title {
    color: #3EA29D;
    font-weight: 500;
    font-size: 1.5rem;
    line-height: 2rem;
    padding: 0rem 2rem 1.5rem;
    margin: 0;
}

.officials-group-title-wrap {
    margin: 0;
}

.officials-group-toggle {
    background: none;
    border: none;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    color: #3EA29D;
    font-weight: 500;
    font-size: 1.5rem;
    line-height: 2rem;
    padding: 0rem 2rem 1.5rem;
    font-family: inherit;
    text-align: left;
    cursor: pointer;
}

.officials-group-toggle .sidebar-heading-icon {
    color: #3EA29D;
    flex-shrink: 0;
    transition: transform 0.2s ease;
}

.officials-group-toggle[aria-expanded="false"] .sidebar-heading-icon {
    transform: rotate(-90deg);
}

.officials-group-toggle[aria-expanded="false"] {
    padding-bottom: 1.5rem;
}

.officials-group-toggle[aria-expanded="true"] {
    background: #eef7f5;
}

/* The gap above a group (the card's own top padding for the first group, or the
   2rem sibling margin for any group after it) is otherwise left plain white above
   the teal highlight. Both gaps happen to be 2rem, so pulling every expanded
   toggle up by that amount and repadding it lets the highlight fill the gap too. */
.officials-group-toggle[aria-expanded="true"] {
    margin-top: -2rem;
    padding-top: 2rem;
}

/* Only the first group's gap is the card's own rounded top edge — round the
   highlight to match it there; other groups sit mid-card with square corners. */
.officials-group:first-child .officials-group-toggle[aria-expanded="true"] {
    border-radius: 1rem 1rem 0 0;
}

/* -----------------------------------------------------------
   RTI APPROVAL COMMITTEE — UAC cards
   ----------------------------------------------------------- */
.uac-cards-grid {
    margin-bottom: 4.5rem;
}

.uac-card {
    background: #f7f7f7;
    padding: 2rem 2rem 2rem;
    height: 100%;
    border-radius: 1.5rem;
    display: flex;
    flex-direction: column;
}

.uac-card button.btn-teal-sm {
    margin-top: auto;
    align-self: flex-start;
}

.uac-card-img {
    border-radius: 0.375rem;
    overflow: hidden;
}

@media (min-width: 36.0625rem) {
    .uac-card-img {
        height: 21.188rem;
    }
}

.uac-card-title {
    font-size: 2rem;
    line-height: 2.5rem;
    font-weight: 500;
    margin: 1rem 0 1rem;
}

.uac-card-desc {
    font-size: 1.25rem;
    line-height: 1.75rem;
    color: #595959;
    margin: 0 0 1rem;
}

.uac-card-img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Reports table for approval committee */
/*.reports-header {*/
/*  display: grid;*/
/*  grid-template-columns: 0.8fr 1fr 1.2fr 1.2fr 1fr;*/
/*  background: #d6ece8;*/
/*}*/
.reports-header div {
    padding: 1rem 1rem;
    font-size: 1.5rem;
    line-height: 3rem;
    font-weight: 500;
}

/*.reports-row { display: grid; grid-template-columns: 0.8fr 1fr 1.2fr 1.2fr 1fr; }*/
.reports-row.alt {
    background: #f3faf9;
}

.reports-cell {
    padding: 1.5rem;
    font-size: 1.25rem;
    line-height: 2rem;
    color: #555454;
}

/* -----------------------------------------------------------
   TENDERS PAGE
   ----------------------------------------------------------- */
.tenders-main {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 6rem var(--space-lg) 0rem;
}

.tender-card {
    height: 100%;
    position: relative;
    background: #f4faf9;
    padding: 2rem 1.75rem;
    min-height: 29.75rem;
    display: flex;
    flex-direction: column;
    clip-path: polygon(0 0, calc(100% - 2.375rem) 0, 100% 2.375rem, 100% 100%, 0 100%);
}

.tender-status {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    margin-bottom: 2.25rem;
}

.tender-dot {
    width: 0.6875rem;
    height: 0.6875rem;
    display: inline-block;
    flex: none;
}

.tender-dot-open {
    background: #1a9e4b;
}

.tender-dot-closing-soon {
    background: #f7931e;
}

.tender-dot-closed {
    background: #e23b3b;
}

.tender-status-text {
    font-size: 1.25rem;
    font-weight: 500;
    letter-spacing: 0.3125rem;
}

.tender-status-text.open {
    color: #1a9e4b;
}

.tender-status-text.closing-soon {
    color: #f7931e;
}

.tender-status-text.closed {
    color: #e23b3b;
}

.tender-title {
    font-size: 1.25rem;
    line-height: 2.25rem;
    color: #000000;
}

.tender-desc {
    color: #555454;
    font-size: 1rem;
    line-height: 1.6rem;
    margin-top: 0.75rem;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
}

.tender-footer {
    margin-top: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 1.75rem;
}

.download-link--disabled {
    color: #9a9a9a;
    font-weight: 400;
}

.tender-date {
    color: #757272;
    font-size: 1.25rem;
}

.download-link {
    color: #057671;
    font-size: 1.25rem;
    font-weight: 500;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 0.375rem;
}

.download-link:hover,
.download-link:focus {
    text-decoration: underline;
}

/* -----------------------------------------------------------
   VACANCIES PAGE
   ----------------------------------------------------------- */
.vacancies-intro {
    max-width: 80%;
    margin: 0 auto;
    padding: 3.5rem var(--space-lg) 0.5rem;
    text-align: center;
}

.vacancies-intro h1 {
    font-size: 3.5rem;
    line-height: 4.5rem;
    font-weight: 600;
    margin: 0 0 .5rem;
}

.vacancies-intro p {
    font-size: 1.5rem;
    line-height: 2.5rem;
    color: #000000;
    margin: 0;
}

.vacancies-hero-wrap {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 2rem var(--space-lg) 0;
}

.vacancies-hero-img {
    width: 100%;
    height: auto;
    display: block;
}


/* ── Wrapper ─────────────────────────────────────────────────── */
.vacancies-list-wrap {
    max-width: var(--container-max);
    margin: 0 auto;
    padding: 1rem var(--space-lg) 5rem;
}

/* ── List reset ──────────────────────────────────────────────── */
.vacancy-list {
    list-style: none;
    margin: 0;
    padding: 0;
    margin-top: 10rem;
}

/* ── Single row ──────────────────────────────────────────────── */
.vacancy-row {
    display: flex;
    align-items: center;
    gap: 1.75rem;
    padding: 1.5rem 1.5rem;
    background: #F4FAF9;
    transition: background 0.18s;
    margin-bottom: 1.5rem;
    border-radius: 1rem;
}

/* .vacancy-row--alt {
  background : #f7fbfb;
} */
.vacancy-row:hover {
    background: #eef7f6;
}

/* ── Number badge ────────────────────────────────────────────── */
.vacancy-num {
    flex-shrink: 0;
    width: 2.625rem;
    height: 2.625rem;
    border-radius: 0.688rem;
    background: #D2F3F1;
    color: #000000;
    font-size: 1.5rem;
    font-weight: 400;
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: center;
    margin-top: 0.25rem;
}

/* ── Body (middle column) ────────────────────────────────────── */
.vacancy-row-body {
    flex: 1;
    min-width: 0;
}

.vacancy-ref {
    font-size: 1.25rem;
    line-height: 1.75rem;
    color: #6B6B6B;
    margin: 0 0 0.375rem;
}

.vacancy-row-title {
    font-size: 1.5rem;
    line-height: 3rem;
    font-weight: 500;
    color: #000000;
}

.vacancy-row-desc {
    font-size: 1.25rem;
    color: #3B3B3B;
    margin: 0 0 1rem;
    line-height: 1.75rem;
}

/* ── Meta row: posted + deadline ─────────────────────────────── */
.vacancy-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.25rem;
}

.vacancy-posted,
.vacancy-deadline {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    font-size: 1.25rem;
    line-height: 1.75rem;
}

.vacancy-posted {
    color: #3EA29D;
}

.vacancy-posted svg {
    stroke: #3EA29D;
}

.vacancy-deadline {
    color: #d0341a;
}

.vacancy-deadline svg {
    stroke: #d0341a;
}

/* ── View link (right column) ────────────────────────────────── */
.vacancy-view-link {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 0.3125rem;
    font-size: 0.9375rem;
    font-weight: 600;
    color: #3EA29D;
    text-decoration: none;
    white-space: nowrap;
    padding: 0.5rem 0;
    transition: color 0.18s, gap 0.18s;
}

.vacancy-view-link:hover {
    color: #2a7a76;
    gap: 0.5rem;
}

.vacancy-view-link svg {
    stroke: currentColor;
}

/* -----------------------------------------------------------
   ADDITIONAL RESPONSIVE OVERRIDES (Files 2-11)
   ----------------------------------------------------------- */
@media (max-width: 62rem) {
    .about-hero-grid {
        max-width: 100%;
    }

    .contact-form-card .form-control {
        padding: 1rem 1rem;
        font-size: 1rem;
        line-height: 1.5;
    }

    .contact-office-card .rti-cdetail-text {
        font-size: 1rem;
        line-height: 1.5rem;
    }

    .manual-item-icon img {
        width: 1.5rem;
        height: 1.5rem;
    }

    .query-header th {
        font-size: 1.125rem;
    }

    .eou-unitCvr {
        margin-bottom: 2rem;
    }

    .manual-item {
        padding: 1.5rem 1.5rem;
    }

    .vacancy-deadline svg {
        margin-bottom: 1.875rem;
    }

    .vacancies-intro {
        max-width: 100%;
    }

    .query-header div {
        padding: 1.5rem 1.25rem;
        font-size: 1rem;
    }

    .officials-group+.officials-group {
        margin-top: 1rem;
    }

    .officials-card {
        padding: 1rem 0 0rem;
    }

    .officials-group-title {
        font-size: 1.25rem !important;
        line-height: 2rem !important;
        padding: 0rem 1rem 1rem;
    }

    .officials-group-toggle {
        font-size: 1.25rem !important;
        line-height: 2rem !important;
        padding: 0rem 1rem 1rem;
    }

    .officials-group-toggle[aria-expanded="true"] {
        margin-top: -1rem;
        padding-top: 1rem;
    }

    .officials-group:first-child .officials-group-toggle[aria-expanded="true"] {
        border-radius: 1rem 1rem 0 0;
    }

    .rti-bldg-img {
        min-height: auto;
        object-fit: contain;
    }

    .sidebar-page-head {
        text-align: center;
    }

    .eou-unit-head p {
        margin-bottom: 0rem;
    }

    .eou-unitHeading {
        font-size: 1.65rem;
        margin-bottom: 1rem;
    }

    .eou-unit-head {
        margin-bottom: 1.25rem;
        text-align: center;
    }

    .unit-list-points div {
        font-size: 1rem;
        line-height: 2rem;
        padding: 1rem 1rem;
    }

    span.units-title {
        font-size: 1.25rem;
        line-height: 2rem;
    }

    .sidebar-page-head p {
        margin-bottom: 1rem;
    }

    .sidebar-page-head h1 {
        margin-bottom: 1rem;
    }

    .officers-band .officers-section--bengaluru {
        padding-top: 3rem;
    }

    .officer-contact-item img {
        margin-top: 0.125rem;
        width: 1rem;
        height: 1rem;
    }

    .officer-contact-item a {
        font-size: 1rem;
        line-height: 1.75rem;
    }

    .officer-contact-item span {
        font-size: 1rem;
        line-height: 1.75rem;
    }

    .form-stack {
        gap: 0.5rem;
    }

    .form-input,
    .form-textarea {
        font-size: 1rem;
        line-height: 1.5rem;
    }

    .contact-form-sub {
        margin: 0 0 1rem;
    }

    .form-label {
        font-size: 1rem;
        line-height: 2rem;
    }

    .page-intro {
        max-width: 100%;
    }

    .download-link {
        font-size: 1rem;
    }

    .tender-date {
        font-size: 1rem;
    }

    h2.tender-title {
        font-size: 1rem !important;
        line-height: 1.75rem !important;
    }

    .tender-status-text {
        font-size: 1rem;
        letter-spacing: 0.125rem;
    }

    .tendersHead {
        text-align: center;
        display: block;
        margin-bottom: 2rem;
    }

    .query-cell {
        font-size: 1rem;
    }

    .uac-cards-grid {
        margin-bottom: 3rem;
    }

    .testimonial-avatar {
        width: 3.5rem;
        height: 3.5rem;
        font-size: 1rem;
    }

    .btn-teal-md {
        font-size: 1rem;
        padding: 0.875rem .5rem;
    }

    .sez-tenants-bg {
        margin-top: 0rem;
    }

    .update-item-title {
        margin-bottom: .5rem;
    }

    .update-item-date {
        font-size: 1rem;
    }

    .updates-tab-col {
        padding-right: 0rem;
    }

    .update-tab.update-tab-eou {
        margin-bottom: 1rem;
    }

    .event-title {
        font-size: 1.125rem !important;
    }

    .why-grid>div:nth-child(-n+2) .whychooseSngle {
        margin-bottom: 0.5rem;
    }

    .why-chip {
        font-size: 1rem;
        line-height: 1.5rem;
    }

    #why-sez-heading {
        margin-bottom: 1rem;
    }

    .whycooseRightCvr {
        padding-left: 0rem;
    }

    .step-lauchpadCVr {
        padding-right: 0rem;
        text-align: center;
    }

    .icon-img-48 {
        width: 2rem;
        height: 2rem;
    }

    .step-icon {
        margin-bottom: 1rem;
        align-items: center;
        flex-direction: column;
    }

    .steps-grid {
        justify-content: center;
    }

    .step-lauchpadCVr::after {
        display: none;
    }

    .step-lauchpadCVr::before {
        display: none;
    }

    .bg-light-green {
        margin-top: 2.5rem;
    }

    .launchpadCvrr p.section-body {
        padding-right: 0rem;
        margin: 0 0 1rem;
    }

    .quick-link-icon img {
        width: 2.5rem;
        height: 2.5rem;
        margin-bottom: 0.5rem;
    }

    .promo-img-link img {
        height: auto;
    }

    .ticker-item {
        font-size: 1rem;
    }

    .rti-officer-contact-item span {
        font-size: 1rem;
        line-height: 1.75rem;
    }

    .rti-officers-section {
        padding: 3rem 0 0rem;
    }

    .rti-fs-sub {
        margin: 0 auto 1.5rem;
    }

    .rti-cdetail-list {
        gap: 1rem;
    }

    .rti-cdetail-icon {
        margin-top: 0rem;
    }

    .rti-cdetail-icon img {
        width: 1.25rem;
        height: 1.25rem;
    }

    .rti-cdetail-text {
        font-size: 1rem;
        line-height: 1.75rem;
    }

    .rti-section-block {
        margin-bottom: 3rem;
    }

    .rti-stats-grid {
        margin-bottom: 3rem;
    }

    .rti-stat-card {
        padding: 1rem 1rem;
        border-radius: 0.5rem;
        min-height: 15rem;
    }

    .rti-btn-group {
        margin-bottom: 3rem;
        align-items: flex-start;
    }

    .rti-home-intro {
        margin: 0 0 1rem;
    }

    .year-title-closed {
        font-size: 1.25rem;
        line-height: 2rem;
    }

    .year-icon-box {
        width: 2rem;
        height: 2rem;
    }

    .year-title-open {
        font-size: 1.25rem;
        line-height: 2rem;
    }

    .btn-search {
        padding: 0.5rem 1.5rem;
        font-size: 1rem;
    }

    .filter-select {
        padding: 0.5rem 0.5rem;
        font-size: 1rem;
    }

    .sidebar-layout .col-12.col-lg-10 {
        padding-left: 1.5rem;
    }

    .view-link {
        font-size: 1rem;
    }

    .bulletin-grid-cols {
        grid-template-columns: 5.5rem 2fr 2fr 8.25rem;
    }

    .bulletin-grid-cols {
        grid-template-columns: 5.5rem 2fr 2fr 8.25rem;
    }

    .functions-heading {
        margin: 0 0 1rem;
    }

    .mission-section {
        padding: 3rem var(--space-lg);
    }

    .copyright-bar {
        align-items: center;
        text-align: center;
    }

    .footer-link-list {
        gap: 0.25rem;
        font-size: 1rem;
    }

    .footer-address {
        font-size: 1rem;
    }

    .partner-logo-wrap img {
        width: 100%;
        height: 100%;
    }

    .functions-inner {
        padding: 2.5rem var(--space-lg);
    }

    h3.function-title {
        font-size: 1.25rem !important;
        line-height: normal !important;
    }

    .function-item {
        padding: 1rem 0;
    }

    .function-desc {
        font-size: 1rem;
        line-height: 1.75rem;
        margin-bottom: 0;
    }

    .function-icon img {
        width: 1.5rem;
        height: 1.5rem;
    }

    h3.mission-title {
        font-size: 1.25rem !important;
        line-height: normal !important;
    }

    .mission-item {
        margin-bottom: 1rem;
    }

    .mission-title {
        padding-left: 1rem;
    }

    .mission-desc {
        padding-left: 1rem;
        font-size: 1rem;
        line-height: 1.75rem;
    }

    .vision-text {
        font-size: 1.125rem;
        line-height: 2rem;
    }

    .evolution-grid .row::before {
        top: 4.5rem;
    }

    .evolution-text {
        font-size: 1rem;
        line-height: 1.5rem;
    }

    .evolution-year {
        font-size: 1.5rem;
    }

    .evolution-section {
        padding: 3rem var(--space-lg) 3rem;
    }

    h2,
    h3,
    h4,
    h5 {
        font-size: 1.67rem !important;
        line-height: normal !important;
    }

    p {
        font-size: 1rem !important;
        line-height: 1.75rem !important;
    }

    .about-intro h2 {
        font-size: 1.67rem;
    }

    .about-intro {
        max-width: 100%;
        padding: 3rem var(--space-lg) 0;
    }

    .about-hero-section {
        min-height: auto;
        padding: 4rem 0;
    }

    .about-hero-lead {
        font-size: 1.125rem;
        line-height: 1.75rem;
    }

    .about-hero-h1 {
        color: #fff;
    }

    .abtLftCvr {
        height: auto;
        align-items: center;
        text-align: center;
    }

    .abtLftCvr {
        height: auto;
    }

    .about-hero-h1 {
        font-size: 2.375rem;
    }

    .about-hero-img {
        height: 17.5rem;
    }

    .vacancies-list-wrap {
        padding: 1rem var(--space-md) 3.5rem;
    }

    .vacancy-row {
        gap: 1.25rem;
        padding: 1.375rem 1.25rem;
    }

    .vacancy-num {
        width: 2.25rem;
        height: 2.25rem;
        font-size: 0.875rem;
    }

    .vacancy-row-title {
        font-size: 1.125rem !important;
    }

    .vacancy-posted,
    .vacancy-deadline {
        font-size: 1rem;
    }

    .vacancy-list {
        margin-top: 3rem;
    }
}

@media (max-width: 62rem) {

    /* Tenders — desktop's min-height (29.75rem) assumes a narrow 3-up card;
     at 2-up (col-md-6, 48–62rem) and single-column (col-12, ≤48rem) it
     leaves a large empty gap above the date/download row. Bootstrap's row
     still equalizes card heights within a row without this, so removing
     it doesn't cause mismatched card heights side-by-side. */
    .tender-card {
        min-height: 0;
    }
}

@media (max-width: 47.938rem) {
    .manual-item {
        padding: 1rem 1rem;
    }

    .partner-logo-wrap img {
        width: 60%;
    }

    .rti-officer-contact-item {
        display: block;
    }

    .rti-stat-icon-box {
        height: 4rem;
    }

    .rti-stat-card {
        min-height: auto;
        text-align: center;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }

    .filter-controls {
        justify-content: center;
    }

    .sidebar-link {
        font-size: 1.125rem;
        padding: 1rem 1rem;
    }

    .sidebar-heading {
        font-size: 1.25rem;
        padding: 1rem 1.5rem;
    }

    .evolution-section {
        text-align: center;
    }

    .site-footer {
        text-align: center;
    }

    .functionRight {
        padding-left: 0rem;
    }

    .mission-item {
        margin-bottom: 0rem;
    }

    .vision-content {
        max-width: 100%;
        padding: 2.5rem var(--space-lg);
    }

    .vision-heading {
        margin: 0 0 .5rem;
    }

    .evolution-year {
        margin-bottom: .5rem;
    }

    .evolution-grid .row::before {
        display: none;
    }

    .evolution-rule {
        display: none;
    }

    .about-hero-lead {
        font-size: 1rem;
        line-height: 1.5rem;
    }

    .about-hero-h1 {
        font-size: 1.75rem;
    }

    .tender-card {
        padding: 1.5rem 1.25rem;
    }
}

@media (max-width: 36rem) {
    .tenant-info {
        align-items: center;
    }

    .lasttenantCard a.btn-teal.btn-teal-md {
        position: unset;
        transform: none;
    }

    article.tenant-card.lasttenantCard {
        padding-bottom: 0rem;
        text-align: center;
    }

    .rti-approvalTble {
        overflow-x: auto;
        min-width: 0;
    }

    .rti-approvalTble div {
        padding: 0.75rem 0.25rem;
        font-size: 1rem;
        line-height: 1.5rem;
    }

    .tenant-card {
        padding-bottom: 1rem;
    }

    .launchpadCvrr {
        text-align: center;
    }

    .vacancies-list-wrap {
        padding: 0.5rem 0.75rem 3rem;
    }

    .vacancy-row {
        flex-wrap: wrap;
        gap: 0.875rem;
        padding: 1.125rem 0.875rem;
    }

    .vacancy-num {
        width: 2rem;
        height: 2rem;
        font-size: 0.8125rem;
    }

    .vacancy-row-body {
        flex: 1 1 calc(100% - 3rem);
    }

    .vacancy-view-link {
        flex-basis: 100%;
        justify-content: center;
        padding-top: 0.25rem;
    }

    .vacancy-row-title {
        font-size: 0.9375rem;
    }

    .vacancy-row-desc {
        font-size: 0.875rem;
    }

    .vacancy-meta {
        gap: 0.75rem;
    }
}

@media (max-width: 62rem) {

    /* Page heading + filter bar squeeze into a cramped side-by-side row
     (heading wraps mid-word, filter bar overflows the page) once the
     filter bar's own dropdowns can no longer share a line with it —
     stack instead. Was previously scoped to ≤48rem only, which left a
     768–991px gap where the row still overflowed the page horizontally. */
    .rti-queryCvr {
        flex-direction: column;
        align-items: center;
        gap: 1rem;
    }
}


/* -----------------------------------------------------------
   BULLETIN
   ----------------------------------------------------------- */
/* Desktop-only column widths — scoped so they don't win over the ≤48rem/
   ≤36rem/≤30rem mobile column overrides declared earlier in this file
   (an unconditional rule here would always win by source order — see
   PATTERNS.md §1). */
@media (min-width: 62.0625rem) {
    .bulletin-grid-cols {
        grid-template-columns: 7rem 1fr 2fr 9.5rem;
    }
}

/* Rules table (Documents page, #rules-content) — "No. & Date" column hidden
   (that data isn't tracked for this list); Title stretches across the
   vacated track. Document stays, since rules now carry a real file/redirect
   link. Scoped to this one table's container so it doesn't touch
   Instructions/Bulletin/Circulars, which share the same .bulletin-grid-cols
   grid at every other breakpoint. */
#rules-content [role="columnheader"]:nth-child(2),
#rules-content .grid-table-cell:nth-child(2) {
    display: none;
}

#rules-content [role="columnheader"]:nth-child(3),
#rules-content .grid-table-cell:nth-child(3) {
    grid-column: 2 / span 2;
}

/* ── 48rem: Mobile landscape / small tablet ─────────────── */
@media (max-width: 48rem) {

    /* Utility bar – wraps onto multiple lines rather than clipping content; font-size
     and contrast controls (GIGW-required) must stay reachable at every width. */
    .utility-bar-inner {
        padding: 0.375rem 1rem;
        gap: 0.5rem;
        flex-wrap: wrap;
    }

    .utility-divider {
        display: none;
    }

    .lang-switcher {
        display: none;
    }

    /* Site banner */
    .site-banner {
        padding: 0.625rem 0;
    }

    .banner-inner {
        padding: 0 var(--space-md);
        gap: 0.75rem;
    }

    .banner-logo {
        height: 3rem;
    }

    .banner-campaign-logo {
        height: 3.5rem;
    }

    .logo-ai-summit {
        margin-left: 0.5rem;
    }

    .logo-azadi {
        margin-left: 1rem;
    }

    /* Nav */
    .main-nav-inner {
        padding: 0 var(--space-md);
    }

    /* Hero */
    .hero-section {
        height: 25rem;
    }

    .hero-section h1 {
        font-size: 2rem;
    }

    .hero-body {
        font-size: 0.9375rem;
        max-width: 100%;
        margin-bottom: 1.375rem;
    }

    .hero-eyebrow {
        font-size: 0.6875rem !important;
        letter-spacing: 0.125rem;
    }

    .btn-teal-lg {
        font-size: 1rem;
        padding: 0.8125rem 1rem;
    }

    .hero-content-wrap {
        padding: 0 var(--space-md);
    }

    /* Containers */
    .csez-container {
        padding: 0 var(--space-md);
    }

    .section-container {
        padding: 2.25rem var(--space-md);
    }

    /* Typography */
    .section-heading-center {
        font-size: 1.5rem;
        margin-bottom: 1.5rem;
    }

    .section-heading {
        font-size: 1.625rem;
    }

    .section-heading-lg {
        font-size: 1.5rem;
    }

    .page-intro h1 {
        font-size: 1.75rem;
    }

    .vacancies-intro h1 {
        font-size: 1.75rem;
    }

    .tenders-main h1 {
        font-size: 1.625rem;
    }

    .about-hero-h1 {
        font-size: 1.875rem;
    }

    .vision-heading {
        font-size: 1.625rem;
    }

    .vision-text {
        font-size: 1.063rem;
    }

    .mission-heading {
        font-size: 1.625rem;
    }

    .functions-heading {
        font-size: 1.625rem;
    }

    .evolution-heading {
        font-size: 1.625rem;
    }

    .contact-form-title {
        font-size: 1.5rem;
    }

    .stat-value {
        font-size: 1.75rem;
    }

    .stat-label {
        font-size: 0.875rem;
    }

    .stat-item {
        padding: 0 1rem;
    }

    /* Quick links */
    .quick-link-card {
        padding: 1.25rem 0.5rem;
        min-height: 6.25rem;
        gap: 0.625rem;
    }

    .quick-link-label {
        font-size: 0.875rem;
    }

    /* Promo grid */
    .promo-grid {
        padding: 2.5rem 1rem 0.5rem;
    }

    /* Steps */
    .steps-inner {
        padding: 3rem 1rem;
    }

    .step-title {
        font-size: 1.25rem !important;
    }

    /* Why SEZ */
    .why-sez-section {
        padding: 2.5rem 1rem;
    }

    /* Ecosystem */
    .ecosystem-section {
        padding: 1.25rem 1rem 3rem;
    }

    .ecosystem-card {
        padding: 1.375rem 1.125rem;
    }

    /* Events */
    .events-section {
        padding: 1.25rem 1rem 3rem;
    }

    .event-card {
        height: 25.5rem;
    }

    /* Updates */
    .updates-section {
        padding: 1.25rem 1rem 3rem;
    }

    .updates-table {
        grid-template-columns: 1fr;
    }

    .update-tab {
        width: 100%;
        height: 10rem;
    }

    .update-tab-label {
        font-size: 1.5rem;
    }

    .update-item-title {
        font-size: 1rem;
    }

    /* Tenants */
    .tenants-inner {
        padding: 2.5rem 1rem;
    }

    /* Testimonial */
    .testimonial-section {
        padding: 3rem 1rem;
    }

    .testimonial-heading {
        font-size: 1.375rem;
    }

    .testimonial-quote {
        font-size: 1.063rem;
    }

    .testimonial-quote-mark {
        width: 2.5rem;
    }

    .testimonial-footer {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }

    .testimonial-blockquote {
        padding-left: 3.625rem;
    }

    .testimonial-quote {
        margin: 0 0 1rem;
    }

    /* FAQ */
    .faq-inner {
        padding: 0rem 1rem 2.5rem 1rem;
    }

    #faq-heading {
        text-align: center;
        margin: 0 0 0rem;
    }

    .faq-item {
        padding: .5rem 0;
    }

    .faq-cta {
        margin-top: 1rem;
        text-align: center;
    }

    .faq-illustration {
        justify-content: center;
    }

    .faq-question {
        font-size: 1.063rem;
    }

    .faq-answer {
        font-size: 0.9375rem;
    }

    /* Two-col */
    /*.two-col-section {*/
    /*    padding: 0rem 1rem;*/
    /*}*/
    .two-col-section {
        padding: 1rem var(--space-lg) 0rem;
    }

    /* Footer partner band */
    .partner-band {
        flex-wrap: wrap;
        justify-content: center;
        gap: 0.875rem;
        padding: 1.25rem 1rem;
    }

    .partner-divider {
        display: none;
    }

    .partner-logo-my-gov,
    .partner-logo-pm-india,
    .partner-logo-data-gov,
    .partner-logo-ngs {
        height: 2.375rem;
    }

    /* Footer links */
    .footer-link-cols {
        padding: 2rem 1rem 1.5rem;
    }

    .contact-band-wrapper {
        padding: 0 1rem;
    }

    .contact-band {
        padding: 1rem;
        gap: 1rem;
    }

    .contact-logo {
        height: 2.75rem;
    }

    .contact-detail-item {
        font-size: 1rem;
        gap: 0.5rem;
    }

    .copyright-bar {
        flex-direction: column;
        align-items: center;
        gap: 0.375rem;
    }

    .copyright-bar-wrapper {
        padding: 0 1rem;
    }

    /* Contact page */
    .contact-grid {
        padding: 1rem 1rem;
    }

    .contact-map-panel {
        min-height: 26.5rem;
    }

    .contact-form-panel {
        padding: 1.5rem 1.25rem;
    }

    .officers-section {
        padding: 2rem 1rem 1rem;
    }

    /* About page */
    .about-hero-section {
        padding: 2.25rem 1rem 0;
    }

    .about-intro {
        padding: 2rem 1rem;
        font-size: 1rem;
    }

    .evolution-section {
        padding: 1.25rem 1rem 3rem;
    }

    .evolution-year {
        font-size: 2.25rem;
    }

    .vision-content {
        padding: 3rem 1rem;
    }

    .mission-section {
        padding: 3rem 1rem;
    }

    .functions-inner {
        padding: 3rem 1rem;
    }

    /* RTI sidebar */
    .sidebar-layout {
        padding: 1.5rem 1rem 3rem;
    }

    .sidebar-page-h1,
    .sidebar-page-h1,
    .sidebar-page-h1-sm {
        font-size: 1.65rem;
        line-height: normal;
        margin-bottom: .5rem;
    }

    .uac-page-h1 {
        font-size: 1.75rem;
    }

    .sidebar-reports-h2 {
        font-size: 1.375rem;
    }

    .rti-home-h1 {
        font-size: 1.625rem;
    }

    .sidebar-page-intro {
        font-size: 1rem;
    }

    /* RTI home */
    .rti-stat-value {
        font-size: 2.25rem;
    }

    .rti-section-h2 {
        font-size: 1.375rem;
    }

    /* Circular items */
    .circular-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 0rem;
    }

    .circular-item:not(:last-child) {
        padding-bottom: 1rem;
        margin-bottom: 1rem;
    }

    .circular-title {
        font-size: 1.063rem;
    }

    /* Manual items */
    .manual-item {
        flex-wrap: wrap;
    }

    .manual-item-title {
        font-size: 1rem;
        line-height: 1.75rem;
    }

    /* Contact Us page */
    .contact-page-inner {
        padding: 2rem 1rem 0.5rem;
    }

    .contact-form-card {
        padding: 1.5rem;
    }

    .contact-office-groups {
        margin-top: 2.5rem;
    }

    /* Tenders */
    .tenders-main {
        padding: 2rem 1rem 3.5rem;
    }

    .tenders-intro-text {
        font-size: 1rem;
    }

    /* Vacancies */
    .vacancies-intro {
        padding: 2.25rem 1rem 0.5rem;
    }

    .vacancies-hero-wrap {
        padding: 1rem 1rem 0;
    }

    .vacancies-grid-wrap {
        padding: 1.25rem 1rem 3rem;
    }

    /* Location */
    .location-title {
        font-size: 1.75rem;
    }

    .location-desc {
        font-size: 1.0625rem;
    }

    .location-carousel-btn.carousel-control-prev {
        left: 0.75rem;
    }

    .location-carousel-btn.carousel-control-next {
        right: 0.75rem;
    }

    /* Bulletin table */
    .bulletin-grid-cols {
        grid-template-columns: 2.5rem 1fr 2fr 6.25rem;
        font-size: 0.875rem;
    }

    .grid-table-cell {
        padding: 1rem 0.875rem;
        font-size: 1rem;
    }

    .grid-table-header div {
        padding: 0.875rem 0.875rem;
        font-size: 1.125rem;
    }

    /* Year accordion */
    .year-group {
        padding: 0 1rem;
    }

    /* Filter bar */
    .filter-bar {
        flex-direction: column;
        align-items: center;
        gap: 1rem;
    }

    .filter-controls {
        flex-wrap: wrap;
        gap: 0.625rem;
    }

    /* Circulars list */
    .circ-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }
}

/* ── 36rem: Phone portrait / iPhone ─────────────────────── */
@media (max-width: 36rem) {

    /* Utility bar wraps rather than being hidden — it carries Skip to Main Content
     and Screen Reader Access (keyboard/screen-reader essentials) plus the font-size
     and contrast controls, none of which should vanish on the most common phone width. */
    .utility-bar-inner {
        font-size: 0.8125rem;
        gap: 0.5rem 0.625rem;
    }

    .utility-link {
        font-size: 0.8125rem;
    }

    .font-sizer {
        font-size: 0.8125rem;
        gap: 0.625rem;
    }

    .font-size-btn {
        font-size: 0.8125rem;
    }

    .contrast-btn-light,
    .contrast-btn-dark {
        width: 1.75rem;
        height: 1.75rem;
        font-size: 0.8125rem;
    }

    /* Banner */
    .site-banner {
        padding: 0.5rem 0;
    }

    .banner-inner {
        padding: 0 0.75rem;
        gap: 0.625rem;
    }

    .banner-logo {
        height: 3.5rem;
    }

    .banner-campaign-logo {
        display: none;
    }

    /* Nav */
    .main-nav-inner {
        padding: 0 0.75rem;
        min-height: 3rem;
    }

    /* Hero */
    .hero-section {
        height: 20rem;
    }

    .hero-section h1 {
        font-size: 1.75rem;
        line-height: 1.2;
    }

    .hero-body {
        font-size: 0.875rem;
        margin-bottom: 1.125rem;
    }

    .hero-eyebrow {
        font-size: 0.625rem;
        letter-spacing: 1px;
        margin-bottom: 0.625rem;
    }

    .hero-content-wrap {
        padding: 0 0.75rem;
    }

    .btn-teal-lg {
        font-size: 0.875rem;
        padding: 0.6875rem 1.25rem;
        gap: 0.5rem;
    }

    /* Typography */
    .section-heading-center {
        font-size: 1.25rem;
        margin-bottom: 1.25rem;
        letter-spacing: 0;
    }

    .section-heading {
        font-size: 1.375rem;
    }

    .section-heading-lg {
        font-size: 1.25rem;
    }

    .section-body {
        font-size: 1rem;
    }

    .page-intro h1 {
        font-size: 1.5rem;
    }

    .page-intro p {
        font-size: 0.9375rem;
    }

    .vacancies-intro h1 {
        font-size: 1.5rem;
    }

    .tenders-main h1 {
        font-size: 1.375rem;
    }

    .about-hero-h1 {
        font-size: 1.625rem;
    }

    .vision-heading {
        font-size: 1.375rem;
    }

    .vision-text {
        font-size: 1rem;
    }

    .mission-heading {
        font-size: 1.375rem;
    }

    .functions-heading {
        font-size: 1.375rem;
    }

    .evolution-heading {
        font-size: 1.375rem;
    }

    .contact-form-title {
        font-size: 1.375rem;
    }

    .stat-value {
        font-size: 1.625rem;
    }

    /* Quick links */
    .quick-link-card {
        padding: 1rem 0.375rem;
        gap: 0.5rem;
        min-height: 5.625rem;
    }

    .quick-link-label {
        font-size: 0.75rem;
    }

    /* Steps */
    .step-title {
        font-size: 1.063rem;
    }

    /* Updates */
    .update-tab-label {
        font-size: 0.9375rem;
        padding-right: 0.875rem;
    }

    .update-item {
        padding: 0.875rem 1.125rem;
    }

    /* Why SEZ */

    /* Testimonial */
    .testimonial-heading {
        font-size: 1.25rem;
    }

    .testimonial-quote {
        font-size: 0.9375rem;
    }

    /* Stats */
    .stats-section {
        padding: 1rem 0.75rem 0rem;
    }

    .stat-item {
        padding: 0 0.75rem;
    }

    .stat-value {
        font-size: 1.5rem;
    }

    /* Partner logos */
    .partner-band {
        gap: 0.625rem;
        padding: 1rem 0.75rem;
        display: block;
    }

    .partner-logo-my-gov,
    .partner-logo-pm-india,
    .partner-logo-data-gov,
    .partner-logo-ngs {
        height: 1.75rem;
    }

    /* Contact band */
    .contact-band {
        flex-direction: column;
        align-items: center;
        padding: 1rem 0.75rem;
        gap: 1rem;
    }

    .contact-details {
        flex-direction: column;
        gap: 0.625rem;
    }

    .contact-detail-item {
        font-size: 0.875rem;
    }

    .contact-logo {
        height: 2.375rem;
    }

    /* Footer */
    .footer-link-cols {
        padding: 1.75rem 0.75rem 1.25rem;
    }

    .footer-col-heading {
        font-size: 1.063rem;
        margin-bottom: 0.75rem;
    }

    .footer-address,
    .footer-link-list {
        font-size: 1rem;
    }

    /* Contact page */
    .contact-form-panel {
        padding: 1.25rem 0.875rem;
    }

    .form-input,
    .form-textarea {
        padding: 0.75rem 0.875rem;
        font-size: 0.9375rem;
    }

    .officers-section-title {
        font-size: 1.625rem;
    }

    .officer-name {
        font-size: 1.063rem;
    }

    /* About page */
    .about-hero-section {
        padding: 1.75rem 0.75rem 0;
    }

    .about-intro {
        font-size: 0.9375rem;
        padding: 1.75rem 0.75rem;
    }

    .evolution-year {
        font-size: 1.875rem;
    }

    .evolution-text {
        font-size: 0.9375rem;
    }

    .mission-title {
        font-size: 1.125rem;
    }

    .function-title {
        font-size: 1.125rem;
    }

    .about-hero-img {
        height: 13.75rem;
    }



    /* RTI sidebar */
    .sidebar-layout {
        padding: 1.25rem 0.75rem 2.5rem;
    }

    .sidebar-page-h1,
    .sidebar-page-h1-sm {
        font-size: 1.375rem;
    }

    .uac-page-h1 {
        font-size: 1.5rem;
    }

    .sidebar-reports-h2 {
        font-size: 1.25rem;
    }

    .rti-home-h1 {
        font-size: 1.375rem;
    }

    .sidebar-page-intro {
        font-size: 0.9375rem;
    }

    .rti-section-h2 {
        font-size: 1.25rem;
    }

    /* RTI stats */
    .rti-stat-value {
        font-size: 2rem;
    }

    .rti-officer-avatar {
        width: 5.625rem;
        height: 5.625rem;
        font-size: 1.75rem;
    }

    .rti-btn-group {
        flex-direction: column;
        gap: 0.75rem;
    }

    /* UAC cards */
    .uac-card-img {
        height: 12.5rem;
    }

    .uac-card-title {
        font-size: 1.25rem;
    }

    /* Grid tables — ensure scroll */
    .grid-table {
        overflow-x: auto;
        min-width: 0;
    }

    .grid-table-header,
    .grid-table-row {
        min-width: 30rem;
    }

    .bulletin-grid-cols {
        grid-template-columns: 2.25rem 1fr 1.5fr 5rem;
    }

    .grid-table-cell {
        padding: 0.75rem 0.625rem;
        font-size: 1rem;
    }

    .grid-table-header div {
        padding: 0.75rem 0.625rem;
        font-size: 0.9375rem;
    }

    /* Query table */
    .query-table {
        overflow-x: auto;
    }

    .query-header,
    .query-row {
        min-width: 35rem;
    }

    /* Wider query-tables need a larger min-width so columns don't collapse before scrolling kicks in */
    .officialsTable .query-header,
    .officialsTable .query-row,
    .procurementTable .query-header,
    .procurementTable .query-row,
    .transferTable .query-header,
    .transferTable .query-row,
    .employmentTable .query-header,
    .employmentTable .query-row,
    .rtiQueriesTable .query-header,
    .rtiQueriesTable .query-row,
    .auditReportsTable .query-header,
    .auditReportsTable .query-row {
        min-width: 45rem;
    }

    .yearwiseTable .query-header,
    .yearwiseTable .query-row {
        min-width: 56rem;
    }

    /* Reports table */
    .reports-header,
    .reports-row {
        min-width: 30rem;
    }

    /* Year accordion */
    .year-title-open,
    .year-title-closed {
        font-size: 1.25rem;
    }

    .year-group {
        padding: 0 0.75rem;
    }

    /* Circular items */
    .circular-item {
        padding: 1.125rem 0.875rem;
    }

    /* Tenders */
    .tenders-main {
        padding: 1.5rem 0.75rem 0rem;
    }

    /* Vacancies */
    .vacancies-intro {
        padding: 1.75rem 0.75rem 0.5rem;
    }

    .vacancies-hero-wrap {
        padding: 0.75rem 0.75rem 0;
    }

    .vacancies-grid-wrap {
        padding: 1rem 0.75rem 2.5rem;
    }

    .vacancy-title {
        font-size: 1.25rem;
    }

    /* Location */
    .location-title {
        font-size: 1.5rem;
    }

    .location-carousel-btn {
        width: 2.25rem;
        height: 2.25rem;
    }

    .location-carousel-btn.carousel-control-prev {
        left: 0.5rem;
    }

    .location-carousel-btn.carousel-control-next {
        right: 0.5rem;
    }

    /* Filter bar */
    .filter-select {
        min-width: 8.125rem;
        font-size: 0.875rem;
        padding: 0.625rem 0.875rem;
    }

    .btn-search {
        padding: 0.6875rem 1.375rem;
        font-size: 0.9375rem;
    }
}

/* ── 30rem: Small phones ─────────────────────────────────── */
@media (max-width: 30rem) {
    .hero-section {
        height: 18.75rem;
    }

    .quick-link-card {
        padding: 0.875rem 0.375rem;
    }

    .quick-link-label {
        font-size: 1rem;
    }

    .bulletin-grid-cols {
        grid-template-columns: 2.25rem 1fr 1fr 5rem;
    }

    .rti-btn-group {
        flex-direction: column;
    }
}

/* ── 22.5rem: Very small phones ────────────────────────────── */
@media (max-width: 22.5rem) {
    .hero-section h1 {
        font-size: 1.188rem;
    }

    .hero-body {
        font-size: 0.8125rem;
    }

    .btn-teal-lg {
        font-size: 0.8125rem;
        padding: 0.625rem 1rem;
    }

    .section-heading-center {
        font-size: 1.125rem;
    }

    .section-heading {
        font-size: 1.188rem;
    }

    .quick-link-label {
        font-size: 0.6875rem;
    }

    .stat-value {
        font-size: 1.375rem;
    }

    .page-intro h1 {
        font-size: 1.375rem;
    }

    .about-hero-h1 {
        font-size: 1.375rem;
    }

    .tenders-main h1 {
        font-size: 1.25rem;
    }

    .sidebar-page-h1,
    .sidebar-page-h1-sm,
    .rti-home-h1 {
        font-size: 1.25rem;
    }

    .partner-logo-my-gov,
    .partner-logo-pm-india,
    .partner-logo-data-gov,
    .partner-logo-ngs {
        height: 1.5rem;
    }
}





.year-collapsed--last {
    margin-bottom: 4rem;
}

/* Filter dropdown */
.filter-dropdown-wrap {
    position: relative;
}

.filter-cal-icon {
    flex-shrink: 0;
}

.filter-select-label {
    flex: 1;
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.filter-dropdown-panel {
    position: absolute;
    top: calc(100% + 0.375rem);
    left: 0;
    min-width: 100%;
    background: #fff;
    border: 1px solid #c8dfe0;
    border-radius: 0.375rem;
    box-shadow: 0 4px 16px rgba(0, 0, 0, .1);
    z-index: 200;
    display: none;
    max-height: 17rem;
    overflow-y: auto;
}

.filter-dropdown-panel.is-open {
    display: block;
}

.filter-dropdown-panel button {
    display: block;
    width: 100%;
    text-align: left;
    padding: 0.5625rem 1rem;
    background: none;
    border: none;
    font: inherit;
    font-size: 0.9375rem;
    color: #333;
    cursor: pointer;
}

.filter-dropdown-panel button:hover {
    background: #eef7f5;
    color: #057671;
}

.filter-dropdown-panel button.is-selected {
    color: #057671;
    font-weight: 600;
    background: #f0fbfa;
}

/* Searchable select combobox (zone pickers etc. — type-to-filter long lists) */
.ss-wrap {
    position: relative;
    flex: 1;
    min-width: 0;
}

.ss-native {
    display: none;
}

.ss-panel {
    position: absolute;
    top: calc(100% + 0.375rem);
    left: 0;
    right: 0;
    min-width: 100%;
    background: #fff;
    border: 1px solid #c8dfe0;
    border-radius: 0.5rem;
    box-shadow: 0 4px 16px rgba(0, 0, 0, .12);
    z-index: 500;
    display: none;
    max-height: 17rem;
    overflow-y: auto;
    padding: 0.25rem 0;
    scrollbar-width: thin;
    scrollbar-color: #9fc7c4 #f4faf9;
}

.ss-panel::-webkit-scrollbar {
    width: 0.5rem;
}

.ss-panel::-webkit-scrollbar-track {
    background: #f4faf9;
    border-radius: 0.25rem;
}

.ss-panel::-webkit-scrollbar-thumb {
    background: #9fc7c4;
    border-radius: 0.25rem;
}

.ss-panel::-webkit-scrollbar-thumb:hover {
    background: #057671;
}

.ss-panel.is-open {
    display: block;
}

.ss-option {
    display: block;
    width: 100%;
    text-align: left;
    padding: 0.5625rem 1rem;
    background: none;
    border: none;
    font: inherit;
    font-size: 0.9375rem;
    color: #333;
    cursor: pointer;
}

.ss-option:hover,
.ss-option.is-active {
    background: #eef7f5;
    color: #057671;
}

.ss-option.is-selected {
    color: #057671;
    font-weight: 600;
    background: #f0fbfa;
}

.ss-empty {
    padding: 0.625rem 1rem;
    color: #6E6666;
    font-size: 0.875rem;
}

html.csez-contrast-dark .ss-panel {
    background: #1e2a28 !important;
    border-color: #3a3a3a !important;
    scrollbar-color: #1a5250 #1e2a28 !important;
}

html.csez-contrast-dark .ss-panel::-webkit-scrollbar-track {
    background: #1e2a28 !important;
}

html.csez-contrast-dark .ss-panel::-webkit-scrollbar-thumb {
    background: #1a5250 !important;
}

html.csez-contrast-dark .ss-option {
    color: #d0d0d0 !important;
}

html.csez-contrast-dark .ss-option:hover,
html.csez-contrast-dark .ss-option.is-active {
    background: #1a5250 !important;
    color: #fff !important;
}

html.csez-contrast-dark .ss-option.is-selected {
    background: #1a5250 !important;
    color: #fff !important;
}

html.csez-contrast-dark .ss-empty {
    color: #999 !important;
}


/* -----------------------------------------------------------
   RTI CIRCULARS
   ----------------------------------------------------------- */

/* -----------------------------------------------------------
   RTI MANUAL
   ----------------------------------------------------------- */
.manual-item--last {
    border-bottom: none;
}

/* =============================================================
   ACCESSIBILITY — Font Size & Contrast Modes
   Classes applied to <html> by js/accessibility.js
   ============================================================= */

/* ── Active button highlight ─────────────────────────────── */
.font-size-btn.access-active {
    text-decoration: underline;
    font-weight: 800;
}

/*.contrast-btn-light.access-active {*/
/*    outline: 0.1875rem solid #fff;*/
/*    outline-offset: 0.125rem;*/
/*}*/

.contrast-btn-dark.access-active {
    outline-offset: 0.125rem;
}

/* ── Font Size: -3 (smallest) ────────────────────────────── */
html.csez-fs-sm3 body {
    font-size: 0.625rem;
}

html.csez-fs-sm3 p,
html.csez-fs-sm3 li,
html.csez-fs-sm3 .section-body,
html.csez-fs-sm3 .hero-body,
html.csez-fs-sm3 .primary-nav-list .nav-link,
html.csez-fs-sm3 .sidebar-link,
html.csez-fs-sm3 .quick-link-label,
html.csez-fs-sm3 .update-item-title,
html.csez-fs-sm3 .footer-address,
html.csez-fs-sm3 .footer-link,
html.csez-fs-sm3 .faq-question,
html.csez-fs-sm3 .faq-answer,
html.csez-fs-sm3 .circular-title,
html.csez-fs-sm3 .circular-meta,
html.csez-fs-sm3 .tender-title,
html.csez-fs-sm3 .vacancy-title,
html.csez-fs-sm3 .vacancy-desc,
html.csez-fs-sm3 .ticker-item,
html.csez-fs-sm3 .stat-label,
html.csez-fs-sm3 .grid-table-cell,
html.csez-fs-sm3 .query-cell,
html.csez-fs-sm3 .manual-item-title,
html.csez-fs-sm3 .rti-info-desc,
html.csez-fs-sm3 .step-desc,
html.csez-fs-sm3 .ecosystem-desc,
html.csez-fs-sm3 .why-desc {
    font-size: 0.625rem;
}

html.csez-fs-sm3 h1,
html.csez-fs-sm3 .hero-section h1,
html.csez-fs-sm3 .tenders-main h1,
html.csez-fs-sm3 .about-hero-h1,
html.csez-fs-sm3 .sidebar-page-h1,
html.csez-fs-sm3 .rti-home-h1 {
    font-size: 1.6rem;
}

html.csez-fs-sm3 h2,
html.csez-fs-sm3 .section-heading-center,
html.csez-fs-sm3 .section-heading {
    font-size: 1.2rem;
}

html.csez-fs-sm3 h3,
html.csez-fs-sm3 .step-title,
html.csez-fs-sm3 .ecosystem-title {
    font-size: 0.95rem;
}

/* ── Font Size: -2 ───────────────────────────────────────── */
html.csez-fs-sm2 body {
    font-size: 0.75rem;
}

html.csez-fs-sm2 p,
html.csez-fs-sm2 li,
html.csez-fs-sm2 .section-body,
html.csez-fs-sm2 .hero-body,
html.csez-fs-sm2 .primary-nav-list .nav-link,
html.csez-fs-sm2 .sidebar-link,
html.csez-fs-sm2 .quick-link-label,
html.csez-fs-sm2 .update-item-title,
html.csez-fs-sm2 .footer-address,
html.csez-fs-sm2 .footer-link,
html.csez-fs-sm2 .faq-question,
html.csez-fs-sm2 .faq-answer,
html.csez-fs-sm2 .circular-title,
html.csez-fs-sm2 .circular-meta,
html.csez-fs-sm2 .tender-title,
html.csez-fs-sm2 .vacancy-title,
html.csez-fs-sm2 .vacancy-desc,
html.csez-fs-sm2 .ticker-item,
html.csez-fs-sm2 .stat-label,
html.csez-fs-sm2 .grid-table-cell,
html.csez-fs-sm2 .query-cell,
html.csez-fs-sm2 .manual-item-title,
html.csez-fs-sm2 .rti-info-desc,
html.csez-fs-sm2 .step-desc,
html.csez-fs-sm2 .ecosystem-desc,
html.csez-fs-sm2 .why-desc {
    font-size: 0.75rem;
}

html.csez-fs-sm2 h1,
html.csez-fs-sm2 .hero-section h1,
html.csez-fs-sm2 .tenders-main h1,
html.csez-fs-sm2 .about-hero-h1,
html.csez-fs-sm2 .sidebar-page-h1,
html.csez-fs-sm2 .rti-home-h1 {
    font-size: 1.75rem;
}

html.csez-fs-sm2 h2,
html.csez-fs-sm2 .section-heading-center,
html.csez-fs-sm2 .section-heading {
    font-size: 1.35rem;
}

html.csez-fs-sm2 h3,
html.csez-fs-sm2 .step-title,
html.csez-fs-sm2 .ecosystem-title {
    font-size: 1.05rem;
}

/* ── Font Size: -1 ───────────────────────────────────────── */
html.csez-fs-sm body {
    font-size: 0.875rem;
}

html.csez-fs-sm p,
html.csez-fs-sm li,
html.csez-fs-sm .section-body,
html.csez-fs-sm .hero-body,
html.csez-fs-sm .primary-nav-list .nav-link,
html.csez-fs-sm .sidebar-link,
html.csez-fs-sm .quick-link-label,
html.csez-fs-sm .update-item-title,
html.csez-fs-sm .footer-address,
html.csez-fs-sm .footer-link,
html.csez-fs-sm .faq-question,
html.csez-fs-sm .faq-answer,
html.csez-fs-sm .circular-title,
html.csez-fs-sm .circular-meta,
html.csez-fs-sm .tender-title,
html.csez-fs-sm .vacancy-title,
html.csez-fs-sm .vacancy-desc,
html.csez-fs-sm .ticker-item,
html.csez-fs-sm .stat-label,
html.csez-fs-sm .grid-table-cell,
html.csez-fs-sm .query-cell,
html.csez-fs-sm .manual-item-title,
html.csez-fs-sm .rti-info-desc,
html.csez-fs-sm .step-desc,
html.csez-fs-sm .ecosystem-desc,
html.csez-fs-sm .why-desc {
    font-size: 0.875rem;
}

html.csez-fs-sm h1,
html.csez-fs-sm .hero-section h1,
html.csez-fs-sm .tenders-main h1,
html.csez-fs-sm .about-hero-h1,
html.csez-fs-sm .sidebar-page-h1,
html.csez-fs-sm .rti-home-h1 {
    font-size: 2rem;
}

html.csez-fs-sm h2,
html.csez-fs-sm .section-heading-center,
html.csez-fs-sm .section-heading {
    font-size: 1.5rem;
}

html.csez-fs-sm h3,
html.csez-fs-sm .step-title,
html.csez-fs-sm .ecosystem-title {
    font-size: 1.15rem;
}

/* ── Font Size: +1 ───────────────────────────────────────── */
html.csez-fs-lg body {
    font-size: 1.25rem;
}

html.csez-fs-lg p,
html.csez-fs-lg li,
html.csez-fs-lg .section-body,
html.csez-fs-lg .hero-body,
html.csez-fs-lg .primary-nav-list .nav-link,
html.csez-fs-lg .sidebar-link,
html.csez-fs-lg .quick-link-label,
html.csez-fs-lg .update-item-title,
html.csez-fs-lg .footer-address,
html.csez-fs-lg .footer-link,
html.csez-fs-lg .faq-question,
html.csez-fs-lg .faq-answer,
html.csez-fs-lg .circular-title,
html.csez-fs-lg .circular-meta,
html.csez-fs-lg .tender-title,
html.csez-fs-lg .vacancy-title,
html.csez-fs-lg .vacancy-desc,
html.csez-fs-lg .ticker-item,
html.csez-fs-lg .stat-label,
html.csez-fs-lg .grid-table-cell,
html.csez-fs-lg .query-cell,
html.csez-fs-lg .manual-item-title,
html.csez-fs-lg .rti-info-desc,
html.csez-fs-lg .step-desc,
html.csez-fs-lg .ecosystem-desc,
html.csez-fs-lg .why-desc {
    font-size: 1.25rem;
}

html.csez-fs-lg h1,
html.csez-fs-lg .hero-section h1,
html.csez-fs-lg .tenders-main h1,
html.csez-fs-lg .about-hero-h1,
html.csez-fs-lg .sidebar-page-h1,
html.csez-fs-lg .rti-home-h1 {
    font-size: 3.2rem;
}

html.csez-fs-lg h2,
html.csez-fs-lg .section-heading-center,
html.csez-fs-lg .section-heading {
    font-size: 2.4rem;
}

html.csez-fs-lg h3,
html.csez-fs-lg .step-title,
html.csez-fs-lg .ecosystem-title {
    font-size: 1.6rem;
}

html.csez-fs-lg .primary-nav-list .nav-link {
    font-size: 1.25rem;
}

html.csez-fs-lg .btn-teal-lg {
    font-size: 1.375rem;
    padding: 1.125rem 2.375rem;
}

html.csez-fs-lg .btn-teal-md {
    font-size: 1.25rem;
    padding: 1rem 2rem;
}

/* ── Font Size: +2 ───────────────────────────────────────── */
html.csez-fs-lg2 body {
    font-size: 1.375rem;
}

html.csez-fs-lg2 p,
html.csez-fs-lg2 li,
html.csez-fs-lg2 .section-body,
html.csez-fs-lg2 .hero-body,
html.csez-fs-lg2 .primary-nav-list .nav-link,
html.csez-fs-lg2 .sidebar-link,
html.csez-fs-lg2 .quick-link-label,
html.csez-fs-lg2 .update-item-title,
html.csez-fs-lg2 .footer-address,
html.csez-fs-lg2 .footer-link,
html.csez-fs-lg2 .faq-question,
html.csez-fs-lg2 .faq-answer,
html.csez-fs-lg2 .circular-title,
html.csez-fs-lg2 .circular-meta,
html.csez-fs-lg2 .tender-title,
html.csez-fs-lg2 .vacancy-title,
html.csez-fs-lg2 .vacancy-desc,
html.csez-fs-lg2 .ticker-item,
html.csez-fs-lg2 .stat-label,
html.csez-fs-lg2 .grid-table-cell,
html.csez-fs-lg2 .query-cell,
html.csez-fs-lg2 .manual-item-title,
html.csez-fs-lg2 .rti-info-desc,
html.csez-fs-lg2 .step-desc,
html.csez-fs-lg2 .ecosystem-desc,
html.csez-fs-lg2 .why-desc {
    font-size: 1.375rem;
}

html.csez-fs-lg2 h1,
html.csez-fs-lg2 .hero-section h1,
html.csez-fs-lg2 .tenders-main h1,
html.csez-fs-lg2 .about-hero-h1,
html.csez-fs-lg2 .sidebar-page-h1,
html.csez-fs-lg2 .rti-home-h1 {
    font-size: 3.6rem;
}

html.csez-fs-lg2 h2,
html.csez-fs-lg2 .section-heading-center,
html.csez-fs-lg2 .section-heading {
    font-size: 2.8rem;
}

html.csez-fs-lg2 h3,
html.csez-fs-lg2 .step-title,
html.csez-fs-lg2 .ecosystem-title {
    font-size: 1.8rem;
}

html.csez-fs-lg2 .primary-nav-list .nav-link {
    font-size: 1.375rem;
}

html.csez-fs-lg2 .btn-teal-lg {
    font-size: 1.5rem;
    padding: 1.25rem 2.625rem;
}

html.csez-fs-lg2 .btn-teal-md {
    font-size: 1.375rem;
    padding: 1.125rem 2.25rem;
}

/* ── Font Size: +3 (largest) ─────────────────────────────── */
html.csez-fs-lg3 body {
    font-size: 1.5rem;
}

html.csez-fs-lg3 p,
html.csez-fs-lg3 li,
html.csez-fs-lg3 .section-body,
html.csez-fs-lg3 .hero-body,
html.csez-fs-lg3 .primary-nav-list .nav-link,
html.csez-fs-lg3 .sidebar-link,
html.csez-fs-lg3 .quick-link-label,
html.csez-fs-lg3 .update-item-title,
html.csez-fs-lg3 .footer-address,
html.csez-fs-lg3 .footer-link,
html.csez-fs-lg3 .faq-question,
html.csez-fs-lg3 .faq-answer,
html.csez-fs-lg3 .circular-title,
html.csez-fs-lg3 .circular-meta,
html.csez-fs-lg3 .tender-title,
html.csez-fs-lg3 .vacancy-title,
html.csez-fs-lg3 .vacancy-desc,
html.csez-fs-lg3 .ticker-item,
html.csez-fs-lg3 .stat-label,
html.csez-fs-lg3 .grid-table-cell,
html.csez-fs-lg3 .query-cell,
html.csez-fs-lg3 .manual-item-title,
html.csez-fs-lg3 .rti-info-desc,
html.csez-fs-lg3 .step-desc,
html.csez-fs-lg3 .ecosystem-desc,
html.csez-fs-lg3 .why-desc {
    font-size: 1.5rem;
}

html.csez-fs-lg3 h1,
html.csez-fs-lg3 .hero-section h1,
html.csez-fs-lg3 .tenders-main h1,
html.csez-fs-lg3 .about-hero-h1,
html.csez-fs-lg3 .sidebar-page-h1,
html.csez-fs-lg3 .rti-home-h1 {
    font-size: 4rem;
}

html.csez-fs-lg3 h2,
html.csez-fs-lg3 .section-heading-center,
html.csez-fs-lg3 .section-heading {
    font-size: 3.2rem;
}

html.csez-fs-lg3 h3,
html.csez-fs-lg3 .step-title,
html.csez-fs-lg3 .ecosystem-title {
    font-size: 2rem;
}

html.csez-fs-lg3 .primary-nav-list .nav-link {
    font-size: 1.5rem;
}

html.csez-fs-lg3 .btn-teal-lg {
    font-size: 1.625rem;
    padding: 1.375rem 2.875rem;
}

html.csez-fs-lg3 .btn-teal-md {
    font-size: 1.5rem;
    padding: 1.25rem 2.5rem;
}

/* ── Font Size: -4 ───────────────────────────────────────── */
html.csez-fs-sm4 body {
    font-size: 0.5625rem;
}

html.csez-fs-sm4 p,
html.csez-fs-sm4 li,
html.csez-fs-sm4 .section-body,
html.csez-fs-sm4 .hero-body,
html.csez-fs-sm4 .primary-nav-list .nav-link,
html.csez-fs-sm4 .sidebar-link,
html.csez-fs-sm4 .quick-link-label,
html.csez-fs-sm4 .update-item-title,
html.csez-fs-sm4 .footer-address,
html.csez-fs-sm4 .footer-link,
html.csez-fs-sm4 .faq-question,
html.csez-fs-sm4 .faq-answer,
html.csez-fs-sm4 .circular-title,
html.csez-fs-sm4 .circular-meta,
html.csez-fs-sm4 .tender-title,
html.csez-fs-sm4 .vacancy-title,
html.csez-fs-sm4 .vacancy-desc,
html.csez-fs-sm4 .ticker-item,
html.csez-fs-sm4 .stat-label,
html.csez-fs-sm4 .grid-table-cell,
html.csez-fs-sm4 .query-cell,
html.csez-fs-sm4 .manual-item-title,
html.csez-fs-sm4 .rti-info-desc,
html.csez-fs-sm4 .step-desc,
html.csez-fs-sm4 .ecosystem-desc,
html.csez-fs-sm4 .why-desc {
    font-size: 0.5625rem;
}

html.csez-fs-sm4 h1,
html.csez-fs-sm4 .hero-section h1,
html.csez-fs-sm4 .tenders-main h1,
html.csez-fs-sm4 .about-hero-h1,
html.csez-fs-sm4 .sidebar-page-h1,
html.csez-fs-sm4 .rti-home-h1 {
    font-size: 1.5rem;
}

html.csez-fs-sm4 h2,
html.csez-fs-sm4 .section-heading-center,
html.csez-fs-sm4 .section-heading {
    font-size: 1.1rem;
}

html.csez-fs-sm4 h3,
html.csez-fs-sm4 .step-title,
html.csez-fs-sm4 .ecosystem-title {
    font-size: 0.85rem;
}

/* ── Font Size: -5 ───────────────────────────────────────── */
html.csez-fs-sm5 body {
    font-size: 0.5rem;
}

html.csez-fs-sm5 p,
html.csez-fs-sm5 li,
html.csez-fs-sm5 .section-body,
html.csez-fs-sm5 .hero-body,
html.csez-fs-sm5 .primary-nav-list .nav-link,
html.csez-fs-sm5 .sidebar-link,
html.csez-fs-sm5 .quick-link-label,
html.csez-fs-sm5 .update-item-title,
html.csez-fs-sm5 .footer-address,
html.csez-fs-sm5 .footer-link,
html.csez-fs-sm5 .faq-question,
html.csez-fs-sm5 .faq-answer,
html.csez-fs-sm5 .circular-title,
html.csez-fs-sm5 .circular-meta,
html.csez-fs-sm5 .tender-title,
html.csez-fs-sm5 .vacancy-title,
html.csez-fs-sm5 .vacancy-desc,
html.csez-fs-sm5 .ticker-item,
html.csez-fs-sm5 .stat-label,
html.csez-fs-sm5 .grid-table-cell,
html.csez-fs-sm5 .query-cell,
html.csez-fs-sm5 .manual-item-title,
html.csez-fs-sm5 .rti-info-desc,
html.csez-fs-sm5 .step-desc,
html.csez-fs-sm5 .ecosystem-desc,
html.csez-fs-sm5 .why-desc {
    font-size: 0.5rem;
}

html.csez-fs-sm5 h1,
html.csez-fs-sm5 .hero-section h1,
html.csez-fs-sm5 .tenders-main h1,
html.csez-fs-sm5 .about-hero-h1,
html.csez-fs-sm5 .sidebar-page-h1,
html.csez-fs-sm5 .rti-home-h1 {
    font-size: 1.4rem;
}

html.csez-fs-sm5 h2,
html.csez-fs-sm5 .section-heading-center,
html.csez-fs-sm5 .section-heading {
    font-size: 1rem;
}

html.csez-fs-sm5 h3,
html.csez-fs-sm5 .step-title,
html.csez-fs-sm5 .ecosystem-title {
    font-size: 0.8rem;
}

/* ── Font Size: -6 (minimum) ─────────────────────────────── */
html.csez-fs-sm6 body {
    font-size: 0.4375rem;
}

html.csez-fs-sm6 p,
html.csez-fs-sm6 li,
html.csez-fs-sm6 .section-body,
html.csez-fs-sm6 .hero-body,
html.csez-fs-sm6 .primary-nav-list .nav-link,
html.csez-fs-sm6 .sidebar-link,
html.csez-fs-sm6 .quick-link-label,
html.csez-fs-sm6 .update-item-title,
html.csez-fs-sm6 .footer-address,
html.csez-fs-sm6 .footer-link,
html.csez-fs-sm6 .faq-question,
html.csez-fs-sm6 .faq-answer,
html.csez-fs-sm6 .circular-title,
html.csez-fs-sm6 .circular-meta,
html.csez-fs-sm6 .tender-title,
html.csez-fs-sm6 .vacancy-title,
html.csez-fs-sm6 .vacancy-desc,
html.csez-fs-sm6 .ticker-item,
html.csez-fs-sm6 .stat-label,
html.csez-fs-sm6 .grid-table-cell,
html.csez-fs-sm6 .query-cell,
html.csez-fs-sm6 .manual-item-title,
html.csez-fs-sm6 .rti-info-desc,
html.csez-fs-sm6 .step-desc,
html.csez-fs-sm6 .ecosystem-desc,
html.csez-fs-sm6 .why-desc {
    font-size: 0.4375rem;
}

html.csez-fs-sm6 h1,
html.csez-fs-sm6 .hero-section h1,
html.csez-fs-sm6 .tenders-main h1,
html.csez-fs-sm6 .about-hero-h1,
html.csez-fs-sm6 .sidebar-page-h1,
html.csez-fs-sm6 .rti-home-h1 {
    font-size: 1.3rem;
}

html.csez-fs-sm6 h2,
html.csez-fs-sm6 .section-heading-center,
html.csez-fs-sm6 .section-heading {
    font-size: 0.95rem;
}

html.csez-fs-sm6 h3,
html.csez-fs-sm6 .step-title,
html.csez-fs-sm6 .ecosystem-title {
    font-size: 0.75rem;
}

/* ── Font Size: +4 ───────────────────────────────────────── */
html.csez-fs-lg4 body {
    font-size: 1.625rem;
}

html.csez-fs-lg4 p,
html.csez-fs-lg4 li,
html.csez-fs-lg4 .section-body,
html.csez-fs-lg4 .hero-body,
html.csez-fs-lg4 .primary-nav-list .nav-link,
html.csez-fs-lg4 .sidebar-link,
html.csez-fs-lg4 .quick-link-label,
html.csez-fs-lg4 .update-item-title,
html.csez-fs-lg4 .footer-address,
html.csez-fs-lg4 .footer-link,
html.csez-fs-lg4 .faq-question,
html.csez-fs-lg4 .faq-answer,
html.csez-fs-lg4 .circular-title,
html.csez-fs-lg4 .circular-meta,
html.csez-fs-lg4 .tender-title,
html.csez-fs-lg4 .vacancy-title,
html.csez-fs-lg4 .vacancy-desc,
html.csez-fs-lg4 .ticker-item,
html.csez-fs-lg4 .stat-label,
html.csez-fs-lg4 .grid-table-cell,
html.csez-fs-lg4 .query-cell,
html.csez-fs-lg4 .manual-item-title,
html.csez-fs-lg4 .rti-info-desc,
html.csez-fs-lg4 .step-desc,
html.csez-fs-lg4 .ecosystem-desc,
html.csez-fs-lg4 .why-desc {
    font-size: 1.625rem;
}

html.csez-fs-lg4 h1,
html.csez-fs-lg4 .hero-section h1,
html.csez-fs-lg4 .tenders-main h1,
html.csez-fs-lg4 .about-hero-h1,
html.csez-fs-lg4 .sidebar-page-h1,
html.csez-fs-lg4 .rti-home-h1 {
    font-size: 4.4rem;
}

html.csez-fs-lg4 h2,
html.csez-fs-lg4 .section-heading-center,
html.csez-fs-lg4 .section-heading {
    font-size: 3.4rem;
}

html.csez-fs-lg4 h3,
html.csez-fs-lg4 .step-title,
html.csez-fs-lg4 .ecosystem-title {
    font-size: 2.2rem;
}

html.csez-fs-lg4 .primary-nav-list .nav-link {
    font-size: 1.625rem;
}

html.csez-fs-lg4 .btn-teal-lg {
    font-size: 1.75rem;
    padding: 1.5rem 3.125rem;
}

html.csez-fs-lg4 .btn-teal-md {
    font-size: 1.625rem;
    padding: 1.375rem 2.75rem;
}

/* ── Font Size: +5 ───────────────────────────────────────── */
html.csez-fs-lg5 body {
    font-size: 1.75rem;
}

html.csez-fs-lg5 p,
html.csez-fs-lg5 li,
html.csez-fs-lg5 .section-body,
html.csez-fs-lg5 .hero-body,
html.csez-fs-lg5 .primary-nav-list .nav-link,
html.csez-fs-lg5 .sidebar-link,
html.csez-fs-lg5 .quick-link-label,
html.csez-fs-lg5 .update-item-title,
html.csez-fs-lg5 .footer-address,
html.csez-fs-lg5 .footer-link,
html.csez-fs-lg5 .faq-question,
html.csez-fs-lg5 .faq-answer,
html.csez-fs-lg5 .circular-title,
html.csez-fs-lg5 .circular-meta,
html.csez-fs-lg5 .tender-title,
html.csez-fs-lg5 .vacancy-title,
html.csez-fs-lg5 .vacancy-desc,
html.csez-fs-lg5 .ticker-item,
html.csez-fs-lg5 .stat-label,
html.csez-fs-lg5 .grid-table-cell,
html.csez-fs-lg5 .query-cell,
html.csez-fs-lg5 .manual-item-title,
html.csez-fs-lg5 .rti-info-desc,
html.csez-fs-lg5 .step-desc,
html.csez-fs-lg5 .ecosystem-desc,
html.csez-fs-lg5 .why-desc {
    font-size: 1.75rem;
}

html.csez-fs-lg5 h1,
html.csez-fs-lg5 .hero-section h1,
html.csez-fs-lg5 .tenders-main h1,
html.csez-fs-lg5 .about-hero-h1,
html.csez-fs-lg5 .sidebar-page-h1,
html.csez-fs-lg5 .rti-home-h1 {
    font-size: 4.8rem;
}

html.csez-fs-lg5 h2,
html.csez-fs-lg5 .section-heading-center,
html.csez-fs-lg5 .section-heading {
    font-size: 3.8rem;
}

html.csez-fs-lg5 h3,
html.csez-fs-lg5 .step-title,
html.csez-fs-lg5 .ecosystem-title {
    font-size: 2.4rem;
}

html.csez-fs-lg5 .primary-nav-list .nav-link {
    font-size: 1.75rem;
}

html.csez-fs-lg5 .btn-teal-lg {
    font-size: 1.875rem;
    padding: 1.625rem 3.375rem;
}

html.csez-fs-lg5 .btn-teal-md {
    font-size: 1.75rem;
    padding: 1.5rem 3rem;
}

/* ── Font Size: +6 (maximum) ─────────────────────────────── */
html.csez-fs-lg6 body {
    font-size: 2rem;
}

html.csez-fs-lg6 p,
html.csez-fs-lg6 li,
html.csez-fs-lg6 .section-body,
html.csez-fs-lg6 .hero-body,
html.csez-fs-lg6 .primary-nav-list .nav-link,
html.csez-fs-lg6 .sidebar-link,
html.csez-fs-lg6 .quick-link-label,
html.csez-fs-lg6 .update-item-title,
html.csez-fs-lg6 .footer-address,
html.csez-fs-lg6 .footer-link,
html.csez-fs-lg6 .faq-question,
html.csez-fs-lg6 .faq-answer,
html.csez-fs-lg6 .circular-title,
html.csez-fs-lg6 .circular-meta,
html.csez-fs-lg6 .tender-title,
html.csez-fs-lg6 .vacancy-title,
html.csez-fs-lg6 .vacancy-desc,
html.csez-fs-lg6 .ticker-item,
html.csez-fs-lg6 .stat-label,
html.csez-fs-lg6 .grid-table-cell,
html.csez-fs-lg6 .query-cell,
html.csez-fs-lg6 .manual-item-title,
html.csez-fs-lg6 .rti-info-desc,
html.csez-fs-lg6 .step-desc,
html.csez-fs-lg6 .ecosystem-desc,
html.csez-fs-lg6 .why-desc {
    font-size: 2rem;
}

html.csez-fs-lg6 h1,
html.csez-fs-lg6 .hero-section h1,
html.csez-fs-lg6 .tenders-main h1,
html.csez-fs-lg6 .about-hero-h1,
html.csez-fs-lg6 .sidebar-page-h1,
html.csez-fs-lg6 .rti-home-h1 {
    font-size: 5.4rem;
}

html.csez-fs-lg6 h2,
html.csez-fs-lg6 .section-heading-center,
html.csez-fs-lg6 .section-heading {
    font-size: 4.2rem;
}

html.csez-fs-lg6 h3,
html.csez-fs-lg6 .step-title,
html.csez-fs-lg6 .ecosystem-title {
    font-size: 2.8rem;
}

html.csez-fs-lg6 .primary-nav-list .nav-link {
    font-size: 2rem;
}

html.csez-fs-lg6 .btn-teal-lg {
    font-size: 2.125rem;
    padding: 1.75rem 3.625rem;
}

html.csez-fs-lg6 .btn-teal-md {
    font-size: 2rem;
    padding: 1.625rem 3.25rem;
}

/* ── Contrast: Light (default design — no overrides needed) ─ */
/* The default design is already a light theme. The bright
   button simply signals "reset to normal". Only the utility
   bar is pinned so it is never touched by inherited colour
   changes from any other mode. */
html.csez-contrast-bright .utility-bar {
    background: #057671 !important;
    color: #fff !important;
}

html.csez-contrast-bright .utility-bar a,
html.csez-contrast-bright .utility-link {
    color: #fff !important;
}

html.csez-contrast-bright .utility-link:hover,
html.csez-contrast-bright .utility-link:focus {
    color: #fff !important;
}

html.csez-contrast-bright .font-size-btn {
    color: #fff !important;
}

html.csez-contrast-bright .font-size-btn:disabled {
    color: rgba(255, 255, 255, 0.28) !important;
}

html.csez-contrast-bright .lang-switcher {
    color: #fff !important;
}

html.csez-contrast-bright .contrast-btn-light {
    background: #fff !important;
    color: #000 !important;
}

html.csez-contrast-bright .contrast-btn-dark {
    background: #000 !important;
    color: #fff !important;
    border-color: #fff !important;
}

/* ── Contrast: Dark mode ─────────────────────────────────── */
html.csez-contrast-dark body {
    background: #121212 !important;
    color: #e8e8e8 !important;
}

html.csez-contrast-dark .main-nav-wrapper {
    background: #1e1e1e !important;
    border-color: #333 !important;
}

html.csez-contrast-dark .site-banner {
    background: #1a1a1a !important;
}

html.csez-contrast-dark .bg-light-green,
html.csez-contrast-dark .sez-tenants-bg,
html.csez-contrast-dark .faq-section {
    background: #1e1e1e !important;
}

html.csez-contrast-dark h1,
html.csez-contrast-dark h2,
html.csez-contrast-dark h3,
html.csez-contrast-dark h4 {
    color: #f0f0f0 !important;
}

html.csez-contrast-dark p,
html.csez-contrast-dark li,
html.csez-contrast-dark .section-body,
html.csez-contrast-dark .hero-body {
    color: #d4d4d4 !important;
}

html.csez-contrast-dark a,
html.csez-contrast-dark .primary-nav-list .nav-link,
html.csez-contrast-dark .footer-link,
html.csez-contrast-dark .view-link {
    color: #7ecdc8 !important;
}

html.csez-contrast-dark a {
    color: #fff !important;
}

/* ── Home Popup modal ────────────────────────────────────── */
.home-popup-modal .modal-dialog {
    max-width: 75vw;
    width: 75vw;
    margin: 5vh auto;
}

.home-popup-modal .modal-content {
    border: 0;
    border-radius: 0.75rem;
    overflow: hidden;
    max-height: 90vh;
}

.home-popup-modal .modal-header {
    background: #3EA29D;
    border-bottom: 0;
    padding: 1.125rem 1.5rem;
    position: relative;
    justify-content: center;
    flex: none;
}

.home-popup-modal .modal-title {
    color: #fff;
    font-weight: 600;
    font-size: 1.5rem;
    text-align: center;
    width: 100%;
}

.home-popup-modal .btn-close {
    filter: invert(1) grayscale(1) brightness(200%);
    position: absolute;
    right: 1.5rem;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
}

.home-popup-body {
    padding: 0;
    overflow-y: auto;
    max-height: calc(90vh - 4.25rem);
}

.home-popup-body .carousel-item {
    padding: 2rem 3rem 1.5rem;
    text-align: center;
}

.home-popup-img {
    display: block;
    max-width: 100%;
    max-height: 40vh;
    object-fit: contain;
    border-radius: 0.5rem;
    margin: 0 auto 1.25rem;
}

.home-popup-desc {
    font-size: 1.0625rem;
    line-height: 1.6;
    color: #333;
    margin: 0;
    white-space: pre-line;
}

.home-popup-modal .carousel-control-prev,
.home-popup-modal .carousel-control-next {
    width: 2.5rem;
    height: 2.5rem;
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
    background: #3EA29D;
    border-radius: 50%;
    opacity: 0.9;
}

.home-popup-modal .carousel-control-prev {
    left: 0.75rem;
}

.home-popup-modal .carousel-control-next {
    right: 0.75rem;
}

.home-popup-modal .carousel-control-prev:hover,
.home-popup-modal .carousel-control-next:hover {
    opacity: 1;
}

.home-popup-modal .carousel-control-prev-icon,
.home-popup-modal .carousel-control-next-icon {
    width: 1.125rem;
    height: 1.125rem;
}

.home-popup-dots {
    position: static;
    margin: 0.25rem 0 1.25rem;
    gap: 0.375rem;
}

.home-popup-dots [data-bs-target] {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: #cfd8d7;
    opacity: 1;
    border: none;
    margin: 0 0.1875rem;
    transition: background .2s, width .2s, border-radius .2s;
}

.home-popup-dots [data-bs-target].active {
    background: #3EA29D;
    width: 1.5rem;
    border-radius: 0.25rem;
}

html.csez-contrast-dark .home-popup-modal .modal-content {
    background: #1e1e1e !important;
}

html.csez-contrast-dark .home-popup-desc {
    color: #d4d4d4 !important;
}

html.csez-contrast-dark .home-popup-dots [data-bs-target] {
    background: #3a3a3a !important;
}

html.csez-contrast-dark .home-popup-dots [data-bs-target].active {
    background: #3EA29D !important;
}

html.csez-contrast-dark h3.promo-heading {
    color: #000 !important;
}

html.csez-contrast-dark .lasttenantCard a {
    color: #3EA29D !important;
}

html.csez-contrast-dark .primary-nav-list .nav-item {
    border-color: #3a3a3a !important;
}

html.csez-contrast-dark .section-heading-center,
html.csez-contrast-dark .section-heading,
html.csez-contrast-dark .section-heading-lg {
    color: #f0f0f0 !important;
}

html.csez-contrast-dark .quick-link-card {
    background: #2a2a2a !important;
    border: 1px solid #444;
}

html.csez-contrast-dark .quick-link-label {
    color: #e0e0e0 !important;
}

html.csez-contrast-dark .quick-link-icon {
    color: #7ecdc8 !important;
}

html.csez-contrast-dark .step-title {
    color: #f0f0f0 !important;
}

html.csez-contrast-dark .step-desc {
    color: #b8b8b8 !important;
}

html.csez-contrast-dark .step-icon {
    color: #7ecdc8 !important;
}

html.csez-contrast-dark .ecosystem-card {
    background: #2a2a2a !important;
    border: 1px solid #3a3a3a;
}

html.csez-contrast-dark .ecosystem-title {
    color: #f0f0f0 !important;
}

html.csez-contrast-dark .ecosystem-desc {
    color: #b8b8b8 !important;
}

html.csez-contrast-dark .ecosystem-icon {
    color: #7ecdc8 !important;
}

html.csez-contrast-dark .why-desc {
    color: #c0c0c0 !important;
}

html.csez-contrast-dark .faq-question {
    color: #f0f0f0 !important;
}

html.csez-contrast-dark .faq-answer {
    color: #c0c0c0 !important;
}

html.csez-contrast-dark .faq-item {
    border-color: #3a3a3a !important;
}

html.csez-contrast-dark .faq-sign {
    color: #7ecdc8 !important;
}

html.csez-contrast-dark .stat-value {
    color: #fff !important;
}

html.csez-contrast-dark .stat-label {
    color: #aaa !important;
}

html.csez-contrast-dark .tenant-loc {
    color: #aaa !important;
}

html.csez-contrast-dark .update-item {
    border-color: #3a3a3a !important;
}

html.csez-contrast-dark .update-item-title {
    color: #f0f0f0 !important;
}

html.csez-contrast-dark .update-item-date {
    color: #888 !important;
}

html.csez-contrast-dark .updates-table {
    border-color: #3a3a3a !important;
}

html.csez-contrast-dark .testimonial-quote {
    color: #e0e0e0 !important;
}

html.csez-contrast-dark .testimonial-heading,
html.csez-contrast-dark .testimonial-name {
    color: #f0f0f0 !important;
}

html.csez-contrast-dark .testimonial-role {
    color: #999 !important;
}

html.csez-contrast-dark .site-footer {
    background: #121212 !important;
}

html.csez-contrast-dark .footer-col-heading {
    color: #f0f0f0 !important;
}

html.csez-contrast-dark .footer-address {
    color: #b0b0b0 !important;
}

html.csez-contrast-dark .footer-link {
    color: #9ad4d0 !important;
}

html.csez-contrast-dark .copyright-bar {
    border-color: #333 !important;
    color: #888 !important;
}

html.csez-contrast-dark .partner-band {
    border-color: #333;
}

html.csez-contrast-dark .grid-table {
    background: #1e1e1e !important;
}

html.csez-contrast-dark .grid-table-header {
    background: #2e4a46 !important;
}

html.csez-contrast-dark .query-header {
    background: #1a5250 !important;
}

html.csez-contrast-dark .grid-table-header div,
html.csez-contrast-dark .query-header div,
html.csez-contrast-dark .query-header th,
html.csez-contrast-dark .reports-header div {
    color: #f0f0f0 !important;
}

html.csez-contrast-dark .grid-table-cell,
html.csez-contrast-dark .query-cell,
html.csez-contrast-dark .reports-cell {
    color: #d0d0d0 !important;
    border-color: #3a3a3a !important;
}

html.csez-contrast-dark .grid-table-row.alt,
html.csez-contrast-dark .query-row.alt,
html.csez-contrast-dark .reports-row.alt {
    background: #1e2e2c !important;
}

html.csez-contrast-dark .query-row:not(.alt) {
    background: #161616 !important;
}

html.csez-contrast-dark .query-empty {
    color: #999 !important;
}

html.csez-contrast-dark .text-muted {
    color: #999 !important;
}

html.csez-contrast-dark .unit-list-points div {
    color: #c0c0c0 !important;
}

html.csez-contrast-dark .unit-list-points div:nth-child(odd) {
    background: #1e2e2c !important;
}

html.csez-contrast-dark .sidebar-heading {
    background: #1a5250 !important;
}

html.csez-contrast-dark .sidebar-link {
    color: #d0d0d0 !important;
    border-color: #333 !important;
}

html.csez-contrast-dark .sidebar-link:hover,
html.csez-contrast-dark .sidebar-link:focus {
    background: #2a3a38 !important;
    color: #7ecdc8 !important;
}

html.csez-contrast-dark .sidebar-link[aria-current="page"] {
    background: #2a3a38 !important;
}

html.csez-contrast-dark .year-group {
    background: #1e1e1e !important;
}

html.csez-contrast-dark .year-collapsed {
    background: #1e1e1e !important;
}

html.csez-contrast-dark .year-title-open {
    color: #7ecdc8 !important;
}

html.csez-contrast-dark .year-title-closed {
    color: #e0e0e0 !important;
}

html.csez-contrast-dark .circular-item {
    background: #1e1e1e !important;
}

html.csez-contrast-dark .circular-item--alt {
    background: #252525 !important;
}

html.csez-contrast-dark .circular-title {
    color: #f0f0f0 !important;
}

html.csez-contrast-dark .circular-meta {
    color: #999 !important;
}

html.csez-contrast-dark .manual-item {
    border-color: #3a3a3a !important;
}

html.csez-contrast-dark .manual-item.alt {
    background: #1e2a28 !important;
}

html.csez-contrast-dark .manual-item-title {
    color: #e0e0e0 !important;
}

html.csez-contrast-dark .tender-card {
    background: #1e2a28 !important;
}

html.csez-contrast-dark .tender-title {
    color: #f0f0f0 !important;
}

html.csez-contrast-dark .tender-date {
    color: #999 !important;
}

html.csez-contrast-dark .vacancy-card {
    background: #1e2a28 !important;
}

html.csez-contrast-dark .vacancy-title {
    color: #f0f0f0 !important;
}

html.csez-contrast-dark .vacancy-desc {
    color: #c0c0c0 !important;
}

html.csez-contrast-dark .vacancy-no,
html.csez-contrast-dark .vacancy-org,
html.csez-contrast-dark .vacancy-date {
    color: #888 !important;
}

html.csez-contrast-dark .vacancy-footer {
    border-color: #3a3a3a !important;
}

html.csez-contrast-dark .uac-card {
    background: #1e1e1e !important;
}

html.csez-contrast-dark .uac-card-title {
    color: #f0f0f0 !important;
}

html.csez-contrast-dark .uac-card-desc {
    color: #b0b0b0 !important;
}

html.csez-contrast-dark .rti-stat-card {
    background: #2a2a2a !important;
}

html.csez-contrast-dark .rti-stat-label {
    color: #aaa !important;
}

html.csez-contrast-dark .rti-info-card {
    background: #2a2a2a !important;
}

html.csez-contrast-dark .rti-info-title {
    color: #f0f0f0 !important;
}

html.csez-contrast-dark .rti-info-desc {
    color: #b8b8b8 !important;
}

html.csez-contrast-dark .contact-form-panel {
    background: #1e2e2c !important;
}

html.csez-contrast-dark .form-input,
html.csez-contrast-dark .form-textarea {
    background: #2a2a2a !important;
    color: #e0e0e0 !important;
    border-color: #444 !important;
}

html.csez-contrast-dark .form-label {
    color: #e0e0e0 !important;
}

html.csez-contrast-dark .contact-form-title,
html.csez-contrast-dark .contact-form-sub {
    color: #e0e0e0 !important;
}

html.csez-contrast-dark .page-intro h1,
html.csez-contrast-dark .page-intro p {
    color: #e0e0e0 !important;
}

html.csez-contrast-dark .about-intro,
html.csez-contrast-dark .evolution-text,
html.csez-contrast-dark .mission-desc,
html.csez-contrast-dark .function-desc {
    color: #c0c0c0 !important;
}

html.csez-contrast-dark .vision-band {
    background: #0d4440 !important;
}

html.csez-contrast-dark .filter-select {
    background: #2a2a2a !important;
    color: #e0e0e0 !important;
    border-color: #444 !important;
}

html.csez-contrast-dark .year-icon-box {
    background: #2a4a46 !important;
}

html.csez-contrast-dark .rti-home-intro,
html.csez-contrast-dark .sidebar-page-intro {
    color: #c0c0c0 !important;
}

html.csez-contrast-dark .rti-cdetail-text {
    color: #c0c0c0 !important;
}

html.csez-contrast-dark .officer-name {
    color: #f0f0f0 !important;
}

html.csez-contrast-dark .officer-role {
    color: #aaa !important;
}

html.csez-contrast-dark .officer-contacts {
    color: #c0c0c0 !important;
}

html.csez-contrast-dark .officer-header {
    border-color: #3a3a3a !important;
}

html.csez-contrast-dark .officer-card {
    background: #1e2a28 !important;
    border-color: #3a3a3a !important;
}

html.csez-contrast-dark .officer-section-title {
    color: #f0f0f0 !important;
}

html.csez-contrast-dark .officer-contact-item span,
html.csez-contrast-dark .officer-contact-item a {
    color: #c0c0c0 !important;
}

/* Dropdown menus */
html.csez-contrast-dark .nav-dropdown {
    background: #1e1e1e !important;
    border-color: #333 !important;
}

html.csez-contrast-dark .nav-dropdown-link {
    color: #d0d0d0 !important;
}

html.csez-contrast-dark .nav-dropdown-link:hover {
    background: #2a3a38 !important;
    color: #7ecdc8 !important;
}

/* Tender status badges */
html.csez-contrast-dark .tender-status-open {
    color: #4ec94e !important;
}

html.csez-contrast-dark .tender-status-closing {
    color: #f5a623 !important;
}

html.csez-contrast-dark .tender-status-closed {
    color: #e05555 !important;
}

html.csez-contrast-dark .tender-status-text.open {
    color: #4ec94e !important;
}

html.csez-contrast-dark .tender-status-text.closing-soon {
    color: #f5a623 !important;
}

html.csez-contrast-dark .tender-status-text.closed {
    color: #e05555 !important;
}

/* Page-level section backgrounds */
html.csez-contrast-dark .page-intro {
    background: #121212 !important;
}

html.csez-contrast-dark .about-hero {
    background: #1a1a1a !important;
}

html.csez-contrast-dark .contact-section {
    background: #121212 !important;
}

html.csez-contrast-dark .contact-info-section {
    background: #1a1a1a !important;
}

html.csez-contrast-dark .contact-image-wrap img {
    filter: brightness(0.8);
}

html.csez-contrast-dark .promo-contact-band {
    background: #1a2e2c !important;
}

html.csez-contrast-dark .section-divider {
    border-color: #333 !important;
}

/* Select / filter inputs */
html.csez-contrast-dark .filter-select,
html.csez-contrast-dark select {
    background: #2a2a2a !important;
    color: #e0e0e0 !important;
    border-color: #444 !important;
}

html.csez-contrast-dark .search-btn {
    background: #1a5250 !important;
    color: #fff !important;
    border-color: #1a5250 !important;
}

html.csez-contrast-dark .filter-search-input::placeholder {
    color: #999 !important;
}

/* Vacancy hero image */
html.csez-contrast-dark .vacancy-hero-img {
    filter: brightness(0.75);
}

/* .p-card / .page-hero / .doc-row / .badge-new / .spinner-row are defined inline in
   layouts/portal.blade.php with hardcoded light colors and no dark-mode counterpart —
   used on About, API Docs, Documents, RTI Home, RTI Query and Statistics. Without this,
   the card background stays white while the inherited body text color turns near-white
   too, making the text invisible. */
html.csez-contrast-dark .p-card {
    background: #1e2a28 !important;
    box-shadow: none !important;
}

html.csez-contrast-dark .p-card .p-card-head {
    background: #0d3530 !important;
}

html.csez-contrast-dark .doc-row {
    border-color: #333 !important;
}

html.csez-contrast-dark .doc-row:hover {
    background: #1e2a28 !important;
}

html.csez-contrast-dark .badge-new {
    background: #4a3c1a !important;
    color: #f0d080 !important;
}

html.csez-contrast-dark .spinner-row {
    color: #999 !important;
}

html.csez-contrast-dark .page-hero {
    background: linear-gradient(135deg, #0d3530 0%, #145f55 100%) !important;
}

/* .p-card has no explicit `color`, so Bootstrap's .bg-light value/code/note boxes
   nested inside it (About/RTI/API-docs "detail block" and note patterns) inherit the
   dark-mode body text color onto their still-light background — invisible text. */
html.csez-contrast-dark .p-card .bg-light {
    background: #2a3a38 !important;
}

html.csez-contrast-dark .p-card pre.bg-light {
    color: #d0d0d0 !important;
}

/* Functions section (About page) — light-blue band with no dark override; its
   heading falls through to the blanket h1-h4 rule and goes near-white-on-light-blue. */
html.csez-contrast-dark .functions-section {
    background: #16211f !important;
}

/* Quick Link tile hover/focus keeps a light background while the label text is
   forced light — invisible on hover/keyboard-focus. */
html.csez-contrast-dark .quick-link-card:hover,
html.csez-contrast-dark .quick-link-card:focus {
    background: #2a3a38 !important;
}

/* Nav dropdown link keyboard-focus state — same issue, only :hover was covered. */
html.csez-contrast-dark .nav-dropdown li a:focus {
    background: #2a3a38 !important;
}

/* Organisation chart PNG has a transparent canvas with black text/outlines — invisible
   against the dark-mode page background. Give it a white card so it stays readable. */
html.csez-contrast-dark #org-chart-img {
    background: #fff;
    border-radius: 0.5rem;
    padding: 1.5rem;
}

/* Filter dropdown panel (date/status filters on tenders, vacancies, bulletin, RTI
   circulars) — untouched white popup with explicit dark-gray button text. */
html.csez-contrast-dark .filter-dropdown-panel {
    background: #1e2a28 !important;
    border-color: #3a3a3a !important;
}

html.csez-contrast-dark .filter-dropdown-panel button {
    color: #d0d0d0 !important;
}

html.csez-contrast-dark .filter-dropdown-panel button:hover {
    background: #2a3a38 !important;
    color: #7ecdc8 !important;
}

html.csez-contrast-dark .filter-dropdown-panel button.is-selected {
    background: #1a5250 !important;
    color: #7ecdc8 !important;
}

/* Officers page — .officials-card wrapper and .rti-officer-card tiles are untouched
   white surfaces with explicit black/dark-gray text (safe in light mode, illegible
   once we darken the surface without also relighting the text). */
html.csez-contrast-dark .officials-card {
    background: #161616 !important;
    border-color: #3a3a3a !important;
}

html.csez-contrast-dark .rti-officer-card {
    background: #1e2a28 !important;
    border-color: #3a3a3a !important;
    box-shadow: none !important;
}

html.csez-contrast-dark .rti-officer-name,
html.csez-contrast-dark .rti-officer-dept {
    color: #f0f0f0 !important;
}

html.csez-contrast-dark .rti-officer-title {
    border-color: #3a3a3a !important;
}

html.csez-contrast-dark .rti-officer-contacts,
html.csez-contrast-dark .rti-officer-contact-item span {
    color: #c0c0c0 !important;
}

/* Contact Us page — form card and office-directory cards are untouched light
   surfaces, so darken them explicitly rather than letting the page bg show through
   with now-illegible dark-on-dark text. */
html.csez-contrast-dark .contact-form-card {
    background: #1e2a28 !important;
}

html.csez-contrast-dark .contact-form-h2 {
    color: #f0f0f0 !important;
}

html.csez-contrast-dark .contact-form-sub {
    color: #aaa !important;
}

html.csez-contrast-dark .contact-form-card .form-control {
    background: #161616 !important;
    border-color: #3a3a3a !important;
    color: #e0e0e0 !important;
}

html.csez-contrast-dark .contact-form-card .form-label {
    color: #f0f0f0 !important;
}

html.csez-contrast-dark .contact-office-section-title {
    color: #f0f0f0 !important;
}

html.csez-contrast-dark .contact-office-card {
    background: #1e2a28 !important;
    border-color: #3a3a3a !important;
    box-shadow: none !important;
}

html.csez-contrast-dark .contact-office-name {
    color: #f0f0f0 !important;
}

html.csez-contrast-dark .contact-office-dept {
    color: #c0c0c0 !important;
}

html.csez-contrast-dark .contact-office-divider {
    border-color: #3a3a3a !important;
}

/* Statistics page data tables (.table-portal) are plain Bootstrap tables with no
   project styling at all — override Bootstrap's own table CSS variables so header,
   body, striping and borders all pick up dark colors instead of staying white. */
html.csez-contrast-dark .table-portal {
    --bs-table-bg: #1e2a28 !important;
    --bs-table-color: #e0e0e0 !important;
    --bs-table-striped-bg: #223330 !important;
    --bs-table-striped-color: #e0e0e0 !important;
    --bs-table-hover-bg: #2a3a38 !important;
    --bs-table-hover-color: #f0f0f0 !important;
    --bs-table-border-color: #3a3a3a !important;
}

html.csez-contrast-dark .table-portal thead {
    --bs-table-bg: #0d3530 !important;
    --bs-table-color: #f0f0f0 !important;
}

html.csez-contrast-dark .csez-info-table {
    --bs-table-bg: #1e2a28 !important;
    --bs-table-color: #e0e0e0 !important;
    --bs-table-border-color: #3a3a3a !important;
    border-color: #3a3a3a !important;
}

html.csez-contrast-dark .csez-info-table> :not(caption)>*>* {
    border-color: #3a3a3a !important;
}

html.csez-contrast-dark .csez-info-table thead th {
    background: #0d3530 !important;
    color: #f0f0f0 !important;
}

html.csez-contrast-dark .procedure-description a {
    color: #3EA29D !important;
}

html.csez-contrast-dark .procedure-description :is(h1, h2, h3, h4, h5, h6) {
    color: #f0f0f0 !important;
}

html.csez-contrast-dark .procedure-description :is(p, h1, h2, h3, h4, h5, h6):has(> a:only-child) {
    background: #10221f !important;
    border-color: #1f3d38 !important;
}

/* Govt campaign logos (emblem, Swachh Bharat, AI Summit, Azadi) are dark line-art
   designed for a white background — give them a light chip so they stay visible
   against the near-black dark-mode banner. */
html.csez-contrast-dark .banner-campaign-logo {
    background: #f5f5f5 !important;
    border-radius: 0.375rem;
    padding: 0.25rem 0.375rem;
}

/* Same issue for the footer partner logos (MyGov, PM India, data.gov.in, National Govt Services) */
html.csez-contrast-dark .partner-logo-my-gov,
html.csez-contrast-dark .partner-logo-pm-india,
html.csez-contrast-dark .partner-logo-data-gov,
html.csez-contrast-dark .partner-logo-ngs {
    background: #f5f5f5 !important;
    border-radius: 0.375rem;
    padding: 0.5rem 0.75rem;
}

/* Partner band */
html.csez-contrast-dark .partner-divider {
    background: rgba(255, 255, 255, 0.12) !important;
}

/* Preserve utility bar in dark mode */
html.csez-contrast-dark .utility-bar {
    background: #046660 !important;
    color: #fff !important;
}

html.csez-contrast-dark .utility-bar a,
html.csez-contrast-dark .utility-link {
    color: #fff !important;
}

html.csez-contrast-dark .utility-link:hover,
html.csez-contrast-dark .utility-link:focus {
    color: #fff !important;
}

html.csez-contrast-dark .font-size-btn {
    color: #fff !important;
}

html.csez-contrast-dark .font-size-btn:disabled {
    color: rgba(255, 255, 255, 0.28) !important;
}

html.csez-contrast-dark .lang-switcher {
    color: #fff !important;
}

html.csez-contrast-dark .contrast-btn-light {
    background: #fff !important;
    color: #000 !important;
}

html.csez-contrast-dark .contrast-btn-dark {
    background: #000 !important;
    color: #fff !important;
    border-color: #fff !important;
}

/* ------------------------------------------------------------------
   REM & Responsive Column Utilities
   - set root font-size and commonly used spacing variables
   - Bootstrap-compatible .row / .col-* flex column system
   - core overrides converted from px -> rem for main layout elements
   ------------------------------------------------------------------ */

*,
*::before,
*::after {
    box-sizing: border-box;
}

/* NOTE: font-size is intentionally NOT set on :root here.
   It is set on html{} using a fluid calc() formula (see below / top of file)
   so that all rem values scale proportionally with viewport width.
   Setting font-size on :root would override the html formula and break scaling. */
:root {
    --space-xs: 0.25rem;
    --space-sm: 0.5rem;
    --space-md: 1rem;
    --space-lg: 2.5rem;
    --container-max: 100rem;
}

/* Core layout rem overrides
   Everything below used to be unconditional, which put it after every
   mobile/tablet @media block for the same classes earlier in this file —
   since an unconditional rule still matches at every viewport width, it won
   the cascade at ALL sizes (not just desktop), silently reverting dozens of
   mobile-specific paddings/heights/font-sizes back to their desktop value
   (utility bar, banner, nav, hero, section-container, steps-inner, promo-grid,
   about-hero-h1, evolution-year, vision-content, mission-section, grid-table).
   See PATTERNS.md §1 for the general hazard this file has with unscoped
   late-cascade rules. Fixed by: deleting the declarations that were pure
   duplicates of each class's own base rule (no behavior change, mobile
   cascade restored), and scoping the ones that intentionally differ from
   base to `min-width: 62.0625rem` (just above this file's own 62rem tablet
   breakpoint) so desktop keeps today's exact look while mobile/tablet fall
   through to their dedicated overrides again. */
@media (min-width: 62.0625rem) {

    .promo-grid {
        padding: 0rem var(--space-lg) 0.0rem;
        margin-top: 7.938rem;
    }

    .section-container {
        padding: 10rem var(--space-lg) 0;
    }

    #location-section {
        padding-top: 4rem;
    }

    .section-heading-center {
        font-size: 3.5rem;
        margin-bottom: 1.5rem;
    }

    #quick-links-heading {
        font-size: 3.5rem;
    }

    .about-hero-h1 {
        font-size: 4.5rem;
        line-height: normal;
        font-weight: 600;
        color: #FFFFFF;
        margin-bottom: 2.5rem;
    }

    .evolution-year {
        font-size: 4.5rem;
    }

    .vision-content {
        max-width: 80%;
        padding: 7.5rem var(--space-lg);
    }

    .mission-section {
        padding: 10rem var(--space-lg);
    }

    .grid-table-header div {
        padding: 1rem 1rem;
        font-size: 1.5rem;
        line-height: 2rem;
    }

    .grid-table-cell {
        padding: 1.375rem;
        font-size: 1.25rem;
        line-height: 2rem;
    }
}

/* The min-width:62.0625rem `.about-hero-h1{font-size:4.5rem}` rule above is declared later
   in the cascade than the 87.5rem/75rem max-width steps near the top of this file, so at
   equal specificity it silently wins across their entire range (993px–1400px) instead of
   just above 1400px as intended — the 3-line heading then outgrows about-hero-section's
   fixed height on small-laptop windows, clipping/pushing text off-screen. Re-asserting both
   steps here (after the min-width rule) restores the intended step-down for that range. */
/*@media (max-width: 87.5rem) {*/
/*  .about-hero-h1 { font-size: 3rem; }*/
/*}*/
@media (max-width: 62rem) {
    html.csez-contrast-dark .partner-logo-wrap {
        margin-bottom: 1rem;
    }

    .about-hero-h1 {
        font-size: 1.75rem;
    }
}

.evolution-rule {
    height: 0.75rem;
    width: 0.75rem;
    margin: 0.875rem 0 1.25rem;
}