:root {
    --white: #ffffff;

    --purple: #d2cfff;
    --purple2: #5b21c9;
    --purple3: #7362a9;
    --purple4: #c9c6e3;
    --purple5: #c3c3f4;
    --purple6: #c173e8;
    --pink: #ff80c3;
    --pink2: #ffcbef;
    --pink3: #f9338c;
    --blue: #3dacff;
    --gray: #b2b2b2;
    --gray2: #d9d9d9;
    --gray3: #696969;

    --black: #000000;
    --black2: #464646;
    --black3: #525252;

    --font-family: 'Noto Sans JP', sans-serif;
    --font-zenmaru: 'Zen Maru Gothic', sans-serif;

    --font-weight-regular: 400;
    --font-weight-medium: 500;
    --font-weight-bold: 700;
    --font-weight-black: 900;

    --gradient: linear-gradient(90deg, var(--pink3) 0%, var(--blue) 100%);

    --design-width-sp: 750;
    --content-width-pc: 470;
    --content-width: calc(var(--content-width-pc) * 1px);
    --rem-ratio: 7.5; /* 100px = 1rem にするための除数 (750 / 100) */

    /* 【PCデフォルト】: 470px基準で固定 (470 / 7.5 = 62.666px) */
    font-size: calc(var(--content-width-pc) * 1px / var(--rem-ratio));
}

@media screen and (max-width: 750px) {
    :root {
        --content-width: 100vw;
        /* SP: 750px基準で100px = 1rem */
        font-size: calc(100vw / var(--rem-ratio));
    }
}

body {
    font-family: var(--font-family);
}

/* -- oshitabi__main */
.oshitabi__main {
    background-size: contain;
    background-position: center;
    padding-top: 90px;
    overflow-y: hidden;
}

.oshitabi__main::before {
    content: '';
    position: fixed;
    z-index: -1;
    width: 100%;
    height: 100%;
    background-image: url(../images/main-bg.webp);
    background-size: contain;
}

.oshitabi__main * {
    box-sizing: border-box;
}

.oshitabi__main-inner {
    max-width: var(--content-width);
    width: 100%;
    margin: auto;
    background-color: var(--purple);
    background-image: url(../images/oshitabi__main.webp);
    background-size: contain;
    background-position-y: 360px;
    box-shadow: 0 4px 10px var(--purple6);
}

@media screen and (max-width: 1023px) {
    :root {
        --content-width-pc: 375;
    }
}

@media screen and (max-width: 750px) {
    .oshitabi__main {
        padding-top: 66px;
    }
}

/* -------------------- */
/* -- footer override   */
/* -------------------- */
footer {
    position: relative;
    z-index: 1;
    background-color: var(--white);
    margin-top: 0 !important;
    padding-top: 100px !important;
}

.pankuzu {
    margin-bottom: 0 !important;
    padding-bottom: 10px !important;
}

@media screen and (max-width: 750px) {
    footer {
        padding-top: 50px !important;
    }
}

/* ---------------- */
/* -- lp block      */
/* ---------------- */
/* -- lp notice */
.lp-notice__item {
    position: relative;
    font-size: 0.22rem;
    line-height: 0.37rem;
    letter-spacing: 2%;
    padding-left: 1em;
}

.lp-notice__item::before {
    content: '※';
    position: absolute;
    display: block;
    left: 0;
}

/* -- lp notice2 */
.lp-notice2__button {
    width: 5.93rem;
    height: 0.7rem;
    background-color: var(--pink2);
    border-radius: 0.35rem;
    border: none;
    padding-right: 0.3rem;
    color: var(--purple2);
    font-size: 0.31rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: 2%;
    font-family: var(--font-zenmaru);
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 auto;
    position: relative;
}

.lp-notice2__button-icon {
    position: absolute;
    width: 0.29rem;
    height: 0.29rem;
    background-color: var(--purple2);
    border-radius: 50%;
    right: 0.22rem;
}

.lp-notice2__button-icon::before,
.lp-notice2__button-icon::after {
    content: '';
    position: absolute;
    display: block;
    width: 0.16rem;
    height: 0.02rem;
    background-color: var(--white);
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    border-radius: 0.01rem;
    transition: transform 0.5s ease;
}

