.footer, .footer-container-background {
    background-color: #092540
}

.footerOffice, .footerSocial, .footerSocial-link {
    color: rgba(255, 255, 255, .6)
}

.footer {
    position: relative;
    padding-top: 102px;
    font-size: .875rem;
    font-weight: 400;
    font-family: Roboto, "Noto Sans JP", sans-serif
}

.footerExtension-btn--desktop, .footerInfo-office .footerOffice-openMapLink, .footerInfo-office .footerOffice-title, .view-landing .footer {
    display: none
}

.footer-inner {
    display: flex;
    flex-direction: column
}

.footer-container, .footerInfo {
    box-sizing: border-box;
    padding: 0 8px
}

.footer-container {
    width: 100%;
    margin: 0 auto
}

.footerLogo {
    position: absolute;
    top: 40px;
    left: 8px
}

.footerLogo-link {
    display: inline-block;
    line-height: 0
}

.footerLogo-image {
    width: 144px;
    height: 24px;
    fill: #fff
}

.footerInfo {
    order: 2
}

@media (min-width: 321px) {
    .footer-container, .footerInfo {
        padding: 0 16px
    }

    .footerLogo {
        left: 16px
    }
}

.footerInfo-office {
    margin-top: 16px
}

.footerSocial {
    display: flex;
    align-items: center;
    margin: 28px 0 0
}

.footerSocial-text {
    line-height: 1.43;
    padding-bottom: 4px;
    padding-right: 6px
}

.footerSocial-list {
    display: flex;
    align-items: center;
    list-style: none;
    font-size: 0;
    margin: 0;
    padding: 0
}

.footerSocial-item {
    margin-right: 10px
}

.footerSocial-link {
    overflow: hidden;
    box-sizing: content-box;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    background-size: 0
}

.footerSocial-icon {
    fill: currentColor;
    transition: fill .2s
}

.footerSocial-link:hover .footerSocial-icon {
    fill: #fff
}

.footerOffice {
    margin: 0;
    padding: 0;
    list-style: none;
    text-align: left
}

.footerInfo-office .footerOffice {
    width: 100%;
    margin-top: 10px
}

.footerOffice-line {
    font-size: 0
}

.footerOffice-line--title {
    position: relative;
    padding-right: 25px;
    cursor: pointer;
    transition: color .2s ease-in-out
}

.footerAllOffices-title::after, .footerNav-itemTitle::after, .footerOffice-line--title::after {
    position: absolute;
    top: 50%;
    right: 0;
    box-sizing: content-box;
    width: 4px;
    height: 4px;
    margin-top: -3px;
    content: "";
    border-right: 1px solid;
    border-bottom: 1px solid;
    transition: transform 0.3s ease;
    transform: rotate(45deg);
}

.footerAllOffices-menuItem.is-open .footerAllOffices-title::after, .footerNav-item.is-open .footerNav-itemTitle::after, .footerOffice.is-open .footerOffice-line--title::after {
    margin-top: -3px;
    -webkit-transform: rotate(225deg);
    transform: rotate(225deg)
}

.footer-container-common {
    max-width: 566px;
    margin: 0 auto
}

@media (min-width: 888px) {
    .footer-container-common {
        max-width: 100%
    }

    .footer {
        padding-top: 50px
    }

    .footer-inner {
        flex-flow: row wrap;
        justify-content: center
    }

    .footer-wrap {
        display: flex;
        flex-flow: row wrap
    }

    .footer-container {
        max-width: 1200px;
        padding: 0 24px
    }

    .footerLogo {
        position: static
    }

    .footerInfo {
        order: 1;
        flex-grow: 1;
        padding: 0 0 0 24px;
        text-align: left
    }

    .footerSocial {
        display: block;
        margin-top: 20px
    }

    .footerInfo-office .footerOffice-line, .footerOffice {
        margin-bottom: 15px
    }

    .footerOffice {
        box-sizing: border-box;
        width: 280px;
        padding-right: 24px;
        margin-top: 15px
    }

    .footerOffice-line {
        margin-bottom: 10px
    }

    .footerOffice-line:last-of-type {
        margin-bottom: 0
    }

    .footerOffice-line--title::after {
        content: none
    }

    .footerOffice-line--title {
        padding-right: 0;
        cursor: auto
    }
}

