/* animation keyframe declarations */
@keyframes fade-in {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

/* media-specific adjustments */
@media (min-width: 1600px) {
    #header-site-title {
        font-size: 1.25em;
        font-weight: 600;
        padding: .25em .5em .25em .5em;
        width: 6.5em
    }
    #header-site-subtitle {
        font-size: .5em;
        font-weight: 400;
    }
    .link-box {
        width: 8%;
        padding: 0 0 0 .5em;
        font-size: .8em;
    }
    .link-box svg,
    .link-box path {
        font-size: 1.5em;
        max-width: 1.5em;
        margin-top: -.1em;
    }
    .link-box.locked.flex-force-right a.main-nav,
    .link-box.flex-force-right:hover a.main-nav ,
    .link-box.locked:not(.link-box-no-text) a.main-nav,
    .link-box:not(.link-box-no-text):hover a.main-nav {
        padding-left: 2.75em;
    }
    .submenu li a {
        padding: 7% 1em 7% 2.5em;
        font-size: .8em;
    }
    .submenu li a svg {
        margin-left: -1.25em;
    }
    .submenu svg,
    .submenu path {
        color: whitesmoke;
        font-size: 1.25em;
        max-width: 1.25em;
        margin-top: -.1em;
    }
}
@media (max-width: 1599px) {
    #header-site-title {
        font-size: 1.25em;
        font-weight: 600;
        padding: .25em .5em .25em .5em;
        width: 6.5em
    }
    #header-site-subtitle {
        font-size: .5em;
        font-weight: 400;
    }
    .link-box {
        width: 10%;
        padding: 0 0 0 .5em;
        font-size: .8em;
    }
    .link-box svg,
    .link-box path {
        font-size: 1.5em;
        max-width: 1.5em;
        margin-top: -.1em;
    }
    .link-box.locked.flex-force-right a.main-nav,
    .link-box.flex-force-right:hover a.main-nav ,
    .link-box.locked:not(.link-box-no-text) a.main-nav,
    .link-box:not(.link-box-no-text):hover a.main-nav {
        padding-left: 2.75em;
    }
    .submenu li a {
        padding: 7% 1em 7% 2.5em;
        font-size: .8em;
    }
    .submenu li a svg {
        margin-left: -1.25em;
    }
    .submenu svg,
    .submenu path {
        color: whitesmoke;
        font-size: 1.25em;
        max-width: 1.25em;
        margin-top: -.1em;
    }
}
@media (max-width: 1199px) {
    #header-site-title {
        font-size: 1.25em;
        font-weight: 600;
        padding: .25em .5em .25em .5em;
        width: 6.5em
    }
    #header-site-subtitle {
        font-size: .5em;
        font-weight: 400;
    }
    .link-box {
        width: 12%;
        padding: 0 0 0 .5em;
        font-size: .8em;
    }
    .link-box svg,
    .link-box path {
        font-size: 1.5em;
        max-width: 1.5em;
        margin-top: -.1em;
    }
    .link-box.locked.flex-force-right a.main-nav,
    .link-box.flex-force-right:hover a.main-nav ,
    .link-box.locked:not(.link-box-no-text) a.main-nav,
    .link-box:not(.link-box-no-text):hover a.main-nav {
        padding-left: 2.75em;
    }
    .submenu li a {
        padding: 7% 1em 7% 2.5em;
        font-size: .8em;
    }
    .submenu li a svg {
        margin-left: -1.25em;
    }
    .submenu svg,
    .submenu path {
        color: whitesmoke;
        font-size: 1.25em;
        max-width: 1.25em;
        margin-top: -.1em;
    }
}
@media (max-width: 1079px) { /*980*/
    #header-site-title {
        font-size: 1.1em;
        font-weight: 600;
        width: 6em;
        line-height: 1.75em;
        padding-left: .4em;
    }
    #header-site-subtitle {
        font-size: .5em;
        line-height: .5em;
        font-weight: 400;
    }
    .link-box {
        width: 16%;
        padding: 0 0 0 .5em;
        font-size: .8em;
    }
    .link-box svg,
    .link-box path {
        font-size: 1.5em;
        max-width: 1.5em;
        margin-top: -.1em;
    }
    .link-box.locked.flex-force-right a.main-nav,
    .link-box.flex-force-right:hover a.main-nav ,
    .link-box.locked:not(.link-box-no-text) a.main-nav,
    .link-box:not(.link-box-no-text):hover a.main-nav {
        padding-left: 2.75em;
    }
    .submenu li a {
        padding: 6% 1em 6% 2.5em;
        font-size: .8em;
    }
    .submenu li a svg {
        margin-left: -1.25em;
    }
    .submenu svg,
    .submenu path {
        color: whitesmoke;
        font-size: 1.25em;
        max-width: 1.25em;
        margin-top: -.1em;
    }
}
@media (max-width: 800px) {
    #header-site-title {
        font-size: 1.1em;
        font-weight: 600;
        line-height: 1.75em;
        width: 6em;
        padding-left: .4em;
    }
    #header-site-subtitle {
        font-size: .5em;
        line-height: .5em;
        font-weight: 400;
    }
    .link-box {
        width: 25%;
        padding: 0 0 0 .5em;
        font-size: .8em;
    }
    .link-box svg,
    .link-box path {
        font-size: 1.5em;
        max-width: 1.5em;
        margin-top: -.1em;
    }
    .link-box.locked.flex-force-right a.main-nav,
    .link-box.flex-force-right:hover a.main-nav ,
    .link-box.locked:not(.link-box-no-text) a.main-nav,
    .link-box:not(.link-box-no-text):hover a.main-nav {
        padding-left: 2.75em;
    }
    .submenu li a {
        padding: 6% 1em 6% 2.5em;
        font-size: .8em;
    }
    .submenu li a svg {
        margin-left: -1.25em;
    }
    .submenu svg,
    .submenu path {
        color: whitesmoke;
        font-size: 1.25em;
        max-width: 1.25em;
        margin-top: -.1em;
    }
}

