/* ==========================================================================
   NexusPoint Consultants - Mobile-First Universal Responsive Engine
   Ultra-Compact & High-Density UI for Small & Medium Devices (< 992px)
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. GLOBAL OVERFLOW & BASE COMPACT RULES
   -------------------------------------------------------------------------- */
html, body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
    position: relative;
    -webkit-font-smoothing: antialiased;
}

*, *::before, *::after {
    box-sizing: border-box;
}

img, svg, video, canvas {
    max-width: 100%;
    height: auto;
}

@media (max-width: 991.98px) {
    /* Compact Global Section Spacing */
    .sh-section,
    section,
    .np-intel-section {
        padding-top: 1.25rem !important;
        padding-bottom: 1.25rem !important;
    }

    .sh-section.py-5,
    .py-5 {
        padding-top: 1.25rem !important;
        padding-bottom: 1.25rem !important;
    }

    .container {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    /* Section Intros */
    .np-section-intro,
    .np-team-heading,
    .np-section-heading {
        margin-bottom: 12px !important;
    }

    /* Floating Badges */
    .np-floating-legal-badge {
        display: none !important;
    }
    
    .floating-contact-widget,
    .np-floating-contact-widget {
        bottom: 12px !important;
        right: 10px !important;
        z-index: 1040 !important;
        transform: scale(0.82) !important;
        transform-origin: bottom right !important;
    }
}

/* --------------------------------------------------------------------------
   2. HEADER, TOPBAR & MARQUEE COMPACTING
   -------------------------------------------------------------------------- */
@media (max-width: 767.98px) {
    .np-marquee-wrapper {
        height: 30px !important;
    }
    .np-marquee-fixed-badge {
        padding: 0 5px !important;
    }
    .np-marquee-fixed-badge .badge {
        font-size: 0.58rem !important;
        padding: 2px 4px !important;
    }
    .np-marquee-item {
        font-size: 0.68rem !important;
        gap: 6px !important;
        padding-right: 18px !important;
    }
    .np-marquee-btn {
        font-size: 0.62rem !important;
        padding: 1px 5px !important;
    }

    .topbar {
        font-size: 0.70rem !important;
        padding-top: 2px !important;
        padding-bottom: 2px !important;
    }

    .navbar-brand img {
        max-height: 38px !important;
        max-width: 180px !important;
        width: auto !important;
    }

    .btn-gold.rounded-pill.d-inline-flex {
        padding: 3px 8px !important;
        font-size: 0.72rem !important;
    }
}

/* Mobile Header Strict Action Controls (Single Hamburger Only) */
@media (max-width: 991.98px) {
    .btn-grid-offcanvas,
    #npGridOverlayToggle {
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
        width: 0 !important;
        height: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        border: none !important;
    }

    .np-burger-toggle,
    #npMobileMenuToggle {
        display: flex !important;
        visibility: visible !important;
    }
}

/* --------------------------------------------------------------------------
   3. HERO SECTION & ACCREDITATIONS (ULTRA-COMPACT)
   -------------------------------------------------------------------------- */
