@charset "utf-8";

/* common
-------------------------------------------------------*/
*{
	box-sizing: border-box;
}
#wrapper {
	overflow: hidden;
}
.sp {
	display: none;
}
.area {
	padding: 100px 20px;
	box-sizing: border-box;
}
.inner {
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
	box-sizing: border-box;
}
.inner1200 {
	max-width: 1200px;
}
.blue {
	color: var(--color01);
}
.pink {
	color: #bb469a;
}
.bg_blue01 {
	background: var(--color02);
}
.bg_blue02 {
	background: #dde3e7;
}
.bg_blue03 {
	background: var(--color04);
}
.bg_blue04 {
	background: var(--color04);
}
.bg_blue05 {
	background: var(--color05);
}
.pink_bg {
	background: #bb469a !important;
}
.btn01 a {
	background: var(--color01);
	color: #fff;
	text-align: center;
	font-size: 2rem;
	font-weight: 700;
	border-radius: 10px;
	max-width: 200px;
	height: 50px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 50px auto 0;
	transition: 0.3s;
	border: 2px solid var(--color01);
}
.btn01 a:hover {
	color: var(--color01);
	background: #fff;
	opacity: 1;
}
.btn01.col_w a {
	background: #fff;
	color: #000;
	border: 2px solid #fff;
}
.btn01.col_w a:hover {
	color: #fff;
	background: var(--color01);
}
.btn01.col_b a {
	background: var(--color03);
	color: rgb(255, 255, 255);
	border: 2px solid var(--color03);
}
.btn01.col_b a:hover {
	background: #fff;
	color: var(--color03);
}
.txt_center {
	text-align: center;
}
.ttl01 {
	text-align: center;
	font-weight: 700;
	font-size: 3.5rem;
	letter-spacing: 0.06em;
	margin-bottom: 30px;
}
.ttl01_bar {
	text-align: center;
	font-size: 2.8rem;
	color: var(--color01);
	letter-spacing: 0.02em;
	margin: 0 auto 50px;
}
.ttl01_bar span {
	background: url(../img/common/title_bar.png)repeat-x bottom left/9px 5px;
	padding: 0 5px 15px;
}
.ttl02_border {
	text-align: center;
	font-size: 3.7rem;
	border-top: 2px solid var(--color01);
	border-bottom: 2px solid var(--color01);
	padding: 20px 0;
	margin-bottom: 70px;
	font-weight: 700;
}
.ub_y {
	background: linear-gradient(transparent 70%, #ffe100 70%);
}
.bold {
	font-weight: 700;
}


.mb30 {
	margin-bottom: 30px;
}

@media screen and (max-width:768px) {
	.pc {
		display: none;
	}
	.sp {
		display: block;
	}
	.area {
		padding: 30px 20px;
	}
	.inner {
		max-width: 100%;
	}
	.mb30 {
		margin-bottom: 15px;
	}
	.ttl02_border {
		font-size: 2rem;
		padding: 15px 0;
		margin-bottom: 30px;
	}
	.ttl01_bar {
	font-size: 2rem;

}

}


/* header
-------------------------------------------------------*/
#header {
	padding: 25px 0;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	transition: background-color 0.3s ease, padding 0.3s ease, box-shadow 0.3s ease;
	z-index: 999;
}
#header .logo img {
	max-width: 138px;
}

.meisei_logo {
	margin-left: 20px;
}

@media screen and (max-width:1500px) {
	#header .logo img {
	max-width: 100px;
}
}

#header .inner {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	justify-content: space-between;
	max-width: 100%;
	padding: 0 20px;
}
.list_nav {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	justify-content: center;
	font-size: 1.8rem;
	font-weight: 700;
}
@media screen and (max-width:1400px) {
	.list_nav {
		font-size: 1.5rem;
	}
}
.list_nav li {
	margin: 0 15px;
}

.list_nav li a {
	text-shadow: -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff;
}

.header_contact {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	justify-content: flex-end;
	margin-right: -20px;
}
.header_contact.sp {
	display: none;
}
.header_contact img {
	max-width: 37px;
}
.header_contact li:first-child {
	margin-right: 0;
	background: var(--color01);
}
.btn_tel a {
	display: block;
	color: #fff;
	background: var(--color01);
	text-align: center;
	font-weight: 700;
	padding: 5px 30px;
	font-size: 1.9rem;
	position: relative;
	overflow: hidden;
}
.btn_tel a:hover {
	opacity: 1;
}
.btn_tel a::after {
	content: "";
	position: absolute;
	top: 0;
	left: -150%;
	width: 50%;
	height: 100%;
	background: linear-gradient(
	120deg,
	transparent 0%,
	rgba(255,255,255,0.4) 50%,
	transparent 100%
	);
	transform: skewX(-25deg);
}
.btn_tel a:hover::after {
	animation: shine 0.8s ease;
}
@keyframes shine {
  0% {
    left: -150%;
  }
  100% {
    left: 150%;
  }
}

.header_contact span {
	display: block;
	text-align: center;
	font-size: 1.1rem;
	font-weight: 700;
}
#header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
}
#header.is-scrolled {
	padding: 10px 0;
	background-color: rgba(255, 255, 255, 1);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

@media screen and (max-width:1280px) {
	.list_nav {
		font-size: 1.5rem;
	}
	.list_nav li {
  margin: 0 10px;
}
.btn_tel a {
	font-size: 1.5rem;
	padding: 5px 15px;
}
.header_contact span {
	font-size: .8rem;
}

}

@media screen and (max-width:1140px) {
	.list_nav {
		font-size: 1.1rem;
	}
	.list_nav li {
  margin: 0 7px;
}
}


.hamburger {
	display: none;
}
#header .list_contact {
	display: none;
}
@media screen and (max-width:940px) {
	#header {
		padding: 15px 0;
	}
	#header .logo img {
		max-width: 90px;
	}
	
	#header .list_nav {
		display: block;
		margin-left: 50px;
	}
	#header .list_nav li {
		width: 100%;
		font-size: 1.5rem;
		margin-bottom: 15px;
		padding-bottom: 15px;
		border-bottom: 1px solid #666;
	}

	.hamburger {
		width: 35px;
		height: 24px;
		position: fixed;
		top: 15px;
		right: 10px;
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		background: none;
		border: none;
		cursor: pointer;
		z-index: 9998;
	}
	.hamburger span {
		display: block;
		width: 100%;
		height: 2px;
		background: #004C98;
		border-radius: 2px;
		transition: all 0.3s ease;
	}
	.hamburger.open span:nth-child(1) {
		transform: translateY(10px) rotate(45deg);
	}
	.hamburger.open span:nth-child(2) {
		opacity: 0;
	}
	.hamburger.open span:nth-child(3) {
		transform: translateY(-10px) rotate(-45deg);
	}
	#nav {
		position: fixed;
		top: 0;
		right: -100%;
		width: 100%;
		height: 100vh;
		background: rgba(255,255,255,0.85);
		transition: right 0.7s ease;
		padding-top: 60px;
		backdrop-filter: blur(5px);
		z-index: 9997;
	}
	#nav.open {
		right: 0;
	}


	.btn_tel a {
		display: none;
		position: fixed;
		width: 100%;
		left: 0;
		bottom: 0;
		border-radius: 0;
		z-index: 9998;
	}
	#header .list_contact {
		display: flex;
		margin-top: 30px;
		margin-left: 50px;
		padding: 0 20px 0 7px;
	}
}


.header_logo_box {
	display: flex;
	justify-content: flex-start;
	background: #fff;
	border-radius: 3px;
	padding: 5px 10px;
}

.logo02 {
	max-width: 50px;
	margin-top: -10px;
	margin-left: 20px;
}

@media screen and (max-width:768px) {
	.logo02 {
	max-width: 40px;
	margin-top: -10px;
	margin-left: 10px;
}

}

/* footer
-------------------------------------------------------*/
#footer {
	background: var(--color01);
	color: #fff;
	letter-spacing: 0.05em;
}
#footer.area {
	padding: 70px 20px;
}
#footer a {
	color: #fff;
}
.footer_nav {
	margin-bottom: 50px;
	display: flex;
	flex-flow:wrap;
	align-items: center;
	justify-content: center;
}
.footer_nav a {
	font-weight: 700;
	font-size: 1.4rem;
}
.footer_nav li {
	margin: 0 15px;
}
/* 改行用 */
.footer_nav__break {
	flex-basis: 100%;
	height: 0;
	margin: 0;
	padding: 0;
}
#footer .logo {
	margin-bottom: 30px;
}
#footer .logo img {
	max-width: 400px;
}
#footer .txt {
	font-size: 1.4rem;
	margin-bottom: 30px;
	line-height: 2;
}
#footer .copy {
	font-size: 1.1rem;
}
#footer .btm {
	display: flex;
	flex-flow: row nowrap;
	align-items: flex-end;
	justify-content: space-between;
}
#footer .list_nav li {
	margin: 0 10px;
}
#footer .list_nav li img {
	max-width: 30px;
}
#footer .list_nav li:nth-child(3) img {
	max-width: 23px;
}

@media screen and (max-width:768px) {
	#footer.area {
  padding: 40px 20px;
  padding-bottom: 150px;
}

	.footer_nav {
		justify-content: space-between;
		flex-wrap: wrap;
	
	}

	.footer_nav li {
		width: 48%;
		margin: 0;
		margin-bottom: 15px;
	}
	.footer_nav a {
  font-size: 1.3rem;
}
.footer_nav {
	margin-bottom: 30px;
}
#footer .logo img {
  max-width: 300px;
}

#footer .btm {
  flex-wrap: wrap;
}
#footer .copy {
	width: 100%;
	font-size: 1rem;
	margin-bottom: 30px;
}

.btm .list_nav {
	width: 100%;
}


}


/* index
-------------------------------------------------------*/
/* visual */
#index_visual {
	position: relative;
	overflow: hidden;
}
#index_visual::after {
	content: "";
	position: absolute;
	inset: 0;
	background: url(../img/index/bg_rope.png)no-repeat center bottom/100% auto;
	z-index: 1;
	pointer-events: none;
}
.visual_bg_slider {
	position: absolute;
	inset: 0;
	z-index: 0;
}
.visual_bg_slide {
	position: absolute;
	inset: 0;
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
	opacity: 0;
	transition: opacity 2s ease;
}
.visual_bg_slide.is-active {
	opacity: 1;
}
.visual_bg_slide01 {
	background-image: url(../img/index/visual_bg.png);
}
.visual_bg_slide02 {
	background-image: url(../img/index/visual_bg02.png);
}
#index_visual .visual_cont {
	position: relative;
	z-index: 2;
	padding: 170px 0 220px;
}
.visual_txt_slider {
	display: grid;
}
.visual_txt_slider .visual_txt {
	grid-area: 1 / 1;
	opacity: 0;
	transition: opacity 2s ease;
}
.visual_txt_slider .visual_txt.is-active {
	opacity: 1;
}
.visual_txt {
	font-size: 5.7rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.04em;
	font-feature-settings: "palt";
	text-shadow: -2px -2px 0 #fff, 2px -2px 0 #fff, -2px 2px 0 #fff, 2px 2px 0 #fff;
}
#index_visual .visual_txt {
	margin-bottom: 80px;
}
#index_visual .visual_txt span {
	font-size: 7.2rem;
}
.list_contact {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	justify-content: flex-start;
}
.list_contact li {
	margin-right: 20px;
}
.list_contact li a {
	display: block;
	width: 260px;
	max-width: 100%;
	text-align: center;
	color: #fff;
	background: #e38700 url(../img/common/btn01_bg.png)no-repeat left -10px center/63px 80px;
	height: 115px;
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 2.4rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.02em;
	position: relative;
	overflow: hidden;
}

.list_contact_long li {
	display: flex;
	justify-content: center;
	margin: 0;
	width: 100%;
}
.list_contact_long li a {
	width: 500px;
	margin: 0 auto;
}

.list_contact li a::after {
	content: "";
	position: absolute;
	top: 0;
	left: -150%;
	width: 50%;
	height: 100%;
	background: linear-gradient(
	120deg,
	transparent 0%,
	rgba(255,255,255,0.4) 50%,
	transparent 100%
	);
	transform: skewX(-25deg);
}
.list_contact li a:hover {
	opacity: 1;
}
.list_contact li a:hover::after {
	animation: shine 0.8s ease;
}
@keyframes shine {
  0% {
    left: -150%;
  }
  100% {
    left: 150%;
  }
}

.list_contact li:last-child a {
	background: #66c81f url(../img/common/btn02_bg.png)no-repeat left -10px center/86px 82px;
}

.contact_area .list_contact li:last-child a {
	background: #e38700 url(../img/common/btn01_bg.png)no-repeat left -10px center/86px 82px;
}
.contact_area .list_contact li:first-child a {
	background: #66c81f url(../img/common/btn02_bg.png)no-repeat left -10px center/86px 82px;
}

.contact_area_top .list_contact li:last-child a {
	
	background: #66c81f url(../img/common/btn02_bg.png)no-repeat left -10px center/86px 82px;
}
.contact_area_top .list_contact li:first-child a {
	background: #e38700 url(../img/common/btn01_bg.png)no-repeat left -10px center/86px 82px;
}

/* index_lead */
.index_lead .logo {
	text-align: center;
	margin-bottom: 10px;
}
.index_lead .logo img {
	max-width: 244px;
}
.index_lead .txt {
	font-size: 2rem;
}
.index_lead .txt .size_l {
	font-size: 3rem;
	font-weight: 700;
}

/* index_news */
.index_news .box {
	display: flex;
	flex-flow: row nowrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 40px;
}
.news_box {
	width: calc((100% - 40px) / 2);
}
.news_box .main_ttl {
	background: #fff;
	text-align: center;
	max-width: 250px;
	width: 100%;
	border-radius: 10px 10px 0 0;
	padding: 5px;
	font-size: 2rem;
	font-weight: 700;
	margin: 0 auto 20px;
}

.news_box .main_ttl02 {
	color: #fff;
	background:#4280b3;
}

.list_news {
	display: flex;
	flex-flow: column;
	gap: 20px;
}
.list_news li {
	background: #fff;
	padding: 20px;
}
.list_news li a {
	display: flex;
	flex-flow: row nowrap;
	align-items: flex-start;
	gap: 20px;
}
.list_news li a .img {
	width: 35%;
}
.list_news li a .txt_box {
	width: 65%;
}
.list_news li .ttl {
	font-size: 2rem;
	font-weight: 700;
	margin-bottom: 15px;
	color: var(--color01);
}
.list_news li .txt {
	font-size: 1.7rem;
	margin-bottom: 15px;
	overflow-wrap: break-word;
}
.list_news li .date {
	font-size: 1.5rem;
}
.news_box.col02 li {
	background: var(--color03);
}
.news_box.col02 li a, .news_box.col02 li .ttl{
	color: #fff;
}
/* index_results */
.index_results {
	padding: 100px 0;
}
.index_results .ttl01 {
	margin-bottom: 70px;
}
.list_results {
	margin-bottom: 70px;
}
.list_results li {
	margin: 0 10px;
}
.index_results .txt {
	font-size: 2rem;
	line-height: 2;
}

/* index_safety */
.index_safety.area {
	padding: 100px 20px 0;
}
.index_safety .img {
	text-align: center;
}
.index_safety dl {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	justify-content: center;
}
.index_safety dl dt {
	margin-right: 30px;
}
.index_safety dl dt img {
	max-width: 281px;
}
.index_safety dl dd {
	font-size: 2rem;
	line-height: 2;
}
.index_safety .img {
	margin-top: -80px;
}
.index_safety .img img {
	max-width: 1154px;
}

/* index_service */
.list_service {
	display: flex;
	flex-flow: row wrap;
	align-items: stretch;
	justify-content: space-between;
	gap: 40px;
}

.index_service02.area {
	padding-top: 0;
}

.list_service.center {
	justify-content: center;
}
.list_service li {
	width: calc((100% - 40px) / 2);
	background: #dfdfe0;
	padding: 30px 20px;
}

.list_service_inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.list_service_inner .img {
	max-width: 130px;
}

.list_service_inner dl {
	width: 100%;
	flex: 1;
	margin-left: 20px;
}

.list_service_inner dl dt {
	font-weight: 700;
	color: #1d4b93;
	font-size: 1.75rem;
}