.lp-notice2__button-icon::after {
    transform: rotate(90deg);
}

.lp-notice2__button-icon.open::after {
    transform: rotate(0deg);
}

.lp-notice2__body {
    display: none;
}

.lp-notice2__title {
    font-size: 0.4rem;
    text-align: center;
    line-height: 0.48rem;
    letter-spacing: 2%;
    color: var(--purple2);
    font-family: var(--font-zenmaru);
    padding-bottom: 0.3rem;
}

.lp-notice2__title p {
    display: inline-block;
    position: relative;
    padding: 0 10px;
    padding-bottom: 0.08rem;
}

.lp-notice2__title p::after {
    content: '';
    display: block;
    position: absolute;
    width: 100%;
    height: 0.08rem;
    background-image: url(../images/hr.svg);
    background-size: auto 0.08rem;
    left: 0;
    bottom: 0;
}

.lp-notice2__title.title1 {
    margin-top: 0.59rem;
}

.lp-notice2__title.title2 {
    margin-top: 0.93rem;
}

.lp-notice2__step-item__number {
    width: 1.88rem;
    height: 0.48rem;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 0.36rem;
    font-weight: var(--font-weight-bold);
    font-family: var(--font-zenmaru);
    background-color: var(--pink);
    border-radius: 0.24rem;
    color: var(--white);
    margin: 0 auto;
    margin-bottom: 0.03rem;
}

.lp-notice2__step-item__title {
    text-align: center;
    font-size: 0.3rem;
    line-height: 0.48rem;
    font-weight: var(--font-weight-bold);
    color: var(--black3);
    font-family: var(--font-zenmaru);
    margin-bottom: 0.3rem;
}

.lp-notice2__step-item {
    margin-bottom: 0.5rem;
}

.lp-notice2__step-item__button1 {
    width: 6.4rem;
    height: 2rem;
    padding-right: 0.35rem;
    text-align: center;
    font-size: 0.49rem;
    letter-spacing: 2%;
    background: var(--gradient);
    border-radius: 1rem;
    border: solid 0.05rem var(--purple2);
    display: flex;
    justify-content: center;
    align-items: center;
    color: var(--white);
    font-family: var(--font-zenmaru);
    margin: 0 auto;
    box-shadow: 0.1rem 0.1rem 0 var(--purple5);
    margin-bottom: 0.3rem;
    position: relative;
}

.lp-notice2__step-item__button1::after {
    content: '';
    position: absolute;
    display: block;
    width: 0.36rem;
    height: 0.31rem;
    background-image: url(../images/ico-arrow2.svg);
    background-size: cover;
    right: 0.6rem;
}

.lp-notice2__step-item__text1 {
    width: 6.4rem;
    margin: 0 auto;
    position: relative;
    font-size: 0.22rem;
    line-height: 0.37rem;
    letter-spacing: 2%;
    padding-left: 1em;
}

.lp-notice2__step-item__text1::before {
    content: '※';
    position: absolute;
    display: block;
    left: 0;
}

.lp-notice2__step-item__text2 {
    font-size: 0.26rem;
    line-height: 0.48rem;
    text-align: center;
    letter-spacing: 2%;
    font-weight: var(--font-weight-bold);
    color: var(--pink);
}

.lp-notice2__step-item__text2::before {
    content: '※';
}

.lp-notice2__step-item__text3 p {
    font-size: 0.26rem;
    line-height: 0.48rem;
    font-weight: var(--font-weight-bold);
    color: var(--pink);
    position: relative;
    padding-left: 1em;
}

.lp-notice2__step-item__text3 p::before {
    content: '※';
    position: absolute;
    display: block;
    left: 0;
}

.lp-notice2__step-item__text3 {
    width: 6.57rem;
    margin: 0 auto;
    padding-bottom: 0.47rem;
}

.lp-notice2__step-item__figure {
    width: 6.05rem;
    margin: 0 auto;
}

.lp-notice2__list {
    padding-top: 0.33rem;
    width: calc(100% - 0.7rem);
    margin: 0 auto;
}

