@charset "utf-8";
/********************
	COMMON
*********************/
/* FONT */
@font-face {
	font-family: 'DIN';
		src: url('fonts/DIN1451ALT G_0.eot');
	src: local('DIN1451ALT G_0 Regular'),
				 url('fonts/DIN1451ALT G_0.eot') format("eot"),
				 url('fonts/DIN1451ALT G_0.woff') format('woff');
}
.din{
		font-family: 'DIN', sans-serif !important;
	font-size: 120%;
	letter-spacing: 0.1em;
	font-weight: bold;
}
.strong{
	font-weight: bold;
}
.blue{
	color: #09194F;
}
.white{
	color: #fff;
}
/* clearfix */
.cf:before,
.cf:after {
		content: " ";
		display: table;
}

.cf:after {
		clear: both;
}

.cf {
		*zoom: 1;
}

/******************************/
img{ max-width: 100%; }

.pc_only{ display: block !important;}
.sp_only{ display: none !important;}

@media only screen and (max-width:768px) {
	.pc_only{ display: none !important;}
	.sp_only{ display: block!important;}
}
.fL{ float:left; }
.fR{ float:right; }

.inner{
	max-width: 1080px;
}
.flex-wrapper{
	display: flex;
	justify-content: space-between;
}
.flex-row-reverce{
	flex-direction: row-reverse;
}
.btn{
	width: 330px;
	max-width: 100%;
	margin: 40px auto;
	background-color: #F9CE00;
	text-align: center;
	color: #09194F;
	font-weight: bold;
	font-size: 1.2em;
	position:relative;
	line-height: 1; 
	border: #F9CE00 3px solid;
	box-sizing: border-box;
}
.btn:before{
	font-family: "Font Awesome 5 Free";
	content:"\f105";
	position: absolute;
	left: 50px;
	top: 20%;
	font-size: 1.8em;
}
.btn a{
	display: block;
	line-height: 3;
	text-decoration: none!important;
}
.btn a:hover{
	text-decoration: none;
	background-color: #fff;
}
#map{
	width: 100%;
	height: 540px;
}
@media only screen and (max-width:767px) {
	.btn{ font-size: 1.3em; margin-bottom: 0; }
}
/********************
	HEADER
*********************/

#header_top{
	height: 100px;
	border-bottom: 1px solid #E6E6E6;
}
#header_top .inner{
	min-height: 100px;
	padding: 15px 0;
	box-sizing: border-box;
}
#header_logo img{max-height: 62px;}
/***** GLOVAL NAVI *****/
#global_menu, nav{
	margin: 0;
}
#global_menu > ul > li{
	text-align: center;
	font-weight: bold;
}
#global_menu > ul > li.current{
	border-bottom: #FCCF00 solid 3px;
}
#global_menu > ul > li > a{
	line-height: 1.3;
	padding: 12px 17px;
}

@media only screen and (max-width: 1024px){
	#header_top{ height: auto; }
	#header_image .caption{ padding: 0; 	}
	#header #header_top .inner{ height: auto; padding: 10px 0; text-align: center; }
	#header_logo{ display: inline-block; float: none; }
	#header_top #global_menu{ top:auto; }
	#header_top #global_menu a, #global_menu > ul > li > a{
		color: #fff!important;
	}
}
@media only screen and (max-width:767px) {
	#header_image .caption .inner{
		font-size: 40px!important;
	}
}
/********************
	FOOTER
*********************/

footer .shop_info{
	font-size: 1.2em;
	color: #09194F;
	line-height: 1.5;
	justify-content: flex-start;
	padding: 40px;
	border-bottom: 1px solid #09194F;
}
footer .shop_info img{
	max-height: 91px;
	margin-right: 40px;
}
footer .shop_info .shop_name{
	font-weight: bold;
	margin-bottom: 10px;
}
footer .copyright{
	background-color:#09194F;
	color: #fff;
	text-align: center;
	padding: 20px 0;
	font-size: 0.8em;
}
footer nav.footer_navi ul.flex-wrapper{ margin-bottom: 40px; }
footer nav > ul > li{
	text-align: center;
	font-weight: bold;
	position: relative;
	display: inline-block;
}
footer nav > ul > li.current{
	border-bottom: #FCCF00 solid 3px;
}
footer nav > ul > li > a{
	line-height: 1.3;
	padding: 12px 22px;
	color: #09194f;
	display: block;
}

