@charset "UTF-8";
* {
	-webkit-text-size-adjust: 100%;
	-moz-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	-o-text-size-adjust: 100%;
	text-size-adjust: 100%;
	box-sizing: border-box;
}

@font-face {
	font-family: 'Noto Sans JP';
	font-style: normal;
	font-weight: 400;
	src: local("Noto Sans CJK JP"), url(https://fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.woff2) format("woff2"), url(https://fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.woff) format("woff"), url(https://fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.otf) format("opentype");
}
@font-face {
	font-family: 'Noto Sans JP';
	font-style: normal;
	font-weight: 700;
	src: local("Noto Sans CJK JP Bold"), url(https://fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Bold.woff2) format("woff2"), url(https://fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Bold.woff) format("woff"), url(https://fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Bold.otf) format("opentype");
}
html {
	font-size: 16px;
	overflow-y: scroll;
}
html.sp {
	font-size: 16px !important;
}

body, th, main .contents .format > table td, td, input, select, textarea {
	font-size: 16px;
	font-size: 1rem;
	line-height: 17.6px;
	line-height: 1.1rem;
	font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Noto Sans JP", Verdana, Meiryo, sans-serif;
	font-feature-settings: "palt";
}

_::-webkit-full-page-media, _:future, :root * {
	font-feature-settings: "pkna";
}

body {
	margin: 0px auto;
	color: #000000;
	background: #ffffff;
	overflow: hidden;
}

img {
	border: 0px;
}

a {
	text-decoration: none;
}

dl, ul, ol {
	margin: 0px;
	padding: 0px;
	list-style: none;
}

p {
	margin: 0px;
}

.clear {
	clear: both;
}

.pdf:after {
	content: "";
	position: relative;
	display: inline-block;
	width: 16px;
	height: 18px;
	top: -3px;
	margin: 0px 8px;
	padding: 0px !important;
	background: url(../images/pdf.svg) no-repeat left top;
	background-size: cover;
	vertical-align: middle;
	overflow: hidden;
}

.zip:after {
	content: "";
	position: relative;
	display: inline-block;
	width: 16px;
	height: 18px;
	top: -3px;
	margin: 0px 8px;
	padding: 0px !important;
	background: url(../images/zip.svg) no-repeat left top;
	background-size: cover;
	vertical-align: middle;
	overflow: hidden;
}

.xls:after {
	content: "";
	position: relative;
	display: inline-block;
	width: 16px;
	height: 18px;
	top: -3px;
	margin: 0px 8px;
	padding: 0px !important;
	background: url(../images/xls.svg) no-repeat left top;
	background-size: cover;
	vertical-align: middle;
	overflow: hidden;
}

.blank:after {
	content: "";
	position: relative;
	display: inline-block;
	width: 18px;
	height: 18px;
	top: -3px;
	margin: 0px 8px;
	padding: 0px !important;
	background: url(../images/blank.svg) no-repeat left top;
	vertical-align: middle;
	overflow: hidden;
}

sup {
	position: relative;
	vertical-align: middle;
	font-size: 85%;
	top: -0.35em;
}

.sp .view_pc {
	display: none !important;
}

.view_sp {
	display: none !important;
}
.sp .view_sp {
	display: block !important;
}

header {
	display: block;
	position: relative;
	width: 100%;
	height: 180px;
	z-index: 100;
}
.toppage header {
	height: 120px;
}
header.second {
	height: 240px;
}
.sp header {
	height: 60px;
}
header .body {
	position: fixed;
	width: 100%;
	top: 0px;
	height: 120px;
	background: #ffffff;
	-webkit-transition: top 600ms;
	transition: top 600ms;
}
.headerhide:not(.sp) header .body {
	top: -60px;
}
.sp header .body {
	height: 60px;
}
header #logo {
	position: relative;
	width: 100%;
	max-width: 1020px;
	margin: auto;
	padding: 0px 20px;
	position: relative;
	height: 60px;
	background: #ffffff;
	z-index: 100;
}
.sp header #logo {
	padding: 0px 10px;
}
.toppage header #logo {
	display: none;
}
.sp header #logo {
	display: block;
}
header #logo a {
	display: block;
	position: absolute;
	width: 212px;
	max-width: 50%;
	height: 20px;
	top: 50%;
	left: 20px;
	margin-top: -10px;
	text-indent: -10000px;
	background: url(../images/logo.svg) no-repeat center center;
	background-size: 100% auto;
	overflow: hidden;
	-webkit-transition: opacity 0.2s, background 0.2s;
	transition: opacity 0.2s, background 0.2s;
	cursor: pointer;
}
header #logo a:hover {
	opacity: 0.7;
}
.sp header #logo a {
	left: 10px;
}
header.member .body {
	background: #000000;
}
header.member #logo {
	background: #000000;
}
header.member #logo a {
	background-image: url(../images/logo_nega.svg);
}
header.member #logo:after {
	content: "(会員ページ)";
	position: absolute;
	display: block;
	color: #ffffff;
	left: 242px;
	top: 50%;
	margin-top: -0.5em;
	font-size: 16px;
	font-size: 1rem;
	line-height: 16px;
	line-height: 1rem;
	font-weight: bold;
}
.sp header.member #logo:after {
	left: auto;
	right: 60px;
	font-size: 12px;
	font-size: 0.75rem;
	line-height: 12px;
	line-height: 0.75rem;
}
header.member #globalnavi > ul > li.sitechange > div > a:not(.sw) {
	color: #000000;
	background: #ffffff;
	border: 1px solid #000000;
}
.sp header.member #globalnavi > ul > li.sitechange > div > a:not(.sw) {
	border-width: 0px 0px 1px 0px;
}
header.member #secondnavi > ul > li {
	width: calc(100% / 5);
}
header #menu {
	display: none;
}
.sp header #menu {
	display: block;
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 110;
}
header #menu a {
	display: block;
	position: relative;
	width: 40px;
	height: 40px;
	text-indent: -10000px;
	background: #ffffff;
	border: 1px solid #000000;
	-webkit-transition: opacity 0.2s, background 0.2s;
	transition: opacity 0.2s, background 0.2s;
	cursor: pointer;
	overflow: hidden;
}
header #menu a:hover {
	opacity: 0.7;
}
header #menu a:before {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0%;
	left: 0px;
	background: url(../images/menu.svg) no-repeat center center;
	-webkit-transition: 400ms;
	transition: 400ms;
}
header #menu a:after {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	top: -100%;
	left: 0px;
	background: url(../images/close.svg) no-repeat center center;
	-webkit-transition: 400ms;
	transition: 400ms;
}
header #menu a.open:before {
	top: 100%;
}
header #menu a.open:after {
	top: 0%;
}
header #globalnavi {
	position: relative;
	background: #e6e6e6;
	z-index: 10;
}
.sp header #globalnavi {
	position: absolute;
	width: 100%;
	max-height: calc(100vh - 60px);
	overflow: auto;
	z-index: 50;
	-webkit-transition: -webkit-transform 600ms;
	transition: transform 600ms;
	-webkit-transform: translateY(-100%);
	transform: translateY(-100%);
}
.sp.menuopen header #globalnavi {
	-webkit-transform: translateY(0%);
	transform: translateY(0%);
}
header #globalnavi > ul {
	position: relative;
	width: 100%;
	max-width: 1020px;
	margin: auto;
	padding: 0px 20px;
	display: table;
	height: 120px;
	table-layout: fixed;
}
.sp header #globalnavi > ul {
	padding: 0px 10px;
}
.sp header #globalnavi > ul {
	display: block;
	height: auto;
	padding: 0px;
}
header #globalnavi > ul > li {
	position: relative;
	display: table-cell;
	text-align: center;
	vertical-align: middle;
}
.sp header #globalnavi > ul > li {
	display: block;
	text-align: left;
}
header #globalnavi > ul > li:before {
	content: "";
	display: block;
	position: absolute;
	width: 1px;
	height: calc(100% - 40px);
	left: 0px;
	top: 20px;
	background: #bfbfbf;
}
.sp header #globalnavi > ul > li:before {
	width: 100%;
	height: 1px;
	top: auto;
	bottom: 0px;
}
header #globalnavi > ul > li:last-child:after {
	content: "";
	display: block;
	position: absolute;
	width: 1px;
	height: calc(100% - 40px);
	top: 20px;
	right: 0px;
	background: #bfbfbf;
}
.sp header #globalnavi > ul > li:last-child:after {
	display: none;
}
header #globalnavi > ul > li > div > a:not(.sw),
header #globalnavi > ul > li > a:not(.sw) {
	position: relative;
	display: table;
	width: calc(100% - 20px);
	height: 80px;
	margin: 20px 10px;
	vertical-align: top;
	font-size: 18px;
	font-size: 1.125rem;
	line-height: 25.2px;
	line-height: 1.575rem;
	font-weight: bold;
	color: #000000;
	-webkit-transition: opacity 0.2s, background 0.2s;
	transition: opacity 0.2s, background 0.2s;
	cursor: pointer;
}
header #globalnavi > ul > li > div > a:not(.sw):hover,
header #globalnavi > ul > li > a:not(.sw):hover {
	opacity: 0.7;
}
.sp header #globalnavi > ul > li > div > a:not(.sw), .sp
header #globalnavi > ul > li > a:not(.sw) {
	width: 100%;
	margin: 0px;
	padding: 10px;
	height: auto;
	font-size: 16px;
	font-size: 1rem;
	line-height: 20.8px;
	line-height: 1.3rem;
	font-weight: normal;
}
header #globalnavi > ul > li > div > a:not(.sw) > span,
header #globalnavi > ul > li > a:not(.sw) > span {
	display: table-cell;
	text-align: center;
	vertical-align: middle;
}
.sp header #globalnavi > ul > li > div > a:not(.sw) > span, .sp
header #globalnavi > ul > li > a:not(.sw) > span {
	display: block;
	text-align: left;
}
header #globalnavi > ul > li > div > a:not(.sw) > span span,
header #globalnavi > ul > li > a:not(.sw) > span span {
	display: inline-block;
}
header #globalnavi > ul > li.sitechange > div > a:not(.sw) {
	width: calc(100% - 40px);
	height: 60px;
	margin: 30px 20px;
	padding: 5px;
	font-size: 15px;
	font-size: 0.9375rem;
	line-height: 21px;
	line-height: 1.3125rem;
	color: #ffffff;
	background: #000000;
}
.sp header #globalnavi > ul > li.sitechange > div > a:not(.sw) {
	width: 100%;
	height: auto;
	margin: 0px;
	padding: 10px;
	font-size: 16px;
	font-size: 1rem;
	line-height: 20.8px;
	line-height: 1.3rem;
}
header #globalnavi > ul > li.current > div > a:not(.sw),
header #globalnavi > ul > li.current > a:not(.sw) {
	color: #ed1c24;
}
.sp header #globalnavi > ul > li.current > div > a:not(.sw), .sp
header #globalnavi > ul > li.current > a:not(.sw) {
	color: #ffffff;
	background: #cc0000;
}
.sp header #globalnavi > ul > li > div {
	position: relative;
	display: table;
	width: 100%;
}
.sp header #globalnavi > ul > li > div > a:not(.sw) {
	display: table-cell;
	width: calc(100vw - 50px);
}
.sp header #globalnavi > ul > li .sw {
	display: table-cell;
	width: 50px;
}
.sp header #globalnavi > ul > li .sw:before {
	content: "";
	position: absolute;
	display: block;
	top: 50%;
	right: 25px;
	margin-top: -3px;
	margin-left: -4px;
	border: 4px solid transparent;
	border-top: 6px solid #000000;
	border-bottom: 0px;
	-webkit-transition: 400ms;
	transition: 400ms;
	-webkit-transform: rotateX(0deg);
	transform: rotateX(0deg);
}
.sp header #globalnavi > ul > li .sw.open:before {
	-webkit-transform: rotateX(-180deg);
	transform: rotateX(-180deg);
}
header #globalnavi > ul ul {
	display: none;
}
html:not(.sp) header #globalnavi > ul ul {
	display: none !important;
}
.sp header #globalnavi > ul ul {
	background: #3166a3;
}
.sp header #globalnavi > ul ul div {
	position: relative;
	display: table;
	width: 100%;
}
.sp header #globalnavi > ul ul li {
	margin-left: 20px;
}
.sp header #globalnavi > ul ul li + li {
	position: relative;
}
.sp header #globalnavi > ul ul li + li:before {
	content: "";
	display: block;
	position: absolute;
	top: 0px;
	left: 0px;
	width: 100%;
	height: 0px;
	border-top: 1px dashed #ffffff;
}
.sp header #globalnavi > ul ul .current > div > a,
.sp header #globalnavi > ul ul .current > a {
	color: #ed1c24;
}
.sp header #globalnavi > ul ul a {
	display: block;
	padding: 10px;
	color: #ffffff;
}
.sp header #globalnavi > ul ul .sw:before {
	border-top-color: #ffffff;
}
header #secondnavi {
	position: relative;
	top: 0px;
	background: #d8d8d8;
	z-index: 5;
	-webkit-transition: top 600ms;
	transition: top 600ms;
}
.headerhide:not(.sp) header #secondnavi {
	top: -60px;
}
.sp header #secondnavi {
	display: none;
}
header #secondnavi > ul {
	position: relative;
	width: 100%;
	max-width: 1020px;
	margin: auto;
	padding: 0px 20px;
	font-size: 0;
}
.sp header #secondnavi > ul {
	padding: 0px 10px;
}
header #secondnavi > ul > li {
	position: relative;
	display: inline-block;
	text-align: center;
	vertical-align: middle;
	width: calc(100% / 6);
}
header #secondnavi > ul > li:before {
	content: "";
	display: block;
	position: absolute;
	width: 1px;
	height: calc(100% - 20px);
	left: 0px;
	top: 10px;
	background: #b9b9b9;
}
header #secondnavi > ul > li:last-child:after {
	content: "";
	display: block;
	position: absolute;
	width: 1px;
	height: calc(100% - 20px);
	top: 10px;
	right: 0px;
	background: #b9b9b9;
}
header #secondnavi > ul > li > a {
	position: relative;
	display: table;
	width: calc(100% - 20px);
	height: 40px;
	margin: 10px;
	vertical-align: top;
	font-size: 16px;
	font-size: 1rem;
	line-height: 22.4px;
	line-height: 1.4rem;
	font-weight: bold;
	color: #000000;
	-webkit-transition: opacity 0.2s, background 0.2s;
	transition: opacity 0.2s, background 0.2s;
	cursor: pointer;
}
header #secondnavi > ul > li > a:hover {
	opacity: 0.7;
}
header #secondnavi > ul > li > a > span {
	display: table-cell;
	text-align: center;
	vertical-align: middle;
}
header #secondnavi > ul > li > a > span span {
	display: inline-block;
}
header #secondnavi > ul > li.current > a {
	color: #ed1c24;
}

