@charset "utf-8";

/*==================================================

ベース

==================================================*/
html {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body {
    color: #000;
    font-size: 1.6rem;
    /*	-webkit-font-smoothing: antialiased;*/
    font-feature-settings: "palt";
    letter-spacing: .02em;
    font-family: var(--font-serif);
}

body.page-en {
    font-family: var(--font-english);
}

body.page-ko {
    font-family: var(--font-ko);
}

body.page-zh-hant {
    font-family: var(--font-zh-hant);
}

body.page-zh-hans {
    font-family: var(--font-zh-hans);
}

body.menu-open {
    overflow: hidden;
}

html.menu-open {
    overflow: hidden;
}

/*========= font family関数指定 ==========*/
:root {
    --font-sans-serif: "Noto Sans JP", sans-serif;
    --font-serif: "Noto Serif JP", serif;
    --font-english: "EB Garamond", serif;
    --font-ko: "Noto Sans KR", sans-serif;
    --font-zh-hant: "Noto Sans TC", sans-serif;
    --font-zh-hans: "Noto Sans SC", sans-serif;
}

.m-title {
    font-family: var(--font-english);
}

/*===================*/


img {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
}

a {
    color: #000;
    text-decoration: none;
    cursor: pointer;
}

/* アンカー
--------------------------------------------------*/
.m-anchor {
    position: relative;
}

/* PC */
@media print,
only screen and (min-width: 768px) {
    .m-anchor {
        scroll-margin-top: 0;
    }

    #movie {
        scroll-margin-top: 5rem;
    }
}

/* SP */
@media screen and (max-width: 767px) {
    .m-anchor {
        scroll-margin-top: 6rem;
    }

    #form {
        scroll-margin-top: 4rem;
    }
}

/*==================================================

全ページ共通

==================================================*/
/* PC */
@media print,
screen and (min-width: 768px) {
    html {
        font-size: 10px;
    }

    .sp {
        display: none !important;
    }

    a:hover {
        text-decoration: underline;
    }
}

/* SP */
@media screen and (max-width: 767px) {
    html {
        font-size: 1.04vw;
        /*960*/
    }

    .pc {
        display: none !important;
    }
}

/* form リセット
--------------------------------------------------*/
input,
button,
select,
textarea {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: transparent;
    border: none;
    border-radius: 0;
    font: inherit;
    outline: none;
}

input[type="checkbox"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

/*==================================================

ヘッダー

==================================================*/

/* レイアウト
--------------------------------------------------*/
.l-header {
    width: 100%;
    position: fixed;
    z-index: 100;
    top: 0;
    right: 0;
}

/* PC */
@media print,
only screen and (min-width: 768px) {}

/* SP */
@media screen and (max-width: 767px) {}

/* 言語
--------------------------------------------------*/
.l-header__language-wrapper {
    position: absolute;
    z-index: 10;
}

.l-header__language {
    width: fit-content;
    background-image: url("../images/lang-icon.webp"), url("../images/lang-arrow.webp");
    background-repeat: no-repeat, no-repeat;
    background-color: #fff;
    position: absolute;
    font-family: var(--font-sans-serif);
    font-weight: bold;
    z-index: 10;
}

/* カスタムドロップダウン */
.custom-select {
    position: relative;
    width: fit-content;
    font-family: var(--font-sans-serif);
    font-weight: bold;
    cursor: pointer;
}

.custom-select__trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: #fff;
    background-image: url("../images/lang-icon.webp");
    background-repeat: no-repeat;
    padding: 0.2rem 3rem 0.2rem 3rem;
    border-radius: 0.5rem;
    user-select: none;
    transition: all 0.3s ease;
    white-space: nowrap;
    position: relative;
}

.custom-select__text {
    display: inline-block;
}

.custom-select__arrow {
    display: inline-block;
    width: 0;
    height: 0;
    margin-left: 0.5rem;
}

.custom-select__trigger::after {
    content: "";
    position: absolute;
    background-image: url("../images/lang-arrow.webp");
    background-repeat: no-repeat;
    background-position: center;
    transition: transform 0.3s ease;
}

.custom-select.-open .custom-select__trigger {
    border-radius: 0.5rem 0.5rem 0 0;
}

.custom-select.-open .custom-select__trigger::after {
    transform: rotate(180deg);
}

.custom-select__dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    min-width: 100%;
    width: max-content;
    background-color: #fff;
    border-radius: 0 0 0.5rem 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: all 0.3s ease;
    z-index: 1000;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    max-height: 0;
    overflow: hidden;
}

.custom-select.-open .custom-select__dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    max-height: 500px;
}

.custom-select__option {
    padding: 0.8rem 2.3rem;
    cursor: pointer;
    transition: background-color 0.2s ease;
    font-size: inherit;
    font-weight: normal;
    white-space: nowrap;
}

.custom-select__option:hover {
    background-color: #f5f5f5;
}

.custom-select__option.-selected {
    background-color: #e8e8e8;
    font-weight: bold;
}

.m-bgm {
    position: absolute;
    background: url("../images/ribon.webp") center top no-repeat;
    background-size: 100% auto;
    color: #e4e4e4;
    text-align: center;
    cursor: pointer;
}

.m-bgm__button:before {
    background-image: url("../images/bgm-on.webp");
    opacity: 1;
}

.m-bgm__button:after {
    background-image: url("../images/bgm-off.webp");
    opacity: 0;
}

.m-bgm__button:before,
.m-bgm__button:after {
    content: "";
    background-repeat: no-repeat;
    background-position: center top;
    background-size: 100% auto;
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    margin: 0 auto;
    transition: all .3s ease;
}

.m-bgm.-off .m-bgm__button:before {
    opacity: 0;
}

.m-bgm.-off .m-bgm__button:after {
    opacity: 1;
}

/* PC */
@media print,
only screen and (min-width: 768px) {
    .l-header__language-wrapper {
        top: 2.5rem;
        right: 13rem;
    }

    .l-header__language {
        background-size: 1.3rem auto, 0.8rem auto;
        background-position: 0.7rem center, right 0.7rem center;
        border-radius: 0.5rem;
        top: 2.5rem;
        right: 13rem;
        font-size: 1.2rem;
        padding: 0.2rem 2rem 0.2rem 2.3rem;
    }

    .custom-select__trigger {
        background-size: 1.3rem auto;
        background-position: 0.7rem center;
        font-size: 1.2rem;
        padding: 0.2rem 3rem 0.2rem 3rem;
    }

    .custom-select__trigger::after {
        width: 0.8rem;
        height: 100%;
        right: 0.7rem;
        background-size: 0.8rem auto;
    }

    .custom-select__option {
        font-size: 1.2rem;
        padding: 0.8rem 2.3rem;
    }

    .m-bgm {
        width: 5rem;
        height: 11.3rem;
        top: 7rem;
        right: 3.3rem;
        font-size: 1.3rem;
    }

    .m-bgm__button {
        width: 7rem;
        height: 8.5rem;
        margin: 3rem -1rem 0 -1rem;
        padding-top: 1rem;
    }

    .m-bgm__button:before,
    .m-bgm__button:after {
        width: 3rem;
        height: 1.9rem;
        top: 6.2rem;
    }
}

/* SP */
@media screen and (max-width: 767px) {
    .l-header__language-wrapper {
        top: 2.8rem;
        right: 15.8rem;
    }

    .l-header__language {
        background-size: 2rem auto, 1.2rem auto;
        background-position: 1rem center, right 1.1rem center;
        border-radius: 0.6rem;
        top: 2.8rem;
        right: 15.8rem;
        font-size: 2.08rem;
        padding: 0.1rem 2.6rem 0.1rem 3.5rem;
    }

    .custom-select__trigger {
        background-size: 2rem auto;
        background-position: 1rem center;
        border-radius: 0.6rem;
        font-size: 2.08rem;
        padding: 0.3rem 3.4rem 0.3rem 4.4rem;
    }

    .custom-select__trigger::after {
        width: 1.2rem;
        height: 100%;
        right: 1.1rem;
        background-size: 1.2rem auto;
    }

    .custom-select.-open .custom-select__trigger {
        border-radius: 0.6rem 0.6rem 0 0;
    }

    .custom-select__dropdown {
        border-radius: 0 0 0.6rem 0.6rem;
    }

    .custom-select__option {
        font-size: 2.08rem;
        padding: 0.5rem 2.6rem 0.5rem 3.5rem;
    }

    .m-bgm {
        width: 6.6rem;
        height: 17rem;
        top: 9rem;
        right: 3.6rem;
        font-size: 1.95rem;
    }

    .m-bgm__button {
        width: 9rem;
        height: 13rem;
        margin: 3rem -1rem 0 -1rem;
        padding-top: 1rem;
    }

    .m-bgm__button:before,
    .m-bgm__button:after {
        width: 4.2rem;
        height: 2.6rem;
        top: 8.2rem;
    }
}


/* グローバルナビ
--------------------------------------------------*/
.nav-global {
    text-align: center;
}

.nav-global__item {
    font-family: "Cormorant Garamond", serif;
    font-size: 500;
    letter-spacing: .1em;
    text-align: center;
    display: block;
    position: relative;
}

.nav-global li:last-child .nav-global__item {
    margin-bottom: 0;
}

.nav-global__item:after {
    width: 100%;
    height: 100%;
    content: "";
    background: url("../images/menu-bg.webp") center top no-repeat;
    background-size: 100% auto;
    transition: opacity .3s ease;
    opacity: 0;
    display: block;
    position: absolute;
    inset: 0;
}

.l-header__logo {
    margin: 0 auto;
}

.l-header__logo img {
    width: 100%;
}

/* PC */
@media print,
only screen and (min-width: 768px) {
    .nav-global {
        margin-bottom: 6rem;
    }

    .nav-global__item {
        font-size: 2.8rem;
        margin-bottom: 2.2rem;
    }

    .nav-global__item:hover:after {
        opacity: 1;
    }

    .nav-global__item:hover {
        text-decoration: none;
    }

    .l-header__logo {
        width: 28rem;
    }
}

/* SP */
@media screen and (max-width: 767px) {
    .nav-global {
        width: 52rem;
        margin: 0 auto 15rem auto;
    }

    .nav-global__item {
        font-size: 5.5rem;
        margin-bottom: 5.5rem;
    }

    .top .nav-global__item:after {
        opacity: 1;
    }

    .l-header__logo {
        width: 71rem;
    }
}

/* ハンバーガー
--------------------------------------------------*/

