@charset "utf-8";
/*----------------------------------------------------
	レスポンシブ
----------------------------------------------------*/
.hide {
	display: none;
}

.pc {
	display: inline;
}

.pc.block {
	display: block;
}

.pc.inline-block {
	display: inline-block;
}

.pc_hide {
	display: none;
}

.pc_hide.block {
	display: none;
}

.pc_hide.inline-block {
	display: none;
}

.sp {
	display: none;
}

.sp.block {
	display: none;
}

.sp.inline-block {
	display: none;
}

@media (max-width: 767px) {
	.sp {
		display: inline;
	}

	.sp.block {
		display: block;
	}

	.sp.inline-block {
		display: inline-block;
	}

	.sp_hide {
		display: none;
	}

	.sp_hide.block {
		display: none;
	}

	.sp_hide.inline-block {
		display: none;
	}

	.pc {
		display: none;
	}

	.pc.block {
		display: none;
	}

	.pc.inline-block {
		display: none;
	}

	.pc_hide {
		display: inline;
	}

	.pc_hide.block {
		display: block;
	}

	.pc_hide.inline-block {
		display: inline-block;
	}
}

.container {
	position: relative;
	margin: 0 auto;
	padding-right: 20px;
	padding-left: 20px;
}

@media (min-width: 768px) {
	.container {
		max-width: 1140px;
	}
}

@media (max-width: 767px) {
	table.sp-col1 {
		display: block;
	}

	table.sp-col1 tbody {
		display: block;
	}

	table.sp-col1 tr {
		display: block;
	}

	table.sp-col1 th {
		display: block;
	}

	table.sp-col1 td {
		display: block;
	}
}

/*----------------------------------------------------
	フォント等
----------------------------------------------------*/
@font-face {
	font-family: "Yu Gothic";
	font-weight: 100;
	src: local("Yu Gothic Medium");
}

@font-face {
	font-family: "Yu Gothic";
	font-weight: 200;
	src: local("Yu Gothic Medium");
}

@font-face {
	font-family: "Yu Gothic";
	font-weight: 300;
	src: local("Yu Gothic Medium");
}

@font-face {
	font-family: "Yu Gothic";
	font-weight: 400;
	src: local("Yu Gothic Medium");
}

@font-face {
	font-family: "Yu Gothic";
	font-weight: bold;
	src: local("Yu Gothic Bold");
}

@font-face {
	font-family: 'Gotham Rounded';
	font-style: normal;
	font-weight: 500;
	src: url("./fonts/GothamRounded-Medium.eot");
	src: url("./fonts/GothamRounded-Medium.eot?#iefix") format("embedded-opentype"), url("./fonts/GothamRounded-Medium.woff") format("woff"), url("./fonts/GothamRounded-Medium.ttf") format("truetype");
}

.gotham {
	font-family: "Gotham Rounded";
	font-style: normal;
	font-weight: 500;
}

.jun501 {
	font-family: "じゅん 501", "Jun 501";
	font-style: normal;
	font-weight: 500;
}

.serif {
	font-family: "游明朝", YuMincho, "Hiragino Mincho ProN", "Hiragino Mincho Pro", "HG明朝E", "ＭＳ 明朝", serif;
}

@media screen and (max-width: 767px), only screen and (max-device-width: 1024px) and (min-device-width: 768px) {
	a,
	button {
		-webkit-touch-callout: none;
		-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
	}
}
/*----------------------------------------------------
	アニメーション
----------------------------------------------------*/
.anime {
	visibility: hidden;
}

.fadeIn.animated {
	-webkit-animation: fadeIn .5s;
	animation: fadeIn .5s;
}

.fadeInUp.animated {
	-webkit-animation: fadeInUp .5s;
	animation: fadeInUp .5s;
}

.fadeInLeft.animated {
	-webkit-animation: fadeInLeft .5s;
	animation: fadeInLeft .5s;
}

.fadeInRight.animated {
	-webkit-animation: fadeInRight .5s;
	animation: fadeInRight .5s;
}

.slideRight.animated {
	-webkit-animation: slideRight .3s;
	animation: slideRight .3s;
}