.fb_box{
	margin:0 auto;
}

@media only screen and (max-width:767px) {
	footer .shop_info{ 
		display: block;
		text-align: center;
		padding: 40px 0;
	}
	footer .shop_info img{ margin: 0 auto 40px; }
	footer nav.footer_navi ul.flex-wrapper{ flex-wrap: wrap;}
	footer nav > ul > li > a{ 
		padding: 10px 5px;
	}
	
	.fb_box{
		margin:20px auto 0;
	}
	.fb_box .fb-page, .fb_box .fb-page span, .fb_box .fb-page iframe{
		width:100%;
	}
}
/********************
	TOPPAGE
*********************/

h2.title{
	color: #09194F;
	font-weight: bold;
	margin-left: 3%;
	margin-bottom: 60px;
	padding-left: 30px;
	padding-bottom: 10px;
	border-left: 3px solid #09194F;
}
h2.title .din{ font-size:2.0em; line-height:1.5em; letter-spacing: 0.2em; }
h2.title.white{
	color: #fff;
	border-color: #fff;
}
@media only screen and (max-width:768px) {
	h2.title{padding-left: 15px;}
}
.catch{
	font-size: 2.3em;
	font-weight: bold;
	line-height: 1.7;
	margin-bottom: 20px;
}
ul.box li .link{
	text-align: right;
	display: inline-block;
	float: right;
	position: relative;
	color: #09194F;
	font-weight: bold;
	font-size: 0.9rem;
}
ul.box li .link p{
	padding-right: 20px;
	margin-left: 40px;
	line-height: 2;
}
ul.box li .link p:before{
	font-family: "Font Awesome 5 Free";
	content:"\f105";
	position: absolute;
	font-size: 1.8em;
	line-height: 1;
	margin-left: -20px;
}
ul.box li .link .arrow{
	width: 95%;
	height:15px;
	border:2px solid #09194F;
	transform: perspective(200px) rotateX(75deg);
	border-left:0pt;
	border-top:0pt;
	margin-top: -10px;
}