#breadcrumbs > ul {
	position: relative;
	width: 100%;
	max-width: 1020px;
	margin: auto;
	padding: 12px 20px;
	font-size: 0px;
}
.sp #breadcrumbs > ul {
	padding: 6px 10px;
}
#breadcrumbs > ul > li {
	display: inline-block;
	font-size: 14px;
	font-size: 0.875rem;
	line-height: 15.4px;
	line-height: 0.9625rem;
	color: #000000;
	vertical-align: middle;
}
.sp #breadcrumbs > ul > li {
	font-size: 12px;
	font-size: 0.75rem;
	line-height: 13.2px;
	line-height: 0.825rem;
}
#breadcrumbs > ul > li + li:before {
	content: "";
	position: relative;
	display: inline-block;
	width: 0.4rem;
	height: 0.4rem;
	top: -0.1125rem;
	margin: 0px 8px;
	border-top: 1px solid #000000;
	border-right: 1px solid #000000;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}
.sp #breadcrumbs > ul > li + li:before {
	width: 0.25rem;
	height: 0.25rem;
}
#breadcrumbs > ul li a {
	color: #000000;
	position: relative;
	display: inline-block;
}
#breadcrumbs > ul li a:before {
	content: "";
	display: block;
	position: absolute;
	bottom: calc(0.05em - 5px);
	left: 0px;
	width: 100%;
	height: 1px;
	background: #000000;
	-webkit-transition: 0.2s;
	transition: 0.2s;
	-webkit-transform: scale(0);
	transform: scale(0);
}
#breadcrumbs > ul li a:hover:before {
	-webkit-transform: scale(1);
	transform: scale(1);
}

#pagetitle {
	border-top: 1px solid #000000;
	border-bottom: 1px solid #000000;
}
#pagetitle > div {
	position: relative;
	width: 100%;
	max-width: 1020px;
	margin: auto;
	padding: 30px 20px 40px;
}
.sp #pagetitle > div {
	padding: 15px 10px 20px;
}
#pagetitle h1 {
	margin: 0px;
	padding: 0px;
	font-size: 48px;
	font-size: 3rem;
	line-height: 62.4px;
	line-height: 3.9rem;
	font-weight: normal;
}
.sp #pagetitle h1 {
	font-size: 24px;
	font-size: 1.5rem;
	line-height: 31.2px;
	line-height: 1.95rem;
}
#pagetitle p {
	font-size: 16px;
	font-size: 1rem;
	line-height: 27.2px;
	line-height: 1.7rem;
}
.sp #pagetitle p {
	font-size: 14px;
	font-size: 0.875rem;
	line-height: 23.8px;
	line-height: 1.4875rem;
}

#footer {
	margin-top: 40px;
	padding-top: 15px;
	padding-bottom: 15px;
	border-top: 1px solid #000000;
	text-align: center;
}
#footer p {
	margin: 0px;
	padding: 0px;
	font-size: 14px;
	font-size: 0.875rem;
	line-height: 18.2px;
	line-height: 1.1375rem;
}

main .contents * + .lead, main .contents * + .text, main .contents * + figure,
main .contents * + .image, main .contents * + .imagebox, main .contents * + .column, main .contents * + .button, main .contents * + .table, main .contents * + .format, main .contents * + .box, main .contents * + .googlemap, * + .menu {
	margin-top: 40px;
}
.sp main .contents * + .lead, main .contents .sp * + .lead, .sp main .contents * + .text, main .contents .sp * + .text, .sp main .contents * + figure, main .contents .sp * + figure,
.sp main .contents * + .image,
main .contents .sp * + .image, .sp main .contents * + .imagebox, main .contents .sp * + .imagebox, .sp main .contents * + .column, main .contents .sp * + .column, .sp main .contents * + .button, main .contents .sp * + .button, .sp main .contents * + .table, main .contents .sp * + .table, .sp main .contents * + .format, main .contents .sp * + .format, .sp main .contents * + .box, main .contents .sp * + .box, .sp main .contents * + .googlemap, main .contents .sp * + .googlemap, .sp * + .menu {
	margin-top: 30px;
}

