/* ==========================================================================
   VertexGold Brand Overrides
   Custom stylesheet for V-Gold brand identity
   ========================================================================== */

/* ---------- Brand Color Variables ---------- */
:root {
    --vg-black: #050505;
    --vg-gold: #FFD21F;
    --vg-gold-dark: #C8961E;
    --vg-gold-light: #FFE15C;
    --vg-gold-hover: #FFE15C;
    --vg-gold-rich: #C8961E;
    --vg-on-gold: #050505;
    --vg-emerald: #00C875;
    --vg-emerald-dark: #00AB64;
    --vg-light-gray: #F5F5F5;
    --vg-white: #FFFFFF;
    --vg-font-heading: "Manrope", "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --vg-font-body: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --vg-heading-track: -0.03em;
    --vg-label-track: 0.08em;
    --vg-label-size: 12px;
}

/* ---------- Typography System ---------- */
body,
button,
input,
textarea,
select {
    font-family: var(--vg-font-body);
}

h1,
.mil-h1,
h2,
.mil-h2,
.mil-h12,
h3,
.mil-h3,
h4,
.mil-h4,
h5,
.mil-h5,
h6,
.mil-h6,
.mil-main-menu ul li a,
.mil-footer-menu ul li a,
.mil-service-card-sm h5,
.mil-service-card-lg h4,
.mil-price-card h5,
.mil-lifecycle-card h5,
.mil-platform-card h4,
.mil-404-text {
    font-family: var(--vg-font-heading);
    letter-spacing: var(--vg-heading-track);
    text-shadow: none;
    -webkit-text-stroke: 0;
}

h1,
.mil-h1 {
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.02;
}

h2,
.mil-h2,
.mil-h12 {
    font-weight: 800;
    letter-spacing: -0.035em;
    line-height: 1.04;
}

h3,
.mil-h3 {
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.08;
}

h4,
.mil-h4 {
    font-weight: 700;
    letter-spacing: -0.025em;
    line-height: 1.12;
}

h5,
.mil-h5,
h6,
.mil-h6 {
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.28;
}

p,
li,
.mil-text-sm,
.mil-text-lg,
.mil-text-xl,
.mil-light-soft,
.mil-dark-soft {
    font-family: var(--vg-font-body);
}

.mil-thin {
    font-family: inherit;
    font-weight: 600;
    opacity: 0.72;
}

.mil-upper,
.mil-suptitle,
.mil-breadcrumbs li a,
.mil-btn-cta,
.mil-accordion-group .mil-accordion-menu .mil-accordion-head,
.mil-menu-right-frame .mil-menu-right h6,
.mil-trust-line,
.mil-more-text,
.mil-choose-text {
    font-family: var(--vg-font-body);
    font-size: var(--vg-label-size);
    font-weight: 700;
    letter-spacing: var(--vg-label-track);
}

.mil-upper,
.mil-suptitle,
.mil-breadcrumbs li a,
.mil-btn-cta,
.mil-accordion-group .mil-accordion-menu .mil-accordion-head,
.mil-menu-right-frame .mil-menu-right h6,
.mil-more-text,
.mil-choose-text {
    text-transform: uppercase;
}

.mil-suptitle {
    line-height: 1.4;
}

.mil-breadcrumbs li a {
    font-size: 11px;
}

.mil-trust-line {
    text-transform: none;
    letter-spacing: 0.02em;
    font-size: 13px;
    font-weight: 600;
}

.mil-button,
.mil-link,
.mil-menu-list li a,
.mil-contact-form input,
.mil-contact-form textarea {
    font-family: var(--vg-font-body);
}

.mil-link,
.mil-menu-list li a,
.mil-contact-form input,
.mil-contact-form textarea {
    letter-spacing: -0.01em;
}

