/*************************
*******Typography******
**************************/



body {
    background: #fff;
    font-family: "メイリオ", sans-serif, Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "sans-serif" !important;
    line-height: 180%;
    font-size: 16px !important;
    color: #081620;
}

@media (min-width: 768px) {
    body {
        background: #fff;
        font-family: "メイリオ", sans-serif, Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "sans-serif" !important;
        line-height: 180%;
        font-size: 16px !important;
        color: #081620;
        letter-spacing: 0.09em;
    }
}

/* bootstrapcss修正
----------------------------------------------------------*/
p {
    margin: 0 0 0px;
}

h1 {
    line-height: 100%;
    margin: 0px;
    padding: 0px;
    float: none;
}

h2 {
    margin: 0px;
    padding: 0px;
}

h3 {
    margin: 0px;
    padding: 0px;
}

h4 {
    margin: 0px;
    padding: 0px;
}



/* 汎用
----------------------------------------------------------*/
.en {
    font-family: 'Roboto', sans-serif;
}

.mplus {
    font-family: "M PLUS 1p", sans-serif;
}

.jp {
    font-family: "M PLUS 1p", sans-serif;
}

a {
    outline: none;
    color: #081620;
    text-decoration: underline
}

a:link,
a:visited {
    color: #081620;
    text-decoration: underline
}

a:hover {
    color: #999;
    text-decoration: none;
    -webkit-transition: 0.8s;
    -moz-transition: 0.8s;
    -o-transition: 0.8s;
    -ms-transition: 0.8s;
    transition: 0.8s;
}

.clear {
    clear: both;
}

.left02 {
    float: left;
}

.right02 {
    float: right;
}

.img-filter a:hover img {
    opacity: 0.7;
    filter: alpha(opacity=80);
    -moz-opacity: 0.7;
}

@media print,
screen and (min-width: 992px) {
    .pc_center {
        text-align: center;
    }
}

@media print,
screen and (min-width: 1200px) {
    .xl_center {
        text-align: center;
    }
}

.sp_center {
    text-align: center;
}

@media print,
screen and (min-width: 768px) {
    .sp_center {
        text-align: left;
    }
}

