@charset "utf-8";

/* 共通
-----------------------------------------------*/
.head_title {
	text-align: center;
	margin-bottom: 1.5em;
}
.head_title .en {
	font-size: 5.0rem;
	text-shadow: 3px 3px 0 #f8da3e;
	font-family: 'M PLUS 1p', sans-serif;
	font-weight: 500;
	line-height: 1.4;
}
.head_title .ja {
    font-weight: bold;
	line-height: 1.4;
}
.head_summary {
    font-size: 2.2rem;
    text-align: center;
}
@media screen and (max-width: 960px) {
	.head_title .en {
		font-size: 4.0rem;
	}
	.head_title .ja {
		font-size: 1.5rem;
	}
	.head_summary {
		font-size: 1.8rem;
	}
}

/* メイン画像
-----------------------------------------------*/
.toppage_heroimg {
	background-color: #fff;
	display: flex;
	justify-content: flex-end;
	position: relative;
	height: 50vw;
	max-height: calc(100vh - 120px);
}
.toppage_heroimg::before {
	content: "";
	width: 100%;
	height: 60px;
	background-color: #f5f5f5;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
}
.toppage_heroimg .img {
	width: 70%;
	position: relative;
	z-index: 2;
}
.toppage_heroimg .slick {
	width: 100%;
	height: 100%;
	border-radius: 10px 0 0 10px;
	overflow: hidden;
	margin: 0;
}
.toppage_heroimg .slick-list, .toppage_heroimg .slick-track {
	height: inherit;
}
.toppage_heroimg .slick-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	font-family: "object-fit: cover;";
}
.toppage_heroimg .slick-dots {
    width: auto;
	right: 15px;
    bottom: 15px;
}
.toppage_heroimg .slick-dots li {
	width: 13px;
	height: 13px;
	margin: 6px;
}
.toppage_heroimg .slick-dots li button {
	width: inherit;
	height: inherit;
	padding: 0;
}
.toppage_heroimg .slick-dots li button:before {
	font-size: 13px;
	line-height: 1;
	width: inherit;
	height: inherit;
}
.toppage_heroimg .catchcopy {
    position: absolute;
    left: -3.5em;
    bottom: 1em;
	font-size: 2.2vw;
	z-index: 2;
}
.toppage_heroimg .catchcopy_tx {
	font-weight: bold;
	color: #000;
	text-align: right;
	text-shadow: 0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff, 0 0 4px #fff;
}
.toppage_heroimg .tx1 {
	padding-right: 3em;
}
.toppage_heroimg .tx2 {
	padding-right: 2em;
}
.toppage_heroimg .catchcopy_tx .circle {
	font-size: 108%;
	color: #000;
	text-shadow: none;
	display: inline-block;
	width: 3.7vw;
	height: 3.7vw;
	border-radius: 50%;
	background-color: #f8da3e;
	line-height: 1;
	text-align: center;
	padding-top: 0.5vw;
	margin: 0 5px;
}
.toppage_heroimg .catchcopy_tx br {
	display: none;
}
.toppage_heroimg .map {
	position: absolute;
	top: 2vh;
	left: 10px;
	width: 35%;
	z-index: 2;
}
.toppage_heroimg .map img {
	max-height: 100%;
	width: auto;
}
@media screen and (max-width: 960px) {
	.toppage_heroimg {
		/*height: 700px;
		max-height: none;*/
		/*追加*/
		height: auto;
		max-height: none;
	}
	.toppage_heroimg .img {
		width: 100%;
	}
	.toppage_heroimg .slick {
		border-radius: 0;
		/*追加*/
		height: auto;
	}
	.toppage_heroimg .slick-dots {
		display: none !important;
	}
	.toppage_heroimg .catchcopy {
		/*left: 1em;
		padding-right: 1em;
		font-size: 3.0rem;*/
		/*追加*/
		display: none;
	}
	.toppage_heroimg .catchcopy_tx {
		text-align: left;
	}
	.toppage_heroimg .tx1, .toppage_heroimg .tx2 {
		padding-right: 0;
	}
	.toppage_heroimg .catchcopy_tx .circle {
		width: 50px;
		height: 50px;
		padding-top: 6px;
	}
	.toppage_heroimg .map {
		/*top: 12px;
		left: 20px;
		bottom: auto;
		width: 90%;
		max-width: 470px;*/
		/*追加*/
		position: static;
		width: 80%;
		max-width: 600px;
		margin: 9% auto 5%;
		text-align: center;
	}
	.toppage_heroimg .map img {
		height: auto;
	}
}
@media screen and (max-width: 520px) {
	.toppage_heroimg .catchcopy {
		font-size: 2.2rem;
	}
	.toppage_heroimg .catchcopy_tx .circle {
		width: 35px;
		height: 35px;
		padding-top: 4px;
	}
	.toppage_heroimg .map {
		top: 8px;
		left: 10px;
	}
}