.lp-notice2__item {
    position: relative;
    font-size: 0.22rem;
    line-height: 0.37rem;
    letter-spacing: 2%;
    padding-left: 1em;
}

.lp-notice2__item::before {
    content: '※';
    position: absolute;
    left: 0;
    display: block;
}

.lp-notice2__item a {
    text-decoration: underline;
}

/* ---------------- */
/* -- section       */
/* ---------------- */

/* -- keyvisual */
.keyvisual__figure {
    margin: 0;
}

/* -- introduction */
.introduction {
    text-align: center;
    font-size: 0.36rem;
    line-height: 0.57rem;
    font-family: var(--font-zenmaru);
    font-weight: var(--font-weight-bold);
    padding-top: 0.28rem;
    padding-bottom: 1.12rem;
    color: var(--white);
    letter-spacing: 2%;
}

.introduction__head {
    padding-bottom: 0.57rem;
}

.introduction__body {
    display: none;
    padding-bottom: 0.57rem;
}

.introduction__button {
    position: relative;
    display: flex;
    width: 3.6rem;
    height: 0.7rem;
    align-items: center;
    border: none;
    background-color: var(--white);
    border-radius: 0.35rem;
    margin: 0 auto;
    font-size: 0.31rem;
    font-family: var(--font-zenmaru);
    padding-left: 0.41rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: 2%;
    color: var(--purple2);
}

.introduction__button-icon {
    display: block;
    position: absolute;
    width: 0.29rem;
    height: 0.29rem;
    background-color: var(--purple2);
    border-radius: 50%;
    right: 0.26rem;
}

.introduction__button-icon::before,
.introduction__button-icon::after {
    content: '';
    display: block;
    position: absolute;
    width: 0.16rem;
    height: 0.02rem;
    background-color: var(--white);
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    border-radius: 0.01rem;
    transition: transform 0.5s ease;
}

.introduction__button-icon::after {
    transform: rotate(90deg);
}
.introduction__button-icon.open::after {
    transform: rotate(0deg);
}

/* -- gmenu */

.gmenu__link {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 6.53rem;
    height: 1.12rem;
    background-color: var(--white);
    margin: 0 auto 0.72rem;
    border-radius: 0.56rem;
    border: solid 0.05rem var(--purple2);
    font-size: 0.45rem;
    font-family: var(--font-zenmaru);
    letter-spacing: 8%;
    color: var(--purple3);
    box-shadow: 0.1rem 0.1rem 0 var(--purple5);
    position: relative;
}

.gmenu__link-before {
    width: 3.8rem;
    height: 0.74rem;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    position: absolute;
    top: -0.42rem;
    background-image: url(../images/ico-balloon.svg);
    font-family: var(--font-zenmaru);
    color: var(--white);
    font-size: 0.25rem;
    letter-spacing: 2%;
    padding-top: 6px;
    box-sizing: border-box;
    background-size: cover;
}

.gmenu__item:nth-child(1) .gmenu__link img {
    width: 1.68rem;
}

.gmenu__item:nth-child(2) .gmenu__link img {
    width: 2.68rem;
}

.gmenu__item:nth-child(3) .gmenu__link img {
    width: 4.6rem;
    padding-right: 0.12rem;
}

.gmenu__link::after {
    content: '';
    position: absolute;
    display: block;
    width: 0.31rem;
    height: 0.35rem;
    right: 0.38rem;
    background-size: cover;
    background-image: url(../images/ico-arrow.svg);
}

/* --ar */
.ar {
    padding-top: 0.44rem;
    padding-bottom: 0.4rem;
}

.ar__inner {
    width: calc(100% - 0.4rem);
    margin: 0 auto;
    border-radius: 0.3rem;
    background-color: var(--white);
    position: relative;
    border: solid 0.05rem var(--purple2);
    padding-top: 0.51rem;
    padding-bottom: 0.56rem;
    background-image: url(../images/bg1.svg);
    background-size: 0.73rem;
}

.ar__inner-before {
    width: 3.8rem;
    height: 0.74rem;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    position: absolute;
    top: -0.38rem;
    left: 0;
    right: 0;
    margin: auto;
    background-image: url(../images/ico-balloon.svg);
    font-family: var(--font-zenmaru);
    color: var(--white);
    font-size: 0.25rem;
    letter-spacing: 2%;
    padding-top: 6px;
    box-sizing: border-box;
    background-size: cover;
}