main .contents * + .layout, * + .form {
	margin-top: 80px;
}
.sp main .contents * + .layout, main .contents .sp * + .layout, .sp * + .form {
	margin-top: 60px;
}

#pagetitle * + p, main .contents .lead * + p, main .contents .text * + p:not(.image):not(.caption), main .contents .text * + ul, main .contents .text * + ol, main .contents .text * + dl, main .contents .text dl * + dt, main .contents .text * + .image.floatright, main .contents .text * + .image.floatleft, main .contents .imagebox > .image * + img,
main .contents .imagebox > .image > * + a {
	margin-top: 16px;
}

main .contents .text p:not(.image):not(.caption) a[target="_blank"]:after {
	content: "";
	position: relative;
	display: inline-block;
	top: -2px;
	width: 29px;
	height: 20px;
	vertical-align: middle;
	background: url(../images/blank.svg) no-repeat center center;
}
main .contents .text p:not(.image):not(.caption) a[href$=".pdf"]:after {
	content: "";
	position: relative;
	display: inline-block;
	top: -2px;
	width: 27px;
	height: 20px;
	vertical-align: middle;
	background: url(../images/pdf.svg) no-repeat center center;
}
main .contents .text p:not(.image):not(.caption) a[href$=".doc"]:after, main .contents .text p:not(.image):not(.caption) a[href$=".docx"]:after {
	content: "";
	position: relative;
	display: inline-block;
	top: -2px;
	width: 30px;
	height: 20px;
	vertical-align: middle;
	background: url(../images/doc.svg) no-repeat center center;
}
main .contents .text p:not(.image):not(.caption) a[href$=".ppt"]:after, main .contents .text p:not(.image):not(.caption) a[href$=".pptx"]:after {
	content: "";
	position: relative;
	display: inline-block;
	top: -2px;
	width: 30px;
	height: 20px;
	vertical-align: middle;
	background: url(../images/ppt.svg) no-repeat center center;
}
main .contents .text p:not(.image):not(.caption) a[href$=".xls"]:after, main .contents .text p:not(.image):not(.caption) a[href$=".xlsx"]:after {
	content: "";
	position: relative;
	display: inline-block;
	top: -2px;
	width: 30px;
	height: 20px;
	vertical-align: middle;
	background: url(../images/xls.svg) no-repeat center center;
}
main .contents .text p:not(.image):not(.caption) a[href$=".zip"]:after {
	content: "";
	position: relative;
	display: inline-block;
	top: -2px;
	width: 27px;
	height: 20px;
	vertical-align: middle;
	background: url(../images/zip.svg) no-repeat center center;
}
main .contents .text p:not(.image):not(.caption) a[href$=".mp4"]:after {
	content: "";
	position: relative;
	display: inline-block;
	top: -2px;
	width: 30px;
	height: 20px;
	vertical-align: middle;
	background: url(../images/mp4.svg) no-repeat center center;
}

main .contents .button a[target="_blank"] .title:after, .download a[target="_blank"] .title:after {
	content: "";
	position: relative;
	display: inline-block;
	top: -2px;
	width: 29px;
	height: 20px;
	vertical-align: middle;
	background: url(../images/blank.svg) no-repeat center center;
}
main .contents .button a[href$=".pdf"] .title:after, .download a[href$=".pdf"] .title:after {
	content: "";
	position: relative;
	display: inline-block;
	top: -2px;
	width: 27px;
	height: 20px;
	vertical-align: middle;
	background: url(../images/pdf.svg) no-repeat center center;
}
main .contents .button a[href$=".doc"] .title:after, .download a[href$=".doc"] .title:after, main .contents .button a[href$=".docx"] .title:after, .download a[href$=".docx"] .title:after {
	content: "";
	position: relative;
	display: inline-block;
	top: -2px;
	width: 30px;
	height: 20px;
	vertical-align: middle;
	background: url(../images/doc.svg) no-repeat center center;
}
main .contents .button a[href$=".ppt"] .title:after, .download a[href$=".ppt"] .title:after, main .contents .button a[href$=".pptx"] .title:after, .download a[href$=".pptx"] .title:after {
	content: "";
	position: relative;
	display: inline-block;
	top: -2px;
	width: 30px;
	height: 20px;
	vertical-align: middle;
	background: url(../images/ppt.svg) no-repeat center center;
}
main .contents .button a[href$=".xls"] .title:after, .download a[href$=".xls"] .title:after, main .contents .button a[href$=".xlsx"] .title:after, .download a[href$=".xlsx"] .title:after {
	content: "";
	position: relative;
	display: inline-block;
	top: -2px;
	width: 30px;
	height: 20px;
	vertical-align: middle;
	background: url(../images/xls.svg) no-repeat center center;
}
main .contents .button a[href$=".zip"] .title:after, .download a[href$=".zip"] .title:after {
	content: "";
	position: relative;
	display: inline-block;
	top: -2px;
	width: 27px;
	height: 20px;
	vertical-align: middle;
	background: url(../images/zip.svg) no-repeat center center;
}
main .contents .button a[href$=".mp4"] .title:after, .download a[href$=".mp4"] .title:after {
	content: "";
	position: relative;
	display: inline-block;
	top: -2px;
	width: 30px;
	height: 20px;
	vertical-align: middle;
	background: url(../images/mp4.svg) no-repeat center center;
}

