* {
	box-sizing: border-box;
}
html,
body {
	height: 100%;
}
html {
	-webkit-text-size-adjust: 100%;
}
body {
	margin: 0;
	font-family: 'Noto Serif JP', serif;
	font-weight: 400;
	line-height: 1.7;
	color: #000;
}
.top-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: 64px;
	border-bottom: 1px solid #ccc;
	background: #fff;
	z-index: 3;
}
.top-header .top-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 64px;
}
.top-logo {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
}
.top-logo img {
	height: 40px;
	width: auto;
	display: block;
}
nav li::before {
	content: "/";
	margin-right: 1em;
	margin-left: -1em;
	color: #888;
	display: inline-block;
	transform: scaleY(1.5);
}
nav li:first-child::before {
	content: none;
}
.top-nav-toggle {
	display: none;
	background: none;
	border: 0;
	font-size: 24px;
	cursor: pointer;
}
.top-global-nav .top-nav-list {
	display: flex;
	gap: 30px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.top-global-nav a {
	text-decoration: none;
	color: #333;
	font-size: 14px;
	white-space: nowrap;
	font-weight: 500;
}
.top-global-nav a:hover {
	opacity: 0.7;
}
.top-inner {
	width: 100%;
	margin: 0 auto;
	padding: 0 30px 0 15px;
}
main {
	position: relative;
	max-width: 980px;
	margin: 0 auto;
	padding: 64px 0 100px 0;
	z-index: 1;
}
.top-hero {
	background: transparent;
}
.top-hero-grid {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 32px;
	padding: 30px 16px 100px;
}
.top-hero-col {
	flex: 0 0 auto;
}
.top-hero-left,
.top-hero-right {
	flex: 0 0 200px;
}
.top-hero-left img,
.top-hero-right img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 4px;
}
.top-hero-center {
	flex: 1 1 auto;
	text-align: center;
}
.top-hero-left {
	display: flex;
	align-items: flex-end;
}
.top-hero-left img {
	margin-top: 150px;
}
.top-hero-right {
	display: flex;
	align-items: flex-start;
}
.top-hero-right img {
	margin-bottom: 320px;
}
.top-lead {
	font-size: 18px;
	letter-spacing: .2em;
	margin: 100px 0 8px;
	font-weight: 500;
}
.top-title {
	font-size: 56px;
	margin: 0 0 8px;
	font-weight: 500;
	line-height: 1;
}
.top-divider {
	width: 18em;
	height: 2px;
	background: #ccc;
	margin: 0 auto 12px;
}
.top-subtitle {
	margin: 0 0 16px;
	font-size: 16px;
	letter-spacing: .1em;
	font-weight: 400;
}
.top-search {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 100px 0 100px;
	flex-wrap: wrap;
}
.top-search-label {
	font-size: 14px;
	white-space: nowrap;
	font-weight: 500;
}
.top-search-input {
	flex: 1 1 300px;
	max-width: 300px;
	padding: 8px 12px;
	margin-right: 10px;
	border: 1px solid #888;
	border-radius: 4px;
	min-width: 240px;
	font-size: 1em;
	font-weight: 400;
	font-family: 'Noto Serif JP', serif;
}
.top-search-button {
	padding: 8px 8px 5px 10px;
	border: 0;
	border-radius: 5px;
	background: #8a8a8b;
	color: #fff;
	cursor: pointer;
	font-weight: 700;
}
.top-search-button:hover {
	opacity: 0.7;
}
.result .top-search-button {
		padding: 8px 8px 8px 10px;
		height: 40px;
}
.top-section-title {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin: 24px 0 16px;
}
.top-section-title .top-line {
	flex: 1 1 120px;
	height: 1px;
	background: #cc9e56;
}
.top-section-title .top-label {
	white-space: nowrap;
	letter-spacing: .1em;
	font-weight: 500;
}
.top-index-buttons {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
	margin: 0 0 16px;
}
.top-btn {
	width: 7em;
	padding: 3px 12px;
	border-radius: 7px;
	background: #003d8c;
	color: #fff;
	text-decoration: none;
	font-size: 14px;
	font-weight: 500;
}
.top-btn:hover {
	opacity: 0.7;
}
.top-rule {
	border: 0;
	height: 1px;
	background: #cc9e56;
	margin: 24px 0 0;
}
.top-footer {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	height: 160px;
	pointer-events: none;
	z-index: 0;
}
.top-footer .top-gradient {
	height: 100%;
	background: linear-gradient(to top, rgba(187, 220, 235, 1) 0%, rgba(187, 220, 235, 0) 100%);
	background-repeat: no-repeat;
}
.result {
	display: block;
	width: 100%;
	margin: 50px 0;
}
.result form {
	display: flex;
	justify-content: center;
}
.page-wrapper {
	max-width: 980px;
	margin: 0 auto;
	padding: 24px 10px 40px;
}