.footerAdditional-link:hover, .footerAllOffices-toggler:hover, .footerNav-link:focus, .footerNav-link:hover, .footerOffice-openMapLink:hover, .footerOffice.is-open .footerOffice-line--title {
    color: #fff
}

.footerOffice-line--dropdown {
    display: none;
    box-sizing: content-box;
    margin: 0 0 8px;
    padding: 8px 0;
    border-top: 1px solid rgba(255, 255, 255, .1);
    border-bottom: 1px solid rgba(255, 255, 255, .1)
}

.footerInfo-office .footerOffice-line--dropdown {
    display: block;
    padding: 0;
    margin: 0;
    line-height: 1.78;
    border: none;
    color: rgba(255, 255, 255, .6);
    box-shadow: none
}

.footerOffice-title {
    margin: 0;
    font-size: .875rem;
    font-weight: 400;
    line-height: 2.3
}

.footerOffice--no-phone, .footerOffice-contact--no-phone {
    margin-top: -3px
}

.footerOffice-contact--phone, .footerOffice-contactLink {
    color: currentColor;
    text-decoration: none
}

.footerOffice-contact {
    position: relative;
    display: inline-block;
    padding-left: 28px;
    font-size: .875rem;
    line-height: 1.78
}

.footerOffice-contact--phone {
    margin-bottom: 7px
}

.footerOffice-contact--address {
    max-width: 200px;
    display: block;
    margin: 0
}

.footerOffice-icon {
    position: absolute;
    top: 4px;
    left: 0;
    fill: currentColor
}

.footerOffice-openMapLink .footerOffice-icon {
    top: 2px
}

.footerOffice-openMapLink {
    margin-top: 5px;
    font-size: .85rem;
    color: rgba(255, 255, 255, .6);
    transition: color .2s ease-in-out
}

.footerAllOffices {
    flex-grow: 1;
    width: 100%
}

.footerAllOffices-toggler {
    display: none;
    box-sizing: border-box;
    width: 100%;
    padding: 16px 0;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
    color: rgba(255, 255, 255, .6);
    border: none;
    border-top: 1px solid rgba(255, 255, 255, .18);
    background: 0 0;
    transition: color, border-bottom-color .2s ease-in-out
}

.footerAllOffices-toggler:focus, .footerNav-link:focus {
    outline: 0
}

.footerAllOffices-title, .footerNav-itemTitle {
    line-height: 3.43;
    font-weight: 700;
    cursor: pointer;
    transition: border .2s ease-in-out
}

.footerAllOffices-title {
    position: relative;
    display: block;
    color: #fff;
    border-bottom: 1px solid rgba(255, 255, 255, .1)
}

.is-open .footerAllOffices-title {
    border-bottom: 0
}

.footerAllOffices-dropdown {
    display: none;
    box-sizing: border-box;
    padding: 8px;
    margin: 0 -8px;
    background-color: #0a2540
}

.footerNav {
    position: relative;
    box-sizing: border-box;
    flex-grow: 1;
    padding: 0 8px;
    margin: 0;
    list-style: none;
    color: rgba(255, 255, 255, .6)
}

.footerNav-item, .footerNav-itemTitle {
    display: block;
    position: relative
}

.footerNav-itemTitle {
    text-transform: capitalize;
    color: #fff;

    @media (max-width: 887px) {
        position: relative;
        box-sizing: border-box;
        display: block;
        width: 100%;
        padding: 4px 0;
        margin-top: 16px;
        font: 500 1rem / 1.5 "DM Sans", "Noto Sans JP", sans-serif;
        color: #fff;
        text-align: left;
        cursor: pointer;
        background: none;
        border: 0;
    }
}

