/* 共通 */
*{
    box-sizing: border-box;
    margin: 0;
}
body .mainContents {
    font-family: "Noto Sans JP","ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "游ゴシック体", YuGothic, "游ゴシック Medium", "YuGothic M", "メイリオ", Meiryo, sans-serif!important;
    overflow: hidden;
    color: #000;
}
.mainContents .mainContentsIn {
    margin: 0;
}
.mainContents section {
    margin: 0;
    min-width: auto;
    max-width: none;
}
.headerArea img, .footerArea img, .mainContents img {
    vertical-align: top;
}
img {
    height: auto;
    max-width: 100%;
    vertical-align: middle;
}
.show {
    opacity: 1 !important;
}
p{
    margin: 0;
}
p a{
    color: #0099FF!important;
    text-decoration: underline;
}
a:hover{
    opacity: 0.5;
    text-decoration: none;
}
.sectionInner {
    max-width: 900px;
    width: 100%;
    margin: 0 auto;
}
@media (max-width: 768px){
    .sectionInner {
        max-width: 89.6vw;
        width: 100%;
        margin: 0 auto;
    }
}

/* LP tokens */
.mainContents {
    --lp-mint: #64dad3;
    --lp-teal: #53d0c8;
    --lp-navy: #3b53af;
    --lp-blue: #0099ff;
    --lp-red: #e50112;
    --lp-yellow: #fff95e;
    --lp-black: #000;
    --lp-text: #222;
    --lp-white: #fff;
    --lp-glass: rgba(255, 255, 255, 0.4);
    --lp-gray: #7b7b7b;
    --lp-border: #e5e5e5;
    --lp-ch-border: #c5c5c5;
    --lp-font: "Noto Sans JP", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif;
    --lp-font-display: "ironstrike", "Ironstrike", "Noto Sans JP", sans-serif;
    --lp-font-num: "Arial Black", "Helvetica Neue", sans-serif;
}
@media (max-width: 768px) {
    .mainContents {
        --sp: calc(100vw / 375);
    }
}
/* /---------- */


/* header,footer */
@media(min-width: 769px) {
    .mainContents .sp {
        display: none !important;
    }
    .pc-hide {
        display: none !important;
    }
    .pagefooter_totop {
        transition: all 0.5s;
        opacity: 0;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        justify-content: center;
        align-items: center;
        position: fixed;
        right: 10px;
        bottom: 25px;
        background: #0099ff;
        height: 45px;
        width: 45px;
        -webkit-border-radius: 50%;
        -moz-border-radius: 50%;
        border-radius: 50%;
        z-index: 1001;
    }
    .pagefooter_totop a {
        display: block;
        width: 100%;
        height: 100%;
        text-indent: -999em;
    }
    .pagefooter_totop img {
        width: 16px;
        height: 9px;
        margin-bottom: 2px;
        vertical-align: baseline;
        position: absolute;
        top: 48%;
        left: 50%;
        transform: translate(-50%, -50%);
        -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
    }
    .mainContents img {
        max-width: 100%;
    }
    .pageHeader {
        border-bottom: 1px solid #CCCCCC !important;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    .pageHeader h1 {
        padding: 18px 22px;
        margin: 0 !important;
    }
    .pageHeader h1 img {
        width: 110px;
        height: auto;
    }
    .pageHeader .sns {
        display: flex;
        align-items: center;
        gap: 10px;
        margin-right: 20px;
    }
    .pagefooter {
        padding: 11px 20px 110px !important;
        display: -webkit-box !important;
        display: -webkit-flex !important;
        display: -ms-flexbox !important;
        display: flex !important;
        justify-content: space-between !important;
        -webkit-justify-content: space-between !important;
        flex-wrap: nowrap !important;
        -webkit-flex-wrap: nowrap !important;
    }
    .pagefooter_logo {
        flex-basis: 135px;
        -webkit-flex-basis: 135px;
        max-width: 135px;
        margin: 0 !important;
    }
    .pagefooter_logo img {
        width: 110px;
        height: auto;
    }
    .pagefooter_nav {
        flex: 1;
        font-size: 13px;
    }
    .pagefooter_nav ul {
        padding: 15px 0 0;
        margin: 0 !important;
        display: -webkit-box;
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
        justify-content: flex-start;
        -webkit-justify-content: flex-start;
        flex-wrap: nowrap;
        -webkit-flex-wrap: nowrap;
    }
    .pagefooter_nav li {
        margin-top: -2px;
        border-left: 1px solid #333333;
        padding: 0 20px;
    }

    .pagefooter_nav li:first-child {
        border: none;
    }
    .pagefooter_nav a {
        color: #333333;
        text-decoration: none;
    }
    .pagefooter small {
        padding-top: 15px;
        font-size: 13px;
    }
}
@media (max-width: 768px){
    .pc {
        display: none !important;
    }
    .pageHeader {
        border-bottom: 1px solid #CCCCCC;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    .pageHeader h1 {
        padding: 18px 22px;
        margin: 0 !important;
    }
    .pageHeader h1 img {
        width: 110px;
        height: auto;
    }
    .pageHeader .sns {
        display: flex;
        align-items: center;
        gap: 2.66vw;
        margin-right: 5.33vw;
    }

    .pagefooter {
        /* with button */
        /* padding-bottom: 18vw; */

        /* without button */
        padding-bottom: 30vw;
    }
    .pagefooter_logo {
        display: none;
    }
    .pagefooter_totop a {
        margin-top: 20px;
        background: url('../img/footer_btn01-sp@2x.png?1536157024') center center no-repeat;
        background-size: 58px 35px;
        width: 58px;
        height: 35px;
        text-indent: -9999px;
        display: inline-block;
        width: 100%;
        height: 100px;
    }
    .pagefooter_nav li {
        border-top: 1px solid #CCCCCC;
    }
    .pagefooter_nav a {
        display: block;
        text-align: center;
        color: #333333;
        text-decoration: none;
        padding: 23px 0;
    }
    .pagefooter small {
        border-top: 1px solid #CCCCCC;
        display: block;
        text-align: center;
        padding: 15px;
        font-size: 13px;
    }
}
/* /---------- */


/* #kvArea */
#kvArea {
    text-align: center;
    background: #fff;
    font-size: 0;
    line-height: 0;
}
#kvArea h2,
#kvArea ul.kv,
#kvArea ul.kv li {
    font-size: 0;
    line-height: 0;
}
#kvArea picture,
#kvArea .itemGuard,
#kvArea img {
    display: block;
    max-width: 1000px;
    width: 100%;
    height: auto;
    margin: 0 auto;
}

@media (max-width: 768px){

}
/* /---------- */


/* #mainArea */
#mainArea {
    background-color: #fff;
    background-image: linear-gradient(180deg, rgba(100, 218, 211, 0.64) 0%, rgba(80, 150, 193, 0.64) 10%, rgba(59, 83, 175, 0.64) 20%, rgba(80, 150, 193, 0.64) 60%, rgba(90, 184, 202, 0.64) 80%, rgba(100, 218, 211, 0.64) 100%), linear-gradient(90deg, rgba(255, 255, 255, 0.4) 0%, rgba(255, 255, 255, 0.4) 100%);
    padding: 100px 0 140px;
    text-align: center;
}
#mainArea .textOverview {
    font-size: 20px;
    line-height: 2.2;
    font-weight: bold;
    margin: 50px auto 0;
    position: relative;
}
#mainArea .textOverview.close{
	height: auto;
	overflow: unset;
}
#mainArea .textOverview .js-hide-pc {
    display: none;
}
#mainArea .textOverview .moreBtn {
    background: linear-gradient(rgba(251, 245, 70,0.5) 0%, rgba(251, 245, 70,0.9) 100%);
    width: 100%;
    padding: 0;
    text-align: center;
    position: absolute;
    bottom: -13px;
	left: 0;
	transition: all 0.5s ease-in;
}
#mainArea .textOverview.close .moreBtn {
    background: none;
}
.moreBtn span{
    background: #fff;
    color: #000;
    border: 1px solid #BDBDBD;
    font-size: 18px;
    font-weight: bold;
    max-width: 320px;
    width: 100%;
    min-height: 60px;
    margin: 16px auto 0;
    border-radius: 35px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    cursor: pointer;
}
.moreBtn span::before{
    content: "";
    width: 20px;
    height: 2px;
    background: #000;
    position: absolute;
    top: 50%;
    right: 25px;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    z-index: 1;
}
.moreBtn span::after{
    content: "";
    width: 20px;
    height: 2px;
    background: #000;
    position: absolute;
    top: 50%;
    right: 25px;
    -webkit-transform: translate(-50%, -50%) rotate(-90deg);
    -ms-transform: translate(-50%, -50%) rotate(-90deg);
    transform: translate(-50%, -50%) rotate(-90deg);
    transition: all .5s;
    z-index: 1;
}
.moreBtn span.active::after{
    -webkit-transform: translate(-50%, -50%) rotate(0deg);
    -ms-transform: translate(-50%, -50%) rotate(0deg);
    transform: translate(-50%, -50%) rotate(0deg);
}

#mainArea .sectionBlock {
    margin: 70px auto 0;
}
#mainArea .sectionBlock a {
    color: #0099FF;
    text-decoration: underline;
}
#mainArea .sectionBlock.js-hide {
    display: none;
}
#mainArea .sectionBlock h4 {
    color: #fff;
    background: #D6337D;
    border: 2px solid #7A0036;
    font-size: 18px;
    font-weight: bold;
    line-height: normal;
    width: 100%;
    min-height: 53px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto 35px;
}
#mainArea .sectionBlock .dayBox:not(:first-child) {
    margin-top: 35px;
}
#mainArea .sectionBlock .dayBox dl {
    font-size: 16px;
    line-height: 1.8;
    font-weight: bold;
}
#mainArea .sectionBlock .dayBox dl dd {
    padding-top: 20px;
    margin-top: 10px;
    border-top: 2px solid #000;
}
#mainArea .sectionBlock .dayBox .annotationList {
    font-size: 14px;
    line-height: 2;
    font-weight: 500;
    margin-top: 10px;
}
#mainArea .sectionBlock .dayBox .annotationList li:not(:last-child) {
    margin-bottom: 25px;
}
#mainArea .sectionBlock .closeBtn {
    background: #fff;
    color: #000;
    border: 1px solid #BDBDBD;
    font-size: 18px;
    font-weight: bold;
    max-width: 320px;
    width: 100%;
    min-height: 60px;
    margin: 50px auto 0;
    border-radius: 35px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    cursor: pointer;
}
#mainArea .sectionBlock .closeBtn::before{
    content: "";
    width: 20px;
    height: 2px;
    background: #000;
    position: absolute;
    top: 50%;
    right: 25px;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    z-index: 1;
}
#mainArea .sectionBlock .closeBtn::after{
    content: "";
    width: 20px;
    height: 2px;
    background: #000;
    position: absolute;
    top: 50%;
    right: 25px;
    -webkit-transform: translate(-50%, -50%) rotate(-90deg);
    -ms-transform: translate(-50%, -50%) rotate(-90deg);
    transform: translate(-50%, -50%) rotate(-90deg);
    transition: all .5s;
    z-index: 1;
}
#mainArea .sectionBlock .closeBtn.active::after{
    -webkit-transform: translate(-50%, -50%) rotate(0deg);
    -ms-transform: translate(-50%, -50%) rotate(0deg);
    transform: translate(-50%, -50%) rotate(0deg);
}

