@charset "utf-8";
/**************************************/
/* var
/**************************************/
:root {
    --bg-color: #111;
    --main-color: #f2f2f2;
    --main-link-color: #FFF;
    --sub-link-color: #0096FF;
    --font-size-base: 16px;
    --font-size-small: 14px;

    --ring-1:#dfe4ea;
    --ring-2:#9fa5ad;
    --ring-3:#f8f9fb;
    --stroke:#ffffff26;
    --card-bg-1:#1a1b1d;
    --card-bg-2:#0f0f11;
    --shadow:
    0 6px 16px rgba(0,0,0,.55),
    0 1px 0 rgba(255,255,255,.05) inset,
    0 0 28px rgba(200,220,255,.08);

    /* 色と光彩 */
    --gold: #F5D36A;
    --violet: #C89BFF;
    --cyan: #79E0FF;
    --shadow-dark: rgba(0, 0, 0, 0.65);
    --text-white: #fff;
    --light-pink: #FFD6DC;

    --title-grad: linear-gradient(90deg, var(--gold), var(--violet) 50%, var(--cyan));
}

/****************************************/
/* common
/*****************************************/
html{min-height: 100vh;}
body{
    position: relative;
    color:var(--main-color);
    font-family: "Noto Sans JP";
    font-optical-sizing: auto;
    font-size: var(--font-size-base);
    font-weight: 400;
    min-height: 100vh;
    background: linear-gradient(to right,#0a0e1a 0%,#000000 50%,#0a0e1a 100%);
    background-color: #000;
}
@media (min-width: 481px){
    body{ background-attachment: scroll; }
}
@supports (-webkit-touch-callout: none){
    body{ background-attachment: scroll; }
}

a{color:var(--main-link-color)}
a:hover{color:var(--sub-link-color)}
button{font-family: "Noto Sans JP", sans-serif;}

small{
    font-size: 12px;
    color: #AAA;
}

/* pc */
@media screen and (min-width: 481px){
    #wrapper{
        position: relative;
        margin:0px auto;
        width:480px;
        background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)),
                    url("../img/infinite/bg-img.webp") center/contain no-repeat fixed;
        background-color: #000;
    }
    #wrapper::before,
    #wrapper::after{
        content:"";
        position:fixed;
        top:0;
        bottom:0;
        width:8px;
        background: linear-gradient(180deg, transparent, #ffffff22 20%, #ffffff55 50%, #ffffff22 80%, transparent),
                    radial-gradient(60% 140% at 50% -20%, #79e0ff33, transparent 70%);
        filter: blur(0.3px) drop-shadow(0 0 12px rgba(121,224,255,.35));
        pointer-events:none;
        z-index:-1;
    }
    #wrapper::before{
        left: max(calc((100vw - 480px)/2 - 8px), 8px);
    }
    #wrapper::after{
        right:max(calc((100vw - 480px)/2 - 8px), 8px);
    }
}
/* sp */
@media screen and (max-width: 480px){
    #wrapper{
        position: relative;
        margin:0px auto;
        width:100%;
        background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)),
                    url("../img/infinite/bg-img.webp") center/cover no-repeat fixed;
        background-color: #000;
    }
}
header{
    position: relative;
    height: 56px;
    width: 100%;
    box-shadow: 0px 2px 2px rgba(211,211,211,0.5);
}
.header_contents{

}
.header_contents .header_logo{
    text-align: center;
    padding:8px;
    line-height: 40px;
}
.header_contents .header_logo img{
    height: 40px;
}

main{
    position: relative;
    min-height: calc(100vh - 96px);
    padding-bottom:84px;
    overflow: hidden;
}

