@charset "utf-8";

/*---------------------------------------------
	初期化
  ---------------------------------------------*/
* { margin: 0; padding: 0; }
*,
*::before,
*::after { box-sizing: border-box; }
h1, h2, h3, h4, h5, h6 { font-size: 100%; font-weight: normal; }
ul { list-style: none; }
table { border-collapse: collapse; border-spacing: 0; }
form label { cursor: pointer; }
a img { border: none; }
img { vertical-align: bottom; image-rendering:auto; }
th { font-weight: normal; }

/*---------------------------------------------
	body
  ---------------------------------------------*/
body {
	color: #333333;
	font-size: 16px;
	line-height: 2.2;
	text-align: left;
	-webkit-text-size-adjust: none;
	overflow-x:hidden;
	background-color: #ffffff;
	animation: fadeIn 2.0s ease 0s 1 normal;
	-webkit-animation: fadeIn 2.0s ease 0s 1 normal;
}
/* chrome opera */
@media screen and (-webkit-min-device-pixel-ratio: 0) and (min-resolution: .001dpcm) {
    body {
        image-rendering: -webkit-optimize-contrast;
    }
}
@keyframes fadeIn {
	0% {opacity: 0}
	100% {opacity: 1}
}
@-webkit-keyframes fadeIn {
	0% {opacity: 0}
	100% {opacity: 1}
}

/*---------------------------------------------
	Text
  ---------------------------------------------*/
html {
    font-family: sans-serif;
    font-family: "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, "Helvetica Neue", Helvetica, Arial, sans-serif;
	font-size: 10px;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
	overflow-x:hidden;
	scroll-behavior: smooth;
}
body { font-size: 15px; font-size: 1.5rem; }
h1, h2, h3, h4, h5 {
	color: #0059af;
	font-family: "じゅん 201";
	line-height: 1.7;
}
h2 {
	font-size: 40px; font-size: 4.0rem;
	padding: 70px 0 40px;
	text-align: center;
}
h2 span {
	font-size: 16px; font-size: 1.6rem;
	display: block;
}
h3 { font-size: 32px; font-size: 3.2rem; padding: 50px 0 50px; }
h4 { font-size: 24px; font-size: 2.4rem; padding: 40px 0 25px; }
h5 { font-size: 20px; font-size: 2.0rem; padding: 30px 0 20px; }
h6 { font-size: 16px; font-size: 1.6rem; padding: 30px 0 15px; font-weight: 600; line-height: 1.7; }

p { line-height: 2.2; margin-bottom: 0.7em; }
.text12 { font-size: 12px; font-size: 1.2rem; }
.text13 { font-size: 13px; font-size: 1.3rem; }
.text14 { font-size: 14px; font-size: 1.4rem; }
.text16 { font-size: 16px; font-size: 1.6rem; }
.text18 { font-size: 18px; font-size: 1.8rem; }
.text21 { font-size: 21px; font-size: 2.1rem; }
.text24 { font-size: 24px; font-size: 2.4rem; }
.text28 { font-size: 28px; font-size: 2.8rem; line-height:1.5; }

@media (max-width: 599px) {
	h2 { font-size: 2.8rem; padding: 50px 0 40px; }
	h3 { font-size: 2.4rem; padding: 40px 0 30px; }
	h4 { font-size: 2.1rem; padding: 40px 0 30px; }
	h5 { font-size: 1.8rem; padding: 30px 0 20px; }
	h6 { font-size: 1.6rem; padding: 20px 0 10px; }
	body, p { font-size: 1.4rem; }
	.text14 { font-size: 1.3rem; }
	.text16 { font-size: 1.4rem; }
	.text18 { font-size: 1.6rem; }
	.text21 { font-size: 1.8rem; }
	.text24 { font-size: 2.0rem; }
	.text28 { font-size: 2.4rem; }
}

/*---------------------------------------------
	Anchor
  ---------------------------------------------*/