#mainArea .sectionBlock ul.flex {
    display: flex;
    justify-content: center;
    margin: 0 30px;
}
#mainArea .sectionBlock ul.flex li.flexItem {
    width: calc(100%/2);
    position: relative;
}
#mainArea .sectionBlock ul.flex li.flexItem:not(:last-child) {
    border-right: 2px dashed #000;
    padding-right: 30px;
}
#mainArea .sectionBlock ul.flex li.flexItem:last-child {
    padding-left: 30px;
}
#mainArea .sectionBlock ul.flex li.flexItem h5 {
    font-size: 16px;
    line-height: 1.8;
    font-weight: bold;
}
#mainArea .sectionBlock ul.flex li.flexItem h5 span {
    background: #D6337D;
    color: #fff;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    margin-right: 14px;
}
#mainArea .sectionBlock ul.flex li.flexItem ul.list {
    font-size: 16px;
    font-weight: bold;
    margin: 16px auto 0;
    text-align: left;
    max-width: max-content;
}
#mainArea .sectionBlock ul.flex li.flexItem ul.list li {
    line-height: 1.8;
}
#mainArea .sectionBlock ul.flex li.flexItem ul.list li.listLarge{
    font-size: 20px;
    line-height: 1.26;
    text-align: center;
}
#mainArea .sectionBlock ul.flex li.flexItem ul.list li span {
    font-size: 14px;
    font-weight: 500;
    line-height: 1.8;
    display: block;
}
#mainArea .sectionBlock ul.flex li.flexItem ul.list li span:first-child{
    margin-top: 15px;
}
#mainArea .sectionBlock .textLarge {
    font-size: 20px;
    line-height: 1.44;
    font-weight: bold;
    margin-top: 35px;
}
#mainArea .sectionBlock .textLarge span {
    color: #F40538;
}

/* #mainArea .watchBlock table {
    margin-top: 60px;
    border-collapse: separate;
    border-spacing: 5px 10px;
    width: 100%;
    text-align: center;
}
#mainArea .watchBlock table thead th {
    background: #000;
    color: #fff;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.8;
    text-align: center;
    padding: 13px;
}
#mainArea .watchBlock table thead th:nth-child(1){
    background: transparent;
}
#mainArea .watchBlock table thead th span.logo {
    display: block;
    margin-bottom: 7px;
}
#mainArea .watchBlock table tbody td {
    background: #FBFFCB;
    color: #000;
    text-align: center;
    width: calc(100%/3);
    height: 80px;
    padding: 12px;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.75;
}
#mainArea .watchBlock table tbody td:nth-child(1) {
    background: #BBDB3F;
    font-size: 16px;
    font-weight: bold;
    line-height: normal;
}
#mainArea .watchBlock table tbody td:nth-child(1) span {
    font-size: 12px;
    font-weight: 400;
}
#mainArea .watchBlock table tbody td span.icon {
    display: block;
    margin-bottom: 4px;
}
#mainArea .watchBlock table tbody td p.textRed {
    color: #F40538;
    font-weight: bold;
}
#mainArea .watchBlock table tbody td p.textRed span {
    font-size: 26px;
    line-height: 0.8;
}
#mainArea .watchBlock table tbody td p.textBold {
    font-weight: bold;
    line-height: 1.6;
}
#mainArea .watchBlock table tbody td p.textBold + p.textBold {
    margin-top: 4px;
}
#mainArea .watchBlock table tbody td p.textBold span {
    font-size: 18px;
    line-height: 1.16;
}
#mainArea .watchBlock table tbody td p.textSmall {
    line-height: 1.5;
    margin-top: 8px;
}
#mainArea .watchBlock table tbody td p.textLarge {
    font-size: 14px;
    line-height: 1.5;
    font-weight: bold;
    margin-top: 0;
} */

#mainArea .watchBlock .tabList {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 8px;
    margin-top: 60px;
}
#mainArea .watchBlock .tabList li {
    width: calc(100%/2);
    text-align: center;
    border-radius: 4px;
    background: #BDBDBD;
    color: #575757;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.8;
    padding: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}
#mainArea .watchBlock .tabList li.active{
    background: #D6337D;
    color: #fff;
    position: relative;
    cursor: pointer;
    padding: 13px 11px;
}
#mainArea .watchBlock .tabList li:nth-child(2) {
    padding: 8px;
}
#mainArea .watchBlock .tabList li.active:nth-child(2) {
    padding: 11px;
}
#mainArea .watchBlock .tabList li.active::before {
    content: "";
    position: absolute;
    bottom: -12px;
    right: 0;
    left: 0;
    margin: auto;
    width: 0;
    height: 0;
    border-style: solid;
    border-right: 17px solid transparent;
    border-left: 17px solid transparent;
    border-top: 14px solid #D6337D;
    border-bottom: 0;
    cursor: inherit;
}
#mainArea .watchBlock .tabContents {
    /* background: #FFFDCF; */
    /* padding: 40px; */
    display: none;
}
#mainArea .watchBlock .tabContents.active {
    display: block;
}
#mainArea .watchBlock .tabContents dl.stepBox {
    background: #fff;
    border: 1px solid #D6337D;
    width: 100%;
    padding: 20px;
    position: relative;
}
#mainArea .watchBlock .tabContents dl.stepBox:not(:first-child) {
    margin-top: 42px;
}
#mainArea .watchBlock .tabContents dl.stepBox dt {
    color: #D6337D;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.5;
}
#mainArea .watchBlock .tabContents dl.stepBox dd {
    font-size: 16px;
    line-height: 400;
    line-height: 1.8;
    margin-top: 15px;
}
#mainArea .watchBlock .tabContents dl.stepBox:not(:first-child):before {
    content: "";
    position: absolute;
    top: -30.5px;
    left: 0;
    right: 0;
    margin: auto;
    width: 0;
    height: 0;
    border-style: solid;
    border-right: 29px solid transparent;
    border-left: 29px solid transparent;
    border-top: 22px solid #D6337D;
    border-bottom: 0;
}
#mainArea .watchBlock .tabContents .flexApp {
    background: #F2FAFF;
    border: 1px solid #0099FF;
    border-radius: 10px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 9px 24px 9px 13px;
    margin-top: 20px;
}
#mainArea .watchBlock .tabContents .flexApp .textBox {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 3px;
}
#mainArea .watchBlock .tabContents .flexApp .textBox .text {
    font-size: 16px;
    font-weight: bold;
    line-height: 1.6;
    text-align: left;
}
#mainArea .watchBlock .tabContents .flexApp .btnBox {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}
#mainArea .watchBlock .tabContents .notesList {
    margin-top: 16px;
    text-align: left;
}
#mainArea .watchBlock .tabContents .notesList li {
    font-size: 12px;
    line-height: 1.8;
}
#mainArea .watchBlock .tabContents .pointApp {
    padding-top: 32px;
    padding-bottom: 10px;
    margin-top: 32px;
    border-top: 2px dotted #000000;
}
#mainArea .watchBlock .tabContents .pointApp .textHead {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 37px;
}
#mainArea .watchBlock .tabContents .pointApp .flexPoint {
    display: flex;
    gap: 20px;
}
#mainArea .watchBlock .tabContents .pointApp .flexPoint .flexItem {
    position: relative;
    background: #F2FAFF;
    border: 1px solid #0099FF;
    border-radius: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    width: calc(100%/2);
    min-height: 149px;
    font-weight: bold;
    padding: 33px 25px 25px;
}
#mainArea .watchBlock .tabContents .pointApp .flexPoint .flexItem span.textStep {
    background: #0099FF;
    color: #fff;
    border-radius: 20px;
    font-size: 16px;
    min-width: 120px;
    padding: 6px;
    margin: 0 auto;
    position: absolute;
    top: -17px;
}
#mainArea .watchBlock .tabContents .pointApp .flexPoint .flexItem .text {
    font-size: 18px;
    line-height: 1.8;
}
#mainArea .watchBlock .tabContents .pointApp .flexPoint .flexItem .text span {
    color: #F40538;
}

