/* Shared layout — extracted from includes/header.php and includes/footer.php */

:root {
    --v5-gradient: linear-gradient(135deg, var(--blue-500, #3b96ff) 0%, #8b5cf6 100%);
    /* Outline CTA — magenta → cyan (border + text) */
    --v5-outline-gradient: linear-gradient(90deg, #e040fb 0%, #00e5ff 100%);
    --page-bg: var(--color-page-bg, #0b0b0b);
    --text-body: #e2e8f0;
    --text-muted: var(--color-text-muted, rgba(255, 255, 255, 0.65));
    --accent-blue: var(--blue-500, #3b96ff);
}

html {
    scroll-behavior: smooth;
}

/* Site-wide V5 CTAs (use with text-decoration-none on <a>) */
.v5-btn-primary,
a.v5-btn-primary,
button.v5-btn-primary {
    position: relative;
    isolation: isolate;
    z-index: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    background: var(--v5-gradient);
    border: none;
    padding: 1rem 2.5rem;
    border-radius: 100px;
    font-weight: 600;
    color: #fff !important;
    text-decoration: none !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease, filter 0.25s ease;
    cursor: pointer;
    line-height: 1.2;
}
.v5-btn-primary::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.03));
    transform: scaleY(0);
    transform-origin: bottom;
    transition: transform 0.32s cubic-bezier(0.22, 0.61, 0.36, 1);
    z-index: -1;
    pointer-events: none;
}
.v5-btn-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(59, 150, 255, 0.4);
    filter: brightness(1.06);
    color: #fff !important;
}
.v5-btn-primary:hover::after,
.v5-btn-primary:focus-visible::after {
    transform: scaleY(1);
}
.v5-btn-primary:focus-visible {
    outline: 2px solid rgba(59, 150, 255, 0.85);
    outline-offset: 3px;
}

.v5-btn-outline,
a.v5-btn-outline,
button.v5-btn-outline {
    appearance: none;
    -webkit-appearance: none;
    position: relative;
    isolation: isolate;
    z-index: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    border: none;
    padding: 1rem 2.5rem;
    border-radius: 100px;
    overflow: hidden;
    background: transparent;
    background-image: var(--v5-outline-gradient);
    background-size: 100% 100%;
    background-position: 0% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent !important;
    -webkit-text-fill-color: transparent;
    text-decoration: none !important;
    font-weight: 600;
    transition:
        color 0.25s ease,
        filter 0.25s ease,
        transform 0.25s ease,
        box-shadow 0.25s ease,
        background-size 0.32s cubic-bezier(0.22, 0.61, 0.36, 1),
        background-position 0.32s cubic-bezier(0.22, 0.61, 0.36, 1);
    cursor: pointer;
    line-height: 1.2;
}
/* Gradient border (inner area stays transparent so section bg shows through) */
.v5-btn-outline::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1px;
    background: var(--v5-outline-gradient);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask-composite: exclude;
    z-index: -1;
    pointer-events: none;
}
.v5-btn-outline::after {
    content: "";
    position: absolute;
    inset: 1px;
    border-radius: inherit;
    background: var(--v5-outline-gradient);
    transform: scaleY(0);
    transform-origin: bottom;
    transition: transform 0.32s cubic-bezier(0.22, 0.61, 0.36, 1);
    z-index: -2;
    pointer-events: none;
}
.v5-btn-outline i,
.v5-btn-outline .bi {
    background-image: var(--v5-outline-gradient);
    background-size: 100% 100%;
    background-position: 0% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent !important;
    -webkit-text-fill-color: transparent;
    transition:
        background-size 0.32s cubic-bezier(0.22, 0.61, 0.36, 1),
        background-position 0.32s cubic-bezier(0.22, 0.61, 0.36, 1),
        transform 0.32s cubic-bezier(0.22, 0.61, 0.36, 1),
        opacity 0.24s ease;
}
.v5-btn-outline:hover,
.v5-btn-outline:focus-visible {
    filter: none;
    background-size: 0% 0%;
    background-position: 100% 0%;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
.v5-btn-outline:hover::after,
.v5-btn-outline:focus-visible::after {
    transform: scaleY(1);
}
.v5-btn-outline .v5-btn-label-old {
    display: inline-block;
    background-image: var(--v5-outline-gradient);
    background-size: 100% 100%;
    background-position: 0% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent !important;
    -webkit-text-fill-color: transparent !important;
    will-change: transform;
    transition: transform 0.32s cubic-bezier(0.22, 0.61, 0.36, 1), opacity 0s linear 0.32s;
}
.v5-btn-outline .v5-btn-label-fill {
    position: absolute;
    inset: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    opacity: 0;
    transform: translate3d(0, 12px, 0);
    will-change: transform, opacity;
    transition: transform 0.32s cubic-bezier(0.22, 0.61, 0.36, 1), opacity 0.28s ease;
}
.v5-btn-outline:hover .v5-btn-label-old,
.v5-btn-outline:focus-visible .v5-btn-label-old,
.v5-btn-outline:hover > i,
.v5-btn-outline:focus-visible > i,
.v5-btn-outline:hover > .bi,
.v5-btn-outline:focus-visible > .bi {
    transform: translate3d(6px, -118%, 0);
}
.v5-btn-outline:hover .v5-btn-label-old,
.v5-btn-outline:focus-visible .v5-btn-label-old {
    opacity: 0;
}
.v5-btn-outline:hover .v5-btn-label-fill,
.v5-btn-outline:focus-visible .v5-btn-label-fill {
    transform: translate3d(0, 0, 0);
    opacity: 1;
}
.v5-btn-outline:hover i,
.v5-btn-outline:hover .bi,
.v5-btn-outline:focus-visible i,
.v5-btn-outline:focus-visible .bi {
    background-size: 0% 0%;
    background-position: 100% 0%;
}
.v5-btn-outline:focus-visible {
    outline: 2px solid rgba(0, 229, 255, 0.65);
    outline-offset: 3px;
}

.v5-btn-sm {
    padding: 0.5rem 1.25rem !important;
    font-size: 0.875rem;
    font-weight: 600;
    min-height: 2.75rem;
    box-sizing: border-box;
}

.v5-btn-lg {
    padding: 1.1rem 2.75rem !important;
    font-size: 1.05rem;
}

.btn-group .v5-btn-outline.active,
.v5-btn-outline.active {
    filter: brightness(1.18);
    box-shadow: 0 0 0 1px rgba(224, 64, 251, 0.35), 0 0 24px rgba(0, 229, 255, 0.12);
}
.fw-bold {
    font-weight: 600 !important;
}
/* Site-wide dark theme (aligned with homepage / reference design) */
body {
    background-color: var(--page-bg) !important;
    color: var(--text-body);
    overflow-x: clip;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* Bootstrap 5.3+ defaults cards to white; marketing shell is dark (insights uses glass cards, not .card) */
body:not(.insights-page) .card {
    --bs-card-bg: rgba(255, 255, 255, 0.04);
    --bs-card-color: var(--text-body);
    --bs-card-border-color: rgba(255, 255, 255, 0.08);
}

body:not(.insights-page) .card .card-body {
    color: inherit;
}

/* Global contact strip (footer include) — fluid headline, no fixed 70px on phones */
.contact-section-headline {
    font-size: clamp(1.85rem, 5.5vw, 4.25rem);
    font-weight: 600;
    line-height: 1.12;
    letter-spacing: -0.02em;
    color: #fff;
}

@media (max-width: 575.98px) {
    .contact-section-lead {
        font-size: 1rem !important;
    }
}

/* Inner hero CTAs — stack on narrow screens */
@media (max-width: 575.98px) {
    .inner-hero-ctas {
        flex-direction: column;
        align-items: stretch !important;
    }
    .inner-hero-ctas > a {
        width: 100%;
        justify-content: center;
    }
}

/* --- Header: What we do — white mega menu --- */
.navbar-nav .nav-item.position-static {
    position: static !important;
}
.dropdown-menu.w-100 {
    right: 0;
    left: 0;
}

/* Insights nav dropdown — avoid text-light + dropdown-item hover (light bg + forced light text) */
.insights-dropdown-menu.dropdown-menu {
    background: #111111 !important;
    --bs-dropdown-bg: #111111;
    --bs-dropdown-link-color: rgba(255, 255, 255, 0.88);
    --bs-dropdown-link-hover-color: #ffffff;
    --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.12);
    --bs-dropdown-link-active-color: #ffffff;
    --bs-dropdown-link-active-bg: rgba(59, 150, 255, 0.22);
}

.insights-dropdown-menu .dropdown-item {
    color: var(--bs-dropdown-link-color);
}

.insights-dropdown-menu .dropdown-item:hover,
.insights-dropdown-menu .dropdown-item:focus {
    color: var(--bs-dropdown-link-hover-color);
    background-color: var(--bs-dropdown-link-hover-bg);
}

.insights-dropdown-menu .dropdown-item:active {
    color: var(--bs-dropdown-link-active-color);
    background-color: var(--bs-dropdown-link-active-bg);
}

/* Mega menu shell — light surface (Mega Menu White reference) */
.mega-menu-white.dropdown-menu {
    background: linear-gradient(165deg, #fdfdff 0%, #f6f5fb 38%, #f3f5f8 100%) !important;
    color: #0f172a;
    border-radius: 0 0 16px 16px !important;
    padding-top: 0 !important;
    box-shadow:
        0 32px 64px rgba(15, 23, 42, 0.1),
        0 0 0 1px rgba(15, 23, 42, 0.05) !important;
}

.mega-menu-white__inner {
    max-width: 1200px;
}

.mega-menu-white__panel-title {
    font-size: 1.125rem;
    font-weight: 600;
    letter-spacing: -0.02em;
    color: #0f172a;
    margin: 0 0 0.65rem;
    line-height: 1.25;
}

.mega-menu-white__rule {
    border: 0;
    border-top: 1px solid #e2e8f0;
    opacity: 1;
    margin: 0 0 1.25rem;
}

.mega-menu-white__rule--section {
    margin-top: 0;
    margin-bottom: 0;
    border-top-color: #dce3ec;
}

.mega-menu-white__group {
    margin-bottom: 1.35rem;
}

.mega-menu-white__subhead {
    font-size: 0.875rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 0.5rem;
    line-height: 1.35;
}

.mega-menu-white__bullet-list {
    list-style: none;
    margin: 0 0 0.25rem;
    padding: 0;
}

.mega-menu-white__bullet-list li {
    position: relative;
    padding-left: 0.85rem;
    margin-bottom: 0.35rem;
}

.mega-menu-white__bullet-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 4px;
    height: 4px;
    background: #1e293b;
    border-radius: 1px;
}

.mega-menu-white__bullet-list a {
    font-size: 0.9375rem;
    font-weight: 400;
    color: #334155;
    text-decoration: none;
    line-height: 1.45;
    transition: color 0.15s ease;
}

.mega-menu-white__bullet-list a:hover {
    color: #145be1;
}

/* AI accelerator cards — 3×2 grid */
.mega-menu-white__accel-grid {
    --bs-gutter-x: 0.75rem;
    --bs-gutter-y: 0.75rem;
}

.mega-menu-white__card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    height: 100%;
    min-height: 8rem;
    padding: 0.75rem;
    background: #ffffff;
    border-radius: 8px;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.07);
    border: 1px solid rgba(226, 232, 240, 0.9);
    text-decoration: none;
    color: #0f172a;
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        border-color 0.2s ease;
}