@-webkit-keyframes fadeIn {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

@keyframes fadeIn {
	from {
		opacity: 0;
	}

	to {
		opacity: 1;
	}
}

@-webkit-keyframes fadeOut {
	from {
		opacity: 1;
	}

	to {
		display: none;
		opacity: 0;
	}
}

@keyframes fadeOut {
	from {
		opacity: 1;
	}

	to {
		display: none;
		opacity: 0;
	}
}

@-webkit-keyframes fadeInUp {
	from {
		-webkit-transform: translate(0px, 20px);
		transform: translate(0px, 20px);
		opacity: 0;
	}

	to {
		-webkit-transform: translate(0px, 0px);
		transform: translate(0px, 0px);
		opacity: 1;
	}
}

@keyframes fadeInUp {
	from {
		-webkit-transform: translate(0px, 20px);
		transform: translate(0px, 20px);
		opacity: 0;
	}

	to {
		-webkit-transform: translate(0px, 0px);
		transform: translate(0px, 0px);
		opacity: 1;
	}
}

@-webkit-keyframes fadeInLeft {
	from {
		-webkit-transform: translate(-20px, 0px);
		transform: translate(-20px, 0px);
		opacity: 0;
	}

	to {
		-webkit-transform: translate(0px, 0px);
		transform: translate(0px, 0px);
		opacity: 1;
	}
}

@keyframes fadeInLeft {
	from {
		-webkit-transform: translate(-20px, 0px);
		transform: translate(-20px, 0px);
		opacity: 0;
	}

	to {
		-webkit-transform: translate(0px, 0px);
		transform: translate(0px, 0px);
		opacity: 1;
	}
}

@-webkit-keyframes fadeInRight {
	from {
		-webkit-transform: translate(20px, 0px);
		transform: translate(20px, 0px);
		opacity: 0;
	}

	to {
		-webkit-transform: translate(0px, 0px);
		transform: translate(0px, 0px);
		opacity: 1;
	}
}

@keyframes fadeInRight {
	from {
		-webkit-transform: translate(20px, 0px);
		transform: translate(20px, 0px);
		opacity: 0;
	}

	to {
		-webkit-transform: translate(0px, 0px);
		transform: translate(0px, 0px);
		opacity: 1;
	}
}

@-webkit-keyframes slideRight {
	from {
		-webkit-transform: translate(100%, 0px);
		transform: translate(100%, 0px);
	}

	to {
		-webkit-transform: translate(0px, 0px);
		transform: translate(0px, 0px);
	}
}

@keyframes slideRight {
	from {
		-webkit-transform: translate(100%, 0px);
		transform: translate(100%, 0px);
	}

	to {
		-webkit-transform: translate(0px, 0px);
		transform: translate(0px, 0px);
	}
}
/*----------------------------------------------------
	見出しなど
----------------------------------------------------*/
.ttl {
	padding: 2em 0 1.5em;
	background: url(../images/ico_circle.png) center 0/1.5em 1.5em no-repeat;
	text-align: center;
}

.ttl .title {
	font-size: 1.75em;
	letter-spacing: 0.07em;
}

/*----------------------------------------------------
	ボタン
----------------------------------------------------*/
.btn {
	display: inline-block;
	min-width: 300px;
	padding: 1em 0.5em;
	transition: all .3s;
	border: 2px solid #000;
	background-color: #000;
	color: #fff;
	font-size: 1.25em;
	letter-spacing: 1em;
	text-align: center;
	text-indent: 1em;
}

.btn:hover {
	background-color: #fff;
	color: #000;
}

@media (max-width: 767px) {
	.btn {
		width: 100%;
		min-width: 0;
	}
}

/*----------------------------------------------------
	メインヴィジュアル
----------------------------------------------------*/
.topMV {
	text-align: center;
}

/*----------------------------------------------------
	CONCEPT
----------------------------------------------------*/
.topConcept .item-title {
	margin-bottom: 0.5em;
	color: #e60012;
	font-size: 1.875em;
}

.topConcept .item-message {
	margin-bottom: 0.5em;
	font-size: 0.875em;
	line-height: 2.286;
}

.topConcept .item-message2 {
	margin-bottom: 0.5em;
	font-size: 1.5em;
	font-weight: bold;
}

.topConcept .item-picture {
	text-align: center;
}

@media (min-width: 768px) {
	.topConcept .item {
		display: -webkit-flex;
		display: -ms-flexbox;
		display: flex;
		-webkit-align-items: center;
		align-items: center;
		-webkit-justify-content: space-between;
		justify-content: space-between;
		width: 100%;
		max-width: 940px;
		margin: 0 auto;
		-ms-flex-pack: justify;
		-ms-flex-align: center;
	}

	.topConcept .item-desc {
		width: 70%;
	}

	.topConcept .item-picture {
		width: 30%;
		padding-left: 1.25em;
	}
}

@media (max-width: 767px) {
	.topConcept .item-picture img {
		width: 120px;
	}
}

/*----------------------------------------------------
	SERVICE
----------------------------------------------------*/
.topService .service-lead {
	font-weight: bold;
	text-align: center;
}

.topService .service-lead h3 {
	color: #e60012;
	font-size: 1.875em;
}

.topService .service-lead p {
	padding: 1.5em 0;
}

.topService .item {
	padding: 1.75em 0;
	text-align: center;
}

.topService .item-title {
	height: 4.5rem;
	color: #e60012;
	font-size: 1.5em;
	font-weight: bold;
}

.topService .item-subtitle {
	margin-bottom: 1em;
	font-size: 0.875em;
	font-weight: bold;
}

.topService .item-desc {
	margin-bottom: 1em;
	font-size: 0.875em;
}

@media (min-width: 768px) {
	.topService .items {
		display: -webkit-flex;
		display: -ms-flexbox;
		display: flex;
		-webkit-flex-wrap: wrap;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
		-webkit-justify-content: space-between;
		justify-content: space-between;
		-ms-flex-pack: justify;
	}

	.topService .item {
		width: 50%;
	}
}

/*----------------------------------------------------
	PARTNER COMPANY
----------------------------------------------------*/
.topPartner .partner-lead {
	margin-bottom: 1.5em;
	color: #e60012;
	text-align: center;
}

.topPartner .partner-end {
	margin-top: 1em;
	font-size: 2em;
	text-align: center;
}

.topPartner .item {
	position: relative;
	margin: 1.5em 0;
	background: url(../images/bg_stripe.png);
}

.topPartner .item p {
	padding: 0.825em 0.5em;
	-webkit-transform: translate(-6px, -10px);
	transform: translate(-6px, -10px);
	border: 4px solid #e60012;
	background-color: #fff;
	font-size: 1.125em;
	font-weight: bold;
	text-align: center;
}

.topPartner .item:after {
	display: inline-block;
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 3.5em;
	height: 1.625em;
	-webkit-transform: translate(-1.75em, 1.625em);
	transform: translate(-1.75em, 1.625em);
	background: url(../images/ico_arrow_r.png) center center/contain no-repeat;
	content: "";
}

.topPartner .item:nth-child(even):after {
	background-image: url(../images/ico_arrow_l.png);
}

@media (min-width: 768px) {
	.topPartner .items {
		display: -webkit-flex;
		display: -ms-flexbox;
		display: flex;
		-webkit-flex-wrap: wrap;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
		-webkit-justify-content: space-between;
		justify-content: space-between;
		-ms-flex-pack: justify;
	}

	.topPartner .item {
		-webkit-align-self: flex-start;
		align-self: flex-start;
		-ms-flex-item-align: start;
	}

	.topPartner .item:nth-child(1) {
		width: 30.9%;
	}

	.topPartner .item:nth-child(2) {
		width: 26.9%;
	}

	.topPartner .item:nth-child(3) {
		width: 32%;
	}

	.topPartner .item:nth-child(4) {
		width: 28.5%;
	}

	.topPartner .item:nth-child(5) {
		width: 36%;
	}

	.topPartner .item:nth-child(6) {
		width: 26.9%;
	}
}

@media (max-width: 767px) {
	.topPartner .item {
		margin-bottom: 3em;
	}
}

/*----------------------------------------------------
	COMPANY OUTLINE
----------------------------------------------------*/
.topCompany table {
	width: 100%;
}

.topCompany th {
	width: 10em;
	padding: 0 0 1.25em;
	vertical-align: top;
}

.topCompany td {
	padding: 0 0 1.25em;
}

@media (min-width: 768px) {
	.topCompany .item {
		display: -webkit-flex;
		display: -ms-flexbox;
		display: flex;
		-webkit-justify-content: space-between;
		justify-content: space-between;
		-ms-flex-pack: justify;
	}

	.topCompany .item-outline {
		-webkit-flex: 1;
		-ms-flex: 1;
		flex: 1;
		padding-right: 1em;
	}

	.topCompany .item-picture {
		width: 406px;
	}
}

@media (max-width: 767px) {
	.topCompany th {
		width: 6em;
	}
}

/*----------------------------------------------------
	ACCESS
----------------------------------------------------*/
.topAccess .items {
	margin-bottom: 1.5em;
}

.topAccess .item-title {
	font-size: 1.125em;
	font-weight: bold;
}

.topAccess li {
	margin: 0.25em 0;
}

@media (min-width: 768px) {
	.topAccess .items {
		display: -webkit-flex;
		display: -ms-flexbox;
		display: flex;
	}

	.topAccess .item {
		width: 50%;
	}
}

@media (max-width: 767px) {
	.topAccess .item:not(:last-child) {
		margin-bottom: 1em;
	}
}

/*----------------------------------------------------
	CONTACT US
----------------------------------------------------*/
.topContact table {
	width: 100%;
}

.topContact .submit {
	padding: 1em 0;
	text-align: center;
}

@media (min-width: 768px) {
	.topContact th {
		width: 10em;
		padding: 2em 0 1em;
		vertical-align: top;
	}

	.topContact td {
		padding: 1em 0;
	}
}

@media (max-width: 767px) {
	.topContact table,
	.topContact tbody,
	.topContact tr,
	.topContact th,
	.topContact td {
		display: block;
	}

	.topContact td {
		padding-bottom: 1em;
	}
}

/*----------------------------------------------------
	FORMS
----------------------------------------------------*/
input[type="text"],
input[type="email"] {
	height: 3em;
	padding: 0 0.5em;
	border: 3px solid #d2d2d2;
	border-radius: 8px;
}

textarea {
	height: 13em;
	padding: 0 0.5em;
	border: 3px solid #d2d2d2;
	border-radius: 8px;
}

.help-block {
	color: #e60012;
}

@media (max-width: 767px) {
	input {
		min-width: 0;
		max-width: 100%;
	}
}
/*----------------------------------------------------
	汎用クラス
----------------------------------------------------*/
.fadeIn {
	display: none;
}

.fadeIn.show {
	-webkit-animation: fadeIn 0.6s linear;
	animation: fadeIn 0.6s linear;
}

.crop {
	display: block;
	position: relative;
	padding: 100% 0 0;
	overflow: hidden;
}

.crop img {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
}

.flex {
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
}

.flex--justify {
	-webkit-justify-content: space-between;
	justify-content: space-between;
	-ms-flex-pack: justify;
}

.flex--wrap {
	-webkit-flex-wrap: wrap;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}

.flex--center {
	-webkit-justify-content: center;
	justify-content: center;
	-ms-flex-pack: center;
}

.flex--middle {
	-webkit-align-items: center;
	align-items: center;
	-ms-flex-align: center;
}

.row-middle {
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-align-items: center;
	align-items: center;
	-webkit-justify-content: center;
	justify-content: center;
	-ms-flex-pack: center;
	-ms-flex-align: center;
}

.bold,
.strong {
	font-weight: bold;
}

.center {
	text-align: center;
}

.mt-1 {
	margin-top: 1rem;
}

.mt-2 {
	margin-top: 2rem;
}

.mb-1 {
	margin-bottom: 1rem;
}

.mb-2 {
	margin-bottom: 2rem;
}

.ml-1 {
	margin-left: 1rem;
}

.ml-2 {
	margin-left: 2rem;
}

.mr-1 {
	margin-right: 1rem;
}

.mr-2 {
	margin-right: 2rem;
}

.mx-1 {
	margin-right: 1rem;
	margin-left: 1rem;
}

.mx-2 {
	margin-right: 2rem;
	margin-left: 2rem;
}

.pt-1 {
	padding-top: 1rem;
}

.pt-2 {
	padding-top: 2rem;
}

.pb-1 {
	padding-bottom: 1rem;
}

.pb-2 {
	padding-bottom: 2rem;
}

.pl-1 {
	padding-left: 1rem;
}

.pl-2 {
	padding-left: 2rem;
}

.pr-1 {
	padding-right: 1rem;
}

.pr-2 {
	padding-right: 2rem;
}

.px-1 {
	padding-right: 1rem;
	padding-left: 1rem;
}

.px-2 {
	padding-right: 2rem;
	padding-left: 2rem;
}

.fz-12 {
	font-size: 0.75em;
}

.fz-14 {
	font-size: 0.875em;
}

.fz-16 {
	font-size: 1em;
}

.fz-18 {
	font-size: 1.125em;
}

.fz-20 {
	font-size: 1.25em;
}

.fz-22 {
	font-size: 1.375em;
}

.fz-24 {
	font-size: 1.5em;
}

.w524 {
	width: 524px;
}

.w764 {
	width: 764px;
}

@media (max-width: 767px) {
	.sp-100p {
		width: 100%;
	}
}

.indent {
	padding-left: 1em;
	text-indent: -1em;
}
