@charset "utf-8";
@import url("https://fonts.googleapis.com/css2?family=Sawarabi+Mincho&family=Shippori+Mincho:wght@400;500;600;700;800&family=Zen+Old+Mincho:wght@400;500;600;700;900&display=swap");
/**************************************
common
**************************************/
.btn_mail {
	margin-top: 20px;
}
.btn_mail a {
	display: inline-block;
	width: 256px;
	padding: 25px 50px;
	background: url(../images/icon_mail_white.svg),url(../images/deco_003_white.svg);
	background-position: left 18px center,right 10px center;
	background-size: 25px auto, 36px auto;
	background-repeat: no-repeat,no-repeat;
	background-color: #647486;
	color: #fff;
	text-align: left;
}
.wp-pagenavi {
	margin-top: min(80px,5vw);
	text-align: center;
}
.wp-pagenavi a, .wp-pagenavi span {
	margin: 0 8px;
	padding: 5px 10px;
	border: solid 1px #647486;
	color: #647486;
	font-size: 1.6rem;
}
.wp-pagenavi span.current {
	background-color: #647486;
	color: #fff;
}

/**************************************
service
**************************************/
#service .housing ._1 .icon {
	display: flex;
	flex-wrap: nowrap;
	justify-content: center;
	align-items: center;
	width: 40%;
}
@media screen and (max-width: 640px) {
	#service .housing ._1 .icon {
		width: 100%;
	}
}
#service .housing ._1 .icon img {
	width: 100%;
	max-width: 200px;
}
@media screen and (max-width: 640px) {
	#service .housing ._1 .icon img {
		max-width: 166px;
		margin-left: 26px;
	}
}
#service .housing ._1 .text {
	width: 60%;
}
@media screen and (max-width: 640px) {
	#service .housing ._1 .text {
		width: 100%;
		padding-top: min(35px,6vw);
	}
}
#service .housing ._1 .text h3 {
	margin-bottom: min(30px, 4vw);
	font-weight: 500;
	font-size: 3rem;
	line-height: 1.4em;
	font-family: "Shippori Mincho", serif;
}
@media screen and (max-width: 640px) {
	#service .housing ._1 .text h3 {
		font-size: 2.2rem;
	}
}
#service .housing ._1 .text p {
	line-height: 1.8em;
	text-align: justify;
}
@media screen and (max-width: 640px) {
	#service .housing ._1 .text p {
		font-size: 1.4rem;
	}
}
#service .housing ._2 {
	margin-top: 120px;
	margin-bottom: min(100px,0);
	background-image: url(../images/back_dot_gray.svg);
	background-size: 3px;
	background-color: #fff;
}
@media screen and (max-width: 640px) {
	#service .housing ._2 {
		margin-top: 80px;
	}
}
#service .housing ._2 .inner1280 {
	position: relative;
}
#service .housing ._2 .image {
	width: 100%;
}
#service .housing ._2 .image img {
	width: 100%;
	margin-top: -50px;
}
#service .housing ._2 .text {
	display: flex;
	flex-wrap: nowrap;
	justify-content: space-between;
	width: 100%;
	margin-top: min(80px,1vw);
}
#service .housing ._2 .text ._2_1 {
	width: 60%;
	padding-top: min(80px,5vw);
	padding-bottom: min(80px,5vw);
}
@media screen and (max-width: 640px) {
	#service .housing ._2 .text ._2_1 {
		width: 100%;
	}
}
#service .housing ._2 .text ._2_1 h4 {
	margin-bottom: min(30px,3.5vw);
	font-size: 2rem;
}
#service .housing ._2 .text ._2_1 p {
	font-size: 1.6rem;
	line-height: 1.8em;
	text-align: justify;
}
@media screen and (max-width: 640px) {
	#service .housing ._2 .text ._2_1 p {
		font-size: 1.4rem;
	}
}
#service .housing ._2 .text ._2_2 {
	width: 30%;
}
@media screen and (max-width: 640px) {
	#service .housing ._2 .text ._2_2 {
		display: none;
	}
}
#service .housing ._2 .text ._2_2 img {
	width: 100%;
	margin-bottom: -100px;
}
#service section.shop {
	padding-top: min(180px, 12vw);
}
#service .shop ._1 {
	margin-bottom: min(60px,6vw);
}
#service .shop ._1 .text {
	width: 60%;
}
@media screen and (max-width: 640px) {
	#service .shop ._1 .text {
		order: 2;
		width: 100%;
	}
}
#service .shop ._1 .text h3 {
	margin-bottom: min(30px, 4vw);
	font-weight: 500;
	font-size: 3rem;
	line-height: 1.4em;
	font-family: "Shippori Mincho", serif;
}
@media screen and (max-width: 640px) {
	#service .shop ._1 .text h3 {
		padding-top: min(35px,6vw);
		font-size: 2.2rem;
	}
}
#service .shop ._1 .text p {
	line-height: 1.8em;
	text-align: justify;
}
@media screen and (max-width: 640px) {
	#service .shop ._1 .text p {
		font-size: 1.4rem;
	}
}
#service .shop ._1 .icon {
	display: flex;
	flex-wrap: nowrap;
	justify-content: center;
	align-items: center;
	width: 40%;
}
@media screen and (max-width: 640px) {
	#service .shop ._1 .icon {
		order: 1;
		width: 100%;
	}
	#service .shop ._1 .icon img {
		max-width: 183px;
		margin-left: 40px;
	}
}
#service .area {
	margin-bottom: min(180px,20vw);
}
#service .area .band {
	padding: min(80px,5vw) 0;
	background-image: url(../images/back_dot_gray.svg);
	background-size: 3px;
	background-color: #fff;
}
#service .area .text {
	width: 30%;
}
@media screen and (max-width: 640px) {
	#service .area .text {
		width: 100%;
	}
}
#service .area .text h3 {
	margin-bottom: min(30px,3vw);
	font-size: 2rem;
	line-height: 1.5em;
}
#service .area .text p {
	font-size: 1.6rem;
	line-height: 1.8em;
	text-align: justify;
}
@media screen and (max-width: 640px) {
	#service .area .text p {
		font-size: 1.4rem;
	}
}
#service .area .image {
	position: relative;
	width: 60%;
	margin-top: 30vw;
}
@media screen and (max-width: 640px) {
	#service .area .image {
		display: none;
	}
}
#service .area .image img {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 65vw;
}
#service .contact-links {
	text-align: center;
}
#service .contact-links > div {
	display: inline-block;
}
#service .contact-links > div h5 {
	position: relative;
	margin-bottom: 50px;
	font-size: 2rem;
}
#service .contact-links > div h5::after {
	position: absolute;
	bottom: -70%;
	left: 50%;
	transform: translate(-50%, 0);
	width: 150px;
	height: 2px;
	background-color: #fff500;
	content: "";
}
#service .contact-links li {
	font-weight: bold;
	font-size: 1.5rem;
	line-height: 2.2em;
}
#service .contact-links li a {
	padding-left: 35px;
	background: url(../images/icon_tel.svg) no-repeat left center;
	background-size: 25px;
	color: #647486;
	font-weight: 500;
	font-size: 4rem;
	letter-spacing: .15em;
}
@media screen and (max-width: 640px) {
	#service .contact-links li a {
		letter-spacing: .05em;
	}
}
/**************************************
works
**************************************/
#works {
	padding-bottom: min(120px,15vw);
}
#works-list {
	margin-top: min(120px,7.5vw);
}
@media screen and (max-width: 860px) {
	#works-list {
		padding-top: min(45px, 7vw);
	}
}
#works-list .row {
	padding: 50px 0 40px;
}
#works-list .row:nth-child(odd) {
	background-image: url(../images/back_dot_gray.svg);
	background-size: 3px;
	background-color: #fff;
}
#works-list ul {
	max-width: 1280px;
	margin: 0 auto;

	gap: 15px;
}
@media screen and (max-width: 1280px) {
	#works-list ul {
		flex-wrap: wrap;
		width: 94%;
	}
}
#works-list li {
	width: calc((100% - 45px) / 4);
}
@media screen and (max-width: 1080px) {
	#works-list li {
		width: calc((100% - 15px) / 2);
	}
}
#works-list li a {
	display: block;
	position: relative;
	height: min(180px,15vw);
	overflow: hidden;
}
@media screen and (max-width: 1080px) {
	#works-list li a {
		height: min(240px,25vw);
	}
}
#works-list li a span {
	display: inline-block;
	position: absolute;
	top: 10px;
	left: 0;
	width: 64px;
	padding: 4px 10px 3px;
	border-top-right-radius: 15px;
	border-bottom-right-radius: 15px;
	font-size: 1.3rem;
	text-align: center;
}
#works-list li a span.housing {
	background-color: #647486;
	color: #fff;
}
#works-list li a span.shop {
	background-color: #fff;
	color: #647486;
}
@media screen and (max-width: 640px) {
	#works-list ul li span.housing, #works-list ul li span.shop {
		font-size: 1.1rem;
	}
}
#works-list li a img {
	transform: scale(1);
	width: 100%;
	height: 100%;
	transition: all .5s;

	-o-object-fit: cover;
	   object-fit: cover;
}
@media screen and (max-width: 1080px) {
	#works-list li a img {
		height: 25vw;
	}
}
#works-list li a:hover img {
	transform: scale(1.05);
	transition: all .5s;
}
#works-list li .text span {
	display: block;
	margin-top: 7px;
	font-size: 1.3rem;
}
#works-list li .text span.title {
	margin-top: 12px;
	font-weight: bold;
	font-size: 1.5rem;
}
@media screen and (max-width: 640px) {
	#works-list ul li span.title {
		font-size: 1.4rem;
	}
}
/**************************************
about
**************************************/
#about .map {
	background-image: url(../images/back_dot_gray.svg);
	background-size: 3px;
	background-color: #fff;
}
@media screen and (max-width: 1080px) {
	#about .map iframe {
		width: 100%;
	}
}
#about #company table {
	width: calc(100% - 5px);
}
#about #company table th, #about #company table td {
	padding: 20px 20px 18px;
	border-bottom: solid 1px #647486;
	font-size: 1.6rem;
	line-height: 1.6em;
	text-align: left;
}
#about #company table th {
	width: 240px;
	background-size: 3px;
	background-color: #fff;
}
@media screen and (max-width: 640px) {
	#about #company table th, #about #company table td {
		display: block;
		width: calc(100% - 40px);
	}
}
#about #office ._1 {
	margin-bottom: min(80px,13vw);
}
#about #office ._1 > .inner1080, #about #office ._2 > .inner1080 {
	margin-bottom: min(40px,3vw);
}
#about #office .image {
	width: 30%;
	max-width: 320px;
}
@media screen and (max-width: 640px) {
	#about #office .image {
		order: 2;
	}
}
@media screen and (max-width: 480px) {
	#about #office .image {
		width: 100%;
		max-width: unset;
		margin-bottom: 10px;
		text-align: center;
	}
}
#about #office .image img {
	width: 100%;
}
#about #office .text {
	width: 41%;
	padding-left: 20px;
	font-size: 1.6rem;
	line-height: 1.5em;
}
@media screen and (max-width: 640px) {
	#about #office .text {
		order: 3;
		width: 65%;
	}
}
@media screen and (max-width: 480px) {
	#about #office .text {
		width: 100%;
		padding-left: 0;
	}
}
#about #office .title {
	width: 30%;
	text-align: right;
}
@media screen and (max-width: 640px) {
	#about #office .title {
		order: 1;
		width: 100%;
		text-align: left;
	}
}
#about #office .title p:nth-of-type(1) {
	position: relative;
	font-weight: bold;
	font-size: 1.8rem;
	letter-spacing: .3em;
}
#about #office .title p:nth-of-type(1)::before {
	position: absolute;
	top: 50%;
	left: 0;
	transform: translate(0, -50%);
	width: calc(100% - 130px);
	height: 1px;
	border-top: dotted 1px #647486;
	content: "";
}
@media screen and (max-width: 640px) {
	#about #office .title p:nth-of-type(1)::before {
		right: 0;
		left: unset;
	}
}
#about #office .title p:nth-of-type(2) {
	margin-top: 30px;
	color: #fff500;
	font-weight: 300;
	font-size: 4rem;
}
@media screen and (max-width: 640px) {
	#about #office .title p:nth-of-type(2) {
		margin-top: 15px;
		margin-bottom: 15px;
	}
}
#about #recruit p {
	text-align: center;
}
/**************************************
recruit
**************************************/
#recruit .normal_table {
	max-width: 860px;
	margin: 0 auto 50px;
}
#recruit .comment {
	margin-bottom: 40px;
	font-size: 1.5rem;
	line-height: 1.6em;
	text-align: center;
}
#recruit .mailform {
	margin-bottom: 80px;
}
#recruit .induction {
	text-align: center;
}
#recruit .induction img {
	width: 80%;
	max-width: 360px;
}
/**************************************
post-single
**************************************/
.post-single {
	padding-top: 80px;
}
.post-single h1 {
	margin-bottom: 8px;
	line-height: 1.5em;
}
.post-single .date {
	font-size: 1.5rem;
}
.post-single .content {
	min-height: calc(100vh - 720px);
	margin: 50px 0 50px;
	line-height: 1.8em;
}
.post-single .tolist {
	text-align: right;
}
.post-single .tolist a {
	color: #647486;
	font-size: 1.4rem;
	text-decoration: underline;
}