.l-header__menus {
    -webkit-overflow-scrolling: touch;
    background-image: url("../images/menu-bg-bottom.webp"), url("../images/menu-bg-top.webp");
    background-repeat: no-repeat;
    background-position: center bottom, center top;
    background-size: 100% auto;
    background-color: #fff;
    position: absolute;
    top: 0;
    right: 0;
    box-sizing: border-box;
    display: none;
    height: 100vh;
    overflow-y: auto;
    overflow-x: hidden;
}

.m-hamburger {
    background: url("../images/hamburger.webp") center center no-repeat;
    background-size: 100% auto;
    position: absolute;
    cursor: pointer;
    z-index: 100;
    font-family: var(--font-english);
}

.m-hamburger__lines {
    position: relative;
}

.m-hamburger__lines>div {
    background-color: #004ea2;
    width: 100%;
    height: 2px;
    transition: transform .3s ease, opacity .3s ease;
    position: absolute;
    left: 0;
    top: 50%;
}

.m-hamburger__lines>div:first-child {
    background-color: #d0b651;
}

.m-hamburger__lines>div:last-child {
    background-color: #c8b468;
}

.menu-open .m-hamburger__lines>div:first-child {
    transform: rotate(195deg);
}

.menu-open .m-hamburger__lines>div:last-child {
    transform: rotate(-195deg);
}

.m-hamburger__text {
    width: 100%;
    text-align: center;
    color: #c8b468;
    font-weight: bold;
}

.m-hamburger__text:before {
    content: "MENU";
}

.menu-open .m-hamburger__text:before {
    content: "CLOSE";
}

/* PC */
@media print,
only screen and (min-width: 768px) {
    .l-header__menus {
        padding: 15.5rem 6rem 11rem 6rem;
        width: 40rem;
    }

    .m-hamburger {
        width: 8.5rem;
        height: 8.5rem;
        top: 1.8rem;
        right: 1.8rem;
    }

    .m-hamburger__lines {
        height: 25%;
        width: 47%;
        margin: 26% auto 0 auto;
    }

    .m-hamburger__lines>div:first-child {
        transform: translateY(-200%);
    }

    .m-hamburger__lines>div:last-child {
        transform: translateY(200%);
    }

    .m-hamburger__text {
        font-size: 1.4rem;
    }
}

/* SP */
@media screen and (max-width: 767px) {
    .l-header__menus {
        padding: 25rem 2rem 20rem 2rem;
        width: 100%;
    }

    .m-hamburger {
        width: 11.5rem;
        height: 11.5rem;
        top: 1.4rem;
        right: 1.3rem;
    }

    .m-hamburger__lines {
        height: 20%;
        width: 47%;
        margin: 28% auto 4% auto;
    }

    .m-hamburger__lines>div:first-child {
        transform: translateY(-130%);
    }

    .m-hamburger__lines>div:last-child {
        transform: translateY(130%);
    }

    .m-hamburger__text {
        font-size: 1.7rem;
    }
}

/*==================================================

フッター

==================================================*/
.l-footer {
    color: #fff;
    text-align: center;
    background-color: #000;
    position: relative;
}

.l-footer img {
    width: 100%;
}

.l-footer a {
    color: #fff;
    text-decoration: none;
    display: block;
}

.l-footer__reserve {
    color: #d0bb6d;
    font-weight: 500;
    border-bottom: 1px #8b8b8b solid;
}

.l-footer__hard,
.l-footer__social,
.l-footer__production,
.l-footer__nav {
    display: flex;
    justify-content: center;
    align-items: center;
    border-bottom: 1px #8b8b8b solid;
}

.l-footer__navItemIn {
    position: relative;
    display: block;
    font-family: var(--font-sans-serif);
}

.l-footer__navItemIn:before {
    content: "";
    background-color: #535353;
    position: absolute;
    width: 1px;
    left: 0;
    top: 0;
    bottom: 0;
    margin: auto 0;
    display: block;
}

.l-footer__navItem:first-child .l-footer__navItemIn:before {
    content: none;
}

.l-footer__copy {
    letter-spacing: .02em;
    border-bottom: none;
    font-family: var(--font-sans-serif);
}

/* PC */
@media print,
only screen and (min-width: 768px) {
    .l-footer__reserve {
        font-size: 4.2rem;
        padding: 2rem 3rem;
    }

    .l-footer__hard {
        gap: 0 5rem;
        padding: 3rem;
    }

    .l-footer__hardItem:first-child {
        width: 13.7rem;
    }

    .l-footer__hardItem:last-child {
        width: 20rem;
    }

    .l-footer__social {
        gap: 0 1.2rem;
        padding: 2rem 3rem;
    }

    .l-footer__socialItem {
        width: 3rem;
    }

    .l-footer__socialItem.-banner {
        width: 21rem;
    }

    .l-footer__socialItem a {
        transition: opacity .3s ease;
    }

    .l-footer__socialItem a:hover {
        opacity: 0.85;
    }

    .l-footer__production {
        gap: 0 3.9rem;
        padding: 2rem 3rem;
    }

    .l-footer__productionItem:first-child {
        width: 23rem;
    }

    .l-footer__productionItem:nth-child(2) {
        width: 24rem;
    }

    .l-footer__productionItem:nth-child(3) {
        width: 5rem;
    }

    .l-footer__navItemIn {
        font-size: 1.4rem;
        letter-spacing: .02em;
        padding: 0.6rem 2.2rem;
    }

    .l-footer__navItemIn:before {
        height: 1.4rem;
    }

    .l-footer__copy {
        font-size: 1.4rem;
        padding: 2rem 3rem;
    }
}

/* SP */
@media screen and (max-width: 767px) {
    .l-footer__reserve {
        font-size: 6.1rem;
        padding: 3.5rem 1rem;
    }

    .l-footer__hard {
        gap: 0 7.3rem;
        padding: 4.4rem 1rem;
    }

    .l-footer__hardItem:first-child {
        width: 20.5rem;
    }

    .l-footer__hardItem:last-child {
        width: 30rem;
    }

    .l-footer__social {
        gap: 0 1.8rem;
        padding: 3rem 1rem;
    }

    .l-footer__socialItem {
        width: 4.5rem;
    }

    .l-footer__socialItem.-banner {
        width: 31rem;
    }

    .l-footer__production {
        gap: 0 5.6rem;
        padding: 2.7rem 1rem 3.8rem 1rem;
    }

    .l-footer__productionItem:first-child {
        width: 34.7rem;
    }

    .l-footer__productionItem:nth-child(2) {
        width: 30rem;
    }

    .l-footer__productionItem:nth-child(3) {
        width: 6rem;
    }

    .l-footer__navItemIn {
        font-size: 2.1rem;
        letter-spacing: .02em;
        padding: 1.3rem 3rem;
    }

    .l-footer__navItemIn:before {
        height: 2.1rem;
    }

    .l-footer__copy {
        font-size: 2.1rem;
        padding: 2.8rem 1rem 22rem 1rem;
    }

}

/* メイン
--------------------------------------------------*/
.main img {
    width: 100%;
}

.main-image {
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
}

.main-detail {
    position: absolute;
}

.main-button01 {
    display: flex;
    align-items: center;
}

.main-button02 {
    display: flex;
    align-items: center;
    justify-content: center;
}

.main-button03__item {
    display: flex;
    align-items: center;
}

.main-text {
    position: absolute;
}

/* PC */
@media print,
only screen and (min-width: 768px) {
    .main {
        background: url("../images/bg.jpg") center top no-repeat;
        background-attachment: fixed;
        background-size: cover;
        padding-bottom: 10.5rem;
        z-index: 2;
        position: relative;
    }

    .main-item {
        --base: 100vw;
        aspect-ratio: 84 / 51;
        position: relative;
    }

    .main-detail {
        width: calc(var(--base) * 695 / 1680);
        top: calc(var(--base) * 78 / 1680);
        left: calc(var(--base) * 80 / 1680);
    }

    .main-logo {
        width: 100%;
        margin-bottom: calc(var(--base) * 20 / 1680);
    }

    .page-en .main-logo {
        margin-bottom: calc(var(--base) * 8 / 1680);
    }

    .page-zh-hant .main-logo {
        margin-bottom: calc(var(--base) * 20 / 1680);
    }

    .page-zh-hans .main-logo {
        margin-bottom: calc(var(--base) * 20 / 1680);
    }

    .page-ko .main-logo {
        margin-bottom: calc(var(--base) * 20 / 1680);
    }

    .main-date {
        width: calc(var(--base) * 599 / 1680);
        margin: 0 auto calc(var(--base) * 25 / 1680) auto;
    }

    .main-button01 {
        position: absolute;
        gap: 0 2.7rem;
        top: 2rem;
        left: 2rem;
        z-index: 50;
    }

    .main-button01__item {
        width: calc(var(--base) * 130 / 1680);
    }

    .main-button01__itemIn {
        display: block;
        transition: opacity .3s ease;
    }

    .main-button01__itemIn:hover {
        opacity: 0.7;
    }

    .main-button02 {
        margin-bottom: calc(var(--base) * 10 / 1680);
    }

    .main-button02__item {
        width: calc(var(--base) * 310 / 1680);
        position: relative;
    }

    .platform-link__itemIn {
        position: relative;
        display: block;
    }

    .main-button02__item:before,
    .platform-link__itemIn:before {
        content: "";
        background: url("../images/main-button-on.webp") center center no-repeat;
        background-size: 100% auto;
        inset: 0;
        position: absolute;
        display: block;
        opacity: 0;
        transition: opacity .3s ease;
        z-index: 5;
    }

    .page-en .main-button02__item:before,
    .page-en .platform-link__itemIn:before {
        background: url("../images/en/main-button-on.webp") center center no-repeat;
        background-size: 100% auto;
    }

    .page-zh-hant .main-button02__item:before,
    .page-zh-hant .platform-link__itemIn:before {
        background: url("../images/zh-hant/main-button-on.webp") center center no-repeat;
        background-size: 100% auto;
    }

    .page-zh-hans .main-button02__item:before,
    .page-zh-hans .platform-link__itemIn:before {
        background: url("../images/zh-hans/main-button-on.webp") center center no-repeat;
        background-size: 100% auto;
    }

    .page-ko .main-button02__item:before,
    .page-ko .platform-link__itemIn:before {
        background: url("../images/ko/main-button-on.webp") center center no-repeat;
        background-size: 100% auto;
    }

    .main-button02__item:hover:before,
    .platform-link__itemIn:hover:before {
        opacity: 1;
    }

    .main-button02__item:hover img,
    .platform-link__itemIn:hover img {}

    .main-button02__item img,
    .platform-link__itemIn img {
        filter: drop-shadow(0 0 0.5rem rgba(0, 0, 0, 0.5));
    }

    .main-text {
        width: calc(var(--base) * 137.5 / 1680);
        top: calc(var(--base) * 65 / 1680);
        right: calc(var(--base) * 200 / 1680);
    }

    .page-en .main-text {
        width: calc(var(--base) * 520 / 1680);
        top: calc(var(--base) * 215 / 1680);
        right: calc(var(--base) * 95 / 1680);
    }

    .page-zh-hant .main-text {
        width: calc(var(--base) * 160 / 1680);
        top: calc(var(--base) * 45 / 1680);
        right: calc(var(--base) * 115 / 1680);
    }

    .page-zh-hans .main-text {
        width: calc(var(--base) * 160 / 1680);
        top: calc(var(--base) * 45 / 1680);
        right: calc(var(--base) * 115 / 1680);
    }

    .page-ko .main-text {
        width: calc(var(--base) * 155 / 1680);
        top: calc(var(--base) * 45 / 1680);
        right: calc(var(--base) * 115 / 1680);
    }

    .main-button03 {
        width: calc(var(--base) * 351 / 1680);
        margin: 0 auto;
    }

    .main-button03__item {
        display: flex;
        gap: 0 calc(var(--base) * 5 / 1680);
        transition: opacity .3s ease;
    }

    .main-button03__item:hover {
        opacity: 0.93;
    }

    img.main-button03__01 {
        width: calc(var(--base) * 50 / 1680);
    }

    img.main-button03__02 {
        width: calc(var(--base) * 300 / 1680);
    }
}

