:root {
    --color-black:#000;
    --color-white:#fff;
    --color-red:#c80019;
    --color-lighgray:#4b4b4b;
    --font-size-base:15px;
    --base-size: 15;
}

*{
    padding: 0;
    margin: 0;
    list-style: none;
    text-decoration: unset;
    vertical-align: top;
    box-sizing: border-box;
}

html,body{
    width: 100%;
    min-width: unset;
    height: 100%;
    background-color: var(--color-black);
    color: var(--color-white);
    font-size: var(--font-size-base);
    line-height: 1.8;
    letter-spacing: .05em;
    font-family: "BIZ UDPGothic", sans-serif;
    font-weight: 400;
    font-style: normal;
}
img{
    width: 100%;
    height: auto;
    vertical-align:middle; 
}
.white{
    color: var(--color-white);
}
.black{
    color: var(--color-black);
}
.red{
    color:var(--color-red);
}
.bg-white{
    background-color: var(--color-white);
    color: var(--color-black);
}
.bg-red{
    background-color: var(--color-red);
}
.bg-grade{
  background : -moz-linear-gradient(50% 100% 90deg,rgba(200, 0, 25, 1) 0%,rgba(149, 0, 19, 1) 14.03%,rgba(104, 0, 13, 1) 28.6%,rgba(66, 0, 8, 1) 43.27%,rgba(37, 0, 5, 1) 57.81%,rgba(17, 0, 2, 1) 72.2%,rgba(4, 0, 1, 1) 86.35%,rgba(0, 0, 0, 1) 100%);
  background : -webkit-linear-gradient(90deg, rgba(200, 0, 25, 1) 0%, rgba(149, 0, 19, 1) 14.03%, rgba(104, 0, 13, 1) 28.6%, rgba(66, 0, 8, 1) 43.27%, rgba(37, 0, 5, 1) 57.81%, rgba(17, 0, 2, 1) 72.2%, rgba(4, 0, 1, 1) 86.35%, rgba(0, 0, 0, 1) 100%);
  background : -webkit-gradient(linear,50% 100% ,50% 0% ,color-stop(0,rgba(200, 0, 25, 1) ),color-stop(0.1403,rgba(149, 0, 19, 1) ),color-stop(0.286,rgba(104, 0, 13, 1) ),color-stop(0.4327,rgba(66, 0, 8, 1) ),color-stop(0.5781,rgba(37, 0, 5, 1) ),color-stop(0.722,rgba(17, 0, 2, 1) ),color-stop(0.8635,rgba(4, 0, 1, 1) ),color-stop(1,rgba(0, 0, 0, 1) ));
  background : -o-linear-gradient(90deg, rgba(200, 0, 25, 1) 0%, rgba(149, 0, 19, 1) 14.03%, rgba(104, 0, 13, 1) 28.6%, rgba(66, 0, 8, 1) 43.27%, rgba(37, 0, 5, 1) 57.81%, rgba(17, 0, 2, 1) 72.2%, rgba(4, 0, 1, 1) 86.35%, rgba(0, 0, 0, 1) 100%);
  background : -ms-linear-gradient(90deg, rgba(200, 0, 25, 1) 0%, rgba(149, 0, 19, 1) 14.03%, rgba(104, 0, 13, 1) 28.6%, rgba(66, 0, 8, 1) 43.27%, rgba(37, 0, 5, 1) 57.81%, rgba(17, 0, 2, 1) 72.2%, rgba(4, 0, 1, 1) 86.35%, rgba(0, 0, 0, 1) 100%);
  -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#C80019', endColorstr='#000000' ,GradientType=0)";
  background : linear-gradient(0deg, rgba(200, 0, 25, 1) 0%, rgba(149, 0, 19, 1) 14.03%, rgba(104, 0, 13, 1) 28.6%, rgba(66, 0, 8, 1) 43.27%, rgba(37, 0, 5, 1) 57.81%, rgba(17, 0, 2, 1) 72.2%, rgba(4, 0, 1, 1) 86.35%, rgba(0, 0, 0, 1) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#000000',endColorstr='#C80019' , GradientType=0);
}

.center{
    text-align: center;
}
.left{
    text-align: left;
}
.bold{
    font-weight: 700;
}
.fontsize-23px{
    font-size: 1.53rem;
}
.fontsize-35px{
    font-size: 2.33rem;
}
.fontsize-50px{
    font-size: 3.33rem;
}


/* FLEX */
.flex{
    display: flex;
    flex-wrap: unset;
}
.f_column{
    flex-direction: column;
}
.f_wrap{
    flex-wrap: wrap;
}
.f_1{
    flex:1;
}
.f_align_center{
    align-items: center;
}
.f_justify_center{
    justify-content: center;
}
.f_justify_end{
    justify-content: end;
}
.f_justify_between{
    justify-content: space-between;
}

/* POSITION */
.fixed{
    position: fixed;
}
.relative{
    position: relative;
}
.absolute{
    position: absolute;
}
.separator{
    width: 100%;
    height: 2px;
    background-color: var(--color-red);
}
.separator-black{
    margin: 4rem 0;
}
.separator-black div{
    width: 80%;
    height: 2px;
    max-width: calc(544 / var(--base-size) * 1rem);
    margin: 0 auto;
    background-color: var(--color-black);
}
/* CONTENT */
header{
    height: 100%;
}
article:not(#keyvisual):not(.menu-bar):not(#souki-banner){
    padding: calc(80 / var(--base-size) * 1rem) 0 calc(120 / var(--base-size) * 1.5rem);
}
article.has-padding{
    /* padding: calc(80 / var(--base-size) * 1rem) 0 calc(80 / var(--base-size) * 1.5rem); */
}
section{
}
.container{
    max-width: calc(1560 / var(--base-size) * 1rem);
    margin: 0 auto;
    padding: 0 2rem;
    container-type: inline-size;
    text-align: center;
}
.spacer-l{
    margin-top: 7.5rem;
}
.spacer-m{
    margin-top: 3.5rem;
}
.spacer-s{
    margin-top: 1.7rem;
}

/* Menu */
.menu-bar{
    width: 100%;
    border-top: 0px solid var(--color-red);
    border-bottom: 1.9px solid var(--color-red); 
    background-color: var(--color-black);
    position: sticky;
    top: 0;
    z-index: 100;
}
.menu-bar-head ul{
    max-width: calc(910 / var(--base-size) * 1rem);
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    justify-content: center;
}
.menu-bar-head li{
    position: relative;
    flex: 1 1 130px;
    border-top: 1.9px solid var(--color-red);
    cursor: pointer;
}
.menu-bar-head li.hide{
    display:none;
}
.menu-bar-head li img{
    width: 130px;
    height: 130px;
    object-fit: contain;
    object-position: center;
}
.menu-bar-head li > div::before{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--color-white);
    z-index: -1;
    opacity: 0;
    transition: all .3s ease-out;
}
.menu-bar-head li:hover > div::before{
    opacity: .15;
}
.menu-bar-head li::after,
.menu-bar-head li:first-child:before{
    content: "";
    width: 1.9px;
    height: 80%;
    position: absolute;
    top: 10%;
    background-color: var(--color-red);
}
.menu-bar-head li::after{
    right: -0.95px;
}
.menu-bar-head li:first-child:before{
    left: -0.95px;
}
.sp-menu-toggle-btn{
    display: none;
    position: absolute;
    top: 0;
    right: 1rem;
    width: 50px;
    height: 50px;
    z-index:111;
}
.sp-menu-toggle-btn::before{
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 80%;
    height: 80%;
    border-radius: 50%;
    background-image: var(--color-white);
    border: 2px solid transparent;
    background-origin: border-box;
    background-clip: border-box;

    -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
    -webkit-mask-composite: destination-out;
    mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0) border-box;
    mask-composite: exclude;
    transition: transform .3s ease-in-out;
}
.menu-bar.open .sp-menu-toggle-btn::before{
    transform: translate(-50%, -50%) rotate(180deg);
}
.sp-menu-toggle-btn span{
    display: inline-block;
    position: absolute;
    width: 50%;
    height: 2px;
    background: white;
    border-radius: 2px;
    transform: translate(-50%, -50%);
    left: 50%;
    transition: all .3s;
}
.sp-menu-toggle-btn span:nth-child(1){
    top: calc(50% - 3px);
}
.sp-menu-toggle-btn span:nth-child(2){
    top: calc(50% + 3px);
}
.menu-bar.open .sp-menu-toggle-btn span:nth-child(1){
    transform: rotate(30deg);
    top: 48%;
    left: 26%;
}
.menu-bar.open .sp-menu-toggle-btn span:nth-child(2){
    transform: rotate(-30deg);
    top: 48%;
    left: 26%;
}
.sp-menu-bk{
    position: absolute;
    margin: 0px;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(10px);
    opacity: 0;
    transition: opacity .3s, z-index .2s;
    z-index: -1;
}
.sp-menu-bk.sp_menu_open{
    opacity: 1;
    margin: -20px;
    z-index: 99;
}
@media screen and (min-width: 910px) {
    .menu-bar{
        border-top: 1.9px solid var(--color-red);
    }
    .menu-bar-head li{
        border-top: 0px solid var(--color-red   );
    }
}




