@charset "utf-8";

@import url('https://fonts.googleapis.com/css?family=Noto+Sans+JP:400,700&subset=japanese');
@import url('https://fonts.googleapis.com/icon?family=Material+Icons');


* {
	box-sizing: border-box;
}
body {
	margin: 0;
	padding: 0;
	background: #004263;
	color: #000;
	font-family: 'Noto Sans JP', "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	font-size: 16px;
	line-height: 1.75;
	-webkit-text-size-adjust: 100%;
}
@media (max-width: 767px) {
body {
	font-size: 14px;
}
}

h1,h2,h3,h4,h5,h6 {
	margin: 0;
	font-size: 100%;
	font-weight: normal;
	line-height: 1.5;
}
p {
	margin: 0;
}
ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
ol {
	margin: 0;
	padding: 0 0 0 32px;
}
dl,dt,dd {
	margin: 0;
	padding: 0;
}
a,
.a {
	color: #0288d1;
	text-decoration: none;
	transition: 0.2s ease;
	cursor: pointer;
}
a:hover,
.a:hover {
	opacity: 0.6;
}
a img {
	border: none;
}
img {
	width: auto\9;
	height: auto;
	max-width: 100%;
	border: 0;
	vertical-align: middle;
	-ms-interpolation-mode: bicubic;
}

table {
	border-collapse: collapse;
}
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="search"],
select,
textarea {
	margin: 0;
	padding: 0 8px;
	background: #fff;
	border: 1px solid #ddd;
	font-size: inherit;
	font-family: inherit;
	border-radius: 0;
}
input[type="submit"],
input[type="button"],
input[type="file"],
button {
	margin: 0;
	padding: 0;
	background: #fff;
	border: none;
	font-size: inherit;
	font-family: inherit;
	border-radius: 0;
}
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="submit"],
input[type="button"],
input[type="search"],
button,
textarea {
	-webkit-appearance: none;
}

.clearfix {
	zoom: 1;
}
.clearfix:after {
	content: "";
	display: block;
	clear: both;
}
#wrap {
	padding-top: 65px;
	background: #fff;
}
#wrap.top {
	padding-top: 0 !important;
}
.layout {
	position: relative;
	max-width: 856px;
	margin: 0 auto;
	padding: 0 16px;
}
@media (max-width: 767px) {
#wrap {
	padding-top: 49px;
}
}


/* ---------------- icon */
.material-icons {
  font-family: 'Material Icons';
  font-weight: normal !important;
  font-style: normal;
  font-size: 20px;  /* Preferred icon size */
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  vertical-align: middle;
  margin-right: 8px;

  /* Support for all WebKit browsers. */
  -webkit-font-smoothing: antialiased;
  /* Support for Safari and Chrome. */
  text-rendering: optimizeLegibility;

  /* Support for Firefox. */
  -moz-osx-font-smoothing: grayscale;

  /* Support for IE. */
  font-feature-settings: 'liga';
}



/* ---------------- header */
header {
	position: fixed;
	z-index: 100;
	top: 0;
	left: 0;
	width: 100%;
	background: #fff;
	border-bottom: 1px solid #eee;
	transition: 0.4s ease;
}
header.js_header {
	top: -120px;
}
header.on {
	top: 0;
}
header .layout {
	max-width: 1168px;
	padding: 0 24px;
}
header .title {
	padding: 12px 0;
}
header .title .logo {
	width: 40px;
	margin-right: 24px;
	vertical-align: bottom;
}
header .title .typo {
	width: 176px;
	vertical-align: bottom;
}
header nav {
	position: absolute;
	top: 0;
	right: 0;
}
header nav ul {
	display: flex;
}
header nav li {
	position: relative;
	margin: 0 20px;
}
header nav li a,
header nav li .a {
	display: block;
	color: #000;
	font-weight: 700;
	line-height: 64px;
}
header nav li a::after,
header nav li .a::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 0;
	height: 6px;
	background: #004263;
	transition: 0.2s ease;
}
header nav li:last-child a,
header nav li:last-child .a {
	font-size: 13px;
	line-height: 64px;
}
header nav li:last-child a::after,
header nav li:last-child .a::after {
	display: none;
}
header nav li a:hover,
header nav li .a:hover {
	opacity: 1;
	color: #004263;
}
header nav li a:hover::after,
header nav li .a:hover::after {
	width: 100%;
}
@media (max-width: 1023px) {
header .btnNav {
	position: absolute;
	top: 14px;
	right: 16px;
	width: 40px;
	height: 40px;
	cursor: pointer;
}
header .btnNav span {
	position: absolute;
	top: 50%;
	left: 8px;
	width: 24px;
	height: 4px;
	background: #004263;
	transform: translateY(-2px);
	transition: 0.2s ease;
}
header .btnNav span:first-child {
	transform: translateY(-10px);
}
header .btnNav span:last-child {
	transform: translateY(6px);
}
header .btnNav.on span:first-child {
	transform: rotate(45deg);
}
header .btnNav.on span:last-child {
	transform: rotate(-45deg);
}
header .btnNav.on span:nth-child(2) {
	opacity: 0;
}
header nav {
	overflow: hidden;
	height: 0;
	position: static;
	transition: 0.4s ease;
}
header nav.on {
	height: 64px;
}
header nav ul {
	justify-content: center;
}
header nav li a::after,
header nav li .a::after {
	display: none;
}
}
@media (max-width: 767px) {
header .layout {
	padding: 0 16px;
}
header .title .logo {
	width: 24px;
	margin-right: 16px;
}
header .title .typo {
	width: 120px;
}
header .btnNav {
	top: 4px;
	right: 8px;
}
header nav.on {
	height: 272px;
}
header nav ul {
	display: block;
	padding-top: 16px;
}
header nav li {
	margin: 0;
}
header nav li a,
header nav li .a {
	display: block;
	text-align: center;
	line-height: 40px !important;
}
}


