/*-- 全体 --*/
#special{ margin: 20px 0;}
#content{
    background: url(../../images/bg.png) repeat;
    font-family: "M PLUS 1", sans-serif;
    overflow: hidden;
    @media (max-width: 768px) {
        background-size: 7%;
    }
}
#wrap .box {
    width: unset;
}
#content > .box {
    @media (max-width: 768px) {
        padding: 0;
    }
}
#main_02 #special {
    padding: unset;
    font-weight: bold;
    box-sizing: border-box;
    border: unset;
    width: 100%;
}
#main_02 #special img{
    width: 100%;
}
#main_02 #special h2 img{
    width: auto;
    max-width: 90%;
    @media (max-width: 767.9px) {
        max-width: 100%;
        width: auto;
        height: 59px;
    }
}
#main_02 #special .reservation h2 img,
#main_02 #special .now h2 img{
    @media (max-width: 767.9px) {
        max-width: unset;
        width: auto;
        height: 63px;
    }
}
.inner{
    width: 90%;
    max-width: 1064px;
    margin: 0 auto;
}


/*-------- ヘッダー --------*/
header{
    min-width: unset;
    @media (max-width: 768px) {
        display: none !important;
    }
}
.btn-navi{
    @media (max-width: 768px) {
        display: none !important;
    }
}
/*-------- フッター --------*/
footer {width: 100%; position: relative;}
footer #box_inner {width: unset; margin: 0 auto; position:relative;}
footer #box_inner #footer_sns .fb_iframe_widget > span {vertical-align: baseline !important;}


/*-------- PCスマホ切り替え --------*/
@media screen and (min-width: 769px){
	.dis_sp{ display: none !important; }
}
@media screen and (max-width: 768px){
	.dis_pc{ display: none !important; }
}


/* FV */
section.mv{
    z-index: 2;
    position: relative;
    @media (max-width: 768px) {
        background: #fff url(../../images/bg.png) repeat;
        height: 275px;
        position: fixed;
        width: 100%;
        display: flex;
        align-items: center;        
    }
    @media (max-width: 767.9px) {
        height: 182px;
    }
}
#main_02 #special #mainvisual {
    margin: 70px auto 30px;
    max-width: 100%;
    @media (max-width: 768px) {
        margin: 0px auto 6px;
    }
}

/* ページ内リンク */
.block-link li{
    width: 33%;
}
.block-link li > a{
    position: relative;
}
.block-link .outer,
._btn .outer {
    display: inline-block;
    background-color: #000;
    padding: 5px;
    transition: .2s;
    width: 100%;
    @media (max-width: 768px) {
        padding: 2px;
    }
}
._btn .outer {
    @media (max-width: 768px) {
        padding: 5px;
    }
}
.block-link .outer:hover {
    background-color: #E84560;
}
.block-link li:nth-of-type(2) .outer:hover {
    background-color: #01A9AA;
}
.block-link li:nth-of-type(3) .outer:hover {
    background-color: #A375E7;
}
.block-link .outer > .inner,
._btn .outer > .inner {
    background-color: black;
    border: 1px solid white;
    padding: 1.2em 1em 1.5em;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1em;
    width: 100%;
    @media (max-width: 768px) {
        padding: 0.3em 0.5em 0.4em;
    }
}
._btn .outer > .inner {
    @media (max-width: 768px) {
        padding: 1.1em 0.5em 1.2em;
    }
}
.block-link .outer .label,
._btn .outer .label {
    color: #fff;
    font-size: 1.9rem;
    line-height: 1.1em;
    font-weight: 900;
    text-shadow: 1px 2px #E84560;
    @media (max-width: 768px) {
        font-size: 2.8vw;
        text-shadow: 1px 1px #E84560;
    }
}
.block-link li:nth-of-type(2) .outer .label {
    text-shadow: 1px 2px #01A9AA;
    @media (max-width: 768px) {
        text-shadow: 1px 1px #01A9AA;
    }
}
.block-link li:nth-of-type(3) .outer .label {
    text-shadow: 1px 2px #A375E7;
    @media (max-width: 768px) {
        text-shadow: 1px 1px #A375E7;
    }
}
.block-link ul{
    display: flex;
    justify-content: space-between;
    margin-bottom: 38px;
    @media (max-width: 768px) {
        margin-bottom: 0;
    }
}
.block-link ul li + li{
    margin-left: 2.5%;
}
.block-link ul li a:after,
._btn .outer:after {
    content: "";
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
    width: 10px;
    height: 10px;
    position: absolute;
    top: 30%;
    right: 25px;
    transform: translateY(-50%) rotate(135deg);
    transition: .2s ease-in;
    @media (max-width: 768px) {
        border-top: 1px solid #fff;
        border-right: 1px solid #fff;
        width: 5px;
        height: 5px;
        top: 60%;
        right: 9px;
    }
}
._btn .outer:after {
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
    width: 10px;
    height: 10px;
    right: 25px;
}
.block-link ul li a:hover:after,
._btn .outer:hover:after {
    transform: translateY(0%) rotate(135deg);
}