@media (max-width: 600px) {
    svg.main-nav-icon,
    path.main-nav-icon {
        display: none;
    }
    #header-site-title {
        font-size: 1.1em;
        font-weight: 600;
        line-height: 1.75em;
        width: 6em;
        padding-left: .4em;
    }
    #header-site-subtitle {
        font-size: .5em;
        line-height: .5em;
        font-weight: 400;
    }
    .link-box {
        width: 12%;
        padding-left: 1em;
        padding-right: 1em;
        font-size: .7em;
        text-align: center;
    }
    .link-box.locked.flex-force-right a.main-nav,
    .link-box.flex-force-right:hover a.main-nav ,
    .link-box.locked:not(.link-box-no-text) a.main-nav,
    .link-box:not(.link-box-no-text):hover a.main-nav {
        padding-left: unset;
    }
    .submenu li a {
        padding: 8% 1em 8% 2em;
        font-size: .7em;
    }
    .submenu li a svg {
        margin-left: -.65em;
    }
    .submenu svg,
    .submenu path {
        color: whitesmoke;
        font-size: .7em;
        max-width: .7em;
        margin-top: -.1em;
    }
}

/* standard style rules */
svg:not(:root), symbol, image, marker, pattern, foreignObject {
    overflow: hidden;
}

.link-box {
    display: table;
    position: relative;
    vertical-align: middle;
    min-height: 100%;
}
.link-container svg,
.submenu svg {
    position: absolute;
}
.link-container a {
    padding-bottom: 1%;
}
.link-container {
    min-height: 100%;
    /*position: relative;*/
    display: table-cell;
    vertical-align: middle;
}
.flex-force-right {
    margin-left: auto;
}
#header-bar {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    background-color: #e1e1e1;
    box-shadow: 0 3px 7px rgba(0, 0, 0, 0.25), 0 2px 5px rgba(0, 0, 0, 0.22);
    z-index: 1500;
    transition: height 1s;
    min-height: 2.75em;
}
#header-links {
    display: flex;
    -webkit-margin-before: 0;
    -webkit-margin-after: 0;
    -webkit-margin-start: 0;
    -webkit-margin-end: 0;
    -webkit-padding-start: 0;
    width: 100%;
}
.link-box {
    animation: fade-in .5s forwards;
    opacity: 0;
    cursor: pointer;
    transform: translate3d(0, 0, 0);
}
.link-box.locked svg,
.link-box.locked path,
.link-box svg,
.link-box path {
    -webkit-transition: opacity .75s,top 0s;
    -moz-transition: opacity .75s,top 0s;
    -ms-transition: opacity .75s,top 0s;
    -o-transition: opacity .75s,top 0s;
    transition: opacity .5s,top 0s;
    opacity: 0;
    color: whitesmoke;
}
.link-box.locked svg,
.link-box.locked path,
.link-box:hover svg,
.link-box:hover path {
    opacity: 1 !important;
}
li.menu-separator:hover {
    background-color: transparent !important;
}
.link-box a {
    color: #636b6f;
    font-weight: 600;
    letter-spacing: .1rem;
    text-decoration: none;
    text-transform: uppercase;
    transition: padding-left .35s ease-out;
}
.link-box.locked,
.link-box.locked a.main-nav,
.link-box:hover,
.link-box:hover a.main-nav {
    color: whitesmoke;
}
.link-box.locked {
    background-color: dodgerblue;
}
.link-box:hover {
    background-color: dodgerblue;
}
.link-box.link-box-no-text {
    width: auto;
    padding-top: 0;
}