/* 画像が動くスライドショー */
.auto-slide{
    width: 100%;
    overflow: hidden;
}
 .auto-slide-wrap_list {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
  gap: 1rem;
  width: max-content; /* これが重要：中身を1行に強制 */
  padding-bottom: 1rem;
}
/* 左へ動かす：0 から 1セット分(-50%) まで */
@keyframes infinity-scroll-left {
  from { transform: translateX(0); }
  to { transform: translateX(calc(-50% - 0.5rem)); } 
}
/* 右へ動かす：1セット分(-50%) から 0 まで */
@keyframes infinity-scroll-right {
  from { transform: translateX(calc(-50% - 0.5rem)); }
  to { transform: translateX(0); }
}
.auto-slide-wrap_list--left {
  animation: infinity-scroll-left 50s infinite linear;
}
.auto-slide-wrap_list--right {
    transform: translateX(calc(-50% - 0.5rem));
    animation: infinity-scroll-right 50s infinite linear;
}
.auto-slide-wrap_list > li {
  width: calc(100vw / 4.5);
  flex-shrink: 0; /* 幅が潰れないように固定 */
}
#about-phoenix .auto-slide-wrap_list--left {
    animation: infinity-scroll-left 75s infinite linear;
}
#about-phoenix .auto-slide-wrap_list--right {
    animation: infinity-scroll-right 75s infinite linear;
}



/* 見出し */
h2 > img{
    height: calc(36 / var(--base-size) * 1rem);
}
#changes h2 > img{
    height: calc(47 / var(--base-size) * 1rem);
}
#faq h2 > img{
    height: calc(41 / var(--base-size) * 1rem);
}
h2 p{
    font-size: calc(17 / var(--base-size) * 1rem);
    line-height: 1.7em;
    font-weight: bold;
    padding-bottom: 5rem;
    margin-top: 1.75em;
}
h3.circle-heade{
    border: 3px solid var(--color-black);
    font-size: 1.53rem;
    display: inline-block;
    padding: 0 1em;
    border-radius: 2rem;
    letter-spacing: 0.1em;
    text-indent: 0.1em;
    line-height: 1.7em;
    margin-bottom: 1em;
}
h3.circle-heade.red{
    border-color: #c80019;
}
h3.circle-heade.bg-white{
    border: 0px;
}


