* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: -apple-system, BlinkMacSystemFont, Roboto, 'Segoe UI', 'Helvetica Neue', HelveticaNeue, YuGothic, 'Yu Gothic Medium', 'Yu Gothic', Verdana, Meiryo, sans-serif;
}
b, strong {
    font-family: -apple-system, BlinkMacSystemFont, Roboto, 'Segoe UI semibold', 'Helvetica Neue', HelveticaNeue, YuGothic, 'Yu Gothic', 'Segoe UI', Verdana, Meiryo, sans-serif;
}
p, img {
    display: block;
    margin: 15px 0;
}
img {
    width: 100%;
    object-fit: contain;
}
ul{
    list-style: none;
}

/*文字サイズ調整*/
p{
    font-size: 18px;
    line-height: 1.7;
}

.wrapper{
    max-width: 700px;
    margin: 0 auto;
    padding: 0 2.5%;
    border-left: 1px solid #ddd;
    border-right: 1px solid #ddd;
    box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
h1 img{
    margin: 0;
}
h2{
    background: linear-gradient(to bottom, #0158a8 0%, #00305e 100%);
    color: #fff;
    display: flex;
    align-items: center;
    line-height: 1.5;
    padding: 10px 15px;
    font-size: 22px;
    margin: 60px 0 20px;
}
h1+h2{
    margin-top: 20px;
}
h2.min{
    display: block;
    font-size: 20px;
}h2.cen{
    text-align: center;
}
h2 img{
    width: 15%;
    margin: 0 10px 0 0;
}
.point_box{
    border-radius: 10px;
    border: 2px solid #ddd;
    box-shadow: 0 0 5px rgba(0,0,0,0.2);
    margin: 0 auto;
    padding: 15px;
}
.point_box ul li{
    font-size: 18px;
}

mark{
    background: linear-gradient(to bottom, #fff 60%, #f3e82d 100%);
}
.red{
    color: #e11d1d;
}
.table_lead{
    text-align: center;
    font-size: 14px;
    color: #999;
    margin-bottom: 0;
}
.taC{
    text-align: center;
}
.anno{
    text-align: right;
    font-size: 10px;
    color: #999;
    margin: 0;
}

.cta{
    overflow: hidden;
}
.cta a{
    position: relative;
}
.cta a::before{
    position: absolute;
    content: '';
    display: inline-block;
    top: -180px;
    left: 0;
    width: 30px;
    height: 100%;
    background-color: #fff;
    animation: shiny 4s ease-in-out infinite;
    z-index: 2;
}
@-webkit-keyframes shiny {
    0% { -webkit-transform: scale(0) rotate(45deg); opacity: 0; }
    80% { -webkit-transform: scale(0) rotate(45deg); opacity: 0.5; }
    81% { -webkit-transform: scale(4) rotate(45deg); opacity: 1; }
    100% { -webkit-transform: scale(50) rotate(45deg); opacity: 0; }
}
.cta a img{
    filter: drop-shadow(0 0 5px rgba(0,0,0,0.2));
}

h2 a{
    color: #f3e82d;
}
.reccommend_box{
    border: 1px solid #ddd;
    margin-bottom: 15px;
}
.reccommend_box h3{
    background-color: #ddd;
    padding: 10px;
    color: #e11d1d;
    display: flex;
    align-items: center;
}
.reccommend_box h3 img{
    width: 10%;
    margin: 0 10px 0 0;
}
.reccommend_box h3 span{
    text-decoration: underline;
}
.reccommend_box h3+div{
    padding: 10px;
}
.reccommend_box h3+div p{
    text-align: justify;
}
.reccommend_box h3+div p.an{
    font-size: 0.8em;
    text-align: right;
    margin-top: 0;
}

.achievement_box{
    position: relative;
    border: 3px solid #0158a8;
    border-radius: 15px;
    padding: 70px 15px 15px;
    margin-top: 70px;
}
.achievement_box .ac_icon{
    position: absolute;
    width: 30%;
    left: 35%;
    top: -70px;
}
.achievement_box h3{
    font-size: 18px;
    text-align: center;
}
.achievement_box h3 span{
    display: block;
    text-align: right;
    font-size: 14px;
    margin-top: 5px;
}
.achievement_box table{
    width: 100%;
    margin: 15px auto 20px;
}
.achievement_box table th{
    background-color: #eee;
    width: 33%;
    padding: 10px 0;
    line-height: 1.3;
    font-size: 16px;
}
.achievement_box table th:first-child{
    border-radius: 15px 0 0 0;
}
.achievement_box table th:last-child{
    border-radius: 0 15px 0 0;
}
.achievement_box table td{
    text-align: center;
    padding: 10px 0 0;
    font-size: 14px;
}
.achievement_box table+p{
    padding-top: 15px;
    border-top: 1px solid #ddd;
    text-align: justify;
    font-size: 17px;
    line-height: 1.7;
}
.review_box{
    padding: 15px;
    background-color: #e4f2ff;
    margin-bottom: 15px;
}
.review_box .ttl{
    display: flex;
    align-items: center;
}
.review_box .ttl img{
    width: 15%;
    margin: 0 10px 0 0;
}
.review_box .ttl h3{
    color: #0158a8;
    font-size: 19px;
}
.review_box .ttl p{
    margin: 0;
    font-size: 16px;
}
.review_box .ttl p span{
    margin-left: 5px;
    color: #e11d1d;
}
.review_box>p{
    text-align: justify;
    font-size: 16px;
    line-height: 1.5;
    margin-bottom: 0;
}
.point_box.last{
    border: 2px solid #0158a8;
}

.p_ttl{
    text-align: center;
    margin: 30px 0 15px;
    color: #0158a8;
    font-size: 18px;
    border-bottom: 2px solid #0158a8;
}
.detail_table{
    width: 100%;
    border-collapse: collapse;
}
.detail_table th{
    width: 35%;
    background-color: #00305e;
    color: #fff;
    font-size: 16px;
    border: 1px solid #00305e;
}
.detail_table td{
    padding: 8px;
    font-size: 15px;
    border: 1px solid #00305e;
}
.detail_table .star{
    color: #e11d1d;
}
.closing_ttl{
    margin-top: 40px;
}
.detail_btn{
    border: 1px solid #0cba0b;
    box-shadow: 0 3px 0 #0cba0b;
    color: #0cba0b;
    padding: 10px 0;
    font-weight: bold;
    font-size: 18px;
    border-radius: 10px;
    text-decoration: none;
    display: block;
    width: 100%;
    text-align: center;
    margin: 10px auto 30px;
}

.rankTable{
    overflow: scroll;
    border: 5px solid #b2cde5;
}
.rankTable table{
    width: 700px;
    border-collapse: collapse;
}
.rankTable table .th_box{
    height: 35px;
}
.rankTable table th{
    position: absolute;
    left: calc(2.5% + 6px);
    right: calc(2.5% + 6px);
    text-align: center;
    background-color: #0158a8;
    color: #fff;
    padding: 5px 0;
}
.rankTable table td{
    width: 25%;
    text-align: center;
    padding: 10px 0;
    vertical-align: top;
    font-size: 14px;
}
.rankTable table td:first-child{
    background-color: #ffffda;
}
.rankTable table .great,
.rankTable table .good,
.rankTable table .soso,
.rankTable table .bad{
    display: block;
    font-size: 46px;
    margin: 0 auto;
    line-height: 1;
}
.rankTable table .great{
    color: #f8525d;
}
.rankTable table .good{
    color: #7cd0dd;
}
.rankTable table .soso{
    color: #f5c132;
}
.rankTable table .bad{
    color: #333;
}
.rankTable table min{
    font-size: 10px;
}
.rankTable table tr:first-child td,
.rankTable table tr:nth-last-child(2) td{
    padding-bottom: 0;
}
.rankTable table tr:first-child td img,
.rankTable table tr:nth-last-child(2) td img{
    width: 50%;
    margin: 0 auto;
}

.min_table table{
    width: 100%;
    border-collapse: collapse;
}
.min_table table th,
.min_table table td{
    text-align: center;
    border: 1px solid #00305e;
}
.min_table table tr:first-child td{
    background-color: #b2cde5;
    font-size: 18px;
    font-weight: bold;
}
.min_table table tr:first-child img{
    width: 30%;
    margin: 0 auto;
}
.min_table table th{
    background-color: #00305e;
    color: #fff;
    width: 20%;
    font-size: 14px;
}
.min_table table td{
    padding: 10px 0;
}
.min_table table td{
    width: 30%;
    font-size: 13px;
}
.min_table table min{
    font-size: 10px;
}
.min_table table tr:nth-child(2) td{
    font-size: 18px;
}

.txt01{
    font-size: 20px;
    margin: 30px auto;
}

footer{
    text-align: center;
    padding: 30px 0;
    font-size: 13px;
}

/*policy*/
.policy{
    padding: 10px 2.5% 30px;
    border: none;
}
.policy h1{
    font-size: 18px;
    font-weight: bold;
    text-align: center;
    margin: 20px auto;
}
.policy h2{
    padding: 0.5em;
    color: #494949;
    background: #ffffff;
    border-left: solid 5px #ff6c97;
    font-size: 1.3em;
    font-weight: bold;
    margin: 30px 0 20px;
}
.policy p{
    margin: 0;
    line-height: 1.6;
    word-wrap: break-word;
    padding-bottom: 20px;
    font-size: 14px;
}
.policy a{
    color: #000;
}
.policy ul li{
    margin: 5px 0;
}

.sp,
.pc{
    display: none;
}

@media screen and (max-width:768px){
    .sp{
        display: block;
    }
    .rankTable table {
        width: 550px;
    }
}
@media screen and (min-width:769px){
    .pc{
        display: block;
    }
    .table_lead{
        display: none;
    }
    .rankTable{
        overflow: visible;
    }
    .rankTable table{
        width: 100%;
    }
    .rankTable table .th_box{
        height: auto;
    }
    .rankTable table th{
        position: static;
    }
    .achievement_box .ac_icon{
        width: 18%;
        left: 41%;
    }
}



/*検索機能*/
form{
    margin: 20px auto;
}
form table{
    width: 100%;
    border-collapse: collapse;
}
form table th,
form table td{
    font-size: 80%;
    border: 1px solid #ccc;
}
form table tr:last-child td{
    border: none;
}
form table th{
    padding: 10px;
    background-color: #f6f6f6;
    width: 30%;
}
form table td{
    text-align: left;
    padding: 0px 0px 0px 30px;
}
.searchtable .searchcenter{
    text-align: center;
}
.searchtable .searchbutton{
    background-color: #F15A22;
    border: none;
    color: white;
    padding: 3% 5%;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    line-height: 15px;
    margin-top: 10px;
    margin-bottom: 10px;
    width: 40%;
}
@media screen and (max-width:768px){
    form table td{
        padding: 0 0 0 10px;
    }
}