/* SP */
@media screen and (max-width: 767px) {
    .main {
        background: url("../images/bg-sp.jpg") center top no-repeat;
        background-attachment: fixed;
        background-size: cover;
        padding-bottom: 14.5rem;
    }

    .main-item {
        position: relative;
        aspect-ratio: 43 / 84;
        margin-bottom: 16rem;
    }

    .main-detail {
        width: 100%;
        top: 68.5rem;
        left: 0;
        right: 0;
        margin: 0 auto;
    }

    .main-logo {
        width: 85rem;
        margin: 0 auto 7rem auto;
    }

    .main-date {
        width: 100%;
        margin: 0 auto 6rem auto;
    }

    .main-button01 {
        justify-content: center;
        gap: 0 7.5rem;
        margin-bottom: 5rem;
    }

    .main-button01__item {
        width: 26rem;
    }

    .main-button02 {
        width: 61rem;
        margin: 0 auto 2rem auto;
    }

    .main-text {
        width: 21.4rem;
        top: 16rem;
        left: 7.5rem;
    }

    .page-en .main-text {
        width: 74rem;
        top: 11rem;
        left: 2rem;
    }

    .page-zh-hant .main-text {
        width: 21.4rem;
        top: 16rem;
        left: 7.5rem;
    }

    .page-zh-hans .main-text {
        width: 21.4rem;
        top: 16rem;
        left: 7.5rem;
    }

    .page-ko .main-text {
        width: 21.4rem;
        top: 16rem;
        left: 7.5rem;
    }

    .main-button03 {
        margin: 0 auto;
    }

    .main-button03__item {
        justify-content: center;
    }

    img.main-button03__01 {
        width: 7.9rem;
    }

    img.main-button03__02 {
        width: 45.5rem;
    }
}

/*-- メイン MOVIE --*/
.main-movie__itemIn {
    position: relative;
    aspect-ratio: 48 / 27;
    border: 3px #ababab solid;
}

.main-movie__itemIn:before {
    content: "";
    border: 1px #ababab solid;
    position: absolute;
    z-index: 3;
}

.main-movie__itemIn:after {
    content: "";
    background: url("../images/main-movie-bg.webp") center center no-repeat;
    background-size: 100% auto;
    aspect-ratio: 444/71;
    position: absolute;
    left: 0;
    right: 0;
    margin: 0 auto;
}

.main-movie__movie {
    position: relative;
    z-index: 2;
}

.main-movie__play {
    aspect-ratio: 58 / 67;
    position: absolute;
    inset: 0;
    margin: auto auto;
    z-index: 4;
    cursor: pointer;
}

.js-movie-modal-trigger {
    cursor: pointer;
}

.main-movie__scl {
    aspect-ratio: 1 / 1;
    position: absolute;
    inset: 0;
    margin: auto auto;
    z-index: 3;
}

.main-movie__text {
    background: url("../images/main-movie-gra.webp") center top repeat-y;
    background-size: 100% auto;
    font-family: var(--font-sans-serif);
    line-height: 1.3;
    letter-spacing: .03em;
    text-align: center;
}

/* PC */
@media print,
only screen and (min-width: 768px) {
    .main-title {
        width: 30.6rem;
        margin: -4.5rem auto 9rem auto;
    }

    .main-movie {
        max-width: 80rem;
        width: 100%;
        margin: 0 auto;
        padding: 0 3rem;
        display: flex;
        justify-content: center;
        gap: 0 3.5rem;
    }

    .main-movie__item {
        width: 100%;
    }

    .main-movie__itemIn:before {
        inset: 0.4rem;
    }

    .main-movie__itemIn:after {
        width: 45.96%;
        top: -10%;
    }

    .main-movie__link {
        width: 90%;
        max-width: 35.5rem;
        margin: 0 auto;
    }

    .main-movie__linkItem {
        transition: opacity .3s ease;
    }

    .main-movie__linkItem:hover {
        opacity: 0.8;
    }

    .main-movie__play {
        width: 4%;
        left: 0.5%;
    }

    .main-movie__scl {
        width: 18%;
    }

    .main-movie__text {
        font-size: 1.6rem;
        padding: 0.4rem;
        margin: 1.9rem 0 2.6rem 0;
    }
}

/* SP */
@media screen and (max-width: 767px) {
    .main-title {
        width: 38.2rem;
        margin: 0 auto 9rem auto;
    }

    .main-movie {
        width: 81.5rem;
        margin: 0 auto;
    }

    .main-movie__item {
        margin-bottom: 9.5rem;
    }

    .main-movie__item:last-child {
        margin-bottom: 0;
    }

    .main-movie__itemIn:before {
        inset: 0.8rem;
    }

    .main-movie__itemIn:after {
        width: 32rem;
        top: -3.7rem;
    }

    .main-movie__play {
        width: 5rem;
    }

    .main-movie__scl {
        width: 22rem;
    }

    .main-movie__text {
        font-size: 3rem;
        padding: 0.3rem 0.4rem 0.4rem 0.4rem;
        margin: 2rem 0 4.5rem 0;
    }

    .main-movie__link {
        width: 53rem;
        margin: 0 auto;
    }
}

/* YouTube動画モーダル
--------------------------------------------------*/
.movie-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10000;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.movie-modal.-open {
    display: block;
    opacity: 1;
    visibility: visible;
}

.movie-modal__overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.9);
    cursor: pointer;
}

.movie-modal__content {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    max-width: 120rem;
    z-index: 10001;
}

.movie-modal__close {
    position: absolute;
    top: -4rem;
    right: 0;
    width: 4rem;
    height: 4rem;
    background-color: #fff;
    border: none;
    border-radius: 50%;
    font-size: 3rem;
    line-height: 1;
    color: #000;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.3s ease, color 0.3s ease;
    z-index: 10002;
}

.movie-modal__close:hover {
    background-color: #f0f0f0;
}

.movie-modal__iframe-wrapper {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%; /* 16:9 aspect ratio */
    height: 0;
    overflow: hidden;
    background-color: #000;
}

.movie-modal__iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* PC */
@media print,
only screen and (min-width: 768px) {
    .movie-modal__content {
        width: 80%;
        max-width: 120rem;
    }

    .movie-modal__close {
        width: 5rem;
        height: 5rem;
        font-size: 4rem;
        top: -6rem;
    }
}

/* SP */
@media screen and (max-width: 767px) {
    .movie-modal__content {
        width: 95%;
    }

    .movie-modal__close {
        width: 4rem;
        height: 4rem;
        font-size: 3rem;
        top: -5rem;
    }
}

/* INTRO
--------------------------------------------------*/
.prologue img {
    width: 100%;
    display: block;
}

.prologue {
    /*  background-color: #0d397a;*/
    background: url("../images/prologue-bg.jpg") center top no-repeat;
    background-size: cover;
    background-attachment: fixed;
}

.prologue:after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(to bottom,
            rgba(0, 0, 0, 0.8) 0%,
            rgba(0, 0, 0, 0.8) 60%,
            rgba(0, 0, 0, 0.0) 90%,
            rgba(0, 0, 0, 0.0) 100%);
    mix-blend-mode: multiply;

}

.prologue-item01,
.prologue-item02,
.prologue-item03 {
    position: relative;
}

.prologue-item__movie01 img,
.prologue-item__movie02 img,
.prologue-item__movie03 img,
.prologue-item__movie04 img,
.prologue-item__movie05 img {
    border: 1px #9c8457 solid;
}

.prologue-item__movie04 {
    z-index: 3;
    position: relative;
}

.prologue-item01__texts01,
.prologue-item01__texts02,
.prologue-item02__texts02,
.prologue-item02__texts03 {
    z-index: 5;
    position: absolute;
}

.prologue-item__text03 {
    background: url("../images/intro-text-bg.webp") center center no-repeat;
    background-size: 100% auto;
    margin: 0 auto;
}

.prologue-item__text03 img {
    margin: 0 auto;
}

