/* ---------- コンテナ ---------- */
.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{
    width:100%;padding-right:var(--bs-gutter-x,1.33rem);padding-left:var(--bs-gutter-x,1.33rem);margin-right:auto;margin-left:auto
}
@media (min-width:576px){
    .container,.container-sm{max-width:540px;}}
    @media (min-width:768px){.container,.container-md,.container-sm{max-width:720px;}}
    @media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:880px;padding-right: var(--bs-gutter-x,-1.33rem);
        padding-left: var(--bs-gutter-x,-1.33rem);}}
    @media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1110px}}
    /* 1140px */
    @media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}

.container.C-2021,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:var(--bs-gutter-x,2rem);padding-left:var(--bs-gutter-x,2rem);}

/* ---------- 基準 ---------- */
*{
	padding:0;
	margin:0;
}
*, *::before, *::after {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -o-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
    -webkit-tap-highlight-color: rgba(0,0,0,0);
    -webkit-box-shadow: none;
    box-shadow: none;
    outline: none;
}
html, body{
	width:100%;
	height:100%;
	font-size: 15px;
    font-family: source-han-sans-japanese, sans-serif;
    font-weight: 400;
    font-style: normal;
	line-height: 24px;
	color: #2B2B2B;
	-webkit-overflow-scrolling: touch;
    /* 単語改行、禁則処理 */
    word-break: break-word;
    line-break: strict;
    word-wrap: break-word;
    overflow-wrap: break-word;
}
html{
	visibility: hidden;
}
/* フォント読み込み中のちらつきを削除 */
html.wf-active,
html.loading-delay{
	visibility: visible;
	animation:fadeIn .5s;
}
  #over{
	overflow: hidden;
    position: relative;
}
#over > main header + * > .container img{
    width: 100%;
    height: auto;
}
body.open{
    overflow: hidden;
}
/* ---------- ヘッダー（header） ---------- */
#over > header{
    height: 72px;
    display: flex;
    align-items: center;
    position: absolute;
    width: 100%;
    width: 100%;
    height: 72px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: rgba(255, 255, 255, .85);
    z-index: 800;
    position: relative;
}
#over > header > h1,
#over > header > p{
    display: grid;
    align-items: center;
    align-content: center;
    margin-right: 88px;
    margin-left: 16px;
    max-width: 211px;
}
#over > header > h1 a,
#over > header > p a{
    display: grid;
    align-items: center;
    align-content: center;
}
#over > header > h1 img,
#over > header > p img{
    width: 100%;
    font-family: source-han-sans-japanese, sans-serif;
}
.home #over > header{
    position: absolute;
}
.header-middle .sns-icon{
    display: none;
    margin-right: 72px;
    white-space: nowrap;
}
.header-middle .sns-icon a{
   display: grid;
   align-items: center;
}
/* ハンバーガーリスト */
.header-hamburger {
    background: #0768B3;
    width: 72px;
    height: 72px;
    cursor: pointer;
    -webkit-tap-highlight-color: rgba(0,0,0,0);
    position: fixed;
    right: 0;
    z-index: 999;
    display: flex;
    align-items: center;
    justify-content: center;
    right: 0;
    top: 0;
}
#over > header.open .header-hamburger {
    background: #003399;
}
.hamburger {
    width: fit-content;
    height: 100%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-direction: column;
    position: relative;
    display: grid;
    justify-items: center;
    align-content: center;
}
.hamburger span {
    width: 27px;
    height: 1px;
    background-color: #FFF;
    margin-bottom: 8px;
}
.hamburger span:nth-child(2){
    margin-bottom: 12px;
}
.hamburger::after {
    content: 'MENU';
    font-size: 9px;
    color: #fff;
    margin-top: -4px;
    margin-bottom: -8px;
    white-space: nowrap;
    line-height: 1.2rem;
    font-weight: 700;
    visibility: visible;
    transition: .3s;
}
header.open .hamburger::after {
    visibility: collapse;
    opacity: 0;
    transition: .3s;
}
header.open .header-hamburger span:nth-of-type(1) {
	animation: active-menu-bar01 .6s forwards;
}
header.open .header-hamburger span:nth-of-type(2) {
	animation: active-menu-bar02 .6s forwards;
}
header.closed .header-hamburger span:nth-of-type(1) {
	animation: menu-bar01 .6s forwards;
}
header.closed .header-hamburger span:nth-of-type(2) {
	 animation: menu-bar02 .6s forwards;
}
@keyframes active-menu-bar01 {
	0% {
		transform: translateY(0) rotate(0);
	  }
	  100% {
		transform: translate3d(0, 14px ,0) rotate(-45deg);
	  }
  }
  @keyframes active-menu-bar02 {
	0% {
		transform: translateY(0) rotate(0);
	  }
	  100% {
		transform: translate3d(0, 5px ,0) rotate(45deg);
	  }
  }
  @keyframes menu-bar01 {
	0% {
		transform: translate3d(0, 14px ,0) rotate(45deg);
	  }
	  100% {
		transform: translateY(0) rotate(0);
	  }
  }
  @keyframes menu-bar02 {
	0% {
		transform: translate3d(0, 5px ,0) rotate(-45deg);
	  }
	  100% {
		transform: translateY(0) rotate(0);
	  }
}
/* グローバルナビゲーション */
#over > header .nav-wrapper {
    position: fixed;
    z-index: 900;
    top: 0;
    width: 100%;
    height: 100vh;
    background: #0768B3;
    transition: all 0.6s;
    visibility: collapse;
    opacity: 0;
}
#over > header.open .nav-wrapper {
    right: 0;
    transition: all 0.6s;
    visibility: visible;
    opacity: 1;
}
#over > header .nav-inner {
    width: 100%;
    height: 100%;
    overflow-y: auto;
}
.nav-wrapper nav {
    margin-top: 72px;
    display: inherit;
    width: 100%;
}
.nav-wrapper nav > ul:last-child{
    margin-top: 16px;
    display: grid;
    grid-template-columns: 1fr 1fr;
}
.nav-wrapper nav ul:last-child li{
    list-style-type: none;
}
.nav-wrapper nav > ul:first-child > li > a {
    text-decoration: none;
    color: #FFFFFF;
    font-size: 20px;
    display: inline-block;
    padding: 22px 20px 21px 20px;
    transition: .4s;
    font-weight: 700;
}
.nav-wrapper nav > ul:last-child li a {
    text-decoration: none;
    color: #FFFFFF;
    font-size: 17px;
    display: block;
    padding: 13px 20px 12px 20px;
    transition: .4s;
    font-weight: 700;
}
.nav-wrapper nav ul li{
    position: relative;
}
.nav-wrapper nav > ul:last-child li:nth-child(even)::before{
    content: '';
    position: absolute;
    width: 1px;
    height: 25px;
    background: #FFF;
    left: 0;
    opacity: .41;
    top: 50%;
    transform: translateY(-50%);
}
.nav-wrapper .sns-icon{
    margin-top: 46px;
    margin-bottom: 45px;
    display: grid;
    grid-template-columns: max-content max-content max-content max-content;
    justify-content: center;
    column-gap: 20px;
}
.nav-wrapper .sns-icon img{
    /* filter: invert(100%) sepia(100%) saturate(2%) hue-rotate(233deg) brightness(110%) contrast(120%); */
    filter: invert(100%) sepia(100%) saturate(2%) hue-rotate(233deg) brightness(150%) contrast(120%);
}
/* サブメニュー */
.nav-wrapper nav > ul > li > ul{
    display: none;
    position: relative;
    left: 0;
    bottom: 0;
    width: 100%;
    z-index: 200;
}
.nav-wrapper nav > ul > li > ul li{
    display: block;
    background: #F2F8FC;
    border-bottom: 1px solid #0768B3;
}
.nav-wrapper nav > ul > li > ul li a{
    font-size: 16px;
    color: #2B2B2B;
    font-weight: 400;
    text-decoration: none;
    display: block;
    padding: 18px 15px;
}
.nav-wrapper nav > ul> li:hover{
    background: #003399;
    transition: 0.2s ease-in-out;
}
.nav-wrapper nav > ul> li {
    animation: Brdi 0.2s ease-in-out;
}
.nav-wrapper nav > ul> li.shut {
    animation: Brad 0.2s ease-in-out;
    background: #003399;
}
@keyframes Brad{
	0% {
		background:#0768B3;
  }
  100% {
    background: #003399;
	color:#FFF;
  }
}
@keyframes Brdi{
	0% {
		background: #003399;
		color:#FFF;
  }
  100% {
	background:#0768B3;
  }
}
/* ---------- ヘッダー（main header） ---------- */
.home #over > main header {
    position: relative;
    display: grid;
    align-items: center;
    height: calc(100vh - 170px);
    max-height: 768px;
    overflow: hidden;
}
.home #over > main header ul:not(.slick-dots){
    width: 100vw;
    position: absolute;
    top: 0;
}
.home #over > main header .slick-list li div{
    position: relative;
    height: calc(100vh - 170px);
    max-height: 768px;
    display: grid;
    align-items: center;
    justify-content: center;
}
.home #over > main header .slick-list li div img {
    min-width: 100%;
    min-height: 100%;
    width: 100%;
    position: absolute;
    display: block;
    object-fit: cover;
}
.home #over > main header .slick-dots {
    bottom: 10px;
}
/* ---------- フッター（footer） ---------- */
/* .footer-top（予約案内） */
#over > footer .footer-top{
    display: grid;
}
#over > footer .footer-top a{
    font-size: 20px;
    min-height: 120px;
    display: grid;
    justify-items: center;
    align-items: center;
    padding: 20px;
    text-decoration: none;
    color: #FFF;
}
#over > footer .footer-top a:first-child{
    background: #003399;
}
#over > footer .footer-top a:first-child{
    background: #003399;
}
#over > footer .footer-top a:last-child{
    background: #3366CC;
}
#over > footer .footer-top p{
    position: relative;
    padding-right: 40px;
    font-weight: 700;
}
#over > footer .footer-top a:first-child p::after{
    content: '';
    position: absolute;
    display: inline-block;
    background: url(../images/cal.svg) no-repeat;
    background-size: contain;
    width: 24px;
    height: 22px;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}