main .contents {
	position: relative;
	padding: 0px;
}
main .contents:after {
	content: "";
	display: block;
	clear: both;
}
main .contents > div:not(.background) {
	position: relative;
	width: 100%;
	max-width: 1020px;
	margin: auto;
	padding: 40px 20px 80px;
}
.sp main .contents > div:not(.background) {
	padding: 20px 10px 40px;
}
.sp main .contents > div:not(.background) {
	width: auto;
}
main .contents h1 + *, main .contents h2 + *, main .contents h3 + *, main .contents h4 + *, main .contents h5 + *, main .contents h6 + * {
	margin-top: 0px !important;
}
main .contents h1 {
	clear: both;
	display: block;
	margin: 0px 0px 40px;
	padding: 0px;
	font-size: 48px;
	font-size: 3rem;
	line-height: 62.4px;
	line-height: 3.9rem;
	font-weight: normal;
}
main .contents * + h1 {
	margin-top: 160px;
}
main .contents h2 {
	position: relative;
	clear: both;
	display: block;
	margin: 0px 0px 40px;
	padding: 0px;
	font-size: 32px;
	font-size: 2rem;
	line-height: 48px;
	line-height: 3rem;
	font-weight: normal;
}
.sp main .contents h2 {
	margin-bottom: 30px;
	font-size: 24px;
	font-size: 1.5rem;
	line-height: 33.6px;
	line-height: 2.1rem;
}
main .contents h2 a {
	color: #000000;
	position: relative;
	display: inline-block;
}
main .contents h2 a:before {
	content: "";
	display: block;
	position: absolute;
	bottom: calc(0.25em - 5px);
	left: 0px;
	width: 100%;
	height: 1px;
	background: #3166a3;
	-webkit-transition: 0.2s;
	transition: 0.2s;
	-webkit-transform: scale(0);
	transform: scale(0);
}
main .contents h2 a:hover:before {
	-webkit-transform: scale(1);
	transform: scale(1);
}
main .contents * + h2 {
	margin-top: 80px;
}
main .contents h3 {
	clear: both;
	position: relative;
	margin: 0px 0px 16px;
	padding: 0px;
	font-size: 24px;
	font-size: 1.5rem;
	line-height: 31.2px;
	line-height: 1.95rem;
	font-weight: bold;
}
.sp main .contents h3 {
	font-size: 18px;
	font-size: 1.125rem;
	line-height: 23.4px;
	line-height: 1.4625rem;
}
main .contents * + h3 {
	margin-top: 40px;
}
main .contents h4 {
	clear: both;
	display: block;
	margin: 0px 0px 16px;
	padding: 0px;
	font-size: 18px;
	font-size: 1.125rem;
	line-height: 23.4px;
	line-height: 1.4625rem;
	font-weight: bold;
}
.sp main .contents h4 {
	font-size: 16px;
	font-size: 1rem;
	line-height: 20.8px;
	line-height: 1.3rem;
}
main .contents * + h4 {
	margin-top: 40px;
}
main .contents h5 {
	clear: both;
	display: block;
	margin: 0px 0px 16px;
	padding: 0px;
	font-size: 16px;
	font-size: 1rem;
	line-height: 20.8px;
	line-height: 1.3rem;
}
.sp main .contents h5 {
	font-size: 16px;
	font-size: 1rem;
	line-height: 20.8px;
	line-height: 1.3rem;
}
main .contents * + h5 {
	margin-top: 16px;
}
main .contents h6 {
	clear: both;
	display: block;
	margin: 0px 0px 16px;
	padding: 0px;
	font-size: 16px;
	font-size: 1rem;
	line-height: 20.8px;
	line-height: 1.3rem;
}
.sp main .contents h6 {
	font-size: 14px;
	font-size: 0.875rem;
	line-height: 18.2px;
	line-height: 1.1375rem;
}
main .contents * + h6 {
	margin-top: 16px;
}
main .contents .lead.center {
	text-align: center;
}
.sp main .contents .lead.center {
	text-align: left;
}
main .contents .lead p {
	font-size: 18px;
	font-size: 1.125rem;
	line-height: 30.6px;
	line-height: 1.9125rem;
}
.sp main .contents .lead p {
	font-size: 16px;
	font-size: 1rem;
	line-height: 27.2px;
	line-height: 1.7rem;
}
main .contents .lead p span {
	display: inline-block;
}
.sp main .contents .lead p span {
	display: inline;
}
main .contents .stack {
	margin-top: 0px !important;
}
main .contents .block {
	margin-top: 40px !important;
}
.sp main .contents .block {
	margin-top: 30px !important;
}
main .contents .section {
	margin-top: 80px !important;
}
.sp main .contents .section {
	margin-top: 60px !important;
}
main .contents .paragraph {
	margin-top: 16px !important;
}
main .contents .text:after {
	content: "";
	display: block;
	clear: both;
}
main .contents .text p:not(.image):not(.caption) {
	font-size: 16px;
	font-size: 1rem;
	line-height: 27.2px;
	line-height: 1.7rem;
}
.sp main .contents .text p:not(.image):not(.caption) {
	font-size: 14px;
	font-size: 0.875rem;
	line-height: 23.8px;
	line-height: 1.4875rem;
}
main .contents .text p:not(.image):not(.caption) .required {
	color: #ed1c24;
	margin-left: 4px;
	margin-right: 4px;
}
main .contents .text p:not(.image):not(.caption).error_mes {
	color: #ed1c24;
}
main .contents .text p:not(.image):not(.caption) a {
	color: #3166a3;
	position: relative;
	display: inline-block;
}
main .contents .text p:not(.image):not(.caption) a:before {
	content: "";
	display: block;
	position: absolute;
	bottom: calc(0.35em - 5px);
	left: 0px;
	width: 100%;
	height: 1px;
	background: #3166a3;
	-webkit-transition: 0.2s;
	transition: 0.2s;
	-webkit-transform: scale(0);
	transform: scale(0);
}
main .contents .text p:not(.image):not(.caption) a:hover:before {
	-webkit-transform: scale(1);
	transform: scale(1);
}
main .contents .text p:not(.image):not(.caption).center {
	text-align: center;
}
main .contents .text p:not(.image):not(.caption).right {
	text-align: right;
}
.sp main .contents .text p:not(.image):not(.caption).spleft {
	text-align: left;
}
main .contents .text ul {
	clear: both;
	font-size: 0px;
}
main .contents .text ul > li {
	margin-left: 14px;
	text-indent: -14px;
	font-size: 16px;
	font-size: 1rem;
	line-height: 27.2px;
	line-height: 1.7rem;
}
.sp main .contents .text ul > li {
	font-size: 14px;
	font-size: 0.875rem;
	line-height: 23.8px;
	line-height: 1.4875rem;
}
main .contents .text ul > li:before {
	content: "";
	display: inline-block;
	width: 10px;
	height: 10px;
	margin-right: 4px;
	background: #cccccc;
	border-radius: 50%;
}
main .contents .text ul > li + li {
	margin-top: 4px;
}
main .contents .text ul > li *:not(li) {
	text-indent: 0px;
}
main .contents .text ul > li a {
	vertical-align: top;
	color: #3166a3;
	position: relative;
	display: inline-block;
}
main .contents .text ul > li a:before {
	content: "";
	display: block;
	position: absolute;
	bottom: calc(0.35em - 5px);
	left: 0px;
	width: 100%;
	height: 1px;
	background: #3166a3;
	-webkit-transition: 0.2s;
	transition: 0.2s;
	-webkit-transform: scale(0);
	transform: scale(0);
}
main .contents .text ul > li a:hover:before {
	-webkit-transform: scale(1);
	transform: scale(1);
}
main .contents .text ul > li ul, main .contents .text ul > li ol {
	margin-top: 4px;
	margin-right: 0px;
}
main .contents .text ul.float {
	margin-right: -40px;
}
main .contents .text ul.float li {
	display: inline-block;
	margin-right: 40px;
}
main .contents .text ul.ib li {
	display: inline-block;
}
.sp main .contents .text ul.ib li {
	display: block;
}
main .contents .text ul.ib li + li {
	margin-left: 50px;
}
.sp main .contents .text ul.ib li + li {
	margin-left: 14px;
}
main .contents .text ol {
	font-size: 16px;
	font-size: 1rem;
	line-height: 27.2px;
	line-height: 1.7rem;
	counter-reset: number;
}
.sp main .contents .text ol {
	font-size: 14px;
	font-size: 0.875rem;
	line-height: 23.8px;
	line-height: 1.4875rem;
}
main .contents .text ol > li {
	margin-left: 1.2em;
	text-indent: -0.63em;
}
main .contents .text ol > li:before {
	counter-increment: number;
	content: counter(number) ".";
	display: inline-block;
	margin-right: 0.3em;
}
main .contents .text ol > li + li {
	margin-top: 4px;
}
main .contents .text ol > li *:not(li) {
	text-indent: 0px;
}
main .contents .text ol > li a {
	vertical-align: top;
	color: #3166a3;
	position: relative;
	display: inline-block;
}
main .contents .text ol > li a:before {
	content: "";
	display: block;
	position: absolute;
	bottom: calc(0.35em - 5px);
	left: 0px;
	width: 100%;
	height: 1px;
	background: #3166a3;
	-webkit-transition: 0.2s;
	transition: 0.2s;
	-webkit-transform: scale(0);
	transform: scale(0);
}
main .contents .text ol > li a:hover:before {
	-webkit-transform: scale(1);
	transform: scale(1);
}
main .contents .text ol > li ul, main .contents .text ol > li ol {
	margin-top: 4px;
	margin-right: 0px;
}
main .contents .text dl dt {
	font-size: 18px;
	font-size: 1.125rem;
	line-height: 23.4px;
	line-height: 1.4625rem;
	font-weight: bold;
}
.sp main .contents .text dl dt {
	font-size: 16px;
	font-size: 1rem;
	line-height: 20.8px;
	line-height: 1.3rem;
}
main .contents .text dl dd {
	margin: 10px 0px 0px;
	font-size: 16px;
	font-size: 1rem;
	line-height: 27.2px;
	line-height: 1.7rem;
}
.sp main .contents .text dl dd {
	font-size: 14px;
	font-size: 0.875rem;
	line-height: 23.8px;
	line-height: 1.4875rem;
}
main .contents .text .image.floatright {
	float: right;
	margin-left: 16px;
	margin-bottom: 16px;
}
.sp main .contents .text .image.floatright {
	margin-left: 8px;
	margin-bottom: 8px;
}
main .contents .text .image.floatleft {
	float: left;
	margin-right: 16px;
	margin-bottom: 16px;
}
.sp main .contents .text .image.floatleft {
	margin-right: 8px;
	margin-bottom: 8px;
}
.sp main .contents .text .image.spclear {
	float: none;
	width: auto !important;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 0px;
}
main .contents figure,
main .contents .image {
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}
main .contents figure img,
main .contents .image img {
	display: block;
	margin: auto;
	max-width: 100%;
	height: auto;
}
main .contents figure figcaption,
main .contents figure p,
main .contents .image figcaption,
main .contents .image p {
	margin: auto;
	text-align: center;
	font-size: 16px;
	font-size: 1rem;
	line-height: 20.8px;
	line-height: 1.3rem;
}
.sp main .contents figure figcaption, .sp
main .contents figure p, .sp
main .contents .image figcaption, .sp
main .contents .image p {
	font-size: 14px;
	font-size: 0.875rem;
	line-height: 18.2px;
	line-height: 1.1375rem;
}
* + main .contents figure figcaption, * +
main .contents figure p, * +
main .contents .image figcaption, * +
main .contents .image p {
	margin-top: 8px;
}
main .contents figure figcaption a,
main .contents figure p a,
main .contents .image figcaption a,
main .contents .image p a {
	color: #3166a3;
	position: relative;
	display: inline-block;
}
main .contents figure figcaption a:before,
main .contents figure p a:before,
main .contents .image figcaption a:before,
main .contents .image p a:before {
	content: "";
	display: block;
	position: absolute;
	bottom: calc(0.15em - 5px);
	left: 0px;
	width: 100%;
	height: 1px;
	background: #3166a3;
	-webkit-transition: 0.2s;
	transition: 0.2s;
	-webkit-transform: scale(0);
	transform: scale(0);
}
main .contents figure figcaption a:hover:before,
main .contents figure p a:hover:before,
main .contents .image figcaption a:hover:before,
main .contents .image p a:hover:before {
	-webkit-transform: scale(1);
	transform: scale(1);
}
main .contents figure figcaption.left,
main .contents figure p.left,
main .contents .image figcaption.left,
main .contents .image p.left {
	text-align: left;
}
main .contents figure figcaption.right,
main .contents figure p.right,
main .contents .image figcaption.right,
main .contents .image p.right {
	text-align: right;
}
main .contents figure.left,
main .contents .image.left {
	text-align: left;
}
main .contents figure.left img,
main .contents .image.left img {
	margin-left: 0px;
}
main .contents figure.left p,
main .contents .image.left p {
	margin-left: 0px;
}
main .contents figure.right,
main .contents .image.right {
	text-align: right;
}
main .contents figure.right img,
main .contents .image.right img {
	margin-right: 0px;
}
main .contents figure.right p,
main .contents .image.right p {
	margin-right: 0px;
}
main .contents figure > a,
main .contents .image > a {
	display: inline-block;
	max-width: 100%;
	-webkit-transition: opacity 0.2s, background 0.2s;
	transition: opacity 0.2s, background 0.2s;
	cursor: pointer;
}
main .contents figure > a:hover,
main .contents .image > a:hover {
	opacity: 0.7;
}
main .contents figure > a p,
main .contents .image > a p {
	color: #3166a3;
}
main .contents .imagebox {
	display: table;
	width: 100%;
}
main .contents .imagebox > * {
	display: table-cell;
	height: 100%;
	text-align: left;
	vertical-align: top;
}
.sp main .contents .imagebox.spcol1 {
	display: block;
}
.sp main .contents .imagebox.spcol1 > * {
	display: block;
	width: auto !important;
}
.sp main .contents .imagebox.spcol1 > * + * {
	padding-top: 20px;
	padding-left: 0px !important;
	padding-right: 0px !important;
}
main .contents .imagebox > * {
	margin-top: 0px !important;
}
main .contents .imagebox > * + * {
	padding-left: 20px;
}
main .contents .imagebox.reverse {
	direction: rtl;
}
main .contents .imagebox.reverse > * {
	direction: ltr;
}
main .contents .imagebox.reverse > * + * {
	padding-left: 0px;
	padding-right: 20px;
}
main .contents .imagebox > .image img,
main .contents .imagebox > .image > a {
	display: block;
	width: 100%;
}
main .contents .imagebox > .image p {
	width: auto !important;
}
main .contents .column {
	margin-bottom: -40px;
	margin-left: -40px;
	margin-right: -4px;
}
.sp main .contents .column {
	margin-left: -20px;
	margin-bottom: -20px;
}
main .contents .column:after {
	content: "";
	display: block;
	clear: both;
}
main .contents .column > * {
	float: left;
	margin-bottom: 40px;
	margin-left: 40px;
}
.sp main .contents .column > * {
	margin-left: 20px;
	margin-bottom: 20px;
}
main .contents .column.col1 > * {
	width: calc((100% - 40px * 1 - 4px) / 1);
}
main .contents .column.col1 > *.size2 {
	width: calc(((100% - 40px * 1 - 4px) / 1) * 2 + 40px * 1);
}
main .contents .column.col1 > *.size1 {
	width: calc(((100% - 40px * 1 - 4px) / 1) * 1 + 40px * 0);
}
.sp main .contents .column.col1 > * {
	width: calc((100% - 20px * 1 - 4px) / 1);
}
.sp main .contents .column.spcol1 > * {
	width: calc((100% - 20px * 1 - 4px) / 1) !important;
}
main .contents .column.col2 > * {
	width: calc((100% - 40px * 2 - 4px) / 2);
}
main .contents .column.col2 > *.size2 {
	width: calc(((100% - 40px * 2 - 4px) / 2) * 2 + 40px * 1);
}
.sp main .contents .column.col2 > * {
	width: calc((100% - 20px * 2 - 4px) / 2);
}
.sp main .contents .column.spcol2 > * {
	width: calc((100% - 20px * 2 - 4px) / 2) !important;
}
main .contents .column.col3 > * {
	width: calc((100% - 40px * 3 - 4px) / 3);
}
main .contents .column.col3 > *.size2 {
	width: calc(((100% - 40px * 3 - 4px) / 3) * 2 + 40px * 1);
}
main .contents .column.col3 > *.size3 {
	width: calc(((100% - 40px * 3 - 4px) / 3) * 3 + 40px * 2);
}
.sp main .contents .column.col3 > * {
	width: calc((100% - 20px * 3 - 4px) / 3);
}
.sp main .contents .column.spcol3 > * {
	width: calc((100% - 20px * 3 - 4px) / 3) !important;
}
main .contents .column.col4 > * {
	width: calc((100% - 40px * 4 - 4px) / 4);
}
main .contents .column.col4 > *.size2 {
	width: calc(((100% - 40px * 4 - 4px) / 4) * 2 + 40px * 1);
}
main .contents .column.col4 > *.size3 {
	width: calc(((100% - 40px * 4 - 4px) / 4) * 3 + 40px * 2);
}
main .contents .column.col4 > *.size4 {
	width: calc(((100% - 40px * 4 - 4px) / 4) * 4 + 40px * 3);
}
.sp main .contents .column.col4 > * {
	width: calc((100% - 20px * 4 - 4px) / 4);
}
.sp main .contents .column.spcol4 > * {
	width: calc((100% - 20px * 4 - 4px) / 4) !important;
}
main .contents .column.col5 > * {
	width: calc((100% - 40px * 5 - 4px) / 5);
}
main .contents .column.col5 > *.size2 {
	width: calc(((100% - 40px * 5 - 4px) / 5) * 2 + 40px * 1);
}
main .contents .column.col5 > *.size3 {
	width: calc(((100% - 40px * 5 - 4px) / 5) * 3 + 40px * 2);
}
main .contents .column.col5 > *.size4 {
	width: calc(((100% - 40px * 5 - 4px) / 5) * 4 + 40px * 3);
}
main .contents .column.col5 > *.size5 {
	width: calc(((100% - 40px * 5 - 4px) / 5) * 5 + 40px * 4);
}
.sp main .contents .column.col5 > * {
	width: calc((100% - 20px * 5 - 4px) / 5);
}
.sp main .contents .column.spcol5 > * {
	width: calc((100% - 20px * 5 - 4px) / 5) !important;
}
main .contents .column.col6 > * {
	width: calc((100% - 40px * 6 - 4px) / 6);
}
main .contents .column.col6 > *.size2 {
	width: calc(((100% - 40px * 6 - 4px) / 6) * 2 + 40px * 1);
}
main .contents .column.col6 > *.size3 {
	width: calc(((100% - 40px * 6 - 4px) / 6) * 3 + 40px * 2);
}
main .contents .column.col6 > *.size4 {
	width: calc(((100% - 40px * 6 - 4px) / 6) * 4 + 40px * 3);
}
main .contents .column.col6 > *.size5 {
	width: calc(((100% - 40px * 6 - 4px) / 6) * 5 + 40px * 4);
}
main .contents .column.col6 > *.size6 {
	width: calc(((100% - 40px * 6 - 4px) / 6) * 6 + 40px * 5);
}
.sp main .contents .column.col6 > * {
	width: calc((100% - 20px * 6 - 4px) / 6);
}
.sp main .contents .column.spcol6 > * {
	width: calc((100% - 20px * 6 - 4px) / 6) !important;
}
main .contents .layout {
	display: table;
	width: calc(100% + 40px);
	margin-left: -20px;
	margin-right: -20px;
}
main .contents .layout > * {
	display: table-cell;
	height: 100%;
	text-align: center;
	vertical-align: middle;
}
main .contents .layout:after {
	content: "";
	display: block;
	clear: both;
}
.sp main .contents .layout {
	width: calc(100% + 20px);
	margin-left: -10px;
	margin-right: -10px;
}
main .contents .layout > * {
	padding: 0px 20px;
}
.sp main .contents .layout > * {
	padding: 0px 10px;
}
main .contents .layout > *.left {
	text-align: left;
}
main .contents .layout > *.right {
	text-align: right;
}
main .contents .layout > *.top {
	vertical-align: top;
}
main .contents .layout > *.bottom {
	vertical-align: bottom;
}
.sp main .contents .layout.spcol1 {
	display: block;
	width: auto;
	margin-left: 0px;
	margin-bottom: -40px;
	margin-right: 0px;
}
.sp main .contents .layout.spcol1 > * {
	display: block;
	margin-bottom: 40px;
	padding: 0px;
	width: auto !important;
}
main .contents .button {
	font-size: 0px;
}
.sp main .contents .button {
	text-align: center;
}
main .contents .button > div {
	display: inline-block;
	vertical-align: middle;
}
.sp main .contents .button > div {
	display: block;
}
main .contents .button > div + div {
	margin-left: 20px;
}
.sp main .contents .button > div + div {
	margin-top: 20px;
	margin-left: 0px;
}
main .contents .button a {
	display: table;
	width: 100%;
	width: 240px;
	max-width: 100%;
	height: 48px;
	margin: auto;
	font-size: 16px;
	font-size: 1rem;
	line-height: 20.8px;
	line-height: 1.3rem;
	color: #3166a3;
	background: #ffffff;
	border: 2px solid #3166a3;
	border-radius: 5px;
	-webkit-transition: opacity 0.2s, background 0.2s;
	transition: opacity 0.2s, background 0.2s;
	cursor: pointer;
}
main .contents .button a:hover {
	opacity: 0.7;
}
main .contents .button a > span {
	display: table-cell;
	vertical-align: middle;
	text-align: center;
}
main .contents .button.center {
	text-align: center;
}
main .contents .button.right {
	text-align: right;
}
main .contents .button.right a {
	margin-right: 0;
}
main .contents .button.left {
	text-align: left;
}
main .contents .button.left a {
	margin-left: 0;
}
main .contents .table {
	overflow-x: auto;
	overflow-y: hidden;
}
main .contents .table > table {
	width: 100%;
	border-collapse: collapse;
	empty-cells: show;
}
main .contents .table > table > thead * + th:before, main .contents .table > table > thead .format > table * + td:before, main .contents .format > table .table > table > thead * + td:before {
	content: "";
	display: block;
	position: absolute;
	width: 1px;
	height: 3000px;
	top: 0px;
	left: 0px;
	background: #ffffff;
}
main .contents .table > table > thead tr + tr th:before, main .contents .table > table > thead tr + tr .format > table td:before, main .contents .format > table .table > table > thead tr + tr td:before {
	content: "";
	display: block;
	position: absolute;
	width: 1px;
	height: 3000px;
	top: 0px;
	left: 0px;
	background: #ffffff;
}
main .contents .table > table > thead tr + tr th:after, main .contents .table > table > thead tr + tr .format > table td:after, main .contents .format > table .table > table > thead tr + tr td:after {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 1px;
	top: 0px;
	left: 0px;
	background: #ffffff;
}
main .contents .table > table > thead > tr > th, main .contents .format.table > table > thead > tr > td {
	position: relative;
	padding: 20px 16px;
	vertical-align: middle;
	text-align: center;
	font-size: 16px;
	font-size: 1rem;
	line-height: 20.8px;
	line-height: 1.3rem;
	font-weight: bold;
	color: #fff;
	background: #000;
	overflow: hidden;
}
main .contents .table > table > tbody > tr > th, main .contents .format.table > table > tbody > tr > td,
main .contents .table > table > tr > th,
main .contents .format.table > table > tr > td {
	position: relative;
	padding: 20px 16px;
	vertical-align: middle;
	text-align: left;
	font-size: 16px;
	font-size: 1rem;
	line-height: 20.8px;
	line-height: 1.3rem;
	font-weight: bold;
	color: #ffffff;
	background: #3166a3;
	overflow: hidden;
}
.sp main .contents .table > table > tbody > tr > th, .sp main .contents .format.table > table > tbody > tr > td, .sp
main .contents .table > table > tr > th, .sp
main .contents .format.table > table > tr > td {
	display: block;
	padding: 12px 8px;
	white-space: nowrap;
	font-size: 14px;
	font-size: 0.875rem;
	line-height: 18.2px;
	line-height: 1.1375rem;
}
.sp main .contents .table > table > tbody > tr > th span, .sp main .contents .format.table > table > tbody > tr > td span, .sp
main .contents .table > table > tr > th span, .sp
main .contents .format.table > table > tr > td span {
	display: block;
}
.sp main .contents .table > table > tbody > tr > th * + span, .sp main .contents .format.table > table > tbody > tr > td * + span, .sp
main .contents .table > table > tr > th * + span, .sp
main .contents .format.table > table > tr > td * + span {
	margin-top: 4px;
}
main .contents .table > table > tbody > tr > th, main .contents .format.table > table > tbody > tr > td {
	vertical-align: top;
}
main .contents .table > table > tr > td,
main .contents .table > table > * > tr > td {
	padding: 16px;
	vertical-align: middle;
	text-align: left;
	font-size: 16px;
	font-size: 1rem;
	line-height: 27.2px;
	line-height: 1.7rem;
	font-weight: normal;
	color: #000000;
	background: #e6e6e6;
}
.sp main .contents .table > table > tr > td, .sp
main .contents .table > table > * > tr > td {
	display: block;
	margin-top: 0px !important;
	padding: 8px;
	font-size: 14px;
	font-size: 0.875rem;
	line-height: 23.8px;
	line-height: 1.4875rem;
}
main .contents .table > table > tr > td p + p,
main .contents .table > table > * > tr > td p + p {
	margin-top: 10px;
}
main .contents .table > table > tr > td + td,
main .contents .table > table > * > tr > td + td {
	position: relative;
	overflow: hidden;
}
main .contents .table > table > tr > td + td:before,
main .contents .table > table > * > tr > td + td:before {
	position: absolute;
	display: block;
	content: "";
	width: 1px;
	height: 3000px;
	left: 0px;
	top: 0px;
	background: #ffffff;
}
main .contents .table > table > tbody > tr:nth-child(even) > th, main .contents .format.table > table > tbody > tr:nth-child(even) > td {
	background: #254d7b;
}
main .contents .table > table > tbody > tr:nth-child(even) > td {
	background: #cccccc;
	background: #cccccc;
}
main .contents .table > table .left {
	text-align: left;
}
main .contents .table > table .right {
	text-align: right;
}
main .contents .table > table .center {
	text-align: center;
}
main .contents .table > table .top {
	vertical-align: top;
}
main .contents .table > table .bottom {
	vertical-align: bottom;
}
main .contents .table > table .middle {
	vertical-align: middle;
}
main .contents .table > p {
	font-size: 14px;
	font-size: 0.875rem;
	line-height: 23.8px;
	line-height: 1.4875rem;
}
.sp main .contents .table > p {
	font-size: 11.9px;
	font-size: 0.74375rem;
	line-height: 20.23px;
	line-height: 1.26438rem;
}
main .contents .table > p.right {
	text-align: right;
}
main .contents .table > * + p {
	margin-top: 8px;
}
main .contents .table > p + table {
	margin-top: 8px;
}
.sp main .contents .table col {
	width: 100% !important;
}
main .contents .format > table {
	width: 100%;
	border-collapse: collapse;
	empty-cells: show;
}
main .contents .format > table th, main .contents .format > table td {
	padding: 0px 0px 10px 0px;
	vertical-align: top;
	text-align: left;
	font-size: 16px;
	font-size: 1rem;
	line-height: 27.2px;
	line-height: 1.7rem;
	font-weight: bold;
	color: #000000;
}
.sp main .contents .format > table th, .sp main .contents .format > table td {
	font-size: 14px;
	font-size: 0.875rem;
	line-height: 23.8px;
	line-height: 1.4875rem;
}
main .contents .format > table td {
	padding: 0px 0px 10px 20px;
	font-weight: normal;
}
main .contents .format > table tr:last-child th, main .contents .format > table tr:last-child td,
main .contents .format > table tr:last-child td {
	padding-bottom: 0px;
}
.sp main .contents .format > table {
	display: block;
}
.sp main .contents .format > table tbody {
	display: block;
}
.sp main .contents .format > table tr {
	display: block;
}
.sp main .contents .format > table th, .sp main .contents .format > table td {
	display: block;
	padding-bottom: 0px;
}
.sp main .contents .format > table td {
	display: block;
	padding-bottom: 5px;
}
main .contents .box {
	padding: 20px;
	border: 1px solid #e6e6e6;
}
.sp main .contents .box {
	padding: 10px;
}
main .contents .googlemap {
	position: relative;
	padding-top: 500px;
}
.sp main .contents .googlemap {
	padding-top: 300px;
}
main .contents .googlemap iframe {
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0px;
	-webkit-transition: opacity 400ms;
	transition: opacity 400ms;
}
main .contents .googlemap.googlemapview {
	background: url(../images/loading.gif) no-repeat center center;
}
main .contents .googlemap.googlemapview iframe {
	position: fixed;
	top: 90vh;
	opacity: 0;
	-webkit-transition: opacity 0ms;
	transition: opacity 0ms;
}

