@charset "utf-8";
html,body{
 padding: 0;
 margin: 0;
}
html{scroll-behavior: smooth;}
body{position: relative;color:#3B3B3B;font-family: Avenir, "Roboto", "游ゴシック Medium", "Yu Gothic Medium", "Yu Gothic","ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
 font-weight: normal;
 min-width: inherit;
}
a{
 color:currentColor;
 text-decoration: none;
 transition:all .2s linear;
}
#TOP header#GH{
 position:fixed;
 top:0;
 left:0;
 width:100%;
 color:#fff;
 z-index: +3;
}
#TOP header#GH .container{
 display: flex;
 justify-content: space-between;
 align-items: center;
}
#TOP header#GH .container nav ul.mn li.cl ul.sb li a{
 display: block;
 padding-right: 2em;
 position: relative;
}
#TOP header#GH .container nav ul.mn li.cl ul.sb li a:after{
 content: "";
 position: absolute;
 right:0;
 top:40%;
 width:.5em;
 height:.5em;
 border-top:1px solid #3B3B3B;
 border-right:1px solid #3B3B3B;
 transform: rotate(45deg);
}
#TOP header#GH .container nav ul.mn li a small{
 display: block;
 font-size: .875em;
 font-feature-settings: "palt" 1;
}
#TOP .container{
 max-width: 1200px;
 margin: 0 auto;
}
#TOP #MV{
 background-color: #ddd;
 width:100%;
 max-height: 800px;
 position: relative;
 overflow-y: hidden;
}
#TOP #MV #main-vis{
 position: absolute;
 top:0;
 left:0;
 right:0;
 bottom: 0;
}
#TOP #MV #main-vis:after{
 content: "";
 display: block;
 position: absolute;
 top:0;
 left:0;
 right:0;
 bottom: 0;
 background-color: rgba(0,0,0,0.42);
}
.splide__slide{
 display:flex;
 justify-content: center;
 align-items: center;
 max-height: 800px;
 width:100%;
 height:100%;
}
#TOP #MV .container{
 position: relative;
 height: 100%;
 display: flex;
 justify-content: center;
 align-items: center;
}
#TOP #MV .scroll{
 display: block;
 position: absolute;
 font-size: .857em;
 color:#fff;
 bottom:0;
 left:50%;
 transform: translateX(-50%);
 padding: 5em 0 1em;
 overflow: hidden;
 z-index: +2;
}
#TOP #MV .scroll a{ display: block;}
#TOP #MV .scroll:before{
 content: "";
 display: block;
 width:1px;
 height:4.3em;
 position: absolute;
 top:0;
 left:50%;
 background-color: #fff;
 transform: translate(-50%,-100%);
 animation: sc 2s ease infinite;
 z-index: +2;
}
@keyframes sc{
 0%{
  transform: translate(-50%,-100%);
  opacity: 1;
 }
 100%{
  transform: translate(-50%,200%);
  opacity: 0.1;
 }
}
#TOP #GF{
 box-shadow: 0px -1px 6px rgba(0,0,0,0.16);
}
#TOP #GF .container{
 text-align: right;
 font-size: .714285em;
 padding: 3em 0;
}
#TOP .sec#MENU nav a {
 position: relative;
 display: block;
}
#TOP .sec#MENU nav a span{
 display: block;
 font-size: .8571em;
}
#TOP .sec#MENU nav a span.MORE{
 position: absolute;
 bottom:0;
 right:0;
}
#TOP .sec#MENU nav a .flex{
 display: flex;
 align-items: center;
 gap:1.2857em;
}
#TOP .sec#MENU nav a .flex article h2{
 font-size: 1.57em;
 font-weight: 600;
}
#TOP .sec#MENU nav a .flex + p{
 margin-top: 1.57em;
 font-feature-settings: "palt" 1;
 letter-spacing: .04em;
 line-height: 1.5;
}
#TOP .sec#MENU nav a i{
 width:5.7857em;
 height:5.7857em;
 display:grid;
 place-content:center;
 background-color: #EBEBEB;
 clip-path: circle(50% at 50% 50%);
}
#TOTOP{
 max-width: 1280px;
 position: sticky;
 bottom:10px;
 height:4.5em;
}
#TOTOP a{
 display: block;
 position: absolute;
 right:0;
 width:3.42857em;
 height:3.42857em;
 background-color: #3B3B3B;
 clip-path: circle(50% at 50% 50%);
}
#TOTOP a:after{
 content: "";
 position: absolute;
 left:50%;
 top:50%;
 width:.75em;
 height:.75em;
 border-top:1px solid #fff;
 border-right:1px solid #fff;
 transform: rotate(-45deg) translate(-25%,-40%);
}
#TOP header#GH.scrolled {
 background-color: #fff;
 color: #3B3B3B;
 box-shadow: 0 1px 1px rgba(0, 0, 0, 0.15);
}
#TOP header#GH.scrolled .container nav ul.mn > li > a{
 border-bottom-color:#3B3B3B;
}
#TOP .top-contents-news-list{
 overflow-y: scroll;
}
/* CSS Document */
@media screen and (min-width:641px){
 a:hover{opacity: .7;}
 #TOP .container{
  width:calc(100% - 6em);
 }
 #TOP .container.wrap-small{
  max-width: 840px;
 }
 #TOP header#GH #LOGO{padding: 2em 0;}
 #TOP header#GH .container nav ul.mn > li{
  position: relative;
  height: auto;
 }
 #TOP header#GH .container nav ul.mn > li > a{
  padding: .5em 0;
  border-bottom: 1px solid #fff;
 }
 #TOP header#GH .container nav ul.mn{
  display: flex;
  gap:2.75em;
 }
 #TOP header#GH .container nav ul.mn li.cl ul.sb{
  display: block;
  visibility: hidden;
  position: absolute;
  min-width: 12em;
  left:50%;
  bottom:-.5em;
  opacity: 0;
  transition:all .3s linear;
  transform: translate(-50%,100%);
  z-index: -1;
 }
 #TOP header#GH .container nav ul.mn li.cl ul.sb li{
  white-space: nowrap;
 }
 #TOP header#GH .container nav ul.mn li.cl.activ ul.sb:before{
  content: "";
  position: absolute;
  width:1em;
  height: 1em;
  background-color:#fff;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  top:1px;
  left:50%;
  transform: translate(-50%,-100%);
 }
 #TOP header#GH .container nav ul.mn li.cl.activ ul.sb{
  visibility: visible;
  opacity: 1;
  background-color: #fff;
  color:#3B3B3B;
  transform: translate(-50%, calc(100% + 1em));
  padding: 1.5em;
  border-radius: 2em;
  box-shadow: 1px 1px 3px 0px rgba(0,0,0,0.17);
  z-index: +1;
 }
 #TOP header#GH .container nav ul.mn li.cl.activ ul.sb li:not(:first-child){
  margin-top: 1em;  
 }
 #TOP #MV{
  aspect-ratio:128 / 80 ;
 }
 .splide__slide img{width:100%;}
 #TOP .sec#MENU{
  padding: 9.5em 0;
 }
 #TOP .sec#MENU nav{
  display: flex;
  gap:4em;
  position: relative;
  flex-wrap: wrap;
  justify-content: center;
 }
 #TOP .sec#MENU nav a{width:calc(50% - 2em);}
 #TOP .sec#MENU nav:after{
  content: "";
  width:1px;
  height:50%;
  position: absolute;
  left:50%;
  top:0;
  background-color: #BCBCBC;
 }
 #TOP .sec#MENU nav a span.MORE:after{
  content: "";
  display: inline-block;
  width:.5em;
  height:.5em;
  margin-left: .5em;
  border-top:1px solid #3B3B3B;
  border-right:1px solid #3B3B3B;
  transform: rotate(45deg) translateY(-.125em);
 }
 #TOP .sec#MENU nav a .flex + p{
  max-width:calc(100% - 5.25em);
 font-size: clamp(.92587rem, 0.67rem + 0.54vw, 1.4rem);
 }
 #TOP .top-contents-news-list{
  max-height: 20em;
 }
 .eventfair{
   margin-top: 30px;
 }
}
@media screen and (max-width:640px){
 body{
  max-width: 100vw;
  overflow-x: hidden;
 }
 body#TOP .globalNav-btn {width:40px;height:60px;}
 body#TOP .globalNav-btn:before {color: #fff;}
 body#TOP header#GH.scrolled .globalNav-btn:before {color: #3b3b3b;}
 body#TOP.gNav-active .globalNav-btn,body#TOP.gNav-active .globalNav-btn:before {color:#3B3B3B;}
 #TOP header#GH #LOGO{padding: .5em 0;max-width: 65vw;}
 #TOP header#GH .container nav ul.mn{
  position: absolute;
  top:0;
  left:0;
  width:100%;
  height:100dvh;
  background-color: #fff;
  color:#3B3B3B;
  transition: all .5s linear;
  padding: 6em 2em 0;
  transform: translateX(100vw);
  opacity: 0.5;
 }
 body#TOP.gNav-active header#GH .container nav ul.mn{
  transform: translateX(0);
  opacity: 1;
 }
 #TOP header#GH .container nav ul.mn > li a{
  display:block;
  position: relative;
  padding: 1em 2em 1em 0;
 }
 #TOP header#GH .container nav ul.mn > li:not(:first-child){
  margin-top: 1.5em;
  padding-top: 1em;
  border-top:1px solid #D3D3D3;
 }
 #TOP header#GH .container nav ul.mn > li > a:after{
  content: "";
  position: absolute;
  right:0;
  top:40%;
  width:.5em;
  height:.5em;
  border-top:1px solid #3B3B3B;
  border-right:1px solid #3B3B3B;
  transform: rotate(45deg);
 }
 #TOP header#GH .container nav ul.mn li.cl ul.sb li{
  position: relative;
  padding-left: 3em;
 }
 #TOP header#GH .container nav ul.mn li.cl ul.sb li:before{
  content: "";
  display: block;
  position: absolute;
  width: 1.325em;
  height:1px;
  background-color: #707070;
  left:0;
  top:1.75em;
 }
 #TOP #MV .container h1 figure{max-width:70vw;margin:auto;}
 #TOP .container{
  width:calc(100% - 6vw);
 }
 #TOP #MV{
  aspect-ratio:41 / 50 ;
 }
 .splide__slide img{
  max-width: inherit;
  height:100%;
  max-height: 121.9512vw;
  width:auto;
 }
 #TOP .sec#MENU{
  padding: 2em 0;
 }
 #TOP .sec#MENU nav a:after{
  content: "";
  position: absolute;
  right:0;
  top:40%;
  width:.5em;
  height:.5em;
  border-top:1px solid #3B3B3B;
  border-right:1px solid #3B3B3B;
  transform: rotate(45deg);
 }
 #TOP .sec#MENU nav a:not(:first-child){
  margin-top: 3.3571em;
 }
 #TOP .sec#MENU nav a:not(:first-child):before{
  content: "";
  display: block;
  position: absolute;
  left:0;
  top:-1.67857em;
  width:100%;
  height:1px;
  border-top:1px solid #BCBCBC;
 }
 #TOP .top-contents-news-list{
  max-height: 25em;
 }
 .top-contents-news-list-item {
  display: block;
 }
}
