@charset "utf-8";

/* common */
:root {
    --color-white: #fff;
    --color-green: #12B155;
    --color-navy: #09081D;
    --color-yellow: #F6F629;
    --color-gray: #231815;
}
.ff_noto_sans_jp {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}
body {
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-style: normal;
    color:var(--color-gray);
    font-feature-settings: 'palt' on;
}
.wrap {
    position: relative;
    overflow: clip;
}
.contents {
    position: relative;
}
.bg_effects {
    position: fixed;
    z-index:-1;
    inset:0;
    width: 100%;
    height: 100%;
    mix-blend-mode: multiply;
    pointer-events: none;
}
.bg_effects canvas {
    position: absolute;
    inset:0;
    width: 100%;
    height: 100%;
    background: var(--color-white);
}
.content_inner {
    position: relative;
    width:100%;
    margin-inline: auto;
    height: auto;
    display: block;
}
@media (min-width: 768px) {
    .content_inner {
        max-width: 1440rem;
        padding-inline: 64rem;
    }
}
@media (max-width:767px) {
    .content_inner {
        padding-inline: 18rem;
    }
}


/* header */
.header {
    position:relative;
    z-index: 20;
    background-color: var(--color-green);
    color: var(--color-white);
}
.hd_inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1440px;
    margin-inline: auto;
}
.hd_logo_wrap {
    position: relative;
    height: 100%;
}
.hd_logo_inner {
    background-color: var(--color-white);
    display: flex;
    justify-content: center;
    height: 100%;
    clip-path: polygon(0 0, 100% 0%, 95% 100%, 0% 100%);
}
.hd_logo_wrap::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    right: 100%;
    width: 40vw;
    height: 100%;
    background-color: var(--color-white);
}
.hd_logo {
    display: flex;
    align-items: center;
    justify-content: center;
}
.hd_logo img {
    height: auto;
}
.hd_catch {
    letter-spacing: 0.1em;
    text-align: center;
    font-weight: 700;
}
@media (min-width: 768px) {
    .hd_inner {
        height: calc(var(--font-size)* 64);
    }
    .hd_logo {
        width: calc(var(--font-size)* 243);
        padding-right: calc(var(--font-size)* 12);
    }
    .hd_logo img {
        max-width: calc(var(--font-size)* 181);
    }
    .hd_catch {
        font-size: calc(var(--font-size)* 24);
        flex: 1;
    }
}
@media (max-width:767px) {
    .hd_logo_wrap {
        width: calc(var(--font-size)* 76);
    }
    .hd_logo {
        width: 100%;
        padding: calc(var(--font-size)* 8) calc(var(--font-size)* 3) calc(var(--font-size)* 8) 0;
    }
    .hd_logo_inner {
        clip-path: polygon(0 0, 100% 0%, 90% 100%, 0% 100%);
    }
    .hd_logo img {
        max-width: calc(var(--font-size)* 45);
    }
    .hd_catch {
        font-size: calc(var(--font-size)* 12);
        line-height: 1.5;
        flex: 1;
    }
}
/* footer */
.footer {
    position: relative;
    z-index: 20;
    background-color:var(--color-white);
}
.ft_inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-inline: auto;
}
.ft_left {
    display: flex;
    align-items: center;
}
.ft_nav_list {
    display: flex;
}
.ft_nav_list a {
    text-decoration: none;
    color: #131313;
}
.ft_logo > img {
    width: 100%;
    height:auto;
}
@media (min-width: 768px) {
    .footer {
        padding-block: calc(var(--font-size)* 20);
        margin-top: calc(var(--font-size) * 118);
    }
    .ft_inner {
        width: calc(var(--font-size)* 1050);
    }
    .ft_left {
        gap: 0 calc(var(--font-size)* 20);
    }
    .ft_logo {
        width: calc(var(--font-size)* 70);
    }
    .ft_nav_list {
        gap: calc(var(--font-size)* 10);
        font-size: calc(var(--font-size)* 14);
    }
    .ft_nav_list > li + li a {
        position: relative;
        padding-left: calc(var(--font-size)* 10);
    }
    .ft_nav_list > li + li a::before {
        content: '';
        display: block;
        position:absolute;
        top:0;
        bottom:0;
        margin-block: auto;
        left:0;
        height: calc(var(--font-size)* 12);
        border-left: 1px solid rgba(19, 19, 19, 1);
    }
    .ft_copy {
        font-size: calc(var(--font-size)* 12);
    }
    @media (hover: hover){
        .ft_nav_list a {
            transition: color 0.4s;
        }
        .ft_nav_list a:hover {
            color: var(--color-green)
        }
    }
}
@media (max-width:767px) {
    .footer {
        padding-top: calc(var(--font-size)* 24);
        padding-bottom: calc(var(--font-size)* 16);
        margin-top: calc(var(--font-size)* 116);
    }
    .ft_inner {
        flex-direction: column;
        gap: calc(var(--font-size) * 8) 0;
        padding: 0 calc(var(--font-size) * 21);
    }
    .ft_left {
        gap: 0;
        justify-content: space-between;
        width: 100%;
    }
    .ft_logo {
        width: calc(var(--font-size)* 62);
    }
    .ft_nav_list {
        flex-wrap: wrap;
        gap: calc(var(--font-size)* 8) calc(var(--font-size)* 15);
        font-size: calc(var(--font-size)* 12);
        line-height: 1.5;
        justify-content: flex-end;
        flex: 1;
    }
    .ft_nav_list > li:nth-child(3){
        width: 100%;
    }
    .ft_nav_list > li + li a {
        position: relative;
        padding-left: calc(var(--font-size)* 15);
    }
    .ft_nav_list > li + li a::before {
        content: '';
        display: block;
        position:absolute;
        top:0;
        bottom:0;
        margin-block: auto;
        left:0;
        height: calc(var(--font-size)* 12);
        border-left: 1px solid rgba(19, 19, 19, 1);
    }
    .ft_copy {
        font-size: calc(var(--font-size) * 10);
        letter-spacing: calc(1 / 10 * 1em);
    }
}


