/* ==================================================== */
/* CSSカスタムプロパティ (変数) の定義 */
/* ==================================================== */
:root {
    /* 色の変数 (テーマに合わせた命名) */
    --color-text-base: #ffffff;
    /* ベースとなる文字色（白） */
    --color-text-light: #B3BFD2;
    /* 薄い文字色 */
    --color-text-dark: #0a0a0a;
    /* 濃い文字色 */
    --color-background-base: #241a49;
    /* 基本の背景色（紫） */
    --color-theme-primary: #1C2240;
    /* メインのテーマカラー（ネイビー系） */
    --color-theme-accent: #dccb63;
    /* アクセントカラー（金色） */
    --color-border: #EEEEEE;
    /* ボーダーや区切り線の色 */
    --color-highlight: #bba2ff;

    --color-mirror: #7E0044;
    --color-stasis: #908B87;
    --color-portal: #E96322;
    --color-doubt: #B52719;

    /* フォントの変数 */
    --font-family-base: "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, sans-serif;
    --font-family-mincho: "Hiragino Mincho ProN", "ヒラギノ明朝 ProN", "Hiragino Mincho Pro", "ヒラギノ明朝 Pro", serif;

    /* サイズの基準変数 */
    --size-base: 62.5%;
    --size-line-height: 1.6;
}


/* ==================================================== */
/* ベーススタイル (変数を使って記述) */
/* ==================================================== */
body {
    /* 変数から値を適用 */
    font-size: var(--size-base);
    line-height: var(--size-line-height);
    font-family: var(--font-family-base);
    color: var(--color-text-base);
    background-color: var(--color-text-dark);
    scroll-behavior: smooth;
}

html {
    scroll-behavior: smooth;
}

/* 見出し (テーマカラーを適用) */
h2 {
    font-size: clamp(1.8rem, 1.639rem + 0.72vw, 2rem);
    font-weight: bold;
    line-height: 1.3;
    margin: 50px 0;
    text-align: center;
}

h2 img {
    display: block;
    margin: auto;
}

h2,
h3,
h4,
h5 {
    font-family: var(--font-family-mincho);
    color: var(--color-theme-accent);
}

/* リンク (アクセントカラーを適用) */
a {
    color: var(--color-text-base);
    text-decoration: none;
    transition: color 0.3s;
}

a:hover {
    color: var(--color-border);
    text-decoration: none;
}

/* ==================================================== */
/* ユーティリティ*/
/* ==================================================== */
/*flexbox*/
.flex-container {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    max-width: 800px;
    margin: auto;
}

.flex-container img {
    width: 100%;
    height: auto;
}

.flex-container p {
    margin-top: 10px;
    font-size: 1.4rem;
}

.flex-2 {
    width: 50%;
}


@media screen and (max-width: 768px) {
    .flex-container {
        display: block;
    }

    .flex-2 {
        width: 100%;
        ;
    }
}


/*grid*/
.grid-2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.grid-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.grid-4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

@media (max-width: 768px) {

    .grid-3,
    .grid-4 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .grid-2 {
        /* grid-template-columns: 1fr;*/
        gap: 10px;
    }

    .grid-3,
    .grid-4 {
        grid-template-columns: 1fr;
    }
}

/*マージン*/
.mg_top {
    margin-top: 50px;
}

.mg_top-m {
    margin-top: 30px;
}

.mg_top-s {
    margin-top: 20px;
}

.mg_bottom {
    margin-bottom: 50px;
}

.mg_bottom-m {
    margin-bottom: 30px;
}

.mg_bottom-s {
    margin-bottom: 20px;
}

.txt-center {
    text-align: center;
}

.pc {
    display: block;
}

.sp {
    display: none;
}

@media screen and (max-width: 768px) {
    .pc {
        display: none;
    }

    .sp {
        display: block;
    }
}

/* ============================== */
/* ヘッダー */
/* ============================== */

.header-inner {
    display: flex;
    /* ロゴとハンバーガーボタンを両端に配置 */
    justify-content: space-between;
    align-items: center;
    margin: 0 auto;
}

.logo {
    max-width: 200px;
    padding: 10px 20px;
}

ul,
dl {
    list-style: none;
}

/* ==================================================== */
/* ハンバーガーボタン (固定・円形角配置) */
/* ==================================================== */
.circle-bg {
    position: fixed;
    width: 300px;
    height: 300px;
    top: -150px;
    right: -130px;
    z-index: 900;
}

/* ハンバーガーメニュー */
.hamburger {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 1000;
    background: none;
    border: none;
    cursor: pointer;
}

.hamburger .lines {
    position: relative;
    width: 40px;
    height: 24px;

}

.hamburger .line {
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: var(--color-theme-accent);
    transition: transform 0.3s ease, opacity 0.3s ease;
    transform-origin: center;
    border-radius: 10px;
}