.youtube {
	max-width: 640px;
	margin: auto;
}
.youtube > div {
	position: relative;
	padding-top: 56.25%;
}
.youtube > div > iframe {
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0px;
}
.youtube p {
	margin: auto;
	font-size: 14px;
	font-size: 0.875rem;
	line-height: 18.2px;
	line-height: 1.1375rem;
}
* + .youtube p {
	margin-top: 8px;
}

.loading * {
	-webkit-transition: 0ms !important;
	transition: 0ms !important;
}

#topbg {
	position: fixed;
	top: 120px;
	left: 0px;
	width: 100%;
	height: calc(100% - 120px);
	z-index: -1;
	overflow: hidden;
}
.sp #topbg {
	top: 60px;
	height: calc(100% - 60px);
}
#topbg ul {
	display: none;
}
#topbg div {
	position: absolute;
	width: 100%;
	height: 100%;
	background: none center center;
	background-size: cover;
	transform: scale(1);
	opacity: 1;
	transition: opacity 3000ms, transform 9000ms !important;
}
#topbg div.trigger {
	transform: scale(1.1);
	opacity: 0;
}

#topcontents {
	position: relative;
	display: table;
	width: 100%;
	height: calc(100vh - 120px);
}
.sp #topcontents {
	margin-top: 40vh;
	height: calc(60vh - 60px);
}
#topcontents > div {
	display: table-cell;
	vertical-align: bottom;
	padding-top: calc(100vh - 221px);
}
.sp #topcontents > div {
	padding-top: 0;
}
#topcontents h1 {
	position: absolute;
	top: calc((100vh - 120px - 101px) / 2);
	left: 50%;
	margin: 0px;
	padding: 0px;
	text-indent: -10000px;
	width: 90%;
	max-width: 920px;
	height: 100px;
	background: url(../../images/logo.svg) no-repeat center center;
	background-size: 100% auto;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
}
.sp #topcontents h1 {
	top: -20vh;
	max-width: 280px;
	background-image: url(../../images/logosp.svg);
}
#topcontents .topwrap {
	background: rgba(0, 0, 0, 0.7);
}
#topcontents .topbody {
	position: relative;
	width: 100%;
	max-width: 1020px;
	margin: auto;
	padding: 20px 20px;
}
.sp #topcontents .topbody {
	padding: 10px 10px;
}
#topcontents .topbody .news {
	font-size: 16px;
	font-size: 1rem;
	line-height: 24px;
	line-height: 1.5rem;
	color: #ffffff;
}
.sp #topcontents .topbody .news {
	margin-right: 0px;
	min-height: 0px;
	font-size: 14px;
	font-size: 0.875rem;
	line-height: 21px;
	line-height: 1.3125rem;
}
#topcontents .topbody .news h2 {
	margin: 0px;
	padding: 0px;
	font-size: 21px;
	font-size: 1.3125rem;
	line-height: 21px;
	line-height: 1.3125rem;
}
.sp #topcontents .topbody .news h2 {
	font-size: 18px;
	font-size: 1.125rem;
	line-height: 18px;
	line-height: 1.125rem;
}
#topcontents .topbody .news .newsbox {
	display: flex;
	flex-wrap: wrap;
	margin-right: 380px;
}
.sp #topcontents .topbody .news .newsbox {
	margin-right: 0;
}
#topcontents .topbody .news .newsbox dl {
	width: 72%;
	padding-right: 30px;
}
.sp #topcontents .topbody .news .newsbox dl {
	width: 100%;
	padding-right: 0;
}
#topcontents .topbody .news .newsbox .image {
	width: 25%;
	margin-top: 10px;
}
.sp #topcontents .topbody .news .newsbox .image {
	width: 100%;
	text-align: center;
}
#topcontents .topbody .news .newsbox .image img {
	max-width: 100%;
	width: auto;
	display: block;
	margin: auto;
}
.sp #topcontents .topbody .news .newsbox .image img {
	max-width: 150px;
}
#topcontents .topbody .news .newsbox a {
	text-decoration: underline;
}
#topcontents .topbody .news .newsbox a:hover {
	text-decoration: none;
}
#topcontents .topbody .news .newsbox a:before {
	display: none !important;
}
#topcontents .topbody .news .newsbox .image a {
	display: block;
	transition: opacity 0.2s, background 0.2s;
	cursor: pointer;
}
#topcontents .topbody .news .newsbox .image a:hover {
	opacity: 0.7;
}
#topcontents .topbody .news dl {
	padding-top: 1px;
}
#topcontents .topbody .news dt {
	clear: both;
	float: left;
	width: calc(6em);
	margin-top: 15px;
}
.sp #topcontents .topbody .news dt {
	margin-top: 10px;
}
#topcontents .topbody .news dd {
	margin-left: calc(7em);
	margin-top: 15px;
}
.sp #topcontents .topbody .news dd {
	margin-top: 10px;
	margin-right: 0;
}
.sp #topcontents .topbody .news dd .image {
	margin-left: -3.5em;
}
#topcontents .topbody .news a {
	color: #ffffff;
	position: relative;
	display: inline-block;
}
#topcontents .topbody .news a:before {
	content: "";
	display: block;
	position: absolute;
	bottom: calc(0.25em - 5px);
	left: 0px;
	width: 100%;
	height: 1px;
	background: #ffffff;
	-webkit-transition: 0.2s;
	transition: 0.2s;
	-webkit-transform: scale(0);
	transform: scale(0);
}
#topcontents .topbody .news a:hover:before {
	-webkit-transform: scale(1);
	transform: scale(1);
}
#topcontents .topbody .banners {
	position: absolute;
	bottom: 20px;
	right: 20px;
	width: 365px;
}
.sp #topcontents .topbody .banners {
	position: static;
	width: auto;
	margin-top: 20px;
}
#topcontents .topbody .banners ul {
	margin: -5px -5px 0px -5px;
	font-size: 0;
}
#topcontents .topbody .banners ul li {
	display: inline-block;
	width: calc((100% - 15px) / 2);
	margin-top: 5px;
	margin-left: 5px;
	vertical-align: top;
}
#topcontents .topbody .banners ul li a {
	display: block;
	border: 1px solid #e6e6e6;
	-webkit-transition: opacity 0.2s, background 0.2s;
	transition: opacity 0.2s, background 0.2s;
	cursor: pointer;
}
#topcontents .topbody .banners ul li a:hover {
	opacity: 0.7;
}
#topcontents .topbody .banners ul li a img {
	display: block;
	width: 100%;
	height: auto;
}
#topcontents .topbody .youtube {
	position: absolute;
	top: 50px;
	right: 20px;
	width: 365px;
}
.sp #topcontents .topbody .youtube {
	position: static;
	width: auto;
	margin: 40px 0;
}
#topcontents .topbody .youtube > .banner {
	padding: 0;
	margin-top: 30px;
}
#topcontents .topbody .youtube > .banner a {
	-webkit-transition: opacity 0.2s, background 0.2s;
	transition: opacity 0.2s, background 0.2s;
	cursor: pointer;
}
#topcontents .topbody .youtube > .banner a:hover {
	opacity: 0.7;
}
#topcontents #footer {
	margin-top: 0px;
	border-top-color: #ffffff;
}
#topcontents #footer p {
	color: #ffffff;
}

