.gateway-page {
    background: var(--c-shell-recessed);
}

.gateway-shell {
    position: relative;
    isolation: isolate;
    min-width: 0;
    min-height: 100vh;
    min-height: 100svh;
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    overflow: hidden;
    background: var(--c-shell-recessed);
}

.gateway-shell::before,
.gateway-shell::after {
    content: "";
    position: absolute;
    z-index: -2;
    inset: 0;
    pointer-events: none;
}

.gateway-shell::before {
    background: var(--c-shell-recessed);
}

.gateway-shell::after {
    z-index: -1;
    background:
        linear-gradient(90deg, rgb(8 7 5 / 0.42) 0%, rgb(14 11 8 / 0.14) 52%, rgb(8 7 5 / 0.34) 100%),
        linear-gradient(180deg, rgb(6 5 4 / 0.2), transparent 36%, rgb(6 5 4 / 0.4));
}

.gateway-main {
    position: relative;
    min-width: 0;
    min-height: 0;
}

.gateway-hero {
    position: relative;
    isolation: isolate;
    min-height: clamp(21rem, 42vh, 29rem);
    width: 100%;
    min-width: 0;
    display: grid;
    align-items: center;
}

.gateway-hero-content {
    width: min(100%, 84rem);
    min-width: 0;
    margin-inline: auto;
    padding: clamp(1rem, 2.5vh, 1.75rem) clamp(1rem, 4vw, 3rem);
}

.gateway-hero::after {
    content: "";
    position: absolute;
    z-index: -2;
    inset: 0;
    pointer-events: none;
    background: url("../../images/ui/gateway/gateway-hero-background.webp") center 53% / cover no-repeat;
}

.gateway-hero::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(90deg, rgb(7 6 5 / 0.22), transparent 55%);
}

.gateway-brand {
    grid-area: brand;
    justify-self: start;
}

.gateway-brand img {
    height: auto;
}

.gateway-grid {
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1.65fr) minmax(20rem, 0.95fr);
    grid-template-areas:
        "brand login";
    gap: clamp(2.5rem, 7vw, 7rem);
    align-items: center;
}

.gateway-login {
    position: relative;
    isolation: isolate;
    grid-area: login;
    min-width: 0;
    padding: 0;
}

.gateway-login::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: -1.25rem -2rem;
    pointer-events: none;
    background: radial-gradient(ellipse at center, rgb(7 6 5 / 0.42) 0%, rgb(7 6 5 / 0.2) 42%, transparent 76%);
}

.gateway-login > * {
    position: relative;
}

.gateway-login-heading {
    margin: 0 0 var(--space-3);
    padding: 0 0 var(--space-2);
    border-bottom: var(--border-fine) solid rgb(215 169 60 / 0.56);
    color: var(--c-shell-text);
}

.gateway-login-heading h1 {
    margin-bottom: 0;
    font-size: clamp(1.35rem, 2.3vw, 1.85rem);
}

.gateway-login .auth-form {
    max-width: 28rem;
    padding: 0;
}

.gateway-login .ui-field input {
    padding: var(--space-2) var(--space-3);
}

.gateway-login .ui-btn {
    --ui-btn-min-height: 2.85rem;

    margin-top: var(--space-1);
}

.gateway-auth-feedback {
    max-width: 28rem;
    display: grid;
    gap: var(--space-2);
    margin: 0 0 var(--space-2);
}

.gateway-login-recovery {
    margin: 0;
    text-align: end;
    font-size: var(--text-sm);
}

.gateway-login .form-error-summary {
    margin: 0;
    padding: var(--space-3);
}

.gateway-login .form-error-summary strong {
    color: var(--c-shell-text);
}

.gateway-login .form-error-summary p,
.gateway-login .form-error-summary ul,
.gateway-login .form-error {
    margin-bottom: 0;
}

.gateway-login .form-error-summary ul {
    margin-top: var(--space-2);
    padding-left: 1.2rem;
}

.gateway-login .form-error-summary a {
    color: var(--c-gold-light);
}

.gateway-login .form-error {
    padding: 0;
    color: #e3a29a;
    font-size: var(--text-xs);
}

.gateway-login-switch {
    margin: var(--space-3) 0 0;
    padding-top: var(--space-2);
    border-top: var(--border-fine) solid rgb(215 169 60 / 0.24);
}

.gateway-paths {
    position: relative;
    isolation: isolate;
    padding: clamp(1.25rem, 2.5vw, 2rem) clamp(1rem, 4vw, 3rem) clamp(2.5rem, 4vw, 3.5rem);
    border-top: var(--border-fine) solid rgb(215 169 60 / 0.28);
    background:
        linear-gradient(rgb(0 0 0 / 0.06), rgb(0 0 0 / 0.06)),
        var(--texture-shell);
}

.gateway-paths-intro,
.gateway-path-cards,
.gateway-path-final-cta {
    width: min(100%, 76rem);
    margin-inline: auto;
}

.gateway-paths-intro {
    max-width: 46rem;
    margin-bottom: var(--space-2);
    text-align: center;
}

