@charset "utf-8";

/*----------------------------------------------
	.l_wrap
---------------------------------------------*/
.l_wrap {
	max-width: var(--wrap);
	margin: 0 auto;
}
.l_wrap_lg {
	max-width: unset;
	margin: 0 calc(var(--margin) + 2vw);
}
.l_wrap_lg_jp {
	max-width: unset;
	margin: 0 calc(var(--margin) + 6vw);
}


/*----------------------------------------------
	.l_page
---------------------------------------------*/
.l_page{
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.l_page::after{
  content: '';
  background: url(../images/img_bg.webp) repeat var(--background);
  width: 100%;
  height: 100%;
  background-size: 216px;
  background-position: -1px -1px;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}


/*----------------------------------------------
	.l_mv
---------------------------------------------*/
.l_mv{
  /* height: calc(100svh - var(--header));
  height: 100svh; */
  position: relative;
  min-height: 850px;
  margin-bottom: 50px;
}
.en .l_mv{
  /* height: 130svh; */
  min-height: 1110px;
}

/* 中ページ */
body:not(#top) .l_mv{
  min-height: unset;
  height: unset;
}


/*----------------------------------------------
	.l_mv_inner
---------------------------------------------*/
.l_mv_inner{
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 3vw;
  margin: 0 var(--margin);
  margin-top: calc(var(--header) + 30px);
}
.en .l_mv_inner{
  align-items: flex-start;
}
.l_mv_inner .is_left{
  display: flex;
  flex-direction: column;
  /* height: calc(100svh - var(--header)); */
  justify-content: center;
  position: relative;
  width: 31.5vw;
  min-width: 480px;
  margin: 0 auto;
  min-height: 700px;
  z-index: 1;
}
.en .l_mv_inner .is_left{
  width: 40.5vw;
}
.l_mv_inner .is_right{
  max-width: calc(100vw / 2 - var(--margin) - 10px);
  width: 100%;
  max-height: 1300px;
  height: 110svh;
  /* min-height: 100svh; */
  border-radius: var(--radius);
  overflow: hidden;
  min-width: 640px;
  min-height: 1000px;
}
.en .l_mv_inner .is_right{
  min-height: 1200px;
  height: 132svh;
}


/*----------------------------------------------
	.l_header
---------------------------------------------*/
.l_header_area{
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  padding-right: var(--margin);
  gap: 30px;
  width: 100%;
  min-width: calc(var(--wrap) + var(--margin) * 2);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99;
}

/* スクロール時 */
.l_header_area.is_active{
  background: #fff;
  box-shadow: var(--shadow);
}


/*----------------------------------------------
	.l_timetable_wrap
---------------------------------------------*/
.l_timetable_wrap{
  height: 500px;
  overflow: hidden;
  position: relative;
}
.l_timetable_wrap::after{
  content: '';
  background: linear-gradient(-180deg,#f5f7f700 0%,  var(--background) 100%);
  width: 100%;
  height: 200px;
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 1;
}
.l_timetable_wrap.is_open::after{
  content: none;
}


/*----------------------------------------------
	.l_speaker_wrap
---------------------------------------------*/
.l_speaker_wrap{
  height: 500px;
  overflow: hidden;
  position: relative;
}
/* .l_speaker_wrap::after{
  content: '';
  background: linear-gradient(-180deg,#f5f7f700 0%,  var(--background) 100%);
  width: 100%;
  height: 200px;
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 1;
} */
.l_speaker_wrap.is_open::after{
  content: none;
}


/*----------------------------------------------
	.l_timetable
---------------------------------------------*/
.l_timetable{
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 70px 1fr;
  width: 100%;
  background: #fff;
  box-shadow: var(--shadow);
  border-top: 5px solid var(--main_color);
}

/*----------------------------------------------
	.l_time
---------------------------------------------*/
.l_time{
  background: #E3E3E3;
  padding-top: 86px;
}

/*----------------------------------------------
	.l_table
---------------------------------------------*/
.l_table{
  padding-top: 20px;
}

/*----------------------------------------------
	.l_nav
---------------------------------------------*/
.l_nav, .l_nav ul  {
  display: flex;
  gap: 30px 40px;
  list-style-type: none;
  align-items: center;
}

@media screen and (max-width: 1500px) {
  .l_nav, .l_nav ul  {
    gap: 30px 30px;
  }
}

.l_nav {
  flex-wrap: wrap;
  justify-content: flex-end;
}

.l_nav ul li {
  text-align: center;
  flex-shrink: 0;
}

.l_nav ul li a, .l_nav ul li span{
  display: block;
  position: relative;
  color: var(--black);
  font-weight: bold;
  font-size: 1.8rem;
  font-family: var(--roboto);
  text-decoration: none;
  transition: 0.1s;
}

.l_nav ul li.active a, .l_nav ul li a:hover {
  color: var(--sub_color);
}

.l_nav ul li.active a::after {
  position: absolute;
  bottom: -8px;
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 5px;
  height: 5px;
  border-radius: 10px;
  background: var(--sub_color);
  content: "";
  transition: 0.1s;
}
.l_nav ul li.is_icon {
  display: none;
}

.l_nav ul li.is_icon a:after {
  content: none;
}
.l_nav ul li.is_icon a img {
  width: 40px;
  height: 40px;
}

/* ヘッダースクロール時 */
.l_header_area.is_active .l_nav, .l_header_area.is_active .l_nav ul  {
  gap: 10px 30px;
}

.l_header_area.is_active .l_nav ul li a  {
  font-size: 1.6rem;
}


/* 中ページ */
body:not(#top) .l_nav ul li a {
  color: #fff;
}
body:not(#top) .l_nav ul li.is_active a {
  color: #fff;
}
body:not(#top) .l_nav ul li a:hover {
  opacity: 0.7;
}
body:not(#top) .l_nav ul li.active a::after {
  background: #fff;
}

body:not(#top) .l_header_area.is_active .l_nav ul li a {
  color: var(--black);
}
body:not(#top) .l_header_area.is_active .l_nav ul li.active a {
  color: var(--main_color)
}
body:not(#top) .l_header_area.is_active .l_nav ul li a:hover {
  opacity: 1;
}
body:not(#top) .l_header_area.is_active .l_nav ul li.active a::after {
  background: var(--main_color)
}

/*----------------------------------------------
	.l_main
---------------------------------------------*/
.l_main{
  position: relative;
  width: 100%;
  padding: 30px 0;
}


/*----------------------------------------------
	.l_director
---------------------------------------------*/
.l_director{
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 30px 20px;
}
.l_director.is04{
  grid-template-columns: 1fr 1fr 1fr 1fr;
}


/*----------------------------------------------
	.l_footer
---------------------------------------------*/
.l_footer{
  margin-top: 100px;
}


/*----------------------------------------------
	.l_access
---------------------------------------------*/
.l_access{
  background: var(--main_color);
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.l_access .is_dtl{
  margin-left: max(calc((100vw - var(--wrap)) / 2 - 7px), var(--margin));
  padding: 70px 0;
  color: #fff;
}
.l_access .is_map iframe{
  height: 100%;
  width: 100%;
}

/*----------------------------------------------
	.l_copy
---------------------------------------------*/
.l_copy{
  background: #fff;
  padding: 10px var(--margin);
}
.l_copy .is_inner{
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.l_copy .is_contact{
  padding: 20px 0 30px;
}


/*----------------------------------------------
	.l_inner_header
---------------------------------------------*/
.l_inner_header{
  height: 400px;
  width: 100%;
  background: url(../images/img_inner_header.webp) no-repeat;
  background-size: cover;
  position: relative;
  margin-bottom: 75px;
}

/*----------------------------------------------
	.l_speaker
---------------------------------------------*/
.l_speaker{
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 30px 20px;
  margin: 0 auto;
  width: 85%;
}

/*----------------------------------------------
	.l_contact
---------------------------------------------*/
.l_contact{
  padding: 20px 0;
  background: #fff;
}

/*----------------------------------------------
	.l_timetable
---------------------------------------------*/
.l_timetable_btn{
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 30px;
  margin-left: auto;
  width: 100%;
}