@charset "UTF-8";

/*
Theme Name: child
Theme URI:
Description:
Template: twentytwentyone
Author: makesview
Author URI: https://makes-view.co.jp/
Version: 1.0.0
*/
:root {
	--main-color: #000;
	--sub-color: #fff;
}


html,
button,
input,
select,
textarea {
	font-family: "M PLUS Rounded 1c", sans-serif;
}

body {
	color: #5a5a5a;
	font-size: 16px;
	line-height: normal;
	font-family: "M PLUS Rounded 1c", sans-serif;
	font-weight: 400;
	min-width: 1440px;
	margin: 0 auto;
}

.wrap {
	width: 1140px;
	margin: 0 auto;
}

.wrap.mid {
	width: 1240px;
}

.wrap.lr {
	width: 1340px;
}

/* パンくず */
.breadcrumb {
	font-size: 12px;
	color: #5a5a5a;
	letter-spacing: 0.08em;
}

.breadcrumb a {
	text-decoration: none;
	color: #919191;
}

/* PC固定ページ お問い合わせ */
.contact_form_disc {
	color: #3e3e3e;
	letter-spacing: 0.08em;
	font-weight: 400;
	text-align: center;
	margin-block: 0 3.8em;
}

.contact_form_disc .text {
	font-size: 16px;
	margin-block: 0 1em;
}

.contact_form_disc .caution {
	font-size: 14px;
}

.common_contact_form .form_box {
	margin-block: 0 50px;
}

.common_contact_form .form_box dl {
	display: grid;
	grid-template-columns: 26.5% 1fr;
	align-items: center;
	gap: 80px;
}

.common_contact_form .form_box dl.start {
	align-items: flex-start;
}

.common_contact_form .form_box dl+dl {
	margin-block: 1.6em 0;
}

.common_contact_form .form_box dl dt {
	display: flex;
	align-items: center;
	gap: 1.3em;
	font-size: 16px;
	letter-spacing: 0.08em;
	font-weight: 700;
	padding-inline: 0 0.5em;
	position: relative;
}

.common_contact_form .form_box dl dt .label {
	flex-shrink: 0;
	color: #3e3e3e;
	font-size: 12px;
	letter-spacing: 0.2em;
	font-weight: 700;
	border-radius: 100vmax;
	padding: 0.2em 0.9em;
}

.common_contact_form .form_box dl dt .label.hissu {
	background: #c70000;
	color: #fff;
}

.common_contact_form .form_box dl dt .label.ninni {
	background: #e0e0e0;
}

.common_contact_form .form_box dl dt::after {
	content: "";
	width: 1px;
	height: 30px;
	background: #aaa;
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
}

.common_contact_form input[type=text],
.common_contact_form input[type=email],
.common_contact_form #zip {
	width: 100%;
	background: #f8f8f8;
	border: 1px solid #e6e6e6;
	border-radius: 4px;
	font-size: 14px;
	letter-spacing: 0.08em;
	font-weight: 400;
	padding: 0.8em 1em;
}

.common_contact_form textarea {
	width: 100%;
	height: 180px;
	background: #f8f8f8;
	border: 1px solid #e6e6e6;
	border-radius: 4px;
	padding: 1em;
	font-size: 14px;
	letter-spacing: 0.08em;
	font-weight: 400;
}

.common_contact_form input::placeholder,
.common_contact_form textarea::placeholder {
	color: #c7c4c4;
}

.common_contact_form select {
	width: 47.5%;
	background: #f8f8f8;
	border: 1px solid #e6e6e6;
	border-radius: 4px;
	font-size: 14px;
	letter-spacing: 0.08em;
	padding: 1.1em 1em;
}

.common_contact_form select.empty {
	color: #c7c4c4;
}

.page_contact #btn_wrap {
	justify-content: center;
	text-align: right;
	width: 74%;
	margin: auto;
}

.page_contact #btn_wrap button {
	background-color: var(--main-color);
	border: none;
	cursor: pointer;
	outline: none;
	padding: 0;
	appearance: none;
	color: #fff;
	display: block;
	width: 310px;
	line-height: 60px;
	font-size: 18px;
	font-weight: 900;
	transition: 0.3s;
	text-align: center;
	letter-spacing: 0.08em;
	margin: auto;
}

.page_contact #btn_wrap button[name=submitBack] {
	background: #333;
	margin-top: 20px;
}

.page_contact #btn_wrap button:hover {
	opacity: 0.8;
}

.privacy_term_outer .privacy_term_inner {
	height: 138px;
	margin: auto;
	overflow: auto;
}

.privacy_term_outer .privacy_term_inner .privacy_index {
	font-size: 14px;
}

.privacy_term_outer .privacy_term_inner .main_text {
	font-size: 13px;
	margin-bottom: 25px;
}

.privacy_term_outer .privacy_term_inner dl dt {
	font-size: 13px;
	border-left: solid 3px #ccc;
	padding-left: 1em;
	margin-bottom: 5px;
}

.privacy_term_outer .privacy_term_inner dl dd {
	font-size: 13px;
}

.privacy_term_outer .privacy_term_inner dl+dl {
	margin-top: 30px;
}

.privacy_term_outer .privacy_term_inner::-webkit-scrollbar {
	width: 8px;
}

.privacy_term_outer .privacy_term_inner::-webkit-scrollbar-track {
	background: transparent;
}

.privacy_term_outer .privacy_term_inner::-webkit-scrollbar-thumb {
	background-color: #333;
	border-radius: 10px;
}

.privacy_term_outer {
	border-top: solid 1px #e3e3e3;
	padding: 30px 0;
	border-bottom: solid 1px #e3e3e3;
	width: 60%;
	margin: 0 auto 50px;
}

.privacy_check_list .mwform-checkbox-field-text {
	padding-right: 0;
}

.privacy_check_list .error {
	font-size: 12px;
}

.privacy_term_detail {
	text-align: center;
	font-size: 13px;
	margin: 20px 0;
	position: relative;
	font-weight: 600;
}

.privacy_term_detail::after {
	content: "";
	margin: 5px auto 0;
	border: solid #333;
	border-width: 2px 2px 0 0;
	width: 10px;
	aspect-ratio: 1/1;
	min-width: 0;
	rotate: 135deg;
	display: block;
}

.mw_wp_form_confirm .privacy_check_list,
.mw_wp_form_confirm .privacy_term_detail {
	display: none;
}

/* ラジオボタン デザイン */
.radio_btns,
.checkboxes {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em 1.5em;
	padding: 0.5em 0;
}

/* ラジオボタンを隠す */
.radio_btns input[type=radio].radio_btns__item {
	display: none;
}

.radio_btns label {
	display: inline-block;
	cursor: pointer;
}

/* spanの左側にボタンを配置するスペースを作る */
.radio_btns .radio_btns__item+span {
	color: #3e3e3e;
	font-size: 15px;
	letter-spacing: 0.08em;
	font-weight: 600;
	padding-left: 2em;
	display: inline-block;
	position: relative;
}

/* 各パーツを作成 */
.radio_btns .radio_btns__item+span::before,
.radio_btns .radio_btns__item+span::after {
	content: "";
	display: block;
	position: absolute;
	border: 1px solid #e6e6e6;
	background: #f8f8f8;
	border-radius: 50%;
	width: 20px;
	aspect-ratio: 1;
	min-width: 0;
	top: 0;
	left: 0;
	bottom: 0;
	margin: auto;
}

/* after上書き */
.radio_btns .radio_btns__item+span::after {
	width: 10px;
	aspect-ratio: 1;
	min-width: 0;
	top: 0px;
	left: 5px;
	border: none;
	background: #5a5a5a;
	-webkit-transform: scale(0);
	-ms-transform: scale(0);
	transform: scale(0);
	transition: all 0.3s;
}

/*
  checked状態
  文字のcolorとボタンのopacityを変更
*/
.radio_btns .radio_btns__item:checked+span::after {
	-webkit-transform: scale(1);
	-ms-transform: scale(1);
	transform: scale(1);
}

/* チェックボックス デザイン */
.page_contact input[type=checkbox] {
	/* デフォルトcheckボックス非表示*/
	display: none;
}

.mwform-checkbox-field label {
	cursor: pointer;
}

.mwform-checkbox-field-text {
	color: #3e3e3e;
	font-size: 15px;
	letter-spacing: 0.08em;
	font-weight: 600;
	display: inline-block;
	position: relative;
	padding: 0 0 0 30px;
}

.mwform-checkbox-field-text::before,
.mwform-checkbox-field-text::after {
	content: "";
	position: absolute;
	display: block;
}

.mwform-checkbox-field-text::before {
	background: #f8f8f8;
	border: 1px solid #e6e6e6;
	border-radius: 2px;
	width: 20px;
	aspect-ratio: 1/1;
	min-width: 0;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
}

.mwform-checkbox-field-text::after {
	border-width: 3px;
	border-color: transparent transparent #333 #333;
	border-style: solid;
	width: 20px;
	aspect-ratio: 2/1;
	min-width: 0;
	margin-top: -0.2em;
	top: 50%;
	left: 0;
	transform: translateY(-50%) rotate(-45deg);
	opacity: 0;
}

input[type=checkbox]:checked+.mwform-checkbox-field-text::after {
	opacity: 1;
}

.mw_wp_form .horizontal-item {
	display: inline-block;
}

.mw_wp_form .horizontal-item+.horizontal-item {
	margin-left: 0 !important;
}

/* サンクスページ */
.page_contact .thanks_textArea .name {
	font-size: 16px;
	line-height: 2;
	text-align: center;
	margin-bottom: 20px;
}

.page_contact .thanks_textArea .contact_text {
	margin: 0 auto 50px;
	width: 62%;
}

.page_contact .thanks_textArea .ichiran_link {
	background-color: var(--main-color);
	border: none;
	cursor: pointer;
	outline: none;
	padding: 0;
	appearance: none;
	color: #fff;
	display: block;
	width: 300px;
	line-height: 50px;
	border-radius: 4px;
	font-size: 16px;
	transition: 0.3s;
	margin: 0 auto;
	text-decoration: none;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-align: center;
}

.page_contact .thanks_textArea .ichiran_link:hover {
	opacity: 0.8;
}

.page_contact .thanks_textArea .contact_text .space {
	display: block;
}

.page_contact .thanks_textArea .contact_text .space {
	display: block;
	margin-top: 10px;
}

/* ステップバー デザイン */
.page_contact .progressbar {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 5.6em;
	margin-block: 0 3em;
}

.page_contact .progressbar .item {
	color: #3e3e3e;
	font-size: 14px;
	letter-spacing: 0.08em;
	font-weight: 400;
	text-align: center;
	line-height: 1.5;
	position: relative;
}

.page_contact .progressbar .item+.item::before {
	content: "";
	width: 50px;
	height: 1px;
	background: #e6e6e6;
	position: absolute;
	top: 64%;
	left: -5em;
}

.page_contact .progressbar .item .mark {
	width: 36px;
	aspect-ratio: 1;
	background: #fff;
	border: 1px solid #afafaf;
	border-radius: 50%;
	display: block;
	margin: 0 auto 0.5em;
	position: relative;
}

.page_contact .progressbar .item .mark::before {
	content: "";
	width: 41%;
	aspect-ratio: 1;
	background: #5a5a5a;
	border-radius: 50%;
	position: absolute;
	top: 50%;
	left: 50%;
	translate: -50% -50%;
	opacity: 0;
}

.page_contact .progressbar .item.active .mark::before {
	opacity: 1;
}

.page_contact .progressbar .item .en {
	display: block;
	color: #a7a7a7;
	letter-spacing: 0;
	font-family: "Helvetica", "Arial", sans-serif;
}

.privacy_check_list {
	justify-content: center;
	align-items: center;
	margin-bottom: 25px;
}

.privacy_check_list .hissu {
	background: #c70200;
	color: #fff;
	padding: 2px 15px;
	font-size: 10px;
	letter-spacing: 0.08em;
	border-radius: 30px;
	font-weight: 600;
}

.mw_wp_form .privacy_check_list .horizontal-item {
	margin: 0;
}

/* PC固定ページ 404ページ */
#page_404 {
	text-align: center;
}

#page_404 .num {
	font-size: 100px;
	font-family: "Montserrat", "Noto Sans JP", sans-serif;
	-webkit-text-size-adjust: 100%;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

#page_404 .text {
	margin-bottom: 1em;
	font-size: 16px;
}

/* PC固定ページ アーカイブページ */
/* 投稿リスト表示 */
.archive_page_list>article {
	padding-bottom: 15px;
	padding-top: 15px;
	border-bottom: 1px dashed #eee;
	padding-right: 30px;
}

.archive_page_list>article:after {
	content: "";
	position: absolute;
	width: 10px;
	height: 10px;
	top: 0;
	right: 5px;
	bottom: 0;
	margin: auto;
	border: solid #ccc;
	border-width: 2px 2px 0 0;
	transform: rotate(45deg);
}

.archive_page_list>article .date {
	font-weight: bold;
	font-size: 80%;
	width: 100px;
}

.archive_page_list>article .content_area {
	width: calc(100% - 100px);
}

.archive_page_list>article .content_area .ttl {
	font-weight: bold;
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 1;
}