.is-open .footerNav-itemTitle {
    border-bottom: 1px solid #092540
}

.footerNav-dropdown {
    display: none;
    box-sizing: content-box;
    padding: 8px;
    margin: 0 -8px;
    background-color: #092540
}

@media (min-width: 321px) {
    .footerAllOffices-dropdown, .footerNav-dropdown {
        margin-right: -16px;
        margin-left: -16px;
        padding-right: 16px;
        padding-left: 16px
    }

    .footerNav {
        padding: 0 16px
    }
}

.footerNav-dropdownSubtitle {
    font-size: .75rem;
    font-weight: 500;
    line-height: 2.7;
    text-transform: uppercase;
    color: #fff
}

.footerNav-dropdownList, .footerNav-dropdownSubList {
    margin: 0;
    padding: 0;
    list-style: none
}

.footerNav-dropdownList:not(:first-of-type), .footerNav-dropdownSubList:not(:first-of-type) {
    position: relative;
    padding-top: 25px
}

.footerNav-dropdownList:not(:first-of-type)::before, .footerNav-dropdownSubList:not(:first-of-type)::before {
    position: absolute;
    top: 12px;
    left: 0;
    content: "";
    width: 17px;
    height: 1px;
    background: rgba(255, 255, 255, .2)
}

.footerNav-dropdownList--submenu {
    display: flex
}

@media (min-width: 888px) {
    .footerOffice-line--dropdown {
        display: block;
        margin: 0;
        box-shadow: none;
        border-bottom: none
    }

    .footerOffice-title {
        line-height: 1;
        color: #fff
    }

    .footerAllOffices {
        order: 3;
        margin-top: 20px;
        background-color: transparent;
        transition: background-color .2s ease-in-out
    }

    .footerAllOffices.is-open {
        background-color: #092540
    }

    .footerAllOffices-toggler {
        display: block;
        padding: 16px 0
    }

    .footerAllOffices-toggler::after {
        position: absolute;
        top: 50%;
        right: 0;
        box-sizing: content-box;
        width: 4px;
        height: 4px;
        margin-top: -3px;
        content: "";
        border-right: 1px solid;
        border-bottom: 1px solid;
        transition: transform 0.3s ease;
        transform: rotate(45deg);
    }

    .footerAllOffices-title::after, .footerNav-itemTitle::after {
        content: none
    }

    .footerAllOffices.is-open .footerAllOffices-toggler::after {
        margin-top: -3px;
        -webkit-transform: rotate(225deg);
        transform: rotate(225deg);
        top: 0
    }

    .is-open .footerAllOffices-toggler {
        color: #fff;
        border-bottom-color: transparent
    }

    .footerAllOffices-container {
        overflow: hidden;
        display: block;
        order: 3;
        width: 100%;
        margin: 0;
        transition-property: max-height, padding;
        transition-duration: .3s;
        transition-timing-function: cubic-bezier(0.5, 0.25, 0.28, 1.38)
    }

    .footerAllOffices-container.is-closed {
        max-height: 0
    }

    .footerAllOffices-title {
        display: none
    }

    .footerAllOffices-dropdown {
        display: block;
        margin: 0 -24px 0 0;
        padding: 0;
        background: 0 0
    }

    .footerNav {
        width: 65%;
        display: flex;
        order: 2;
        padding: 0 24px 0 0;
        margin-left: 16px
    }

    .footerNav-item {
        width: 25%
    }

    .footerNav-item--3-column {
        width: 34%
    }

    .footerNav-item--wide {
        width: 50%
    }

    .footerNav-itemTitle {
        margin-bottom: 10px;
        padding: 0 0 5px;
        border-bottom: 1px solid rgba(255, 255, 255, .1);
        font-size: .9375rem;
        line-height: 1.67;
        cursor: auto
    }

    .footerNav-dropdown {
        display: block;
        padding: 0;
        margin: 0;
        background-color: transparent
    }

    .footerNav-dropdownSubtitle {
        line-height: 2.1
    }

    .footerNav-dropdownLine {
        padding-right: 16px
    }
}