@media (max-width: 991.98px) {
    .sh-hero,
    .sh-hero-slider,
    .sh-hero-slider .heroSlider,
    .sh-hero-slider .swiper-wrapper,
    .sh-hero-slider .swiper-slide {
        height: auto !important;
        min-height: auto !important;
        max-height: none !important;
        overflow: visible !important;
        position: relative !important;
    }

    .sh-hero-slider .swiper-slide {
        padding-top: 14px !important;
        padding-bottom: 14px !important;
        display: block !important;
    }

    .sh-hero-slider .container.h-100,
    .sh-hero-slider .row.h-100 {
        height: auto !important;
        min-height: auto !important;
    }

    .sh-hero-slide-content {
        padding-right: 0 !important;
        margin-bottom: 8px !important;
        text-align: left !important;
    }

    .sh-hero-eyebrow-wrapper {
        margin-bottom: 4px !important;
        text-align: left !important;
    }
    .sh-hero-eyebrow-wrapper .badge {
        font-size: 0.65rem !important;
        padding: 2px 7px !important;
    }

    .sh-hero-slide-content h1 {
        font-size: clamp(1.25rem, 4.2vw, 1.75rem) !important;
        line-height: 1.16 !important;
        margin-bottom: 6px !important;
        text-align: left !important;
    }

    .sh-hero-slide-content p.lead {
        font-size: 0.80rem !important;
        line-height: 1.40 !important;
        margin: 0 0 8px !important;
        max-width: 100%;
        text-align: left !important;
    }

    .sh-hero-trust-strip {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        justify-content: flex-start !important;
        align-items: center !important;
        gap: 5px !important;
        margin-bottom: 12px !important;
    }
    .sh-hero-trust-strip > div {
        font-size: 0.72rem !important;
        padding: 3px 8px !important;
        flex-shrink: 0 !important;
    }

    .sh-hero-btn-group {
        display: flex !important;
        flex-direction: row !important;
        justify-content: flex-start !important;
        align-items: center !important;
        margin-bottom: 8px !important;
        width: 100% !important;
    }
    .sh-hero-btn-group .btn {
        flex: 0 0 auto !important;
        padding: 5px 12px !important;
        font-size: 0.76rem !important;
        text-align: left !important;
        justify-content: flex-start !important;
        white-space: nowrap !important;
    }

    /* Glass Form Card - Ultra Compact 2-Column on Mobile */
    .sh-hero-glass-card {
        margin-top: 6px !important;
        padding: 10px 10px !important;
        border-radius: 10px !important;
        background: rgba(32, 6, 12, 0.96) !important;
        border: 1px solid rgba(212, 160, 84, 0.4) !important;
    }

    .sh-hero-glass-card h3 {
        font-size: 0.88rem !important;
        margin-bottom: 1px !important;
    }

    .sh-hero-glass-card p {
        font-size: 0.72rem !important;
        margin-bottom: 6px !important;
    }

    .sh-hero-glass-card .form-control-dark,
    .sh-hero-glass-card .form-select-dark {
        padding: 4px 6px !important;
        font-size: 0.74rem !important;
    }

    .sh-hero-glass-card .input-group-text {
        padding: 4px 6px !important;
        font-size: 0.76rem !important;
    }

    .sh-hero-glass-card .btn {
        padding: 6px 10px !important;
        font-size: 0.78rem !important;
    }

    .sh-hero-controls {
        position: relative !important;
        bottom: auto !important;
        left: auto !important;
        transform: none !important;
        margin: 8px auto 0 !important;
        width: 100% !important;
        max-width: 240px !important;
        z-index: 10 !important;
    }

    /* Accreditations Strip */
    .np-accreditations-wrapper {
        position: relative !important;
        margin-top: 12px !important;
        margin-bottom: 12px !important;
        z-index: 10 !important;
    }

    .np-accreditations-card {
        padding: 8px 12px !important;
        border-radius: 10px !important;
    }

    .np-accreditation-item {
        height: 42px !important;
        min-width: 95px !important;
        padding: 2px 6px !important;
    }

    .np-accreditation-item img {
        max-height: 30px !important;
        max-width: 80px !important;
    }
}

/* --------------------------------------------------------------------------
   4. PROGRAM HUB TABS & CARDS (COMPACT)
   -------------------------------------------------------------------------- */
@media (max-width: 991.98px) {
    .np-program-hub-premium {
        padding-top: 1.25rem !important;
        padding-bottom: 1.25rem !important;
    }

    .np-program-tabs {
        display: flex !important;
        overflow-x: auto !important;
        flex-wrap: nowrap !important;
        gap: 5px !important;
        padding-bottom: 4px !important;
        width: 100% !important;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        margin-bottom: 12px !important;
    }
    .np-program-tabs::-webkit-scrollbar {
        display: none;
    }
    .np-program-tabs .nav-link {
        flex-shrink: 0 !important;
        font-size: 0.74rem !important;
        padding: 5px 10px !important;
        border-radius: 16px !important;
        white-space: nowrap !important;
    }

    .np-program-card {
        margin-bottom: 10px;
    }
    .np-program-card .card-body {
        padding: 12px 10px !important;
    }
    .np-program-card h3 {
        font-size: 0.95rem !important;
    }
    .np-program-card p {
        font-size: 0.78rem !important;
        line-height: 1.40 !important;
        margin-bottom: 8px !important;
    }
    .np-program-card .btn {
        padding: 5px 10px !important;
        font-size: 0.76rem !important;
    }
}

/* --------------------------------------------------------------------------
   5. 3D GLOBE & FLIGHT CORRIDORS SECTION (COMPACT)
   -------------------------------------------------------------------------- */
