:root {
    --green:
        #087456;

    --green-dark:
        #075b45;

    --green-light:
        #eaf7f1;

    --text:
        #17251f;

    --text-soft:
        #68776f;

    --border:
        #dfe8e3;

    --background:
        #f7f9f7;

    --white:
        #ffffff;

    --page-width:
        1120px;
}

*,
*::before,
*::after {
    box-sizing:
        border-box;
}

html {
    min-width:
        320px;

    background:
        var(--background);
}

body {
    min-height:
        100vh;

    margin:
        0;

    display:
        flex;

    flex-direction:
        column;

    background:
        var(--background);

    color:
        var(--text);

    font-family:
        "DM Sans",
        sans-serif;

    -webkit-font-smoothing:
        antialiased;
}

a {
    color:
        inherit;

    text-decoration:
        none;
}

button {
    font:
        inherit;
}

svg {
    display:
        block;
}

.page-container {
    width:
        min(
            calc(100% - 40px),
            var(--page-width)
        );

    margin-inline:
        auto;
}

.site-header {
    border-bottom:
        1px solid
        var(--border);

    background:
        rgba(255, 255, 255, 0.96);
}

.header-inner {
    display:
        flex;

    min-height:
        74px;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        24px;
}

.brand {
    display:
        inline-flex;

    align-items:
        center;

    gap:
        11px;
}

.brand-mark {
    display:
        grid;

    width:
        42px;

    height:
        42px;

    place-items:
        center;

    border-radius:
        13px;

    background:
        var(--green);

    color:
        var(--white);
}

.brand-mark svg {
    width:
        27px;

    height:
        27px;
}

.brand-name {
    font-family:
        "Manrope",
        sans-serif;

    font-size:
        20px;

    font-weight:
        800;

    letter-spacing:
        -0.7px;
}

.brand-name strong {
    color:
        var(--green);
}

.support-link {
    padding:
        9px 15px;

    border:
        1px solid
        var(--border);

    border-radius:
        11px;

    background:
        var(--white);

    color:
        #52635b;

    font-size:
        12px;

    font-weight:
        700;
}

main {
    flex:
        1;
}

.service-section {
    padding:
        62px 0 100px;
}

.greeting {
    display:
        flex;

    width:
        fit-content;

    align-items:
        center;

    gap:
        9px;

    margin:
        0 auto 21px;

    padding:
        8px 12px;

    border:
        1px solid
        #d4e6de;

    border-radius:
        999px;

    background:
        var(--white);

    color:
        #52685f;

    font-size:
        12px;

    font-weight:
        700;
}

.greeting-dot {
    width:
        8px;

    height:
        8px;

    border-radius:
        50%;

    background:
        var(--green);

    box-shadow:
        0 0 0 5px
        rgba(8, 116, 86, 0.09);
}

.page-heading {
    max-width:
        650px;

    margin:
        0 auto 50px;

    text-align:
        center;
}

.page-heading > span {
    color:
        var(--green);

    font-size:
        10px;

    font-weight:
        800;

    letter-spacing:
        1.4px;

    text-transform:
        uppercase;
}

.page-heading h1 {
    margin:
        10px 0 8px;

    font-family:
        "Manrope",
        sans-serif;

    font-size:
        clamp(
            38px,
            5vw,
            58px
        );

    letter-spacing:
        -3px;

    line-height:
        1.1;
}

.page-heading p {
    margin:
        0;

    color:
        var(--text-soft);

    font-size:
        15px;
}

.service-grid {
    display:
        grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap:
        20px;
}

.service-card {
    display:
        flex;

    min-height:
        330px;

    flex-direction:
        column;

    padding:
        27px;

    border:
        1px solid
        var(--border);

    border-radius:
        23px;

    background:
        var(--white);
}

.service-card-active {
    border-color:
        transparent;

    background:
        var(--green);

    color:
        var(--white);

    box-shadow:
        0 24px 55px
        rgba(8, 116, 86, 0.2);

    transition:
        transform 180ms ease,
        background 180ms ease;
}

.service-card-active:hover,
.service-card-active:focus-visible {
    background:
        var(--green-dark);

    transform:
        translateY(-5px);
}

.service-card-disabled {
    color:
        #41534b;
}

.service-card-header {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        18px;
}

.service-icon {
    display:
        grid;

    width:
        53px;

    height:
        53px;

    place-items:
        center;

    border-radius:
        16px;

    background:
        var(--green-light);

    color:
        var(--green);
}

.service-card-active .service-icon {
    background:
        rgba(255, 255, 255, 0.13);

    color:
        var(--white);
}