a { outline: none; }
a:link { text-decoration: none; color: #0059AF; }
a:visited { text-decoration: none; color: #0059AF; }
a:hover { text-decoration: underline; color: #0059AF; }
a:active { text-decoration: underline; color: #0059AF; }
a img:hover {
	filter: alpha(opacity=90);
	-moz-opacity:0.9;
	opacity:0.9;
}

/*---------------------------------------------
	一般設定
  ---------------------------------------------*/
img { max-width: 100%; height: auto; width: auto\9; /* ie8 */ }
img.full { width: 100%; }
img.boder { border: 1px solid #cccccc; }
.zero { margin: 0; padding: 0; }
.zero-top {	margin-top: 0; padding-top: 0; }
.zero-bottom {	margin-bottom: 0; padding-bottom: 0; }
.round { border-radius: 20px; }
.circle { border-radius: 50%; }
.center { text-align:center; }
.left { text-align:left; }
.right { text-align:right; }
.shadow { box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.2); }
.space10 { margin-bottom: 10px; }
.space15 { margin-bottom: 15px; }
.space20 { margin-bottom: 20px; }
.space30 { margin-bottom: 30px; }
.space40 { margin-bottom: 40px; }
.space50 { margin-bottom: 50px; }
.space60 { margin-bottom: 60px; }
.space80 { margin-bottom: 80px; }
.space100 { margin-bottom: 100px; }
.underline { border-bottom: 1px solid #999999; margin-bottom: 30px; padding-bottom: 30px; }
.underline-dot { border-bottom: 1px dotted #999999; margin-bottom: 30px; padding-bottom: 30px; }
.underline-dot.wide { margin-bottom: 50px; padding-bottom: 50px; }
.float-right { float: right; position: relative; }
.float-left { float: left; position: relative; }
.caution { color:#cc0000; }
.bold { font-weight: 700; }
.mincho { font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif; }
.copy-guard { pointer-events: none; }
i.las { margin: 0 0.3em 0 0.2em; }
.read span { display:inline-block }
.img-full { width: 100%; }
.img-right { float: right; position: relative; margin-bottom: 20px; margin-left: 40px; margin-top: 10px; }
.img-left { float: left; position: relative; margin-bottom: 20px; margin-right: 40px; margin-top: 10px; }
.img-right.w140,
.img-left.w140 { width: 140px; }
.img-right.w180,
.img-left.w180 { width: 180px; }
.img-right.w210 { width: 210px; }
.img-right.w240 { width: 240px; }
.img-right.w280,
.img-left.w280 { width: 280px; margin-bottom: 20px; }
.img-right.w360,
.img-left.w360 { width: 360px; margin-bottom: 20px; }
@media (max-width: 599px) {
	.img-right { margin-bottom: 15px; margin-left: 30px; }
	.img-left { margin-bottom: 15px; margin-right: 30px; }
	.img-right.w280,
	.img-left.w280,
	.img-right.w360,
	.img-left.w360 { float: none; width: 100%; margin: 0 0 20px 0; }
	.img-right.w180,
	.img-left.w180 { width: 120px; }
	.img-right.w210,
	.img-left.w210 { width: 140px; }
}
.waku { border: 1px solid #cccccc; padding: 30px; margin: 40px 0; background-color: #ffffff; }
.waku-blue { border-color: #0059af; background-color: #ffffff; }

/* ------ 余白 ------ */
.mt1em { margin-top: 0.5em !important; }
.mt2em { margin-top: 1.5em !important; }
.mt3em { margin-top: 2.5em !important; }
.mt4em { margin-top: 4em !important; }
.mt5em { margin-top: 5em !important; }
.mb1em { margin-bottom: 0.5em !important; }
.mb2em { margin-bottom: 1.5em !important; }
.mb3em { margin-bottom: 2.5em !important; }
.mb4em { margin-bottom: 4em !important; }
.mb5em { margin-bottom: 5em !important; }
.pb1em { padding-bottom: 0.5em !important; }
.pb2em { padding-bottom: 1.5em !important; }
.pb3em { padding-bottom: 2.5em !important; }
.pb4em { padding-bottom: 4em !important; }
.pb5em { padding-bottom: 5em !important; }
@media (max-width: 767px) {
	.mt1em { margin-top: 0.3em !important; }
	.mt2em { margin-top: 1.2em !important; }
	.mt3em { margin-top: 1.8em !important; }
	.mt4em { margin-top: 2.5em !important; }
	.mt5em { margin-top: 4em !important; }
	.mb1em { margin-bottom: 0.3em !important; }
	.mb2em { margin-bottom: 1.2em !important; }
	.mb3em { margin-bottom: 1.8em !important; }
	.mb4em { margin-bottom: 2.5em !important; }
	.mb5em { margin-bottom: 4em !important; }
}

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

/*---------------------------------------------
	ヘッダ
  ---------------------------------------------*/
#header {
	position: relative;
	height: 100px;
	width: 100%;
	z-index: 101;
}
#header .header-logo img {
	position: absolute;
	height: 80px;
	top: 10px;
	left: 20px;
	z-index: 102;
}
@media (max-width: 599px) {
	#header .header-logo img {
		height: 65px;
		top: 10px;
		left: 10px;
	}
}

#header a:link,
#header a:hover,
#header a:visited { color: #333333; text-decoration: none; }

#header .pc-menu {
	height: 100px;
	width: 100%;
	font-family: "じゅん 201";
	background-image: url("../image/menu-bg.jpg");
	background-size: cover;
	filter: saturate(100%);
	filter: brightness(100%);
}

#header .pc-menu01,
#header .pc-menu02 {
	position: absolute;
}
#header .pc-menu01 li {
	float: left;
	line-height: 100px;
	margin-right: 22px;
}
#header .pc-menu01 {
/*	right: 120px;*/
	right: 20px;
}
#header .pc-menu02 {
	top: 30px;
	right: 20px;
}
#header .pc-menu02 li {
	width: 90px;
	line-height: 20px;
	text-align: center;
	background-color: #0C75A0;
}
#header .pc-menu02 li a {
	display: block;
	color: #ffffff!important;
}