.ar__image {
    position: relative;
    width: calc(100% - 0.6rem);
    margin: 0 auto;
    background-color: var(--pink2);
    border-radius: 0.3rem;
    padding-top: 0.51rem;
}

.ar__image-head {
    display: block;
    position: absolute;
    top: -0.54rem;
    width: 5.89rem;
    aspect-ratio: 588 / 148;
    background-image: url(../images/ar__image-head.svg);
    background-size: contain;
    background-repeat: no-repeat;
}

.ar__title {
    width: 4.16rem;
    margin: 0 auto;
    padding-bottom: 0.1rem;
}

.ar__date {
    width: 5.53rem;
    margin: 0 auto;
    padding-bottom: 0.38rem;
}

.ar__text {
    text-align: center;
    font-size: 0.36rem;
    line-height: 0.48rem;
    letter-spacing: 2%;
    font-family: var(--font-zenmaru);
    color: var(--black3);
    padding-bottom: 0.92rem;
}

.ar__image-body {
    width: 100%;
    margin-left: auto;
}

.oshitabi__footer__button {
    text-align: center;
    margin-top: 80px;
    margin-bottom: 40px;
}

.oshitabi__footer__button a {
    display: block;
    border: 3px solid #000;
    background-color: #fff;
    max-width: 320px;
    margin: 0 auto;
    padding: 20px;
    text-align: center;
    font-family: 'Noto Sans JP', sans-serif;
    font-size: 20px;
    font-weight: 900;
    border-radius: 20px;
    position: relative;
    text-decoration: none;
    color: #000;
}

.ar__image-head {
    left: 0;
    right: 0;
    margin: auto;
    color: var(--purple2);
    text-align: center;
    font-size: 0.28rem;
    font-weight: var(--font-weight-bold);
    font-family: var(--font-zenmaru);
    padding-top: 0.32rem;
}

.ar__image-text {
    font-size: 0.22rem;
    line-height: 0.37rem;
    text-align: center;
    letter-spacing: 2%;
    padding-top: 0.11rem;
    padding-bottom: 0.3rem;
}

.ar__howto {
    width: calc(100% - 1.1rem);
    margin: 0 auto;
    background-color: var(--white);
    border: solid 0.05rem var(--purple2);
    padding-top: 0.25rem;
    padding-bottom: 0.32rem;
    position: relative;
}

.ar__howto::before {
    content: '';
    position: absolute;
    display: block;
    width: 0.69rem;
    height: 0.69rem;
    background-image: url(../images/ar-howto.svg);
    background-size: cover;
    left: -0.15rem;
    top: -0.15rem;
}

.ar__howto::after {
    content: '';
    position: absolute;
    display: block;
    width: 0.69rem;
    height: 0.69rem;
    background-image: url(../images/ar-howto.svg);
    background-size: cover;
    right: -0.15rem;
    bottom: -0.15rem;
}

.ar__howto-head {
    text-align: center;
    font-size: 0.39rem;
    line-height: 0.58rem;
    color: var(--purple2);
    letter-spacing: 2%;
    font-family: var(--font-zenmaru);
    font-weight: var(--font-weight-bold);
    padding-bottom: 0.17rem;
    position: relative;
}

.ar__howto-head::after {
    content: '';
    position: absolute;
    display: block;
    width: 1.93rem;
    height: 0.09rem;
    background-image: url(../images/ar-howto-head.svg);
    background-size: cover;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
}
.ar__howto-step {
    padding-top: 0.38rem;
}

.ar__howto-list {
    counter-set: cnt 0;
}

.ar__howto-item {
    counter-increment: cnt 1;
    position: relative;
    padding-top: 0.52rem;
    text-align: center;
    font-size: 0.3rem;
    line-height: 0.48rem;
    font-weight: var(--font-weight-bold);
    font-family: var(--font-zenmaru);
    color: var(--black3);
    padding-bottom: 0.26rem;
}