/* イベント展示 */
section.exhibition{
    position: relative;
    background: url(../../images/newinfo_bg_red_rzgeqfys.jpg) no-repeat center center;
    background-size: cover;
    background-attachment: fixed;
    clip-path: polygon(0% 0%, 100% 13%, 100% 100%, 0 100%);
    padding: 11em 0 24em;
    margin-top: -5em;
    @media (max-width: 1500px) {
        padding: 11em 0 16em;
    }
    @media (max-width: 768px) {
        clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0 100%);
        padding: 1em 0 10em;
        margin-top: 0;
        padding-top: 305px;
    }
    @media (max-width: 767.9px) {
        padding-top: 198px;
    }
}
#main_02 #special .event_info ul.left {
    margin: 0 auto;
    width: 90%;
    float: unset;
    display: flex;
    flex-wrap: wrap;
    gap: 2rem 3%;
    @media (max-width: 768px) {
        gap: 2rem 7%;
    }
}
#main_02 #special .event_info ul.left li {
    width: 22.75%;
    @media (max-width: 768px) {
        width: 46.5%;
    }
}
/* 正方形ボタン */
#main_02 #special .event_info ul.left li button {
    position: relative;
    width: 100%;
    background-color: #ffffff57; /* 薄い白背景 */
    padding: 0;
    border: none;
    cursor: pointer;
    line-height: 0;
    display: block;
}

/* 正方形スペース確保 */
#main_02 #special .event_info ul.left li button::before {
    content: "";
    display: block;
    padding-top: 100%; /* 正方形化 */
}

/* 画像配置 */
#main_02 #special .event_info ul.left li button img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    display: block;
}
.list_img{
    background: #ffffff57;
    display: flex;
    justify-content: center;
    align-items: center;
}
#main_02 #special .event_info ul.left li p {
    font-size: 1.125em;
    width: unset;
    color: #fff;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 800;
    letter-spacing: 0.1em;
}
section.exhibition h2{
    margin-left: -5%;
    margin-bottom: 5rem;
    @media (max-width: 768px) {
        margin-bottom: 2.5rem;
        margin-left: -3%;
    }
}
._btn{
    position: relative;
    display: flex;
    justify-content: center;
    margin-top: 3rem;
}
._btn .outer {
    width: 23em;
    position: relative;
    transition: .2s ease-in;
}
._btn .outer .label {
    color: #fff;
    font-size: 1.125em;
    font-weight: 600;
    text-shadow: unset;
}
._btn .outer:after {
    top: 50%;
}
._btn .outer:hover {
    background-color: #fff;
}
._btn .outer:after {
    transform: translate(0,-50%) rotate(45deg);
}
._btn .outer:hover:after {
    transform: translate(10px,-50%) rotate(45deg);
}
.event_info{
    position: relative;
}
section.exhibition .chara{
    position: absolute;
    bottom: -85px;
    right: -264px;
    @media (max-width: 1500px) {
        position: relative;
        width: 100%;
        height: auto;
        bottom: 0;
        right: -34px;
        text-align: right;
        margin-top: 1em;
    }
}
section.exhibition .chara img{
    max-width: 297px;
}