/* 共通素材 */
.strong-caption{
    font-size: 2rem;
    line-height: 1.7;
    word-break: auto-phrase;
}
.strong-caption.no-space-top{
    margin-top: 0rem;
}
.strong-caption sup{
    font-size: 60%;
    position: relative;
    top: 8px;
    font-weight: normal;
}
sub{
    font-size: 60%;
    position: relative;
    top: 0.8em;
    font-weight: bold;
}
.caption-35px{
    word-break: auto-phrase;
    font-size: calc(35 / var(--base-size) * 1rem);
}
.caption-30px{
    word-break: auto-phrase;
    font-size: calc(30 / var(--base-size) * 1rem);
}
.caption-28px{
    word-break: auto-phrase;
    font-size: calc(28 / var(--base-size) * 1rem);
}
.caption-20px{
    word-break: auto-phrase;
    font-size: calc(20 / var(--base-size) * 1rem);
}
.caption-18px{
    word-break: auto-phrase;
    font-size: calc(18 / var(--base-size) * 1rem);
}
.red-line-cicle{
    border: 2px solid var(--color-red);
    border-radius: 3rem;
    display: inline-block;
    padding: 0em 1.2em;
}
.card-list{
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
    margin: 4rem 0;
}
.card-item{
    border: 2px solid var(--color-lighgray);
    /* width: calc(100% / 4 - 1rem); */
    display: flex;
    flex-direction: column;
    height: 100%;
}
.bg-red .card-item{
    border-color: var(--color-white);
}
.splide .card-list {
    gap: 0;
}
.splide .card-item{
    margin-right: 1.4%;
    max-width: 21.4rem;
}
.emptyslide.card-item{
    border: none;
}
.emptyslide.card-item:last-child{
    margin-right: 0px;
}
.card-item .card-img{
    aspect-ratio: 16 / 9;
    width: 100%;
    background-color: var(--color-black);
}
.card-item .card-img img{
    height: 100%;
    object-fit: contain;
    object-position: center;
}
.card-item .card-title{
    font-size: 1rem;
    /* line-height: 1.5; */
    text-align: center;
    padding-top: 1rem;
    /* word-break: auto-phrase; */
}
.card-item .card-content{
    margin-top: -1rem;
    padding: 1rem;
    text-align: left;
    line-height: 1.5;
    flex-grow: 1;
}
.btn-wrap{
    margin-top: 3rem;
}
.btn-wrap > a,
.btn-wrap > label{
    display: inline-block;
    background-color: var(--color-red);
    color: var(--color-white);
    border-radius: 2.7rem;
    padding: .5em 3em;
}
.btn-wrap a{
    color: var(--color-white);
}
.btn-wrap.has-icon a > img,
.btn-wrap.has-icon .icon-accordion span{
    position: absolute;
    width: min(5.5cqw,30px);
    height: min(5.5cqw,30px);
    right: 2rem;
    top: 0;
    bottom: 0;
    margin: auto 0;
    object-fit: contain;
}
.blackBtn a{
    display: inline-block;
    background-color: var(--color-black);
    padding: .5em 1em;
    font-size: 2rem;
    line-height: 1;
    font-weight: bold;
    color: var(--color-white);
    border-radius: 5em;
    letter-spacing: .1em;
    text-indent: 0.1em;
    text-decoration: none;
}
.redBtn{
    max-width: calc(400 / var(--base-size) * 1rem);
}
.rainbow-border a{
    /* 背景の重ね合わせ */
    background-image: linear-gradient(var(--color-black), var(--color-black)), 
                      linear-gradient(60deg, #25a739 0%, #960b30 21%, #c60f28 38%, #f4a100 56%, #00a6d8 74%, #00963b 100%);
    /* 1枚目(黒)を padding-box にすることで、余白(padding)の部分まで黒くなります */
    /* 2枚目(虹)を border-box にすることで、枠線(border)の部分だけに虹が出ます */
    background-origin: border-box;
    background-clip: padding-box, border-box; 
    /* 虹色の線の太さを決める（ここを太くしすぎないのがコツ） */
    border: 4px solid transparent; 
}
.sepparator{
    width: 100%;
    height: 3px;
    max-width: 1560px;
    margin: 0 auto;
    background-color: var(--color-red);
}
.pc-show{
    display: block;
}
.sp-show{
    display: none;
}
.list-has-number{
    display: flex;
    justify-content: center;
}
.list-has-number ul,.list-has-number ol{
    display: flex;
    gap: 2.4rem;
    flex-direction: column;
}
.list-has-number li{
    position: relative;
    text-align: left;
    padding-left: 6rem;
}
.list-has-number li span{
    position: absolute;
    display: block;
    width: calc(70 / var(--base-size) * 1rem);
    height: calc(70 / var(--base-size) * 1rem);
    background-color: var(--color-red);
    border: 6px solid var(--color-black);
    border-radius: 50%;
    left: 0;
    top: 0;
}
.list-has-number li span::before{
    content: "";
    display: inline-block;
    width: 100%;
    height: 30px;
    background-color: white;
    mask-position: 47% 50%;
    mask-repeat: no-repeat;
    mask-size: contain;
    background: var(--color-black);
}
.list-has-number li:nth-child(1) span::before{
    mask-image: url(/v=1778260658/files/user/LP/2026-27/boostar_club/num-1.svg);
}
.list-has-number li:nth-child(2) span::before{
    mask-image: url(/v=1778260658/files/user/LP/2026-27/boostar_club/num-2.svg);
}
.list-has-number li:nth-child(3) span::before{
    mask-image: url(/v=1778260658/files/user/LP/2026-27/boostar_club/num-3.svg);
}
.list-has-number li:nth-child(4) span::before{
    mask-image: url(/v=1778260658/files/user/LP/2026-27/boostar_club/num-4.svg);
}
.list-has-number li:nth-child(5) span::before{
    mask-image: url(/v=/files/user/LP/2026-27/boostar_club/num-5.svg);
}
.list-has-number ol.changes-list{
    margin-top: 3rem;
    gap: 5rem;
}
.changes-list li{
    padding-left: 0;
    text-align: center;
}
.changes-list li p:first-child{
    background-color: var(--color-red);
    font-size: calc(26 / var(--base-size) * 1rem);
    font-weight: bold;
    color: var(--color-white);
    border-radius: 999px;
    max-width: 797px;
    text-align: left;
    margin: 0 auto;
    position: relative;
    padding-left: 60px;
    padding-right: 30px;
    display: flex;
    align-items: center;
    min-height: 45px;
}
.changes-list li p:last-child{
    margin-top: 1rem;
    font-size: calc(20 / var(--base-size) * 1rem);
    font-weight: bold;
}
.changes-list li span{
    width: 45px;
    height: 45px;
    border-color: var(--color-red);
    background: var(--color-black);
    top: calc(50% - (45px / 2));
}
.changes-list li span::before{
    height: 20px;
    background: var(--color-white);
    transform: translateY(-30%);
}
.team30-logo-wrap{
    max-width: calc(350 / var(--base-size) * 1rem);
    width: 40vw;
    margin: 0 auto;
}
.team30-logo-wrap img{
    padding: 5rem 0;
}
.coming-soon-wrap{
    max-width: calc(270 / var(--base-size) * 1rem);
    margin: 0 auto;
    height: 40vh;
    min-height: 100px;
    display: flex;
    justify-content: center;
}


/* メインビジュアル */
#keyvisual .kv-wrap{
    width: 100vw;
    height: 100vh;
    position: relative;
}
.kv-logowrap{
    width: 70%;
    max-width: 453px;
    aspect-ratio: 453 / 500;
    max-height: 50vh;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
}
#keyvisual .kv-wrap img{
    height: 100%;
    width: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}