/* ---------------- footer */
footer {
	padding-bottom: 40px;
	background: #004263;
	color: #fff;
}
footer .btnTop {
	position: relative;
	height: 48px;
	background: #fff;
	text-align: center;
	cursor: pointer;
}
footer .btnTop i {
	margin: 0;
	color: #004263;
	font-size: 56px;
	line-height: 48px;
}
footer .nav {
	display: flex;
	justify-content: center;
	padding: 40px 0;
}
footer .nav li {
	padding: 0 20px;
}
footer .nav a,
footer .nav .a {
	color: #fff;
	font-size: 14px;
	font-weight: 700;
}
footer .nav li:last-child a {
	font-size: 12px;
}
footer .logo {
	margin-bottom: 40px;
	text-align: center;
}
footer .logo img {
	width: 40px;
}
footer .copy {
	font-size: 12px;
	text-align: center;
}
@media (max-width: 767px) {
footer .nav {
	display: block;
	padding: 24px 0;
}
footer .nav li {
	text-align: center;
	line-height: 40px;
}
}



/* ---------------- heroArea */
.heroArea {
	position: relative;
	height: 100vh;
	min-height: 540px;
	background: #004263;
	border: 16px solid #fff;
}
.heroArea .inner {
	position: absolute;
	top: 50%;
	left: 50%;
	text-align: center;
	transform: translate(-50%, -50%);
}
.heroArea .logo {
	margin-bottom: 40px;
	line-height: 1;
}
.heroArea .logo img {
	display: none;
	width: 240px;
	height: 240px;
}
.heroArea .logo svg {
	width: 240px;
	height: 240px;
}
.heroArea .name {
	opacity: 0;
	position: relative;
	top: 40px;
	margin-bottom: 40px;
	line-height: 1;
	-webkit-transition: 0.4s ease;
	transition: 0.4s ease;
}
.heroArea.on .name {
	opacity: 1;
	top: 0;
}
.heroArea .name img {
	width: 177px;
	vertical-align: top;
}
.heroArea .en {
	opacity: 0;
	position: relative;
	top: 40px;
	margin-bottom: 16px;
	line-height: 1;
	transition: 0.4s ease;
	transition-delay: 0.4s;
}
.heroArea.on .en {
	opacity: 1;
	top: 0;
}
.heroArea .en img {
	width: 160px;
	vertical-align: top;
}
.heroArea .since {
	opacity: 0;
	position: relative;
	top: 40px;
	line-height: 1;
	transition: 0.4s ease;
	transition-delay: 0.5s;
}
.heroArea.on .since {
	opacity: 1;
	top: 0;
}
.heroArea .scroll {
	opacity: 0;
	position: relative;
	top: -40px;
	padding-top: 40px;
	text-align: center;
	transition: 0.8s ease;
	transition-delay: 0.8s;
}
.heroArea.on .scroll {
	opacity: 1;
	top: 0;
}
.heroArea .scroll i {
	margin: 0;
	color: #fff;
	font-size: 72px;
}
.heroArea .since img {
	width: 80px;
	vertical-align: top;
}
.logoData {
    stroke: #fff;
    fill-opacity: 0;
    stroke-width: 39.5;
    stroke-dasharray: 300;
    stroke-dashoffset: 300;
    animation: anime 0.8s ease-in 0s forwards;
}
@keyframes anime {
0% {
    stroke-dashoffset: 300;
}
100% {
    stroke-dashoffset: 0;
}
}
.ie .heroArea .logo img {
	display: inline-block;
}
.ie .heroArea .logo svg {
	display: none;
}
@media (max-width: 767px) {
.heroArea {
	min-height: 464px;
	border-width: 8px;
}
.heroArea .logo {
	margin-bottom: 24px;
}
.heroArea .logo svg {
	width: 120px;
	height: 120px;
}
.heroArea .name {
	margin-bottom: 24px;
}
.heroArea .en {
	margin-bottom: 8px;
}
.heroArea .scroll i {
	font-size: 56px;
}
}