.service-icon svg {
    width:
        27px;

    height:
        27px;
}

.service-status {
    padding:
        6px 9px;

    border:
        1px solid
        rgba(255, 255, 255, 0.18);

    border-radius:
        999px;

    background:
        rgba(255, 255, 255, 0.09);

    color:
        #d4f7e9;

    font-size:
        8px;

    font-weight:
        800;

    letter-spacing:
        0.6px;

    text-transform:
        uppercase;
}

.service-status-muted {
    border-color:
        var(--border);

    background:
        #f4f7f5;

    color:
        #849089;
}

.service-content {
    margin-top:
        75px;
}

.service-content h2 {
    margin:
        0 0 11px;

    font-family:
        "Manrope",
        sans-serif;

    font-size:
        30px;

    letter-spacing:
        -1.2px;
}

.service-content p {
    margin:
        0;

    color:
        var(--text-soft);

    font-size:
        13px;

    line-height:
        1.7;
}

.service-card-active .service-content p {
    color:
        #c1e2d6;
}

.service-action {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    margin-top:
        auto;

    padding-top:
        32px;

    font-size:
        12px;

    font-weight:
        800;
}

.service-action > span {
    font-size:
        20px;
}

.account-section {
    display:
        grid;

    grid-template-columns:
        minmax(0, 1.25fr)
        minmax(230px, 0.75fr)
        auto;

    align-items:
        center;

    gap:
        35px;

    margin-top:
        28px;

    padding:
        30px;

    border:
        1px solid
        var(--border);

    border-radius:
        22px;

    background:
        var(--white);
}

.account-label {
    display:
        inline-block;

    margin-bottom:
        8px;

    color:
        var(--green);

    font-size:
        9px;

    font-weight:
        800;

    letter-spacing:
        1px;

    text-transform:
        uppercase;
}

.account-copy h2 {
    margin:
        0 0 8px;

    font-family:
        "Manrope",
        sans-serif;

    font-size:
        23px;

    letter-spacing:
        -0.8px;
}

.account-copy p {
    max-width:
        570px;

    margin:
        0;

    color:
        var(--text-soft);

    font-size:
        12px;

    line-height:
        1.7;
}

.account-benefits {
    display:
        grid;

    gap:
        8px;

    color:
        #53665d;

    font-size:
        11px;
}

.account-benefits span {
    display:
        flex;

    align-items:
        center;

    gap:
        8px;
}

.account-benefits strong {
    color:
        var(--green);
}

.account-button {
    min-height:
        45px;

    padding:
        11px 17px;

    border:
        0;

    border-radius:
        12px;

    background:
        #edf2ef;

    color:
        #7b8881;

    font-size:
        10px;

    font-weight:
        800;

    cursor:
        not-allowed;
}

.site-footer {
    border-top:
        1px solid
        var(--border);

    background:
        var(--white);
}

.footer-inner {
    display:
        flex;

    min-height:
        70px;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        20px;

    color:
        #87928c;

    font-size:
        10px;
}

.footer-inner strong {
    color:
        var(--green);
}

@media (max-width: 900px) {
    .service-grid {
        grid-template-columns:
            1fr;
    }

    .service-card {
        min-height:
            260px;
    }

    .service-content {
        margin-top:
            48px;
    }

    .account-section {
        grid-template-columns:
            1fr 1fr;
    }

    .account-button {
        grid-column:
            1 / -1;

        width:
            100%;
    }
}

@media (max-width: 520px) {
    .page-container {
        width:
            min(
                calc(100% - 28px),
                var(--page-width)
            );
    }

    .header-inner {
        min-height:
            68px;
    }

    .brand-name {
        font-size:
            18px;
    }

    .support-link {
        padding:
            8px 12px;
    }

    .service-section {
        padding:
            45px 0 70px;
    }

    .greeting {
        margin:
            0 0 20px;
    }

    .page-heading {
        margin-bottom:
            34px;

        text-align:
            left;
    }

    .page-heading h1 {
        font-size:
            39px;

        letter-spacing:
            -2.3px;
    }

    .service-card {
        min-height:
            245px;

        padding:
            23px;

        border-radius:
            20px;
    }

    .service-content {
        margin-top:
            40px;
    }

    .service-content h2 {
        font-size:
            27px;
    }

    .account-section {
        grid-template-columns:
            1fr;

        gap:
            23px;

        padding:
            24px;
    }

    .account-button {
        grid-column:
            auto;
    }
}
/* Homepage customer navigation */

.header-navigation {
    position:
        relative;

    display:
        flex;

    align-items:
        center;
}