#mainArea .annotationBlock {
    font-size: 14px;
    font-weight: 500;
    line-height: 2;
    text-align: left;
}
@media (max-width: 768px){
    #mainArea {
        padding: calc(var(--sp) * 80) 0 calc(var(--sp) * 120);
    }
    #mainArea .textOverview {
        font-size: 4.8vw;
        margin: 12vw auto 0;
    }
    #mainArea .textOverview.close{
        height: auto;
        overflow: unset;
    }
    #mainArea .textOverview .js-hide-sp {
        display: none;
    }
    #mainArea .textOverview .moreBtn {
        background: linear-gradient(rgba(251, 245, 70,0.5) 0%, rgba(251, 245, 70,0.9) 100%);
        width: 100%;
        text-align: center;
        position: absolute;
        bottom: 2.54vw;
        left: 0;
        transition: all 0.5s ease-in;
    }
    .moreBtn span{
        border: 0.26vw solid #BDBDBD;
        font-size: 4.26vw;
        max-width: none;
        min-height: 17.59vw;
        margin: 6.66vw auto 0;
        border-radius: 9.33vw;
    }
    .moreBtn span::before{
        content: "";
        width: 5.33vw;
        height: 0.53vw;
        background: #000;
        position: absolute;
        top: 50%;
        right: 6.66vw;
        -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
        z-index: 1;
    }
    .moreBtn span::after{
        content: "";
        width: 5.33vw;
        height: 0.53vw;
        background: #000;
        position: absolute;
        top: 50%;
        right: 6.66vw;
        -webkit-transform: translate(-50%, -50%) rotate(-90deg);
        -ms-transform: translate(-50%, -50%) rotate(-90deg);
        transform: translate(-50%, -50%) rotate(-90deg);
        transition: all .5s;
        z-index: 1;
    }
    .moreBtn span.active::after{
        -webkit-transform: translate(-50%, -50%) rotate(0deg);
        -ms-transform: translate(-50%, -50%) rotate(0deg);
        transform: translate(-50%, -50%) rotate(0deg);
    }

    #mainArea .sectionBlock {
        margin: 16vw auto 0;
    }
    #mainArea .sectionBlock h4 {
        border: 0.53vw solid #7A0036;
        font-size: 4.8vw;
        min-height: 14.13vw;
        margin: 0 auto 9.33vw;
    }
    #mainArea .sectionBlock .dayBox:not(:first-child) {
        margin-top: 9.33vw;
    }
    #mainArea .sectionBlock .dayBox dl {
        font-size: 4.26vw;
    }
    #mainArea .sectionBlock .dayBox dl dd {
        padding-top: 5.33vw;
        margin-top: 2.66vw;
        border-top: 0.53vw solid #000;
    }
    #mainArea .sectionBlock .dayBox .annotationList {
        font-size: 3.73vw;
        margin-top: 2.66vw;
    }
    #mainArea .sectionBlock .dayBox .annotationList li:not(:last-child) {
        margin-bottom: 6.66vw;
    }
    #mainArea .sectionBlock .closeBtn {
        border: 0.26vw solid #BDBDBD;
        font-size: 4.26vw;
        max-width: none;
        min-height: 17.59vw;
        margin: 10.66vw auto 0;
        border-radius: 9.33vw;
    }
    #mainArea .sectionBlock .closeBtn::before{
        content: "";
        width: 5.33vw;
        height: 0.53vw;
        background: #000;
        position: absolute;
        top: 50%;
        right: 6.66vw;
        -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
        z-index: 1;
    }
    #mainArea .sectionBlock .closeBtn::after{
        content: "";
        width: 5.33vw;
        height: 0.53vw;
        background: #000;
        position: absolute;
        top: 50%;
        right: 6.66vw;
        -webkit-transform: translate(-50%, -50%) rotate(-90deg);
        -ms-transform: translate(-50%, -50%) rotate(-90deg);
        transform: translate(-50%, -50%) rotate(-90deg);
        transition: all .5s;
        z-index: 1;
    }
    #mainArea .sectionBlock .closeBtn.active::after{
        -webkit-transform: translate(-50%, -50%) rotate(0deg);
        -ms-transform: translate(-50%, -50%) rotate(0deg);
        transform: translate(-50%, -50%) rotate(0deg);
    }

    #mainArea .sectionBlock ul.flex {
        display: flex;
        justify-content: center;
        flex-direction: column;
        margin: 0;
    }
    #mainArea .sectionBlock ul.flex li.flexItem {
        width: 100%;
    }
    #mainArea .sectionBlock ul.flex li.flexItem:not(:last-child) {
        border-right: none;
        border-bottom: 0.53vw dashed #000;
        padding-right: 0;
        padding-bottom: 9.33vw;
    }
    #mainArea .sectionBlock ul.flex li.flexItem:last-child {
        padding-left: 0;
        padding-top: 9.33vw;
    }
    #mainArea .sectionBlock ul.flex li.flexItem h5 {
        font-size: 4.26vw;
    }
    #mainArea .sectionBlock ul.flex li.flexItem h5 span {
        width: 5.86vw;
        height: 5.86vw;
        margin-right: 1.6vw;
    }
    #mainArea .sectionBlock ul.flex li.flexItem ul.list {
        font-size: 4.26vw;
        margin: 4vw 0 0;
    }
    #mainArea .sectionBlock ul.flex li.flexItem ul.list li span:nth-child(1) {
        margin-top: 3.2vw;
    }
    #mainArea .sectionBlock ul.flex li.flexItem ul.list li span {
        font-size: 3.73vw;
    }
    #mainArea .sectionBlock ul.flex li.flexItem ul.list li.listLarge {
        font-size: 5.33vw;
        text-align: left;
    }
    #mainArea .sectionBlock .textLarge {
        font-size: 5.33vw;
        margin-top: 10.66vw;
    }

    #mainArea .sectionBlock .table{
        margin-top: 16vw;
    }
    #mainArea .sectionBlock .table .tableHead {
        display: flex;
        justify-content: space-between;
        gap: 1.33vw;
        margin-bottom: 0.8vw;
    }
    #mainArea .sectionBlock .table .tableHead li {
        font-size: 4.26vw;
        font-weight: bold;
        line-height: 1.8;
        padding: 3.46vw;
        background: #000;
        color: #fff;
        width: calc(100%/2);
    }
    #mainArea .sectionBlock .table .tableHead li span.logo {
        display: block;
        margin-bottom: 1.33vw;
    }
    #mainArea .sectionBlock .table dl:not(:last-child) {
        margin-bottom: 0.8vw;
    }
    #mainArea .sectionBlock .table dl dt {
        background: #D6D62E;
        font-size: 4.26vw;
        font-weight: bold;
        line-height: 1.8;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        min-height: 18.66vw;
        width: 100%;
        margin-bottom: 0.8vw;
    }
    #mainArea .sectionBlock .table dl dt span {
        font-size: 3.2vw;
    }
    #mainArea .sectionBlock .table .tableList {
        display: flex;
        justify-content: space-between;
        gap: 1.33vw;
        width: 100%;
    }
    #mainArea .sectionBlock .table .tableList li {
        background: #FBFFCB;
        width: calc(100%/2);
        min-height: 70px;
        padding: 4.53vw 1.66vw;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }
    #mainArea .sectionBlock .table dl dd {
        font-size: 3.2vw;
        line-height: 1.75;
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 18.66vw;
        width: 100%;
    }
    #mainArea .sectionBlock .table dl dd span.icon {
        display: block;
        margin-bottom: 0.8vw;
    }
    #mainArea .sectionBlock .table dl dd span.icon img {
        width: 6.4vw;
        height: 6.4vw;
    }
    #mainArea .sectionBlock .table dl dd p.textRed {
        color: #F40538;
        font-weight: bold;
    }
    #mainArea .sectionBlock .table dl dd p.textRed span {
        font-size: 6.93vw;
    }
    #mainArea .sectionBlock .table dl dd p.textBold {
        font-weight: bold;
        line-height: 1.6;
    }
    #mainArea .sectionBlock .table dl dd p.textBold + p.textBold {
        margin-top: 1.06vw;
    }
    #mainArea .sectionBlock .table dl dd p.textBold span {
        font-size: 4.8vw;
        line-height: 1.16;
    }
    #mainArea .sectionBlock .table dl dd p.textSmall {
        margin-top: 2.13vw;
    }
    #mainArea .sectionBlock .table dl dd p.textLarge {
        font-size: 3.73vw;
        margin: 0;
    }

    #mainArea .watchBlock .tabList {
        gap: 2.66vw;
        margin-top: 16vw;
    }
    #mainArea .watchBlock .tabList li {
        border-radius: 1.06vw;
        font-size: 4.26vw;
        padding: 2vw 3.73vw;
        display: block;
    }
    #mainArea .watchBlock .tabList li.active{
        background: #D6337D;
        color: #fff;
        position: relative;
        cursor: pointer;
        padding: 2vw 3.73vw 3vw;
    }
    #mainArea .watchBlock .tabList li:nth-child(2) {
        padding: 2.93vw;
    }
    #mainArea .watchBlock .tabList li.active:nth-child(2) {
        padding: 3.4vw 2.93vw;
    }
    #mainArea .watchBlock .tabList li.active::before {
        content: "";
        position: absolute;
        bottom: -3.2vw;
        right: 0;
        left: 0;
        margin: auto;
        width: 0;
        height: 0;
        border-style: solid;
        border-right: 4.53vw solid transparent;
        border-left: 4.53vw solid transparent;
        border-top: 3.73vw solid #D6337D;
        border-bottom: 0;
        cursor: inherit;
    }
    #mainArea .watchBlock .tabList li:nth-child(1) span {
        display: inline-flex;
    }
    #mainArea .watchBlock .tabList li:nth-child(1) img {
        width: 18.13vw;
        height: auto;
        position: relative;
        top: 1vw;
    }
    #mainArea .watchBlock .tabList li:nth-child(2) span {
        display: inline-block;
        margin-bottom: 0;
    }
    #mainArea .watchBlock .tabContents {
        /* padding: 8vw 2.66vw; */
        padding: 8vw 0;
    }
    #mainArea .watchBlock .tabContents dl.stepBox {
        border: 0.26vw solid #D6337D;
        padding: 5.33vw 3vw;
    }
    #mainArea .watchBlock .tabContents dl.stepBox:not(:first-child) {
        margin-top: 11.2vw;
    }
    #mainArea .watchBlock .tabContents dl.stepBox dt {
        font-size: 4.26vw;
    }
    #mainArea .watchBlock .tabContents dl.stepBox dd {
        font-size: 4.26vw;
        margin-top: 3.2vw;
        text-align: left;
    }
    #mainArea .watchBlock .tabContents dl.stepBox:not(:first-child):before {
        content: "";
        position: absolute;
        top: -8.13vw;
        left: 0;
        right: 0;
        margin: auto;
        width: 0;
        height: 0;
        border-style: solid;
        border-right: 7.73vw solid transparent;
        border-left: 7.73vw solid transparent;
        border-top: 5.86vw solid #D6337D;
        border-bottom: 0;
    }
    #mainArea .watchBlock .tabContents .flexApp {
        background: #F2FAFF;
        border: 0.26vw solid #0099FF;
        border-radius: 2.66vw;
        display: flex;
        justify-content: space-between;
        align-items: center;
        flex-direction: column;
        padding: 13.66vw 9.86vw 6.66vw;
        margin-top: 13.33vw;
        position: relative;
    }
    #mainArea .watchBlock .tabContents .flexApp .textBox {
        display: block;
    }
    #mainArea .watchBlock .tabContents .flexApp .textBox img {
        position: absolute;
        top: -10.66vw;
        right: 0;
        left: 0;
        margin: auto;
        width: 24vw;
        height: auto;
    }
    #mainArea .watchBlock .tabContents .flexApp .textBox .text {
        font-size: 4.26vw;
        text-align: center;
    }
    #mainArea .watchBlock .tabContents .flexApp .btnBox {
        flex-direction: column;
        gap: 4vw;
        margin-top: 5.33vw;
    }
    #mainArea .watchBlock .tabContents .notesList {
        margin-top: 4vw;
    }
    #mainArea .watchBlock .tabContents .notesList li {
        font-size: 3.2vw;
    }
    #mainArea .watchBlock .tabContents .pointApp {
        padding-top: 9.33vw;
        padding-bottom: 2.66vw;
        margin-top: 9.33vw;
        border-top: 0.53vw dotted #000000;
    }
    #mainArea .watchBlock .tabContents .pointApp .textHead {
        font-size: 4.8vw;
        margin-bottom: 8vw;
    }
    #mainArea .watchBlock .tabContents .pointApp .flexPoint {
        display: flex;
        flex-direction: column;
        gap: 9.33vw;
    }
    #mainArea .watchBlock .tabContents .pointApp .flexPoint .flexItem {
        border: 0.26vw solid #0099FF;
        border-radius: 2.66vw;
        width: 100%;
        min-height: auto;
        font-weight: bold;
        padding: 8.53vw 3.46vw 5.33vw;
    }
    #mainArea .watchBlock .tabContents .pointApp .flexPoint .flexItem span.textStep {
        border-radius: 4.8vw;
        font-size: 4.26vw;
        min-width: 32vw;
        height: 8.53vw;
        padding: 0.8vw;
        margin: 0 auto;
        position: absolute;
        top: -4.53vw;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    #mainArea .watchBlock .tabContents .pointApp .flexPoint .flexItem .text {
        font-size: 4.8vw;
        line-height: 1.8;
    }
    #mainArea .watchBlock .tabContents .pointApp .flexPoint .flexItem .text span {
        color: #F40538;
    }
    
    #mainArea .annotationBlock {
        font-size: 3.73vw;
    }
}
/* /---------- */


