@charset "utf-8";

.u_mat0 { margin-top: 0; }
.u_mat5 { margin-top: 5px; }
.u_mat10 { margin-top: 10px; }
.u_mat20 { margin-top: 20px; }
.u_mat30 { margin-top: 30px; }
.u_mat40 { margin-top: 40px; }
.u_mat50 { margin-top: 50px; }
.u_mat70 { margin-top: 70px; }

.u_mab0 { margin-bottom: 0; }
.u_mab5 { margin-bottom: 5px; }
.u_mab10 { margin-bottom: 10px; }
.u_mab15 { margin-bottom: 15px; }
.u_mab20 { margin-bottom: 20px; }
.u_mab25 { margin-bottom: 25px; }
.u_mab30 { margin-bottom: 30px; }
.u_mab40 { margin-bottom: 40px; }
.u_mab50 { margin-bottom: 50px; }
.u_mab60 { margin-bottom: 60px; }
.u_mab70 { margin-bottom: 70px; }
.u_mab100 { margin-bottom: 100px; }
.u_mab150 { margin-bottom: 150px; }

.u_mar10 { margin-right: 10px; }
.u_mar20 { margin-right: 20px; }
.u_mar80 { margin-right: 80px; }

.u_mal_auto { margin-left: auto; }
.u_mal10 { margin-left: 10px; }
.u_mal20 { margin-left: 20px; }

.u_margin_auto{ margin: 0 auto; }

.u_ALcenter { text-align: center!important; }
.u_ALright { text-align: right!important; }
.u_ALleft { text-align: left!important; }
.u_ALjustify{ text-align: justify!important; }
.u_ALtop { vertical-align: top; }
.u_ALmiddle { vertical-align: middle; }
.u_ALbottom { vertical-align: bottom; }

.u_float_left { float: left; }
.u_float_right { float: right; }