.headerhide .toppage header .body {
	top: 0;
}

.download ul {
	margin: -20px -5px 0px -20px;
}
.download ul:after {
	content: "";
	display: block;
	clear: both;
}
.download li {
	float: left;
	width: calc((100% - 85px) / 4);
	margin-top: 20px;
	margin-left: 20px;
}
.sp .download li {
	width: calc((100% - 45px) / 2);
}
.download a {
	display: block;
	-webkit-transition: opacity 0.2s, background 0.2s;
	transition: opacity 0.2s, background 0.2s;
	cursor: pointer;
}
.download a:hover {
	opacity: 0.7;
}
.download a .image {
	display: block;
	border: 1px solid #cccccc;
}
.download a .title {
	display: block;
	font-size: 16px;
	font-size: 1rem;
	line-height: 20.8px;
	line-height: 1.3rem;
	color: #3166a3;
}
.sp .download a .title {
	font-size: 14px;
	font-size: 0.875rem;
	line-height: 18.2px;
	line-height: 1.1375rem;
}
.download a .image + .title {
	margin-top: 10px;
}

.form {
	width: 100%;
	font-size: 18px;
	font-size: 1.125rem;
	line-height: 23.4px;
	line-height: 1.4625rem;
}
.sp .form {
	font-size: 16px;
	font-size: 1rem;
	line-height: 20.8px;
	line-height: 1.3rem;
}

