a.shoenkai {
        color: #FF0000;
        text-decoration: none;
        position: relative;
        font-weight: 600;
        transition: .5s;
        z-index: 1;
}
a.shoenkai:link {
        color: #941A1A;
}
a.shoenkai:visited {
        color: #941A1A;
}
a.shoenkai:hover {
        color: #FF0000;
}
a.shoenkai:active {
        color: #941A1A;
}
a.shoenkai:before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        border-bottom: 2px solid #ff0000;
        transform: scaleX(0);
        opacity: 0;
        transition: .3s;
        z-index: -1;
}     
a.shoenkai:after {
        content: '';
        position: absolute;
        top: 2px;
        left: 0;
        width: 100%;
        height: 100%;
        transform: scaleX(1);
        opacity: 0;
        transition: .5s;
        z-index: -1;
}     
a.shoenkai:hover:before {
        transform: scaleX(1);
        opacity: 1;
}       
a.shoenkai:hover:after {
        transform: scaleX(1);
        opacity: 1;
}       

a.shoenkai_red {
        position: relative;
        text-decoration: none;
        color: #E3C479;
        font-weight: 600;
        transition: .5s;
        z-index: 1;
}
a.shoenkai_red:before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        border-top: 2px solid #E3C479;
        border-bottom: 2px solid #E3C479;
        background-color: #C63023;
        transform: scaleX(0);
        opacity: 0;
        transition: .3s;
        z-index: -1;
}     
a.shoenkai_red:after {
        content: '';
        position: absolute;
        top: 2px;
        left: 0;
        width: 100%;
        height: 100%;
        transform: scaleX(1);
        opacity: 0;
        transition: .5s;
        z-index: -1;
}     
a.shoenkai_red:hover {
        color: #E0E2C3;
}
a.shoenkai_red:hover:before {
        transform: scaleX(1);
        opacity: 1;
}       
a.shoenkai_red:hover:after {
        transform: scaleX(1);
        opacity: 1;
}       