#mv{
	height: 800px;
	background: linear-gradient(0deg,#09194F 0%,#09194F 50%,#fff 50%,#fff 100%);
}
#mv .inner{ 
	position: relative; 
	height: 100%;
}
#mv .textbox{
	color: #09194F;
	margin-top: 60px;
	display: inline-block;
	
}
#mv .textbox hr{
	width: 30px;
	border: #E6E6E6 1px solid;
	background-color: #E6E6E6;
}
#mv .textbox .en .name{
	margin-bottom: 10px;
	font-size: 1.6em;
	letter-spacing: 0.2em;
}
#mv .text{ font-size: 1em; line-height: 1.5; }
#mv .logobox{
	position: absolute;
	left: 50%;
	bottom: 30px;
	align-items: flex-start;
}
#mv .logobox img{
	margin-right: 40px;
}
#mv .logobox .btn{
	margin: 20px 0;
}
#mv .imgL{
	position: absolute;
	right: -25%;
	top : 40px;
}
#mv .imgS{
	position: absolute;
	left: 40px;
	bottom: -30px;
}
#mv .img_scroll{
	position: absolute;
	left: 370px;
	bottom: 200px;
}
@media only screen and (max-width:768px) {
	#mv{ height: 600px; }
	#mv .textbox{ margin-top: 20px; font-size: 84%; width: 100%; }
	#mv .textbox .text{ width: 70%; line-height: 1.3; }
	#mv .textbox .en{font-size: 90%;}
	#mv .imgL{
		left: 0; 
		top: 250px;
		right: auto; 
		bottom: auto;
		width: 65%;
	}
	#mv .imgS{
		left: auto; 
		top: 115px;
		right: 0;
		bottom: auto; 
		width: 30%;
	}
	#mv .img_scroll{
		left: auto;
		bottom: 90px;
		right: 10px;
	}
	#mv .logobox{
		left: 10px; 
		bottom: 90px;
	}
	#mv .logobox img{
		margin-right: 10px;
		width: 80px;
	}
	#mv .logobox .text{ font-size: 0.8em; }
	#mv .btn.sp_only{
		position: absolute;
		bottom: 20px;
		left:0;
		right:0;
		margin:0 auto 10px;
	}
}
#news{
	overflow: auto;
	height: auto;
	border: none;
	line-height: inherit;
	padding: 120px 0 60px;
}
#news ol{ 
	position: relative; 
	width: 100%;
	max-width: 960px;
	margin:40px auto;
}
#news ol li{
	border: #CCCCCC solid 1px;
	min-height: 60px;
	position: relative;
	padding: 20px 40px; 
	box-sizing: border-box;
	line-height: 1.6;
}
#news ol li + li { border-top:none; }
#news ol li a span{ 
	font-size: 1.2em;
	color: #09194F;
	font-weight: bold;
}
#news ol li .entry-date{
	color: #666666;
	margin-right: 40px;
}
@media only screen and (max-width:767px) {
	#news{ padding: 60px 0;	}
	#news ol li{ padding: 10px;	}
}
#promise{
	padding: 60px 0;
	margin-bottom: 60px;
	background-color: #F2F2F2;
}
#promise ul.box li{
	max-width: 320px;
	width: 33%;
	margin-right: 10px;
	position: relative;
}
#promise ul.box li:last-child{
	margin-right: 0;
}
#promise ul.box li img{
	display: block;
	width: 100%;
}
#promise ul.box li .textbox{
	padding: 40px 20px 20px;
	background-color: #fff;
	margin-bottom: 20px;
	min-height: 330px;
}
#promise ul.box li .textbox .title{
	text-align: center;
	color: #09194F;
	font-size: 1.6em;
	font-weight: bold;
	margin-bottom: 10px;
}
#promise ul.box li .textbox .subtitle{
	text-align: center;
	margin-bottom: 40px;
}
#promise ul.box li .textbox .text{
	font-size: 1.1em;
	color: #09194F;
	line-height: 1.5;
}
@media only screen and (max-width:767px) {
	#promise ul.box{ display: block; }
	#promise ul.box li, #promise ul.box li:last-child{ 
		width: 100%; 
		margin: 0 auto 40px;
	}
	#promise ul.box li .textbox{ min-height: auto; }
	#promise ul.box li .textbox .title{
		font-size: 1.8rem;
	}
}
#message{
	background:url('/wp-content/themes/gensen_tcd050/img/top/message.jpg') no-repeat 23%;
	position:relative;
	padding: 60px 0;
	margin-bottom: 60px;
}
#message::before{
	background-color:rgba(0,51,102,0.8);;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	content: ' ';
}
#message .message_msk{
	width: 100%;
	text-align: center;
}

#message .box{
	width: 50%;
	padding-right: 60px;
}
#message .box .greeting{
	line-height: 2;
	margin-bottom: 30px;
}
#message .box .btn{
	margin: 0;
}
@media only screen and (max-width:768px) {
	#message .box{
		width: 95%;
		margin: auto; 
		padding: 0;
	}
	#message .box .btn{ margin: auto; }
}
#works{
	padding: 60px 0;
	margin-bottom: 60px;
	background-color: #F2F2F2;
}
#works ul.box{
	margin-bottom: 60px;
}
#works ul.box li{
	max-width: 330px;
	position: relative;
	width: 33%;
}
#works ul.box li img{
	display: block;
	height: auto; 
	margin: 0 auto;
}
#works ul.box li .textbox{
	padding: 40px 20px 20px;
	color: #09194F;
	font-weight: bold;
	text-align: center;
}
#works ul.box li .textbox .title{
	font-size: 1.3em;
}
@media only screen and (max-width:767px) {
	#works ul.box{ display: block; }
	#works ul.box li{
		margin: auto auto 60px;
		width: 100%;
		max-width: 100%;
	}
}
#item{
	padding: 60px 0;
	background: url('img/top/item_bg.jpg') repeat;
}
#item .belt{
	text-align: center;
	background-color: rgba(0,0,0,0.8);
	padding: 20px 0;
}

#about{
	padding: 60px 0;
}
#about ul.box li{
	width: 668px;
	height: 200px;
	background-color: #E6E6E6;
	margin-bottom: 20px;
	position: relative;
}
#about ul.box li .img_box{
	width: 100%;
	max-width: 200px;
}
#about ul.box li .inbox{
	width: 100%;
	padding: 20px;
}
#about ul.box li .inbox .about_menu{
	font-size:2.0em;
	color: #fff;
	margin-bottom: 10px;
}
#about ul.box li .inbox .about_menu_ja{
	color: #09194F;
	font-weight: bold;
	letter-spacing: 0.5em;
}