/* programArea */
.programArea {
    padding: 140px 0 100px;
}
.programArea h3 {
    text-align: center;
    margin: 0 auto 50px;
    font-size: 42px;
    font-weight: 900;
    line-height: 1.8;
    color: #000;
}
.programArea .programWrapper {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 18px 20px;
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
}
.programArea .programItem {
    background: #fff;
    max-width: 285px;
    width: calc(100%/4);
    border-radius: 10px;
    position: relative;
    border: 1px solid #000;
}
.programArea .programItem a:hover {
    text-decoration: none;
}
.programArea .programItem .programInner {
    padding: 10px 20px 10px;
}
.programArea .programItem .img {
    width: 100%;
    max-height: 161px;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    vertical-align: middle;
    background: #000000;
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
    overflow: hidden;
}
.programArea .programItem .img img {
    width: -webkit-fill-available;
    max-height: 161px;
}
.programArea .programItem .copy {
    font-size: 12px;
    line-height: 1.6;
}
.programArea .programItem .category {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin: 10px 0 0;
}
.programArea .programItem .category li.text {
    color: #000;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.4;
    padding: 0 5px;
    border: 1px solid #000;
    border-radius: 5px;
}
.programArea .programItem .category li img {
    width: 45px;
    height: auto;
}
.programArea .programItem h4.title {
    font-size: 16px;
    line-height: 1.8;
    font-weight: bold;
    margin: 9px 0 0;
    z-index: 1;
}
.programArea .programItem .schedule {
    font-size: 14px;
    line-height: 1.8;
    margin: 15px 0 0;
}
.programArea .programItem .flex {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 10px 15px;
    margin: 15px 0 0;
}
.programArea .programItem .flex .imgBox {
    display: flex;
    align-items: baseline;
    gap: 5px;
}
.programArea .programItem .flex .imgBox img {
    border: 1px solid #C5C5C5;
    padding: 1px;
    max-width: 46px;
}
.programArea .programItem .flex .imgBox img:not(:last-child) {
    margin-right: 5px;
}
.programArea .programItem .flex .textBox {
    font-size: 14px;
    line-height: 1.8;
}
@media (max-width: 1200px){
    .programArea .programWrapper {
        justify-content: center;
    }
    .programArea .programItem {
        width: calc(100%/3);
    }
}
/* /---------- */


/* ComingSoon */
/* .ComingSoon {
    background: #fff;
    padding: 140px 0 100px;
    text-align: center;
}
.ComingSoon .text {
    font-family: 'Gibson', sans-serif;
    font-size: 48px;
    font-weight: bold;
    line-height: 1.2;
}
@media (max-width: 768px){
    .ComingSoon {
        padding: 32vw 0 29.33vw;
    }
    .ComingSoon .text {
        font-size: 9.6vw;
    }
} */
/* /---------- */


 /* #floatArea */
#floatArea {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    z-index: 1001;
    width: 100%;
    height: 90px;
    background: rgba(255, 255, 255, 0.6);
    justify-content: center;
    align-items: flex-end;
    padding: 0 0 14px;
    box-sizing: border-box;
    font-family: var(--lp-font);
}
#floatArea.show {
    display: flex;
}
#floatArea .floatInner {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    gap: 16px;
}
#floatArea .floatCtaJoin {
    position: relative;
    width: 280px;
    padding-top: 20px;
}
#floatArea .floatCtaForm {
    width: 280px;
    margin: 0;
}
#floatArea .floatBalloon {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 115px;
    height: 25px;
    padding: 4px 8px;
    background: var(--lp-blue);
    border: 2px solid var(--lp-white);
    border-radius: 8px;
    color: var(--lp-white);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.5;
    white-space: nowrap;
    z-index: 1;
    box-sizing: border-box;
}
#floatArea .floatBtn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 42px;
    border-radius: 37.5px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    text-decoration: none;
    cursor: pointer;
    position: relative;
    box-sizing: border-box;
    appearance: none;
    -webkit-appearance: none;
    border: none;
    padding: 0 36px 0 16px;
    white-space: nowrap;
}
#floatArea .floatBtnMain {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    white-space: nowrap;
    flex-shrink: 0;
}
#floatArea .floatLogo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 20px;
    background: var(--lp-white);
    border-radius: 4px;
    flex-shrink: 0;
    overflow: hidden;
}
#floatArea .floatLogo img {
    width: 23px;
    height: 16px;
    max-width: none;
    object-fit: contain;
    display: block;
}
#floatArea .floatArrow {
    position: absolute;
    right: 13px;
    top: 50%;
    width: 16px;
    height: 16px;
    max-width: none;
    transform: translateY(-50%);
    display: block;
}
#floatArea .floatBtn:hover {
    opacity: 0.5;
}
#floatArea .floatBtn--red {
    background: var(--lp-red);
    color: var(--lp-white);
}
#floatArea .floatBtn--outline {
    background: var(--lp-white);
    border: 2px solid var(--lp-blue);
    color: var(--lp-blue);
}
@media (max-width: 768px){
    #floatArea {
        height: calc(var(--sp) * 80);
        padding: 0 calc(var(--sp) * 24) calc(var(--sp) * 9);
        align-items: flex-end;
    }
    #floatArea .floatInner {
        width: calc(var(--sp) * 327);
        max-width: 100%;
        gap: calc(var(--sp) * 8);
        align-items: flex-end;
    }
    #floatArea .floatCtaJoin,
    #floatArea .floatCtaForm {
        flex: 0 0 calc(var(--sp) * 160);
        width: calc(var(--sp) * 160);
        max-width: none;
    }
    #floatArea .floatCtaJoin {
        padding-top: calc(var(--sp) * 21);
        overflow: visible;
    }
    #floatArea .floatBalloon {
        top: 0;
        min-width: 0;
        width: calc(var(--sp) * 128);
        height: calc(var(--sp) * 28);
        padding: calc(var(--sp) * 5) calc(var(--sp) * 10);
        font-size: calc(var(--sp) * 12);
        line-height: 1.5;
        border-width: 1px;
        border-radius: calc(var(--sp) * 8);
        z-index: 2;
    }
    #floatArea .floatBtn {
        height: calc(var(--sp) * 40);
        min-height: calc(var(--sp) * 40);
        max-height: calc(var(--sp) * 40);
        border-radius: calc(var(--sp) * 30);
        font-size: calc(var(--sp) * 14);
        line-height: 1;
        padding: 0 calc(var(--sp) * 26) 0 calc(var(--sp) * 7);
        overflow: hidden;
    }
    #floatArea .floatBtnMain {
        gap: calc(var(--sp) * 2);
    }
    #floatArea .floatBtn--outline {
        font-size: calc(var(--sp) * 12);
        padding-left: calc(var(--sp) * 8);
        border-width: calc(var(--sp) * 2);
    }
    #floatArea .floatLogo {
        width: calc(var(--sp) * 25);
        height: calc(var(--sp) * 20);
        border-radius: calc(var(--sp) * 4);
    }
    #floatArea .floatLogo img {
        width: calc(var(--sp) * 17);
        height: calc(var(--sp) * 12);
    }
    #floatArea .floatArrow {
        right: calc(var(--sp) * 5);
        width: calc(var(--sp) * 20);
        height: calc(var(--sp) * 20);
    }
}

/* /---------- */



/* modal */
.modal {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 1002;
    -webkit-transition: opacity 0.3s ease, visibility 0.3s ease;
    transition: opacity 0.3s ease, visibility 0.3s ease;
  }
  .modal.-show {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
  .modal-window {
    position: absolute;
    left: 50%;
    top: 50%;
    width: calc(100% - 20px);
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    -webkit-transform: translate(-50%,-50%);
    transform: translate(-50%,-50%);
  }
  .simulation .modal-window {
    width: 100%;
    height: calc(100% - 214px);
    top: 0;
  }
  .c-contract-cv__btn__select {
  max-width: 500px;
  min-width: 310px;
  font-size: 15px;
  line-height: 1.4em;
  text-align: center;
  padding: 10px 35px 10px 25px;
  min-height: 54px;
  font-weight: 500;
  border-radius: 100px;
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  align-items: center;
  position: relative;
  -webkit-transition: background 0.2s;
  transition: background 0.2s;
  }
  .c-contract-cv__btn__select .basic-join {
  font-size: 17px;
    margin-right: 0.4em;
  }
  #modal-confirm .c-contract-ac__trigger::after {
  transition: 0.2s;
  -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
  }
  #modal-confirm .c-contract-ac__trigger.active::after {
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg);
  }
  #modal-confirm .j-contract-ac__content {
  display: none;
  }
  @media screen and (max-width: 768px) {
  .simulation .modal-window {
    width: 100%;
    height: calc(100% - 57.8vw);
    top: 0;
    }
  }
  @media screen and (min-width: 769px) {
  .modal-window {
    max-width: 900px;
  }
  }
  
  .modal-window-inner {
  margin-left: auto;
  margin-right: auto;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  overflow: auto;
  display: none;
  }
  @media screen and (max-width: 768px) {
  .modal-window-inner {
    max-height: calc(100vh - 120px);
  }
  }
  .modal-window-inner.-show {
  display: block;
  }
  
  .modal-close {
  border: none;
    cursor: pointer;
    outline: none;
    padding: 0;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    width: 30px;
    height: 30px;
    position: absolute;
    top: 0;
    right: 0;
    background: url(https://www.skyperfectv.co.jp/global/assets/images/icon/icon_close_white.svg) center center no-repeat;
    background-size: 30px 30px;
    cursor: pointer;
    -webkit-transition: 0.2s;
    transition: 0.2s;
    overflow: hidden;
  }
  .modal-window-scroll {
    position: relative;
    z-index: 2;
  }
  
  
  .modal-inner-contents {
  padding: 0;
  text-align: center;
  }
  @media screen and (min-width: 769px) {
    .modal-inner-contents {
        padding: 52px 0 0;
    }
  }
  @media screen and (max-width: 768px) {
    .modal-inner-contents {
        padding: 6.66vw 0 0;
    }
  }
  
  
  @media screen and (min-width: 769px) {
  .modal.-show {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    overflow:auto;
  }
  .modal-bg {
    position: sticky;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
  background: rgba(0,0,0,0.6);
  }
  }
  @media screen and (max-width: 768px) {
    .modal-bg {
        position: sticky;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
    background: rgba(0,0,0,0.6);
    }
    .modal-window {
        position: absolute;
        left: 50%;
        width: calc(100% - 20px);
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
        -webkit-transform: translate(-50%,-50%);
        transform: translate(-50%,-50%);
        top: 50%;
    }
  }
  
  @media all and (-ms-high-contrast: none) {
  .modal-bg {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.6);
  }
  }
  @-moz-document url-prefix() {
  .modal-bg {
    position: sticky;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.6);
  }
  }



/* アコーディオンメニュー↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ */
.accordion {
    width: 100%;
    margin: 20px auto!important;
    border: none!important;
}

.accordion-item {
    /* border: 1px solid #ddd; */
    /* border: 1px solid #D6337D; */
    margin-bottom: 10px;
}

.accordion-button {
    width: 100%;
    background-color: #D6337D;
    border: 2px solid #7A0036;
    color: #fff;
    font-size: 18px;
    line-height: 28px;
    font-weight: bold;
    text-align: center;
    min-height: 53px;
    cursor: pointer;
    display: block;
}

