/* 極小デバイス（縦向きモバイル, 576px 未満） */
/* Bootstrapではデフォルトで `xs` のメディアクエリは存在しない */

/* 小デバイス（横向きモバイル, 576px 以上） */
@media (min-width: 576px) { ... }

/* 中デバイス（タブレット, 768px 以上） */
@media (min-width: 768px) { ... }

/* 大デバイス（デスクトップ, 992px 以上） */
@media (min-width: 992px) { ... }

/* 特大デバイス（ワイド・デスクトップ, 1200px 以上） */
@media (min-width: 1200px) { ... }

/* 超特大デバイス (よりワイドな・デスクトップ, 1400px 以上） */
@media (min-width: 1400px) { ... }

body{
  font-family: "Noto Serif JP", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  color:#333333;
}

p {
	text-align: justify;
	text-justify: inter-ideograph;
	line-height: 200%;
}

@media (min-width: 768px) {
	a[href*="tel:"] {
		pointer-events: none;
		cursor: default;
		text-decoration: none;
	}
}

.mb-100{
	margin-bottom:50px !important;
}

@media (min-width: 768px) {
	.mb-100{
		margin-bottom:100px !important;
	}
}

.mb-50{
	margin-bottom:50px !important;
}

nav.navbar{
	padding:10px 0;
	background-color:#FFFFFF !important;
}

ul.navbar-nav{
	margin-top:16px;
}

ul.navbar-nav li.nav-item{
	border-top:1px dashed #CCCCCC;
	padding:8px;
}

ul.navbar-nav li.nav-item a.nav-link{
	color:#333333;
	font-weight: 500;
}

button.navbar-toggler{
	padding:4px;
	border:1px solid #AAAAAA;
}

button.navbar-toggler span.navbar-toggler-icon{
	opacity:0.4;
}

@media (min-width: 992px) {
	ul.navbar-nav{
		margin-top:0;
	}

	.collapse.navbar-collapse{
		align-items: flex-end;
		height:60px;
	}

	ul.navbar-nav li.nav-item{
		border-top:none;
		padding:0;
		border-right:1px solid #333333;
		margin-bottom: 6px;
	}

	ul.navbar-nav li.nav-item a.nav-link{
		padding:0 12px;
		line-height:100%;
	}
}

.slide_copy{
	position: absolute;
	top: 20px;
	right: 20px;
	color: #FFFFFF;
	z-index: 2;
	writing-mode: vertical-rl;
	font-size: 23px;
	font-weight:500;
	letter-spacing: 0.35rem;
	line-height:150%;
}

.slide_copy span{
	background-color:rgba(0,0,0,0.45);
	display: inline-block;
	padding-top:0.5rem;
	margin:0 0.35rem;
}

@media (min-width: 768px) {
	.slide_copy{
		position: absolute;
		top: 40px;
		right: 160px;
		color: #FFFFFF;
		z-index: 2;
		writing-mode: vertical-rl;
		font-size: 38px;
		font-weight:500;
		letter-spacing: 0.35rem;
	}

	.slide_copy span{
		background-color:rgba(0,0,0,0);
	}
}

.carousel.slide.carousel-fade{
	margin-bottom:20px;
}

.top_copy{
	font-size:18px;
	line-height:200%;
	letter-spacing: 0.03rem;
}

@media (min-width: 768px) {
	.carousel.slide.carousel-fade{
		margin-bottom:100px;
	}

	.top_copy{
		text-align: center;
		font-size:20px;
		line-height:200%;
		letter-spacing: 0.1rem;
	}
}

h2.std{
	text-align: center;
	display: inline-block;
	position: relative;
	margin-bottom: 0;
	line-height: 100%;
	color: #5B5B82;
	font-size:36px;
	font-weight:700;
	letter-spacing: 0.4rem;
	margin-bottom:36px;
}

.contact_us_wrap h2.std{
	color: #FFFFFF;
}

h2.std::before,
h2.std::after{
	content: "";
	display: block;
	width: 68px;
	height: 14px;
	background-image: url(../images/h2_icon_01.svg);
	position: absolute;
}

.contact_us_wrap h2.std::before,
.contact_us_wrap h2.std::after{
	background-image: url(../images/h2_icon_02.svg);
}

