@charset "UTF-8";
img{pointer-events: none;}
.anc{
    position: relative;
}
.ancPoint span{
    position:absolute;
    top: -40px;
}
.gray{
    opacity: 0.5;
}
.negative{
    width: 32px;
    height: 1px;
    display: block;
    background: #FFF;
    margin: 8px 0;
}

.allcontain{
    font-size: 14px;
    font-weight: 400;
    line-height: 1.6em;
    font-family: 'Roboto', "Noto Sans JP", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", meiryo, Osaka, "ＭＳ Ｐゴシック", sans-serif;
}
.section--detail {
    width: calc(100% - 120px);
    max-width: 1200px;
    display: flex;
    flex-direction: column;
    gap: 40px;
}
.page--entry .section--detail .site-logo {
    width: 450px;
    margin: 0 auto 50px;
}

section{

}
.sectionInner{
    padding: 64px 40px 40px;
    background: #111;
    color: #FFF;
}
.contentTit{
    text-align: center;
    font-size: 28px;
    font-weight: 500;
    margin-bottom: 48px;
    line-height: 1.4em;
    position: relative;
    padding-bottom: 32px;
    color: #FF7675;
}
.contentTit:after{
    content: "";
    position: absolute;
    display: block;
    width: 10%;
    height: 5px;
    background: #FF7675;
    bottom: 0;
    left: 50%;
    margin-left: -5%;
}
.cautionList{
    display: flex;
    flex-direction: column;
    gap: 8px;
    opacity: 0.7;
}
.cautionList li{
    position: relative;
    font-size: 13px;
    line-height: 1.6em;
    padding-left: 16px;
}
.cautionList li .point{
    position: absolute;
    left: 0;
}
figure{
    line-height: 0;
}
.btn{
    display: block;
    margin: 0;
}
.btn a{
    display: inline-block;
    background-color: #333333;
    padding: 20px 32px;
    border-radius: 100px;
    text-align: center;
    color: #FFF;
    font-size: 16px;
    font-weight: 500;
    min-width: 240px;
}

/* PC */
@media screen and (min-width: 901px){
.section--detail .txt {
    margin: unset;
    line-height: 1.6em;
}
.btn a:hover{
    filter: brightness(1.2);
}
}

/* SP */
@media screen and (max-width: 900px){
.sectionInner{
    padding: 16px;
}
.section--detail {
    width: 100%;
    max-width: 100%;
    gap: 24px;
    padding: 100px 16px 64px;
}
.contentTit:after{
    bottom: -5px;
}
.btn a {
    padding: 16px 24px;
    font-size: 15px;
    min-width: 220px;
}
}
/*===================================================
    intro
=====================================================*/
.intro{
    position: relative;
    margin-bottom: 40px;
}
.intro .lead{
    text-align: center;
    font-size: 18px;
    line-height: 1.6em;
    max-width: 780px;
    margin: 0 auto 50px;
}
.intro .badge{
    position: absolute;
    right: 0;
    top: -24px;
    color: #FFF;
    display: flex;
    align-items: center;
    justify-content: center;
    width: clamp(146px, 11vw, 200px);
    aspect-ratio: 1;
    line-height: 0;
}
.intro .badge a{
    transition: 0.3s ease;
}
.intro .btnEntry{
    margin-bottom: 24px;
}
.intro .btnEntry a {
    padding: 24px 32px;
    font-size: 20px;
    min-width: 320px;
    background: #ff7675;
}
.intro .btnCapList{
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-size: 14px;
    font-weight: 500;
}
.intro .btnCapList li{

}
/* PC */
@media screen and (min-width: 901px){
.intro .badge a:hover{
    opacity: 0.7;
}
}
/* SP */
@media screen and (max-width: 900px){
.intro{
    margin-bottom: 32px;
}
.page--entry .section--detail .site-logo {
    width: 79%;
    margin: 0 0 24px;
}
.contentTit {
    font-size: 24px;
    font-weight: 500;
    margin-bottom: 24px;
    padding-bottom: 16px;
    line-height: 1.4em;
}
.intro .lead {
    text-align: left;
    font-size: 16px;
    margin-bottom: 24px;
}
.intro .badge {
    right: 0;
    top: 0;
    width: 18%;
    font-size: 2vw;
    font-weight: 800;
    line-height: 2.8vw;
    padding-top: 0;
}
.intro .btnEntry a {
    min-width: 100px;
    max-width: 280px;
    width: 100%;
}
}