/* PC */
@media print,
only screen and (min-width: 768px) {
    .prologue {
        padding: 0 3rem;
        --base: min(0.1rem, calc((100vw - 6rem) / 1055));
    }

    .prologue-title {
        max-width: 149.4rem;
        width: 100%;
        margin: 0 auto calc(var(--base) * 50) auto;
    }

    .prologue-inner {
        max-width: 105.5rem;
        padding-bottom: calc(var(--base) * 575);
        margin: 0 auto;
        box-sizing: content-box;
    }

    .prologue-item01 {
        padding-top: calc(var(--base) * 115);
    }

    .prologue-item__movie01 {
        width: calc(var(--base) * 600);
        margin: 0 calc(var(--base) * 93) 0 auto;
    }

    .prologue-item__movie02 {
        width: calc(var(--base) * 480);
        margin: calc(var(--base) * -40) 0 calc(var(--base) * 40) calc(var(--base) * 40);
    }

    .prologue-item__movie03 {
        width: calc(var(--base) * 600);
        margin: 0 0 calc(var(--base) * 100) calc(var(--base) * 230);
    }

    .prologue-item__movie04 {
        width: calc(var(--base) * 480);
        margin-left: calc(var(--base) * 65);
        margin-top: calc(var(--base) * 115);
    }

    .prologue-item__movie05 {
        width: calc(var(--base) * 600);
        margin: calc(var(--base) * -65) calc(var(--base) * 70) calc(var(--base) * 210) auto;
    }

    .prologue-item01__texts01 {
        width: calc(var(--base) * 136);
        top: 0;
        right: 0;
    }

    .prologue-item01__texts02 {
        width: calc(var(--base) * 135);
        top: calc(var(--base) * 348);
        left: 0;
    }

    .prologue-item02__texts01 {
        width: calc(var(--base) * 522.5);
        margin: 0 auto calc(var(--base) * 120) auto;
    }

    .prologue-item02__texts02 {
        width: calc(var(--base) * 135);
        top: calc(var(--base) * 185);
        right: calc(var(--base) * 115);
    }

    .prologue-item02__texts03 {
        width: calc(var(--base) * 135);
        top: calc(var(--base) * 380);
        left: calc(var(--base) * 115);
    }

    .prologue-item03 {
        margin: 0 calc(var(--base) * -167);
    }

    .prologue-item__text03 {
        width: calc(var(--base) * 1389);
    }

    .prologue-item__text03 img {
        width: calc(var(--base) * 651);
    }

    .page-en .prologue-item01__texts01 {
        width: calc(var(--base) * 700);
        top: calc(var(--base) * 33);
        right: calc(var(--base) * -38);
    }

    .page-zh-hant .prologue-item01__texts01 {
        width: calc(var(--base) * 120);
    }

    .page-zh-hans .prologue-item01__texts01 {
        width: calc(var(--base) * 61);
    }

    .page-ko .prologue-item01__texts01 {
        width: calc(var(--base) * 64);
    }

    .page-en .prologue-item01__texts02 {
        width: calc(var(--base) * 535);
        top: calc(var(--base) * 595);
        left: calc(var(--base) * -20);
    }

    .page-zh-hant .prologue-item01__texts02 {
        width: calc(var(--base) * 125);
    }

    .page-zh-hans .prologue-item01__texts02 {
        width: calc(var(--base) * 120);
    }

    .page-ko .prologue-item01__texts02 {
        width: calc(var(--base) * 120);
        left: calc(var(--base) * 15);
    }

    .page-en .prologue-item02__texts01 {
        width: calc(var(--base) * 870);
    }

    .page-zh-hant .prologue-item02__texts01 {
        width: calc(var(--base) * 595);
    }

    .page-zh-hans .prologue-item02__texts01 {
        width: calc(var(--base) * 595);
    }

    .page-ko .prologue-item02__texts01 {
        width: calc(var(--base) * 595);
    }

    .page-en .prologue-item02__texts02 {
        width: calc(var(--base) * 735);
        top: calc(var(--base) * 220);
        right: calc(var(--base) * -35);
    }

    .page-zh-hant .prologue-item02__texts02 {
        width: calc(var(--base) * 125);
    }

    .page-zh-hans .prologue-item02__texts02 {
        width: calc(var(--base) * 125);
    }

    .page-ko .prologue-item02__texts02 {
        width: calc(var(--base) * 125);
        top: calc(var(--base) * 70);
    }

    .page-en .prologue-item02__texts03 {
        width: calc(var(--base) * 412);
    }

    .page-zh-hant .prologue-item02__texts03 {
        width: calc(var(--base) * 120);
        top: calc(var(--base) * 400);
    }

    .page-zh-hans .prologue-item02__texts03 {
        width: calc(var(--base) * 125);
    }

    .page-ko .prologue-item02__texts03 {
        width: calc(var(--base) * 125);
        left: calc(var(--base) * 110);
    }

    .page-en .prologue-item__text03 img {
        width: calc(var(--base) * 954);
    }

    .page-zh-hant .prologue-item__text03 img {
        width: calc(var(--base) * 856);
    }

    .page-zh-hans .prologue-item__text03 img {
        width: calc(var(--base) * 856);
    }

    .page-ko .prologue-item__text03 img {
        width: calc(var(--base) * 820);
    }
}

/* SP */
@media screen and (max-width: 767px) {
    .prologue {
        padding: 0 4rem;
        overflow: hidden;
    }

    .prologue-inner {
        padding-bottom: 35.5rem;
    }

    .prologue-title {
        width: 92.8rem;
        margin: 0 auto 1rem auto;
    }

    .prologue-item01 {
        padding-top: 21rem;
    }

    .prologue-item__movie01 {
        width: 60rem;
        margin: 0 0 12rem 3rem;
    }

    .prologue-item__movie02 {
        width: 48rem;
        margin: 0 0 12rem 28rem;
    }

    .prologue-item__movie03 {
        width: 100%;
        margin-bottom: 9rem;
    }

    .prologue-item__movie04 {
        width: 49rem;
        margin: 0 0 4rem 3rem;
    }

    .prologue-item__movie05 {
        width: 60rem;
        margin: 0 0 13rem 24rem;
    }

    .prologue-item01__texts01 {
        width: 16rem;
        top: 0;
        right: 8rem;
    }

    .prologue-item01__texts02 {
        width: 16rem;
        top: 61rem;
        left: 10rem;
    }

    .prologue-item02__texts01 {
        width: 51rem;
        margin: 0 auto 10rem auto;
    }

    .prologue-item02__texts02 {
        width: 13rem;
        top: 10rem;
        right: 6rem;
    }

    .prologue-item02__texts03 {
        width: 13rem;
        top: 49rem;
    }

    .prologue-item__text03 {
        background-size: 130% auto;
        margin: 0 -4rem;
    }

    .prologue-item__text03 img {
        width: 64rem;
        margin: 0 auto;
    }

    .page-en .prologue-item01__texts01 {
        width: 100%;
        right: 0;
        laft: 0;
    }

    .page-zh-hant .prologue-item01__texts01 {
        width: 17rem;
    }

    .page-zh-hans .prologue-item01__texts01 {
        width: 9rem;
    }

    .page-ko .prologue-item01__texts01 {
        width: 9rem;
    }

    .page-en .prologue-item01__texts02 {
        width: 65rem;
        top: 51rem;
        left: 0;
    }

    .page-zh-hant .prologue-item01__texts02 {
        width: 18rem;
        left: 5rem;
    }

    .page-zh-hans .prologue-item01__texts02 {
        width: 18rem;
        left: 5rem;
    }

    .page-ko .prologue-item01__texts02 {
        width: 18rem;
        left: 5rem;
    }

    .page-en .prologue-item02__texts01 {
        width: 100%;
    }

    .page-zh-hant .prologue-item02__texts01 {
        width: 80rem;
    }

    .page-zh-hans .prologue-item02__texts01 {
        width: 80rem;
    }

    .page-ko .prologue-item02__texts01 {
        width: 80rem;
    }

    .page-en .prologue-item02__texts02 {
        width: 100%;
        top: 17rem;
        left: 0;
    }

    .page-zh-hant .prologue-item02__texts02 {
        width: 18rem;
        top: 14rem;
    }

    .page-zh-hans .prologue-item02__texts02 {
        width: 18rem;
        top: 14rem;
    }

    .page-ko .prologue-item02__texts02 {
        width: 18rem;
        top: 15rem;
    }

    .page-en .prologue-item02__texts03 {
        width: 52rem;
        top: 51rem;
        left: 0;
    }

    .page-zh-hant .prologue-item02__texts03 {
        width: 18rem;
        top: 41rem;
    }

    .page-zh-hans .prologue-item02__texts03 {
        width: 18rem;
        top: 41rem;
    }

    .page-ko .prologue-item02__texts03 {
        width: 18rem;
    }

    .page-en .prologue-item__text03 img {
        width: 93rem;
    }

    .page-zh-hant .prologue-item__text03 img {
        width: 80rem;
    }

    .page-zh-hans .prologue-item__text03 img {
        width: 80rem;
    }

    .page-ko .prologue-item__text03 img {
        width: 80rem;
    }

}

/* WORLD
--------------------------------------------------*/
.world {
    position: relative;
    z-index: 1;
}

.world img {
    width: 100%;
}

.world-item {
    background-position: center top;
    background-repeat: no-repeat;
}

.world-item__title02 {
    color: #e6d9a9;
    font-weight: bold;
    position: relative;
}

.world-item__title02:after {
    content: "";
    background: url("../images/world-title-bg.webp") left bottom no-repeat;
    display: block;
    position: absolute;
    bottom: 0;
}

.world-item__text {
    color: #fff;
    line-height: 2;
    font-weight: 500;
}

.page-zh-hant .world-item__text,
.page-zh-hans .world-item__text,
.page-zh-ko .world-item__text {
    font-weight: 400;
}

.world-item__movie img {
    border: 1px #fff11b solid;
}

/* PC */
@media print,
only screen and (min-width: 768px) {
    .world-item.-now {
        background-image: url("../images/world-bg01.jpg");
    }

    .world-item.-future {
        background-image: url("../images/world-bg02.jpg");
    }

    .world-item.-past {
        background-image: url("../images/world-bg03.jpg");
    }

    .world-item {
        height: 90rem;
        background-size: cover;
        padding: 0 8.5rem;
        box-sizing: border-box;
        display: flex;
        align-items: center;
    }

    .world-item__inner {
        width: 100%;
        max-width: 128.4rem;
        display: flex;
        justify-content: space-between;
        margin: 0 auto;
    }

    .world-item__texts {
        width: 36.7%;
        order: 1;
    }

    .world-item__movie {
        width: 54.3%;
        order: 2;
    }

    .world-item__title01 {
        max-width: 34.7rem;
        margin-bottom: 6.8rem;
    }

    .world-item__title02 {
        font-size: 3.2rem;
        padding-bottom: 1.8rem;
        margin-bottom: 2.5rem;
    }

    .world-item__title02:after {
        background-size: 100% auto;
        width: calc(100% + 18.5rem);
        aspect-ratio: 66 / 3.35;
        left: -8rem;
    }

    .world-item__text {
        font-size: 1.8rem;
    }
}

/* SP */
@media screen and (max-width: 767px) {
    .world-item {
        position: relative;
    }

    .world-item__inner {
        height: fit-content;
        position: absolute;
        top: 0;
        bottom: 0;
        left: 7rem;
        right: 7rem;
        margin: auto 0;
    }

    .world-movies {
        position: relative;
        padding: 0 7rem;
        box-sizing: border-box;
    }

    .world-item__movie {
        width: 100%;
        margin: 0 auto 3rem auto;
        display: block;
    }

    .world-item__movie.-now {
        margin-top: 0;
    }

    .world-item.-now {
        background-image: url("../images/world-bg01-sp.jpg");
    }

    .world-item.-future {
        background-image: url("../images/world-bg02-sp.jpg");
    }

    .world-item.-past {
        background-image: url("../images/world-bg03-sp.jpg");
    }

    .world-item {
        height: 127rem;
        background-size: cover;
        padding: 29rem 7rem 0 7rem;
        box-sizing: border-box;
    }

    .world-item__title01 {
        max-width: 43.5rem;
        position: absolute;
        top: -13rem;
        left: 0;
        right: 0;
        margin: 0 auto;
    }

    .world-item__title02 {
        font-size: 3.2rem;
        padding: 0 0 2rem 5rem;
        margin-bottom: 2.5rem;
    }

    .world-item__title02:after {
        background-size: 70% auto;
        width: calc(100% + 8rem);
        aspect-ratio: 66 / 3.35;
        left: -3.3rem;
    }

    .world-item__text {
        font-size: 3rem;
        margin-left: 3rem;
    }
}

