.userlogin {
    position: fixed;
    top: 0;
    right: 0;
    display: inline-block;
    padding: 5px 10px;
    font-weight: bold;
    color: #fff;
    background: red;
    z-index: 999999;
    font-size: 12px;
}

html.scrollLock,
body.scrollLock {
    overflow-y: hidden;
}

#top_title {
    width: 80%;
    max-width: 1024px;
    max-width: auto;
    text-align: center;
}

#top_title img {
    width: 100%;
    height: auto;
}

#top_title span {
    width: 70%;
    padding: 30px;
    display: inline-block;
    text-align: center;
    background: rgb(20 50 144 / 90%);
    margin: 30px auto 0;
    color: #fff;
    border: 5px solid #fff;
    border-radius: 10px;
    font-size: 16px;
}

#top_title span strong {
    display: inline-block;
    font-size: 30px;
    margin-bottom: 10px;
}

.result_title {
    margin-top: -60px;
}

.result_body {
    padding: 30px 0 100px;
    background: url(../img/top/thanks.png) no-repeat 98% 100.05%, url(../img/top/bg01.jpg) repeat left top;
}

.result_body.last_year {
    padding: 30px 0 300px;
    background: url(../img/top/thanks.png) no-repeat 98% 100.05%, url(../img/top/bg01.jpg) repeat left top;
}

.baloon,
.flag {
    position: absolute;
    z-index: 10;
}

.baloon01 {
    top: 150px;
    left: 100px;
}

.baloon02 {
    top: 1000px;
    right: 10%;
}

.flag {
    top: 0;
    right: 0;
}

.title01 {
    position: relative;
    text-align: center;
}

.result_body.last_year .title01 {
    padding: 30px 0 0;
    /* position: static; */
}

.title01 img {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 1119px;
}

.result_body.last_year .title01 img {
    width: auto;
    max-width: 100%;
}

.title01:before {
    content: '';
    display: block;
    background: #fffddf;
    width: 100%;
    padding-bottom: 13%;
    position: absolute;
    top: 15%;
    left: 0;
    z-index: 1;
}


/* .result_body.last_year .title01:before {
    content: none;
} */

.last_year_box {
    max-width: 1100px;
    width: 100%;
    margin: 0 auto;
    background: rgba(234, 246, 253, .78);
    padding: 0 50px 50px;
}

.last_year_box_in {
    transform: translateY(-420px);
}

.bg-star {
    background: url(../img/top/star.png) no-repeat 100% 30%;
    background-size: 100% auto;
}

.bg-circle {
    max-width: 1980px;
    margin: auto;
    background: url(../img/top/circle.png) no-repeat center top;
    background-size: contain;
    padding: 60px 0;
}


/* .result_body.last_year .bg-star,
.result_body.last_year .bg-circle{
    background: none;
    padding: 0;
}

.result_body.last_year #prize01{
    position: relative;
}

.result_body.last_year #prize01:before{
    content: '';
    display: block;
    width: 100%;
    height: calc(100% - 420px);
    position: absolute;
    top: 420px;
    left: 0;
    background: #eff8fd;
}

.result_body.last_year #prize02,
.result_body.last_year #prize03{
    background: #eff8fd;
    padding-left: 50px !important;
    padding-right: 50px !important;
} */

#prize01,
#prize02,
#prize03 {
    padding: 60px 0;
    min-width: 980px;
}

.prize-title {
    text-align: center;
    margin-bottom: 40px;
    position: relative;
    z-index: 10;
}


/* .result_body.last_year #prize03 .prize-title{
    text-align: left;
    background: url(../img/top/line_dot.png) no-repeat center bottom;
    padding-bottom: 15px;
} */

.prize-body {
    text-align: center;
}

.prize-body.g-4th-grade .prize-division {
    background: #e4007f;
}

.prize-body.g-5th-grade .prize-division {
    background: #009944;
}

.prize-body.g-6th-grade .prize-division {
    background: #e60012;
}

.prize-division {
    background: #fed200 !important;
    background: #FFF79D !important;
    /*honjo*/
    color: #262828 !important;
}