#keyvisual .kv-wrap .kv-logowrap img{
    object-fit: contain;
    object-position: center;
    width: 100%;
    height: 100%;
    display: block;
}
#keyvisual .kv-wrap div.kv-title{
    position: absolute;
    bottom: 7vh;
    color: white;
    font-weight: bold;
    text-align: center;
    width: calc(100% - 2rem);
    font-size: 2rem;
    line-height: 1.5;
    padding: 0 1rem;
    word-break: auto-phrase;
}


/* 各コンテンツのカスタマイズ */
#welcome-to-phoenix .caption-30px{
    margin: 3rem 0;
}
.line-arrow-down-wrap{
    display: flex;
    align-items: center;
    flex-direction: column;
    margin: 2rem 0 3rem;
}
.line-arrow-down-wrap > p{
    width: 37px;
    height: 37px;
    border-top: 2px solid var(--color-red);
    border-right: 2px solid var(--color-red);
    transform: rotate(135deg);
}
.partner-image-wrap{
    max-width: 910px;
    margin: 0 auto;
    padding-top: 6rem;
}
.merit-image-wrap{
    gap: 1rem;
    flex-wrap: nowrap;
    justify-content: center;
    padding: 2rem 1rem;
    margin-bottom: calc(-80 / var(--base-size) * 1rem);
}
/* GRADESのリスト */
ul.grade-list-wrap{
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    gap: 1.3rem;
    justify-content: center;
}
ul.grade-list-wrap li{
    flex-basis: 740px;
}
ul.grade-list-wrap li:last-child{
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
}
.grade-card {
    max-width: 1140px;
    margin: 0 auto;
    /* background: #000; */
    color: white;
    border: 2px solid var(--color-lighgray);
    display: grid;
    grid-template-columns: calc(141 / var(--base-size) * 1rem) 1fr;
    grid-template-areas:
      "logo header"
      "logo body";
}
.grade-card__logo {
    grid-area: logo;
    overflow: hidden;
    border-right: 2px solid var(--color-lighgray);
    width: calc(141 / var(--base-size) * 1rem);
    height: calc(141 / var(--base-size) * 1rem);
}
.grade-card__logo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.grade-card__header {
    grid-area: header;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 calc(20 / var(--base-size) * 1rem);
    padding-right: 4px;
    background: linear-gradient(to right, var(--color-lighgray) 0%, var(--color-black) 100%);
    letter-spacing: 0.04em;
    text-align: left;
    margin-top: 0.7rem;
    font-size: calc(18 / var(--base-size) * 1rem);
    font-weight: bold;
}
.grade-card__title { 
    flex-shrink: 0;
}
.grade-card__dash     { margin: 0 8px; opacity: 0.7; }
.grade-card__subtitle { }
.grade-card__body {
    grid-area: body;
    display: flex;
    flex-direction: column;
    /* justify-content: center;
    gap: 10px; */
    padding: 0.7rem calc(20 / var(--base-size) * 1rem) 0.55rem;
}
.grade-card__description {
    margin: 0;
    font-size: calc(11 / var(--base-size) * 1rem);
    font-weight: bold;
    text-align: left;
    /* line-height: 1.9; */
}
.grade-card__price-area {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    width: 100%;
}
.grade-card__price {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: 14px;
    white-space: nowrap;
}
.grade-card__price-divider { opacity: 0.4; }
.grade-card__price-amount  { font-size: 22px; font-weight: 700; }
.grade-card__price-tax     { font-size: 12px; opacity: 0.85; }
.grade-card__button {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    padding: 0.3em 1em;
    border: 2px solid var(--color-white);
    border-radius: 999px;
    color: var(--color-white);
    text-decoration: none;
    font-size: 10.4px;
    white-space: nowrap;
    transition: background 0.2s ease;
    cursor: pointer;
}
/* .grade-card__button:hover { background: rgba(255, 255, 255, 0.08); } */
.grade-card__button-arrow { 
    font-size: 20px; 
    line-height: 1;
    padding-bottom: 4px; 
}
.grade-list-wrap li:nth-child(7) .grade-card__button{
    border: none;
}
@media (max-width: 768px) {
    ul.grade-list-wrap {
        gap: 10px;
        justify-content: flex-start;
    }
    .grade-card {
      display: flex;
      flex-direction: column;
    }
    .grade-card__header {
      /* 見出しの高さを3行分確保 */
      /* min-height: calc(1.55em * 3 + 24px); */
      padding: 12px 10px;
      /* font-size: 14px; */
      line-height: 1.55;
      /* 1行目に「VIP会員 -」を寄せ、2行目以降にサブタイトルが流れる想定 */
      /* flex-wrap: wrap; */
      /* align-content: flex-start;
      align-items: flex-start; */
      margin-top: 0;
        /* font-size: calc(18 / var(--base-size) * 1rem); */
    flex-direction: column;
    text-align: center;
    background: linear-gradient(to bottom, var(--color-lighgray) 0%, var(--color-black) 100%);
    }
    .grade-card__description {
        font-size: 77%;
        word-break: break-all;
    }
    .grade-card__dash, .grade-card__price-divider { display: none; }
    .grade-card__body {
      padding: 16px 8px;
      gap: 14px;
      padding-top: 0;
    }
    .grade-card__price-area {
      gap: 016px;
      flex-direction: column;
    }
    .grade-card__price-amount { font-size: 110%; }
    ul.grade-list-wrap li{
        flex-basis: unset;
        max-width: 350px;
        width: 48%;
    }
    .grade-card__logo {
        height: unset;
        width:100%;
        aspect-ratio:1;
        border-right: 0;
    }
    .grade-card__subtitle {
        font-size: 65%;
    }
    .grade-card__price {
        display: block;
        width: 100%;
        text-align: left;
    }
    .grade-card__title {
        font-size: 74%;
    }
    .grade-card__price span:first-child{
        font-size: 55%;
        display: block;
    }
    .grade-card__price-tax {
        font-size: 75%;
        position: relative;
        top: 0em;
    }
    .grade-card__button {
        font-size: 67%;
        padding: 0 1.3em;
        gap: 0.5em;
    }
}
.category-selector-wrap{
    display: flex;
    flex-wrap: wrap;
    gap: calc(20 / var(--base-size) * 1rem);
    justify-content: center;
}
.category-selector-wrap li{
    width: calc(100 / var(--base-size) * 1rem);
    height: calc(100 / var(--base-size) * 1rem);
    border: 2px solid var(--color-lighgray);
    cursor: pointer;
    position: relative;
    transition: transform 0.3s ease-in-out;
}
.category-selector-wrap li::before{
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: var(--color-black);
    opacity: 0.7;
    z-index: 10;
    top: 0;
    left: 0;
    transition: opacity 0.3s ease-in-out;
}
.category-selector-wrap li:hover::before{
    opacity: 0.3;
}
.category-selector-wrap li.active::before{
    opacity: 0;
}
.category-selector-wrap li.active{
    transform: scale(105%) translateY(-2.5%);
}
.benefit-list li{
    width: calc(100% / 4 - 1rem);
    display: none;
    opacity: 0;
    transform: translateY(8px);
    /* 秒数を変更する時は、jsのFADEOUTと一緒にする */
    transition: opacity 0.4s ease, transform 0.4s ease;
    cursor: pointer;
}
.benefit-list li.visible{
    display: block;
}
.benefit-list li.active{
    opacity: 1;
    transform: translateY(0);
}
.benefit-list li .card-content .card-text{
    display: none;
}
.redBtnWrap{
    justify-content: flex-end;
    margin-top: 3rem;
}
.moreBtn{
    padding: 0.5rem 0;
    border-top: 2px solid var(--color-lighgray);
    background-color: var(--color-red);
}
.faqList.flex{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    align-items: start;
}
.faqList li{
    text-align: left;
    display: flex;
    flex-direction: column;
    cursor: pointer;
}
/* ヘッダー：縦中央寄せで、伸びてもテキストが中央に来る */
.faq_header{
    flex-grow: 1;
    border: 2px solid var(--color-lighgray);
    background-color: var(--color-lighgray);
    color: var(--color-white);
    padding: 0.5rem 2rem 0.5rem 1rem;
    position: relative;
    align-items: center;
}
.faq_header::after{
    content: "";
    position: absolute;
    width: 0.5rem;
    height: 0.5rem;
    border-top: 2px solid var(--color-white);
    border-right: 2px solid var(--color-white);
    right: 1rem;
    top: calc(50% - 0.5rem);
    transform: rotate(45deg);
    transition: transform .3s ease;
}
.faqList li.open .faq_header::after{
    transform: rotate(135deg);
}
/* コンテンツ：grid-template-rows で滑らかに開閉 */
.faq_content{
    display: grid;
    grid-template-rows: 0fr;
    overflow: hidden;
    border: 0 solid var(--color-lighgray);
    transition: grid-template-rows .3s ease, padding .3s ease, border-width .3s ease;
    padding: 0 1rem;
}
.faq_content > .faq_body{
    min-height: 0;
    overflow: hidden;
}
.faq_content > .faq_body > * + *{
    margin-top: 1rem;  /* テキストと画像の間隔。元のinline styleを置き換えるなら */
}
.faqList li.open .faq_content{
    grid-template-rows: 1fr;
    padding: 0.75rem 1rem;
    border-width: 0 2px 2px 2px;
}
.faq_content img{
    max-width: 100%;
    height: auto;
    display: block;
}
.attentionwrap{
    font-size: 1rem;
    flex-wrap: wrap;
    gap: 3rem;
}
.attentionwrap > div{
    flex-basis: calc(50% - 1.5rem);
}
.attentionwrap li{
    flex-wrap: wrap;
    gap: 2rem;
    text-align: left;
    list-style: disc;
    margin-left: 1em;
}
.attentionwrap li.noliststyle{
    list-style: none;
    margin-top: 1em;
}

