/*関大共通ヘッダー調整*/

@media screen and (max-width: 767px){
	#common_header li a {font-size:12px;line-height:14px;}
	}

@media screen and (max-width: 370px){
	#common_header {text-align: right;}
	#common_header li:last-child {display:inline-block !important;}
	#common_header li a {font-size:10px;}
	}
/* 基本リセット */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-size: 62.5%; /* = 10px（16px × 62.5%） */
}

/* フォントと行間の指定 */
body {
  font-family: "Noto Sans JP", "Helvetica Neue", sans-serif;
  line-height: 1.6;
}

p, span, a {font-size:1.6rem;}

.mt0 {margin-top:0 !important;}
.mt10 {margin-top:10px !important;}
.mt20 {margin-top:20px !important;}
.mt30 {margin-top:30px !important;}
.mt40 {margin-top:40px !important;}
.mt50 {margin-top:50px !important;}
.mt100 {margin-top:100px !important;}

.mb0 {margin-bottom:0px !important;}
.mb10 {margin-bottom:10px !important;}
.mb20 {margin-bottom:20px !important;}
.mb30 {margin-bottom:30px !important;}
.mb40 {margin-bottom:40px !important;}
.mb50 {margin-bottom:50px !important;}
.mb100 {margin-bottom:100px !important;}


.noto-sans-jp {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

.noto-serif-jp {
  font-family: "Noto Serif JP", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}


section:not(.top-slider) {max-width:1080px;margin-left:auto;margin-right:auto;}

section.faculty-introduction, section.our-research, section.event-info {max-width:100%;}

section.og-ob {margin-bottom:20px;}


.section-heading h2 {font-size:4.8rem;display:inline-block;}

.section-heading h2::after {
content: "";
  display: block;
  width: 100%;
  border-bottom: 1px solid #000;
  margin-top: 2px; /* 文字との間隔 */
	margin-bottom:6px;
}

.section-heading > div {font-size:2.4rem;}

@media screen and (max-width: 768px) {
	.section-heading h2 {font-size:2.4rem;}
	.section-heading > div {font-size:1.6rem;}
}

/* --------------------------------------------------------------- */
/* 関大共通ヘッダー */
#common_header{
  position:fixed;
  z-index: 100;/* ヘッダー優先度1 */
  top: 0;
  width: 100%;
  height: 25px;
}


/* ヘッダー */
.site-header {
  position:fixed;
  z-index: 50;/* ヘッダー優先度2 */
  top:25px;
  height: 75px;
  background-color: #00387a; /* 関西大学の紺色 */
  color: white;
  width: 100%;
  padding: 10px 0;
}

/* ロゴとメニューを横並び*/
.container {
  display: flex;
  align-items: center;
  justify-content: flex-start; 
}

/* ロゴの高さ*/
.logo img {
  height: 50px;
  margin-left: 17px;
  margin-right: 10px;
  /*margin-top: 8px;*/margin-top: 4px;
}

/* ナビゲーション */
.main-nav ul {
  display: flex;
  list-style: none;
}

.main-nav li {
  margin-left: 20px;
}

.main-nav a {
  color:#ccc;
  text-decoration: none;
  transition: color 0.3s;
  font-size: 18px;
}

.main-nav a:hover {
  color: #fff; /*ホバー時のカラー(仮)*/
}

@media screen and (max-width: 768px) {
	.main-nav {display:none;}
}
/* --------------------------------------------------------------- */
/* ハンバーガーメニュー */
.menu-toggle {
  position: fixed;
  z-index: 100;/* サイドメニュー優先度1 */
  top: 40px;
  right: 20px;
  width: 40px;
  height: 55px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
}

.menu-toggle .bar {
  width: 100%;
  height: 2px;
  background-color: white;
  border-radius: 2px;
  transition: all 0.3s ease;
}

.menu-label {
  font-size: 12px;
  color: white;
}

/* アニメーション時（メニュー開いた状態） */
.menu-toggle.open .bar:nth-child(1) {
  transform: translateY(15px) rotate(45deg);
}

.menu-toggle.open .bar:nth-child(2) {
  opacity: 0;
}

.menu-toggle.open .bar:nth-child(3) {
  transform: translateY(-10px) rotate(-45deg);
}