.archive_page_list>article .content_area .content {
	font-size: 80%;
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

/* wp-pagenavi base */
.wp-pagenavi {
	text-align: center;
	margin-top: 50px;
}

.wp-pagenavi a,
.wp-pagenavi span {
	display: inline-block;
	color: #999;
	background-color: #fff;
	border: solid 1px #e0e0d2;
	padding: 8px 15px;
	margin: 0 2px;
	-moz-border-radius: 3px;
	-webkit-border-radius: 3px;
	border-radius: 3px;
	-webkit-transition: 0.2s ease-in-out;
	-moz-transition: 0.2s ease-in-out;
	-o-transition: 0.2s ease-in-out;
	transition: 0.2s ease-in-out;
	text-align: center;
	text-decoration: none;
}

.wp-pagenavi a:hover {
	color: #fff;
	background-color: var(--main-color);
	border-color: var(--main-color);
}

.wp-pagenavi .current {
	color: #fff;
	background-color: var(--main-color);
	border-color: var(--main-color);
	font-weight: bold;
}

/* PC固定ページ 共通設定 */
.common_page_main {
	padding: 150px 0 0;
	position: relative;
}

.common_page_main_bg {
	position: relative;
}

.common_page_main_bg::after {
	content: "";
	position: absolute;
	top: -150px;
	width: 100%;
	height: 742px;
	background-image: url(./image/page_mv_bg.png);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	z-index: -1;
}

.common_page_main .page_title {
	margin-top: 80px;
	margin-bottom: 50px;
}

.common_page_main .page_title .en {
	font-size: 80px;
	font-weight: 700;
	letter-spacing: 1.2;
	color: #4581b5;
	font-family: "Figtree", sans-serif;
	text-transform: uppercase;
}

.common_page_main .page_title .ja {
	font-size: 16px;
	font-weight: 500;
	color: #919191;
	line-height: 1.38;
	margin-top: 5px;
}

.common_page_main .page_mv {
	margin-right: calc(50% - 50vw);
	height: 320px;
}

.common_page_main .page_mv img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.common_page_wrap {
	padding: 100px 0;
}

/*----------------------------------------
   共通パーツ
----------------------------------------*/
/* ローディング画面
    ----------------------------------------*/
.loading {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: #fff;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 1;
	transition: opacity 1s ease-out;
	pointer-events: none;
}

.loading.bg_fade {
	opacity: 0;
}

.loading_inner {
	display: flex;
	align-items: center;
	justify-content: center;
}

.loading_logo {
	width: 200px;
	height: auto;
	opacity: 1;
	transition: opacity 1s ease-out;
}

.loading_logo.fade_out {
	opacity: 0;
}

/* btn
----------------------------------------*/
.btn {
	display: flex;
	align-items: center;
	width: 220px;
	height: 60px;
	border: 1px solid #cccccc;
	background: #fff;
	transition: all 0.3s;
	position: relative;
}

.btn::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 5px;
	height: 100%;
	background: #4581b5;
	transition: all 0.3s;
}

.btn .text {
	font-size: 16px;
	font-weight: 500;
	color: #5a5a5a;
	line-height: 1.6;
	padding-left: 30px;
	position: relative;
	transition: all 0.3s;
}

.btn .arrow {
	position: absolute;
	top: 50%;
	right: 30px;
	transform: translateY(-50%);
	width: 7.121px;
	height: 11.414px;
	stroke: #4581b5;
	transition: all 0.3s;
}

.icon_btn {
	display: flex;
	align-items: center;
	width: 280px;
	height: 60px;
	border: 1px solid #cccccc;
	background: #fff;
	transition: all 0.3s;
	position: relative;
}

.icon_btn::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 5px;
	height: 100%;
	background: #4581b5;
	transition: all 0.3s;
}

.icon_btn .icon_box {
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: end;
	margin-right: 15px;
	position: relative;
}

.icon_btn .icon {
	fill: #5a5a5a;
	transition: all 0.3s;
}

.icon_btn .text {
	font-size: 16px;
	font-weight: 500;
	color: #5a5a5a;
	line-height: 1.6;
	padding-left: 15px;
	position: relative;
	transition: all 0.3s;
}

.icon_btn .text::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	width: 1px;
	height: 30px;
	background: #d1d1d1;
	transition: all 0.3s;
}

.icon_btn .arrow {
	position: absolute;
	top: 50%;
	right: 30px;
	transform: translateY(-50%);
	width: 7.121px;
	height: 11.414px;
	stroke: #4581b5;
	transition: all 0.3s;
}

/* bg
----------------------------------------*/
#main .bg_box {
	position: relative;
	overflow: hidden;
}

#main .bg_box .about_bg {
	position: relative;
}

#main .bg_box .about_bg::after {
	content: "";
	position: absolute;
	top: 381px;
	left: 0;
	width: 100%;
	height: 1001px;
	background: url(image/about_bg.png) no-repeat center center/cover;
	z-index: -1;
}

#main .bg_box .service_bg {
	position: relative;
}

#main .bg_box .service_bg::before {
	content: "";
	position: absolute;
	top: 849px;
	left: 0;
	width: 100%;
	height: 1001px;
	background: url(image/service_bg.png) no-repeat center center/cover;
	z-index: -2;
}

#main .bg_box .works_bg {
	position: relative;
}

#main .bg_box .works_bg::after {
	content: "";
	position: absolute;
	top: 1750px;
	left: 0;
	width: 100%;
	height: 1142px;
	background: url(image/works_bg.png) no-repeat center center/cover;
	z-index: -3;
}

/*----------------------------------------
   トップページ
----------------------------------------*/
/* pcヘッダー
----------------------------------------*/
#pc_header {
	position: fixed;
	top: 30px;
	left: 0;
	z-index: 999;
	background: #fff;
	height: 68px;
	margin: 0 50px;
	padding: 0 30px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	box-shadow: 3px 3px 12px 0 rgba(0, 0, 0, 0.03);
}

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

#pc_header .logo .link {
	width: 260px;
}

#pc_header .nav .list {
	display: flex;
	align-items: center;
	gap: 35px;
}

#pc_header .nav .list .item {
	position: relative;
}

#pc_header .nav .list .item .link {
	display: block;
	font-size: 15px;
	line-height: 1.49;
	font-weight: 500;
	color: #5a5a5a;
	position: relative;
	transition: color 0.3s;
}

#pc_header .nav .list .item .link.dropdown_trigger::before {
	position: absolute;
	content: "";
	width: 10px;
	height: 5px;
	bottom: -10px;
	left: 50%;
	transform: translateX(-50%);
	background-image: url(image/icon/icon_arrow_bottom.svg);
	background-repeat: no-repeat;
	background-position: center center;
	background-size: contain;
	transition: transform 0.3s;
}

#pc_header .nav .dropdown {
	position: absolute;
	top: calc(100% + 32px);
	left: 50%;
	transform: translateX(-50%);
	background: #eaf0f5;
	width: 181px;
	height: 143px;
	padding: 0 25px;
	z-index: 1000;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease;
	display: flex;
	flex-direction: column;
	gap: 11px;
	justify-content: center;
}

#pc_header .nav .dropdown::before {
	content: "";
	position: absolute;
	top: -32px;
	left: 0;
	right: 0;
	height: 32px;
	background: transparent;
	z-index: 1001;
}

#pc_header .nav .dropdown .dropdown_item {
	position: relative;
}

#pc_header .nav .dropdown .dropdown_link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 14px;
	line-height: 1.6;
	color: #5a5a5a;
	transition: all 0.3s;
}

#pc_header .nav .dropdown .dropdown_link .text {
	transition: all 0.3s;
	position: relative;
}

#pc_header .nav .dropdown .dropdown_link .text::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	background: #4581b5;
	width: 0;
	height: 1px;
	transition: all 0.3s;
}

#pc_header .nav .dropdown .dropdown_link .arrow_circle {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid #d1d1d1;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	position: relative;
	transition: all 0.3s;
}

#pc_header .nav .dropdown .dropdown_link .arrow_circle .arrow {
	stroke: #d1d1d1;
	transition: all 0.3s;
}

/* mv
----------------------------------------*/
#main .mv {
	position: relative;
	width: 100%;
	padding: 266px 0 234px 100px;
	overflow: hidden;
	z-index: 3;
}

#main .mv::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(to right, #2c70ac, #1f5684);
	mix-blend-mode: multiply;
	opacity: 0.8;
	clip-path: polygon(0 0, 100% 0, 100% 45%, 0% 100%);
	z-index: 2;
}

#main .mv::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 46%;
	height: 45%;
	background: linear-gradient(to right, #f0f0f0, #eaf0f5);
	mix-blend-mode: lighten;
	opacity: 0.48;
	clip-path: polygon(0 0, 0% 100%, 100% 100%);
	z-index: 1;
}

#main .mv .text {
	position: relative;
	color: #fff;
	font-size: 64px;
	font-weight: 600;
	line-height: 1.3;
	font-family: "Figtree", sans-serif;
	z-index: 3;
}

#main .mv .title {
	position: relative;
	color: #fff;
	font-size: 18px;
	font-weight: 500;
	line-height: 1.8;
	z-index: 3;
	margin-top: 35px;
}

/* スライダー */
#main .mv .slider {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

#main .mv .slider .slick-list {
	height: 100%;
}

#main .mv .slider .slick-track {
	height: 100%;
}

#main .mv .slider .slide {
	width: 100%;
	height: 100%;
}

#main .mv .slider .slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

#main .mv .slider .slick-dots {
	position: absolute;
	bottom: 80px;
	left: 100px;
	display: flex;
	gap: 10px;
	width: auto;
	padding: 0;
	margin: 0;
	list-style: none;
	transform: none;
	z-index: 3;
}

#main .mv .slider .slick-dots li {
	width: 10px;
	height: 2px;
	margin: 0;
}

#main .mv .slider .slick-dots li button {
	width: 100%;
	height: 100%;
	padding: 0;
	background: #eaf0f5;
	cursor: pointer;
	transition: all 0.3s;
	font-size: 0;
	line-height: 0;
	color: transparent;
}

#main .mv .slider .slick-dots li button::before {
	content: none;
}

#main .mv .slider .slick-dots li.slick-active button {
	background: #4581b5;
	border-color: #4581b5;
}

#main .mv .slider .slick-arrow {
	display: none;
}

/* news
----------------------------------------*/
#main .news {
	padding: 120px 0 120px;
	position: relative;
	z-index: 2;
}

#main .news .inner_box {
	background: #fff;
	max-width: 1140px;
	margin: 0 auto;
	box-shadow: 3px 3px 12px 0 rgba(0, 0, 0, 0.03);
}

#main .news .inner {
	display: grid;
	grid-template-columns: 1fr 680px;
	gap: 80px;
	align-items: flex-start;
	padding: 60px 80px 70px;
}

#main .news .header {
	display: flex;
	flex-direction: column;
	gap: 55px;
}

#main .news .header .title_box {
	display: flex;
	flex-direction: column;
	gap: 5px;
}

#main .news .header .title_box .en {
	font-size: 56px;
	font-weight: 700;
	color: #4581b5;
	line-height: 1.2;
	font-family: "Figtree", sans-serif;
}

#main .news .header .title_box .ja {
	font-size: 16px;
	font-weight: 500;
	color: #919191;
	line-height: 1.38;
}

#main .news .header .icon_btn {
	width: 220px;
}

#main .news .header .icon_btn .icon {
	width: 20px;
	height: 13.333px;
}

#main .news .list {
	display: flex;
	flex-direction: column;
	gap: 0;
}

#main .news .list .item {
	display: flex;
	align-items: center;
	padding: 30px 20px;
	gap: 10px;
	text-decoration: none;
	position: relative;
	transition: all 0.3s;
	border-bottom: 1px solid #d1d1d1;
}

#main .news .list .item::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 120px;
	height: 3px;
	background: #4581b5;
	transition: all 0.3s;
}

#main .news .list .item:first-child {
	padding-top: 0;
}

#main .news .list .item .date {
	font-size: 16px;
	font-weight: 500;
	color: #5a5a5a;
	min-width: 93px;
	transition: color 0.3s;
}

#main .news .list .item .title {
	flex: 1;
	font-size: 16px;
	font-weight: 500;
	color: #5a5a5a;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	transition: color 0.3s;
}

#main .news .list .item .arrow_circle {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	transition: all 0.3s;
	border: 1px solid #d1d1d1;
	color: #fff;
}

#main .news .list .item .arrow_circle .arrow {
	width: 8.707px;
	height: 6.707px;
	stroke: #d1d1d1;
	transition: all 0.3s;
}

/* about
----------------------------------------*/
#main .about {
	position: relative;
	padding: 40px 0 0;
}

#main .about .title_box {
	position: relative;
	padding-bottom: 25px;
}

#main .about .title_box::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 50px;
	height: 3px;
	background: #4581b5;
}

#main .about .title_box .en {
	font-size: 16px;
	font-weight: 700;
	font-family: "Figtree", sans-serif;
	color: #4581b5;
	line-height: 1.19;
	text-align: center;
}

#main .about .title_box .ja {
	font-size: 40px;
	font-weight: 500;
	color: #4581b5;
	line-height: 1.4;
	text-align: center;
	margin-top: 15px;
}

#main .about .description {
	font-size: 16px;
	color: #5a5a5a;
	line-height: 2;
	text-align: center;
	margin-top: 45px;
}

#main .about .icon_btn {
	margin: 55px auto 0;
}

#main .about .icon_btn .icon {
	width: 18px;
	height: 20.571px;
}

/* service
----------------------------------------*/
#main .service {
	padding: 160px 0 0;
	position: relative;
}

#main .service .title_box {
	position: relative;
	display: inline-flex;
	align-items: flex-end;
	gap: 20px;
}

#main .service .title_box::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 3px;
	background: #4581b5;
}

#main .service .title_box::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: -150px;
	width: 150px;
	height: 1px;
	background: #d1d1d1;
}

#main .service .title_box .en {
	font-size: 64px;
	font-weight: 700;
	font-family: "Figtree", sans-serif;
	color: #4581b5;
	line-height: 1.2;
}

#main .service .title_box .ja {
	font-size: 16px;
	font-weight: 500;
	color: #919191;
	line-height: 2.5;
}

#main .service .list {
	display: flex;
	flex-direction: column;
	gap: 60px;
	margin-top: 65px;
}

#main .service .list .item {
	display: grid;
	grid-template-columns: 570px 1fr;
	gap: 50px;
	align-items: center;
}

#main .service .list .item.item_reverse {
	grid-template-columns: 1fr 570px;
}

#main .service .list .item.item_reverse .img {
	order: 2;
}

#main .service .list .item.item_reverse .content {
	order: 1;
}

#main .service .list .item .img {
	width: 100%;
	height: 320px;
	overflow: hidden;
}

#main .service .list .item .img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

#main .service .list .item .content .title {
	display: flex;
	align-items: flex-end;
	gap: 14px;
	padding-bottom: 10px;
	position: relative;
}

#main .service .list .item .content .title::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 1px;
	background: #d1d1d1;
}

#main .service .list .item .content .title .number_box {
	font-size: 14px;
	font-weight: 700;
	color: #4581b5;
	font-family: "Figtree", sans-serif;
	font-style: italic;
	display: flex;
	align-items: flex-end;
	line-height: 1.86;
}

#main .service .list .item .content .title .number_box .number {
	font-size: 32px;
	font-weight: 700;
	color: #4581b5;
	font-family: "Figtree", sans-serif;
	font-style: italic;
	line-height: normal;
}