.mil-taxonomy-label {
    display: inline-block;
    margin-bottom: 18px;
    color: var(--vg-gold);
    font-family: var(--vg-font-body);
    font-size: var(--vg-label-size);
    font-weight: 700;
    letter-spacing: var(--vg-label-track);
    line-height: 1.4;
    text-transform: uppercase;
}

/* ---------- Logo ---------- */
a.mil-logo img {
    width: 200px;
    border-radius: 0;
}

/* ---------- Accent Color Override (Gold replaces Orange) ---------- */
.mil-accent {
    color: var(--vg-gold) !important;
}

.mil-button {
    background-color: var(--vg-gold);
    border-color: var(--vg-gold);
}

.mil-button:hover {
    background-color: var(--vg-gold-hover);
    border-color: var(--vg-gold-hover);
}

.mil-icon-button-sm {
    background-color: var(--vg-gold);
    border-color: var(--vg-gold);
}

.mil-icon-button-sm:hover {
    background-color: var(--vg-gold-hover);
    border-color: var(--vg-gold-hover);
}

/* Preloader reveal box */
.mil-reveal-box {
    background-color: var(--vg-gold) !important;
}

/* Progress bar */
.mil-progress {
    background-color: var(--vg-gold) !important;
}

/* Service card hover border */
.mil-service-card-sm:hover {
    border-color: var(--vg-gold) !important;
}

/* Labels */
.mil-label.mil-upper.mil-accent {
    color: var(--vg-gold) !important;
}

/* Subscribe form button */
.mil-subscribe-form button {
    background-color: var(--vg-gold);
}

.mil-subscribe-form button:hover {
    background-color: var(--vg-gold-hover);
}

/* ---------- Header CTA Button ---------- */
.mil-btn-cta {
    display: inline-block;
    padding: 10px 24px;
    background-color: var(--vg-gold);
    color: #FFFFFF;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 0;
    margin-right: 20px;
    transition: all 0.3s ease;
    border: 1px solid var(--vg-gold);
}

.mil-btn-cta:hover {
    background-color: var(--vg-gold-hover);
    border-color: var(--vg-gold-hover);
    color: #FFFFFF;
}

.mil-menu-btn-wrap {
    display: flex;
    align-items: center;
    gap: 15px;
}

/* ---------- Emerald Secondary Accent ---------- */
.mil-emerald {
    color: var(--vg-emerald) !important;
}

.mil-btn-emerald {
    background-color: var(--vg-emerald) !important;
    border-color: var(--vg-emerald) !important;
}

.mil-btn-emerald:hover {
    background-color: var(--vg-emerald-dark) !important;
    border-color: var(--vg-emerald-dark) !important;
}

/* ---------- Lifecycle Cards ---------- */
.mil-lifecycle-card {
    background: var(--vg-white);
    border: 1px solid #e5e5e5;
    padding: 40px 30px;
    text-align: center;
    transition: all 0.4s ease;
    height: 100%;
}

.mil-lifecycle-card:hover {
    border-color: var(--vg-gold);
    box-shadow: 0 10px 40px rgba(255, 210, 31, 0.12);
    transform: translateY(-5px);
}

.mil-lifecycle-card .mil-icon-lg {
    font-size: 48px;
    color: var(--vg-gold);
    margin-bottom: 20px;
    display: block;
}

.mil-lifecycle-card .mil-step-number {
    display: inline-block;
    width: 40px;
    height: 40px;
    line-height: 40px;
    border-radius: 50%;
    background-color: var(--vg-gold);
    color: #FFFFFF;
    font-weight: 600;
    font-size: 16px;
    margin-bottom: 20px;
}

.mil-lifecycle-card h5 {
    margin-bottom: 15px;
}

/* ---------- Platform Cards ---------- */
.mil-platform-card {
    background: var(--vg-white);
    border: 1px solid #e5e5e5;
    padding: 50px 40px;
    transition: all 0.4s ease;
    margin-bottom: 30px;
}