/*===================================================
    prize
=====================================================*/
.prize{
    margin-bottom: 40px;
}
.prize .mainPrizeList{
    display: flex;
    flex-wrap: wrap;
    gap: 32px;
    margin-bottom: 32px;
}
.prize .prizeContain{
    width: calc((100% / 3) - (64px / 3));
    padding: 0 0 24px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 16px;
    background: #222222;
}
.prize .prizeContain .prizeTit{
    text-align: center;
    font-weight: 800;
    font-size: clamp(16px, 1.5vw, 20px);
    background: #FFF;
    color: #333;
    padding: 16px;
}
.prize .prizeContain .prizeDetail{
    padding: 0 24px;
}
.prize .prizeContain .txt{

}
.prize .prizeContain .cautionList{
    margin-top: 8px;
}
.prize .prizeContain .cautionList li{
    font-size: 12px;
    font-weight: 300;
}
.prize .prizeContain .prizeThumb{
    line-height: 0;
    padding: 0 24px;
}
.prize .subPrizeList{
    display: flex;
    flex-wrap: wrap;
    gap: 32px;
}
.prize .subPrizeList .prizeContain{
    width: calc((100% / 4) - (96px / 4));
    justify-content: flex-start;
}
.prize .subPrizeList .prizeContain .txt{
    padding: 0 24px;
}
/* SP */
@media screen and (max-width: 900px){
.prize {
    padding: 0;
    margin-bottom: 32px;
}
.prize .prizeContain {
    width: 100%;
}
.prize .prizeContain .prizeTit{
    padding-bottom: 14px;
    font-size: 16px;
}
.prize .mainPrizeList {
    gap: 8px;
    margin-bottom: 8px;

}
.prize .subPrizeList {
    gap: 8px
}
.prize .subPrizeList .prizeContain {
    width: calc(50% - 4px);
}
.prize .subPrizeList .prizeContain .prizeTit{
    font-size: 13px;
}
.prize .subPrizeList .prizeContain .txt{
    font-size: 13px;
    line-height: 1.6em;
}
}

/*===================================================
    joinPrize
=====================================================*/
.joinPrize{
    margin-bottom: 40px;
}
.joinPrize .lead{
    text-align: center;
    font-size: 18px;
    line-height: 1.6em;
    max-width: 780px;
    margin: 0 auto 64px;
}
.joinPrize .mainPrizeList{
    display: flex;
    gap: 24px;
    margin-bottom: 24px;
}
.joinPrize .mainPrizeList .prizeContain{
    width: calc((100% / 2) - 12px);
    padding: 16px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 16px;
    background: #222222;
}
.joinPrize .mainPrizeList .prizeContain .prizeThumb{

}
.joinPrize .mainPrizeList .prizeContain .prizeTit{
    text-align: center;
    font-weight: 800;
}
.joinPrize .mainPrizeList + .cautionList{
    border-top: 1px dashed #333;
    padding-top: 24px;
}

