@charset "utf-8";
/**************************************/
/* var
/**************************************/
:root {
    --bg-color: #FFF;
    --main-color: #111;
    --main-link-color: #111;
    --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 layout
/*****************************************/
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;
}
@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;
    }
    /*
    #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%;
    }
}
header{
    position: relative;
    height: 56px;
    width: 100%;
    box-shadow: 0px 2px 2px rgba(211,211,211,0.5);
}
.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 - 56px);
    padding-bottom:84px;
    overflow: hidden;
}

footer{
    position: fixed;
    bottom:0px;
    left:0px;
    right:0px;
    text-align:center;
    width:100%;
    height: 64px;
    padding-bottom:16px;
    z-index: 100;
}
@media screen and (min-width: 481px){
    footer{
        left:0px;
        right:0px;
        margin:0px auto;
        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){
    bottom:0px;
    right: 0px;
}
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 parts
/*****************************************/
@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:#999 solid 1px;
}
.form-box input[type="checkbox"]{
    width:16px;
    height: 16px;
}
.form-box .segmented-control{
    display:flex;
    width:100%;
    max-width:260px;
    background-color:#F4F4F4;
    border-radius:24px;
    overflow:hidden;
    border:1px solid #CFCFCF;
}
.form-box .segmented-item{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    user-select:none;
}
.form-box .segmented-item input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}
.form-box .segmented-item span{
    display:block;
    width:100%;
    text-align:center;
    padding:8px 10px;
    font-size:14px;
    line-height:20px;
    color:#333;
    background-color:#E9E9E9;
}
.form-box .segmented-item:first-child span{
    border-top-left-radius:24px;
    border-bottom-left-radius:24px;
}
.form-box .segmented-item:last-child span{
    border-top-right-radius:24px;
    border-bottom-right-radius:24px;
}
.form-box .segmented-item input:checked + span{
    background-color:#C8C8C8;
    color:#000;
}

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

.form-box select{
    line-height: 48px;
    padding:0px 16px;
    height: 48px;
    color:#000;
    background-color:#FEFEFE;
    border-radius: 24px;
}
.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;
}


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


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

#top #top-event{
    margin-top:16px;
}
#top-event .event-list-box{
    display: block;
}
#top-event .event-list-box .event-item-box{
    display: block;
    margin-bottom:24px;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: var(--shadow);
    border:1px solid transparent;
    background-clip: padding-box, border-box;
}
#top-event .event-list-box .event-item-box a{
    position: relative;
    display: block;
    padding: 16px;
}
#top-event .event-list-box .event-item-box a::after{
    position: absolute;
    top: 50%;
    right: 16px;
    content: "\276F";
    transform: translateY(-50%);
}
#top-event .event-list-box .event-item-box .event-title{
    font-weight: bold;
    font-size: 18px;
}
#top-event .event-list-box .event-item-box .event-date{
    margin-top:8px;
    font-size: 14px;
    line-height: 20px;
}

#top #top-news{
    margin-top:16px;
}
#top-news .news-list-box{
    display: block;
}
#top-news .news-list-box .news-item-box{
    display: block;
    margin-bottom:24px;
    border-bottom:1px dotted #CCC;
    overflow: hidden;
}
#top-news .news-list-box .news-item-box a{
    position: relative;
    display: block;
    padding: 16px;
}
#top-news .news-list-box .news-item-box a::after{
    position: absolute;
    top: 50%;
    right: 16px;
    content: "\276F";
    transform: translateY(-50%);
}
#top-news .news-list-box .news-item-box .news-date{
    font-size: 14px;
    line-height: 20px;
    margin-top:8px;
}
#top-news .news-list-box .news-item-box .news-title{
    padding-right:24px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis; 
}

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

#news .news-list{
    margin-top:16px;
}
#news .news-list ul li{
    border-bottom: 1px solid #333;
}
#news .news-list ul li a{
    position: relative;
    display: block;
    padding:12px 24px 12px 8px;
    font-size: 14px;
    line-height: 20px;
}
#news .news-list ul li a::after{
    position:absolute;
    top:calc(50% - 6px);
    right:4px;
    content:"\276F";
}
#news .news-list ul li .date{
    font-size: 12px;
    line-height: 16px;
    color: #999;
}
#news .news-list ul li .title{
    font-weight: bold;
    margin-top:4px;
}