.mil-platform-card:hover {
    border-color: var(--vg-gold);
    box-shadow: 0 15px 50px rgba(255, 210, 31, 0.1);
}

.mil-platform-card .mil-platform-icon {
    font-size: 56px;
    color: var(--vg-gold);
    margin-bottom: 25px;
    display: block;
}

.mil-platform-card h4 {
    margin-bottom: 20px;
}

.mil-platform-card ul {
    list-style: none;
    padding: 0;
    margin: 20px 0 30px;
}

.mil-platform-card ul li {
    padding: 8px 0;
    border-bottom: 1px solid #f0f0f0;
    font-size: 15px;
    color: #555;
    position: relative;
    padding-left: 20px;
}

.mil-platform-card ul li:before {
    content: '';
    position: absolute;
    left: 0;
    top: 16px;
    width: 8px;
    height: 8px;
    background: var(--vg-gold);
    border-radius: 50%;
}

/* ---------- Engineering Service List ---------- */
.mil-service-item {
    display: flex;
    align-items: flex-start;
    padding: 30px 0;
    border-bottom: 1px solid #e5e5e5;
}

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

.mil-service-item .mil-service-number {
    font-size: 48px;
    font-weight: 100;
    color: var(--vg-gold);
    line-height: 1;
    margin-right: 30px;
    min-width: 60px;
}

.mil-service-item h5 {
    margin-bottom: 10px;
}

/* ---------- About Pillars ---------- */
.mil-pillar-card {
    background: var(--vg-white);
    border: 1px solid #e5e5e5;
    padding: 50px 40px;
    height: 100%;
    transition: all 0.4s ease;
}

.mil-pillar-card:hover {
    border-color: var(--vg-emerald);
    box-shadow: 0 10px 40px rgba(0, 200, 117, 0.12);
}

.mil-pillar-card .mil-pillar-number {
    display: inline-block;
    font-size: 64px;
    font-weight: 100;
    color: var(--vg-gold);
    line-height: 1;
    margin-bottom: 20px;
}

.mil-pillar-card h4 {
    margin-bottom: 20px;
}

/* ---------- Value Cards ---------- */
.mil-value-card {
    text-align: center;
    padding: 40px 25px;
}

.mil-value-card .mil-value-icon {
    font-size: 40px;
    color: var(--vg-emerald);
    margin-bottom: 20px;
    display: block;
}

.mil-value-card h5 {
    margin-bottom: 15px;
}

/* ---------- Premium Spacing ---------- */
.mil-p-160-90 {
    padding-top: 160px;
    padding-bottom: 90px;
}

.mil-p-160-120 {
    padding-top: 160px;
    padding-bottom: 120px;
}

/* ---------- Trust Line ---------- */
.mil-trust-line {
    color: rgba(255, 255, 255, 0.4);
    margin-top: 10px;
}

/* ---------- Inner Page Banner ---------- */
.mil-inner-banner {
    padding-top: 160px;
}

.mil-inner-banner h1 {
    font-size: 56px;
    line-height: 1.2;
}

@media (max-width: 768px) {
    .mil-inner-banner h1 {
        font-size: 36px;
    }
}

/* ---------- Contact Form Enhancements ---------- */
.mil-contact-form input,
.mil-contact-form textarea {
    border: 1px solid #e5e5e5;
    padding: 15px 20px;
    font-size: 15px;
    width: 100%;
    margin-bottom: 20px;
    transition: border-color 0.3s ease;
    background: var(--vg-white);
}

.mil-contact-form input:focus,
.mil-contact-form textarea:focus {
    border-color: var(--vg-gold);
    outline: none;
}

.mil-contact-form textarea {
    min-height: 150px;
    resize: vertical;
}

/* ---------- Dark BG Accent Overrides ---------- */
.mil-dark-bg .mil-button {
    background-color: var(--vg-gold);
    border-color: var(--vg-gold);
}