.ar__howto-item::before {
    content: 'STEP ' counter(cnt);
    display: flex;
    justify-content: center;
    align-items: flex-start;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    margin: auto;
    width: 1.88rem;
    height: 0.48rem;
    background-color: var(--pink);
    color: var(--white);
    border-radius: 0.24rem;
    font-size: 0.36rem;
    line-height: 1;
    box-sizing: border-box;
    padding-top: 0.03rem;
}

.ar__howto-notice {
    width: calc(100% - 0.76rem);
    margin: 0 auto;
}
.ar__notice1 {
    width: calc(100% - 1.1rem);
    margin: 0 auto;
    padding-top: 0.11rem;
    padding-bottom: 0.34rem;
}

.ar__button {
    display: flex;
    justify-content: center;
    align-items: center;
    background: var(--gradient);
    border: solid 0.05rem var(--purple2);
    width: 6.4rem;
    height: 2rem;
    border-radius: 1rem;
    margin: 0 auto;
    font-size: 0.49rem;
    font-family: var(--font-zenmaru);
    letter-spacing: 2%;
    color: var(--white);
    box-shadow: 0.1rem 0.1rem var(--purple4);
    margin-bottom: 0.36rem;
}

.ar__notice2 {
    width: calc(100% - 0.7rem);
    margin: 0 auto;
    padding-bottom: 0.38rem;
}

/* -- bg */
.bg {
    padding-top: 0.44rem;
    padding-bottom: 0.4rem;
}
.bg__inner {
    width: calc(100% - 0.4rem);
    margin: 0 auto;
    border-radius: 0.3rem;
    background-color: var(--white);
    position: relative;
    border: solid 0.05rem var(--purple2);
    padding-top: 0.51rem;
    padding-bottom: 0.55rem;
    background-image: url(../images/bg1.svg);
    background-size: 0.73rem;
}

.bg__inner-before {
    width: 3.8rem;
    height: 0.74rem;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    position: absolute;
    top: -0.38rem;
    left: 0;
    right: 0;
    margin: auto;
    background-image: url(../images/ico-balloon.svg);
    font-family: var(--font-zenmaru);
    color: var(--white);
    font-size: 0.25rem;
    letter-spacing: 2%;
    padding-top: 6px;
    box-sizing: border-box;
    background-size: cover;
}

.bg__title {
    width: 5.71rem;
    margin: 0 auto;
    padding-bottom: 0.17rem;
}

.bg__hr {
    width: 6.22rem;
    margin: 0 auto;
    padding-bottom: 0.39rem;
}

.bg__hr img {
    display: block;
}

.bg__text {
    font-size: 0.36rem;
    line-height: 0.48rem;
    letter-spacing: 2%;
    text-align: center;
    font-family: var(--font-zenmaru);
    color: var(--black3);
    padding-bottom: 0.44rem;
}

.bg__image {
    width: 6.4rem;
    margin: 0 auto;
    padding-bottom: 0.14rem;
}

.bg__notice {
    width: 6.2rem;
    margin: 0 auto;
    padding-bottom: 0.34rem;
}

/* -- sheet */
.sheet {
    padding-bottom: 0.67rem;
    padding-top: 0.44rem;
}

.sheet__inner {
    width: calc(100% - 0.4rem);
    margin: 0 auto;
    border-radius: 0.3rem;
    background-color: var(--white);
    position: relative;
    border: solid 0.05rem var(--purple2);
    padding-top: 0.51rem;
    padding-bottom: 0.57rem;
    background-image: url(../images/bg1.svg);
    background-size: 0.73rem;
}

.sheet__inner-before {
    width: 3.8rem;
    height: 0.74rem;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    position: absolute;
    top: -0.38rem;
    left: 0;
    right: 0;
    margin: auto;
    background-image: url(../images/ico-balloon.svg);
    font-family: var(--font-zenmaru);
    color: var(--white);
    font-size: 0.25rem;
    letter-spacing: 2%;
    padding-top: 6px;
    box-sizing: border-box;
    background-size: cover;
}

.sheet__title {
    width: 5.83rem;
    margin: 0 auto;
    padding-bottom: 0.48rem;
}

.sheet__hr {
    width: 6.22rem;
    margin: 0 auto;
    padding-bottom: 0.39rem;
}

