/* Shared by the homepage and interior pages, after their base styles. */
#main-content #sec-partner {
    color: #475569;
    text-align: left;
}

#main-content #sec-partner h2 {
    font-family: var(--public-font, 'Montserrat', sans-serif);
    font-size: clamp(1.8rem, 3vw, 2.8rem);
    line-height: 1.2;
    letter-spacing: -.025em;
    color: #1A5685;
    font-weight: 700;
    margin: 0 0 20px;
    text-align: left;
}

#main-content #pg-home #sec-partner p,
#main-content #sec-partner .public-home-section-intro {
    font-family: var(--public-font, 'Montserrat', sans-serif);
    font-size: 16px;
    line-height: 1.7;
    font-weight: 400 !important;
    color: #475569 !important;
    margin-bottom: 28px;
    text-align: left;
}

/* Reserve logo space before lazy images load, regardless of intrinsic proportions. */
#sec-partner .clients-slider .swiper-wrapper {
    box-sizing: border-box;
    height: 136px;
    min-height: 136px;
    padding-top: 8px;
    padding-bottom: 8px;
    overflow-y: hidden;
}

#sec-partner .clients-slider .swiper-slide {
    height: 120px;
    min-height: 120px;
}

#sec-partner .clients-slider .swiper-slide > a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 120px;
    min-height: 120px;
}

#sec-partner .clients-slider .swiper-slide img {
    display: block;
    width: 149px !important;
    height: 96px !important;
    max-width: 100%;
    max-height: 96px;
    object-fit: contain;
    object-position: center;
}

#sec-partner .public-partner-controls button {
    font-family: var(--public-font, 'Montserrat', sans-serif);
    font-size: 14px;
    color: #1A5685;
    border-color: #1A5685;
}

#sec-partner .public-partner-controls button:hover:not(:disabled) {
    color: #fff;
    background: #1A5685;
}

@media (min-width: 1200px) {
    #sec-partner > .container {
        width: calc(100% - 64px);
        max-width: 1440px;
    }

    #sec-partner .clients-slider .swiper-wrapper {
        gap: 36px;
    }

    #sec-partner .clients-slider .swiper-slide {
        flex: 0 0 149px;
        min-width: 0;
    }
}

:is(#sec-partner .clients-slider .swiper-wrapper, #responsive) {
    scrollbar-width: none;
    -ms-overflow-style: none;
    cursor: grab;
}

:is(#sec-partner .clients-slider .swiper-wrapper, #responsive).is-dragging {
    cursor: grabbing;
    user-select: none;
    scroll-snap-type: none;
    scroll-behavior: auto;
}

:is(#sec-partner .clients-slider .swiper-wrapper, #responsive).is-dragging :is(a, img, button) {
    cursor: grabbing;
    user-select: none;
}

:is(#sec-partner .clients-slider .swiper-wrapper, #responsive)::-webkit-scrollbar {
    display: none;
}

/* Direction indicators follow their link's text, including white text on blue. */
#main-content :is(.public-action, .public-home-primary, .public-home-area-link,
    .public-home-text-link, .solution-explore, .public-contract-open,
    .public-home-opportunity-links a, .bg-blue a, .public-final-cta a)
    :is(span[aria-hidden="true"], i[class*="fa-arrow"], i[class*="fa-chevron"]) {
    color: inherit !important;
}