.mil-dark-bg .mil-button:hover {
    background-color: var(--vg-gold-hover);
    border-color: var(--vg-gold-hover);
}

/* ---------- Section Divider Gold Line ---------- */
.mil-gold-line {
    width: 60px;
    height: 3px;
    background: var(--vg-gold);
    margin-bottom: 30px;
}

.mil-gold-line.mil-center {
    margin-left: auto;
    margin-right: auto;
}

/* ---------- Responsive CTA Button in Header ---------- */
@media (max-width: 992px) {
    .mil-btn-cta {
        display: none;
    }
}

/* ---------- Menu Right Panel Override ---------- */
.mil-menu-right-frame .mil-menu-right h6 {
    color: var(--vg-gold);
}

/* ---------- Footer Trust Line ---------- */
.mil-footer-trust {
    text-align: center;
    padding-top: 30px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    margin-top: 30px;
}

/* ---------- Animation Overrides for Gold ---------- */
.mil-animation {
    background: radial-gradient(circle, rgba(255, 210, 31, 0.16) 0%, transparent 70%);
}

/* ---------- Link Hover Gold ---------- */
.mil-main-menu ul li a:hover,
.mil-footer-menu ul li a:hover {
    color: var(--vg-gold) !important;
}

.mil-main-menu ul li a {
    font-weight: 700;
    letter-spacing: -0.025em;
}

.mil-main-menu ul li.mil-has-children ul li a,
.mil-menu-right-frame .mil-menu-right h6,
.mil-menu-list li a,
.mil-breadcrumbs li a,
.mil-accordion-group .mil-accordion-menu .mil-accordion-head {
    letter-spacing: var(--vg-label-track);
}

.mil-main-menu ul li.mil-has-children ul li a {
    font-size: 11px;
}

.mil-menu-list li a,
.mil-menu-right-frame .mil-menu-right h6 {
    font-size: 12px;
}

.mil-footer-menu ul li a {
    font-weight: 700;
    letter-spacing: -0.025em;
}

.mil-service-card-sm h5,
.mil-service-card-lg h4,
.mil-price-card h5,
.mil-lifecycle-card h5,
.mil-platform-card h4 {
    text-wrap: balance;
}

.mil-accordion-group .mil-accordion-menu .mil-accordion-head {
    font-size: 12px;
    font-weight: 700;
}

/* ---------- Form Success/Error States ---------- */
.mil-form-success {
    color: var(--vg-emerald);
    font-weight: 500;
    padding: 15px;
    display: none;
}

.mil-form-error {
    color: #D32F2F;
    font-weight: 500;
    padding: 15px;
    display: none;
}

/* ---------- Homepage Hero Background ---------- */
.mil-home-hero {
    background: #071015;
    overflow: hidden;
}

.mil-home-hero:before {
    background:
        linear-gradient(90deg, rgba(5, 11, 14, 0.96) 0%, rgba(5, 11, 14, 0.9) 24%, rgba(5, 11, 14, 0.74) 42%, rgba(5, 11, 14, 0.32) 64%, rgba(5, 11, 14, 0.14) 100%),
        linear-gradient(180deg, rgba(5, 11, 14, 0.2) 0%, rgba(5, 11, 14, 0.06) 38%, rgba(5, 11, 14, 0.34) 66%, rgba(5, 11, 14, 0.78) 100%);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    z-index: 1;
}

.mil-home-hero .mi-invert-fix {
    background-color: #071015;
    background-image:
        linear-gradient(135deg, rgba(5, 11, 14, 0.42) 0%, rgba(5, 11, 14, 0.18) 36%, rgba(5, 11, 14, 0.08) 58%, rgba(5, 11, 14, 0.26) 100%),
        url("../img/vertex-hero-background.png");
    background-repeat: no-repeat;
    background-position: 78% 64%;
    background-size: cover;
    isolation: isolate;
}

