body {
	font-family: sans-serif;
	margin: 0;
	padding: 0;
	background-color: #fff;
}

.is-pc {
	display: block;
}
.is-sp {
	display: none;
}

.container {
	padding: 0;
	width: 100%;
}

header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	padding: 0;
	background-color: #5271ff;
}

.header_wrap {
	width: 100%;
	max-width: 1140px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
}

.logo {
	display: flex;
	align-items: center;
}

.head_txt {
	color: #fff;
	font-size: 16px;
	margin: 4px 0 0;
}

.logo img {
	width: 200px;
	height: auto;
}

header .header_wrap .contact {
	display: flex;
	align-items: center;
}
header .header_wrap .contact a{
	text-decoration: none;
	color: #000000;
	padding: 10px 30px;
	border-radius: 30px;
	background-color: #fddb01;
	border: 1px solid #fddb01;
}

header .header_wrap .contact a:hover {
	background-color: #ffffff;
	border: 1px solid #fddb01;
}

.content {
	width: 90%;
	margin: 0 auto;
	max-width: 1140px;
	padding: 20px;
}

.content .fv_contents {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 30px;
}

.vision {
	text-align: left;
	margin: 60px 0 30px;
}

.vision p {
	margin: 0;
}

.vision .sub {
	font-size: 16px;
	margin-bottom: 10px;
}

.vision .message {
	font-size: 32px;
	line-height: 1.5;
}

.awards {
	display: flex;
	justify-content: center;
	margin-bottom: 30px;
}

.awards img {
	width: 500px;
	margin: 0 10px;
}

.services {
	margin-bottom: 30px;
}

.services h3 {
	font-size: 24px;
	margin-bottom: 10px;
}

.services ul {
	list-style: none;
	padding: 0;
}

.services li {
	margin-bottom: 5px;
}

.image {
	display: flex;
	justify-content: center;
	margin-bottom: 30px;
}

.image img {
	width: 100%;
	max-width: 600px;
}

.to_form {
	text-align: center;
}

.cta {
	display: flex;
	justify-content: center;
}

.cta a {
	text-decoration: none;
	color: #fff;
	padding: 15px 30px;
	border-radius: 5px;
	background-color: #4285f4;
	border: 2px solid #4285f4;
}

.cta a:hover {
	background-color: #ffffff;
	color: #4285f4;
}

.access {
	margin-bottom: 30px;
}

.access h2 {
	font-size: 24px;
	margin-bottom: 10px;
}

.access .office {
	margin-bottom: 20px;
}

.access .office h3 {
	font-size: 20px;
	margin-bottom: 5px;
}

.access .office p {
	margin-bottom: 5px;
}

.access iframe {
	width: 100%;
	height: 400px;
	border: 0;
}

.google-maps {
	display: inline-block;
	padding: 10px 20px;
	border-radius: 5px;
	background-color: #e9ecef;
	color: #007bff;
	text-decoration: none;
}

.footer {
	background-color: #3d3d3d;
	color: #fff;
	padding: 20px;
	text-align: center;
	margin-top: 30px;
	width: calc(100% - 40px);
}

.footer .footer_contents {
	width: 100%;
	max-width: 1140px;
	margin: 0 auto;
}

.footer .footer_contents .logo {
	display: flex;
	justify-content: center;
	margin-bottom: 10px;
	width: 200px;
	margin: 0 auto;
}

.footer a {
	color: #fff;
	text-decoration: none;
}

.footer a:hover {
	text-decoration: underline;
}

.copyright {
	margin: 5px 0;
	font-size: 14px;
}

/* .content は 1024 以下の時は 90% の幅を持つ */
@media screen and (max-width:1024px) {
	.is-pc {
		display: none;
	}
	.is-sp {
		display: block;
	}
	.header_wrap,
	.content,
	.footer .footer_contents {
		width: calc(100% - 40px);
		max-width: 100%;
	}
	.footer {
		width: calc(100% - 40px);
	}
	.content .fv_contents {
		width: 100%;
	}
}
/* 768 以下の時は .content の幅を 100% にする */
@media screen and (max-width:768px) {
	.header_wrap {
		display: flex;
		flex-direction: column;
	}
	header .header_wrap .contact {
		width: 80%;
		margin:  20px auto;
	}
	header .header_wrap .contact a{
		width: 100%;
		text-align: center;
		margin: 0 auto;

	}
	.logo {
		flex-direction: column;
	}
	.head_txt {
		font-size: 14px;
	}
	.content .fv_contents {
		width: 100%;
		display: block;
	}
	.awards img {
		width: 100%;
		margin: 0 10px;
	}
	.vision {
		margin: 30px 0;
	}
	.vision .message {
		font-size: 26px;
		line-height: 1.5;
	}
}