@media (max-width: 991px) {
    body #main-navbar,
    body #main-navbar.scrolledfix,
    body:has(.public-editorial) #main-navbar.scrolledfix {
        --mobile-header-height: 72px;
        height: var(--mobile-header-height) !important;
        background: #1A5685 !important;
        padding: 0 15px;
        align-items: flex-start;
    }

    #main-navbar > .container-cstm {
        display: grid;
        grid-template-columns: 88px minmax(0, 1fr) 88px;
        grid-template-rows: 72px;
        align-items: center;
        width: 100%;
        padding: 0;
    }

    #main-navbar > .container-cstm > .mobileLink,
    #main-navbar > .container-cstm > .navbar-brand {
        grid-row: 1;
    }

    #main-navbar > .container-cstm > .navbar-brand {
        grid-column: 2;
        justify-self: center;
    }

    #main-navbar > .container-cstm > .mobileLink:first-child { grid-column: 1; }
    #main-navbar > .container-cstm > .navbar-brand + .mobileLink { grid-column: 3; }

    #main-navbar .public-header-cta {
        position: absolute;
        left: 50%;
        top: 36px;
        transform: translate(-50%, -50%);
        grid-column: 2;
        grid-row: 1;
        width: max-content;
        max-width: 100%;
        min-width: 0;
        height: auto;
        min-height: 44px;
        margin: 0;
        padding: 6px clamp(4px, calc((100vw - 320px) / 4), 10px);
        font-size: clamp(11px, 3vw, 12px);
        line-height: 1.25;
        white-space: nowrap;
        text-align: center;
        justify-self: center;
        align-self: center;
    }

    body #main-navbar:has(.public-header-cta:not([hidden])),
    body #main-navbar.scrolledfix:has(.public-header-cta:not([hidden])),
    body:has(.public-editorial) #main-navbar.scrolledfix:has(.public-header-cta:not([hidden])) {
        --mobile-header-height: 72px;
        height: var(--mobile-header-height) !important;
    }

    #main-navbar:has(.public-header-cta:not([hidden])) .navbar-brand {
        visibility: hidden;
    }

    #main-navbar:has(.public-header-cta:not([hidden])) > .container-cstm {
        grid-template-columns: 44px minmax(0, 1fr) 88px;
    }

    #main-navbar:has(.public-header-cta:not([hidden])) > .container-cstm > .mobileLink:first-child {
        width: 44px;
    }

    #main-navbar .public-header-cta[hidden] {
        display: none !important;
    }

    #main-navbar .navbar-brand,
    #main-navbar.scrolledfix .navbar-brand {
        width: clamp(96px, calc(100vw - 206px), 150px);
        flex: 0 0 clamp(96px, calc(100vw - 206px), 150px);
        height: 50px;
        margin: 0;
        background-image: url('/assets-pagespeed/gestapp-white.webp');
        background-size: contain;
        background-position: center;
        background-repeat: no-repeat;
        transform: scale(.9);
        transform-origin: center;
    }

    #main-content,
    #main-content [id] {
        scroll-margin-top: 92px;
    }

    #main-content :is(input, select, textarea).form-control {
        font-size: 16px;
        min-height: 48px;
    }

    #main-navbar .navbar-collapse {
        background: #1A5685;
        max-height: calc(100vh - var(--mobile-header-height));
        max-height: calc(100dvh - var(--mobile-header-height));
        overscroll-behavior-y: contain;
    }

    #main-navbar .public-solutions-menu ul {
        background: transparent;
        min-width: 0;
        width: 100%;
    }

    #main-navbar .public-solutions-menu li a {
        overflow-wrap: anywhere;
    }

    #main-navbar .navbar-collapse .nav-item .nav-link,
    #main-navbar .public-solutions-menu summary,
    #main-navbar .public-solutions-menu li a {
        color: #fff !important;
    }

    #main-navbar .navbar-collapse .nav-item .nav-link:is(:hover, :focus-visible),
    #main-navbar .public-solutions-menu li a:is(:hover, :focus-visible) {
        background: transparent;
        color: #F8962C !important;
    }
}

