@charset "utf-8";
/*=============================================
base
=============================================*/
a {
	color: #2d3230;
}
time {
	letter-spacing: 0.1em;
	font-family: "Montserrat";
	font-weight: 700;
}
.gf {
	font-family: "Montserrat", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', 'メイリオ', Meiryo, 'ＭＳ ゴシック', sans-serif;
	font-weight: 700;
	letter-spacing: 0.15em;
}
.btn {
	margin: 40px auto 0;
}
.btn a {
	position: relative;
	display: block;
	width: 80%;
	margin: 0 auto;
	padding: 15px;
	box-sizing: border-box;
	line-height: 1;
	text-align: center;
	background: #2d3230;
	color: #fff;
	border-radius: 3px;
}
.btn-link a {
	border: solid 1px #2d3230;
}
.btn-link a:hover {
	background: none;
	color: #2d3230;
}
.material-icons.wi {
	vertical-align: middle;
	line-height: inherit;
	font-size: inherit;
}
a:hover h3, a:hover h4, a:hover p, p a:hover {
	text-decoration: underline dotted;
}
section {
	padding: 50px 0;
	z-index: 0;
}
.wfull {
	width: 100%;
	padding: 50px 6%;
	box-sizing: border-box;
}
.wmin {
	width: 88%;
	margin: 0 auto;
}
.bg-p {
	position: relative;
}
.bg-p:before, .bg-p:after {
	content: "";
	position: absolute;
	z-index: -1;
	background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAAHUlEQVQYV2NkwAMYqSP5Nrrgv/DSCXDTqGQsuuMAlOIECCvWEo4AAAAASUVORK5CYII=) repeat;
}
.bg-p:before {
	top: 3vh;
	left: 0;
	width: 30%;
	height: 30%;
}
.bg-p:after {
	bottom: 15vh;
	right: 0;
	width: 20%;
	height: 40%;
}
.bg-g {
	background-color: #f0f1f0;
}
.float .txt {
	margin-top: 30px;
}
.float .ttl {
	margin-bottom: 20px;
	font-size: 2rem;
	font-weight: bold;
	line-height: 1.5;
}
.main {
	padding-top: 54px;
}
.home .main {
	padding-top: 0;
}
h2 {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: 0 auto 40px;
	text-align: center;
	font-size: 2.8rem;
}
h2 em {
	margin-top: 1em;
	line-height: 1.5;
	font-size: 1.1rem;
	letter-spacing: 0.4em;
}
.page-ttl {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 120px;
	background-color: #555;
	background-position: 50% 50%;
	background-size: 200%;
	background-repeat: no-repeat;
}
.page-ttl h1 {
	color: #fff;
	line-height: 1.5;
	font-size: 1rem;
	font-weight: 500;
}
.page-ttl h1 span {
	margin-right: 10px;
	font-size: 1.5rem;
}
.col li {
	margin-top: 20px;
	background: #fff;
}
.col2 li {
	margin-top: 30px;
}
.col li:first-child {
	margin-top: 0 !important;
}
.col li article {
	border: solid 10px #fff;
	box-sizing: border-box;
}
@media screen and (max-width: 480px) {
	.sp-col2 {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	.sp-col2 li {
		width: 48%;
		margin-top: 15px;
	}
	.sp-col2 li:nth-of-type(-n+2) {
		margin-top: 0 !important;
	}
	.sp-col2 li article {
		border: solid 4px #fff;
	}
}
@media screen and (min-width:768px) {
	.btn {
		margin: 80px auto 0;
	}
	.btn a {
		width: 360px;
		padding: 20px;
	}
	section {
		padding: 80px 0;
	}
	.wfull {
		width: 100%;
		padding: 80px 0;
		box-sizing: content-box;
	}
	.wfull .inner {
		width: 1200px;
		margin: 0 auto;
	}
	.wmin {
		width: 1200px;
		margin: 0 auto;
	}
	.bg-p:before {
		top: 4vh;
		left: 0;
		width: 30%;
		height: 40%;
	}
	.bg-p:after {
		bottom: 10vh;
		right: 0;
		width: 10%;
		height: 50%;
	}
	.float {
		display: flex;
		justify-content: space-between;
		align-items: center;
	}
	.float-re {
		flex-direction: row-reverse;
	}
	.float .img {
		width: 36%;
		height: auto;
		margin: 0;
	}
	.float .txt {
		width: 57%;
		margin-top: 0;
	}
	.float .ttl {
		margin: 0 0 40px;
		font-size: 3rem;
		line-height: 1.5;
	}
	.float .btn a {
		margin: 0 0 0 auto;
	}
	.main {
		padding-top: 74px;
	}
	h2 {
		width: 100%;
		margin: 0 auto 80px;
		font-size: 4rem;
	}
	h2 em {
		margin-top: 0.5em;
		font-size: 1.7rem;
	}
	.page-ttl {
		height: 240px;
		background-size: cover;
	}
	.page-ttl h1 {
		font-size: 1.7rem;
	}
	.page-ttl h1 span {
		display: inline-block;
		margin-right: 20px;
		font-size: 2.5rem;
	}
	.col {
		display: flex;
		flex-wrap: wrap;
	}
	.col2 {
		justify-content: space-between;
	}
	.col2 li {
		width: 47%;
		margin-top: 70px;
	}
	.col3 li {
		width: 32%;
		margin-left: 2%;
		margin-top: 24px;
	}
	.col4 li {
		width: 23.5%;
		margin-left: 2%;
		margin-top: 24px;
	}
	.col5 li {
		width: 18.5%;
		margin-left: 1.8%;
		margin-top: 22px;
	}
	.col2 li:nth-child(-n+2),
	.col3 li:nth-child(-n+3),
	.col4 li:nth-child(-n+4),
	.col5 li:nth-child(-n+5) {
		margin-top: 0 !important;
	}
	.col3 li:nth-of-type(3n+1),
	.col4 li:nth-of-type(4n+1),
	.col5 li:nth-of-type(5n+1) {
		margin-left: 0 !important;
	}
}
/*=============================================
slider
=============================================*/
.sl-cnt .slick-dots {
	display: none !important;
}
.slick-dots li button {
	color: #999 !important;
}
.slick-dots li button::before {
	color: #555 !important;
}
.slick-dotted.slick-slider {
	margin: 0 !important;
	padding: 0 !important;
}
.sl-cnt {
	background-color: #fff;
}
.sl-cnt .slick-list li {
	position: relative;
	min-height: 100vh;
	background-position: right 50% top 250px !important;
	background-size: 300px auto;
	background-repeat: no-repeat;
	overflow: hidden;
}
@media screen and (min-width:570px) and (max-width:736px) {
	.sl-cnt .slick-list li {
		background-size: 65% auto;
	}
}
.sl-cnt .slick-list li a {
	display: block;
	width: 70%;
	height: auto;
	position: absolute;
	right: 50%;
	bottom: 15%;
	margin-right: -35%;
}
.sl-cnt .slick-list li a:hover p {
	text-decoration: none;
}
.sl-txt {
	position: absolute;
	top: 80px;
	width: 100%;
	color: #2d3230;
	text-align: center;
}
.sl-txt em {
	color: #eb4c63;
}
.sl-txt .sl-txt-t1 {
	font-size: 3rem;
	line-height: 1;
}
.sl-txt .sl-txt-t2 {
	display: inline-block;
	position: relative;
	color: #eb4c63;
	margin-top: 20px;
	font-size: 1.6rem;
	font-weight: bold;
	line-height: 1;
}
.sl-txt .sl-txt-t2 span {
	position: absolute;
	left: 0.5em;
	top: -60%;
	font-size: 45%;
	letter-spacing: 0.3em;
}
.sl-txt .sl-txt-sub {
	margin-top: 10px;
	font-size: 1.2rem;
	line-height: 1.4;
	font-weight: bold;
}
.slick-active .sl-txt .sl-txt-t2 {
	animation: fi-t 1s ease 0s;
}
.slick-active .sl-txt .sl-txt-sub {
	animation: fi-b 1.5s ease 0s;
}
@keyframes fi-t {
	0%,
	50% {
		transform: translateY(-20px);
		opacity: 0;
	}
	100% {
		transform: translateY(0px);
		opacity: 1;
	}
}
@keyframes fi-b {
	0%,
	70% {
		transform: translateY(30px);
		opacity: 0;
	}
	100% {
		transform: translateY(0px);
		opacity: 1;
	}
}
@media screen and (min-width:768px) {
	.sl-cnt .slick-dots {
		display: inline-flex !important;
	}
	.sl-cnt .slick-list li {
		min-height: 100vh;
		background-position: right 10% top 55% !important;
		background-size: 42% auto !important;
	}
	.sl-cnt .slick-list li a {
		display: block;
		width: 20%;
		padding-bottom: 0;
		right: 17%;
		bottom: 10%;
		margin-right: 0;
	}
	.sl-txt {
		width: auto;
		top: 55%;
		left: 5%;
		transform: translate(0, -50%);
		text-align: left;
	}
	.sl-txt .sl-txt-t1 {
		font-size: 4.5vw;
		line-height: 1.1;
	}
	.sl-txt .sl-txt-t2 {
		margin-top: 7vh;
		font-size: 3vw;
	}
	.sl-txt .sl-txt-t2 span {
		left: 0.8em;
		top: -60%;
		font-size: 40%;
		letter-spacing: 0.4em;
	}
	.sl-txt .sl-txt-sub {
		margin-top: 4vh;
		font-size: 2rem;
		line-height: 1.8;
	}
}
/*=============================================
article
=============================================*/
article a {
	display: block;
}
article .txt a, article p a {
	display: inline;
	text-decoration: underline;
	color: #0f4e72;
}
.article-ttl {
	line-height: 1.5;
	word-break: break-all;
}
.article-img {
	position: relative;
	overflow: hidden;
	padding-top: 56.25%;
}
.article-img img {
	position: absolute;
	width: 100%;
	height: auto;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
time.article-date {
	display: block;
	margin-bottom: 0.5em;
	color: #999;
}
/*=============================================
footer
=============================================*/
footer {
	position: relative;
}
footer .inner {
	padding: 0 5% 20px;
	background: #3d4441;
	color: #fff;
}
footer .inner a {
	color: #fff;
}
footer .inner a:hover {
	color: #ef9137;
}
.breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	padding: 15px 0;
	border-bottom: solid 1px #555;
	line-height: 1.5;
	font-size: 1rem;
}
.breadcrumb .wi-home {
	font-size: 1.3rem;
}
.breadcrumb .wi-arrow {
	margin: 0 5px;
}
.breadcrumb .bcpage, .breadcrumb li:nth-of-type(2) {
	font-family: "Montserrat", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', 'メイリオ', Meiryo, 'ＭＳ ゴシック', sans-serif;
}
.fnav {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	padding: 25px 0;
	font-size: 1.2rem;
}
.fnav li {
	margin-right: 20px;
	line-height: 2.4;
}
.footer-under {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
}
.footer-under p {
	margin-top: 5px;
	line-height: 1.2;
	font-size: 1rem;
}
.footer-logo {
	text-align: right;
}
.footer-logo img {
	height: 34px;
	width: auto;
}
#pagetop {
	display: none;
	font-size: 0;
	right: 0;
}
#pagetop a {
	display: inline-block;
	width: 40px;
	height: 40px;
	background: #333;
	line-height: 1;
	text-align: center;
	opacity: 0.7;
}
#pagetop a .wi-pagetop {
	color: #fff;
	line-height: 40px;
	font-size: 3rem;
}
@media screen and (min-width:768px) {
	footer .inner {
		padding: 0 50px 30px;
	}
	.breadcrumb {
		padding: 20px 0;
		font-size: 1.3rem;
	}
	.breadcrumb .wi-home {
		font-size: 1.7rem;
	}
	.breadcrumb .wi-arrow {
		margin: 0 12px;
	}
	.fnav {
		padding: 40px 0;
		font-size: 1.5rem;
	}
	.fnav li {
		margin-right: 30px;
	}
	.footer-under {
		display: flex;
		justify-content: space-between;
		align-items: flex-end;
		margin-top: 20px;
	}
	.footer-under p {
		margin-top: 15px;
		line-height: 1.2;
		font-size: 1.2rem;
	}
	.footer-logo img {
		height: 50px;
		width: auto;
	}
	#pagetop {
		display: none;
		font-size: 0;
		right: 20px;
	}
	#pagetop a {
		width: 50px;
		height: 50px;
	}
	#pagetop a .wi-pagetop {
		line-height: 50px;
		font-size: 3rem;
	}
}
/*=============================================
home
=============================================*/
.home .box1 h2 {
	margin-bottom: 35px;
}
.home .box1 .article-ttl {
	line-height: 1.8;
}
.home .box1 .article-txt {
	padding: 15px 10px 10px;
}
.home .float .img {
	text-align: center;
}
.home .float img {
	width: 80%;
	height: auto;
	margin: 0 auto;
}
.home .float .ttl {
	text-align: center;
}
.home .box4 .col li {
	background: none;
}
.home .box4 .img {
	position: relative;
}
.home .box4 div.cname {
	position: absolute;
	top: 0;
	left: 170px;
}
.home .box4 div.cname dt,.home .box4 div.cname dd {
	line-height: 2em;
}
.home .box4 .img .cat {
	position: absolute;
	top: 18px;
	left: 0;
	padding: 7px 12px;
	line-height: 1;
	color: #fff;
	background: #555;
	box-shadow: 2px 2px 3px rgba(0, 0, 0, 0.2);
	font-size: 1.3rem;
	font-weight: bold;
}
.home .box4 .ttl {
	margin: 1em 0 0.5em;
	font-size: 1.7rem;
	font-weight: bold;
	line-height: 1.5;
}
.home .news {
	background: linear-gradient(135deg, #ED5C6E, #F09B46);
	background-clip: padding-box;
}
.home .news li a {
	display: block;
	padding: 1em 0;
	border-bottom: solid 1px #2d3230;
}
.home .news li:first-child a {
	border-top: solid 1px #2d3230;
}
.home .news li time {
	display: block;
	margin-bottom: 0.5em;
}
.home .news li p {
	line-height: 1.5;
}
@media screen and (min-width:768px) {
	.home .box1 h2 {
		margin-bottom: 60px;
	}
	.home .box1 .article-txt {
		padding: 20px 15px 15px;
	}
	.home .float img {
		width: auto;
		margin: 0;
	}
	.home .float .ttl {
		text-align: left;
	}
	.home .box4 .ttl {
		margin: 1.5em 0 1em;
		font-size: 2rem;
	}
	.home .news ul {
		/*width: 80%;*/
		margin: 0 auto;
	}
	.home .news li a {
		display: flex;
		align-items: center;
		padding: 1.5em 0;
	}
	.home .news li time {
		width: 20%;
		margin-bottom: 0;
	}
	.home .news li p {
		width: 80%;
	}
}
/*=============================================
about
=============================================*/
.about section .inner .img {
	margin-top: 40px;
	text-align: center;
}
.about .box1 .catch {
	width: 96%;
	margin: 0 auto;
	text-align: center;
}
.about .box1 ul {
	margin-top: 40px;
	padding: 25px 20px;
	border: solid 1px #eb4c63;
}
.about .box1 li {
	margin-top: 1.5em;
	line-height: 1.5;
	font-weight: bold;
	color: #eb4c63;
}
.about .box1 li:first-child {
	margin-top: 0;
}
.about .box1 .problems {
	margin: 40px auto 0;
}
.about .box1 .problems h3 {
	margin-bottom: 1em;
	font-size: 1.5rem;
}
.timeline {
	display: flex;
	justify-content: center;
	margin-top: 40px;
	margin-bottom: 20px;
}
.timeline ul {
	position: relative;
}
.timeline ul:before {
	content: "";
	position: absolute;
	top: -10px;
	bottom: -10px;
	left: 70px;
	background: #d7dbd9;
	width: 4px;
	z-index: -1;
}
.timeline li {
	display: flex;
	flex-wrap: wrap;
	position: relative;
	margin-top: 30px;
	text-align: left;
}
.timeline li:first-child {
	margin-top: 0;
}
.timeline li time {
	width: 66px;
	color: #eb4c63;
	line-height: 1;
	font-size: 1.7rem;
}
.timeline li .txt {
	flex: 1;
	position: relative;
	padding-left: 30px;
	line-height: 1.5;
	font-weight: bold;
}
.timeline li .txt:before {
	position: absolute;
	content: "";
	top: 4px;
	left: 0;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: #d7dbd9;
}
.timeline li .txt em {
	display: block;
	margin-top: 0.5em;
	font-weight: normal;
	font-size: 1.2rem;
}
.company .list dl {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	margin: 0 -2% 40px;
	;
	padding: 10px;
	line-height: 1.5;
	background: #fff;
}
.company .list dt, .company .list dd {
	position: relative;
	padding-bottom: 1em;
	padding-top: 1em;
}
.company .list dt {
	width: 28%;
}
.company .list dd {
	width: 72%;
}
.company .list dt:before, .company .list dd:before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 1px;
}
.company .list dt:before {
	background: linear-gradient(to right, #eb4c63, #ef9137);
}
.company .list dd:before {
	background: #ccc;
}
.company .map iframe {
	width: 100% !important;
	height: 400px;
	-webkit-filter: hue-rotate(340deg) grayscale(15%);
	filter: hue-rotate(340deg) grayscale(15%);
}
@media screen and (min-width:768px) {
	.about section .inner .img {
		margin-top: 80px;
		text-align: center;
	}
	.about .box1 .catch {
		width: auto;
	}
	.about .box1 .frame {
		display: flex;
		justify-content: center;
	}
	.about .box1 ul {
		width: 720px;
		margin-top: 60px;
		padding: 40px 0;
		text-align: center;
	}
	.about .box1 li {
		margin-top: 1em;
		font-size: 1.7rem;
	}
	.about .box1 .problems {
		width: 80%;
		margin: 80px auto 0;
	}
	.about .box1 .problems h3 {
		font-size: 1.7rem;
	}
	.about .box2 p {
		margin-bottom: 60px;
		text-align: center;
	}
	.timeline {
		display: block;
		width: 100%;
		margin-top: 80px;
		margin-bottom: 60px;
	}
	.timeline ul {
		width: 740px;
		margin: 0 auto;
	}
	.timeline ul:before {
		top: -40px;
		bottom: -40px;
		left: 120px;
		width: 4px;
	}
	.timeline li {
		margin-top: 40px;
	}
	.timeline li time {
		width: 116px;
		font-size: 2.5rem;
	}
	.timeline li .txt {
		padding-left: 60px;
		font-size: 2rem;
	}
	.timeline li .txt:before {
		top: 4px;
		left: 0;
		width: 12px;
		height: 12px;
	}
	.timeline li .txt em {
		display: inline-block;
		margin-top: 0;
		font-weight: 500;
		font-size: 1.5rem;
	}
	.company .list dl {
		display: flex;
		flex-wrap: wrap;
		align-items: flex-start;
		width: 90%;
		margin: 0 auto 80px;
		padding: 20px 40px;
	}
	.company .list dt, .company .list dd {
		padding-bottom: 1.5em;
		padding-top: 1.5em;
		padding-left: 1em;
	}
	.company .list dt {
		width: 25%;
	}
	.company .list dd {
		width: 75%;
	}
	.company .map {
		overflow: hidden;
		width: 100%;
		margin: 0;
	}
	.company .map iframe {
		height: 500px;
	}
}
/*=============================================
service
=============================================*/
.service .box1 .txt p {
	margin-bottom: 30px;
}
.service .box1 ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.service .box1 li {
	width: 48%;
	margin-bottom: 20px;
	text-align: center;
}
.service .box1 li img {
	padding: 20px;
}
.service .box1 li p {
	font-size: 1.5rem;
	font-weight: bold;
	line-height: 1.5;
}
.service .solution-list {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.service .solution-list dl {
	width: 49%;
	margin-bottom: 8px;
	padding: 10px;
	padding-bottom: 50px;
	box-sizing: border-box;
	background: #fff;
	line-height: 1.4;
}
.service .solution-list .cat {
	background-position: right 10px bottom 10px;
	background-repeat: no-repeat;
}
.service .solution-list .cat1 {
	background-image: url(../img/service_cat1.png);
}
.service .solution-list .cat2 {
	background-image: url(../img/service_cat2.png);
}
.service .solution-list .cat3 {
	background-image: url(../img/service_cat3.png);
}
.service .solution-list .cat4 {
	background-image: url(../img/service_cat4.png);
}
.service .solution-list .cat5 {
	background-image: url(../img/service_cat5.png);
}
.service .solution-list .cat6 {
	background-image: url(../img/service_cat6.png);
}
.service .solution-list .cat7 {
	background-image: url(../img/service_cat7.png);
}
.service .solution-list dt {
	margin-bottom: 0.5em;
	font-weight: bold;
}
.service .solution-list dd {
	/*width: 74%;*/
	margin-bottom: 0.2em;
	font-size: 1.1rem;
}
@media screen and (min-width:768px) {
	.service .box1 .txt p {
		width: 65%;
		margin: 0 auto 40px;
		text-align: center;
	}
	.service .box1 ul {
		width: 90%;
		margin: 0 auto;
	}
	.service .box1 li {
		width: 25%;
		margin-bottom: 0;
	}
	.service .box1 li img {
		padding: 45px 45px 30px;
	}
	.service .box1 li p {
		font-size: 1.7rem;
	}
	.service .solution-list dl {
		width: 23.8%;
		margin-bottom: 15px;
		margin-left: 1.5%;
		padding: 15px 20px;
		padding-bottom: 40px;
		background: #fff;
		line-height: 1.5;
	}
	.service .solution-list dl:nth-of-type(4n+1) {
		margin-left: 0;
	}
	.service .solution-list .cat {
		background-position: right 20px bottom 15px;
	}
	.service .solution-list dt {
		font-size: 1.5rem;
		font-weight: bold;
	}
	.service .solution-list dd {
		font-size: 1.3rem;
	}
}
/*=============================================
technology
=============================================*/
.technology section .inner .img {
	margin-top: 40px;
	text-align: center;
}
.technology section .inner .txt {
	margin-top: 40px;
}
.technology section .inner h3 {
	margin-bottom: 20px;
	line-height: 1.5;
	font-size: 2rem;
	word-break: break-all;
	text-align: center;
}
.technology section .inner em {
	font-weight: bold;
}
.technology .box2 .inner em {
	display: block;
	margin-bottom: 1em;
	line-height: 1.5;
}
.technology .rec-list {
	margin-top: 40px;
}
.technology .rec-list li {
	margin-top: 20px;
	padding: 25px 10px 20px;
	text-align: center;
	background: #fff;
}
.technology .rec-list li:first-of-type {
	margin-top: 0;
}
.technology .rec-list li p {
	line-height: 1.5;
}
.technology .rec-list li .ttl {
	position: relative;
	padding-bottom: 1em;
	margin-bottom: 1em;
	font-size: 1.7rem;
	font-weight: bold;
}
.technology .rec-list li .ttl:after {
	position: absolute;
	content: "";
	left: 50%;
	bottom: 0;
	transform: translate(-50%, 0);
	width: 2em;
	height: 2px;
	background: linear-gradient(to right, #ed5b70, #f09a47);
}
.technology .rec-list li img {
	margin-top: 15px;
}
@media screen and (min-width:768px) {
	.technology section .inner .img {
		margin-top: 60px;
	}
	.technology section .inner .txt {
		margin-top: 60px;
	}
	.technology section .inner em {
		font-size: 1.7rem;
	}
	.technology section .inner .txt {
		display: flex;
		justify-content: space-between;
	}
	.technology section .inner .txt h3 {
		width: 37%;
		margin-bottom: 40px;
		font-size: 3.2rem;
		text-align: left;
	}
	.technology section .inner .txt p {
		width: 62%;
	}
	.technology .box1 .inner .txt {
		justify-content: center;
	}
	.technology .box1 .inner .txt p {
		width: auto;
	}
	.technology .rec-list {
		width: 90%;
		margin: 0 auto;
	}
	.technology .rec-list ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}
	.technology .rec-list li {
		width: 49%;
		margin-top: 22px;
		padding: 35px 20px 30px;
		text-align: center;
		background: #fff;
	}
	.technology .rec-list li:nth-of-type(-n+2) {
		margin-top: 0;
	}
	.technology .rec-list li .ttl {
		font-size: 2rem;
	}
	.technology .rec-list li .ttl:after {
		position: absolute;
		content: "";
		left: 50%;
		bottom: 0;
		transform: translate(-50%, 0);
		width: 2em;
		height: 2px;
		background: linear-gradient(to right, #ed5b70, #f09a47);
	}
	.technology .rec-list li img {
		margin-top: 20px;
	}
}
/*=============================================
news
=============================================*/
section.news-list {
	padding: 35px 0 60px;
}
section.news-list .wmin {
	width: 93%;
}
.news-list .inner .article-ttl {
	line-height: 1.5;
}
.news-list .inner .article-txt {
	padding: 10px 5px;
}
.pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 40px 0 0;
	font-size: 1.3rem;
}
.pagination li {
	margin: 0 2px;
}
.pagination li a {
	display: block;
	width: 30px;
	height: 30px;
	line-height: 30px;
	text-align: center;
	color: #555;
}
.pagination li a:hover, .pagination li a.active {
	color: #fff;
	background: #0f4e72;
}
.single section {
	padding: 35px 0 60px;
}
.single article {
	padding-bottom: 30px;
	border-bottom: solid 1px #d7dbd9;
}
.single .article-ttl {
	margin: 0.5em 0 1em;
	font-size: 1.7rem;
}
.single .article-date {
	text-align: right;
	font-size: 1.3rem;
}
.single article p {
	margin-top: 1.5em;
	font-size: 1.5rem;
}
.single .ssba div {
	display: flex;
	justify-content: center;
	align-items: center;
	margin-top: 40px;
}
.single .wp-block-image .aligncenter {
	width: 100%;
}
.single .wp-block-image img {
	width: 100%;
}
.pagenavigation {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 40px 0 0;
	font-size: 1.3rem;
}
.pagenavigation a {
	margin: 0 10px;
	padding: 0 5px;
	text-align: center;
	color: #0f4e72;
	font-weight: bold;
}
.pagenavigation a:hover {
	text-decoration: underline;
}
@media screen and (min-width:768px) {
	section.news-list {
		padding: 80px 0 120px;
	}
	section.news-list .wmin {
		width: 1200px;
	}
	.news-list .inner .article-ttl {
		line-height: 1.8;
	}
	.news-list .inner .article-txt {
		padding: 20px 15px 15px;
	}
	.pagination {
		margin: 70px 0 0;
		font-size: 1.5rem;
	}
	.pagination li {
		margin: 0 5px;
	}
	.pagination li a {
		width: 40px;
		height: 40px;
		line-height: 40px;
	}
	.single section {
		padding: 80px 0 120px;
	}
	.single article {
		width: 70%;
		margin: 0 auto;
		padding-bottom: 60px;
	}
	.single .article-ttl {
		margin: 0.5em 0 1em;
		font-size: 2.8rem;
	}
	.single .article-date {
		font-size: 1.7rem;
	}
	.single article p {
		margin-top: 3em;
		font-size: 1.7rem;
	}
	.single .ssba div {
		margin-top: 80px;
	}
	.pagenavigation {
		margin: 60px 0 0;
		font-size: 1.7rem;
	}
	.pagenavigation a {
		margin: 0 50px;
		padding: 0 10px;
	}
}
/*=============================================
contact
=============================================*/
.contact section, .contact-child section {
	padding-top: 35px;
}
.contact-inner .message {
	margin-bottom: 30px;
}
.contact-inner .message .txt1 {
	line-height: 1.5;
	font-size: 1.5rem;
	font-weight: bold;
}
.contact-complete .message .txt1 {
	font-size: 1.3rem;
	font-weight: normal;
}
.contact-inner .message .txt2 {
	margin-top: 1em;
	line-height: 1.5;
	font-size: 1rem;
}
.contact-inner .message .special {
	margin-bottom: 1em;
	line-height: 1.5;
	font-weight: bold;
	font-size: 2rem;
	text-align: center;
	color: #0f4e72;
}
.contact-inner .message .link-back {
	margin: 40px 0 0;
	text-align: center;
}
.contact-step {
	margin-bottom: 40px;
}
.contact-step nav {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.contact-step dl {
	position: relative;
	width: 32%;
	padding: 15px 0;
	text-align: center;
	font-size: 1.1rem;
	background: #ccc;
}
.contact-step dl.active {
	background: #0f4e72;
	color: #fff;
}
.contact-step dl.active:after {
	content: "\025bc";
	position: absolute;
	color: #0f4e72;
	bottom: -10px;
	left: 50%;
	transform: translate(-50%, 0);
	text-align: center;
	font-size: 1.2rem;
}
.contact-step dt {
	margin-bottom: 0.5em;
}
.form-inner {
	margin: 60px 0 40px;
}
.form-inner .item {
	margin-bottom: 30px
}
.form-inner .item-head {
	display: flex;
	margin-bottom: 10px;
}
.form-inner .item-head .item-label {
	margin-right: 10px;
	padding: 4px 6px;
	line-height: 1;
	border-radius: 2px;
	font-size: 1.3rem;
	color: #666;
	background-color: #ddd;
}
.form-inner .item-head .item-label.required {
	color: #fff;
	background-color: #B80C09;
}
.form-inner .item-head p {
	line-height: 1.5;
	font-size: 1.5rem;
	font-weight: bold;
}
.form-inner .item-box {
	width: 100%;
	padding: 15px;
	line-height: 1.5;
	border-radius: 2px;
	border: 1px solid #ccc;
}
.form-inner option {
	line-height: 1.5;
}
.form-inner .item-textarea {
	height: 10em;
}
.form-note {
	margin: 40px 0;
	line-height: 1.5;
}
.form-note a {
	text-decoration: underline;
}
.form-btn {
	margin-top: 40px;
}
.form-btn .item-btn {
	position: relative;
	display: block;
	width: 80%;
	margin: 0 auto 15px;
	padding: 15px;
	line-height: 1.5;
	box-sizing: border-box;
	border-radius: 3px;
	text-align: center;
	font-weight: bold;
	color: #fff;
	background: #eb4c63;
}
.form-btn .item-btn-back {
	background: #999;
}
::-webkit-input-placeholder {
	color: #bbb;
}
::-moz-placeholder {
	color: #bbb;
	opacity: 1;
}
:-ms-input-placeholder {
	color: #bbb;
}
.contact-error .form-inner .item-box {
	border-color: #b80c09;
	background: #fef4f4;
}
.contact-error .form-inner .item-error {
	margin-top: 0.5em;
	color: #b80c09;
}
.contact-confirm .item-detail p {
	margin-bottom: 1em;
	padding: 1em;
	background: #f7f7f7;
}
.contact-confirm .item-detail span {
	margin-left: 1.5em;
}
@media screen and (min-width:768px) {
	.contact section, .contact-child section {
		padding-top: 80px;
	}
	.contact-inner {
		width: 70%;
		margin: 0 auto;
	}
	.contact-inner .message {
		display: flex;
		flex-direction: column;
		align-items: center;
		margin-bottom: 60px;
	}
	.contact-inner .message .txt1 {
		text-align: center;
		font-size: 2rem;
	}
	.contact-complete .message .txt1 {
		font-size: 1.7rem;
		font-weight: 500;
	}
	.contact-inner .message .txt2 {
		margin-top: 1.5em;
		font-size: 1.3rem;
	}
	.contact-inner .message .special {
		font-size: 3rem;
	}
	.contact-inner .message .link-back {
		margin: 120px 0 0;
	}
	.contact-step {
		margin-bottom: 70px;
	}
	.contact-step dl {
		width: 32%;
		padding: 20px 0 25px;
		font-size: 1.5rem;
	}
	.contact-step dl.active:after {
		bottom: -15px;
		font-size: 3rem;
	}
	.contact-step dt {
		margin-bottom: 0.5em;
		font-size: 1.7rem;
	}
	.form-inner {
		margin: 80px 0 40px;
	}
	.form-inner .item {
		display: flex;
		justify-content: space-between;
		margin-bottom: 40px;
	}
	.form-inner .item-head {
		display: flex;
		align-items: flex-start;
		margin-bottom: 0;
		width: 26%;
	}
	.form-inner .item-head .item-label {
		margin-right: 15px;
		padding: 5px 8px;
		font-size: 1.3rem;
	}
	.form-inner .item-head p {
		line-height: 1.5;
		font-size: 1.7rem;
	}
	.form-inner .item-detail {
		width: 72%;
	}
	.form-inner .item-box {
		padding: 20px;
		line-height: 1.5;
		font-weight: 500;
		font-size: 1.7rem;
	}
	.form-inner .item-select option {
		font-weight: 500;
		font-size: 1.7rem;
	}
	.item-textarea {
		height: 14em;
	}
	.form-note {
		margin: 70px 0;
		line-height: 1.5;
		text-align: center;
	}
	.form-note a {
		text-decoration: underline;
	}
	.form-btn {
		display: flex;
		flex-direction: row-reverse;
		justify-content: center;
		margin-top: 70px;
	}
	.form-btn .item-btn {
		position: relative;
		width: 40%;
		margin: 0 15px;
		padding: 20px;
		font-size: 1.7rem;
	}
	::-webkit-input-placeholder {
		color: #bbb;
	}
	::-moz-placeholder {
		color: #bbb;
		opacity: 1;
	}
	:-ms-input-placeholder {
		color: #bbb;
	}
	.contact-confirm .item-detail p {
		margin-bottom: 0;
		padding: 1em 1.5em;
	}
}
/*=============================================
privacy
=============================================*/
.privacy .main dt {
	margin-bottom: 1.2em;
	font-size: 130%;
	font-weight: bold;
}
.privacy .main p, .privacy .main dd {
	margin-bottom: 3em;
	line-height: 1.5;
}
@media screen and (min-width:768px) {
	.privacy .main section {
		padding-top: 80px;
	}
}