.sheet__hr img {
    display: block;
}

.sheet__text {
    text-align: center;
    font-size: 0.36rem;
    line-height: 0.48rem;
    font-weight: var(--font-weight-bold);
    color: var(--black3);
    padding-bottom: 0.52rem;
    font-family: var(--font-zenmaru);
    letter-spacing: 2%;
}

.sheet__image {
    width: 6.4rem;
    margin: 0 auto;
    padding-bottom: 0.14rem;
}

.sheet__notice {
    width: 6.4rem;
    margin: 0 auto;
    padding-bottom: 0.63rem;
}

.sheet__duration {
    width: 6.14rem;
    margin: 0 auto;
    background-image: url(../images/sheet-duration-bg.svg);
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    text-align: center;
    font-size: 0.36rem;
    line-height: 0.48rem;
    letter-spacing: 2%;
    font-weight: var(--font-weight-bold);
    font-family: var(--font-zenmaru);
    color: var(--black3);
    padding-top: 0.335rem;
    padding-bottom: 0.355rem;
    margin-bottom: 0.6rem;
}

.sheet__duration-issuance {
    padding-bottom: 0.11rem;
}

.sheet__duration span {
    color: var(--purple2);
}

.sheet__place {
    width: 6.4rem;
    margin: 0 auto;
    background-color: var(--purple5);
    padding: 0 0.35rem;
    padding-top: 0.34rem;
    padding-bottom: 0.44rem;
    margin-bottom: 0.56rem;
    position: relative;
}

.sheet__place::before,
.sheet__place::after {
    content: '';
    display: block;
    position: absolute;
    width: 0.32rem;
    height: 0.33rem;
    background-image: url(../images/ico-pin.svg);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    top: -0.11rem;
}

.sheet__place::before {
    left: 0.11rem;
}

.sheet__place::after {
    right: 0.11rem;
}

.sheet__place-title {
    text-align: center;
    font-size: 0.36rem;
    line-height: 0.48rem;
    letter-spacing: 2%;
    color: var(--purple2);
    font-family: var(--font-zenmaru);
    padding-bottom: 0.13rem;
    position: relative;
    z-index: 1;
    margin-bottom: 0.15rem;
}

.sheet__place-title::after {
    content: '';
    width: 1.7858rem;
    height: 0.3301rem;
    background-image: url(../images/ico-cloud.svg);
    background-size: cover;
    display: block;
    position: absolute;
    z-index: -1;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
}

.sheet__place-text {
    font-size: 0.28rem;
    line-height: 0.48rem;
    letter-spacing: 2%;
    color: var(--black);
    margin: 0 auto;
    padding-bottom: 0.22rem;
}

.sheet__place-link {
    padding-bottom: 0.25rem;
}

.sheet__place-link a {
    font-size: 0.22rem;
    line-height: 0.37rem;
    color: var(--purple2);
    letter-spacing: 2%;
    text-decoration: underline;
}

.sheet__place-notice .lp-notice__item {
    font-size: 0.2rem;
    letter-spacing: 2%;
}

/* -- movie */
.movie {
    background-image: url(../images/movie-bg.svg);
    background-size: contain;
}

.movie__inner {
    padding-top: 1.28rem;
    padding-bottom: 0.98rem;
    position: relative;
}

.movie__title {
    width: 5.68rem;
    height: 1.27rem;
    background-image: url(../images/movie-title.svg);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    position: absolute;
    top: 0.735rem;
    left: 0;
    right: 0;
    margin: auto;
    font-size: 0.33rem;
    line-height: 0.41rem;
    text-align: center;
    font-weight: var(--font-weight-bold);
    letter-spacing: 2%;
    color: var(--purple2);
    font-family: var(--font-zenmaru);
    padding-top: 0.24rem;
}

.movie__video {
    width: 6.73rem;
    margin: 0 auto;
    border-radius: 0.6rem;
    padding: 0.15rem 0.18rem 0.2rem;
    background-image: url(../images/movie-video-bg.svg);
    background-size: 0.12rem;
    background-position: center;
}