.accordion-button.active {
    background-color: #fff;
    color: #D6337D;
    border: 2px solid #D6337D;
}

.accordion-content {
    display: none; /* initially hidden */
    /* padding: 10px; */
    background-color: #fff;
}

.accordion-content table {
        margin-top: 0px!important;
        border-collapse: collapse!important;
        /* border-spacing: 5px 10px; */
        width: 100%;
        text-align: center;
        border: 1px solid #D6337D;
}

.accordion-content table th,
.accordion-content table td{
    padding: 30px;
    /* border-bottom: 1px solid #ddd; */
    text-align: left;
}
.accordion-content table tr:not(:last-child) {
    border-bottom: 1px solid #ddd;
}

.accordion-content table th {
    width: 20%;
    background-color: #D6337D;
    color: #fff;
    font-weight: bold;
    text-align: center;
}

.icon {
    font-size: 28px;
    font-weight: 900;
    position: relative;
    left: 31%;
}

/* Responsive styles for screens smaller than 768px */
@media (max-width: 768px) {
    .accordion-button {
        border: 0.53vw solid #7A0036;
        font-size: 4.8vw;
        line-height: 8vw;
        min-height: 14.13vw;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 8vw;
        padding: 0 3vw;
    }
    .accordion-button.active {
        border: 0.53vw solid #D6337D;
    }
    .icon {
        font-size: 6vw;
        font-weight: 900;
        position: relative;
        left: 1%;
    }
    .accordion-content table, .accordion-content th, .accordion-content td {
        display: block;
        width: 100%;
    }

    .accordion-content table th {
        /* background-color: transparent; */
        font-weight: bold;
        text-align: center;
        width: 100%;
        font-size: 4vw;
    }

    .accordion-content table td {
        border-top: none;
        font-size: 4vw;
        padding: 3vw;
        line-height: 1.8;
    }

    /* .accordion-content table td:before {
        content: attr(data-label);
        font-weight: bold;
        display: block;
        margin-bottom: 5px;
        color: #000;
    } */

    /* .accordion-content table td {
        padding-left: 0;
        padding-right: 0;
    } */
    .dayBox .sp img {
        width: 100%;
    }
}

/* 録画方法 */
.recm {
    display: flex;
    margin: 30px auto;
    max-width: 630px;
    border: 1px solid #0099FF;
    border-radius: 20px;
    display: flex;
    margin: 30px auto;
    max-width: 630px;
    border: 1px solid #0099FF;
    border-radius: 20px;
    padding: 30px 40px;
    align-items: center;
    justify-content: space-between;
    background: #F2FAFF;
    align-items: center;
    justify-content: space-between;
    background: #F2FAFF;
}
.recm .recm_tit {
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 20px;
    font-weight: bold;
    color: #F40538;
}
.recm .recm_text {
    font-size: 14px;
    text-align: left;
    margin-top: 15px;
}
@media (max-width: 768px) {
    .recm {
        flex-direction: column;
        padding: 9vw 7vw;
    }
    .recm .recm_tit {
        font-size: 6vw;
        line-height: 1.5;
        margin-top: 20px;
        text-align: center;
    }
    .recm .recm_text {
        font-size: 4vw;
        text-align: center;
    }
}

/* セットリスト */
.setListContent {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    justify-content: space-between;
}
.setListUnit {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 48%;
}
.setListUnit .setListNo {
    background: #D6337D;
    color: #fff;
    padding: 2px 20px;
}
.blueJa .setListUnit .setListNo {
    background: #3369D6;
}
.setListUnit .setListCon {
    display: flex;
}
.setListUnit .setListCon .setListText {
    font-weight: normal;
    text-align: left;
}
@media (max-width: 768px) {
    .setListUnit .setListCon {
        flex-direction: column;
    }
    .setListContent {
        gap: 20px;
        flex-wrap: wrap;
        justify-content: space-between;
    }
    .setListUnit {
        width: 45%;
    }
    .setListUnit .setListNo {
        padding: 0px 8px;
        height: 100%;
        display: flex;
        align-items: center;
    }
    .setListUnit .setListCon .setListTit {
        text-align: left;
    }
    .setListUnit .setListCon .setListText {
        font-size: 4vw;
    }
}

/* DAYBOX */
.dayBox dt {
    font-size: 24px;
}
.upperbox .dayBox dl dd {
    font-size: 20px;
}
@media (max-width: 768px) {
    .dayBox dt {
        font-size: 5vw;
    }
    .upperbox .dayBox dl dd {
        font-size: 4vw;
    }
}