/* --------------------------------------------------------------- */
/* サイドメニュー */
.side-menu {
  position: fixed;
  z-index: 90;/* サイドメニュー優先度2 */
  top: 25px;
  right: -600px; /* 初期は画面外に隠す */
  width: 600px;
  /*height: 65%;*/padding-bottom:20px;
  background-color: rgba(238, 237, 237, 0.945);
  font-size: 14px;
  font-weight:500;
  transition: right 0.3s ease;/* サイドバー展開なめらかに*/
  overflow-y: auto;/* スクロールバーを適宜追加*/
}



.menu-item{
  padding-left:20px;
}

.accordion-menu {list-style: none;}

/* グリッド */
.menu-grid {
  display: grid;
  grid-template-columns: 6fr 1fr; /* 左が広め、右がアイコン用に狭め */
  gap: 0px;
}


/* TOPアイコン設定 */
.top-icon img {
  width: 60px;   /* 横幅を指定 */
  height:auto;  /* アスペクト比を保ったまま高さ自動調整 */
  margin-top: 65px;
  margin-bottom:30px; 
  margin-left:20px;
}

.icon-right-column img {
 width: 75px;   /* 横幅を指定 */
  height: auto;  /* アスペクト比を保ったまま高さ自動調整 */
}
.icon-right-column a {
  display: block;
  line-height: 1;
}



@media screen and (max-width: 768px) {
	.side-menu {width:100vw;padding-left:16px;}

	.top-icon img {margin-top:30px;margin-bottom:20px;}
}




/*----------------------------------------
  アコーディオン全体（1ブロック単位）
----------------------------------------*/
.accordion-item {
  border-bottom: 1px solid #b9b8b8;
  padding-bottom: 5px;
}

/*----------------------------------------
  アコーディオンのヘッダー（クリック部分）
----------------------------------------*/
.accordion-header {
  padding: 5px;
  cursor: pointer;
  position: relative;
}

.accordion-header .icon {
  float: right;/* +マークを右寄背にする */
}

.accordion-header a {
  color: #555;
  text-decoration: none;/* 下線を消す */
  color: #0c0c0c;
}

.accordion-header a:hover {
  color: #00387a;
}

/*----------------------------------------
  アコーディオンの中身（開閉対象）
----------------------------------------*/

/*初期状態＋マーク閉じる */
.accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease;
}

/* 開いたとき */
.accordion-item.open .accordion-content {
  max-height: 500px; /* 十分大きな値に設定 */
}

/*----------------------------------------
  装飾やリストの調整
----------------------------------------*/
.accordion-menu li::marker {
  content: none; /* 箇条書きのマーカーを非表示 */
}

/* openクラスがついたらメニュー表示 */
.side-menu.open {
  right: 0; 
}

.accordion-content li {
  padding-bottom: 5px;
  padding-left: 20px;
  border-top: none;
}

.accordion-content a {
  font-size: 12px;
  color: #555;
  text-decoration: none;
}

.accordion-content a:hover {
  color: #00387a;
}




/* --------------------------------------------------------------- */
/*レスポンシブ対応 */
@media screen and (max-width: 1064px) {
  .logo img {
  height: 50px;
  margin-bottom: 20px;
}
  .main-nav ul {
    padding-bottom: 20px;
    gap: 10px;
  }

  .main-nav li {
    margin: 0;
    text-align: center;
  }

  .main-nav a {
    font-size: 15px;
    display: block;
    padding: 5px 0;
  }
}

@media screen and (max-width: 768px) {
  .site-header{
    margin-top: 25px;
  }
  .logo img {
  height: 50px;
  margin-bottom: 20px;
}
  .main-nav ul {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* 2列に分ける */
    gap: 5px;
    padding-bottom: 10px;
  }

  .main-nav li {
    margin: 0;
    text-align: center;
  }

  .main-nav a {
    font-size: 0.7rem; /* 文字を小さく */
    display: block;
    padding: 5px 0;
  }

  .menu-toggle {/* ハンバーガー位置修正 */
    top: 65px;
  }
  .side-menu{
    top: 50px;
    width: 400px;    
  }



}


@media screen and (max-width: 370px){
	.side-menu {width:100%;}
}