h2.std::before{
	top: 11px;
	left: -80px;
}

h2.std::after{
	top: 11px;
	right: -80px;
}

table.company_information_table{

}

table.company_information_table caption{
	border-top: 2px solid #9191AB;
	border-bottom: 2px solid #9191AB;
	padding: 8px;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0.1rem;
	color:#5b5b82;
}

table.company_information_table tr th{
	font-weight: normal;
	border-bottom: none;
	padding:11px 8px 0px 8px;
	white-space: nowrap;
	display: block;
	width:100%;
}

table.company_information_table tr td{
	border-bottom: 1px dashed #B3B3B3;
	padding:0px 8px 11px 24px;
	display: block;
	width:100%;
}

@media (min-width: 768px) {
	table.company_information_table{

	}

	table.company_information_table caption{
		border-top: 2px solid #9191AB;
		border-bottom: 2px solid #9191AB;
		padding: 8px;
		font-size: 20px;
		font-weight: 700;
		letter-spacing: 0.1rem;
		color:#5b5b82;
	}

	table.company_information_table tr th{
		font-weight: normal;
		border-bottom: 1px dashed #B3B3B3;
		padding:15px 8px;
		white-space: nowrap;
		display: table-cell;
		width:auto;
	}

	table.company_information_table tr td{
		border-bottom: 1px dashed #B3B3B3;
		padding:15px 8px;
		display: table-cell;
		width:auto;
	}
}

.business_introduction_wrap{
	background-color:#e6e6dc;
	margin:80px 0;
	padding:70px 0;
}

.business_introduction_text_01{
	font-size:45px;
	font-weight:700;
	color:#5b5b82;
	letter-spacing: 0.1rem;
	margin-bottom:8px;
}

@media (min-width: 768px) {
	.business_introduction_text_01{
		font-size:45px;
		font-weight:700;
		color:#5b5b82;
		letter-spacing: 0.1rem;
		margin-bottom:0;
	}
}

.business_introduction_text_02{
	font-size:20px;
	font-weight:700;
	color:#5b5b82;
	letter-spacing: 0.1rem;
}

.business_introduction_text_wrap{
	border-top:1px solid #9191ab;
	margin-top:27px;
	padding-top:27px;
}

.left_wrap{
	padding-right:0;
}

.left_wrap{
	padding-left:0;
}

@media (min-width: 768px) {
	.business_introduction_wrap{
		background-color:#e6e6dc;
		background-image:url(../images/business_introduction_wrap_left.png),url(../images/business_introduction_wrap_right.png);
		background-repeat: no-repeat,no-repeat;
		background-position: top -9px left -40px,bottom -15px right -30px;
		margin:100px 0;
		padding:100px 0;
	}

	.left_wrap{
		padding-right:110px;
	}

	.right_wrap{
		padding-left:110px;
	}

	.business_introduction_rightphoto{
		background-image:url(../images/business_introduction_01.jpg);
		background-repeat: no-repeat;
		background-position: right;
		background-size: 56%;
		margin-bottom:100px;
	}

	.business_introduction_leftphoto{
		background-image:url(../images/business_introduction_02.jpg);
		background-repeat: no-repeat;
		background-position: left;
		background-size: 56%;
	}
}

@media (min-width: 992px) {
	.business_introduction_rightphoto{
		background-image:url(../images/business_introduction_01.jpg);
		background-repeat: no-repeat;
		background-position: right;
		background-size: 56%;
		margin-bottom:100px;
	}

	.business_introduction_leftphoto{
		background-image:url(../images/business_introduction_02.jpg);
		background-repeat: no-repeat;
		background-position: left;
		background-size: 56%;
	}
}

@media (min-width: 1200px) {
	.business_introduction_rightphoto{
		background-image:url(../images/business_introduction_01.jpg);
		background-repeat: no-repeat;
		background-position: right;
		background-size: 56%;
		margin-bottom:100px;
	}

	.business_introduction_leftphoto{
		background-image:url(../images/business_introduction_02.jpg);
		background-repeat: no-repeat;
		background-position: left;
		background-size: 56%;
	}
}