/* 予約開始 */
section.reservation{
    position: relative;
    background: url(../../images/newinfo_bg_green_uapmjfzr.jpg) no-repeat center center;
    background-size: cover;
    background-attachment: fixed;
    clip-path: polygon(0% 17%, 100% 0%, 100% 100%, 0 100%);
    padding: 14em 0 25em;
    margin-top: -25em;
    @media (max-width: 1500px) {
        padding: 14em 0 10em;
    }
    @media (max-width: 768px) {
        clip-path: polygon(0% 6%, 100% 0%, 100% 100%, 0 100%);
        margin-top: -17.5em;
        padding: 6em 0 10em;
    }
}
section.reservation h2{
    text-align: right;
    margin-right: -5%;
    margin-bottom: 5rem;
    @media (max-width: 768px) {
        text-align: unset;
        margin-right: 0;
        margin-left: -3%;
        margin-bottom: 2.5rem;
    }
}
section.reservation .chara{
    position: absolute;
    bottom: -195px;
    left: -264px;
    @media (max-width: 1500px) {
        position: relative;
        width: 100%;
        height: auto;
        bottom: 0;
        left: -78px;
        margin-top: 1em;
    }
}
section.reservation .chara img{
    max-width: 295px;
}


/* 企画進行中 */
section.now{
    position: relative;
    background: url(../../images/newinfo_bg_purple_ymaugepq.jpg) no-repeat center center;
    background-size: cover;
    background-attachment: fixed;
    clip-path: polygon(0% 0%, 100% 22%, 100% 100%, 0 100%);
    padding: 12em 0 10em;
    margin-top: -18em;
    @media (max-width: 1500px) {
        clip-path: polygon(0% 0%, 100% 16%, 100% 100%, 0 100%);
        margin-top: -16.3em;
        padding: 5em 0 5em;
    }
    @media (max-width: 768px) {
        clip-path: polygon(0% 0%, 100% 5%, 100% 100%, 0 100%);
    }
}
section.now h2{
    margin-left: -5%;
    margin-bottom: 5rem;
    @media (max-width: 768px) {
        margin-left: -3%;
        margin-bottom: 3rem;
    }
}
.loop-logo{
    width: 100%;
    height: 6vw;
    background: url(../../images/newinfo_looptxt_pzewckhu.png) repeat-x -65% top;
    background-size: contain;
    margin-bottom: 2em;
    @media (max-width: 768px) {
        height: 11vw;
    }
}
.sns_btn{
    width: 100%;
    display: flex;
    justify-content: center;
    margin-bottom: 4rem;
    @media (max-width: 767.9px) {
        width: 85%;
        margin: 0 auto 3rem;
    }
}
.sns_btn a{
    transition: .2s ease-out;
}
.sns_btn a:hover{
    opacity: 0.7;
}
.copy{
    font-family: "Noto Sans JP", sans-serif;
    font-size: 0.8rem;
    font-weight: 400;
    line-height: 2em;
    max-width: 792px;
    margin: 0 auto;
    text-align: center;
}
.copy p{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.7em;
}
.copy img{
    height: 1.3em;
    width: auto !important;
}

.slide-in {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.slide-in.show {
  opacity: 1;
  transform: translateY(0);
}

.modal-overlay {
  position: fixed;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.7);
  justify-content: center;
  align-items: center;
  z-index: 999;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease;
}
.modal-overlay.active {
  display: flex;
  opacity: 1;
  visibility: visible;
}
.modal{
    display: flex;
    flex-direction: column;
    align-items: center;
}
.modal-overlay img{
    max-width: 90vh;
    max-height: 90vh;
    @media (max-width: 767.9px) {
        width: 90% !important;
        height: 90% !important;
    }
}
.close-button {
    float: right;
    cursor: pointer;
    font-size: 3em;
    color: #fff;
    align-self: flex-end;
    margin-top: -0.5em;
    @media (max-width: 767.9px) {
        margin-right: 1rem;
    }
}
.modal-overlay {
  display: none;
}
.modal-overlay.showing {
  display: flex;
}