@import url('https://fonts.googleapis.com/css2?family=Itim&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Cherry+Swash&display=swap');
@import url('https://fonts.googleapis.com/earlyaccess/nikukyu.css'); /* ニコモジ */
@import url('https:////fonts.googleapis.com/earlyaccess/nicomoji.css'); /* ニクキュウ */

/* 縦Navの設定 */
* {
	margin: 0;
	padding: 0;
}
*, *:before, *:after {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}

html,body {
	height: 100%;
}
body {
	font-size: 20px;
	font-family: 'Lato', 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', Meiryo, メイリオ, Osaka, 'MS PGothic', arial, helvetica, sans-serif;
	background: #eee;
	-webkit-text-size-adjust: 100%;
}

#main {
	background: #eee;
}
#main-in {
	padding-left: 260px;
}
#main p {
	/* margin-bottom: 1em; */
	line-height: 1.9;
}
#main .inner {
	padding: 15px;
}

/* main-visual */
#main-visual {
	background: #64CE80;
	background: -webkit-linear-gradient(-45deg, #64CE80, #C68BC4);
	background: -moz-linear-gradient(-45deg, #64CE80, #C68BC4);
	background: -ms-linear-gradient(-45deg, #64CE80, #C68BC4);
	background: -o-linear-gradient(-45deg, #64CE80, #C68BC4);
	background: linear-gradient(-45deg, #64CE80, #C68BC4);


	height: 200px;
	display: flex;

	-webkit-box-pack: center;
	-ms-flex-pack: center;
	-webkit-justify-content: center;
	justify-content: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
	-webkit-align-items: center;
	align-items: center;
}
#main-visual h2 {
	font-size: 180%;
	color: #fff;
}
h3 {
	font-size: 131%;
	margin-bottom: .7em;
}
#copyright a {
	color: #666;
	text-decoration: none;
}
#copyright a:hover {
	text-decoration: underline;
}

/* ここから */
#global-head {
	position: fixed;
	/* color: #033560; */
	color: rgba(51,0,153,0.8);
	width: 260px;
	text-align: center;
	padding-top: 60px;
	z-index: 100;
}

#sidebar {
	font-size: 15px;
	padding-top: 120px;
	width: 260px;
	height: 100%;
	position: fixed;
	/* color: #033560; */
	color: rgba(51,0,153,0.8);
	background: #fff;
	text-align: center;
	z-index:80;
	overflow-y: auto; /* 高さを超えた場合にスクロール */
}

#global-nav ul {
	list-style: none;
	margin-left: 0px;
	padding-top: 15px;
}
#global-nav > ul > li {
	position: relative;
}

#global-nav a,
#global-nav .sub-menu-head {
    color: rgba(51,0,153,0.8);
    text-decoration: none;
    display: block;
    width: 100%;
    padding: 15px 0;
    background: none;
    border: none;
    font-size: inherit;
    font-family: inherit;
    text-align: center;
    cursor: pointer;
    transition: background-color .3s linear;
}

#global-nav .sub-menu.is-active > .sub-menu-head,
#global-nav .sub-menu-head:hover {
    color: #fff;
    background: rgba(51,0,153,0.8);
}

#global-nav .sub-menu:hover .sub-menu-nav,
#global-nav .sub-menu.is-active .sub-menu-nav {
    width: 230px;
}


/* sub-menu icon */
#global-nav .sub-menu-head {
	position: relative;
}
#global-nav .sub-menu-head:after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	right: 18px;
	margin: auto;
	vertical-align: middle;
	width: 8px;
	height: 8px;
	/* border-top: 1px solid #033560;
	border-right: 1px solid #033560; */
	border-top: 1px solid rgba(51,0,153,0.8);
	border-right: 1px solid rgba(51,0,153,0.8);
	-moz-transform: rotate(45deg);
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}

/* sub-menu */
#global-nav .sub-menu-nav {
	position: fixed;
	/* background: #033560; */
	background: rgba(51,0,153,0.8);
	color: #fff;
	top: 0;
	padding-top: 120px;
	left: 260px;
	width: 0;
	height: 100%;
	overflow: hidden;

	-moz-transition: width .2s ease-out;
	-webkit-transition: width .2s ease-out;
	transition: width .2s ease-out;
}

#global-nav .sub-menu.is-active > .sub-menu-head:after,
#global-nav .sub-menu-head:hover:after {
    border-color: #fff;
}

#global-nav .sub-menu-nav a {
	color: #fff;
	
}
#global-nav .sub-menu-nav a:hover {
	/* color: #033560; */
	color: rgba(51,0,153,0.8);
	background: #fff;
}