/* ------ hoverで下線 ------ */
#header .pc-menu li a,
#header .pc-menu01 li a {
	position: relative;
	padding: 10px 0;
}
#header .pc-menu01 li a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: #999999;
    transition: all 0.2s;
    transform: scale(0, 1);
    transform-origin: center top;
}
#header .pc-menu01 li a:hover::after {
    transform: scale(1, 1);
}


/*---------------------------------------------
	ハンバーガーメニュ
  ---------------------------------------------*/
.drawer-menu {
	max-width: 300px;
	margin: 0 auto;
	padding: 150px 20px 40px 0;
	line-height: 2.5rem;
}
.drawer-menu a { display: block; }
.drawer-menu a:link,
.drawer-menu a:hover,
.drawer-menu a:visited { color: #333333; }

.drawer-menu .menu-inner ul.sp-menu01 {
	margin-bottom: 30px;
}
.drawer-menu .menu-inner ul.sp-menu01 li {
	font-size: 16px; font-size: 1.6rem;
	margin-bottom: 15px;
	background-image: url("../image/menu-icon.png");
	background-repeat: no-repeat;
	background-position: left center;
	background-size: 16px auto;
	padding-left: 25px;
	image-rendering: auto;
}

.drawer-menu .sp-menu02 li {
	width: 90px;
	line-height: 40px;
	text-align: center;
	background-color: #0C75A0;
}
.drawer-menu .sp-menu02 li a {
	display: block;
	color: #ffffff!important;
}

@media (max-width: 599px) {
	.drawer-menu { padding-top: 90px; }
}
@media (min-width: 1024px) {
	.pc-menu { display: block; }
	.sp-menu { display: none; }
}
@media (max-width: 1023px) {
	.pc-menu { display: none; }
	.sp-menu { display: block; }
}




/*---------------------------------------------
	共通
  ---------------------------------------------*/

/* ------ コンテンツ ------ */
#contents-container {
	max-width: 100%;
	margin-top: 80px;
	margin-bottom: 80px;
}
@media (max-width: 850px) {
	#contents-container { margin-top: 40px; margin-bottom: 40px; }
}
.contents1200,
.contents1100,
.contents1000,
.contents800,
.contents750,
.contents600 { margin: 0 auto; position: relative; padding: 0 25px; }
.contents1200 { max-width: 1250px; }
.contents1100 { max-width: 1150px; }
.contents1000 { max-width: 1050px; }
.contents800 { max-width: 850px; }
.contents750 { max-width: 800px; }
.contents600 { max-width: 650px; }


/* ------ コラム ------ */
.column {
	flex-wrap: wrap;
	display: flex;
	margin-left: -40px;
	position: relative;
}
.column section {
	flex: 1;
	margin: 20px 0 20px 40px;
}
.column.sub-menu section {
	flex: 40%;
	margin: 0 0 0 20px;
}
@media (max-width: 800px) {
	.column.overview section { flex: 250px; }
}
.column section.wide3 { flex: 2.4; }
.column section img {
	width: 100%;
}
@media (max-width: 850px) {
	.column { margin-left: -30px; }
	.column section { margin-left: 30px; }
}
@media (max-width: 599px) {
	.column section,
	.column.sub-menu section,
	.column section.wide,
	.column.overview section,
	.column section.narrow03 { flex: 100%; margin: 0 0 10px 30px; }
	.column.reverse section:nth-child(1) { order: 2; }
	.column.reverse section:nth-child(2) { order: 1; }
}
section.empty {
	visibility: hidden;
}