.u_red { color: #e31010; }
.u_black { color: #333; }
.u_white { color: #fff; }
.u_yellow { color: #f8e187; }
.u_green { color: #3F920F; }
.u_main_color { color: var(--main_color); }
.u_sub_color { color: var(--sub_color); }

.u_bold { font-weight: bold; }
.u_fw_normal { font-weight: normal; }
.u_underline { text-decoration: underline; }
.u_strike { text-decoration: line-through; }
.u_no_deco { text-decoration: none; }

.u_img_floatL { float: left; margin-right: 20px; }
.u_img_floatR { float: right; margin-left: 20px; }

.u_fs11 { font-size: 1.1rem; }
.u_fs12 { font-size: 1.2rem; }
.u_fs13 { font-size: 1.3rem; }
.u_fs14 { font-size: 1.4rem; }
.u_fs15 { font-size: 1.5rem; }
.u_fs16 { font-size: 1.6rem; }
.u_fs17 { font-size: 1.7rem; }
.u_fs18 { font-size: 1.8rem; }
.u_fs19 { font-size: 1.9rem; }
.u_fs20 { font-size: 2rem; }
.u_fs21 { font-size: 2.1rem; }
.u_fs22 { font-size: 2.2rem; }
.u_fs23 { font-size: 2.3rem; }
.u_fs24 { font-size: 2.4rem; }

.u_inline { display: inline; }
.u_inlineblock { display: inline-block; }

.u_disable { pointer-events: none; }

.u_hover:hover { opacity: .7; }

.u_sp {
  display: none;
}

.u_pos_relative{
  position: relative;
}

/*----------------------------------------------
	.u_indent
---------------------------------------------*/
.u_indent01 {
	padding-left: 1em;
	text-indent: -1em;
}
.u_indent02 {
	padding-left: 2em;
	text-indent: -2em;
}
.u_indent03 {
	padding-left: 3em;
	text-indent: -3em;
}

/*----------------------------------------------
	.u_flex
---------------------------------------------*/
.u_flex {
	display: flex;
}
.u_flex.is_pc {
	display: flex;
}

.u_flex.is_jc_end { 
  flex-wrap: wrap;
	justify-content: flex-end;
}
.u_flex.is_jc_center { 
	flex-wrap: wrap;
	justify-content: center;
}
.u_flex.is_jc_spBetween { 
	flex-wrap: wrap;
	justify-content: space-between;
}
.u_flex.is_jc_spAround { 
	flex-wrap: wrap; 
	justify-content: space-around;
}
.u_flex.is_jc_spEvenly { 
	flex-wrap: wrap;
	justify-content: space-evenly;
}
.u_flex.is_jc_end.no_wrap,
.u_flex.is_jc_center.no_wrap,
.u_flex.is_jc_spBetween.no_wrap,
.u_flex.is_jc_spAround.no_wrap {
  flex-wrap: nowrap;
}

.u_flex.is_column {
	flex-direction: column;
	flex-wrap: wrap;
}
.u_flex.is_ai_end { 
	align-items: flex-end;
}
.u_flex.is_ai_center { 
	align-items: center;
}

.u_shrink0{ flex-shrink: 0; }

.u_gap5{ gap: 5px; }
.u_gap10{ gap: 10px; }
.u_gap12{ gap: 12px; }
.u_gap20{ gap: 20px; }
.u_gap30{ gap: 30px; }

.u_width100{ width: 100%; }
.u_widthfit{ width: fit-content; }

.u_w35{ width: 35px; }
.u_w40{ width: 40px; }
.u_w65{ width: 65px; }
.u_w75{ width: 75px; }
.u_w90{ width: 90px; }
.u_w100{ width: 100px; }
.u_w110{ width: 110px; }
.u_w120{ width: 120px; }
.u_w130{ width: 130px; }
.u_w140{ width: 140px; }
.u_w150{ width: 150px; }
.u_w300{ width: 300px; }
.u_w320{ width: 320px; }
.u_w230{ width: 230px;}
.u_w530{ width: 530px;}
.u_w600{ width: 600px;}

.u_hiragino{ font-family: var(--hiragino); }



.u_anchor{
  display: block;
  padding-top: 100px;
  margin-top: -100px;
}

/*----------------------------------------------
	.clearfix
---------------------------------------------*/
.clearfix:after {
    display: block;
    clear: both;
    content: " ";
}


/*----------------------------------------------
	CONTENTS
---------------------------------------------*/
.u_logo{
  padding: 30px var(--margin);
  border-radius: 0 0 var(--radius) 0;
  background: var(--main_color);
  transition: 0.3s;
}

.u_logo:hover{
  opacity: 0.7;
}

.u_logo img{
  width: auto;
  height: 80px;
  transition: 0.3s;
}

.u_logo img:hover{
  opacity: 1;
}


/* スクロール時 */
.l_header_area.is_active .u_logo{
  padding: 20px var(--margin);
  border-radius: 0;
  height: 100%;
}
.l_header_area.is_active .u_logo img{
  height: 60px;
}

/* 中ページ時 */
body:not(#top)  .u_logo{
  background: transparent;
}
body:not(#top) .l_header_area.is_active .u_logo{
  background: var(--main_color);
}


.u_lang{
  border: 1px solid var(--main_color);
  display: flex;
  align-items: center;
  border-radius: 100px;
  overflow: hidden;
}

.u_lang > a{
  padding: 8px 0 4px;
  display: block;
  width: 68px;
  font-size: 1.5rem;
  font-family: var(--roboto);
  font-weight: bold;
  text-align: center;
  color: #fff;
  text-decoration: none;
}

/* スクロール時 */
.l_header_area.is_active .u_lang > a{
  font-size: 1.4rem;
  padding: 6px 0 3px;
  width: 60px;
}

.u_lang > a.is_current{
  background: var(--main_color);
  text-decoration: underline;
}

.u_lang > a:not(.is_current){
  background: #fff;
  color: var(--black);
}

.u_lang > a:not(.is_current):hover{
  color: #fff;
  background: #43b789;
}

.u_sns{
  background: #ccc;
  width: 60px;
  height: 60px;
  border-radius: 100px;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* スクロール時 */
.l_header_area.is_active .u_sns{
  width: 45px;
  height: 45px;
}

.u_ttl{
  width: 100%;
  height: auto;
  margin-bottom: 30px;
}

.en .u_ttl{
  width: 78%;
  min-width: 480px;
}

.u_copy{
  color: var(--main_color);
  font-weight: bold;
  font-size: 2.6rem;
  letter-spacing: 2px;
  margin-bottom: 40px;
}

.u_dtl{
  background: var(--main_color);
  padding: 6px 10px;
  width: fit-content;
}

.u_dtl img{
  max-width: 600px;
  width: 100%;
  height: auto;
}

.u_mv_img{
  height: 100%;
  width: 100%;
  object-fit: cover;
  object-position: 10%;
}


.u_scroll {
  position: absolute;
  left: 20px;
  top: 92dvh;
}

.u_scroll img{
  width: 16px;
  height: auto;
}


.u_scroll::after{
  content: '';
  background: var(--main_color);
  width: 1px;
  height: 40px;
  position: absolute;
  top: 80px;
  right: 9px;
  animation: scroll_anim 1.4s ease-in-out infinite;
}

@keyframes scroll_anim{
	0%{
		height:0;
		top:36px;
		opacity: 0;
	}
	30%{
		height:30px;
		opacity: 1;
	}
	100%{
		height:0;
		top:80px;
		opacity: 0;
	}
}

.u_logo_footer{
  height: 50px;
  width: auto;
}

.u_timetable_toggle{
  display: none;
}

.u_bg_gray{
  background: #e8ebeb;
  padding: 60px 0;
}

.u_pagetop{
  position: fixed;
  bottom: 120px;
  right: 50px;
  z-index: 999;
}

.u_pagetop img{
  width: 50px;
  height: 50px;
}

.u_organization{
  background: #fff;
  padding: 30px 50px;
  font-size: 2.2rem;
  text-align: center;
}

.u_organization a{
  text-decoration: none;
  color: var(--black);
}

.u_organization a:hover{
  opacity: 0.7;
}

.u_organizer{
  display: flex;
  gap: 8px;
  align-items: center;
  color: #000;
  font-weight: bold;
  font-size: 1.8rem;
  margin-top: 20px;
}
.u_organizer *{
  flex-shrink: 0;
}
.u_organizer img{
  max-width: 420px;
  width: 100%;
  height: auto;
}
.u_organizer.is_en {
  font-weight: normal;
}
.u_organizer.is_en img{
  max-width: 330px;
}

.u_bio_toha{
  height: 65px;
  width: auto;
}
.u_bio_toha.is_en{
  height: 50px;
  width: auto;
}
.u_bio_toshimashita{
  height: 25px;
  width: auto;
}


/*----------------------------------------------
	BANNER
---------------------------------------------*/
.u_bnr_grid{
  display: grid;
  gap: 30px;
}
.u_bnr_grid.is02{ grid-template-columns: 1fr 1fr; }
.u_bnr_grid.is03{ grid-template-columns: 1fr 1fr 1fr; }
.u_bnr_grid.is06{
  grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
  gap: 20px;
}

.u_bnr_grid_pos{
  left: calc((183px + 10px) / 2);
  position: relative;
}


.u_bnr_grid *{
  display: block;
}

.u_bnr_grid a{
  background: #fff;
  text-align: center;
  text-decoration: none;
  color: var(--black);
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  padding: 20px 0;
}

.u_bnr_grid img{
  object-fit: contain;
  margin: 0 auto;
}

.u_bnr_grid a:hover{
  opacity: 0.7;
}

.u_bnr_grid img:hover{
  opacity: 1;
}

/* 2列 */
.u_bnr_grid.is02 a{
  /* height: 250px; */
}
.u_bnr_grid.is02 img{
  width: calc(100% - 40px);
  height: calc(100% - 30px);
  max-height: 120px;
}
.u_bnr_grid.is02 span{
  margin-top: 10px;
  font-size: 1.8rem;
}

/* 3列 */
.u_bnr_grid.is03 a{
  height: 100px;
  padding: 10px 0;
}
.u_bnr_grid.is03 img{
  width: calc(100% - 60px);
  height: 100%;
}
.u_bnr_grid.is03 img:not(.is_custom){
  width: calc(100% - 140px);
  height: 75%;
}
.u_bnr_grid.is03 span{
  margin-top: 5px;
  font-size: 1.4rem;
}

/* 6列 */
.u_bnr_grid.is06 a{
  height: 70px;
  padding: 10px 0;
}
.u_bnr_grid.is06 img{
  width: calc(100% - 20px);
  height: 100%;
}
.u_bnr_grid.is06 img:not(.is_custom){
  width: calc(100% - 20px);
  height: 75%;
}
.u_bnr_grid.is06 span{
  margin-top: 5px;
  font-size: 1.4rem;
}

.u_en_notice{
  min-width: 600px;
}

.u_en_notice .is_ttl{
  background: var(--main_color);
  color: #fff;
  padding: 3px 15px;
  font-size: 1.8rem;
  position: relative;
  padding-left: calc(1em + 15px + 8px);
}

.u_en_notice .is_ttl::before{
  content: '';
  background: url(../images/icon_flag.svg) no-repeat;
  width: 1.8rem;
  height: 1.8rem;
  background-size: contain;
  position: absolute;
  left: 1em;
  top: calc(50% - 1.8rem / 2 - 1px);
  filter: invert(1);
}
.u_en_notice .is_inner{
  background: #fff;
  padding: 15px;
}


.u_nowrap_pc{
  white-space: nowrap;
  word-break: keep-all;
}

.u_renraku{
  background: #fff;
  padding: 15px 20px;
  /* text-align: center; */
  font-size: 2rem;
  border: 1px solid #a1a79b;
  width: 650px;
  color: var(--main_color);
}
.u_renraku.is_en{
  width: 550px;
}


/*----------------------------------------------
	.drawer
---------------------------------------------*/
.drawer {
  overflow: hidden;
}

button.drawer-toggle, button.drawer-hamburger {
  display: none; }


/*----------------------------------------------
	.u_anim_fade
---------------------------------------------*/
.u_anim_fade{
  opacity: 0;
  transform: scale(1.01);
}

.u_anim_fade.is_action{
  animation-name: fadein;
  animation-duration: 0.8s;
  animation-fill-mode: forwards;
}

.u_anim_fade.is_action.is_delay{
  animation-delay: 1s;
}

@keyframes fadein{
  to {
    opacity: 1;
    transform: scale(1);
  }
}