/* Footer */
.snshead{
    width: 80%;
    max-width: calc(174 / var(--base-size) * 1rem);
    margin: 0 auto;
    margin-top:50px;
}
.copywrap{
    display:flex;
    height: calc(10 / var(--base-size) * 1rem);
    margin-top:50px;
}
.copywrap img{
    width:100%;
    height:100%;
    object-fit:contain;
}
.snswrap{
    justify-content: center;
    gap:28px;
    padding-top:30px;
}
.snswrap li{
    height:calc(37 / var(--base-size) * 1rem);
    width:calc(45 / var(--base-size) * 1rem);
}
.footer_logowrap{
    display: flex;
    justify-content:center;
    align-items: center;
    gap: 50px; 
}
.footer_logowrap > *{
    height:calc(116 / var(--base-size) * 1rem);
    aspect-ratio : 172 / 116;
}
.contact-icon-wrap{
    display: grid;
    justify-content: center;
    grid-template-columns: repeat(auto-fit,minmax(210px, 1fr));
    gap: 0%;
    max-width: 42rem;
    margin: 0 auto;
    padding-top: 3rem;
    text-align: center;
}
.contact-icon-wrap li a{
    color: var(--color-black);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.contact-icon-wrap li a div{
    width: 3.27rem;
    height: 3.27rem;
    display: flex;
    justify-content: center;
}
.contact-icon-wrap li a.mail-icon div{
    width: 3.54rem;
}
.contact-icon-wrap li a p{
    padding-top: 0.5rem;
}
.flow-splide li > div.flex{
    gap: 5%;
}
.flow-splide li .step-img{
    width: 30%;
}

/* Splide */
.splide{
    margin: 0 auto;
}
.splide__arrow{
    height: calc(50 / var(--base-size) * 1rem);
    width: calc(50 / var(--base-size) * 1rem);
    background-repeat: no-repeat;
    background-size: contain;
    background-image: url('/files/user/LP/2026-27/boostar_club/slide-arrow.svg');
    position: absolute;
    top: calc(50% - 25px);
}
.splide__arrow svg{display: none;}
.splide__arrow--prev{
    background-position: center right;
    margin-right: 2rem;
    left: -10%;
}
.splide__arrow--next{
    background-position: center left;
    margin-left: 2rem;
    transform: rotate(180deg);
    right: -10%;
}
.splide__arrows button{
    border: none;
    background-color: transparent;
    background-repeat: no-repeat;
    cursor: pointer;
}
.splide__arrows,
.splide__pagination{
    justify-content: center;
    align-items: center;
}
ul.splide__pagination{
    gap: 0.5rem;
    margin: 0.5rem auto 0;
}
.splide__pagination > li button{
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-position: center;
    background-size: contain;
    position: relative;
    border: none;
    background-color: var(--color-lighgray);
    transition: all .3s cubic-bezier(0.175, 0.885, 0.32, 1);
}
.splide__pagination > li button.is-active{
    width: 40px;
    border-radius: 50px;
}
/* .splide__pagination > li button::after{
} */
.splide__pagination > li button.is-active{
    /* background-color: rgba(255, 255, 255, 0.7); */
}


/* MODAL */
#modalwindow,
#kakudaiModal{
    position: fixed;
    z-index: -1;
    opacity: 0;
    transition: all .3s ease;

    display: flex;
    justify-content: center;
    align-items: center;
    inset: 0;
}
#modalwindow.open,
#kakudaiModal.open{
    z-index: 201;
    opacity: 1;
}
#modalwindow .modal-bk,
#kakudaiModal .modal-bk{
    background: var(--color-black);
    opacity: .9;
    position: absolute;
    inset: 0;
}
#modalwindow .modal-body,
#kakudaiModal .modal-body{
    width: 100vw;
    max-width: 1000px;
    max-height: 90vh;
    overflow-y: auto;
    position: relative;
}
#modalwindow .modal-body ul{
    align-items: center;
}
#modalwindow .modal-body li.splide__slide > div{
    background: var(--color-black);
    border: 1px solid var(--color-lighgray);
}
.modal-title{
    padding: 1rem 1.5rem;
    border-bottom: 1px solid var(--color-lighgray);
}
.modal-content{
    padding: 1rem 1.5rem;
}
#modalwindow .closeBtn,
#kakudaiModal .closeBtn{
    position: absolute;
    top: 8vh;
    right: calc(50% - min(45vw, 450px));
    border-radius: 50%;
    border: 2px solid var(--color-white);
    width: 30px;
    height: 30px;
}
.closeBtn::after,.closeBtn::before{
    content: "";
    width: 60%;
    height: 2px;
    background-color: var(--color-white);
    position: absolute;
    top: calc(50% - 1px);
    left:calc(20%);
}
.closeBtn::after{
    transform: rotate(45deg);
}
.closeBtn::before{
    transform: rotate(-45deg);
}
@media screen and (max-width: 768px) {
    html,body{
        font-size:calc(var(--font-size-base) * 0.8);
    }
    #top_main {
        position: relative;
        overflow: hidden;
    }
    .menu-bar{
        position: fixed;
        top: 0;
        left: 0;
        z-index: 200;
        width: 100vw;
        height: 50px;
    }
    .menu-bar::after{
        content: "";
        width: 100%;
        height: 50px;
        position: absolute;
        top: 0;
        left: 0;
        background-color: var(--color-black);
        z-index: 109;
    }
    .menu-bar header{
        position: absolute;
        top: -600px;
        left: 0;
        width: 100vw;
        height: auto;
        max-height:calc(100vh - 50px);
        /* overflow-y:auto; */
        background-color: var(--color-black);
        padding-bottom: 1rem;
        opacity: 0;
        transition: top .3s ease-in-out, opacity .3s;
        transition-delay: .1s;
        z-index: -1;
    }
    .menu-bar.open header{
        top: 50px;
        opacity: 1;
        z-index: 50;
    }
    .menu-bar-head > nav{
        border-top: 2px solid var(--color-red);
        border-bottom: 2px solid var(--color-red);
    }
    .menu-bar-head ul {
        display: grid;
        grid-template-columns: repeat(auto-fill, 130px);
        margin-top: -4px;
        margin-bottom: 0px
    }
    .menu-bar-head li::before {
        content: "";
        width: 2px;
        height: 80%;
        position: absolute;
        top: 10%;
        background-color: var(--color-red);
    }
    .menu-bar-head li::after {
        right: -2px;
    }
    .menu-bar-head li{
        margin-bottom: -2px;
        border-bottom: 2px solid var(--color-red);
        border-top:0;
    }
    .menu-bar-head li:first-child:before {
        left: -1px;
    }
    .menu-bar-head li::after, .menu-bar-head li:first-child:before {
        width: 2px;
    }
    .sp-menu-toggle-btn{
        display: inline-block;
    }
    .msg-btn-wrap {
        grid-template-columns: repeat(auto-fit, minmax(100%, 1fr));
    }
    .contact-icon-wrap{
        display: flex;
        flex-direction: column;
        gap: 2rem;
    }
    .spacer-s{
        margin-top: calc(1.7rem * 0.55);
    }
    .spacer-m{
        margin-top: calc(3.5rem * 0.55);
    }
    .spacer-l{
        margin-top: calc(6.66rem * 0.55);
    }
    .kv-logowrap{
        width: 35%;
    }
    .separator {
        /* margin: 5rem auto; */
    }
    article.has-padding {
       padding: calc(80 / var(--base-size) * .8rem) 0 calc(80 / var(--base-size) * 1rem);
    }
    .strong-caption sup {
        top: 2px;
    }
    h2.header-image {
        padding-bottom: 3.5rem;
    }
    .header-image > img {
        height: calc(1.58rem * 0.8);
    }
    .header-image > p {
        font-size: calc(1rem * 0.8);
        line-height: 1.3em;
    }
    .show-sp{
        display: block;
    }
    .card-item {
        width: calc(100% - 0.5rem);
        /* max-width: 21.4rem; */
    }
    .splide .card-item{
        max-width: unset;
    }
    .auto-slide-wrap_list > li {
        width: calc(100vw / 2.5);
    }
    .snswrap {
        gap: 5.2%;
        padding-top:2%;
    }
    .snswrap li{
        width: 8.4%;
        aspect-ratio:45 / 37;
        height:100%;
    }
    h3.circle-heade {
        font-size: 1.35rem;
    }
    .strong-caption,
    .blackBtn a{
        line-height: 1.55;
        font-size: 1.7rem;
        word-break: auto-phrase;
    }
    .num-image-wrap p {
        font-size: calc(47 / var(--base-size) * 1rem);
    }
    p{
        word-break: auto-phrase;
    }
    .card-content p{
        word-break: unset;
    }
    .splide__pagination{
        width: calc(100% - (40px + 1rem) * 2);
        /* justify-content: space-between; */
    }
    .copywrap {
        height:1.35vw;
        margin-top:6%;
    }
    .splide .card-item .card-title{
        min-height: 3.4em;
        word-break: auto-phrase;
    }
    .splide__arrow--prev{
        margin-right: 0rem;
        left: -45px;
    }
    .splide__arrow--next{
        margin-left: 0rem;
        right: -45px;
    }
    .splide__arrows{
        justify-content: space-between;
        gap: 1rem;
    }
    .pc-show{
        display: none !important;
    }
    .sp-show{
        display: block !important;
    }

    .category-selector-wrap {
        gap: 1rem;
    }
    .category-selector-wrap li {
        width: calc(80 / var(--base-size) * 1rem);
        height: calc(80 / var(--base-size) * 1rem);
    }
    .benefit-list li {
        width: 48%;
    }
    .redBtnWrap {
        justify-content: center;
    }
    .coming-soon-wrap {
        height: auto;
        width: 30vw;
    }
    .flow-splide li > div.flex {
        flex-direction: column;
        align-items: center;
        gap: 5vw;
    }
    .flow-splide li .step-img {
        width: 50%;
    }
    .step-content{
        text-align: center;
    }
    .faqList li,
    .attentionwrap > div {
        flex-basis: 100%;
    }
    .list-has-number .changes-list li span::before{
        transform: translateY(20%);
        padding-top: 50%;
    }
    .splide__pagination > li button{
        width: 6px;
        height: 6px;
    }
    .splide__pagination > li button.is-active {
        width: 30px;
        height: 5px;
    }
    #modalwindow .splide__pagination{
        width: 90%;
    }
    h2 > img {
        /* height: calc(12 / var(--base-size) * 1rem); */
        height: 3.2vw;
    }
    #changes h2 > img, 
    #faq h2 > img{
        height: 3.6vw;
    }
    h2 p {
        margin-top: 0em;
        padding-bottom: 3rem;
        font-size: 2.5vw;
    }
    article:not(#keyvisual):not(.menu-bar):not(#souki-banner){
        /* padding: calc(80 / var(--base-size) * 1rem) 0 calc(80 / var(--base-size) * 1.5rem); */
        padding: 3rem 0;
    }
    .footer_logowrap{
        gap: 4.6%;
    }
    .footer_logowrap > * {
        width: 15.9%;
        height: 100%;
        aspect-ratio:124 / 84;
    }
    .snshead {
        margin-top:5.7%;
        width:18%;
        line-height:1;
    }
    .changes-list li p:first-child{
        padding-left: 50px;
        font-size: 3vw;
        display: inline-block;
        min-height: unset;
        padding-right: 1em;
        width: 100%;
        padding: 0.3em 1.3em 0.3em 2.7em;
    }
    .red-line-cicle {
        font-size: 2.35vw;
    }
    #welcome-to-phoenix .caption-30px {
        font-size: 80%;
        margin: 1rem 0;
    }
    .line-arrow-down-wrap > p {
        width: 5vw;
        height: 5vw;
        border-top: 3px solid var(--color-red);
        border-right: 3px solid var(--color-red);
    }
    .line-arrow-down-wrap {
        margin: 1rem 0;
    }
    .list-has-number li {
        text-align: center;
        padding-left: 0;
        font-size: 3vw;
        padding-top: 7vw;
    }
    .list-has-number li span {
        width: 8vw;
        height: 8vw;
        
        left: calc(50% - 5vw + 5px);
    }
    .list-has-number ol.changes-list {
        gap: 2rem;
        margin-top: 1rem;
    }
    .list-has-number ol.changes-list li {
        padding-top: 0;
    }
    .changes-list li span {
        width: unset;
        height: 100%;
        aspect-ratio: 1;
        left: 0;
        top: 0;
        border: 3px solid var(--color-red);
    }
    .list-has-number li span::before {
        height: 0;
        padding-top: 60%;
        position: relative;
        top: 0%;
    }
    .list-has-number ol {
        gap: 1rem;
    }
    .redBtn{
        width: 50vw;
        margin: 0 auto;
        margin-top: 3rem;
    }
    .grayBtn{
        max-width: 50vw;
        height: 8.1vw;
        margin: 0 auto;
        margin-top: 3rem;
    }
    .grayBtn img{
        width: 100%;
        height: 100%;
        object-fit: contain;
        object-position: center;
    }
    .redBtnWrap .redBtn{
        margin-top: 0;
    }
    .card-list {
        gap: 10px;
        justify-content: flex-start;
        margin: 0;
    }
    .benefit-list:first-child{
        margin-top: 3rem;
        margin-bottom: 10px;
    }
    .card-item .card-title,
    .card-item .moreBtn {
        font-size: 65%;
        font-weight: bold;
    }
    .card-item .card-content {
        padding: 8px 4px;
    }
    .changes-list li p:last-child {
        font-size: 72%;
        margin-top: 1em;
        line-height: 1.5;
    }
    #changes .caption-30px{
        font-size: 2.8vw;
    }
    #changes .caption-30px span{
        font-size: 2.15vw;
    }
    #rebranding{
        position: relative;
    }
    #rebranding .bg-grade{
        position: absolute;
        top: 0;
        z-index: -1;
        width: 100vw;
        height: 30vh;
        transform: rotate(180deg);
    }
    #rebranding p{
        font-size: 2vw;
    }
    #rebranding .caption-28px,
    #howtojoin .caption-28px,
    #howtojoin .splide .caption-30px,
    #faq h3,
    #faq div > a,
    #caution h3{
        font-size: 2.8vw;
    }
    #rebranding .caption-18px,
    #howtojoin .caption-20px,
    #howtojoin .splide p,
    #faq ul p,
    #caution ul li{
        font-size: 2.1vw;
    }
    #rebranding .spacer-s {
        margin-top: 1em;
    }
    .team30-logo-wrap {
        width: 30vw;
    }
    .team30-logo-wrap img {
        padding: 2rem 0;
    }

    .separator-black {
        margin: 2rem 0;
    }
    .separator-black div {
        width: 50%;
    }
    ul.splide__pagination {
        margin-top: 1em;
    }
    #howtojoin .redBtn{
        margin-top: 0;
        margin-bottom: 2rem;
    }
    .attentionwrap {
        gap: 1rem;
    }
    #kakudaiModal .modal-body > div{
        width: 90%;
        height: 90%;
        overflow: scroll;
        margin: 0 auto;
    }
    #kakudaiModal .modal-body > div > div{
        width: 200%;
        height: 100%;
    }
    .faqList.flex {
        display:flex;
        flex-direction:column;
        align-items:unset;
    }
}