footer{
    position: fixed;
    bottom:0px;
    left:0px;
    text-align:center;
    width:100%;
    height: 64px;
    padding-bottom:16px;
    background-color: #333;
    background: linear-gradient(to top, #090b0e, #1c1f25 60%, #2a2e34 100%),
                  radial-gradient(60% 100% at 50% 100%, rgba(255,255,255,0.05), transparent 70%);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    z-index: 100;
}
@media screen and (min-width: 481px){
    footer{
        left: calc(50% - 240px);
        max-width:480px;
    }
}

footer .footer-nav{
    position: relative;
    width:100%;
    height: 64px;
}
footer .footer-nav .footer-content{
    position: absolute;
    font-size:24px;
    line-height: 64px;
    width:64px;
}
footer .footer-nav .footer-content:nth-of-type(1){
    bottom:0px;
    left: 0px;
}
footer .footer-nav .footer-content:nth-of-type(2){
    top: -16px;
    left: calc(50% - 48px);
    font-size:42px;
    text-align: center;
    padding-top:8px;
    width:96px;
    background: linear-gradient(to top, #090b0e, #1c1f25 62.5%, #2a2e34 84%),
                  radial-gradient(60% 100% at 50% 100%, rgba(255,255,255,0.05), transparent 70%);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 48px;
}
footer .footer-nav .footer-content:nth-of-type(3){
    bottom:0px;
    right: 0px;
}
footer .footer-nav .footer-content a{

}
footer .footer-nav .footer-content button{
    color:#FFF;
    font-size:24px;
    line-height: 60px;
    width:64px;
    background-color: #333;
    background: linear-gradient(to top, #090b0e, #1c1f25 60%, #2a2e34 100%),
                  radial-gradient(60% 100% at 50% 100%, rgba(255,255,255,0.05), transparent 70%);
    border:none;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}
footer .footer-nav .footer-content img{
    display: inline-block;
    width:72px;
    height:72px;
}


/****************************************/
/* common layout
/*****************************************/
@media screen and (max-width: 767px){
}
.btn-common{
    display: block;
    color:#FFF;
    font-size: var(--font-size-small);
    line-height: 40px;
    text-align: center;
    margin:0px auto;
    width:240px;
    height: 40px;
    background-color: #000;
    border:solid 1px #FFF;
    border-radius: 20px;
}
.btn-common:disabled{
    background-color: #DDD;
}
.btn-common-s{
    display: inline-block;
    color:#FFF;
    font-size: var(--font-size-small);
    line-height: 22px;
    text-align: center;
    margin:0px auto;
    width:160px;
    height: 24px;
    background-color: #000;
    border:solid 1px #FFF;
    border-radius: 12px;
}
.btn-common-w{
    display: block;
    color:#FFF;
    font-size: var(--font-size-small);
    line-height: 40px;
    text-align: center;
    margin:0px auto;
    width:280px;
    height: 40px;
    background-color: #000;
    border:solid 1px #FFF;
    border-radius: 20px;
}

h2.title-common{
    font-size: 20px;
    font-weight: bold;
    line-height: 24px;
    text-align: center;
    margin-bottom:16px;
}
.subtitle-common{
    font-size: 16px;
    font-weight: bold;
    line-height: 32px;
    text-align: center;
}

.form-box{
    margin-bottom:16px;
    padding:8px 0px;
}
.form-box h3{
    line-height: 32px;
}
.form-box h3 span{
    color:#C00;
    font-size:14px;
    line-height: 32px;
}
.form-box input[type="text"],
.form-box input[type="email"],
.form-box input[type="password"]{
    line-height: 48px;
    padding:0px 16px;
    width:100%;
    height: 48px;
    color:#000;
    background-color:#FEFEFE;
    border-radius: 24px;
    border:none;
}
.form-box input[type="checkbox"]{
    width:16px;
    height: 16px;
}

.form-box input:read-only{
    background-color:#CCC;
}

.form-box select{
    line-height: 48px;
    padding:0px 16px;
    width:calc(100% / 3);
    height: 48px;
    color:#000;
    background-color:#FEFEFE;
    border-radius: 24px;
    border:none;
}
.form-box select.birthday{
    width:calc(100% / 3);
}

.form-box small{
    display: inline-block;
    font-size:12px;
    margin-top:8px;
}

.alert-box{
    color:#C00;
    font-size: 14px;
    margin:16px auto;
    padding:16px;
    background-color: rgb(255,238,242);
    border:solid 2px #C00;
    border-radius: 8px;
}
.success-box{
    color:#0C0;
    font-size: 14px;
    margin:16px auto;
    padding:16px;
    background-color: rgb(239,255,239);
    border:solid 1px #0C0;
    border-radius: 8px;
}



/****************************************/
/* login layout
/*****************************************/
#auth{
    padding:16px 8px;
}
#auth .auth-box{

}


/****************************************/
/* regist layout
/*****************************************/
#regist{
    padding:16px;
}
#regist .regist-box{

}


/****************************************/
/* top layout
/*****************************************/
#top{
    padding:16px 8px;
}

/****************************************/
/* event layout
/*****************************************/
#event{
    overflow: hidden;
    padding-bottom:80px;
}
#event .event-main-visual{
    position: relative;
    border-radius: 0px 8px 8px 0px;
}
#event .event-main-visual::after{
    position: absolute;
    content: "";
    bottom:-8px;
    left: 0px;
    width:100%;
    height: 48px;
    background: linear-gradient(transparent, #34182faa, #000000FF, transparent);
}
#event .event-main-visual .event-logo{
    position: absolute;
    top:8px;
    left:35%;
    width:30%;
    z-index: 10;
}