/**************************************
works-single
**************************************/
.single .overview > div > div {
	margin-bottom: 25px;
}
.single .overview .category span {
	display: inline-block;
	width: 80px;
	padding: 5px 5px 4px;
	border: solid 1px #647486;
	border-top-right-radius: 20px;
	border-bottom-right-radius: 20px;
	background-color: #647486;
	color: #fff;
	font-weight: 500;
	font-size: 1.3rem;
	text-align: center;
}
.single .overview .category span.shop {
	background-color: #fff;
	color: #647486;
}
.single .overview .data {
	font-size: 1.3rem;
}
.single .overview > div:first-child {
	margin-bottom: min(170px, 11vw);
}
.single .overview .catch {
	margin-bottom: 40px;
	font-weight: bold;
	font-size: 2rem;
}
.single .overview .text {
	font-size: 1.5rem;
	line-height: 1.6em;
}
.single .single-title {
	margin-bottom: min(60px,3.5vw);
	text-align: center;
}
.single .back_pattern {
	margin-top: 100px;
	padding-bottom: min(80px,5vw);
}
.single .main_image + div {
	margin-top: min(80px,3.5vw);
}
.single .main_image img {
	width: 100%;
	max-width: 1080px;
	margin-top: -100px;
}
.single .plan {
	margin-top: min(180px,12vw);
	padding: 50px;
	border: solid 1px #647486;
}
.single .plan .image {
	margin-bottom: 30px;
	text-align: center;
}
.single .plan .image img {
	max-width: 100%;
}
.single .plan .text {
	color: #647486;
	font-size: 1.5rem;
	line-height: 1.6em;
}
.single .photos ul {
	-moz-column-gap: 5px;
	     column-gap: 5px;
	-moz-columns: 3;
	     columns: 3;
}
.single .photos img {
	width: 100%;
}
.single .next {
	margin-bottom: min(120px,10vw);
}
.single .next > .flex_nw_c {
	gap: 15px;
}
.single .next img {
	width: 100px;
}
.single .next .tolist a {
	display: inline-block;
	width: 100px;
	color: #647486;
	font-size: 1.3rem;
	text-decoration: underline;
	text-align: center;
}
.single .next .prev-post, .single .next .next-post {
	width: calc(50% - 100px);

	gap: 15px;
}
.single .next .image {
	width: 100px;
	height: 70px;
}
.single .next .image img {
	width: 100%;
	height: 100%;

	-o-object-fit: cover;
	   object-fit: cover;
}
.single .next .text {
	font-size: 1.5rem;
}
.single .next .prev-post a, .single .next .next-post a {
	color: #647486;
	font-size: 2rem;
}