/* ========== mainArea 2026 LP ========== */
#mainArea {
    font-family: var(--lp-font);
    color: var(--lp-black);
    background-color: var(--lp-white);
    background-image: linear-gradient(180deg, rgba(100, 218, 211, 0.64) 0%, rgba(80, 150, 193, 0.64) 10%, rgba(59, 83, 175, 0.64) 20%, rgba(80, 150, 193, 0.64) 60%, rgba(90, 184, 202, 0.64) 80%, rgba(100, 218, 211, 0.64) 100%), linear-gradient(90deg, rgba(255, 255, 255, 0.4) 0%, rgba(255, 255, 255, 0.4) 100%);
}
#mainArea .sectionInner {
    display: flex;
    flex-direction: column;
    gap: 100px;
    align-items: center;
}
#mainArea .lpIntro {
    display: flex;
    flex-direction: column;
    gap: 32px;
    width: 100%;
}
#mainArea .lpTitle {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
    text-align: center;
}
#mainArea .lpTitleEn {
    font-family: var(--lp-font-display);
    font-weight: 900;
    font-style: normal;
    font-size: 50px;
    line-height: 1;
    letter-spacing: 0;
    font-synthesis: none;
}
#mainArea .lpTitleJa {
    font-weight: 900;
    font-size: 50px;
    line-height: 1;
}
#mainArea .lpLead {
    font-size: 20px;
    font-weight: 400;
    line-height: 44px;
    text-align: center;
}
#mainArea .lpBlock {
    display: flex;
    flex-direction: column;
    gap: 48px;
    width: 100%;
    align-items: center;
}
#mainArea .lpHeading {
    width: 100%;
    margin: 0;
    padding: 4px 0;
    background: var(--lp-mint);
    color: var(--lp-black);
    font-size: 24px;
    font-weight: 900;
    line-height: 1.8;
    text-align: center;
}
#mainArea .lpDay {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    align-items: center;
}
#mainArea .lpDay + .lpDay {
    margin-top: 32px;
}
#mainArea .lpDayName {
    font-family: var(--lp-font-display);
    font-weight: 900;
    font-style: normal;
    font-size: 56px;
    line-height: 1;
    letter-spacing: 0;
    font-synthesis: none;
}
#mainArea .lpDayDate {
    width: 100%;
    margin-top: 0;
    padding-top: 20px;
    border-top: 2px solid var(--lp-black);
    font-size: 24px;
    font-weight: 900;
    line-height: 1.8;
}
#mainArea .lpDayNote {
    font-size: 14px;
    font-weight: 400;
    line-height: 1.8;
}
#mainArea .lpArtistCard,
#mainArea .lpArtistGrid {
    width: 100%;
    margin: 32px 0 0;
    background: var(--lp-glass);
    border-radius: 32px;
}
#mainArea .lpArtistCard {
    padding: 40px 80px 24px;
    box-sizing: border-box;
}
#mainArea .lpArtistCard .lpArtistGrid {
    margin: 0;
    padding: 0;
    background: transparent;
    border-radius: 0;
}
#mainArea .lpArtistGrid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    align-items: stretch;
    gap: 16px;
    padding: 40px 80px;
    list-style: none;
}
#mainArea .lpArtistGrid li {
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: 100%;
}
#mainArea .lpArtistImg {
    width: 100%;
    aspect-ratio: 236 / 156;
    overflow: hidden;
    flex-shrink: 0;
}
#mainArea .lpArtistImg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}
#mainArea .lpArtistName {
    width: 100%;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 0 4px;
    background: var(--lp-teal);
    font-family: var(--lp-font-display);
    font-weight: 900;
    font-style: normal;
    font-size: 18px;
    line-height: 1.8;
    color: var(--lp-black);
    text-align: center;
    word-break: break-word;
    font-synthesis: none;
}
#mainArea .lpDay--2 .lpArtistName {
    background: var(--lp-navy);
    color: var(--lp-white);
}
#mainArea .lpArtistNote {
    width: 100%;
    margin-top: 16px;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.8;
    text-align: left;
}
#mainArea .lpStep {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
    align-items: center;
}
#mainArea .lpStep + .lpStep {
    margin-top: 32px;
}
#mainArea .lpStepBadge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    padding: 12px 50px;
    background: var(--lp-navy);
    border-radius: 10px;
    color: var(--lp-white);
    font-family: var(--lp-font-display);
    font-weight: 900;
    font-style: normal;
    font-size: 32px;
    line-height: 1;
    letter-spacing: 0;
    font-synthesis: none;
}
#mainArea .lpStepTitle {
    margin: 0;
    font-size: 32px;
    font-weight: 900;
    line-height: 1.8;
    text-align: center;
}
#mainArea .lpStepTitleSub {
    display: block;
    font-size: 24px;
    font-weight: 900;
    line-height: 1.8;
}
#mainArea .lpStepTitle:has(+ .lpCard) {
    width: 100%;
    padding-bottom: 16px;
    border-bottom: 2px solid var(--lp-black);
}
#mainArea .lpStepNote {
    width: 100%;
    padding-top: 16px;
    border-top: 2px solid var(--lp-black);
    font-size: 14px;
    font-weight: 400;
    line-height: 28px;
}
#mainArea .lpCard {
    display: flex;
    flex-direction: column;
    gap: 40px;
    align-items: center;
    width: 100%;
    margin-top: 24px;
    padding: 40px 0;
    background: var(--lp-glass);
    border-radius: 32px;
    overflow: visible;
}
#mainArea .lpCard--app {
    padding: 40px 80px;
}
#mainArea .lpAppIntro {
    display: flex;
    flex-direction: column;
    gap: 24px;
    align-items: center;
    width: 740px;
    max-width: 100%;
}
#mainArea .lpAppIntroText {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
}
#mainArea .lpCampaign {
    display: flex;
    flex-direction: column;
    gap: 24px;
    align-items: center;
    width: 540px;
    max-width: 100%;
}
#mainArea .lpCampaignMain {
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: center;
    width: 100%;
}
#mainArea .lpCampaignLead {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: var(--lp-red);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.5;
}
#mainArea .lpCampaignLead::before,
#mainArea .lpCampaignLead::after {
    content: "";
    display: block;
    width: 4px;
    height: 30px;
    background: var(--lp-red);
    border-radius: 2px;
}
#mainArea .lpCampaignLead::before {
    transform: rotate(-30deg);
}
#mainArea .lpCampaignLead::after {
    transform: rotate(30deg);
}
#mainArea .lpCampaignImg {
    width: 100%;
}
#mainArea .lpCampaignImg picture,
#mainArea .lpAppLogo picture,
#mainArea .lpAppQr picture,
#mainArea .lpPriceWrap picture {
    display: block;
    width: 100%;
    height: auto;
}
#mainArea .lpCampaignImg img {
    width: 100%;
    height: auto;
}
#mainArea .lpPeriod {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: center;
    width: 100%;
}
#mainArea .lpPeriodLabel {
    width: 100%;
    padding: 4px 0;
    background: var(--lp-blue);
    border-radius: 4px;
    color: var(--lp-white);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
}
#mainArea .lpPeriodText {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.5;
    color: var(--lp-text);
}
#mainArea .lpOffer {
    display: flex;
    flex-direction: column;
    gap: 24px;
    align-items: center;
    width: 740px;
    max-width: 100%;
    overflow: visible;
}
#mainArea .lpOfferMain {
    display: flex;
    flex-direction: column;
    gap: 20px;
    align-items: center;
    width: 100%;
    overflow: visible;
}
#mainArea .lpPriceWrap {
    width: 100%;
}
#mainArea .lpPriceWrap img {
    width: 100%;
    height: auto;
    display: block;
}
#mainArea .lpPoints {
    display: flex;
    gap: 16px;
    width: 100%;
    justify-content: center;
    align-items: flex-start;
    overflow: visible;
}
#mainArea .lpPointCard {
    position: relative;
    flex: 1;
    max-width: 362px;
    height: 150px;
    flex-shrink: 0;
    margin-top: 15px;
    padding: 38px 8px 12px;
    background: var(--lp-white);
    border: 2px solid var(--lp-red);
    border-radius: 10px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    box-sizing: border-box;
    overflow: visible;
}
#mainArea .lpPointCard:last-child {
    padding: 14px 8px 10px;
}
#mainArea .lpPointBadge {
    position: absolute;
    top: -10px;
    left: -10px;
    width: 50px;
    height: 50px;
    margin: 0;
    background: var(--lp-red);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
    z-index: 2;
}
#mainArea .lpPointBadgeLabel {
    position: absolute;
    left: 50%;
    top: -5px;
    transform: translateX(-50%);
    color: var(--lp-yellow);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    white-space: nowrap;
    letter-spacing: 0.02em;
    -webkit-text-stroke: 2px var(--lp-red);
    paint-order: stroke fill;
    z-index: 1;
}
#mainArea .lpPointBadgeNum {
    color: var(--lp-white);
    font-size: 28px;
    font-weight: 700;
    line-height: 1;
    margin-top: 8px;
}
#mainArea .lpPointSpark {
    position: absolute;
    left: -13px;
    top: -16px;
    width: 21px;
    height: 21px;
    background: url("../img/point_spark_left.svg") no-repeat center / contain;
    z-index: 2;
}
#mainArea .lpPointHead {
    position: relative;
    display: inline-block;
    isolation: isolate;
    z-index: 1;
    margin: 0;
    color: var(--lp-red);
    font-size: 24px;
    font-weight: 700;
    line-height: 1.5;
    white-space: nowrap;
}
#mainArea .lpPointHead--half {
    font-size: 20px;
    margin-bottom: 10px;
}
#mainArea .lpPointHead--half span:first-child {
    font-size: 24px;
    letter-spacing: -1.2px;
}
#mainArea .lpPointHeadMonth {
    font-size: 20px;
    letter-spacing: -2px;
}
#mainArea .lpPointHead--half span:last-child {
    font-size: 24px;
}
#mainArea .lpPointHead::after {
    content: "";
    position: absolute;
    left: 50%;
    right: auto;
    bottom: 4px;
    width: 110px;
    height: 15px;
    background: var(--lp-yellow);
    transform: translateX(-50%);
    z-index: -1;
}
#mainArea .lpPointHead--half::after {
    left: 50%;
    right: auto;
    width: 170px;
    transform: translateX(-50%);
}
#mainArea .lpPointSub {
    margin: 0;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    color: var(--lp-text);
    white-space: nowrap;
}
#mainArea .lpPointText {
    margin: 0;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    color: var(--lp-text);
    white-space: nowrap;
}
#mainArea .lpPointText span {
    color: var(--lp-red);
    font-size: 24px;
}
#mainArea .lpPointText .lpPointYen {
    font-size: 16px;
    font-weight: 700;
}
#mainArea .lpPointCard:last-child .lpPointText {
    font-size: 14px;
    font-weight: 400;
}
#mainArea .lpPointPrice {
    margin: 0;
    color: var(--lp-red);
    font-size: 14px;
    font-weight: 700;
    line-height: 1.5;
    white-space: nowrap;
}
#mainArea .lpPointPrice strong {
    font-size: 20px;
    font-weight: 700;
}
#mainArea .lpPointChara {
    position: absolute;
    top: 26px;
    right: 60px;
    width: 64px;
    height: 50px;
    pointer-events: none;
}
#mainArea .lpPointChara--half {
    top: 25px;
    left: 40px;
    right: auto;
    width: 48px;
    height: 45px;
}
#mainArea .lpCtaBlock {
    display: flex;
    flex-direction: column;
    gap: 16px;
    align-items: center;
    width: 100%;
}
#mainArea .lpCta {
    display: flex;
    gap: 20px;
    width: 100%;
    justify-content: center;
    align-items: flex-end;
}
#mainArea .lpCtaJoin,
#mainArea .lpCtaForm {
    position: relative;
    flex: 1;
    max-width: 360px;
}
#mainArea .lpCtaJoin {
    padding-top: 30px;
}
#mainArea .lpCtaBalloon {
    position: absolute;
    top: 0;
    left: 96px;
    transform: none;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 168px;
    height: 40px;
    padding: 8px 10px 8px 14px;
    background: var(--lp-blue);
    border: 2px solid var(--lp-white);
    border-radius: 8px;
    color: var(--lp-white);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    white-space: nowrap;
    z-index: 1;
}
#mainArea .lpCtaBtn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 60px;
    border-radius: 37.5px;
    font-family: inherit;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    text-decoration: none;
    cursor: pointer;
    position: relative;
    box-sizing: border-box;
    appearance: none;
    -webkit-appearance: none;
    border: none;
    padding: 0 48px 0 16px;
}
#mainArea .lpCtaBtn img {
    position: absolute;
    right: 20px;
    top: 50%;
    width: 20px;
    height: 20px;
    transform: translateY(-50%);
    display: block;
}
#mainArea .lpCtaBtn--red {
    background: var(--lp-red);
    border: none;
    color: var(--lp-white);
}
#mainArea .lpCtaBtn--outline {
    background: var(--lp-white);
    border: 2px solid var(--lp-blue);
    color: var(--lp-blue);
}
#mainArea .lpCtaNote {
    width: 100%;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.5;
    text-align: center;
}
#mainArea .lpAccordion {
    width: 740px;
    max-width: 100%;
    margin: 0 !important;
}
#mainArea .lpAccordion .accordion-item {
    margin: 0;
}
#mainArea .lpAccordion .accordion-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 90px;
    padding: 0 48px;
    background: var(--lp-white);
    border: 2px solid var(--lp-blue);
    color: var(--lp-blue);
    font-size: 20px;
    font-weight: 700;
    line-height: 1.5;
    position: relative;
}
#mainArea .lpAccordion .accordion-button.active {
    background: var(--lp-white);
    color: var(--lp-blue);
    border: 2px solid var(--lp-blue);
}
#mainArea .lpAccordion .icon {
    position: absolute;
    right: 30px;
    left: auto;
    top: 50%;
    transform: translateY(-50%);
    font-size: 20px;
    color: var(--lp-blue);
}
#mainArea .lpAccordion .accordion-content {
    background: var(--lp-white);
    border: 2px solid var(--lp-blue);
    border-top: none;
}
#mainArea .lpAccordion .accordion-content table {
    border: none;
}
#mainArea .lpAccordion .accordion-content table th {
    background: #E8F0FF;
    color: var(--lp-text);
    font-size: 16px;
}
#mainArea .lpAccordion .accordion-content table td {
    font-size: 18px;
}
#mainArea .lpAccordion .accordion-content table td[data-label="名称"] {
    font-size: 20px;
    font-weight: 700;
}
#mainArea .lpAccordion .accordion-content table td[data-label="注意事項"] {
    font-size: 14px;
}
#mainArea .lpAccordion .accordion-content ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
#mainArea .lpAccordion .accordion-content li + li {
    margin-top: 0.5em;
}
#mainArea .lpAppLogo {
    width: 437px;
    max-width: 100%;
    height: 40px;
}
#mainArea .lpAppLogo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
}
#mainArea .lpAppLead {
    width: 100%;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.8;
    text-align: left;
}
#mainArea .lpAppNote {
    width: 100%;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.8;
    text-align: left;
}
#mainArea .lpAppBody {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 740px;
    max-width: 100%;
}
#mainArea .lpAppPromo {
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
}
#mainArea .lpAppPromoMain {
    display: flex;
    gap: 16px;
    align-items: center;
    width: 100%;
    min-height: 164px;
}
#mainArea .lpAppPromoCopy {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}
#mainArea .lpAppBalloon {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 60px;
    margin: 0 0 10px;
    padding: 6px 8px;
    background: var(--lp-white);
    border: 2px solid var(--lp-blue);
    border-radius: 8px;
    color: var(--lp-blue);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
    box-sizing: border-box;
}
#mainArea .lpAppBalloon::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -8px;
    width: 14px;
    height: 14px;
    background: var(--lp-white);
    border-right: 2px solid var(--lp-blue);
    border-bottom: 2px solid var(--lp-blue);
    transform: translateX(-50%) rotate(45deg);
    box-sizing: border-box;
}
#mainArea .lpAppRecommend {
    display: flex;
    align-items: center;
    width: 100%;
}
#mainArea .lpAppQr {
    width: 80px;
    height: 80px;
    margin: 0 15px 0 0;
    flex-shrink: 0;
    overflow: hidden;
}
#mainArea .lpAppQr img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
#mainArea .lpAppRecommendText {
    flex: 1;
    min-width: 0;
    font-size: 24px;
    font-weight: 800;
    line-height: 1.8;
    text-align: left;
    color: #262626;
}
#mainArea .lpAppStores {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 16px;
    width: 285px;
    flex-shrink: 0;
    align-self: stretch;
}
#mainArea .lpAppStores a {
    display: block;
    flex: 1;
    width: 100%;
}
#mainArea .lpAppStores img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: right center;
}
#mainArea .lpAppSub {
    width: 100%;
    margin: 0;
    padding-top: 30px;
    border-top: 2px solid var(--lp-gray);
    font-size: 24px;
    font-weight: 800;
    line-height: 1.8;
    text-align: center;
}
#mainArea .lpAppFeatures {
    display: flex;
    flex-direction: column;
    width: 100%;
    margin-top: 25px;
}
#mainArea .lpAppPoints {
    display: flex;
    align-items: stretch;
    gap: 24px;
    width: 100%;
    margin-top: 25px;
}
#mainArea .lpAppFeatures > .lpAppNote {
    margin-top: 16px;
}
#mainArea .lpAppPoint {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 21px 22px;
    background: var(--lp-white);
    border: 2px solid var(--lp-blue);
    border-radius: 8px;
    text-align: center;
    box-sizing: border-box;
}
#mainArea .lpAppPointLabel {
    width: 100%;
    margin: 0;
    padding-bottom: 15px;
    border-bottom: 2px solid var(--lp-border);
    color: var(--lp-blue);
    font-size: 18px;
    font-weight: 800;
    line-height: 18px;
    text-align: center;
}
#mainArea .lpAppPointText {
    width: 100%;
    margin: 0;
    padding-top: 15px;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.8;
    text-align: center;
}
#mainArea .lpAppPointText span {
    color: var(--lp-blue);
}