/* ABOUT US
-----------------------------------------------*/
.about_container {
    background: #fff;
    padding: 100px 0 7%;
}
.about_container > .wp-block-group__inner-container {
    max-width: 1700px;
    width: 95%;
    margin: auto;
}
.about_container .head_summary {
    margin-bottom: 3.5em;
}
.about_section + .about_section {
	margin-top: 8%;
}
.about_section .img {
	border-radius: 10px;
	overflow: hidden;
	margin-bottom: 2em;
}
.about_section .innerbox {
	max-width: 1200px;
	width: 100%;
	padding: 0 50px;
	margin: auto;
}
.about_section .section_title {
    font-size: 164%;
    font-weight: bold;
    margin-bottom: 0.4em;
    position: relative;
}
.about_section .section_title::before {
	content: "";
	width: 0.85em;
	height: 0.85em;
	background: #082d99;
	position: absolute;
	top: 0.7em;
	left: -1.6em;
}
.about_section .section_title::after {
    content: "";
    width: 0.78em;
    height: 0.78em;
    border: 2px solid #082d99;
    background: #fff;
    position: absolute;
    top: 0.4em;
    left: -1.2em;
}
.about_section .section_title h3 {
	display: inline;
    background: linear-gradient(180deg, #fff 60%, #def9ff 60%);
}
.about_section .wp-block-buttons {
	margin: 1.2em 0 0 1em;
	display: flex;
	justify-content: flex-end;
}
.about_section .wp-block-button__link {
    background: #ffe03f;
    color: #000;
	text-decoration: none;
    font-size: 111%;
    padding: 0.8em 2em;
    border-radius: 10px;
}
.about_section .wp-block-button__link::after {
	content: "";
	width: 0.5em;
	height: 0.5em;
	border-top: 1px solid #000;
	border-right: 1px solid #000;
	transform: rotate(45deg);
	display: inline-block;
	vertical-align: 0.15em;
	margin-left: 0.6em;
}
.about_tsuyomi_point {
	margin-top: 0.3em;
}
.about_tsuyomi_point li {
    font-size: 1.9rem;
    font-weight: bold;
    margin-bottom: 0.7em;
}
.about_tsuyomi_point li strong {
    background: linear-gradient(180deg, #fff 55%, #fbe98b 55%);
	padding: 0 0.2em 0.2em;
}
@media screen and (min-width: 961px) {
	.about_section .wp-block-button__link:hover {
		background: #000;
		color: #fff;
	}
	.about_section .wp-block-button__link:hover::after {
		border-color: #fff;
	}
}
@media screen and (max-width: 960px) {
	.about_container {
		padding: 60px 0 100px;
	}
	.about_container > .wp-block-group__inner-container {
		width: 100%;
	}
	.about_container .head_summary {
		padding: 0 1em;
		margin-bottom: 2.5em;
	}
	.about_section + .about_section {
		margin-top: 4em;
	}
	.about_section .img {
		border-radius: 0;
		margin-bottom: 1em;
	}
	.about_section .innerbox {
		padding: 0 15px;
	}
	.about_section .section_title {
		font-size: 130%;
		margin-left: 35px;
	}
	.about_section .section_title::before {
		width: 18px;
		height: 18px;
		top: 14px;
		left: -31px;
	}
	.about_section .section_title::after {
		width: 16px;
		height: 16px;
		top: 9px;
		left: -24px;
	}
	.about_section .wp-block-buttons {
		margin: 1.5em auto 0;
		justify-content: center !important;
	}
	.about_tsuyomi_columns {
		flex-wrap: wrap !important;
		gap: normal;
	}
	.about_tsuyomi_columns .wp-block-column {
		flex-basis: inherit !important;
		width: 100%;
	}
	.about_tsuyomi_point {
		margin: 0.5em 0 1em;
	}
	.about_tsuyomi_point li {
		background: #fbe98b;
		border-radius: 10px;
		text-align: center;
		font-size: 105%;
		padding: 0.5em 1em;
		margin-bottom: 0.3em;
	}
	.about_tsuyomi_point li strong {
		background: none;
	}
}
@media screen and (max-width: 520px) {
	.about_container {
		padding: 40px 0 70px;
	}
}

/* WORKS
-----------------------------------------------*/
body.home {
	background-attachment: fixed;
	background-size: cover;
	background-position: center;
	background-image: url("images/top_works_bg_photo.png");
}
.toppage_works {
	padding-bottom: 100px;
}
.toppage_works .head {
	padding: 0 30px 70px;
	position: relative;
	margin-bottom: 40px;
}
.toppage_works .head::after {
	content: "";
	background: url("images/top_works_bg_shape.png") no-repeat center bottom;
	width: 100%;
	display: block;
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	z-index: -1;
}
.toppage_works .container {
	position: relative;
	z-index: 2;
}
.toppage_works .foot {
	margin-top: 3%;
}
.toppage_works .nopost {
	font-size: 2.0rem;
	margin: 8em 0 4em;
	padding: 0 1em;
}
@media screen and (max-width: 960px) {
	.toppage_works {
		padding-bottom: 50px;
	}
	.toppage_works .head {
		padding-bottom: 40px;
		margin-bottom: 20px;
		margin-top: -1px;
	}
}
@media screen and (max-width: 520px) {
	.toppage_works {
		background-position: center top 60px;
	}
}

/* RECRUIT
-----------------------------------------------*/
.toppage_recruit {
	padding-bottom: 100px;
	padding-top: 100px;
}
.toppage_works + .toppage_recruit {
	padding-top: 0;
}
.toppage_recruit .container {
	background-color: #fff;
	border-radius: 10px;
	padding: 40px 0;
	align-items: center;
}
.toppage_recruit .imgbox {
	width: 50%;
	padding-left: 40px;
}
.toppage_recruit .img {
	border-radius: 10px;
	overflow: hidden;
}
.toppage_recruit .img img {
	width: 100%;
}
.toppage_recruit .textbox {
	width: 50%;
	padding: 0 20px 20px;
}
.toppage_recruit .btn-container {
	margin-top: 40px;
}
@media screen and (max-width: 960px) {
	.toppage_recruit {
		padding-bottom: 50px;
		padding-top: 50px;
	}
	.toppage_recruit .container {
		padding: 20px 20px 0;
	}
	.toppage_recruit .imgbox {
		width: 100%;
		padding: 0;
	}
	.toppage_recruit .textbox {
		width: 100%;
		padding: 30px 20px 40px;
	}
	.toppage_recruit .btn-container {
		margin-top: 25px;
	}
}

/* NEWS
-----------------------------------------------*/
.toppage_news {
	background: #fff;
	padding: 150px 0 160px;
}
.toppage_news .head {
	width: 25%;
	padding-right: 30px;
}
.toppage_news .head_title {
	text-align: left;
	margin-left: 10px;
}
.toppage_news .head_title .en {
	color: #082d99;
	text-shadow: none;
}
.toppage_news .head_title .ja {
	font-size: 105%;
	font-weight: normal;
	letter-spacing: 3px;
	padding-left: 0.1em;
}
.toppage_news .head .more {
	margin-top: 2.5em;
}
.toppage_news .content {
	width: 75%;
}
.toppage_news .content .more {
	text-align: right;
	margin-top: .7em;
}
.toppage_about + .toppage_news {
	padding-top: 0; /*施工事例も採用情報もないとき用*/
}
body.home #content {
	border-bottom: 4px solid #fff; /*お知らせ枠がないとき用*/
}
@media screen and (min-width: 961px) {
	.toppage_news .content .more a:hover {
		text-decoration: underline;
	}
}
@media screen and (max-width: 960px) {
	.toppage_news {
		padding: 60px 0 100px;
	}
	.toppage_news .head {
		width: 100%;
		padding: 0 0 10px;
	}
	.toppage_news .head_title {
		text-align: center;
		margin: 0;
	}
	.toppage_news .content {
		width: 95%;
		margin: auto;
	}
	.toppage_news .content .more {
		font-size: 1.5rem;
		margin: 1em .3em 0 0;
	}
}