/* Keep link decoration off the navbar, including whitespace around icons.
   Load after nc.css and NewCa.com.styles.css. */
.navbar a,
.navbar a:hover,
.navbar a:focus,
.navbar a:active,
.navbar a:visited {
    text-decoration: none !important;
}

/* Restore document scrolling on ordinary pages. Keep intentional overlay
   and Video.js full-window scroll locks under their existing controls. */
html:not(:has(body.modal-open, body.vjs-full-window, #sidenav-overlay, .picker--opened, :fullscreen)) {
    overflow-y: auto !important;
}

body:not(.modal-open):not(.vjs-full-window):not(:has(#sidenav-overlay, .picker--opened, :fullscreen)) {
    overflow-y: visible !important;
}

/* Buttons: avoid underlined labels and whitespace beside icons. */
button,
.btn,
a[role="button"],
button *,
.btn *,
a[role="button"] * {
    text-decoration: none !important;
}

/* Background images belong to the slides, not the #intro wrapper. */
#intro > .carousel-inner > .carousel-item {
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-attachment: scroll !important;
}

@media (max-width: 991.98px) {
    /* Bootstrap hides these labels below 576px; keep mobile labels visible. */
    #ncNavBar .nav-link > span.d-none,
    #ncNavBar .dropdown-item > span.d-none {
        display: inline-block !important;
    }

    /* The primary links stack; the separate social-icon list can wrap. */
    #ncNavBar .navbar-collapse > ul.nav.navbar-nav {
        flex-direction: column !important;
        align-items: stretch;
        width: 100%;
    }

    #ncNavBar .navbar-collapse > ul.navbar-nav:not(.nav) {
        flex-direction: row;
        flex-wrap: wrap;
    }

    #ncNavBar .navbar-collapse {
        max-height: calc(100vh - 5rem);
        max-height: calc(100svh - 5rem);
        overflow-y: auto;
    }

    #ncNavBar .dropdown-menu {
        position: static !important;
        transform: none !important;
        min-width: 0;
        max-width: 100%;
    }

    #ncNavBar .dropdown-item {
        white-space: normal;
    }

    /* A viewport-height hero, without fixed desktop minimum widths. */
    header.nc-hdr-lnd,
    header.nc-hdr-lnd .nc-container-intro {
        height: 100vh !important;
        height: 100svh !important;
        width: 100%;
    }

    #intro .nc-lp-min-width-28rem,
    #intro .min-width-22rem,
    #intro .min-width-80rem {
        min-width: 0 !important;
        max-width: 100%;
        overflow-wrap: anywhere;
    }

    #intro .nc-lp-min-width-28rem {
        width: 100%;
    }

    #intro h2 {
        font-size: clamp(1.35rem, 5vw, 2rem);
    }
}