/* main-visual */
#event .hero {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #000;
}
#event.session .hero {
    aspect-ratio: 3 / 2;
}
#event .hero-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(0.9) contrast(1.05);
    z-index: 1;
}
#event .hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(0, 0, 0, 0.55) 0%,
        rgba(0, 0, 0, 0.2) 60%,
        rgba(0, 0, 0, 0.7) 100%
    );
    z-index: 2;
}
#event .hero-copy {
    position: relative;
    z-index: 3;
    text-align: center;
    padding: 4vw;
}
#event .hero-title {
    font-family: "Inter", "Questrial", "Noto Sans JP", sans-serif;
    font-weight: 800;
    text-transform: uppercase;
    color: var(--text-white);
    line-height: 1.05;
    text-shadow:
        0 2px 10px var(--shadow-dark),
        0 0 20px rgba(255, 255, 255, 0.08);
}
#event .hero-title .line.main {
    display: flex;
    flex-direction: column;
    gap: 0.4em;
    font-size: clamp(2.3rem, 2vw, 3.6rem);
    letter-spacing: 0.06em;
    margin-bottom: 0.3em;
}
#event .hero-title .gradient {
    background: linear-gradient(90deg, var(--gold), var(--violet) 50%, var(--cyan));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    text-shadow:
        0 0 15px rgba(200, 155, 255, 0.25),
        0 0 30px rgba(121, 224, 255, 0.15);
}
#event .hero-title .sub {
    display: block;
    font-size: clamp(1rem, 1.2vw, 2.3rem);
    font-weight: 600;
    letter-spacing: 0.25em;
    color: rgba(255, 255, 255, 0.85);
}
@media screen and (max-width: 768px){
    #event .hero {
        aspect-ratio: 3 / 4;
    }
    #event.session .hero {
        aspect-ratio: 3 / 2;
    }
    #event .hero-copy {
        padding: 10vw 6vw;
    }
    #event .hero-title .line.main {
        font-size: clamp(1.3rem, 7vw, 2.3rem);
        gap: 0.3em;
    }
    #event .hero-title .line.sub {
        letter-spacing: 0.15em;
    }
}
#event .hero-title { position: relative; text-align: center; line-height: 1.05; }

#event .hero-title .line.main .gradient{
    position: relative;
    display: inline-block;
    filter: drop-shadow(0 0 12px rgba(121,224,255,.22));
}
#event .hero-title .line.main .gradient .char{
    display: inline-block;
    background: var(--title-grad);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;

    opacity: 0;
    transform: translateY(1em) rotateX(35deg) scale(.96);
    filter: blur(8px);
    animation: title-rise .85s cubic-bezier(.2,.65,.2,1) forwards;
    animation-delay: calc(var(--i) * 70ms + 80ms);
    will-change: transform, opacity, filter;
}
#event .hero-title .line.main .gradient::after{
    content:"";
    position:absolute;
    inset:-6px -12px;
    background: linear-gradient(115deg, transparent 35%, rgba(255,255,255,.8) 52%, transparent 67%);
    mix-blend-mode: screen;
    transform: translateX(-120%) skewX(-12deg);
    animation: shine-sweep 1.6s ease-out .35s both;
    pointer-events:none;
    filter: blur(2px);
}
#event .hero-title .line.main .sub{
    display:block;
    margin-top:.6em;
    font-weight:700;
    letter-spacing:.6em;
    color:rgba(255,255,255,.92);
    opacity:0;
    text-shadow:0 2px 10px rgba(0,0,0,.45), 0 0 18px rgba(200,155,255,.18);
    animation: sub-track .9s ease-out .6s forwards, sub-fade .55s ease-out .6s forwards;
}
#event .hero-title::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:-.2em;
    width:0; height:2px;
    transform:translateX(-50%);
    background: linear-gradient(90deg, transparent, #ffffffcc, transparent);
    box-shadow:0 0 20px rgba(255,255,255,.5), 0 0 28px rgba(121,224,255,.35);
    animation: beam 1s ease-out .75s forwards;
}

