@charset "utf-8";
/*リセットCSS（sanitize.css）の読み込み
---------------------------------------------------------------------------*/
@import url("https://unpkg.com/sanitize.css");
/*slick.cssの読み込み
---------------------------------------------------------------------------*/
@import url("https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css");
/*Font Awesomeの読み込み
---------------------------------------------------------------------------*/
@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css");
/*Google Fontの読み込み
---------------------------------------------------------------------------*/
@import url('https://fonts.googleapis.com/css?family=Noto+Sans+JP:100,300,400,500,700,900&display=swap&subset=japanese');
/*全体の設定
---------------------------------------------------------------------------*/
html, body {
  margin: 0;
  padding: 0;
  height: 100%;
  font-size: 14px; /*基準となるフォントサイズ。下の方にある「画面幅950px以上」で基準を大きなサイズに再設定しています。*/
  scroll-padding-top: 60px;
}
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  /*  
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-family: 'Noto Sans JP', sans-serif;*/
  /*font-family: "メイリオ", Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", monospace, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;*/
  font-weight: 400;
  background: #fff; /*背景色*/
  color: #333; /*全体の文字色*/
  line-height: 1.5; /*行間*/
}
/*リセット*/
figure {
  margin: 0;
}
dd {
  margin: 0;
}
nav {
  margin: 0;
  padding: 0;
}
/*table全般の設定*/
table {
  border-collapse: collapse;
}
table.line td {
  border-bottom: 1px solid #eee;
}
table.uline td {
  border-bottom: 1px solid #eee;
}
table.uline tr:first-child td {
  border-top: 1px solid #eee;
}
/*画像全般の設定*/
img {
  border: none;
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}
/*videoタグ*/
video {
  max-width: 100%;
}
/*iframeタグ*/
iframe {
  width: 100%;
}
/*section全般の設定*/
section {
  padding: 10px 5% 30px 5%;
}
section + section {
  /*sectionの間に空けるスペース*/
  margin: auto;
}
section:nth-child(2n+1) {
  background: #f5f5f5;
  box-shadow: 0 2px 3px 0 #eee;
}
.left {
  padding-top: 0 !important;
}
/*opa1（透明から着色状態に）
---------------------------------------------------------------------------*/
@keyframes opa1 {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/*画像検索させない
---------------------------------------------------------------------------*/
/*
img {
  pointer-events: none;
}
*/ /*リンクテキスト全般の設定
---------------------------------------------------------------------------*/
a {
  color: #005CD9; /*文字色*/
  transition: 0.3s;
}
a.anchor {
  display: block;
  margin-top: -65px;
  padding-top: 65px;
}
a:hover {
  color: #E95885; /*マウスオン時の文字色*/
}
strong {
  font-weight: 600;
}
/*メールアドレス
---------------------------------------------------------------------------*/
.email:after {
  content: "@";
}
/*container（サイト全体を囲むブロック）
---------------------------------------------------------------------------*/
#container {
  /*max-width: 1500px; */ /*最大幅。これ以上広がらないように。後半の大きな端末用の「#menubar > ul」と数字を揃える。*/
  margin: 0 auto;
  height: 100%;
  display: flex; /*flexボックスを使う指定*/
  flex-direction: column; /*子要素を縦並びにする*/
  justify-content: space-between; /*並びかたの種類の指定*/
}
/*header（ロゴなどが入った最上段のブロック）
---------------------------------------------------------------------------*/
/*ヘッダーブロック*/
header {
  display: flex; /*flexボックスを使う指定*/
  justify-content: space-between; /*並びかたの種類の指定*/
  align-items: flex-start; /*垂直揃えの指定。上下中央に配置されるように。*/
  flex: 0 0 auto;
  height: 68px; /*ヘッダーの高さ*/
  padding: 0 20px 0 20px; /*ヘッダー内の余白*/
  background: #fff;
}
/*ロゴ画像*/
header #logo {
  line-height: 0;
  margin: 13px 0 0 0;
  width: 180px; /*ロゴ画像の幅*/
}
/*電話番号ブロック*/
header address {
  display: none;
}
/*電話番号のアイコン（アイコンにはFont Awesomeを使用）*/
header address i {
  color: #fff; /*アイコンの色*/
  padding-right: 5px; /*アイコンの右側に空ける余白*/
}
header address a {
  display: block;
  font-size: 1.2em;
  text-decoration: none;
  color: #fff !important;
}
header address a:hover {
  color: #ff0 !important;
}
.sh {
  display: block;
}
.pc {
  display: none;
}
/*Contact, Englishのボタン*/
.topcontact, .topsearch {
  float: left;
  height: 30px;
  margin: 0;
  margin-left: 10px;
  font-style: normal; /*addressがデフォルトで斜体になってしまうのを標準にする*/
  font-size: 12px;
  background: #999;
  padding: 3px 20px;
  border-radius: 0 0 3px 3px;
}
.topcontact {
  line-height: 22px;
}
#menubar ul a span {
  display: none;
}
/*３本バー（ハンバーガー）アイコン設定
---------------------------------------------------------------------------*/
/*３本バーブロック*/
#menubar_hdr {
  display: block;
  position: fixed;
  z-index: 100;
  top: 20px; /*上からの配置場所指定*/
  right: 20px; /*右からの配置場所指定*/
  width: 30px; /*幅*/
  height: 30px; /*高さ*/
  cursor: pointer;
  background: rgba(0, 0, 0, 0.6) url(../images/ham.png) no-repeat center top/30px; /*背景色、ハンバーガメニュー画像の読み込み、50pxは幅の指定*/
  border-radius: 3px;
}
/*×印が出ている状態の設定。*/
#menubar_hdr.ham {
  background: #ff0000 url(../images/ham.png) no-repeat center bottom/30px;
}
/*メニュー設定（全端末サイズ共通の設定）
---------------------------------------------------------------------------*/
#menubar ul {
  list-style: none;
  margin: 0;
  padding: 0;
  background: #424242; /*背景色。諸事情あって、下のbackgroundのグラデーションのどちらかの色を抜いて下さい。*/
  background: #fff;
}
/*メニュー1個あたりの設定*/
#menubar ul a {
  display: block;
  text-decoration: none;
  background: #4073bf;
  color: #fff; /*文字色*/
  padding: 7px 10px 11px 10px; /*上下、左右へのメニュー内の余白*/
  border-bottom: 1px solid #6c93cd;
  z-index: 10;
}
/*マウスオン時のメニュー色*/
#menubar > ul > li > a:hover {
  /*border-bottom: 2px solid #23D700;*/
  /*filter: brightness(1.12); */ /*少しだけ明るくする*/
}
/*ドロップダウンメニューのリンクタグ*/
#menubar .ddmenu {
  cursor: default; /*リンク要素のカーソルを矢印に変更しておく*/
}
/*ddmenuを指定しているメニューに矢印アイコンをつける設定*/
a.ddmenu::before {
  font-family: "Font Awesome 5 Free"; /*Font Awesomeを使う指定*/
  /* content: "\f078";*/ /*使いたいアイコン名をここで指定。Font Awesomeに記載されています。詳しくは当テンプレートのマニュアルを読んで下さい。*/
  font-weight: bold; /*この手の設定がないとアイコンが出ない場合があります*/
  margin-right: 1em; /*アイコンとテキストとの間に空けるスペース*/
}
/*メニューの設定
---------------------------------------------------------------------------*/
#menubar {
  height: 0px;
  overflow: hidden;
}
/*小さな端末用のメニューブロック*/
#menubar.db {
  position: fixed;
  overflow: auto;
  z-index: 99;
  left: 0px;
  top: 0px;
  width: 100%;
  height: 100%;
  padding: 90px 20px; /*上下、左右へのメニューブロック内の余白*/
  background: rgba(0, 0, 0, 0.8); /*背景色。0,0,0は黒の事で0.8は色が80%出た状態。*/
}
/*ドロップダウンメニュー
---------------------------------------------------------------------------*/
#menubar .ddmenu_parent ul {
  display: none;
}
/*ドロップダウンメニュー1個あたりの設定*/
#menubar .ddmenu_parent ul a {
  background: #fff; /*背景色*/
  color: #333; /*文字色*/
}
/*マウスオン時*/
#menubar .ddmenu_parent ul a:hover {
  background: #fafafa; /*背景色*/
  color: #54adf1; /*文字色*/
}
/*mainブロック設定
---------------------------------------------------------------------------*/
/*mainブロックの設定*/
main {
  display: block; /*IE対策*/
  line-height: 1.8em;
}
/*コンテンツのh1タグの設定
---------------------------------------------------------------------------*/
main h1, .toplab h1 {
  claer: both;
}
main h1, .toplab h1 {
  padding: 0;
  margin-top: 1em;
  margin-bottom: 0.8em;
  font-size: 18px !important;
  line-height: 24px !important;
  color: #004882 !important;
  background: none !important;
  text-shadow: none;
  font-weight: 700;
}
main h1 span, .toplab h1 span {
  font-size: 14px;
  font-weight: 500;
  margin-left: 2px;
  color: #555;
  line-height: 14px !important;
}
/*contentsブロック
---------------------------------------------------------------------------*/
#contents {
  min-height: 0%; /*IE対策*/
  min-height: 300px; /*IE対策*/
  flex: 1 0 auto;
}
#contents .toptxt { /*トップページの研究室説明*/
  float: left;
  width: 100%
}
#contents .topvideo { /*トップページのビデオ*/
  float: left;
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
}
/*トップページ左側　ニュース・イベント
---------------------------------------------------------------------------*/
.left {
  width: 100%;
  float: left;
}
.left h2 {
  margin-top: 0;
  /*  text-align: center;
*/
}
/*Topページ右側
---------------------------------------------------------------------------*/
.right {
  width: 100%;
}
.right h2 {
  margin-top: 0;
  /*  text-align: center;
*/
}
.right table {
  margin-top: 5px;
}
.right table td, table th {
  border-bottom: 1px dashed #999;
}
.rcontents {
  margin-top: 1px;
  margin-bottom: 1em !important;
  overflow: hidden;
}
.rcontents p {
  padding-top: 0;
  margin-top: 0;
  padding-bottom: 0;
  margin-bottom: 0;
}
.rcontents ul {
  padding-top: 0.5em !important;
  margin-bottom: 0 !important;
}
.topchair {
  width: 100px;
  float: left;
  margin: 0 1em 1em 0;
}
.line td, table th {
  border-bottom: 1px dashed #999;
}
.toplab {
  color: #fff !important;
}
.toplab h1 {
  color: #fff !important;
}
.toplab h1 span {
  color: #ddd;
}
.toplab {
  /*background: #def1fc !important;*/
  background: #004882 !important;
  display: block; /*IE対策*/
  line-height: 1.8em;
  padding: 10px 5%;
  margin: 0;
  z-index: 5;
}
.topname {
  text-align: center;
  font-size: 12px;
  line-heigt: 14px !important;
  z-index: 5;
}
.topname img {}
.wave {
  margin-top: -2px;
  z-index: 1;
  /*  -webkit-filter: drop-shadow(0px 3px 3px -2px #e6e6e6);
  filter: drop-shadow(0px 3px 3px #e6e6e6);
*/
}
/*トップページ左側　ニュース・イベント
---------------------------------------------------------------------------*/
.left h2 {
  margin-top: 0;
}
.left table {
  margin-top: 5px;
}
.left table td, table th {
  border-bottom: 1px dashed #999;
}
/*メッセージ
---------------------------------------------------------------------------*/
.message {
  text-align: center;
}
.message {
  margin: 0 1.5em 1.5em 0;
  float: left;
}
.message img {
  margin: 1em 0 0 0;
}
/*新着情報
---------------------------------------------------------------------------*/
.whatsnewCon, .eventsCon {
  width: 100%;
  margin: 1px 0 1em 0;
  overflow: auto;
  max-height: 350px;
  overflow-y: scroll;
  font-size: 12px;
}
.whatsnewCon::-webkit-scrollbar {
  background: #004882;
  width: 10px;
}
.whatsnewCon::-webkit-scrollbar-thumb {
  background: #ddd;
  border-radius: 8px;
}
.whatsnewCon {
  /*height: 200px;*/
}
.whatsnewCon td {
  vertical-align: top;
}
.whatsnewCon table td:first-child {
  font-weight: bold;
}
.whatsnewCon table td p {
  margin: 0;
}
/*コンテンツのh2タグの設定
---------------------------------------------------------------------------*/
main h2 {
  font-size: 15px;
  color: #004882;
  border-bottom: 1px solid #004882; /*下線の幅、線種、色*/
}
/*コンテンツのh3タグの設定
---------------------------------------------------------------------------*/
main h3::before {
  content: "◆ "
}
main h3 {
  clear: both;
  font-size: 16px;
  font-weight: bold;
  color: #004882;
  margin-top: 0;
  margin-bottom: 1em;
}
.wnicon {
  width: 80px;
  height: 20px;
  padding: 2px 8px;
  text-align: center;
  font-size: 11px;
  background: red;
  /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#e8e8e8+0,fcfcfc+100 */
  background: #e8e8e8; /* Old browsers */
  background: -moz-linear-gradient(top, #eaeaea 0%, #fff 100%); /* FF3.6-15 */
  background: -webkit-linear-gradient(top, #eaeaea 0%, #fff 100%); /* Chrome10-25,Safari5.1-6 */
  background: linear-gradient(to bottom, #eaeaea 0%, #fff 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#eaeaea', endColorstr='#fff', GradientType=0); /* IE6-9 */
  color: #D40003;
  border-radius: 3px;
  text-decoration: none;
  border: 1px solid #ddd;
}
/*mainブロック内のh3タグ*/
main h3 {
  border-bottom: 4px solid #eee; /*下線の幅、線種、色*/
  padding: 0; /*上、左右、下への余白*/
}
/*mainブロックのpタグ*/
main p {
  margin: 1em 0; /*上、左右、下へ空けるスペース*/
}
main td p {
  margin: 0;
  padding: 0;
}
.inner-contents {
  margin: auto;
  max-width: 1920px;
  /*  max-width: 1400px;
*/ padding: 0 !important;
}
.topics h3 {
  font-size: 16px;
  font-weight: bold;
  margin-bottom: 0;
}
.topics h3::before {
  content: none;
  letter-spacing: 0.5px;
}
.topics .boxList article {
  padding: 1.3em 1.3em 0.8em 1.3em;
}
/*フッターメニュー設定
---------------------------------------------------------------------------*/
/*ボックス全体の設定*/
#footermenu {
  background: #d6e6f4; /*背景色*/
  color: #333; /*文字色*/
  font-size: 0.7rem; /*文字サイズ。remの単位についてはテンプレート内の解説をお読み下さい。*/
  padding: 20px; /*ボックス内の余白*/
  display: flex; /*flexボックスを使う指定*/
  justify-content: space-between; /*並びかたの種類の指定*/
  align-items: flex-start; /*垂直揃えの指定。上に配置されるように。*/
}
/*ボックス内のリンクテキスト設定*/
#footermenu a {
  text-decoration: none;
  color: #333; /*文字色*/
}
/*リンクテキストのマウスオン時*/
#footermenu a:hover {
  color: #ccc; /*文字色*/
}
/*ulタグ（メニューの列単位）*/
#footermenu ul {
  margin: 0;
  padding: 0 2px;
  flex: 1;
  list-style: none;
}
/*title*/
#footermenu .title {
  font-weight: bold; /*太字にする*/
  color: #4073bf; /*文字色*/
  padding-bottom: 5px; /*下に空けるスペース*/
}
#footermenu .title a {
  color: #4073bf; /*文字色*/
}
/*フッター設定
---------------------------------------------------------------------------*/
footer small {
  font-size: 100%;
}
footer {
  box-shadow: 0 -2px 5px 0 #eee;
  padding: 30px 5% 30px 5%;
  font-size: 12px; /*文字サイズ。remの単位についてはテンプレート内の解説をお読み下さい。*/
  background: #004882; /*背景色*/
  color: #fff; /*文字色*/
  text-align: center; /*内容をセンタリング*/
}
/*リンクテキスト*/
footer a {
  color: #fff;
}
/*リンクテキストのマウスオン時*/
footer a:hover {
  color: #fff;
}
/*著作部分*/
footer .pr {
  display: block;
}
.ftxtL {
  font-size: 14px;
}
.footerlogo {
  height: 40px;
}
.relation {
  margin-top: 1em;
}
.relation img {
  height: 30px;
}
.copyright {
  font-size: 12px;
}
/*「お知らせ」ブロック
---------------------------------------------------------------------------*/
/*お知らせブロック*/
#new {
  margin: 0;
  display: flex; /*flexボックスを使う指定*/
  flex-wrap: wrap; /*折り返す指定*/
  padding: 0 20px; /*上下、左右へのボックス内の余白*/
  height: 300px;
  overflow-y: auto;
}
/*日付(dt)、記事(dd)共通設定*/
#new th, #new td {
  border-bottom: 1px solid #ccc; /*下線の幅、線種、色*/
  padding: 5px 0; /*上下、左右へのボックス内の余白*/
  vertical-align: top;
}
#new th p, #new td p {
  padding: 5px 0;
}
/*日付(dt)設定*/
#new td:nth-of-type(1) {
  width: 8em; /*幅。8文字(em)分。※下の「950px以上」の端末用の設定に再設定があります。*/
}
/*日付の横のマーク（共通設定）*/
#new dt span {
  display: none; /*小さな端末では非表示にしておく。*/
}
/*記事(dd)設定*/
#new dd {
  width: calc(100% - 8em); /*「8em」は上の「#new dt」のwidthの値です。※下の「950px以上」の端末用の設定に再設定があります。*/
}
/*サービスページ（listブロック）
---------------------------------------------------------------------------*/
/*listボックスを囲むボックス*/
.list-container {
  display: flex; /*flexボックスを使う指定*/
  flex-wrap: wrap; /*折り返す指定*/
  justify-content: space-between; /*並びかたの種類の指定*/
  flex-direction: column; /*子要素を縦並びにする*/
}
/*listボックス。１個あたりのボックスの指定です。*/
.list {
  display: flex; /*flexボックスを使う指定*/
  flex-direction: column; /*子要素を縦並びにする*/
  justify-content: space-between; /*並びかたの種類の指定*/
  margin-bottom: 30px; /*ボックス同士の上下間の余白*/
  background: #111; /*背景色。*/
  color: #fff; /*文字色*/
  padding: 20px; /*ボックス内の余白*/
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1); /*ボックスの影。右へ、下へ、ぼかし幅の順。0,0,0は黒の事で0.1は色が10%出た状態。*/
  border-radius: 10px; /*角を丸くする指定*/
  overflow: hidden;
}
/*listボックス内のfigure画像*/
.list figure {
  margin: -20px -20px 0; /*上の余白部分を埋めて画像を大きくするような指定です*/
}
/*listボックス内のh4タグ*/
.list h4 {
  margin: 10px 0; /*上下、左右へのh4の外側に空けるスペース*/
  font-size: 1.2em; /*文字サイズを120%に*/
  font-weight: normal; /*hタグのデフォルトの太字を標準にする。太字がいいならこの１行を削除。*/
}
/*listボックス内のpタグ*/
.list p {
  margin: 0;
  font-size: 0.7em; /*文字サイズを70%に。*/
}
/*IE対策*/
.list div {
  min-height: 0%;
}
/*スライドショー、Keyimage
---------------------------------------------------------------------------*/
.mainimg, .topimg {
  position: relative;
  /*box-shadow: 0 2px 7px 0 #ccc;*/
  z-index: 5;
  background: none;
}
.keyimage {
  position: relative;
  z-index: 5;
  box-shadow: 0 0 5px #ddd;
  border-top: 1px solid #fafafa;
}
.keyimage h1 {
  position: absolute;
  top: 5px;
  left: 20px;
  font-size: 20px;
  line-height: 22px;
  font-weight: 600;
  color: #fff !important;
  text-shadow: 0px 0px 5px #333;
}
.keyimage h1 span {
  display: none;
}
/*スライドショー slick
---------------------------------------------------------------------------*/
/*丸いページナビボタン全体を囲むブロック*/
ul.slick-dots {
  margin: 0;
  padding: 0;
  line-height: 1;
  width: 100%;
  text-align: center;
  position: absolute;
  bottom: 20px; /*下からの配置場所指定*/
}
/*丸いページナビボタン１個あたりの設定*/
ul.slick-dots li {
  display: inline-block;
  margin: 0 10px;
  cursor: pointer;
}
/*buttonタグ*/
ul.slick-dots li button {
  border: none;
  padding: 0;
  display: block;
  text-indent: -9999px; /*デフォルトで文字が出るので画面の外に追い出す指定*/
  width: 12px; /*ボタンの幅*/
  height: 12px; /*ボタンの高さ*/
  border-radius: 50%; /*丸くする指定*/
  cursor: pointer; /*クリックで画像へジャンプするので、わかりやすいようhover時にpointerになるように。*/
  background: #fff; /*背景色。白。*/
}
/*buttonのアクティブ時（現在表示されている画像を示すボタン）*/
ul.slick-dots li.slick-active button {
  background: #54adf1; /*色*/
}
/*アイコン
---------------------------------------------------------------------------*/
/*アイコンの共通設定*/
.icon {
  display: inline-block;
  padding: 0 10px; /*上下、左右へのアイコン内の余白*/
  background: #999; /*背景色。iconクラスだけ適用した場合に出る色です。*/
  color: #fff; /*文字色*/
  font-size: 0.7em; /*文字サイズを70%に。*/
  border-radius: 3px; /*角を丸くする指定*/
  margin-right: 3px; /*アイコンが並んだ際に間にとるスペース*/
}
/*NEWアイコン*/
.newicon {
  background: #e82600; /*背景色*/
}
/*option1アイコン*/
.option1 {
  background: #e80068; /*背景色*/
}
/*option2アイコン*/
.option2 {
  background: #009def; /*背景色*/
}
/*詳細ページ
---------------------------------------------------------------------------*/
/*大きな画像のボックスと説明文を入れるボックス*/
#item-image {
  position: relative;
  margin: 0 auto 20px;
  text-align: center;
  width: 100%;
}
/*大きな画像のボックスの中の画像*/
#item-image img {
  width: 100%;
}
/*サムネイル画像*/
.thumbnail {
  width: 80px; /*画像の幅*/
  border: 1px solid #dcdcdc; /*枠線の幅、線種、色*/
  margin-bottom: 5px;
}
.thumbnail:hover {
  border: 1px solid #999; /*マウスオン時の枠線の幅、線種、色*/
}
/*btnの設定
---------------------------------------------------------------------------*/
/*ボタンを囲むブロック*/
.btn {
  text-align: center; /*内容をセンタリング*/
}
/*ボタン*/
.btn a, .btn input {
  display: inline-block;
  text-decoration: none;
  border: none;
  color: #fff; /*文字色*/
  border-radius: 3px; /*角丸のサイズ。ほんの少しだけ角が丸くなります。*/
  padding: 10px 20px; /*上下、左右へのボタン内の余白*/
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2); /*ボックスの影。右へ、下へ、ぼかし幅の順。0,0,0は黒の事で0.2は色が20%出た状態。*/
  background: linear-gradient(#54adf1, #1d95f1); /*背景グラデーション*/
  font-size: 1rem; /*文字サイズ。remの単位についてはテンプレート内の解説をお読み下さい。*/
}
/*ボタンのマウスオン時*/
.btn a:hover, .btn input:hover {
  filter: brightness(1.2); /*少しだけ明るくする*/
  cursor: pointer;
}
/*listブロック内でのボタン*/
.list .btn a, .list .btn input {
  margin-top: 10px; /*上にスペースを空ける*/
  display: block; /*横幅いっぱいに広げる*/
}
/*テーブル
---------------------------------------------------------------------------*/
/*テーブル１行目に入った見出し部分（※caption）*/
.ta1 caption {
  font-weight: bold; /*太字に*/
  padding: 10px 5px; /*上下、左右へのボックス内の余白。基本的に数行下の「.ta1 th, .ta1 td」のpaddingと揃えておけばOKです。*/
  background: #333; /*背景色*/
  color: #fff; /*文字色*/
}
/*ta1テーブルブロック設定*/
.ta1 {
  border-top: 1px solid #ccc; /*テーブルの一番上の線。幅、線種、色*/
  table-layout: fixed;
  width: 100%;
  margin: 0 auto 30px; /*最後の「30px」がテーブルの下に空けるスペースです*/
}
/*tr（１行分）タグ設定*/
.ta1 tr {
  border-bottom: 1px solid #ccc; /*テーブルの下線。幅、線種、色*/
}
/*th（左側）、td（右側）の共通設定*/
.ta1 th, .ta1 td {
  padding: 10px 5px; /*上下、左右へのボックス内の余白*。基本的に数行上の「.ta1 caption」のpaddingと揃えておけばOKです。*/
  word-break: break-all; /*英語などのテキストを改行で自動的に折り返す設定。これがないと、テーブルを突き抜けて表示される場合があります。*/
}
/*th（左側）のみの設定*/
.ta1 th {
  width: 30%; /*幅*/
  text-align: left; /*左よせにする*/
  background: #f7f7f7; /*背景色*/
}
/*製品FAQ
---------------------------------------------------------------------------*/
/*FAQボックス全体*/
.faq {
  padding: 0 5px; /*上下、左右へのボックス内の余白*/
}
/*質問*/
.faq dt {
  border-radius: 10px; /*枠を角丸にする指定*/
  margin-bottom: 20px; /*下に空けるスペース*/
  background: linear-gradient(#fff, #f7f7f7); /*背景グラデーション*/
  box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.2); /*ボックスの影。右へ、下へ、ぼかし幅、0,0,0は黒の事で0.2は色が20%出た状態の事。*/
  text-indent: -2em; /*テキストのインデント。質問が複数行になった際に、テキストの冒頭を揃える為に設定しています。*/
  padding: 5px 1em 5px 3em; /*ボックス内の余白。ここを変更する場合、上のtext-indentも調整します。*/
}
/*アイコン（Font Awesome）*/
.faq dt::before {
  font-family: "Font Awesome 5 Free"; /*Font Awesomeを使う指定*/
  content: "\f059"; /*使いたいアイコン名をここで指定。Font Awesomeに記載されています。詳しくは当テンプレートのマニュアルを読んで下さい。*/
  color: #54adf1; /*アイコンの色*/
  padding-right: 1em; /*アイコンとテキストの間の余白*/
}
/*回答*/
.faq dd {
  padding: 5px 1em 30px 3em; /*ボックス内の余白**/
}
/*opencloseを適用した要素のカーソル*/
.openclose {
  cursor: pointer; /*カーソルの形状。リンクと同じスタイルにしてクリックできると認識してもらう。*/
}
.faq dt span {
  text-indent: 0;
}
/*PAGE TOP（↑）設定
---------------------------------------------------------------------------*/
.pagetop-show {
  display: block;
}
/*ボタンの設定*/
.pagetop a {
  display: block;
  text-decoration: none;
  text-align: center;
  position: fixed; /*スクロールに追従しない(固定で表示)為の設定*/
  right: 20px; /*右からの配置場所指定*/
  bottom: 20px; /*下からの配置場所指定*/
  color: #fff; /*文字色*/
  font-size: 1.5rem; /*文字サイズ*/
  background: rgba(0, 0, 0, 0.3); /*背景色。0,0,0は黒の事で0.3は色が30%出た状態。*/
  width: 2em; /*幅*/
  line-height: 2em; /*高さ*/
}
/*マウスオン時*/
.pagetop a:hover {
  background: rgba(0, 0, 0, 0.8); /*背景色。0,0,0は黒の事で0.8は色が80%出た状態。*/
}
/*その他
---------------------------------------------------------------------------*/
.clearfix::after {
  content: "";
  display: block;
  clear: both;
}
.color-theme, .color-theme a {
  color: #54adf1 !important;
}
.color-check, .color-check a {
  color: #f00 !important;
}
.c {
  text-align: center !important;
}
.ws {
  width: 95%;
  display: block;
}
.wl {
  width: 95%;
  display: block;
}
.mb30 {
  margin-bottom: 30px !important;
}
.look {
  display: inline-block;
  border: 1px solid #ccc;
  padding: 5px 20px;
  background: rgba(0, 0, 0, 0.03);
  border-radius: 5px;
  margin: 5px 0;
}
.ofx {
  overflow-x: hidden;
}
.tcol tr td:first-child {
  background: #D1E5EF;
  white-space: preserve nowrap;
}
.tcol tr td:nth-child(2) {
  background: #f0f0f0;
}
.tcol tr td:last-child {
  background: #f6f6f6;
}
.tcol tr td {
  padding: 3px 8px;
  border-bottom: 1px solid #fafafa;
}
.tcolR tr, .tcolG tr {
  border-bottom: 15px solid transparent;
}
.tcolR tr td {
  vertical-align: top;
  padding: 10px;
}
.tcolG tr td {
  vertical-align: top;
  padding: 0;
  border: none;
}
.tcolR tr td:first-child {
  background: none;
  white-space: preserve nowrap;
  text-align: center;
  width: 300px;
}
.tcolG tr td:first-child {
  background: none;
  white-space: preserve nowrap;
  text-align: center;
  width: 420px;
  padding: 0 !important;
  height: 236px;
  overflow: hidden;
}
.tcolR tr td:nth-child(2), .tcolG tr td:nth-child(2) {
  background: #f0f0f0;
  padding: 10px 15px;
}
.tcolR tr td:last-child, .tcolG tr td:last-child {
  background: #f6f6f6;
}
.tcolR, .tcolG {
  border-collapse: separate;
  width: 100%;
  margin-bottom: 1.5em;
}
.tcolR {
  border-collapse: separate;
  width: 100%;
  border-spacing: 0 0.5em;
}
/*---------------------------------------------------------------------------
ここから下は画面幅480px以下の追加指定
---------------------------------------------------------------------------*/
@media screen and (max-width:480px) {
  /*header（ロゴなどが入った最上段のブロック）
---------------------------------------------------------------------------*/
  /*ヘッダーブロック*/
  header {
    flex-direction: column; /*ロゴと電話番号を縦並びにする*/
  }
  /*電話番号ブロック*/
  header address {
    margin-right: 0px;
  }
  /*　※注意！　下の閉じカッコ　}　はこのブロックに必要なので、削除しないで下さい。　*/
}
/*---------------------------------------------------------------------------
ここから下は画面幅600px以下の追加指定
---------------------------------------------------------------------------*/
@media screen and (max-width:600px) {
  /*header（ロゴなどが入った最上段のブロック）
---------------------------------------------------------------------------*/
  /*mainブロックのpタグ*/
  main p {
    margin: 0 5px 10px; /*上、左右、下へ空けるスペース*/
  }
  .tcol tr td, .tcolR tr td, .tcolG tr td {
    width: 100%;
    display: block;
  }
  .tcolR tr td:first-child {
    white-space: preserve nowrap;
    text-align: center;
    width: 100%;
  }
  /*
  .keyimage h1 {
    left: 14px;
    font-size: 1.6em;
    line-height: 15px;
    font-weight: 500;
    text-shadow: 0 0 3px #fff;
    color: #00AC4E;
  }
  .keyimage h1 span {
    display: none;
  }
*/ a.anchor {
    display: block;
    margin-top: -45px;
    padding-top: 45px;
  }
}
/*---------------------------------------------------------------------------
ここから下は画面幅950px以上の追加指定
---------------------------------------------------------------------------*/
@media screen and (min-width:900px) {
  header {
    height: 68px; /*ヘッダーの高さ*/
  }
  header #logo {
    line-height: 0;
    margin: 13px 0 0 0;
    width: 180px; /*ロゴ画像の幅*/
  }
  .pc {
    display: block;
  }
  .sh {
    display: none;
  }
  main h1, .toplab h1 {
    font-size: 24px !important;
    line-height: 24px !important;
  }
  main h1 span {
    line-height: 16px !important;
  }
  main h2 {
    font-size: 20px;
  }
  .mainimg img, .topimg img {
    width: 100%;
    height: 200px !important;
    object-fit: cover;
  }
  .mainimg p, .topimg p {
    font-size: 2em;
  }
  /*キーイメージ設定
---------------------------------------------------------------------------*/
  .keyimage img {
    width: 100%;
    max-height: 180px;
    object-fit: cover;
  }
  /*  .keyimage h1 {
    text-align: center;
    position: absolute;
    top: 0px;
    left: 34px;
    font-size: 2.2em;
    line-height: 22px;
    font-weight: 600;
    color: #fff;
    text-shadow: 0px 0px 5px #333;
  }
  .keyimage h1 span {
    display: inline;
    letter-spacing: 0;
    font-size: 0.6em !important;
  }
    */
  /*全体の設定
---------------------------------------------------------------------------*/
  html, body {
    font-size: 15px; /*基準となるフォントサイズの上書き*/
  }
  /*fixmenu。大きな端末で、メインメニューが画面上部についた時のスタイル。
---------------------------------------------------------------------------*/
  .fixmenu {
    position: fixed !important;
    z-index: 100;
    left: 0px;
    top: 0px;
    width: 100%;
  }
  /*header（ロゴなどが入った最上段のブロック）
---------------------------------------------------------------------------*/
  /*電話番号ブロック*/
  header address {
    margin-right: 0px;
    display: inline;
  }
  /*menubar
---------------------------------------------------------------------------*/
  /*ハンバーガーメニューを非表示にする*/
  #menubar_hdr {
    display: none;
  }
  /*メニューのボックス全体の設定（※変更不要）*/
  #menubar {
    height: auto;
    overflow: visible;
  }
  #menubar.db {
    position: static;
    overflow: visible;
    height: auto;
    padding: 0;
  }
  #menubar {
    width: calc(100% - 250px);
    float: right;
  }
  /*---------------------------------------------------------------------------*/
  /*ちらつき防止*/
  /*
  #menubar {
    animation: opa1 0.3s 0.1s both;
    position: relative;
    z-index: 99;
  }
*/ /*メニュー設定（全端末サイズ共通の設定）
---------------------------------------------------------------------------*/
  /*メニュー1個あたりの設定*/
  #menubar ul a {
    padding-top: 12px !important;
    background: #fff;
    padding: 7px 10px 11px 10px; /*上下、左右へのメニュー内の余白*/
    border-left: 1px solid #eee;
    border-bottom: none;
    font-size: 14px;
    line-height: 15px;
    font-weight: 600;
    color: #333;
  }
  #menubar ul a span {
    display: inline;
    font-size: 11px;
    font-weight: normal;
    color: #008bb3;
  }
  /*ドロップダウンに影響させない為。*/
  #menubar > ul {
    display: flex; /*flexボックスを使う指定*/
    justify-content: space-between; /*並びかたの種類の指定*/
    /*max-width: 1500px;*/ /*最大幅。これ以上広がらないように。前半の小さな端末用の「#container」と数字を揃える。*/
  }
  /*メニュー１個あたりの設定*/
  #menubar li {
    text-align: center; /*テキストをセンタリング*/
    flex: 1; /*個々のメニューを均等にし、幅いっぱいまで使う設定*/
    position: relative; /*ddmenu ulの幅となる基準を作っておく*/
    margin: 5px auto;
  }
  #menubar > ul > li > a:after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 2px;
    -webkit-transform: scaleX(0); /*--ここを0にすることで下線は非表示となる--*/
    -ms-transform: scaleX(0); /*--ここを0にすることで下線は非表示となる--*/
    transform: scaleX(0); /*--ここを0にすることで下線は非表示となる--*/
    background-color: #0167a2;
    -webkit-transition: all .3s; /*--0.3秒かけて下線が表示される--*/
    transition: all .3s; /*--0.3秒かけて下線が表示される--*/
  }
  #menubar > ul > li > a:hover {
    /* border-bottom: 2px solid #23D700;
    filter: brightness(1);*/
  }
  #menubar > ul > li > a:hover::after {
    -webkit-transform: scaleX(1);
    -ms-transform: scaleX(1);
    transform: scaleX(1);
  }
  /*ドロップダウンメニュー
---------------------------------------------------------------------------*/
  #menubar ul li.honly {
    display: none;
  }
  /*ドロップダウンメニューブロック全体*/
  #menubar ul ul {
    position: absolute;
    z-index: 100;
    width: 100%;
  }
  /*メニュー１個ごとに入れる線*/
  #menubar .ddmenu_parent ul li a {
    border: 1px solid #ccc; /*枠線の幅、線種、色*/
    border-top: none; /*上の線だけ消す*/
  }
  /*最初のドロップダウンにのみ上の線を入れる*/
  #menubar .ddmenu_parent ul li:first-of-type a {
    border-top: 1px solid #ccc;
  }
  /*トップページ左側　ニュース・イベント
---------------------------------------------------------------------------*/
  .left {
    max-width: 400px;
    line-height: 18px;
    float: left;
  }
  .left img {
    margin-bottom: 10px;
  }
  /*Topページ右側
---------------------------------------------------------------------------*/
  .right {
    width: calc(100% - 425px);
    float: right;
    padding-top: 0 !important;
  }
  .right h2 {
    margin-top: 0;
  }
  /*コンテンツ設定
---------------------------------------------------------------------------*/
  #contents .toptxt { /*トップページの研究室説明*/
    float: left;
    width: 68%;
  }
  #contents .topvideo { /*トップページのビデオ*/
    float: left;
    width: 27%;
  }
  /*フッター設定
---------------------------------------------------------------------------*/
  .footername {
    float: left;
    color: #fff; /*文字色*/
    text-align: left;
  }
  .relation {
    float: right;
    margin-top: 4px;
  }
  /*フッターメニュー設定
---------------------------------------------------------------------------*/
  /*ボックス全体の設定*/
  #footermenu {
    font-size: 0.8rem; /*文字サイズ。remの単位についてはテンプレート内の解説をお読み下さい。*/
    padding: 20px 50px; /*上下、左右へのボックス内の余白*/
    display: flex; /*flexボックスを使う指定*/
  }
  /*「お知らせ」ブロック
---------------------------------------------------------------------------*/
  /*日付(dt)設定*/
  #new dt {
    width: 14em; /*幅。14文字(em)分。*/
    display: flex; /*flexボックスを使う指定*/
    justify-content: space-between; /*日付とアイコンをそれぞれ端に寄せる*/
  }
  /*日付の横のマーク（共通設定）*/
  #new dt span {
    display: inline-block; /*表示させる*/
    width: 6em; /*幅。6文字(em)分。*/
    background: #999; /*背景色*/
    color: #fff; /*文字色*/
    font-size: 0.9em; /*文字サイズを90%に。*/
    text-align: center; /*文字をセンタリング*/
    border-radius: 3px; /*角を少しだけ丸くする*/
    margin-right: 1.2em; /*アイコンの右側に空けるスペース*/
    align-self: flex-start; /*高さを間延びさせない指定*/
    line-height: 1.5; /*行間を少し狭く*/
    position: relative;
    top: 0.4em; /*上下の配置バランスの微調整*/
  }
  /*bg1設定。サンプルテンプレートでは「求人情報」と書いてあるマーク*/
  #new dt span.icon-bg1 {
    background: #f32218; /*背景色*/
  }
  /*記事(dd)設定*/
  #new dd {
    width: calc(100% - 14em); /*「14em」は上の「#new dt」のwidthの値です。*/
  }
  /*サービスページ（listブロック）
---------------------------------------------------------------------------*/
  /*listボックスを囲むボックス*/
  .list-container {
    flex-direction: row; /*子要素を横並びにする*/
  }
  /*listボックス。１個あたりのボックスの指定です。*/
  .list {
    width: 49%; /*ボックスの幅*/
  }
  /*詳細ページ
---------------------------------------------------------------------------*/
  /*大きな画像のボックスと説明文を入れるボックス*/
  #item-image {
    width: 80%;
  }
  /*テーブル
---------------------------------------------------------------------------*/
  /*テーブル１行目に入った見出し部分（※caption）*/
  .ta1 caption {
    padding: 5px 15px; /*上下、左右へのボックス内の余白*/
  }
  /*th（左側）、td（右側）の共通設定*/
  .ta1 th, .ta1 td {
    padding: 20px 15px; /*上下、左右へのボックス内の余白*/
  }
  /*th（左側）のみの設定*/
  .ta1 th {
    width: 20%; /*幅*/
  }
  /*その他
---------------------------------------------------------------------------*/
  .ws {
    width: 48%;
    display: inline;
  }
  /*　※注意！　下の閉じカッコ　}　はこのブロックに必要なので、削除しないで下さい。　*/
}
/*boxList
---------------------------------------------------------------------------*/
.boxList {
  display: flex;
  flex-flow: row wrap;
  /*justify-content:  space-between;*/
  justify-content: space-between;
  align-content: flex-start;
}
.boxList article {
  display: flex;
  flex-direction: column;
  padding: 1.3em;
  background: #fff;
  text-align: left;
  border: 1px solid #ddd;
  margin-bottom: 1em;
}
.boxList article:hover {
  box-shadow: 0 1px 25px 0 #ccc;
}
.boxList article a {
  width: 100%;
  height: 100%;
}
.boxList::after {
  content: " ";
  /*  display: block;*/
}
.boxList article h3 {
  text-align: center;
  padding: 0 !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  flex: 1;
}
.boxList article p {
  font-size: 0.9em;
  margin: 5px;
  padding: 0 !important;
  margin-top: auto;
  flex: 2;
}
.boxList a {
  text-decoration: none;
}
.boxList a:hover img {
  transform: scale(1.05);
  transition: 0.8s;
  opacity: 0.7;
}
.boxList article .img-wrapper {
  width: 100%;
  height: 180px; /*高さを指定*/
  overflow: hidden;
}
.boxList article img {
  /*  position: relative;
  bottom: 0!important;*/
  width: 100%;
  height: 180px; /*高さを指定*/
  object-fit: cover; /*画像をコンテナいっぱいに表示*/ border: 1px solid #fff;
  margin: auto;
  align-items: flex-end;
}
@media screen and (min-width: 1150px) {
  .boxList article {
    width: 31.5%;
  }
  .boxList::after {
    width: 31.5%;
  }
}
@media screen and (min-width: 800px)and (max-width: 1149px) {
  .boxList article {
    width: 48%;
  }
  .boxList::after {
    width: 48%;
  }
}
@media print, screen and (max-width: 799px) {
  .boxList article {
    width: 100%;
  }
  .boxList::after {
    width: 100%;
  }
}
@media print, screen and (max-width: 949px) {
  .toplab img {
    width: 100%;
    max-width: 600px;
  }
}