/* contact_area */
.contact_area {
	background: url(../img/common/bg_contact.png)no-repeat center/cover;
	text-align: center;
}
.contact_area .ttl {
	color: #fff;
	font-size: 4rem;
	font-weight: 700;
	margin-bottom: 30px;
	line-height: 1.4;
	text-shadow: 2px 3px 3px rgba(0, 0, 0, 0.4);
}
.contact_area .ttl span {
	font-size: 5.2rem;
}
.contact_area .txt {
	font-size: 2.5rem;
	color: #fff;
}
.contact_area .list_contact {
	justify-content: center;
	margin: 40px auto 0;
}



@media screen and (max-width:768px) {
#index_visual::after {
  background: url(../img/index/bg_rope.png) no-repeat 60% bottom / 100% auto;
}
.visual_bg_slide {
  background-position: 60% center;
}




#index_visual .visual_txt {
	font-size: 3rem;
	text-shadow:
    -2px -2px 0 #fff,
     2px -2px 0 #fff,
    -2px  2px 0 #fff,
     2px  2px 0 #fff;
}
#index_visual .visual_txt span {
  font-size: 4rem;
}
#index_visual .visual_cont {
  padding: 80px 10px;
}
.list_contact {
	justify-content: space-between;
}
.list_contact li {
	width: 48%;
	margin: 0 5px;
}

.list_contact li a {
	width: 100%;
	font-size: 1.5rem;
	height: 80px;
}


.index_lead .logo {
	margin-bottom: 30px;
}
.index_lead .logo img {
	max-width: 180px;
}
.ttl01 {
  font-size: 2rem;
  margin-bottom:20px;
}
.index_lead .txt {
  font-size: 1.6rem;
}
.index_lead .txt .size_l {
  font-size: 2rem;
  display: block;
  margin-top: 10px;
}


.index_news .box {
	display: block;
}

.news_box {
	width: 100%;
}

.list_news li .ttl {
	word-break: break-all;
	font-size: 1.3rem;
	margin-bottom: 10px;
}
.list_news li .txt {
	font-size: 1.3rem;
	margin-bottom: 10px;
}
.list_news li .date {
	font-size: 1rem;
}

.btn01 a {
	margin-top: 30px;
}
.news_box.col02 {
	margin-top: 50px;
}


.index_results {
	padding: 50px 0;
}

.index_results .txt {
	font-size: 1.6rem;
	margin-left: 20px;
	margin-right: 20px;
}
.index_results .ttl01 {
	margin-bottom: 30px;
	padding-left: 20px;
	padding-right: 20px;
}
.list_results {
	margin-bottom: 30px;
}


.index_safety.area {
  padding: 50px 20px 0;
}
.index_safety dl {
  display: block;
}
.index_safety dl dt {
	width: 50%;
	margin: 0 auto;
}
.index_safety dl dd {
  font-size: 1.6rem;
  text-align: center;
  margin-top: 10px;
}
.index_safety .img {
	margin-top: 0;
}

.list_service {
	display: block;
}
.list_service li {
	width: 100%;
	margin-bottom: 10px;
	padding: 20px 10px;
}
.list_service_inner .img {
  max-width: 100px;
}
.list_service_inner dl dt {
  font-size: 1.7rem;
}
.list_service_inner dl dd {
	font-size: 1.6rem;
}

.contact_area .ttl {
	font-size: 1.7rem;
	margin-bottom: 15px;
}
.contact_area .ttl span {
  font-size: 2.5rem;
}
.contact_area .txt {
  font-size: 1.6rem;
}

.contact_area .list_contact {
  justify-content: center;
  margin: 20px auto 0;
}

.list_contact li {
	width: 100%;
}
.list_contact_long li a {
	width: 100%;
	font-size:2rem;
}

}

/* lower common
-------------------------------------------------------*/
.lower .visual_cont {
  padding: 250px 0px;
}
.lower .visual_cont .visual_txt {
	text-align: center;
	font-size: 5rem;
}
.lower_ttl01 {
	font-weight: 700;
	text-align: center;
	font-size: 4rem;
}
.lower_ttl02 {
	font-weight: 700;
	text-align: center;
	font-size: 3rem;
}
@media screen and (min-width:768px) and ( max-width:1080px) {
	
}
@media screen and (max-width:768px) {
	.lower .visual_cont {
		padding: 100px 10px 70px;
	}
	.lower .visual_cont .visual_txt {
		font-size: 2.6rem;
	}
	.lower_ttl01 {
		font-size: 2.6rem;
	}
	.lower_ttl02 {
		font-size: 1.8rem;
	}
}

/* strength
-------------------------------------------------------*/
/* visual */
#strength_visual {
  background: url("../img/strength/visual_bg.png") center center / cover no-repeat;
  padding-bottom: 15px;
}
#strength_visual .rope_line {
	margin-bottom: -20px;
}

/* area01 */
.list_strength01 {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	justify-content: center;
	margin: 70px 0;
	gap: 40px;
}
.list_strength01 li {
	width: calc((100% - 80px)/3);
	text-align: center;
	font-size: 3.4rem;
	font-weight: 700;
	line-height: 1.2;
	color: #fff;
	aspect-ratio: 1 / 1;
	border-radius: 50%; 
	display: flex;
	align-items: center;
	justify-content: center; 
}
.list_strength01 li:first-child {
	background: #036eb8;
}
.list_strength01 li:nth-child(2) {
	background: #1d4b93;
}
.list_strength01 li:last-child {
	background: url(../img/strength/circle_bg.png)no-repeat center/cover;
}
#strength .area01 .txt {
	font-size: 2rem;
	line-height: 2;
}
#strength .area01 .txt .blue {
	font-size: 2.2rem;
	font-weight: 700;
}

/* area02 */
#strength .area02 .mid_ttl {
	margin: 60px 0 50px;
	font-size: 3rem;
	font-weight: 700;
	padding: 10px 0;
	border-top: 2px solid var(--color01);
	border-bottom: 2px solid var(--color01);
}
.list_about {
	display: flex;
	flex-flow: row nowrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 90px;
	margin-bottom: 90px;
}
.list_about li {
	width: calc((100% - 90px) / 2);
}
.list_about li .img {
	margin-bottom: 20px;
}
.list_about li .ttl {
	margin-bottom: 20px;
	font-weight: 700;
	font-size: 2.8rem;
}
.list_about li .txt {
	font-size: 2rem;
	line-height: 2;
}
.more_info_box {
	background: #fff;
	border-radius: 30px;
	padding: 70px;
	text-align: center;
}
.more_info_box .lower_ttl01 {
	margin-bottom: 60px;
}
.more_info_box dl {
	margin-bottom: 50px;
}
.more_info_box .ttl {
	font-weight: 700;
	font-size: 2.8rem;
	margin-bottom: 30px;
}

/* area03 */
.list_cost {
	margin: 60px 0;
	display: flex;
	flex-flow: row nowrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 35px;
}
.list_cost li {
	width: calc((100% - 70px) / 3);
	background: var(--color01);
	text-align: center;
	color: #fff;
	padding: 40px 20px;
}
.list_cost li .icon {
	margin-bottom: 20px;
}
.list_cost li img {
	max-width: 114px;
}
.list_cost li .ttl {
	font-size: 2.5rem;
	font-weight: 700;
}
.point_box {
	margin-top: 100px;
	background: #fff;
	border: 2px solid #1d4b93;
	border-radius: 30px;
	padding: 70px;
	position: relative;
}
.point_box::before {
	position: absolute;
	display: block;
	content: "";
	background: url(../img/strength/point_arrow.png)no-repeat center top/70px 58px;
	width: 70px;
	height: 58px;
	top: -46px;
	right: 50%;
	transform: translate(50%,0);
}
.point_box .top_txt {
	margin: 40px 0 80px;
	line-height: 2;
	font-size: 2rem;
}
.list_step {
	display: flex;
	flex-flow: row wrap;
	align-items: stretch;
	justify-content: space-between;
	gap: 40px;
	margin-bottom: 70px;
}
.list_step li {
	width: calc((100% - 40px) / 2);
	border: 2px solid #1d4b93;
	background: var(--color04);
	padding: 30px;
	text-align: center;
}
.list_step li .step_ttl {
	width: 230px;
	text-align: center;
	color: #fff;
	font-size: 3rem;
	font-weight: 700;
	background: var(--color01);
	border-radius: 100px;
	margin: -55px auto 20px;
}
.list_step li .img {
	margin-bottom: 30px;
}
.list_step li .ttl {
	margin-bottom: 20px;
	font-weight: 700;
	font-size: 2.3rem;
}
.list_step li .ttl span {
	display: block;
	font-size: 3.6rem;
}
#strength .area03 .caution {
	margin: 40px 0;
	background: #ffe100;
	border-radius: 15px;
	padding: 50px;
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	justify-content: flex-start;
}
#strength .area03 .caution dt {
	margin-right: 30px;
}
#strength .area03 .caution dt img {
	max-width: 187px;
}
#strength .area03 .caution dd {
	font-size: 2.5rem;
}
#strength .area03 .caution .size_l {
	font-size: 3.2rem;
}
#strength .area03 .txt_btm {
	font-size: 3.1rem;
	font-weight: 700;
}

/* area04 */
.list_lower_service {
	margin: 80px 0;
}
.list_lower_service li {
	border: 2px solid var(--color01);
	padding: 30px;
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	justify-content: flex-start;
}
.list_lower_service li:not(:last-child) {
	margin-bottom: 30px;
}
.list_lower_service li .img {
	margin-right: 50px;
	width: 40%;
}
.list_lower_service li dl {
	width: 60%;
}
.list_lower_service li dl dt {
	font-size: 2.8rem;
	font-weight: 700;
	margin-bottom: 20px;
}
.list_lower_service li dl dd {
	line-height: 2;
}
.merit_box {
	background: var(--color04);
	border-radius: 35px;
	padding: 70px 60px;
}
.merit_box .ttl {
	text-align: center;
	margin-bottom: 70px;
	font-size: 4rem;
	font-weight: 700;
	border-top: 2px solid var(--color01);
	border-bottom: 2px solid var(--color01);
	padding: 20px 0;
}
.list_merit li {
	display: flex;
	flex-flow: row nowrap;
	align-items: flex-start;
	justify-content: flex-start;
}
.list_merit li:not(:last-child) {
	margin-bottom: 70px;
}
.list_merit li .icon {
	margin-right: 30px;
}
.list_merit li .icon img {
	max-width: 70px;
}
.list_merit li dt {
	font-size: 3.3rem;
	font-weight: 700;
	margin-bottom: 15px;
	line-height: 1;
}
.list_merit li dd {
	font-size: 2rem;
}
@media screen and (min-width:768px) and ( max-width:1080px) {
	
}
@media screen and (max-width:768px) {
	/* visual */
	#strength_visual {
		background: url("../img/strength/visual_bg.png") left center / cover no-repeat;
	}
	#strength_visual .rope_line {
		margin-bottom: -17px;
	}

	/* area01 */
	.list_strength01 {
		margin: 30px 0;
		gap: 10px;
	}
	.list_strength01 li {
		width: calc((100% - 20px)/3);
		font-size: 1.6rem;
	}
	#strength .area01 .txt {
		font-size: 1.6rem;
		line-height: 1.6;
	}
	#strength .area01 .txt .blue {
		font-size: 2rem;
	}

	/* area02 */
	#strength .area02 .mid_ttl {
		margin: 40px 0 30px;
		font-size: 2rem;
	}
	.list_about {
		flex-flow: column;
		align-items: center;
		justify-content: center;
		gap: 30px;
		margin-bottom: 50px;
	}
	.list_about li {
		width: 100%;
	}
	.list_about li .img {
		margin-bottom: 20px;
	}
	.list_about li .ttl {
		font-size: 2rem;
	}
	.list_about li .txt {
		font-size: 1.6rem;
		line-height: 1.8;
	}
	.more_info_box {
		border-radius: 20px;
		padding: 20px;
	}
	.more_info_box .lower_ttl01 {
		margin-bottom: 30px;
	}
	.more_info_box dl {
		margin-bottom: 30px;
	}
	.more_info_box .ttl {
		font-size: 2rem;
		margin-bottom: 20px;
	}

	/* area03 */
	.list_cost {
		margin: 30px 0;
		flex-flow: column;
		align-items: flex-start;
		justify-content: flex-start;
		gap: 20px;
	}
	.list_cost li {
		width: 100%;
		padding: 20px;
		display: flex;
		flex-flow: row nowrap;
		align-items: center;
		justify-content: flex-start;
	}
	.list_cost li .icon {
		margin-bottom: 0;
		margin-right: 20px;
	}
	.list_cost li img {
		max-width: 70px;
	}
	.list_cost li .ttl {
		font-size: 1.8rem;
		text-align: left;
	}
	.point_box {
		margin-top: 70px;
		border-radius: 20px;
		padding: 30px 20px;
	}
	.point_box .top_txt {
		margin: 40px 0 80px;
		line-height: 1.8;
		font-size: 1.6rem;
	}
	.list_step {
		flex-flow: column;
		align-items: flex-start;
		justify-content: flex-start;
		gap: 40px;
		margin-bottom: 40px;
	}
	.list_step li {
		width: 100%;
		padding: 20px;
	}
	.list_step li .step_ttl {
		font-size: 2.4rem;
		margin: -40px auto 20px;
	}
	.list_step li .img {
		margin-bottom: 20px;
	}
	.list_step li .ttl {
		margin-bottom: 15px;
		font-size: 2rem;
	}
	.list_step li .ttl span {
		font-size: 3rem;
	}
	#strength .area03 .caution {
		margin: 30px 0;
		padding: 30px 20px;
		flex-flow: column;
		align-items: center;
		justify-content: center;
	}
	#strength .area03 .caution dt {
		margin-right: 0;
		margin-bottom: 20px;
	}
	#strength .area03 .caution dt img {
		max-width: 70px;
	}
	#strength .area03 .caution dd {
		font-size: 1.8rem;
	}
	#strength .area03 .caution .size_l {
		font-size: 2rem;
	}
	#strength .area03 .txt_btm {
		font-size: 2.4rem;
	}

	/* area04 */
	.list_lower_service {
		margin: 40px 0;
	}
	.list_lower_service li {
		padding: 20px;
		flex-flow: column;
		align-items: center;
		justify-content: center;
	}
	.list_lower_service li:not(:last-child) {
		margin-bottom: 20px;
	}
	.list_lower_service li .img {
		margin-right: 0;
		margin-bottom: 20px;
		width: 100%;
	}
	.list_lower_service li dl {
		width: 100%;
	}
	.list_lower_service li dl dt {
		font-size: 2rem;
		margin-bottom: 15px;
	}
	.list_lower_service li dl dd {
		line-height: 1.6;
	}
	.merit_box {
		border-radius: 20px;
		padding: 30px 20px;
	}
	.merit_box .ttl {
		margin-bottom: 30px;
		font-size: 2rem;
		padding: 15px 0;
	}
	.list_merit li:not(:last-child) {
		margin-bottom: 30px;
	}
	.list_merit li .icon {
		margin-right: 15px;
	}
	.list_merit li .icon img {
		max-width: 30px;
		min-width: 30px;
	}
	.list_merit li dt {
		font-size: 1.8rem;
		margin-bottom: 10px;
	}
	.list_merit li dd {
		font-size: 1.6rem;
	}
}


/* root
-------------------------------------------------------*/
:root {
  --color01: #1d4b93;
  --color02: #bcdcf1;
  --color03: #4280b3;
  --color04: #d3e2f2;
  --color05: #dde3e7;
}


/* 多言語
-------------------------------------------------------*/


.header_contact {
background: #1d4b93;
padding-left: 40px;
}

.header_contact li {
	position: relative;
	
}

#gt_float_wrapper {
	position: absolute !important;
	bottom: inherit !important;
  left: -20px !important;
  top: -23px;
}
.gt_float_switcher img {
	margin: 0 !important;
	width: 20px !important;
}

.gt_float_switcher .gt-selected .gt-current-lang span.gt_float_switcher-arrow {
	display: none !important;
}

.gt_float_switcher .gt-selected .gt-current-lang {
  padding: 3px 8px !important;
}

.gt_float_switcher .gt_options a {
	font-size: 60%;
}

@media screen and (max-width:940px) {
	#gt_float_wrapper {
	position: absolute !important;
	bottom: inherit !important;
  left: -100px !important;
  top: -27px;
  z-index: 9996 !important;
}
}