#prize01 .prize-body {
    text-align: center;
    margin-bottom: 50px;
    margin-bottom: 100px;
    /*honjo*/
    position: relative;
}

#prize01 .prize-division {
    font-size: 20px;
    width: 60%;
    width: 30%;
    /*honjo*/
    padding: 20px;
    padding: 12px 0;
    /*honjo*/
    text-align: center;
    margin: auto;
    margin: 60px auto 5px;
    margin: 60px auto 10px;
    /*honjo*/
    box-shadow: 3px 3px 3px #ccc;
    font-weight: bold;
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    align-items: center;
}

#prize02 .prize-division {
    font-size: 16px;
    /*width: 100%;*/
    width: 40%;
    /*honjo*/
    /*padding: 15px 20px;*/
    padding: 12px 0;
    /*honjo*/
    text-align: center;
    /*margin: auto;*/
    margin: 50px auto 20px;
    box-shadow: 3px 3px 3px #ccc;
    font-weight: bold;
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    align-items: center;
}

#prize01 .prize-grade,
#prize02 .prize-grade {
    display: none;
}


/*honjo*/

.result_body.last_year .prize-body {
    position: relative;
    z-index: 10;
}

.ribbon-red {
    text-align: center;
    padding: 15px 0 32px;
    margin-bottom: 20px;
    font-size: 30px;
    line-height: 1;
    color: #fff;
    background: url(../img/top/ribbon01.png) no-repeat center top;
}

.ribbon-blue {
    text-align: center;
    padding: 8px 0 26px;
    margin-bottom: 20px;
    font-size: 26px;
    line-height: 1;
    background: url(../img/top/ribbon02.png) no-repeat center top;
    background-size: 100% auto;
}

.prize-school,
.prize-grade {
    font-size: 22px;
    font-weight: bold;
    margin-bottom: 5px;
}

#prize03 .prize-name,
#prize03 .prize-school {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 5px;
    text-align: center;
}

#prize03.grade04 .prize-name,
#prize03.grade04 .prize-school {
    color: #e4007f;
}

#prize03.grade05 .prize-name,
#prize03.grade05 .prize-school {
    color: #009944;
}

#prize03.grade06 .prize-name,
#prize03.grade06 .prize-school {
    color: #e68214;
}

.last_year #prize03 .prize-name,
.last_year #prize03 .prize-school {
    color: #4c4948;
    font-size: 16px;
    line-height: 1.2;
}

#prize02 .prize-list {
    margin: auto;
    max-width: 1024px;
    display: flex;
    flex-flow: row wrap;
    justify-content: space-evenly;
    align-items: flex-start;
}

#prize02 .prize-list li {
    width: 31%;
    margin-bottom: 50px;
    font-weight: 500;
}

#prize03 .prize-list {
    margin: auto;
    max-width: 1024px;
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    align-items: flex-start;
}

#prize03 .prize-list li {
    width: 22%;
    margin-left: 4%;
    margin-bottom: 50px;
    font-weight: 500;
}

#prize03 .prize-list li:nth-child(4n+1) {
    margin-left: 0;
}

.last_year #prize03 .prize-list li:nth-child(4n+1) {
    margin-left: auto;
}

.last_year #prize03 .prize-list li:nth-child(5n+1) {
    margin-left: 0;
}

.last_year #prize03 .prize-list li {
    width: calc(100% / 5 - 3%);
}

.prize-pic {
    display: inline-block;
    padding: 3%;
    border: 1px solid #EEEEEE;
    background: #fff;
    text-align: center;
    margin-bottom: 10px;
    cursor: pointer;
}

#prize01 .prize-pic {
    width: 60%;
}

#prize02 .prize-pic,
#prize03 .prize-pic {
    width: 100%;
}

.prize-pic img {
    width: 100%;
    object-fit: contain;
    opacity: 0;
    transform: translate(0, 10px);
    transition: 0.5s;
}

#prize01 .prize-pic img {}

#prize02 .prize-pic img,
#prize03 .prize-pic img {
    height: 250px;
}

.prize-pic img.lazyloaded {
    transform: translate(0, 0);
    opacity: 1;
}