@media (max-width: 767px) {

	.side-menu.open {overflow-y: auto;}
.menu-item:first-child {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  max-height: 90vh;
}

}


/* --------------------------------------------------------------- */
/* TOPスライダー(Swiper全体設定)*/
.swiper {
  width: 100%;
  height: auto;
  /*margin-top: 100px;*/margin-top: 72px;
  overflow: hidden;
}

@media screen and (max-width: 1064px) {
	.swiper {margin-top:46px;}
}


/* スライド内の画像 */
.swiper-slide img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

.top-pagination {
  position: relative !important; /* 写真の外に出した為、ansoluteから変更*/
  margin-top: 5px;              /* スライドとドットの間のスペース */
  text-align: center;            /* ドット中央寄せ */
  bottom: auto !important;       /* relativeにしたので、bottom指定不要 */
  left: auto !important;         /* leftの指定解除 */
  width: 100%;                   /* 幅いっぱい */
}

/* Swiperのドット（pagination） */
.top-pagination-bullet {
  background-color: #ccc;
  opacity: 1;/*ドットの濃さ*/
  transition: background-color 0.3s;
  width: 10px;       /* ドットサイズ横 */
  height: 10px;      /* ドットサイズ縦 */
  margin: 0 7px !important;     /* ドット間の余白 */
  cursor: pointer;   /* 活性時、カーソルからポインターへ変更*/
  border-radius: 50%; /* 丸くする */
}

.swiper-pagination-bullet-active {
  background-color: #00387a; /* アクティブ時の色 */
}

@media screen and (max-width: 768px) {
  .swiper {
    margin-top: 120px;
  }
  .swiper-pagination-bullet {
    width: 8px;
    height: 8px;/* ドット小さめに */
    margin: 0 4px !important;
  }
}


/* --------------------------------------------------------------- */
/* 各学部研究紹介スライダー*/

/* 見出しのスタイル(研究紹介各学部タイトル...共通利用) */
.fuc-title {
  text-align: center;
}

.fuc-title img{
  max-height: 70px;
  width: auto;
  margin-top: 50px;
}

/* レスポンシブ対応 */
@media (max-width: 1024px) {
  .fuc-title img {
  max-height: 40px;
  width: auto;
  margin-top: 30px;
  }
}


/*システム理工学部スライダー---------------------*/
.fuc-system-swiper{
  margin-top: 10px;padding-top:26px;padding-bottom:18px;
}

/* ボタン一覧*/
.fuc-system-controls .line-1,
.fuc-system-controls .line-2 {
  display: flex;
  justify-content: center;
  margin: 10px;
  gap: 2px;
}

/* ボタン詳細設定*/
.fuc-system-controls button {
  background: #fff;
  color: #7c0335;
  border: 2px solid #7c0335;
  margin: 0 2px;
  padding: 10px 15px;
  font-size: 18px;
  font-weight: bolder;
  font-family: 'Noto serif JP';
  cursor: pointer;
  transition: background 0.3s ease;
}

.fuc-system-controls button:hover {
   background: #7c0335;
  color: #fff;
}

.fuc-system-controls button.active {
  background: #7c0335;
  color: #fff;
  border-color: #7c0335;
}

/*o追加*/

  @media only screen and (min-width: 1025px) {
    .tab-sp {
      display: none !important;
    }
    .swiper-button-prev::before, .swiper-button-next::before {
      -webkit-transition: var(--transition);
      transition: var(--transition);
    }
    .swiper-button-prev:hover::before, .swiper-button-next:hover::before {
      -webkit-transform: scale(1.2);
              transform: scale(1.2);
    }
    .fuc-system-swiper img {
      -webkit-transition: var(--transition);
      transition: var(--transition);
    }
    .fuc-system-swiper a:hover {
      -webkit-transform: translateY(-16px);
              transform: translateY(-16px);
      -webkit-box-shadow: var(--box-shadow-hover);
              box-shadow: var(--box-shadow-hover);
		filter: drop-shadow(0 0 10px rgba(225, 225, 255, 0.7));
		transform: scale(1.06);
		
    }
    .fuc-system-swiper a:hover img {
      -webkit-transform: translateY(0);
              transform: translateY(0);
    }
	  .fuc-system-swiper a {transition: all 0.5s 0s ease;}
  }