@media (max-width: 768px) {
    #mainArea {
        padding: calc(var(--sp) * 80) 0 calc(var(--sp) * 120);
        background-image: linear-gradient(180deg, rgba(100, 218, 211, 0.64) 0%, rgba(80, 150, 193, 0.64) 10%, rgba(59, 83, 175, 0.64) 40%, rgba(80, 150, 193, 0.64) 60%, rgba(90, 184, 202, 0.64) 80%, rgba(100, 218, 211, 0.64) 100%), linear-gradient(90deg, rgba(255, 255, 255, 0.4) 0%, rgba(255, 255, 255, 0.4) 100%);
    }
    #mainArea .sectionInner {
        gap: calc(var(--sp) * 100);
        max-width: calc(var(--sp) * 336);
    }
    #mainArea .lpIntro {
        gap: calc(var(--sp) * 24);
    }
    #mainArea .lpTitle {
        gap: calc(var(--sp) * 8);
    }
    #mainArea .lpTitleEn {
        font-size: calc(var(--sp) * 34);
        line-height: 1.2;
    }
    #mainArea .lpTitleJa {
        font-size: calc(var(--sp) * 32);
        line-height: 1.2;
    }
    #mainArea .lpLead {
        font-size: calc(var(--sp) * 18);
        font-weight: 500;
        line-height: 1.8;
    }
    #mainArea .lpBlock {
        gap: calc(var(--sp) * 48);
    }
    #mainArea .lpHeading {
        font-size: calc(var(--sp) * 24);
        padding: calc(var(--sp) * 4) 0;
    }
    #mainArea .lpDay {
        gap: calc(var(--sp) * 8);
    }
    #mainArea .lpDay + .lpDay {
        margin-top: calc(var(--sp) * 32);
    }
    #mainArea .lpDayName {
        font-size: calc(var(--sp) * 48);
    }
    #mainArea .lpDayDate {
        font-size: calc(var(--sp) * 24);
        padding-top: calc(var(--sp) * 20);
        border-top-width: calc(var(--sp) * 2);
    }
    #mainArea .lpDayNote {
        font-size: calc(var(--sp) * 14);
        white-space: pre-line;
    }
    #mainArea .lpArtistCard,
    #mainArea .lpArtistGrid {
        gap: calc(var(--sp) * 8) calc(var(--sp) * 5);
        width: calc(var(--sp) * 375);
        max-width: calc(var(--sp) * 375);
        margin-top: calc(var(--sp) * 32);
        margin-left: calc(50% - (var(--sp) * 187.5));
        margin-right: calc(50% - (var(--sp) * 187.5));
        padding: calc(var(--sp) * 40) calc(var(--sp) * 20);
        border-radius: calc(var(--sp) * 32);
        box-sizing: border-box;
    }
    #mainArea .lpArtistCard .lpArtistGrid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: calc(var(--sp) * 8) calc(var(--sp) * 5);
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 0;
        border-radius: 0;
    }
    #mainArea .lpArtistCard {
        padding: calc(var(--sp) * 40) calc(var(--sp) * 20) calc(var(--sp) * 24);
        display: block;
    }
    #mainArea .lpArtistGrid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }
    #mainArea .lpArtistImg {
        aspect-ratio: 165 / 109;
    }
    #mainArea .lpArtistName {
        padding: calc(var(--sp) * 4) calc(var(--sp) * 8);
        font-size: calc(var(--sp) * 14);
        line-height: 1.5;
    }
    #mainArea .lpArtistNote {
        margin-top: calc(var(--sp) * 16);
        padding: 0;
        font-size: calc(var(--sp) * 14);
    }
    #mainArea .lpStep {
        gap: calc(var(--sp) * 16);
    }
    #mainArea .lpStep + .lpStep {
        margin-top: calc(var(--sp) * 32);
    }
    #mainArea .lpStepBadge {
        padding: calc(var(--sp) * 12) calc(var(--sp) * 50);
        border-radius: calc(var(--sp) * 10);
        font-size: calc(var(--sp) * 24);
    }
    #mainArea .lpStepTitle {
        font-size: calc(var(--sp) * 24);
    }
    #mainArea .lpStepTitleSub {
        font-size: calc(var(--sp) * 18);
        margin-top: calc(var(--sp) * 6);
    }
    #mainArea .lpStepTitle:has(+ .lpCard) {
        padding-bottom: calc(var(--sp) * 16);
        border-bottom-width: calc(var(--sp) * 2);
    }
    #mainArea .lpStepNote {
        padding-top: calc(var(--sp) * 16);
        border-top-width: calc(var(--sp) * 2);
        font-size: calc(var(--sp) * 14);
        line-height: calc(var(--sp) * 28);
    }
    #mainArea .lpCard,
    #mainArea .lpCard--app {
        width: calc(var(--sp) * 375);
        max-width: calc(var(--sp) * 375);
        margin-top: calc(var(--sp) * 24);
        margin-left: calc(50% - (var(--sp) * 187.5));
        margin-right: calc(50% - (var(--sp) * 187.5));
        padding: calc(var(--sp) * 40) calc(var(--sp) * 20);
        gap: calc(var(--sp) * 40);
        border-radius: calc(var(--sp) * 32);
    }
    #mainArea .lpCampaign {
        width: 100%;
        gap: calc(var(--sp) * 30);
    }
    #mainArea .lpCampaignMain {
        gap: calc(var(--sp) * 20);
    }
    #mainArea .lpCampaignLead {
        gap: calc(var(--sp) * 10);
        font-size: calc(var(--sp) * 20);
    }
    #mainArea .lpCampaignLead::before,
    #mainArea .lpCampaignLead::after {
        width: calc(var(--sp) * 4);
        height: calc(var(--sp) * 30);
    }
    #mainArea .lpPeriod {
        gap: calc(var(--sp) * 8);
    }
    #mainArea .lpPeriodLabel {
        padding: calc(var(--sp) * 4) 0;
        border-radius: calc(var(--sp) * 4);
        font-size: calc(var(--sp) * 16);
    }
    #mainArea .lpPeriodText {
        font-size: calc(var(--sp) * 18);
    }
    #mainArea .lpOffer,
    #mainArea .lpOfferMain,
    #mainArea .lpPriceWrap,
    #mainArea .lpPoints,
    #mainArea .lpCtaBlock,
    #mainArea .lpCta,
    #mainArea .lpCtaNote,
    #mainArea .lpAccordion {
        width: 100%;
    }
    #mainArea .lpOffer,
    #mainArea .lpOfferMain {
        gap: calc(var(--sp) * 30);
    }
    #mainArea .lpCtaBlock {
        gap: calc(var(--sp) * 16);
    }
    #mainArea .lpPoints {
        flex-direction: column;
        gap: 0;
        align-items: stretch;
    }
    #mainArea .lpPointCard {
        max-width: none;
        width: 100%;
        height: calc(var(--sp) * 100);
        min-height: calc(var(--sp) * 100);
        margin-top: 0;
        padding: calc(var(--sp) * 14) calc(var(--sp) * 8) calc(var(--sp) * 8);
        border-width: calc(var(--sp) * 2);
        border-radius: calc(var(--sp) * 10);
    }
    #mainArea .lpPointCard:last-child {
        height: calc(var(--sp) * 150);
        min-height: calc(var(--sp) * 150);
        margin-top: calc(var(--sp) * 20);
        padding: calc(var(--sp) * 14) calc(var(--sp) * 8) calc(var(--sp) * 8);
    }
    #mainArea .lpPointBadge {
        top: calc(var(--sp) * -5);
        left: calc(var(--sp) * -5);
        width: calc(var(--sp) * 50);
        height: calc(var(--sp) * 50);
    }
    #mainArea .lpPointBadgeLabel {
        top: calc(var(--sp) * -5);
        font-size: calc(var(--sp) * 14);
        -webkit-text-stroke-width: calc(var(--sp) * 2);
    }
    #mainArea .lpPointBadgeNum {
        font-size: calc(var(--sp) * 28);
        margin-top: calc(var(--sp) * 8);
    }
    #mainArea .lpPointSpark {
        left: calc(var(--sp) * -13);
        top: calc(var(--sp) * -16);
        width: calc(var(--sp) * 21);
        height: calc(var(--sp) * 21);
    }
    #mainArea .lpPointCard:last-child .lpPointBadge {
        left: auto;
        right: calc(var(--sp) * -5);
        top: calc(var(--sp) * -5);
    }
    #mainArea .lpPointCard:last-child .lpPointSpark {
        left: auto;
        right: calc(var(--sp) * -13);
        rotate: 90deg;
        background-image: url("../img/point_spark_right.svg");
    }
    #mainArea .lpPointHead {
        font-size: calc(var(--sp) * 24);
    }
    #mainArea .lpPointHead--half {
        font-size: calc(var(--sp) * 20);
        margin-bottom: calc(var(--sp) * 10);
    }
    #mainArea .lpPointHead--half span:first-child,
    #mainArea .lpPointHead--half span:last-child {
        font-size: calc(var(--sp) * 24);
    }
    #mainArea .lpPointHeadMonth {
        font-size: calc(var(--sp) * 20);
    }
    #mainArea .lpPointHead::after {
        height: calc(var(--sp) * 15);
        bottom: calc(var(--sp) * 4);
        width: calc(var(--sp) * 110);
    }
    #mainArea .lpPointHead--half::after {
        width: calc(var(--sp) * 170);
    }
    #mainArea .lpPointSub {
        font-size: calc(var(--sp) * 16);
    }
    #mainArea .lpPointText {
        font-size: calc(var(--sp) * 16);
    }
    #mainArea .lpPointCard:last-child .lpPointText {
        font-size: calc(var(--sp) * 14);
        font-weight: 700;
    }
    #mainArea .lpPointText span {
        font-size: calc(var(--sp) * 24);
    }
    #mainArea .lpPointYen {
        font-size: calc(var(--sp) * 16);
    }
    #mainArea .lpPointPrice {
        font-size: calc(var(--sp) * 14);
    }
    #mainArea .lpPointPrice strong {
        font-size: calc(var(--sp) * 20);
    }
    #mainArea .lpPointChara {
        top: calc(var(--sp) * 8);
        right: calc(var(--sp) * 46);
        width: calc(var(--sp) * 58);
        height: calc(var(--sp) * 51);
    }
    #mainArea .lpPointChara--half {
        top: calc(var(--sp) * 16);
        left: calc(var(--sp) * 22);
        width: calc(var(--sp) * 53);
        height: calc(var(--sp) * 51);
    }
    #mainArea .lpCta {
        gap: calc(var(--sp) * 4);
        align-items: flex-end;
    }
    #mainArea .lpCtaJoin,
    #mainArea .lpCtaForm {
        max-width: none;
        flex: 1;
    }
    #mainArea .lpCtaJoin {
        padding-top: calc(var(--sp) * 16);
    }
    #mainArea .lpCtaBalloon {
        top: 0;
        left: calc(var(--sp) * 8);
        transform: none;
        min-width: 0;
        width: calc(var(--sp) * 148);
        height: auto;
        padding: calc(var(--sp) * 4) 0;
        font-size: calc(var(--sp) * 14);
        border-width: 1px;
        border-radius: calc(var(--sp) * 8);
    }
    #mainArea .lpCtaBtn {
        height: calc(var(--sp) * 65);
        border-radius: calc(var(--sp) * 32);
        font-size: calc(var(--sp) * 14);
        justify-content: space-between;
        gap: calc(var(--sp) * 0);
        padding: 0 calc(var(--sp) * 8) 0 calc(var(--sp) * 26);
    }
    #mainArea .lpCtaBtn img {
        position: static;
        transform: none;
        width: calc(var(--sp) * 20);
        height: calc(var(--sp) * 20);
        flex-shrink: 0;
    }
    #mainArea .lpCtaBtn .sp {
        display: inline-block;
        text-align: center;
        line-height: 1.5;
    }
    #mainArea .lpCtaBtn--outline {
        padding-left: calc(var(--sp) * 4);
    }
    #mainArea .lpCtaBtn--red {
        border: calc(var(--sp) * 2) solid var(--lp-white);
    }
    #mainArea .lpCtaNote {
        font-size: calc(var(--sp) * 12);
        font-weight: 700;
        text-align: left;
        margin-top: 0;
    }
    #mainArea .lpAccordion .accordion-button {
        min-height: calc(var(--sp) * 60);
        font-size: calc(var(--sp) * 16);
        padding: 0 calc(var(--sp) * 36);
        justify-content: center;
        gap: 0;
        border-width: calc(var(--sp) * 2);
    }
    #mainArea .lpAccordion .icon {
        right: calc(var(--sp) * 20);
        font-size: calc(var(--sp) * 16);
        left: auto;
    }
    #mainArea .lpAccordion .accordion-content {
        border: calc(var(--sp) * 2) solid var(--lp-blue);
        border-top: none;
        background: var(--lp-white);
        padding: calc(var(--sp) * 16);
    }
    #mainArea .lpAccordion .accordion-content table {
        border: none;
    }
    #mainArea .lpAccordion .accordion-content table tr {
        border-bottom: none;
        margin: 0;
        display: block;
    }
    #mainArea .lpAccordion .accordion-content table th {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        min-height: calc(var(--sp) * 44);
        margin: 0;
        padding: calc(var(--sp) * 14) calc(var(--sp) * 16);
        background: #E8F0FF;
        color: var(--lp-text);
        font-size: calc(var(--sp) * 16);
        font-weight: 700;
        text-align: center;
        line-height: 1.5;
        box-sizing: border-box;
    }
    #mainArea .lpAccordion .accordion-content table td {
        display: block;
        width: 100%;
        margin: 0;
        padding: calc(var(--sp) * 16) 0 calc(var(--sp) * 28);
        background: var(--lp-white);
        color: var(--lp-text);
        font-size: calc(var(--sp) * 15);
        text-align: left;
        line-height: 1.8;
        border: none;
        box-sizing: border-box;
    }
    #mainArea .lpAccordion .accordion-content table td[data-label="名称"] {
        font-size: calc(var(--sp) * 17);
        font-weight: 700;
    }
    #mainArea .lpAccordion .accordion-content table td[data-label="注意事項"] {
        font-size: calc(var(--sp) * 13);
        padding-bottom: calc(var(--sp) * 8);
    }
    #mainArea .lpAppIntro,
    #mainArea .lpAppIntroText,
    #mainArea .lpAppBody,
    #mainArea .lpAppFeatures {
        width: 100%;
        align-items: flex-start;
    }
    #mainArea .lpAppBody {
        gap: calc(var(--sp) * 40);
    }
    #mainArea .lpAppIntro {
        gap: calc(var(--sp) * 24);
    }
    #mainArea .lpAppIntroText {
        gap: calc(var(--sp) * 16);
    }
    #mainArea .lpAppLogo {
        width: 100%;
        height: calc(var(--sp) * 30);
    }
    #mainArea .lpAppLogo img {
        object-position: left center;
    }
    #mainArea .lpAppLead {
        font-size: calc(var(--sp) * 16);
    }
    #mainArea .lpAppNote {
        font-size: calc(var(--sp) * 14);
    }
    #mainArea .lpAppPromo {
        gap: calc(var(--sp) * 16);
    }
    #mainArea .lpAppPromoMain {
        flex-direction: column;
        gap: calc(var(--sp) * 16);
        min-height: 0;
        align-items: stretch;
    }
    #mainArea .lpAppPromoCopy {
        gap: calc(var(--sp) * 8);
    }
    #mainArea .lpAppBalloon {
        min-height: calc(var(--sp) * 60);
        margin-bottom: calc(var(--sp) * 10);
        padding: calc(var(--sp) * 6) calc(var(--sp) * 8);
        font-size: calc(var(--sp) * 16);
        border-width: calc(var(--sp) * 2);
        border-radius: calc(var(--sp) * 8);
    }
    #mainArea .lpAppBalloon::after {
        bottom: calc(var(--sp) * -8);
        width: calc(var(--sp) * 14);
        height: calc(var(--sp) * 14);
        border-right-width: calc(var(--sp) * 2);
        border-bottom-width: calc(var(--sp) * 2);
    }
    #mainArea .lpAppRecommend {
        gap: calc(var(--sp) * 10);
        height: calc(var(--sp) * 64);
    }
    #mainArea .lpAppRecommendText {
        font-size: calc(var(--sp) * 18);
        font-weight: 700;
        min-width: 0;
        flex: 1;
    }
    #mainArea .lpAppQr {
        width: calc(var(--sp) * 53);
        height: calc(var(--sp) * 53);
        margin: 0;
    }
    #mainArea .lpAppStores {
        flex-direction: row;
        justify-content: flex-start;
        width: 100%;
        height: calc(var(--sp) * 42.45);
        gap: calc(var(--sp) * 8);
        align-items: stretch;
        align-self: stretch;
    }
    #mainArea .lpAppStores a {
        flex: 1 1 0;
        min-width: 0;
        width: auto;
        height: 100%;
    }
    #mainArea .lpAppStores img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: contain;
        object-position: center;
    }
    #mainArea .lpAppSub {
        font-size: calc(var(--sp) * 20);
        font-weight: 700;
        margin-top: 0;
        padding-top: calc(var(--sp) * 24);
        border-top-width: calc(var(--sp) * 2);
    }
    #mainArea .lpAppFeatures {
        margin-top: 0;
        gap: calc(var(--sp) * 16);
    }
    #mainArea .lpAppPoints {
        flex-direction: column;
        gap: calc(var(--sp) * 16);
        margin-top: 0;
    }
    #mainArea .lpAppFeatures > .lpAppNote {
        margin-top: 0;
    }
    #mainArea .lpAppPoint {
        padding: calc(var(--sp) * 16);
        border-width: calc(var(--sp) * 2);
        border-radius: calc(var(--sp) * 8);
    }
    #mainArea .lpAppPointLabel {
        padding-bottom: calc(var(--sp) * 15);
        border-bottom-width: calc(var(--sp) * 2);
        font-size: calc(var(--sp) * 18);
        line-height: calc(var(--sp) * 18);
    }
    #mainArea .lpAppPointText {
        padding-top: calc(var(--sp) * 15);
        font-size: calc(var(--sp) * 16);
    }
}