.form .error_mes {
	color: #f33;
	margin-bottom: 20px;
}
.sp .form .error_mes {
	margin-bottom: 15px;
}

.form .form_field {
	display: table;
	width: 100%;
}
.sp .form .form_field {
	display: block;
}

.form .form_field + .form_field {
	margin-top: 40px;
}
.sp .form .form_field + .form_field {
	margin-top: 30px;
}

.form .form_field .form_label {
	display: table-cell;
	padding-right: 20px;
	width: 30%;
	text-align: right;
	vertical-align: top;
}
.sp .form .form_field .form_label {
	display: block;
	padding-right: 0px;
	padding-bottom: 10px;
	width: 100%;
	text-align: left;
	font-size: 14px;
	font-size: 0.875rem;
	line-height: 18.2px;
	line-height: 1.1375rem;
}

.form .form_field .form_label span {
	display: block;
	font-size: 14px;
	font-size: 0.875rem;
	line-height: 18.2px;
	line-height: 1.1375rem;
}
.sp .form .form_field .form_label span {
	display: inline-block;
	font-size: 12px;
	font-size: 0.75rem;
	line-height: 15.6px;
	line-height: 0.975rem;
	margin-left: 15px;
}

.form .form_field .form_label span.must {
	color: #f4a93b;
}

.form .form_field .form_element {
	display: table-cell;
	width: 70%;
	vertical-align: top;
}
.sp .form .form_field .form_element {
	display: block;
	width: 100%;
}

.form .form_field .form_element label {
	display: block;
}

.form .form_field .form_element input.text {
	width: 100%;
	resize: vertical;
	height: 4em;
}
.sp .form .form_field .form_element input.text {
	font-size: 16px;
	font-size: 1rem;
	line-height: 16px;
	line-height: 1rem;
}

.form .form_field .form_element input.text.min {
	width: 200px;
}
.sp .form .form_field .form_element input.text.min {
	width: calc(100% - 1.5em);
}

.form .form_field .form_element textarea {
	width: 100%;
	padding: 5px;
	resize: vertical;
	height: 6em;
}
.sp .form .form_field .form_element textarea {
	font-size: 16px;
	font-size: 1rem;
	line-height: 20.8px;
	line-height: 1.3rem;
}