/* mv */
.mv {
    position:relative;
    overflow:hidden;
}
.mv_logo_realive {
    display: block;
    height: auto;
}
.mv_ttl_realive {
    text-align: center;
    font-weight: 600;
    line-height: 1;
}
.mv_set {
    display: flex;
    justify-content: center;
    align-items: center;
    font-weight: 600;
}
.mv_set_txt_cover {
    display: flex;
    align-items: baseline;
}
.mv_pop {
    display:flex;
    justify-content: center;
    align-items: center;
    color:var(--color-white);
    text-decoration: none;
}
.mv_data_wrap {
    display: flex;
    justify-content: center;
}
.mv_data > dt + dd {
    display: flex;
    align-items: baseline;
}
.mv_data_arrow {
    display:inline-block;
    vertical-align: text-top;
    position: relative;
}
.mv_data_arrow svg {
    height: auto;
}
@media (min-width: 768px) {
    .mv_logo_realive {
        width: 600rem;
        margin: 107rem auto 0;
    }
    .mv_ttl_realive {
        font-size: 50rem;
        line-height: 1;
        letter-spacing: calc(15 / 50 * 1em);
        margin-top: 80rem;
        padding-left: 15rem;
    }
    .mv_set {
        gap: 32rem;
        margin-top: 80rem;
        padding-left: 14rem;
    }
    .mv_set_txt_cover {
        line-height: 0;
    }
    .mv_set_txt_pc_32 {
        font-size: 32rem;
        letter-spacing: 0.2em;
    }
    .mv_set_txt_pc_26 {
        font-size: 26rem;
        letter-spacing: 0.2em;
    }
    .mv_set_txt_pc_60 {
        font-size: 60rem;
        letter-spacing: 0.2em;
        translate: 0.05em 0.05em;
    }
    .mv_set_txt_pc_42 {
        font-size: 42rem;
        letter-spacing: 0.2em;
    }

    .mv_pop {
        width: 415rem;
        height: 113rem;
        background: url(../images/mv_pop_bg.svg) no-repeat 50% 50% / contain;
    }
    .mv_pop_pc_30 {
        font-size: 30rem;
        letter-spacing: calc(6/30*1em);
    }
    .mv_pop_pc_24 {
        font-size: 24rem;
        letter-spacing: calc(4.8/24*1em);
    }
    .mv_data_wrap {
        margin-top: 63rem;
    }
    .mv_data + .mv_data {
        border-left:1px solid var(--color-gray);
        margin-left: 50rem;
        padding-left: 50rem;
    }
    .mv_data > dt {
        font-size: 18rem;
        line-height:1;
        letter-spacing: calc(1.8/18*1em);
    }
    .mv_data > dt + dd {
        margin-top: 15rem;
        padding-left: 10rem;
    }
    .mv_data > dt + dd > * + * {
        margin-left: 1rem;
    }
    .mv_data_pc_22 {
        font-size: 22rem;
        letter-spacing: 0.1em;
    }
    .mv_data_pc_26 {
        font-size: 26rem;
        letter-spacing: 0.1em;
    }
    .mv_data_arrow {
        margin-inline: 5rem !important;
        top: -0.2em;
    }
    .mv_data_arrow svg {
        width: 11rem;
    }
}
@media (max-width:767px) {
    .mv_logo_realive {
        width: 277rem;
        margin: 59rem auto 0;
    }
    .mv_ttl_realive {
        font-size: 30rem;
        line-height: 1.8;
        letter-spacing: calc(17 / 50 * 1em);
        margin-top: 38rem;
        padding-left: 8rem;
    }
    .mv_set {
        flex-direction: column;
        gap: 40rem;
        margin-top: 38rem;
        padding-left: 0rem;
    }
    .mv_set_txt_cover {
        line-height: 0;
    }
    .mv_set_txt_sp_20 {
        font-size: 20rem;
        letter-spacing: 0.2em;
    }
    .mv_set_txt_sp_16 {
        font-size: 16rem;
        letter-spacing: 0.2em;
    }
    .mv_set_txt_sp_38 {
        font-size: 38rem;
        letter-spacing: 0.2em;
        translate: 0.05em 0.05em;
    }
    .mv_set_txt_sp_26 {
        font-size: 26rem;
        letter-spacing: 0.2em;
    }

    .mv_pop {
        width: 262rem;
        height: 66rem;
        background: url(../images/mv_pop_bg.svg) no-repeat 50% 50% / contain;
    }
    .mv_pop_sp_20 {
        font-size: 20rem;
        letter-spacing: calc(4/20*1em);
    }
    .mv_pop_pc_16 {
        font-size: 16rem;
        letter-spacing: calc(3.2/16*1em);
    }
    .mv_data_wrap {
        margin-top: 50rem;
        flex-direction: column;
    }
    .mv_data + .mv_data {
        margin-top: 28rem;
    }
    .mv_data > dt {
        font-size: 15rem;
        line-height: 1;
        letter-spacing: calc(1.8 / 15 * 1em);
        margin-left: 2.1rem;
    }
    .mv_data > dt + dd {
        margin-top: 9rem;
        padding-left: 14rem;
    }
    .mv_data > dt + dd > * + * {
        margin-left: 1rem;
    }
    .mv_data_sp_15 {
        font-size: 15rem;
        letter-spacing: 0.1em;
    }
    .mv_data_sp_18 {
        font-size: 18rem;
        letter-spacing: 0.1em;
    }
    .mv_data_arrow {
        margin-inline: 5rem !important;
        top: -0.18em;
    }
    .mv_data_arrow svg {
        width: 7rem;
    }
}