/*環境都市工学部スライダー---------------------*/
.fuc-enviroment-swiper{
  margin-top: 10px;
}

/* ボタン一覧*/
.fuc-enviroment-controls {
  text-align: center;
  margin: 10px;
}

/* ボタン詳細設定*/
.fuc-enviroment-controls button {
  background: #fff;
  color: #0f655e;
  border: 2px solid #0f655e;
  margin: 0 2px;
  padding: 10px 15px;
  font-size: 18px;
  font-weight: bolder;
  font-family: 'Noto serif JP';
  cursor: pointer;
  transition: background 0.3s ease;
}

.fuc-enviroment-controls button:hover {
   background: #0f655e;
  color: #fff;
}

.fuc-enviroment-controls button.active {
  background: #0f655e;
  color: #fff;
  border-color: #0f655e;
}



/*化学生命工学部スライダー---------------------*/
.fuc-chemical-swiper{
  margin-top: 10px;
}

/* ボタン一覧*/
.fuc-chemical-controls {
  text-align: center;
  margin: 10px;
}

/* ボタン詳細設定*/
.fuc-chemical-controls button {
  background: #fff;
  color: #04318d;
  border: 2px solid #04318d;
  margin: 0 2px;
  padding: 10px 15px;
  font-size: 18px;
  font-weight: bolder;
  font-family: 'Noto serif JP';
  cursor: pointer;
  transition: background 0.3s ease;
}

.fuc-chemical-controls button:hover {
   background: #04318d;
  color: #fff;
}

.fuc-chemical-controls button.active {
  background: #04318d;
  color: #fff;
  border-color: #04318d;
}




/* --------------------------------------------------------------- */
/* 見出しのスタイル(学部・大学院紹介ect...共通利用) */
.section-heading {
  text-align: center;
  margin: 60px 0 20px;
}

.section-heading img {
  max-height: 200px;
  width: auto;
}

/* レスポンシブ対応 */
@media (max-width: 1024px) {
  .section-heading img {
    max-height: 100px;
    width: auto;
  }
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
	.section-heading {
		margin:20px 0 20px;}
}
/* --------------------------------------------------------------- */
/* 掲載写真共通設定 */
.image-item {
  position: relative;
}

.image-item img {
  width: 100%;
  height: auto;
  display: block;
}

/* --------------------------------------------------------------- */
/* 理工系紹介動画用(共通写真設定内aタグのみ適応) */
.image-item a {
  display: block; 
  transition: transform 0.2s ease;
}
.image-item a:hover {
  transform: scale(1.02); /* 少し拡大してクリックを促す */
}


/* --------------------------------------------------------------- */
/* [写真2分割でgapあり]--学部一覧 */
.image-grid-1 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  max-width: 100%;
  margin: 0 auto;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .image-grid-1 {
    grid-template-columns: 1fr;
  }
}


/* --------------------------------------------------------------- */
/* 関西大学理工系の魅力 */

.faculty-introduction {
	background-image: url("../images/bg_dark01.jpg");
	background-size:  cover;background-repeat: no-repeat;
	background-color:rgba(0,0,0,0.5);background-blend-mode: darken;
	padding-top:20px;padding-bottom:80px;
	margin-top:20px;
}


/* レスポンシブ対応 */
@media (max-width: 768px) {
.faculty-introduction, .our-research {
	padding-bottom:40px !important;}
	.event-info {padding-top:20px !important;padding-bottom:50px !important;}
}