/* ------ リスト ------ */
ul.list li {
	margin: 8px 0;
	padding-left: 20px;
	background: url(../image/icon-arrow.png) no-repeat top 11px left 3px / auto 10px;
}
ul.list-line {
	margin-bottom: 30px;
}
ul.list-line li {
	margin-bottom: 10px;
	border-bottom: 1px dotted #999999;
	padding-bottom: 10px;
}

/* ------ フェードアニメ ------ */
.fade-up,
.fade-left,
.fade-right { opacity : 0; transition:all 1s; }
.fade-up { transform : translate(0, 100px); }
.fade-left { transform : translate(-100px, 0); }
.fade-right { transform : translate(100px, 0); }
.fade-up.scrollin,
.fade-left.scrollin,
.fade-right.scrollin { opacity : 1; transform : translate(0, 0); }

.img-fade {
  opacity: 0;
  transition: transform 0.8s linear;
  animation-duration: 1.0s;
  animation-fill-mode: both;
}
.img-blur {
  animation-name: imageBlur;
  opacity: 1;
  transition: 1.0s;
}
@-webkit-keyframes imageBlur {
  from {
    opacity: 0;
    filter: blur(15px);
  }

  to {
    opacity: 1;
    filter: blur(0px);
  }
}
@keyframes imageBlur {
  from {
    opacity: 0;
    filter: blur(10px);
  }

  to {
    opacity: 1;
    filter: blur(0px);
  }
}
.btn a {
	position: relative;
	color: #0059af;
	font-family: "じゅん 201";
	font-size: 14px; font-size: 1.4rem;
	line-height: 40px;
	padding: 0 20px;
	max-width: 350px;
	border-radius: 40px;
	border: 1px solid #0059af;
	background: #ffffff url("../image/icon-btn-arrow.png") no-repeat center right 20px / 8px auto;
	display: block;
	margin: 25px 0;
	transition: all 0.2s;
	image-rendering: auto;
}
.btn.btn-center a {
	margin: 0 auto;
}
.btn.btn-narrow a {
	max-width: 200px;
}
.btn.btn-full a {
	max-width: 100%;
}
.btn a:hover {
	color: #ffffff;
	background-color: #0059af;
	background-image: url("../image/icon-btn-arrow-w.png");
	text-decoration: none;
}
.btn.invalid a {
	color: #0059af;
	background-color: #ffffff;
	background-image: url("../image/icon-btn-arrow.png");
}

@media (max-width: 599px) {
	.btn a { margin: 10px 0; }
}


/* ------ Table ------ */
table {
	width:100%;
    border-collapse: collapse;
    border-spacing: 0;
	margin: 20px 0;
}
table.general th, table.general td {
	padding: 10px;
	background-color: #ffffff;
	border: 1px solid #cccccc;
	line-height: 1.6;
}
table.general th {
	font-weight: normal;
	background-color: #FFF7E8;
}

/* テーブル 横スクロール */
.table {
	overflow-x: auto;
	overflow-y: hidden;
	position: relative;
	border: none;
}

.table.memo-before { padding-top:2em; }
.table.memo-after { padding-bottom: 2em; }
.table.memo-before:before,
.table.memo-after:after {
	line-height:1;
	content: "※横スクロールで表全体を見ることが出来ます";
	position: absolute;
	left: 0;
	font-size: 80%;
}
.table.memo-before:before { top: 1em; }
.table.memo-after:after { bottom: 1em; }
@media (min-width: 599px) {
	.table.memo-before { padding-top: 0; }
	.table.memo-after { padding-top: 0; padding-bottom: 0; }
	.table.memo-before:before,
	.table.memo-after:after { padding-top: 0; content: ""; }
}



/*---------------------------------------------
	コンテンツ
  ---------------------------------------------*/

#contents-container { max-width: 100%; margin-bottom: 50px; }
.contents1200,
.contents1100,
.contents1000,
.contents900,
.contents800,
.contents600 { margin: 0 auto; position: relative; padding: 0 25px; }
.contents1200 { max-width: 1250px; }
.contents1100 { max-width: 1150px; }
.contents1000 { max-width: 1050px; }
.contents900 { max-width: 950px; }
.contents800 { max-width: 850px; }
.contents600 { max-width: 650px; }