.mega-menu-white__card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12);
    border-color: #cbd5e1;
    color: #0f172a;
}

.mega-menu-white__card-img {
    width: 100%;
    max-width: 124px;
    height: 44px;
    object-fit: contain;
    display: block;
}

.mega-menu-white__card-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-align: center;
    line-height: 1.25;
    color: #334155;
    padding: 0 0.25rem;
}

.mega-menu-white__card:hover .mega-menu-white__card-label {
    color: #145be1;
}

/* Partner row */
.mega-menu-white__partner-row {
    row-gap: 0.75rem;
}

.mega-menu-white__partner-card {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 calc(50% - 0.5rem);
    min-width: 5.25rem;
    max-width: 100%;
    min-height: 3.3rem;
    padding: 0.65rem 0.85rem;
    background: #ffffff;
    border-radius: 8px;
    box-shadow: 0 3px 12px rgba(15, 23, 42, 0.06);
    border: 1px solid rgba(226, 232, 240, 0.95);
    text-decoration: none;
    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        border-color 0.2s ease;
}

@media (min-width: 768px) {
    .mega-menu-white__partner-card {
        flex: 1 1 calc(25% - 0.6rem);
        min-width: 5.5rem;
    }
}

@media (min-width: 992px) {
    .mega-menu-white__partner-card {
        flex: 1 1 0;
        min-width: 0;
        max-width: none;
        padding: 0.65rem 1rem;
    }
}

