:root {
    --public-ink: #111815;
    --public-green: #176b3a;
    --public-green-dark: #0f4f2b;
    --public-paper: #f7f9f8;
    --public-line: #d4e4db;
}

.public-skip-link {
    position: fixed;
    top: .5rem;
    left: .5rem;
    z-index: 1100;
    padding: .65rem .9rem;
    color: #fff;
    background: var(--public-green-dark);
    border: 2px solid #fff;
    border-radius: .35rem;
    transform: translateY(-150%);
    transition: transform .15s ease-in-out;
}

.public-skip-link:focus {
    color: #fff;
    transform: translateY(0);
}

.public-site-header {
    position: relative;
    z-index: 1030;
    color: #fff;
    background: var(--public-ink);
    border-bottom: 4px solid var(--public-green);
}

.public-header-inner {
    display: flex;
    min-height: 72px;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    padding-top: .55rem;
    padding-bottom: .55rem;
}

.public-brand {
    display: inline-flex;
    min-width: 0;
    gap: .65rem;
    align-items: center;
    color: #fff;
    text-decoration: none;
}

.public-brand:hover,
.public-brand:focus {
    color: #fff;
}

.public-brand-mark {
    display: inline-flex;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: var(--public-green);
    font-weight: 800;
}

.public-brand-copy {
    display: block;
    min-width: 0;
}

.public-brand-name,
.public-brand-tagline {
    display: block;
}

.public-brand-name {
    font-weight: 700;
    line-height: 1.2;
}

.public-brand-tagline {
    margin-top: .15rem;
    color: rgba(255, 255, 255, .7);
    font-size: .8rem;
    line-height: 1.15;
}

.public-nav-actions {
    display: flex;
    gap: .45rem;
    align-items: center;
}

.public-action-link,
.public-mobile-menu-link {
    display: inline-flex;
    min-width: 44px;
    min-height: 44px;
    padding: .55rem .75rem;
    align-items: center;
    justify-content: center;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: .375rem;
    text-decoration: none;
    line-height: 1.1;
}

a[data-event],
button[data-event] {
    min-height: 44px;
}

.public-action-link:hover,
.public-action-link:focus,
.public-mobile-menu-link:hover,
.public-mobile-menu-link:focus,
.public-action-link.is-current,
.public-mobile-menu-link.is-current {
    color: var(--public-ink);
    background: #fff;
}

.public-action-primary,
.public-action-primary:hover,
.public-action-primary:focus {
    color: #fff;
    background: var(--public-green);
    border-color: var(--public-green);
}

.public-action-primary:hover,
.public-action-primary:focus {
    background: var(--public-green-dark);
    border-color: var(--public-green-dark);
}

.public-mobile-menu,
.public-mobile-actions {
    display: none;
}

.public-site-footer {
    color: #fff;
    background: var(--public-ink);
    border-top: 4px solid var(--public-green);
}

.public-footer-inner {
    display: flex;
    gap: 1.5rem;
    align-items: center;
    justify-content: space-between;
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
}

.public-footer-brand {
    font-weight: 700;
}

.public-footer-note {
    max-width: 38rem;
    margin-top: .2rem;
    color: rgba(255, 255, 255, .72);
    font-size: .9rem;
}

.public-footer-links {
    display: flex;
    gap: .35rem 1rem;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.public-footer-links a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    color: #fff;
}

.public-footer-links a:hover,
.public-footer-links a:focus {
    color: #b8edca;
}

@media (max-width: 767.98px) {
    body.has-public-mobile-actions {
        padding-bottom: calc(68px + env(safe-area-inset-bottom));
    }

    .public-header-inner {
        min-height: 64px;
        gap: .65rem;
        padding-top: .4rem;
        padding-bottom: .4rem;
    }

    .public-brand-mark {
        width: 40px;
        height: 40px;
        flex-basis: 40px;
    }

    .public-brand-name {
        max-width: min(58vw, 18rem);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .public-nav-actions-desktop {
        display: none;
    }

    .public-mobile-menu {
        position: relative;
        display: block;
        flex: 0 0 auto;
    }

    .public-menu-toggle {
        display: inline-flex;
        min-width: 44px;
        min-height: 44px;
        padding: .55rem .7rem;
        align-items: center;
        justify-content: center;
        color: #fff;
        border: 1px solid rgba(255, 255, 255, .75);
        border-radius: .375rem;
        cursor: pointer;
        font-weight: 600;
        list-style: none;
    }

    .public-menu-toggle::-webkit-details-marker {
        display: none;
    }

    .public-menu-toggle::after {
        content: "\25be";
        margin-left: .4rem;
        font-size: .8rem;
    }

    .public-mobile-menu[open] .public-menu-toggle::after {
        transform: rotate(180deg);
    }

    .public-mobile-menu-panel {
        position: absolute;
        top: calc(100% + .55rem);
        right: 0;
        display: grid;
        width: min(16rem, calc(100vw - 1.5rem));
        gap: .45rem;
        padding: .65rem;
        background: var(--public-ink);
        border: 1px solid rgba(255, 255, 255, .28);
        border-radius: .5rem;
        box-shadow: 0 .75rem 1.5rem rgba(0, 0, 0, .28);
    }

    .public-mobile-menu-link {
        justify-content: flex-start;
    }

    .public-mobile-actions {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 1040;
        display: grid;
        grid-auto-flow: column;
        grid-auto-columns: 1fr;
        min-height: calc(60px + env(safe-area-inset-bottom));
        padding: .45rem .55rem calc(.45rem + env(safe-area-inset-bottom));
        gap: .45rem;
        background: rgba(17, 24, 21, .98);
        border-top: 3px solid var(--public-green);
        box-shadow: 0 -.35rem 1rem rgba(0, 0, 0, .18);
    }

    .public-mobile-action {
        display: inline-flex;
        min-width: 44px;
        min-height: 44px;
        padding: .45rem .6rem;
        align-items: center;
        justify-content: center;
        color: #fff;
        border: 1px solid rgba(255, 255, 255, .7);
        border-radius: .375rem;
        text-decoration: none;
        font-weight: 700;
    }

    .public-mobile-action:hover,
    .public-mobile-action:focus {
        color: var(--public-ink);
        background: #fff;
    }

    .public-mobile-action-primary,
    .public-mobile-action-primary:hover,
    .public-mobile-action-primary:focus {
        color: #fff;
        background: var(--public-green);
        border-color: var(--public-green);
    }

    .public-mobile-action-primary:hover,
    .public-mobile-action-primary:focus {
        background: var(--public-green-dark);
        border-color: var(--public-green-dark);
    }

    .public-footer-inner {
        align-items: flex-start;
        flex-direction: column;
    }

    .public-footer-links {
        justify-content: flex-start;
    }
}

@media (max-width: 420px) {
    .public-brand-tagline {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .public-skip-link {
        transition: none;
    }
}