.list ul{
    padding: 0 0 0 0.5em;
}

.list li {
  list-style: none;    /* デフォルトの・を消す */
  position: relative;
  padding-left: 1.0em; /* ドットの分だけ余白を作る */
}

.list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;          /* 上下位置の調整 */
  width: 3.5px;          /* ドットの幅（ここでサイズ調整！） */
  height: 3.5px;         /* ドットの高さ（ここでサイズ調整！） */
  background-color: #333; /* ドットの色 */
  border-radius: 50%;  /* 丸くする */
}

.no-dot ul {
       padding: 0 0 0 0;
}
.no-dot li {
  list-style-type: none; /* これで・が消えます */
  padding-left: 0;       /* 左側の余白も詰めたい場合に便利 */
  font-size:0.9em;
  line-height: 2.0em;
}

h1 {
	font-size: 20px;
	margin: 0 0 24px;
}

h2 {
    font-size:1.5em;
    margin: 30px 0 15px;
    padding-bottom: 2px;
	border-bottom: 1.5px solid #c7b299;
}

h3{
    font-size: 1.2em;
    margin: 30px 0 15px;
}

h4{
    margin: 30px 0 10px;
}

.major-heading {
    font-size:1.8em;
    margin: 30px 0 30px;
}

.person-list {
	display: flex;
	flex-wrap: wrap;
	margin: 0 -12px;
}
.person-group {
	padding: 0 12px 24px;
	width: 33.3333%;
}
.person-heading {
	font-size: 16px;
	margin: 0 0 8px;
	padding-bottom: 4px;
	border-bottom: 1px solid #ccc;
    color:#0000ff;
}
.person-list-items {
	list-style: none;
	margin: 0;
	padding: 0;
}
.person-list-items li {
	margin: 0 0 4px;
}
.person-list-items a {
	text-decoration: none;
	color: inherit;
}
.person-list-items a:hover {
	text-decoration: underline;
}
.search_result {
	padding: 0 10px;
}
p.hit_text {
	text-align: initial;
}

.text-right{
    text-align: right;
}

.department{
    font-size: 0.8em;
}

/*研究ページ表*/
table {
  width: 100%;
  border-collapse: collapse;
  background: transparent;
  font-size: 13px;
}
td {
  border:  1px solid #ccc;
  padding: 5px 8px;
  vertical-align: top;
}
/* 列幅（合計100%） */
.col-title { width: 55%; text-align: left; }
/*.col-rank  { width: 8%; text-align: left; }*/
.col-name  { width: 22%; text-align: left; }
.col-org   { width: 23%; text-align: left; }
/*.col-dept  { width: 15%; text-align: left; }*/
tr:nth-child(even) { background: transparent; }
tr:hover           { background: transparent; }


/* 列幅（合計100%） */
.col-title02 { width: 37%; text-align: left; }
.col-delegate02 { width: 33%; text-align: left; }
.col-name02  { width: 15%; text-align: left; }
.col-org02   { width: 15%; text-align: left; }
/*.col-dept  { width: 15%; text-align: left; }*/
tr:nth-child(even) { background: transparent; }
tr:hover           { background: transparent; }

/*研究ページ表*/

/*人数表*/
.table-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  align-items: flex-start;
}

.table-block {
  flex: 1 1 auto;
    align-self: flex-start;
}

.table-wrapper table {
  border-collapse: collapse;
  white-space: nowrap;
}

.table-wrapper td {
  padding: 4px 12px;
  vertical-align: top;
}

/*
.table-wrapper td:nth-child(1) {
  font-weight: bold;
}
*/

.table-wrapper td:nth-child(3) {
  text-align: right;
}

.table-wrapper td:empty {
  padding-top: 0;
  padding-bottom: 0;
}
/*人数表*/

/*見出しにpdfリンクを付けた際の指示*/
.pdf-link {
    font-size: 0.8em;
    color: #c00;
    text-decoration: none;
    border: 1px solid #c00;
    padding: 1px 5px;
    border-radius: 3px;
    margin-left: 8px;
    vertical-align: middle;
}
.pdf-link:hover {
    background-color: #c00;
    color: #fff;
}
/*見出しにpdfリンクを付けた際の指示*/