.mega-menu-white__partner-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(15, 23, 42, 0.1);
    border-color: #cbd5e1;
}

.mega-menu-white__partner-img {
    width: 100%;
    max-width: 132px;
    height: 2rem;
    object-fit: contain;
    display: block;
}

.mega-menu-white__partner-img--svg {
    max-width: 100px;
    padding: 0.15rem 0;
}

@media (max-width: 991.98px) {
    .mega-menu-white__accel-grid {
        max-width: 28rem;
    }
}

/* --- Site mega navbar: responsive + scoped overrides (payload-site) --- */
.site-mega-navbar .navbar-brand.logo img {
    height: 65px !important;
    max-height: 65px !important;
    width: auto;
}

.site-mega-navbar.navbar.scrolled .navbar-brand.logo img {
    height: 65px !important;
    max-height: 65px !important;
}

@media (max-width: 575.98px) {
    .site-mega-navbar .navbar-brand.logo img,
    .site-mega-navbar.navbar.scrolled .navbar-brand.logo img {
        height: 56px !important;
        max-height: 56px !important;
    }
}

.site-mega-navbar .navbar-toggler {
    border-color: rgba(255, 255, 255, 0.35);
}
.site-mega-navbar .navbar-toggler-icon {
    filter: invert(1) grayscale(1);
}