.mil-home-hero .mi-invert-fix::before,
.mil-home-hero .mi-invert-fix::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.mil-home-hero .mi-invert-fix::before {
    background:
        linear-gradient(116deg, rgba(255, 210, 31, 0.1) 0%, rgba(212, 160, 23, 0) 30%),
        radial-gradient(circle at 82% 80%, rgba(212, 160, 23, 0.18) 0%, rgba(212, 160, 23, 0.07) 15%, rgba(212, 160, 23, 0) 34%),
        radial-gradient(circle at 74% 66%, rgba(0, 200, 117, 0.12) 0%, rgba(0, 200, 117, 0.04) 8%, rgba(46, 170, 94, 0) 18%),
        linear-gradient(transparent 0%, rgba(255, 255, 255, 0.06) 0.5%, transparent 1%);
    background-size: auto, auto, auto, 100% 64px;
    opacity: 0.9;
    z-index: 0;
}

.mil-home-hero .mi-invert-fix::after {
    background:
        linear-gradient(180deg, rgba(7, 16, 21, 0) 0%, rgba(7, 16, 21, 0.2) 54%, rgba(7, 16, 21, 0.54) 82%, rgba(7, 16, 21, 0.8) 100%),
        radial-gradient(circle at 84% 84%, rgba(212, 160, 23, 0.16) 0%, rgba(212, 160, 23, 0) 26%);
    z-index: 1;
}

.mil-home-hero .mil-animation-frame {
    display: none;
}

.mil-home-hero .mil-gradient {
    display: none;
}

.mil-home-hero .container,
.mil-home-hero .mil-banner-content {
    position: relative;
    z-index: 3;
}

.mil-home-hero .mil-banner-content {
    max-width: 860px;
}

.mil-home-hero h1 {
    max-width: 100%;
}

.mil-home-hero p {
    max-width: 34rem;
}

.mil-home-hero .mil-light-soft {
    color: rgba(255, 255, 255, 0.72);
}

.mil-home-hero .mil-button {
    box-shadow: 0 16px 36px rgba(5, 11, 14, 0.34);
}

.mil-home-hero .mil-link {
    color: rgba(255, 255, 255, 0.9);
}

.mil-home-hero .mil-link:hover {
    color: #ffffff;
}

.mil-home-hero .mil-circle-text {
    right: 18px;
    bottom: 72px;
}

@media (max-width: 1200px) {
    .mil-home-hero .mi-invert-fix {
        background-position: 72% 66%;
    }
}

@media (max-width: 992px) {
    .mil-home-hero:before {
        background:
            linear-gradient(90deg, rgba(5, 11, 14, 0.96) 0%, rgba(5, 11, 14, 0.92) 34%, rgba(5, 11, 14, 0.7) 58%, rgba(5, 11, 14, 0.28) 100%),
            linear-gradient(180deg, rgba(5, 11, 14, 0.18) 0%, rgba(5, 11, 14, 0.08) 42%, rgba(5, 11, 14, 0.42) 72%, rgba(5, 11, 14, 0.84) 100%);
    }

    .mil-home-hero .mi-invert-fix {
        background-position: 70% 68%;
    }

    .mil-home-hero .mil-banner-content {
        max-width: 100%;
    }

    .mil-home-hero h1 {
        max-width: 12.5ch;
    }
}

@media (max-width: 768px) {
    .mil-home-hero {
        min-height: 100vh;
    }

    .mil-home-hero:before {
        background:
            linear-gradient(90deg, rgba(5, 11, 14, 0.98) 0%, rgba(5, 11, 14, 0.94) 44%, rgba(5, 11, 14, 0.82) 68%, rgba(5, 11, 14, 0.44) 100%),
            linear-gradient(180deg, rgba(5, 11, 14, 0.2) 0%, rgba(5, 11, 14, 0.12) 34%, rgba(5, 11, 14, 0.48) 70%, rgba(5, 11, 14, 0.9) 100%);
    }

    .mil-home-hero .mi-invert-fix {
        background-position: 74% 78%;
        background-size: auto 112%;
    }

    .mil-home-hero .mi-invert-fix::before {
        opacity: 0.7;
    }
}