/* nav-toggle */
#nav-toggle {
	display: none;
	position: fixed;
	top: 15px;
	right: 15px;
	height: 32px;
}
#nav-toggle > div {
	position: relative;
	width: 32px;
}
#nav-toggle span {
	width: 100%;
	height: 2px;
	left: 0;
	display: block;
	/* background: #033560; */
	background: rgba(51,0,153,0.8);
	position: absolute;
	-webkit-transition: .35s ease-in-out;
	-moz-transition: .35s ease-in-out;
	transition: .35s ease-in-out;
}

#nav-toggle span:nth-child(1) {
	top: 0;
}
#nav-toggle span:nth-child(2) {
	top: 11px;
}
#nav-toggle span:nth-child(3) {
	top: 22px;
}

#overlay {
	display: none;
	position: fixed;
	background: rgba(0,0,0,.6);
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}

/* ここは変更なし */
#global-nav .sub-menu-nav {
    background: rgba(51,0,153,0.8);
}


@media screen and (min-width: 900px) {

    #global-head h1 {
        display: none;
    }

    #global-nav .sub-menu {
        position: relative;
    }

    #global-nav .sub-menu-nav {
        position: fixed;
        top: 0;
        left: 260px;
        width: 0;
        height: 100%;
        padding-top: 120px;
        overflow: hidden;
        transition: width .2s ease-out;
    }

    /* PC hover（既存そのまま） */
    #global-nav .sub-menu:hover .sub-menu-nav {
        width: 230px;
    }
	#global-nav .sub-menu-nav li {
	    opacity: 0;
	    transition: opacity 0.15s ease-out;
	}
	
	/* 開ききったら中身を表示 */
	#global-nav .sub-menu:hover > .sub-menu-nav li,
	#global-nav .sub-menu.is-active > .sub-menu-nav li {
		opacity: 1;
		transition-delay: 0.15s; /* width 展開後 */
	}
}

@media (hover: none) and (pointer: coarse) and (min-width: 901px) {

  /* 横スライド用の指定を無効化 */
  #global-nav .sub-menu-nav {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    padding-top: 0 !important;

    transform: none !important;
    opacity: 1 !important;

    display: none;
    background: rgba(51,0,153,0.8);
  }

  /* is-active で縦に開く */
  #global-nav .sub-menu.is-active > .sub-menu-nav {
    display: block;
  }

  /* 見た目調整（任意） */
  #global-nav .sub-menu-nav li a {
    padding-left: 1.5rem;
  }

  /* 矢印は縦用に */
  #global-nav .sub-menu-head:after {
    transform: rotate(135deg);
  }

  #global-nav .sub-menu.is-active > .sub-menu-head:after {
    transform: rotate(-45deg);
  }
}

@media screen and (max-width: 900px) {

    #main-in {
        padding-left: 0;
    }

    #global-head {
        width: 100%;
        padding: 10px;
        background: rgba(255,255,255,.8);
        display: flex;
        font-family: 'Meiryo';
        font-weight: bold;
    }

    #global-head img {
        display: none;
    }

    #sidebar {
        position: fixed;
        right: -300px;
        top: 0;
        height: 100%;
        width: 300px;
        background: #fff;
        transition: .35s ease-in-out;
    }

    #nav-toggle {
        display: block;
		position: fixed;
	    top: 15px;
	    right: 15px;
	    z-index: 9999;
    }

    /* nav open */
    .open {
        overflow: hidden;
    }

    .open #sidebar {
        transform: translate3d(-300px, 0, 0);
    }

    /* sub-menu は縦に畳む（まだ動作定義しない） */
    #global-nav .sub-menu-nav {
        position: static;
        width: 100%;
        display: none;
        padding-left: 1rem;
    }

    #global-nav .sub-menu.is-active .sub-menu-nav {
        display: block;
    }

    #global-nav .sub-menu-head:after {
        display: none;
    }
}

@media screen and (max-width: 400px) {

    #sidebar {
        right: -200px;
        width: 200px;
        padding-top: 60px;
    }

    .open #sidebar {
        transform: translate3d(-200px, 0, 0);
    }
}


/* 縦Navの設定ここまで */


.language {
    margin-right: 1.5rem;
}

/* indexページの設定　*/
.topics {
    margin-right: 1rem;
    margin-left: 1rem;
    font-family: 'Century Gothic';
}