/* content_box */
.content_box {
    position:relative;
    margin-inline: auto;
}
.content_box_ttl {
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
}
.content_box_subttl {
    position:relative;
    text-align:center;
    overflow: hidden;
}
.content_box_subttl::before {
    content:"";
    position:absolute;
    top:50%;
    width:100%;
}
.content_box_subttl::after {
    content:"";
    position:absolute;
    top:50%;
    width:100%;
}
.content_box_subttl_inner {
    position: relative;
    display: inline-block;
    font-weight: 600;
}
.content_box_txt {
    text-align: justify;
}
.prize_set {
    display: flex;
    justify-content: space-between;
}
.prize_logo_realive {
    height:auto;
}
.prize_set_txt {
    text-align: justify;
}
@media (min-width: 768px) {
    .content_box {
        margin-top: 155rem;
        width: 1050rem;
    }
    .content_box + .content_box {
        margin-top: 160rem;
    }
    .content_box_ttl {
        font-size: 30rem;
        letter-spacing: calc(6/30*1em);
        height:88rem;
        width:1048rem;
        background:url(../images/ttl_bg.svg) no-repeat 50% 0 / contain;
    }
    .content_box_list {
        margin-top: 96rem;
    }
    .content_box_list > li + li {
        margin-top: 96rem;
    }
    .content_box_subttl::before {
        border-top: 2px solid var(--color-gray);
        margin-top: -2px;
        left: calc(50% + 200rem);
    }
    .content_box_subttl::after {
        border-top: 2px solid var(--color-gray);
        margin-top: -2px;
        right: calc(50% + 200rem);
    }
    .content_box_subttl_inner {
        width: 360rem;
        font-size: 24rem;
        line-height: 1;
        letter-spacing: calc(4.8 / 24 * 1em);
    }
    .content_box_txt {
        font-size: 18rem;
        line-height: 2;
        letter-spacing: calc(3.6/18*1em);
        margin-top: 60rem;
    }
    .content_box_txt_pc_16 {
        font-size: 16rem;
    }
    .prize_set {
        gap:64rem;
        margin-top: 62rem;
    }
    .prize_logo_realive {
        width:222rem;
    }
    .prize_set_txt_pc_20 {
        font-size: 20rem;
        line-height: 2;
        letter-spacing: calc(4/20*1em);
    }
    .prize_set_txt_pc_18 {
        font-size: 18rem;
        line-height: 2;
        letter-spacing: calc(3.6/18*1em);
    }
    .prize_set_txt_cap {
        margin-top: 14rem;
        font-size: 16rem;
        font-weight: 400;
        line-height: 2;
        letter-spacing: calc(3.2 / 16 * 1em);
    }
}
@media (max-width:767px) {
    .content_box {
        margin-top: 112rem;
    }
    .content_box + .content_box {
        margin-top: 113rem;
    }
    .content_box_ttl {
        font-size: 19rem;
        letter-spacing: calc(6 / 30 * 1em);
        height: 67rem;
        background: url(../images/ttl_bg_sp.svg) no-repeat 50% 0 / contain;
    }
    .content_box_list {
        margin-top: 60rem;
    }
    .content_box_list > li + li {
        margin-top: 56rem;
    }
    .content_box_subttl::before {
        border-top: 1px solid var(--color-gray);
        margin-top: -1px;
        left: calc(50% + 120rem);
    }
    .content_box_subttl::after {
        border-top: 1px solid var(--color-gray);
        margin-top: -1px;
        right: calc(50% + 120rem);
    }
    .content_box_subttl_inner {
        width: 250rem;
        font-size: 16rem;
        line-height: 1;
        letter-spacing: calc(3.8 / 16 * 1em);
    }
    .content_box_txt {
        font-size: 14rem;
        line-height: 2;
        letter-spacing: calc(2.3 / 14 * 1em);
        margin-top: 34rem;
    }
    .content_box_txt_sp_12 {
        font-size: 11rem;
    }
    .prize_set {
        flex-direction: column;
        gap: 32rem;
        margin-top: 34rem;
    }
    .prize_logo_realive {
        width: 215rem;
        display: block;
        margin-inline: auto;
    }
    .prize_set_txt_sp_14 {
        font-size: 14rem;
        line-height: 2;
        letter-spacing: calc(2.5 / 14 * 1em);
    }
    .prize_set_txt_cap {
        margin-top: 9rem;
        font-size: 11rem;
        font-weight: 400;
        line-height: 2.1;
        letter-spacing: calc(3 / 11 * 1em);
    }

}