@media (max-width: 991.98px) {
    .np-3d-globe-wrapper,
    #npGlobeContainer {
        height: 290px !important;
        border-radius: 12px !important;
        margin-top: 6px !important;
        margin-bottom: 6px !important;
    }

    .np-globe-panel-left,
    .np-globe-panel-right {
        display: none !important;
    }

    #npGlobeContainer .position-absolute.top-0.start-50 {
        width: 94% !important;
        padding-top: 6px !important;
    }

    #globeFlightTicker {
        font-size: 0.65rem !important;
        line-height: 1.20 !important;
    }
}

/* --------------------------------------------------------------------------
   6. SOVEREIGN PROCESSING MONITOR (#processing-monitor) — ULTRA COMPACT
   -------------------------------------------------------------------------- */
@media (max-width: 991.98px) {
    .np-monitor-section {
        padding-top: 1.25rem !important;
        padding-bottom: 1.25rem !important;
    }

    .np-section-intro-split {
        flex-direction: column !important;
        gap: 8px !important;
        margin-bottom: 10px !important;
    }

    .np-section-label {
        font-size: 0.68rem !important;
        padding: 2px 7px !important;
        margin-bottom: 3px !important;
    }

    #processing-monitor-title {
        font-size: 1.20rem !important;
        line-height: 1.20 !important;
        margin-bottom: 3px !important;
        color: #20060C !important;
    }

    .np-section-intro p {
        font-size: 0.80rem !important;
        line-height: 1.40 !important;
        margin-bottom: 4px !important;
    }

    .np-updated-line {
        font-size: 0.68rem !important;
    }

    .np-source-integrity {
        display: flex !important;
        align-items: center !important;
        gap: 6px !important;
        padding: 6px 10px !important;
        border-radius: 6px !important;
        background: rgba(54, 12, 22, 0.05) !important;
        border: 1px solid rgba(212, 160, 84, 0.3) !important;
    }
    .np-source-integrity i {
        font-size: 1rem !important;
        color: #D4A054 !important;
        flex-shrink: 0;
    }
    .np-source-integrity div strong {
        font-size: 0.74rem !important;
        color: #360C16 !important;
        display: inline !important;
    }
    .np-source-integrity div p {
        display: inline !important;
        font-size: 0.72rem !important;
        color: #64748B !important;
        margin: 0 !important;
    }

    .np-monitor-controls-wrapper {
        margin-bottom: 6px !important;
    }

    .np-monitor-filters {
        display: flex !important;
        overflow-x: auto !important;
        flex-wrap: nowrap !important;
        gap: 4px !important;
        padding-bottom: 4px !important;
        width: 100% !important;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .np-monitor-filters::-webkit-scrollbar {
        display: none;
    }
    .np-monitor-filters button {
        flex-shrink: 0 !important;
        font-size: 0.70rem !important;
        padding: 3px 8px !important;
        border-radius: 14px !important;
        white-space: nowrap !important;
    }
    .np-monitor-filters button .np-filter-badge {
        font-size: 0.60rem !important;
        padding: 1px 4px !important;
        margin-left: 2px !important;
    }

    .np-monitor-search-box {
        height: 32px !important;
        padding: 0 8px !important;
        font-size: 0.75rem !important;
        border-radius: 16px !important;
        width: 100% !important;
    }
    .np-monitor-search-box input {
        font-size: 0.75rem !important;
        padding-left: 22px !important;
    }
    .np-monitor-search-box i.bi-search {
        font-size: 0.75rem !important;
    }

    .np-monitor-scroll-container {
        max-height: 340px !important;
        border-radius: 8px !important;
        border: 1px solid rgba(54, 12, 22, 0.12) !important;
        background: #F8FAFC !important;
        padding: 4px !important;
    }

    .np-monitor-head {
        display: none !important;
    }

    .np-monitor-row {
        display: block !important;
        background: #FFFFFF !important;
        border: 1px solid rgba(54, 12, 22, 0.10) !important;
        border-radius: 6px !important;
        padding: 6px 8px !important;
        margin-bottom: 4px !important;
    }
    .np-monitor-row:last-child {
        margin-bottom: 0 !important;
    }

    .np-route-cell {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        margin-bottom: 2px !important;
    }
    .np-route-cell .np-flag {
        font-size: 1.15rem !important;
        margin-right: 5px !important;
    }
    .np-route-cell strong {
        font-size: 0.80rem !important;
        color: #20060C !important;
    }
    .np-route-cell small {
        display: block !important;
        font-size: 0.70rem !important;
        color: #64748B !important;
    }

    .np-status {
        font-size: 0.62rem !important;
        padding: 1px 6px !important;
        border-radius: 10px !important;
    }

    .np-monitor-row > div:nth-child(3) {
        font-size: 0.72rem !important;
        color: #334155 !important;
        line-height: 1.30 !important;
        margin-bottom: 4px !important;
    }
    .np-monitor-row > div:nth-child(3) strong {
        color: #360C16 !important;
        font-size: 0.74rem !important;
    }
    .np-monitor-row > div:nth-child(3) small {
        font-size: 0.68rem !important;
        color: #64748B !important;
    }

    .np-action-cell {
        padding-top: 3px !important;
        border-top: 1px dashed rgba(54, 12, 22, 0.08) !important;
    }
    .np-action-cell .btn {
        width: 100% !important;
        padding: 4px 10px !important;
        font-size: 0.72rem !important;
        border-radius: 4px !important;
    }

    .np-legal-note {
        font-size: 0.68rem !important;
        margin-top: 6px !important;
    }
}