.fot_btn {
	display: none;
}
@media screen and (max-width:768px) {

	.fot_btn {
	display: block;
	position: fixed;
	left: 0;
	bottom: 0;
	width: 100%;
}

.fot_btn ul {
	display: flex;
	justify-content: space-between;
}
.fot_btn ul li {
	width: 50%;
}
}


.mov_wrap {
	max-width: 700px;
	margin: 0 auto;
	margin-top: 50px;
}

.mov {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9 */
}

.mov iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* 外壁打診調査
-------------------------------------------------------*/
/* visual */
#exterior_wall_visual {
	background: url("../img/exterior_wall/visual_bg.png") center center / cover no-repeat;
	padding-bottom: 15px;
}
#exterior_wall_visual .rope_line {
	margin-bottom: -20px;
}
#exterior_wall_visual .visual_txt span {
	display: block;
	font-size: 3.8rem;
	margin-bottom: 20px;
}
@media screen and (max-width:768px) {
	#exterior_wall_visual .rope_line {
		margin-bottom: -17px;
	}
	#exterior_wall_visual .visual_txt span {
		font-size: 2.5rem;
	}
}


#exterior_wall_visual .visual_cont .visual_txt {
	text-align: right;
	font-size: 3.5rem;
}
.visual_txt_bottom_big {
	font-size: 140%;
}
.visual_txt_bottom_big02 {
	font-size: 160%;
}
/* area01 */
#exterior_wall .area01.area {
	padding: 100px 20px 50px;
}
#exterior_wall .area01 .lower_ttl02 {
	margin-bottom: 20px;
}
#exterior_wall .area01 .lower_ttl01 {
	margin-bottom: 70px;
}
.list_problem li {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	justify-content: flex-start;
}
.list_problem li:not(:last-child) {
	margin-bottom: 30px;
}
.list_problem li .num {
	width: 160px;
	height: 160px;
	min-width: 160px;
	color: #fff;
	background: #036eb8;
	display: flex;
	flex-flow: column;
	align-items: center;
	justify-content: center;
	font-size: 5.7rem;
	line-height: 1;
	font-weight: 700;
	border-radius: 100%;
	margin-right: 30px;
}
.list_problem li .num span {
	display: block;
	font-size: 1.7rem;
}
.list_problem li dt {
	font-weight: 700;
	font-size: 3.2rem;
	margin-bottom: 10px;
}
#exterior_wall .question_box {
	margin-top: 100px;
	background: rgb(255, 255, 255);
	border: 2px solid rgb(29, 75, 147);
	border-radius: 30px;
	padding: 70px;
	position: relative;
}
#exterior_wall .question_box::before {
	position: absolute;
	display: block;
	content: "";
	background: url(../img/strength/point_arrow.png)no-repeat center top/70px 58px;
	width: 70px;
	height: 58px;
	top: -46px;
	right: 50%;
	transform: translate(50%,0);
}
#exterior_wall .question_box .ttl {
	background: var(--color01);
	color: #fff;
	text-align: center;
	font-weight: 700;
	font-size: 3.5rem;
	padding: 50px 20px;
	border-radius: 15px;
	position: relative;
}
#exterior_wall .question_box .ttl::before,#exterior_wall .question_box .ttl::after {
	position: absolute;
	display: block;
	content: "";
	top: 40px;
}
#exterior_wall .question_box .ttl::before {
	background: url(../img/exterior_wall/q_left.png)no-repeat left top/40px 55px;
	width: 40px;
	height: 55px;
	left: 8%;
}
#exterior_wall .question_box .ttl::after {
	background: url(../img/exterior_wall/q_right.png)no-repeat right top/45px 56px;
	width: 45px;
	height: 56px;
	right: 8%;
}
#exterior_wall .question_box .arrow {
	margin: 40px 0;
	text-align: center;
}
#exterior_wall .question_box .arrow img {
	max-width: 228px;
}
#exterior_wall .question_box .caution_box {
	border: 2px solid #ffe100;
	border-radius: 15px;
}
#exterior_wall .question_box .caution_box dl.top {
	background: #ffe100;
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	justify-content: center;
	padding: 40px 20px;
}
#exterior_wall .question_box .caution_box .top dt {
	margin-right: 30px;
}
#exterior_wall .question_box .caution_box .top dt img {
	max-width: 119px;
}
#exterior_wall .question_box .caution_box .top dd {
	font-weight: 700;
	font-size: 3.7rem;
}
#exterior_wall .question_box .list_case {
	margin: 40px;
}
#exterior_wall .question_box .list_case li:not(:last-child) {	
	margin-bottom: 40px;
}
#exterior_wall .question_box .list_case li .case_ttl {
	background: #717071;
	font-weight: 700;
	text-align: center;
	font-size: 3.2rem;
	color: #fff;
	padding: 10px;
}
#exterior_wall .question_box .list_case li dl {
	background: #8f8f90;
	color: #fff;
	padding: 40px;
}
#exterior_wall .question_box .list_case li dt {
	font-weight: 700;
	font-size: 3.2rem;
	margin-bottom: 20px;
	line-height: 1.4;
}
#exterior_wall .question_box .list_case li dd {
	font-size: 1.8rem;
	line-height: 1.8;
}
#exterior_wall .question_box .btm {
	margin-top: 70px;
	font-weight: 700;
	font-size: 3.7rem;
	padding-left: 30%;
}
#exterior_wall .question_box .img {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 30%;
}
#exterior_wall .question_box .img img {
	max-width: 306px;
}
@media screen and (max-width:768px) {
#exterior_wall_visual {
	background: url("../img/exterior_wall/visual_bg.png") left center / cover no-repeat;
	padding-bottom: 15px;
}

	#exterior_wall_visual .visual_cont .visual_txt {
	text-align: left;
	font-size: 2rem;
}
.visual_txt_bottom_big {
	font-size: 140%;
}




	#exterior_wall .area01.area {
		padding: 30px 20px 10px;
	}
	#exterior_wall .area01 .lower_ttl02 {
		margin-bottom: 10px;
	}
	#exterior_wall .area01 .lower_ttl01 {
		margin-bottom: 30px;
	}
	.list_problem li {
		flex-flow: column;
		align-items: center;
		justify-content: center;
	}
	.list_problem li:not(:last-child) {
		margin-bottom: 20px;
	}
	.list_problem li .num {
		width: 100px;
		height: 100px;
		min-width: 100px;
		font-size: 4rem;
		margin-right: 0;
		margin-bottom: 15px;
	}
	.list_problem li dt {
		font-size: 2.4rem;
		margin-bottom: 10px;
		text-align: center;
	}
	#exterior_wall .question_box {
		margin-top: 70px;
		padding: 30px 20px;
	}
	#exterior_wall .question_box .ttl {
		font-size: 2rem;
		padding: 30px 10px;
	}
	#exterior_wall .question_box .ttl::before,#exterior_wall .question_box .ttl::after {
		top: 20px;
	}
	#exterior_wall .question_box .ttl::before {
		background: url(../img/exterior_wall/q_left.png)no-repeat left top/28px 38px;
		width: 28px;
		height: 38px;
		left: 5%;
	}
	#exterior_wall .question_box .ttl::after {
		background: url(../img/exterior_wall/q_right.png)no-repeat right top/31px 39px;
		width: 31px;
		height: 39px;
		right: 5%;
	}
	#exterior_wall .question_box .arrow {
		margin: 20px 0;
	}
	#exterior_wall .question_box .caution_box dl.top {
		flex-flow: column;
		align-items: center;
		justify-content: center;
		padding: 30px 20px;
	}
	#exterior_wall .question_box .caution_box .top dt {
		margin-right: 0;
		margin-bottom: 20px;
	}
	#exterior_wall .question_box .caution_box .top dt img {
		max-width: 70px;
	}
	#exterior_wall .question_box .caution_box .top dd {
		font-size: 1.8rem;
	}
	#exterior_wall .question_box .list_case {
		margin: 20px;
	}
	#exterior_wall .question_box .list_case li:not(:last-child) {	
		margin-bottom: 20px;
	}
	#exterior_wall .question_box .list_case li .case_ttl {
		font-size: 2rem;
	}
	#exterior_wall .question_box .list_case li dl {
		padding: 20px;
	}
	#exterior_wall .question_box .list_case li dt {
		font-size: 2rem;
	}
	#exterior_wall .question_box .list_case li dd {
		font-size: 1.6rem;
		line-height: 1.6;
	}
	#exterior_wall .question_box .btm {
		margin-top: 20px;
		font-size: 1.8rem;
		padding-left: 0;
		text-align: center;
	}
	#exterior_wall .question_box .img {
		display: none;
	}
}

/* area02 */
#exterior_wall .area02 .lower_ttl02 {
	margin-bottom: 20px;
}
#exterior_wall .area02 .lower_ttl01 {
	margin-bottom: 70px;
}
#exterior_wall .area02 .lower_ttl01 .size_s {
	font-size: 3.2rem;
}
#exterior_wall .area02 .top_ttl {
	text-align: center;
	font-size: 3rem;
	font-weight: 700;
	margin-bottom: 80px;
}
#exterior_wall .area02 .top_ttl span {
	font-size: 1.8rem;
	display: block;
}
.list_reason {
	display: flex;
	flex-flow: row nowrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 30px;
}
.list_reason li {
	width: calc((100% - 60px) / 3);
	position: relative;
}
.list_reason li .num {
	width: 65px;
	min-width: 65px;
	height: 65px;
	background: var(--color01);
	border: 2px solid #fff;
	border-radius: 100%;
	font-size: 3.3rem;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	position: absolute;
	right: 50%;
	transform: translate(50%,0);
	top: -30px;
}
.list_reason li .img {
	margin-bottom: 20px;
}
.list_reason li .ttl {
	margin-bottom: 20px;
	font-weight: 700;
	font-size: 2.2rem;
}
@media screen and (max-width:768px) {
	#exterior_wall .area02 .lower_ttl02 {
		margin-bottom: 10px;
	}
	#exterior_wall .area02 .lower_ttl01 {
		margin-bottom: 30px;
	}
	#exterior_wall .area02 .lower_ttl01 .size_s {
		font-size: 2.2rem;
	}
	#exterior_wall .area02 .top_ttl {
		font-size: 2rem;
		margin-bottom: 40px;
	}
	#exterior_wall .area02 .top_ttl span {
		font-size: 1.4rem;
	}
	.list_reason {
		flex-flow: column;
		align-items: center;
		justify-content: center;
		gap: 40px;
	}
	.list_reason li {
		width: 100%;
	}
	.list_reason li .num {
		width: 50px;
		min-width: 50px;
		height: 50px;
		font-size: 2.4rem;
		font-weight: 700;
		top: -20px;
	}
	.list_reason li .img {
		margin-bottom: 15px;
	}
	.list_reason li .ttl {
		margin-bottom: 15px;
		font-size: 2rem;
	}
}

/* area03 */
#exterior_wall .area03 .lower_ttl02 {
	font-size: 2.8rem;
}
#exterior_wall .area03 .lower_ttl01 {
	margin-bottom: 50px;
}
.slider_flow {
	max-width: 870px;
	margin: 0 auto;
}
.slider_flow .ttl {
	background: #fff;
	text-align: center;
	font-size: 3rem;
	font-weight: 700;
	padding: 10px;
	margin-bottom: 30px;
}
.slider_flow .box {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	justify-content: space-between;
}
.slider_flow .box .img {
	width: 50%;
}
.slider_flow .box dl {
	width: 47%;
}
.slider_flow .box dl dt {
	color: var(--color01);
	font-size: 3.8rem;
	margin-bottom: 20px;
}
.slider_flow .box dl dd {
	font-size: 2.8rem;
}
@media screen and (max-width:768px) {
	#exterior_wall .area03 .lower_ttl02 {
		font-size: 2.2rem;
	}
	#exterior_wall .area03 .lower_ttl01 {
		margin-bottom: 30px;
	}
	.slider_flow .ttl {
		font-size: 2.4rem;
		padding: 10px;
		margin-bottom: 20px;
	}
	.slider_flow .box {
		flex-flow: column;
		align-items: center;
		justify-content: center;
	}
	.slider_flow .box .img {
		width: 100%;
		margin-bottom: 15px;
	}
	.slider_flow .box dl {
		width: 100%;
	}
	.slider_flow .box dl dt {
		font-size: 2.4rem;
		margin-bottom: 15px;
	}
	.slider_flow .box dl dd {
		font-size: 1.8rem;
	}
}

/* area04 */
#exterior_wall .area04.area {
	padding: 70px 0;
}
#exterior_wall .area04 .lower_ttl02 {
	margin-bottom: 50px;
}
.slider_case li {
	border: 1px solid #595757;
	padding: 20px;
	margin: 0 10px;
}
.slider_case li .img {
	margin-bottom: 20px;
}
.slider_case li .ttl {
	font-size: 2.6rem;
	margin-bottom: 10px;
}
.slider_case li .txt {
	font-size: 2rem;
}
@media screen and (max-width:768px) {
	#exterior_wall .area04.area {
		padding: 30px 0;
	}
	#exterior_wall .area04 .lower_ttl02 {
		margin-bottom: 30px;
	}
	.slider_case li {
		border: 1px solid #595757;
		padding: 20px;
		margin: 0 10px;
	}
	.slider_case li .img {
		margin-bottom: 20px;
	}
	.slider_case li .ttl {
		font-size: 2rem;
	}
	.slider_case li .txt {
		font-size: 1.6rem;
	}
}

/* area05 */
#exterior_wall .area05 .lower_ttl02 {
	margin-bottom: 50px;
}
.list_topix {
	display: flex;
	flex-flow: row wrap;
	align-items: flex-start;
	justify-content: space-around;
	gap: 40px;
}
.list_topix li {
	width: calc((100% - 40px) / 2);
}
.list_topix li .img {
	margin-bottom: 10px;
}
.list_topix li .date {
	font-size: 2rem;
}
@media screen and (max-width:768px) {
	#exterior_wall .area05 .lower_ttl02 {
		margin-bottom: 30px;
	}
	.list_topix {
		flex-flow: column;
		align-items: center;
		justify-content: center;
		gap: 20px;
	}
	.list_topix li {
		width: 100%;
	}
	.list_topix li .date {
		font-size: 1.6rem;
	}
}

/* area06 */
#exterior_wall .area06 .lower_ttl02 {
	margin-bottom: 50px;
}
@media screen and (max-width:768px) {
	#exterior_wall .area06 .lower_ttl02 {
		margin-bottom: 30px;
	}
}

/* area07 */
.list_qa li:not(:last-child) {
	margin-bottom: 60px;
}
.list_qa li .ttl {
	font-weight: 700;
	color: var(--color01);
	font-size: 2.8rem;
	margin-bottom: 10px;
	position: relative;
	padding-left: 55px;
}
.list_qa li .ttl::before {
	position: absolute;
	display: block;
	content: "";
	background: url(../img/exterior_wall/icon_q.png)no-repeat left top/40px 40px;
	width: 40px;
	height: 40px;
	left: 0;
	top: 5px;
}
.list_qa li .txt {
	font-size: 2rem;
}
@media screen and (max-width:768px) {
	.list_qa li:not(:last-child) {
		margin-bottom: 30px;
	}
	.list_qa li .ttl {
		font-size: 2rem;
		margin-bottom: 10px;
		position: relative;
		padding-left: 40px;
	}
	.list_qa li .ttl::before {
		background: url(../img/exterior_wall/icon_q.png)no-repeat left top/30px 30px;
		width: 30px;
		height: 30px;
		left: 0;
		top: 3px;
	}
	.list_qa li .txt {
		font-size: 1.6rem;
	}
}

/* 劣化タイル張替え
-------------------------------------------------------*/
/* visual */
#exterior_wall_visual.deteriorated_tiles {
	background: url("../img/deteriorated_tiles/visual_bg.png") center center / cover no-repeat;
	padding-bottom: 15px;
}
#exterior_wall.deteriorated_tiles .area02 .top_ttl span {
    display: inline;
}

/* ドローン点検
-------------------------------------------------------*/
/* visual */
#exterior_wall_visual.drone_inspection {
	background: url("../img/drone_inspection/visual_bg.png") center center / cover no-repeat;
	padding-bottom: 15px;
}
#exterior_wall.drone_inspection .area02 .top_ttl span {
    display: inline;
}

