/* Shared footer: brand at left, grouped links at right, legal details below. */
#GlobalFooter.site-footer {
    width: 100%;
    margin: 0;
    padding: 76px 0 32px;
    background: #080808;
    color: #e8e5df;
    font-family: "YuMincho", "Yu Mincho", "Hiragino Mincho ProN", "MS PMincho", serif;
}
#GlobalFooter .footer-inner { width: min(1320px, 88%); margin: 0 auto; }
#GlobalFooter .footer-main { display: grid; grid-template-columns: 1fr 2.3fr; gap: 64px; align-items: start; }
#GlobalFooter .footer-brand { display: block; width: 180px; }
#GlobalFooter .footer-brand img { display: block; width: 100%; height: auto; }
#GlobalFooter .footer-brand-column { min-width: 0; }
#GlobalFooter .footer-banner { grid-area: banner; display: block; width: 100%; max-width: 320px; margin: 0; justify-self: end; }
#GlobalFooter .footer-banner img { display: block; width: 100%; height: auto; }
#GlobalFooter .footer-navigation { display: grid; grid-template-columns: 1fr 1fr 1.2fr; gap: 40px; }
#GlobalFooter .footer-group h2 {
    margin: 0 0 25px;
    color: #928d85;
    font-family: Arial, "Helvetica Neue", sans-serif;
    font-size: var(--type-small);
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: .04em;
}
#GlobalFooter .footer-group ul { margin: 0; padding: 0; list-style: none; }
#GlobalFooter .footer-group li + li { margin-top: 10px; }
#GlobalFooter a { color: #e8e5df; text-decoration: none; }
#GlobalFooter .footer-group li a { display: inline-block; padding: 7px 0; font-size: var(--type-body); line-height: 1.6; letter-spacing: .05em; }
#GlobalFooter .footer-file-label { margin-left: 6px; color: #928d85; font-family: Arial, sans-serif; font-size: var(--type-meta); letter-spacing: .04em; }

#GlobalFooter .footer-bottom { display: grid; grid-template-columns: calc((100% - 64px) / 3.3) minmax(0, 1fr) minmax(0, 320px); grid-template-areas: "copyright policy banner"; align-items: end; gap: 32px 64px; margin-top: 48px; }
#GlobalFooter .footer-copyright { grid-area: copyright; color: #928d85; font: var(--type-meta)/1.6 Arial, sans-serif; letter-spacing: .01em; }
#GlobalFooter .footer-policy { grid-area: policy; justify-self: start; display: inline-block; padding: 8px 0; font-size: var(--type-small); line-height: 1.6; letter-spacing: .04em; }
#GlobalFooter a:hover { color: #c7aa81; opacity: 1; }
#GlobalFooter a:focus-visible { outline: 1px solid #c7aa81; outline-offset: 5px; }
@media screen and (max-width: 960px) {
    #GlobalFooter .footer-main { grid-template-columns: 1fr; gap: 44px; }
    #GlobalFooter .footer-brand { width: 150px; }
    #GlobalFooter .footer-bottom { grid-template-columns: minmax(0, 1fr) minmax(0, 320px); grid-template-areas: "policy banner" "copyright banner"; gap: 20px 32px; margin-top: 48px; }
}
@media screen and (max-width: 600px) {
    #GlobalFooter.site-footer { padding: 48px 0 24px; }
    #GlobalFooter .footer-inner { width: auto; margin: 0 24px; }
    #GlobalFooter .footer-brand { width: 135px; }
    #GlobalFooter .footer-main { gap: 38px; }
    #GlobalFooter .footer-navigation { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 24px; }
    #GlobalFooter .footer-group:last-child { grid-column: 1 / -1; }
    #GlobalFooter .footer-group h2 { margin-bottom: 14px; font-size: var(--type-small); }
    #GlobalFooter .footer-group li a { font-size: var(--type-body); padding: 9px 0; }
    #GlobalFooter .footer-group li + li { margin-top: 4px; }

    #GlobalFooter .footer-copyright { font-size: var(--type-meta); }
}

@media screen and (max-width: 768px) {
    #GlobalFooter .footer-bottom { grid-template-columns: minmax(0, 1fr); grid-template-areas: "policy" "banner" "copyright"; align-items: start; gap: 24px; margin-top: 40px; }
    #GlobalFooter .footer-banner { justify-self: start; }
}