/* 線の初期位置（3本を上下に配置） */
.line:nth-child(1) {
    top: 0;
}

.line:nth-child(2) {
    top: 11px;
}

/* 中央 */
.line:nth-child(3) {
    top: 22px;
}

/* アクティブ時：中央に重ねて回転 */
.hamburger.is-active .line:nth-child(1),
.hamburger.is-active .line:nth-child(3) {
    top: 11px;
}

.hamburger.is-active .line:nth-child(1) {
    transform: rotate(45deg);
}

.hamburger.is-active .line:nth-child(2) {
    opacity: 0;
}

.hamburger.is-active .line:nth-child(3) {
    transform: rotate(-45deg);
}

@media screen and (max-width: 480px) {
    .circle-bg {
        width: 250px;
        height: 250px;
        top: -130px;
        right: -120px;
    }

    .hamburger {
        top: 15px;
        right: 10px;
    }

    .hamburger .line {
        width: 30px;
    }
}

/* ============================== */
/* ナビゲーションメニューのスタイル (全サイズ共通) */
/* ============================== */

.main-nav {
    position: fixed;
    top: 0;
    /* 画面幅全体を使わず、PCでも見やすいように幅を設定 */
    right: -300px;
    /* 非表示状態: 画面外に隠す (メニュー幅に合わせて調整) */
    width: 300px;
    /* メニューの幅 (PCでもこの幅でスライドインする) */
    height: 100vh;
    background-color: rgba(24, 24, 24, 0.8);
    transition: right 0.3s;
    z-index: 99;
    padding-top: 80px;
}

/* メニューが開いた状態 */
.main-nav.is-open {
    right: 0;
}

.main-nav .menu {
    list-style: none;
    padding: 0;
    margin: 0;
}

.main-nav .menu li a {
    display: block;
    padding: 15px 20px;
    text-decoration: none;
    font-size: 1rem;
    color: var(--color-text-base);
}

/* サブメニューは非表示 */
.main-nav .submenu {
    display: none;
    flex-direction: column;
}

.main-nav .has-submenu.open>.submenu {
    display: flex;
}

.main-nav .submenu li a {
    padding: 12px 30px;
    font-size: 0.9rem;
}

.main-nav .menu li a:hover {
    background-color: rgba(240, 202, 255, 0.1);
}

.has-submenu>a {
    position: relative;
    padding-right: 40px;
}

.has-submenu>a::after {
    content: "＋";
    position: absolute;
    right: 40px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.9rem;
}


/* PC用 hover */
.main-nav .has-submenu:hover>.submenu {
    display: flex;
}

/* スマホ用 openクラス */
.main-nav .has-submenu.open>.submenu {
    display: flex;
}

/* デフォルトは + */
.has-submenu>a::after {
    content: "＋";
    margin-left: 8px;
    font-size: 0.9rem;
}

/* PC用 hover時は - */
@media (hover: hover) {
    .has-submenu:hover>a::after {
        content: "－";
    }
}

/* スマホ用：クリックで .open が付いたら - */
.has-submenu.open>a::after {
    content: "－";
}


/* ==================================================== */
/* セクションのスタイル */
/* ==================================================== */

section {
    font-size: 1rem;
}

.inner {
    max-width: 800px;
    width: 100%;
    margin: 0 auto;
    padding: 60px 20px;
}