.form .form_field .form_element .must {
	background: #ffe5ee;
}

.form .form_field .form_label.va_m {
	vertical-align: middle;
}

.form .submit {
	margin: 90px 0px 100px;
	text-align: center;
}
.sp .form .submit {
	margin: 40px 0px 0px;
}

.form .submit .g-recaptcha {
	margin-top: 30px;
}
.form .submit .g-recaptcha > div {
	margin: 0 auto;
}

.form .submit .button input {
	display: inline-block;
	width: 300px;
	padding: 15px 0px;
	margin: 0px auto 0px;
	background: #fff;
	color: #3166a3;
	border-radius: 30px;
	cursor: pointer;
	font-size: 18px;
	font-size: 1.125rem;
	line-height: 18px;
	line-height: 1.125rem;
}
.sp .form .submit .button input {
	width: calc(100% - 40px);
	height: 45px;
	padding: 0px;
	margin: 40px auto 0px;
	border-radius: 25px;
	line-height: 45px;
	border: 0px;
}

.form .submit .button input + input {
	margin-left: 15px;
}
.sp .form .submit .button input + input {
	margin-left: 0px;
}

.menu {
	margin-bottom: -20px;
	margin-left: -20px;
	margin-right: -5px;
}
.menu:after {
	content: "";
	display: block;
	clear: both;
}
.sp .menu {
	margin-bottom: 0px;
}
.menu > * {
	float: left;
	display: block;
	width: calc((100% - 65px) / 3);
	margin-left: 20px;
	margin-bottom: 20px;
}
.sp .menu > * {
	float: none;
	width: calc(100% - 25px);
	margin-bottom: 30px;
}
.menu > div .title {
	display: block;
	margin-bottom: 10px;
	font-size: 24px;
	font-size: 1.5rem;
	line-height: 31.2px;
	line-height: 1.95rem;
	font-weight: bold;
	color: #000000;
	text-align: center;
}
.menu > div .image + .text {
	margin-top: 10px;
}
.menu a {
	-webkit-transition: opacity 0.2s, background 0.2s;
	transition: opacity 0.2s, background 0.2s;
	cursor: pointer;
}
.menu a:hover {
	opacity: 0.7;
}
.menu a .image {
	display: block;
}
.menu a .title {
	display: block;
	margin-top: 10px;
	font-size: 24px;
	font-size: 1.5rem;
	line-height: 31.2px;
	line-height: 1.95rem;
	font-weight: bold;
	color: #000000;
	text-align: center;
}
.sp .menu a .title {
	font-size: 18px;
	font-size: 1.125rem;
	line-height: 23.4px;
	line-height: 1.4625rem;
}

main .contents > .feature_area {
	max-width: none !important;
	padding: 20px 0 !important;
	background: #000;
}
main .contents > .feature_area .inner {
	position: relative;
	width: 100%;
	max-width: 1020px;
	margin: auto;
	padding: 0px 20px;
	color: #fff;
}
.sp main .contents > .feature_area .inner {
	padding: 0px 10px;
}
main .contents > .feature_area .title {
	font-size: 24px;
	font-size: 1.5rem;
	line-height: 31.2px;
	line-height: 1.95rem;
	padding-bottom: 15px;
	margin-bottom: 15px;
	border-bottom: 2px solid #fff;
}
main .contents > .feature_area .bg_area {
	background: url(../../architecture/images/feature_area_bg.jpg) no-repeat right bottom;
	background-size: 30%;
}
.sp main .contents > .feature_area .bg_area {
	background: none;
}
.sp main .contents > .feature_area .bg_area:after {
	content: "";
	display: block;
	margin: 30px auto 0;
	width: 200px;
	height: 120px;
	background: url(../../architecture/images/feature_area_bg.jpg) no-repeat center center;
	background-size: cover;
}
main .contents > .feature_area .left_block {
	width: 60%;
}
.sp main .contents > .feature_area .left_block {
	width: 100%;
}
main .contents > .feature_area ol {
	counter-reset: my-counter;
}
main .contents > .feature_area ol li {
	margin-bottom: 10px;
	padding-left: 30px;
	position: relative;
}
main .contents > .feature_area ol li span {
	background-color: #fff;
	color: #000;
	display: block;
	float: left;
	margin-top: -0.1rem;
	line-height: 1.25rem;
	margin-left: -30px;
	text-align: center;
	height: 1.25rem;
	width: 1.25rem;
	border-radius: 50%;
	font-weight: bold;
	font-size: 16px;
	font-size: 1rem;
	line-height: 20.8px;
	line-height: 1.3rem;
}
main .contents > .feature_area .lead {
	font-size: 16px;
	font-size: 1rem;
	line-height: 27.2px;
	line-height: 1.7rem;
}

main .contents h2.half {
	margin-top: 40px;
}
.sp main .contents h2.half {
	margin-top: 20px;
}

.button.wide a {
	width: auto !important;
	padding: 0 1rem;
}

.button a .blank:after {
	content: "";
	position: relative;
	display: inline-block;
	top: -2px;
	width: 29px;
	height: 20px;
	vertical-align: middle;
	background: url(../images/blank.svg) no-repeat center center;
}

.anchor {
	position: relative;
	padding-left: 30px;
}
.anchor:before {
	content: "";
	position: absolute;
	display: block;
	width: 20px;
	height: 20px;
	left: 0;
	top: 50%;
	margin-top: -10px;
	background: url(../images/anchor.svg) no-repeat center center;
}

.member_top li span {
	display: inline-block;
}
.member_top li span:first-child {
	width: 5rem;
}
.member_top li span:last-child {
	width: calc(100% - 5rem);
}

.sp main .contents .table.no_break col {
	width: auto !important;
}
main .contents .table.no_break thead th, main .contents .table.no_break thead .format > table td, main .contents .format > table .table.no_break thead td {
	white-space: nowrap;
}
main .contents .table.no_break tbody th, main .contents .table.no_break tbody .format > table td, main .contents .format > table .table.no_break tbody td {
	display: table-cell !important;
}
main .contents .table.no_break tbody td {
	display: table-cell !important;
}
.sp main .contents .table.no_break tbody td {
	white-space: nowrap;
}

.button_architecture {
	margin-left: 27%;
}
.sp .button_architecture {
	margin-left: auto;
}

.button_civil_engineering {
	margin-left: 20%;
}
.sp .button_civil_engineering {
	margin-left: auto;
}

main .contents .news {
	font-size: 16px;
	font-size: 1rem;
	line-height: 24px;
	line-height: 1.5rem;
}
.sp main .contents .news {
	margin-right: 0px;
	min-height: 0px;
	font-size: 14px;
	font-size: 0.875rem;
	line-height: 21px;
	line-height: 1.3125rem;
}
main .contents .news h2 {
	margin: 0px;
	padding: 0px;
	font-size: 21px;
	font-size: 1.3125rem;
	line-height: 21px;
	line-height: 1.3125rem;
}
.sp main .contents .news h2 {
	font-size: 18px;
	font-size: 1.125rem;
	line-height: 18px;
	line-height: 1.125rem;
}
main .contents .news.member p + p {
	margin-top: 10px;
}
main .contents .news.member a {
	color: #000;
	position: relative;
	display: inline-block;
}
main .contents .news.member a:before {
	content: "";
	display: block;
	position: absolute;
	bottom: calc(0.05em - 5px);
	left: 0px;
	width: 100%;
	height: 1px;
	background: #3166a3;
	-webkit-transition: 0.2s;
	transition: 0.2s;
	-webkit-transform: scale(0);
	transform: scale(0);
}
main .contents .news.member a:hover:before {
	-webkit-transform: scale(1);
	transform: scale(1);
}
main .contents .news dl {
	padding-top: 1px;
}
main .contents .news dt {
	clear: both;
	float: left;
	width: calc(6em);
	margin-top: 15px;
}
.sp main .contents .news dt {
	margin-top: 10px;
}
main .contents .news dd {
	margin-left: calc(7em);
	margin-top: 15px;
}
.sp main .contents .news dd {
	margin-top: 10px;
}
main .contents .news a {
	color: #ffffff;
	position: relative;
	display: inline-block;
}
main .contents .news a:before {
	content: "";
	display: block;
	position: absolute;
	bottom: calc(0.25em - 5px);
	left: 0px;
	width: 100%;
	height: 1px;
	background: #ffffff;
	-webkit-transition: 0.2s;
	transition: 0.2s;
	-webkit-transform: scale(0);
	transform: scale(0);
}
main .contents .news a:hover:before {
	-webkit-transform: scale(1);
	transform: scale(1);
}

.note {
	font-size: 14px;
	font-size: 0.875rem;
	line-height: 21px;
	line-height: 1.3125rem;
}
.sp .note {
	font-size: 12px;
	font-size: 0.75rem;
	line-height: 18px;
	line-height: 1.125rem;
}

main .contents .qr_block > div {
	display: flex;
	flex-direction: column;
}
main .contents .qr_block > div .title {
	flex: 1;
	height: 100%;
	font-weight: bold;
	text-align: center;
}
main .contents .qr_block > div .mv_block {
	flex: 2;
	hright: 100%;
}
main .contents .qr_block > div .qr_block img {
	max-width: 50%;
}
main .contents .qr_block > div .image {
	margin-top: 10px;
}