/* CHARACTER
--------------------------------------------------*/
.character img {
    width: 100%;
}

.character-main {
    text-align: center;
}

.character-image {
    position: relative;
}

.character-image img {
    position: relative;
}

.character-image:before {
    /*
  content: "";
  display: block;
  position: absolute;
*/
}

.character-text02 {
    margin: 0 auto;
}

/* PC */
@media print,
only screen and (min-width: 768px) {
    .character {
        background: url("../images/bg.jpg") center top no-repeat;
        background-attachment: fixed;
        background-size: cover;
        padding: 15rem 3rem 19rem 3rem;
        overflow: hidden;
    }

    .character-inner {
        position: relative;
    }

    .character-main {
        /*    --base:0.1rem;  */
    }

    .character-title {
        width: 38.25%;
        max-width: calc(var(--base) * 612);
        margin: 0 auto 3.5rem auto;
    }

    .character-image {
        max-width: calc(var(--base) * 1635);
        margin: 0 auto calc(var(--base) * 130) auto;
    }

    .character-image:before {
        /*
    background: url("../images/character-bg.webp") center center no-repeat;
    background-size: 100% auto;
    max-width: calc( var(--base) * 1408 );
    aspect-ratio: 377 / 75;
    inset:0;
    margin: auto auto;
*/
    }

    .character-texts {
        width: 60.375%;
        max-width: 96.6rem;
        position: absolute;
        top: 33.2vw;
        left: 0;
        right: 0;
        margin: 0 auto;
        text-align: center;
        z-index: 10;
    }

    .character-text01 {
        width: 86%;
        margin: 0 auto;
    }

    .zh-hant .character-text01,
    .zh-hans .character-text01 {
        width: 70%;
    }

    .character-text02 {
        width: 100%;
        margin: 0 auto;
    }
}

/* SP */
@media screen and (max-width: 767px) {
    .character {
        background: url("../images/bg-sp.jpg") center top repeat-y;
        background-attachment: fixed;
        background-size: cover;
        padding: 15.5rem 0 12.5rem 0;
    }

    .character-title {
        width: 76.5rem;
        margin: 0 auto 7.8rem auto;
    }

    .character-image {
        width: 100%;
    }

    .character-image:before {
        /*
    background: url("../images/character-bg.webp") center center no-repeat;
    background-size: 78rem auto;
    top: 7rem;
    left: 0;
    right: 0;
    margin: 0 auto;
*/
    }

    .character-texts {
        margin: 4rem auto 0 auto;
    }

    .character-text01 {
        width: 88.1rem;
        margin: 0 auto -2.3rem auto;
    }

    .character-text02 {
        width: 65.3rem;
        margin: 0 auto -2rem auto;
    }

    .character-text03 {
        width: 40rem;
        margin: 0 auto;
    }
}

/* --CHARACTER　スライド --*/
.character-items .slick-list {
    overflow: visible;
}

.character-items {
    position: relative;
    visibility: hidden;
}

.character-items.slick-initialized {
    visibility: visible;
}

.character-item {
    position: relative;
    box-sizing: border-box;
}

.character-item__bg {
    position: absolute;
    inset: 0;
}

.character-item__texts {
    position: relative;
}

.character-item__text {
    position: relative;
    z-index: 5;
    text-shadow: 0 0 0.5rem rgba(255, 255, 255, 1), 0 0 0.5rem rgba(255, 255, 255, 1);
}

.character-item__image {
    position: absolute;
}

.character-item__title {
    background: url("../images/character-line.webp") left bottom no-repeat;
    background-size: 100% auto;
    position: relative;
    letter-spacing: -.1em;
    display: flex;
    align-items: center;
}

.character-item__name {
    color: #7d6f38;
    font-weight: bold;
}

.character-item__cvVoice {
    display: flex;
}

.character-item__cv {
    color: #7d6f38;
    position: relative;
    z-index: 3;
    text-shadow: 0 0 0.5rem rgba(255, 255, 255, 1), 0 0 0.5rem rgba(255, 255, 255, 1);
}

.page-en .character-item__name {
    letter-spacing: -.03em;
}

.page-en .character-item__cv {
    letter-spacing: -.01em;
}

.character-item__cv span {
    color: #d0bb6d;
    vertical-align: middle;
}

.character-item__voice {
    background: url("../images/character-voice-bg.webp") center center no-repeat;
    background-size: 100% auto;
    color: #fff;
    letter-spacing: .03em;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    position: relative;
    z-index: 50;
}

.character-item__voice:before {
    content: "";
    background: url("../images/icon-voice.webp") center center no-repeat;
    background-size: 100% auto;
    display: inline-block;
}

.character-item__icon {
    position: absolute;
}

.character .slick-prev {
    background-image: url("../images/character-arrow-on.webp");
}

.character .slick-next {
    background-image: url("../images/character-arrow-on.webp");
    transform: rotate(180deg);
}

.character .slick-arrow {
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 100% auto;
    text-indent: -9999px;
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto 0;
    z-index: 10;
    cursor: pointer;
}

.character-switch__item {
    position: relative;
}

.character-switch__item>div {
    height: 100%;
    position: absolute;
    inset: 0;
    transition: opacity .3s ease;
}

.character-switch__on {
    opacity: 0;
}

.slick-current .character-switch__on {
    opacity: 1;
}

.character-item__movie {
    position: relative;
    z-index: 5;
}

.character-item__movie img {
    border: 1px #ccbd84 solid;
}

/* PC */
@media print,
only screen and (min-width: 768px) {
    .character-slide {
        max-width: 135.4rem;
        margin: 0 auto;
        ---base: calc(100vw / 1680);
        --base: min(0.1rem, calc((100vw - 6rem) / 1254));
    }

    .character-switch {
        padding: 0 calc(var(--base) * 130);
        margin: 0 auto calc(var(--base) * 50) auto;
        visibility: hidden;
    }

    .character-switch.slick-initialized {
        visibility: visible;
    }

    .character-switch__item {
        width: calc(var(--base) * 120) !important;
        height: calc(var(--base) * 135) !important;
        margin: 0 calc(var(--base) * 9);
        cursor: pointer;
    }

    .character-item {
        width: 100%;
        aspect-ratio: 2564 / 1174;
        padding-left: calc(var(--base) * 160);
        margin: 0 calc(var(--base) * 34);
        box-sizing: border-box;
        display: flex;
    }

    .character-item__texts {
        width: calc(var(--base) * 450);
        height: 100%;
        display: flex;
        justify-content: center;
        flex-direction: column;
        margin-top: calc(var(--base) * -5);
    }

    .character-item__title {
        margin: 0 calc(var(--base) * -90) calc(var(--base) * 16) 0;
        gap: 0 calc(var(--base) * 18);
        padding: 0 0 calc(var(--base) * 2) calc(var(--base) * 107);
    }

    .character-item__name {
        font-size: calc(var(--base) * 36);
    }

    .character-item__cvVoice {
        gap: 0 2.2rem;
    }

    .character-item__cv {
        font-size: calc(var(--base) * 18);
    }

    .character-item__cv span {
        font-size: calc(var(--base) * 14);
        margin-right: calc(var(--base) * 8);
    }

    .character-item__voice {
        width: calc(var(--base) * 103);
        font-size: calc(var(--base) * 14);
    }

    .character-item__voice:before {
        width: calc(var(--base) * 22);
        height: calc(var(--base) * 14);
        margin-right: calc(var(--base) * 8);
    }

    .character-item.-aldo .character-item__icon {
        width: calc(var(--base) * 145);
        top: calc(var(--base) * -5);
        left: calc(var(--base) * 0);
    }

    .character-item.-aldo .character-item__image {
        width: calc(var(--base) * 679.5);
        top: calc(var(--base) * -12);
        right: calc(var(--base) * 82);
    }

    .character-item.-feinne .character-item__icon {
        width: calc(var(--base) * 65);
        top: calc(var(--base) * -10);
        left: 0;
    }

    .character-item.-feinne .character-item__image {
        width: calc(var(--base) * 590);
        top: calc(var(--base) * 24);
        right: calc(var(--base) * 150);
    }

    .character-item.-cyrus .character-item__icon {
        width: calc(var(--base) * 162);
        top: calc(var(--base) * 15);
        left: calc(var(--base) * -61);
    }

    .character-item.-cyrus .character-item__image {
        width: calc(var(--base) * 660);
        top: calc(var(--base) * 50);
        right: calc(var(--base) * 57);
    }

    .character-item.-amy .character-item__icon {
        width: calc(var(--base) * 88);
        top: calc(var(--base) * 5);
        left: 0;
    }

    .character-item.-amy .character-item__image {
        width: calc(var(--base) * 580);
        top: calc(var(--base) * 10);
        right: calc(var(--base) * 120);
    }

    .character-item.-riica .character-item__icon {
        width: calc(var(--base) * 170);
        top: 0;
        left: 0;
    }

    .character-item.-riica .character-item__image {
        width: calc(var(--base) * 725);
        top: 0;
        right: calc(var(--base) * 20);
    }

    .character-item__text {
        font-size: calc(var(--base) * 16);
        line-height: 1.7;
        padding-left: calc(var(--base) * 107);
        margin-bottom: calc(var(--base) * 25);
        min-height: calc(var(--base) * 48);
    }

    .character-item.-riica .character-item__text {
        padding-left: calc(var(--base) * 178);
    }

    .character-item__movie {
        width: 100%;
        margin-left: calc(var(--base) * 15);
    }

    .character .slick-prev {
        left: calc(var(--base) * 50);
    }

    .character .slick-next {
        transform: rotate(180deg);
        right: calc(var(--base) * 50);
    }

    .character-items .slick-prev {
        left: calc(var(--base) * 65);
    }

    .character-items .slick-next {
        right: calc(var(--base) * 65);
    }

    .character .slick-arrow {
        width: calc(var(--base) * 64);
        height: calc(var(--base) * 35.5);
    }
}