.footerInfo {
    max-width: 392px
}

@media (min-width: 1201px) {
    .footer-wrap--center {
        justify-content: center
    }

    .footerInfo {
        width: 32.66%
    }

    .footerInfo-office {
        margin-top: 20px
    }

    .footerSocial {
        margin-top: 16px
    }

    .footerOffice {
        width: 25%
    }

    .footerInfo-office .footerOffice {
        margin-top: 14px
    }

    .footerNav {
        width: 64%;
        max-width: 784px;
        margin-left: 24px
    }

    .footerNav-dropdownLine {
        padding-right: 24px
    }
}

.footerNav-link {
    display: block;
    width: 100%;
    padding: 0;
    color: currentColor;
    font: inherit;
    line-height: 2.3;
    text-align: left;
    text-decoration: none;
    border: none;
    background: 0 0;
    cursor: pointer
}

.footerNav-dropdownSubItem {
    width: 50%
}

.footerExtension-btn {
    position: relative;
    overflow: hidden;
    display: inline-flex;
    margin: 16px 0 24px;
    padding: 10px 15px;
    border: 1px solid rgba(255, 255, 255, .3);
    border-radius: 20px;
    font-size: .8125rem;
    font-weight: 500;
    line-height: 1.45;
    text-transform: uppercase;
    text-decoration: none;
    color: rgba(255, 255, 255, .6);
    transform: translateZ(0);
    transition: background-color ease-in-out, border-color .2s ease-in-out
}

.footerExtension-btnIcon {
    display: inline-block;
    align-self: center;
    width: 12px;
    height: 12px;
    margin-top: -2px;
    margin-right: 7px;
    fill: currentColor;
    transition: fill 0s ease-in-out .2s
}

.footerAdditional {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding: 20px 0 24px;
    border-top: 1px solid rgba(255, 255, 255, .1);
    color: rgba(255, 255, 255, .6)
}

.footerExtension {
    padding-top: 20px;
    padding-bottom: 36px
}

@media (min-width: 888px) {
    .footerExtension {
        padding-top: 0;
        padding-bottom: 0
    }

    .footerNav-link {
        display: inline;
        line-height: 1.8
    }

    .footerExtension-btn:active, .footerExtension-btn:focus, .footerExtension-btn:hover {
        color: #fff;
        border-color: #4f8df9;
        background-color: #4f8df9
    }

    .footerExtension-btn {
        margin-top: 4px;
        font-size: .875rem;
        white-space: nowrap
    }

    .footerExtension-btn::before {
        position: absolute;
        z-index: -1;
        width: 0;
        height: 100%;
        top: 0;
        left: 0;
        background-color: #4f8df9;
        border-radius: 18px;
        transition: .2s ease-in-out;
        content: ""
    }

    .footerExtension-btn:focus, .footerExtension-btn:hover {
        transition: color 0s ease-in-out .2s, background-color 0s ease-in-out .2s, border-color .2s ease-in-out
    }

    .footerExtension-btn:focus::before, .footerExtension-btn:hover::before {
        width: 100%
    }

    .footerExtension-btn:active::before {
        background-color: #4f8df9
    }

    .footerExtension-btn--desktop {
        display: inline-block
    }

    .footerExtension-btn--mobile {
        display: none
    }

    .footerAdditional {
        padding: 16px 0
    }
}

.footerAdditional-list {
    flex-grow: 1;
    list-style: none;
    padding: 0;
    margin: 0
}

.footerAdditional-copyright, .footerAdditional-link {
    margin-top: 4px;
    line-height: 1.78
}

.footerAdditional-item {
    display: inline-block;
    margin-right: 16px
}

.footerAdditional-link {
    display: block;
    cursor: pointer;
    color: currentColor;
    text-decoration: none;
    transition: color .2s
}

@media (max-width: 893px) {
    .footerInfo {
        padding: 0
    }
}

@media (max-width: 887px) {
    .footerInfo {
        padding-left: 16px
    }
}