#main .service .list .item .content .title .name {
	font-size: 24px;
	font-weight: 600;
	color: #5a5a5a;
}

#main .service .list .item .content .description {
	font-size: 14px;
	color: #5a5a5a;
	line-height: 1.6;
	margin-top: 25px;
}

#main .service .list .item .content .btn {
	margin-top: 25px;
	margin-left: auto;
}

/* works
----------------------------------------*/
#main .works {
	padding: 150px 0;
	overflow: hidden;
}

#main .works .header {
	margin-bottom: 60px;
}

#main .works .header .title_box {
	position: relative;
	display: inline-flex;
	align-items: flex-end;
	gap: 20px;
}

#main .works .header .title_box::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 3px;
	background: #4581b5;
}

#main .works .header .title_box::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: -150px;
	width: 150px;
	height: 1px;
	background: #d1d1d1;
}

#main .works .header .title_box .en {
	font-size: 64px;
	font-weight: 700;
	font-family: "Figtree", sans-serif;
	color: #4581b5;
	line-height: 1.2;
}

#main .works .header .title_box .ja {
	font-size: 16px;
	font-weight: 500;
	color: #919191;
	line-height: 2.5;
}

#main .works .slider {
	margin-right: calc(50% - 50vw);
}

#main .works .slider .slide {
	position: relative;
	margin: 0 10px;
	overflow: hidden;
	width: 320px;
	height: 450px;
}

#main .works .slider .slide .js_before_after_modal {
	width: 100%;
	height: 100%;
	cursor: pointer;
}

#main .works .slider .slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: grayscale(100%);
	transition: filter 0.3s;
}

#main .works .slider .slide .cat {
	position: absolute;
	bottom: 10px;
	left: 10px;
	font-size: 14px;
	font-weight: 500;
	color: #fff;
	z-index: 3;
	font-family: "Figtree", sans-serif;
}

#main .works .header {
	position: relative;
	margin-bottom: 60px;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
}

#main .works .header .nav {
	display: flex;
	align-items: center;
	gap: 20px;
}

#main .works .header .nav_dots {
	display: flex;
	align-items: center;
}

#main .works .header .nav_arrows {
	display: flex;
	align-items: center;
	gap: 10px;
}

#main .works .slider {
	position: relative;
}

#main .works .header .nav_dots .slick-dots {
	position: static;
	display: flex;
	gap: 10px;
	width: auto;
	padding: 0;
	margin: 0;
	list-style: none;
	align-items: center;
	height: 50px;
}

#main .works .header .nav_dots .slick-dots li {
	width: 10px;
	height: 10px;
	margin: 0;
}

#main .works .header .nav_dots .slick-dots li button {
	width: 100%;
	height: 100%;
	padding: 0;
	background: #d1d1d1;
	border: none;
	cursor: pointer;
	transition: all 0.3s;
	font-size: 0;
	line-height: 0;
	color: transparent;
}

#main .works .header .nav_dots .slick-dots li button::before {
	content: none;
}

#main .works .header .nav_dots .slick-dots li.slick-active button {
	background: #4581b5;
}

#main .works .header .nav_arrows .slick-prev {
	position: relative;
	width: 50px;
	height: 50px;
	background: #fff;
	border: 1px solid #d1d1d1;
	cursor: pointer;
	z-index: 10;
	font-size: 0;
	line-height: 0;
	color: transparent;
	margin: 0;
	transform: unset;
	top: unset;
	left: unset;
	transition: all 0.3s;
}

#main .works .header .nav_arrows .slick-next {
	position: relative;
	width: 50px;
	height: 50px;
	background: #fff;
	border: 1px solid #d1d1d1;
	cursor: pointer;
	z-index: 10;
	font-size: 0;
	line-height: 0;
	color: transparent;
	margin: 0;
	transform: unset;
	top: unset;
	right: unset;
	transition: all 0.3s;
}

#main .works .header .nav_arrows .slick-prev::before {
	position: absolute;
	content: "";
	display: inline-block;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 7.121px;
	height: 11.414px;
	background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="7.121" height="11.414" viewBox="0 0 7.121 11.414"><path d="M6.707,0.707l-5,5 5,5" fill="none" stroke="%234581b5" stroke-width="2"/></svg>') center center no-repeat;
	background-size: contain;
	transition: all 0.3s;
}

#main .works .header .nav_arrows .slick-next::before {
	position: absolute;
	content: "";
	top: 50%;
	left: 50%;
	width: 7.121px;
	height: 11.414px;
	background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="7.121" height="11.414" viewBox="0 0 7.121 11.414"><path d="M6.707,0.707l-5,5 5,5" fill="none" stroke="%234581b5" stroke-width="2"/></svg>') center center no-repeat;
	background-size: contain;
	transform: translate(-50%, -50%) rotate(180deg);
	transition: all 0.3s;
}

#main .works .links {
	display: flex;
	justify-content: space-between;
	margin-top: 35px;
}

#main .works .links .left_links {
	display: flex;
	gap: 20px;
}

/* ビフォーアフターモーダル */
.before_after_modal_overlay {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.8);
	z-index: 10000;
	align-items: center;
	justify-content: center;
}

.before_after_modal_overlay.show {
	display: flex;
}

.before_after_modal {
	position: relative;
	background: #fff;
	padding: 40px;
	width: fit-content;
	height: auto;
	overflow-y: auto;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.before_after_modal_close {
	position: absolute;
	top: 15px;
	right: 15px;
	background: transparent;
	border: none;
	font-size: 32px;
	color: #5a5a5a;
	cursor: pointer;
	line-height: 1;
	padding: 0;
	width: 32px;
	height: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.before_after_modal_content {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 30px;
	margin-top: 20px;
}

.before_after_modal_img_box {
	display: flex;
	flex-direction: column;
	width: 100%;
}

.before_after_modal_label {
	font-size: 32px;
	letter-spacing: 0.08em;
	font-weight: 700;
	line-height: 1.5;
	margin: 0 0 15px 0;
	color: #4581b5;
	text-align: center;
	font-family: "Figtree", sans-serif;
	text-transform: uppercase;
}

.before_after_modal_img_wrap {
	width: 28.125vw;
	height: 39.58vw;
	max-height: 80vh;
	object-fit: cover;
}

.before_after_modal_img_wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	max-width: 100%;
}

/* recruit
----------------------------------------*/
#main .recruit {
	padding: 100px 0 150px;
	position: relative;
}

#main .recruit::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50px;
	width: 1340px;
	height: 363px;
	background: url(image/recruit_bg.png) no-repeat center center/cover;
	z-index: -1;
}

#main .recruit .wrap {
	display: grid;
	grid-template-columns: 460px 1fr;
	gap: 80px;
	align-items: flex-start;
}

#main .recruit .img_box {
	width: 100%;
	height: 580px;
	overflow: hidden;
}

#main .recruit .img_box img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

#main .recruit .content .title_box {
	margin-top: 58px;
}

#main .recruit .content .title_box .en {
	font-size: 16px;
	font-weight: 700;
	color: #4581b5;
	font-family: "Figtree", sans-serif;
}

#main .recruit .content .title_box .ja {
	font-size: 46px;
	line-height: 1.4;
	letter-spacing: 0.13em;
}

#main .recruit .content .title_box .ja .color {
	color: #4581b5;
}

#main .recruit .content .description {
	font-size: 16px;
	line-height: 2;
	margin-top: 26px;
}

#main .recruit .content .icon_btn {
	margin-top: 55px;
}

#main .recruit .content .icon_btn .icon {
	width: 20px;
	height: 15px;
}

/* footer
----------------------------------------*/
#footer {
	background: #fafafa;
}

#footer .main {
	padding: 122px 0 112px;
}

#footer .main .footer_inner {
	display: grid;
	grid-template-columns: 450px 1fr;
	gap: 80px;
}

#footer .company .logo {
	width: 300px;
}

#footer .company .logo .image {
	width: 100%;
}

#footer .company .map {
	width: 100%;
	height: 250px;
	margin-top: 20px;
}

#footer .company .address {
	margin-top: 20px;
	font-size: 14px;
}

#footer .company .tel {
	margin-top: 10px;
	font-size: 32px;
	color: #5a5a5a;
	line-height: 1.19;
	padding-left: 30px;
	position: relative;
	font-weight: 700;
	font-family: "Figtree", sans-serif;
	pointer-events: none;
}

#footer .company .tel::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 20px;
	height: 20px;
	background: url(image/icon/icon_phone.svg) no-repeat center center/contain;
}

#footer .company .hours {
	margin-top: 5px;
	font-size: 14px;
}

#footer .sitemap {
	margin-top: 88px;
}

#footer .sitemap .title_box {
	border-bottom: 1px solid #dbdbdb;
}

#footer .sitemap .title {
	display: inline-block;
	font-size: 24px;
	font-weight: 700;
	color: #4581b5;
	line-height: 1.21;
	padding-bottom: 10px;
	position: relative;
	font-family: "Figtree", sans-serif;
}

#footer .sitemap .title::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 3px;
	background: #4581b5;
}

#footer .sitemap .list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 30px;
	margin-top: 35px;
}

#footer .sitemap .list .item .category {
	font-size: 16px;
	font-weight: 500;
	line-height: 1.38;
	margin-bottom: 18px;
}

#footer .sitemap .list .item .sub_list_01 {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

#footer .sitemap .list .item .sub_list_01 .sub_item .link_01 {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

#footer .sitemap .list .item .sub_list_01 .sub_item .link_01 .text {
	font-size: 14px;
	color: #5a5a5a;
	line-height: 1.36;
	transition: color 0.3s;
	position: relative;
}

#footer .sitemap .list .item .sub_list_01 .sub_item .link_01 .text::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 0;
	height: 1px;
	background: #4581b5;
	transition: width 0.3s;
}

#footer .sitemap .list .item .sub_list_01 .sub_item .link_01 .arrow {
	stroke: #4581b5;
	transition: all 0.3s;
}

#footer .sitemap .list .item .sub_list_02 {
	display: flex;
	flex-direction: column;
	gap: 28px;
}

#footer .sitemap .list .item .sub_list_02 .sub_item .link_02 {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

#footer .sitemap .list .item .sub_list_02 .sub_item .link_02 .text {
	font-size: 16px;
	color: #5a5a5a;
	font-weight: 500;
	line-height: 1.38;
	transition: all 0.3s;
}

#footer .sitemap .list .item .sub_list_02 .sub_item .link_02 .arrow_circle {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #4581b5;
	border: 1px solid #4581b5;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s;
}

#footer .sitemap .list .item .sub_list_02 .sub_item .link_02 .arrow_circle .arrow {
	stroke: #fff;
	transition: all 0.3s;
}

#footer .copyright {
	background: #4581b5;
}

#footer .copyright .copyright_inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 60px;
}

#footer .copyright .text {
	font-size: 12px;
	line-height: 1.17;
	color: #fff;
	font-family: "Figtree", sans-serif;
}

#footer .copyright .links {
	display: flex;
	gap: 30px;
}

#footer .copyright .links .link {
	font-size: 12px;
	line-height: 1.42;
	color: #fff;
	transition: all 0.3s;
}

/* interior(内装)　exterior(外装)　　infrastructure（インフラ整備）
----------------------------------------*/
.common_page_wrap {
	padding: 100px 0 0;
}

/*----------------------------------------
   message
----------------------------------------*/
.message {
	position: relative;
	text-align: center;
}

.message_title {
	font-size: 35px;
	font-weight: 700;
	margin-bottom: 20px;
	line-height: 1.71;
}

.message_description {
	font-size: 18px;
	line-height: 1.72;
	margin-top: 40px;
}

/*----------------------------------------
   point
----------------------------------------*/
.point {
	padding: 80px 0;
}

/* interior(内装) */
.page_interior .point,
.page_infrastructure .point {
	padding: 0 0 80px;
}

.point .list {
	display: flex;
	flex-direction: column;
	gap: 80px;
}

.point .item {
	display: grid;
	grid-template-columns: 620px 1fr;
	gap: 50px;
}

.point .item.reverse {
	grid-template-columns: 1fr 620px;
}

.point .item.reverse .image_box {
	order: 2;
}

.point .item.reverse .content {
	order: 1;
}

.point .item .content .point_title_box {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
}

.point .item .content .point_title_box .number_box {
	display: flex;
	align-items: center;
	gap: 5px;
	margin-top: 5px;
	background-color: #4581b5;
	padding: 5px 15px;
}

.point .item .content .point_title_box .number_box .number_label {
	font-size: 30px;
	font-weight: 700;
	color: #fff;
	font-family: "Figtree", sans-serif;
}

.point .item .content .point_title_box .number_box .number {
	font-size: 30px;
	font-weight: 700;
	color: #fff;
	font-family: "Figtree", sans-serif;
}

.point .item .content .point_title {
	font-size: 35px;
	font-weight: 700;
}

.point .item .content .point_description {
	font-size: 18px;
	line-height: 1.7;
	margin-top: 25px;
}

.point .item .image_box {
	width: 100%;
	height: 420px;
	overflow: hidden;
}

.point .item .image_box img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

/*----------------------------------------
   trouble
----------------------------------------*/
.trouble {
	padding: 100px 0;
	background: #daebf8;
}

.trouble .trouble_title {
	font-size: 35px;
	font-weight: 700;
	margin-bottom: 20px;
	line-height: 1.71;
	width: fit-content;
	margin: 0 auto;
	position: relative;
	padding-bottom: 15px;
	margin-bottom: 60px;
}

.trouble .trouble_title::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 100px;
	height: 3px;
	background: #4581b5;
}

.trouble .trouble_category_container {
	display: flex;
	gap: 40px;
	max-width: 1200px;
	margin: 0 auto;
}

.trouble .trouble_category {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 30px;
	padding: 40px 30px;
	background: #fff;
	border-radius: 10px;
}

.trouble .trouble_category .category_title {
	font-size: 25px;
	font-weight: 700;
	line-height: 1.72;
	text-align: center;
	color: #4581b5;
}

.trouble .trouble_category .trouble_content {
	position: relative;
	height: 100%;
	padding-bottom: 100px;
}

.trouble .trouble_category .trouble_illustration {
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	z-index: 3;
	width: 155px;
	height: auto;
}