/* ===== animation ===== */
@keyframes title-rise{
    0%{opacity:0;transform:translateY(1em) rotateX(35deg) scale(.96);filter:blur(8px)}
    60%{opacity:1;transform:translateY(0) rotateX(0) scale(1.03);filter:blur(0)}
    100%{opacity:1;transform:translateY(0) rotateX(0) scale(1);filter:blur(0)}
}
@keyframes shine-sweep{
    0%{transform:translateX(-120%) skewX(-12deg);opacity:0}
    25%{opacity:1}
    100%{transform:translateX(120%) skewX(-12deg);opacity:0}
}
@keyframes sub-track{from{letter-spacing:.6em;transform:translateY(.4em)} to{letter-spacing:.28em;transform:translateY(0)}}
@keyframes sub-fade{from{opacity:0} to{opacity:1}}
@keyframes beam{0%{width:0;opacity:0}60%{width:60%;opacity:1}100%{width:40%;opacity:.9}}

@media (prefers-reduced-motion: reduce){
    #event .hero-title .line.main .gradient .char,
    #event .hero-title .line.main .gradient::after,
    #event .hero-title .line.main .sub,
    #event .hero-title::after{
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
    }
}


#event .event-caption{
    font-weight: bold;
    line-height: 1.5;
    text-align: center;
    margin-top:32px;
}
#event .event-catch{
    display: block;
    position: relative;
    color: #fff;
    font-size: 1rem;
    line-height: 1.6;
    text-align: center;
    max-width: 92%;
    margin: 24px auto;
    padding: 16px 20px;
    background: rgba(255,255,255,0.06);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border: 1px solid rgba(255,255,255,0.18);
    border-radius: 12px;
    box-shadow:
        0 4px 10px rgba(0,0,0,0.45),
        inset 0 1px 3px rgba(255,255,255,0.15);
}
#event .event-catch::after{
    position: absolute;
    top: calc(50% - 10px);
    right: 8px;
    color: #FFF;
    font-weight: bold;
    content: "\276F";
}

#event h3.event-title {
    position: relative;
    display: block;
    color: #e8e8e8;
    font-family: "Goblin One","Noto Sans JP";
    font-size: 18px;
    font-weight: bold;
    letter-spacing: 0.08em;
    text-align: center;
    padding: 8px 16px;
    margin: 24px auto;
    max-width:360px;
    background: linear-gradient(90deg, #cfd2d6, #f7f7f8 50%, #cfd2d6);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
#event h3.event-title::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -6px;
    height: 1px;
    background: linear-gradient(90deg, transparent, #ffffffaa, transparent);
    box-shadow: 0 0 8px #ffffff33;
}

#event .event-description{
    padding:16px;
    line-height: 1.5;
}

#event .event-about-box{
    padding:24px 0px 24px;
    margin-top:24px;
}
#event .event-about-box h5{
    font-size:20px;
    font-weight: bold;
    text-align: center;
}

#event .btn-event-session{
    display: block;
    position: relative;
    margin:0px auto 16px;
    width:100%;
    max-width: 480px;
    min-height: 64px;
    border:solid 2px #FEFEEF;
    border-radius: 8px;
}
#event .btn-event-session::after{
    position: absolute;
    top:calc(50% - 8px);
    right:8px;
    color:#FFF;
    font-weight: bold;
    content:"\276F";
}
#event .btn-event-session .event-session-date{
    display: block;
    font-size:12px;
    font-weight: bold;
    padding:14px 24px 8px 16px;
}
#event .btn-event-session .event-session-title{
    display: block;
    font-size:14px;
    padding:0px 24px 8px 16px;
}

/* event session */
#event {}
#event .session-box{
    padding:0px 16px;
    margin:32px 0px 48px;
}

#event .session-box h4.title-session{
    position: relative;
    color: rgba(255,255,255,1);
    font-family: "Goblin One";
    font-size: clamp(14px, 1.6vw, 18px);
    letter-spacing: 0.2em;
    text-align: center;
    text-transform: uppercase;
    text-shadow: 0 1px 8px rgba(0,0,0,0.6);

}
#event .session-box h4.title-session::before,
#event .session-box h4.title-session::after {
    content: "";
    display: inline-block;
    width: 40px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.6), transparent);
    vertical-align: middle;
    margin: 0 12px;
}

#event .session-box .session-content{
    display: flex;
    margin:8px 0px;
}
#event .session-box .session-content-title{
    font-size:14px;
    width:100px;
}
#event .session-box .session-content-text{
    font-size: 14px;
    line-height: 1.2;
    width:calc(100% - 100px);
}