@media (max-width: 576px) {
    .mil-home-hero:before {
        background:
            linear-gradient(90deg, rgba(5, 11, 14, 0.995) 0%, rgba(5, 11, 14, 0.98) 58%, rgba(5, 11, 14, 0.92) 80%, rgba(5, 11, 14, 0.58) 100%),
            linear-gradient(180deg, rgba(5, 11, 14, 0.18) 0%, rgba(5, 11, 14, 0.18) 30%, rgba(5, 11, 14, 0.6) 72%, rgba(5, 11, 14, 0.92) 100%);
    }

    .mil-home-hero .mi-invert-fix {
        background-position: 96% 100%;
        background-size: auto 112%;
    }

    .mil-home-hero .mil-banner-content {
        padding-bottom: 84px;
    }

    .mil-home-hero h1 {
        max-width: 8.6ch;
    }

    .mil-home-hero p {
        max-width: 18rem;
    }

    .mil-home-hero .mil-link {
        display: inline-flex;
        margin-top: 24px;
    }
}

/* ---------- Site Header Grid (shared, all pages) ---------- */
/* Transparent header: no capsule/background, just a consistent
   max-width content grid shared between the closed header and the
   open menu's header clone. Legibility comes from text/icon color
   (white on the dark home hero, dark on light inner-page banners),
   not from a background box behind the header. */
.mil-frame {
    z-index: 12;
}

.mil-frame-top {
    position: relative;
    z-index: 2;
    width: min(1180px, calc(100% - 48px));
    margin: 24px auto 0;
    padding: 0;
    pointer-events: all;
}

.mil-frame-top .mil-logo,
.mil-frame-top .mil-btn-cta,
.mil-frame-top .mil-menu-btn {
    pointer-events: all;
}

.mil-home-page .mil-frame .mil-frame-top .mil-menu-btn span,
.mil-home-page .mil-frame .mil-frame-top .mil-menu-btn span:before,
.mil-home-page .mil-frame .mil-frame-top .mil-menu-btn span:after {
    background: rgba(255, 255, 255, 0.96);
}

.mil-home-page .mil-frame .mil-frame-bottom .mil-current-page,
.mil-home-page .mil-frame .mil-frame-bottom .mil-back-to-top .mil-link {
    color: rgba(255, 255, 255, 0.72);
}

.mil-home-page .mil-frame .mil-frame-bottom .mil-back-to-top .mil-link:hover {
    color: #ffffff;
}

.mil-home-page .mil-home-hero .mil-banner-content {
    padding-top: 172px;
    padding-bottom: 110px;
}

.mil-home-page .mil-home-hero .mil-button {
    position: relative;
    z-index: 4;
}

@media (max-width: 1200px) {
    .mil-frame-top {
        margin: 0;
        padding: 0 30px;
    }

    /* Tablet/mobile keep the base theme's solid fixed bar (needed since
       the header scrolls over arbitrary page content there); just match
       it to the brand's near-black tone instead of generic black. */
    .mil-frame .mil-frame-top {
        background-color: rgba(5, 11, 14, 0.92);
    }

    .mil-home-page .mil-home-hero .mil-banner-content {
        padding-top: 0;
    }
}

@media (min-width: 1201px) {
    .mil-menu-frame {
        z-index: 15;
    }

    .mil-menu-frame .mil-frame-top {
        width: min(1180px, calc(100% - 48px));
        padding: 24px 24px 0;
        margin: 0 auto;
    }

    .mil-menu-frame .mil-main-menu {
        padding-top: 42px;
    }

    /* Only hide the static header here: at this width the open menu
       renders its own frame-top clone (logo/CTA/close) above, so the
       static header underneath would otherwise double it up. Below
       1201px that clone is hidden, so the static header is the only
       close control and must stay visible/interactive. */
    .mil-menu-open .mil-frame {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }
}