@media (min-width: 1400px) {
	.business_introduction_rightphoto{
		background-image:url(../images/business_introduction_01.jpg);
		background-repeat: no-repeat;
		background-position: right;
		background-size: 55%;
		margin-bottom:100px;
	}

	.business_introduction_leftphoto{
		background-image:url(../images/business_introduction_02.jpg);
		background-repeat: no-repeat;
		background-position: left;
		background-size: 55%;
	}
}

.construction_example_type{
	position: absolute;
	left:22px;
	bottom:-3px;
	font-size:20px;
	font-weight:700;
	line-height:100%;
}

.construction_example_type.fc_fff{
	color:#FFFFFF;
}

.contact_us_wrap{
	background-color: #5B5B82;
	color: #FFFFFF;
	margin-top:45px;
	margin-bottom:100px;
	padding-top:30px;
	padding-bottom:50px;
}

.contact_us_text{
	text-align:center;
	font-size:20px;
	font-weight:500;
	line-height:32px;
}

.tel_num{
	text-align: center;
	font-size:42px;
	font-weight:700;
}

.tel_num::before{
	content: "";
	display: inline-block;
	width:28px;
	height:37px;
	background-image:url(../images/tel_num_icon.svg);
	background-repeat: no-repeat;
	background-position: bottom left;
}

.tel_num a{
	color: #FFFFFF;
	text-decoration: none;
}

@media (min-width: 768px) {
	.contact_us_wrap{
		background-color: #5B5B82;
		background-image:url(../images/contact_us_wrap_left.png),url(../images/contact_us_wrap_right.png);
		background-repeat: no-repeat,no-repeat;
		background-position: top -11px left -32px,bottom -32px right -14px;
		color: #FFFFFF;
		margin-top:52px;
		margin-bottom:90px;
		padding-top:50px;
		padding-bottom:60px;
	}

	.tel_num{
		text-align: center;
		font-size:50px;
		font-weight:700;
	}

	.tel_num::before{
		content: "";
		display: inline-block;
		width:33px;
		height:44px;
		background-image:url(../images/tel_num_icon.svg);
		background-repeat: no-repeat;
		background-position: bottom left;
	}
}

.footer_copy{
	text-align:center;
	font-size:24px;
	font-weight:500;
	margin-bottom:30px;
	line-height: 42px;
}

@media (min-width: 768px) {
	.footer_copy{
		text-align:center;
		font-size:24px;
		font-weight:500;
		margin-bottom:50px;
		line-height: 42px;
	}
}


.map {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 350px;
  margin-bottom:16px;
}
 
.map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

@media (min-width: 768px) {
	.map {
	  position: relative;
	  width: 100%;
	  height: 0;
	  padding-top: 350px;
	  margin-bottom:45px;
	}
	 
	.map iframe {
	  position: absolute;
	  top: 0;
	  left: 0;
	  width: 100%;
	  height: 100%;
	}
}

.copyrights_wrap{
	border-top: 1px solid #CCCCCC;
	text-align: center;
	padding: 20px 0 30px 0;
	font-size:14px;
}

dl.company_address{
	display: flex;
	flex-wrap: wrap;
	width: 100%;
	margin-top:10px;
	font-size:15px;
}

dl.company_address dt{
	width: 15%;
	font-weight: normal;
	border-right: 1px solid #000000;
	padding-right: 8px;
	text-align: right;
}

dl.company_address dd{
	width: 85%;
	margin: 0;
	padding-left: 8px;
}

@media (min-width: 768px) {
	dl.company_address{
		display: flex;
		flex-wrap: wrap;
		width: 100%;
		margin-top:10px;
		font-size:16px;
	}

	.copyrights_wrap{
		border-top: 1px solid #CCCCCC;
		text-align: center;
		padding: 20px 0 50px 0;
		font-size:14px;
	}
}

.logo_wrap{
	display: flex;
}

.logo_image{
	margin-right:10px;
	width:76px;
}

.logo_text_wrap{

}

.logo_text_small{
	font-size:12px;
	font-weight:500;
}

.logo_text{
	font-size:20px;
	font-weight:700;
}

@media (min-width: 992px) {
	.logo_wrap{
		display: flex;
	}

	.logo_image{
		margin-right:10px;
		width:auto;
	}

	.logo_text_wrap{

	}

	.logo_text_small{
		font-size:14px;
		font-weight:500;
	}

	.logo_text{
		font-size:24px;
		font-weight:700;
	}
}