/* step_list */
.step_list {
    position: relative;
}
.step_list > li {
    position: relative;
}
.step_list > li + li::before {
    content:"";
    position: absolute;
    height:100%;
}
.step_list {
    position: relative;
    overflow: hidden;
}
.step_list_item_set {
    display: flex;
    align-items: center;
    position: relative;
}
.step_list_item_set_step_cover {
    font-weight: 600;
}
.step_ill {
    width: 100%;
    height: auto;
}
.step_list_item_set_detail_ttl {
    font-weight: 600;
}
.step_list_item_set_detail_txt_cap a {
    color: inherit;
}
.step_list_item_set_detail_btn {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    color:inherit;
    text-decoration: none;
}
.step_list_item_set_detail_btn_inner {
    position: relative;
    text-align: justify;
    font-weight: 600;
}
.step_list_item_set_step {
    position: relative;
}
.step_list_item_set_detail_tb {
    text-align: justify;
}
.step_list_item_set_detail_tb th {
    text-align:left;
    font-weight: inherit;
}
/* safari対応 */
.step_list_item_set_detail_tb td a {
    color:inherit;
    text-decoration: none;
    pointer-events: none;
}
.step_list_item_set_detail_form_btn {
    position:relative;
    display: flex;
    justify-content: center;
    align-items: center;
    color: var(--color-white);
    text-decoration: none;
}
.step_list_item_set_detail_form_btn_inner {
    position: relative;
    text-align: justify;
    font-weight: 600;
}
@media (min-width: 768px) {
    .step_list {
        margin-top: 94rem;
    }
    .step_list > li + li::before {
        left: 29rem;
        height:100%;
        border-right: 2px dashed var(--color-gray);
    }
    .step_list > li + li:nth-child(2)::before {
        bottom: 76%;
    }
    .step_list > li + li:nth-child(3)::before {
        bottom: 70%;
    }
    .step_list > li + li:nth-child(4)::before {
        bottom: 80%;
    }
    .step_list > li + li {
        margin-top: 118rem;
    }
    .step_list_item_set_detail {
        flex: 1;
    }
    .step_list_item_set {
        gap: 64rem;
    }
    .step_list_item_set_step_cover {
        text-align: center;
        font-size: 20rem;
        line-height: 1.5;
        letter-spacing: calc(4 / 20 * 1em);
        width: 59rem;
        padding-block: 21rem;
    }
    .step_list_item_set_step_num {
        font-size: 24rem;
        letter-spacing: calc(4 / 24 * 1em);
    }
    .step_list_item_set_illust {
        width: 166rem;
        height: 228rem;
    }
    .step_list_item_set_detail_ttl {
        font-size: 20rem;
        line-height: 1;
        letter-spacing: calc(4/20*1em);
        margin-top: 14rem;
    }
    .step_list_item_set_detail_txt {
        font-size: 18rem;
        line-height:2;
        letter-spacing: calc(3.6/18*1em);
        margin-top: 35rem;
    }
    .step_list_item_set_detail_txt_cap {
        font-size: 16rem;
        letter-spacing: calc(3.2/16*1em);
    }
    .step_list_item_set_detail_btn_wrap {
        margin-top: 40rem;
    }
    .step_list_item_set_detail_btn {
        border: 2rem solid var(--color-gray);
        width: 319rem;
        height: 72rem;
    }
    .step_list_item_set_detail_btn_inner {
        font-size: 18rem;
        line-height: 1;
        letter-spacing: calc(3.6/18*1em);
    }
    .step_list_item_set_detail_tb {
        margin-top: 35rem;
        font-size: 18rem;
        line-height: 2;
        letter-spacing: calc(3.6/18*1em);
    }
    .step_list_item_set_detail_tb td {
        padding-left: 33rem;
    }
    .step_list_item_set_detail_form_btn_wrap {
        margin-top: 40rem;
    }
    .step_list_item_set_detail_form_btn {
        width: 334rem;
        height: 72rem;
        background: url(../images/form_btn_bg.svg) no-repeat 50% 50% / contain;
    }
    .step_list_item_set_detail_form_btn_inner {
        font-size: 18rem;
        line-height: 1;
        letter-spacing: calc(3.6/18*1em);
    }
    @media(hover: hover){
        .step_list_item_set_detail_btn {
            transition: border-color 0.4s, box-shadow 0.4s;
        }
        .step_list_item_set_detail_btn:hover {
            border-color: var(--color-white);
            box-shadow: 4rem 4rem 40rem 0 #E5F4FE;
        }
        .step_list_item_set_detail_btn::before {
            content: "";
            opacity: 0;
            position: absolute;
            inset: 0;
            background: radial-gradient(193.31% 101.88% at 107.85% 155.47%, #FFDFF0 0%, #E5F5FF 52.39%, #FFF 87.5%);
            transition: opacity 0.4s;
        }
        .step_list_item_set_detail_btn:hover::before {
            opacity: 1;
        }

        .step_list_item_set_detail_form_btn {
            transition: color 0.4s, filter 0.4s;
        }
        .step_list_item_set_detail_form_btn:hover {
            color: var(--color-gray);
            filter: drop-shadow(4rem 4rem 40rem #E5F4FE);
        }
        .step_list_item_set_detail_form_btn::before {
            content: "";
            opacity: 0;
            position: absolute;
            inset: 0;
            background: url(../images/form_btn_bg_over.svg) no-repeat 50% 50% / contain;
            transition: opacity 0.4s;
        }
        .step_list_item_set_detail_form_btn:hover::before {
            opacity: 1;
        }
    }
}
@media (max-width:767px) {
    .step_list {
        margin-top: 60rem;
    }
    .step_list > li + li::before {
        top: -56rem;
        left: 50%;
        height: 56rem;
        border-right: 2px dashed var(--color-gray);
        margin-left: -1px;
    }
    .step_list > li + li {
        margin-top: 92rem;
        padding-top: 16rem;
        position: relative;

    }
    .step_list_item_set_detail {
        flex: 1;
        order: -1;
    }
    .step_list_item_set {
        flex-direction: column;
        gap: 16rem;
    }
    .step_list_item_set_step {
        width: 100%;
        order: -2;
    }
    .step_list_item_set_step_cover {
        text-align: left;
        font-size: 15rem;
        line-height: 1.5;
        letter-spacing: calc(3 / 15 * 1em);
    }
    .step_list_item_set_step_num {
        font-size: 19rem;
        letter-spacing: calc(3.5 / 24 * 1em);
        padding-left: 10rem;
    }
    .step_list_item_set_illust {
        width: 159rem;
        height: 228rem;
        margin-top: 22rem;
    }
    .step_list_item_set_detail_ttl {
        font-size: 16rem;
        line-height: 2;
        letter-spacing: calc(3.2 / 16 * 1em);
    }
    .step_list_item_set_detail_txt {
        font-size: 14rem;
        line-height: 2;
        letter-spacing: calc(2.8 / 14 * 1em);
        margin-top: 10rem;
    }
    .step_list_item_set_detail_txt_cap {
        font-size: 12rem;
        letter-spacing: calc(2.4 / 12 * 1em);
    }
    .step_list_item_set_detail_btn_wrap {
        margin-top: 35rem;
        display: flex;
        justify-content: center;
    }
    .step_list_item_set_detail_btn {
        border: 1rem solid var(--color-gray);
        width: 235rem;
        height: 53rem;
        margin-inline: auto;
    }
    .step_list_item_set_detail_btn_inner {
        font-size: 15rem;
        line-height: 1;
        letter-spacing: calc(3 / 15 * 1em);
    }
    .step_list_item_set_detail_tb {
        margin-top: 14rem;
        font-size: 14rem;
        line-height: 1.8;
        letter-spacing: calc(2.8 / 14 * 1em);
    }
    .step_list_item_set_detail_tb td {
        padding-left: 17rem;
    }
    .step_list_item_set_detail_form_btn_wrap {
        margin-top: 40rem;
    }
    .step_list_item_set_detail_form_btn {
        width: 256rem;
        height: 55rem;
        background: url(../images/form_btn_bg.svg) no-repeat 50% 50% / contain;
    }
    .step_list_item_set_detail_form_btn_inner {
        font-size: 15rem;
        line-height: 1;
        letter-spacing: calc(3 / 15 * 1em);
    }
}

/* event */
.event_info_set {
    position: relative;
}
.event_info_set_box {
    display:flex;
}
.event_info_set_box a {
    color:inherit;
}
.entry_items_list {
    display: grid;
}
.entry_item_cover {
    color: inherit;
}
.entry_item_frame {
    display:flex;
    justify-content: center;
    align-items: center;
}
.entry_item_frame > img {
    width:100%;
    height: 100%;
    object-fit: cover;
}
.entry_item_txt {
    text-align: center;
    text-decoration-skip-ink: auto;
    text-decoration-thickness: auto;
    text-underline-offset: auto;
    text-underline-position: from-font;
}
.content_box_txt_cap {
    text-align: justify;
}
.content_box_txt_default_cap {
    text-align: justify;
}
.contact_set_box {
    display:flex;
}
.contact_set_box a {
    color:inherit;
}
@media (min-width: 768px) {
    .event_info_set {
        margin-top: 35rem;
    }
    .event_info_set_box {
        gap: 40rem;
        font-size: 18rem;
        letter-spacing: calc(3.6 / 18 * 1em);
    }
    .event_info_set_box > dt {
        width: 150rem;
    }
    .event_info_set_box > dd {
        flex: 1;
    }
    .event_info_set_pc_16 {
        font-size:16rem;
    }
    .event_info_set_box + .event_info_set_box {
        margin-top: 11rem;
    }
    .entry_items_list_wrap {
        margin-top: 70rem;
    }
    .entry_items_list {
        grid-template-columns: 1fr 1fr 1fr 1fr;
        gap: 40rem;
    }
    .entry_item_frame {
        width: 232rem;
        height: 232rem;
        font-size: 18rem;
        line-height: 1;
        letter-spacing: calc(1.8/18*1em);
    }
    .entry_item_txt {
        margin-top: 32rem;
        font-size: 16rem;
        line-height: 2;
        letter-spacing: calc(1.6/16*1em);
    }
    .entry_item_txt_small {
        font-size: 14rem;
    }
    .content_box_txt_cap {
        font-size: 16rem;
        line-height: 2;
        letter-spacing: calc(3.2/16*1em);
        margin-top: 65rem;
    }
    .content_box_txt_default_cap {
        font-size: 16rem;
        line-height: 2;
        letter-spacing: calc(3.2/16*1em);
        margin-top: 16rem;
    }
    .contact_set {
        margin-top: 22rem;
    }
    .contact_set_box {
        gap: 34rem;
        font-size: 18rem;
        letter-spacing: calc(3.6 / 18 * 1em);
    }
    .contact_set_box > dt {
        width: 90rem;
    }
    .contact_set_box > dd {
        flex: 1;
    }
    .contact_set_pc_16 {
        font-size:16rem;
    }
    .contact_set_box + .contact_set_box {
        margin-top: 11rem;
    }
}
@media (max-width:767px) {
    .event_info_set {
        margin-top: 22rem;
    }
    .event_info_set_box {
        gap: 5rem;
        font-size: 13rem;
        letter-spacing: calc(4.2 / 13 * 1em);
        flex-direction: column;
    }
    .event_info_set_box > dt {
        font-size: 14rem;
        letter-spacing: calc(2 / 14 * 1em);
    }
    .event_info_set_box > dd {
        font-size: 14rem;
        letter-spacing: calc(3.3 / 14 * 1em);
        line-height: 1.6;
    }
    .event_info_set_sp_12 {
        font-size:12rem;
    }
    .event_info_set_box + .event_info_set_box {
        margin-top: 22rem;
    }
    .entry_items_list_wrap {
        margin-top: 43rem;
    }
    .entry_items_list {
        grid-template-columns: 1fr 1fr;
        gap: 23rem 22rem;
    }
    .entry_item_frame {
        width: 158rem;
        height: 158rem;
        font-size: 14rem;
        line-height: 1;
        letter-spacing: calc(2.8 / 14 * 1em);
    }
    .entry_item_frame_ttl {
        height: auto;
        margin-inline: auto;
        padding-bottom: 8rem;
    }
    .entry_items_list > li:has(.entry_item_frame_ttl) {
        grid-column: span 2;
    }
    .entry_item_txt {
        margin-top: 12rem;
        font-size: 14rem;
        line-height: 2;
        letter-spacing: calc(1.4 / 14 * 1em);
    }
    .entry_item_txt_small {
        font-size: 12rem;
    }
    .content_box_txt_cap {
        font-size: 12rem;
        line-height: 1.94;
        letter-spacing: calc(2.4 / 12 * 1em);
        margin-top: 38rem;
    }
    .content_box_txt_default_cap {
        font-size: 12rem;
        line-height: 2;
        letter-spacing: calc(2.4 / 12 * 1em);
        margin-top: 12rem;
    }
    .contact_set {
        margin-top: 17rem;
    }
    .contact_set_box {
        gap: 8rem;
        font-size: 14rem;
        letter-spacing: calc(2.8 / 14 * 1em);
        flex-direction: column;
    }
    .contact_set_box > dt {
        width: auto;
    }
    .contact_set_box > dd {
        flex: 1;
    }
    .contact_set_pc_16 {
        font-size:16rem;
    }
    .contact_set_box + .contact_set_box {
        margin-top: 20rem;
    }
}

/* application_terms */
.application_terms_scroll {
    overflow: auto;
    color: var(--color-navy);
    margin-inline: auto;
}
.application_terms_scroll_inner {
    display: flex;
    flex-direction: column;
}
.simplebar-track.simplebar-vertical {
    width: 6rem;
}
.simplebar-track {
    background-color: #DEDCE4;
    border-radius: 6rem;
}
.simplebar-scrollbar::before {
  background: #514A6D;
  width: 100%;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}
.simplebar-scrollbar.simplebar-visible:before {
    opacity: 1;
}
.application_terms_btn_wrap {
    text-align: center;
}
.terms_checkbox {
    display: flex;
    align-items: center;
    justify-content: center;
}
.application_terms_btn {
    color: var(--color-white);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: auto;
    text-decoration: none;
    position: relative;
}
.application_terms_btn_txt {
    position: relative;
    display: block;
    letter-spacing: 0.05em;
}
.application_terms_btn.disabled {
    pointer-events: none;
}
.application_terms_btn::before {
    content: '';
    opacity: 0;
    transition: opacity 0.4s;
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.7);
    top: 0;
    left: 0;
}
.application_term_txt + .application_term_list_unordered,
.application_term_txt + .application_term_list_ordered {
    margin-top: 15rem;
}
.application_term_list_ordered + .application_term_txt {
    margin-top: 15rem;
}
.application_terms_scroll a {
    color: inherit;
}
.application_term_txt {
    word-break: break-all;
}
.application_term_list_unordered > li {
    padding-left: 1em;
    text-indent: -1em;
}
.application_term_list_ordered > li {
    padding-left: 2.4em;
    text-indent: -2.4em;
}
.terms_checkbox_icon {
    display: none;
}
.terms_checkbox_icon_wrap {
    display: flex;
    justify-content: center;
    width: 100%;
}
.terms_checkbox_icon_label {
    display: flex;
    align-items: center;
    cursor: pointer;
}
.terms_checkbox_icon_square {
    position: relative;
}
.terms_checkbox_icon:checked + .terms_checkbox_icon_wrap .terms_checkbox_icon_square::after {
    content: "";
    position: absolute;
    rotate: -50deg;
}
@media (min-width: 768px) {
    .application_terms_scrollarea {
        margin-top:96rem;
    }
    .application_terms {
        margin-top: 158rem;
        padding-bottom: 40rem;
    }
    .application_terms_scroll {
        height: 350rem;
        font-size: 18rem;
        line-height: 2;
        letter-spacing: calc(3.6/18*1em);
    }
    .application_term_txt {
        font-size: 18rem;
        line-height: 2;
        letter-spacing: calc(3.6/18*1em);
    }
    .application_term_txt_small {
        font-size: 16rem;
        line-height: 2;
        letter-spacing: calc(3.2/16*1em);
    }
    .application_term_ttl {
        font-weight: 600;
        font-size: 18rem;
        line-height: 2;
        letter-spacing: calc(3.6/18*1em);
    }
    .application_terms_scroll_inner {
        gap: 25rem;
        padding-right: 40rem;
    }
    .application_terms_btn_wrap {
        margin-top: 81rem;
    }
    .terms_checkbox {
        gap: 0 22rem;
        margin-left: -20rem;
    }
    .terms_checkbox > label {
        font-size: 18rem;
        line-height: 1.8;
        letter-spacing: 0.1em;
    }
    .application_terms_txt {
        margin-top: 30rem;
        font-size: 16rem;
        line-height: 1.8;
        letter-spacing: 0.2em;
    }
    .application_terms_btn {
        width: 640rem;
        height: 148rem;
        margin-top: 121rem;
        padding-right: 30rem;
        background:url(../images/campaign_btn_bg.svg) no-repeat 50% 0 / contain;
    }
    .application_terms_btn_txt {
        font-size: 24rem;
        letter-spacing: calc(4.8 / 24 * 1em);
        font-weight: 700;
        padding-left: 36rem;
    }

    .terms_checkbox_icon_label {
        gap: 24rem;
        font-size: 18rem;
        letter-spacing: calc(1.8 / 18 * 1em);
        margin-left: 3rem;
    }
    .terms_checkbox_icon_square {
        width: 23rem;
        height:23rem;
        border:2rem solid #d3d1d0;
    }
    .terms_checkbox_icon:checked + .terms_checkbox_icon_wrap .terms_checkbox_icon_square::after {
        top: 0rem;
        left: 2rem;
        width: 24rem;
        height: 8rem;
        border-bottom: 2rem solid var(--color-gray);
        border-left: 2rem solid var(--color-gray);
    }
    @media(hover: hover){
        .application_terms_btn {
            transition: color 0.4s, filter 0.4s;
        }
        .application_terms_btn:hover {
            color: var(--color-gray);
            filter: drop-shadow(4rem 4rem 40rem #E5F4FE);
        }
        .application_terms_btn::before {
            content: "";
            opacity: 0;
            position: absolute;
            inset: 0;
            background: url(../images/campaign_btn_bg_over.svg) no-repeat 50% 50% / contain;
            transition: opacity 0.4s;
        }
        .application_terms_btn:hover::before {
            opacity: 1;
        }
    }


}
@media (max-width:767px) {
    .application_terms_scrollarea {
        margin-top: 68rem;
    }
    .application_terms {
        margin-top: 73rem;
        padding-inline: 16rem;
    }
    .application_terms_scroll {
        height: 260rem;
        font-size: 14rem;
        line-height: 2;
        letter-spacing: calc(2.8/14*1em);
        padding-right: 22rem;
    }
    .application_term_txt {
        font-size: 14rem;
        line-height: 2;
        letter-spacing: calc(2.8/14*1em);
    }
    .application_term_txt_small {
        font-size: 12rem;
        line-height: 2;
        letter-spacing: calc(2.4/12*1em);
    }
    .application_term_ttl {
        font-weight: 600;
        font-size: 14rem;
        line-height: 2;
        letter-spacing: calc(2.8/14*1em);
    }
    .application_terms_scroll_inner {
        gap: 15rem;
    }
    .application_terms_btn_wrap {
        margin-top: 37rem;
    }
    .terms_checkbox {
        gap: 0 14rem;
    }
    .terms_checkbox > label {
        font-size: 14rem;
        line-height: 1.7;
        letter-spacing: 0.07em;
    }
    .application_terms_txt {
        margin-top: 22rem;
        font-size: 12rem;
        line-height: 2;
        letter-spacing: calc(1.6 / 12 * 1em);
    }
    .application_terms_btn {
        width: 338rem;
        height: 81rem;
        margin-top: 58rem;
        padding-right: 0rem;
        background: url(../images/campaign_btn_bg.svg) no-repeat 50% 0 / contain;
    }
    .application_terms_btn_txt {
        font-size: 18rem;
        line-height: 1.5;
        letter-spacing: calc(3.6 / 18 * 1em);
        font-weight: 700;
    }
    .terms_checkbox_icon_wrap {
        justify-content: start;
        margin-left: 13rem;
    }
    .terms_checkbox_icon_label {
        gap: 14rem;
        font-size: 14rem;
        letter-spacing: calc(1.4 / 14 * 1em);
    }
    .terms_checkbox_icon_square {
        width: 18rem;
        height: 18rem;
        border: 1rem solid #d3d1d0;
    }
    .terms_checkbox_icon:checked + .terms_checkbox_icon_wrap .terms_checkbox_icon_square::after {
        top: 0rem;
        left: 2rem;
        width: 20rem;
        height: 6rem;
        border-bottom: 1rem solid var(--color-gray);
        border-left: 1rem solid var(--color-gray);
    }
}

/* bnr_area */
.bnr_area {
    position: relative;
}
.bnr_list {
    text-align: center;
    margin-inline: auto;
}
.bnr {
    border:1px solid #d3d1d0;
    background: var(--color-white);
    display: flex;
    justify-content: center;
    align-items: center;
}
.bnr_logo {
    height:auto;
}
@media (min-width: 768px) {
    .bnr_area {
        margin-top:10rem;
    }
    .bnr_list {
        width: 480rem;
        margin-top: 123rem;
    }
    .bnr {
        width: 480rem;
        height: 100rem;
    }
    .bnr_logo {
        width: 180rem;
    }
}
@media (max-width:767px) {
    .bnr_area {
        margin-top: 37rem;
    }
    .bnr {
        width: 276rem;
        height: 57rem;
        margin-inline: auto;
    }
    .bnr_logo {
        width: 104rem;
    }
}

/* animation */
.animation_lay {
    position:relative;
}
.animation_lay::after {
    content:"";
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 999;
    mix-blend-mode: hard-light;
    mix-blend-mode: screen;
    background-repeat: no-repeat;
    background: radial-gradient(
        rgba(153, 217, 255, 0) 0%,
        rgba(153, 217, 255, 0.9) 55%,
        rgba(153, 217, 255, 0.95) 70%,
        rgba(153, 217, 255, 0) 80%,
        rgba(153, 217, 255, 0) 100%
    );
    background-position: 120% 120%;
    background-size: 500% 500%;
    opacity:0;
    pointer-events: none;
}
.animation_lay.is_active::after {
    animation: flashLay 3s ease-in-out forwards;
}
.animation_lay_inner {
    position: relative;
}
@keyframes flashLay {
    0% {
        background-size: 500% 500%;
        opacity: 1;
    }
    75% {
        background-position: 50% 50%;
        opacity: 1;
    }
    100% {
        background-position: 50% 50%;
        opacity: 0;
    }
}

/* キャンペーンボタンのアクティベート */
.application_terms_btn.is_disabled {
    background: url(../images/campaign_btn_bg_disable.svg) no-repeat 50% 0 / contain;
    pointer-events: none;
    color: var(--color-white);
}


/* end */
.content_end_wrap {
    position: relative;
}
.content_end_wrap a {
    pointer-events: none;
}
.content_end_cover {
    opacity:0.2;
}
.content_end {
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
}
.content_end_txt {
    position: sticky;
    top:0;
    left:0;
    height:100vh;
    display:flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    font-weight: 600;
}
@media (min-width: 768px) {
    .content_end_txt {
        font-size: 40rem;
        line-height: 1;
        letter-spacing: calc(12/40*1em);
    }
}
@media (max-width:767px) {
    .content_end_txt {
        font-size: 32rem;
        line-height: 1.5;
        letter-spacing: calc(9.6/32*1em);
    }
}