/* programArea SP: 375基準 */
@media (max-width: 768px) {
    .programArea {
        padding: calc(var(--sp) * 110) 0 calc(var(--sp) * 80);
    }
    .programArea h3 {
        margin: 0 auto;
        font-size: calc(var(--sp) * 24);
        font-weight: 900;
        line-height: 1.8;
        text-align: center;
        color: var(--lp-black);
    }
    .programArea h3 .sp {
        display: block;
    }
    .programArea .programWrapper {
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
        gap: calc(var(--sp) * 19) calc(var(--sp) * 10);
        max-width: calc(var(--sp) * 330);
        width: 100%;
        margin: calc(var(--sp) * 46) auto 0;
    }
    .programArea .programItem {
        max-width: calc(var(--sp) * 160);
        width: calc((100% - (var(--sp) * 10)) / 2);
        border-radius: calc(var(--sp) * 10);
        border: 1px solid var(--lp-black);
        background: var(--lp-white);
    }
    .programArea .programItem .programInner {
        padding: calc(var(--sp) * 8) calc(var(--sp) * 10);
    }
    .programArea .programItem .img {
        width: 100%;
        max-height: calc(var(--sp) * 90);
        height: calc(var(--sp) * 90);
        border-top-left-radius: calc(var(--sp) * 10);
        border-top-right-radius: calc(var(--sp) * 10);
        background: var(--lp-black);
    }
    .programArea .programItem .img img {
        width: auto;
        max-height: calc(var(--sp) * 90);
        height: calc(var(--sp) * 90);
        object-fit: cover;
    }
    .programArea .programItem .copy {
        font-size: calc(var(--sp) * 10);
        line-height: 1.4;
    }
    .programArea .programItem .category {
        gap: calc(var(--sp) * 10);
        margin: calc(var(--sp) * 10) 0 0;
    }
    .programArea .programItem .category li.text {
        font-size: calc(var(--sp) * 12);
        line-height: calc(var(--sp) * 16);
        padding: 0 calc(var(--sp) * 4);
        border: 1px solid var(--lp-black);
        border-radius: calc(var(--sp) * 3);
    }
    .programArea .programItem .category li img {
        width: calc(var(--sp) * 35);
        height: auto;
    }
    .programArea .programItem h4.title {
        font-size: calc(var(--sp) * 13);
        line-height: calc(var(--sp) * 23);
        margin: calc(var(--sp) * 15) 0 0;
    }
    .programArea .programItem .schedule {
        font-size: calc(var(--sp) * 12);
        line-height: calc(var(--sp) * 21);
        margin: calc(var(--sp) * 10) 0 0;
    }
    .programArea .programItem .flex {
        gap: calc(var(--sp) * 12);
        margin: calc(var(--sp) * 15) 0 0;
        align-items: center;
    }
    .programArea .programItem .flex .imgBox img {
        border: 1px solid var(--lp-ch-border);
        padding: 1px;
        max-width: calc(var(--sp) * 36);
        width: calc(var(--sp) * 36);
    }
    .programArea .programItem .flex .textBox {
        font-size: calc(var(--sp) * 12);
        line-height: calc(var(--sp) * 18);
    }
}

@media (max-width: 374px) {
    #mainArea .lpArtistGrid,
    #mainArea .lpArtistCard,
    #mainArea .lpCard,
    #mainArea .lpCard--app {
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        max-width: 100vw;
        width: 100vw;
    }
}