@media screen and (max-width: 690px) {
	.person-group {
		width: 100%;
	}
}



@media (max-width: 960px) {
	nav li::before {
		content: none;
	}
	nav li:first-child::before {
		content: none;
	}
	.top-hero-grid {
		gap: 0;
		padding: 24px 16px;
		align-items: inherit;
		justify-content: inherit;
		position: absolute;
		left: 0;
	}
	.top-hero-left,
	.top-hero-right {
		flex: inherit;
		z-index: -1;
	}
	.top-hero-right img {
		position: fixed;
		top: 70px;
		right: -100px;
		width: 50%;
	}
	.top-hero-left img {
		position: fixed;
		top: 150px;
		left: -100px;
		width: 50%;;
	}
	.top-title {
		font-size: 44px;
	}
	.top-divider {
		width: 14em;
	}
	.top-lead {
    margin: 30px 0 8px;
	}
	.top-search {
    margin: 30px 0;
		flex-wrap: initial;
	}
	.result form {
		width: 100%;
    height: 30px;
	}
	 .top-search-input {
		-webkit-appearance: none;
		appearance: none;
		background-color: #fff;
	}
	.result .top-search-input {
		padding: 19px 12px;
		-webkit-appearance: none;
		appearance: none;
		background-color: #fff;
	}
	.top-index-buttons {
    gap: 25px 55px;
	}
	.top-lead {
    text-align: center;
	}
	.top-subtitle {
    text-align: center;
	}
	p.hit_text {
		text-align: justify;
	}
}

@media (max-width: 840px) {
	.top-nav-toggle {
		display: inline-block;
	}
	#top-global-nav {
		position: absolute;
		top: 64px;
		left: 0;
		right: 0;
		height: calc(100% - 64px);
		background: #fff;
		border-bottom: 1px solid #ccc;
		display: none;
		z-index: 1000;
	}
	#top-global-nav.is-open {
		display: block;
		position: fixed;
		height: 100vh;
		z-index: 3;
	}
	.top-global-nav .top-nav-list {
		flex-direction: column;
		gap: 0;
	}
	.top-global-nav .top-nav-list li {
		border-top: 1px solid #ccc;
	}
	.top-global-nav .top-nav-list li:last-child {
		border-bottom: 1px solid #ccc;
	}
	.top-global-nav .top-nav-list a {
		display: block;
		padding: 12px 16px;
	}
	.pc_br {
		display: none;
	}
}

    /* ===== スマホレイアウト（768px以下） ===== */
    @media (max-width: 768px) {

/*研究ページ表スタイル*/
        
      table, tbody, tr, td {
        display: block;
        width: 100%;
      }

      /* 各行をカード風に */
      tr {
        border: 1px solid #ccc;
        border-radius: 8px;
        margin-bottom: 12px;
        background: #fff;
        overflow: hidden;
      }

      /* セルを横並び（ラベル＋値） */
      td {
        display: flex;
        align-items: flex-start;
        gap: 8px;
        border: none;
        border-bottom: 1px solid #eee;
        padding: 8px 12px;
        text-align: left !important;
        width: 100% !important; /* PC用の列幅指定を上書き */
      }

      td:last-child { border-bottom: none; }
        /*研究ページ表スタイル*/

        
    }

/*人数表*/
@media (max-width: 480px) {
  .table-wrapper {
    flex-direction: column;
    gap: 1rem;
  }
}
/*人数表*/