@media (max-width: 1440px) {
    .mil-home-page .mil-home-hero .mil-banner-content {
        max-width: 780px;
    }
}

/* ---------- Open Menu: centered nav, no left-heavy mega-panel ---------- */
/* The Solutions/Company mega-panel + decorative animation duplicated
   the primary nav and only ever rendered on tall, wide viewports
   (base theme hides it below 1200px width or 800px height), leaving
   the primary nav stranded in a narrow left-hand column the rest of
   the time. Hiding it everywhere keeps the open menu's layout single
   and reliably centered instead of conditionally lopsided. */
.mil-menu-frame .mil-menu-content .col-xl-7 {
    display: none;
}

.mil-menu-frame .mil-menu-content .col-xl-5 {
    flex: 0 0 100%;
    max-width: 100%;
}

.mil-menu-frame .mil-main-menu {
    justify-content: center;
}

.mil-menu-frame {
    overflow-y: auto;
}

/* ---------- Menu Toggle Button Reset ---------- */
/* .mil-menu-btn is now a real <button> for keyboard operability; strip
   the UA button chrome so it keeps its original hamburger appearance. */
.mil-menu-btn {
    background: none;
    border: 0;
    margin: 0;
    padding: 0;
    font: inherit;
    color: inherit;
    -webkit-appearance: none;
    appearance: none;
    border-radius: 4px;
}

/* ---------- Menu Scroll Lock ---------- */
html {
    scrollbar-gutter: stable;
}

body.mil-menu-open {
    overflow: hidden;
}

/* ---------- Reduced Motion ---------- */
@media (prefers-reduced-motion: reduce) {

    .mil-menu-frame,
    .mil-menu-frame .mil-main-menu,
    .mil-menu-frame .mil-menu-right-frame,
    .mil-menu-btn span,
    .mil-menu-btn span:after,
    .mil-menu-btn span:before {
        transition-duration: 0.01ms !important;
    }
}