.movie__video-inner {
    width: 100%;
    height: 100%;
    border-radius: 0.6rem;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

.movie__video-inner p {
    font-size: 0.33rem;
    color: var(--white);
    font-weight: var(--font-weight-bold);
    font-family: var(--font-zenmaru);
    letter-spacing: 2%;
}

/* -- copyright */
.copyright {
    padding: 0.5rem 0.18rem 0.14rem;
}

.copyright p {
    font-size: 0.15rem;
    line-height: 0.27rem;
    letter-spacing: 6%;
    font-weight: var(--font-weight-medium);
}

/* ---------------- */
/* -- lp sidebar    */
/* ---------------- */
:root {
    --side-width: min(calc(50vw - 235px - 100px), 423px);
}

.oshitabi__side {
    position: fixed;
    top: 295px;
    width: var(--side-width);
    max-width: 423px;
    left: calc(50% + 285px);
}

.oshitabi__side-figure {
    margin: 0;
    padding-bottom: calc(var(--side-width) * (36 / 423));
}

.oshitabi__side-menu__head {
    font-size: calc(var(--side-width) * (20.75 / 423));
    line-height: calc(var(--side-width) * (34.31 / 423));
    text-align: center;
    padding-bottom: calc(var(--side-width) * (38.1 / 423));
}

.oshitabi__side-menu__head p {
    display: inline-block;
    font-size: calc(var(--side-width) * (20.75 / 423));
    line-height: calc(var(--side-width) * (34.31 / 423));
    font-weight: var(--font-weight-bold);
    font-family: var(--font-zenmaru);
    color: var(--purple2);
    letter-spacing: 2%;
    position: relative;
}

.oshitabi__side-menu__head p::before,
.oshitabi__side-menu__head p::after {
    content: '';
    width: calc(var(--side-width) * (30 / 423));
    aspect-ratio: 30 / 17;
    position: absolute;
    display: block;
    background-image: url(../images/side-head.svg);
    background-size: cover;
    top: 10px;
}

.oshitabi__side-menu__head p::before {
    left: calc(var(--side-width) * (-37 / 423));
}

.oshitabi__side-menu__head p::after {
    right: calc(var(--side-width) * (-37 / 423));
    transform: scaleX(-1);
}

.oshitabi__side-menu__list .gmenu__link {
    width: calc(var(--side-width) * (359.14 / 423));
    aspect-ratio: 359.14 / 61.59;
    height: auto;
    border-radius: calc(var(--side-width) * (30.8 / 423));
    border-width: 3px;
    box-shadow: 5.5px 5.5px 0 var(--purple5);
    margin-bottom: calc(var(--side-width) * (40 / 423));
}

.oshitabi__side-menu__list .gmenu__link::before {
    width: calc(var(--side-width) * (206.24 / 423));
    height: calc(var(--side-width) * (39.36 / 423));
    top: calc(var(--side-width) * (-23 / 423));
    font-size: calc(var(--side-width) * (13.75 / 423));
    padding-top: calc(var(--side-width) * (3 / 423));
}

.oshitabi__side-menu__list .gmenu__link::after {
    width: calc(var(--side-width) * (19.4 / 423));
    aspect-ratio: 31/35;
    height: auto;
    right: calc(var(--side-width) * (23.8 / 423));
}

.oshitabi__side-menu__list .gmenu__item:nth-child(1) .gmenu__link img {
    width: calc(var(--side-width) * (96 / 423));
}

.oshitabi__side-menu__list .gmenu__item:nth-child(2) .gmenu__link img {
    width: calc(var(--side-width) * (154 / 423));
}

.oshitabi__side-menu__list .gmenu__item:nth-child(3) .gmenu__link img {
    width: calc(var(--side-width) * (253 / 423));
}

@media screen and (max-width: 1515px) {
    :root {
        --side-width: calc(50vw - 235px - 20px);
    }

    .oshitabi__side {
        left: calc(50% + 245px);
    }
}

@media screen and (max-width: 1023px) {
    :root {
        --side-width: calc(50vw - 207.5px);
    }

    .oshitabi__side {
        left: calc(50% + 197.5px);
    }
}

@media screen and (max-width: 750px) {
    .oshitabi__side {
        display: none;
    }
}