#about ul.box li .link{
	position: absolute;
	bottom: 20px;
	right: 20px;
}
#about ul.box li:last-child{
	margin-bottom: 60px;
}
#about .daihyo{
	position: absolute;
	right: -50px;
	bottom: 0;
	text-align: right;
}
#about .daihyo p{
	color: #09194F;
	line-height: 1.5;
	margin-top:20px;
	padding-right: 100px;
}
#about .daihyo p span{
	font-weight: bold;
	font-size: 1.2em;
}
#about .btn{
	margin: 0;
}
@media only screen and (max-width:768px) {
	#about ul.box li{
		width: 100%;
		height: auto;
		margin-bottom: 60px;
	}
	#about ul.box li .img_box{ width: 40%; }
	#about ul.box li .inbox{ padding: 10px;}
	#about ul.box li .inbox .about_menu{ font-size: 1.7em;}
	#about ul.box li .link{
		right:0;
		bottom: -40px;
	}
	#about .daihyo{
		position: relative;
		right: 0;
	}
	#about .daihyo p{
		text-align: center;
		padding: 0;
		margin-bottom: 40px;
	}
	#about .btn{
		margin: auto;
	}
}
#access{
	padding: 40px 0;
	background-color: #09194F;
}
#access h2.title{
	margin-bottom: 0;
}
/********************
	CONTENTS COMMON
*********************/
#header_image .caption{
	text-align: left;
	line-height: 1;
}
/********************
	ABOUT DENTREPAIR
*********************/
#dentrepair{ padding: 50px 0; }
#dentrepair #main_col{ margin: 50px auto; }
#dentrepair .box .textbox{
	width: 50%;
}

.ba_box .before{ 
	width: 40%; 
	text-align: center;
	position: relative;
	align-items: center;
	justify-content: center;
}
.ba_box .din{
	font-size: 3em;
	position: absolute;
	top: 10px;
}
.ba_box .before .din{
	color: #09194F;
	left: 60px;
}
.ba_box .after .din{
	color: #FFF;
	right: 60px;
}
.ba_box .after{ 
	width: 60%; 
	text-align: center;
	background-color: #09194F;
	padding: 60px 20px 60px 180px;
	position: relative;
	height: 470px;
	display: flex;
	box-sizing: border-box;
	align-items: center;
}
.ba_box .after::before, 
.ba_box .after::after{
	content:"";
	position: absolute;
	left: 0;
	width: 0;
	height: 0;
	border-style: solid;
}
.ba_box .after::before{
	bottom: 0;
	border-width: 236px 80px 0px 0;
	border-color: #fff transparent transparent transparent;
}
.ba_box .after::after{
	top: 0;
	border-width: 0px 80px 236px 0 ;
	border-color: transparent transparent #fff transparent ;
}
#dentrepair .about_dr:nth-of-type(even){
	background-color: #F2F2F2;
	padding: 40px 0;
}
#dentrepair .about_dr ul{
	list-style: disc;
	margin-left: 50px;
}
/*#dentrepair .merit_box table{
	margin: 20px;
	
}*/
#dentrepair .merit_box .merit{
	background:rgb(249, 206, 0);
	color:#333;
	width:50%;
}

#dentrepair .merit_box .demerit{
	background:#ccc;
	color:#333;
}