/* custom animation timings */
#header-bar .link-box:nth-child(1) {
    animation-delay: .5s;
}
#header-bar .link-box:nth-child(2) {
    animation-delay: .7s;
}
#header-bar .link-box:nth-child(3) {
    animation-delay: .9s;
}
#header-bar .link-box:nth-child(4) {
    animation-delay: 1.1s;
}
#header-bar .link-box:nth-child(5) {
    animation-delay: 1.3s;
}
#header-bar .link-box:nth-child(6) {
    animation-delay: 1.5s;
}
#header-bar .link-box:nth-child(7) {
    animation-delay: 1.7s;
}
#header-bar .link-box:nth-child(8) {
    animation-delay: 1.9s;
}
#header-bar .link-box:nth-child(9) {
    animation-delay: 2.1s;
}
#header-bar .link-box:nth-child(10) {
    animation-delay: 2.3s;
}

/* static dropdown menu styling */
.submenu-parent {
    position: absolute;
    background-color: #e1e1e1;
    box-shadow: 0 3px 7px rgba(0,0,0,0.25), 0 2px 5px rgba(0,0,0,0.22);
    transform: translate3d(0, 0, 0);
    top: -50vh;
    z-index: 1000;
}
ul.submenu {
    list-style: none;
    padding: 0;
    margin-bottom: 0;
}

.submenu li.menu-separator {
    padding-top: 1%;
    padding-bottom: 1%;
}
.submenu li a,
.submenu li.menu-separator {
    color: #636b6f;
    font-weight: 600;
    letter-spacing: .1rem;
    text-decoration: none;
    text-transform: uppercase;
    display: block;
    -webkit-transition: height .25s, opacity .1s, padding-top .25s, padding-bottom .25s;
    -moz-transition: height .25s, opacity .1s, padding-top .25s, padding-bottom .25s;
    -ms-transition: height .25s, opacity .1s, padding-top .25s, padding-bottom .25s;
    -o-transition: height .25s, opacity .1s, padding-top .25s, padding-bottom .25s;
    transition: height .25s, opacity .1s, padding-top .25s, padding-bottom .25s;
    position: relative;
}
.submenu li:hover {
    background-color: dodgerblue;
}
.submenu li.menu-separator hr {
    margin: 0;
}


.submenu li:hover a,
.submenu li:hover path {
    color: whitesmoke;
}
.submenu li.menu-separator:hover hr {
    cursor: default;
}

.submenu svg,
.submenu path {
    transition: none;
    color: inherit;
    position: absolute;
    font-size: 1.6em;
}


p:lang(ja-jp) {
    font-family: "Mplus 1p", "Yu Gothic", "MS Gothic", Serif;
}
div.language-loader {
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    z-index: -999;
}

/* testing only below here */