.section-purple {
    background: linear-gradient(0deg, #0a0a0a96, transparent), url(../img/bk_purple.png);
    background-repeat: repeat;
}

.section-navy {
    background: linear-gradient(0deg, #0a0a0a96, transparent), url(../img/bk_navy.png);
    background-repeat: repeat;
}

/* ==================================================== */
/* MV */
/* ==================================================== */

.hero-card-section {
    position: relative;
    width: 100%;
    height: auto;
    min-height: 680px;
    background-color: var(--color-text-dark);
    background-image: url('../img/bk_kira.png');
    background-size: cover;
    overflow: hidden;
    background-position: bottom;
    z-index: 1;
}

.scrollable {
    position: relative;
    height: 400px;
    margin-top: 45px;
}



.scrollable img {
    max-width: 100%;
    height: auto;
}

.cardList {
    --base-deg: 0;
    width: 100%;
    height: 100%;
    position: relative;
    pointer-events: none;
    transform-style: preserve-3d;
    perspective: 1500px;
}

.imageCard {
    width: 300px;
    height: 500px;
    position: relative;
    --r: 500px;
    --z-offset: 1200px;
    --rotate-deg: calc(360/var(--card-count));
    left: calc(50% - 150px);
    list-style: none;
    position: fixed;
    top: 0;
    transform-style: preserve-3d;
}

.imageCard .face {
    backface-visibility: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    pointer-events: auto;
}

.imageCard .front {
    rotate: 0 1 0 calc((var(--base-deg) + (var(--index)*var(--rotate-deg)))*1deg);
}

.imageCard .back,
.imageCard .front {
    translate: calc(sin(calc((var(--base-deg) + (var(--index) * var(--rotate-deg))) * 1deg)) * var(--r)) 0 calc(cos(calc((var(--base-deg) + (var(--index) * var(--rotate-deg))) * 1deg)) * var(--r) - var(--z-offset));
}

.imageCard .back {
    rotate: 0 1 0 calc((var(--base-deg) + var(--index)*var(--rotate-deg) + 180)*1deg);
}

.imageCard.active .front {
    rotate: 0 1 0 calc((var(--base-deg) + var(--index)*var(--rotate-deg) + 179.9)*1deg);
}

.imageCard.active .back {
    rotate: 0 1 0 calc((var(--base-deg) + var(--index)*var(--rotate-deg) + 359.9)*1deg);
}

.scrollable:not(.scrolling) .face {
    --ease-out-quart: cubic-bezier(.25, 1, .5, 1);
    transition: rotate .6s var(--ease-out-quart);
}


@media screen and (max-width: 480px) {
    .hero-card-section {
        min-height: 600px;
    }

    .scrollable {
        margin-top: 50px;
    }

    .cardList {
        perspective: 1000px;
    }

    .imageCard {
        height: 450px;
        --r: 350px;
        position: absolute;
    }
}

/* ------------------------------------ */
/* キャッチコピー */
/* ------------------------------------ */
.mv-center-copy {
    position: absolute;
    z-index: 20;
    /* スライダーより手前に表示 */
    text-align: center;
    /* テキストの下にあるスライダーを操作できるようにする */
    width: 100%;
    padding: 0 20px;
    bottom: 2%;
    left: 50%;
    transform: translate(-50%, -10%);
}

.mv-top-copy {
    position: absolute;
    z-index: 10;
    /* スライダーより手前に表示 */
    text-align: center;
    top: 20%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.main-copy {
    color: var(--color-text-base);
    font-size: clamp(2rem, 1.648rem + 1.5vw, 3rem);
    /* PCでのサイズ */
    font-weight: 900;
    margin-bottom: 10px;
    line-height: 1.2;
    font-family: var(--font-family-mincho);
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.8), 0 0 5px rgba(0, 0, 0, 0.5);
}

.sub-copy {
    font-size: clamp(1rem, 0.824rem + 0.75vw, 1.5rem);
    font-family: var(--font-family-mincho);
    text-shadow: 0 0 10px rgba(0, 0, 0, 0.8), 0 0 5px rgba(0, 0, 0, 0.5);
    font-weight: bold;
    letter-spacing: 0.1em;
}

.mv-top-copy,
.mv-center-copy,
.mv-bottom-copy {
    pointer-events: none;
    /* タッチ判定を消す */
}


/* ==================================================== */
/* リード*/
/* ==================================================== */

.video-wrap {
    position: relative;
    width: 100%;
    max-width: 800px;
    margin: 40px auto;
}

.video-16x9 {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    display: block;
}

/*
.play-button {
    position: absolute;
    inset: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    cursor: pointer;
}

.play-button::before {
    content: "▶";
    font-size: 48px;
    color: white;
    background: rgba(0, 0, 0, 0.5);
    width: 90px;
    height: 90px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.4);
}*/

.lead-section {
    padding: 1rem;
    margin: 0 auto;
    background-image: url(../img/bk_lead.png);
    background-repeat: no-repeat;
    background-position: center bottom;
    background-size: contain;
}

.lead-section p {
    font-family: var(--font-family-mincho);
    font-size: clamp(1.125rem, 1.061rem + 0.3vw, 1.25rem);
    text-align: center;
    word-break: keep-all;
    overflow-wrap: break-word;
    margin: 100px 0 80px;
    text-shadow: 0px 0px 15px rgba(205, 193, 250, 1);
}

.scrollDown {
    display: block;
    width: 1px;
    height: 60px;
    margin: 0 auto 50px;
    background-image: linear-gradient(-180deg,
            transparent,
            #dccb63 50%,
            transparent 50%,
            transparent);
    background-repeat: no-repeat;
    background-size: 100% 200%;
    animation-name: scroll-down;
    animation-duration: 2s;
    animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
    /* easeOutQuintのイージング */
    animation-delay: 0.7s;
    animation-iteration-count: infinite;
    animation-fill-mode: backwards;
}

@keyframes scroll-down {
    0% {
        background-position: 0 100%;
    }

    50% {
        background-position: 0 0;
    }

    100% {
        background-position: 0 -100%;
    }
}

/* ==================================================== */
/* ふわっと表示 */
/* ==================================================== */
.fade {
    opacity: 0;
    /* 最初は透明 */
    transform: translateY(30px);
    /* 30px下から開始 */
    transition: opacity 1.5s, transform 1s;
    /* アニメーション時間 */
}

.fade.active {
    opacity: 1;
    /* アクティブになったら表示 */
    transform: translateY(0px);
    /* 元の位置に戻る */
}

/* ==================================================== */
/* ボタン */
/* ==================================================== */
.button-grad {
    position: relative;
    display: block;
    width: 100%;
    max-width: 320px;
    height: 64px;
    padding: 2px;
    font-family: sans-serif;
    font-size: 1rem;
    text-align: center;
    overflow-wrap: anywhere;
    background: linear-gradient(135deg, #735ab2, #B3BFD2);
    border-radius: 32px;
    margin: 20px auto 0;
}

.button-grad::before {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100%;
    content: "";
    background: linear-gradient(135deg, #735ab2, #B3BFD2);
    border-radius: 32px;
    opacity: 0;
    filter: blur(8px);
}

.button-grad_item {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    color: #fff;
    background-color: var(--color-text-dark);
    border-radius: 32px;
}

@media (any-hover: hover) {
    .button-grad::before {
        transition: opacity 0.2s;
    }

    .button-grad:hover::before {
        opacity: 1;
    }
}

.floating-reserve-button {
    position: fixed;
    width: 120px;
    height: 120px;
    bottom: 15px;
    right: 15px;
    background: url('../img/btn-magic-bk.png') no-repeat center/cover;
    color: var(--color-text-base);
    font-size: .7rem;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
    z-index: 999;
    text-decoration: none;
    display: grid;
    place-content: center;
    text-align: center;
}

.floating-reserve-button:hover {
    transform: scale(1.05);
}

.floating-reserve-wrapper {
    position: fixed;
    bottom: 10px;
    right: 10px;
    z-index: 999;
}

.floating-close-btn {
    position: absolute;
    top: -124px;
    right: 7px;
    width: 24px;
    height: 24px;
    border: none;
    border-radius: 50%;
    background: none;
    color: var(--color-text-base);
    font-size: 16px;
    cursor: pointer;
    z-index: 1000;
}

@media screen and (min-width: 749px) {

    .floating-reserve-button,
    .floating-close-btn {
        display: none;
    }
}

/* ==================================================== */
/* NANICAの楽しみ方*/
/* ==================================================== */
.walk-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 100px auto;
}

.walk-item:nth-child(even) {
    flex-direction: row-reverse;
}

.walk-item-text {
    width: 45%;
    padding: 40px;
    position: relative;
    text-align: center;
    word-break: keep-all;
    overflow-wrap: break-word;
    background-color: var(--color-text-dark);
    margin: auto 0;
}

.walk-item-text::before {
    content: '';
    position: absolute;
    inset: 0;
    margin: 10px;
    border: 1px solid var(--color-text-light);
    display: block;
}


.walk-item-text h3 {
    color: var(--color-theme-accent);
    font-size: 1.4rem;
    margin: 0 0 2rem;
    line-height: 1.3;
}

.walk-item-text h3 span {
    display: block;
    font-size: 2.4rem;
    margin: 0;
    line-height: 1.2;
}

.walk-item-text h3 span img {
    margin: auto;
}

.walk-item-img {
    width: 55%;
    margin: auto 0 -2rem 0;
}

.walk-item-img img {
    width: 100%;
}

.walk-item-text h3 .highlight {
    font-weight: bold;
    font-size: 1.6rem;
    text-shadow: 0 0 10px rgba(243, 238, 175, 0.8);
    display: inline-block;
    margin: 0 .3rem;
}

@media screen and (max-width: 768px) {
    .walk-item {
        display: block;
    }

    .walk-item-text,
    .walk-item-img {
        width: 100%;
    }
}

/* ==================================================== */
/* 魔法の選び方*/
/* ==================================================== */

.future-item {
    margin-bottom: 20px;
}

.future-item video,
.future-item img {
    width: 100%;
    /*border-radius: 10px;
    box-shadow: 6px 6px 6px 0px rgba(0, 0, 0, 0.45);*/
}

.b-bottom {
    border-bottom: 1px solid var(--color-theme-primary);
}

.future-item-content {
    background-color: var(--color-text-dark);
    border-radius: 0 0 10px 10px;
    position: relative;
}

.limited-item {
    padding-bottom: 50px;
    width: 100%;
    text-align: center;
}

.limited-item p {
    margin: 0 0 15px;
}

.limited-item video,
.limited-item img {
    max-width: 370px;
    width: 100%;
    display: block;
    margin: 0 auto;
    /*box-shadow: 6px 6px 6px 0px rgba(0, 0, 0, 0.45);*/
}


.limited-item h3 {
    font-size: 2rem;
    color: var(--color-text-light);
    margin: 1rem 0;
}

.limited-item h3 img {
    box-shadow: none;
}

.limited-item .future-item-content {
    max-width: 370px;
    margin: 1rem auto 0;
}

.magic-info {
    display: flex;
    justify-content: center;
    gap: .5rem;
    margin: 0;
    padding: 5px 5px 10px;
    list-style: none;
    font-size: .8rem;
    color: var(--color-text-base);
}

.magic-info p {
    padding: 5px 0;
}

.magic-info li {
    position: relative;
    padding-left: 1.1rem;
}

.limited-item .magic-info {
    padding: 10px 5px;
}

/* Font Awesomeアイコンを疑似要素で表示 */

.magic-info li::before {
    color: var(--color-theme-accent);
}

.magic-info li:nth-child(1)::before {
    content: "\f007";
    /* user icon */
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    position: absolute;
    left: 0;
    top: 0;
}

.magic-info li:nth-child(2)::before {
    content: "\f017";
    /* clock icon */
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    position: absolute;
    left: 0;
    top: 0;
}

.magic-info li:nth-child(3)::before {
    content: "\f279";
    /* location icon */
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    position: absolute;
    left: 0;
    top: 0;
}

.limited-label {
    position: absolute;
    top: 0;
    left: 0;
    background-color: #dccb63;
    color: #0a0a0a;
    font-size: clamp(0.8rem, 0.73rem + 0.3vw, 1rem);
    padding: .5rem;
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}


@media screen and (max-width: 670px) {
    .magic-info {
        display: block;
        padding: 5px 20px;
        text-align: left;
    }
}

/* ==================================================== */
/* about*/
/* ==================================================== */
.about-section {
    width: 100%;
    background: url("../img/bk_about-01.jpg");
    background-size: 1920px 1080px;
    animation: about-section 100s linear infinite;
}

@keyframes about-section {
    0% {
        background-position: 0 0;
    }

    100% {
        background-position: -1920px 0;
    }
}

.about-section p {
    text-align: center;
    font-size: 1.3rem;
    font-family: var(--font-family-mincho);
    word-break: keep-all;
    overflow-wrap: break-word;
    line-height: 2;
    background-color: rgba(36, 26, 73, 0.7);
    padding: 20px;
    border-radius: 10px;
    margin: 0 0 50px;
}

/* ==================================================== */
/* ドリンク*/
/* ==================================================== */
.menu-section {
    text-align: center;
}

.menu-item {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 20px;
}

@media screen and (max-width: 768px) {
    .menu-item {
        grid-template-columns: 1fr 1fr;
    }
}

/* ==================================================== */
/* エリアガイド*/
/* ==================================================== */


.area-item {
    border: solid #ccc 50px;
    display: inline-block;
    padding: 30px;
    border-image-source: url(../img/frame.png);
    border-image-slice: 165;
    border-image-width: 70px;
    border-image-outset: 0px;
    border-image-repeat: round;
    width: calc(100% - 20px);
    margin: 30px 10px;
}

.area-item h3 {
    color: var(--color-border);
    padding: 12px 24px;
    font-size: 1.8rem;
    margin-bottom: 20px;
    text-align: center
}

.area-item img {
    width: 100%;
    border-radius: 10px;
}

.area-item p {
    margin: 30px 0 10px;
    text-align: center;
}

@media screen and (max-width: 768px) {
    .area-item {
        padding: 0;
        border-image-slice: 200;
        width: calc(100% - 10px);
        margin: 20px 5px;
    }
}



/* ==================================================== */
/* NEWS*/
/* ==================================================== */
.news-list {
    margin: 0;
    padding: 0;
    height: 850px;
    overflow: auto;
    overflow-y: auto;
}
.news-list::-webkit-scrollbar {
    background: var(--color-text-dark);
    width: 5px;
  height: 5px;
}
.news-list::-webkit-scrollbar-thumb {
    background-color: var(--color-text-base);
}

.news_list_item {
    padding: 25px;
    border-bottom: 1px solid #E6E6E6;
}

.news_list_item:first-child {
    border-top: 1px solid #E6E6E6;
}

.news_list_date {
    display: flex;
}

.news_list_date time {
    margin: 0 1rem 0 0;
    width: 15%;
    font-weight: bold;
}

.news_list_date p {
    width: 85%;
}

@media screen and (max-width: 768px) {
    .news_list_date {
        display: block;
        width: 100%;
    }
    .news_list_date p {
    width: 100%;
}
}

/* ==================================================== */
/* 募集*/
/* ==================================================== */
.wanted-container {
    text-align: center;
}

.wanted-container h3 {
    font-size: clamp(1.4rem, 1.078rem + 1.44vw, 1.8rem);
    color: var(--color-highlight);
    margin: 1rem 0;
}

.wanted-link {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    position: relative;
}

.wanted-container .wanted-ttl {
    border: 1px solid var(--color-highlight);
    border-radius: 10px;
    font-size: 1.1rem;
    color: var(--color-highlight);
    padding: 10px;
    margin: 0 0 30px;
}

.wanted-container .wanted-text {
    font-size: 1.1rem;
    margin: 0 0 2rem;
    padding: 20px 0;
}

.wanted-container .wanted-img {
    max-width: 200px;
    height: auto;
    display: block;
    position: relative;
    z-index: 0;
}

/* HTML: <div class="ribbon">Your text content</div> */
.wanted-container .ribbon {
    font-size: 1.1rem;
    color: var(--color-background-base);
    margin: -2.5rem auto 0;
    position: relative;

    --s: 1.2em;
    /* the ribbon size */
    --d: .8em;
    /* the depth */
    --c: .8em;
    /* the cutout part */

    padding: 0 calc(var(--s) + 3em) var(--d);
    line-height: 1.8;
    background:
        conic-gradient(at left var(--s) bottom var(--d),
            #0000 25%, #0008 0 37.5%, #0004 0) 0 /50% 100% no-repeat,
        conic-gradient(at right var(--s) bottom var(--d),
            #0004 62.5%, #0008 0 75%, #0000 0) 100%/50% 100% no-repeat;
    clip-path: polygon(0 var(--d), var(--s) var(--d), var(--s) 0, calc(100% - var(--s)) 0, calc(100% - var(--s)) var(--d), 100% var(--d), calc(100% - var(--c)) calc(50% + var(--d)/2), 100% 100%, calc(100% - var(--s) - var(--d)) 100%, calc(100% - var(--s) - var(--d)) calc(100% - var(--d)), calc(var(--s) + var(--d)) calc(100% - var(--d)), calc(var(--s) + var(--d)) 100%, 0 100%, var(--c) calc(50% + var(--d)/2));
    background-color: var(--color-highlight);
    /* the main color */
    width: fit-content;
}

@media screen and (max-width: 768px) {
    .wanted-container .flex-container {
        display: flex;
    }

    .wanted-container .flex-2 {
        width: 80%;
    }

    .wanted-container .ribbon {
        font-size: .85rem;
        padding: 0 calc(var(--s) + 2em) var(--d);
        margin: -2rem auto 0;
    }
}

/* ==================================================== */
/* よくある質問*/
/* ==================================================== */
.accordion-container {
    margin: 20px auto;
    border: 1px solid var(--color-border);
    overflow: hidden;
}

.accordion-container.icon .accordion-summary {
    align-items: center;
}

.accordion-summary {
    display: flex;
    justify-content: space-between;
    padding: 15px;
    background-color: var(--color-theme-primary);
    cursor: pointer;
    color: var(--color-text-base);
    font-weight: bold;
    border-bottom: 1px solid var(--color-border);
    list-style: none;
    transition: ease .2s;
}

.accordion-summary::-webkit-details-marker,
.accordion-summary::marker {
    display: none;
    content: "";
}

.accordion-item[open]>.accordion-summary {
    background-color: #735ab2;
    color: var(--color-text-base);
    ;
}

.accordion-content {
    padding: 15px;
    background-color: var(--color-text-base);
    ;
}

.accordion-content p {
    color: var(--color-text-dark);
    margin: 0 0 10px 0;
    padding: 20px;
    text-align: left;
    line-height: 1.8rem;
}

.accordion-content img {
    width: 100%;
    margin: 5px 0;
}

.accordion-content p:last-child {
    margin-bottom: 0;
}

.accordion-container.icon .accordion-summary::after {
    content: "";
    display: block;
    width: 25px;
    height: 16px;
    margin: 6px;
    background-image: url("../img/icon.svg");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transform-origin: center 43%;
    transition: transform 0.4s;
}

.accordion-container.icon .accordion-item[open]>.accordion-summary::after {
    transform: rotate(180deg);
}

/* ==================================================== */
/* 店舗のスタイル */
/* ==================================================== */
.shop-info {
    margin: 10px 0 20px;
    border-bottom: 1px dotted #fff;
}

.hours-list,
.access-list {
    margin: 0;
    padding: 0;
}

/* DTとDDのペアを横に並べる */
.hours-list dt,
.hours-list dd,
.access-list dt,
.access-list dd {
    display: inline-block;
    padding: 4px 0;
}

/* 営業時間リストのDT（月・水、金など） */
.hours-list dt {
    width: 60px;
    /* 項目名を一定の幅で揃える */
    font-weight: bold;
}

/* アクセスリストのDT（住所、電話番号など） */
.access-list dt {
    width: 100%;
    /* アクセスの項目名は上に配置 */
    font-weight: bold;
    margin-top: 10px;
}

.access-list dd {
    margin-left: 0;
    width: 100%;
}

.map {
    position: relative;
    width: 100%;
    padding-top: 100%;
    /* 16:9のアスペクト比 */
    height: 0;
}

/* Googleマップ */
.map iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.sns img {
    max-width: 50px;
    margin: 10px 0 20px;
}

/* ==================================================== */
/* フッター*/
/* ==================================================== */
footer {
    text-align: center;
    font-size: .8rem;
    padding: 20px;
}

/* ==================================================== */
/* テーブル*/
/* ==================================================== */
.table-side {
    border-collapse: collapse;
    width: 100%;
    background-color: var(--color-text-dark);
    border: 1px solid var(--color-text-light);
    margin: 40px 0;
}

.table-side th,
.table-side td {
    border-bottom: 1px solid var(--color-text-light);
    padding: clamp(0.5rem, -0.064rem + 2.53vw, 1.2rem);
    font-size: clamp(0.813rem, 0.661rem + 0.68vw, 1rem);
}

.table-side th {
    background-color: var(--color-theme-primary);
    border-right: 1px solid var(--color-text-light);
    width: 25%;
    word-break: auto-phrase;
}

/* ==================================================== */
/* 内部ページ*/
/* ==================================================== */

.mv_internal-page {
    padding: 50px 20px;
    width: 100%;
    height: 100%;
    text-align: center;
    background-image: url(./../img/bk_kira.png);
    background-position: center bottom;
    background-repeat: no-repeat;
    background-size: cover;
    display: grid;
    place-content: center;
    color: var(--color-text-base);
    font-family: var(--font-family-mincho);
    font-size: clamp(1rem, 0.194rem + 3.61vw, 2rem);
}

.h_internal-page {
    color: var(--color-text-base);
    font-family: var(--font-family-mincho);
    font-size: clamp(1.5rem, 1.097rem + 1.81vw, 2rem);
    color: var(--color-theme-accent);
    line-height: 1.4;
    margin: .4rem 0 50px;
}

.job-label {
    text-align: center;
}

.job-label p {
    display: inline-block;
    font-size: clamp(0.8rem, 0.639rem + 0.72vw, 1rem);
    border: 1px solid var(--color-highlight);
    color: var(--color-highlight);
    font-family: var(--font-family-base);
    margin: 0 auto .5rem;
    padding: 10px;
}


@media screen and (max-width: 768px) {
    .mv_internal-page {
        padding: 20px;
    }
}

/* ==================================================== */
/* イベントページ*/
/* ==================================================== */
.event-hero {
    text-align: center;
}

.event-hero img {
    width: 70%;
    display: block;
    margin-inline: auto;
}

.event-hero h1 img {
    width: 100%;
    max-width: 800px;
    margin: 0 auto;
    padding: 0;
}

.event-intro {
    padding: 50px 0;
}

.event-intro-h2 {
    font-size: clamp(1.4rem, 1.047rem + 1.51vw, 1.8rem);
    position: relative;
    padding-bottom: .5rem;
    margin: 0 20px;
}

.event-intro-h2::after {
    content: '';
    background-color: var(--color-theme-accent);
    width: 5rem;
    height: 3px;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
}

.event-intro p {
    font-family: var(--font-family-mincho);
    font-size: clamp(1.1rem, 0.747rem + 1.51vw, 1.5rem);
    text-align: center;
    word-break: auto-phrase;
}

.event-h2 {
    font-size: clamp(1.8rem, 1.271rem + 2.26vw, 2.4rem);
    text-align: center;
    color: var(--color-text-base);
    padding: .5rem;
    margin: 0 0 30px;
}

@media screen and (max-width: 800px) {
    .event-hero img {
        width: 100%;
    }
}

.event-area-h2 {
    margin: 0 20px;
    font-size: clamp(1.8rem, 1.271rem + 2.26vw, 2.4rem);
    color: var(--color-text-light);
}

.event-area {
    font-family: var(--font-family-mincho);
    margin: 0 10px;
}

.event-area p {
    font-size: clamp(0.9rem, 0.724rem + 0.75vw, 1.1rem);
    word-break: auto-phrase;
}

.event-area p span {
    font-size: 1.3rem;
    font-weight: bold;
}

/* --- POINT --- */
.event-point {
    margin: 0 0 100px;
    padding: 0 0 1rem;
}

.event-point:last-of-type {
    margin-bottom: 0;
}

.event-point-h3 {
    font-size: clamp(1.4rem, 1.047rem + 1.51vw, 1.8rem);
    color: var(--color-text-base);
    text-align: center;
    padding: .5rem;
    margin: 30px 0 20px;
}

/* --- LIST --- */
.event-list {
    text-align: center;
    margin: 40px 0;
    padding: 0;
}

.event-list ul {
    padding: 0;
}

.event-list li {
    border-radius: 10px;
}

.event-list li img {
    padding: 10px;
    width: 80%;
    margin: auto;
}

.event-list li .event-text {
    padding: 5px;
    border-radius: 10px 10px 0 0;
}

.event-list li p {
    padding: 0 0 10px;
    font-size: clamp(0.8rem, 0.624rem + 0.75vw, 1rem);
}

.event-chart {
    margin: 50px 0;
}

.event-chart h4 {
    width: 80%;
    margin: 0 auto 20px;
}

/* チケット */
.event-ticket {
    text-align: center;
}

.event-price {
    font-size: 1.2rem;
    font-family: var(--font-family-mincho);
    margin: 0 0 .5rem;
}

.event-price span {
    font-size: 2rem;
}

@media (max-width: 768px) {

    .event-list .grid-3 {
        grid-template-columns: repeat(3, 1fr);
        gap: 10px;
    }
}

@media (max-width: 480px) {

    .event-list .grid-3 {
        grid-template-columns: repeat(3, 1fr);
    }
}

.event-explain {
    font-family: var(--font-family-mincho);
}

.event-explain p {
    font-size: 1.2rem;
    text-align: center;
}

.event-explain ul {
    border: 1px solid var(--color-border);
    font-size: 1.1rem;
    padding: 1rem 1rem 1rem 2rem;
    list-style: disc;
}

/* 注意事項 */
.event-notes {
    margin: 10px 0 20px;
    font-size: 1rem;
    position: relative;
}

.event-notes dt {
    font-weight: bold;
    font-size: 1.1rem;
    margin: 0 0 .8rem;
    padding: 0 0 .25rem;
    border-bottom: 1px solid var(--color-border);
}

.event-notes dd {
    padding: 0 1rem 0;
    margin: 0 0 .5rem;
}

.event-notes dd::before {
    font-family: "FontAwesome";
    content: "\f0da";
    position: absolute;
    left: 0;
    color: var(--color-border);
}

/* MIRROR THEME */
.ev_mirror-line-b {
    border-bottom: 2px solid var(--color-mirror);
}

.ev_mirror-line {
    border: 2px solid var(--color-mirror);
}

.ev_mirror-shadow {
    text-shadow: 0px 0px 10px rgba(126, 0, 68, 1), -4px -4px 10px rgba(126, 0, 68, 1), 4px 4px 10px rgba(126, 0, 68, 1);
}

.ev_mirror-bg {
    background-color: rgba(126, 0, 68, 0.4);
}

.ev_mirror-gr {
    background-image: linear-gradient(90deg, rgba(126, 0, 68, 0), rgba(126, 0, 68, 1) 10% 90%, rgba(126, 0, 68, 0));
}


/* STASIS THEME */
.ev_stasis-line-b {
    border-bottom: 2px solid var(--color-stasis);
}

.ev_stasis-line {
    border: 2px solid var(--color-stasis);
}

.ev_stasis-shadow {
    text-shadow: 0px 0px 10px rgba(144, 139, 135, 1), -4px -4px 10px rgba(144, 139, 135, 1), 4px 4px 10px rgba(144, 139, 135, 1);
}

.ev_stasis-bg {
    background-color: rgba(144, 139, 135, 0.4);
}

.ev_stasis-gr {
    background-image: linear-gradient(90deg, rgba(144, 139, 135, 0), rgba(144, 139, 135, 1) 10% 90%, rgba(144, 139, 135, 0));
}


/* PORTAL THEME */
.ev_portal-line-b {
    border-bottom: 2px solid var(--color-portal);
}

.ev_portal-line {
    border: 2px solid var(--color-portal);
}

.ev_portal-shadow {
    text-shadow: 0px 0px 10px rgba(233, 99, 34, 1), -4px -4px 10px rgba(233, 99, 34, 1), 4px 4px 10px rgba(233, 99, 34, 1);
}

.ev_portal-bg {
    background-color: rgba(233, 99, 34, 0.4);
}

.ev_portal-gr {
    background-image: linear-gradient(90deg, rgba(233, 99, 34, 0), rgba(233, 99, 34, 1) 10% 90%, rgba(233, 99, 34, 0));
}

/* DOUBT THEME */
.ev_doubt-line-b {
    border-bottom: 2px solid var(--color-doubt);
}

.ev_doubt-line {
    border: 2px solid var(--color-doubt);
}

.ev_doubt-shadow {
    text-shadow: 0px 0px 10px rgba(181, 39, 25, 1), -4px -4px 10px rgba(181, 39, 25, 1), 4px 4px 10px rgba(181, 39, 25, 1);
}

.ev_doubt-bg {
    background-color: rgba(181, 39, 25, 0.4);
}

.ev_doubt-gr {
    background-image: linear-gradient(90deg, rgba(181, 39, 25, 0), rgba(181, 39, 25, 1) 10% 90%, rgba(181, 39, 25, 0));
}