.pictitle {
    margin-top: 3px;
    padding: 5px;    
    border: 4px solid;
    border-radius: 4px;
    border-color: #bc0bdb;
    background-image: -webkit-gradient(linear, right top, left top, from(#da6ff7), to(#bc0bdb));
    color: white;
    font-weight: bold;
    font-family: "Sawarabi Gothic";    
    display:inline-block;
}

/* index のテーブル設定　*/
.topicslist {
    margin-right: 1rem;
    margin-left: 1rem;
}

.tableindex {
    height: auto;
    overflow: visible;
    position: relative;
    table-layout: fixed;
    width: 100%;
}

/* index の下線の設定＋最初の行が動かないように　*/
.tableindex thead{     
    position: sticky;
    background-color: white;
    top: 0;
    z-index: 10;
}

.tableindex thead:before {
  content: "";
  position: absolute;
  top: -1px;
  left: -1px;
  width: 100%;
  height: 100%;
  border-bottom: 1px solid black;
}

.tableindex tbody tr {
    border-bottom: 1px solid #ccc;
}

.tableindex tbody td {
    border-bottom: 1px solid #ccc;    
    z-index: 2; /* 下線より上に表示する */
}

.tableindex td {
    vertical-align: middle;
}

.tableindex tbody td a {
    position: relative; /* セル内の相対位置 */
    z-index: 11; /* theadより低いと ipad で押せない。 */    
}

tr.t-thisyear td{
    font-weight: bold;
    background: #f8f4ff;
}
/* ######################################################################### */
.table-wrapper {
    height: auto;
    overflow: visible;
    position: relative;
    table-layout: fixed;
    width: 100%;
}

/* index の下線の設定＋最初の行が動かないように　*/
.table-wrapper thead{     
    position: sticky;
    background-color: white;
    top: 0;
    z-index: 10;
}

.table-wrapper thead:before {
  /* content: "";  これがあると列幅が変更できない */
  position: absolute;
  top: -1px;
  left: -1px;
  width: 100%;
  height: 100%;
  border-bottom: 1px solid black;
}

.table-wrapper tbody tr {
    border-bottom: 1px solid #ccc;
}

.table-wrapper tbody td {
    border-bottom: 1px solid #ccc;    
    z-index: 2; /* 下線より上に表示する */
}

.table-wrapper td {
    vertical-align: middle;
}

.table-wrapper tbody td a {
    position: relative; /* セル内の相対位置 */
    z-index: 11; /* theadより低いと ipad で押せない。 */    
}

tr.t-thisyear td{
    font-weight: bold;
    background: #f8f4ff;
}

/* ######################################################################### */
.btn-outline-purple {
    border-color: #bc0bdb;    
    background-color: #ffffff;  /* fallback for old browsers */
    color: #bc0bdb;    
}

.btn-outline-purple:hover{
    background-color: #bc0bdb;  /* fallback for old browsers */
    color: #ffffff;    
}

input[type="radio"]:checked + label.btn-outline-purple
{
    background-color: #bc0bdb;
    color: #ffffff;  
    box-shadow: 0 0 0 4px rgba(153, 0, 255, 0.2);
}

/* ######################################################################### */
/* 初期状態（チェックされていないとき） */
.btn-solid-purple {
    border: 2px solid #bc0bdb; /* 紫の枠 */
    background-color: transparent; /* 背景なし */
    color: #bc0bdb; /* 文字色を紫 */
    transition: all 0.3s ease-in-out;
}

/* ホバー時（枠を維持しつつ、薄めの背景色を適用） */
.btn-solid-purple:hover {
    background-color: rgba(188, 11, 219, 0.2) !important; /* 薄い紫の背景 */
    border: 2px solid #bc0bdb !important; /* 枠を維持 */
    color: #bc0bdb; /* 文字色もそのまま */
}

/* チェック時（濃い紫に変化） */
.btn-check:checked + .btn-solid-purple {
    background-color: #bc0bdb; /* 背景を紫に */
    border-color: #bc0bdb;
    color: white; /* 文字色を白に */
    box-shadow: 0 0 5px rgba(188, 11, 219, 0.6); /* 発光エフェクト */
}
/* ######################################################################### */

.tableindex_master {
    height: auto;
    overflow: visible;
    position: relative;
}

/* index の下線の設定＋最初の行が動かないように　*/
.tableindex_master thead{     
    position: sticky;
    background-color: white;
    top: 0;
    z-index: 10;
}

.tableindex_master thead:before {
  content: "";
  position: absolute;
  top: -1px;
  left: -1px;
  width: 100%;
  height: 100%;
  border-bottom: 1px solid black;
}

.tableindex_master tbody tr {
    border-bottom: 1px solid #ccc;
}

.tableindex_master tbody td {
    border-bottom: 1px solid #ccc;    
    z-index: 2; /* 下線より上に表示する */
}

.tableindex_master tbody td a {
    position: relative; /* セル内の相対位置 */
    z-index: 11; /* theadより低いと ipad で押せない。 */    
}

/* index のテーブル設定 ここまで　*/
/* indexページの設定ここまで　*/


/* プロフィール画面のCSS　*/
.profile{
    margin-left: 2rem;
}

.map-container-2{
  overflow:hidden;
  padding-bottom:56.25%;
  position:relative;
  height:0;
}
.map-container-2 iframe{
  left:0;
  top:0;
  height:100%;
  width:100%;
  position:absolute;
}
/* プロフィール画面のCSS ここまで　*/

/* 論文検索の画面のCSS　*/
    /* 論文検索のアウトラインボタンの色設定　*/

    /* 論文検索のアウトラインボタンの色設定 ここまで　*/
    
    /* 論文検索のアコーディオンの色設定　*/
.accordion-button {
  background-color: transparent;
  border: 1px solid rgba(135, 0, 255, 0.125);
  border-radius: 0;
  overflow-anchor: none;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;
}

.catebtns {
    margin-top: 1rem;
}

.detailsearch {
    margin-top: 1rem;
}

.accordion-button:not(.collapsed) {
  color: #bc0bdb;
  background-color: rgba(135, 0, 255, 0.2);
  box-shadow: 0 0 0 4px rgba(153, 0, 255, 0.2);
  border: 1px solid rgba(135, 0, 255, 0.6);
}

.accordion-button.collapsed {
  border: 1px solid rgba(135, 0, 255, 0.6);
  box-shadow: 0 0 0 4px rgba(153, 0, 255, 0.2);
}

.yearrow td{
    background-color: black;
    color: white;
}

.searchbar{
    /* position: fixed; */
}

.achievementlist {
    margin: 2rem;    
}
.achievementlist td{
    vertical-align: middle;
}
    /* 論文検索のアコーディオンの色設定 ここまで */
    
/* index の下線の設定＋最初の行が動かないように　*/
.tableresearch {
    height: 1200px;
    overflow: auto;
    position: relative;
}

.tableresearch thead {     
    position: sticky;
    background-color: white;
    top: 0;
    z-index: 1;
}

.tableresearch thead:before {
  content: "";
  position: absolute;
  top: -1px;
  left: -1px;
  width: 100%;
  height: 100%;
  border-bottom: 1px solid black;
}
/* 論文検索の画面のCSS ここまで　*/

/* Linkの画面のCSS　*/
.logvertical img {    
    width: auto;
}
/* Linkの画面のCSS ここまで　*/

/* Form TextFieldの画面のCSS　*/
.content-field {
    width: 80%;
    height: 400px;
    font-size: small;
    line-height: 120%;
    padding: 5px;
}
/* Form TextFieldの画面のCSS ここまで　*/

/* 報告内容の見栄え調整のCSS　*/
.yylab {
    
}

.comments{
    font-size: small;
    /* line-height: 120%; */
}

.yylab figure {
  text-align: center;
}

.yylab figcaption{
    margin-top: 8px;
    margin-bottom: 8px;
    font-weight: bold;    
}

.notice{
    font-size: small;    
}
/* 報告内容の見栄え調整のCSS ここまで　*/

/* manual-pdf　*/
.iframe-wrapper-pdf {
    padding-left: 10px;
    padding-right: 10px;
    height: 82vh; /* ウィンドウの高さに対して100% */
}        
/* manual-pdfのCSS ここまで　*/

.iframe-wrapper-pdf-canvas {
    position: relative;
    padding-left: 10px;
    padding-right: 10px;
    height: 82vh; /* ウィンドウの高さに対して100% */
}
.canvas-overlay {
    position: absolute;
    top: 0;
    left: 0;
}


/* モーダルの背景 */
.modal {
    display: none; /* デフォルトでは非表示 */
    position: fixed; 
    z-index: 200; 
    padding-top: 100px; 
    left: 0;
    top: 0;
    width: 100%; 
    height: 100%; 
    background-color: rgba(0,0,0,0.9); /* 黒い背景、透明度あり */
}

/* モーダル内の画像 */
.modal-content {
    margin: auto;
    display: block;
    width: 80%;
    max-width: 700px;
}

/* モーダルを閉じるボタン（×） */
.close {
    position: absolute;
    top: 50px;
    right: 35px;
    color: white;
    font-size: 40px;
    font-weight: bold;
    cursor: pointer;
}

/* モーダル表示時のアニメーション */
.modal-content, .close {
    animation-name: zoom;
    animation-duration: 0.6s;
}

@keyframes zoom {
    from {transform: scale(0)}
    to {transform: scale(1)}
}