/**************************************
contact
**************************************/
#contact_nav li {
	width: 30%;
}
@media screen and (max-width: 640px) {
	#contact_nav li {
		/*width: 48%;*/
		margin-bottom: 15px;
	}
}
#contact_nav li a {
	display: block;
	width: calc(100% - 34px);
	padding: 15px;
	border: solid 2px #647486;
	border-radius: 30px;
	color: #647486;
	font-weight: bold;
	font-size: 1.8rem;
	text-align: center;
}
@media screen and (max-width: 640px) {
	#contact_nav li a {
		width: calc(100% - 24px);
		padding: 10px;
		font-size: 1.5rem;
	}
}
#contact_nav li a:hover {
	background-color: #647486;
	color: #fff;
}
#contact .means {
	position: relative;
}
#contact .means > div {
	padding: 80px 30px 50px;
	border: solid 2px #647486;
}
#contact .means .comment, #contact_nav .comment {
	margin-bottom: 40px;
	font-size: 1.5rem;
	line-height: 1.6em;
	text-align: center;
}
@media screen and (max-width: 640px) {
	#contact .means .comment, #contact_nav .comment {
		font-size: 1.4rem;
		text-align: left;
	}
}
#contact .means .base-title {
	position: absolute;
	top: 115px;
	left: 50%;
	transform: translate(-50%, 0);
	margin-bottom: 0;
	border-radius: 30px;
	background-color: #fff;
}
@media screen and (max-width: 640px) {
	#contact .means .base-title {
		top: min(100px,15vw);
	}
}
#contact_tel .contact-links li {
	font-weight: bold;
	font-size: 1.8rem;
	line-height: 2.5em;
	text-align: center;
}
#contact_tel .contact-links li a {
	padding-left: 40px;
	background: url(../images/icon_tel.svg) no-repeat left center;
	background-size: 30px;
	color: #647486;
	font-weight: 500;
	font-size: 5rem;
	letter-spacing: .15em;
}
@media screen and (max-width: 640px) {
	#contact_tel .contact-links li a {
		padding-left: 28px;
		background-size: 22px;
		font-size: 3.5rem;
		letter-spacing: 0;
	}
}
#contact_mail ._1 {
	display: flex;
	flex-wrap: nowrap;
	justify-content: space-between;
	border: unset;
}
@media screen and (max-width: 640px) {
	#contact_mail ._1 {
		border-bottom: solid 1px #647486;
	}
}
#contact_mail ._1 input[type="radio"]:nth-last-of-type(1) + label {
	border-right: 1px solid #c8ced4;
}