/* pager */
.news-pagination {
    margin-top: 32px;
    display: flex;
    justify-content: center;
}

.news-pagination ul {
    display: flex;
    gap: 6px;
    padding: 0;
    margin: 0;
    list-style: none;
}

/* 共通 */
.news-pagination li {
    min-width: 36px;
    height: 36px;
    border-radius: 6px;
    font-size: 14px;
    line-height: 36px;
    text-align: center;
    background: #fff;
    border: 1px solid #ddd;
    transition: all 0.2s ease;
}

/* link */
.news-pagination a {
    display: block;
    width: 100%;
    height: 100%;
    color: #333;
    text-decoration: none;
}

/* hover */
.news-pagination a:hover {
    background: #f3f3f3;
}

/* active */
.news-pagination .active {
    background: #111;
    border-color: #111;
}

.news-pagination .active a {
    color: #fff;
    pointer-events: none;
}

/* disabled */
.news-pagination .disabled {
    color: #aaa;
    border-color: #eee;
    background: #fafafa;
    pointer-events: none;
}

/* dots (...) */
.news-pagination .dots {
    border: none;
    background: transparent;
    color: #999;
}

/* prev / next spacing */
.news-pagination li:first-child,
.news-pagination li:last-child {
    padding: 0 8px;
}

@media (max-width: 767px) {
    .news-pagination ul {
        gap: 4px;
    }

    .news-pagination li {
        min-width: 32px;
        height: 32px;
        font-size: 13px;
        line-height: 32px;
    }
}

/****************************************/
/* 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));
    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);
    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 detail */
#event .event-caption{
    font-weight: bold;
    line-height: 1.5;
    text-align: center;
    margin-top:32px;
}
#event .event-catch{
    display: block;
    position: relative;
    color: #000;
    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: #000;
    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, #606163, #414143 50%, #202021);
    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, #000000aa, 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 #CCCCCC;
    border-radius: 8px;
}
#event .btn-event-session::after{
    position: absolute;
    top:calc(50% - 8px);
    right:8px;
    color:#000;
    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 .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;
}

/* event list */
#event-list {
    padding:16px 8px;
}

#event-list .event-list-box{
    margin-bottom:24px;
}
#event-list .event-list-box .event-item-box{
    display: block;
    position: relative;
    margin-bottom:16px;
    padding:16px;
    width:100%;
    border:solid 1px #FEFEEF;
    border-radius: 8px;
}
#event-list .event-list-box .event-item-box .event-title{
    text-align: center;
    margin-bottom:16px;
}
#event-list .event-list-box .event-item-box .event-image{
    position: relative;
    border-radius: 8px 0px 0px 8px;
    overflow:hidden;
}
#event-list .event-list-box .event-item-box .event-image .no-image{
    display: block;
    position: relative;
    color:#AAA;
    font-size:32px;
    line-height: 160px;
    text-align: center;
    width:100%;
    height: 160px;
    background-color: #333;
    border-radius: 8px;
}
#event-list .event-list-box .event-item-box .event-item-content{
    padding:16px 0px 0px;
}
#event-list .event-list-box .event-item-box .event-caption{
    font-size:14px;
    line-height: 1.5;
    margin-bottom:16px;
}

/****************************************/
/* 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:#000;
    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:#000;
    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:#CCC;
    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;
}

/* panos theme */
body.panos-theme #help .help-box{
    color:#1f1f1f;
}
body.panos-theme #help .help-list-box{
    background: rgba(255,255,255,0.85);
    border: 1px solid rgba(120,140,170,0.25);
    box-shadow: 0 10px 26px rgba(28,45,70,0.12);
    backdrop-filter: none;
}
body.panos-theme #help .help-list-box:hover{
    background: rgba(255,255,255,0.95);
    box-shadow: 0 12px 30px rgba(28,45,70,0.16);
}
body.panos-theme #help .help-list-box::after{
    color: rgba(40,50,70,0.65);
}
body.panos-theme #help .help-icon{
    color:#ff7ea2;
    text-shadow: none;
}
body.panos-theme #help .help-content h3{
    color:#1f2a3b;
}
body.panos-theme #help .help-body{
    color: rgba(31,42,59,0.8);
}