/* レインボービュー
-------------------------------------------------------*/
/* visual */
#exterior_wall_visual.rainbow_view {
	background: url("../img/rainbow_view/visual_bg.png") center center / cover no-repeat;
	padding-bottom: 15px;
}
@media screen and (max-width:768px) {
	#exterior_wall_visual.rainbow_view {
  background: url("../img/rainbow_view/visual_bg.png") top left / cover no-repeat;
  padding-bottom: 15px;
}
}
#exterior_wall.rainbow_view .area02 .top_ttl span {
    display: inline;
}

/* 外壁タイル落下防止措置
-------------------------------------------------------*/
/* visual */
#exterior_wall_visual.fall_prevention {
	background: url("../img/fall_prevention/visual_bg.png") center center / cover no-repeat;
	padding-bottom: 15px;
}
#exterior_wall.fall_prevention .area02 .top_ttl span {
    display: inline;
}

/* 漏水阻止バリュー工法
-------------------------------------------------------*/
/* visual */
#exterior_wall_visual.waterleak_prevention {
	background: url("../img/waterleak_prevention/visual_bg.png") center center / cover no-repeat;
	padding-bottom: 15px;
}
#exterior_wall.waterleak_prevention .area02 .top_ttl span {
    display: inline;
}


/* プライバシーポリシー
-------------------------------------------------------*/

/* visual */
/*
#privacy_policy_visual {
	background: url("../img/privacy_policy/visual_bg.png") center center / cover no-repeat;
	padding-bottom: 15px;
}
#privacy_policy_visual .rope_line {
	margin-bottom: -20px;
}
#privacy_policy_visual .visual_txt span {
	display: block;
	font-size: 3.8rem;
	margin-bottom: 20px;
}
@media screen and (max-width:768px) {
	#privacy_policy_visual .rope_line {
		margin-bottom: -17px;
	}
	#privacy_policy_visual .visual_txt span {
		font-size: 2.5rem;
	}
}*/

.bottom_page_fvnone {
	padding-top: 50px;
}



.privacy-policy__label {
  margin: 0 0 10px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #1F4C94;
}

.privacy-policy__title {
  margin: 0 0 16px;
  font-size: 34px;
  line-height: 1.4;
  font-weight: 700;
}


.privacy-policy__contents {
  display: grid;
  gap: 24px;
}

.policy-section {
	margin-bottom: 50px;
}

.policy-section__title {
  position: relative;
  margin: 0 0 24px;
  padding-left: 18px;
  font-size: 2.4rem;
  line-height: 1.5;
  font-weight: 700;
}

.policy-section__title::before {
  content: "";
  position: absolute;
  top: 0.2em;
  left: 0;
  width: 6px;
  height: calc(100% - 0.4em);
  background: #1F4C94;
  border-radius: 999px;
}



.policy-section__body p:last-child {
  margin-bottom: 0;
}

.policy-grid {
  margin-top: 20px;
}

.policy-card {
  margin-top: 20px;
}

.policy-card__title {
  margin: 0 0 5px;
  font-size: 1.8rem;
  color: #1F4C94;
  font-weight: 700;
}


.policy-subsection {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid #e5e5e5;
}

.policy-subsection:first-of-type {
  margin-top: 24px;
}

.policy-subsection__title {
  margin: 0 0 14px;
  font-size: 18px;
  line-height: 1.6;
  font-weight: 700;
  color: #333;
}

.policy-note {
  margin-top: 20px;
  margin-bottom: 12px;
  font-size: 13px;
  color: #666;
}

.policy-list {
  margin: 0;
  padding-left: 2rem;

}

.policy-list li {
  margin-bottom: 10px;
  list-style:disc;
}

.policy-list li:last-child {
  margin-bottom: 0;
}

.policy-list--numbered {
  padding-left: 2rem;;
  
}

 .policy-list--numbered li {
list-style: decimal;
 }

.privacy-policy__footer {
  margin-top: 32px;
}

.policy-company {
  margin: 0;
}

.policy-company__row {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 16px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.policy-company__row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.policy-company__row dt {
  margin: 0;
  font-weight: 700;
}

.policy-company__row dd {
  margin: 0;
  line-height: 1.8;
}

@media screen and (max-width: 768px) {


  .privacy-policy__title {
    font-size: 2.6rem;
  }

  .policy-section {
    margin-bottom: 25px;
  }

  .policy-section__title {
    margin-bottom: 18px;
    padding-left: 14px;
    font-size: 2rem;
  }


  .policy-grid {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-top: 22px;
  }


  .policy-card__title {
    font-size: 1.8rem;
  }

  .policy-subsection {
    margin-top: 22px;
    padding-top: 20px;
  }

  .policy-subsection__title {
    font-size: 1.6rem;
  }

  .privacy-policy__footer {
    margin-top: 24px;
  }

  .policy-company__row {
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 12px 0;
  }

 
}


/* 用語集
-------------------------------------------------------*/
.glossary {
  margin-bottom: 30px;
}


.Label_ac {
  padding: 12px;
  display: block;
  color: #fff;
  background: #1D4B93;
  font-weight: bold;
}

.glo_child_ul {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

.glo_child_li {
  display: inline-block;
  padding: 10px 15px;
  background: #1D4B93;
  margin: 7px 7px;
  font-size: 15px;
	border-radius: 5px;
}

.glo_child_li a {
  color: #fff;
}

.glo_parent_name {
  padding: 10px 10px;
  background: #fff;
  border-bottom: 1px solid #d6d6d6;
  margin: 0 0 15px 0;
  text-align: left;
}

.glo_parent_name a {
  color: #004C98;
  font-weight: 700;
}

   .a_glo_cate a {
    font-size: 70%;
    background: #9DCBE2;
    color: #fff;
    padding: 3px 10px 3px 10px;
    margin: 0 5px 5px 0;
    border-radius: 3px;
    display: inline-block;
  }

   .glo_q_list {
    margin: 0 15px 0 0;
    line-height: 1;
  }

  .glo_q_icon_svg {
    width: 34px;
    height: 34px;
  }

    .a_glo_tit_h3 {
    border: none;
    border-bottom-width: medium;
    border-bottom-style: none;
    border-bottom-color: currentcolor;
    margin: 15px 0 0 0;
    padding: 0 0 15px 0px;
    line-height: 1.4;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    text-align: left;
	}

	  .a_glo_tit_h3 {
    border: none;
    border-bottom-width: medium;
    border-bottom-style: none;
    border-bottom-color: currentcolor;
    margin: 15px 0 0 0;
    padding: 0 0 15px 0px;
    line-height: 1.4;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    text-align: left;
    border-bottom: dotted 1px #ccc;
  }

  /*.page-numbers {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
  }
  .page-numbers {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
  }
  .page-numbers li {
    margin: 0 5px;
  }
  .page-numbers.current {
    padding: 10px 15px;
    background: #1D4B93;
    color: #fff;
  }
   .page-numbers a {
    padding: 10px 15px;
    background: #eee;
  }*/

   .a_glo_txt {
    margin: 15px 0 80px 0;
    padding: 0 15px;
    line-height: 1.6;
  }
  .a_glo_tit {
    width: 100%;
    padding: 5px 0 5px 0px;
    font-weight: bold;
  }




/* checkboxは非表示 */
.toggle_ac {
  display: none;
}

/* ラベル */
.Label_ac {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  position: relative;
  padding: 12px 16px;
  user-select: none;
}

/* 右側の三角 */
.Label_ac::after {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-left: 12px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(45deg); /* 閉じてる時：下向き */
  transition: transform 0.3s ease;
  flex-shrink: 0;
}

/* 開いている時：上向き */
.toggle_ac:checked + .Label_ac::after {
  transform: rotate(-135deg);
}

/* 開閉エリア */
.content_ac {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.4s ease, opacity 0.3s ease;
  margin-bottom: 50px;
}

/* 開いている時 */
.toggle_ac:checked + .Label_ac + .content_ac {
  max-height: 2000px; /* 中身が多いので大きめに取る */
  opacity: 1;
}



.faq_q_base {
  display: flex;
  flex-wrap: wrap;
  margin: 0 0 30px 0;
  margin-top: 20px;
  align-items: flex-end;
}

.faq_q_base .glo_q_icon_svg {
  width: 60px;
  height: 60px;
}
.faq_q_yomi_base {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  align-content: center;
}

.faq_q_yomi_01 {
	display: inline-block;
  background: #999;
  color: #fff;
  padding: 2px 10px;
  margin-right: 8px;
  border-radius: 3px;
  font-size: 70%;
}

.faq_q_txt {
	font-weight: 700;
	margin-left: 20px;
}

.faq_q_txt_ttl {
	font-size: 2.5rem;
}

.faq_q_txt_ttl_sub {
	padding: 10px 20px;
	background: #004C98;
	color: #fff;
	font-weight: 700;
	margin-bottom: 30px;
	font-size: 2.4rem;
	margin-top: 40px;
}

.faq_q_txt_ttl_sub02 {
	color: #004C98;
	font-weight: 700;
	margin-bottom: 15px;
	font-size: 2rem;
	padding-bottom: 10px;
	border-bottom: 2px solid #004C98;
}

.faq_a_txt p {
  padding-bottom: 2rem;
  line-height: 2;
}

.faq_a_txt ul {
  margin: 10px 0 10px 30px;
}

.faq_a_txt li {
  list-style: disc;
  margin-bottom: 0.2em;
}

.under_markar {
  font-weight: bold;
  padding-right: 10px;
  background: linear-gradient(transparent 60%, rgba(173, 216, 230, 0.4) 0%);
  display: inline;
  padding: 0 1px 0px;
}

@media screen and (max-width:768px) {

.faq_q_txt_ttl_sub {
	font-size: 1.8rem;
	margin-top: 30px;
}

.faq_q_txt_ttl_sub02 {
	font-size: 1.8rem;

}
}


/* 記事
-------------------------------------------------------*/

/* visual */
/*#article_visual {
	background: url("../img/article/visual_bg.png") center center / cover no-repeat;
	padding-bottom: 15px;
}
#article_visual .rope_line {
	margin-bottom: -20px;
}
#article_visual .visual_txt span {
	display: block;
	font-size: 3.8rem;
	margin-bottom: 20px;
}
@media screen and (max-width:768px) {
	#article_visual .rope_line {
		margin-bottom: -17px;
	}
	#article_visual .visual_txt span {
		font-size: 2.5rem;
	}
}*/


.article_list {
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
  padding: 0;
  margin: 0;
  margin-bottom: 50px;
  list-style: none;
}

.article_list li {
  width: calc((100% - 80px) / 3); /* 3列 + gap20px×2 */
}

/* 画像 */
.article_list_img img {
  width: 100%;
  height: auto;
  display: block;
}

.article_list_txt {
	background: #f0f0f0;
	padding: 15px 20px;
}

.article_list_cat a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 8px;
  background:#004C98;
  color:#fff;
  font-size:0.9rem;
  line-height:1;
  border-radius:3px;
  text-decoration:none;
}

.article_day {
	font-size: 70%;
	color: #666;
	margin-right: 10px;
}

.article_list_ttl {
	margin-top: 10px;
	font-size: 1.6rem;
}


@media screen and (max-width: 768px) {
  .article_list li {
    width: 100%; /* 1列 */
  }
}

.article_cat {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 0;
  margin-bottom: 20px;
  list-style: none;
  margin-bottom: 50px;
}

.article_cat li a {
  display: block;
  padding: 6px 12px;
  background: #004C98;
  border-radius: 5px;
  text-decoration: none;
  font-size: 70%;
  color: #fff;
}


.bottom_page_ttl {
	font-size: 3rem;
	font-weight: 700;
	margin-bottom: 80px;
	text-align: center;
}
.bottom_page_ttl span {
  background: url(../img/common/title_bar.png)repeat-x bottom left/9px 5px;
  padding: 0 5px 15px;
}

@media screen and (max-width: 768px) {
  .bottom_page_ttl {
	font-size: 2.4rem;
	margin-bottom: 50px;
}
}



.article_page_ttl {
	font-weight: 700;
	font-size: 3rem;
	margin-top: 30px;
	margin-bottom: 40px;
	padding-bottom: 20px;
	border-bottom: 1px solid #004C98;
}
@media screen and (max-width: 768px) {
  .article_page_ttl {
    font-size: 1.8rem;
    margin-top: 20px;
    margin-bottom: 30px;
    padding-bottom: 10px;
  }
}

.article_page_img {
	margin-bottom: 30px;
}

.article_page_txt {
	margin-bottom: 30px;
	line-height: 2;
}

.article_page_ttl_sub {
	background: #004C98;
	color: #fff;
	padding: 10px 20px;
	font-weight: 700;
	font-size: 2rem;
	margin-bottom: 20px;
}


.mokuji {
  padding: 30px;
  background:
    url(../img/common/title_bar.png) repeat-x top left / 9px 5px,
    url(../img/common/title_bar.png) repeat-x bottom left / 9px 5px;
  max-width: 740px;
  margin: 15px auto 40px;
}

.mokuji_title {
	font-weight: 700;
	margin-bottom: 20px;
	background: #f0f0f0;
	padding: 5px;
}

.mokuji_list li {
	border-bottom: 1px solid #d6d6d6;
	padding-bottom: 10px;
	margin-bottom: 10px;
}

.mokuji_list li a {
  font-size: 1.6rem;
}
.mokuji_list li a:hover{
  color:var(--color01);
  font-weight: 500;
}

@media screen and (max-width: 768px) {
  .mokuji {
    padding: 15px;
    font-size: 80%;
    margin: 15px auto 20px;
  }
}

.article_nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 100px;
  gap: 10px;
}

/* 共通 */
.article_nav a {
  display: block;
  padding: 10px 16px;
  background: #004C98;
  color: #fff;
  text-decoration: none;
  border-radius: 6px;
  transition: 0.2s;
  font-size: 14px;
}



/* 中央 */
.article_nav_list {
  margin: 0 auto;
}

/* 左右 */
.article_nav_prev {
  margin-right: auto;
}

.article_nav_next {
  margin-left: auto;
}

.article_r {
	margin-top: 50px;
	background: #f0f0f0;
	padding: 20px;
}
.article_r dl {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 20px;
}

.article_r dl dt {
	width: 15%;
}
.article_r dl dd {
	width: 80%;
}

.article_r_sub {
	background: #333;
	color: #fff;
	padding: 5px 10px;
	display: inline-block;
	font-size: 80%;
	margin-bottom: 10px;
}
.article_r_name {
	font-weight: 700;
	font-size: 120%;
	margin-bottom: 10px;
}
.article_r_name a {
	text-decoration: underline;
}
.article_r_txt {
	font-size: 80%;
}
.article_r_sub02 {
	font-size: 80%;
}

@media screen and (max-width: 768px) {
.article_r dl {
	align-items:flex-start;
	margin-bottom: 10px;
}

.article_r dl dt {
	width: 30%;
}
.article_r dl dd {
	width: 65%;
}
}

/* 社会貢献
-------------------------------------------------------*/

/* visual */
#csr_visual {
	background: url("../img/csr/visual_bg.png") center center / cover no-repeat;
	padding-bottom: 15px;
}
#csr_visual .rope_line {
	margin-bottom: -20px;
}
#csr_visual .visual_txt span {
	display: block;
	font-size: 3.8rem;
	margin-bottom: 20px;
}

#csr_visual .visual_txt span.visual_txt_s {
	font-size:75%;
}

@media screen and (max-width:768px) {
	#csr_visual .rope_line {
		margin-bottom: -17px;
	}
	#csr_visual .visual_txt span {
		font-size: 2.5rem;
	}
}

.csr_mission .lower_ttl01 {
	margin-bottom: 30px;
}
.csr_mission .sub_ttl {
	text-align: center;
	font-size: 2.6rem;
	font-weight: 500;
	line-height: 1.8;
	margin-bottom: 30px;
}
.csr_mission .sub_ttl span {
	display: block;
	font-size: 2rem;
	margin-top: 10px;
}
.csr_mission .en {
	font-size: 4rem;
	text-align: center;
	font-weight: 700;
}
@media screen and (max-width: 768px) {
	.csr_mission .lower_ttl01 {
		margin-bottom: 20px;
	}
	.csr_mission .sub_ttl {
		font-size: 2rem;
		margin-bottom: 20px;
	}
	.csr_mission .sub_ttl span {
		display: block;
		font-size: 1.6rem;
		margin-top: 10px;
	}
	.csr_mission .en {
		font-size: 2.4rem;
	}
}