#event .session-box .arrgt-item-list{
    display: flex;
    margin:16px 0px;
}
#event .session-box .arrgt-item-list .arrgt-item-image{
    position: relative;
    padding:8px;
    width: 136px;
    height: 136px;
    border:solid 2px #EEE;
    border-radius: 8px;
    background:
        radial-gradient(140% 100% at 50% 0%, #1a1d22, #0b0e12 70%) padding-box,
        conic-gradient(from 210deg, var(--ring-1), var(--ring-2), var(--ring-3), var(--ring-1)) border-box;
    border:1px solid transparent;
    background-clip: padding-box, border-box;

    box-shadow: 0 6px 16px rgba(0,0,0,.45), 0 1px 0 rgba(255,255,255,.05) inset, 0 0 32px #69e2ff12;
    isolation:isolate;
    overflow:hidden;
}
#event .session-box .arrgt-item-list .arrgt-item-image img{
    position: absolute;
    top: 8px;
    left: 8px;
    width: 120px;
    height: 120px;
}
#event .session-box .arrgt-item-list .arrgt-item-detail{
    position: relative;
    width:calc(100% - 136px);
    padding:0px 0px 0px 16px;
}
#event .session-box .arrgt-item-list .arrgt-item-detail .item-name{
    font-weight: bold;
    line-height: 24px;
}
#event .session-box .arrgt-item-list .arrgt-item-detail .item-sub-name{
    color:var(--light-pink);
}
#event .session-box .arrgt-item-list .arrgt-item-detail .item-price{
    font-weight: bold;
    line-height: 32px;
    text-align: right;
}
#event .session-box .arrgt-item-list .arrgt-item-detail .item-select{
    position: absolute;
    bottom:8px;
    right:8px;
    margin-top:16px;
    text-align: right;
}
#event .session-box .arrgt-item-list .arrgt-item-detail .btn-select{
    display: inline-block;
    color:#FFF;
    font-size: var(--font-size-small);
    line-height: 32px;
    text-align: center;
    margin:0px auto;
    width: 80px;
    height: 32px;
    background-color: #000;
    border:solid 1px #FFF;
    border-radius: 16px;
}

#event .session-box .session-description{
    margin:16px auto;
    line-height: 1.5;
}

#event .session-catch{
    display: block;
    position: relative;
    color: #fff;
    font-size: 1rem;
    line-height: 1.6;
    text-align: center;
    max-width: 92%;
    margin: 24px auto;
    padding: 16px 20px;
    background: rgba(255,255,255,0.06);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border: 1px solid rgba(255,255,255,0.18);
    border-radius: 12px;
    box-shadow:
        0 4px 10px rgba(0,0,0,0.45),
        inset 0 1px 3px rgba(255,255,255,0.15);
}


/* item common  */
#event .session-caution-box,
#payment .payment-caution-box{
    color:#000;
    font-size:13px;
    line-height: 1.5;
    padding:16px;
    margin:24px auto;
    width:100%;
    border-radius: 16px;
    background-color: #F2F2F2;
}

.select-item-display{
    display: block;
    position: fixed;
    bottom:-100vh;
    left: 50%;
    padding:24px 12px 100px;
    width:100%;
    max-width: 480px;
    height: 96vh;
    height: 96dvh;
    background-color: #000;
    border:solid 2px #DDD;
    border-radius: 16px 16px 0px 0px;
    overflow-y: auto;
    transform: translate(-50%, 0%);
    z-index: 10;
}
.select-item-display .select-item-image{
    position: relative;
    text-align: center;
    margin:0px auto;
    width:100%;
    max-width:480px;
    max-height: 480px;
    aspect-ratio: 1 / 1;
}
.select-item-display .select-item-image .btn-close-item{
    position: absolute;
    top: -8px;
    right: 4px;
    font-size:14px;
    line-height: 22px;
    width:24px;
    height:24px;
    border:solid 1px #FFF;
    border-radius: 12px;
}
.select-item-display .select-item-image img{
    width:100%;
    max-width:480px;
}
.select-item-display .select-item-image img:nth-of-type(2){
    position: absolute;
    top:0px;
    left: 50%;
    width:100%;
    max-width:480px;
    transform: translateX(-50%);
}
.select-item-display .select-item-message-sample{
    position: absolute;
    color:#000;
    font-size: 20px;
    font-family: "Passion One", system-ui;
    font-weight: 400;
    font-style: normal;
    text-align: center;
    transform-origin: center top;
    transform: translate(-50%, calc(-50% + 0.7em));
}
.select-item-display .title-select-preview{
    position: absolute;
    top: -8px;
    left: 0px;
    line-height: 32px;
    width:84px;
    height: 32px;
    backdrop-filter: blur(6px);
    background: linear-gradient(160deg, #c3c5c8, #8f9297 35%, #5c5f64 85%);
    border-radius: 8px;
    text-shadow: 1px 1px 2px #000000DD;
}

.select-item-display .select-item-detail{
    display: flex;
    padding: 8px;
}
.select-item-display .select-item-detail .select-item-name{
    font-size:20px;
    font-weight: bold;
    line-height: 32px;
    width:calc(100% - 120px);
}
.select-item-display .select-item-description{
    font-size: 13px;
    line-height: 1.5;
    margin-bottom: 16px;
}
.select-item-display .select-item-detail .select-item-price{
    font-size: 20px;
    line-height: 32px;
    text-align: right;
    width:120px;
}
.select-item-display .select-item-detail .select-item-price span{
    font-size:14px;
}
.select-item-display .select-item-message{
    padding: 8px;
}
.select-item-display .select-item-message-title{
    font-size:14px;
    padding-left: 8px;
    margin-bottom: 8px;
}
.select-item-display .select-item-message .select-item-message-form-box{
    margin-bottom:0px;

}
.select-item-display .select-caution-box{
    color:#000;
    font-size:14px;
    line-height: 1.5;
    padding:16px;
    margin:24px auto;
    width:96%;
    border-radius: 16px;
    background-color: #F2F2F2;
}


/****************************************/
/* payment layout
/*****************************************/
#payment{
    padding: 16px 8px;
}