/* Shared light footer palette; column layout remains responsive. */
    .public-footer {
        background:
            radial-gradient(ellipse at 100% 0, rgba(26, 86, 133, .07), transparent 55%),
            radial-gradient(ellipse at 0 100%, rgba(248, 150, 44, .06), transparent 45%),
            #f7f9fc;
        color: #475569;
        border-top: 1px solid #dbe5ee;
        text-align: left;
    }

    .public-footer h2,
    .public-footer a {
        color: #1A5685 !important;
    }

    .public-footer p,
    .public-footer address {
        color: #475569 !important;
    }

    .public-footer .public-footer-social i {
        color: #1A5685;
    }

    .public-footer .public-footer-social a {
        border-color: #cbdce8;
        background: #fff;
    }

    .public-footer .public-footer-legal {
        border-top-color: #dbe5ee;
        background: rgba(255, 255, 255, .7);
    }

/* Mobile footer: paired navigation columns and a compact contact block. */
@media (max-width: 767px) {

    .public-footer .public-footer-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px 18px;
        padding: 28px 20px 24px;
    }

    .public-footer-grid > div,
    .public-footer-grid > nav {
        min-width: 0;
        text-align: left;
    }

    .public-footer-grid > div:first-child {
        grid-column: 1 / -1;
        display: grid;
        grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
        align-items: start;
        gap: 12px 18px;
    }

    .public-footer-grid > nav {
        grid-column: auto;
    }

    .public-footer .brand {
        display: inline-block;
        float: none;
        margin: 0;
    }

    .public-footer .brand img {
        display: block;
        width: 140px;
        max-width: 100%;
        height: auto;
        margin: 0;
    }

    .public-footer address {
        margin: 0;
        font-size: 13px;
        line-height: 1.55;
        text-align: left;
        overflow-wrap: anywhere;
    }

    .public-footer address a {
        min-height: 30px;
        padding: 4px 0;
    }

    .public-footer .public-footer-social {
        grid-column: 1 / -1;
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: 12px;
        margin: 0;
    }

    .public-footer-social a {
        border-color: #cbdce8;
        background: #fff;
    }

    .public-footer-grid > nav {
        border-top: 1px solid #dbe5ee;
        padding: 16px 0 0;
    }

    .public-footer h2 {
        margin: 0 0 8px;
        font-size: 16px;
        line-height: 1.4;
        text-align: left;
    }

    .public-footer nav ul {
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .public-footer nav li {
        margin: 0;
        padding: 0;
        min-width: 0;
        text-align: left;
    }

    .public-footer nav li a {
        display: flex;
        min-height: 32px;
        padding: 5px 0;
        font-size: 13px;
        line-height: 1.5;
        overflow-wrap: anywhere;
    }

    .public-footer .public-footer-legal {
        border-top: 1px solid #dbe5ee;
        padding: 22px 0 26px;
        background: rgba(255, 255, 255, .7);
    }

    .public-footer-legal > .container {
        padding-right: 24px;
        padding-left: 24px;
    }

    .public-footer-legal p {
        margin: 0 0 16px;
        font-size: 12px;
        line-height: 1.8;
        text-align: left;
        overflow-wrap: anywhere;
    }

    .public-footer .public-footer-legal nav {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 0;
        margin: 0;
        padding: 0;
    }

    .public-footer-legal nav a {
        min-height: 44px;
        padding: 10px 0;
        font-size: 13px;
        line-height: 1.6;
        text-underline-offset: 3px;
        overflow-wrap: anywhere;
    }
}

/* Give large panels depth without adding images or covering their copy. */
    #main-content .public-final-cta,
    #pg-home .public-home-product-visual {
        background:
            radial-gradient(circle at 105% -10%, transparent 0 85px, rgba(255, 255, 255, .1) 86px 88px, transparent 89px 125px, rgba(255, 255, 255, .06) 126px 128px, transparent 129px),
            linear-gradient(135deg, #1A5685, #0b3a5c);
    }

    #main-content .public-soft-panel {
        background:
            radial-gradient(ellipse at 100% 0, rgba(248, 150, 44, .08), transparent 55%),
            linear-gradient(135deg, #f2f6fa, #fff);
        border: 1px solid #e1eaf1;
    }