.csr_operating .inner {
	background: #fff;
	border: 2px solid rgb(29, 75, 147);
	border-radius: 30px;
	padding: 50px 70px;
}
.csr_operating .box {
	display: flex;
	flex-flow: row nowrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 30px;
	margin-top: 30px;
}
.csr_operating .img {
	width: 50%;
}
.list_csr_operating {
	width: 50%;
}
.list_csr_operating li:not(:last-child) {
	margin-bottom: 10px;
}
.list_csr_operating li {
	text-indent: -1.5em;
	padding-left: 1.5em;
}
.list_csr_operating li span {
	margin-right: 10px;
}
@media screen and (max-width: 768px) {
	.csr_operating .inner {
		padding: 30px 20px;
	}
	.csr_operating .box {
		flex-flow: column;
		align-items: center;
		justify-content: center;
		gap: 20px;
		margin-top: 2%;
		margin-top: 20px;
	}
	.csr_operating .img {
		width: 100%;
	}
	.list_csr_operating {
		width: 100%;
	}
}

.list_csr_vision li:not(:last-child) {
	margin-bottom: 50px;
}
.list_csr_vision .ttl_en {
	text-align: center;
	font-size: 2.8rem;
	color: var(--color01);
	letter-spacing: 0.02em;
	margin: 0 auto 30px;
	font-weight: 700;
	border-top: 2px solid var(--color01);
	border-bottom: 2px solid var(--color01);
	padding: 0 0 10px;
}
.list_csr_vision .ttl_en span {
	font-size: 5rem;
	margin-right: 15px;
}
.list_csr_vision li .ttl {
	text-align: center;
	font-size: 2.8rem;
	color: var(--color01);
	letter-spacing: 0.02em;
	margin: 0 auto 40px;
	font-weight: 700;
}
.list_csr_vision dl {
	display: flex;
	flex-flow: row nowrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 30px;
}
.list_csr_vision li:nth-child(2n) dl {
	flex-flow: row-reverse;
}
.list_csr_vision dl dt {
	width: 60%;
}
.list_csr_vision dl dd {
	width: 40%;
}
@media screen and (max-width: 768px) {
	.list_csr_vision li:not(:last-child) {
		margin-bottom: 30px;
	}
	.list_csr_vision .ttl_en {
		font-size: 2rem;
		color: var(--color01);
		margin: 0 auto 20px;
	}
	.list_csr_vision .ttl_en span {
		font-size: 3.6rem;
		margin-right: 10px;
	}
	.list_csr_vision li .ttl {
		font-size: 1.8rem;
		margin: 0 auto 30px;
	}
	.list_csr_vision dl {
		flex-flow: column;
		align-items: center;
		justify-content: center;
		gap: 20px;
	}
	.list_csr_vision li:nth-child(2n) dl {
		flex-flow: column;
	}
	.list_csr_vision dl dt {
		width: 100%;
	}
	.list_csr_vision dl dd {
		width: 100%;
	}
}

.csr_insta {
	margin-top: 30px;
}

.csr_insta span {
	display: inline-block;
	position: relative;
	padding-left: 30px;
}

.csr_insta span::before {
	content: "";
	background: url(../img/common/instagram_i.png) no-repeat;
	background-size: 100%;
	width: 25px;
	height: 25px;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
}

/* 社会貢献
-------------------------------------------------------*/
.company_message .lower_ttl02 {
	margin-bottom: 40px;
}
.list_company_message {
	margin-bottom: 50px;
}
.list_company_message li {
	display: flex;
	flex-flow: row nowrap;
	align-items: flex-start;
	justify-content: flex-start;
}
.list_company_message li:not(:last-child) {
	margin-bottom: 15px;
}
.list_company_message .en {
	font-weight: 700;
	font-size: 3rem;
	width: 220px;
	min-width: 220px;
	position: relative;
	font-family: 'Times New Roman', Times, serif;
}
.list_company_message .en::after {
	position: absolute;
	display: block;
	content: "";
	width: 70px;
	height: 1px;
	background: var(--color01);
	right: 0;
	top: 50%;
	transform: translate(0,50%);
}
.list_company_message .ttl {
	font-size: 1.8rem;
	font-weight: 700;
	padding-left: 20px;
	padding-top: 10px;
}
.message_box .in {
	display: flex;
	flex-flow: row nowrap;
	align-items: flex-start;
	justify-content: space-between;
	margin-bottom: 40px;
	gap: 30px;
}
.message_box .in .img {
	width: 40%;
}
.message_box .in dl {
	width: 60%;
}
.message_box .ttl {
	font-weight: 700;
	font-size: 2.2rem;
	margin-bottom: 15px;
	border-bottom: 1px solid var(--color01);
	padding-bottom: 10px;
}
.message_box .ttl.mt30 {
	margin-top: 30px;
}
.message_box .txt {
	line-height: 1.8;
}
.message_box .txt span {
	font-weight: 700;
}

.message_name_wrap {
	display: flex;
	justify-content: flex-end;
	margin-top: 30px;
}

.message_name {
	max-width: 300px;
	
}

@media screen and (max-width: 768px) {
	.company_message .lower_ttl02 {
		margin-bottom: 30px;
	}
	.list_company_message {
		margin-bottom: 30px;
	}
	.list_company_message li {
		flex-flow: column;
	}
	.list_company_message li:not(:last-child) {
		margin-bottom: 10px;
	}
	.list_company_message .en {
		font-size: 2rem;
		width: 100%;
		min-width: 100%;
		margin-bottom: 5px;
	}
	.list_company_message .en::after {
		width: 100%;
		height: 1px;
		right: 0;
		top: 50%;
		transform: translate(0,50%);
	}
	.list_company_message .en span {
		display: inline-block;
		background: #fff;
		position: relative;
		z-index: 4;
		padding-right: 10px;
	}
	.list_company_message .ttl {
		font-size: 1.5rem;
		padding-left: 0;
		padding-top: 0;
	}
	.message_box .in {
		flex-flow: column;
		align-items: center;
		justify-content: center;
		margin-bottom: 20px;
		gap: 20px;
	}
	.message_box .in .img {
		width: 70%;
	}
	.message_box .in dl {
		width: 100%;
	}
	.message_box .ttl {
		font-size: 1.8rem;
	}

}

.company_info .lower_ttl02 {
	margin-bottom: 40px;
}
.company_table {
	width: 100%;
	border: 1px solid #d6d6d6;
}
.company_table tr {
	border-bottom: 1px solid #d6d6d6;
}
.company_table th {
	background: var(--color01);
	width: 30%;
	padding: 20px;
	color: #fff;
	font-weight: 700;
	vertical-align: middle;
}
.company_table td {
	background: #fff;
	width: 70%;
	padding: 20px;
}
@media screen and (max-width: 768px) {
	.company_info .lower_ttl02 {
		margin-bottom: 30px;
	}
	.company_table {
		font-size: 1.5rem;
	}
	.company_table th {
		background: var(--color01);
		width: 30%;
		padding: 10px;
		color: #fff;
		font-weight: 700;
		vertical-align: middle;
	}
	.company_table td {
		background: #fff;
		width: 70%;
		padding: 10px;
	}

}

.company_access .lower_ttl02 {
	margin-bottom: 40px;
}
.company_access .ttl {
	text-align: center;
	margin-bottom: 40px;
}
@media screen and (max-width: 768px) {
	.company_access .lower_ttl02 {
		margin-bottom: 30px;
	}
	.company_access .ttl {
		margin-bottom: 30px;
	}
	.company_access .map iframe {
		height: 250px;
	}
}

/* 加盟店一覧
-------------------------------------------------------*/
.nav_partners {
	margin-bottom: 50px;
	display: flex;
	justify-content: flex-start;
}

.nav_partners li {
	margin-right: 20px;
}

.nav_partners li a {
	background: var(--color01);
	color: #fff;
	padding: 10px 20px;
	border-radius: 5px;
}
.nav_partners li:not(:last-child) {
	margin-right: 10px;
}
.partners .lower_ttl02 {
	text-align: left;
	margin-bottom: 20px;
}

.list_partners {
	margin-bottom: 50px;
}

.list_partners li:not(:last-child) {
	margin-bottom: 40px;
}
.list_partners li .ttl {
	background: var(--color02);
	font-weight: 700;
	padding-left: 20px;
	margin-bottom: 20px;
	padding: 10px 20px;
	color: #004C98;
}
.list_partners li dl {
	display: flex;
	flex-flow: row nowrap;
	align-items: flex-start;
	justify-content: flex-start;
	border-bottom: 1px solid #d6d6d6;
	padding-bottom: 10px;
}
.list_partners li dl:not(:last-child) {
	margin-bottom: 10px;
}
.list_partners li dl dt {
	font-weight: 700;
	width: 80px;
}
@media screen and (max-width: 768px) {
	.nav_partners {
		margin-bottom: 40px;
	}
	.nav_partners li:not(:last-child) {
		margin-right: 10px;
	}
	.list_partners li:not(:last-child) {
		margin-bottom: 30px;
	}
	.list_partners li .ttl {
		padding: 10px;
	}
	.list_partners li dl {
		font-size: 1.5rem;
	}
	.list_partners li dl dt {
		min-width: 120px;
		width: 120px;
	}
}

/* estimate_contact
-------------------------------------------------------*/
.estimate_contact .lower_ttl02 {
	margin-bottom: 30px;
}
.estimate_contact .top_txt {
	margin-bottom: 70px;
	line-height: 1.8;
}
.estimate_contact .top_txt .blue {
	font-weight: 700;
}
.estimate_contact .tel_num {
	text-align: center;
	font-weight: 700;
	font-size: 4rem;
	margin-bottom: 10px;
	color: #e38700;
}
.estimate_contact .time {
	text-align: center;
	margin-bottom: 70px;
}
.estimate_contact .table_temp {
	width: 100%;
	max-width: 800px;
	margin: 0 auto;
}
.estimate_contact.contact_after .inner {
	padding: 0;
}
.estimate_contact tr {
	display: table;
	width: 100%;
	table-layout: fixed;
	border-bottom: 1px solid #d6d6d6;
}
.estimate_contact tr>* {
	display: table-cell;
	vertical-align: middle;
	padding: 20px 10px;
	box-sizing: border-box;
	line-height: 1.5;
}
.estimate_contact tr th {
	width: 220px;
	text-align: left;
}
.estimate_contact tr th b {
	display: block;
	position: relative;
	font-weight: normal;
}
.estimate_contact tr th span {
	display: block;
	font-size: 1.2rem;
	margin-top: 10px;
}
.estimate_contact tr.hissu th b::after,
.estimate_contact tr.nini th b::after {
	color: #fff;
	font-weight: 500;
	font-size: 1.2rem;
	width: 34px;
	height: 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	margin: auto;
	border-radius: 3px;
}
.estimate_contact tr.hissu th b::after {
	content: "必須";
	background: #f00;
}
.estimate_contact tr.nini th b::after {
	content: "任意";
	background: #777;
}
.estimate_contact .contact_after tr {
	border-bottom: 1px solid #ccc;
}
.estimate_contact .contact_after tr:first-child {
	border-top: 1px solid #ccc;
	margin: 30px 0 0;
}
.estimate_contact .contact_after tr th {
	color: #aaa;
}
.estimate_contact .contact_after tr td {
	font-weight: 500;
}
.txt_form .red,
.error_messe b {
	color: #f00;
	font-weight: normal;
}
.error_messe {
	margin: 20px 0 0;
	text-align: center;
	line-height: 1.3;
}
.error_messe>* {
	display: inline-block;
}
.estimate_contact input[type="text"],
.estimate_contact select,
.estimate_contact textarea {
	width: 100%;
	background: #f0f0f0;
}
.estimate_contact input[type="text"],
.estimate_contact select {
	height: 40px;
}
.estimate_contact textarea {
	min-height: 150px;
	resize: vertical;
}
.estimate_contact .radio_area label,
.estimate_contact .check_area label {
	display: inline-block;
	margin: 5px 5px 5px 0;
	line-height: 1.3;
}
.estimate_contact .txt_form {
	text-align: center;
	line-height: 1.4;
}
.estimate_contact .txt_form span {
	display: block;
}
::placeholder {
	color: #ccc;
}
.estimate_contact .form_btn {
	display: flex;
	flex-flow: row-reverse nowrap;
	align-items: center;
	justify-content:center;
}
.estimate_contact .form_btn01,
.estimate_contact .form_btn02 {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 80%;
	max-width: 260px;
	height: 50px;
	border: none;
	border-radius: 5px;
	padding: 10px;
	margin: 30px 10px;
	box-sizing: border-box;
	font-size: 120%;
	color: #fff;
	line-height: 1;
    text-align: center;
}
.estimate_contact .form_btn01 {
	background: #004C98;
}
.estimate_contact .form_btn02 {
	background: #777;
	max-width: 150px;
}
@media screen and (min-width:768px) and ( max-width:1080px) {
	
}
@media screen and (max-width:768px) {
	.estimate_contact.contact_after tr:first-child {
		margin: 20px 0 0;
	}
	.estimate_contact tr>* {
		display: block;
		padding: 15px 0;
		line-height: 1.3;
	}
	.estimate_contact tr th {
		width: 100%;
		font-size: 100%;
	}
	.estimate_contact tr td {
		padding-top: 0;
	}
	.estimate_contact tr.hissu th b::after,
	.estimate_contact tr.nini th b::after {
		top: 0!important;
		right: 0!important;
		bottom: 0!important;
	}
	.estimate_contact .radio_area label,
	.estimate_contact .check_area label {
		display: flex;
		align-items: center;
	}
	.estimate_contact .form_btn {
		flex-flow: column;
	}
	.estimate_contact .form_btn01,
	.estimate_contact .form_btn02 {
		margin: 20px 0 0;
		font-size: 100%;
		height: 50px;
	}
}

/* プラント工場様向けサービス
-------------------------------------------------------*/
#exterior_wall_visual.service-plant {
	background: url("../img/service-plant/visual_bg@2x.png") center center / cover no-repeat;
	padding-bottom: 15px;
}
#exterior_wall_visual.service-hotel {
	background-image: url("../img/service-hotel/visual_bg@2x.png");
}
#exterior_wall_visual.service-union {
	background-image: url("../img/service-union/visual_bg@2x.png");
}
#exterior_wall_visual.servise-building {
	background-image: url("../img/servise-building/visual_bg@2x.png");
}
#exterior_wall_visual.service-plant .visual_txt {
	text-align: center;
	line-height: 1.45;
}
#exterior_wall_visual.service-plant .visual_txt span {
	display: block;
	font-size: 3.8rem;
	margin-bottom: 15px;
}
.service-plant_note {
	color: #d13c3c;
	text-align: center;
	margin-top: 25px;
	font-size: 1.4rem;
}

.service-plant_lead.area {
	padding-top: 70px;
	padding-bottom: 0;
}
.service-plant_intro {
	background: url("../img/service-plant/txt_bg_top@2x.png") no-repeat center center / 100% 100%;
	background-color: #1C478A;
	background-size: auto 170%;
	border-radius: 8px;
	overflow: hidden;
	color: #fff;
	font-size: 3.2rem;
	font-weight: 700;
	line-height: 1.6;
	text-align: center;
	padding: 48px 40px 52px;
	margin: 0 auto 52px;
}
.service-plant .lower_ttl01 {
	margin-bottom: 40px;
}
.plant_problem_list {
	display: flex;
	flex-flow: row wrap;
	justify-content: center;
	gap: 18px 28px;
	margin: 0 auto 35px;
}
.plant_problem_list li {
	width: calc((100% - 10px) / 2);
	max-width: 480px;
	color: #fff;
	text-align: center;
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 1.45;
	padding: 45px 22px;
	background: url("../img/service-plant/txt_bg01@2x.png") no-repeat center center / 100% 100%;
}
.plant_problem_list li:nth-child(2) {
	background-image: url("../img/service-plant/txt_bg02@2x.png");
}
.plant_problem_list li:nth-child(3) {
	background-image: url("../img/service-plant/txt_bg02@2x.png");
}
.service-plant_problem_lead {
	text-align: center;
	font-weight: 700;
	font-size: 3.3rem;
	margin-bottom: 10px;
}
.service-plant_problem_txt {
	text-align: center;
	font-weight: 700;
	font-size: 4rem;
	margin-bottom: 45px;
}
.service-plant_jump span {
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 760px;
	min-height: 90px;
	margin: 0 auto;
	padding: 15px 30px;
	border: 3px solid var(--color01);
	border-radius: 30px;
	background: #fff;
	color: var(--color01);
	font-size: 4rem;
	font-weight: 700;
	position: relative;
}
.service-plant_jump {
	position: relative;
	z-index: 2;
	margin-top: -150px;
	margin-bottom: 40px;
}
.service-plant_jump span::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -17px;
	width: 28px;
	height: 28px;
	background: #fff;
	border-right: 3px solid var(--color01);
	border-bottom: 3px solid var(--color01);
	transform: translateX(-50%) rotate(45deg);
}