.trouble .trouble_category .trouble_illustration.left {
	left: 47%;
	width: 139px;
}

.trouble .trouble_category .trouble_illustration img {
	width: 100%;
	height: auto;
	display: block;
}

.trouble .trouble_category .trouble_bubbles {
	position: relative;
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: space-between;
}

.trouble .trouble_category .trouble_bubbles_area {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.trouble .trouble_category .bubble {
	position: relative;
	background: #fff;
	padding: 10px 15px;
	border-radius: 15px;
	border: 3px solid #4581b5;
	max-width: 200px;
	z-index: 2;
}

.trouble .trouble_category .bubble::after {
	content: "";
	position: absolute;
	width: 14px;
	height: 14px;
	border: 3px solid #4581b5;
	border-radius: 50%;
	background: #fff;
}

.trouble .trouble_category .bubble.left::after {
	right: -26px;
}

.trouble .trouble_category .bubble.right::after {
	left: -26px;
}

.trouble .trouble_category .bubble::before {
	content: "";
	position: absolute;
	bottom: 10px;
	width: 20px;
	height: 20px;
	border: 3px solid #4581b5;
	border-radius: 50%;
	background: #fff;
}

.trouble .trouble_category .bubble.left::before {
	right: -10px;
}

.trouble .trouble_category .bubble.right::before {
	left: -10px;
}

.trouble .trouble_category .bubble .bubble_text {
	font-size: 14px;
	line-height: 1.6;
	color: #5a5a5a;
	margin: 0;
}

/*----------------------------------------
   flow
----------------------------------------*/
.flow {
	padding: 100px 0;
}

/* exterior（外装） */
.page_exterior .flow,
.page_infrastructure .flow {
	padding: 100px 0 0;
	position: relative;
}

.page_exterior .flow::after,
.page_infrastructure .flow::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 200px;
	background: #f5fbff;
	z-index: -1;
}

.flow_title {
	font-size: 36px;
	font-weight: 700;
	text-align: center;
	margin-bottom: 60px;
	position: relative;
	padding-bottom: 20px;
}

.flow_title::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 100px;
	height: 3px;
	background: #4581b5;
}

.flow .list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 30px;
}

/* interior(内装) */
.page_interior .flow .list {
	grid-template-columns: repeat(6, 1fr);
}

/* infrastructure（インフラ整備） */
.page_infrastructure .flow .list {
	grid-template-columns: 290px 290px;
	justify-content: center;
}

.page_infrastructure .flow .list.three {
	grid-template-columns: repeat(3, 1fr);
}

.flow .item {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
	background: #fff;
}

/* interior(内装) */
.page_interior .flow .item {
	position: relative;
}

.page_interior .flow .item::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 100%;
	width: 30px;
	height: 10px;
	background: #4581b5;
	z-index: -1;
}

.page_interior .flow .item:last-child::after {
	display: none;
}

.flow .item .step_number_box {
	padding: 10px;
	width: fit-content;
	margin: 20px auto 0;
}

.flow .item .step_number_box .step_number_label {
	font-size: 25px;
	font-weight: 700;
	color: #4581b5;
	text-transform: uppercase;
	font-family: "Figtree", sans-serif;
}

.flow .item .step_number_box .step_number {
	font-size: 25px;
	font-weight: 700;
	color: #4581b5;
	font-family: "Figtree", sans-serif;
}

.flow .item .image_box {
	width: 100%;
	height: 80px;
	overflow: hidden;
	margin: 10px 0;
}

.flow .item .image_box img {
	width: 100%;
	height: 100%;
	-o-object-fit: contain;
	object-fit: contain;
}

.flow .item .content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	padding: 20px;
	flex: 1;
	width: 100%;
}

.flow .item .content .step_title {
	font-size: 22px;
	font-weight: 700;
	min-height: 56px;
	text-align: center;
	width: fit-content;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
}

.flow .item .content .step_description {
	font-size: 16px;
	line-height: 1.75;
}

/*----------------------------------------
   cta
----------------------------------------*/
.cta {
	padding: 60px 0;
	background: #daebf8;
	position: relative;
	overflow: hidden;
}

.cta_content {
	background: #fff;
	border-radius: 16px;
	padding: 40px 50px;
	flex: 1;
	max-width: 800px;
	margin: 0 auto;
}

.cta_text {
	font-size: 18px;
	line-height: 1.72;
	text-align: center;
	margin-bottom: 20px;
	font-weight: 700;
}

.cta_btn {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px 30px;
	border-radius: 50px;
	text-decoration: none;
	transition: all 0.3s;
	width: 480px;
	background: #4581b5;
	color: #fff;
	position: relative;
	border: 2px solid #4581b5;
	margin: 0 auto;
}

.cta_btn_text {
	font-size: 25px;
	font-weight: 700;
	color: #fff;
}

.cta_btn_icon {
	width: 40px;
	height: 40px;
	background: #fff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	position: absolute;
	right: 30px;
	top: 50%;
	transform: translateY(-50%);
}

.cta_btn_icon svg {
	width: 20px;
	height: 20px;
	stroke: #4581b5;
}

/* exterior(外装)　　infrastructure（インフラ整備）
----------------------------------------*/
/*----------------------------------------
   process_flow
----------------------------------------*/
.process_flow {
	padding: 100px 0;
	background: #f5fbff;
}

.process_flow_title {
	font-size: 36px;
	font-weight: 700;
	text-align: center;
	margin-bottom: 60px;
	position: relative;
	padding-bottom: 20px;
}

.process_flow_title::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 100px;
	height: 3px;
	background: #4581b5;
}

.process_flow_list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
}

.process_flow_list.two {
	display: flex;
	justify-content: center;
	gap: 60px;
}

.process_flow_item {
	position: relative;
	flex: 1;
	max-width: 400px;
	padding: 40px 30px 60px;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	clip-path: polygon(0 0, calc(100% - 30px) 0, 100% 50%, calc(100% - 30px) 100%, 0 100%);
}

.process_flow_item:not(:last-child) {
	margin-right: -30px;
}

.process_flow_item_step1 {
	background: #4581b5;
	color: #fff;
	z-index: 3;
}

.process_flow_item_step2 {
	background: #ff8c42;
	color: #fff;
	z-index: 2;
}

.process_flow_item_step3 {
	background: #4581b5;
	color: #fff;
	z-index: 1;
	clip-path: polygon(0 0, 100% 0, 100% 50%, 100% 100%, 0 100%);
}

.process_flow_item_header {
	margin-bottom: 20px;
}

.process_flow_step_label {
	font-size: 25px;
	font-weight: 700;
	opacity: 0.9;
	font-family: "Figtree", sans-serif;
	text-transform: uppercase;
}

.process_flow_step_number {
	font-size: 25px;
	font-weight: 700;
	font-family: "Figtree", sans-serif;
}

.process_flow_item_title {
	font-size: 25px;
	font-weight: 700;
	margin-bottom: 30px;
	line-height: 1.5;
}

.process_flow_item_sub_list {
	list-style: none;
	padding: 0;
	margin: 0;
	width: 100%;
	display: flex;
	flex-direction: column;
	gap: 15px;
}

.process_flow_item_description {
	background: rgba(255, 255, 255, 0.2);
	border: 2px solid rgba(255, 255, 255, 0.5);
	border-radius: 8px;
	padding: 15px 20px;
	font-size: 16px;
	line-height: 1.6;
	text-align: left;
}

/*----------------------------------------
   construction_flow
----------------------------------------*/
.construction_flow {
	padding: 100px 0;
}

.construction_flow_title {
	font-size: 36px;
	font-weight: 700;
	text-align: center;
	margin-bottom: 60px;
	position: relative;
	padding-bottom: 20px;
}

.construction_flow .title {
	font-size: 25px;
	font-weight: 700;
	margin-bottom: 1em;
	display: flex;
	align-items: center;
	gap: .5em;
}

.construction_flow .title.mt {
	margin-top: 3em;
}

.construction_flow .title::before {
	content: "";
	width: 0.5em;
	height: 0.5em;
	border-radius: 100vmax;
	background-color: #4581b5;
}

.construction_flow_title::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 100px;
	height: 3px;
	background: #4581b5;
}

.construction_flow_list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 30px;
}

.construction_flow_item {
	display: flex;
	flex-direction: column;
	box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
	position: relative;
	background: #fff;
}

.construction_flow_item::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 100%;
	width: 30px;
	height: 10px;
	background: #4581b5;
	z-index: -1;
}

.construction_flow_item:nth-child(4)::after,
.construction_flow_item:last-child::after {
	display: none;
}

.construction_flow_item .construction_flow_image_box {
	width: 120px;
	height: 120px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 20px auto 0;
}

.construction_flow_item .construction_flow_image_box img {
	width: 100%;
	height: 100%;
	-o-object-fit: contain;
	object-fit: contain;
}

.construction_flow_item .construction_flow_content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	padding: 20px;
	flex: 1;
}

.construction_flow_item .construction_flow_step_number_box {
	display: flex;
	align-items: baseline;
	gap: 8px;
	width: fit-content;
	margin: 20px auto 0;
}

.construction_flow_item .construction_flow_step_number_box .construction_flow_step_number_label {
	font-size: 25px;
	font-weight: 700;
	text-transform: uppercase;
	font-family: "Figtree", sans-serif;
	color: #4581b5;
}

.construction_flow_item .construction_flow_step_number_box .construction_flow_step_number {
	font-size: 25px;
	font-weight: 700;
	font-family: "Figtree", sans-serif;
	color: #4581b5;
}

.construction_flow_item .construction_flow_content .construction_flow_step_title {
	font-size: 20px;
	font-weight: 700;
	color: #4581b5;
	width: fit-content;
	margin: 0 auto;
	text-align: center;
}

.construction_flow_item .construction_flow_content .construction_flow_step_description {
	font-size: 16px;
	line-height: 1.75;
	flex: 1;
}

/* construction-history（工事経歴）
----------------------------------------*/
.page_construction_history .common_page_wrap {
	padding: 95px 0 130px;
}

.construction_table_wrapper {
	width: 1000px;
	margin: 0 auto;
}

.construction_table {
	display: table;
	width: 100%;
	border-collapse: collapse;
	background: #fff;
}

.construction_row {
	display: table-row;
	border-bottom: 1px solid #ddd;
}

.construction_header {
	background: #f5f5f5;
	font-weight: 700;
}

.construction_row:nth-child(odd) {
	background: #daebf8;
}

.construction_row>div {
	display: table-cell;
	padding: 15px;
	vertical-align: top;
	font-size: 14px;
	line-height: 1.6;
}

.construction_header>div {
	text-align: center;
	color: #4581b5;
	font-weight: 700;
}

.col_client {
	width: 23%;
	text-align: left;
}

.col_project {
	width: 42%;
	text-align: left;
}

.col_amount {
	width: 12%;
	text-align: right;
}

.col_date {
	width: 13%;
	text-align: right;
}

.col_location {
	width: 10%;
	text-align: center;
}

.label_sp {
	display: none;
}

/* partners（主要取引先）
----------------------------------------*/
.page_partners .common_page_wrap {
	padding: 95px 0 130px;
}

.page_partners .partners_wrapper {
	max-width: 800px;
	margin: 0 auto;
}

.page_partners .partners_title {
	font-size: 32px;
	font-weight: 700;
	margin-bottom: 60px;
	line-height: 1.5;
	border-bottom: 3px solid #4581b5;
}

.page_partners .partners_section {
	margin-bottom: 60px;
}

.page_partners .partners_section:last-child {
	margin-bottom: 0;
}

.page_partners .section_heading {
	margin-bottom: 30px;
	border-bottom: 1px solid #ccc;
}

.page_partners .section_heading .section_heading_text {
	font-size: 24px;
	font-weight: bold;
	color: #4581b5;
	padding-bottom: 10px;
	border-bottom: 3px solid #4581b5;
	display: inline-block;
	position: relative;
	line-height: 1.5;
	padding-left: 10px;
	padding-right: 10px;
}

.page_partners .section_heading .section_heading_text::after {
	content: "";
	position: absolute;
	bottom: -2px;
	left: 0;
	right: 0;
	height: 2px;
	background-color: #4581b5;
}

.page_partners .partners_list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px 60px;
	list-style: none;
	padding: 0;
	margin: 0;
}

.page_partners .partners_list li {
	font-size: 16px;
	color: #5a5a5a;
	line-height: 1.8;
	padding-left: 20px;
	position: relative;
}

.page_partners .partners_list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 12px;
	height: 1px;
	background-color: #5a5a5a;
}

/* recruit（採用情報）
----------------------------------------*/
.page_recruit_main {
	padding-block: 1em 0;
}

.breadcrumb {
	margin-block: 0 105px;
}

.page_recruit_main .title_box {
	text-align: center;
}

.page_recruit_main .title_box .title {
	font-size: 40px;
	letter-spacing: 0.08em;
	font-weight: 700;
	line-height: 1.5;
}

.page_recruit .common_page_wrap {
	padding-block: 95px 130px;
}

.page_recruit .lead_text {
	font-size: 20px;
	letter-spacing: 0.08em;
	font-weight: 500;
	line-height: 1.6;
	display: flex;
	flex-direction: column;
	gap: 1em;
}

.page_recruit .lead_text .title {
	font-size: 32px;
	letter-spacing: 0.08em;
	font-weight: 700;
	line-height: 1.5;
}

.page_recruit .lead_text .text_box {
	display: flex;
	flex-direction: row-reverse;
	justify-content: flex-end;
	align-items: center;
	gap: 100px;
}

.page_recruit .lead_text .text_box .logo_area {
	width: 300px;
	height: 300px;
	overflow: hidden;
	margin-left: 40px;
}

.page_recruit .lead_text .text_box .logo_area img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.page_recruit .common_sec_title .title {
	font-size: 32px;
	letter-spacing: 0.08em;
	font-weight: 700;
	line-height: 1.5;
}

.recruit_cont_sec .tab_box {
	background: #fff;
	padding: 10px;
	margin-block: 0 50px;
}

.recruit_cont_sec .tab_box ul {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0.6em;
}

.recruit_cont_sec .tab_box li {
	display: flex;
	justify-content: center;
	align-items: center;
	min-block-size: 80px;
	padding: 0.5em;
	text-align: center;
	font-size: 20px;
	letter-spacing: 0.08em;
	font-weight: 700;
	line-height: 1.5;
	cursor: pointer;
	transition: 0.3s;
}

