/* sidemenu */

.sidemenu dl,
.sidemenu dt,
.sidemenu dd,
.sidemenu ul,
.sidemenu li {
    list-style: none;
    padding: 0;
    margin: 0;
    display: block;
}

.sidemenu {
    width: 198px;
    margin: 18px auto 0;
}

dl.sidemenu-boundary {
    margin-top: 18px;
}

.sidemenu a {
    display: block;
    padding: 10px;
    text-decoration: none;
    font-size: 14px;
    font-weight: normal;
}

.sidemenu a .fa {
    font-size: 14px;
    margin-right: 10px;
}

.sidemenu a .fa-angle-right {
    font-size: 15px;
    position: absolute;
    right: -2px;
    top: 10px;
}

.sidemenu .active dt > a {
    position: relative;
}

.sidemenu .active a .fa-angle-right {
    transform: rotate(90deg);
}

.sidemenu .menu-contents {
    width: 240px;
    box-shadow: rgba(0, 0, 0, .4) 0 2px 5px 0;
    z-index: 10;
    position: absolute;
    left: -9999em;
    top: 0;
}

.sidemenu .menu-contents a {
    padding: 10px 16px;
}

.sidemenu .menu-contents li:last-child a,
.sidemenu .menu-contents li:last-child a:hover {
    border-bottom: none;
}

/* sidemenu - a要素 hover時 */

.sidemenu a:hover,
.sidemenu .relative:hover dt > a,
.sidemenu .relative:hover dt > a i,
.sidemenu .menu-contents a:hover,
.sidemenu .active .menu-contents a:hover {
    background-color: #fff;
}

/* sidemenu - サブメニューは表示・非表示に0.2秒かかるように */

.sidemenu dl dt:hover + dd .menu-contents,
.sidemenu dl dd .menu-contents:hover {
    left: 199px;
    transition: all 0s ease .2s;
}

.sidemenu dl dd .menu-contents {
    transition: all 0s ease .2s;
}

/* sidemenu - 展開表示部分 */

.sidemenu .active {
    position: static;
}

.sidemenu .active dt > a,
.sidemenu .active dt > a:hover {
    border: none;
}

.sidemenu .active .menu-contents {
    position: static;
    width: 198px;
    box-shadow: none;
    z-index: 0;
}

.sidemenu .active .menu-contents a {
    display: block;
    padding: 8px 5px 8px 10px;
    border-bottom:none;
    font-size: 12px;
}

/* sidemenu - Newマーク */

.sidemenu .new {
    display: inline-block;
    margin-left: 10px;
    padding: 0 4px;
    background: #F60;
    color: #fff;
    font-size: 10px;
    border-radius: 4px;
    vertical-align: 1px;
}

/* side footer link */

.side-footer-link {
    margin: 25px 0 0 22px;
    padding: 0;
}

.side-footer-link i {
    font-size: 10px;
    vertical-align: 1px;
    margin-right: 5px;
}

.side-footer-link li {
    list-style-type: none;
    margin-bottom: 8px;
    padding: 0;
}

.side-footer-link li a {
    text-decoration: none;
    font-size: 12px;
    font-weight: normal;
}

li.side-footer-link-line {
    padding-bottom: 16px;
    margin-bottom: 16px;
    width: 124px;
}

/* banner */

.side-banner {
    margin-top: 20px;
    margin-right: 12px;
    margin-left: 12px;
}

.side-banner-bottom {
    margin-bottom: 100px;
}

/* SNS */

.side-sns-link {
    margin: 20px 12px 0;
    display: flex;
    background: #FFF;
    padding: 10px;
    border-radius: 4px;
    align-items: center;
}

.side-sns-link-text {
    font-size: 12px;
    margin-right: 12px;
}

.side-sns-link-icon a:hover {
    filter: saturate(0.5);
}
