@charset "utf-8";/* CSS Document */body, html {    margin: 0;    padding: 0;    height: 100%;    font-family: sans-serif;    overflow: hidden;}img {    width: 100%;}.container {    display: flex;    height: 100%;}.non-pc, .logo-non-pc {    display: none;}.sidebar {    width: 400px;    background: -webkit-linear-gradient(120deg, rgba(255, 243, 178, 1) 0%, rgba(255, 198, 6, 1) 100%);    background: -moz-linear-gradient(120deg, rgba(255, 243, 178, 1) 0%, rgba(255, 198, 6, 1) 100%);    background: linear-gradient(120deg, rgba(255, 243, 178, 1) 0%, rgba(255, 198, 6, 1) 100%);    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFF3B2", endColorstr="#FFC606", GradientType=0);    padding: 20px;    box-sizing: border-box;    flex-shrink: 0;}.main-content {    flex-grow: 1;    padding: 0;    background-color: #fff;    overflow: hidden; /* 親要素のスクロールを無効化 */}.left-sidebar {    display: flex;    flex-direction: column;    align-items: center;    justify-content: center;    row-gap: 16px;}.left-sidebar img {    width: 70%;}#nav {    width: 100%;}.sale {    display: flex;    flex-wrap: wrap;    justify-content: flex-start;    row-gap: 3px;    width: 90%;    margin: 0 auto;}.sale-inner {    font-family: sichandich, sans-serif;    font-weight: 400;    font-style: normal;    color: #fff;    display: inline-block;    background: #5900ff;    padding: 0;    font-size: 16px;}#nav ul {    padding: 0;    display: flex;    flex-direction: column;    row-gap: 12px;    list-style: none;    width: 100%;}#nav ul li {    text-align: center;}#nav ul li a {    display: block;    width: 70%;    margin: 0 auto;}#nav ul li img {    width: 100%;}.right-sidebar {    display: flex;    align-items: center;    justify-content: center;    min-height: 100vh;    flex-direction: column;    row-gap: 24px;}.right-sidebar a {    display: block;    width: 70%;    margin: 0;}.right-sidebar a.campaign-popup {    width: 90%;}.frame-container {    display: flex;    height: 100%;    width: 100%;    position: relative; /* 子要素の配置基準として追加 */}.frame-container::before {    content: "";    position: absolute;    top: 0;    left: 20px;    right: 20px;    bottom: 0;    box-shadow: inset 7px 0 9px -7px rgba(0, 0, 0, 0.7), inset -7px 0 9px -7px rgba(0, 0, 0, 0.7); /* この行を修正 */    pointer-events: none;    z-index: 10;}.left-frame {    width: 20px;    background-image: url("../img/frame-l.webp");    background-size: cover;    background-repeat: no-repeat;    flex-shrink: 0;}.right-frame {    width: 20px;    background-image: url("../img/frame-r.webp");    background-size: cover;    background-repeat: no-repeat;    flex-shrink: 0;}.content-wrapper {    flex-grow: 1;    overflow-y: auto;    overflow-x: hidden;}.content-wrapper::-webkit-scrollbar {    background: #A5EEFF;    width: 10px;    height: 10px;}.content-wrapper::-webkit-scrollbar-thumb {    background-color: #5eadde;    border-radius: 20px;}.news-box {    position: relative;    background: linear-gradient(-45deg, #fff 25%, #fbc6cc 25%, #fbc6cc 50%, #fff 50%, #fff 75%, #fbc6cc 75%, #d8e0ff);    background-size: 8px 8px;    padding: 8px;    width: 90%;    margin: 0 auto;}.news-inner {    background: #FFF;    padding: .5em;    max-height: 250px;    overflow-y: scroll;}.news-inner a {    color: #5900ff;    font-weight: 900;    text-decoration: none;}.news-inner::-webkit-scrollbar {    background: transparent;    width: 10px;    height: 10px;}.news-inner::-webkit-scrollbar-thumb {    background-color: #ffc709;    border-radius: 20px;}h3 {    color: #ff5454;    margin: 0 0 .5em;    text-align: center;    font-family: sichandich, sans-serif;    font-weight: 400;    font-style: normal;    border-bottom: #ff5454 solid 2px;}.news-inner ul li {    list-style: none;}.news-inner ul {    width: 100%;    padding: 0;}.news-inner li {    padding: 6px;    border-bottom: #999 dashed 1px;}.news-inner li .date {    font-family: sicmacarondance, sans-serif;    font-weight: 700;    font-style: normal;    font-size: 14px;    color: #fff;    background: #ff5454;    display: inline-block;}.news-inner li .detail {    font-family: sicmacarondance, sans-serif;    font-weight: 400;    font-style: normal;    font-size: 14px;    color: #333;}#news-sp-only {    display: none;}#mv {    position: relative;}.sns {    width: 10%;    position: absolute;    top: 2%;    right: 4%;    z-index: 2;}.sns a {    display: block;}h1 {    width: 40%;    margin: 0 auto;}#story {    background-image: url("../img/story-bg.webp");    background-repeat: no-repeat;    background-attachment: fixed;    background-size: 45%;    background-position: top center;    width: 100%;    min-height: 80vh;    padding: 72px 0;}#story p {    margin: 36px auto 0 auto;    width: 90%;    color: #0b5c00;    text-shadow: 2px 2px 10px #fff, -2px 2px 10px #fff, 2px -2px 10px #fff, -2px -2px 10px #fff;    font-size: 18px;    line-height: 1.8em;    font-family: sicrusk, sans-serif;    font-weight: 400;    font-style: normal;}span.story-b {    font-size: 28px;    color: #c000ff;}#character {    background-image: url("../img/chr-bg.webp");    background-repeat: repeat;    background-attachment: fixed;    background-size: contain;    background-position: top center;    width: 100%;    min-height: 80vh;    padding: 72px 0;}#character ul li {    list-style: none;}#character ul {    display: flex;    flex-wrap: wrap;    justify-content: space-between;    width: 95%;    margin: 36px auto 0 auto;    gap: 12px;    padding: 0;}#character li {    width: 23%;}#gallery {    background-image: url("../img/gallery-bg.webp");    background-repeat: repeat;    background-attachment: fixed;    background-size: 45%;    background-position: top center;    width: 100%;    min-height: 80vh;    padding: 72px 0;}#gallery ul li {    list-style: none;}#gallery ul {    display: flex;    flex-wrap: wrap;    justify-content: space-between;    width: 90%;    margin: 36px auto 0 auto;    row-gap: 12px;    padding: 0;}#gallery li {    width: 48%;}#movie {    background-image: url("../img/movie-bg.webp");    background-repeat: repeat;    background-attachment: fixed;    background-size: contain;    background-position: top center;    width: 100%;    min-height: 80vh;    padding: 72px 0;}#movie ul li {    list-style: none;}#movie ul {    padding: 0;    width: 90%;    margin: 36px auto 0 auto;}#movie li {    width: 100%;    margin-bottom: 24px;}#movie li .m-title {    background: #fff;    border-radius: 25px;    padding: 0px 0;    text-align: center;    color: #ff5454;    font-family: sicmacarondance, sans-serif;    font-weight: 400;    font-style: normal;    font-size: 18px;    width: 70%;    margin: 12px auto 0 auto;}.popup-video {    position: relative;    display: block;    overflow: hidden;    border-radius: 8px;}.popup-video img {    display: block;    width: 100%;    height: auto;    filter: brightness(60%);}/* === 再生ボタンのスタイル === */.popup-video::after {    content: '';    background-image: url("../movie/play_btn.webp");    background-size: contain;    background-repeat: no-repeat;    background-position: center;    width: 60px;    height: 60px;    position: absolute;    top: 50%;    left: 50%;    transform: translate(-50%, -50%);    transition: transform 0.3s ease, opacity 0.3s ease;    opacity: 0.8;}/* マウスホバー時の再生ボタンのアニメーション */.popup-video:hover::after {    transform: translate(-50%, -50%) scale(1.1);    opacity: 1;}#spec {    background-image: url("../img/spec-bg.webp");    background-repeat: repeat;    background-attachment: fixed;    background-size: 45%;    background-position: top center;    width: 100%;    min-height: 80vh;    padding: 72px 0;}#spec ul li {    list-style: none;}#spec ul {    padding: 0;    width: 90%;    margin: 36px auto 0 auto;}#spec li {    width: 100%;    margin-bottom: 12px;    font-family: fot-seurat-pron, sans-serif;    font-weight: 600;    font-style: normal;    text-align: center;}#spec li .spec-t {    font-size: 14px;    color: #343434;}#spec li .s-detail {    font-size: 16px;    color: #ff5454;}.return-to-top {    position: fixed;    bottom: 10px;    right: 370px;    z-index: 100;    width: 20px;    height: auto;}footer {    background: #ff5454;    padding: 24px 0;}footer img {    display: block;    margin: 0 auto;    width: 150px;}/*　キャラクター詳細ページ　*/#character-profile {    background-image: url("../img/chr-bg.webp");    background-repeat: repeat;    background-attachment: fixed;    background-size: contain;    background-position: top center;    width: 100%;    min-height: 80vh;    padding: 72px 0;}.character-inner {    width: 100%;}#character-profile .character-inner ul li {    list-style: none;}#character-profile .character-inner ul {    width: 95%;    margin: 36px auto;    padding: 0;    display: flex;    flex-wrap: wrap;    gap: 6px;    justify-content: flex-start;}#character-profile .character-inner li {    width: calc(100% / 10);}img.c-active {    filter: brightness(60%);}.c-profile {    width: 100%;    position: relative;    background: transparent;    min-height: 200px;    display: flex;    flex-wrap: nowrap;    justify-content: space-between;    align-items: flex-start;    z-index: 1;    padding: 0 36px;}.c-profile::before {    content: '';    display: block;    position: absolute;    width: 100%;    height: 49%;    background: #99bfff;    top: 50%;    left: 50%;    transform: translate(-50%, -55%) skewy(-20deg);    z-index: -1;}.chr-stand {    width: 38%;}#character-profile .chr-stand .slick-dots {    justify-content: center;    bottom: -36px;    margin: 0;}#character-profile .chr-stand .slick-dots li {    margin: 0 6px;    padding-left: 3px;}#character-profile .chr-stand .slick-dots li a {    display: block;    width: 15px;    height: 15px;}#character-profile .chr-stand .slick-dots li img {    width: 100%;    height: 100%;    object-fit: cover;    /*    transition: transform 0.3s ease-in-out;*/}/*#character-profile .chr-stand .slick-dots li.slick-active img {    transform: scale(1.2);}*/.p-group {    width: 60%;}.c-name, .profile-txt {    width: 95%;    margin: 0 auto 24px auto;    background: #fff;    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);    border-radius: 15px;}.c-name {    padding: 12px;}.name {    color: #ff7800;    font-family: sicrusk, sans-serif;    font-weight: 400;    font-style: normal;    font-size: 28px;    text-align: center;}.cv {    color: #5c2b00;    font-family: fot-seurat-pron, sans-serif;    font-weight: 600;    font-style: normal;    font-size: 12px;    border-top: 2px dashed #45caa5;    text-align: center;    width: 70%;    margin: 0 auto;    padding-top: 6px;}.profile-txt {    font-family: fot-seurat-pron, sans-serif;    font-weight: 600;    font-style: normal;    font-size: 14px;    color: #ff3600;    line-height: 1.8em;    text-align: left;    padding: 24px;}.sample-voice {    width: 95%;    margin: 0 auto;    background: #fff4b4;    box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2);    border-radius: 15px;    padding: 12px;    text-align: center;}.v-title {    font-size: 28px;    font-family: sicrusk, sans-serif;    font-weight: 400;    font-style: normal;    color: #5c2b00;}#character-profile .sample-voice ul li {    list-style: none;}#character-profile .sample-voice ul {    padding: 0;    width: 70%;    display: flex;    flex-wrap: nowrap;    justify-content: center;    column-gap: 24px;    margin: 6px auto 0 auto;}#character-profile .sample-voice li {    width: calc(100% / 3);}#character-profile .sample-voice p {    font-size: 14px;    font-family: sicrusk, sans-serif;    font-weight: 400;    font-style: normal;    color: #5c2b00;}.sample-voice img {    cursor: pointer;}/* 店舗特典設定 */#special {    background-image: url("../img/special-bg.webp");    background-repeat: repeat;    background-attachment: fixed;    background-size: contain;    background-position: top center;    width: 100%;    min-height: 80vh;    padding: 72px 0;}#special ul li {    list-style: none;}#special ul {    display: flex;    flex-wrap: wrap;    justify-content: center;    width: 95%;    margin: 36px auto 0 auto;    gap: 18px 12px;    padding: 0;}#special li {    width: 48%;    background: #ffe691;    box-shadow: 0px 5px 12px 0px rgba(0, 0, 0, 0.5);    border-radius: 10px;    padding: 16px 12px;    font-family: fot-seurat-pron, sans-serif;    font-style: normal;    text-shadow: 1px 1px 2px #fff, -1px 1px 2px #fff, 1px -1px 2px #fff, -1px -1px 2px #fff;    text-align: center;}#special li img {    width: 100%;}#special li h4 {    font-size: 16px;    color: #555;    margin-top: 12px;}#special li p {    font-size: 20px;    color: #ff5454;    padding: 12px 0;}#special li.multi {    width: 100%;}#special li.tk-bracket {    background: none;    box-shadow: none;}.tk-btn a {    display: inline-block;    width: auto;    padding: 6px 36px;    text-decoration: none;    color: #fff;    text-shadow: none;    background: #0080ff;    border-radius: 5px;    font-size: 16px;}#special li span.sp-small {    font-size: 12px;    color: #555;}@media screen and (max-width:1024px) {    /* メニューオープン時のbodyスクロール無効化 */    body.menu-open {        overflow: hidden !important;    }    .sidebar, .left-sidebar, .right-sidebar, .left-frame, .right-frame {        display: none;    }    .frame-container::before {        box-shadow: none;    }    .non-pc {        display: flex;        width: 100%;        min-height: 80px;        background: #faaf00;        background-image: url("data:image/svg+xml,<svg id='patternId' width='100%' height='100%' xmlns='http://www.w3.org/2000/svg'><defs><pattern id='a' patternUnits='userSpaceOnUse' width='20' height='20' patternTransform='scale(2) rotate(0)'><rect x='0' y='0' width='100%' height='100%' fill='%23faaf00ff'/><path d='M 10,-2.55e-7 V 20 Z M -1.1677362e-8,10 H 20 Z' stroke-width='1' stroke='%23ffb710ff' fill='none'/></pattern></defs><rect width='800%' height='800%' transform='translate(0,0)' fill='url(%23a)'/></svg>");        box-shadow: 0 5px 5px 0 rgba(0, 0, 0, 0.2);        position: relative;        z-index: 100;    }    #mv {        padding-top: 80px;        position: relative;    }    .sns {    top: 8%;}    .logo-non-pc {        display: block;        position: absolute;        bottom: 2%;        width: 60%;        left: 20%;    }    /*----------------------------------*/    /*     ハンバーガーメニュー追加CSS      */    /*---------------------------------*/    #hamburger-menu-btn {        position: fixed;        top: 5px;        right: 5px;        width: 80px;        height: 80px;        display: flex;        flex-direction: column;        justify-content: center;        align-items: center;        z-index: 200;        cursor: pointer;    }    /* メニュー線 */    #hamburger-menu-btn span {        display: block;        width: 50px;        height: 5px;        background-color: #ffffff;        border-radius: 3px;        margin: 5px 0;        transition: transform 0.3s, opacity 0.3s;    }    /* ボタンがアクティブ時（メニューオープン時）のXマークへのアニメーション */    #hamburger-menu-btn.active span:nth-child(1) {        transform: translateY(10px) rotate(45deg);    }    #hamburger-menu-btn.active span:nth-child(2) {        opacity: 0;    }    #hamburger-menu-btn.active span:nth-child(3) {        transform: translateY(-10px) rotate(-45deg);    }    /* メニューオーバーレイ */    #non-pc-nav-overlay {        position: fixed;        top: 0;        left: 0;        width: 100%;        height: 100%;        background-color: rgba(248, 31, 122, 0.6);        z-index: 150;        opacity: 0;        visibility: hidden;        transition: opacity 0.3s, visibility 0.3s;        display: flex;        justify-content: center;        align-items: center;    }    /* メニューオープン時 */    #non-pc-nav-overlay.active {        opacity: 1;        visibility: visible;    }    /* メニューリストのスタイル */    #non-pc-nav-overlay ul {        list-style: none;        padding: 0;        margin: 0;        text-align: center;    }    #non-pc-nav-overlay ul li {        margin: 20px 0;    }    #non-pc-nav-overlay ul li a {        text-decoration: none;        color: #ffffff;        font-size: 32px;        font-weight: bold;        display: block;        padding: 10px 20px;        font-family: sichandich, sans-serif;        transition: color 0.2s;    }    #non-pc-nav-overlay ul li a:hover {        color: #ffd700;    }    /*----------------------------------*/    /*     ハンバーガーメニュー追加CSS      */    /*---------------------------------*/    .non-pc {        position: fixed;        top: 0;        z-index: 100;    }    #non-pc-nav-overlay {        pointer-events: none; /* 初期はクリック無効 */    }    #non-pc-nav-overlay.active {        pointer-events: auto; /* 表示時のみ有効にする */    }    #news-sp-only {        display: block;        width: 100%;        position: relative;        background: linear-gradient(-45deg, #fff 25%, #fbc6cc 25%, #fbc6cc 50%, #fff 50%, #fff 75%, #fbc6cc 75%, #d8e0ff);        background-size: 8px 8px;        padding: 8px;        margin: 0 auto;    }    #news-sp-only h3 {    font-size: 28px;}    .news-inner li {    padding: 12px;}    .news-inner li .date {    font-size: 16px;}    .news-inner li .detail {    font-size: 18px;}    #story {        background-size: 100%;    }    #story p {        font-size: 24px;    }    #character ul {        width: 90%;        margin: 42px auto 0 auto;    }    #character li {        width: 24%;    }    #gallery {        background-size: 100%;    }    #gallery ul {        justify-content: flex-start;        margin: 42px auto 0 auto;        gap: 12px;    }    #gallery li {        width: 32.3%;    }    #movie ul {        width: 70%;        margin: 42px auto 0 auto;    }    #movie li {        margin-bottom: 0;    }    #movie li:nth-child(n+1) {        margin-top: 42px;    }    #spec {        background-repeat: no-repeat;        background-size: 100%;    }    #spec ul {        margin: 42px auto 0 auto;    }    #spec li .spec-t {        font-size: 16px;    }    #spec li .s-detail {        font-size: 24px;    }    .return-to-top {        bottom: 5%;        right: 5%;        width: 28px;    }        #character-profile {    padding: 100px 0 72px 0;}    #special {    padding-top: 126px;}}@media screen and (max-width:768px) {    .sns {    top: 10%;}     #character ul,    #gallery ul {    justify-content: center;}    #gallery li {    width: 40%;}    #spec {    background-size: cover;}}@media screen and (max-width:425px) {    .sns {    width: 15%;    top: 14%;    right: 3%;}    #story, #gallery {        background-size: cover;        background-repeat: no-repeat;    }}@media screen and (max-width:400px) {    .news-inner li .date {    margin-bottom: 12px;}    .news-inner li .detail {    font-size: 16px;    line-height: 1.8em;}    h1 {    width: 70%;}        #story p {    font-size: 16px;}    span.story-b {    font-size: 24px;}    #character li {    width: 45%;}    #gallery li {    width: 48%;}    #movie ul {    width: 90%;}    #spec li {    margin-bottom: 6px;}    #spec li .spec-t {    font-size: 12px;}    #spec li .s-detail {    font-size: 16px;}    #character-profile .character-inner li {    width: calc(100% / 8);}    .c-profile {    flex-wrap: wrap;    padding: 0 6px;}    .chr-stand {        width: 100%;    }    .chr-stand img {        width: 100%;    }    .p-group {        width: 100%;        margin-top: 24px;    }    #character-profile .chr-stand .slick-dots {        text-align: center;         width: 100% !important;        margin-left: 0 !important;        margin-right: 0 !important;    }    .cv {    font-size: 16px;}    .profile-txt {    font-size: 16px;}    #special li {    width: 100%;}    #special li.tk-bracket {    display: none;}}@media screen and (max-width:375px) {    .sns {    top: 15%;}    #gallery li {    width: 90%;}}@media screen and (max-width:320px) {    .sns {    width: 15%;    top: 17%;    right: 2%;}}