/*** 以下シーズページスタイル *********************************************************************************/
p {
	text-align: justify;
	hyphens: auto;
	-webkit-hyphens: auto;
	overflow-wrap: break-word;
}
p.top-lead {
	text-align: inherit;
}
p.top-subtitle {
	text-align: inherit;
}
.page img {
	display: block;
	width: 100%;
	height: 100%;
	/*object-fit: cover;
	object-position: center;*/
}
figure {
	margin: 0;
}
figcaption {
	font-size: .7rem;
	text-align: center;
	margin-top: .5rem;
	color: #333;
	min-height: 3.7em;
}
figcaption.small {
	font-size: .4rem;
}
.page {
	padding: 10px 5px 64px;
}
.page-head {
	max-width: 980px;
	margin: 0 auto 16px;
}
.pill {
	display: inline-block;
	padding: 4px 0 4px 2px;
	font-size: .8rem;
	margin: 0 0 8px;
}
.title {
	font-weight: 700;
	font-size: 1.75rem;
	margin: 24px 0;
	line-height: 1.4;
}
.ui-controls {
	position: fixed;
	right: 12px;
	top: 12px;
	display: flex;
	gap: 8px;
	z-index: 1000;
}
button {
	color: #333;
}
.btn {
	appearance: none;
	border: 1px solid #999;
	background: #eee;
	padding: 5px 8px;
	font-family: inherit;
	font-size: .9rem;
	border-radius: 8px;
	cursor: pointer;
	margin-top: 12px;
	z-index: 10;
}
.btn:hover {
	opacity: .7;
}
.profile-row {
	max-width: 980px;
	margin: 0 auto 20px;
	display: flex;
	gap: 28px;
	align-items: stretch;
	flex-wrap: nowrap;
	--qr-size: 120px;
}
.profile-left {
	flex: 0 0 60%;
	min-width: 0;
	display: flex;
	gap: 12px;
	align-items: stretch;
}
.bio {
	flex: 1 1 auto;
	min-width: 0;
	padding: 0 0 0 2px;
}
.name-ja {
	font-size: 1.35rem;
	font-weight: 700;
	margin: 0 0 4px;
}
.aff {
	margin: 0 0 4px;
}
.role {
	margin: 0 0 4px;
}
.name-en {
	margin: 0 0 10px;
	color: #555;
}
.portrait {
	flex: 0 0 180px;
	width: 180px;
	align-self: stretch;
}
.portrait img {
	aspect-ratio: 3 / 4;
	object-fit: cover;
}
.profile-right {
	flex: 0 0 40%;
	min-width: 0;
	display: flex;
	gap: 28px;
	align-items: flex-end;
}
.qr,
.yt-label {
	min-height: var(--qr-size, 120px);
	font-weight: 600;
}
.qrbox {
	width: var(--qr-size, 120px);
	height: var(--qr-size, 120px);
}
.qr img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.qrtext {
	line-height: .8;
	margin-top: 10px;
}
.h-underline {
	margin: 0 0 12px;
	font-weight: 700;
	font-size: 1.1rem;
	padding-bottom: 4px;
	border-bottom: 2px solid #1b3777;
}
.keywords-block {
	max-width: 980px;
	margin: -20px auto 20px;
}
.keywords {
	margin: 0;
	padding: 0 0 8px 2px;
}
.summary-block {
	max-width: 980px;
	margin: 0 auto 20px;
}
.summary-row {
	display: flex;
	gap: 24px;
	align-items: stretch;
	flex-wrap: nowrap;
	padding-top: 10px;
}
.summary-text {
	flex: 0 0 calc(50% - 12px);
	min-width: 0;
	padding: 0;
}
.summary-text p {
	margin-top: -0.3em;
}
.summary-fig {
	flex: 0 0 calc(50% - 12px);
	min-width: 0;
}
.summary-fig img {
	aspect-ratio: 3 / 1.8;
}
.photo-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 100px 24px;
	margin-top: 80px;
}
.photo-grid .item {
	flex: 1 1 calc(25% - 18px);
	min-width: 160px;
}
.photo-grid .item img {
	aspect-ratio: 4 / 2.1;
}
@media (max-width: 960px) {
	.photo-grid .item img {
		aspect-ratio: 5 / 1.8;
	}
}
.achv-poss {
	max-width: 980px;
	margin: 55px auto 12px;
	display: flex;
	gap: 24px;
	flex-wrap: nowrap;
}
.achievements {
	flex: 0 0 calc(50% - 12px);
	min-width: 0;
	padding: 12px 0;
}
.possibility {
	flex: 0 0 calc(50% - 12px);
	min-width: 0;
	padding: 12px 0;
}
.sr-only {
	position: absolute !important;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
}
.top-nav-toggle {
	position: absolute;
	right: 18px;
	width: 44px;
	height: 44px;
	padding: 0;
	line-height: 1;
}
.top-nav-toggle .bar {
	display: block;
	width: 28px;
	height: 2px;
	background: #111;
	border-radius: 1px;
	margin: 6px auto;
	transition: transform .25s ease, opacity .25s ease;
}
.top-nav-toggle.is-active .bar:nth-child(1) {
	transform: translateY(8px) rotate(45deg);
}
.top-nav-toggle.is-active .bar:nth-child(2) {
	opacity: 0;
}
.top-nav-toggle.is-active .bar:nth-child(3) {
	transform: translateY(-8px) rotate(-45deg);
}



/*** 各メインページのスタイル追加ここから *********************************************************************/