.header-menu {
    display:
        flex;

    align-items:
        center;

    gap:
        8px;
}

.header-menu-link {
    display:
        inline-flex;

    min-height:
        40px;

    align-items:
        center;

    justify-content:
        center;

    padding:
        9px 13px;

    border-radius:
        10px;

    color:
        var(--text);

    font-size:
        14px;

    font-weight:
        700;

    text-decoration:
        none;

    transition:
        background 150ms ease,
        color 150ms ease,
        border-color 150ms ease;
}

.header-track-link:hover,
.header-track-link:focus-visible {
    background:
        var(--green-light);

    color:
        var(--green-dark);
}

.header-menu-button {
    display:
        none;

    width:
        44px;

    height:
        44px;

    place-content:
        center;

    gap:
        4px;

    padding:
        0;

    border:
        1px solid
        var(--border);

    border-radius:
        11px;

    background:
        #ffffff;

    color:
        var(--text);

    cursor:
        pointer;
}

.header-menu-button span {
    display:
        block;

    width:
        20px;

    height:
        2px;

    border-radius:
        999px;

    background:
        currentColor;

    transition:
        opacity 150ms ease,
        transform 150ms ease;
}

.header-menu-button.is-open span:nth-child(1) {
    transform:
        translateY(6px)
        rotate(45deg);
}

.header-menu-button.is-open span:nth-child(2) {
    opacity:
        0;
}

.header-menu-button.is-open span:nth-child(3) {
    transform:
        translateY(-6px)
        rotate(-45deg);
}

@media (max-width: 640px) {
    .header-inner {
        position:
            relative;
    }

    .header-menu-button {
        display:
            grid;
    }

    .header-menu {
        position:
            absolute;

        top:
            calc(100% + 9px);

        right:
            0;

        z-index:
            50;

        width:
            min(
                220px,
                calc(100vw - 28px)
            );

        padding:
            8px;

        align-items:
            stretch;

        flex-direction:
            column;

        gap:
            4px;

        border:
            1px solid
            var(--border);

        border-radius:
            14px;

        background:
            #ffffff;

        box-shadow:
            0 18px 45px
            rgba(7, 46, 35, 0.16);

        opacity:
            0;

        pointer-events:
            none;

        transform:
            translateY(-8px);

        visibility:
            hidden;

        transition:
            opacity 150ms ease,
            transform 150ms ease,
            visibility 150ms ease;
    }

    .header-menu.is-open {
        opacity:
            1;

        pointer-events:
            auto;

        transform:
            translateY(0);

        visibility:
            visible;
    }

    .header-menu-link,
    .header-menu .support-link {
        width:
            100%;

        min-height:
            44px;

        justify-content:
            flex-start;

        padding:
            11px 12px;

        border:
            0;

        border-radius:
            9px;

        background:
            transparent;

        color:
            var(--text);
    }

    .header-menu-link:hover,
    .header-menu-link:focus-visible,
    .header-menu .support-link:hover,
    .header-menu .support-link:focus-visible {
        background:
            var(--green-light);

        color:
            var(--green-dark);
    }
}
/* AKORA WEBSITE BRAND LOGO */

.brand-mark.brand-mark-image {
    display: block;

    width: 42px;
    height: 42px;

    padding: 0;

    overflow: hidden;

    border-radius: 13px;

    background: #000000;

    flex: 0 0 42px;
}

.brand-mark-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center;
}

.footer-brand .brand-mark-image {
    flex-shrink: 0;
}

/* AKORA HOMEPAGE FOOTER BRANDING */

.footer-branding {
    display: flex;
    align-items: center;
    gap: 10px;
}

.footer-brand-mark {
    width: 34px !important;
    height: 34px !important;
    flex-basis: 34px !important;
    border-radius: 10px !important;
}

.footer-brand-copy {
    white-space: nowrap;
}

@media (max-width: 520px) {
    .footer-inner {
        min-height: 86px;
    }

    .footer-branding {
        gap: 9px;
    }

    .footer-brand-copy {
        white-space: normal;
    }
}
/* AKORA FULL WORDMARK */

.brand-wordmark {
    display: inline-flex;

    align-items: center;

    gap: 0;

    overflow: hidden;

    border-radius: 11px;

    background: #050706;

    line-height: 0;
}

.site-wordmark-logo {
    display: block;

    width: auto;

    height: 42px;

    object-fit: contain;
}

@media (max-width: 520px) {
    .site-wordmark-logo {
        height: 40px;
    }
}
/* ==========================================================
   AKORA DYNAMIC BRAND
   ========================================================== */

