@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap");
html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-style: normal;
}
select {
    margin: 0 0 0 0;
}
h1,
h2,
h3,
h4,
h5,
h6 {
    font-style: normal;
    font-weight: normal;
    font-size: 100%;
}
p,
address,
blockquote,
pre,
div,
abbr,
acronym,
dfn,
cite,
q,
code,
kbd,
samp,
var,
dl,
ol,
ul,
caption,
th {
    font-weight: normal;
    font-style: normal;
}
ul,
li,
ol {
    list-style: none;
}
a {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
    text-decoration: none;
}
html,
body,
form,
fieldset,
p,
div,
h1,
h2,
h3,
h4,
h5,
h6,
li,
ul,
dl,
dt,
dd {
    -webkit-text-size-adjust: 100%;
}
img {
    vertical-align: bottom;
    width: 100%;
    height: auto;
}
html {
    box-sizing: border-box;
    -webkit-text-size-adjust: 100%;
}
body {
    line-height: 1.6 !important;
    color: #000000;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-text-size-adjust: 100%;
}
/* ---------------------------------------------
    共通レイアウト
--------------------------------------------- */
.pc {
    display: block;
}
.sp {
    display: none;
}
.tab-sp {
    display: none;
}
@media screen and (max-width: 1080px) {
    .sp {
        display: none;
    }
    .tab-sp {
        display: block;
    }
    .pc {
        display: block;
    }
}
@media screen and (max-width: 768px) {
    .sp {
        display: block;
    }
    .tab-sp {
        display: block;
    }
    .pc {
        display: none;
    }
}
.cx_smartphoneview #cx_commonPageTopBtn {
    width: 52px;
    height: 52px;
    bottom: 15px;
}
.cx_smartphoneview #cx_commonPageTopBtn a {
    width: 52px;
    height: 52px;
    line-height: 52px;
    font-size: 22px;
}
/* ============================================ */
img {
    vertical-align: middle;
    max-width: 100%;
    height: auto;
    margin: auto;
}
.flex {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
}
.small {
    font-size: 70%;
}
/* == 全体背景 ========================================== */
#fp-wrap {
    border-top: none;
    border-bottom: none;
    margin: 0 auto;
    background-color: #FFF;
    position: relative;
    font-family: "Poppins", "Noto Sans JP", sans-serif;
    color: #333333;
    font-weight: 500;
    font-feature-settings: "palt";
}
/* == メインビジュアル ========================================== */
.bg01 {
    background-color: #dbf9ff;
    background-image: url(../img/bg01_top.jpg), url(../img/bg01_bottom.jpg);
    background-size: 100%, 100%;
    background-position: center top, center bottom;
    background-repeat: no-repeat, no-repeat;
}
.bg02 {
    background: #0a1059;
    padding: 0 0 min(8vw, 80px) 0;
}
#fp-wrap .l-mainvisual {
    width: 100%;
    margin: 0 auto;
    position: relative;
    overflow: hidden;
    text-align: center;
}
.l-mainvisual__title {
    width: 90%;
    max-width: 840px;
    margin: min(7vw, 70px) auto 0 auto;
    line-height: 1;
}
.l-mainvisual .l-mainvisual__lead {
    font-size: min(2.8vw, 30px);
    line-height: 1.3;
    margin-top: min(8vw, 80px);
    letter-spacing: .05em;
    font-weight: 800;
    color: #4c83fc;
    box-sizing: border-box;
}
.l-mainvisual .l-mainvisual__lead span {
    background: #4c83fc;
    color: #FFF;
    display: inline-block;
    padding: .2em .4em .2em .5em;
    letter-spacing: .2em;
}
@media screen and (max-width: 768px) {
    .bg01 {
        background-color: #dbf9ff;
        background-image: url(../img/bg01_top.jpg), url(../img/bg01_bottom.jpg);
        background-size: 320%, 600%;
        background-position: center top, center bottom;
        background-repeat: no-repeat, no-repeat;
    }
    .bg02 {
        background: #0a1059;
        padding: 2vw 0 16vw 0;
    }
    #fp-wrap .l-mainvisual {
        height: auto;
        padding: 0;
    }
    .l-mainvisual__title {
        width: 84%;
        margin: 6.48vw auto 0 auto;
    }
    .l-mainvisual .l-mainvisual__lead {
        font-size: 4.8vw;
        line-height: 2;
        margin-top: min(8vw, 80px);
        letter-spacing: .1em;
        font-weight: 700;
        color: #4c83fc;
        box-sizing: border-box;
    }
    .l-mainvisual .l-mainvisual__lead span {
        background: #4c83fc;
        color: #FFF;
        display: inline;
        padding: .1em .4em;
        letter-spacing: .2em;

    }
}
.title {
    text-align: center;
    color: #4c83fc;
}
.bg02 .title {
    color: #FFF;
}
.title h3 {
    font-size: min(6vw, 60px);
    font-weight: 700;
    letter-spacing: .04em;
    line-height: 1;
    margin-top: min(2vw, 20px);
}
.title p {
    font-size: min(2vw, 20px);
    font-weight: 500;
    margin-top: min(1vw, 10px);
    letter-spacing: .04em;
}
.title-icon {
    width: min(4.5vw, 45px);
    margin: 0 auto;
}
.title-icon img {
    width: 100%;
}
.program .title {
    margin-top: min(8vw, 80px);
}
.present .title {
    padding-top: min(8vw, 80px);
}
.guide .title {
    margin-top: min(14vw, 140px);
}
.attention {
    text-align: center;
    color: #FFF;
    margin-top: min(8vw, 80px);
}
.attention span {
    border: 2px solid #FFF;
    display: inline-block;
    font-size: min(1.5vw, 15px);
    font-weight: 500;
    line-height: 1;
    padding: 1em 2em;
    letter-spacing: .02em;
}
.program-attention span {
    border: 2px solid #FFF;
    background: #FFF;
    color: #4c83fc;
}
@media screen and (max-width: 768px) {
    .title-icon {
        width: 8vw;
        margin: 0 auto;
    }
    .title h3 {
        font-size: 9.33vw;
        margin-top: 4vw;
    }
    .title p {
        font-size: 4vw;
    }
    .program .title {
        margin-top: 16vw;
    }
    .present .title {
        padding-top: 16vw;
    }
    .guide .title {
        margin-top: 26.67vw;
    }
    .attention {
        margin: 13.33vw auto 0 auto;
        width: 90%;
    }
    .attention span {
        display: block;
        font-size: 3.47vw;
        padding: 2vw 0;
        line-height: 1.4;
        letter-spacing: .04em;
    }
    .program-attention span {
        border: 2px solid #FFF;
        background: #FFF;
        color: #4c83fc;
    }
}
.program {
    padding-bottom: min(8vw, 80px);
}
.program-lead {
    text-align: center;
    font-size: min(3.2vw, 32px);
    font-weight: 500;
    line-height: 1.8;
    color: #4c83fc;
    margin-top: min(15vw, 150px);
}
.list-program {
    width: 94%;
    max-width: 1140px;
    margin: min(1vw, 10px) auto 0 auto;
    position: relative;
    text-align: center;
}
.list-program ul {
    display: flex;
    flex-wrap: wrap;
    box-sizing: border-box;
}
.list-program li {
    width: calc((100% - min(6vw, 80px))/ 3);
    margin-right: min(3vw, 40px);
    box-sizing: border-box;
    display: flex;
    flex-wrap: wrap;
    margin-top: min(5vw, 50px);
   padding-top: min(6vw, 60px);
}
.list-program li.date0725 {
    background: url(../img/date0725.png) no-repeat center top;
    background-size: min(20vw, 200px);
}
.list-program li.date0801 {
    background: url(../img/date0801.png) no-repeat center top;
    background-size: min(20vw, 200px);
}
.list-program li.date0808 {
    background: url(../img/date0808.png) no-repeat center top;
    background-size: min(20vw, 200px);
}
.list-program li.date0815 {
    background: url(../img/date0815.png) no-repeat center top;
    background-size: min(20vw, 200px);
}
.list-program li.date0822 {
    background: url(../img/date0822.png) no-repeat center top;
    background-size: min(20vw, 200px);
}
.list-program li a {
    display: flex;
    font-size: min(1.5vw, 16px);
    cursor: pointer;
}
.list-program li a dl {
    transition-duration: 0.3s;
}
.list-program li:nth-child(3n) {
    margin-right: 0;
}
.list-program li dl {
    background-image: linear-gradient(90deg, #4c83fc, #42adff);
    border-radius: 10px;
    text-align: left;
    color: #FFF;
}
.list-program li dl dt {
    position: relative;
    overflow: hidden;
}
.list-program li dl dt img {
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
}
.list-program li dd {
    padding: min(2vw, 20px) min(1.5vw, 22px) min(3vw, 30px) min(1.5vw, 22px);
}
.list-program__title {
    font-size: min(1.7vw, 20px);
    font-weight: 700;
    letter-spacing: .02em;
    line-height: 1.5;
}
.list-program__date {
    font-size: min(1.7vw, 20px);
    font-weight: 500;
    color: #c8edff;
    line-height: 1;
    margin-top: min(1.2vw, 12px);
    letter-spacing: .02em;
}
.list-program__atttention {
    font-size: min(1.3vw, 13px);
    font-weight: 500;
    color: #c8edff;
    line-height: 1;
    margin-top: min(1.2vw, 14px);
    letter-spacing: .05em;
}
@media screen and (min-width: 767px) {
    .list-program li a {
        transition-duration: 0.3s;
    }
    .list-program li a:hover {
        opacity: .7;
        transform: scale(.98, .98);
        ;
    }
}
@media screen and (max-width:768px) {
    .program {
        padding-bottom: 16vw;
    }
    .program-lead {
        font-size: 5.33vw;
        margin-top: 20vw;
    }
    .list-program {
        width: 86%;
        margin: 0 auto;
    }
    .list-program ul {
        display: block;
        margin-top: 8vw;
    }
    .list-program li {
        width: 100%;
        margin-right: 0;
        display: block;
        margin-top: 4.8vw;
        padding-top: 14vw;
    }
    .list-program li.date0725 {
        background: url(../img/date0725.png) no-repeat center top;
        background-size: 45.33vw;
    }
    .list-program li.date0801 {
        background: url(../img/date0801.png) no-repeat center top;
        background-size: 45.33vw;
    }
    .list-program li.date0808 {
        background: url(../img/date0808.png) no-repeat center top;
        background-size: 45.33vw;
    }
    .list-program li.date0815 {
        background: url(../img/date0815.png) no-repeat center top;
        background-size: 45.33vw;
    }
    .list-program li.date0822 {
        background: url(../img/date0822.png) no-repeat center top;
        background-size: 45.33vw;
    }
    .list-program li a {
        display: block;
    }
    .list-program li:nth-child(3n) {
        margin-right: 0;
    }
    .list-program li dl {
        border-radius: 2.67vw;
    }
    .list-program li dl dt {
        position: relative;
        overflow: hidden;
    }
    .list-program li dd {
        padding: 4.8vw 4.67vw 6vw 4.67vw;
    }
    .list-program__title {
        font-size: 4.8vw;
        font-weight: 600;
        line-height: 1.5;
        letter-spacing: .03em;
    }
    .list-program__date {
        font-size: 4.53vw;
        margin-top: 2.67vw;
    }
    .list-program__atttention {
        font-size: 3.5vw;
        margin-top: 2.67vw;
    }
}
.present {
    background: url(../img/present_bg.png) no-repeat center bottom min(8vw, 80px);
    background-size: min(112vw, 1120px);
}
.present .title-icon {
    width: min(3.5vw, 35px);
    margin: 0 auto;
}
.present-lead {
    text-align: center;
    color: #ff9242;
    font-size: min(2.6vw, 26px);
    font-weight: 500;
    letter-spacing: .05em;
    line-height: 1.7;
    padding: min(4vw, 40px) 0 0 0;
}
.present-list {
    width: 84%;
    max-width: 800px;
    margin: 0 auto;
    position: relative;
}
.present-list ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    box-sizing: border-box;
}
.present-list li {
    width: calc((100% - min(4vw, 50px))/ 2);
    margin-right: min(4vw, 50px);
    margin-top: min(5vw, 60px);
    box-sizing: border-box;
    background: #FFF;
    border-radius: 10px;
}
.present-list li:last-child{
    margin-left: auto;
    margin-right: auto;
}
.present-list li:nth-child(2n) {
    margin-right: 0;
}
.present-info {
    width: 100%;
    background: #f85252;
    padding: 0 0 70px 0;
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
}
.presentB .present-info {
    background: #06a551;
}
.presentC .present-info {
    background: #fdd000;
}
.present-info__contents {
    display: flex;
    justify-content: space-between;
    height: 70px;
    align-items: center;
    padding: 0 5%;
}
.present-info__prize p {
    letter-spacing: .08em;
    font-size: min(3.5vw, 35px);
    line-height: 1;
    color: #FFF;
    font-weight: 500;
}
.present-info__prize p:after {
    content: "賞";
    font-size: min(1.5vw, 15px);
}
.present-info__point {
    color: #FFF;
    display: flex;
    align-items: center;
}
.present-info__point .point-item1 {
    color: #FFF;
    font-weight: 700;
    text-align: center;
    font-size: min(1.3vw, 13px);
    line-height: 1;
    border: 2px solid #FFF;
    border-radius: 100px;
    padding: .4em .8em;
    display: inline-block;
    letter-spacing: .04em;
}
.presentC .present-info__prize p, .presentC .present-info__point, .presentC .present-info__point .point-item1 {
    color: #000;
}
.presentC .present-info__point .point-item1 {
    border: 2px solid #000;
    background: #FFF;
}
.present-info__point .point-item2 {
    font-size: min(1.3vw, 13px);
}
.present-info__point .point-item2 {
    margin-left: .5em;
}
.present-info__point .point-item2 span {
    font-size: min(2.5vw, 25px);
    font-weight: 500;
    letter-spacing: .1em;
}
.present-item figure {
    width: 90%;
    margin: -70px auto 0 auto;
    box-sizing: border-box;
}
.present-item__name {
    width: 100%;
    text-align: center;
    padding: min(1.5vw, 20px) 0 min(2.5vw, 25px) 0;
}
.presentC .present-item__name {
    width: 100%;
    text-align: center;
    padding: min(1.5vw, 20px) 0 min(1vw, 15px) 0;
}
.present-item__name dt {
    font-size: min(2vw, 20px);
    font-weight: 700;
    line-height: 1.5;
}
.present-item__name dd {
    font-size: min(1.6vw, 16px);
    font-weight: 500;
    line-height: 1;
    margin-top: min(1vw, 10px);
}
.present-item__name dd span {
    font-size: min(4vw, 40px);
}
.present-item__program {
    width: 88%;
    box-sizing: border-box;
    margin: 0 auto;
    padding: min(1vw, 10px) 0 min(2.5vw, 25px) 0;
    color: #666;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing: .05em;
    border-top: 1px solid #ff872f;
    font-size: min(1.6vw, 16px);
}
.present-item__program span {
    color: #ff872f;
    font-weight: 600;
    display: inline-block;
    padding-bottom: .3em;
}
.presentA .present-item__name dd {
    color: #f85252;
}
.presentB .present-item__name dd {
    color: #06a551;
}
.presentC .present-item__name dd {
    color: #ff872f;
}
@media screen and (max-width: 960px) {
    .present-info {
        padding: 0 0 6.25vw 0;
    }
    .present-info__contents {
        height: 6.25vw;
    }
    .present-item figure {
        margin: -6.25vw auto 0 auto;
    }
}
@media screen and (max-width: 768px) {
    .present {
        background: url(../img/present_bg_sp.png) no-repeat center bottom 12vw;
        background-size: 117%;
    }
    .present .title-icon {
        width: 6vw;
    }
    .present-lead {
        font-size: 4.8vw;
        padding: 8vw 0 0 0;
    }
    .present-list {
        margin: 0 auto;
        width: 84%;
    }
    .present-list ul {
        display: block;
    }
    .present-list li {
        width: 100%;
        margin-right: 0;
        margin-top: 9.33vw;
        border-radius: 2.67vw;
    }
    .present-info {
        width: 100%;
        padding: 0 0 14.67vw 0;
        border-top-left-radius: 2.67vw;
        border-top-right-radius: 2.67vw;
    }
    .present-info__contents {
        height: 14.67vw;
    }
    .present-info__prize p {
        letter-spacing: .08em;
        font-size: 8.53vw
    }
    .present-info__prize p:after {
        content: "賞";
        font-size: 3.73vw;
    }
    .present-info__point .point-item1 {
        font-size: 2.93vw;
        padding: .4em .6em .2em .6em;
    }
    .present-info__point .point-item2 {
        font-size: 3.47vw;
    }
    .present-info__point .point-item2 span {
        font-size: 6.4vw;
        letter-spacing: .1em;
    }
    .present-item figure {
        margin: -14.67vw auto 0 auto;
    }
    .present-item__name {
        padding: 4.8vw 0 4.67vw 0;
    }
    .presentC .present-item__name {
        padding: 4.8vw 0 2.67vw 0;
    }
    .present-item__name dt {
        font-size: 4.8vw;
        font-weight: 600;
        line-height: 1.3;
        letter-spacing: .05em;
    }
    .present-item__name dd {
        font-size: 3.47vw;
        margin-top: 2vw;
    }
    .present-item__name dd span {
        font-size: 9.33vw;
    }
    .present-item__program {
        width: 88%;
        padding: 2.67vw 0 4.8vw 0;
        line-height: 1.6;
        font-size: 3.73vw;
        letter-spacing: .01em;
    }
    .present-item__program span {
        padding-bottom: .2em;
    }
}
@media screen and (max-width:768px) {}
.guide-list {
    width: 94%;
    max-width: 1180px;
    margin: min(8vw, 80px) auto 0 auto;
    position: relative;
}
.guide-list ul {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    flex-direction: row;
    box-sizing: border-box;
}
.guide-list li {
    width: calc((100% - min(6vw, 80px))/ 3);
    margin-right: min(3vw, 40px);
    box-sizing: border-box;
    position: relative;
}
.guide-list li:nth-child(3n) {
    margin-right: 0;
}
.guide-item figure {
    background: #FFF;
    padding: min(.8vw, 8px);
    margin: min(2vw, 20px) auto 0 auto;
    box-sizing: border-box;
}
.guide-item__step {
    color: #ff9242;
    text-align: center;
    font-size: min(3.6vw, 40px);
    line-height: 1;
    font-weight: 600;
}
.guide-item dl {
    width: 100%;
}
.guide-item__title {
    color: #fdd000;
    font-weight: 500;
    font-style: normal;
    letter-spacing: .06em;
    font-size: min(2vw, 20px);
    line-height: 1.7;
    margin-top: min(2.5vw, 25px);
}
.guide-item__txt {
    color: #FFF;
    letter-spacing: .05em;
    line-height: 1.9;
    margin-top: min(1.5vw, 15px);
    font-size: min(1.6vw, 16px);
}
.guide-item__txt2 {
    color: #cecfdc;
    letter-spacing: .02em;
    line-height: 1.75;
    margin-top: min(1.5vw, 15px);
    padding: min(1.5vw, 15px) 0;
    font-size: min(1.5vw, 15px);
    border-top: 1px solid #cecfdc;
    border-bottom: 1px solid #cecfdc;
}
.guide-item__txt2 a {
    color: #b9bac7;
    display: inline-block;
    text-decoration: underline;
}
@media screen and (max-width: 768px) {
    .guide-list {
        margin: 0 auto;
        width: 84%;
    }
    .guide-list ul {
        display: block;
    }
    .guide-list li {
        display: block;
        width: 100%;
        margin-right: 0;
        position: relative;
        margin-top: 10.67vw;
    }
    .guide-item figure {
        background: #FFF;
        padding: 2vw;
        margin: 4vw auto 0 auto;
        box-sizing: border-box;
    }
    .guide-item__step {
        font-size: 9.33vw;
    }
    .guide-item dl {
        width: 100%;
    }
    .guide-item__title {
        font-size: 4.8vw;
        line-height: 1.7;
        margin-top: 6.4vw;
    }
    .guide-item__txt {
        line-height: 1.8;
        font-size: 4vw;
        letter-spacing: .06em;
        margin-top: 3.73vw;
    }
    .guide-item__txt2 {
        line-height: 1.8;
        font-size: 3.73vw;
        letter-spacing: .05em;
        margin-top: 4vw;
        padding: 3.33vw 0;
    }
}