/* FinanceGPT public mobile production alignment.
   Loaded after page-specific public CSS so these rules are the final mobile guardrail.
   Desktop layout is intentionally unchanged. */

:root {
    --fg-public-mobile-gutter: 24px;
    --fg-public-mobile-section-space: 64px;
    --fg-public-mobile-control-height: 52px;
}

/* Defensive media handling on public surfaces. */
.fg-public-root img,
.fg-public-root video,
.fg-public-root canvas {
    max-width: 100%;
    height: auto;
}

.fg-public-root .row > [class*="col-"] {
    min-width: 0;
}

.fg-public-root .fg-section,
.fg-public-root [id] {
    scroll-margin-top: 92px;
}

@media (max-width: 991.98px) {
    .fg-public-home .fg-seo-hero-content > .row {
        margin-left: 0;
        margin-right: 0;
    }

    .fg-public-home .fg-seo-hero-content > .row > [class*="col-"] {
        flex: 0 0 100%;
        max-width: 100%;
        padding-left: 0;
        padding-right: 0;
    }

    .fg-public-home .fg-authority-strip-heading,
    .fg-public-home .fg-authority-strip-footer,
    .fg-public-home .fg-public-pillar-grid,
    .fg-public-home .fg-how-grid,
    .fg-public-home .fg-actions-grid,
    .fg-public-home .fg-public-link-grid,
    .fg-public-home .fg-public-authority-cards {
        min-width: 0;
    }
}

