:root {
    --xl-site-banner-max-width: 1500px;
    --xl-site-banner-total-gutter: 48px;
    --xl-site-banner-mobile-total-gutter: 24px;
    --xl-site-banner-height: 72px;
}

/*
 * Shared horizontal geometry for every XLSoftware banner. The legacy pages
 * use Bootstrap rows while Puzzle Nerd uses flexbox, so this class owns the
 * outer width and neutralizes Bootstrap's extra nested gutters.
 */
.xl-site-banner-inner {
    width: min(
        var(--xl-site-banner-max-width),
        calc(100% - var(--xl-site-banner-total-gutter))
    ) !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
    min-height: var(--xl-site-banner-height);
}

.xl-site-banner-inner > .row {
    width: 100%;
    margin-right: 0;
    margin-left: 0;
}

.xl-site-banner-inner > .row > [class*="col-"] {
    padding-right: 0;
    padding-left: 0;
}

.xl-site-banner-inner .logo-nav img,
.xl-site-banner-inner .pn-site-logo img {
    display: inline-block;
    width: auto;
    height: 38px;
}

.xl-site-banner-inner .logo-nav {
    display: flex;
    align-items: center;
    height: var(--xl-site-banner-height);
    line-height: normal;
}

.xl-site-banner-inner .logo-nav > a {
    display: flex;
    align-items: center;
    height: 100%;
}

.xl-site-banner-inner #main-menu {
    margin-right: 0 !important;
}

@media (min-width: 993px) {
    .xl-site-banner-inner--main #main-menu {
        float: right !important;
    }
}

@media (max-width: 620px) {
    .xl-site-banner-inner {
        --xl-site-banner-height: 56px;
        width: calc(100% - var(--xl-site-banner-mobile-total-gutter)) !important;
    }

    .xl-site-banner-inner .logo-nav img,
    .xl-site-banner-inner .pn-site-logo img {
        height: 30px;
    }

    .xl-site-banner-inner--demo #main-menu ul li a,
    .xl-site-banner-inner--demo #main-menu ul li .banner-logout-form button {
        padding: 5px 10px;
        line-height: 46px;
    }
}