.gateway-paths-intro::after {
    --gateway-divider-color: color-mix(in srgb, var(--c-gold-muted) 40%, transparent);

    content: "";
    display: block;
    width: min(100%, 32rem);
    height: var(--border-fine);
    margin: var(--space-1) auto 0;
    background-image:
        linear-gradient(90deg, transparent, var(--gateway-divider-color)),
        linear-gradient(90deg, var(--gateway-divider-color), transparent);
    background-position: left center, right center;
    background-size: calc(50% - var(--space-2)) 100%;
    background-repeat: no-repeat;
}

.gateway-paths-intro h2 {
    margin-bottom: var(--space-1);
    color: var(--c-shell-text);
    font-size: clamp(2rem, 4vw, 3.25rem);
}

.gateway-paths-intro > p:last-child {
    margin-bottom: 0;
    color: var(--c-shell-muted);
}

.gateway-path-cards {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: clamp(0.55rem, 0.9vw, 0.8rem);
}

.gateway-path-card {
    position: relative;
    min-width: 0;
    display: grid;
    grid-template-rows: auto 1fr;
    overflow: hidden;
}

.gateway-path-art {
    position: relative;
    height: clamp(8rem, 10vw, 9.5rem);
    margin: 0;
    overflow: visible;
    background: var(--c-shell-recessed);
}

.gateway-path-art::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(180deg, transparent 52%, rgb(10 9 7 / 0.74));
}

.gateway-path-art img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.gateway-path-emblem {
    position: absolute;
    z-index: 1;
    inset-block-end: -1.7rem;
    inset-inline-start: 50%;
    width: 3.4rem;
    height: 3.4rem;
    display: grid;
    place-items: center;
    border: var(--border-strong) solid rgb(215 169 60 / 0.8);
    border-radius: 50%;
    background: linear-gradient(180deg, #173452, #0a2034);
    box-shadow: inset 0 0 0 var(--border-fine) rgb(255 236 169 / 0.2), 0 0.35rem 0.8rem rgb(0 0 0 / 0.48);
    transform: translateX(-50%);
}

.gateway-path-emblem img {
    width: 2rem;
    height: 2rem;
    object-fit: contain;
    filter: drop-shadow(0 0.08rem 0.08rem rgb(0 0 0 / 0.6));
}

.gateway-path-card--trade .gateway-path-art img {
    filter: brightness(0.78) saturate(0.82);
}

.gateway-path-copy {
    padding: 2.25rem clamp(0.8rem, 1.25vw, 1rem) clamp(0.85rem, 1.25vw, 1.05rem);
    color: var(--surface-navy-text);
}

.gateway-path-copy h3 {
    margin-bottom: 0.3rem;
    color: var(--surface-navy-heading);
    font-size: clamp(1.25rem, 1.8vw, 1.65rem);
}

.gateway-path-lead {
    margin-bottom: 0.45rem;
    color: var(--surface-navy-text);
    font-family: var(--font-display);
    font-size: var(--text-md);
}

.gateway-path-copy ul {
    display: grid;
    gap: 0.32rem;
    margin: 0;
    padding: 0;
    color: var(--surface-navy-muted);
    font-size: 0.78rem;
    line-height: 1.35;
    list-style: none;
}

.gateway-path-copy li {
    min-width: 0;
    display: grid;
    grid-template-columns: 1.05rem minmax(0, 1fr);
    gap: 0.42rem;
    align-items: start;
}

.gateway-point-icon {
    width: 1rem;
    height: 1rem;
    margin-top: 0.08rem;
    object-fit: contain;
    opacity: 0.9;
    filter: sepia(0.55) saturate(1.35) brightness(1.18) drop-shadow(0 0.04rem 0.04rem rgb(0 0 0 / 0.64));
}

.gateway-path-final-cta {
    margin-top: clamp(1.75rem, 3vw, 2.75rem);
    text-align: center;
}

.gateway-path-final-cta p {
    margin-bottom: var(--space-3);
    color: var(--c-shell-text);
    font-family: var(--font-display);
    font-size: var(--text-lg);
}

.gateway-path-cta {
    --ui-btn-min-height: 3.15rem;
    --ui-btn-padding-block: 0.72rem;
    --ui-btn-padding-inline: 1.7rem;
}

.gateway-footer {
    --guest-footer-padding: var(--space-3) clamp(1rem, 3vw, 3rem);
}

@media (max-width: 70rem) {
    .gateway-path-cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 48rem) {
    .gateway-hero {
        min-height: auto;
    }

    .gateway-shell::after {
        background:
            linear-gradient(180deg, rgb(7 6 5 / 0.42), rgb(8 7 5 / 0.62) 28%, rgb(8 7 5 / 0.74) 100%),
            linear-gradient(90deg, rgb(8 7 5 / 0.34), rgb(8 7 5 / 0.34));
    }

    .gateway-hero-content {
        padding-block: clamp(1.5rem, 6vh, 3rem);
    }

    .gateway-grid {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "brand"
            "login";
        gap: var(--space-5);
    }

    .gateway-brand {
        --guest-brand-width: min(22.5rem, 88vw);
    }

    .gateway-paths {
        padding-block: var(--space-5) clamp(3rem, 10vw, 5rem);
    }

    .gateway-path-cards {
        grid-template-columns: minmax(0, 1fr);
    }

    .gateway-path-art {
        height: clamp(13rem, 56vw, 20rem);
    }

    .gateway-path-art::after {
        background: linear-gradient(180deg, transparent 48%, rgb(10 9 7 / 0.68));
    }
}