#exterior_wall.service-plant .area02 .lower_ttl02 {
	margin-bottom: 8px;
}
#exterior_wall.service-plant .area02 {
	padding-top: 100px;
	margin-top: 150px;
}
#exterior_wall.service-plant .area02 .lower_ttl01 {
	margin-bottom: 20px;
}
#exterior_wall.service-plant .area02 .top_ttl {
	text-align: center;
	font-weight: 500;
	font-size: 2rem;
	line-height: 1.8;
	margin-bottom: 60px;
}
.service-plant_section_label {
	text-align: center;
	font-weight: 700;
	font-size: 2.8rem;
	margin-bottom: 15px;
}
#exterior_wall.service-plant .list_reason li .img {
	margin-bottom: 15px;
}
#exterior_wall.service-plant .list_reason li .ttl {
	font-size: 2rem;
	line-height: 1.5;
}
#exterior_wall.service-plant .list_reason li .txt {
	font-size: 1.6rem;
	line-height: 1.8;
}

.service-plant_maintenance.area {
	padding-top: 90px;
}

.service-plant_maintenance .lower_ttl02 {
	margin-bottom: 10px;
}
.service-plant_maintenance .lower_ttl01 {
	margin-bottom: 50px;
}
.service-plant_service_label {
	background: #1C478A;
	color: #fff;
	text-align: center;
	font-size: 2.8rem;
	font-weight: 700;
	padding: 20px 20px;
	border-radius: 8px 8px 0 0;
	margin: 0 auto 40px;
}
.service-plant_service_ttl {
	text-align: center;
	font-size: 3rem;
	font-weight: 700;
	margin-bottom: 20px;
}
.service-plant_service_txt {
	text-align: center;
	line-height: 1.8;
	margin-bottom: 40px;
}

.service-plant_service_card_wrap {
	display: flex;
}
.service-plant_service_card_wrap.is-grid-3,
.service-plant_service_card_wrap.is-grid-2 {
	display: grid;
	gap: 18px;
}
.service-plant_service_card_wrap.is-grid-3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
.service-plant_service_card_wrap.is-grid-2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	max-width: 540px;
}
.service-plant_service_card {
	max-width: 260px;
	background: #fff;
	border: 1px solid #bfbfbf;
	padding: 12px 12px 20px;
	position: relative;
}
.service-plant_service_card_wrap.is-grid-3 .service-plant_service_card,
.service-plant_service_card_wrap.is-grid-2 .service-plant_service_card {
	max-width: 100%;
}
.service-plant_service_card .img {
	margin-bottom: 15px;
}
.service-plant_service_card .ttl {
	font-weight: 700;
	font-size: 1.8rem;
	margin-bottom: 10px;
	text-align: center;
}
.service-plant_service_card .ttl span {
	font-size: 70%;
}
.service-plant_service_card .txt {
	font-size: 1.5rem;
	line-height: 1.7;
}
.service-plant_service_bar {
	height: 18px;
	background: #1C478A;
	border-radius: 0 0 8px 8px;
	margin: 35px auto 0;
}

.service-plant_case.area {
	padding: 70px 20px;
}
.service-plant_case .lower_ttl02 {
	margin-bottom: 10px;
}
.service-plant_case .lower_ttl01 {
	margin-bottom: 50px;
}
.service-plant_case .slider_case {
	margin-top: 50px;
}
.service-plant_case .slider_case li {
	background: #fff;
	border: 1px solid #aeb3b9;
	padding: 10px;
}
.service-plant_case .slider_case li .img {
	margin-bottom: 15px;
}
.service-plant_case .slider_case li .ttl {
	font-size: 1.9rem;
	font-weight: 700;
	line-height: 1.5;
}
.service-plant_case .slider_case li .txt {
	font-size: 1.3rem;
	line-height: 1.7;
}
.list_plant_case {
	display: flex;
	flex-flow: row nowrap;
	gap: 18px;
	padding: 0 20px;
}
.list_plant_case li {
	width: calc((100% - 54px) / 4);
	background: #fff;
	border: 1px solid #aeb3b9;
	padding: 10px;
}
.list_plant_case li .img {
	margin-bottom: 15px;
}
.list_plant_case li .ttl {
	font-weight: 700;
	font-size: 1.9rem;
	line-height: 1.5;
	margin-bottom: 10px;
}
.list_plant_case li .txt {
	font-size: 1.3rem;
	line-height: 1.7;
}

.service-plant_other .lower_ttl02 {
	margin-bottom: 10px;
}
.service-plant_other .lower_ttl01 {
	margin-bottom: 50px;
}
.list_plant_other {
	display: flex;
	justify-content: center;
	gap: 20px;
	margin-top: 50px;
}
.list_plant_other li {
	width: calc((100% - 10px) / 3);
	max-width: 300px;
}
.list_plant_other li a {
	display: block;
	background: #dfdfe0;
	padding: 20px 14px 14px;
}
.list_plant_other li .ttl {
	text-align: center;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.5;
	margin-bottom: 15px;
}

.list_plant_other_index li .ttl {
	font-size: 80%;
}

#exterior_wall.service-plant .area07 .ttl02_border {
	max-width: 860px;
	margin: 0 auto 60px;
	font-size: 3.8rem;
}
#exterior_wall.service-plant .area07.bg_blue03 {
	background: var(--color04);
}

.area07.bg_blue03 .inner {
	max-width: 800px;
}

.service-plant .lower_ttl01 .size_s {
	font-size: 3.2rem;
}

@media screen and (max-width:768px) {
	#exterior_wall_visual.service-plant {
		background-position: center center;
	}
	#exterior_wall_visual.service-plant .visual_txt span {
		font-size: 2.6rem;
		margin-bottom: 10px;
	}
	.service-plant_note {
		font-size: 1.2rem;
		margin-top: 15px;
	}
	.service-plant_lead.area {
		padding-top: 40px;
	}
	.service-plant_intro {
		background-size: auto 110%;
		font-size: 1.8rem;
		padding: 34px 20px 38px;
		margin-bottom: 35px;
	}
	.service-plant .lower_ttl01 {
		margin-bottom: 20px;
	}
	.plant_problem_list {
		max-width: 360px;
		gap: 12px;
		margin-bottom: 25px;
	}
	.plant_problem_list li {
		width: 100%;
		font-size: 1.8rem;
		padding: 30px 18px;
	}
	.service-plant_problem_lead {
		font-size: 1.9rem;
		margin-bottom: 5px;
	}
	.service-plant_problem_txt {
		font-size: 2.6rem;
		line-height: 1.5;
		margin-bottom: 30px;
	}
	.service-plant_jump a {
		min-height: 64px;
		font-size: 2rem;
		padding: 16px 20px;
	}
	.service-plant_jump a::after {
		width: 20px;
		height: 20px;
		bottom: -12px;
	}
	.service-plant_jump {
		margin-top: -60px;
	}
	#exterior_wall.service-plant .area02 {
		padding-top: 30px;
		margin-top: 70px;
	}
	.service-plant_section_label {
		font-size: 2rem;
		margin-bottom: 10px;
	}
	#exterior_wall.service-plant .area02 .top_ttl {
		font-size: 1.6rem;
		margin-bottom: 35px;
	}
	#exterior_wall.service-plant .list_reason li .ttl {
		font-size: 2rem;
	}
	#exterior_wall.service-plant .list_reason li .txt {
		font-size: 1.5rem;
	}
	.service-plant_maintenance.area {
		padding-top: 40px;
	}
	.service-plant_maintenance .inner {
		max-width: 100%;
	}
	.service-plant_maintenance .lower_ttl01 {
		margin-bottom: 30px;
	}
	.service-plant_service_label {
		font-size: 2rem;
		padding: 12px 20px;
		margin-bottom: 25px;
	}
	.service-plant_service_ttl {
		font-size: 2.2rem;
		margin-bottom: 15px;
	}
	.service-plant_service_txt {
		font-size: 1.5rem;
		margin-bottom: 25px;
	}
	.service-plant_service_card_wrap {
		display: block;
	}
	.service-plant_service_card_wrap.is-grid-3,
	.service-plant_service_card_wrap.is-grid-2 {
		display: block;
		max-width: 100%;
	}
	.service-plant_service_card {
		max-width: 100%;
		left: 0;
		margin-bottom: 15px;
	}
	.service-plant_service_card .ttl {
		font-size: 1.6rem;
	}
	.service-plant_service_card .txt {
		font-size: 1.3rem;
	}
	.service-plant_service_bar {
		height: 12px;
		margin-top: 20px;
	}
	.service-plant_case.area {
		padding: 40px 20px;
		padding-left: 0;
		padding-right: 0;
	}
	.service-plant_case .lower_ttl01 {
		margin-bottom: 30px;
	}
	.service-plant_case .slider_case {
		margin-top: 30px;
	}
	.service-plant_case .slider_case li .ttl {
		font-size: 1.6rem;
	}
	.list_plant_case {
		flex-flow: column;
		padding: 0;
	}
	.list_plant_case li {
		width: 100%;
	}
	.list_plant_case li .ttl {
		font-size: 1.6rem;
	}
	.service-plant_other .lower_ttl01 {
		margin-bottom: 30px;
	}
	.list_plant_other {
		flex-flow: column;
		align-items: center;
		margin-top: 25px;
	}
	.list_plant_other li {
		width: 100%;
		max-width: 320px;
	}
	.list_plant_other li .ttl {
		font-size: 1.6rem;
	}
	#exterior_wall.service-plant .area07 .ttl02_border {
		font-size: 2.2rem;
		margin-bottom: 35px;
	}

	.service-plant_jump span {
		font-size: 2rem;
		min-height:70px;
	}
	.service-plant .lower_ttl01 .size_s {
	font-size: 2.2rem;
}
}

#exterior_wall_visual.service-plant .visual_txt span.l_big {
	font-size: 140%;
}
@media screen and (max-width:768px) {
	#exterior_wall_visual.service-plant .visual_txt span.l_big {
	font-size: 120%;
}
}

/* 求人情報
-------------------------------------------------------*/
.recruit_area01 .lower_ttl02 {
	margin-bottom: 30px;
}
.recruit_img01 {
	margin-bottom: 30px;
}
.list_recruit {
	border: 2px solid var(--color01);
	padding: 30px;
	border-radius: 20px;
}
.list_recruit li {
	position: relative;
	padding-left: 30px;
}
.list_recruit li span {
	font-weight: 700;
}
.list_recruit li:not(:last-child) {
	margin-bottom: 15px;
}
.list_recruit li::before {
	position: absolute;
	display: block;
	content: "";
	background: url(../img/common/icon_check.png)no-repeat left top/21px 20px;
	width: 21px;
	height: 20px;
	top: 5px;
	left: 0;
}
.recruit_area02 .inner {
	background: #fff;
	padding: 50px;
	border-radius: 30px;
}
@media screen and (max-width:768px) {
	.recruit_area01 .lower_ttl02 {
		margin-bottom: 20px;
	}
	.recruit_img01 {
		margin-bottom: 20px;
	}
	.list_recruit {
		padding: 20px;
	}
	.recruit_area02 .inner {
		padding: 30px 20px;
	}
}


/* FCオーナー・協力会社様募集
-------------------------------------------------------*/
.party_area01 .lower_ttl02 {
	margin-bottom: 30px;
}
.party_area01 .list_recruit {
	display: flex;
	flex-flow: row wrap;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 15px 30px;
	margin: 70px 0 50px;
	position: relative;
}
.party_area01 .list_recruit::after {
  position: absolute;
  display: block;
  content: "";
  background: url(../img/strength/point_arrow.png)no-repeat center top/70px 58px;
  width: 70px;
  height: 58px;
  top: -46px;
  right: 50%;
  transform: translate(50%,0);
}
.party_area01 .list_recruit li {
	width: calc((100% - 30px)/2);
}
.party_area01 .list_recruit li:not(:last-child) {
	margin-bottom: 0;
}
.party_area01 .party_ttl {
	text-align: center;
	font-size: 2rem;
}

@media screen and (max-width:768px) {
	.party_area01 .lower_ttl02 {
		margin-bottom: 20px;
	}
	.party_area01 .list_recruit {
		flex-flow: column;
		align-items: flex-start;
		justify-content: flex-start;
		gap: 15px;
		margin: 60px 0 30px;
	}
	.party_area01 .list_recruit li {
		width: 100%;
	}
	.party_area01 .list_recruit li:not(:last-child) {
		margin-bottom: 0;
	}
	.party_area01 .party_ttl {
		font-size: 1.6rem;
	}
}

/* 無料ロープアクセス体験会
-------------------------------------------------------*/
.session_area01 .lower_ttl02 {
	margin-bottom: 30px;
}
.session_ttl {
	text-align: center;
	font-weight: 700;
	font-size: 2.6rem;
	margin-bottom: 30px;
}
.session_box01 {
	margin: 0 0 50px;
	border: 2px solid #1d4b93;
	background: var(--color04);
	padding: 30px;
	border-radius: 20px;
}
.session_box01>div {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	margin-bottom: 30px;
}
.session_box01 .session_img02 {
	width: 50%;
}
.session_box01 .list_recruit {
	width: 50%;
	background: #fff;
}
.session_box02 {
	max-width: 500px;
	margin: 0 auto;
	font-size: 2rem;
}
.session_box02 dl {
	display: flex;
	flex-flow: row nowrap;
	align-items: center;
	justify-content: flex-start;
}
.session_box02 dl:not(:last-child) {
	margin-bottom: 20px;
}
.session_box02 dl dt {
	background: var(--color01);
	color: #fff;
	font-weight: 700;
	min-width: 100px;
	text-align: center;
	padding: 5px 0;
	margin-right: 15px;
}

@media screen and (max-width:768px) {
	.session_area01 .lower_ttl02 {
		margin-bottom: 20px;
	}
	.session_ttl {
		font-size: 1.8rem;
		margin-bottom: 20px;
	}
	.session_box01 {
		margin: 0 0 30px;
		padding: 20px;
	}
	.session_box01>div {
		flex-flow: column;
		align-items: center;
		justify-content: center;
		gap: 20px;
		margin-bottom: 20px;
	}
	.session_box01 .lower_ttl02 {
		margin-bottom: 0;
	}
	.session_box01 .session_img02 {
		width: 100%;
	}
	.session_box01 .list_recruit {
		width: 100%;
	}
	.session_box02 {
		max-width: 100%;
		font-size: 1.6rem;
	}
	.session_box02 dl:not(:last-child) {
		margin-bottom: 10px;
	}
	.session_box02 dl dt {
		min-width: 70px;
	}
}

/* サイトマップ
-------------------------------------------------------*/
.sitemap_box {
	display: flex;
	flex-flow: row wrap;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 50px 40px;
}
.sitemap_group {
	width: calc((100% - 80px)/3);
}
.sitemap_group_ttl {
	position: relative;
	padding-left: 20px;
	display: block;
	border-bottom: 1px solid var(--color01);
	padding-bottom: 15px;
	font-size: 2rem;
	font-weight: 700;
	color: var(--color01);
}
.sitemap_group_ttl::before {
	position: absolute;
	display: block;
	content: "";
	width: 0;
	height: 0;
	border-style: solid;
	border-top: 7px solid transparent;
	border-bottom: 7px solid transparent;
	border-left: 10px solid var(--color01);
	border-right: 0;
	left: 0;
	top: 7px;
}
.list_sitemap {
	font-size: 1.6rem;
	margin-top: 20px;
}
.list_sitemap li {
	position: relative;
	padding-left: 20px;
}
.list_sitemap li:not(:last-child) {
	margin-bottom: 12px;
}
.list_sitemap li::before {
	position: absolute;
	display: block;
	content: "●";
	color: var(--color01);
	left: 0;
}
.list_sitemap a {
	text-decoration: none;
	transition: color .2s ease;
}
.list_sitemap a:hover {
	color: var(--color01);
}
@media screen and (max-width:768px) {
	.sitemap_box {
		flex-flow: column;
		align-items: flex-start;
		justify-content: flex-start;
		gap: 30px;
	}
	.sitemap_group {
		width: 100%;
	}
	.sitemap_group_ttl {
		padding-bottom: 15px;
		font-size: 1.8rem;
	}
	.list_sitemap {
		margin-top: 15px;
		font-size: 1.5rem;
	}
}