#over > footer .footer-top a:last-child p::after{
    content: '';
    position: absolute;
    display: inline-block;
    background: url(../images/block.svg) no-repeat;
    background-size: contain;
    width: 24px;
    height: 24px;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}
/* .footer-middle（バナーリンク） */
.footer-middle > .container{
    display: grid;
    row-gap: 5px;
}
.footer-middle ul{
    display: grid;
    row-gap: 5px;
}
.footer-middle ul li{
    list-style-type: none;
}
.footer-middle ul li a{
    display: block;
    font-size: 18px;
    text-decoration: none;
    font-weight: 700;
    color: #0768B3;
    height: 100%;
    display: grid;
    align-items: center;
    justify-items: center;
    border: 4px solid transparent;
    transition: .4s;
}
.footer-middle ul li a:hover {
    border: 4px solid #0768B3;
    transition: .4s;
}
.footer-middle ul li img{
    max-width: 80%;
    max-height: 80%;
}
.footer-middle ul li.jaga-info img {
    max-width: 93%;
    max-height: 93%;
}
.footer-middle ul.footer-middle-top li {
    height: 120px;
    border: 1px solid #0768B3;
}
.footer-middle ul.footer-middle-top li a {
    font-size: clamp(1.125rem, 0.9735rem + 0.6166vw, 1.5rem);
}
.footer-middle ul li.jaga-nobe{
    border: 1px solid #43654D;
}
.footer-middle ul li.jaga-mate {
    /*border: 1px solid #E50112;*/
	border: 1px solid #0768B3;
}
.footer-middle ul li.jaga-info {
    border: 1px solid #B72D8C;
}
.footer-middle ul li.jaga-nobe a,
.footer-middle ul li.jaga-mate a,
.footer-middle ul li.jaga-info a {
    border: 4px solid transparent;
    transition: .4s;
}
.footer-middle ul li.jaga-nobe a:hover {
    border: 4px solid #43654D;
    transition: .4s;
}
.footer-middle ul li.jaga-mate a:hover {
    /*border: 4px solid #E50112;*/
		border: 4px solid #0768B3;
    transition: .4s;
}
.footer-middle ul li.jaga-info a:hover {
    border: 4px solid #B72D8C;
    transition: .4s;
}
.footer-middle ul li.btn-ticket {
	border: 1px solid #9C331E;	
}
.footer-middle ul li.btn-ticket a {
	color: #9C331E;
}
.footer-middle ul li.btn-contact {
	border: 1px solid #0768B3;
	color: #0768B3;
}
.footer-middle ul li.btn-contact a {
	color: #0768B3;
	background: #F2F8FC;
}
/* .footer-middle ul:last-child li{
    list-style-type: none;
    border: 1px solid #0768B3;
}
.footer-middle ul:last-child li a{
    padding: 25px 15px;
    border: 4px solid transparent;
    transition: .4s;
}
.footer-middle ul:last-child li a:hover{
    border: 4px solid #0768B3;
    transition: .4s;
}
.footer-middle ul:last-child li a span{
    position: relative;
    padding-right: 27px;
}
.footer-middle ul:last-child li a span::after{
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-46%);
} */
/* .footer-middle ul:last-child li:first-child a span::after{
    background: url(../images/note-icon.svg) no-repeat;
    width: 20px;
    height: 20px;
    background-size: contain;
} */
/* .footer-middle ul:last-child li:first-child a span::after{
    background: url(../images/bus-icon.svg) no-repeat;
    width: 20px;
    height: 20px;
    background-size: contain;
} */
/* .footer-middle ul:last-child li:nth-child(2) a span::after */
/* .footer-middle ul:last-child li:last-child a span::after */
.footer-middle ul li.middle-icon a span{
    position: relative;
    padding-right: clamp(1.6875rem, 1.3593rem + 1.3361vw, 2.5rem);
}
.footer-middle ul li.middle-icon a span::after{
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-46%);
}
.footer-middle ul li.icon-mail a span::after
{
    background: url(../images/email-mail.svg) no-repeat;
    width: clamp(1.25rem, 0.9976rem + 1.0277vw, 1.875rem);
    height: clamp(1.25rem, 0.9976rem + 1.0277vw, 1.875rem);
    background-size: contain;
}
.footer-middle ul li.icon-ticket a span::after
{
    background: url(../images/icon_ticket.svg) no-repeat;
    width: clamp(1.25rem, 0.9976rem + 1.0277vw, 1.875rem);
    height: clamp(1.25rem, 0.9976rem + 1.0277vw, 1.875rem);
    background-size: contain;
}
.footer-middle > *:first-child{
    margin-top: 30px;
}
.footer-middle > *:last-child{
    margin-bottom: 30px;
}
/* .footer-bottom */
#over > footer .footer-bottom{
    position: relative;
    display: grid;
    color: #FFF;
}
#over > footer .footer-bottom::before{
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    background: #0768B3;
    opacity: 0.75;
    z-index: -5;
}
#over > footer .footer-bottom > img{
   min-width: 100%;
    min-height: 100%;
    width: 100%;
    position: absolute;
    display: block;
    object-fit: cover;
    z-index: -10;
}
#over > footer .footer-bottom > .container{
    display: grid;
    row-gap: 30px;
    justify-items: center;
}
#over > footer .footer-bottom address{
    font-style: normal;
    font-family: source-han-sans-japanese, sans-serif;
}
#over > footer .footer-bottom address p:first-child{
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 7px;
}
#over > footer .footer-bottom address p:not(:first-child){
    font-size: 12px;
    font-weight: 400;
    line-height: 18px;
}
.footer-add{
    display: grid;
    row-gap: 30px;
    justify-items: start;
    width: 100%;
}
#over > footer .footer-bottom > .container > *:first-child{
    margin-top: 60px;
}
#over > footer .footer-bottom > .container > *:last-child{
   margin-bottom: 60px;
}
.footer-ul{
    display: none;
}
.footer-ul li{
    list-style-type: none;
}
.footer-ul li a{
    font-size: 13px;
    text-decoration: none;
    color: #FFF;
    line-height: 32px;
    font-family: source-han-sans-japanese, sans-serif;font-weight: 400;
}
#over > footer .footer-bottom small{
    font-size: 10px;
    font-family: source-han-sans-japanese, sans-serif;
    font-weight: 400;
}
.footer-Link{
    position: relative;
    width: 100%;
    height: max-content;
}
.footer-Link a{
    position: relative;
    display: block;
    display: grid;
    justify-items: center;
    align-items: center;
}
.footer-Link a::before{
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    background: #2B2B2B;
    opacity: 0.45;
    z-index: 10;
    transition: .4s;
}
.footer-Link a.hover::before{
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    background: #2B2B2B;
    opacity: 0.45;
    z-index: 10;
    transition: .4s;
}
.footer-Link a:hover::before{
    opacity: 0;
    transition: .4s;
}
.footer-Link button{
    font-size: 13px;
    position: absolute;
    z-index: 100;
    width: 100%;
    max-width: 161px;
    background: #FFF;
    border: none;
    border-radius: 999px;
    padding: 9px 30px;
    margin: 0 10px;
    background: rgba(255, 255, 255, .0);
    border: 1px solid #FFF;
    color: #FFF;
    font-weight: 700;
    transition: .4s;
}
.footer-Link a:hover button{
    background: rgba(255, 255, 255, .75);
    border: 1px solid rgba(255, 255, 255, .0);
    color: #003399;
    transition: .4s;
}
.footer-Link button::after {
    content: "";
    background: url(../images/arrow_window.svg) no-repeat;
    background-size: contain;
    position: absolute;
    bottom: 22px;
    right: 16.5px;
    width: 5.5px;
    height: 5.5px;
    top: 50%;
    transform: translateY(-50%);
}
.footer-Link a:hover button::after {
    filter: invert(90%) sepia(150%) saturate(5000%) hue-rotate(230deg) brightness(105%) contrast(58%);
}
.footer-Link a{
    padding-top: 58.6%;
    width: 100%;
    height: 100%;
    position: relative;
    overflow: hidden;
}
.footer-Link a > img{
    min-width: 100%;
    min-height: 100%;
    width: 100%;
    position: absolute;
    display: block;
    object-fit: cover;
}
/* ---------- パンくずリスト ---------- */
.bread{
    background: #F2F8FC;
    padding-top: 16px;
    padding-bottom: 15px;
}
.bread ol {
    font-size: 0;
    display: flex;
    margin: 0;
    flex-wrap: nowrap;
    white-space: nowrap;
}
.bread li {
    display: inline;
    margin: 0;
    font-size: 12px;
    /* padding: 1px 20px; */
    position: relative;
}
.bread li:not(:first-child)::before{
    content: '>';
    color: #888888;
    position: absolute;
    left: 0px;
}
.bread li a {
    display: block;
    color: #0768B3;
    text-decoration: none;
    padding: 0 3px 0 12px;
}
.bread li:first-child a{
    padding: 0 6px 0 3px;
}
.bread li.active a {
    color: #888888;
}
.bread .container{
    bottom: 10px;
    left: 0;
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
}
/* ---------- 最新のニュース ---------- */
#over > main header + * .Topnews{
    margin-top: 30px;
    margin-bottom: 51px;
}
.home #over > main header + * .Topnews{
    margin-top: 30px;
    margin-bottom: 60px;
}
.home #over > main header + * .Topnews h2 {
    margin-bottom: 30px;
}
#over > main header + * .Topnews section{
    /* border: 1px solid #3366CC; */
    padding: 20px 25px 0 30px;
    margin-bottom: 30px;
}
#over > main header + * .Topnews .topnews-title{
    border-bottom: 1px solid #CCCCCC;
    padding-bottom: 13.5px;
    margin-bottom: 21.5px;
    display: grid;
    justify-items: start;
}
#over > main header + * .Topnews .topnews-title h2,
#over > main header + * .Topnews .topnews-title h3{
    font-size: 20px;
    color: #0768B3;
    border: none;
    margin: 0;
    padding: 0;
}
#over > main header + * .Topnews .topnews-title h2 div,
#over > main header + * .Topnews .topnews-title h3 div{
    font-size: 20px;
}
#over > main header + * .Topnews .topnews-title h2::before,
#over > main header + * .Topnews .topnews-title h3::before{
    display: none;
}
#over > main header + * .Topnews .topnews-title small{
    font-size: 14px;
    color: #8D8D8D;
    font-weight: 400;
}
#over > main header + * .Topnews p{
    font-size: 14px;
    line-height: 24px;
}
/* ---------- ニュースリスト ---------- */
#over > main header + * .archive-list time{
    font-size: 12px;
    color: #888888;
}
#over > main header + * .archive-list > section{
    border-bottom: 1px dotted #3366CC;
}
#over > main header + * .archive-list > section a{
    text-decoration: none;
    padding: 20px 0;
    display: block;
    width: 100%;
    height: 100%;
    transition: .4s;

    display: grid;
    grid-template-columns: max-content auto;
    column-gap: 11px;
    align-items: start;
}
#over > main header + * .archive-list > section a:hover{
    background: #F2F8FC;
}
.home #over > main header + * .archive-list > section a:hover{
    background: #FFF;
    transition: .4s;
}
#over > main header + * .archive-list > section a > div{
    line-height: 24px;
}
#over > main header + * .archive-list > section a p{
    margin: 0;
    font-size: 15px;
    line-height: 24px;
}
.home #over > main header + * .archive-list > section a p{
    color: #2B2B2B;
}
/* ---------- イベントリスト ---------- */
#over main header + section figure figcaption{
    font-style: normal;
    font-size: clamp(12px, 3vw, 14px);
    margin-top: 16px;
    padding: 0;
    color: #888888;
}
#over main header + section .wp-block-gallery figure figcaption{
    color: #FFF;
}
/* ---------- 子ページサイドバー（aside） ---------- */
#over > aside{
    margin-bottom: 45px;
}
#over > aside .side-title{
    position: relative;
    display: grid;
    justify-items: center;
    align-items: center;
    margin-bottom: 18px;
}
#over > aside .side-title::before{
    content: '';
    position: absolute;
    background: #003399;
    width: 100%;
    height: 37px;
    z-index: -5;
}
#over > aside .side-title p{
    font-size: 18px;
    background: #FFF;
    color: #023399;
    padding: 0 20px;
    display: inline-grid;
    justify-items: center;
    font-weight: 700;
}
#over > aside .side-title small{
    font-size: 11px;
    font-family: din-condensed, sans-serif;
    font-weight: 400;
    color: #888888;
    line-height: 1rem;
    text-transform: capitalize;
}
#over > aside ul{
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 11px;
    row-gap: 15px;
}
#over > aside ul li{
    list-style-type: none;
}
#over > aside ul li a{
    text-decoration: none;
}
#over > aside ul li figure{
    display: grid;
    row-gap: 5px;
}
#over > aside ul li figure div{
    padding-bottom: 62.64%;
    width: 100%;
    height: 100%;
    position: relative;
    overflow: hidden;
    display: grid;
    align-items: center;
    justify-items: center;
}
#over > aside ul li figure div img{ 
    min-width: 100%;
    min-height: 100%;
    width: 100%;
    height: 100%;
    position: absolute;
    display: block;
    object-fit: cover;
}
#over > aside ul li figure figcaption{
    font-size: 14px;
    color: #003399;
    font-weight: 700;
    line-height: 20px;
}
#over > aside ul li a figure div::before{
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 5;
    transition: .3s;
}
#over > aside ul li a:hover figure div::before{
    background: #000;
    opacity: 0.45;
    transition: .6s;
}
#over > aside ul li a figure div::after{
    content: '';
    position: absolute;
    width: 68px;
    height: 68px;
    z-index: 10;
    top: 50%;
    left: 50%;
    transform: translate3d(-50%, -50%, 0);
    transition: .3s;
    opacity: 0;
}
#over > aside ul li a:hover figure div::after{
    content: '';
    position: absolute;
    background: url(../images/arrow_circle_right_black.svg) no-repeat;
    width: 68px;
    height: 68px;
    z-index: 10;
    top: 50%;
    left: 50%;
    background-size: contain;
    transition: .6s;
    opacity: 1;
}
#over > aside ul li a:hover figure figcaption{
    color: #003399;
}
#over > aside ul li.active figure div::before{
    background: #000;
    opacity: 0.69;
    transition: .6s;
}
#over > aside ul li.active figure figcaption{
    color: #888888;
}
/* ---------- イベント情報発信用タグ ---------- */
.infoTag{
    font-size: 15px;
    font-weight: 700;
    padding: 8px;
    display: table-cell;
    color: #2B2B2B;
    line-height: 1.6rem;
}
.single .infoTag{
    font-size: 18px;
    margin: 20px 0;
}
/* チケット発売開始・発売中（黄） */
.infoTag.yellow{
    background: #EFDC05;
}
/* 参加者募集中（薄緑） */
.infoTag.green-l{
    background: #D5F8D2;
}
/* 受付終了・中止（灰） */
.infoTag.gray{
    background: #EBEBEB;
}
/* ---------- イベント情報発信用リスト ---------- */
.event-list{
    display: grid;
    row-gap: 20px;
}
.event-list.new-list,
.eventList-wrapper .event-list {
    display: grid;
    row-gap: 20px;
    column-gap: 20px;
    grid-template-columns: 2fr 2fr;
}
.eventList-wrapper .event-list-wrap{
    display: none;
}
.eventList-wrapper .event-list-wrap.active{
    display: block;
}
.event-list section a{
    display: grid;
    row-gap: 15px;
    justify-items: start;
    text-decoration: none;
    transition: .3s;
    padding: 15px 0;
}
#over > main .day-event .event-list section ul li a,
#over > main .day-event .event-list section ul li.list-none{
    padding: 15px;
}
.event-list section a:hover{
    opacity: 0.45;
    transition: .6s;
}
#over > main header + * .event-list section h2,
.home #over > main header + * .event-list section h3{
    font-size: 17px;
    line-height: 26px;
    color: #003399;
    margin: 0;
    padding: 0;
    border: none;
}
#over > main header + * .event-list section h2::before{
    display: none;
}
.home #over > main header + * .event-list section h3::before{
    display: none;
}
#over main .event-list section a > .event-Img{
    padding-bottom: 141.4%;
    width: 100%;
    height: 100%;
    position: relative;
    overflow: hidden;
    display: grid;
    justify-items: center;
    align-items: center;
    background: #F2F8FC;
    margin: 0;
}
.event-list section a > .event-Img::after{
    content: '';
    position: absolute;
    padding: 0;
    width: 57px;
    height: 57px;
    top: 50%;
    left: 50%;
    transform: translate3d(-50%, -50%, 0);
    transition: .3s;
    opacity: 0;
}
.event-list section a:hover > .event-Img::after{
    content: '';
    position: absolute;
    background: url(../images/arrow_circle_right_black.svg) no-repeat;
    background-size: contain;
    transition: .6s;
    opacity: 1;
}
.event-list section a > .event-Img img{
    min-width: 100%;
    min-height: 100%;
    width: 100%;
    height: 100%;
    position: absolute;
    display: block;
    object-fit: cover;
}
.event-list.new-list section a > .event-Img img{
    object-fit: contain;
}
.event-list section a > .event-info{
    font-size: 13px;
    color: #2B2B2B;
}
#over > main header + * .event-list section a > .event-info p{
    line-height: 24px;
    margin: 0;
}
.event-list section a time,
.event-list section a p{
    font-size: 13px;
    color: #2B2B2B;
    line-height: 24px;
}
/* 新規イベントリスト */
.day-event + .pickUp {
    margin-top: 30px;
}
#over .pickUp button{
    margin-top: 7px;
    margin-bottom: 0;
}
.pickUp .event-list section a time{
    color: #888888;
    font-size: 12px;
}
.pickUp .event-list section a div {
    display: grid;
    row-gap: 7px;
    justify-items: start;
    align-content: center;
}
/* 本日の催し */
/* .day-event section > div{
    display: grid;
    row-gap: 13px;
} */
.day-event section > div > div{
    display: grid;
    row-gap: 10px;
    justify-items: start;
    background: #FFFFFF;
}
#over main .day-event section > div > .event-Img{
    padding-bottom: 35.8%;
    display: grid;
    position: relative;
    align-items: center;
    justify-items: center;
}
.day-event .event-list section div > .event-Img img {
    min-width: 100%;
    min-height: 100%;
    width: 100%;
    height: 100%;
    position: absolute;
    display: block;
    object-fit: cover;
}
.day-event .event-list section div time, .day-event .event-list section div p {
    font-size: 13px;
    color: #2B2B2B;
    line-height: 24px;
}
.day-event section > div > p span{
    position: relative;
}
.day-event section > div > p span {
    position: absolute;
    z-index: 10;
    color: #FFF;
    font-size: 18px;
    font-weight: 700;
}
.day-event .event-list section a:hover {
    opacity: 1;
    transition: 0;
}
.day-event .event-list section a:hover > .event-Img:after {
    display: none;
}
.day-event .event-list{
    background: #F2F8FC;
    margin: 0 10px 10px 10px;
    padding: 10px 0 37px;
}
.day-event{
    background: #003399;
    overflow: hidden;
}
.day-event .event-list > .container{
    display: grid;
    row-gap: 20px;
}
.day-event .event-list section {
    box-shadow: 0px 3px 6px #00000029;
    background: #FFF;
}
.day-event .event-list section > p {
    background: #0768B3;
    color: #fff;
    font-weight: 600;
    text-align: center;
    font-size: 18px;
    text-shadow: 0px 3px 6px #00000029;
    padding: 17px;
}
.day-event .event-list section time span {
    border: 1px solid #0768B3;
    margin-right: 10px;
    padding: 0 2px;
}
#over > main .day-event .event-list section ul {
    aspect-ratio: 32 / 9;
    margin: 0;
    background: #FFF;
}
#over > main .day-event .event-list section ul li {
    margin: 0;
    padding: 0;
}
#over > main .day-event .event-list section ul li::before {
    display: none;
}
.home #over > main .day-event h2{
    background: none;
    color: #FFF;
    z-index: 5;
    position: relative;
    display: grid;
    align-items: start;
    justify-items: start;
    margin-bottom: 18px;
    margin-top: 20px;
    border: none;
    padding-left: calc(var(--bs-gutter-x,1.33rem) + 10px);
    font-weight: 700;
    font-size: 14px;
    line-height: 36px;
}
.day-event h2::before{
    display: none;
}
.day-event h2 time{
    font-weight: 400;
}
.day-event h2 em{
    font-size: 36px;
    font-style: normal;
    font-weight: 700;
}
.old-event section a{
    display: grid;
    grid-template-columns: 1fr 2fr;
    column-gap: 7%;
}
#over main .old-event section a .event-Img{
    padding-bottom: 100%;
    height: max-content;
}
.home #over > main header + * .old-event section a > .event-Img + *,
.old-event section a > div > *:first-child{
    margin-top: 0;
}
/* ---------- コンテナ調整 ---------- */
#over > main header + * > .container > *:first-child{
    margin-top: 30px;
}
#over > main header + * > .container > *:last-child{
    margin-bottom: 46px;
}
.overlay {
    display: none;
    visibility: collapse;
    position: fixed;
    inset:0 auto 0 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: rgba(43,43,43,.85);
    z-index: 900;
    display: grid;
    align-items: center;
    align-content: center;
    transition: all 0.6s;
    opacity: 0;
}
.modal-active .overlay{
    visibility: visible;
    transition: all 0.6s;
    opacity: 1;
}
.overlay img{
    /* max-width: 80vw;
    max-height: 80vh; */
    max-width: 80vw;
    object-fit: contain;
}
.modalContent {
    position: relative;
    inset:0;
    overflow: hidden;
    display: grid;
    justify-items: center;
    align-items: center;
    margin-right:var(--bs-gutter-x,1.66rem);
    margin-left:var(--bs-gutter-x,1.66rem);
}
.modalContent img{
    min-width: 100%;
    min-height: 100%;
    width: 100%;
    position: relative;
    display: block;
    object-fit: cover;
}
.modal-window{
    width: 100%;
    height: 100%;
    margin: 0 auto;
    max-width: 1021px;

    overflow: auto;
}
.modal-active {
    overflow:hidden;
}
.close-button{
    position: absolute;
    background: #2B2B2B;
    box-shadow: 0px 3px 6px #000029;
    width: 48px;
    height: 48px;
    z-index: 950;
    top: 20px;
    right: 20px;
    border-radius: 50%;
    opacity: 1;
    display: grid;
    justify-items: center;
    align-items: center;
    cursor: pointer;
}
.close-button > div{
    width: fit-content;
    height: 100%;
    display: grid;
    width: 16px;
    height: 16px;
    align-content: center;
    justify-content: center;
}
.close-button span{
    background: #FFF;
    width: 18px;
    height: 1px;
}
.close-button span:first-child{
    transform: translateY(1px) rotate(45deg);
}
.close-button span:last-child{
    transform: rotate(-45deg);
}
@media screen and (min-width:400px){
    .footer-add{
        justify-content: center;
    }
    .footer-Link {
    position: relative;
    width: 100%;
    height: max-content;
    min-width: 350px;
}
}
/* ---------- レスポンシブ　(768px以上) ---------- */
@media screen and (min-width:768px){
    html, body{
        font-size: 17px;
        line-height: 32px;
    }
    body.open{
    overflow: hidden;
}
    #over > header > h1, #over > header > p {
        margin-right: 16px;
        margin-left: 16px;
        max-width: 303px;
    }
    #over > header {
        height: 84px;
    }
    .home #over > main header {
        height: calc(150vw + 84px);
        min-height: 602px;
        max-height: 768px;
    }
    .home #over > main header {
        height: 100vh;
    }
    .home #over > main header .slick-list li div{
        height: 100vh;
    }
    .header-hamburger {
        background: #0768B3;
        width: 84px;
        height: 84px;
    }
    .hamburger span {
        width: 32px;
        height: 1px;
        background-color: #FFF;
        margin-bottom: 8px;
    }
    .header-middle .sns-icon{
        display: block;
        margin-right: 72px;
        padding-right: 44px;
        display: grid;
        grid-template-columns: max-content max-content max-content max-content;
        margin-right: 72px;
        padding-right: 44px;
        column-gap: 15px;
    }
    /* .header-middle .sns-icon a:nth-child(3) > img {
        filter: invert(36%) sepia(45%) saturate(4510%) hue-rotate(195deg) brightness(91%) contrast(94%);
    } */
    #over > header.open .header-hamburger {
        background: #0768B3;
    }
    /* グローバルナビゲーション */
    .nav-wrapper nav {
        margin-top: 84px;
    }
    #over > header .nav-wrapper {
        position: fixed;
        z-index: 900;
        top: 0;
        width: 65vw;
        max-width: 777px;
        height: 100%;
        background: #0768B3;
        transition: all 0.7s;
        visibility: visible;
        opacity: 1;
        right: -70vw;
        max-width: 560px;
    }
    #over > header.open .nav-wrapper {
        position: fixed;
        z-index: 900;
        top: 0;
        height: 100%;
        background: #0768B3;
        transition: all 0.7s;
        right: 0;
    }
    /* ---------- フッター（footer） ---------- */
    /* .footer-top（予約案内） */
    #over > footer .footer-top{
        display: grid;
        grid-template-columns: 50% 50%;
    }
    #over > footer .footer-top a{
        font-size: 24px;
        height: 20vw;
        max-height: 215px;
    }
    #over > footer .footer-top p{
        font-size: 24px;
        max-height: 215px;
        padding-right: 50px;
        position: relative;
    }
    #over > footer .footer-top p::before{
        position: absolute;
        bottom: -15px;
        left: 0;
        content: '';
        width: 100%;
        height: 8px;
        background: #64BBFF;
        transform: scale(0, 1);
        transform-origin: left top;
        transition: transform .4s;
    }
    #over > footer .footer-top a:hover p::before{
        transform: scale(1, 1);
    }
    #over > footer .footer-top a:first-child p::after,
    #over > footer .footer-top a:last-child p::after{
        width: 32px;
        height: 32px;
    }
    .footer-middle > .container {
        row-gap: 30px;
    }
    .footer-middle > *:last-child {
        margin-bottom: 90px;
    }
    .footer-middle > *:first-child {
        margin-top: 90px;
    }
    /* .footer-bottom */
    #over > footer .footer-bottom{
        position: relative;
    }
    #over > footer .footer-bottom > .container{
        display: grid;
        row-gap: 30px;
        justify-items: center;
    }
    #over > footer .footer-bottom address p:first-child{
        font-size: 18px;
        margin-bottom: 20px;
        line-height: 24px;
    }
    #over > footer .footer-bottom address p:not(:first-child) {
        font-size: 13px;
        line-height: 22px;
    }
    .footer-add{
        display: grid;
        row-gap: 30px;
    }
    .footer-ul{
        display: none;
    }
    .footer-ul li{
        list-style-type: none;
    }
    .footer-ul li a{
        font-size: 13px;
        text-decoration: none;
        line-height: 32px;
        font-family: source-han-sans-japanese, sans-serif;font-weight: 400;
    }
    .footer-ul > ul > li > ul li{
        padding-left: 19px;
        position: relative;
    }
    .footer-ul > ul > li > ul li:before{
        content: '';
        position: absolute;
        background: #FFF;
        width: 8px;
        height: 1px;
        left: 5.5px;
        top: 18px;
    }
    #over > footer .footer-bottom small{
        font-size: 11px;
    }
    /* ---------- ニュースリスト ---------- */
    #over > main header + * .archive-list time{
        font-size: 14px;
        color: #888888;
    }
    #over > main header + * .archive-list > section a > div{
        line-height: 30px;
    }
    #over > main header + * .archive-list > section a{
        column-gap: 25px;
    }
    #over > main header + * .archive-list > section a p{
        margin: 0;
        font-size: 17px;
        line-height: 30px;
    }
    /* ---------- 最新のニュース ---------- */
    #over > main header + * .Topnews{
        margin-top: 60px;
        margin-bottom: 62px;
    }
    .home #over > main header + * .Topnews{
        margin-top: 60px;
        margin-bottom: 107px;
    }
    .home #over > main header + * .Topnews h2 {
        margin-bottom: 45px;
    }
    #over > main header + * .Topnews section {
        padding: 30px 30px 0 30px;
        margin-bottom: 44px;
    }
    #over > main header + * .event-list section h2{
    font-size: 17px;
    line-height: 30px;
    }
    .home .event-list section a > h3{
        order: 0;
    }
    .home .event-list section a > time{
        order: 1;
    }
    .home .event-list section a > span{
        order: 2;
    }
    .home #over > main header + * .new-list section h3 {
        font-size: 17px;
    }
    .home #over > main header + * .pickUp section a time {
        font-size: 13px;
    }
    .pickUp .event-list section a div {
        row-gap: 5px;
    }
    .pickUp > .container {
        row-gap: 30px;
    }
    .old-event a > div{
        display: flex;
        flex-direction: column;
    }
    .old-event a > div h3{
        order: 0;
    }
    .old-event a > div time{
        order: 1;
    }
    .old-event a > div span{
        order: 2;
    }
    .event-list{
        grid-template-columns: repeat(auto-fit, minmax(345px, 1fr));
        column-gap: 30px;
    }
    .day-event + .pickUp {
        margin-top: 60px;
    }
    .pickUp .event-list{
        grid-template-columns: repeat(auto-fill, minmax(345px, 1fr));
        column-gap: 30px;
    }
    .pickUp .event-list.new-list {
        grid-template-columns: 1fr 1fr;
        column-gap: 30px;
    }
    .eventList-wrapper .event-list{
        grid-template-columns: repeat(auto-fill, minmax(188px, 1fr));
        column-gap: 30px;
        row-gap: 45px;
    }
    .day-event {
        display: grid;
        grid-template-columns: 1fr 5fr;
        align-items: start;
    }
    #over main .day-event section > div > .event-Img{
        padding-bottom: 47%;
    }
    .home #over > main article .day-event h2 {
        margin-top: 70px;
        justify-content: center;
        padding: 0;
    }
    .day-event .event-list > .container {
        grid-template-columns: repeat(auto-fit, minmax(255px, 1fr));
        column-gap: 15px;
        padding: 0 30px;
    }
    .day-event .event-list {
        margin: 10px;
        padding: 60px 0;
    }
    #over >main .day-event .event-list section ul {
        aspect-ratio: 16 / 9;
    }
    #over > aside{
        margin-bottom: 90px;
    }
    #over > aside .side-title {
        margin-bottom: 62px;
    }
    #over > aside ul {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(265px, 1fr));
        column-gap: 11px;
        row-gap: 15px;
    }
    /* ---------- 最新のニュース ---------- */
    #over > main header + * .Topnews .topnews-title{
        display: grid;
        justify-items: start;
        grid-template-columns: auto auto;
        justify-content: start;
    }
    .pickUp > .container{
        margin-top: 47px;
        margin-bottom: 46px;
        display: grid;
        row-gap: 38px;
    }
    #over .pickUp button{
        margin-top: 16px;
    }
    /* ---------- 子ページサイドバー（aside） ---------- */
    #over > aside{
    margin-bottom: 90px;
    }
    /* ---------- コンテナ調整 ---------- */
    #over > main header + * > .container > *:first-child{
        margin-top: 60px;
    }
    #over > main header + * > .container > *:last-child{
        margin-bottom: 90px;
    }
    /* ---------- パンくずリスト ---------- */
    .bread li {
        font-size: 14px;
    }
    .bread li:not(:first-child)::before{
        content: '>';
        color: #888888;
        position: absolute;
        left: 0px;
    }
    .bread li a {
        padding: 0 8px 0 16px;
    }
    .bread li:first-child a{
        padding: 0 8px 0 5px;
    }
    .archive-list{
        max-width: 720px;
        margin: 0 auto;
    }
}
/* ---------- レスポンシブ　(992px以上) ---------- */
@media screen and (min-width:992px){
    /* ---------- フッター（footer） ---------- */
    .footer-middle ul {
        row-gap: 30px;
    }
    .footer-middle ul:first-child{
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: 30px;
    }
    .footer-middle ul:last-child{
        display: grid;
        grid-template-columns: 1fr 1fr;
        column-gap: 30px;
    }
    .footer-middle ul li:last-child {
        width: 100%;
        grid-column: 1 / 3;	
    }
    #over > footer .footer-bottom > .container > *:first-child{
        margin-top: 90px;
    }
    #over > footer .footer-bottom > .container > *:last-child{
       margin-bottom: 90px;
    }
    .archive-list{
        max-width: 800px;
    }
    .eventList-wrapper .event-list,
    .pickUp .event-list.new-list {
        grid-template-columns: repeat(4, 1fr);
    }
}
@media screen and (min-width: 1200px){
    .day-event .event-list > .container {
        grid-template-columns: repeat(4, [col-start] 4fr [col-end]);
        column-gap: 15px;
        padding: 0 30px;
    }
    .footer-Link {
        min-width: auto;
        display: block;
    }
    #over > footer .footer-bottom > .container{
        display: grid;
        row-gap: 38px;
    }
    .footer-add{
        display: grid;
        row-gap: 30px;
        grid-template-columns: 1fr 1fr 1fr;
        column-gap: 30px;
    }
    .footer-ul{
        display: grid;
        grid-template-columns: max-content max-content;
        column-gap: 60px;
    }
    .archive-list{
        max-width: 920px;
    }
}
/* ---------- レスポンシブ　(1600px以上) ---------- */
@media screen and (min-width:1600px){
    /* ---------- ヘッダー（header） ---------- */
    #over > header,
    .home #over > header{
        position: fixed;
    }
    body:not(.home) #over > main header{
        margin-top: 84px;
    }
    /* ---------- フッター（footer） ---------- */
    .header-hamburger {
        display: none;
    }
    #over > header .nav-wrapper {
        visibility: visible;
        opacity: 1;
        position: static;
        width: auto;
        max-width: none;
        background: transparent;
    }
    #over > header .nav-inner {
        display: flex;
        overflow-y: inherit;
    }
    .header-right{
        display: flex;
        flex-direction: row-reverse;
    }
    .nav-wrapper nav {
        display: flex;
        flex-direction: row;
        align-items: center;
        white-space: nowrap;
        margin-top: 0;
    }
    .nav-wrapper nav > ul,
    .nav-wrapper nav > ul:last-child{
        display: flex;
        margin: 0;
    }
    .nav-wrapper nav ul li{
        list-style-type: none;
    }
    .nav-wrapper nav > ul> li:hover{
        background: transparent;
        transition: none;
    }
    .nav-wrapper nav > ul:first-child >li > a {
        color: #2B2B2B;
        font-size: 18px;
        padding: 26px;
        position: relative;
        transition: .4s;
    }
    .nav-wrapper nav > ul:first-child > li > a::after{
        content: '';
        position: absolute;
        bottom: 0;
        left: 0;
        background: #FFF;
        width: 100%;
        height: 5px;
        transition: .4s;
        overflow: hidden;
    }
    .nav-wrapper nav ul:first-child > li:hover > a::after{
        background: #0768B3;
    }
    .nav-wrapper nav > ul:last-child > li > a {
        color: #2B2B2B;
        font-size: 14px;
    }
    .nav-wrapper .sns-icon {
        display: none;
    }
    .nav-wrapper nav > ul:last-child li::before,
    .nav-wrapper nav > ul:last-child li:nth-child(even)::before{
        content: '';
        position: absolute;
        width: 1px;
        height: 20px;
        background: #707070;
        left: 0;
        opacity: 1;
        top: 52%;
        transform: translateY(-52%);
    }
    .nav-wrapper nav > ul:last-child li:first-child:before{
        display: none;
    }
     /* サブメニュー */
     .nav-wrapper nav > ul > li > ul{
        display: grid;
        position: absolute;
        top: 84px;
        z-index: 500;
        background: #FFF;
        width: 146px;
        visibility: hidden;
        opacity: 0;
        transition: .3s ease-out;
        overflow: visible;
        font-size: 16px;
    }
    .nav-wrapper nav > ul > li:hover > a + ul {
        visibility: visible;
        opacity: 1;
    }
    .nav-wrapper nav > ul > li > ul a:hover{
        background: #003399;
        color: #FFF;
    }
    .header-middle{
        display: grid;
        align-items: center;
    }
    .header-middle .sns-icon {
        margin: 0 15px;
        padding: 0;
    }
    #over > header > h1, #over > header > p {
        margin-right: 16px;
        margin-left: 16px;
        max-width: 303px;
    }
}