@media (max-width: 767.98px) {
    :root {
        --fg-public-mobile-gutter: 24px;
        --fg-public-mobile-section-space: 60px;
    }

    html,
    body.fg-public-root {
        max-width: 100%;
        overflow-x: clip;
    }

    body.fg-public-root {
        -webkit-text-size-adjust: 100%;
        text-size-adjust: 100%;
    }

    /* One consistent mobile gutter across header, landing page, public pages and footer. */
    body.fg-public-root .container {
        width: 100%;
        max-width: 100%;
        padding-left: max(var(--fg-public-mobile-gutter), env(safe-area-inset-left)) !important;
        padding-right: max(var(--fg-public-mobile-gutter), env(safe-area-inset-right)) !important;
        margin-left: auto;
        margin-right: auto;
    }

    .fg-public-header {
        padding-top: env(safe-area-inset-top);
    }

    .fg-public-header .navbar {
        min-height: 74px;
        padding-top: 12px;
        padding-bottom: 12px;
    }

    .fg-public-header .fg-public-logo {
        display: block;
        width: auto;
        max-width: min(58vw, 218px);
        height: auto;
    }

    .fg-public-header .navbar-toggler {
        min-width: 48px;
        min-height: 48px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        margin-right: -8px;
        padding: 8px;
    }

    .fg-public-header .navbar-collapse {
        width: 100%;
        padding-top: 12px;
        padding-bottom: 12px;
    }

    .fg-public-header .navbar-nav,
    .fg-public-header .fg-public-auth-actions {
        width: 100%;
    }

    .fg-public-header .fg-public-auth-actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 10px;
        margin-left: 0;
        margin-top: 12px;
    }

    .fg-public-header .fg-header-action {
        width: 100%;
        min-height: 48px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    /* Hero: restore a true content gutter and reduce visual pressure on phones/tablets. */
    .fg-public-home .fg-seo-hero-network {
        min-height: auto;
        padding-top: 68px;
        padding-bottom: 54px;
    }

    .fg-public-home .fg-seo-hero-content {
        position: relative;
        z-index: 3;
    }

    .fg-public-home .fg-eyebrow {
        max-width: 100%;
        font-size: 12px;
        line-height: 1.45;
        letter-spacing: .075em;
        overflow-wrap: normal;
        word-break: normal;
        text-wrap: balance;
    }

    .fg-public-home .fg-seo-hero h1 {
        max-width: 12.5ch;
        margin-top: 0;
        margin-bottom: 24px;
        font-size: clamp(2.5rem, 11.6vw, 3.1rem);
        line-height: .99;
        letter-spacing: -.045em;
        overflow-wrap: normal;
        word-break: normal;
        hyphens: none;
        text-wrap: balance;
    }

    .fg-public-home .fg-seo-lead {
        max-width: 36rem;
        margin-bottom: 0;
        font-size: 1.125rem;
        line-height: 1.55;
        letter-spacing: -.008em;
        overflow-wrap: normal;
        word-break: normal;
        text-wrap: pretty;
    }

    .fg-public-home .fg-hero-actions {
        width: 100%;
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
        margin-top: 30px;
    }

    .fg-public-home .fg-hero-actions .btn {
        width: 100%;
        min-width: 0;
        min-height: var(--fg-public-mobile-control-height);
        margin: 0;
        padding: 13px 16px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        white-space: normal;
        line-height: 1.25;
        text-align: center;
    }

    .fg-public-home .fg-hero-actions .btn-link {
        min-height: 44px;
        padding-top: 10px;
        padding-bottom: 8px;
    }

    .fg-public-home .fg-proof-row {
        width: 100%;
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
        align-items: stretch;
        margin-top: 30px !important;
    }

    .fg-public-home .fg-nvidia-badge,
    .fg-public-home .fg-nvidia-evidence {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    .fg-public-home .fg-nvidia-badge {
        min-height: 82px;
        padding: 16px 20px;
        border-radius: 14px;
        display: flex;
        align-items: center;
    }

    .fg-public-home .fg-nvidia-badge > span:last-child {
        min-width: 0;
    }

    .fg-public-home .fg-nvidia-badge strong,
    .fg-public-home .fg-nvidia-badge small {
        display: block;
        max-width: 100%;
        white-space: normal;
    }

    .fg-public-home .fg-proof-note {
        width: 100%;
        min-width: 0;
        display: grid;
        gap: 7px;
        text-align: left;
    }

    .fg-public-home .fg-proof-note strong {
        font-size: 1.15rem;
        line-height: 1.3;
    }

    .fg-public-home .fg-proof-note span {
        line-height: 1.48;
    }

    /* Keep the neural-capital background present without forcing a 760px canvas on a phone. */
    .fg-public-home .fg-hero-network-background {
        inset: 29% -48% -7% -36%;
        opacity: .23;
        align-items: flex-end;
    }

    .fg-public-home .fg-hero-network-background .fg-capital-network-background-mode {
        width: 145vw;
        min-width: 540px;
        max-width: none;
    }

    /* Public section rhythm and typography. */
    .fg-public-home .fg-section {
        padding-top: var(--fg-public-mobile-section-space);
        padding-bottom: var(--fg-public-mobile-section-space);
    }

    .fg-public-home .fg-section-heading,
    .fg-public-home .fg-authority-strip-heading {
        max-width: 100%;
        margin-bottom: 30px;
    }

    .fg-public-home .fg-section-heading h2,
    .fg-public-home .fg-display-section,
    .fg-public-home .fg-home-cta h2,
    .fg-public-home .fg-authority-strip-heading h2 {
        max-width: 100%;
        font-size: clamp(2rem, 8.6vw, 2.65rem);
        line-height: 1.08;
        letter-spacing: -.035em;
        overflow-wrap: normal;
        word-break: normal;
        hyphens: none;
        text-wrap: balance;
    }

    .fg-public-home .fg-lead,
    .fg-public-home .fg-section-heading p,
    .fg-public-home .fg-authority-strip-heading p {
        max-width: 100%;
        line-height: 1.55;
        text-wrap: pretty;
    }

    .fg-public-home .fg-public-pillar-grid,
    .fg-public-home .fg-how-grid,
    .fg-public-home .fg-actions-grid,
    .fg-public-home .fg-public-link-grid,
    .fg-public-home .fg-public-authority-cards,
    .fg-public-home .fg-authority-strip-footer {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
        width: 100%;
    }

    .fg-public-home .fg-public-pillar-grid article {
        min-width: 0;
        padding-top: 28px;
        padding-bottom: 28px;
    }

    .fg-public-home .fg-public-pillar-grid article + article {
        border-top: 1px solid rgba(143, 163, 196, .22);
    }

    .fg-public-home .fg-inline-actions {
        width: 100%;
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }

    .fg-public-home .fg-inline-actions .btn,
    .fg-public-home .fg-home-cta .btn {
        width: 100%;
        min-height: 48px;
        margin: 0;
        white-space: normal;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        text-align: center;
    }

    .fg-public-home .fg-keyword-tool-grid,
    .fg-public-home .fg-insight-stack {
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
    }

    .fg-public-home .fg-actions-control-line,
    .fg-public-home .fg-chip-row {
        max-width: 100%;
        gap: 8px;
    }

    .fg-public-home .fg-authority-strip-heading {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }

    .fg-public-home .fg-ecosystem-grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
        width: 100%;
    }

    .fg-public-home .fg-ecosystem-logo,
    .fg-public-home .fg-panel-flat,
    .fg-public-home .fg-actions-card,
    .fg-public-home .fg-dark-evidence-card,
    .fg-public-home .fg-faq-grid details,
    .fg-public-home .fg-public-link-grid > *,
    .fg-public-home .fg-public-authority-cards > * {
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    /* Generic public-page protection for long content and cards. */
    .fg-public-root h1,
    .fg-public-root h2,
    .fg-public-root h3 {
        max-width: 100%;
        word-break: normal;
        hyphens: none;
    }

    .fg-public-root pre,
    .fg-public-root .table-responsive {
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .fg-public-root .card,
    .fg-public-root .dropdown-menu {
        max-width: 100%;
    }

    .fg-public-footer {
        padding-bottom: max(24px, env(safe-area-inset-bottom));
    }

    .fg-public-footer .fg-footer-legal {
        gap: 12px;
        line-height: 1.5;
    }
}

@media (max-width: 575.98px) {
    :root {
        --fg-public-mobile-gutter: 20px;
        --fg-public-mobile-section-space: 56px;
    }

    .fg-public-home .fg-seo-hero-network {
        padding-top: 58px;
        padding-bottom: 48px;
    }

    .fg-public-home .fg-seo-hero h1 {
        font-size: clamp(2.5rem, 12vw, 3.05rem);
    }

    .fg-public-home .fg-seo-lead {
        font-size: 1.08rem;
        line-height: 1.54;
    }

    .fg-public-home .fg-hero-network-background {
        inset: 31% -52% -5% -40%;
        opacity: .21;
    }

    .fg-public-home .fg-hero-network-background .fg-capital-network-background-mode {
        width: 152vw;
        min-width: 520px;
    }

    .fg-public-home .fg-ecosystem-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fg-public-home .fg-proof-row {
        gap: 22px;
    }

    .fg-public-footer .row > .col-6 {
        min-width: 0;
    }
}

@media (max-width: 374.98px) {
    :root {
        --fg-public-mobile-gutter: 16px;
        --fg-public-mobile-section-space: 50px;
    }

    .fg-public-header .fg-public-logo {
        max-width: min(62vw, 194px);
    }

    .fg-public-home .fg-seo-hero-network {
        padding-top: 50px;
    }

    .fg-public-home .fg-seo-hero h1 {
        max-width: 100%;
        font-size: clamp(2.3rem, 12vw, 2.7rem);
    }

    .fg-public-home .fg-seo-lead {
        font-size: 1.02rem;
    }

    .fg-public-home .fg-nvidia-badge {
        padding-left: 16px;
        padding-right: 16px;
    }

    .fg-public-home .fg-ecosystem-grid,
    .fg-public-footer .row > .col-6 {
        grid-template-columns: minmax(0, 1fr);
    }

    .fg-public-footer .row > .col-6 {
        flex: 0 0 100%;
        max-width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fg-public-root *,
    .fg-public-root *::before,
    .fg-public-root *::after {
        scroll-behavior: auto !important;
    }
}