:root {
    --akora-brand-green: #078667;
    --akora-brand-green-bright: #14c99a;

    --akora-brand-name:
        #101c18;

    --akora-brand-symbol:
        #ffffff;
}

/*
 * Explicit dark theme.
 * Later the theme switcher will set:
 *
 * <html data-theme="dark">
 */
html[data-theme="dark"] {
    --akora-brand-name:
        #ffffff;
}

/*
 * Optional system-theme support until the manual
 * theme switcher is completed.
 */
@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) {
        --akora-brand-name:
            #ffffff;
    }
}

.akora-brand {
    display:
        inline-flex;

    align-items:
        center;

    gap:
        9px;

    flex-shrink:
        0;

    text-decoration:
        none;
}

.akora-brand-symbol {
    display:
        grid;

    width:
        42px;

    height:
        42px;

    flex:
        0 0 42px;

    place-items:
        center;

    border-radius:
        12px;

    background:
        var(--akora-brand-green);

    color:
        var(--akora-brand-symbol);

    overflow:
        hidden;
}

.akora-brand-symbol svg {
    display:
        block;

    width:
        29px;

    height:
        29px;
}

.akora-brand-wordmark {
    display:
        flex;

    flex-direction:
        column;

    justify-content:
        center;

    min-width:
        0;

    line-height:
        1;
}

.akora-brand-wordmark strong {
    display:
        block;

    margin:
        0;

    color:
        var(--akora-brand-name);

    font-family:
        "Manrope",
        "DM Sans",
        sans-serif;

    font-size:
        16px;

    font-weight:
        800;

    letter-spacing:
        -0.65px;

    line-height:
        1;
}

.akora-brand-wordmark small {
    display:
        block;

    margin-top:
        4px;

    color:
        var(--akora-brand-green);

    font-family:
        "DM Sans",
        sans-serif;

    font-size:
        7px;

    font-weight:
        800;

    letter-spacing:
        2.4px;

    line-height:
        1;

    text-transform:
        uppercase;
}

/*
 * Old raster wordmark must not control layout anymore.
 */
.site-wordmark-logo {
    display:
        none;
}

.brand-wordmark {
    background:
        transparent;

    overflow:
        visible;
}

@media (max-width: 520px) {

    .akora-brand {
        gap:
            8px;
    }

    .akora-brand-symbol {
        width:
            40px;

        height:
            40px;

        flex-basis:
            40px;

        border-radius:
            11px;
    }

    .akora-brand-symbol svg {
        width:
            27px;

        height:
            27px;
    }

    .akora-brand-wordmark strong {
        font-size:
            15px;
    }

    .akora-brand-wordmark small {
        margin-top:
            3px;

        font-size:
            6px;

        letter-spacing:
            2.2px;
    }
}

/* STEP 3A CUSTOMER AUTH LINKS */

.account-actions {
    display:
        grid;

    gap:
        9px;

    min-width:
        190px;
}


.account-button.account-button-primary {
    display:
        inline-flex;

    min-height:
        45px;

    align-items:
        center;

    justify-content:
        center;

    padding:
        11px 17px;

    border-radius:
        12px;

    background:
        var(--green);

    color:
        #ffffff;

    font-size:
        10px;

    font-weight:
        800;

    cursor:
        pointer;

    transition:
        background 150ms ease,
        transform 150ms ease;
}


.account-button.account-button-primary:hover,
.account-button.account-button-primary:focus-visible {
    background:
        var(--green-dark);

    transform:
        translateY(-1px);
}


.account-login-link {
    color:
        #607168;

    font-size:
        10px;

    font-weight:
        700;

    text-align:
        center;
}


.account-login-link:hover,
.account-login-link:focus-visible {
    color:
        var(--green);
}


@media (max-width: 900px) {
    .account-actions {
        grid-column:
            1 / -1;

        width:
            100%;
    }
}


@media (max-width: 520px) {
    .account-actions {
        grid-column:
            auto;
    }
}
/* STEP 3C SIGNED-IN ACCOUNT STATE */

.account-identity {
    display:
        grid;

    gap:
        3px;

    padding:
        10px 12px;

    border:
        1px solid
        #d7e8e0;

    border-radius:
        11px;

    background:
        #f5faf8;

    text-align:
        center;
}


.account-identity span {
    color:
        #829087;

    font-size:
        9px;

    font-weight:
        700;
}


.account-identity strong {
    color:
        var(--green-dark);

    font-family:
        "Manrope",
        sans-serif;

    font-size:
        12px;

    font-weight:
        800;

    letter-spacing:
        -0.2px;
}