/* SP */
@media screen and (max-width: 767px) {
    .character {
        overflow: hidden;
    }

    .character-switch {
        padding: 0 9.5rem;
        margin-bottom: 8.5rem;
        visibility: hidden;
    }

    .character-switch.slick-initialized {
        visibility: visible;
    }

    .character-switch__item {
        width: 18rem;
        height: 20rem !important;
        margin: 0 1rem;
    }

    .character-items {
        margin: 0 4rem;
    }

    .character-item {
        width: 100%;
        aspect-ratio: 445 / 808;
        aspect-ratio: 891 / 1467;
        padding: 69rem 7rem 8rem 6.5rem;
        box-sizing: border-box;
        display: flex !important;
        flex-direction: column;
        justify-content: flex-end;
    }

    .character-item__texts {
        position: relative;
        z-index: 10;
    }

    .character-item__texts:after {
        content: "";
        height: 50rem;
        background-color: #fff;
        position: absolute;
        top: -10rem;
        left: -2.5rem;
        right: -3rem;
        display: block;
        filter: blur(10rem);
    }

    .character-item__title {
        margin: 0 -7rem 2.3rem 0;
        padding: 0 0 0.5rem 15.5rem;
        position: relative;
        z-index: 10;
        gap: 0 1.5rem;
    }

    .character-item__texts:after {
        content: "";
        background-color: #fff;
    }

    .character-item__name {
        font-size: 6.3rem;
    }

    .character-item__cvVoice {
        gap: 0 2rem;
    }

    .character-item__cv {
        font-size: 3rem;
    }

    .character-item__cv span {
        font-size: 2.2rem;
        margin-right: 0.8rem;
    }

    .character-item__voice {
        width: 15.8rem;
        height: 3.9rem;
        font-size: 2.3rem;
    }

    .character-item__voice:before {
        width: 3rem;
        height: 2rem;
        margin-right: 1rem;
    }

    .character-item.-aldo .character-item__icon {
        width: 22rem;
        top: 0;
        left: 0;
    }

    .character-item.-aldo .character-item__image {
        width: 98rem;
        top: -1.5rem;
        right: -3.5rem;
    }

    .character-item.-feinne .character-item__icon {
        width: 11.2rem;
        top: -2rem;
        left: 0;
    }

    .character-item.-feinne .character-item__image {
        width: 81rem;
        top: 0;
        left: -1rem;
    }

    .character-item.-cyrus .character-item__icon {
        width: 27rem;
        top: -2.5rem;
        left: -12rem;
    }

    .character-item.-cyrus .character-item__image {
        width: 92rem;
        top: 7rem;
        left: -3rem;
    }

    .character-item.-amy .character-item__icon {
        width: 13rem;
        top: 2rem;
        left: 0;
    }

    .character-item.-amy .character-item__image {
        width: 83rem;
        top: -4rem;
        left: -1rem;
    }

    .character-item.-riica .character-item__icon {
        width: 26.4rem;
        top: 0;
        left: -2rem;
    }

    .character-item.-riica .character-item__image {
        width: auto;
        top: -3.5rem;
        right: -7rem;
        left: -6rem;
    }

    .character-item__text {
        font-size: 3rem;
        line-height: 1.85;
        margin: 0 0 6.5rem 15.5rem;
        position: relative;
        z-index: 10;
    }

    .character-item.-riica .character-item__text {
        margin-left: 27rem;
    }

    .character-item__movie {
        width: 100%;
    }

    .character .slick-prev {
        left: 1rem;
    }

    .character .slick-next {
        right: 1rem;
    }

    .character-items .slick-arrow {
        top: 33rem;
        bottom: auto;
        margin: 0;
    }

    .character-items .slick-prev {
        left: -3.5rem;
    }

    .character-items .slick-next {
        right: -3rem;
    }

    .character .slick-arrow {
        width: 9.7rem;
        height: 5.3rem;
    }
}

/* SYSTEM
--------------------------------------------------*/
.system {
    position: relative;
}

.system:after {
    height: 100%;
    background: url("../images/system-bg01.webp") center top no-repeat;
    background-attachment: fixed;
    background-size: cover;
}

.system img {
    width: 100%;
}

.system:after {
    content: "";
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    display: block;
}

.system-inner {
    position: relative;
    z-index: 10;
}

.system-item {
    position: relative;
}

.system-item:last-child {
    margin-bottom: 0;
}

.system-item__movie {
    z-index: 5;
    border: 1px #d0bb6d solid;
}

.system-item__movie:after {
    content: "";
    background: url("../images/system-movie-line.webp") center center no-repeat;
    background-size: 100% auto;
    position: absolute;
    z-index: 5;
}

.system-item__texts {
    position: relative;
}

.system-item__texts:before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    display: block;
}

.system-item__textsIn {
    box-sizing: border-box;
}

.system-item__title {
    font-weight: bold;
    box-sizing: border-box;
    position: relative;
    z-index: 3;
}

.system-item__title:after {
    content: "";
    background: url("../images/system-title-bg.webp") left center repeat-y;
    background-size: 100% auto;
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: -1;
}

.system-item__text {
    position: relative;
    text-shadow: 0 0 1.5rem rgba(255, 255, 255, 0.5), 0 0 1.5rem rgba(255, 255, 255, 0.5), 0 0 1.5rem rgba(255, 255, 255, 0.5), 0 0 1.5rem rgba(255, 255, 255, 0.5), 0 0 1.5rem rgba(255, 255, 255, 0.5), 0 0 1.5rem rgba(255, 255, 255, 0.5), 0 0 1.5rem rgba(255, 255, 255, 0.5), 0 0 1.5rem rgba(255, 255, 255, 0.5);
}

/* PC */
@media print,
only screen and (min-width: 768px) {
    .system {
        padding: 15rem 3rem;
    }

    .system-title {
        width: 35.9rem;
        margin: 0 auto 27.8rem auto;
    }

    .system-inner {
        max-width: 118.4rem;
        margin: 0 auto;
    }

    .system-item {
        margin-bottom: 15.5rem;
    }

    .system-item__movie {
        width: 59.12%;
        position: absolute;
        bottom: 4rem;
        right: 0;
    }

    .system-item__movie:after {
        inset: 0.5rem;
    }

    .system-item__texts {
        width: 54.06%;
        background-image: url("../images/system-bg-top.webp"), url("../images/system-bg-bottom.webp");
        background-size: 100% 3rem;
        background-position: center top, center bottom;
        background-repeat: no-repeat, no-repeat;
    }

    .system-item__texts:before {
        background: url("../images/system-bg.webp") center top repeat-y;
        background-size: 100% auto;
        top: 3rem;
        bottom: 3rem;
    }

    .system-item__textsIn {
        min-height: 34rem;
        padding: 3.6rem 0 4.3rem 1rem;
    }

    .system-item:nth-child(even) .system-item__movie {
        right: auto;
        left: 0;
    }

    .system-item:nth-child(even) .system-item__texts {
        margin-left: auto;
    }

    .system-item__title {
        width: 75%;
        font-size: 3.2rem;
        line-height: 1.4;
        padding: 0.2rem 3% 0.2rem 6.8%;
        margin-bottom: 3.2rem;
    }

    .system-item__title:after {
        width: 85%;
    }

    .system-item__text {
        width: 80%;
        font-size: 1.8rem;
        line-height: 2;
        padding: 0 13% 0 6.8%;
        position: relative;
    }

    .system-item:nth-child(even) .system-item__title {
        margin: 0 0 3.2rem 23%;
    }

    .system-item:nth-child(even) .system-item__text {
        padding: 0 6.8% 0 10.7%;
        margin-left: auto;
    }
}

@media (min-width: 768px) and (max-width: 1200px) {
    .system-item__movie {
        top: -4rem;
        bottom: auto;
    }
}


/* SP */
@media screen and (max-width: 767px) {
    .system {
        padding: 15rem 6.8rem;
    }

    .system:after {
        height: 100%;
    }

    .system-title {
        width: 44.8rem;
        margin: 0 auto 10rem auto;
    }

    .system-item {
        margin-bottom: 5rem;
    }

    .system-item__movie {
        position: relative;
        margin: 0 3.8rem;
    }

    .system-item__movie:after {
        inset: 0.4rem;
    }

    .system-item__texts {
        background-image: url("../images/system-bg-top-sp.webp"), url("../images/system-bg-bottom-sp.webp");
        background-size: 100% 3.8rem;
        background-position: center top, center bottom;
        background-repeat: no-repeat, no-repeat;
        margin-top: -5rem;
    }

    .system-item__texts:before {
        background: url("../images/system-bg-sp.webp") center top repeat-y;
        background-size: 100% auto;
        top: 3.8rem;
        bottom: 3.8rem;
    }

    .system-item__textsIn {
        padding: 8.2rem 6.3rem 5.5rem 6.3rem;
    }

    .system-item__title {
        font-size: 4.6rem;
        line-height: 1;
        padding: 0.5rem 0 0.7rem 0;
        margin: 0 -4.8rem 3.2rem -4.8rem;
        position: relative;
        text-align: center;
    }

    .system-item__title:after {
        background: url("../images/system-title-bg-sp.webp") center top repeat-y;
        background-size: 100% auto;
        inset: 0;
    }

    .system-item__text {
        font-size: 3rem;
        line-height: 2;
        position: relative;
    }
}

/* CREATOR
--------------------------------------------------*/
.creator-item {
    display: flex;
    justify-content: space-between;
}

.creator-item__texts {
    color: #fff;
    letter-spacing: 0;
}

.creator-item__title01 {
    font-weight: bold;
    line-height: 1.3;
    display: block;
}

.creator-item__title02 {
    color: #fff11a;
    font-weight: 500;
    letter-spacing: .22em;
    display: block;
}

.creator-item__title03 {
    font-weight: bold;
    display: block;
}

.creator-item__text01 {
    font-weight: bold;
}

/* PC */
@media print,
only screen and (min-width: 768px) {
    .creator {
        background: url("../images/creator-bg.jpg") center top no-repeat;
        background-size: cover;
        padding: 16rem 3rem 15rem 3rem;
    }

    .creator-inner {
        max-width: 128.4rem;
        margin: 0 auto;
    }

    .creator-title {
        max-width: 46.2rem;
        margin: 0 auto 12.5rem auto;
    }

    .creator-items {
        display: flex;
        justify-content: space-between;
        gap: 0 9rem;
    }

    .creator-item {
        width: calc(50% - 4.5rem);
        position: relative;
    }

    .creator-item:first-child:before {
        content: "";
        width: 1px;
        background-color: #696969;
        position: absolute;
        right: -4.5rem;
        top: 0;
        bottom: 0;
        display: block;
    }

    .creator-item__image {
        width: 33.3%;
    }

    .creator-item__texts {
        width: 60.8%;
    }

    .creator-item__title {
        margin-bottom: 1.4rem;
    }

    .creator-item__title01 {
        font-size: 1.8rem;
    }

    .creator-item__title02 {
        font-size: 4.2rem;
    }

    .creator-item__title03 {
        font-size: 1.8rem;
        margin-top: 0.3rem;
    }

    .creator-item__text01 {
        font-size: 1.8rem;
        margin-bottom: 0.5rem;
    }

    .creator-item__text02 {
        font-size: 1.8rem;
        line-height: 1.44;
    }
}