#dentrepair ul.flow{ 
	list-style: none;
	align-items: stretch;
	margin:0; 
	text-align: center; 
}
#dentrepair ul.flow .flow_box{
	background-color: #09194F;
	padding: 30px 10px;
	color: #fff;
	width: 30%;
	box-sizing: border-box;
}
#dentrepair ul.flow .flow_box .step_no{
	color: #09194F;
	background-color: #fff;
	display: inline-block;
	box-sizing: border-box;
	font-size: 1.5em;
	border-radius: 50%;
	width: 50px;
	height: 50px;
	margin-bottom: 15px;
}
#dentrepair ul.flow .flow_box .flow_title{
	font-weight: bold;
	font-size: 1.5em;
	border-bottom: #F2F2F2 2px solid;
	line-height: 1.2;
	padding-bottom: 20px;
}
#dentrepair ul.flow .flow_box .flow_text{ margin-top: 20px; text-align: left;}
#dentrepair ul.flow .flow_arrow{ padding:30px 5px; }
#dentrepair ul.flow .flow_arrow .arrow{
	border-bottom: 20px solid transparent;
	border-left: 15px solid #09194F;
	border-top: 20px solid transparent; 
}
#dentrepair .button_area{flex-wrap: wrap; }
@media only screen and (max-width:768px) {
	#dentrepair .box .textbox{
		width: 100%;
		float: none;
	}
	#dentrepair .box img{ float:none; display: block; margin: 0 auto 40px; }
	.ba_box{ display: block;}
	.ba_box .before{ width: 100%; padding: 60px 0 10px; display: block; }
	.ba_box .after{
		width: 100%;
	}
	.ba_box .after::before{
		top: -1px;
		border-width: 0 50vw 80px 0;
		border-color: transparent #fff transparent transparent ;
	}
	.ba_box .after{ padding: 160px 10px 60px; height: auto; }
	.ba_box .after::after{
		right: 0;
		left: auto;
		top: -1px;
		border-width: 0 0 80px 50vw ;
		border-color: transparent transparent transparent #fff;
	}
	.ba_box .before .din{ left: 10px;}
	.ba_box .after .din{ top:80px; left: 10px; right: auto; }
	.ba_box .after img{ margin: auto; width:100%!important;}
	#dentrepair .merit_box{ display: block;	}
	#dentrepair .merit_box table{ margin: 20px auto; }
	#dentrepair ul.flow{ display: block; }
	#dentrepair ul.flow .flow_box{ width: 100%; }
	#dentrepair ul.flow .flow_arrow{ width: 80px; margin: auto; }
	#dentrepair ul.flow .flow_arrow .arrow{
		border-left: 40px solid transparent;
		border-top: 30px solid #09194F;
		border-right: 40px solid transparent; 
		border-bottom: none;
	}
}
/********************
	NEWS ARCHIVE
*********************/
#recent_news ol{ border: none; max-width: 850px; margin: auto; }
#recent_news .show_date li a{ padding: 20px 40px;}
#recent_news .show_date li .date{
	display: inline-block;
	position: relative;
	top: auto; 
	right: auto;
	margin: 0 20px;
}#recent_news .show_date li h3.title{
	font-weight: bold;
	font-size: 1.2em;
}
#recent_news li img{ max-width: 150px; width: 100%; height: auto; }
@media only screen and (max-width:768px) {
	#recent_news li .article_img{ width: 25%;}
}

/********************
	WORKS ARCHIVE
*********************/
#recent_works .description{
	width: 75%;
	text-align: center;
	color: #09194F;
	margin: 0 auto;
}
#recent_works ol{ margin: 60px auto; flex-wrap: wrap; justify-content: flex-start; }
#recent_works ol li{
	width: 30%;
	text-align: center;
	margin-right: 3vh;
}
#recent_works ol li:nth-child(3n){ margin-right: 0; }
#recent_works ol li img{ height: auto; margin: 0; }
@media only screen and (max-width:768px) {
	#recent_works .description{
		width: 100%;
	}
	#recent_works ol li{ width: 100%;margin-bottom: 40px;  }
	#recent_works .flex-wrapper{ display: block; }
}
/********************
	WORKS SINGLE
*********************/
#article_header #main_col{ margin: 0 auto; }
.ba_box .after img{
	width: auto;
	max-width: 600px;
	height: auto;
	max-height:350px;
}
.comment_box{line-height: 2; }
.comment_box .before_comment{
	width: 30%;
}
.comment_box .after_comment{
	text-align: right;
	width: 30%;
}
.customer_comment{
	width: 80%;
	margin: 60px auto;
}
.customer_comment .customer_photo{ margin-right: 40px;}
.customer_comment .customer_photo img{ height: auto;}
.customer_comment p{ width: 60%;line-height: 2;}
@media only screen and (max-width:768px) {
	.before_comment{
		padding: 20px;
		line-height: 2;
	}
	.comment_box .after_comment{
		line-height: 2;
		width: 100%;
		padding: 20px;
		text-align: center;
	}
	.customer_comment{ display: block; }
	.customer_comment .customer_photo{ text-align: center; margin: 0 auto 20px;}
	.customer_comment p{ width: 100%; }
	.button_area{ display: block; }
}