.recruit_cont_sec .tab_box li.active,
.recruit_cont_sec .tab_box li:hover {
	background: var(--main-color);
	color: #fff;
}

.recruit_cont_sec .panel .main_box {
	display: grid;
	grid-template-columns: 320px 1fr;
	gap: 80px;
	margin-block: 0 70px;
}

.recruit_cont_sec .panel .main_box .img img {
	width: 100%;
	aspect-ratio: 2/3;
	object-fit: cover;
}

.recruit_cont_sec .panel .main_box .text_box {
	padding-block: 0.6em 0;
}

.recruit_cont_sec .panel .main_box .text_box .title_box {
	margin-block: 0 1.8em;
}

.recruit_cont_sec .panel .main_box .common_sec_title {
	margin-block: 0 1.3em;
}

.recruit_cont_sec .panel .main_box .text_box .title_box .text {
	font-size: 14px;
	letter-spacing: 0.08em;
	font-weight: 400;
}

.recruit_cont_sec .panel .main_box .text_box .list li+li {
	margin-block: 0.3em 0;
}

.recruit_cont_sec .panel .main_box .text_box .list li .title {
	font-size: 24px;
	letter-spacing: 0.08em;
	font-weight: 700;
	line-height: 1.5;
	margin-block: 0 0.3em;
}

.recruit_cont_sec .panel .main_box .text_box .list li .textarea {
	padding-inline: 1.6em;
}

.recruit_cont_sec .panel .main_box .text_box .list li .textarea .text {
	font-size: 14px;
	letter-spacing: 0.08em;
	font-weight: 400;
}

.recruit_cont_sec .panel .main_box .text_box .list li .textarea .text+.text {
	margin-block: 1em 0;
}

.recruit_cont_sec .panel .desc_box {
	background: #fff;
	padding: 80px 160px 100px;
	box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
}

.recruit_cont_sec .panel .desc_box .common_sec_title {
	text-align: center;
	margin-block: 0 2.6em;
	color: #4581b5;
	font-weight: 700;
}

.recruit_cont_sec .panel .desc_box .table_box table {
	width: 100%;
}

.recruit_cont_sec .panel .desc_box .table_box table th,
.recruit_cont_sec .panel .desc_box .table_box table td {
	border: solid #ccc;
	border-width: 1px 0;
	padding: 2.1em 0.6em;
	letter-spacing: 0.08em;
	line-height: 1.6;
	vertical-align: middle;
}

.recruit_cont_sec .panel .desc_box .table_box table th {
	width: 28%;
	font-size: 16px;
	font-weight: 700;
	background-color: #daebf8;
}

.recruit_cont_sec .panel .desc_box .table_box table td {
	font-size: 14px;
	font-weight: 500;
}

.page_recruit .section_vision {
	padding-top: 100px;
	position: relative;
}

.page_recruit .section_vision::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50px;
	width: 1340px;
	height: 363px;
	background: url(image/recruit_bg.png) no-repeat center center/cover;
	z-index: -1;
}

.page_recruit .section_vision .flex_box {
	align-items: center;
}

.page_recruit .section_vision .image {
	width: 460px;
}

.page_recruit .section_vision .text_box {
	width: 600px;
}

.page_recruit .section_vision .text_box .en {
	font-size: 16px;
	color: #4581B5;
	font-family: "Figtree", sans-serif;
	font-weight: 700;
	margin-bottom: 13px;
}

.page_recruit .section_vision .text_box .catch {
	margin-bottom: 30px;
}

.page_recruit .section_vision .text_box .text {
	color: #5A5A5A;
	line-height: 1.9;
}

.page_recruit .common_title_box {
	margin-bottom: 65px;
	align-items: center;
	gap: 20px;
	border-bottom: 3px solid #4581B5;
	width: fit-content;
}

.page_recruit .common_title_box .en {
	font-size: 64px;
	color: #4581B5;
	font-family: "Figtree", sans-serif;
	font-weight: 700;
}

.page_recruit .common_title_box .title {
	color: #919191;
	transform: translateY(10px);
}

.page_recruit .common_contents_list ol li {
	align-items: center;
}

.page_recruit .common_contents_list ol li+li {
	margin-top: 60px;
}

.page_recruit .common_contents_list ol li .image {
	width: 570px;
	position: relative;
}

.page_recruit .common_contents_list ol li:nth-child(even) .image {
	order: 2;
}

.page_recruit .common_contents_list ol li .image:before {
	content: "";
	width: 100%;
	height: 100%;
	background: #4581B5;
	position: absolute;
	left: 0;
	top: 0;
	opacity: .3;
	mix-blend-mode: soft-light;
}

.page_recruit .common_contents_list ol li .text_box {
	width: 520px;
}

.page_recruit .common_contents_list ol li .text_box .title_box {
	align-items: center;
	gap: 22px;
	border-bottom: 1px solid #D1D1D1;
	padding-bottom: 10px;
	margin-bottom: 25px;
}

.page_recruit .common_contents_list ol li .text_box .title_box .en {
	font-size: 14px;
	color: #4581B5;
	font-family: "Figtree", sans-serif;
	font-weight: 700;
}

.page_recruit .common_contents_list ol li .text_box .title_box .en .num {
	font-size: 32px;
}

.page_recruit .common_contents_list ol li .text_box .title_box .title {
	font-size: 24px;
}

.page_recruit .common_contents_list ol li .text_box .text {
	font-size: 14px;
}

.page_recruit .section_reason {
	position: relative;
	padding-top: 75px;
	padding-bottom: 153px;
	margin-bottom: 150px;
}

.page_recruit .section_reason:before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 1142px;
	background: url(image/works_bg.png) no-repeat center center/cover;
	z-index: -3;
}

.page_recruit .section_reason .title_box {
	text-align: center;
	position: relative;
	margin-bottom: 106px;
}

.page_recruit .section_reason .title_box:before {
	content: "";
	width: 50px;
	height: 3px;
	background: #4581B5;
	position: absolute;
	left: 50%;
	bottom: -33px;
	transform: translateX(-50%);
}

.page_recruit .section_reason .title_box .en {
	font-size: 16px;
	color: #4581B5;
	font-family: "Figtree", sans-serif;
	font-weight: 700;
}

.page_recruit .section_reason .title_box .title {
	font-size: 40px;
	color: #4581B5;
}

.page_recruit .section_reason ol {
	justify-content: center;
	gap: 50px 30px;
}

.page_recruit .section_reason ol li {
	width: 360px;
	position: relative;
}

.page_recruit .section_reason ol li .num {
	font-size: 32px;
	color: #4581B5;
	font-family: "Figtree", sans-serif;
	font-weight: 700;
	position: absolute;
	left: 50%;
	top: -18px;
	transform: translateX(-50%);
	z-index: 2;
}

.page_recruit .section_reason ol li .illust {
	width: 220px;
	height: 220px;
	background: #E2EEF7;
	border-radius: 100%;
	margin: 0 auto;
	position: relative;
	margin-bottom: 20px;
}

.page_recruit .section_reason ol li .illust img {
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	margin: auto;
}

.page_recruit .section_reason ol li .text_box {
	text-align: center;
}

.page_recruit .section_reason ol li .text_box .title {
	font-size: 24px;
	color: #4581B5;
	margin-bottom: 10px;
}

.page_recruit .section_reason ol li .text_box .text {
	font-size: 14px;
}

.page_recruit .section_works {
	position: relative;
	padding-top: 150px;
	margin-bottom: 75px;
}

.page_recruit .section_works:before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 1469px;
	background: url(image/recruit_works_bg.webp) no-repeat center center/cover;
	z-index: -1;
}

.page_recruit .section_welfare {
	position: relative;
	padding-bottom: 100px;
	margin-bottom: 150px;
}

.page_recruit .section_welfare::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 1340px;
	height: 700px;
	background: url(image/welfare_bg.webp) no-repeat center center/cover;
	z-index: -1;
	transform: translateX(-50%);
}

.archive_works .common_page_wrap {
	padding: 100px 0;
}

.common_works_list table {
	width: 100%;
	border-collapse: collapse;
	background-color: #fff;
}

.common_works_list table,
.common_works_list table th,
.common_works_list table td {
	border-collapse: collapse;
	border: 1px solid #ddd;
}

.common_works_list table th,
.common_works_list table td {
	font-size: 15px;
	line-height: 1.5;
	padding: 1em;
	letter-spacing: .02em;
}

.common_works_list table thead th {
	background-color: #daebf8;
	color: #4581b5;
	font-weight: 700;
}

.common_works_list table tbody th {
	white-space: nowrap;
}

.common_works_list table td {
	color: #5a5a5a;
}

.works .common_works_list {
	height: 300px;
	overflow: scroll;
	border: 3px solid #4581b5;
	background-color: #fff;
}

.works .common_works_list table thead {
	position: sticky;
	top: 0;
}

/*----------------------------------------
ホバー
----------------------------------------*/
@media screen and (min-width: 751px) {

	/* btn
  ----------------------------------------*/
	.btn:hover {
		border-color: #4581b5;
	}

	.btn:hover::before {
		width: 100%;
	}

	.btn:hover .icon {
		fill: #fff;
	}

	.btn:hover .text {
		color: #fff;
	}

	.btn:hover .text::before {
		background: #fff;
	}

	.btn:hover .arrow {
		stroke: #fff;
	}

	.icon_btn:hover {
		border-color: #4581b5;
	}

	.icon_btn:hover::before {
		width: 100%;
	}

	.icon_btn:hover .icon {
		fill: #fff;
	}

	.icon_btn:hover .text {
		color: #fff;
	}

	.icon_btn:hover .text::before {
		background: #fff;
	}

	.icon_btn:hover .arrow {
		stroke: #fff;
	}

	/*----------------------------------------
  トップページ
  ----------------------------------------*/
	#pc_header .nav .list .item .link:hover {
		color: #4581b5;
	}

	#pc_header .nav .list .item .link.dropdown_trigger:hover::before {
		transform: translateX(-50%) rotate(180deg);
	}

	#pc_header .nav .list .item:hover .dropdown {
		opacity: 1;
		transform: translateX(-50%) translateY(0);
		pointer-events: auto;
	}

	#pc_header .nav .dropdown .dropdown_link:hover .text {
		color: #4581b5;
	}

	#pc_header .nav .dropdown .dropdown_link:hover .text::after {
		width: 100%;
	}

	#pc_header .nav .dropdown .dropdown_link:hover .arrow_circle {
		background: #4581b5;
		border-color: #4581b5;
	}

	#pc_header .nav .dropdown .dropdown_link:hover .arrow_circle .arrow {
		stroke: #fff;
	}

	#main .news .list .item:hover::before {
		width: 100%;
	}

	#main .news .list .item:hover .date {
		color: #4581b5;
	}

	#main .news .list .item:hover .title {
		color: #4581b5;
	}

	#main .news .list .item:hover .arrow_circle {
		background: #4581b5;
		border-color: #4581b5;
	}

	#main .news .list .item:hover .arrow_circle .arrow {
		stroke: #fff;
	}

	#main .works .slider .slide:hover img {
		filter: grayscale(0%);
	}

	#main .works .header .nav_arrows .slick-prev:hover {
		background: #4581b5;
	}

	#main .works .header .nav_arrows .slick-next:hover {
		background: #4581b5;
	}

	#main .works .header .nav_arrows .slick-prev:hover::before {
		background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="7.121" height="11.414" viewBox="0 0 7.121 11.414"><path d="M6.707,0.707l-5,5 5,5" fill="none" stroke="%23fff" stroke-width="2"/></svg>') center center no-repeat;
		background-size: contain;
	}

	#main .works .header .nav_arrows .slick-next:hover::before {
		background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="7.121" height="11.414" viewBox="0 0 7.121 11.414"><path d="M6.707,0.707l-5,5 5,5" fill="none" stroke="%23fff" stroke-width="2"/></svg>') center center no-repeat;
		background-size: contain;
	}

	#main .works .nav_arrows_sp .slick-prev:hover {
		background: #4581b5;
	}

	#main .works .nav_arrows_sp .slick-next:hover {
		background: #4581b5;
	}

	#main .works .nav_arrows_sp .slick-prev:hover::before {
		background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="7.121" height="11.414" viewBox="0 0 7.121 11.414"><path d="M6.707,0.707l-5,5 5,5" fill="none" stroke="%23fff" stroke-width="2"/></svg>') center center no-repeat;
		background-size: contain;
	}

	#main .works .nav_arrows_sp .slick-next:hover::before {
		background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="7.121" height="11.414" viewBox="0 0 7.121 11.414"><path d="M6.707,0.707l-5,5 5,5" fill="none" stroke="%23fff" stroke-width="2"/></svg>') center center no-repeat;
		background-size: contain;
	}

	#footer .sitemap .list .item .sub_list_01 .sub_item .link_01:hover .text {
		color: #4581b5;
	}

	#footer .sitemap .list .item .sub_list_01 .sub_item .link_01:hover .text::after {
		width: 100%;
	}

	#footer .sitemap .list .item .sub_list_01 .sub_item .link_01:hover .arrow {
		transform: translateX(5px);
	}

	#footer .sitemap .list .item .sub_list_02 .sub_item .link_02:hover .text {
		color: #4581b5;
	}

	#footer .sitemap .list .item .sub_list_02 .sub_item .link_02:hover .arrow_circle {
		transform: translateX(5px);
	}

	#footer .copyright .links .link:hover {
		opacity: 0.7;
	}

	/* interior(内装)
  ----------------------------------------*/
	.cta_btn:hover {
		background: #fff;
		color: #4581b5;
	}

	.cta_btn:hover .cta_btn_text {
		color: #4581b5;
	}

	.cta_btn:hover .cta_btn_icon {
		background: #4581b5;
		color: #fff;
	}

	.cta_btn:hover .cta_btn_icon svg {
		stroke: #fff;
	}
}