/* --------------------------------------------------------------------------
   7. INTERACTIVE FIT SCORER / CALCULATOR (COMPACT)
   -------------------------------------------------------------------------- */
@media (max-width: 991.98px) {
    .np-calculator-section {
        padding-top: 1.25rem !important;
        padding-bottom: 1.25rem !important;
    }

    .np-calculator-shell {
        display: flex !important;
        flex-direction: column !important;
        border-radius: 12px !important;
        overflow: hidden !important;
        background: #FFFFFF !important;
        border: 1px solid rgba(212, 160, 84, 0.35) !important;
    }

    .np-calculator-aside {
        display: block !important;
        background: radial-gradient(circle at 100% 20%, #4a1020 0%, #360C16 55%, #20060C 100%) !important;
        color: #FFFFFF !important;
        padding: 14px 12px !important;
        border-radius: 0 !important;
        margin-bottom: 0 !important;
        border-bottom: 2px solid rgba(212, 160, 84, 0.4) !important;
    }

    .np-aside-badge {
        margin-bottom: 6px !important;
    }
    .np-aside-badge .badge {
        font-size: 0.62rem !important;
        padding: 2px 6px !important;
    }

    .np-calculator-aside h2 {
        font-size: 1.20rem !important;
        line-height: 1.20 !important;
        margin-bottom: 4px !important;
        color: #FFFFFF !important;
    }

    .np-calculator-aside > p {
        color: rgba(255, 255, 255, 0.88) !important;
        font-size: 0.78rem !important;
        line-height: 1.40 !important;
        margin-bottom: 8px !important;
    }

    .np-calculator-disclaimer {
        padding: 5px 8px !important;
        margin-bottom: 8px !important;
        font-size: 0.70rem !important;
    }

    .np-calculator-benefits {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 5px !important;
        margin-bottom: 8px !important;
        padding-left: 0 !important;
        list-style: none !important;
    }

    .np-calculator-benefits li {
        gap: 6px !important;
        font-size: 0.75rem !important;
    }
    .np-calculator-benefits li strong {
        font-size: 0.75rem !important;
    }
    .np-calculator-benefits li small {
        font-size: 0.68rem !important;
    }
    .np-calculator-benefits li i {
        font-size: 0.88rem !important;
    }

    .np-calc-steps {
        padding: 6px 4px !important;
        font-size: 0.70rem !important;
        border-radius: 6px !important;
    }

    .np-calculator-form {
        padding: 14px 12px !important;
    }

    .np-calc-heading h3 {
        font-size: 1.05rem !important;
        margin-bottom: 2px !important;
    }

    .np-calc-heading p {
        font-size: 0.75rem !important;
        margin-bottom: 10px !important;
    }

    .np-field-grid {
        gap: 6px !important;
    }

    .np-select-wrapper select {
        font-size: 0.78rem !important;
        padding: 7px 8px 7px 28px !important;
    }
}

/* --------------------------------------------------------------------------
   8. CLIENT SAFEGUARDS SECTION (#client-safeguards) — ULTRA COMPACT & 2x2 GRID
   -------------------------------------------------------------------------- */
@media (max-width: 991.98px) {
    .np-safeguards-section {
        padding: 1.25rem 0 1rem !important;
    }

    .np-safeguards-heading {
        display: flex !important;
        flex-direction: column !important;
        gap: 6px !important;
        margin-bottom: 12px !important;
    }

    .np-safeguards-heading h2 {
        font-size: 1.20rem !important;
        line-height: 1.20 !important;
        margin-bottom: 2px !important;
        color: #FFFFFF !important;
    }

    .np-safeguards-heading h2 span {
        display: inline !important;
        color: #EDBA62 !important;
    }

    .np-safeguards-heading p {
        font-size: 0.78rem !important;
        margin: 2px 0 6px !important;
        color: rgba(255, 255, 255, 0.75) !important;
    }

    .np-safeguards-heading > a {
        font-size: 0.74rem !important;
        margin-top: 0 !important;
        display: inline-block !important;
        width: fit-content;
    }

    /* 2x2 Grid on Mobile instead of 128px giant stacked circles */
    .np-safeguard-rail {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
        margin: 10px 0 12px !important;
    }

    .np-safeguard-rail::before {
        display: none !important;
    }

    .np-safeguard-rail article {
        background: rgba(0, 0, 0, 0.28) !important;
        border: 1px solid rgba(237, 186, 98, 0.35) !important;
        border-radius: 10px !important;
        padding: 10px 8px !important;
        text-align: center !important;
    }

    .np-safeguard-icon {
        width: 42px !important;
        height: 42px !important;
        font-size: 1.20rem !important;
        margin: 0 auto 6px !important;
        border-width: 1px !important;
    }

    .np-safeguard-rail article > span {
        width: 20px !important;
        height: 20px !important;
        font-size: 0.62rem !important;
        margin: 0 auto 4px !important;
    }

    .np-safeguard-rail h3 {
        font-size: 0.80rem !important;
        line-height: 1.25 !important;
        margin-bottom: 4px !important;
        color: #FFFFFF !important;
    }

    .np-safeguard-rail p {
        font-size: 0.68rem !important;
        line-height: 1.30 !important;
        color: rgba(255, 255, 255, 0.70) !important;
    }

    .np-safeguard-foot {
        padding: 8px 0 !important;
        font-size: 0.70rem !important;
        gap: 8px !important;
    }

    .np-safeguard-foot i {
        font-size: 1rem !important;
    }
}

@media (max-width: 480px) {
    .np-safeguard-rail {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 6px !important;
    }
    .np-safeguard-rail article {
        padding: 8px 6px !important;
    }
    .np-safeguard-icon {
        width: 36px !important;
        height: 36px !important;
        font-size: 1.05rem !important;
        margin-bottom: 4px !important;
    }
    .np-safeguard-rail h3 {
        font-size: 0.75rem !important;
    }
    .np-safeguard-rail p {
        font-size: 0.65rem !important;
    }
}

/* --------------------------------------------------------------------------
   9. 4 GLOBAL HUBS & REGIONAL DESKS (COMPACT)
   -------------------------------------------------------------------------- */
@media (max-width: 991.98px) {
    .np-team-section {
        padding-top: 1.25rem !important;
        padding-bottom: 1.25rem !important;
    }

    .np-team-desks {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
    }
    .np-desk-card {
        padding: 10px 8px !important;
        border-radius: 8px !important;
    }
    .np-desk-card h4 {
        font-size: 0.88rem !important;
        margin-bottom: 2px !important;
    }
    .np-desk-card p {
        font-size: 0.72rem !important;
        line-height: 1.30 !important;
        margin-bottom: 4px !important;
    }
}

@media (max-width: 575.98px) {
    .np-team-desks {
        grid-template-columns: 1fr !important;
    }
    .np-desk-portrait {
        width: 52px !important;
        height: 52px !important;
        margin: 0 auto 6px !important;
    }
}

/* --------------------------------------------------------------------------
   10. VERIFIED APPROVALS WALL (COMPACT)
   -------------------------------------------------------------------------- */
@media (max-width: 991.98px) {
    .np-approval-section {
        padding-top: 1.25rem !important;
        padding-bottom: 1.25rem !important;
    }

    .np-approval-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 8px !important;
    }

    .np-approval-card {
        padding: 10px 10px !important;
        border-radius: 8px !important;
    }
}

/* --------------------------------------------------------------------------
   11. TESTIMONIALS & FAQ (COMPACT)
   -------------------------------------------------------------------------- */
@media (max-width: 991.98px) {
    .testimonial-card,
    .np-testimonial-card {
        padding: 14px 12px !important;
        border-radius: 10px !important;
    }
    .testimonial-text {
        font-size: 0.80rem !important;
        line-height: 1.45 !important;
        margin-bottom: 8px !important;
    }

    .accordion-button {
        padding: 10px 12px !important;
        font-size: 0.82rem !important;
    }
    .accordion-body {
        padding: 10px 12px !important;
        font-size: 0.78rem !important;
        line-height: 1.40 !important;
    }
}