body.panos-theme #event .session-box h4.title-session{
    color:#1f2a3b;
    text-shadow: none;
}
body.panos-theme #event .session-box h4.title-session::before,
body.panos-theme #event .session-box h4.title-session::after{
    background: linear-gradient(90deg, transparent, rgba(31,42,59,0.35), transparent);
}
body.panos-theme #event .session-box .session-content-title,
body.panos-theme #event .session-box .session-content-text,
body.panos-theme #event .session-box .arrgt-item-list .arrgt-item-detail .item-name,
body.panos-theme #event .session-box .arrgt-item-list .arrgt-item-detail .item-price,
body.panos-theme #event .session-box .session-description{
    color:#1f2a3b;
}
body.panos-theme #event .session-box .arrgt-item-list .arrgt-item-detail .item-sub-name{
    color:#ff7ea2;
}
body.panos-theme #event .session-box .arrgt-item-list .arrgt-item-image{
    background:
        radial-gradient(120% 90% at 50% 0%, #ffffff 0%, #ffeef5 45%, #e7f6ff 100%) padding-box,
        conic-gradient(from 210deg, #ffd4df, #cfe8ff, #fff1d6, #ffd4df) border-box;
    border:1px solid transparent;
    box-shadow: 0 10px 24px rgba(28,45,70,0.14);
}
body.panos-theme #event .session-box .arrgt-item-list .arrgt-item-detail .btn-select{
    color:#1b1b1b;
    background: linear-gradient(120deg, #ffafc1 0%, #ffd4a8 45%, #b9ecff 100%);
    border: none;
    box-shadow: 0 8px 20px rgba(255,164,188,0.28);
}
body.panos-theme #event .session-catch{
    color:#1f2a3b;
    background: rgba(255,255,255,0.85);
    border: 1px solid rgba(120,140,170,0.2);
    box-shadow: 0 8px 20px rgba(28,45,70,0.12);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

body.panos-theme #event h3.event-title{
    color:#1f2a3b;
    -webkit-text-fill-color: currentColor;
}