@media print,
screen and (min-width: 768px) {
    .tab_center {
        text-align: center;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_center {
        text-align: left;
    }
}

.text-decoration-none a:link,
.text-decoration-none a:visited {
    text-decoration: none;
}

.text-decoration-none a:hover {
    text-decoration: none;
}

.relative {
    position: relative;
}

@media print,
screen and (min-width: 992px) {
    .pc_relative {
        position: relative;
    }
}

.absolute {
    position: absolute;
}

.img_radius img {
    border-radius: 10px;
}

@media screen and (min-width:768px) {
    .img_radius img {
        border-radius: 40px;
    }
}

@media screen and (min-width:992px) {
    .img_radius img {
        border-radius: 80px;
    }
}

.img_radius2 img {
    border-radius: 10px;
}

@media screen and (min-width:768px) {
    .img_radius2 img {
        border-radius: 20px;
    }
}

@media screen and (min-width:992px) {
    .img_radius2 img {
        border-radius: 40px;
    }
}

.overhidden {
    overflow: hidden;
}

/**/

.decoration_none a:link,
.decoration_none a:visited {
    color: #081620;
    text-decoration: none;
}

.decoration_none a:hover {
    color: #081620;
    text-decoration: none;
}


ul {
    margin-bottom: 0;
}


/* margin,padding
----------------------------------------------------------*/
.padding-none {
    padding: 0;
}

.mt05 {
    margin-top: 5px;
}

.mt10 {
    margin-top: 10px;
}

.mt15 {
    margin-top: 15px;
}

.mt20 {
    margin-top: 20px;
}

.mt30 {
    margin-top: 30px;
}

.mt40 {
    margin-top: 40px;
}

.mt60 {
    margin-top: 60px;
}

.mb05 {
    margin-bottom: 5px;
}

.mb10 {
    margin-bottom: 10px;
}

.mb15 {
    margin-bottom: 15px;
}

.mb20 {
    margin-bottom: 20px;
}

.mb30 {
    margin-bottom: 30px;
}

.mb40 {
    margin-bottom: 40px;
}

.mb50 {
    margin-bottom: 50px;
}

.mr20 {
    margin-right: 20px;
}

.mr10 {
    margin-right: 10px;
}

.mr15 {
    margin-right: 15px;
}

.mr25 {
    margin-right: 25px;
}

.mr30 {
    margin-right: 30px;
}

.mr32 {
    margin-right: 32px;
}

.mr05 {
    margin-right: 5px;
}

.ml05 {
    margin-left: 5px;
}

.ml10 {
    margin-left: 10px;
}

.ml20 {
    margin-left: 20px;
}


/*sp*/
.sp_mb10 {
    margin-bottom: 10px;
}

@media print,
screen and (min-width: 768px) {
    .sp_mb10 {
        margin-bottom: 0px;
    }
}

.sp_mb20 {
    margin-bottom: 20px;
}

@media print,
screen and (min-width: 768px) {
    .sp_mb20 {
        margin-bottom: 0px;
    }
}

.sp_mb30 {
    margin-bottom: 30px;
}

@media print,
screen and (min-width: 768px) {
    .sp_mb30 {
        margin-bottom: 0px;
    }
}

.sp_mb40 {
    margin-bottom: 40px;
}

@media print,
screen and (min-width: 768px) {
    .sp_mb40 {
        margin-bottom: 0px;
    }
}

/*tab*/
@media print,
screen and (min-width: 768px) {
    .tab_mb10 {
        margin-bottom: 10px;
    }

    .tab_ml15 {
        margin-left: 15px;
    }

    .tab_mb20 {
        margin-bottom: 20px;
    }

    .tab_mb30 {
        margin-bottom: 30px;
    }

    .tab_mb40 {
        margin-bottom: 40px;
    }

    .tab_mb50 {
        margin-bottom: 50px;
    }

    .tab_mb60 {
        margin-bottom: 60px;
    }

    .tab_mb70 {
        margin-bottom: 70px;
    }

    .tab_mb80 {
        margin-bottom: 80px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_mb10 {
        margin-bottom: 0px;
    }

    .tab_ml15 {
        margin-left: 0px;
    }

    .tab_mb20 {
        margin-bottom: 0px;
    }

    .tab_mb30 {
        margin-bottom: 0px;
    }

    .tab_mb40 {
        margin-bottom: 0px;
    }

    .tab_mb50 {
        margin-bottom: 0px;
    }

    .tab_mb60 {
        margin-bottom: 0px;
    }

    .tab_mb70 {
        margin-bottom: 0px;
    }

    .tab_mb80 {
        margin-bottom: 0px;
    }
}

/*PC*/
@media print,
screen and (min-width: 992px) {
    .pc_mb10 {
        margin-bottom: 10px;
    }

    .pc_mb20 {
        margin-bottom: 20px;
    }

    .pc_mb30 {
        margin-bottom: 30px;
    }

    .pc_mb40 {
        margin-bottom: 40px;
    }

    .pc_mb50 {
        margin-bottom: 50px;
    }

    .pc_mb60 {
        margin-bottom: 60px;
    }

    .pc_mb70 {
        margin-bottom: 70px;
    }

    .pc_mb80 {
        margin-bottom: 80px;
    }

    .pc_mb100 {
        margin-bottom: 100px;
    }

    .pc_ml15 {
        margin-left: 15px;
    }
}

/*sp*/
.sp_mt10 {
    margin-top: 10px;
}

@media print,
screen and (min-width: 768px) {
    .sp_mt10 {
        margin-top: 0px;
    }
}

.sp_mt20 {
    margin-top: 20px;
}

@media print,
screen and (min-width: 768px) {
    .sp_mt20 {
        margin-top: 0px;
    }
}

.sp_mt30 {
    margin-top: 30px;
}

@media print,
screen and (min-width: 768px) {
    .sp_mt30 {
        margin-top: 0px;
    }
}

/*tab*/
@media print,
screen and (min-width: 768px) {
    .tab_mt10 {
        margin-top: 10px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_mt10 {
        margin-top: 0px;
    }
}

@media print,
screen and (min-width: 768px) {
    .tab_mt20 {
        margin-top: 20px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_mt20 {
        margin-top: 0px;
    }
}

@media print,
screen and (min-width: 768px) {
    .tab_mt25 {
        margin-top: 25px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_mt25 {
        margin-top: 0px;
    }
}

@media print,
screen and (min-width: 768px) {
    .tab_mt30 {
        margin-top: 30px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_mt30 {
        margin-top: 0px;
    }
}

@media print,
screen and (min-width: 768px) {
    .tab_mt100 {
        margin-top: 100px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_mt100 {
        margin-top: 0px;
    }
}



/*PC*/
@media print,
screen and (min-width: 992px) {
    .pc_mt10 {
        margin-top: 10px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_mt20 {
        margin-top: 20px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_mt30 {
        margin-top: 30px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_mt40 {
        margin-top: 40px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_mt50 {
        margin-top: 50px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_mt60 {
        margin-top: 60px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_mt70 {
        margin-top: 70px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_mt80 {
        margin-top: 80px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_mt200 {
        margin-top: 200px;
    }
}

/*sp*/
.sp_pt10 {
    padding-top: 10px;
}

@media print,
screen and (min-width: 768px) {
    .sp_pt10 {
        padding-top: 0px;
    }
}

.sp_pt20 {
    padding-top: 20px;
}

@media print,
screen and (min-width: 768px) {
    .sp_pt20 {
        padding-top: 0px;
    }
}

.sp_pt30 {
    padding-top: 30px;
}

@media print,
screen and (min-width: 768px) {
    .sp_pt30 {
        padding-top: 0px;
    }
}

.sp_pb10 {
    padding-bottom: 10px;
}

@media print,
screen and (min-width: 768px) {
    .sp_pb10 {
        padding-bottom: 0px;
    }
}

.sp_pb20 {
    padding-bottom: 20px;
}

@media print,
screen and (min-width: 768px) {
    .sp_pb20 {
        padding-bottom: 0px;
    }
}

.sp_pb30 {
    padding-bottom: 30px;
}

@media print,
screen and (min-width: 768px) {
    .sp_pb30 {
        padding-bottom: 0px;
    }
}

/*tab*/
@media print,
screen and (min-width: 768px) {
    .tab_pt10 {
        padding-top: 10px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_pt10 {
        padding-top: 0px;
    }
}

@media print,
screen and (min-width: 768px) {
    .tab_pt20 {
        padding-top: 20px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_pt20 {
        padding-top: 0px;
    }
}

@media print,
screen and (min-width: 768px) {
    .tab_pt30 {
        padding-top: 30px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_pt30 {
        padding-top: 0px;
    }
}

@media print,
screen and (min-width: 768px) {
    .tab_pt40 {
        padding-top: 40px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_pt40 {
        padding-top: 0px;
    }
}

@media print,
screen and (min-width: 768px) {
    .tab_pt50 {
        padding-top: 50px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_pt50 {
        padding-top: 0px;
    }
}

@media print,
screen and (min-width: 768px) {
    .tab_pt60 {
        padding-top: 60px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_pt60 {
        padding-top: 0px;
    }
}

@media print,
screen and (min-width: 768px) {
    .tab_pt70 {
        padding-top: 70px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_pt70 {
        padding-top: 0px;
    }
}

@media print,
screen and (min-width: 768px) {
    .tab_pt80 {
        padding-top: 80px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_pt80 {
        padding-top: 0px;
    }
}

@media print,
screen and (min-width: 768px) {
    .tab_pt160 {
        padding-top: 160px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_pt160 {
        padding-top: 0px;
    }
}

@media print,
screen and (min-width: 768px) {
    .tab_pb10 {
        padding-bottom: 10px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_pb10 {
        padding-bottom: 0px;
    }
}

@media print,
screen and (min-width: 768px) {
    .tab_pb20 {
        padding-bottom: 20px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_pb20 {
        padding-bottom: 0px;
    }
}

@media print,
screen and (min-width: 768px) {
    .tab_pb30 {
        padding-bottom: 30px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_pb30 {
        padding-bottom: 0px;
    }
}

@media print,
screen and (min-width: 768px) {
    .tab_pb40 {
        padding-bottom: 40px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_pb40 {
        padding-bottom: 0px;
    }
}

@media print,
screen and (min-width: 768px) {
    .tab_pb50 {
        padding-bottom: 50px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_pb50 {
        padding-bottom: 0px;
    }
}

@media print,
screen and (min-width: 768px) {
    .tab_pb60 {
        padding-bottom: 60px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_pb60 {
        padding-bottom: 0px;
    }
}

@media print,
screen and (min-width: 768px) {
    .tab_pb70 {
        padding-bottom: 70px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_pb70 {
        padding-bottom: 0px;
    }
}

@media print,
screen and (min-width: 768px) {
    .tab_pb80 {
        padding-bottom: 80px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab_pb80 {
        padding-bottom: 0px;
    }
}

/*PC*/
@media print,
screen and (min-width: 992px) {
    .pc_pt10 {
        padding-top: 10px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_pt20 {
        padding-top: 20px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_pt30 {
        padding-top: 30px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_pt40 {
        padding-top: 40px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_pt50 {
        padding-top: 50px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_pt60 {
        padding-top: 60px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_pt70 {
        padding-top: 70px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_pt80 {
        padding-top: 80px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_pt90 {
        padding-top: 90px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_pt100 {
        padding-top: 100px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_pt160 {
        padding-top: 160px;
    }
}



@media print,
screen and (min-width: 992px) {
    .pc_pb10 {
        padding-bottom: 10px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_pb20 {
        padding-bottom: 20px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_pb30 {
        padding-bottom: 30px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_pb40 {
        padding-bottom: 40px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_pb50 {
        padding-bottom: 50px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_pb60 {
        padding-bottom: 60px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_pb70 {
        padding-bottom: 70px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_pb80 {
        padding-bottom: 80px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_pb90 {
        padding-bottom: 90px;
    }
}

@media print,
screen and (min-width: 992px) {
    .pc_pb100 {
        padding-bottom: 100px;
    }
}


.auto {
    margin: 0 auto;
}



/* padding消し
----------------------------------------------------------*/
@media print,
screen and (min-width: 992px) {
    .pc_pd0 {
        padding-left: 0px;
        padding-right: 0px;
    }

    .pc_r0 {
        padding-right: 0px;
    }
}


/* list
----------------------------------------------------------*/
.pl0 ul {
    padding-left: 0px;
    margin-bottom: 0px;
}

.list01 li {
    list-style: none;
    margin-bottom: 0px;
}



.list02 li {
    list-style: disc;
    margin-left: -20px;
    padding-bottom: 5px;
    border-bottom: 1px dotted #ccc;
    margin-bottom: 10px;
}

@media (min-width: 768px) {
    .list02 li {
        list-style: disc;
        margin-left: -20px;
        padding-bottom: 0px;
        border-bottom: none;
        margin-bottom: 0px;
    }
}

.list03 li {
    list-style-type: decimal;
    margin-left: -15px;
    margin-bottom: 0px;
}

.list03 li span {
    font-weight: bold;
}

.list04 li {
    list-style: disc;
    margin-left: -20px;
    padding-bottom: 5px;
    border-bottom: 1px dotted #ccc;
    margin-bottom: 10px;
}

@media (min-width: 768px) {
    .list04 li {
        list-style: disc;
        margin-left: -20px;
        padding-bottom: 0px;
        border-bottom: none;
        margin-bottom: 10px;
    }
}



/* title
---------------------------------------------------- */
.title1 {
    /* display: -webkit-flex;
    display: flex;
    align-items: center; */
    font-weight: bold;
    font-size: 150%;
    line-height: 1.4em;
    font-family: "M PLUS 1p", sans-serif;
}

.title1.white {
    color: #fff;
}

.title1 i {
    font-size: 6px;
    margin-right: 10px;
}

.title1_en {
    font-family: "M PLUS 1p", sans-serif;
    font-weight: bold;
    font-size: 18px;
    line-height: 1.4em;
    color: #2293e3;
}

@media print,
screen and (min-width: 768px) {
    .title1_en {
        font-size: 18px;
    }

    .title1 {
        font-size: 30px;
    }
}


@media print,
screen and (min-width: 1200px) {
    .title1 {
        font-size: 35px;
    }
}

.title1_en.white {
    color: #fff;
}

/**/

.title2 {
    font-size: 38px;
    font-weight: 500;
    padding-left: 60px;
}

@media (min-width: 768px) {
    .title2 {
        font-size: 50px;
    }
}

@media (min-width: 992px) {
    .title2 {
        font-size: 65px;
    }
}

@media (min-width: 1200px) {
    .title2 {
        font-size: 80px;
    }
}

/**/

.title3 {
    letter-spacing: 0.06em;
    font-size: 26px;
    font-weight: bold;
    line-height: 140%;
    padding-bottom: 5px;
    border-bottom: 1px solid #2293e3;
    color: #2293e3;
}

@media (min-width: 768px) {
    .title3 {
        font-size: 28px;
    }
}

@media (min-width: 992px) {
    .title3 {
        font-size: 30px;
    }
}

/**/



/**/


/**/

.icon_title {
    padding: 0 0 0 25px;
    background-image: url(../images/icon1.png);
    background-repeat: no-repeat;
    background-position: 0 10px;
    font-size: 25px;
}

@media print,
screen and (min-width: 768px) {
    .icon_title {
        font-size: 27px;
    }
}

@media print,
screen and (min-width: 992px) {
    .icon_title {
        font-size: 30px;
    }
}

/**/

/*背景画像で左右表示*/
.text3::before {
    content: "";
    display: inline-block;
    vertical-align: middle;
    width: 265px;
    height: 91px;
    background: url(../images/titleicon1.png) no-repeat;
    background-size: contain;
    margin-right: 20px;
}

.text3::after {
    content: "";
    display: inline-block;
    vertical-align: middle;
    width: 265px;
    height: 91px;
    background: url(../images/titleicon2.png) no-repeat;
    background-size: contain;
    margin-left: 20px;
}

/**/


.title_bg1 {
    background: url(../images/top1.jpg) no-repeat scroll 50% 50% / cover;
}

/**/
.midashi_sen {
    background: url(../images/sen.jpg) no-repeat left center;
    padding-left: 60px;
    font-size: 120%;
    line-height: 1.4em;
    font-weight: bold;
}

@media print,
screen and (min-width: 1200px) {
    .midashi_sen {
        font-size: 130%;
    }
}

/**/


.midashi2 {
    font-size: 120%;
    line-height: 150%;
    margin-bottom: 15px;
    font-weight: bold;
    border-bottom: 1px solid #2293e3;
    padding-bottom: 7px;
    color: #2293e3;
}

@media (min-width: 768px) {
    .midashi2 {
        font-size: 20px;
        margin-bottom: 15px;
    }
}

@media (min-width: 992px) {
    .midashi2 {
        font-size: 25px;
        margin-bottom: 30px;
    }
}


.midashi3 {
    font-size: 110%;
    line-height: 150%;
    margin-bottom: 20px;
    font-weight: bold;
    color: #fff;
    background: #2293e3;
    padding: 5px 10px 5px 15px;
    border-radius: 20px;
}

@media (min-width: 768px) {
    .midashi3 {
        font-size: 19px;
        margin-bottom: 20px;
        padding: 8px 15px;
    }
}

@media (min-width: 992px) {
    .midashi3 {
        font-size: 22px;
        margin-bottom: 40px;
    }
}

/**/


.midashi4 {
    font-size: 110%;
    line-height: 150%;
    margin-bottom: 20px;
    font-weight: bold;
    color: #fff;
    background: #2ac18d;
    padding: 5px 10px 5px 15px;
    border-radius: 20px;
}

@media (min-width: 768px) {
    .midashi4 {
        font-size: 19px;
        margin-bottom: 20px;
        padding: 8px 15px;
    }
}

@media (min-width: 992px) {
    .midashi4 {
        font-size: 22px;
        margin-bottom: 40px;
    }
}



/* table
----------------------------------------------------------*/
.table1 {
    width: 100%;
    border-collapse: collapse;
    border-right: 1px solid #081620;
    border-left: 1px solid #081620;
    border-bottom: 1px solid #081620;
}

.table1 th {
    width: 100%;
    padding: 10px 10px 10px 10px;
    display: block;
    background: #eee;
    border-top: 1px solid #081620;
}

.table1 td {
    width: 100%;
    padding: 10px;
    display: block;
    background: #fff;

}

@media print,
screen and (min-width: 768px) {
    .table1 th {
        width: 28%;
        padding: 15px 12px;
        vertical-align: middle;
        display: table-cell;
        border: 1px solid #333;
        text-align: center;
    }

    .table1 td {
        width: 100%;
        padding: 15px;
        display: table-cell;
        vertical-align: middle;
        border: 1px solid #081620;
    }
}

@media print,
screen and (min-width: 992px) {
    .table1 th {
        width: 28%;
        padding: 25px 15px;
    }

    .table1 td {
        padding: 25px 15px;
    }
}

.table1 ul {
    margin: 0;
}

.table2 {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid#a7d1da;
}

.table2 th {
    width: 100%;
    padding: 10px;
    display: block;
    background: #c4e8f0;

}

.table2 td {
    width: 100%;
    padding: 10px;
    display: block;
    background: #fff;

}

@media print,
screen and (min-width: 768px) {
    .table2 th {
        width: 28%;
        padding: 15px 12px;
        vertical-align: middle;
        display: table-cell;
        border-bottom: 1px solid #a7d1da;
        text-align: center;
    }

    .table2 td {
        width: 100%;
        padding: 15px;
        display: table-cell;
        vertical-align: middle;
        border-bottom: 1px solid #a7d1da;

    }
}

@media print,
screen and (min-width: 992px) {
    .table2 th {
        width: 28%;
        padding: 25px 15px;
    }

    .table2 td {
        padding: 25px 15px;
    }
}

.table2 ul {
    margin: 0;
}

/**/
.table3 {
    width: 100%;
    border-collapse: collapse;
    border-right: 1px solid #0b2d7f;
    border-left: 1px solid #0b2d7f;
    border-bottom: 1px solid #0b2d7f;
}

.table3 th {
    width: 100%;
    padding: 10px 10px 10px 10px;
    display: block;
    background: #0099ff;
    border-top: 1px solid #0b2d7f;
    color: #fff;
}

.table3 td {
    width: 100%;
    padding: 10px;
    display: block;
    background: #fff;

}

@media print,
screen and (min-width: 768px) {
    .table3 th {
        width: 28%;
        padding: 15px 12px;
        vertical-align: middle;
        display: table-cell;
        border: 1px solid #0b2d7f;
        text-align: center;
    }

    .table3 td {
        width: 100%;
        padding: 15px;
        display: table-cell;
        vertical-align: middle;
        border: 1px solid #0b2d7f;
    }
}

@media print,
screen and (min-width: 992px) {
    .table3 th {
        width: 28%;
        padding: 25px 15px;
    }

    .table3 td {
        padding: 25px 15px;
    }
}

.table3 ul {
    margin: 0;
}


.table-scroll {
    overflow-x: auto;
}

.table_noblock {
    width: 100%;
    border-collapse: collapse;
    empty-cells: show;
    font-size: 13px;
}

.table_noblock th {
    padding: 10px 2px;
    vertical-align: middle;
    text-align: center;
    border-bottom: 1px solid #e1ecee;
    white-space: nowrap;
    width: 1%;
    font-weight: normal;
}

.table_noblock td {
    padding: 10px 2px;
    vertical-align: middle;
    text-align: center;
    border-bottom: 1px solid #e1ecee;
}

@media screen and (min-width:768px) {
    .table_noblock {
        font-size: 16px;
    }

    .table_noblock th {
        padding: 10px 15px;
    }

    .table_noblock td {
        padding: 10px 15px;
    }
}

/**/
.table_noblock2 {
    width: 100%;
    border-collapse: collapse;
}

.table_noblock2 th {
    padding: 10px;
    vertical-align: middle;
    text-align: center;
    border: 1px solid #081620;
    white-space: nowrap;
    background: #081620;
    color: #fff;
}

.table_noblock2 td {
    padding: 10px;
    vertical-align: middle;
    border: 1px solid #081620;
    overflow-wrap: break-word;
}

@media screen and (min-width:768px) {
    .table_noblock2 th {
        padding: 10px 15px;
    }

    .table_noblock2 td {
        padding: 10px 15px;
        text-align: center;
    }
}

.nowrap {
    white-space: nowrap;
    width: 1%;
}


.table_bg1 {
    background: #0099ff;
}

.table_bg2 {
    background: #102c6d;
}






/* border
---------------------------------------------------- */
.border_b {
    border-bottom: 1px solid #f7f7f7;
}

.border_top {
    border-top: 1px solid #ccc;
}

/* bg
---------------------------------------------------- */
.bg1 {
    background: url("../images/bg4.jpg") no-repeat bottom center #e7fafe;
    background-size: contain;
    position: relative;
}

@media screen and (min-width:768px) {
    .kazari_l img {
        position: absolute;
        left: 0;
        bottom: -3%;
        width: 20%;
        height: auto;
    }
}

@media screen and (min-width:992px) {
    .kazari_l img {
        position: absolute;
        left: 0;
        bottom: -3%;
        width: 25%;
        max-width: 364px;
        height: auto;
    }
}

@media screen and (min-width:1200px) {
    .kazari_l img {
        width: 30%;
        max-width: 364px;
        height: auto;
    }
}

@media screen and (min-width:768px) {
    .kazari_r img {
        position: absolute;
        right: 0;
        top: 3%;
        width: 20%;
        height: auto;
    }
}

@media screen and (min-width:992px) {
    .kazari_r img {
        position: absolute;
        right: 0;
        top: 3%;
        width: 25%;
        max-width: 327px;
        height: auto;
    }
}

@media screen and (min-width:1200px) {
    .kazari_r img {
        width: 30%;
        max-width: 327px;
        height: auto;
    }
}

.z-2 {
    z-index: 2;
}

.bg2 {
    background: url("../images/bg5.jpg") no-repeat top center #e7fafe;
    background-size: contain;
}

.bg3 {
    background: url("../images/bg6.jpg") no-repeat top center #fff;
    background-size: contain;
}




.bg_yellow {
    background: #fdfce7;
}



.bg_gray2 {
    background: #f0f0f0;
}


.bg_white {
    background-color: rgba(255, 255, 255, 1);
    padding: 15px;
    border-radius: 10px;
}

@media screen and (min-width:768px) {
    .bg_white {
        padding: 20px;
    }
}

@media screen and (min-width:992px) {
    .bg_white {
        padding: 40px;
        border-radius: 20px;
    }
}

.bg_border {
    border: 1px solid #081620;
    padding: 10px;
    border-radius: 10px;
}

@media screen and (min-width:768px) {
    .bg_border {
        padding: 15px;
    }
}

@media screen and (min-width:992px) {
    .bg_border {
        padding: 20px;
        border-radius: 20px;
    }
}






@media print,
screen and (min-width:992px) {
    .text_padding {
        padding: 60px;
    }
}

@media print,
screen and (min-width:1200px) {
    .text_padding {
        padding: 80px;
    }
}

@media print,
screen and (min-width:768px) {
    .text_padding2 {
        padding-top: 40px;
    }
}

@media print,
screen and (min-width:992px) {
    .text_padding2 {
        padding-top: 60px;
    }
}

@media print,
screen and (min-width:1200px) {
    .text_padding2 {
        padding-top: 80px;
    }
}

@media print,
screen and (min-width:768px) {
    .img_padding {
        padding-top: 40px;
    }
}

@media print,
screen and (min-width:992px) {
    .img_padding {
        padding-top: 0px;
    }
}



.white_box {
    background: #fff;
    padding: 20px;
}

@media screen and (min-width:768px) {
    .white_box {
        padding: 60px;
    }
}

@media screen and (min-width:992px) {
    .white_box {
        padding: 60px;
    }
}

/* シャドー
---------------------------------------------------- */
.shadow1 {
    text-shadow: #fff 1px 0 10px;
}

/* マーカー
---------------------------------------------------- */
.marker_blue {
    background: linear-gradient(transparent 60%, #5cbdfd 60%);
}

/* color
---------------------------------------------------- */
.white {
    color: #fff;
}

.blue {
    color: #2293e3;
}

.yellow {
    color: #f6e000;
}

.orange {
    color: #ff6600;
}

.red {
    color: #cc0000;
}

.green {
    color: #2ac18d;
}


/* font
---------------------------------------------------- */
.normal {
    line-height: normal;
}

.lh_s {
    line-height: 100%;
}

.lh_m {
    line-height: 1.5em;
}

.lh_l {
    line-height: 1.8em;
}

.fs10 {
    font-size: 10px;
}

.fs11 {
    font-size: 11px;
}

.fs13 {
    font-size: 13px;
}

.fs14 {
    font-size: 14px;
}

.fs15 {
    font-size: 15px;
}

.fs16 {
    font-size: 16px;
}

.fs18 {
    font-size: 18px;
}

@media print,
screen and (min-width: 768px) {
    .tab15pc16 {
        font-size: 15px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tab15pc16 {
        font-size: 16px;
    }
}



@media print,
screen and (min-width: 992px) {
    .pc_fs17 {
        font-size: 17px;
    }
}

.s_font {
    font-size: 80%;
    line-height: 160%;
}

@media print,
screen and (min-width: 1200px) {
    .s_font {
        font-size: 14px;
    }
}

.m_font {
    font-size: 110%;
    line-height: 160%;
}

@media (min-width: 768px) {
    .m_font {
        font-size: 18px;
        line-height: 1.6em;
    }
}

@media (min-width: 992px) {
    .m_font {
        font-size: 20px;
        line-height: 1.8em;
    }
}

.l_font {
    font-size: 20px;
    line-height: 150%;
}

@media (min-width: 768px) {
    .l_font {
        font-size: 22px;
        line-height: 150%;
    }
}

@media (min-width: 992px) {
    .l_font {
        font-size: 25px;
        line-height: 1.7em;
    }
}


.ll_font {
    font-size: 140%;
    line-height: 160%;
}

@media (min-width: 768px) {
    .ll_font {
        font-size: 27px;
        line-height: 160%;
    }
}

@media (min-width: 992px) {
    .ll_font {
        font-size: 30px;
        line-height: 1.6em;
    }
}






/* 余白
----------------------------------------------------------*/
.space {
    padding: 40px 0;
}

@media (min-width: 768px) {
    .space {
        padding: 60px 0;
    }
}

@media (min-width: 992px) {
    .space {
        padding: 120px 0 140px;
    }
}

.space2 {
    padding: 40px 0;
}

@media (min-width: 768px) {
    .space2 {
        padding: 60px 0;
    }
}

@media (min-width: 992px) {
    .space2 {
        padding: 120px 0;
    }
}

.space3 {
    padding: 40px 0 40px;
}

@media (min-width: 768px) {
    .space3 {
        padding: 60px 0 40px;
    }
}

@media (min-width: 992px) {
    .space3 {
        padding: 120px 0 60px;
    }
}

.space4 {
    padding: 80px 0 20px;
}

@media (min-width: 768px) {
    .space4 {
        padding: 100px 0 40px;
    }
}

@media (min-width: 992px) {
    .space4 {
        padding: 160px 0 40px;
    }
}

@media (min-width: 1200px) {
    .space4 {
        padding: 220px 0 60px;
    }
}

.space5 {
    padding: 80px 0 40px;
}

@media (min-width: 768px) {
    .space5 {
        padding: 100px 0 80px;
    }
}

@media (min-width: 992px) {
    .space5 {
        padding: 160px 0 140px;
    }
}

@media (min-width: 1200px) {
    .space5 {
        padding: 220px 0 140px;
    }
}

.space6 {
    padding: 40px 0;
}

@media (min-width: 768px) {
    .space6 {
        padding: 40px 0;
    }
}

@media (min-width: 992px) {
    .space6 {
        padding: 60px 0;
    }
}


/**/

.yohaku_l {
    padding-left: 15px;
}

.yohaku_l30 {
    padding-left: 15px;
}

@media print,
screen and (min-width: 768px) {
    .yohaku_l30 {
        padding-left: 30px;
    }
}

.sp_yohaku {
    padding-left: 15px;
    padding-right: 15px;
}

@media print,
screen and (min-width: 768px) {
    .sp_yohaku {
        padding-left: 0px;
        padding-right: 0px;
    }
}


/* 縦横比固定
----------------------------------------------------------*/
.photo-ofi {
    height: 0;
    display: block;
    padding-bottom: 75%;
    /* 高さを指定（ボックスの横幅を基準） */
    /*background-color: #EFEFEF;*/
    overflow: hidden;
    position: relative;
    /*margin-bottom: 10px;*/
}

.photo-ofi img {
    max-width: inherit;
    max-height: inherit;
    width: 100%;
    height: 100%;
    object-fit: scale-down;
    font-family: 'object-fit: scale-down;';
    position: absolute;
    left: 0;
    top: 0;
}

.photo-ofi a {
    cursor: pointer;
}

.object-fit img {
    object-fit: cover;
    font-family: 'object-fit: cover;';
    /*IE対策*/
}



/* sp header
----------------------------------------------------------*/
/* .sp_header {
    padding: 5px 0 3px;
    z-index: 1999;
    position: fixed;
    top: 0;
    background: #fff;
    width: 100%;
} */



/* sp header分余白---*/
#main_mt {
    margin-top: 55px;
}

@media print,
screen and (min-width: 768px) {
    #main_mt {
        margin-top: 70px;
    }
}

@media print,
screen and (min-width: 992px) {
    #main_mt {
        margin-top: 95px;
    }
}

@media print,
screen and (min-width: 1200px) {
    #main_mt {
        margin-top: 95px;
    }
}

@media print,
screen and (min-width: 1800px) {
    #main_mt {
        margin-top: 95px;
    }
}



/* header
----------------------------------------------------------*/
#header_box {
    background: #fff;
    position: absolute;
    width: 100%;
    z-index: 999;
    top: 0;
    /*    left: 0%;*/

}




.logo_p {
    padding: 10px 0px 10px 0px;
}

@media print,
screen and (min-width: 768px) {
    .logo_p {
        padding: 15px 0px 15px 0px;
    }
}

@media print,
screen and (min-width: 992px) {
    .logo_p {
        padding: 20px 0px 20px 0px;
    }
}

@media print,
screen and (min-width: 1200px) {
    .logo_p {
        padding: 25px 0px 25px 0px;
    }
}

/**/
.logo_p2 {
    padding: 12px 0px 12px 0px;
}

@media print,
screen and (min-width: 768px) {
    .logo_p2 {
        padding: 10px 0px 10px 0px;
    }
}

@media print,
screen and (min-width: 992px) {
    .logo_p2 {
        padding: 10px 0px 0px 0px;
    }
}

@media print,
screen and (min-width: 1200px) {
    .logo_p2 {
        padding: 10px 0px 0px 0px;
    }
}

/**/


.header_tel {
    font-size: 16px;
    font-weight: 500;
}

@media print,
screen and (min-width: 768px) {
    .header_tel {
        font-size: 16px;
        line-height: 160%;
    }
}

@media print,
screen and (min-width: 992px) {
    .header_tel {
        font-size: 17px;
        line-height: 200%;
    }
}

.header_telnum {
    font-size: 26px;
}

.header_telnum .fas {
    font-size: 0.8em;
    margin-right: 5px;
}

@media print,
screen and (min-width: 768px) {
    .header_telnum {
        font-size: 26px;
    }
}

@media print,
screen and (min-width: 992px) {
    .header_telnum {
        font-size: 20px;
    }
}

@media print,
screen and (min-width: 1200px) {
    .header_telnum {
        font-size: 25px;
    }
}

.sp_tel {
    font-size: 160%;
    margin-top: 20px;
    text-align: right;
    color: #2293e3;
}



/* tel
----------------------------------------------------------*/
.tel_link a:link,
.tel_link a:visited {
    color: #081620;
    text-decoration: none
}

.tel_link a:hover {
    color: #081620;
    text-decoration: none
}

.tel_linkwhite a:link,
.tel_linkwhite a:visited {
    color: #fff;
    text-decoration: none
}

.tel_linkwhite a:hover {
    color: #fff;
    text-decoration: none
}

.tel_linkblue a:link,
.tel_linkblue a:visited {
    color: #2293e3;
    text-decoration: none
}

.tel_linkblue a:hover {
    color: #2293e3;
    text-decoration: none
}

/*---*/



/* sp_tel
----------------------------------------------------------*/
.sp_telicon {
    font-size: 35px;
    text-align: right;
    margin-top: 16px;
    color: #2293e3;
}

@media print,
screen and (min-width: 576px) {
    .sp_telicon {
        margin-top: 20px;
    }
}

.sp_telicon a:link,
.sp_telicon a:visited {
    color: #081620;
    text-decoration: none
}

.sp_telicon a:hover {
    color: #081620;
    text-decoration: none
}

.sp_telicon .fa {
    margin: 0;
}



/* megamenu
---------------------------------------------------- */
/*
.mega_mt{
    margin-top: 75px;
}

@media print,
screen and (min-width: 992px) {
    .mega_mt{
    margin-top: 30px;
}
}
*/

/* .megamenu_yohakunone .col-12 {
    padding-left: 0px;
    padding-right: 0px;
}
.megamenu_yohakunone .col-md-12 {
    padding-left: 0px;
    padding-right: 0px;
}  */

.menu>ul {
    font-family: "メイリオ", sans-serif, Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "sans-serif" !important;
    font-weight: 600;
}

/*右寄せ*/
@media print,
screen and (min-width: 992px) {
    .menu>ul {
        display: flex !important;
        justify-content: flex-end !important;
        /* align-items: center !important; */
        list-style: none !important;
        line-height: normal !important;
    }
}

/*右寄せend*/


/* .menu>ul>li a {
    font-weight: bold;
}

.menu>ul>li a {
    font-weight: bold;
} */

.menu li a:hover {
    color: #2293e3;
    text-decoration: none;
    -webkit-transition: 0.8s;
    -moz-transition: 0.8s;
    -o-transition: 0.8s;
    -ms-transition: 0.8s;
    transition: 0.8s;
}

.menu .active a:link,
.menu .active a:visited {
    color: #2293e3;
    text-decoration: none;
}

.menu>ul>li>ul.normal-sub img {
    margin-right: 10px;
}

/*PC*/
@media print,
screen and (min-width: 992px) {
    .menu>ul>li a {
        /* border-bottom: 1px solid #fff; */
    }

    .menu li a:hover {
        color: #2293e3;
        text-decoration: none;
        /* border-bottom: 1px solid #081620; */
    }

    .menu .active a:link,
    .menu .active a:visited {
        color: #2293e3;
        text-decoration: none;
        /* border-bottom: 1px solid #081620; */
    }
}

@media screen and (min-width:1200px) {
    .menu>ul>li a {
        border-bottom: none;
    }

    .menu li a:hover {
        border-bottom: none;
    }
}

/*アニメ*/
@media screen and (min-width:1200px) {
    .item-navi {
        position: relative;
        z-index: 1;
    }

    .item-navi:after {
        content: '';
        position: absolute;
        left: 0;
        bottom: -5px;
        /*テキストからの距離*/
        width: 0%;
        /*初期状態では下線非表示*/
        height: 1px;
        /*下線の高さ*/
        background: #081620;
        /*下線の色*/
        z-index: -1;
        transition: all 0.4s;
        /*アニメーション速度*/
    }

    .navi:hover .item-navi:after {
        width: 100%;
        /*hover時に表示*/
    }
}

/*スクロール出現naviボタン*/

.navibtn {
    text-align: center;
    display: block;
    color: #fff;
    font-weight: 400;
}

.navibtn a:link,
.navibtn a:visited {
    color: #fff;
    text-decoration: none;
    padding: 7px 5px;
    display: block;
    background: #2293e3;
}

.navibtn a:hover {
    color: #fff !important;
    background: #656565;
    display: block;
    padding: 7px 5px;
    text-decoration: none;
    -webkit-transition: 0.8s;
    -moz-transition: 0.8s;
    -o-transition: 0.8s;
    -ms-transition: 0.8s;
    transition: 0.8s;
}

@media print,
screen and (min-width: 992px) {

    .navibtn a:link,
    .navibtn a:visited {
        padding: 10px;
    }

    .navibtn a:hover {
        padding: 10px;
    }
}

@media print,
screen and (min-width: 1200px) {

    .navibtn a:link,
    .navibtn a:visited {
        padding: 10px;
    }

    .navibtn a:hover {
        padding: 10px;
    }
}


/*sp*/
.menu-mobile {
    font-weight: bold;
    background: #fff;
}


.menu-mobile:link,
.menu-mobile:visited {
    text-decoration: none;
    color: #081620;
}

.menu a:link,
.menu a:visited {
    text-decoration: none;
}



/*navi数が多いとき*/
@media only screen and (max-width: 991px) {
    .sp_header {
        z-index: 1999;
        position: fixed;
        top: 0;
        width: 100%;
        background: #fff;
    }

    /*navi数が多いとき*/
    .sp_header .navi100 {
        position: fixed;
        left: 0;
        top: 59px;
        width: 100%;
        height: 100%;
        overflow-y: scroll;
        padding-bottom: 60px;
    }

    @media screen and (min-width:540px) {
        .sp_header .navi100 {
            top: 60px;
            padding-bottom: 80px;
        }
    }

    @media screen and (min-width:768px) {
        .sp_header .navi100 {
            top: 8%;
            width: 100%;
            background: #fff;
            height: 65%;
        }
    }

    /*
    .menu-container {
    z-index: 9999;
    position: fixed;
    top: 0;
    width: 100%;
}
.navi100{
    position: fixed;
    left: 0;
    width: 100%;
    height:100%;
    overflow-y: scroll; 
    padding-bottom: 60px;
}
*/
    .show-on-mobile li {
        background: #fff;
    }
}

/*
@media only screen and (max-width: 767px) {
    .menu{
        width: 100%;
        left: 0;
    top: 0;
    z-index:999;
    -moz-background-size: 100% auto;
    background-size: 100% auto;
    position: fixed;
        height: 100%;
 overflow: auto;
 -webkit-overflow-scrolling: touch;
    }
    
    .show-on-mobile li{
        background: #fff;
    }
}
*/



/*
@media only screen and (max-width: 767px) {
    .header_bg {
    width: 100%;
    top: 0;
    z-index:9999;
    -moz-background-size: 100% auto;
    background-size: 100% auto;
    position: fixed;
    background-color: #fff;
}    
    
}
*/
/*画像とテキスト横並び*/
.megalist {
    display: flex;
    justify-content: start;
    align-items: center;
}

/**/

/*IE contact.htmlで必要*/
.style_none li {
    list-style: none;
}

/*スマホ　ナビの中に電話*/

.mega_tel {
    padding: 1.5em;
    width: 100%;
    display: block;
}

.menu-mobile img {
    display: none;
}


/* navi
---------------------------------------------------- */
/*boot打消し*/

.navbar {
    padding: 0rem 0rem 0;
    margin: 0 auto;
}

/*navi一つあたりの余白*/
.navbar-expand-md .navbar-nav .nav-link {
    padding-right: 0;
    padding-left: 20px;
}

@media print,
screen and (min-width: 768px) {
    .navbar-expand-md .navbar-nav .nav-link {
        padding-right: 0;
        padding-left: 0;
    }
}

@media print,
screen and (min-width: 1200px) {
    .navbar-expand-md .navbar-nav .nav-link {
        padding-right: 0;
        padding-left: 0;
    }
}


/*sp用*/
.navbar-toggler-icon {
    width: 1.3em;
    height: 1.3em;
}

/*トグル濃さ*/
.navbar-light .navbar-toggler {
    color: rgba(255, 255, 255, 1);
    border-color: rgba(20, 117, 217, 1);
}

/*トグル背景*/
.bg-light {
    background-color: #2293e3 !important;
    margin-right: 15px;
    margin-top: 15px;
    /*boot打消し*/
}


/*大きさ*/

.navbar-toggler {
    margin: 0px 0px 0;
}



.navbar-dark .navbar-toggler {
    border: none;
}


.navbar-nav {
    z-index: 9999;
}

@media print,
screen and (min-width: 768px) {
    .navbar-nav {
        padding: 0px 0 0;
    }
}

.navbar button:focus {
    outline: none;
    outline: 0px auto -webkit-focus-ring-color;
}


/* .padding-none .col-md-6 {
    padding-right: 0;
    padding-left: 0;
}


.padding-none .col-lg-7 {
    padding-right: 0;
    padding-left: 0;
} */



/*-ナビ背景黒--*/
.bg-dark {
    background-color: #081620 !important;
}

a.bg-dark:hover,
a.bg-dark:focus,
button.bg-dark:hover,
button.bg-dark:focus {
    background-color: #081620 !important;
}

/*---*/

/*-SP navi文字色--*/


.navbar-light .navbar-nav .nav-link {
    color: #081620;
}

.navbar-light .navbar-nav .nav-link:hover {
    color: #2293e3;
}

.navbar-light .navbar-nav .nav-link:focus {
    color: #081620;
}

.navbar-light .navbar-nav .nav-link.disabled {
    color: #081620;

}

.navbar-light .navbar-nav .show>.nav-link,
.navbar-light .navbar-nav .active>.nav-link,
.navbar-light .navbar-nav .nav-link.show,
.navbar-light .navbar-nav .nav-link.active {
    color: #2293e3;
    background: #eee;
}

.navbar-light.navbar-text {
    color: #081620;
}

.navbar-light .navbar-text a {
    color: #081620;
    text-decoration: none;
}

.navbar-light .navbar-text a:hover,
.navbar-light .navbar-text a:focus {
    color: #081620;
    text-decoration: none;
}

/*---*/

/*--SPnavi　下線-*/
.navbar-nav li {
    border-bottom: 1px solid #ccc;
}

/*--PCnavi　下線消し 文字余白サイズ-*/
.navbar-nav li {
    font-size: 17px;
}

@media print,
screen and (min-width: 768px) {

    .navbar-nav li {
        border-bottom: none;
        font-size: 76%;
        margin: 16px 10px 0px 0px;
    }
}

@media print,
screen and (min-width: 992px) {
    .navbar-nav li {
        font-size: 16px;
        margin: 15px 0px 0px 17px;
    }
}

@media print,
screen and (min-width: 1200px) {
    .navbar-nav li {
        font-size: 16px;
        margin: 30px 0px 0px 40px;
    }
}

/*--SP navi-*/
.navbar-nav a:link,
.navbar-nav a:visited {
    text-decoration: none;
    padding: 15px 10px;
    display: block;
}

.navbar-nav a:hover {
    display: block;
    padding: 15px 10px;
    text-decoration: none;
}

@media print,
screen and (min-width: 768px) {

    .navbar-nav a:link,
    .navbar-nav a:visited {
        padding: 0px 10px;
    }

    .navbar-nav a:hover {
        padding: 0px 10px;
        color: #2293e3;
        -webkit-transition: 0.8s;
        -moz-transition: 0.8s;
        -o-transition: 0.8s;
        -ms-transition: 0.8s;
        transition: 0.8s;
        /* border-bottom: 2px solid #2293e3; */
    }
}

@media screen and (min-width:1200px) {
    .navbar-nav a:hover {
        color: #2293e3;
        /* border-bottom: none; */
    }
}

@media print,
screen and (min-width: 768px) {

    .navbar .navbar-nav .show>.nav-link,
    .navbar .navbar-nav .active>.nav-link,
    .navbar .navbar-nav .nav-link.show,
    .navbar .navbar-nav .nav-link.active {
        color: #2293e3;
        /* border-bottom: 2px solid #2293e3; */
    }

}

/**/

/*ドロップダウン*/

.dropdown-menu {
    border-bottom: none !important;
    /*boot.css修正*/
}


.border_b {
    border-bottom: 1px solid #0c4989;
}

.dropdown-menu {
    padding: 0rem 0;
    border-radius: 0;
}

.dropdown-item {
    font-size: 15px;
    background-color: #0e5299;
}

@media print,
screen and (min-width: 768px) {
    .dropdown-item {
        font-size: 15px;
        border-bottom: 1px solid #0c4989;

    }
}

@media print,
screen and (min-width: 992px) {
    .dropdown-item {
        font-size: 15px;
    }
}

.dropdown-item:hover,
.dropdown-item:focus {
    color: #fff;
    background-color: #656565;
}

.dropdown-menu a:link,
.dropdown-menu a:visited {
    padding: 10px 7px 10px;
    border-bottom: 1px solid #0c4989;
    color: #fff;
}

.dropdown-menu a:hover {
    padding: 10px 7px 10px;
}

@media print,
screen and (min-width: 768px) {
    .dropdown-menu a:hover {
        border-bottom: 1px solid #0c4989;
    }
}

.dropdown-menu .active {
    background-color: #656565;
    color: #081620;
}








/*英語小文字*/
/* .nav-item span {
    font-size: 11px;
    color: #2293e3;
    font-family: 'Roboto', sans-serif;
    font-weight: 100;
    margin-left: 5px;
}

@media print,
screen and (min-width: 768px) {
    .nav-item span {
        display: block;
        font-size: 11px;
        text-align: center;
        line-height: normal;
    }
} */



/* nav
---------------------------------------------------- */
@media screen and (min-width:768px) {

    .cb-header {
        position: fixed;
        /* ヘッダーバーを固定 */
        top: -155px;
        left: 0;
        width: 100%;
        z-index: 1999;
        background: #fff;
    }

    .cb-header nav {
        background-color: rgba(255, 255, 255, 1);
    }

}


/* flex
---------------------------------------------------- */
.flex-container {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}


/* btn
---------------------------------------------------- */

/**/


/* .read_more {
    height: 55px;
    margin-left: 0;
    padding-left: 72px;
}

.read_more::after {
    left: 20px;
}

.read_more_text {
    font-size: 1.6rem;
} */

.read_more_circle {
    width: 55px;
    height: 55px;
}

.read_more {
    position: relative;
    display: inline-flex;
    align-items: center;
    /* height: 50px; */
    margin-left: -37px;
    padding-left: 80px;
    line-height: 1.8;
}

@media print,
screen and (min-width: 768px) {
    .read_more {
        position: relative;
        display: inline-flex;
        align-items: center;
        /* height:50px; */
        margin-left: -37px;
        padding-left: 128px;
        line-height: 1.8;
    }
}

@media print,
screen and (min-width:992px) {
    .read_more {
        position: relative;
        display: inline-flex;
        align-items: center;
        height: 80px;
        margin-left: -37px;
        padding-left: 128px;
        line-height: 1.8;
    }
}

@media print,
screen and (min-width:1200px) {
    .read_more {
        position: relative;
        display: inline-flex;
        align-items: center;
        height: 148px;
        margin-left: -37px;
        padding-left: 128px;
        line-height: 1.8;
    }
}


.read_more::after {
    content: '';
    position: absolute;
    width: 16px;
    height: 16px;
    left: 40px;
    background: url("../images/arrow.png") center no-repeat;
    z-index: 2;
}

@media print,
screen and (min-width: 768px) {
    .read_more::after {
        content: '';
        position: absolute;
        width: 16px;
        height: 16px;
        left: 68px;
        background: url("../images/arrow.png") center no-repeat;
        z-index: 2;
    }
}


.read_more_text {
    font-size: 1.1rem;
    font-weight: 700;
    transition: .2s ease-out;
}

.read_more_circle {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: 90px;
    height: 90px;
    border-radius: 50%;
    overflow: hidden;
    z-index: 0;
}

@media print,
screen and (min-width: 768px) {
    .read_more_circle {
        position: absolute;
        top: 50%;
        left: 0;
        transform: translateY(-50%);
        width: 148px;
        height: 148px;
        border-radius: 50%;
        overflow: hidden;
        z-index: 0;
    }
}


.read_more_circle::before {
    transform: scale(0.5);
    content: '';
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    border-radius: 50%;
    transition: transform .5s cubic-bezier(.19, 1, .22, 1);
}


.read_more_circle::after {
    transform: translateY(-50%);
    content: attr(data-text);
    position: absolute;
    top: 50%;
    left: 128px;
    /* border-bottom: 1px solid transparent; */
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1.8;
    color: #FFF;
    white-space: nowrap;
    opacity: 0;
    transition: opacity .5s cubic-bezier(.19, 1, .22, 1);
}

.read_more.inversion .read_more_text {
    color: #081620;
}

.read_more.inversion .read_more_circle::before {
    background: #081620;
}

@media print,
screen and (min-width: 1200px) {
    .read_more:hover {
        opacity: 1;
    }

    .read_more:hover .read_more_circle::before {
        transform: scale(1);
        transition-duration: 0.3s;
    }

    .read_more:hover .read_more_circle::after {
        opacity: 1;
    }

    .read_more:hover .read_more_text {
        border-bottom-color: transparent !important;
    }
}

.btn a:link,
.btn a:visited {
    text-decoration: none;
}

.btn a:hover {
    text-decoration: none;
}

/**/




.btn1 {
    text-align: center;
    display: block;
    color: #fff;
}

.btn1 a:link,
.btn1 a:visited {
    color: #fff;
    text-decoration: none;
    padding: 7px 5px;
    display: block;
    background: #2293e3;
    border-bottom-left-radius: 20px;
}

.btn1 a:hover {
    background: #656565;
    display: block;
    padding: 7px 5px;
    text-decoration: none;
    -webkit-transition: 0.8s;
    -moz-transition: 0.8s;
    -o-transition: 0.8s;
    -ms-transition: 0.8s;
    transition: 0.8s;
}

@media print,
screen and (min-width: 992px) {

    .btn1 a:link,
    .btn1 a:visited {
        padding: 10px 0px;
    }

    .btn1 a:hover {
        padding: 10px 0px;
    }
}

@media print,
screen and (min-width: 1200px) {

    .btn1 a:link,
    .btn1 a:visited {
        padding: 15px 0px;
    }

    .btn1 a:hover {
        padding: 15px 0px;
    }
}

.btn1 .far {
    font-size: 1.5em;
}

/**/


/*背景が流れる（左から右）*/
/*== ボタン共通設定 */
.btn_anime {
    /*アニメーションの起点とするためrelativeを指定*/
    position: relative;
    overflow: hidden;
    /*ボタンの形状*/
    text-decoration: none;
    display: block;
    border: 1px solid #2293e3;
    border-radius: 60px;
    background: #2293e3;
    padding: 20px 10px;
    text-align: center;
    outline: none;
    /*アニメーションの指定*/
    transition: ease .2s;
}

/*ボタン内spanの形状*/
.btn_anime span {
    position: relative;
    z-index: 3;
    /*z-indexの数値をあげて文字を背景よりも手前に表示*/
    color: #fff;
    font-weight: bold;
    font-size: 1.5em;
}

.btn_anime:hover span {
    color: #2293e3;
}

/*== 背景が流れる（左から右） */
.bgleft:before {
    content: '';
    /*絶対配置で位置を指定*/
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    /*色や形状*/
    background: #fff;
    /*背景色*/
    width: 100%;
    height: 100%;
    /*アニメーション*/
    transition: transform .6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
    transform: scale(0, 1);
    transform-origin: right top;
}

/*hoverした際の形状*/
.bgleft:hover:before {
    transform-origin: left top;
    transform: scale(1, 1);
}

@media print,
screen and (min-width: 768px) {
    .btn_anime {
        width: 450px;
        font-size: 1.3em;
        padding: 30px 10px;
    }
}

@media print,
screen and (min-width: 992px) {
    .btn_anime {
        width: 600px;
        padding: 40px 10px;
    }
}

/*-------背景が流れる（左から右）ここまで----------*/


/*背景が流れる（左から右）*/
/*== ボタン共通設定 */
.btn_anime2 {
    /*アニメーションの起点とするためrelativeを指定*/
    position: relative;
    overflow: hidden;
    /*ボタンの形状*/
    text-decoration: none;
    display: block;
    border: 1px solid #2293e3;
    border-radius: 60px;
    background: #2293e3;
    padding: 15px 10px;
    text-align: center;
    outline: none;
    /*アニメーションの指定*/
    transition: ease .2s;
}

@media print,
screen and (min-width:992px) {
    .btn_anime2 {
        padding: 15px 10px;
    }
}

/*ボタン内spanの形状*/
.btn_anime2 span {
    position: relative;
    z-index: 3;
    /*z-indexの数値をあげて文字を背景よりも手前に表示*/
    color: #fff;
}

.btn_anime2:hover span {
    color: #2293e3;
}

/*== 背景が流れる（左から右） */
.bgleft2:before {
    content: '';
    /*絶対配置で位置を指定*/
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    /*色や形状*/
    background: #fff;
    /*背景色*/
    width: 100%;
    height: 100%;
    /*アニメーション*/
    transition: transform .6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
    transform: scale(0, 1);
    transform-origin: right top;
}

/*hoverした際の形状*/
.bgleft2:hover:before {
    transform-origin: left top;
    transform: scale(1, 1);
}

@media print,
screen and (min-width: 1200px) {
    .btn_anime2 {
        width: 290px;
    }
}








/*問い合わせページメールボタン*/

.hover_btn1 {
    text-align: center;
    display: block;
    color: #fff;
}

.hover_btn1 a:link,
.hover_btn1 a:visited {
    color: #fff;
    text-decoration: none;
    padding: 7px 5px;
    display: block;
    background: #656565;
}

.hover_btn1 a:hover {
    background: #656565;
    display: block;
    padding: 7px 5px;
    text-decoration: none;
    -webkit-transition: 0.8s;
    -moz-transition: 0.8s;
    -o-transition: 0.8s;
    -ms-transition: 0.8s;
    transition: 0.8s;
}

@media print,
screen and (min-width: 992px) {

    .hover_btn1 a:link,
    .hover_btn1 a:visited {
        padding: 15px 5px;
    }

    .hover_btn1 a:hover {
        padding: 15px 5px;
    }
}

/*------*/

.morebtn {
    text-align: center;
    display: block;
    font-weight: bold;
}

.morebtn a:link,
.morebtn a:visited {
    color: #fff;
    text-decoration: none;
    padding: 20px 10px;
    display: block;
    background: #081620;
    border-radius: 30px;
}

.morebtn a:hover {
    color: #fff;
    background: #656565;
    border-radius: 30px;
    display: block;
    padding: 20px 10px;
    text-decoration: none;
    -webkit-transition: 0.8s;
    -moz-transition: 0.8s;
    -o-transition: 0.8s;
    -ms-transition: 0.8s;
    transition: 0.8s;
}

@media print,
screen and (min-width: 768px) {
    .morebtn {
        width: 300px;
        font-weight: bold;
    }

    .morebtn a:link,
    .morebtn a:visited {
        padding: 15px 10px;
    }

    .morebtn a:hover {
        padding: 15px 10px;
    }
}





/*--------*/


.morebtn2 {
    text-align: center;
    display: block;
}

.morebtn2 a:link,
.morebtn2 a:visited {
    color: #fff;
    text-decoration: none;
    padding: 20px 10px;
    display: block;
    background: #1a49ba;
}

.morebtn2 a:hover {
    color: #fff;
    background: #656565;
    display: block;
    padding: 20px 10px;
    text-decoration: none;
    -webkit-transition: 0.8s;
    -moz-transition: 0.8s;
    -o-transition: 0.8s;
    -ms-transition: 0.8s;
    transition: 0.8s;
}

@media print,
screen and (min-width: 992px) {

    .morebtn2 a:link,
    .morebtn2 a:visited {
        padding: 20px 10px;
    }

    .morebtn2 a:hover {
        padding: 20px 10px;
    }
}

/*--------*/


/*--------*/


.morebtn_white {
    text-align: center;
    display: block;
    font-weight: bold;

}

.morebtn_white a:link,
.morebtn_white a:visited {
    color: #2293e3;
    background: #fff;
    text-decoration: none;
    padding: 20px 10px;
    display: block;
    border-radius: 30px;
}

.morebtn_white a:hover {
    color: #fff;
    background: #656565;
    display: block;
    padding: 20px 10px;
    text-decoration: none;
    -webkit-transition: 0.8s;
    -moz-transition: 0.8s;
    -o-transition: 0.8s;
    -ms-transition: 0.8s;
    transition: 0.8s;
}

@media print,
screen and (min-width: 992px) {

    .morebtn_white a:link,
    .morebtn_white a:visited {
        padding: 20px 10px;
    }

    .morebtn_white a:hover {
        padding: 20px 10px;
    }
}

@media print,
screen and (min-width: 768px) {
    .morebtn_white {
        width: 300px;
    }
}

/*--------*/

.circlebtn {
    text-align: center;
    display: block;
}

.circlebtn a:link,
.circlebtn a:visited {
    color: #fff;
    text-decoration: none;
    display: block;
    text-align: center;
    margin: 0 auto;
    width: 100px;
    height: 100px;
    line-height: 100px;
    border-radius: 50%;
    background: #2293e3;
    font-weight: bold;
    font-size: 2em;
}

.circlebtn a:hover {
    color: #fff;
    background: #656565;
    display: block;
    text-decoration: none;
    -webkit-transition: 0.8s;
    -moz-transition: 0.8s;
    -o-transition: 0.8s;
    -ms-transition: 0.8s;
    transition: 0.8s;
}


/*--------*/






a.btn_mail,
button.btn {
    font-weight: 700;
    line-height: 1.5;
    position: relative;
    display: inline-block;
    width: 100%;
    padding: 20px 5px;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
    text-align: center;
    vertical-align: middle;
    text-decoration: none;
    color: #fff;
    border-radius: 30px;
}

a.btn-gradient {
    font-weight: normal;
    color: #fff;
    border-radius: 0;
    background-image: -webkit-linear-gradient(to right, #f0681b, #f0681b);
    background-image: linear-gradient(to right, #f0681b, #f0681b);
    border-radius: 40px;
}

a.btn-gradient:after {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    content: "";
    -webkit-transition: all 0.5s;
    transition: all 0.5s;
    background-image: -webkit-linear-gradient(to right, #f0931b, #f0681b);
    background-image: -webkit-linear-gradient(to right, #f0931b, #f0681b);
    background-image: linear-gradient(to right, #f0931b, #f0681b);
    border-radius: 40px;
}

a.btn-gradient p {
    position: relative;
    z-index: 1;
}

a.btn-gradient:hover {
    color: #fff;
}

a.btn-gradient:hover:after {
    opacity: 0;
}

/*****/

/*添付取り消しボタン*/
.input-group-append .btn {
    font-weight: 700;
    line-height: 1.5;
    position: relative;
    display: inline-block;
    width: 100%;
    padding: 6px 5px !important;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    -webkit-transition: all 0.3s;
    transition: all 0.3s;
    text-align: center;
    vertical-align: middle;
    text-decoration: none;
    color: #fff;
    border-radius: 0px;
    margin-top: 5px;
}

/**/

/* box
----------------------------------------------------------*/
.hidden {
    overflow: hidden;
}


.text_box {
    padding: 10px;
    border: 1px solid #081620;
    border-radius: 10px;
}

@media print,
screen and (min-width: 768px) {
    .text_box {
        padding: 15px;
    }
}

@media print,
screen and (min-width: 992px) {
    .text_box {
        padding: 20px;
    }
}

@media print,
screen and (min-width: 1200px) {
    .text_box {
        padding: 40px;
    }
}

/**/


.text_box2 {
    padding: 20px;
    border: 1px solid #081620;
}

@media print,
screen and (min-width: 768px) {
    .text_box2 {
        padding: 20px;
    }
}

@media print,
screen and (min-width: 992px) {
    .text_box2 {
        padding: 40px;
    }
}

/**/

.text_box3 {
    padding: 10px;
    border-radius: 10px;
    background: #fff;
}

@media print,
screen and (min-width: 768px) {
    .text_box3 {
        padding: 15px;
    }
}

@media print,
screen and (min-width: 992px) {
    .text_box3 {
        padding: 20px;
    }
}

@media print,
screen and (min-width: 1200px) {
    .text_box3 {
        padding: 40px;
    }
}




/* マーカーアニメーション
----------------------------------------------------------*/
.marker {
    background: linear-gradient(transparent 50%, rgba(68, 220, 168) 50%);
    display: inline;

    /* 背景の繰り返しを停止 */
    background-repeat: no-repeat;

    /* マーカーの横方向を0にして縮める */
    background-size: 0% 100%;

    /* マーカーが引かれる速度を指定 */
    transition: background-size 1.5s;
}

/* マーカーが引かれる際に付与するクラス */
.marker.on {
    /* 横方向を100%にして、マーカーを引く */
    background-size: 100% 100%;
}

/**/


/* anime
---------------------------------------------------- */

.grid figure figcaption {
    padding: 1em;
}

.effect-bubba h3 {
    font-size: 20px;
    font-weight: bold !important;
}

@media (min-width: 768px) {
    .effect-bubba h3 {
        font-size: 21px;
    }
}

@media (min-width: 992px) {
    .effect-bubba h3 {
        font-size: 25px;
    }
}

.grid figure p {
    font-size: 16px;
    text-transform: none;
    /* 大文字に変換させない */
}

@media (min-width: 768px) {
    .grid figure p {
        font-size: 16px;
    }
}

.effect-bubba {
    margin-bottom: 0px;
    height: auto;
    max-height: 400px;
}

@media (min-width: 768px) {
    .effect-bubba {
        margin-bottom: 0px;
        height: auto;
        max-height: 600px;
    }
}

figure.effect-bubba h3 {
    padding-top: 40%;
}

@media (min-width: 768px) {
    figure.effect-bubba h3 {
        padding-top: 60%;
    }
}

@media (min-width: 992px) {
    figure.effect-bubba h3 {
        padding-top: 60%;
    }
}

.grid figure {
    margin-bottom: 10px;
}


/* アンカー
----------------------------------------------------------*/
.anchor {
    padding-top: 70px;
    margin-top: -70px;
}

@media screen and (min-width:768px) {
    .anchor {
        padding-top: 100px;
        margin-top: -100px;
    }
}

@media screen and (min-width:992px) {
    .anchor {
        padding-top: 130px;
        margin-top: -130px;
    }
}

.anchor2 {
    padding-top: 70px;
    margin-top: -70px;
}

@media screen and (min-width:768px) {
    .anchor2 {
        padding-top: 80px;
        margin-top: -80px;
    }
}

@media screen and (min-width:992px) {
    .anchor2 {
        padding-top: 100px;
        margin-top: -100px;
    }
}


/* h2
---------------------------------------------------- */
/*タイピング*/
.TextTyping span {
    display: none;
}

/*文字列後ろの線の設定*/
.TextTyping::after {
    content: "|";
    animation: typinganime .8s ease infinite;
}

@keyframes typinganime {
    from {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

/**/


#h2_bg {
    background: url(../images/h2_bg.jpg) no-repeat scroll 50% 50% / cover #e7f7fe;
}

#service_h2 {
    background: url(../images/service_h2.jpg) no-repeat scroll 50% 50% / cover #e7f7fe;
}

#recruit_h2 {
    background: url(../images/recruit_h2.jpg) no-repeat scroll 50% 50% / cover #e7f7fe;
}

#company_h2 {
    background: url(../images/company_h2.jpg) no-repeat scroll 50% 50% / cover #e7f7fe;
}

#contact_h2 {
    background: url(../images/contact_h2.jpg) no-repeat scroll 50% 50% / cover #e7f7fe;
}


.h2_tit {
    text-align: center;
    padding: 10px 0px 60px;
    font-size: 150%;
    line-height: 120%;
    font-weight: 700;
    /* -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; */
    color: #fff;
    text-shadow: 2px 2px 8px #111;
    letter-spacing: 0.15em;
    font-family: "M PLUS 1p", sans-serif;
}

@media print,
screen and (min-width: 768px) {
    .h2_tit {
        padding: 10px 0px 60px;
        font-size: 30px;
        letter-spacing: 0.15em;

    }
}

@media print,
screen and (min-width: 992px) {
    .h2_tit {
        padding: 10px 0px 110px;
        font-size: 42px;
    }
}

.h2_sub {
    text-align: center;
    font-weight: normal;
    font-size: 110%;
    line-height: 1.4em;
    color: #fff;
    text-shadow: 2px 2px 8px #111;
    letter-spacing: 0.10em;
    padding-top: 60px;
}

@media print,
screen and (min-width: 768px) {
    .h2_sub {
        font-size: 110%;
        padding-top: 60px;
    }
}

@media print,
screen and (min-width: 992px) {
    .h2_sub {
        font-size: 120%;
        padding-top: 110px;
    }
}

/**/


/* スクロール
---------------------------------------------------- */
.mainscroll {
    position: absolute;
    bottom: 0%;
    right: 3%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    z-index: 1000;
}


.mainscroll a {
    display: inline-block;
    position: absolute;
    /*  right: 40px;*/
    bottom: 0;
    z-index: 100;
    padding: 10px 10px 80px;
    overflow: hidden;
    color: #fff;
    font-size: 13px;
    line-height: 1;
    letter-spacing: .2em;
    /* text-transform: uppercase; */
    text-decoration: none;
    writing-mode: vertical-lr;
    /*縦書き*/
    font-family: 'Open Sans', sans-serif;
}

.mainscroll a::after {
    content: '';
    position: absolute;
    bottom: 0%;
    left: 50%;
    width: 1px;
    height: 70px;
    background: #fff;
}

.mainscroll a::after {
    animation: sdl 1.5s cubic-bezier(1, 0, 0, 1) infinite;
}

@keyframes sdl {
    0% {
        transform: scale(1, 0);
        transform-origin: 0 0;
    }

    50% {
        transform: scale(1, 1);
        transform-origin: 0 0;
    }

    50.1% {
        transform: scale(1, 1);
        transform-origin: 0 100%;
    }

    100% {
        transform: scale(1, 0);
        transform-origin: 0 100%;
    }
}

#mainjump {
    padding-top: 220px;
    margin-top: -220px;
}


/* mainimage
---------------------------------------------------- */
/* 画面用 */
@media screen {
    #main_print {
        display: none;
    }
}

/* 印刷用 */
@media print {
    #main_print img {
        margin: 0 auto;
    }
}



.still img {
    height: 65vh;
    width: 100%;
    object-fit: cover;
}

@media (min-width: 768px),
print {
    .still img {
        height: 57vh;
        object-fit: cover;
    }
}

@media (min-width: 992px),
print {
    .still img {
        width: 100%;
        height: auto;
    }
}


#mainimage {
    position: relative;
    width: 100%;
    overflow: hidden;
}

#mainimage .main_moji {
    z-index: 3;
    position: absolute;
    top: 15%;
    left: 0%;
    width: 100%;
    height: auto;
}

#mainimage .main_moji img {
    width: 90%;
    max-width: 599px;
    margin: 0 auto;
}

@media print,
screen and (min-width: 768px) {
    #mainimage .main_moji {
    top:10%;
}
#mainimage .main_moji img {
    width: 50%;
    max-width: 599px;
    margin: 0 auto;
}
}

@media print,
screen and (min-width: 992px) {
    #mainimage .main_moji img {
        width:45%;
    }
    #mainimage .main_moji {
    top:8%;
}
}


#mainimage .main_moji h2 {
    position: relative;
    z-index: 0;
    max-width: 599px;
    margin: 0 auto;
}

@media print,
screen and (min-width: 1200px) {
    #mainimage .main_moji img {
        width:500px;
    }
    #mainimage .main_moji {
    top:13%;
}
}
@media print,
screen and (min-width: 1400px) {
     #mainimage .main_moji img {
        width:540px;
    }
    #mainimage .main_moji {
    top:15%;
}
}
@media print,
screen and (min-width: 1600px) {
     #mainimage .main_moji img {
        width:599px;
    }
    #mainimage .main_moji {
    top:18%;
}
}

#mainimage .img-fluid {
    display: block;
}


/* mainアニメーション
---------------------------------------------------- */
/*ぼかし*/
@media print {
    img.bokashi {
        opacity: 1 !important;
        transform: none !important;
    }
}

img.bokashi {
    opacity: 0;
    -moz-transition: -moz-transform 0.5s linear;
    -webkit-transition: -webkit-transform 0.5s linear;
    -o-transition: -o-transform 0.5s linear;
    -ms-transition: -ms-transform 0.5s linear;
    transition: transform 0.5s linear;
    -webkit-animation-duration: 1.5s;
    animation-duration: 1.5s;
    -webkit-animation-fill-mode: both;
    animation-fill-mode: both;
}

.img-blur {
    -webkit-animation-name: imageBlur;
    animation-name: imageBlur;
    opacity: 1;
    transition: .8s;
}

@-webkit-keyframes imageBlur {
    from {
        opacity: 0;
        -webkit-filter: blur(15px);
        -moz-filter: blur(15px);
        -ms-filter: blur(15px);
        -o-filter: blur(15px);
        filter: blur(15px);
    }

    to {
        opacity: 1;
        -webkit-filter: blur(0px);
        -moz-filter: blur(0px);
        -ms-filter: blur(0px);
        -o-filter: blur(0px);
        filter: blur(0px);
    }
}

@keyframes imageBlur {
    from {
        opacity: 0;
        -webkit-filter: blur(15px);
        -moz-filter: blur(15px);
        -ms-filter: blur(15px);
        -o-filter: blur(15px);
        filter: blur(15px);
    }

    to {
        opacity: 1;
        -webkit-filter: blur(0px);
        -moz-filter: blur(0px);
        -ms-filter: blur(0px);
        -o-filter: blur(0px);
        filter: blur(0px);
    }
}




/*------画像を徐々に表示------*/
@media print {
    .img-wrap {
        opacity: 1 !important;
        transform: none !important;
    }
}


.img-wrap {
    opacity: 0;
}

.img-animation {
    animation: img-opacity 2s cubic-bezier(0.4, 0, 0.2, 1) forwards;
    overflow: hidden;
    position: relative;
}

.img-animation::before {
    animation: img-animation 2s cubic-bezier(0.4, 0, 0.2, 1) forwards;
    background: #fff;
    content: '';
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 1;
}

.blue.img-animation::before {
    background: #666;
}

@keyframes img-opacity {
    100% {
        opacity: 1;
    }
}

@keyframes img-animation {
    100% {
        transform: translateX(100%);
    }
}





/* 新着
----------------------------------------------------------*/

.news_table {
    width: 100%;
    border-collapse: collapse;
    line-height: 1.6em;
}

.news_table th {
    width: 100%;
    padding: 15px 10px 2px 10px;
    display: block;
    font-family: 'Roboto', sans-serif;
    font-weight: 300;
}

.news_table td {
    width: 100%;
    padding: 0px 10px 15px 10px;
    display: block;
    word-break: break-all;
    border-bottom: 1px solid #e1ecee;
}

.new {
    margin-left: 10px;
    font-family: 'Roboto', sans-serif;
    font-size: 15px;
    line-height: 1.0em;
    color: #ff6600;
    font-weight: bold;
}

.news_table td a:link,
.news_table td a:visited {
    text-decoration: underline;
}

.news_table a.btn_more {
    text-decoration: none !important;
}

@media print,
screen and (min-width: 768px) {
    .news_table th {
        width: 20%;
        padding: 15px 10px;
        vertical-align: top;
        text-align: left;
        display: table-cell;
        border-bottom: 1px solid #e1ecee;
        font-size: 17px;
    }

    .news_table td {
        width: 100%;
        padding: 15px 10px;
        display: table-cell;
    }
}

@media print,
screen and (min-width: 992px) {
    .news_table th {
        width: 18%;
        padding: 25px 10px;
    }

    .news_table td {
        padding: 25px 10px;
    }
}

.news_waku {
    padding: 20px 20px;
    border-collapse: collapse;
}

@media print,
screen and (min-width: 992px) {
    .news_waku {
        padding: 20px;
    }
}

.news_scroll {
    max-height: 200px;
    overflow-y: scroll;
    padding-right: 10px;
    z-index: 1;
}

@media print,
screen and (min-width: 768px) {
    .news_scroll {
        max-height: 350px;
    }
}

.newsbtn {
    display: block;
    font-size: 14px;
    margin-top: 10px;
    margin-right: 10px;
    float: left;
}

.newsbtn a:link,
.newsbtn a:visited {
    color: #081620;
    text-decoration: none !important;
    padding: 5px;
    border: 1px solid #081620;
    border-radius: 10px;
}

.newsbtn a:hover {
    color: #fff;
    background: #081620;
    padding: 5px;
    text-decoration: none !important;
    -webkit-transition: 0.8s;
    -moz-transition: 0.8s;
    -o-transition: 0.8s;
    -ms-transition: 0.8s;
    transition: 0.8s;
    border-radius: 10px;
}

.news_more {
    margin-right: 10px;
    margin-top: 10px;
    font-size: 90%;
    line-height: normal;
    float: left;
}

.news_more a:link,
.news_more a:visited {
    color: #fff;
    background: #081620;
    /* border: 1px solid #081620; */
    display: inline-block;
    text-decoration: none !important;
    padding: 4px 5px;
    /* border-radius: 10px; */
}

.news_more a:hover {
    color: #fff;
    /* border: 1px solid #081620; */
    background: #999;
    -webkit-transition: 0.8s;
    -moz-transition: 0.8s;
    -o-transition: 0.8s;
    -ms-transition: 0.8s;
    transition: 0.8s;
    padding: 4px 5px;
    /* border-radius: 10px; */
}




/* top
----------------------------------------------------------*/
.table_box {
    background: #fff;
    padding: 10px 5px;
}

@media print,
screen and (min-width: 768px) {
    .table_box {
        padding: 20px;
    }
}

@media print,
screen and (min-width: 992px) {
    .table_box {
        padding: 60px;
    }
}



/* スクロールアニメーション
-------------------------------------*/
@media print {
    .animate {
        opacity: 1 !important;
        transform: none !important;
    }
}

.animate {
    opacity: 0;
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.animate.from-bottom {
    transform: translateY(100px);
}

.animate.from-right {
    transform: translateX(100px);
}

.animate.from-left {
    transform: translateX(-100px);
}

.animate.scale-up {
    transform: scale(0.8);
}

.animate.pop {
    opacity: 0;
    transform: scale(0.5);
    transition: transform 0.3s ease-out, opacity 0.3s ease-out;
}

.animate.fade-in {
    opacity: 0;
    transform: none;
    transition: opacity 2s ease-out;
    /* 2秒でフェードイン */
}

.animate.visible {
    opacity: 1;
    transform: none;
    /* 透明度のみを変化させる */
}

.animate:nth-child(1) {
    transition-delay: 0s;
}

.animate:nth-child(2) {
    transition-delay: 0.4s;
}

.animate:nth-child(3) {
    transition-delay: 0.8s;
}

.animate:nth-child(4) {
    transition-delay: 1.2s;
}

.animate:nth-child(5) {
    transition-delay: 1.6s;
}

.animate:nth-child(6) {
    transition-delay: 2.0s;
}

.animate:nth-child(7) {
    transition-delay: 2.4s;
}

@media only screen and (max-width: 767px) {
    .animate {
        opacity: 1 !important;
        transform: none !important;
    }
}

/**/



.topwhite_box {
    background: #fff;
    padding: 15px;
    border-radius: 20px;
}

@media screen and (min-width:768px) {
    .topwhite_box {
        padding: 10px;
        font-size: 15px;
    }
}

@media screen and (min-width:992px) {
    .topwhite_box {
        padding: 20px;
    }
}

@media screen and (min-width:1200px) {
    .topwhite_box {
        padding: 30px;
        font-size: 16px;
    }
}

.topwhite_box:hover {
    box-shadow: 0px 0px 20px #9dc6cf;
    -webkit-transition: 0.8s;
    -moz-transition: 0.8s;
    -o-transition: 0.8s;
    -ms-transition: 0.8s;
    transition: 0.8s;
}


.bluelink a:link,
.bluelink a:visited {
    color: #2293e3;
    text-decoration: none;
}

.bluelink a:hover {
    color: #081620;
    text-decoration: none
}


/* clinic.html
---------------------------------------------------- */
.bg_blue {
    background: #2293e3;
}

.category_list {
    list-style: none;
}

.category_list li a {
    border-radius: 5px;
    display: inline-block;
    border: 1px solid #081620;
    background: #fff;
    text-align: center;
    line-height: normal;
    font-size: 15px;
    color: #081620;
    padding: 10px 5px;
    width: 49.5%;
    float: left;
    margin-bottom: 1px;
    margin-right: 1px;
    transition: background-color 0.3s ease 0s;
    text-decoration: none;
}

.category_list li a:hover,
.category_list .active {
    background-color: #081620;
    color: #fff !important;
    text-decoration: none;
    -webkit-transition: 0.8s;
    -moz-transition: 0.8s;
    -o-transition: 0.8s;
    -ms-transition: 0.8s;
    transition: 0.8s;
    border-radius: 5px;
}

.category_list .active a:link,
.category_list .active a:visited {
    color: #fff;
    background-color: #081620;
    border-radius: 5px;

}

.category_list .active:hover {
    background-color: #002060;
    color: #fff !important;
    text-decoration: none;
    -webkit-transition: 0.8s;
    -moz-transition: 0.8s;
    -o-transition: 0.8s;
    -ms-transition: 0.8s;
    transition: 0.8s;
    border-radius: 5px;
}


@media print,
screen and (min-width: 768px) {
    .category_list {
        display: flex;
        flex-wrap: wrap;
        /*    margin-bottom: 40px;*/
    }

    .category_list li {
        display: flex;
        width: calc(25% - 5px);
        margin-right: 5px;
        margin-bottom: 5px;
    }

    /*.category_tab li:nth-child{ margin-right: 0px;}*/
    /*1行の場合はこれで左端マイナス、2行以上は使えないので左端空ける*/
    .category_list li a {
        float: none;
        margin-bottom: 0px;
        margin-right: 0px;
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
        padding: 10px 3px;

    }
}

@media print,
screen and (min-width: 992px) {
    .category_list {
        /*    margin-bottom: 60px; */
    }

    .category_list li {
        width: calc(14% - 5px);
    }

    .category_list li a {
        padding: 10px 5px;
        font-size: 1.0em;
    }
}

.category_list li span {
    display: block;
    font-size: 14px;
    font-family: 'Roboto', sans-serif;
}

/*スマホで偶数でclear　カテゴリテキストが長いとき崩れ防止*/
.category_list li:nth-child(odd) {
    clear: both;
}

/**/


.clinic_midashi {
    font-size: 140%;
    line-height: 150%;
    margin-bottom: 15px;
    font-weight: bold;
    color: #2293e3;
}

@media (min-width: 768px) {
    .clinic_midashi {
        font-size: 25px;
        margin-bottom: 15px;
    }
}

@media (min-width: 992px) {
    .clinic_midashi {
        font-size: 30px;
        margin-bottom: 20px;
    }
}

.clinic_midashi span {
    font-size: 16px;
}

.clinic_midashi2 {
    font-weight: bold;
    line-height: normal;
    font-size: 120%;
}

/* gastroenterology.html
---------------------------------------------------- */
.flex_test-box {
    padding: 0 10px;
    /* 余白指定 */
    display: flex;
    /* フレックスボックスにする */
    flex-wrap: wrap;
    /* 折り返し指定 */
    align-items: center;
}

.flex_test-item {
    background-color: #fff;
    border-radius: 3px;
    box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
    padding: 5px;
    margin: 0px 5px 10px;
    width: 45%;
    /* 幅指定 */
    text-align: center;
    /* 文字中央揃え */
}

@media (min-width: 768px) {
    .flex_test-box {
        padding: 0 10px;
        /* 余白指定 */
        display: flex;
        /* フレックスボックスにする */
        flex-wrap: wrap;
        /* 折り返し指定 */
    }

    .flex_test-item {
        background-color: #fff;
        border-radius: 3px;
        box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
        padding: 5px;
        margin: 0px 5px 15px;
        width: 30%;
        /* 幅指定 */
        text-align: center;
        /* 文字中央揃え */
    }
}

@media print,
screen and (min-width: 1200px) {
    .flex_test-item {
        margin: 0px 10px 15px;
        width: 19%;
        /* 幅指定 */
    }
}

.gastroenterology_img1 {
    width: 120px;
    height: auto;
}

@media (min-width: 768px) {
    .gastroenterology_img1 {
        max-width: 282px;
        width: 100%;
        height: auto;
    }
}

/**/

.flex_test-box2 {
    padding: 0 10px;
    /* 余白指定 */
    display: flex;
    /* フレックスボックスにする */
    flex-wrap: wrap;
    /* 折り返し指定 */
}

.flex_test-item2 {
    background-color: #2ac18d;
    color: #fff;
    font-size: 120%;
    border-radius: 3px;
    box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
    padding: 5px;
    margin: 0px 5px 10px;
    width: 95%;
    /* 幅指定 */
    text-align: center;
    /* 文字中央揃え */
}

@media (min-width: 768px) {
    .flex_test-box2 {
        padding: 0 10px;
        /* 余白指定 */
        display: flex;
        /* フレックスボックスにする */
        flex-wrap: wrap;
        /* 折り返し指定 */
    }

    .flex_test-item2 {
        border-radius: 3px;
        box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
        padding: 10px 5px;
        margin: 0px 5px 15px;
        width: 30%;
        /* 幅指定 */
        text-align: center;
        /* 文字中央揃え */
    }
}

@media print,
screen and (min-width: 1200px) {
    .flex_test-item2 {
        padding: 15px;
        margin: 0px 10px 15px;
        width: 30%;
        /* 幅指定 */
        font-size: 130%;
    }
}

/**/


.flex_test-box3 {
    padding: 0 10px;
    /* 余白指定 */
    display: flex;
    /* フレックスボックスにする */
    flex-wrap: wrap;
    /* 折り返し指定 */
}

.flex_test-item3 {
    border-radius: 3px;
    box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
    margin: 0px 5px 15px;
    width: 95%;
    /* 幅指定 */
}

@media (min-width: 768px) {
    .flex_test-box3 {
        display: flex;
        /* フレックスボックスにする */
        flex-wrap: wrap;
        /* 折り返し指定 */
    }

    .flex_test-item3 {
        border-radius: 3px;
        box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
        margin: 0px 5px 15px;
        width: 18.5%;
        /* 幅指定 */
    }
}

@media print,
screen and (min-width: 1200px) {
    .flex_test-item3 {
        margin: 0px 10px 15px;
        width: 18.7%;
        /* 幅指定 */
    }
}

/**/

.flex_title {
    background: #2293e3;
    padding: 8px;
    font-weight: bold;
    color: #fff;
    text-align: center;
    font-size: 110%;
    border-radius: 5px 5px 0 0;
}

@media print,
screen and (min-width:992px) {
    .flex_title {
        padding: 12px 8px;
    }
}

.flex_text {
    border-right: 1px solid #2293e3;
    border-left: 1px solid #2293e3;
    border-bottom: 1px solid #2293e3;
    padding: 10px;
    border-radius: 0 0 5px 5px;
}

@media print,
screen and (min-width:768px) {
    .flex_text {
        padding: 15px;
    }
}

@media print,
screen and (min-width:992px) {
    .flex_text {
        padding: 20px;
    }
}



/* internal.html
---------------------------------------------------- */
.category_list2 {
    list-style: none;
}

.category_list2 li a {
    border-radius: 5px;
    display: inline-block;
    border: 1px solid #081620;
    background: #fff;
    text-align: center;
    line-height: normal;
    font-size: 15px;
    color: #081620;
    padding: 10px 5px;
    width: 49.5%;
    float: left;
    margin-bottom: 1px;
    margin-right: 1px;
    transition: background-color 0.3s ease 0s;
    text-decoration: none;
}

.category_list2 li a:hover,
.category_list2 .active {
    background-color: #081620;
    color: #fff !important;
    text-decoration: none;
    -webkit-transition: 0.8s;
    -moz-transition: 0.8s;
    -o-transition: 0.8s;
    -ms-transition: 0.8s;
    transition: 0.8s;
    border-radius: 5px;
}

.category_list2 .active a:link,
.category_list2 .active a:visited {
    color: #fff;
    background-color: #081620;
    border-radius: 5px;

}

.category_list2 .active:hover {
    background-color: #002060;
    color: #fff !important;
    text-decoration: none;
    -webkit-transition: 0.8s;
    -moz-transition: 0.8s;
    -o-transition: 0.8s;
    -ms-transition: 0.8s;
    transition: 0.8s;
    border-radius: 5px;
}


@media print,
screen and (min-width: 768px) {
    .category_list2 {
        display: flex;
        flex-wrap: wrap;
        /*    margin-bottom: 40px;*/
    }

    .category_list2 li {
        display: flex;
        width: calc(25% - 5px);
        margin-right: 5px;
        margin-bottom: 5px;
    }

    /*.category_tab li:nth-child{ margin-right: 0px;}*/
    /*1行の場合はこれで左端マイナス、2行以上は使えないので左端空ける*/
    .category_list2 li a {
        float: none;
        margin-bottom: 0px;
        margin-right: 0px;
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
        padding: 10px 3px;

    }
}

@media print,
screen and (min-width: 992px) {
    .category_list2 {
        /*    margin-bottom: 60px; */
    }

    .category_list2 li {
        width: calc(25% - 5px);
    }

    .category_list2 li a {
        padding: 10px 5px;
        font-size: 1.0em;
    }
}

.category_list2 li span {
    display: block;
    font-size: 14px;
    font-family: 'Roboto', sans-serif;
}

/*スマホで偶数でclear　カテゴリテキストが長いとき崩れ防止*/
.category_list2 li:nth-child(odd) {
    clear: both;
}

/**/

.internal_img1 {
    width: 160px;
    height: auto;
}

@media (min-width: 768px) {
    .internal_img1 {
        max-width: 325px;
        width: 100%;
        height: auto;
    }
}

/**/
.internal_img2 {
    width: 200px;
    height: auto;
}

@media (min-width: 768px) {
    .internal_img2 {
        max-width: 452px;
        width: 100%;
        height: auto;
    }
}

/**/
.internal_img3 {
    width: 140px;
    height: auto;
}

@media (min-width: 768px) {
    .internal_img3 {
        max-width: 344px;
        width: 100%;
        height: auto;
    }
}

/**/

.flex_test-item4 {
    background: #2293e3;
    color: #fff;
    border-radius: 3px;
    box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
    padding: 8px 5px;
    margin: 0px 5px 10px;
    width: 99%;
    /* 幅指定 */
    text-align: center;
    /* 文字中央揃え */
}

@media (min-width: 768px) {
    .flex_test-item4 {
        border-radius: 3px;
        box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
        padding: 10px 5px;
        margin: 0px 5px 15px;
        width: 31%;
        /* 幅指定 */
        text-align: center;
        /* 文字中央揃え */
    }
}

@media print,
screen and (min-width: 1200px) {
    .flex_test-item4 {
        margin: 0px 10px 15px;
        width: 30%;
        /* 幅指定 */
        padding: 15px 5px;
    }
}

/**/

.flex_test-item5 {
    border: 1px solid #081620;
    border-radius: 3px;
    box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
    padding: 8px 5px;
    margin: 0px 5px 10px;
    width: 99%;
    /* 幅指定 */
    text-align: center;
    /* 文字中央揃え */
}

@media (min-width: 768px) {
    .flex_test-item5 {
        border-radius: 3px;
        box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
        padding: 10px 5px;
        margin: 0px 5px 15px;
        width: 23%;
        /* 幅指定 */
        text-align: center;
        /* 文字中央揃え */
    }
}

@media print,
screen and (min-width: 1200px) {
    .flex_test-item5 {
        margin: 0px 10px 15px;
        width: 23%;
        /* 幅指定 */
        padding: 15px 5px;
    }
}


/* other.html
---------------------------------------------------- */
.category_list3 {
    list-style: none;
}

.category_list3 li a {
    border-radius: 5px;
    display: inline-block;
    border: 1px solid #081620;
    background: #fff;
    text-align: center;
    line-height: normal;
    font-size: 15px;
    color: #081620;
    padding: 10px 5px;
    width: 99%;
    float: left;
    margin-bottom: 1px;
    margin-right: 1px;
    transition: background-color 0.3s ease 0s;
    text-decoration: none;
}

.category_list3 li a:hover,
.category_list3 .active {
    background-color: #081620;
    color: #fff !important;
    text-decoration: none;
    -webkit-transition: 0.8s;
    -moz-transition: 0.8s;
    -o-transition: 0.8s;
    -ms-transition: 0.8s;
    transition: 0.8s;
    border-radius: 5px;
}

.category_list3 .active a:link,
.category_list3 .active a:visited {
    color: #fff;
    background-color: #081620;
    border-radius: 5px;

}

.category_list3 .active:hover {
    background-color: #002060;
    color: #fff !important;
    text-decoration: none;
    -webkit-transition: 0.8s;
    -moz-transition: 0.8s;
    -o-transition: 0.8s;
    -ms-transition: 0.8s;
    transition: 0.8s;
    border-radius: 5px;
}


@media print,
screen and (min-width: 768px) {
    .category_list3 {
        display: flex;
        flex-wrap: wrap;
        /*    margin-bottom: 40px;*/
    }

    .category_list3 li {
        display: flex;
        width: calc(32% - 5px);
        margin-right: 5px;
        margin-bottom: 5px;
    }

    /*.category_tab li:nth-child{ margin-right: 0px;}*/
    /*1行の場合はこれで左端マイナス、2行以上は使えないので左端空ける*/
    .category_list3 li a {
        float: none;
        margin-bottom: 0px;
        margin-right: 0px;
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
        padding: 10px 3px;

    }
}

@media print,
screen and (min-width: 992px) {
    .category_list3 {
        /*    margin-bottom: 60px; */
    }

    .category_list3 li {
        width: calc(32% - 5px);
    }

    .category_list3 li a {
        padding: 10px 5px;
        font-size: 1.0em;
    }
}

.category_list3 li span {
    display: block;
    font-size: 14px;
    font-family: 'Roboto', sans-serif;
}

/*スマホで偶数でclear　カテゴリテキストが長いとき崩れ防止*/
.category_list3 li:nth-child(odd) {
    clear: both;
}

/**/

.other_img1 {
    width: 183px;
    height: auto;
}

@media (min-width: 768px) {
    .other_img1 {
        max-width: 283px;
        width: 100%;
        height: auto;
    }
}

/**/
.other_img2 {
    width: 270px;
    height: auto;
}

@media (min-width: 768px) {
    .other_img2 {
        max-width: 718px;
        width: 100%;
        height: auto;
    }
}

/**/

.other_img3 {
    width: 240px;
    height: auto;
}

@media (min-width: 768px) {
    .other_img3 {
        max-width: 718px;
        width: 100%;
        height: auto;
    }
}

/**/

.other_box {
    border-bottom: 2px dashed #c4e8f0;
    padding-bottom: 20px;
    margin-bottom: 20px;
}

@media (min-width: 992px) {
    .other_box {
        padding-bottom: 40px;
        margin-bottom: 40px;
    }
}


.flex_test-item6 {
    background: #fff;
    border: 1px solid #081620;
    border-radius: 3px;
    box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
    padding: 8px 5px;
    margin: 0px 5px 10px;
    width: 99%;
    /* 幅指定 */

}

@media (min-width: 768px) {
    .flex_test-item6 {
        border-radius: 3px;
        box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1);
        padding: 10px 10px;
        margin: 0px 5px 15px;
        width: 48%;
        /* 幅指定 */

    }
}

@media print,
screen and (min-width: 1200px) {
    .flex_test-item6 {
        margin: 0px 10px 15px;
        width: 48%;
        /* 幅指定 */
        padding: 15px 10px;
    }
}








/* contact
---------------------------------------------------- */
@media print,
screen and (min-width: 768px) {
    .contact_midashi {
        margin-right: 20px;
    }
}

@media print,
screen and (min-width: 992px) {
    .contact_midashi {
        margin-right: 40px;
    }
}

/*telfax*/
.tel_box {
    border: 1px solid #081620;
    padding: 15px;
    font-weight: 500;
    /* border-radius: 10px; */
    font-size: 20px;
}

@media print,
screen and (min-width: 768px) {
    .tel_box {
        padding: 20px;
    }
}

@media print,
screen and (min-width:992px) {
    .tel_box {
        padding: 50px 20px;
    }
}


.tel_box .fas {
    margin-right: 5px;
    vertical-align: top;
    font-size: 80%;
}

.tel_box_telnum {
    font-size: 30px;
}

@media print,
screen and (min-width: 768px) {
    .tel_box_telnum {
        font-size: 35px;
    }
}

@media print,
screen and (min-width: 992px) {
    .tel_box_telnum {
        font-size: 45px;
        letter-spacing: 0.05em;
    }
}




/**/


.need {
    /*必須*/
    font-size: 90%;
    color: #fff;
    padding: 0px 6px;
    border-radius: 3px;
    font-weight: normal;
    border-collapse: collapse;
    background: #cc0000;
    margin-right: 10px;
}

/*フォームのテーブル*/
.table_form {
    width: 100%;
    border-collapse: collapse;
    border-top: 1px solid #081620;
    /*    background: #fff;*/
}

.table_form th {
    width: 100%;
    padding: 15px 5px 3px 5px;
    display: block;
}

.table_form td {
    width: 100%;
    border-bottom: 1px solid #081620;
    padding: 3px 5px 15px 5px;
    display: block;
}

.table_form th span {
    /*必須*/
    font-size: 70%;
    color: #fff;
    padding: 0px 6px;
    float: right;
    border-radius: 3px;
    font-weight: normal;
    border-collapse: collapse;
    background: #cc0000;
}

.table_form td.last {
    border-bottom: none;
}


.table_form th.sen_none,
.table_form td.sen_none {
    border: 0;
}

@media print,
screen and (min-width: 768px) {
    .table_form th {
        width: 35%;
        border-bottom: 1px solid #081620;
        padding: 20px 20px;
        vertical-align: middle;
        text-align: left;
        display: table-cell;
    }

    .table_form td {
        width: 100%;
        padding: 20px 20px;
        display: table-cell;
    }

    .table_form.sen_none .last td {
        padding-bottom: 10px;
    }

    .table_form.sen_none th {
        padding: 10px 20px 0 20px;
    }

    .table_form.sen_none td {
        padding: 10px 25px 0 25px;
    }

}

@media print,
screen and (min-width: 992px) {
    .table_form th {
        width: 30%;
    }
}

/* フォーム関係 */


.required input[type="text"],
.required input[type="password"],
.required select,
.required textarea {
    border: 1px solid #c36;
}



input[type="checkbox"],
input[type="radio"] {
    vertical-align: middle;
    margin: 5px 5px 5px 0;
}

label {
    vertical-align: middle;
    margin: 5px 5px 5px 0;
}

/*input[type="checkbox"]{margin-top: 10px;}*/

input {
    font-size: 100%;
    vertical-align: middle;
    padding: 9px
}

input[type="file"] {
    width: 99%;
}

input[type="text"],
select {
    border: 1px solid #ccc;
    border-radius: 3px;
    color: #081620;
}

input[type="email"] {
    color: #081620;
}

input:focus[type="text"] {
    border: 1px solid #06c;
}

textarea {
    font-size: 100%;
    border: 1px solid #ccc;
    width: 99%;
    border-radius: 3px;
}

input,
textarea {
    /*display: inline-block; 
  font-family: FontAwesome; */
    font-style: normal;
    font-weight: normal;
    line-height: 1;
    -Webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

select {
    padding: 9px;
    color: #081620;
}

.form-control {
    color: #081620;
}

.form-control.w300 {
    width: 200px;
}

@media (min-width: 768px) {
    .form-control.w300 {
        width: 250px;
    }
}


/*個人情報*/



.privacy_tit {
    font-size: 120%;
    line-height: 150%;
    margin-bottom: 20px;
    font-weight: bold;
    border-bottom: 1px solid #081620;
    padding-bottom: 10px;
}

@media (min-width: 768px) {
    .privacy_tit {
        font-size: 17px;
        margin-bottom: 20px;
    }
}

.privacy_waku {
    background-color: #fff;
    padding: 20px 20px;
    border-collapse: collapse;
    border: 1px solid #ccc;
}

@media print,
screen and (min-width: 992px) {
    .privacy_waku {
        padding: 20px;
    }
}


.privacy_scroll {
    max-height: 200px;
    overflow-y: scroll;
    padding-right: 10px;
    z-index: 1;
    word-break: break-all;
}

@media print,
screen and (min-width: 768px) {
    .privacy_scroll {
        max-height: 400px;
    }
}


.btn-primary {
    font-size: 100%;
    padding: 20px 10px;
    border-radius: 30px;
}

.btn-primary:hover {
    background-color: #656565;
    opacity: 1;
    border-color: #656565;
    -webkit-transition: 0.8s;
    -moz-transition: 0.8s;
    -o-transition: 0.8s;
    -ms-transition: 0.8s;
    transition: 0.8s;
}


.form-control {
    height: 50px;
    padding: 12px 10px;
    font-size: 14px;
    line-height: 1.42857143;
    background-image: none;
    border: 1px solid #cccccc;
    border-radius: 4px;
    -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
    -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
    -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
    transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}



/* contact　下部
----------------------------------------------------------*/

.contact_bg1 {
    background: url(../images/contact_bg.jpg) no-repeat scroll 50% 50% / cover;
}


.f_space {
    padding: 40px 0;
}

@media (min-width: 768px) {
    .f_space {
        padding: 40px 0;
    }
}

@media (min-width: 992px) {
    .f_space {
        padding: 80px 0;
    }
}


.f_tit {
    letter-spacing: 0.06em;
    font-size: 18px;
    font-weight: bold;
    font-family: 'Lato', sans-serif;
    color: #fff;
}

@media (min-width: 768px) {
    .f_tit {
        font-size: 20px;
    }
}

@media (min-width: 992px) {
    .f_tit {
        font-size: 20px;
    }
}

@media (min-width: 1200px) {
    .f_tit {
        font-size: 20px;
    }
}

.f_tit .jp {
    letter-spacing: 0.05em;
    display: block;
    font-weight: bold;
    font-size: 140%;
    margin-top: 5px;
    font-family: "メイリオ", 'Noto Sans JP', sans-serif, Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "sans-serif";
}

@media (min-width: 768px) {
    .f_tit .jp {
        font-size: 20px;
    }
}

@media (min-width: 992px) {
    .f_tit .jp {
        font-size: 25px;
        letter-spacing: 0.08em;
    }
}

/**/

.footer_tel {
    font-size: 20px;
    color: #fff;
}

@media print,
screen and (min-width: 768px) {
    .footer_tel {
        font-size: 20px;
    }
}

@media print,
screen and (min-width: 992px) {
    .footer_tel {
        font-size: 25px;
    }
}

@media print,
screen and (min-width: 1200px) {
    .footer_tel {
        font-size: 30px;
    }
}

.footer_tel .fa {
    margin-right: 5px;
    vertical-align: top;
}

.footer_telnum {
    font-size: 35px;
}

@media print,
screen and (min-width: 768px) {
    .footer_telnum {
        font-size: 35px;
    }
}

@media print,
screen and (min-width: 992px) {
    .footer_telnum {
        font-size: 45px;
        letter-spacing: 0.05em;
    }
}

@media print,
screen and (min-width: 1200px) {
    .footer_telnum {
        font-size: 50px;
    }
}


/* footer
----------------------------------------------------------*/
#foot_bg {
    background: url("../images/footer_bg.jpg") no-repeat top center #2293e3;
    background-size: contain;
    color: #fff;
    padding: 40px 0 40px;
}


@media print,
screen and (min-width: 768px) {
    #foot_bg {
        padding: 80px 0 60px;
    }
}

@media print,
screen and (min-width: 992px) {
    #foot_bg {
        padding: 120px 0 80px;
    }
}

#footer_border {
    border-top: 1px solid #e1ecee;
}


.bg_foot ul {
    padding-left: 0;
    text-align: center;
}

@media print,
screen and (min-width: 768px) {
    .bg_foot ul {
        text-align: center;
    }

    .bg_foot li {
        display: inline;
        font-size: 15px;
    }

    .bg_foot li a:link,
    .bg_foot li a:visited {
        color: #fff;
        text-decoration: none;
        padding: 0 15px 0 0px;
    }

    .bg_foot li a:hover {
        color: #081620;
        text-decoration: none
    }

}

@media print,
screen and (min-width: 992px) {
    .bg_foot ul {
        text-align: left;
    }

    .bg_foot li {
        font-size: 15px;
    }
}

@media print,
screen and (min-width: 1200px) {

    .bg_foot li a:link,
    .bg_foot li a:visited {
        padding: 0 20px 0 0px;
    }
}

.map a:link,
.map a:visited {
    color: #081620;
    text-decoration: none;
    padding: 0 0px 0 15px;
}

.map a:hover {
    color: #999;
    text-decoration: none
}

.map .fas {
    margin-right: 5px;
}




/* copy
---------------------------------------------------- */
.copy {
    text-align: center;
}

@media print,
screen and (min-width: 768px) {
    .copy {
        font-size: 13px;
    }
}

@media print,
screen and (min-width: 992px) {
    .copy {
        text-align: right;
    }
}







/* pagetop
---------------------------------------------------- */
#pagetop {
    position: fixed;
    bottom: 10px;
    right: 10px;
    z-index: 100;
}

@media (min-width: 768px) {
    #pagetop {
        position: fixed;
        bottom: 20px;
        right: 20px;
        z-index: 100;
    }
}





/* エフェクト
----------------------------------------------------------*/
.block-revealer__element {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #081620;
    pointer-events: none;
    opacity: 0;
}





/* 印刷改行
----------------------------------------------------------*/
.page-break-before {
    page-break-before: always
}


/* print
----------------------------------------------------------*/
@media print {
    /* .sp_header {
        display: none;
    } */

    .header_bg {
        width: 100%;
        top: 0;
        z-index: 9999;
        -moz-background-size: 100% auto;
        background-size: 100% auto;
        position: absolute;
        /*印刷時固定解除*/
        background-color: #fff;
    }

    .header_telnum {
        font-size: 20px;
    }



    /*meganavi*/
    .menu>ul>.down {
        padding: 0.6em 0.5em !important;
        font-size: 12px;
    }

    .menu>ul>li a {
        padding: 0em 0em !important;
        margin-left: 0.2em;
        font-size: 9px;
    }

    /**/


    /*top*/


    #main_mt {
        margin-top: 80px;
    }

    .top_img img {
        width: 360px;
        height: auto;
    }

    .top_img2 img {
        width: 320px;
        height: auto;
    }

    .top_img3 img {
        width: 200px;
        height: auto;
    }

    #mainimage .main_moji img {
        width: 70%;
        height: auto;
    }


    .h2_tit {
        padding: 10px 0 40px;
        font-size: 30px;
    }

    .h2_sub {
        padding: 40px 0 10px;
    }

    .title1 {
        font-size: 25px;
    }

    .bg1 {
        position: static;
    }



    /*印刷時matchHeight無効*/

    .mheight {
        height: 100% !important;
    }

    .mheight2 {
        height: 100% !important;
    }


    /*footer*/
    .contact_bg {
        background: #0a2639;
    }


    .copy {
        font-size: 12px;
    }

    .footer_telnum {
        font-size: 30px;
    }


    /**/
    .flex_test-item3 {
        width: 17%;
    }

    .other_img1 {
        max-width: 283px;
        width: 100%;
        height: auto;
    }

    .flex_test-item6 {
        width: 45%;

    }










    /*印刷時非表示*/
    .display_none {
        display: none !important;
    }



}