/* ------ 所長挨拶写真 ------ */
.chief-photo {
	text-align: center;
	margin-top: 70px;
}
.chief-photo img {
	max-width: 240px;
	margin-bottom: 15px;
}
@media (max-width: 599px) {
	.chief-photo { margin-top: 50px; }
	.chief-photo img { max-width: 160px; }
}

/* ------ コーナートップ ------ */
.menu-contents-top {
	flex-wrap: wrap;
	display: flex;
	margin: 40px 0 40px -40px;
}
.menu-contents-top.zero {
	margin-top: 10px;
}
.menu-contents-top section {
	flex: 20%;
	margin: 10px 0 10px 40px;
	position: relative;
}
.menu-contents-top.column3 section {
	flex: 25%;
}
.menu-contents-top.column2 section {
	flex: 40%;
}
.menu-contents-top section a {
	font-size: 14px; font-size: 1.4rem;
	line-height: 60px;
	padding: 0 20px;
	border: 1px solid #cccccc;
	display: block;
	border-top-color: #0059af;
	background: #ffffff url("../image/menu-icon.png") no-repeat right 20px center / 16px auto;
	image-rendering: auto;
}
.menu-contents-top section a:hover {
	background-image: url("../image/menu-icon-blue.png");
	transition: all 0.2s;
}
.menu-contents-top section a:link,
.menu-contents-top section a:hover,
.menu-contents-top section a:visited { color: #333333; text-decoration: none; }

@media (max-width: 768px) {
	.menu-contents-top.column2 section { flex: 100%; }
}
@media (max-width: 599px) {
	.menu-contents-top {
		margin: 40px 0 0 -20px;
	}
	.menu-contents-top section {
		flex: 40%;
		margin: 10px 0 10px 20px;
	}
	.menu-contents-top.column3 section { flex: 35%; }
	.menu-contents-top.column3.research section,
	.menu-contents-top.pr section { flex: 100%; }
	.menu-contents-top section a {
		font-size: 1.3rem;
		line-height: 40px;
		padding: 0 10px;
		background-position: right 10px center;
	}
}

/* ------ コーナートップ、ページ内リンク用 ------ */
.menu-contents-top.inner section a {
	background: #ffffff url("../image/menu-icon-b.png") no-repeat right 20px center / 16px auto;
}
.menu-contents-top.inner section a:hover {
	background-image: url("../image/menu-icon-blue-b.png");
}


/*---------------------------------------------
	ページの先頭へ
  ---------------------------------------------*/
#page-top { width:50px; height:50px; display:none; position:fixed; right:20px; bottom:20px; z-index: 101; }
#page-top p { margin: 0; padding: 0; text-align: center; background-color: #0059af; }
#page-top p:hover { background-color: rgba(0,89,175,0.8); transition: 0.4s; }
#move-page-top { color:#fff; line-height:50px; text-decoration:none; display:block; cursor:pointer; }
@media (max-width: 767px) {
	#page-top { width:40px; height:40px; right:15px; bottom:20px; }
	#move-page-top { line-height:40px; }
}

/* ------ ティッカー ------ */
.item-ticker { width: 100vw; position: relative; left: 50%; transform: translateX(-50%); margin: 100px 0 0; }
.ticker li img,
.ticker-left li img {
	height: 160px; width: 240px;
	box-sizing: border-box;
    object-fit: cover;
	object-position: center;
	font-family: 'object-fit: cover; object-position: bottom;';
	margin-right: 10px;
}
@media (max-width: 599px) {
	.item-ticker { margin: 60px 0 0; }
	.ticker li img,
	.ticker-left li img { height: 120px; width: 180px; }
}

/*---------------------------------------------
	フッタ
  ---------------------------------------------*/
footer {
	max-width: 100%;
	color: #333333;
	padding: 40px 0 15px;
	text-align: center;
}
footer,
footer p {
	font-size: 13px; font-size: 1.3rem;
	line-height: 1.8;
}
footer a:link,
footer a:hover,
footer a:visited { color: #333333; }

footer .logo {
	width: 140px;
	margin: 20px auto 40px;
}
@media (max-width: 800px) {
	footer .logo { width: 120px; }
}
@media (max-width: 599px) {
	footer .logo {
		width: 100px;
		margin: 20px auto 30px;
	}
}

/*---------------------------------------------
	レスポンシブ
  ---------------------------------------------*/
@media (min-width: 600px) {
	.forSP { display:none }
	.forPC { display:block }
}
@media (max-width: 599px) {
	.forPC { display:none }
	.forSP { display:block }
}