@charset "UTF-8";
html {
 font-size: max(1.4vw,14px);

 scroll-behavior: smooth;
}

body {
 background-color: #ffffff;
 color: #333333;
 font-family: sans-serif;
 line-height: 1.5;
}

img {
 width: 100%;
 height: auto;
}

a:hover {
 text-decoration: none;
 opacity: .7;
}

a {
 color: #5dc224;
}

/* ////////// メインコンテンツ共通 /////////// */
.c_relative {
 position: relative;
 background: #fff8ee;
}

.c_absolute {
 position: absolute;
}

.content {
 box-sizing: border-box;
 padding: 5%;
}

.ttl {
 font-weight: bold;
 font-size: 1.5rem;
}

/* ////////// header /////////// */

.header {
 width: 100%;
}

/* ////////// menu /////////// */

.menu_wrap {
 display: flex;
 top: 50%;
 left: 50%;
 width: 95%;
 transform: translate(-50%,-50%);
}

.menu {
 padding: 1%;
 width: calc(100%/4);
}

.menu[href=""] {
 pointer-events: none;
}


/* ////////// info /////////// */

.info_wrap {
 padding: 5%;
 border: 1px solid #333333;
}

.ttl_info {
 text-align: center;
}

.ttl_info::after ,
.ttl_info::before {
 padding: 0 .2em;
 content: "-";
 font-weight: normal;
}

.info {
 overflow-y: auto;
 max-height: 30vh;
 width: 100%;
 font-size: 1rem;
}

.info::-webkit-scrollbar {
 width: 5px;
 background-color: #ffffff;
}

.info::-webkit-scrollbar-thumb {
 border-radius: 9999px;
 background: #5dc224;
}

@media screen and (min-width:769px) {
 .info {
  display: grid;

  grid: auto/ 5em auto;
 }

 .info dt ,
 .info dd {
  padding: .5em;
  border-bottom: 1px solid #eeeeee;
 }
}

@media screen and (max-width:768px) {
 .info dt {
  padding: .5em .5em 0;
 }
 .info dd {
  padding: 0 .5em .5em;
  border-bottom: 1px solid #eeeeee;
 }
}

/* ////////// banner-menu /////////// */

.banner-menu_wrap {
 display: grid;
 top: 47%;
 left: 50%;
 width: 90%;
 transform: translate(-50%,-50%);

 grid: auto/ 1fr 1fr;
 grid-gap: 3%;
}

.banner-menu[href=""] {
 pointer-events: none;
}

.banner_large {
 grid-column: 1/3;
}

/* ////////// スクロール可能モーダルウィンドウ //////////  */
[id^=modal] a:hover {
 opacity: 1;
}

div.comment a img {
 width: 100%;
}

.modal-wrapper {
 position: fixed;
 top: 0;
 right: 0;
 bottom: 0;
 left: 0;
 z-index: 999;
 padding: 60px 10px;
 text-align: center;
}

.modal-wrapper:not(:target) {
 visibility: hidden;
 opacity: 0;
 transition: opacity .3s, visibility .3s;
}

.modal-wrapper:target {
 visibility: visible;
 opacity: 1;
 transition: opacity .4s, visibility .4s;
}

.modal-wrapper::after {
 display: inline-block;
 margin-left: -.05em;
 height: 100%;
 content: "";
 vertical-align: middle;
}

.modal-wrapper .modal-window {
 display: inline-block;
 position: relative;
 z-index: 20;
 box-sizing: border-box;
 padding: 30px 30px 15px;
 max-width: 1000px;
 width: 100%;
 border-radius: 2px;
 background: #ffffff;
 box-shadow: 0 0 30px rgba(0, 0, 0, .6);
 vertical-align: middle;
}

.modal-content img {
 width: 100%;
}

.modal-wrapper .modal-window .modal-content {
 overflow-y: auto;
 max-height: 80vh;
}

.modal-overlay {
 position: absolute;
 top: 0;
 right: 0;
 bottom: 0;
 left: 0;
 z-index: 10;
 background: rgba(0, 0, 0, .8);
}

.modal-wrapper .modal-close {
 position: absolute;
 top: 0;
 right: 0;
 z-index: 20;
 width: 35px;
 color: #95979c !important;
 text-align: center;
 text-decoration: none;
 text-indent: 0;
 font-weight: 700;
 font-size: 20px;
 line-height: 35px;
}

.modal-wrapper .modal-close:hover {
 color: #2b2e38 !important;
}

.l_ticket {
 padding: 2% 7.7% 3%;
 width: 84.6%;
 background-image: url(../images/ip/bg.jpg);
 background-size: cover;
}

.main_ticket {
 position: relative;
 margin: -3% 0 0;
}

.main2_flex {
 display: flex;
 flex-wrap: wrap;
}

.main2 {
 position: relative;
 width: calc(100%/2);
}

.main2_item {
 position: absolute;
 top: 50%;
 left: 50%;
 width: 76%;
 transform: translate(-50%,-50%);
}

.main2_item h2 {
 margin: 0 auto 7%;
 width: 65%;
}

.btn_ticket {
 display: flex;
 position: absolute;
 top: 34%;
 left: 50%;
 width: 55%;
 transform: translate(-50%);
}

.btn_ticket a {
 padding: 0 2% 0 0;
}

.btn_ticket_itempage {
 display: flex;
 position: absolute;
 top: 67%;
 left: 22%;
 width: 36%;
}

.jump {
 margin-top: -6%;
 padding-top: 6%;
}

/* ///// conponent ///////////////////////////////// */
.c_flex {
 display: flex;
}

.c_ttl {
 margin: 0 auto;
 width: 29.7%;
}

.c_ttl2 {
 margin: 0 auto;
 width: 40%;
}

.p_ip_schedule {
 margin: 3% auto;
 width: 60%;
}

.p_ip_schedule {
 margin: 3% auto;
 width: 60%;
}

.p_updating_info {
 margin: 0 auto;
 width: 60%;
}