.glo_c_02 {
  padding: 15px 25px 10px;
  border: 1px solid #004C98;
}

.archive_ttl {
    margin: 35px 0 30px;
    text-align: center;
    font-size: 2.2rem;
    font-weight: 700;
    line-height: 1.5;
}

/* 社長ブログ
-------------------------------------------------------*/
.president_blog_list li {
  display: flex;
  flex-direction: column;
}

.president_blog_list .article_list_img a {
  display: block;
  background: #f0f0f0;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.president_blog_list .article_list_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.president_blog_list .article_list_txt {
  flex: 1;
}

.president_blog_list .article_list_ttl a {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.article_noimage {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: #777;
  font-size: 1.4rem;
}

.president_blog_content img {
  max-width: 100%;
  height: auto;
}

.president_blog_content h2 {
  scroll-margin-top: 100px;
}

.president_blog_content .wp-block-image {
  margin: 30px 0;
}

.article_nav_empty {
  visibility: hidden;
  min-width: 1px;
}

/* =========================================
   社長ブログ 追加CSS
========================================= */
.president_blog_list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px 28px;
}

.president_blog_list > li {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.president_blog_list .article_list_img img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.president_blog_list .article_list_txt {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.president_blog_list .article_list_ttl a {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.article_list_cat a,
.article_list_cat span:first-child {
  display: inline-block;
}

.president_blog_content h2 {
  scroll-margin-top: 90px;
}

.president_blog_content p {
  line-height: 2;
}

.article_nav .is-empty {
  display: block;
}

@media screen and (max-width: 767px) {
  .president_blog_list {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}
.article_r {
  margin-bottom: 40px;
}
.article_page_content p {
  margin: 0 0 2.14em;
}
.article_page_content p + h3 {
  margin-top: 30px;
}
.article_page_content hr,hr.wp-block-separator {
    height: 0;
    margin: 20px 0 50px;
    padding: 0;
    border-top: 1px dotted rgba(170, 170, 170, 0.68);
}

.article_page_content table, .article_page_content dl {
    margin-bottom: 30px;
}
.article_page_content table th {
    background-color: #42a6dd;
    color: #fff;
}
.article_page_content table th, .article_page_content table td, .article_page_content dt, .article_page_content dd, .wp-caption, ul.recent_entries .loop-share-num i {
    border: 1px solid rgba(170, 170, 170, 0.48);
}
.article_page_content table {
    margin: 20px auto;
}
.article_page_content table th {  
    font-weight: normal;
  text-align: left;
}
.article_page_content dt, th, td {
  padding: 6px 8px 6px 8px;
  font-size: 1.6rem;
}
@media screen and (max-width: 768px) {
  .article_page_content p {
    margin: 0 0 2em;
  }
  .article_page_content dt, th, td {
    font-size: 1.4rem;
  }
}
/* ==========================================
社長ブログ一覧・詳細
========================================== */

/* 一覧 */
.president_blog_archive .article_cat,
.president_blog_cat_nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 50px;
  padding: 0;
  list-style: none;
}

.president_blog_archive .article_cat li,
.president_blog_cat_nav li {
  width: auto;
  margin: 0;
}

.president_blog_archive .article_cat li a,
.president_blog_cat_nav li a {
  display: block;
  padding: 6px 12px;
  background: #004C98;
  border-radius: 5px;
  text-decoration: none;
  font-size: 1.2rem;
  line-height: 1.4;
  color: #fff;
}

.president_blog_list {
  display: flex !important;
  flex-wrap: wrap;
  gap: 40px;
  margin: 40px 0 50px;
  padding: 0;
  list-style: none;
  align-items: stretch;
}

.president_blog_list > li,
.president_blog_item {
  width: calc((100% - 80px) / 3) !important;
  display: flex !important;
  flex-direction: column;
  margin: 0;
  padding: 0;
  background: #f0f0f0;
  height: auto !important;
  min-height: 0 !important;
}

.president_blog_list .article_list_img,
.president_blog_thumb {
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0;
  background: #fff;
  overflow: hidden;
}

.president_blog_list .article_list_img a,
.president_blog_thumb a {
  display: block;
  width: 100%;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  line-height: 0;
  overflow: hidden;
}

.president_blog_list .article_list_img img,
.president_blog_thumb img {
  display: block;
  width: 100%;
  height: auto !important;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  margin: 0 !important;
  padding: 0 !important;
}

.president_blog_list .article_list_txt,
.president_blog_card_body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  background: #f0f0f0;
  padding: 20px !important;
  margin: 0 !important;
  height: auto !important;
  min-height: 0 !important;
}
.president_blog_meta{
    display:flex;
    align-items:center;
    gap:14px;
    margin-bottom:10px;
}

/* カテゴリ（複数対応） */
.article_list_cat{
    display:flex;
    flex-wrap:wrap;
    gap:5px;
    align-items:center;
    margin:0;
}

.article_list_cat a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:6px 8px;
    background:#004C98;
    color:#fff;
    font-size:0.9rem;
    line-height:1;
    border-radius:3px;
    text-decoration:none;
}
.president_blog_list .article_day{
  display: block;
  margin: 0!important;
  padding: 0;
  color: #777;
  font-size: 1.2rem;
  line-height: 1.5;
}

.president_blog_meta .article_day{
  color:#777;
  font-size: 1.2rem;
  line-height:1;
  margin:0;
}

.president_blog_list .article_list_ttl,
.president_blog_card_title {
  margin: 0 !important;
  padding: 0;
  font-size: 1.8rem;
  line-height: 1.7;
  font-weight: 700;
}

.president_blog_list .article_list_ttl a,
.president_blog_card_title a {
  color: #222;
  text-decoration: none;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}
.president_blog_archive_heading {
  margin: 35px 0 30px;
  text-align: center;
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1.5;
}
@media screen and (max-width: 768px) {
  .president_blog_archive_heading {
    margin: 12px 0 20px;
    font-size: 1.8rem;
  }
}

/* 詳細 */
.president_blog_content img,
.article_page_content img {
  max-width: 100%;
  height: auto;
}

.president_blog_content h2,
.article_page_content h2 {
  scroll-margin-top: 100px;
}

.article_r {
  margin-bottom: 40px;
}

.article_page_content p {
  margin: 0 0 2.14em;
  line-height: 2;
}

.article_page_content p strong {
  font-weight: bold;
  padding-right: 10px;
  background: linear-gradient(transparent 60%, rgba(173, 216, 230, 0.4) 0%);
  display: inline;
  padding: 0 1px 0px;
}

.article_page_content p + h3,
.article_page_content p + h2 {
  margin-top: 30px;
}

.article_page_content hr,
hr.wp-block-separator {
  height: 0;
  margin: 20px 0 50px;
  padding: 0;
  border: none;
  border-top: 1px dotted rgba(170, 170, 170, 0.68);
}

.article_page_content table,
.article_page_content dl {
  margin: 20px auto 30px;
}

.article_page_content table {
  width: 100%;
  border-collapse: collapse;
}

.article_page_content table th {
  background-color: #42a6dd;
  color: #fff;
  font-weight: normal;
  text-align: left;
}

.article_page_content table th,
.article_page_content table td,
.article_page_content dt,
.article_page_content dd {
  border: 1px solid rgba(170, 170, 170, 0.48);
  padding: 6px 8px;
  font-size: 1.6rem;
}

.article_nav .is-empty {
  display: block;
  visibility: hidden;
  min-width: 1px;
}

@media screen and (max-width: 768px) {
  .president_blog_archive .article_cat,
  .president_blog_cat_nav {
    margin-bottom: 20px;
  }

  .president_blog_list {
    display: block !important;
    margin-top: 25px;
  }

  .president_blog_list > li,
  .president_blog_item {
    width: 100% !important;
    margin-bottom: 30px;
  }

  .president_blog_list .article_list_txt,
  .president_blog_card_body {
    padding: 15px !important;
  }

  .president_blog_list .article_list_ttl,
  .president_blog_card_title {
    font-size: 1.6rem;
  }

  .article_page_content p {
    margin: 0 0 2em;
  }

  .article_page_content table th,
  .article_page_content table td,
  .article_page_content dt,
  .article_page_content dd {
    font-size: 1.4rem;
  }
}

/* --------------------------------
 * 施工事例一覧
 * -------------------------------- */
.construction_case_list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 40px;
	align-items: stretch;
}

/* .article_list li の width を施工事例だけ解除 */
.article_list.construction_case_list > li.construction_case_item {
	width: auto;
	min-width: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	height: 100%;
}

/* 画像 */
.construction_case_thumb {
	width: 100%;
	height: 217px;
	overflow: hidden;
}

.construction_case_thumb a {
	display: block;
	width: 100%;
	height: 100%;
}

.construction_case_thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center top;
}

/* テキスト部分 */
.construction_case_card_body {
	flex: 1;
	box-sizing: border-box;
}
/* タイトル部分の余白調整 */
.construction_case_card_title {
	margin-bottom: auto;
}

@media screen and (max-width: 767px) {
	.construction_case_list {
		grid-template-columns: 1fr;
		gap: 30px;
	}
	.article_list.construction_case_list > li.construction_case_item {
		width: 100%;
	}
}

/* --------------------------------
 * 施工事例 詳細ページ 本文画像
 * -------------------------------- */

/* 本文は左寄せのまま */
.construction_case_content.article_page_content {
	text-align: left;
}

/* 画像だけ中央寄せ */
.construction_case_content.article_page_content img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	margin: 30px auto;
}

/* WordPressのaligncenterにも対応 */
.construction_case_content.article_page_content img.aligncenter {
	display: block;
	margin: 30px auto;
}

/* 施工事例 本文内リスト */
.construction_case_content ul {
	list-style: none;
	margin: 0 0 0 30px;
	padding: 0 0 30px;
}

.construction_case_content ul li {
	position: relative;
	margin-bottom: 10px;
	line-height: 1.8;
}

.construction_case_content ul li::before {
	position: absolute;
	top: 0.65em;
	left: -22px;
	content: "";
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background-color: #42a6dd;
	box-shadow: 0 0 0 3px rgba(66, 166, 221, 0.3);
}

/* --------------------------------
 * ページャー
 * -------------------------------- */
.nav-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin-top: 50px;
}

.nav-links .page-numbers {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 50px;
	padding: 0;
	background: #eee;
	color: #000;
	font-size: 1.6rem;
	line-height: 1;
	text-decoration: none;
}

/* 現在のページ */
.nav-links .page-numbers.current {
	background: #1d4b93;
	color: #fff;
}

/* 省略記号 */
.nav-links .page-numbers.dots {
	background: transparent;
	width: auto;
	min-width: 20px;
}

/* 前へ・次へ */
.nav-links .page-numbers.prev,
.nav-links .page-numbers.next {
	font-size: 0;
}

/* 前へ */
.nav-links .page-numbers.prev::before {
	content: "«";
	font-size: 2rem;
}

/* 次へ */
.nav-links .page-numbers.next::before {
	content: "»";
	font-size: 2rem;
}

/* ホバー */
.nav-links a.page-numbers:hover {
	background: #1D4B93;
	color: #fff;
	opacity: 1;
}

@media screen and (max-width: 768px) {
	.nav-links {
		gap: 6px;
		margin-top: 30px;
	}

	.nav-links .page-numbers {
		width: 36px;
		height: 44px;
		font-size: 1.4rem;
	}
}

/* 実績一覧表示
----------------------------------------------------------------------*/
.result .article_list > li {
	cursor: pointer;
}
.result .article_list_img a,
.result .article_list_ttl a {
	pointer-events: none;
	text-decoration: none;
	color: inherit;
}
.result .article_list_area {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 1.2rem;
}
.result .article_list {
  display: flex;
  flex-wrap: wrap;
  gap: 40px; /* お好みで */
}
.result .article_list > li {
  display: flex;
  flex-direction: column;
}

.result .article_list_img img {
  display: block;
  width: 100%;
}

.result .results_card_body {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.result .results_card_title {
  margin-top: auto;
}

.result .results_meta_row {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  align-items: start;
  column-gap: 10px;
}

.result .results_meta_label {
  font-size: 1.4rem;
  margin-right: 0;
  white-space: nowrap;
}

.result .results_categories {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 0;
  min-width: 0;
  margin: 0;
  padding: 0;
}

.result .results_categories > .list_cat {
  width: auto !important;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}

.result .results_categories > .list_cat:not(:last-child)::after {
  content: "｜";
  margin: 0 0.2em;
  color: #777;
}

.result .result_modal_trigger {
	display: block;
	pointer-events: auto;
	cursor: pointer;
}

/* ----------------------------------------------------------------------
 実績一覧：工事名 × 工事方法 絞り込み
---------------------------------------------------------------------- */
.results_filter {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 20px;
	margin: 0 0 50px;
	padding: 28px 30px;
	background: #f3f3f3;
}

.results_filter_item {
	flex: 1 1 260px;
}

.results_filter_item label {
	display: block;
	margin-bottom: 8px;
	font-size: 1.4rem;
	font-weight: 700;
}

.results_filter_item select {
	width: 100%;
	height: 52px;
	padding: 0 42px 0 15px;
	border: 1px solid #ccc;
	border-radius: 0;
	background-color: #fff;
	font-size: 1.5rem;
}

.results_filter_buttons {
	display: flex;
	align-items: center;
	gap: 12px;
}

.results_filter_submit,
.results_filter_reset {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 130px;
	height: 52px;
	padding: 0 20px;
	border: 1px solid #004c98;
	font-size: 1.4rem;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
}

.results_filter_submit {
	background: #004c98;
	color: #fff;
}

.results_filter_reset {
	background: #fff;
	color: #004c98;
}

.results_meta {
	margin-bottom: 5px;
}

.results_meta_row {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin-bottom: 6px;
}

.results_meta_label {
	flex: 0 0 auto;
	font-size: 1.2rem;
	font-weight: 700;
}

.results_meta .results_categories {
	display: flex;
	flex-wrap: wrap;
	gap: 0 10px;
	margin: 0;
}

.results_meta .list_cat {
	font-size: 1.4rem;
}

@media screen and (max-width: 767px) {
	.results_filter {
		display: block;
		margin-bottom: 35px;
		padding: 20px;
	}

	.results_filter_item {
		margin-bottom: 18px;
	}

	.results_filter_buttons {
		width: 100%;
	}

	.results_filter_submit,
	.results_filter_reset {
		flex: 1;
		min-width: 0;
	}

	.results_meta_row {
		display: block;
	}

	.results_meta_label {
		display: block;
		margin-bottom: 4px;
		padding-top: 0;
	}
}

/* ----------------------------------------------------------------------
 実績一覧：画像モーダル（CSS :target方式）
---------------------------------------------------------------------- */
.result_modal {
	position: fixed;
	z-index: 99999;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 40px;
	box-sizing: border-box;
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s ease, visibility 0.2s ease;
}

.result_modal:target {
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
}

.result_modal_overlay {
	position: absolute;
	inset: 0;
	display: block;
	background: rgba(0, 0, 0, 0.78);
	cursor: pointer;
}

.result_modal_inner {
	position: relative;
	z-index: 1;
	width: min(100%, 1000px);
	max-height: calc(100vh - 80px);
	padding: 40px;
	background: #fff;
	box-sizing: border-box;
	overflow-y: auto;
}

.result_modal_img {
	text-align: center;
}

.result_modal_img img {
	display: block;
	width: auto;
	max-width: 100%;
	max-height: calc(100vh - 190px);
	margin: 0 auto;
	object-fit: contain;
}

.result_modal_ttl {
	margin: 18px 0 0;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.6;
	text-align: center;
}

.result_modal_close {
	position: absolute;
	z-index: 2;
	top: 0;
	right: 0;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #222;
	font-family: Arial, sans-serif;
	font-size: 36px;
	font-weight: 300;
	line-height: 44px;
	text-align: center;
	cursor: pointer;
}

.result_modal_trigger {
	display: block;
}

.result_modal_trigger img {
	display: block;
	width: 100%;
}

@media screen and (max-width: 767px) {
	.result_modal {
		padding: 20px;
	}

	.result_modal_inner {
		max-height: calc(100vh - 40px);
		padding: 18px;
	}

	.result_modal_img img {
		max-height: calc(100vh - 135px);
	}

	.result_modal_ttl {
		margin-top: 12px;
		font-size: 1.5rem;
	}

	.result_modal_close {
		top: 0;
		right: 2px;
	}
}
.results_thumb {
  position: relative;
  z-index: 2;
}

.results_thumb .result_modal_trigger {
  position: relative;
  z-index: 3;
  display: block;
  pointer-events: auto;
}

.results_thumb .result_modal_trigger img {
  display: block;
  width: 100%;
  pointer-events: auto;
}
.results_item::before,
.results_item::after,
.results_thumb::before,
.results_thumb::after,
.article_list_img::before,
.article_list_img::after {
  pointer-events: none;
}

.wpcf7-submit {
  width: 100%;
}
.estimate_contact .form_btn01 {
  width: 260px;
}

/* ----------------------------------------------------------------------
 お見積り依頼フォーム
---------------------------------------------------------------------- */

/* CF7の余分な段落余白 */
.estimate_contact .wpcf7-form p {
  margin: 0;
}

/* フォーム入力欄 */
.estimate_contact .table_temp input[type="text"],
.estimate_contact .table_temp input[type="email"],
.estimate_contact .table_temp input[type="tel"],
.estimate_contact .table_temp textarea {
  width: 100%;
  box-sizing: border-box;
}

/* ラジオボタン */
.estimate_contact .wpcf7-radio {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
}

.estimate_contact .wpcf7-list-item {
  margin: 0;
}

/* 必須エラー */
.estimate_contact .wpcf7-not-valid-tip {
  display: block;
  margin-top: 8px;
  color: #d60000;
  font-size: 14px;
}

/* ボタンエリア */
.estimate_contact .form_btn,
.estimate_contact .wpcf7cf7c-button-area,
.estimate_contact .wpcf7-confirm-buttons {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 40px;
}

/* 送信中スピナー */
.estimate_contact .wpcf7-spinner {
  display: block;
  margin: 12px auto 0;
}

/* 確認画面 */
.estimate_contact .wpcf7-confirm {
  width: 100%;
}

.estimate_contact .wpcf7-confirm table {
  width: 100%;
  border-collapse: collapse;
}

.estimate_contact .wpcf7-confirm th,
.estimate_contact .wpcf7-confirm td {
  padding: 20px;
  border: 1px solid #ddd;
  vertical-align: top;
}

.estimate_contact .wpcf7-confirm th {
  width: 30%;
  background: #f4f7fa;
  text-align: left;
}

/* スマホ */
@media screen and (max-width: 767px) {
  .estimate_contact .wpcf7-radio {
    display: block;
  }

  .estimate_contact .wpcf7-list-item {
    display: block;
    margin-bottom: 10px;
  }

  .estimate_contact .form_btn,
  .estimate_contact .wpcf7cf7c-button-area,
  .estimate_contact .wpcf7-confirm-buttons {
    display: block;
    margin-top: 30px;
  }

  .estimate_contact input[type="submit"],
  .estimate_contact input[type="button"],
  .estimate_contact button {
    display: block;
    width: 100%;
    min-width: 0;
    margin: 10px 0 0;
  }

  .estimate_contact .wpcf7-confirm th,
  .estimate_contact .wpcf7-confirm td {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }

  .estimate_contact .wpcf7-confirm th {
    border-bottom: 0;
  }
}

/* ----------------------------------------------------------------------
 Contact Form 7 Confirm Plus
 お見積り依頼フォーム・確認画面
---------------------------------------------------------------------- */

/* 確認画面全体 */
.estimate_contact #wpcf7cpcnf {
  width: 100%;
}