.prize-list li .name,
.prize-list li .school {
    display: block;
    text-align: center;
    font-size: 18px;
    line-height: 1.5;
    font-weight: bold;
}

.major {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
    display: block;
    background: url(../img/top/major.png) no-repeat center;
    background-size: 100% auto;
    border: none;
    padding: 5% 0;
}

.modal {
    display: none;
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 100%;
    z-index: 7500;
}

.admin-bar .modal {
    /* WP アドミンバー用 */
    z-index: 100000;
}

.modal .modal-body {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    /* padding: 50px; */
    padding: 25px 50px;
    z-index: 8100;
    background: #fff;
    cursor: auto;
    text-align: center;
    margin: auto;
    overflow-y: auto;
}

.modal .modal-inner {
    position: relative;
}

.modal .modal-body .modal-image img {
    width: auto;
    max-width: 100%;
    max-height: calc(100vh - 100px);
}

.landscape .modal-body .modal-image img {
    width: auto;
    max-width: 90vw;
    max-height: calc(100vh - 100px);
}

.portrait .modal-body .modal-image img {
    width: auto;
    max-width: 100vw;
    max-height: 83vh;
}

.modal .modal-detail span {
    display: block;
    font-size: 18px;
    line-height: 1.5;
    font-weight: bold;
}

.modal .modal-body .vote_btn {
    width: 50%;
}

.modal .overlay {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    z-index: 8000;
}

.modal .modal_close {
    position: absolute;
    /* top: -50px; */
    top: -15px;
    right: -50px;
    display: block;
    width: 50px;
    height: 50px;
    background: #fff;
    cursor: pointer;
    z-index: 8200;
}

.modal .modal_close span {
    width: 100%;
    height: 100%;
    display: block;
    position: relative;
}