#payment .payment-box{
    margin:24px 0px;
}
#payment .payment-box .payment-detail-box{
    color:#000;
    text-align: center;
    padding:16px;
    background-color: #FEFEFE;
    border-radius: 16px;
}
#payment .payment-box .payment-detail-box .payment-detail-price{
    font-size: 16px;
    font-weight: bold;
}

#payment .cart-list-box .cart-list{
    display: flex;
    position: relative;
    margin-bottom:16px;
}

#payment .cart-list-box .cart-list .cart-item-image{
    position: relative;
    padding:8px;
    width: 136px;
    border:solid 2px #EEE;
    border-radius: 8px;
    background:
        radial-gradient(140% 100% at 50% 0%, #1a1d22, #0b0e12 70%) padding-box,
        conic-gradient(from 210deg, var(--ring-1), var(--ring-2), var(--ring-3), var(--ring-1)) border-box;
    border:1px solid transparent;
    background-clip: padding-box, border-box;

    box-shadow: 0 6px 16px rgba(0,0,0,.45), 0 1px 0 rgba(255,255,255,.05) inset, 0 0 32px #69e2ff12;
    isolation:isolate;
    overflow:hidden;
}
#payment .cart-list-box .cart-list .cart-item-image img{
    width:100%;
}

#payment .cart-list-box .cart-list .cart-item-detail{
    position: relative;
    line-height: 1.5;
    width:calc(100% - 136px);
    padding:0px 16px;
}
#payment .cart-list-box .cart-list .cart-item-detail .item-sub-name{
    color:var(--light-pink);
}
#payment .cart-list-box .cart-list .cart-item-detail .item-price{
    margin-top:16px;
    text-align: right;
}

#payment .cart-list-box .cart-list .cart-item-detail .item-select{
    display: flex;
    position: absolute;
    bottom:8px;
    right:8px;
    text-align: right;
    width: 100%;
}
#payment .cart-list-box .cart-list .cart-item-detail .item-delete{
    padding-left:16px;
}
#payment .cart-list-box .cart-list .cart-item-detail .btn-delete{
    color:#FFF;
    font-size:16px;
    text-align: center;
    background-color: transparent;
    border:none;
}
#payment .cart-list-box .cart-list .cart-item-detail .btn-select{
    display: block;
    color:#FFF;
    font-size: var(--font-size-small);
    line-height: 32px;
    text-align: center;
    margin:0px 0px 0px auto;
    width: 120px;
    height: 32px;
    background-color: #000;
    border:solid 1px #FFF;
    border-radius: 16px;
}