div#wpcf7cpcnf {
  z-index: 0;
}

/* 確認内容テーブル */
.estimate_contact #wpcf7cpcnf table {
  width: 100%;
  margin: 0;
  border-collapse: collapse;
  border-spacing: 0;
  border-top: 1px solid #ccc;
}

/* 項目名・入力内容 */
.estimate_contact #wpcf7cpcnf th,
.estimate_contact #wpcf7cpcnf td {
  padding: 20px 20px;
  border-bottom: 1px solid #ccc;
  vertical-align: top;
  text-align: left;
  line-height: 1.8;
}

/* 項目名 */
.estimate_contact #wpcf7cpcnf th {
  position: relative;
  width: 30%;
  box-sizing: border-box;
  background: #fff;
  font-weight: 500;
}

/* 入力内容 */
.estimate_contact #wpcf7cpcnf td {
  width: 70%;
  box-sizing: border-box;
  background: #fff;
  word-break: break-word;
  overflow-wrap: anywhere;
}

/* プラグインが出力する不要な余白を削除 */
.estimate_contact #wpcf7cpcnf th p,
.estimate_contact #wpcf7cpcnf td p {
  margin: 0;
}

/* 空のthに項目名を表示 */
.estimate_contact #wpcf7cpcnf tr:nth-child(1) th::before {
  content: "お名前";
}

.estimate_contact #wpcf7cpcnf tr:nth-child(2) th::before {
  content: "メールアドレス";
}

.estimate_contact #wpcf7cpcnf tr:nth-child(3) th::before {
  content: "現場住所";
}

.estimate_contact #wpcf7cpcnf tr:nth-child(4) th::before {
  content: "建物名";
}

.estimate_contact #wpcf7cpcnf tr:nth-child(5) th::before {
  content: "お電話番号";
}

.estimate_contact #wpcf7cpcnf tr:nth-child(6) th::before {
  content: "お問い合わせ内容";
}

.estimate_contact #wpcf7cpcnf tr:nth-child(7) th::before {
  content: "ご紹介者氏名";
}

.estimate_contact #wpcf7cpcnf tr:nth-child(8) th::before {
  content: "ご紹介店舗";
}

.estimate_contact #wpcf7cpcnf tr:nth-child(9) th::before {
  content: "メッセージ本文";
}

/* 確認画面のボタンエリア */
.estimate_contact #wpcf7cpcnf .wpcf7cp-btns {
  display: flex;
  justify-content: center;
  align-items: stretch;
  gap: 20px;
  margin-top: 40px;
}

/* 確認画面ボタン共通 */
.estimate_contact #wpcf7cpcnf .wpcf7cp-btns button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 240px;
  margin: 0;
  border-radius: 5px;
  box-sizing: border-box;
  font-family: inherit;
  font-weight: 500;
  text-align: center;
  cursor: pointer;
  transition:
    opacity 0.3s ease,
    background-color 0.3s ease;
}

/* 入力画面に戻るボタン */
.estimate_contact #wpcf7cpcnf .wpcf7cp-cfm-edit-btn {
  border: 1px solid #777;
  color: #fff;
  background: #777;
  width: 150px!important;
  font-size: 120%;
  line-height: 50px;
}

/* 送信ボタン */
.estimate_contact #wpcf7cpcnf .wpcf7cp-cfm-submit-btn {
  border: 1px solid #004C98;
  color: #fff;
  background: #004C98;
  line-height: 50px;
  font-size: 120%;
}

/* ホバー */
.estimate_contact #wpcf7cpcnf .wpcf7cp-btns button:hover {
  opacity: 0.75;
}

/* 入力画面の確認ボタン */
.estimate_contact .form_btn {
  margin-top: 40px;
  text-align: center;
}

.estimate_contact .form_btn .wpcf7-submit {
  width: 240px;
  border: 1px solid #004C98;
  border-radius: 5px;
  box-sizing: border-box;
  color: #fff;
  background: #004C98;
  font-family: inherit;
  font-weight: 500;
  cursor: pointer;
  transition: opacity 0.3s ease;
}

.estimate_contact .form_btn .wpcf7-submit:hover {
  opacity: 0.75;
}

/* スマホ */
@media screen and (max-width: 767px) {

  .estimate_contact #wpcf7cpcnf th,
  .estimate_contact #wpcf7cpcnf td {
    display: block;
    width: 100%;
    padding: 6px 18px;
    box-sizing: border-box;
  }

  .estimate_contact #wpcf7cpcnf th {
    border-bottom: 0;
  }

  .estimate_contact #wpcf7cpcnf .wpcf7cp-btns {
    display: flex;
    gap: 12px;
    margin-top: 30px;
  }

  .estimate_contact #wpcf7cpcnf .wpcf7cp-btns button,
  .estimate_contact .form_btn .wpcf7-submit {
    min-height: 50px;
    margin: 0 auto;
  }
}

.estimate_contact input[type="email"],
.estimate_contact input[type="tel"],
.estimate_contact select {
  height: 40px;
  background: #f0f0f0;
}

@media screen and (max-width: 767px) {
  .estimate-form-input th,.estimate-form-input td {
    font-size: 1.6rem;
  }
  div#wpcf7cpcnf th {
    font-weight: bold;
    padding-bottom: 0.1em;
  }
  div#wpcf7cpcnf tr {
    margin-bottom: 5px!important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  }
  .estimate_contact #wpcf7cpcnf th, .estimate_contact #wpcf7cpcnf td {
    line-height: 1.4;
    font-size: 1.6rem;
  }
  .estimate_contact .form_btn {
      flex-flow:nowrap;
      display: flex;
  }
  /* 入力画面に戻るボタン */
  .estimate_contact #wpcf7cpcnf .wpcf7cp-cfm-edit-btn {
    width: 100px!important;
    font-size: 100%;
  }
  /* 送信ボタン */
  .estimate_contact #wpcf7cpcnf .wpcf7cp-cfm-submit-btn {
    width: 200px!important;
    font-size: 100%;
  }
  .estimate_contact .tel_num {
    font-size: 3rem;
    margin-bottom: 10px;
  }
  .lower_ttl02 {
    margin-bottom: 15px!important;
  }
  .estimate_contact input[type="email"],
  .estimate_contact input[type="tel"],
  .estimate_contact select {
    width: 100%;
  }
}

.recruit-form {
  margin-top: 1.5rem;
}
.estimate_contact{
  margin-top: 1.5rem;
}

/* 確認画面では元の入力フォームを非表示 */
div.wpcf7 .wpcf7-form.wpcf7cp-form-hide {
  display: none !important;
}

/* 確認画面を通常のレイアウト内に配置 */
div.wpcf7 #wpcf7cpcnf {
  position: static !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  width: 100%;
  height: auto !important;
  min-height: 0;
  box-sizing: border-box;
}

@media screen and (max-width: 767px) {
  div.wpcf7 #wpcf7cpcnf {
    padding-bottom: 50px;
  }
}
/* リダイレクト前の送信完了メッセージを非表示 */
.page-id-4968 .wpcf7-form.sent .wpcf7-response-output {
  display: none !important;
}

.estimate_contact .wpcf7 form.invalid .wpcf7-response-output,
.contact-form .wpcf7 form.invalid .wpcf7-response-output {
  display: none;
}

.bottom_page_fvnone {
    padding-top: 0!important;
}

/* トップページ投稿表示 */
.index_news .list_news .ttl {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;

	line-height: 1.5;
	min-height: calc(1.5em * 2);
}
.index_news .list_news .txt {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;

	line-height: 1.6;
	min-height: calc(1.6em * 3);
}

.index_news .list_news .date{
	margin-top:auto;
}

.index_news .list_news .img img {
  border-radius: 10px;
}

/* ========================================================= */
/* merge from style0811.css (added rules only)              */
/* ========================================================= */

/* --- new top-level rules --- */
.result .article_list_txt {
  flex: 1;
  display: flex;
  flex-direction: column;
  background: #f3f3f3;
  padding: 20px;
}
.result .article_list_area .list_cat {
  display: inline;
  white-space: nowrap;
  color: #004C98;
}
.result .article_list_area .list_cat:not(:last-child)::after {
  content: "｜";
  margin: 0 0.2em;
  color: #777777;
}
/* ----------------------------------------------------------------------
 実績一覧：画像モーダル（JavaScript方式）
---------------------------------------------------------------------- */
body.modal-open {
	overflow: hidden;
}
.result_modal.is-open {
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
}
.compamy_media {
	border-bottom: 1px solid #d6d6d6;
	padding-bottom: 20px;
	margin-bottom: 20px;
	display: flex;
}
.compamy_media dt {
	background: #004C98;
	padding: 5px 15px;
	color: #fff;
	text-align: center;
	width: 120px;
	font-size: 1.4rem;
}
.compamy_media dd {
	flex: 1;
	width: 100%;
	margin-left: 10px;
}
.staff_his_wrap .inner {
	max-width: 1400px;
}
.staff_his {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.staff_his li {
  list-style: none;
  position: relative;
}
.staff_his_txt_wrap {
	position: absolute;
	left: 20px;
	top: 30px;
}
.staff_his a {
  display: block;
  text-decoration: none;
  color: inherit;
}
.staff_his_photo img {
  display: block;
  width: 100%;
  height: auto;
}
.staff_his_txt01 {
	font-size: 1.4rem;
	color: #004C98;
}
.staff_his_txt02 {
	font-weight: 700;
	color: #fff;
	font-size: 2rem;
}
.map_pin {
	display: inline-block;
	max-width: 20px;
	margin-left: 15px;
}
.int_visual {
background: #81ADD4;
background: linear-gradient(137deg, rgba(129, 173, 212, 1) 0%, rgba(247, 213, 164, 1) 100%);
padding-top: 100px;
}
.int_visual .inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	max-width: 1000px;
}
.int_visual_ttl_wrap {
width: 55%
}
.int_visual_ttl {
	color: #fff;
	font-weight: 700;
	font-size: 4rem;
	;
}
.int_visual_img {
	width: 45%;
}
.int_visual_ttl_sub {
	color: #004C98;
	display: inline-block;
	padding: 5px 20px;
	border: 1px solid #004C98;
	font-size: 1.2rem;
	line-height: 1.2;
}
.int_visual_ttl_sub02 {
	font-weight: 700;
	font-size: 2rem;
}
.int_visual_ttl02 {
	font-size: 3rem;
	font-weight: 700;
	color: #004C98;
	margin-bottom: 30px;
	position: relative;
	padding-left: 50px;
}
.int_visual_ttl02::before {
	position: absolute;
	content: "";
	width: 40px;
	height: 1px;
	background: #004C98;
	top: 25px;
	left: 0;
}
.int_box {
	
	max-width: 800px;
	margin: 0 auto;
	margin-bottom: 80px;
	margin-top: 80px;
}
.int_box_top {
	margin-top: 0;
}

@media screen and (max-width: 768px) {
.compamy_media dt {
		font-size: 1.2rem;
		width: 100px;
	}
.compamy_media {
		display: block;
	}
.compamy_media dd {
		margin-left: 0;
	}
}

@media (max-width: 768px) {
.staff_his {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }
.staff_his_txt_wrap {
	left: 10px;
	top: 10px;
}
.staff_his_txt01 {
	font-size: 1rem;
}
.staff_his_txt02 {
	font-size: 1.4rem;
}
.map_pin {
	max-width: 14px;
	margin-left: 5px;
}
.int_visual .inner {
	display: block;
	padding-left: 20px;
	padding-right: 20px;
}
.int_visual_ttl_wrap {
width: 100%
}
.int_visual_ttl {
	font-size: 2.5rem;
}
.int_visual_img {
	width: 100%;
}
.int_visual_ttl02 {
	font-size: 2.2rem;
	padding-left: 50px;
}
.int_visual_ttl02::before {
	position: absolute;
	content: "";
	width: 40px;
	height: 1px;
	background: #004C98;
	top: 18px;
	left: 0;
}
}


.list_csr_vision dl dt p {
	margin-bottom: 20px;
}


.footer_cont {
	display: flex;
	justify-content: space-between;
}

.footer_cont .txt {
	width: 43%;
}
.footer_cont_youtube {
	width: 55%;
}

@media screen and (max-width: 768px) {
	.footer_cont {
	display: block;
}

.footer_cont .txt {
	width: 100%;
}
.footer_cont_youtube {
	width: 100%;
	margin-bottom: 30px;
}

}


.bottom_page_ttl_sub {
	text-align: center;
	font-size: 2.5rem;
	font-weight: 700;
	margin-bottom: 50px;
	margin-top: -30px;
	color: #004c98;
}
@media screen and (max-width: 768px) {
	.bottom_page_ttl_sub {
	font-size: 2rem;
	margin-bottom: 30px;
	margin-top: -20px;
}
}