.modal .modal_close span:before {
    content: '\02715';
    line-height: 1;
    font-size: 40px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.thanks {
    position: absolute;
    bottom: 0;
    right: 0;
}

.top_explain {
    padding: 30px 0;
    background: #e5ebf4;
}

.top_explain p {
    color: #143290;
    font-size: 18px;
    line-height: 3rem;
    letter-spacing: -0.05rem;
    font-weight: 500;
    margin: 0;
}

.overview {
    padding: 60px 0;
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
    align-items: center;
    border-bottom: 2px solid #143290;
}

.overview:last-child {
    border: none;
}

.overview.flex-start {
    align-items: flex-start;
}

.overview dt {
    width: 10%;
}

.overview dt img {
    width: 100%;
    height: auto;
}

.overview dt span {
    background: #143290;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    align-items: center;
    color: #fff;
    font-size: 26px;
    line-height: 1.1;
    letter-spacing: 0.06rem;
}

.overview dd {
    width: 90%;
    padding: 0 0 0 30px;
    line-height: 1.8rem;
}

.overview dd strong {
    font-size: 24px;
    display: block;
    font-weight: normal;
}

.overview.col3 .detail {
    text-align: justify;
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    align-items: flex-start;
}

.overview.col3 .detail img {
    margin-left: 30px;
}

.overview table th,
.overview table td {
    padding: 15px;
}

.overview table th {
    text-align: left;
    white-space: nowrap;
}

.overview table tr:after {
    content: "";
    display: block;
    /* position: absolute; */
    bottom: 0;
    left: 0;
    height: 1px;
    width: 100%;
    border-bottom: 2px dashed #888888;
}

.overview table tr:last-child:after {
    display: none;
}

.overview .marker {
    position: relative;
}

.overview .marker:after {
    content: '';
    display: inline;
    width: 100%;
    height: 100%;
    background: rgb(255 255 153 / 48%);
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
}

.overview h4 {
    margin: 20px 0 10px;
    padding-bottom: 10px;
    border-bottom: 1px solid #dadada;
    font-size: 24px;
    color: #143290;
}

.agreement {
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-start;
    align-items: center;
    margin-bottom: 60px;
    background: rgb(20 50 144 / 8%);
    border-radius: 10px;
}

.agreement dt {
    width: 10%;
    min-width: 120px;
    padding: 15px;
    text-align: center;
    font-size: 16px;
    font-weight: bold;
}

.agreement dd {
    width: 90%;
    padding: 15px;
    font-size: 16px;
}

.agreement dd ul li {
    font-size: 16px;
    text-indent: -1.2em;
    padding-left: 1.2em;
}

.agreement dd ul li:before {
    content: '・';
    margin-right: 3px;
    line-height: 2;
}

.contactBox {
    text-align: center;
    margin-bottom: 60px;
    width: 60%;
    margin: 0 auto 60px;
}

.contactBox h3 {
    margin-bottom: 0;
    position: relative;
    z-index: 5;
}

.contactBox img {
    vertical-align: bottom;
}

.contactDetail {
    margin-top: -7px;
    border: 3px solid #143290;
    background: #fff;
    border-radius: 10px;
    padding: 20px 30px;
    position: relative;
    z-index: 20;
}

.contactDetail p {
    margin-bottom: 10px;
}

.contactDetail strong {
    font-size: 22px;
}

.contactDetail .domain:before {
    content: '@';
}

.contactDetail p:last-child {
    margin-bottom: 0;
}

@media screen and (max-width: 1366px) {
    .title01:before {
        content: '';
        display: block;
        background: #fffddf;
        width: 100%;
        padding-bottom: 17%;
        position: absolute;
        top: 15%;
        left: 0;
        z-index: 1;
    }
}

@media screen and (max-width: 1280px) {}

@media screen and (max-width: 1024px) {
    .bg-circle {
        background: url(../img/top/circle.png) no-repeat center 20%;
        background-size: 105% auto;
        padding: 0;
    }

    .last_year_box {
        padding: 50px 0;
    }

    .result_body {
        padding-bottom: 200px;
    }
}

@media screen and (max-width: 768px) {
    .overview dt span {
        width: 80px;
        height: 80px;
        font-size: 22px;
    }

    .baloon01 {
        top: 50px;
        left: 70px;
    }

    .baloon02 {
        top: 600px;
        right: 3%;
    }

    .flag {
        top: 0;
        right: 0;
        width: 250px;
    }

    .flag img {
        width: 100%;
    }

    #top_title span {
        width: 80%;
    }

    .result_title img {
        width: 60%;
    }

    /* .result_body.last_year #prize01:before {
        content: '';
        display: block;
        width: 100%;
        height: calc(100% - 380px);
        position: absolute;
        top: 380px;
        left: 0;
        background: #eff8fd;
    } */
    #prize01,
    #prize02,
    #prize03 {
        padding: 60px 0;
        min-width: 100%;
    }

    /* .result_body.last_year #prize02,
    .result_body.last_year #prize03 {
        background: #eff8fd;
        padding-left: 5px !important;
        padding-right: 5px !important;
    } */
    .title01:before {
        padding-bottom: 18%;
    }

    .ribbon-blue {
        padding: 6px 0 16px;
        margin-bottom: 10px;
        font-size: 20px;
    }

    .prize-school,
    .prize-grade {
        font-size: 18px;
    }

    #prize03 .prize-name,
    #prize03 .prize-school {
        font-size: 14px;
    }

    #prize03 .prize-list {
        width: 95%;
    }

    /* .result_body.last_year #prize03 .prize-list {
        width: 100%;
    } */
    .result_body.last_year {
        padding: 30px 0 300px;
        background: url(../img/top/thanks.png) no-repeat 57% 100.05%, url(../img/top/bg01.jpg) repeat left top;
    }

    .result_body {
        background-size: 300px auto;
    }

    .modal .modal-body {
        width: 90%;
        padding: 20px;
    }

    .modal .modal-body .modal-image img {
        max-width: 100%;
        max-height: calc(100vh - 200px);
    }

    .modal .modal_close {
        top: -20px;
        right: -20px;
        width: 20px;
        height: 20px;
    }

    .modal .modal_close span:before {
        font-size: 15px;
    }
}