.mil-404-banner:before {
    background: rgba(5, 5, 5, 0.82);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

.mil-404-banner .mi-invert-fix {
    background: #050505;
}

.mil-404::before {
    text-shadow: -2px 0 var(--vg-gold-rich);
}

/* ---------- Stage 2D Accent Cleanup ---------- */
.mil-taxonomy-label,
.mil-gold-line,
.mil-lifecycle-card .mil-icon-lg,
.mil-platform-card .mil-platform-icon,
.mil-platform-card ul li:before,
.mil-service-item .mil-service-number,
.mil-pillar-card .mil-pillar-number,
.mil-menu-right-frame .mil-menu-right h6 {
    color: var(--vg-gold-rich) !important;
}

.mil-gold-line,
.mil-platform-card ul li:before {
    background: var(--vg-gold-rich) !important;
}

.mil-accent,
.mil-label.mil-upper.mil-accent,
.mil-main-menu ul li.mil-active > a,
.mil-main-menu ul li.mil-active > a:hover,
.mil-main-menu ul li a:hover,
.mil-footer-menu ul li a:hover,
.mil-footer-menu ul li.mil-active a,
.mil-breadcrumbs li a:hover,
.mil-breadcrumbs.mil-light li a:hover,
.mil-social-icons li a:hover,
.mil-social-icons.mil-dark li a:hover,
.mil-team-card .mil-description .mil-secrc-text a:hover {
    color: var(--vg-gold) !important;
}

.mil-button,
.mil-btn-cta,
.mil-icon-button-sm,
.mil-subscribe-form button,
.mil-dark-bg .mil-button,
.mil-progress,
.mil-reveal-box,
.mil-pagination-btn.mil-active,
.mil-category-list li a.mil-active,
.mil-lifecycle-card .mil-step-number {
    background-color: var(--vg-gold) !important;
    border-color: var(--vg-gold) !important;
    color: var(--vg-on-gold) !important;
}

.mil-button:hover,
.mil-btn-cta:hover,
.mil-icon-button-sm:hover,
.mil-subscribe-form button:hover,
.mil-dark-bg .mil-button:hover {
    background-color: var(--vg-gold-hover) !important;
    border-color: var(--vg-gold-hover) !important;
    color: var(--vg-on-gold) !important;
}

.mil-service-card-sm:hover,
.mil-lifecycle-card:hover,
.mil-platform-card:hover,
.mil-contact-form input:focus,
.mil-contact-form textarea:focus {
    border-color: var(--vg-gold) !important;
}

.mil-lifecycle-card:hover {
    box-shadow: 0 10px 40px rgba(255, 210, 31, 0.12);
}

.mil-platform-card:hover {
    box-shadow: 0 15px 50px rgba(255, 210, 31, 0.1);
}

.mil-main-menu ul li a.mil-active:before,
.mil-marker,
.mil-team-card:after,
.mil-about-quote .mil-avatar:after,
.mil-pagination-btn.mil-active,
.mil-category-list li a.mil-active {
    background-color: var(--vg-gold) !important;
}

.mil-quote-icon path,
.mil-slider-nav .mil-slider-arrow svg path {
    fill: var(--vg-gold) !important;
}

.mil-service-card-lg.mil-other-card:hover {
    background-color: var(--vg-gold) !important;
    color: var(--vg-on-gold);
}

.mil-service-card-lg.mil-other-card:hover .mil-link svg path {
    fill: var(--vg-gold) !important;
}

.mil-btn-emerald,
.mil-pillar-card:hover {
    border-color: var(--vg-emerald) !important;
}

.mil-emerald,
.mil-value-card .mil-value-icon,
.mil-form-success {
    color: var(--vg-emerald) !important;
}

.mil-btn-emerald {
    background-color: var(--vg-emerald) !important;
    color: var(--vg-black) !important;
}

.mil-btn-emerald:hover {
    background-color: var(--vg-emerald-dark) !important;
    border-color: var(--vg-emerald-dark) !important;
}

.mil-pillar-card:hover {
    box-shadow: 0 10px 40px rgba(0, 200, 117, 0.12);
}

.mil-animation {
    background: radial-gradient(circle, rgba(255, 210, 31, 0.16) 0%, transparent 70%);
}

.mil-social-icons li a .mil-contact-icon {
    width: 18px;
    height: 18px;
    display: block;
    stroke: currentColor;
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.85;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
.mil-button:focus-visible,
.mil-btn-cta:focus-visible,
.mil-link:focus-visible,
.mil-main-menu a:focus-visible,
.mil-footer-menu a:focus-visible,
.mil-social-icons a:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(255, 210, 31, 0.28);
}

/* ---------- Skip link (accessibility) ---------- */
.skip-link {
    position: absolute;
    left: 1rem;
    top: 1rem;
    z-index: 10000;
    padding: 0.75rem 1.25rem;
    background: var(--vg-gold);
    color: var(--vg-on-gold);
    font-family: var(--vg-font-body);
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    border-radius: 2px;
    transform: translateY(-200%);
    transition: transform 0.15s ease;
}

.skip-link:focus,
.skip-link:focus-visible {
    transform: translateY(0);
    outline: none;
    box-shadow: 0 0 0 3px rgba(255, 210, 31, 0.28), 0 0 0 5px var(--vg-black);
}

/* ---------- Menu Close Button Stacking Fix (site-wide) ---------- */
/* .mil-menu-right-frame is later in DOM order and shares the same
   z-index:auto stacking context as .mil-frame-top, so it painted over
   the close (X) button and swallowed clicks meant for it. */
.mil-menu-frame .mil-frame-top {
    z-index: 5;
}

