.portal-mobile-nav {
    display: none;
}

@media (max-width: 680px) {
    body.portal-mobile-nav-open {
        overflow: hidden;
    }

    .portal-trust-strip {
        overflow-x: clip;
    }

    body > .portal-visual-hero,
    main:not(.shell) > .portal-hero-media {
        width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    main.shell > .portal-hero-media {
        width: calc(100% + 36px) !important;
        margin-left: -18px !important;
        margin-right: -18px !important;
    }

    .portal-mainbar {
        position: relative;
    }

    .portal-mobile-nav {
        display: block;
        order: -1;
    }

    .portal-mobile-nav summary {
        width: 42px;
        height: 42px;
        display: grid;
        place-content: center;
        gap: 5px;
        border: 1px solid #dfe5e2;
        border-radius: 10px;
        background: #fff;
        cursor: pointer;
        list-style: none;
    }

    .portal-mobile-nav summary::-webkit-details-marker {
        display: none;
    }

    .portal-mobile-nav summary:focus-visible {
        outline: 3px solid rgba(8, 115, 91, .3);
        outline-offset: 3px;
    }

    .portal-mobile-nav summary i {
        display: block;
        width: 18px;
        height: 2px;
        border-radius: 2px;
        background: var(--ph-ink, #10231e);
        transition: transform .2s, opacity .2s;
    }

    .portal-mobile-nav[open] summary i:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }

    .portal-mobile-nav[open] summary i:nth-child(2) {
        opacity: 0;
    }

    .portal-mobile-nav[open] summary i:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }

    .portal-mobile-nav nav {
        position: absolute;
        z-index: 50;
        top: 59px;
        left: 0;
        right: 0;
        max-height: min(68vh, 620px);
        overflow-y: auto;
        padding: 18px;
        border: 1px solid #dfe8e4;
        border-radius: 16px;
        background: #fff;
        box-shadow: 0 24px 65px rgba(9, 44, 35, .2);
    }

    .portal-mobile-nav nav strong {
        display: block;
        margin-bottom: 9px;
        color: #668078;
        font-size: 12px;
        text-transform: uppercase;
        letter-spacing: .09em;
    }

    .portal-mobile-nav nav a {
        display: flex;
        justify-content: space-between;
        gap: 16px;
        padding: 12px 2px;
        border-top: 1px solid #edf1ef;
        color: var(--ph-ink, #10231e) !important;
        text-decoration: none !important;
        font-weight: 750;
    }

    .portal-mobile-nav nav .portal-mobile-nav__cta {
        margin-top: 10px;
        padding: 13px 15px;
        border: 0;
        border-radius: 11px;
        background: #f76500;
        color: #fff !important;
    }
}