@media screen and (max-width: 640px) {
    .overview:not(.middle) {
        align-items: flex-start;
    }

    .agreement {
        display: block;
    }

    .agreement dt,
    .agreement dd {
        display: block;
        width: 100%;
    }

    .agreement dt {
        padding-top: 30px;
    }

    .contactBox {
        width: 100%;
    }

    .baloon,
    .flag {
        display: none;
    }

    #top_title {
        width: 90%;
    }

    #top_title span {
        width: 95%;
        font-size: 12px;
        padding: 20px 5px;
    }

    #top_title span strong {
        font-size: 18px;
    }

    .result_title img {
        width: 80%;
    }

    .title01 {
        overflow: hidden;
        width: 100%;
    }

    .result_body.last_year {
        padding: 30px 0 250px;
        background: url(../img/top/thanks.png) no-repeat 95% 100.05%, url(../img/top/bg01.jpg) repeat left top;
        background-size: 90%;
    }

    .result_body.last_year .title01 {
        padding: 2% 2% 0;
    }

    .title01 img {
        width: 150%;
        margin-left: -25%;
    }

    .last_year .title01 img {
        width: 150%;
        margin-left: 0;
    }

    .title01:before {
        padding-bottom: 28%;
    }

    .last_year_box {
        padding: 50px 0;
    }

    .prize-body {
        margin-bottom: 30px;
    }

    #prize01 .prize-division {
        width: 95%;
    }

    .result_body.last_year #prize03 .prize-title {
        text-align: center;
    }

    .prize-title img {
        max-width: 95%;
        width: auto;
    }

    #prize01 .prize-pic {
        width: 95%;
    }

    .bg-star {
        background: url(../img/top/star.png) no-repeat 50% 10%;
        background-size: 200% auto;
    }

    .bg-circle {
        background: url(../img/top/circle.png) no-repeat center 2%;
        background-size: 110% auto;
    }

    #prize02 .prize-division {
        width: 60%;
    }

    #prize02 .prize-list {
        display: block;
        width: 90%;
        margin: auto;
    }

    #prize02 .prize-list li {
        width: 100%;
        margin-bottom: 25px;
    }

    .ribbon-blue {
        padding: 16px 0 32px;
    }

    #prize03 .prize-list {
        /* display: block; */
        justify-content: space-between;
    }

    #prize03 .prize-list li {
        width: 49% !important;
        margin: 0 0 25px !important;
    }

    #prize03 .prize-name,
    #prize03 .prize-school {
        font-size: 16px;
    }

    .result_body {
        background: url(../img/top/thanks.png) no-repeat 60% 100.05%, url(../img/top/bg01.jpg) repeat left top;
        background-size: 300px auto;
        padding-bottom: 250px;
    }

    .modal .modal-body {
        width: 95%;
        padding: 15px;
    }

    .modal .modal-body .modal-image img {
        max-width: 100%;
        max-height: calc(100vh - 200px);
    }

    .modal .modal_close {
        top: -15px;
        right: -15px;
        width: 15px;
        height: 15px;
    }

    .modal .modal_close span:before {
        font-size: 12px;
    }

    .top_explain p {
        font-size: 16px;
        line-height: 2rem;
        /* text-align: justify; */
    }

    .overview dt {
        width: 20%;
    }

    .overview dd {
        width: 75%;
        padding-left: 15px;
    }

    .overview.col3 .detail {
        display: block;
    }

    .overview.col3 .detail img {
        display: block;
        margin-left: 0;
        margin-top: 30px;
        width: 100%;
    }

    .overview table th,
    .overview table td {
        display: block;
        padding: 3px 0;
    }

    .overview table th {
        padding-top: 20px;
        text-indent: -0.5rem;
    }

    .overview table tr:first-child th {
        padding-top: 0;
    }

    .overview table td:last-child {
        padding-bottom: 20px;
    }
}

@media screen and (max-width: 414px) {
    .last_year_box {
        padding: 50px 0;
    }

    #prize01,
    #prize02,
    #prize03 {
        padding: 40px 0;
    }

    .ribbon-red {
        background-size: 98% auto;
        font-size: 25px;
        padding: 10px 0 32px;
        margin-bottom: 20px;
    }

    .result_title {
        margin-top: -30px;
    }

    .result_title img {
        width: 95%;
    }

    .ribbon-blue {
        padding: 3% 0 9%;
    }
}