#contact_line .button {
	text-align: center;
}
#contact_line .button a {
	display: inline-block;
	padding: 20px 50px;
	background-color: #647486;
	color: #fff;
}
#contact_mail .notes {
	width: 100%;
	max-width: 860px;
	margin: 0 auto 5px;
	font-size: 1.2rem;
	text-align: right;
}
#contact_mail .notes span {
	color: #f15a24;
	font-size: 1.8rem;
	vertical-align: top;
}
#contact_fax .contact-links li {
	font-weight: bold;
	font-size: 1.8rem;
	line-height: 2.5em;
	text-align: center;
}
#contact_fax .contact-links li span {
	padding-left: 63px;
	background: url(../images/icon_fax.svg) no-repeat left center;
	background-size: 50px;
	color: #647486;
	font-weight: 500;
	font-size: 5rem;
	letter-spacing: .15em;
}
@media screen and (max-width: 640px) {
	#contact_fax .contact-links li span {
		padding-left: 36px;
		background-size: 30px;
		font-size: 3.5rem;
		letter-spacing: 0;
	}
}
#contact .submit {
	margin-top: 40px;
	text-align: center;
}
#contact .submit input[type="submit"] {
	padding: 15px 80px;
	border: none;
	background-color: #647486;
	color: #fff;
	font-size: 1.8rem;
	cursor: pointer;
}
#contact .wpcf7-spinner {
	display: none;
}