.gjr-site-footer {
    position: relative;
    overflow: hidden;
    color: rgba(255,255,255,.78);
    background:
        radial-gradient(circle at 8% 8%, rgba(45,89,117,.32), transparent 34%),
        radial-gradient(circle at 92% 88%, rgba(200,106,34,.18), transparent 31%),
        linear-gradient(135deg, #061a28 0%, #082236 52%, #071a28 100%);
    border-top: 1px solid rgba(255,255,255,.08);
}

.gjr-site-footer::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .28;
    background-image:
        repeating-linear-gradient(90deg, rgba(123,167,190,.055) 0, rgba(123,167,190,.055) 1px, transparent 1px, transparent 112px),
        repeating-linear-gradient(0deg, rgba(123,167,190,.045) 0, rgba(123,167,190,.045) 1px, transparent 1px, transparent 112px);
    -webkit-mask-image: linear-gradient(to bottom, black, transparent 82%);
    mask-image: linear-gradient(to bottom, black, transparent 82%);
}

.gjr-site-footer__glow {
    position: absolute;
    right: -10%;
    bottom: -55%;
    width: min(720px, 70vw);
    aspect-ratio: 1;
    border-radius: 50%;
    background: rgba(200,106,34,.11);
    filter: blur(90px);
    pointer-events: none;
}

.gjr-site-footer__main {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(260px, 1.45fr) repeat(2, minmax(150px, .72fr)) minmax(230px, 1fr);
    gap: clamp(38px, 5vw, 82px);
    padding-top: clamp(68px, 6vw, 98px);
    padding-bottom: clamp(56px, 5vw, 82px);
}

.gjr-site-footer__logo {
    display: inline-flex;
    flex-direction: column;
    color: #fff;
    text-decoration: none;
}

.gjr-site-footer__logo > span {
    font-family: var(--gjr-font-display);
    font-size: clamp(2.45rem, 3.5vw, 3.6rem);
    line-height: .94;
    letter-spacing: .065em;
}

.gjr-site-footer__logo small {
    margin-top: 8px;
    color: #a8c4d3;
    font: 700 .62rem/1.25 var(--gjr-font-body);
    letter-spacing: .115em;
}

.gjr-site-footer__logo i {
    display: inline-block;
    width: 4px;
    height: 4px;
    margin: 0 6px 1px;
    border-radius: 50%;
    background: var(--gjr-orange);
}

.gjr-site-footer__brand > p {
    max-width: 330px;
    margin: 26px 0 25px;
    color: rgba(255,255,255,.76);
    font: 400 1rem/1.7 var(--gjr-font-body);
}

.gjr-site-footer__file {
    color: rgba(154,195,216,.58);
    font: 700 .64rem/1.2 var(--gjr-font-body);
    letter-spacing: .18em;
    text-transform: uppercase;
}

.gjr-site-footer h2 {
    margin: 4px 0 23px;
    color: #fff;
    font: 700 .72rem/1.2 var(--gjr-font-body);
    letter-spacing: .16em;
    text-transform: uppercase;
}

.gjr-site-footer ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.gjr-site-footer li + li { margin-top: 12px; }

.gjr-site-footer__column a,
.gjr-site-footer__briefing-link {
    color: rgba(255,255,255,.68);
    font: 500 .86rem/1.45 var(--gjr-font-body);
    text-decoration: none;
    transition: color var(--gjr-transition), transform var(--gjr-transition);
}

.gjr-site-footer__column a:hover,
.gjr-site-footer__column a:focus-visible,
.gjr-site-footer__briefing-link:hover,
.gjr-site-footer__briefing-link:focus-visible {
    color: #fff;
}

.gjr-site-footer__follow > p {
    max-width: 260px;
    margin: -6px 0 23px;
    color: rgba(255,255,255,.62);
    font: 400 .86rem/1.65 var(--gjr-font-body);
}

.gjr-site-footer__socials {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 25px;
}

.gjr-site-footer__socials a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 43px;
    height: 43px;
    border: 1px solid rgba(255,255,255,.26);
    border-radius: 50%;
    color: #fff;
    background: rgba(255,255,255,.035);
    text-decoration: none;
    transition: border-color var(--gjr-transition), background var(--gjr-transition), transform var(--gjr-transition);
}

.gjr-site-footer__socials a:hover,
.gjr-site-footer__socials a:focus-visible {
    border-color: rgba(236,133,54,.92);
    background: rgba(200,106,34,.17);
    transform: translateY(-3px);
}

.gjr-site-footer__socials span {
    font-family: Georgia, serif;
    font-size: 1.3rem;
    line-height: 1;
}

.gjr-site-footer__socials svg {
    width: 19px;
    height: 19px;
    fill: currentColor;
}

.gjr-site-footer__briefing-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #f0a66f;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.gjr-site-footer__briefing-link:hover,
.gjr-site-footer__briefing-link:focus-visible { transform: translateX(3px); }

.gjr-site-footer__bottom {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: space-between;
    gap: 28px;
    padding-top: 23px;
    padding-bottom: 23px;
    border-top: 1px solid rgba(255,255,255,.1);
}

.gjr-site-footer__bottom p {
    margin: 0;
    color: rgba(255,255,255,.45);
    font: 500 .7rem/1.5 var(--gjr-font-body);
    letter-spacing: .025em;
}

.gjr-site-footer__signature { text-align: right; }

.gjr-site-footer__easter-egg {
    position: relative;
    z-index: 1;
    padding: 10px 24px 12px;
    border-top: 1px solid rgba(255,255,255,.04);
    color: rgba(255,255,255,.18);
    font: 600 .56rem/1.2 var(--gjr-font-body);
    letter-spacing: .22em;
    text-align: center;
    text-transform: uppercase;
}

@media (max-width: 980px) {
    .gjr-site-footer__main {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .gjr-site-footer__main {
        grid-template-columns: 1fr;
        gap: 42px;
        padding-top: 62px;
    }

    .gjr-site-footer__bottom {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .gjr-site-footer__signature { text-align: left; }
}