.greeting {
	
}
.research_ability {
	
}
.industry_academia {
	
}
.joint {
	
}
.results {
	
}
.person_name {
	
}
.department {
	
}
.keyword {
	
}
.category {
	
}

/*** 各メインページのスタイル追加ここまで *********************************************************************/



@media (max-width: 900px) {
	.title {
		font-size: 1.6rem;
	}
	.portrait {
		flex-basis: 150px;
		width: 150px;
	}
}

@media (max-width: 640px) {
	.ui-controls {
		right: 8px;
		top: 8px;
	}
	.profile-row {
		flex-wrap: wrap;
	}
	.profile-left,
	.profile-right {
		flex-basis: 100%;
	}
	.summary-row {
		flex-wrap: wrap;
	}
	.summary-text,
	.summary-fig {
		flex: 1 1 100%;
	}
	.achv-poss {
		flex-wrap: wrap;
	}
	.achievements,
	.possibility {
		flex: 1 1 100%;
	}
	.photo-grid .item {
		flex-basis: calc(50% - 12px);
	}
	.summary-fig img {
		aspect-ratio: 4 / 2.2;
	}
}

@media (max-width: 640px) {
	.profile-row {
		flex-wrap: wrap;
	}
	.profile-left,
	.profile-right {
		flex: 1 1 100%;
	}
	.profile-right {
		gap: 8px;
	}
	.qrbox {
		max-width: 38vw;
		max-height: 38vw;
	}
	.qrtext {
		line-height: .8;
		margin-top: 10px;
		margin-bottom: 20px;
	}
	.page-head {
		max-width: 980px;
		margin: 50px auto 16px;
	}
}



/*** 以下シーズページA4プリントスタイル **********************************************************************/
@media print {
	@page {
		size: A4 portrait;
		margin: 0.5cm;
	}
	html, body {
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
	}
	@media (max-width: 430px) {
		html, body {
			max-height: 29.7cm !important;
			overflow: hidden !important;
		}
		.title {
			margin: 20px 0;
	}
		.keywords-block {
			margin: -30px auto 20px;
		}
	}
	body {
		background: #fff !important;
	}
	.ui-controls {
		display: none !important;
	}
	:root {
		--print-scale: 1;
	}
	.page {
		width: 980px !important;
		max-width: none !important;
		zoom: var(--print-scale);
		transform: scale(var(--print-scale));
		transform-origin: top left;
		margin: 0 !important;
		padding: 0 !important;
	}
	.profile-right {
		flex: 0 0 40%;
		min-width: 0;
		display: flex;
		gap: 28px;
		align-items: flex-end;
		padding-left: 15px;
	}
	.profile-row,
	.summary-row,
	.achv-poss {
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: 12px !important;
	}
	.summary-fig img {
			aspect-ratio: 3 / 1.8;
	}
	.photo-grid {
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: 24px !important;
	}
	.photo-grid .item {
		flex: 0 0 calc(25% - 18px) !important;
		min-width: 0 !important;
	}
	.photo-grid .item img {
			aspect-ratio: 4 / 2.1;
	}
	.summary-text {
		flex: 0 0 calc(50% - 6px) !important;
		min-width: 0 !important;
	}
	.summary-fig {
		flex: 0 0 calc(50% - 6px) !important;
		min-width: 0 !important;
		padding-left: 6px;
	}
	.achievements {
		flex: 0 0 calc(50% - 6px) !important;
		min-width: 0 !important;
		padding-right: 6px;
	}
	.possibility {
	 flex: 0 0 calc(50% - 6px) !important;
	 min-width: 0 !important;
	 padding-left: 6px;
	}
	.qr,
	.yt-label {
		flex: 0 0 auto !important;
		align-items: flex-end !important;
		justify-content: center !important;
	}
	.qrbox {
		width: var(--qr-size, 120px) !important;
		height: var(--qr-size, 120px) !important;
	}
	.yt-label {
		height: var(--qr-size, 120px) !important;
	}
	.page-head {
		margin: 0 0 8px 0 !important;
	}
	.photo-grid {
		margin-top: 55px;
	}
	.keywords-block,
	.summary-block {
		margin-bottom: 8px !important;
	}
	.h-underline {
		padding-bottom: 0 !important;
		border-bottom-width: 2px !important;
		margin-bottom: 5px !important;
	}
	* {
		page-break-inside: avoid;
	}
	.page {
		page-break-after: avoid;
	}
	.top-footer,
	.top-footer * {
		display: none !important;
	}
	.page {
    background: none !important;
	}
}