/****************************************/
/* mypage / account layout
/*****************************************/
/* mypage */
#mypage{
    padding:16px 0px;
}
#mypage .btn-list{
    display: block;
    font-size: 14px;
    line-height: 48px;
    text-align: left;
    padding:0px 16px;
    width:100%;
    height: 48px;
    border:none;
    border-top: solid 1px #DDD;
}
#mypage button.btn-list{
    color:#FFF;
    background-color: transparent;
    border-bottom: solid 1px #999;
}
#mypage .btn-list:last-of-type{
    border-bottom: solid 1px #999;
}
#mypage .mypage-box{
    margin:24px auto;
}
#mypage .mypage-box i{
    margin-right: 8px;
}
#mypage .mypage-box .mypage-profile-box{
    display: flex;
    justify-content: left;
    text-align: left;
    padding-left:16px;
    margin-bottom:8px;
}
#mypage .mypage-box .mypage-profile-box span:nth-of-type(1){
    display: block;
    line-height: 24px;
    text-align: center;
    width:72px;
    backdrop-filter: blur(6px);
    background:linear-gradient(160deg, #c3c5c8, #8f9297 35%, #5c5f64 85%);
    border-radius: 4px;
    text-shadow: 1px 1px 1px #000000AA;
}
#mypage .mypage-box .mypage-profile-box span:nth-of-type(2){
    display: inline-block;
    line-height: 24px;
    padding-left:8px;
    width:calc(100% - 72px);
}


/* account  */
#account{
    padding:16px 8px;
}
#account .account-box{
    margin:8px 0px;
}
#account .account-box h3{
    line-height: 32px;
}
.account-box .account-list-item{
    color:#000;
    font-size: 14px;
    line-height: 48px;
    padding:0px 16px;
    width:100%;
    height: 48px;
    background-image: linear-gradient(to bottom, #EEEEEE, #EFEFEF);
    border-radius: 24px;
}


/* history */
#history{
    padding:16px 8px;
}
#history .history-box{
    margin:16px auto;
}
#history .history-box .history-list-box{
    display: flex;
    margin-bottom:16px;
}
#history .history-box .history-list-box .history-list-image{
    position: relative;
    padding:8px;
    width: 136px;
    border:solid 2px #EEE;
    border-radius: 8px;
    background:
        radial-gradient(140% 100% at 50% 0%, #1a1d22, #0b0e12 70%) padding-box,
        conic-gradient(from 210deg, var(--ring-1), var(--ring-2), var(--ring-3), var(--ring-1)) border-box;
    border:1px solid transparent;
    background-clip: padding-box, border-box;

    box-shadow: 0 6px 16px rgba(0,0,0,.45), 0 1px 0 rgba(255,255,255,.05) inset, 0 0 32px #69e2ff12;
    isolation:isolate;
    overflow:hidden;
}
#history .history-box .history-list-box .history-list-image::after{
    position:absolute;
    inset:0;
    content:"";
    border-radius:inherit;
    background: linear-gradient(180deg, #ffffff30, transparent 60%);
    mix-blend-mode:overlay;
    pointer-events:none;
}
#history .history-box .history-list-box .history-list-image img{
    width:100%;
}
#history .history-box .history-list-box .history-list-detail{
    width:calc(100% - 136px);
    padding:0px 16px;
}
#history .history-box .history-list-box .history-list-detail .item-select{
    margin-top:16px;
    text-align: right;
}
#history .history-box .history-list-box .history-list-detail .btn-select{
    display: inline-block;
    color:#FFF;
    font-size: var(--font-size-small);
    line-height: 32px;
    text-align: center;
    margin:0px auto;
    width: 80px;
    height: 32px;
    background-color: #000;
    border:solid 1px #FFF;
    border-radius: 16px;
}
/* history detail */
#history .history-box .event-image{
    margin:16px auto;
    text-align: center;
}
#history .history-box .event-image img{
    width:100%;
    max-width:240px;
}
#history .history-box .order-image {
    text-align: center;
}
#history .history-box .order-image img{
    width:100%;
    max-width:480px;
}
#history .history-box .order-receipt{
    position:relative;
    color:#111;
    font-size:14px;
    line-height:1.6;
    text-align:left;
    padding:16px;
    margin:24px auto;
    width:96%;
    max-width:360px;
    backdrop-filter: blur(6px);
    background: linear-gradient(160deg, #f6f7f8, #c6c9cf 35%, #9fa3a8 85%);
    background-color: #0a0a0a;
    border:4px solid #ffffff33;
    border-radius:16px;
    box-shadow:inset 0 2px 6px rgba(255,255,255,.35), 0 8px 22px rgba(0,0,0,.5);
}
#history .history-box .order-receipt::before{
    position:absolute;
    content:"";
    inset:0;
    border-radius:inherit;
    background:linear-gradient(120deg, rgba(255,255,255,.4), transparent 40%, rgba(255,255,255,.2) 60%, transparent);
    mix-blend-mode:overlay;
    pointer-events:none;
}
#history .history-box .order-receipt h4{
    font-size:20px;
    text-align: center;
}
#history .history-box .order-receipt .order-receipt-card{
    font-weight: bold;
    padding:16px 0px;
}
#history .history-box .order-receipt .order-receipt-card .order-event-title{
    font-size:18px;
    font-weight: bold;
}
#history .history-box .order-receipt .order-receipt-card .order-session-title{
    font-size:16px;
    font-weight: bold;
}
#history .history-box .order-receipt .order-receipt-card .order-session-schedule{
    font-size:14px;
    margin-bottom:16px;
}
#history .history-box .order-receipt .order-receipt-card .order-session-item-name{
    font-size:16px;
    font-weight: bold;
}
#history .history-box .order-receipt .order-receipt-card .order-session-price{
    font-size:14px;
    text-align: right;
    padding-right:8px;
}
#history .history-box .order-receipt .order-receipt-card .order-payment-datetime{
    text-align: right;
}