/* SP */
@media screen and (max-width: 767px) {
    .creator {
        background: url("../images/creator-bg-sp.jpg") center top no-repeat;
        background-size: cover;
        padding: 16rem 6.8rem 15rem 6.8rem;
    }

    .creator-title {
        max-width: 57.7rem;
        margin: 0 auto 10rem auto;
    }

    .creator-item {
        margin-bottom: 8rem;
    }

    .creator-item:last-child {
        margin-bottom: 0;
    }

    .creator-item__image {
        width: 30rem;
    }

    .creator-item__texts {
        width: 47.5rem;
    }

    .creator-item__title {
        margin-bottom: 3rem;
    }

    .creator-item__title01 {
        font-size: 2.7rem;
    }

    .creator-item__title02 {
        font-size: 6.3rem;
    }

    .creator-item__title03 {
        font-size: 2.7rem;
        margin-top: 0.3rem;
    }

    .creator-item__text01 {
        font-size: 2.7rem;
        margin-bottom: 0.7rem;
    }

    .creator-item__text02 {
        font-size: 3rem;
        line-height: 1.44;
    }
}

/* PRODUCT
--------------------------------------------------*/
.platform img {
    width: 100%;
}

.platform-link {
    display: flex;
    justify-content: center;
    position: relative;
    z-index: 10;
}

.pratform-link__text {
    font-weight: 600;
    text-align: center;
}

/* PC */
@media print,
only screen and (min-width: 768px) {
    .platform {
        background: url("../images/bg.jpg") center top no-repeat;
        background-attachment: fixed;
        background-size: cover;
        padding: 15rem 3rem 19rem 3rem;
    }

    /*
  .platform:before{
    background: url("../images/product-bg.jpg") top center no-repeat;
    background-size: 100% auto;
    aspect-ratio: 1680 / 1361;
  }
*/
    .platform-title {
        max-width: 49.2rem;
        margin: 0 auto 9.5rem auto;
    }

    .platform-link {
        gap: 0 5.5rem;
    }

    .platform-link__item:first-child {
        width: 21.3rem;
        margin-top: 0.7rem;
    }

    .platform-link__item:last-child {
        width: 32.9rem;
    }

    .platform-link__itemIn:hover {
        text-decoration: none;
    }

    .pratform-link__text {
        font-size: 1.8rem;
        margin-top: 1.5rem;
    }
}

/* SP */
@media screen and (max-width: 767px) {
    .platform {
        background: url("../images/bg-sp.jpg") center 102.6rem repeat-y;
        background-attachment: fixed;
        background-size: cover;
        padding: 8rem 3.7rem;
    }

    .platform:before {
        background: url("../images/productp-bg-sp.jpg") top center no-repeat;
        background-size: 100% auto;
        aspect-ratio: 480 / 513;
    }

    .platform-title {
        max-width: 65rem;
        margin: 0 auto 10rem auto;
    }

    .platform-link {
        gap: 0 2rem;
    }

    .platform-link__item:first-child {
        width: 34rem;
        margin-top: 0.7rem;
    }

    .platform-link__item:last-child {
        width: 52rem;
    }

    .pratform-link__text {
        font-size: 2.8rem;
        margin-top: 1.5rem;
    }
}

/* PRODUCT
--------------------------------------------------*/
.product img {
    width: 100%;
}

.product {
    position: relative;
}

.product:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    display: block;
}

.product-inner {
    position: relative;
}

.product-table__inner tr:first-child {
    background: linear-gradient(120deg, rgba(255, 255, 255, 1) 0%, rgba(196, 178, 102, 1) 100%);
}

.product-table__inner tr:nth-child(2) {
    background: linear-gradient(120deg, rgba(223, 210, 161, 1) 0%, rgba(255, 255, 255, 1) 100%);
}

.product-table__inner th,
.product-table__inner td {
    text-align: center;
    vertical-align: middle;
    letter-spacing: 0;
    border-left: 1px #fff solid;
    border-top: 1px #fff solid;
}

.product-table__inner th:first-child,
.product-table__inner td:first-child {
    border-left: none;
}

.product-table__inner tr:first-child th {
    border-top: none;
}

.product-table__inner th {
    width: 25%;
    font-weight: 500;
    line-height: 1.2;
}

.product-table__inner td:nth-child(odd) {
    background-color: #e6e6e6;
}

.product-table__inner td:nth-child(even) {
    background-color: #efefef;
}

.product-table__in {
    display: flex;
    align-items: stretch;
    justify-content: center;
}

.product-table__inIn {
    width: 50%;
}

.product-table__inIn:last-child {
    border-left: 1px #fff solid;
}

.product-switch01 {
    color: #fff;
    font-weight: bold;
    line-height: 1.2;
}

.product-switch01__item {
    background: url("../images/product-button-off.webp") 0 0 no-repeat;
    background-size: 100% auto;
    aspect-ratio: 299 / 79;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    cursor: pointer;
    position: relative;
}

.product-switch01__itemIn {
    position: relative;
}

.product-switch01__item:before,
.product-switch01__item.current:before {
    content: "";
    background: url("../images/product-button-on.webp") center center no-repeat;
    background-size: 100% auto;
    position: absolute;
    inset: 0;
    opacity: 0;
}

.product-switch02 {
    background: url("../images/product-gra.webp") center top repeat-y;
    background-size: 100% auto;
    color: #8a8a8a;
    font-weight: bold;
    display: flex;
}

.product-switch02__item {
    width: 50%;
    cursor: pointer;
    box-sizing: border-box;
    position: relative;
}

.product-switch02__item:first-child {
    text-align: right;
}

.product-switch02__item:first-child:before {
    content: "";
    width: 1px;
    background-color: #545454;
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto 0;
    display: block;
}

.product-image {
    position: relative;
    z-index: 10;
}

/* PC */
@media print,
only screen and (min-width: 768px) {
    .product {
        background: url("../images/product-bg.jpg") top center no-repeat;
        background-attachment: fixed;
        background-size: cover;
        padding: 15rem 3rem;
    }

    .product-image {
        margin-bottom: 5rem;
    }

    /*
  .product:before{
    background: url("../images/product-bg.jpg") top center no-repeat;
    background-size: 100% auto;
    aspect-ratio: 1680 / 1361;
  }
*/
    .product-inner {
        max-width: 107rem;
        margin: 0 auto;
    }

    .product-title {
        max-width: 45.4rem;
        margin: 0 auto 10rem auto;
    }

    .product-table__inner {
        max-width: 80rem;
        width: 100%;
        margin: 0 auto 10rem auto;
        border: 2px #c4b266 solid;
    }

    .product-table__inner tr:first-child {
        font-size: 1.8rem;
    }

    .product-table__inner tr:nth-child(2) {
        font-size: 1.4rem;
    }

    .product-table__inner th {
        padding: 0.9rem 0.5rem;
    }

    .product-table__inner td {
        font-size: 1.8rem;
        padding: 1.1rem 0.5rem;
    }

    .product-table__in {
        margin: -1rem -0.5rem;
    }

    .product-table__inIn {
        padding: 1rem 0.5rem;
    }

    .product-switch01 {
        width: 100%;
        max-width: 92rem;
        margin: 0 auto 4rem auto;
        display: flex;
        justify-content: center;
        gap: 0 1rem;
        font-size: 2rem;
    }

    .product-switch01__item {
        width: calc((100% / 3) - 0.6666rem);
        transition: color .3s ease;
    }

    .product-switch01__item:before,
    .product-switch01__item.current:before {
        transition: opacity .3s ease;
    }

    .product-switch01__item:hover:before,
    .product-switch01__item.current:before {
        opacity: 1;
    }

    .product-switch01__item:hover,
    .product-switch01__item.current {
        color: #000;
    }

    .product-switch02 {
        background: url("../images/product-gra.webp") center top repeat-y;
        background-size: 100% auto;
        font-size: 2.4rem;
        margin-bottom: 4.5rem;
    }

    .product-switch02__item {
        padding: 1.2rem 5rem;
        transition: color .3s ease;
    }

    .product-switch02__item:first-child:before {
        height: 3rem;
    }

    .product-switch02__item.current,
    .product-switch02__item:hover {
        color: #fff11a;
    }
}

/* SP */
@media screen and (max-width: 767px) {
    .product {
        background: url("../images/product-bg-sp.jpg") center top no-repeat;
        background-attachment: fixed;
        background-size: cover;
        padding: 8rem 3.7rem;
    }

    .product-image {
        margin-bottom: 5rem;
    }

    /*
  .product:before{
    background: url("../images/product-bg-sp.jpg") top center no-repeat;
    background-size: 100% auto;
    aspect-ratio: 480 / 513;
  }
*/
    .product-title {
        max-width: 56.7rem;
        margin: 0 auto 10rem auto;
    }

    .product-table {
        display: block;
        overflow-x: scroll;
        padding-bottom: 3rem;
        margin: 0 -3.7rem 10rem -3.7rem;
    }

    .product-table__inner {
        width: 120rem;
        border: 2px #c4b266 solid;
        display: table;
        margin: 0 3.7rem;
    }

    .product-table__inner tr:first-child {
        font-size: 3.2rem;
    }

    .product-table__inner tr:nth-child(2) {
        font-size: 2.4rem;
    }

    .product-table__inner th {
        padding: 1rem 0.5rem;
    }

    .product-table__inner td {
        font-size: 3.1rem;
        padding: 1.3rem 0.5rem;
    }

    .product-table__in {
        margin: -1rem -0.5rem;
    }

    .product-table__inIn {
        padding: 1rem 0.5rem;
    }

    .product-switch01 {
        width: 64.4rem;
        font-size: 3.6rem;
        margin: 0 auto 7.5rem auto;
    }

    .product-switch01__item {
        background: url("../images/product-button-off-sp.webp") 0 0 no-repeat;
        background-size: 100% auto;
        aspect-ratio: 650 / 119;
        margin-bottom: 2rem;
    }

    .product-switch01__item.current {
        color: #000;
    }

    .product-switch01__item.current:before {
        background: url("../images/product-button-on-sp.webp") center center no-repeat;
        background-size: 100% auto;
        opacity: 1;
    }

    .product-switch02 {
        background-color: #333;
        font-size: 4rem;
        margin: 0 -3.7rem 8rem -3.7rem;
    }

    .product-switch02__item {
        padding: 2.3rem 5.5rem;
    }

    .product-switch02__item:first-child:before {
        height: 4.5rem;
    }

    .product-switch02__item.current {
        color: #fff11a;
    }
}