/* ---------------- imgArea */
.imgArea {
	overflow: hidden;
	position: relative;
	height: 400px;
}
.imgArea img {
	position: absolute;
	bottom: 0;
	left: 50%;
	width: auto;
	height: auto;
	max-width: none;
	min-width: 100%;
	min-height: 200%;
	transform: translateX(-50%);
}
@media (max-width: 767px) {
.imgArea {
	height: 200px;
}
.imgArea img {
	width: auto;
	height: 200%;
}
}



/* ---------------- section */
section {
	padding: 16px 0;
}
.hGroup {
	padding: 40px 0;
	text-align: center;
}
.hGroup h2 {
	color: #004263;
	font-size: 26px;
	font-weight: 700;
}
.hGroup .min {
	color: #607d8b;
	font-size: 16px;
	font-weight: 700;
}
.bGroup {
	padding: 0 0 40px;
}
section table {
	width: 100%;
	border-top: 1px solid #cfd8dc;
}
section table th {
	width: 204px;
	padding: 16px;
	border-bottom: 1px solid #cfd8dc;
	color: #004263;
	font-weight: 700;
	text-align: left;
	vertical-align: top;
}
section table td {
	padding: 16px 16px 16px 0;
	border-bottom: 1px solid #cfd8dc;
	text-align: left;
	vertical-align: top;
}
@media (max-width: 767px) {
.hGroup {
	padding: 24px 0;
}
.hGroup h2 {
	font-size: 18px;
}
.hGroup .min {
	font-display: 12px;
}
.bGroup {
	padding: 0 0 24px;
}
section table th {
	display: block;
	padding: 8px 16px 0;
	border: none;
}
section table td {
	display: block;
	padding: 0 16px 8px;
}
#service .itemGroup {
	display: block;
}
#service .item {
	width: auto;
	margin-bottom: 24px;
}
}



/* ---------------- article */
article {
	padding: 40px 0;
}
article .headArea {
	padding: 56px 0;
	text-align: center;
}
article .headArea h1 {
	color: #004263;
	font-size: 26px;
	font-weight: 700;
}
article .headArea .min {
	color: #607d8b;
	font-size: 16px;
	font-weight: 700;
}
article section {
	margin-bottom: 56px;
	padding: 0;
}
article h2 {
	margin-bottom: 24px;
	font-size: 18px;
	font-weight: 700;
}
article p {
	margin-bottom: 24px;
}
article ul {
	list-style: disc;
	padding-left: 24px;
}
@media (max-width: 767px) {
article .headArea {
	padding: 32px 0;
}
article .headArea h1 {
	font-size: 18px;
}
article .headArea .min {
	font-display: 12px;
}
article section {
	margin-bottom: 32px;
}
article h2 {
	margin-bottom: 16px;
	font-size: 14px;
}
article p {
	margin-bottom: 16px;
}
}


/* ---------------- news */
#news {
	background: #f5f5f5;
}
#news table {
	background: #fff;
}



/* ---------------- service */
#service {
	background: #004263;
	color: #fff;
}
#service h2 {
	color: #fff;
}
#service .itemGroup {
	display: flex;
	justify-content: space-between;
}
#service .item {
	width: 30.09%;
	margin-bottom: 40px;
	font-weight: 700;
	text-align: center;
}
#service .item .img {
	margin-bottom: 8px;
}
#service th {
	color: #fff;
}
@media (max-width: 767px) {
#service .itemGroup {
	display: block;
}
#service .item {
	width: auto;
	margin-bottom: 24px;
}
}



/* ---------------- access */
#access .mapBlock {
	height: 400px;
	margin-bottom: 40px;
}
#access .mapBlock iframe {
	width: 100%;
	height: 100%;
}
#access .information {
	display: flex;
	justify-content: space-between;
}
#access .information .block {
	width: 42.23%;
}
#access .information .block:first-child {
	width: 64px;
}
#access .information .h {
	color: #004263;
	font-weight: 700;
}
#access .information ul {
	list-style: disc;
	padding-left: 24px;
}
@media (max-width: 767px) {
#access .mapBlock {
	height: 240px;
	margin-bottom: 24px;
}
#access .information {
	display: block;
}
#access .information .block {
	width: auto !important;
	margin-bottom: 16px;
}
#access .information .block:first-child {
	text-align: center;
}
#access .information .block:first-child img {
	width: 150px;
}
}



/* ---------------- contact */
#contact {
	background: #f5f5f5;
}
#contact .lead {
	margin-bottom: 40px;
	text-align: center;
}
#contact .itemGroup {
	display: flex;
	justify-content: space-between;
}
#contact .itemGroup .item {
	width: 48.05%;
}
#contact .itemGroup a {
	display: block;
	background: #fff;
	color: #004263;
	font-size: 26px;
	font-weight: 700;
	text-align: center;
	line-height: 64px;
}
#contact .itemGroup i {
	font-size: 26px;
}
@media (max-width: 767px) {
#contact .lead {
	margin-bottom: 24px;
}
#contact .itemGroup {
	display: block;
}
#contact .itemGroup .item {
	width: auto;
	margin-bottom: 16px;
}
#contact .itemGroup a {
	font-size: 18px;
	line-height: 40px;
}
#contact .itemGroup i {
	font-size: 18px;
}
}