/*----------------------------------------
   メディアクエリ
----------------------------------------*/
@media (max-width: 750px) {
	body {
		min-width: 100%;
	}

	.wrap {
		max-width: 90%;
	}

	a[href$=".pdf"]::before {
		width: 7vw;
		height: 8vw;
		margin-right: 2.5vw;
	}

	a[href$=".pdf"]:hover {
		text-decoration: underline;
	}

	/* パンくず */
	.breadcrumb {
		font-size: 3vw;
	}

	/* SP固定ページ お問い合わせ */
	.contact_form_disc {
		margin-block: 0 2em;
	}

	.contact_form_disc .text {
		font-size: 3.6vw;
		margin-block: 0 0.8em;
	}

	.contact_form_disc .caution {
		font-size: 3.1vw;
		letter-spacing: 0.06em;
	}

	.common_contact_form .form_box {
		margin-block: 0 10vw;
	}

	.common_contact_form .form_box dl {
		grid-template-columns: 1fr;
		gap: 0.6em;
	}

	.common_contact_form .form_box dl+dl {
		margin-block: 1.3em 0;
	}

	.common_contact_form .form_box dl dt {
		flex-direction: row-reverse;
		justify-content: space-between;
		font-size: 4.1vw;
		padding-inline: 0;
	}

	.common_contact_form .form_box dl dt .label {
		font-size: 3.1vw;
	}

	.common_contact_form .form_box dl dt::after {
		content: none;
	}

	.common_contact_form input[type=text],
	.common_contact_form input[type=email],
	.common_contact_form #zip {
		font-size: 3.6vw;
	}

	.common_contact_form select {
		width: 100%;
		font-size: 3.6vw;
	}

	.common_contact_form textarea {
		height: 33vw;
		font-size: 3.6vw;
	}

	.radio_btns,
	.checkboxes {
		gap: 0.5em 2.5em;
	}

	.page_contact #btn_wrap button {
		width: 83%;
		line-height: 15.5vw;
		font-size: 4.6vw;
	}

	.page_contact #btn_wrap button[name=submitBack] {
		margin-top: 4vw;
	}

	.mwform-checkbox-field.horizontal-item {
		display: block;
	}

	.page_contact #btn_wrap {
		width: 100%;
		text-align: center;
	}

	.privacy_check_list .mwform-checkbox-field-text {
		font-size: 3.8vw;
		padding-left: 11vw;
	}

	.mw_wp_form .privacy_check_list .horizontal-item {
		margin-right: 4vw;
	}

	.privacy_check_list .hissu {
		padding: 0.3vw 4vw;
	}

	.privacy_check_list {
		margin-bottom: 6vw;
	}

	.privacy_term_detail {
		font-size: 3.4vw;
		margin: 5vw 0;
	}

	.privacy_term_outer {
		width: 96%;
		padding: 5vw 0;
	}

	.privacy_term_outer .privacy_term_inner .main_text {
		font-size: 3.4vw;
		line-height: 1.6;
		margin-bottom: 5vw;
	}

	.privacy_term_outer .privacy_term_inner dl dt {
		font-size: 3.5vw;
		margin-bottom: 1.5vw;
	}

	.privacy_term_outer .privacy_term_inner dl dd {
		font-size: 3.5vw;
		line-height: 1.6;
	}

	.privacy_term_outer .privacy_term_inner dl+dl {
		margin-top: 7vw;
	}

	.privacy_term_detail::after {
		width: 2.5vw;
		margin: 1.5vw auto 0;
	}

	/* サンクスページ */
	.page_contact .thanks_textArea .name {
		font-size: 4vw;
		margin-bottom: 3vw;
	}

	.page_contact .thanks_textArea .contact_text {
		font-size: 3.5vw;
		margin-bottom: 2em;
		width: 100%;
	}

	.page_contact .thanks_textArea .ichiran_link {
		width: 80%;
		line-height: 12vw;
		font-size: 4vw;
	}

	/* ステップバー デザイン */
	.page_contact .progressbar {
		gap: 4.5em;
		margin-block: 0 2.5em;
	}

	.page_contact .progressbar .item {
		font-size: 3.1vw;
	}

	.page_contact .progressbar .item+.item::before {
		width: 5.7vw;
		top: 63%;
		left: -3.3em;
	}

	.page_contact .progressbar .item .mark {
		width: 7.7vw;
		margin: 0 auto 0.4em;
	}

	/* SP固定ページ 404ページ */
	#page_404 .num {
		font-size: 20vw;
		line-height: 1.5;
	}

	#page_404 .text {
		font-size: 3.5vw;
	}

	/* SP投稿ページ アーカイブページ */
	.archive_page_list>article {
		padding-right: 20px;
	}

	.archive_page_list>article .date {
		width: 80px;
	}

	.archive_page_list>article .content_area {
		width: calc(100% - 80px);
	}

	.archive_page_list>article:after {
		width: 7px;
		height: 7px;
	}

	/* SP固定ページ サイトマップ */
	ul#sitemap_list li {
		margin: 0;
	}

	body #sitemap_list li a {
		font-size: 4vw;
		padding: 1vw 2vw;
		line-height: 9vw;
		margin-bottom: 1vw;
	}

	body #sitemap_list li.home-item {
		margin-bottom: 4vw;
	}

	body #sitemap_list {
		padding: 0;
	}

	/* PC固定ページ 共通設定 */
	.common_page_main {
		padding: 21.79vw 0 0;
	}

	.common_page_main_bg::after {
		top: -21.79vw;
		height: 148.72vw;
		background-image: url(./image/page_mv_bg_sp.png);
	}

	.common_page_main .page_title {
		margin-top: 8.97vw;
		margin-bottom: 8.97vw;
	}

	.common_page_main .page_title .en {
		font-size: 10.26vw;
		line-height: 1.2;
	}

	.common_page_main .page_title .ja {
		font-size: 3.59vw;
		line-height: 1.36;
	}

	.common_page_main .page_mv {
		height: 46.15vw;
		margin-right: calc(50% - 50vw);
	}

	.common_page_wrap {
		padding: 19.23vw 0;
	}

	/* ローディング画面
  ----------------------------------------*/
	.loading_logo {
		width: 51.28vw;
	}

	/* btn
  ----------------------------------------*/
	.btn {
		width: 56.41vw;
		height: 15.38vw;
		border: 1px solid #4581b5;
		background: #4581b5;
	}

	.btn::before {
		display: none;
	}

	.btn .text {
		font-size: 4.1vw;
		color: #fff;
		padding-left: 7.69vw;
	}

	.btn .arrow {
		right: 7.69vw;
		width: 1.83vw;
		height: 2.93vw;
		stroke: #fff;
	}

	.icon_btn {
		width: 71.79vw;
		height: 15.38vw;
	}

	.icon_btn.icon_btn_sp {
		border-color: #4581b5;
		background: #4581b5;
	}

	.icon_btn::before {
		width: 1.28vw;
	}

	.icon_btn.icon_btn_sp::before {
		display: none;
	}

	.icon_btn .icon_box {
		width: 10.26vw;
		height: 10.26vw;
		margin-right: 3.85vw;
	}

	.icon_btn .icon {
		fill: #5a5a5a;
	}

	.icon_btn.icon_btn_sp .icon {
		fill: #fff;
	}

	.icon_btn .text {
		font-size: 4.1vw;
		padding-left: 3.85vw;
	}

	.icon_btn.icon_btn_sp .text {
		color: #fff;
	}

	.icon_btn .text::before {
		height: 7.69vw;
	}

	.icon_btn .arrow {
		right: 7.69vw;
		width: 1.83vw;
		height: 2.93vw;
	}

	.icon_btn.icon_btn_sp .arrow {
		stroke: #fff;
	}

	/* bg
  ----------------------------------------*/
	#main .bg_box .about_bg::after {
		top: 141.03vw;
		height: 155.13vw;
		background: url(image/about_bg_sp.png) no-repeat center center/cover;
	}

	#main .bg_box .service_bg::before {
		top: 261.54vw;
		height: 148.72vw;
		background: url(image/service_bg_sp.png) no-repeat center center/cover;
	}

	#main .bg_box .works_bg::after {
		top: 552.82vw;
		height: 212.56vw;
		background: url(image/works_bg_sp.png) no-repeat center center/cover;
	}

	/*----------------------------------------
  トップページ
  ----------------------------------------*/
	/* spヘッダー
  ----------------------------------------*/
	#sp_header {
		position: fixed;
		left: 10px;
		top: 10px;
		width: calc(100% - 20px);
		background: #fff;
		box-shadow: 3px 3px 12px 0 rgba(0, 0, 0, 0.03);
		z-index: 1000;
		height: 60px;
		display: flex;
		align-items: center;
	}

	#sp_header .logo .link {
		display: block;
		margin-left: 10px;
		width: 200px;
	}

	#sp_header .logo img {
		width: 100%;
		height: 100%;
	}

	/* mv
  ----------------------------------------*/
	#main .mv {
		padding: 54.62vw 0 45.9vw 5.13vw;
	}

	#main .mv::before {
		height: 86%;
		clip-path: polygon(0 0, 100% 0, 100% 84%, 0% 100%);
	}

	#main .mv::after {
		height: 35%;
		width: 100%;
	}

	#main .mv .text {
		font-size: 10.26vw;
		line-height: 1.3;
	}

	#main .mv .title {
		font-size: 3.59vw;
		line-height: 1.6;
		margin-top: 3.85vw;
	}

	/* スライダー */
	#main .mv .slider .slick-list {
		height: 100%;
	}

	#main .mv .slider .slick-track {
		height: 100%;
	}

	#main .mv .slider .slick-dots {
		bottom: 7.69vw;
		left: 5.13vw;
	}

	#main .mv .slider .slick-dots li {
		width: 5.13vw;
	}

	/* news
  ----------------------------------------*/
	#main .news {
		padding: 12.82vw 0 15.38vw;
	}

	#main .news .inner {
		display: grid;
		grid-template-columns: 1fr;
		gap: 5.13vw;
		padding: 8.97vw 2.56vw;
		margin: 0 2.56vw;
	}

	#main .news .header .title_box {
		flex-direction: row;
		gap: 2.56vw;
		align-items: flex-end;
	}

	#main .news .header .title_box .en {
		font-size: 8.21vw;
		line-height: 1.19;
	}

	#main .news .header .title_box .ja {
		font-size: 3.59vw;
		line-height: 2;
	}

	#main .news .list {
		margin-top: 5.13vw;
	}

	#main .news .list .item {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 5.13vw 2.56vw;
	}

	#main .news .list .item::before {
		width: 25.64vw;
	}

	#main .news .list .item .date {
		font-size: 3.59vw;
		min-width: 100%;
	}

	#main .news .list .item .content {
		display: flex;
		flex-direction: column;
		gap: 1.28vw;
		padding-right: 2.56vw;
	}

	#main .news .list .item .title {
		font-size: 3.59vw;
	}

	#main .news .list .item .arrow_circle {
		width: 5.13vw;
		height: 5.13vw;
	}

	#main .news .list .item .arrow_circle .arrow {
		width: 2.23vw;
		height: 1.72vw;
	}

	#main .news .icon_btn {
		width: 56.41vw;
		margin: 1.28vw auto 0;
	}

	#main .news .icon_btn .icon {
		width: 5.13vw;
		height: 3.42vw;
	}

	/* about
  ----------------------------------------*/
	#main .about {
		position: relative;
		padding: 0;
	}

	#main .about .title_box {
		padding-bottom: 5.13vw;
	}

	#main .about .title_box::before {
		width: 12.82vw;
	}

	#main .about .title_box .en {
		font-size: 3.59vw;
		line-height: 1.21;
	}

	#main .about .title_box .ja {
		font-size: 6.15vw;
		line-height: 1.42;
	}

	#main .about .description {
		font-size: 3.59vw;
		margin-top: 6.41vw;
	}

	#main .about .icon_btn {
		margin: 6.41vw auto 0;
	}

	#main .about .icon_btn .icon {
		width: 4.62vw;
		height: 5.27vw;
	}

	/* service
  ----------------------------------------*/
	#main .service {
		padding: 15.38vw 0 0;
	}

	#main .service .title_box {
		gap: 2.56vw;
		margin-left: 1.28vw;
		padding-bottom: 2.82vw;
	}

	#main .service .title_box::after {
		left: -6.41vw;
		width: 6.41vw;
	}

	#main .service .title_box .en {
		font-size: 8.21vw;
		line-height: 1.19;
	}

	#main .service .title_box .ja {
		font-size: 3.59vw;
		line-height: 2;
	}

	#main .service .list {
		gap: 7.69vw;
		margin-top: 5.13vw;
	}

	#main .service .list .item {
		display: grid;
		grid-template-columns: 1fr;
		gap: 4.36vw;
	}

	#main .service .list .item.item_reverse {
		grid-template-columns: 1fr;
	}

	#main .service .list .item.item_reverse .img {
		order: 1;
	}

	#main .service .list .item.item_reverse .content {
		order: 2;
	}

	#main .service .list .item .img {
		height: 46.15vw;
	}

	#main .service .list .item .content .title {
		gap: 3.85vw;
		padding-bottom: 1.28vw;
	}

	#main .service .list .item .content .title .number_box {
		font-size: 3.59vw;
		line-height: 1.57;
	}

	#main .service .list .item .content .title .number_box .number {
		font-size: 6.15vw;
	}

	#main .service .list .item .content .title .name {
		font-size: 5.13vw;
	}

	#main .service .list .item .content .description {
		font-size: 3.59vw;
		margin-top: 3.85vw;
	}

	#main .service .list .item .content .btn {
		margin: 3.85vw auto 0;
	}

	/* works
  ----------------------------------------*/
	#main .works {
		padding: 15.38vw 0 16.67vw;
	}

	#main .works .header {
		margin-bottom: 6.41vw;
	}

	#main .works .header .title_box {
		gap: 2.56vw;
		margin-left: 1.28vw;
		padding-bottom: 2.82vw;
	}

	#main .works .header .title_box::after {
		left: -6.41vw;
		width: 6.41vw;
	}

	#main .works .header .title_box .en {
		font-size: 8.21vw;
		line-height: 1.19;
	}

	#main .works .header .title_box .ja {
		font-size: 3.59vw;
		line-height: 2;
	}

	#main .works .slider {
		margin-bottom: 0;
		margin-right: calc(50% - 50vw);
	}

	#main .works .slider .slide {
		margin: 0 2.56vw;
		width: 46.15vw;
		height: 64.1vw;
	}

	#main .works .slider .slide img {
		filter: grayscale(0%);
	}

	#main .works .slider .slide .cat {
		bottom: 2.56vw;
		left: 2.56vw;
		font-size: 3.59vw;
	}

	#main .works .nav {
		display: block;
		position: relative;
		margin-top: 3.85vw;
		width: 100%;
		height: 12.82vw;
	}

	#main .works .nav_dots_sp {
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		display: flex;
		align-items: center;
	}

	#main .works .nav_arrows_sp {
		display: flex;
		align-items: center;
		gap: 2.56vw;
	}

	#main .works .nav_dots_sp .slick-dots {
		position: static;
		display: flex;
		gap: 2.56vw;
		width: auto;
		padding: 0;
		margin: 0;
		list-style: none;
		align-items: center;
		height: 12.82vw;
	}

	#main .works .nav_dots_sp .slick-dots li {
		width: 2.56vw;
		height: 2.56vw;
		margin: 0;
	}

	#main .works .nav_dots_sp .slick-dots li button {
		width: 100%;
		height: 100%;
		padding: 0;
		background: #d1d1d1;
		border: none;
		cursor: pointer;
		transition: all 0.3s;
		font-size: 0;
		line-height: 0;
		color: transparent;
	}

	#main .works .nav_dots_sp .slick-dots li button::before {
		content: none;
	}

	#main .works .nav_dots_sp .slick-dots li.slick-active button {
		background: #4581b5;
	}

	#main .works .nav_arrows_sp .slick-prev {
		position: absolute;
		width: 12.82vw;
		height: 12.82vw;
		background: #fff;
		border: 1px solid #d1d1d1;
		cursor: pointer;
		z-index: 10;
		font-size: 0;
		line-height: 0;
		color: transparent;
		margin: 0;
		transform: unset;
		top: 50%;
		left: 12.82vw;
		transform: translateY(-50%);
		transition: all 0.3s;
	}

	#main .works .nav_arrows_sp .slick-next {
		position: absolute;
		width: 12.82vw;
		height: 12.82vw;
		background: #fff;
		border: 1px solid #d1d1d1;
		cursor: pointer;
		z-index: 10;
		font-size: 0;
		line-height: 0;
		color: transparent;
		margin: 0;
		transform: unset;
		top: 50%;
		right: 12.82vw;
		transform: translateY(-50%);
		transition: all 0.3s;
	}

	#main .works .nav_arrows_sp .slick-prev::before {
		position: absolute;
		content: "";
		display: inline-block;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		width: 1.83vw;
		height: 2.93vw;
		background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="7.121" height="11.414" viewBox="0 0 7.121 11.414"><path d="M6.707,0.707l-5,5 5,5" fill="none" stroke="%234581b5" stroke-width="2"/></svg>') center center no-repeat;
		background-size: contain;
		transition: all 0.3s;
	}

	#main .works .nav_arrows_sp .slick-next::before {
		position: absolute;
		content: "";
		top: 50%;
		left: 50%;
		width: 1.83vw;
		height: 2.93vw;
		background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="7.121" height="11.414" viewBox="0 0 7.121 11.414"><path d="M6.707,0.707l-5,5 5,5" fill="none" stroke="%234581b5" stroke-width="2"/></svg>') center center no-repeat;
		background-size: contain;
		transform: translate(-50%, -50%) rotate(180deg);
		transition: all 0.3s;
	}

	#main .works .links {
		display: flex;
		flex-direction: column;
		align-items: center;
		margin-top: 6.41vw;
		gap: 2.56vw;
	}

	#main .works .links .left_links {
		display: flex;
		gap: 5.13vw;
	}

	#main .works .links .link {
		display: flex;
		align-items: center;
		gap: 3.08vw;
		padding: 3.08vw 6.15vw;
		background: #fff;
		border: 1px solid #d1d1d1;
		text-decoration: none;
		color: #5a5a5a;
		font-size: 3.59vw;
		font-weight: 500;
		transition: all 0.3s;
	}

	#main .works .links .icon_btn .icon_building {
		width: 4.62vw;
		height: 5.27vw;
	}

	#main .works .links .icon_btn .icon_tools {
		width: 5.13vw;
		height: 5.02vw;
	}

	/* ビフォーアフターモーダル（SP） */
	.before_after_modal {
		padding: 7.69vw 5.13vw;
		max-width: 95%;
	}

	.before_after_modal_content {
		flex-direction: column;
		gap: 5.13vw;
	}

	.before_after_modal_label {
		font-size: 6.15vw;
		margin: 0 0 2.56vw 0;
	}

	.before_after_modal_img_wrap {
		width: 100%;
		height: 46.15vw;
	}

	/* recruit
  ----------------------------------------*/
	#main .recruit {
		padding: 15.38vw 0;
	}

	#main .recruit::before {
		left: 2.56vw;
		width: 91.03vw;
		height: 25.64vw;
		background: url(image/recruit_bg_sp.png) no-repeat center center/cover;
	}

	#main .recruit .wrap {
		grid-template-columns: 1fr;
		gap: 4.62vw;
	}

	#main .recruit .img_box {
		width: 100%;
		height: 66.67vw;
	}

	#main .recruit .img_box img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	#main .recruit .content .title_box {
		margin-top: 0;
	}

	#main .recruit .content .title_box .en {
		font-size: 3.59vw;
	}

	#main .recruit .content .title_box .ja {
		font-size: 6.15vw;
	}

	#main .recruit .content .description {
		font-size: 3.59vw;
		margin-top: 3.85vw;
	}

	#main .recruit .content .icon_btn {
		margin: 6.41vw auto 0;
	}

	#main .recruit .content .icon_btn .icon {
		width: 5.13vw;
		height: 3.85vw;
	}

	/* footer
  ----------------------------------------*/
	#footer .main {
		padding: 15.38vw 0 14.1vw;
	}

	#footer .main .footer_inner {
		display: grid;
		grid-template-columns: 1fr;
		gap: 6.41vw;
	}

	#footer .company .logo {
		width: 76.92vw;
		margin: 0 auto;
	}

	#footer .company .map {
		width: 100%;
		height: 51.28vw;
		margin-top: 5.13vw;
	}

	#footer .company .address {
		margin-top: 3.85vw;
		font-size: 3.59vw;
		text-align: center;
	}

	#footer .company .tel {
		font-size: 8.21vw;
		padding-left: 7.69vw;
		display: block;
		width: fit-content;
		margin: 2.56vw auto 0;
	}

	#footer .company .tel {
		pointer-events: auto;
	}

	#footer .company .tel::before {
		width: 5.13vw;
		height: 5.13vw;
	}

	#footer .company .hours {
		margin-top: 1.28vw;
		font-size: 3.59vw;
		text-align: center;
	}

	#footer .contact_area {
		margin-top: 6.41vw;
	}

	#footer .contact_area .title_box {
		border-bottom: 1px solid #dbdbdb;
	}

	#footer .contact_area .title {
		display: block;
		font-size: 5.13vw;
		font-weight: 700;
		color: #4581b5;
		line-height: 1.2;
		position: relative;
		font-family: "Figtree", sans-serif;
		width: fit-content;
		margin: 0 auto;
		padding-bottom: 1.79vw;
	}

	#footer .contact_area .title::after {
		content: "";
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 3px;
		background: #4581b5;
	}

	#footer .contact_area .list {
		display: flex;
		flex-direction: column;
		gap: 5.13vw;
		margin-top: 7.18vw;
	}

	#footer .contact_area .list .item {
		display: flex;
	}

	#footer .contact_area .list .item .link {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
	}

	#footer .contact_area .list .item .link .text {
		font-size: 3.59vw;
		color: #5a5a5a;
		line-height: 1.36;
	}

	#footer .contact_area .list .item .link .arrow {
		stroke: #4581b5;
		width: 1.83vw;
		height: 2.93vw;
	}

	#footer .copyright {
		background: #4581b5;
	}

	#footer .copyright .copyright_inner {
		display: flex;
		flex-direction: column-reverse;
		justify-content: center;
		gap: 6px;
		height: 60px;
	}

	#footer .copyright .text {
		font-size: 12px;
	}

	#footer .copyright .links {
		gap: 30px;
	}

	#footer .copyright .links .link {
		font-size: 12px;
	}

	/* interior(内装)　exterior(外装)　　infrastructure（インフラ整備）
  ----------------------------------------*/
	.common_page_wrap {
		padding: 19.23vw 0 0;
	}

	/*----------------------------------------
  message
  ----------------------------------------*/
	.message_title {
		font-size: 5.64vw;
		margin-bottom: 5.13vw;
	}

	.message_description {
		font-size: 4.1vw;
		margin-top: 5.13vw;
	}

	/*----------------------------------------
  point
  ----------------------------------------*/
	.point {
		padding: 15.38vw 0;
	}

	.page_interior .point,
	.page_infrastructure .point {
		padding: 0 0 15.38vw;
	}

	.point .list {
		gap: 10.26vw;
	}

	.point .item {
		display: grid;
		grid-template-columns: 1fr;
		gap: 3.85vw;
	}

	.point .item.reverse {
		grid-template-columns: 1fr;
	}

	.point .item.reverse .image_box {
		order: 1;
	}

	.point .item.reverse .content {
		order: 2;
	}

	.point .item .content .point_title_box {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 0;
	}

	.point .item .content .point_title_box .number_box {
		gap: 1.28vw;
		margin-top: 0;
		padding: 0;
		flex-direction: row;
		background-color: unset;
	}

	.point .item .content .point_title_box .number_box .number_label {
		font-size: 5.13vw;
		color: #4581b5;
		writing-mode: unset;
		text-orientation: unset;
	}

	.point .item .content .point_title_box .number_box .number {
		font-size: 5.13vw;
		color: #4581b5;
		writing-mode: unset;
		text-orientation: unset;
	}

	.point .item .content .point_title {
		font-size: 5.64vw;
	}

	.point .item .content .point_description {
		font-size: 4.1vw;
		margin-top: 3.85vw;
	}

	.point .item .image_box {
		width: 100%;
		height: 51.28vw;
		overflow: hidden;
	}

	/*----------------------------------------
  trouble
  ----------------------------------------*/
	.trouble {
		padding: 15.38vw 0;
	}

	.trouble .trouble_title {
		font-size: 6.15vw;
		margin-bottom: 7.69vw;
		padding-bottom: 2.56vw;
	}

	.trouble .trouble_title::after {
		width: 15.38vw;
	}

	.trouble .trouble_category_container {
		flex-direction: column;
		gap: 7.69vw;
		padding: 0 5.13vw;
	}

	.trouble .trouble_category {
		display: flex;
		flex-direction: column;
		gap: 5.13vw;
		padding: 7.69vw 5.13vw;
	}

	.trouble .trouble_category .category_title {
		font-size: 4.62vw;
		font-weight: 700;
	}

	.trouble .trouble_category .trouble_content {
		min-height: 76.92vw;
		padding-bottom: 41.03vw;
	}

	.trouble .trouble_category .trouble_illustration {
		width: 33.33vw;
	}

	.trouble .trouble_category .trouble_illustration.left {
		width: 33.33vw;
	}

	.trouble .trouble_category .trouble_bubbles {
		flex-direction: column;
		gap: 2.56vw;
	}

	.trouble .trouble_category .bubble .bubble_text {
		font-size: 3.08vw;
	}

	.trouble .trouble_category .bubble {
		padding: 1.28vw 2.56vw;
		max-width: 100%;
		border-radius: 10px;
	}

	.trouble .trouble_category .bubble::after {
		display: none;
	}

	.trouble .trouble_category .bubble.left::after {
		right: -4.1vw;
	}

	.trouble .trouble_category .bubble.right::after {
		left: -4.1vw;
	}

	.trouble .trouble_category .bubble::before {
		display: none;
	}

	.trouble .trouble_category .bubble.left::before {
		right: -2.05vw;
	}

	.trouble .trouble_category .bubble.right::before {
		left: -2.05vw;
	}

	/*----------------------------------------
  flow
  ----------------------------------------*/
	.flow {
		padding: 15.38vw 0;
	}

	.page_exterior .flow,
	.page_infrastructure .flow {
		padding: 0;
	}

	.page_exterior .flow::after {
		height: 192.31vw;
	}

	.page_infrastructure .flow::after {
		height: 102.56vw;
	}

	.flow_title {
		font-size: 6.15vw;
		margin-bottom: 7.69vw;
		padding-bottom: 2.56vw;
	}

	.flow_title::after {
		width: 15.38vw;
	}

	.flow .list {
		grid-template-columns: 1fr;
		gap: 7.69vw;
	}

	.page_interior .flow .list,
	.page_infrastructure .flow .list {
		grid-template-columns: 1fr;
	}

	.page_infrastructure .flow .list.three {
		grid-template-columns: 1fr;
	}

	.page_interior .flow .item::after {
		top: 100%;
		left: 50%;
		transform: translateX(-50%);
		width: 2.56vw;
		height: 7.69vw;
		background: #4581b5;
		z-index: -1;
	}

	.flow .item .step_number_box {
		padding: 1.28vw 2.56vw;
		margin: 2.56vw auto 0;
	}

	.flow .item .step_number_box .step_number_label {
		font-size: 4.62vw;
	}

	.flow .item .step_number_box .step_number {
		font-size: 4.62vw;
	}

	.flow .item .image_box {
		height: 20.51vw;
		margin: 1.28vw auto 0;
	}

	.flow .item .content {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 1.28vw;
		padding: 2.56vw 5.13vw 5.13vw;
		flex: 1;
	}

	.flow .item .content .step_title {
		font-size: 4.62vw;
		min-height: auto;
	}

	.flow .item .content .step_description {
		font-size: 3.33vw;
		line-height: 1.75;
	}

	/*----------------------------------------
  cta
  ----------------------------------------*/
	.cta {
		padding: 15.38vw 0;
	}

	.cta_content {
		padding: 5.13vw;
	}

	.cta_text {
		font-size: 4.62vw;
		margin-bottom: 5.13vw;
	}

	.cta_btn {
		padding: 3.85vw 5.13vw;
		width: 61.54vw;
		justify-content: start;
	}

	.cta_btn_text {
		font-size: 4.62vw;
		padding-left: 7.69vw;
	}

	.cta_btn_icon {
		width: 7.69vw;
		height: 7.69vw;
		right: 5.13vw;
	}

	.cta_btn_icon svg {
		width: 5.13vw;
		height: 5.13vw;
	}

	/* exterior(外装)　　infrastructure（インフラ整備）
  ----------------------------------------*/
	/*----------------------------------------
     process_flow
  ----------------------------------------*/
	.process_flow {
		padding: 15.38vw 0;
	}

	.process_flow_title {
		font-size: 6.15vw;
		margin-bottom: 7.69vw;
		padding-bottom: 2.56vw;
	}

	.process_flow_title::after {
		width: 15.38vw;
	}

	.process_flow_list {
		grid-template-columns: 1fr;
		gap: 5.13vw;
	}

	.process_flow_list.two {
		flex-direction: column;
		gap: 5.13vw;
	}

	.process_flow_item {
		max-width: 100%;
		padding: 7.69vw 5.13vw 12.82vw;
		clip-path: polygon(0 0, 100% 0, 100% calc(100% - 7.69vw), 50% 100%, 0 calc(100% - 7.69vw));
		margin-right: 0 !important;
	}

	.process_flow_item_step3 {
		clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 100%, 0 100%);
	}

	.process_flow_item_header {
		margin-bottom: 2.56vw;
	}

	.process_flow_step_label {
		font-size: 4.62vw;
	}

	.process_flow_step_number {
		font-size: 4.62vw;
	}

	.process_flow_item_title {
		font-size: 5.13vw;
		margin-bottom: 5.13vw;
	}

	.process_flow_item_sub_list {
		gap: 2.56vw;
	}

	.process_flow_item_description {
		font-size: 4.1vw;
	}

	/*----------------------------------------
  construction_flow
  ----------------------------------------*/
	.construction_flow {
		padding: 15.38vw 0;
	}

	.construction_flow_title {
		font-size: 6.15vw;
		margin-bottom: 7.69vw;
		padding-bottom: 2.56vw;
	}

	.construction_flow_title::after {
		width: 15.38vw;
	}

	.construction_flow .title {
		font-size: 5vw;
	}

	.construction_flow_list {
		grid-template-columns: 1fr;
		gap: 7.69vw;
	}

	.construction_flow_item {
		align-items: center;
	}

	.construction_flow_item::after {
		top: 100%;
		left: 50%;
		transform: translateX(-50%);
		width: 2.56vw;
		height: 7.69vw;
		background: #4581b5;
		z-index: -1;
	}

	.construction_flow_item:nth-child(4)::after {
		display: block;
	}

	.construction_flow_item .construction_flow_step_number_box {
		padding: 1.28vw 2.56vw;
		margin: 5.13vw auto 0;
	}

	.construction_flow_item .construction_flow_step_number_box .construction_flow_step_number_label {
		font-size: 4.62vw;
	}

	.construction_flow_item .construction_flow_step_number_box .construction_flow_step_number {
		font-size: 4.62vw;
	}

	.construction_flow_item .construction_flow_image_box {
		height: 25.64vw;
		width: 25.64vw;
		margin: 2.56vw auto 0;
	}

	.construction_flow_item .construction_flow_content {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 1.28vw;
		padding: 5.13vw;
		flex: 1;
	}

	.construction_flow_item .construction_flow_content .construction_flow_step_title {
		font-size: 4.62vw;
		min-height: auto;
	}

	.construction_flow_item .construction_flow_content .construction_flow_step_description {
		font-size: 4.1vw;
		line-height: 1.75;
	}

	/* construction-history（工事経歴）
  ----------------------------------------*/
	.page_construction_history .common_page_wrap {
		padding: 14vw 0;
	}

	.page_construction_history .construction_table_wrapper {
		width: 100%;
	}

	.page_construction_history .construction_table {
		display: block;
	}

	.page_construction_history .construction_row {
		display: block;
		background: #fff;
		border: 1px solid #ddd;
		border-radius: 8px;
		margin-bottom: 3.85vw;
		padding: 3.85vw;
	}

	.page_construction_history .construction_row:nth-child(odd) {
		background: #daebf8;
	}

	.page_construction_history .construction_header {
		display: none !important;
	}

	.page_construction_history .construction_row>div {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100% !important;
		padding: 2.05vw 0 !important;
		border-bottom: 1px solid #eee;
		text-align: left !important;
	}

	.page_construction_history .construction_row>div:last-child {
		border-bottom: none;
	}

	.page_construction_history .label_sp {
		display: inline-block !important;
		font-weight: 700;
		margin-right: 2.05vw;
		font-size: 3.59vw;
		width: 26%;
		color: #4581b5;
	}

	.page_construction_history .value {
		display: inline;
		font-size: 3.59vw;
	}

	.page_construction_history .col_client,
	.page_construction_history .col_project,
	.page_construction_history .col_amount,
	.page_construction_history .col_date,
	.page_construction_history .col_location {
		width: 100% !important;
	}

	/* partners（主要取引先）
  ----------------------------------------*/
	.page_partners .common_page_wrap {
		padding: 6.15vw 0 10.26vw;
	}

	.page_partners .partners_title {
		font-size: 6.15vw;
		margin-bottom: 10.26vw;
	}

	.page_partners .partners_section {
		margin-bottom: 12.82vw;
	}

	.page_partners .section_heading {
		margin-bottom: 6.41vw;
	}

	.page_partners .section_heading .section_heading_text {
		font-size: 5.13vw;
		padding-bottom: 2.05vw;
	}

	.page_partners .partners_list {
		grid-template-columns: 1fr;
		gap: 2.56vw 0;
	}

	.page_partners .partners_list li {
		font-size: 3.59vw;
		padding-left: 4.62vw;
	}

	.page_partners .partners_list li::before {
		width: 2.56vw;
	}

	/* recruit（採用情報）
  ----------------------------------------*/
	.breadcrumb {
		margin-block: 0 12vw;
	}

	.page_recruit_main .title_box .title {
		font-size: 5.6vw;
	}

	.page_recruit .common_page_wrap {
		padding-block: 14vw;
	}

	.page_recruit .lead_text {
		font-size: 3.6vw;
		gap: 0.5em;
	}

	.page_recruit .lead_text .title {
		font-size: 5.6vw;
	}

	.page_recruit .lead_text .text_box {
		flex-direction: column;
		gap: 10.26vw;
	}

	.page_recruit .lead_text .text_box .logo_area {
		width: 51.28vw;
		height: auto;
		overflow: hidden;
		margin-left: 0;
		margin-bottom: 10.26vw;
	}

	.page_recruit .common_sec_title .title {
		font-size: 6.1vw;
	}

	.recruit_cont_sec .tab_box {
		padding: 1.5vw;
		margin-block: 7.5vw;
	}

	.recruit_cont_sec .tab_box ul {
		grid-template-columns: repeat(2, 1fr);
		gap: 0.3em;
	}

	.recruit_cont_sec .tab_box li {
		min-block-size: 11.5vw;
		font-size: 3.6vw;
	}

	.recruit_cont_sec .panel .main_box {
		grid-template-columns: 1fr;
		gap: 5vw;
		margin-block: 0 13vw;
	}

	.recruit_cont_sec .panel .main_box .img img {
		aspect-ratio: 35/18;
	}

	.recruit_cont_sec .panel .main_box .text_box {
		padding-block: 0;
	}

	.recruit_cont_sec .panel .main_box .text_box .title_box {
		margin-block: 0 1.4em;
	}

	.recruit_cont_sec .panel .main_box .common_sec_title {
		margin-block: 0 0.7em;
	}

	.recruit_cont_sec .panel .main_box .text_box .title_box .text {
		font-size: 3.6vw;
		line-height: 1.6;
	}

	.recruit_cont_sec .panel .main_box .text_box .list li+li {
		margin-block: 0.8em 0;
	}

	.recruit_cont_sec .panel .main_box .text_box .list li .title {
		background: #e3e3e3;
		font-size: 4.6vw;
		padding: 0.4em 0.6em;
		margin-block: 0 0.5em;
	}

	.recruit_cont_sec .panel .main_box .text_box .list li .textarea {
		padding-inline: 0;
	}

	.recruit_cont_sec .panel .main_box .text_box .list li .textarea .text {
		font-size: 3.3vw;
		line-height: 1.6;
	}

	.recruit_cont_sec .panel .desc_box {
		width: 95vw;
		padding: 13vw 2.5vw;
		position: relative;
		left: calc(50% - 47.5vw);
	}

	.recruit_cont_sec .panel .desc_box .common_sec_title {
		text-align: left;
		margin-block: 0 1.2em;
	}

	.recruit_cont_sec .panel .desc_box .table_box table {
		border-bottom: 1px solid #ccc;
	}

	.recruit_cont_sec .panel .desc_box .table_box table th,
	.recruit_cont_sec .panel .desc_box .table_box table td {
		display: block;
		width: 100%;
	}

	.recruit_cont_sec .panel .desc_box .table_box table th {
		font-size: 3.6vw;
		border-width: 1px 0 0;
		padding: 1em 0.7em 1em;
	}

	.recruit_cont_sec .panel .desc_box .table_box table td {
		font-size: 3.3vw;
		border: none;
		padding: 1em 0.7em 1em;
	}

	.page_recruit .section_vision {
		padding-top: 15.4vw;
	}

	.page_recruit .section_vision::before {
		left: 2.56vw;
		width: 91.03vw;
		height: 25.64vw;
		background: url(image/recruit_bg_sp.png) no-repeat center center/cover;
	}

	.page_recruit .section_vision .flex_box {
		display: block;
	}

	.page_recruit .section_vision .image {
		width: 100%;
		margin-bottom: 4.5vw;
	}

	.page_recruit .section_vision .text_box {
		width: 100%;
	}

	.page_recruit .section_vision .text_box .en {
		font-size: 3.6vw;
		margin-bottom: 1.9vw;
	}

	.page_recruit .section_vision .text_box .catch {
		margin-bottom: 3.8vw;
	}

	.page_recruit .section_vision .text_box .text {
		font-size: 3.6vw;
	}

	.page_recruit .common_title_box {
		margin-bottom: 5.1vw;
		gap: 2.6vw;
	}

	.page_recruit .common_title_box .en {
		font-size: 8.2vw;
	}

	.page_recruit .common_title_box .title {
		transform: translateY(0.5vw);
		font-size: 3.6vw;
	}

	.page_recruit .common_contents_list ol li+li {
		margin-top: 9.0vw;
	}

	.page_recruit .common_contents_list ol li .image {
		width: 100%;
		margin-bottom: 3.8vw;
		height: 46.2vw;
	}

	.page_recruit .common_contents_list ol li .image img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.page_recruit .common_contents_list ol li:nth-child(even) .image {
		order: -1;
	}

	.page_recruit .common_contents_list ol li .text_box {
		width: 100%;
	}

	.page_recruit .common_contents_list ol li .text_box .title_box {
		gap: 2.8vw;
		padding-bottom: 1.3vw;
		margin-bottom: 3.8vw;
	}

	.page_recruit .common_contents_list ol li .text_box .title_box .en {
		font-size: 3.6vw;
	}

	.page_recruit .common_contents_list ol li .text_box .title_box .en .num {
		font-size: 6.2vw;
	}

	.page_recruit .common_contents_list ol li .text_box .title_box .title {
		font-size: 4.6vw;
	}

	.page_recruit .common_contents_list ol li .text_box .text {
		font-size: 3.6vw;
	}

	.page_recruit .section_reason {
		padding-top: 10.5vw;
		padding-bottom: 13.8vw;
		margin-bottom: 15.4vw;
	}

	.page_recruit .section_reason:before {
		top: 0;
		height: 212.56vw;
		background: url(image/works_bg_sp.png) no-repeat center center/cover;
	}

	.page_recruit .section_reason .title_box {
		margin-bottom: 16.7vw;
	}

	.page_recruit .section_reason .title_box:before {
		width: 12.8vw;
		bottom: -6.4vw;
	}

	.page_recruit .section_reason .title_box .en {
		font-size: 3.6vw;
	}

	.page_recruit .section_reason .title_box .title {
		font-size: 6.2vw;
	}

	.page_recruit .section_reason ol {
		display: block;
	}

	.page_recruit .section_reason ol li {
		width: 100%;
		display: flex;
		align-items: center;
		justify-content: space-between;
	}

	.page_recruit .section_reason ol li+li {
		margin-top: 8.5vw;
	}

	.page_recruit .section_reason ol li .num {
		font-size: 8.2vw;
		color: #4581B5;
		font-family: "Figtree", sans-serif;
		font-weight: 700;
		position: absolute;
		left: 50%;
		top: -4.6vw;
		transform: translateX(-50%);
		z-index: 2;
	}

	.page_recruit .section_reason ol li .illust {
		width: 25.6vw;
		height: 25.6vw;
		margin-bottom: 0;
	}

	.page_recruit .section_reason ol li:nth-child(1) .illust img {
		width: 10.5vw;
	}

	.page_recruit .section_reason ol li:nth-child(2) .illust img {
		width: 10.8vw;
	}

	.page_recruit .section_reason ol li:nth-child(3) .illust img {
		width: 10.3vw;
	}

	.page_recruit .section_reason ol li:nth-child(4) .illust img {
		width: 12.1vw;
	}

	.page_recruit .section_reason ol li:nth-child(5) .illust img {
		width: 9.7vw;
	}

	.page_recruit .section_reason ol li .text_box {
		width: 60.3vw;
		text-align: left;
	}

	.page_recruit .section_reason ol li .text_box .title {
		font-size: 4.6vw;
		margin-bottom: 2.6vw;
	}

	.page_recruit .section_reason ol li .text_box .text {
		font-size: 3.6vw;
	}

	.page_recruit .section_works {
		padding-top: 16.4vw;
		margin-bottom: 19.2vw;
	}

	.page_recruit .section_works:before {
		height: 284.6vw;
		background: url(image/recruit_works_bg_sp.webp) no-repeat center center/cover;
	}

	.page_recruit .section_welfare {
		padding-bottom: 14.1vw;
		margin-bottom: 15.4vw;
	}

	.page_recruit .section_welfare::before {
		width: 94.9vw;
		height: 87.9vw;
		background: url(image/welfare_bg_sp.webp) no-repeat center center/cover;
	}

	.archive_works .common_page_wrap {
		padding: 20vw 0;
	}

	.common_works_list table th,
	.common_works_list table td {
		font-size: 3.5vw;
	}

	.works .common_works_list {
		height: 50vw;
		border: 2px solid #4581b5;
	}
}