.faculty-introduction .section-heading h2 {color:#fff;}
.faculty-introduction .section-heading h2::after {border-bottom: 1px solid #fff;}
.faculty-introduction .section-heading > div {color:#fff;}




.box-section {
  display: flex;
  background-color: #001340;
  overflow: visible;
  margin-right:5vw;margin-left:5vw;
}

.box {
  position: relative;
  flex: 1 1 0;
  background-size: cover;
  background-position: center;
  overflow: hidden;
  transform: scale(1);
  transition: transform 0.4s ease;aspect-ratio: 3 / 5;
}

/* 拡大 */
.box:hover {
  transform: scale(1.05);
  z-index: 2;
}

/* 青系のオーバーレイ */
.box::before {
  content: '';
  position: absolute;
  inset: 0;
  background-color: rgba(0, 20, 70, 0.6); /* 通常時：暗い青 */
  transition: background-color 0.4s ease;
  z-index: 1;
}

/* 明るく見せる：hover または JSで付与される .active に反応 */
.box:hover::before,
.box.active::before {
  background-color: rgba(0, 20, 70, 0.1); /* hover時：うっすら青 */
}

.label {
  position: absolute;  /* ← これが必要！ */
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 2;  /* ::before より上に表示 */
  color: #fff;
  background-color: rgba(0, 0, 51, 0.8);
  padding: 20px 10px;
  text-align: center;
  transition: all 0.4s;font-size:1.8rem !important;
outline:1px solid rgba(255,255,255,0.5);
	outline-offset: -5px;
}


.label span {
  font-size: 1.3rem;
  display: block;
  margin-top: 5px;
}

@media screen and (max-width: 768px) {
  .box-section {
    display: grid;
    grid-template-columns: 1fr 1fr; /* 2列 */
    gap: 0;
    height: auto; /* 高さを自動調整 */
	  

  }

  .box {
    height: 50vw; /* 正方形に近くする。画面幅の50% */
    transform: scale(1); /* スマホでは拡大しすぎないよう制御 */
	  aspect-ratio: auto;
  }

  .box:hover {
    transform: scale(1.05); /* スマホでのhover縮小版（あってもなくてもOK） */
  }

	.label {font-size:1.1rem !important;}
}





/* --------------------------------------------------------------- */
/* 3学部10学科の研究紹介 */

.our-research {
	background-image: url("../images/bg_dark03.jpg");
	background-size:  cover;background-repeat: no-repeat;
	background-color:rgba(0,0,0,0.5);background-blend-mode: darken;
	padding-top:20px;padding-bottom:80px;
	margin-top:0px;
}

.our-research .section-heading h2 {color:#fff;}
.our-research .section-heading h2::after {border-bottom: 1px solid #fff;}
.our-research .section-heading > div {color:#fff;}



/* --------------------------------------------------------------- */
/* イベント情報 */
.event-info {
  background-color: #ededed;
  padding: 60px 20px 80px; /* 下に余白を追加 */
  font-family: sans-serif;
  position: relative; /* ← これが必要(親要素) */
}

.event-info .section-heading {
  text-align: center;
  margin-bottom: 30px;margin-top:0;
}

@media (max-width: 768px){
	.event-info .section-heading {margin-bottom:10px;}
}


.event-item {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start; /* 左揃え */
  margin: 0 auto 20px; /* 中央寄せ */
  max-width: 800px;
  padding: 12px 16px 10px;
  border-radius: 8px;
}

.event-date {
  width: 100px; /* 幅を固定して縦位置を揃える */
  font-size: 14px;
  color: #333;
  flex-shrink: 0;
}

.event-content {
  flex: 1;
  margin-left: 16px;
}

.event-faculty {
  display: inline-block;
  border: 2px solid #1d2088;
  padding: 2px 10px;
  font-size: 14px;
  color: #1d2088;
  margin-bottom: 4px;
}

.event-detail {
  font-size: 14px;
  color: #555;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .event-item {
    flex-direction: column;
    text-align: left;margin-bottom:0 !important;
  }

  .event-date {
    width: auto;
    margin-bottom: 8px;
  }

  .event-content {
    margin-left: 0;
  }
}

/* レスポンシブ対応(拡張時) */
@media (min-width: 769px) {
  .event-info {
    padding: 60px 40px 100px; /* ゆったり */
  }

  .event-item {
    max-width: 1200px;
    padding: 24px;
  }

  .event-date {
    font-size: 18px;
  }

  .event-faculty {
    font-size: 18px;
    padding: 4px 12px;
  }

  .event-detail {
    font-size: 18px;
  }

  .event-info .section-heading {
    font-size: 24px;
    margin-bottom: 40px;
  }
}



/* --------------------------------------------------------------- */
/* [写真2分割でgapなし]--国際交流 or 就職・進学 or キーワードから知る理工系 or--... */
.image-grid-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0px;
  max-width: 100%;
  margin: 0 auto;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .image-grid-2 {
    grid-template-columns: 1fr;
  }
}



/* --------------------------------------------------------------- */
/* [写真3分割でgapなし]--卒業生からのメッセージ--... */
.image-grid-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0px;
  max-width: 100%;
  margin: 0 auto;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .image-grid-3 {
    grid-template-columns: 1fr;
  }
}



/* --------------------------------------------------------------- */
/* 関西大学理工系_紹介動画 */
.image-padding {
 padding: 5%;
}
@media (max-width: 768px) {
	.image-padding {padding-bottom:0;}
}



/* --------------------------------------------------------------- */
/* [写真2分割でgapあり]--faq_リンク集--... */
.image-grid-4 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 50px;
  padding: 5%;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
  .image-grid-4 {
    grid-template-columns: 1fr;gap:16px;
  }
}




/* --------------------------------------------------------------- */
/* MOREテキスト一覧 */

/* 右上--学部紹介 */
.more-upper-right {
  position: absolute;
  top: 5px;
  right: 10px;
  color: #e7e7e7;
  padding: 5px 10px;
  font-size: 20px;
  cursor: pointer;
  text-decoration: none;
  display: block;
  transition: transform 0.3s, color 0.3s, filter 0.3s; /* アニメーション効果 */
}
.more-upper-right:hover {
  transform: scale(1.1);           /* 拡大 */
  color: #ffffff;                  /* 白のトーンを強調 */
  filter: brightness(1.4);         /* 明るさを上げる */
}

/* 右下--研究紹介、国際交流、就職・進学、キーワードから知る理工系、
faq、リンク集 */
.more-under-right {  position: absolute;
  bottom: 5px;
  right: 10px;
   color: #dddddd;
  padding: 5px 10px;
  font-size: 20px;
  cursor: pointer;
  text-decoration: none;
  display: block;
  transition: transform 0.3s, color 0.3s, filter 0.3s; /* アニメーション効果 */
}
.more-under-right:hover {
  transform: scale(1.1);           /* 拡大 */
  color: #ffffff;                  /* 白のトーンを強調 */
  filter: brightness(1.4);         /* 明るさを上げる */
}

/* 左下--卒業生からのメッセージ */
.more-under-left {  position: absolute;
  bottom: 5px;
  left: 10px;
   color: #dddddd;
  padding: 5px 10px;
  font-size: 20px;
  cursor: pointer;
  text-decoration: none;
  display: block;
  transition: transform 0.3s, color 0.3s, filter 0.3s; /* アニメーション効果 */
}
.more-under-left:hover {
  transform: scale(1.1);           /* 拡大 */
  color: #ffffff;                  /* 白のトーンを強調 */
  filter: brightness(1.4);         /* 明るさを上げる */
}

/* 中央下(カラー変更)--イベント情報 */
.more-under-middle {
  position: absolute;
  bottom: 50px;
  left: 50%;  /* 横方向中央に寄せる */
  transform: translateX(-50%);  /* 自身の幅の半分だけ左に戻す */
  color: #555;
  padding: 5px 10px;
  font-size: 20px;
  cursor: pointer;
  text-decoration: none;
  display: block;
  transition: transform 0.3s, color 0.3s, filter 0.3s; /* アニメーション効果 */
}
.more-under-middle .fa-forward{
  color: #1d2088; /* more矢印の色変更 */
}
.more-under-middle:hover {
  transform: translateX(-50%) scale(1.1);  /* 両方適用 */
  color: #0c0c0c;
  filter: brightness(1.4);
}

/* レスポンシブ対応 */
@media (max-width: 1064px) {
  .more-upper-right{
    font-size: 17px;
  }
  .more-under-right{
    font-size: 17px;
  }
  .more-under-left{
    font-size: 17px;
  }
  .more-under-middle{
    font-size: 17px;
  }
}

@media (max-width: 768px) {
  .more-upper-right{
    font-size: 15px;
  }
  .more-under-right{
    font-size: 15px;
  }
  .more-under-left{
    font-size: 15px;
  }
  .more-under-middle{
    font-size: 15px;bottom:20px;
  }
}



/* --------------------------------------------------------------- */
/* フッター*/
.site-footer {
  background-color: #1e2543;
  color: white;
  padding: 40px 20px;
  /*font-size: 22px;*/font-size:1.6rem;
}

.footer-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  max-width: 1800px;
  margin: 0 auto 30px;
}

.footer-column {
  flex: 1 1 180px;
  margin: 10px;
}

.footer-column h4 {
  /*font-size: 24px;*/font-size:2.2rem;
  margin-bottom: 10px;
  font-weight:lighter;
}

.footer-column ul {
  list-style: none;
  padding: 0;
}

.footer-column li {
  margin-bottom: 6px;
}

.footer-column a {
  color: #ccc;
  text-decoration: none;
  transition: color 0.3s;
  font-weight: 330;
}

.footer-column a:hover {
  color: #fff;
}


.footer-column ul li ul {padding-left:2rem;margin-top:6px;}

/* --------------------------------------------------------------- */
/* フッター下部(ロゴやコピーライト) */
.footer-bottom {
  background-color: #1e2543;
  color: white;
  padding: 40px 20px 0;
}

@media (max-width: 768px){
	.footer-bottom {padding:0 20px;}
}

.footer-content {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  max-width: 1800px;
  margin: 0 auto 20px;
  gap: 40px;
}

@media (max-width: 768px){
	.footer-content {gap:0;}
}


.footer-logo img {
  height: 100px;
}

.footer-dept {
  flex: 1;
}

.menu-columns {
  display: flex;
  gap: 40px; /* 2列間の間隔 */
  flex-wrap: wrap;
}

.footer-menu {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-menu li {
  margin-bottom: 15px;
}

.footer-menu a {
  color: #ccc;
  text-decoration: none;
  /*font-size: 35px;*/font-size:2.8rem;
  transition: color 0.3s;
  line-height: 1.4;
}

.footer-menu a:hover {
  color: #fff;
}

.sub-label {
  display: block;
  /*font-size: 18px;*/font-size:1.4rem;
  color: #aaa;
  margin-top: 2px;
}

.copyright {
  text-align: center;
  /*font-size: 20px;*/font-size:1.2rem;
  color: #999;
  padding-top: 10px;
}



/* レスポンシブ対応 */
@media (max-width: 768px) {
  .site-footer {
  font-size: 15px;
  }

  .footer-column h4 {
  font-size: 16px;
  }


  .footer-content {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .footer-logo img {
    height: 50px;
    margin-bottom: 20px;
  }

  .menu-columns {
    flex-direction: column;
    align-items: center;
    gap: 0px;
  }

  .footer-menu {
    margin-bottom: 0px;
  }

  .footer-menu a{
    font-size: 20px;
  }

  .sub-label {
  font-size: 12px;
}

.copyright {
  font-size: 10px;
}
}


/*ドロップダウンメニュー*/
.gnavi__list {position: relative; }

.dropdown__list {
    background-color: #004d80;
    height: 60px;
    transition: all .3s;
    position: relative;width:auto;margin:0 !important;
}
.dropdown__list:not(:first-child)::before{
    content: "";
    width: 100%;
    height: 1px;
    /*background-color: #3492d1;*/
    position: absolute;
    top: 0;
    left: 0;
}
._dropdown__list:hover {
    background-color: #003558;
}
.dropdown__list a {
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    text-decoration: none;
    position: relative;
}
._dropdown__list a::before {
    content: '';
    display: block;
    width: 6px;
    height: 6px;
    border-top: 2px solid #fff;
    border-left: 2px solid #fff;
    transform: rotate(135deg);
    position: absolute;
    right: 15px;
    top: calc(50% - 5px);
}



/*+2*/
.dropdown__lists {
    transform: scaleY(0);/*デフォルトでは非表示の状態にしておく*/
    transform-origin: center top;/*変形を適応する基準をtopとする*/
    transition: all .3s;/*表示の変化を0.3秒に指定*/
    width: 100%;
    position: absolute;
    top: 54px;
    left: 0;display:flex;flex-direction: row;flex-wrap: wrap;background-color: #004d80;
}
.gnavi__list:hover .dropdown__lists {
    transform: scaleY(1);/*Gナビメニューにホバーしたら表示*/
}


.dropdown__lists a {white-space: nowrap;font-size:1.6rem;}

.dropdown__lists {padding:10px 20px !important;width:auto;pointer-events: auto; /* メニュー部分はイベント受ける */}

.dropdown__list {align-items: center;display: flex;}


._dropdown-wrapper {
  position: absolute;
  top: 100%;
  left: 0;
  /* ▼ 隙間を含む高さを追加する */
  padding-top: 0px; /* これが“隙間” */
  pointer-events: none; /* ラップ要素自体にはマウスイベントを通さない */
}

.gnavi__list a:hover .dropdown-wrapper {
  display: block;
}

.gnavi__list {position: relative;}

.gnavi__list.hovered .dropdown__lists {
  transform: scaleY(1);
  opacity: 1;
  pointer-events: auto;
}

/*グローバルナビホバーアニメーション*/

.main-nav a::after {
  background-color: var(--accent-color);/*#43A2F9;*/ /* 下線の色 */
  bottom: -4px; /* 要素の下端からの距離 */
  content: ""; /* 要素に内容を追加 */
  height: 2px; /* 下線の高さ */
  left: 0; /* 要素の左端からの距離 */
  position: absolute; /* 絶対位置指定 */
  transform: scale(0, 1); /* 下線を横方向に0倍、縦方向に1倍に変形（非表示） */
  transform-origin: left top; /* 変形の原点を左上に指定 */
  transition: transform .3s; /* 変形をアニメーション化 */
  width: 100%; /* 要素の幅 */
}
/* リンクにホバーした際の下線の表示 */
.main-nav a:hover::after {
  transform: scale(1, 1); /* 下線を横方向に1倍、縦方向に1倍に変形（表示） */
}


/*ハンバーガートグルの不具合解消*/

/* 共通の積層ルールを固定 */
.site-header { /*position: relative;*/ z-index: 1100; }
.menu-toggle { /*position: relative;*/ z-index: 1101; }

/* サイドメニュー層 */
.side-menu { /*position: fixed;*/ /*inset: 0;*/ /*display: none;*/ z-index: 1000; }
.menu-open .side-menu { /*display: block;*/ }
.side-backdrop { /*position: absolute;*/ /*inset: 0;*/ /*background: rgba(0,0,0,.4);*/ z-index: 1000; }
.side-menu .menu-grid { /*position: relative;*/ z-index: 1001; }
.side-menu .menu-close { /*position: absolute; top:12px; right:12px;*/ z-index:1002; }

/* 「close」ラベルが埋もれないように */
_body:not(#home) .menu-toggle .menu-label { position: relative; display:inline-block; padding:2px 6px; background:#fff; border-radius:4px; font-weight:600; }
._menu-open .menu-toggle .bar { opacity:0; transition:opacity .2s; }



/*ハンバーガーメニュー内のトップへ戻るボタンの位置再調整*/

.top-icon img {margin-top:85px;height:0;}



/*記事ページあしらい*/

article.entry {max-width:1080px;margin:40px auto 40px auto;max-width:90vw;}
.entry-body {font-size:1.8rem;}
.entry-title {font-size:2.4rem;}

article.entry .entry-prevnext {display:none;}
article.entry .award-meta .name {display:none;}

/*固定ページメインパートの上部マージン*/

.page #main {margin-top:100px;}

@media screen and (max-width: 768px) {
	.page #main {margin-top:125px;}
}


/* 検索アイコンの背景色 */
.icon-right-column a img[src*="side_search"] {
  background-color: #003366;
}

/* Englishアイコンの背景色 */
.icon-right-column a img[src*="side_english"] {
  background-color: #003366;
}
/* パンフアイコンの背景色 */
.icon-right-column a img[src*="side_pamph"] {
  background-color: #003366;
}

/* Japaneseアイコンの背景色 */
.icon-right-column a img[src*="side_japanese"] {
  background-color: #003366;
}



/* ============================================
   English version responsive adjustment
   ============================================ */
html[lang="en"] .gnavi__wrap {
  /* English version: Hide PC navigation at 1600px and below */
}

@media (max-width: 1600px) {
  html[lang="en"] .gnavi__wrap {
    display: none !important;
  }
  
  html[lang="en"] .menu-toggle {
    display: flex !important;
  }
}

/* Adjust container width for English version if needed */
@media (min-width: 1601px) {
  html[lang="en"] .site-header .container {
    max-width: 1600px;
    padding: 0 40px;
  }
}



/*top mobile文字調整*/
@media screen and (max-width: 768px) {
	#home .career .image-grid-2 .image-item a {font-size:1.2rem;}
}