.site-mega-navbar .navbar-toggler {
    width: 52px;
    height: 52px;
    border-radius: 10px;
    background: rgba(5, 8, 20, 0.88);
}

.site-mobile-menu-panel {
    --bs-offcanvas-width: min(96vw, 420px);
    --bs-offcanvas-bg: #030711;
    background-color: #030711 !important;
    background-image: linear-gradient(165deg, #050812 0%, #090d1f 55%, #0d1028 100%);
    color: #f8fafc;
    border-left: 1px solid rgba(255, 255, 255, 0.12);
    visibility: hidden !important;
    transform: translateX(100%) !important;
    pointer-events: none;
    z-index: 1090;
    height: 100dvh;
    max-height: 100dvh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.site-mobile-menu-panel.show,
.site-mobile-menu-panel.showing {
    visibility: visible !important;
    transform: translateX(0) !important;
    pointer-events: auto;
}

.site-mobile-menu-panel .offcanvas-header {
    padding: 1rem 1rem 0.8rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.site-mobile-menu__brand img {
    height: 52px;
    width: auto;
}

.site-mobile-menu-panel .offcanvas-body {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1rem;
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    touch-action: pan-y;
    -webkit-overflow-scrolling: touch;
}

.site-mobile-menu__nav {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    flex: 0 0 auto;
}

.site-mobile-menu__link,
.site-mobile-menu__group > summary {
    display: block;
    color: rgba(255, 255, 255, 0.92);
    text-decoration: none;
    font-size: 1rem;
    font-weight: 600;
    padding: 0.62rem 0.2rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.site-mobile-menu__group > summary {
    list-style: none;
    cursor: pointer;
    position: relative;
    padding-right: 1.5rem;
}

.site-mobile-menu__summary-link {
    color: rgba(255, 255, 255, 0.92);
    text-decoration: none;
    display: block;
    width: 100%;
}

.site-mobile-menu__group > summary::-webkit-details-marker {
    display: none;
}

.site-mobile-menu__group > summary::after {
    content: '';
    position: absolute;
    right: 0.25rem;
    top: 50%;
    width: 0.58rem;
    height: 0.58rem;
    border-right: 2px solid rgba(255, 255, 255, 0.72);
    border-bottom: 2px solid rgba(255, 255, 255, 0.72);
    transform: translateY(-60%) rotate(45deg);
    transform-origin: center;
    transition: transform 0.22s ease, border-color 0.22s ease;
}

.site-mobile-menu__group[open] > summary::after {
    transform: translateY(-38%) rotate(225deg);
    border-color: rgba(148, 197, 253, 0.95);
}

.site-mobile-menu__group-body {
    padding: 0.7rem 0.3rem 0.2rem;
}

.site-mobile-menu__subgroup {
    margin-bottom: 0.85rem;
}

.site-mobile-menu__subhead {
    margin: 0 0 0.45rem;
    color: rgba(148, 197, 253, 0.95);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.site-mobile-menu__subitems {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.site-mobile-menu__sublink {
    display: block;
    color: rgba(255, 255, 255, 0.82);
    text-decoration: none;
    font-size: 0.9rem;
    line-height: 1.35;
    padding: 0.15rem 0;
}

.site-mobile-menu__chip-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.site-mobile-menu__chip {
    color: #dbeafe;
    text-decoration: none;
    font-size: 0.78rem;
    border: 1px solid rgba(59, 150, 255, 0.35);
    border-radius: 999px;
    padding: 0.33rem 0.68rem;
    background: rgba(59, 150, 255, 0.08);
}

.site-mobile-menu__cta-wrap {
    margin-top: auto;
    padding-top: 0.75rem;
    flex: 0 0 auto;
}

.site-mobile-menu__cta {
    width: 100%;
    justify-content: center;
}

/* When the collapsed nav is expanded on mobile, give the list some breathing room
   and make dropdown menus behave like inline accordions instead of floating panels. */
@media (max-width: 991.98px) {
    .site-mega-navbar.navbar-expand-lg .navbar-toggler {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
    }

    .site-mega-navbar.navbar-expand-lg .navbar-collapse:not(.show) {
        display: none !important;
    }

    .site-mega-navbar.navbar-expand-lg .navbar-collapse.show {
        display: block !important;
    }

    .site-mega-navbar .navbar-right {
        display: flex !important;
        align-items: center;
        justify-content: flex-end;
        flex: 1;
    }

    .site-mobile-menu-panel {
        display: flex !important;
        flex-direction: column !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        overflow: hidden !important;
    }

    .site-mobile-menu-panel .offcanvas-body {
        flex: 1 1 auto;
        min-height: 0;
        max-height: none;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
    }

    .site-mega-navbar .navbar-collapse {
        padding: 0.75rem 0 1rem;
        max-height: calc(100vh - 80px);
        overflow-y: auto;
    }
    .site-mega-navbar .navbar-nav .nav-item {
        width: 100%;
    }
    .site-mega-navbar .nav-link {
        padding: 0.6rem 0.5rem !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    }

    /* Force all dropdowns inline (non-floating) while the navbar is collapsed. */
    .site-mega-navbar .dropdown-menu {
        position: static !important;
        float: none;
        width: 100%;
        transform: none !important;
        box-shadow: none !important;
        border: 0;
        margin: 0 0 0.5rem !important;
    }

    /* White mega menu inside collapsed navbar → compact rounded card. */
    .site-mega-navbar .mega-menu-white.dropdown-menu {
        border-radius: 12px !important;
        padding: 0 !important;
        margin: 0.35rem 0 0.75rem !important;
    }
    .site-mega-navbar .mega-menu-white__inner {
        max-width: 100%;
        padding: 1rem !important;
    }
    .site-mega-navbar .mega-menu-white__panel-title {
        font-size: 1rem;
    }
    .site-mega-navbar .mega-menu-white__subhead {
        font-size: 0.825rem;
    }
    .site-mega-navbar .mega-menu-white__bullet-list a {
        font-size: 0.9rem;
    }
    .site-mega-navbar .mega-menu-white__card {
        min-height: 6.25rem;
        padding: 0.6rem 0.45rem;
    }
    .site-mega-navbar .mega-menu-white__card-img {
        max-width: 96px;
        height: 36px;
    }
    .site-mega-navbar .mega-menu-white__card-label {
        font-size: 0.7rem;
    }
    .site-mega-navbar .mega-menu-white__partner-card {
        padding: 0.45rem 0.6rem;
    }
    .site-mega-navbar .mega-menu-white__partner-img {
        height: 1.75rem;
    }

    /* Insights (dark) dropdown inside collapsed navbar */
    .site-mega-navbar .insights-dropdown-menu.dropdown-menu {
        padding: 0.25rem 0 !important;
        border-radius: 10px !important;
    }
    .site-mega-navbar .insights-dropdown-menu .dropdown-item {
        padding: 0.55rem 1rem;
    }

    /* CTA fits the column, with a little air */
    .site-mega-navbar .v5-btn-outline {
        width: 100%;
        text-align: center;
    }
}

/* Keep page content dimmed behind mobile menu */
.offcanvas-backdrop.show {
    opacity: 0.62;
}

@media (min-width: 992px) {
    .site-mobile-menu-panel {
        display: none !important;
    }
}

/* Full-bleed desktop mega panel — spans the entire viewport, inner content centered. */
@media (min-width: 992px) {
    .site-mega-navbar .mega-menu-white.dropdown-menu {
        position: absolute !important;
        top: 100% !important;
        left: 0 !important;
        right: 0 !important;
        width: 100vw !important;
        max-width: 100vw !important;
        margin: 0 !important;
        transform: none !important;
        border-top-left-radius: 0 !important;
        border-top-right-radius: 0 !important;
        border-bottom-left-radius: 16px !important;
        border-bottom-right-radius: 16px !important;
    }
    .site-mega-navbar .mega-menu-white__inner {
        max-width: 1200px;
        margin-inline: auto;
    }
}

/* --- Footer --- */
/* Get in touch + footer premium alignment */
[data-site-footer] {
    position: relative;
    background:
        radial-gradient(circle at 15% 18%, rgba(59, 150, 255, 0.16), transparent 42%),
        radial-gradient(circle at 82% 14%, rgba(139, 92, 246, 0.18), transparent 46%),
        linear-gradient(160deg, rgba(4, 8, 18, 0.98) 0%, rgba(8, 12, 28, 0.98) 58%, rgba(5, 9, 20, 0.98) 100%) !important;
    border-top: 1px solid rgba(255, 255, 255, 0.12) !important;
}

[data-site-footer]::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.2;
    background-image:
        linear-gradient(rgba(78, 143, 255, 0.12) 1px, transparent 1px),
        linear-gradient(90deg, rgba(78, 143, 255, 0.09) 1px, transparent 1px);
    background-size: 84px 84px, 84px 84px;
    mask-image: radial-gradient(circle at 50% 32%, black 12%, transparent 74%);
}

[data-site-footer] h2 {
    font-size: clamp(2rem, 5vw, 3.25rem) !important;
    font-weight: 700 !important;
    letter-spacing: -0.025em;
    line-height: 1.08 !important;
}

[data-site-footer] h2 span[style*='color: #3B96FF'] {
    color: #78c2ff !important;
}

[data-site-footer] .row.g-2.g-md-3 > div span {
    color: rgba(255, 255, 255, 0.76) !important;
}

[data-site-footer] .rounded-4 {
    background:
        radial-gradient(circle at 95% 8%, rgba(56, 189, 248, 0.14), transparent 42%),
        linear-gradient(145deg, rgba(14, 20, 42, 0.86), rgba(8, 12, 30, 0.86)) !important;
    border: 1px solid rgba(255, 255, 255, 0.11) !important;
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.34);
}

[data-site-footer] .form-label {
    color: rgba(255, 255, 255, 0.9) !important;
    font-size: 0.76rem !important;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

[data-site-footer] .form-control {
    background: rgba(255, 255, 255, 0.06) !important;
    border-color: rgba(255, 255, 255, 0.14) !important;
    color: #f8fafc !important;
}

[data-site-footer] .form-control::placeholder {
    color: rgba(255, 255, 255, 0.5);
}

[data-site-footer] .form-control:focus {
    border-color: rgba(59, 150, 255, 0.65) !important;
    box-shadow: 0 0 0 0.2rem rgba(59, 150, 255, 0.2) !important;
}

.footer-links a {
    color: rgba(255, 255, 255, 0.5) !important;
    text-decoration: none;
    transition: 0.3s;
    font-size: 0.98rem;
    line-height: 1.4;
}
.footer-links a:hover {
    color: #4E8FFF;
    padding-left: 4px;
}

.letter-spacing-1 { letter-spacing: 1px; }
.footer-brand img { filter: brightness(1); }
.social-icon-box {
    width: 28px;
    height: 28px;
    background: transparent;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 0;
    transition: 0.3s;
    text-decoration: none;
    border: 0 !important;
    box-shadow: none !important;
    font-size: 1.5rem;
    opacity: 0.95;
}
.social-icon-box:hover {
    background: transparent;
    color: #8ccfff;
    transform: translateY(-1px);
    opacity: 1;
}
.border-white-10 { border-color: rgba(255,255,255,0.1) !important; }

/* Footer shell (global) */
.site-footer-main {
    background:
        radial-gradient(circle at 8% 0%, rgba(59, 150, 255, 0.12), transparent 38%),
        linear-gradient(180deg, rgba(3, 6, 14, 0.98) 0%, rgba(2, 4, 10, 0.98) 100%) !important;
    border-top: 1px solid rgba(255,255,255,0.12) !important;
}
.footer-brand-wrap { margin: 0 !important; }
.footer-logo-img {
    max-height: 66px;
    width: 320px;
    max-width: 100%;
    object-fit: contain;
    object-position: left center;
    margin-bottom: 0.15rem;
}
.footer-brand-copy {
    max-width: 480px;
    font-size: 0.98rem !important;
    line-height: 1.5 !important;
    color: rgba(255, 255, 255, 0.5) !important;
}
.footer-locations-title {
    font-size: 1.02rem !important;
    letter-spacing: 0.02em !important;
    text-transform: uppercase;
    margin-top: 0.5rem;
    margin-bottom: 0.8rem !important;
}
.footer-locations-copy {
    font-size: 0.98rem !important;
    line-height: 1.65 !important;
    color: rgba(255, 255, 255, 0.5) !important;
}
.footer-contact-address {
    font-size: 0.98rem !important;
    line-height: 1.5 !important;
    color: rgba(255, 255, 255, 0.5) !important;
    max-width: 300px;
}
.footer-contact-card {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.05);
}
.footer-contact-muted { color: rgba(255, 255, 255, .5) !important; }
.footer-legal-border { border-top: 1px solid #7c7c7c !important; }
.social-icon-box.social-float { float: left; }

.site-footer-main h5 {
    font-size: 1.22rem;
    text-transform: none;
    letter-spacing: 0.01em;
    color: #f8fafc !important;
    font-weight: 600 !important;
}

.site-footer-main .footer-link-item {
    color: rgba(255, 255, 255, 0.5) !important;
    font-size: 0.98rem;
}

.site-footer-main .footer-link-item:hover {
    color: #8ccfff !important;
}

.site-footer-main .small.text-white-50,
.site-footer-main .text-white-50 {
    color: rgba(255, 255, 255, 0.5) !important;
}
.footer-nav-col {
    padding-left: 1.25rem;
}
@media (min-width: 992px) {
    .site-footer-main .row.g-5 > .col-lg-4 + .footer-nav-col {
        padding-left: 2.5rem;
    }
}
.partner-logo-link {
    display: block;
    transition: transform 0.25s ease, opacity 0.25s ease;
}
.partner-logo-link:hover {
    transform: translateY(-2px);
    opacity: 0.92;
}
.home-insights-side-card {
    max-width: 100%;
}
[data-home-insights-section] .content-rounded-card {
    min-height: 0;
}
[data-home-insights-section] .row.g-4.align-items-stretch {
    align-items: flex-start;
}
[data-home-insights-section] .home-insights-featured-card {
    overflow: visible;
}
[data-home-insights-section] .v5-badge-outline {
    background: transparent !important;
    border: 1px solid #3B96FF !important;
    color: #3B96FF !important;
    font-weight: 500;
    padding: 4px 16px !important;
    font-size: 0.7rem !important;
    letter-spacing: 0.5px;
}
[data-home-insights-section] .home-insights-featured-img {
    display: block;
    width: 100%;
    height: clamp(160px, 22vw, 220px);
    object-fit: cover;
    object-position: top center;
}
[data-home-insights-section] .home-insights-featured-title {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
    font-size: clamp(1.15rem, 1.6vw, 1.45rem) !important;
    line-height: 1.3 !important;
}
[data-home-insights-section] .home-insights-featured-excerpt {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}
[data-home-insights-section] .home-insights-featured-cta {
    margin-top: auto;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
}
.sd-approach-v2 .sd-section-lead {
    max-width: 52rem;
    font-size: 1.05rem;
    line-height: 1.65;
}
.footer-social-list {
    gap: 0.95rem !important;
}
.footer-social-link i,
.footer-social-icon-fallback {
    font-size: 1.1rem;
}
.footer-social-icon-img {
    width: 40px;
    height: 40px;
    object-fit: contain;
    display: inline-block;
}
.footer-legal-row {
    margin-top: 2.4rem !important;
    padding-top: 1.45rem !important;
}
.footer-legal-copy,
.footer-legal-link {
    font-size: 1.08rem !important;
    color: rgba(255, 255, 255, 0.5) !important;
}

@media (max-width: 767.98px) {
    [data-site-footer] h2 {
        font-size: clamp(1.6rem, 8vw, 2.2rem) !important;
    }

    [data-site-footer] .rounded-4 {
        padding: 1rem !important;
    }
    .footer-brand-copy {
        font-size: 0.94rem !important;
    }
    .footer-locations-title {
        font-size: 0.92rem !important;
    }
    .footer-locations-copy,
    .site-footer-main .footer-link-item,
    .footer-links a,
    .footer-legal-copy,
    .footer-legal-link {
        font-size: 0.98rem !important;
    }
    .site-footer-main h5 {
        font-size: 1.05rem;
    }
}

/* About-us leadership card refinements */
.leader-profile-card {
    border-radius: 18px;
}

.leader-profile-card__media img {
    object-position: center top;
}

.leader-profile-card .leader-role-eyebrow {
    display: inline-block;
    font-size: 0.66rem !important;
    letter-spacing: 0.12em !important;
    color: rgba(140, 207, 255, 0.92) !important;
}

.leader-profile-card .leader-role-eyebrow::before {
    display: none !important;
}

/* About-us icon consistency */
.about-icon-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 14px;
    border: 1px solid rgba(59, 150, 255, 0.28);
    background:
        radial-gradient(circle at 28% 22%, rgba(59, 150, 255, 0.2), transparent 52%),
        linear-gradient(145deg, rgba(10, 16, 36, 0.95), rgba(8, 12, 30, 0.95));
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05);
}

.about-section-icon {
    font-size: 1.55rem;
    line-height: 1;
    color: #5fb1ff !important;
    -webkit-text-fill-color: #5fb1ff !important;
}