/*-- PRODUCT box --*/
.product-box {
    border: 1px #d9c88a solid;
    background-color: #fff;
    position: relative;
}

.product-box:before {
    content: "";
    border: 1px #d9c88a solid;
    position: absolute;
}

.product-box__inner {
    position: relative;
}

.product-title01 {
    color: #6f6027;
    font-weight: 600;
    text-align: center;
}

.product-price {
    font-weight: 600;
    letter-spacing: .125em;
}

.product-price span {
    color: #a99445;
    line-height: 1;
}

.product-button {
    aspect-ratio: 335 / 94;
}

.product-button a {
    position: relative;
    display: block;
}

.product-button a:before {
    content: "";
    background: url("../images/product-reserved-on.webp") center center no-repeat;
    background-size: 100% auto;
    position: absolute;
    inset: 0;
    display: block;
    opacity: 0;
}

.product-list {
    border: 1px #ababab solid;
    position: relative;
    font-family: var(--font-sans-serif);
    letter-spacing: 0;
}

.product-list:before,
.product-list:after {
    background-color: #f4f4f4;
    height: 1px;
    content: "";
    position: absolute;
    display: block;
}

.product-list:before {
    top: -2px;
    left: -1px;
    right: -1px;
}

.product-list:after {
    bottom: 0;
    left: 0;
    right: 0;
}

.product-list__item {
    position: relative;
}

.product-list__item:last-child {
    margin-bottom: 0;
}

.product-list__item:before {
    content: "・";
    position: absolute;
    top: 0;
    left: 0;
}

.product-title02 {
    background: url("../images/product-title-bg02.webp") center center no-repeat;
    background-size: 100% auto;
    color: #fff;
    font-family: var(--font-sans-serif);
    font-weight: bold;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
}

.product-item {
    font-family: var(--font-sans-serif);
}

.product-item__titleImage {
    background-color: #f0f0f0;
}

.product-item__title {
    border-bottom: 1px #ababab solid;
    font-weight: bold;
    text-align: center;
    letter-spacing: 0;
}

.product-item__buttonItem {
    background: #d5d5d5 url("../images/arrow.webp") right 1.9rem center no-repeat;
    background-size: 1rem auto;
    letter-spacing: 0;
    display: block;
    text-align: center;
}

.product-text {
    font-family: var(--font-sans-serif);
    letter-spacing: 0;
    line-height: 1.81;
}

/* PC */
@media print,
only screen and (min-width: 768px) {
    .product-box {
        padding: 3.5rem 11.5rem 6rem 11.5rem;
    }

    .product-box:before {
        top: 0.5rem;
        left: -0.6rem;
        bottom: 0.5rem;
        right: -0.6rem;
    }

    .product-title01 {
        background: url("../images/product-title-bg.webp") center top repeat-y;
        background-size: 100% auto;
        font-size: 3rem;
        padding: 0.8rem 0.5rem;
        margin: 0 -11.5rem 5rem -11.5rem;
    }

    .product-image {
        margin-bottom: 5rem;
    }

    .product-priceButton {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 4rem;
    }

    .product-price {
        width: 59%;
        font-size: 2.6rem;
        margin-top: -1.5rem;
    }

    .product-price span {
        font-size: 4.2rem;
    }

    .product-button {
        width: 39.28%;
    }

    .product-button a:before {
        transition: opacity .3s ease;
    }

    .product-button a:hover:before {
        opacity: 1;
    }

    .product-list {
        padding: 2.8rem 3.5rem 2.9rem 3.5rem;
        font-size: 1.8rem;
        margin-bottom: 7rem;
    }

    .product-list__item {
        padding-left: 0.5em;
        margin-bottom: 0.4rem;
    }

    .product-title02 {
        background: url("../images/product-title-bg02.webp") center center no-repeat;
        background-size: 100% auto;
        aspect-ratio: 535 / 29;
        font-size: 2rem;
        margin-bottom: 2rem;
    }

    .product-items {
        display: flex;
        justify-content: space-between;
        margin-bottom: 5.5rem;
    }

    .product-item {
        width: 48.81%;
    }

    .product-item__titleImage {
        padding: 1.3rem 1.5rem 4rem 1.5rem;
    }

    .product-item__title {
        font-size: 2rem;
        padding-bottom: 1.5rem;
        margin-bottom: 3rem;
    }

    .product-item__image {
        width: 98%;
        max-width: 30rem;
        margin: 0 auto;
    }

    .product-item__buttonItem {
        max-width: 36rem;
        width: 100%;
        background-size: 1rem auto;
        border-radius: 2rem;
        font-size: 1.8rem;
        opacity: 1;
        transition: opacity .3s ease;
        margin: 3rem auto 0 auto;
        padding: 0.7rem 3rem 0.7rem 1rem;
    }

    .product-item__buttonItem:hover {
        opacity: 0.8;
        text-decoration: none;
    }

    .product-text {
        font-size: 1.6rem;
        line-height: 1.81;
    }
}

@media (min-width: 768px) and (max-width: 1000px) {
    .product-box {
        padding: 3.5rem 4rem 6rem 4rem;
    }

    .product-item__buttonItem {
        font-size: 1.6rem;
    }
}

/* SP */
@media screen and (max-width: 767px) {
    .product-box {
        padding: 4.5rem 1.9rem 6rem 1.9rem;
        margin: 0 2rem;
    }

    .product-box:before {
        top: 0.6rem;
        left: -1rem;
        bottom: 0.6rem;
        right: -1rem;
    }

    .product-title01 {
        background: url("../images/product-title-bg-sp.webp") center top repeat-y;
        background-size: 100% auto;
        font-size: 4.5rem;
        padding: 0.8rem 0.5rem;
        margin: 0 -1.9rem 5rem -1.9rem;
    }

    .product-image {
        margin-bottom: 5rem;
    }

    .product-priceButton {
        margin-bottom: 10rem;
    }

    .product-price {
        font-size: 3.9rem;
        margin-bottom: 5rem;
    }

    .product-price span {
        font-size: 6.3rem;
    }

    .product-button {
        width: 62.5rem;
        margin: 0 auto;
    }

    .product-list {
        padding: 4rem 4rem 3.5rem 4rem;
        font-size: 2.7rem;
        margin: 0 2rem 11rem 2rem;
    }

    .product-list__item {
        padding-left: 0.5em;
        margin-bottom: 1rem;
    }

    .product-title02 {
        background: url("../images/product-title-bg02-sp.webp") center center no-repeat;
        background-size: 100% auto;
        aspect-ratio: 823 / 60;
        font-size: 3rem;
        margin-bottom: 3rem;
    }

    .product-items {
        margin-bottom: 5rem;
    }

    .product-item {
        margin-bottom: 3rem;
    }

    .product-item__titleImage {
        width: 61.5rem;
        padding: 1.3rem 2.5rem 6rem 2.5rem;
        margin: 0 auto;
    }

    .product-item__title {
        font-size: 3rem;
        padding-bottom: 1.5rem;
        margin-bottom: 5rem;
    }

    .product-item__image {
        width: 45rem;
        margin: 0 auto;
    }

    .product-item__buttonItem {
        width: 70rem;
        background-position: right 3.2rem center;
        background-size: 1.7rem auto;
        border-radius: 4rem;
        font-size: 3.5rem;
        margin: 5rem auto 7.5rem auto;
        padding: 1.2rem 3rem 1.2rem 1rem;
    }

    .product-text {
        font-size: 2.4rem;
        line-height: 1.81;
        margin: 0 2rem;
    }
}

/* SPEC
--------------------------------------------------*/
.spec img {
    width: 100%;
}

.spec-table {
    width: 100%;
}

.spec-table th,
.spec-table td {
    letter-spacing: 0;
    vertical-align: top;
}

.spec-table th {
    font-weight: bold;
}

.spec-comparison {
    height: 10rem;
    background-color: #7d7d7e;
}

.spec-comparison__table {
    width: 100%;
}

.spec-comparison__table th,
.spec-comparison__table td {}

/* PC */
@media print,
only screen and (min-width: 768px) {
    .spec {
        padding: calc(10.2rem + 10vw) 3rem 10rem 3rem;
        margin-top: -10vw;
        position: relative;
    }

    .spec:before {
        content: "";
        background: url("../images/spec-bg.webp") center top no-repeat;
        background-size: 100% auto;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        display: block;
        bottom: 0;
    }

    .spec:after {
        background: url("../images/spec-bg02.webp") center top repeat-y;
        background-size: 100% auto;
        content: "";
        position: absolute;
        top: 20vw;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: -1;
    }

    .spec-inner {
        max-width: 128.4rem;
        margin: 0 auto;
        position: relative;
        z-index: 5;
    }

    .spec-detail {
        max-width: 68rem;
        width: 61%;
        margin: 0 0 10rem auto;
    }

    .spec-title {
        max-width: 21.4rem;
        margin-bottom: 7rem;
    }

    .spec-table {
        margin-bottom: 5rem;
    }

    .spec-table th,
    .spec-table td {
        font-size: 1.8rem;
        padding: 1.4rem 0;
        line-height: 1.55;
    }

    .spec-table th {
        width: 9em;
    }

    .spec-table__note {
        font-size: 1.6rem;
    }

    .spec-copy {
        font-size: 1.8rem;
    }
}

/* SP */
@media screen and (max-width: 767px) {
    .spec {
        min-height: 275rem;
        background-image: url("../images/spec-bg-top-sp.jpg"), url("../images/spec-bg-bottom-sp.jpg"), url("../images/spec-bg-sp.jpg");
        background-position: center top, center bottom, center top;
        background-repeat: no-repeat, no-repeat, repeat-y;
        background-size: 100% auto, 100% auto, 100% auto;
        padding: 15rem 6.8rem 155rem 6.8rem;
        position: relative;
        box-sizing: border-box;
    }

    .spec-detail {
        margin-bottom: 5rem;
    }

    .spec-title {
        max-width: 21.5rem;
        margin: 0 auto 8rem auto;
    }

    .spec-table {
        margin-bottom: 5rem;
    }

    .spec-table th,
    .spec-table td {
        font-size: 2.95rem;
        padding: 2rem 0;
        line-height: 1.65;
    }

    .spec-table th {
        width: 8em;
    }

    .spec-copy {
        font-size: 2.7rem;
    }
}