body.panos-theme #event.session small{
    color:#6a6f78;
}
body.panos-theme #payment .payment-box .payment-detail-box{
    color:#1f2a3b;
    background: rgba(255,255,255,0.9);
    border: 1px solid rgba(120,140,170,0.2);
    box-shadow: 0 10px 22px rgba(28,45,70,0.12);
}
body.panos-theme #payment .cart-list-box .cart-list .cart-item-image{
    background:
        radial-gradient(120% 90% at 50% 0%, #ffffff 0%, #ffeef5 45%, #e7f6ff 100%) padding-box,
        conic-gradient(from 210deg, #ffd4df, #cfe8ff, #fff1d6, #ffd4df) border-box;
    border:1px solid transparent;
    box-shadow: 0 10px 24px rgba(28,45,70,0.14);
}
body.panos-theme #payment .cart-list-box .cart-list .cart-item-detail .item-sub-name{
    color:#ff7ea2;
}
body.panos-theme #payment .cart-list-box .cart-list .cart-item-detail .item-price{
    color:#1f2a3b;
}
body.panos-theme #payment .cart-list-box .cart-list .cart-item-detail .btn-delete{
    color:#d64a67;
}
body.panos-theme #payment .cart-list-box .cart-list .cart-item-detail .btn-select{
    color:#1b1b1b;
    background: linear-gradient(120deg, #ffafc1 0%, #ffd4a8 45%, #b9ecff 100%);
    border: none;
    box-shadow: 0 8px 20px rgba(255,164,188,0.28);
}
body.panos-theme #mypage .btn-list{
    color:#1f2a3b;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.95), rgba(255,255,255,0.82));
    border-top: 1px solid rgba(120,140,170,0.18);
    box-shadow: 0 6px 14px rgba(28,45,70,0.08);
}
body.panos-theme #mypage button.btn-list{
    color:#1f2a3b;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.95), rgba(255,255,255,0.82));
    border-bottom: 1px solid rgba(120,140,170,0.18);
}
body.panos-theme #mypage .btn-list:last-of-type{
    border-bottom: 1px solid rgba(120,140,170,0.18);
}
body.panos-theme #mypage .mypage-box .mypage-profile-box span:nth-of-type(1){
    color:#1f2a3b;
    background: linear-gradient(120deg, #ffd4a8 0%, #ffafc1 45%, #b9ecff 100%);
    text-shadow: none;
}
body.panos-theme .select-item-display{
    color:#1f2a3b;
    background: radial-gradient(120% 120% at 20% 10%, rgba(255,255,255,0.98) 0%, rgba(255,240,246,0.95) 45%, rgba(220,244,255,0.98) 100%);
    border: 1px solid rgba(255,170,190,0.35);
    box-shadow: 0 18px 40px rgba(24,40,70,0.18);
}
body.panos-theme .select-item-display .select-item-image .btn-close-item{
    color:#1f2a3b;
    border-color: rgba(255,170,190,0.7);
    background: rgba(255,255,255,0.9);
}
body.panos-theme .select-item-display .title-select-preview{
    color:#1f2a3b;
    background: linear-gradient(120deg, #ffd4a8 0%, #ffafc1 45%, #b9ecff 100%);
}
body.panos-theme .select-item-display .select-item-detail .select-item-name,
body.panos-theme .select-item-display .select-item-detail .select-item-price,
body.panos-theme .select-item-display .select-item-description,
body.panos-theme .select-item-display .select-item-message-title{
    color:#1f2a3b;
}
body.panos-theme #history .history-box .history-list-box .history-list-image{
    background:
        radial-gradient(120% 90% at 50% 0%, #ffffff 0%, #ffeef5 45%, #e7f6ff 100%) padding-box,
        conic-gradient(from 210deg, #ffd4df, #cfe8ff, #fff1d6, #ffd4df) border-box;
    border:1px solid transparent;
    box-shadow: 0 10px 24px rgba(28,45,70,0.14);
}
body.panos-theme #history .history-box .history-list-box .history-list-detail .btn-select{
    color:#1b1b1b;
    background: linear-gradient(120deg, #ffafc1 0%, #ffd4a8 45%, #b9ecff 100%);
    border: none;
    box-shadow: 0 8px 20px rgba(255,164,188,0.28);
}


/* モバイル対応（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;
}

/****************************************/
/* panos theme
/*****************************************/
body.panos-theme{
    color:#1d1d1d;
    background:
        radial-gradient(120% 80% at 10% 10%, #ffe9f1 0%, rgba(255,233,241,0) 60%),
        radial-gradient(120% 90% at 95% 15%, #e8f7ff 0%, rgba(232,247,255,0) 55%),
        radial-gradient(120% 90% at 40% 95%, #fff3d8 0%, rgba(255,243,216,0) 60%),
        linear-gradient(160deg, #fff7fb 0%, #f6f8ff 45%, #eefbff 100%);
    font-family: "Noto Sans JP", sans-serif;
}
body.panos-theme::before,
body.panos-theme::after{
    content:"";
    position: fixed;
    width: 320px;
    height: 320px;
    border-radius: 42% 58% 52% 48%;
    filter: blur(8px);
    opacity: 0.55;
    z-index: -1;
    pointer-events: none;
}
body.panos-theme::before{
    top: -120px;
    left: -80px;
    background: radial-gradient(circle at 30% 30%, #ffb7c8, rgba(255,183,200,0.2) 55%, rgba(255,183,200,0) 70%);
}
body.panos-theme::after{
    bottom: -140px;
    right: -90px;
    background: radial-gradient(circle at 30% 30%, #a8e4ff, rgba(168,228,255,0.2) 55%, rgba(168,228,255,0) 70%);
}

body.panos-theme #wrapper{
    background: rgba(255,255,255,0.66);
    box-shadow: 0 18px 50px rgba(24,40,70,0.12);
    overflow: hidden;
}

body.panos-theme header{
    background: rgba(255,255,255,0.8);
    box-shadow: 0 6px 18px rgba(35,45,80,0.08);
    border-bottom: 1px solid rgba(255,255,255,0.7);
    backdrop-filter: blur(8px);
}
body.panos-theme .header_contents .header_logo img{
    filter: drop-shadow(0 6px 10px rgba(0,0,0,0.08));
}

body.panos-theme .main-anim{
    animation: panos-rise 0.6s ease both;
}

body.panos-theme h2.title-common,
body.panos-theme .subtitle-common{
    font-family: "Passion One", "Noto Sans JP", sans-serif;
    letter-spacing: 0.04em;
}

body.panos-theme .btn-common,
body.panos-theme .btn-common-s,
body.panos-theme .btn-common-w{
    color:#1b1b1b;
    background: linear-gradient(120deg, #ffafc1 0%, #ffd4a8 45%, #b9ecff 100%);
    border: none;
    box-shadow: 0 10px 26px rgba(255,164,188,0.35);
    transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}
body.panos-theme .btn-common:hover,
body.panos-theme .btn-common-s:hover,
body.panos-theme .btn-common-w:hover{
    transform: translateY(-2px);
    box-shadow: 0 12px 32px rgba(255,164,188,0.45);
    filter: saturate(1.08);
}
body.panos-theme .btn-common:disabled{
    background: linear-gradient(120deg, #f0f0f0, #f7f7f7);
    color:#9a9a9a;
    box-shadow: none;
}

body.panos-theme .form-box{
    background: rgba(255,255,255,0.8);
    border-radius: 18px;
    padding: 12px 12px 16px;
    box-shadow: 0 10px 26px rgba(20,40,70,0.08);
}
body.panos-theme .form-box h3 span{
    color:#ff6b88;
}
body.panos-theme .form-box input[type="text"],
body.panos-theme .form-box input[type="email"],
body.panos-theme .form-box input[type="password"],
body.panos-theme .form-box select{
    background-color:#ffffff;
    border: 1px solid rgba(255,170,190,0.6);
    box-shadow: inset 0 2px 6px rgba(0,0,0,0.04);
}
body.panos-theme .form-box input[type="text"]:focus,
body.panos-theme .form-box input[type="email"]:focus,
body.panos-theme .form-box input[type="password"]:focus,
body.panos-theme .form-box select:focus{
    outline: none;
    border-color: #7ed4ff;
    box-shadow: 0 0 0 3px rgba(126,212,255,0.35);
}

body.panos-theme .alert-box{
    background-color:#ffeaf0;
    border-color:#ff7c98;
    color:#d64a67;
}
body.panos-theme .success-box{
    background-color:#e9fff5;
    border-color:#4fd7a6;
    color:#2aa777;
}

body.panos-theme footer{
    padding-bottom:24px;
}
body.panos-theme footer .footer-nav .footer-content a{
    display: inline-flex;
    align-items:center;
    justify-content:center;
    width:56px;
    height:56px;
    border-radius: 50%;
    color:#1f1f1f;
    background:
        radial-gradient(120% 120% at 30% 20%, #ffffff 0%, #ffe3ee 45%, #bfeaff 100%);
    box-shadow: 0 10px 22px rgba(28,45,70,0.16);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
body.panos-theme footer .footer-nav .footer-content a:hover{
    transform: translateY(-2px);
    box-shadow: 0 12px 26px rgba(28,45,70,0.22);
}

@keyframes panos-rise{
    from{opacity:0;transform:translateY(10px);}
    to{opacity:1;transform:translateY(0);}
}

/* item/frame select */
.select-option-images {
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
}
.select-option-item {
    width: 140px;
    height: 140px;
    border: 3px solid transparent;
    border-radius: 8px;
    cursor: pointer;
    opacity: 0.6;
    transition: all 0.2s;
}
.select-option-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 7px;
}
.select-option-item.selected {
    border: 3px solid rgba(255, 175, 193, 0.7);
    opacity: 1;
}
.select-option-item:hover {
    opacity: 1;
}
.step-panel {
    display: none;
}
.step-panel.active {
    display: block;
}