/* SP */
@media screen and (max-width: 900px){
.joinPrize {
    padding: 0;
    margin-bottom: 32px;
}
.joinPrize .lead {
    text-align: left;
    font-size: 16px;
    margin: 0 auto 24px;
}
.joinPrize .mainPrizeList {
    flex-direction: column;
    gap: 16px;
}
.joinPrize .mainPrizeList .prizeContain{
    width: 100%;
}
.joinPrize .mainPrizeList .prizeContain .prizeTit {
    font-size: 12px;
}
}
/*===================================================
    continuation
=====================================================*/
.continuation{
    margin-bottom: 40px;
}
.continuation .continuationLead{
    display: flex;
    flex-direction: column;
    max-width: 780px;
    margin: 0 auto 64px;
    gap: 16px;
}
.continuation .continuationLead li{
    text-align: center;
    font-size: 17px;
    line-height: 1.6em;
}
.continuation .continuationLead li .marker{
    background: linear-gradient(transparent 60%, #7f2727 60%);
    font-weight: 500;
}
.continuation .continuationLead + .cautionList{
    border-top: 1px dashed #333;
    padding-top: 24px;
}

/* SP */
@media screen and (max-width: 900px){
.continuation {
    padding: 0;
    margin-bottom: 32px;
}
.continuation .continuationLead {
    margin: 0 auto 24px;
}
.continuation .continuationLead li {
    text-align: left;
    font-size: 16px;
}
}
/*===================================================
    course
=====================================================*/
.course{
    margin-bottom: 40px;
}
.course .lead{
    text-align: center;
    font-size: 18px;
    line-height: 1.6em;
    max-width: 780px;
    margin: 0 auto 64px;
}
.course .statusBox{
    border: 1px solid #333;
}
.course .statusBox .status{
    display: flex;
    width: 100%;
}
.course .statusBox .status li{
    width: calc(100% / 3);
    padding: 16px;
    border-bottom: 1px solid #333;
    display: flex;
    align-items: center;
    justify-content: center;
}
.course .statusBox .status:last-child li{
    border-bottom: none;
}
.course .statusBox .status li:nth-child(1){
    justify-content: flex-start;
    max-width: 260px;
}
.course .statusBox .status li:nth-child(2){
    border-left: 1px solid #333;
    width: calc((100% - 260px) / 2);
    max-width: calc((100% - 260px) / 2);
    background: #222222;
}
.course .statusBox .status li:nth-child(3){
    border-left: 1px solid #333;
    width: calc((100% - 260px) / 2);
    max-width: calc((100% - 260px) / 2);
    background: #222222;
}
.course .statusBox .status.statusHead li:nth-child(2){
    background-color: #FFF;
    color: #111;
    font-size: clamp(16px, 1.5vw, 20px);
    font-weight: 800;
}
.course .statusBox .status.statusHead li:nth-child(3){
    background-color: #FFF;
    color: #111;
    font-size: clamp(16px, 1.5vw, 20px);
    font-weight: 800;
}
.course .statusBox .status li .txt{
        text-align: center;
}
.course .statusBox .status li .txt .icon{
    display: flex;
    align-items: center;
    width: fit-content;
    gap: 8px;
}
.course .statusBox .status li .txt .icon img{
    width: 20px;
    display: inline-block;
    padding-bottom: 2px;
}
.course .statusBox .status li .attentionTxt{
    display: block;
    font-size: 12px;
    margin-top: 4px;
}

/* PC */
@media screen and (min-width: 901px){
.course .statusBox .status li .txt .courceType{
    display: none;
}
}


/* SP */
@media screen and (max-width: 900px){
.course {
    padding: 0;
    margin-bottom: 32px;
}
.course .lead {
    text-align: left;
    font-size: 16px;
    margin: 0 auto 24px;
}
.course .statusBox {
    border: none;
}
.course .statusBox .statusHead{
    display: none;
}
.course .statusBox .status{
    flex-direction: column;
    border: none;
    margin-bottom: 16px;
}
.course .statusBox .status:last-child{
    margin-bottom:0;
}
.course .statusBox .status li {
    width: 100%;
    align-items: flex-start;
    justify-content: flex-start;
    padding: 8px 16px;
    border-bottom: none;
}
.course .statusBox .status li:nth-child(1) {
    border: none;
    padding: 2px 0 0 8px;
    margin-bottom: 8px;
    border-left: 4px solid;
    line-height: 1em;
}
.course .statusBox .status li:nth-child(2) {
    border-left: none;
    border-bottom: 1px dashed #333;
    width: 100%;
    max-width: 100%;
}
.course .statusBox .status li:nth-child(3) {
    border-left: none;
    width: 100%;
    max-width: 100%;
}
.course .statusBox .status li .txt {
    text-align: left;
}
.course .statusBox .status li .txt .courceType{
    display: block;
    text-align: left;
    font-size: 10px;
    color: #aaa;
}

}
/*===================================================
    payment
=====================================================*/
.payment{
    margin-bottom: 40px;
}
.payment .statusBox{
    border: 1px solid #333;
}
.payment .statusBox .status {
    display: flex;
    width: 100%;
}
.payment .statusBox .status li {
    width: calc(100% / 3);
    padding: 16px;
    border-bottom: 1px solid #333;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
}
.payment .statusBox .status:last-child li {
    border-bottom: none;
}
.payment .statusBox .status li.twoclm {
    width: calc(100% - (100% / 3));
}
.payment .statusBox .status li:nth-child(1) {
    text-align: left;
    justify-content: flex-start;
}
.payment .statusBox .status li:nth-child(2) {
    border-left: 1px solid #333;
    background: #222;
}
.payment .statusBox .status li:nth-child(3) {
    border-left: 1px solid #333;
    background: #222;
}

.payment .statusBox .status.statusHead li:nth-child(2) {
    background-color: #FFF;
    color: #111;
    font-size: clamp(16px, 1.5vw, 20px);
    font-weight: 800;
}
.payment .statusBox .status.statusHead li:nth-child(3) {
    background-color: #FFF;
    color: #111;
    font-size: clamp(16px, 1.5vw, 20px);
    font-weight: 800;
}

/* PC */
@media screen and (min-width: 901px){
.payment .statusBox .status li .txt .courceType{
    display: none;
}
}

/* SP */
@media screen and (max-width: 900px){
.payment {
    padding: 0;
    margin-bottom: 32px;
}
.payment .statusBox {
    border: none;
}
.payment .statusBox .statusHead{
    display: none;
}
.payment .statusBox .status{
    flex-direction: column;
    border: none;
    margin-bottom: 16px;
}
.payment .statusBox .status:last-child{
    margin-bottom:0;
}
.payment .statusBox .status li {
    width: 100%;
    align-items: flex-start;
    justify-content: flex-start;
    padding: 8px 16px;
    border-bottom: none;
}
.payment .statusBox .status li:nth-child(1) {
    border: none;
    padding: 2px 0 0 8px;
    margin-bottom: 8px;
    border-left: 4px solid;
    line-height: 1em;
}
.payment .statusBox .status li:nth-child(2) {
    border-left: none;
    border-bottom: 1px dashed #333;
}
.payment .statusBox .status li:nth-child(3) {
    border-left: none;
}
.payment .statusBox .status li.twoclm {
    width: 100%;
    border: none;
}
.payment .statusBox .status li .txt {
    text-align: left;
}
.payment .statusBox .status li .txt .courceType{
    display: block;
    text-align: left;
    font-size: 10px;
    color: #aaa;
}
}
/*===================================================
    attention
=====================================================*/
.attention{
    margin-bottom: 40px;
}
.attention .lead {
    text-align: center;
    font-size: 18px;
    line-height: 1.6em;
    max-width: 780px;
    margin: 0 auto 64px;
}
.attention .attentionBox{
    background: #222222;
    padding: 40px;
    margin-bottom: 40px;
}
.attention .attentionBox .attentionTit{
    text-align: center;
    font-size: 22px;
    margin-bottom: 40px;
    border-bottom: 1px dashed;
    padding-bottom: 40px;
}
.attention .attentionBox .cautionList li{
    font-size: 14px;
}

/* SP */
@media screen and (max-width: 900px){
.attention {
    padding: 0;
    margin-bottom: 32px;
}
.attention .lead {
    text-align: left;
    font-size: 16px;
    margin: 0 auto 24px;
}
.attention .attentionBox {
    width: 100%;
    padding: 24px 16px;
    margin-bottom: 24px;
}
.attention .attentionBox .attentionTit {
    font-size: 18px;
    margin-bottom: 24px;
    padding-bottom: 24px;
}
}
/*===================================================
    entry
=====================================================*/
.entry{
    padding: 64px;
    background: transparent;
}
.page--entry .entry .site-logo{
    width: 380px;
    margin: 0 auto 24px;
}
.entry .btnEntry{
    margin-bottom: 24px;
}
.entry .btnEntry a{
    background: #FF7675;
    padding: 24px 32px;
    font-size: 20px;
    min-width: 320px;
}
.entry .btnCapList{
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-size: 14px;
    font-weight: 500;
}
/* SP */
@media screen and (max-width: 900px){
.entry{
    padding: 32px 0 48px;
}
.page--entry .entry .site-logo {
    width: 80%;
    margin: 0 auto 24px;
}
.entry .btnEntry a{
    min-width: 100px;
    max-width: 280px;
    width: 100%;
}
}
/*===================================================
    app
=====================================================*/
.app{

}
.app .appClm{
    gap: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.app .appClm dt{

}
.app .appClm dd{
    width: 300px;
    line-height: 0;
}
.app .lead{
    font-size: 20px;
    font-weight: 500;
    line-height: 1.6em;
    margin-bottom: 24px;
    border-bottom: 1px solid;
    padding-bottom: 24px;
    text-align: center;
}
.appContaList{
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 32px;
}
.appContaList li{
    position: relative;
    padding-left: 20px;
    font-size: 16px;
    font-weight: 500;
}
.appContaList li .point{
    position: absolute;
    left: 0;
}
.appContaList li .txt{

}
/* SP */
@media screen and (max-width: 900px){
.app{
    padding: 0;
}
.app .contentTit {
    font-size: 18px;
    font-weight: 600;
}
.app .appClm {
    gap: 24px;
    flex-direction: column;
}
.app .appClm dd{
    width: 100%;
}
.app .lead {
    font-size: 14px;
    margin-bottom: 16px;
    padding-bottom: 16px;
    text-align: left;
}
.appContaList {
    margin-bottom: 24px;
}
.app .appContaList li {
    font-size: 14px;
}
.app .btn.appBtn a {
    font-size: 12px;
}
}
/*===================================================
    faq
=====================================================*/
.faq{
    padding: 64px;
    background: transparent;
}
.faq .lead{
    text-align: center;
    font-size: 18px;
    line-height: 1.6em;
    max-width: 780px;
    margin: 0 auto 24px;
}

/* SP */
@media screen and (max-width: 900px){
.faq{
    padding: 32px 0 16px;
}
.faq .lead {
    font-size: 16px;
    margin: 0 auto 16px;
}
}