/* help */
#help{
    padding:16px;
}
#help .help-box{
    margin:24px 0px;
    color: #fff;
    padding: 8px 8px 40px;
    font-family: "Noto Sans JP", sans-serif;
}

#help .help-lists {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

#help .help-list-box {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 16px;
    border-radius: 16px;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.15);
    box-shadow: 0 6px 18px rgba(0,0,0,0.45), 0 0 12px rgba(121,224,255,0.08);
    backdrop-filter: blur(8px);
    cursor: pointer;
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
    position: relative;
}

#help .help-list-box:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(0,0,0,0.55), 0 0 16px rgba(121,224,255,0.18);
    background: rgba(255,255,255,0.07);
}

#help .help-list-box::after {
    content: "\f078"; /* fa-chevron-down */
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    position: absolute;
    right: 16px;
    top: 20px;
    font-size: 14px;
    color: rgba(255,255,255,0.8);
    transition: transform 0.3s ease, opacity 0.3s ease;
    opacity: 0.85;
}
#help .help-list-box.active::after {
    transform: rotate(180deg);
}
#help .help-icon {
    font-size: 24px;
    color: #FFF;
    flex-shrink: 0;
    text-shadow: 0 0 10px rgba(121,224,255,0.5);
    margin-top: 2px;
}
#help .help-content h3 {
    font-size: 1rem;
    line-height: 24px;
    margin: 0;
    color: #e8e8e8;
}
#help .help-body {
    display: none;
    margin-top: 16px;
    color: rgba(255,255,255,0.85);
    font-size: 0.9rem;
}
#help .help-list-box.active .help-body {
    display: block;
}
#help .help-body .help-detail-box{
    margin-bottom: 16px;
}
#help .help-body .help-question{
    position: relative;
    line-height: 24px;
    padding-left:24px;
    margin-bottom:8px;
}
#help .help-body .help-question::before{
    position: absolute;
    top:0px;
    left:0px;
    content:"Q.";
}
#help .help-body .help-answer{
    line-height: 1.5;
}


/* モバイル対応（480px以下） */
@media (max-width: 480px) {
    #help .help-box {
        padding: 24px 12px 80px;
    }
    #help .help-list-box {
        padding: 14px 38px 14px 14px;
    }
    #help .help-icon {
        font-size: 20px;
    }
    #help .help-list-box::after {
        right: 12px;
        top: 16px;
        font-size: 12px;
    }
    #help .help-content h3 {
        font-size: 0.95rem;
    }
    #help .help-content p {
        font-size: 0.88rem;
    }
}


/* legal,terms  */
#legal{
    padding:16px;
}
#legal .legal-box{
    font-size:14px;
}
#legal .legal-box .flex{
    border-bottom: solid 1px #CCC;
}
#legal .legal-box .tokusho-title{
    padding:8px;
    line-height: 1.5;
    width: 120px;
}
#legal .legal-box .tokusho-content{
    padding:8px;
    line-height: 1.5;
    width: calc(100% - 120px);
}

#legal .terms-box{
    margin-bottom:16px;
}
#legal .terms-box h3{
    line-height: 32px;
    font-weight: bold;
}
#legal .terms-box h4{
    font-size: 14px;
    line-height: 24px;
}
#legal .terms-box .terms-section{
    font-size: 14px;
    line-height: 1.2;
}
#legal .terms-box .terms-section p{
    font-size: 14px;
    line-height: 1.2;
    margin-bottom:8px;
}
#legal .terms-box .terms-section .terms-section-list{
    padding-left:8px;
}