@charset "utf-8";
/*
Theme Name: hikarudensetsu's theme
Theme URI: 
Description: https://hikarudensetsu.com/ official site
Author: functions starman
*/

@font-face {
	font-family: 'Geotica_Three';
	src: url(font/Geotica_Three-webfont.woff);
}

* {
	margin: 0;
	padding: 0;
}

input,
textarea,
select {
	font-size: 16px ;
}

button, textarea, select {
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    -webkit-appearance: none;
    max-width: 100%;
}


  
html {
	width: 100%;
	height: 100%;
	position: relative;
}

body {
	float: left;
	font-size :100%;
	font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
　 	line-height: 160%;
	width: 100%;
	height: 100%;
	text-align: left;
	color: rgba(0, 0, 0, 1);
	font-size: 80%\9;
	position: relative;
	-webkit-print-color-adjust: exact;
	-webkit-overflow-scrolling: touch
}

table {
	 border-collapse: collapse;
}

img {

}

picture {
	display: block;
}

li {
	list-style-type: none;
}	

a {
	text-decoration: none;
	color: #000;
}

a:focus {
	outline: none;
}

.n {
	position: absolute !important;
	top: 0!important;
	left: 0!important;
	height: 0!important;
	width: 0!important;
	overflow: hidden !important;
}

.pn {
	display: none;
}

.clearfix:after { 
	content: " ";  
	display: block; 
	visibility: hidden; 
	clear: both; 
	height: 0.1px; 
	font-size: 0.1em; 
	line-height: 0; 
} 

.cl {
	clear: left;
}

.l {
	float: left;
}

.r {
	float: right;
}

.ta_c {
	text-align: center;
}

.ta_r {
	text-align: right;
}

.fw_b {
	font-weight: bold;
}

.w100 {
	width: 100%;
}

.w20 {
	width: 30%;
}

.w25 {
	width: 30%;
}

.w30 {
	width: 30%;
}

.w40 {
	width: 40%;
}

.w48 {
	width: 48%;
}

.w50 {
	width: 50%;
}

.w60 {
	width: 60%;
}

.dspB {
	display: block;
}

.boxSb {
	box-sizing: border-box;
}

.flex {
	display:flex;
	align-items: stretch;
}

.flexw {
	flex-wrap: wrap;
}

.flexjc {
	justify-content: center;
}

.flexjb {
	justify-content: space-between;
}


/*---- top ----*/
#wrapper {
	float: left;
	width: 100%;
	height: 100%;
	overflow-x: hidden;
	position: relative;
}

#topPage {
	overflow: hidden;
}

.cm_outer{
 	position: relative;
	box-sizing: border-box;
	width: 45%;
	height: 100vh;
}

.cm_inner{
	width: 100%;
	padding: 0 5%;
	box-sizing: border-box;
  	position: absolute;
  	top: 40%;
  	left: 50%;
  	transform: translateY(-50%) translateX(-50%);
	-webkit- transform: translateY(-50%) translateX(-50%);
	z-index: 1000;
}

#topMain {
	height: 100%;
	background: url("images/101.gif") no-repeat;
	background-size: 130%;
	background-position: 25%;
	position: relative;
	overflow: hidden;
}

#topTitle {
 	position: relative;
	box-sizing: border-box;
	width: 45%;
	height: 100vh;
}

#topTitle:after {
	content: "";
	position: absolute;
	top: -10%;
	left: -10%;
	width: 100%;
	height: 120vh;
	transform: rotate(8deg);
	background: rgba(255,255,255,.6);
	box-shadow: 0 10px 10px 10px rgba(0, 0, 0, .1);
}

#siteTitle {
	text-align: center;
	margin: 0 auto;
	width: 500px;
	position: relative;
	z-index: 100;
}


#siteTitle img {
	position: relative;
	width: 100%;
	height: auto;
	z-index: 200;
}


#siteDescription {
	position: absolute;
	right: -.5em;
	bottom: 0;
	font-size: 12rem;
	color: rgba(29,74,75,1);
	font-weight: bold;
	overflow: hidden;
}

  #siteDescription::after {
	content: "";
	display: block;
	width: 30px;
	height: 100%;
	position: absolute;
	top: -180px;
	left: 0;
	background-color: #FFF;
	opacity: 0;
	transform: rotate(45deg);
	animation: reflect 2s ease-in-out 1;
	-webkit-transform: rotate(45deg);
	-webkit-animation: reflect 2s ease-in-out 1;
  }
  @keyframes reflect {
	0% { transform: scale(0) rotate(45deg); opacity: 0; }
	80% { transform: scale(0) rotate(45deg); opacity: 0.5; }
	81% { transform: scale(4) rotate(45deg); opacity: 1; }
	100% { transform: scale(50) rotate(45deg); opacity: 0; }
  }
  @-webkit-keyframes reflect {
	0% { transform: scale(0) rotate(45deg); opacity: 0; }
	80% { transform: scale(0) rotate(45deg); opacity: 0.5; }
	81% { transform: scale(4) rotate(45deg); opacity: 1; }
	100% { transform: scale(50) rotate(45deg); opacity: 0; }
  }

#topPage #mainNav {
	float: left;
	position: absolute;
	right: 0;
	top: 0;
	width: 100%;
	background: rgba(255,255,255, .5);

}

#topPage #mainNav .nav_ul {
	float: left;
	position: absolute;
	right: 0;
	top: 0;
	width: 50%;
	box-sizing: border-box;
	z-index: 1000;
}

#topPage #mainNav::after {
	content: "";
	width: 56.4%;
	position: absolute;
	top: 100px;
	right: 0;
	border-bottom: 1px solid rgba(29,74,75,.3);
	z-index:200;
}

#topPage #mainNav::before {
	content: "";
	width: 56.4%;
	position: absolute;
	top: 100px;
	right: 0;
	border-bottom: 1px solid rgba(255,255,255,1);
}

/*---- container ----*/

.container {
	width: 80%;
	margin: 0 auto;
}

/*----page----*/

#header {
	position: relative;
	z-index: 400;
	width: 100%;
	box-shadow: 0px 0px 10px 0px rgba(0,0,0,0.5);
}

#pageTitle {
	float: left;
	width: 20%;
	height: 100px;
	position: relative;
	padding: 10px 20px;
	box-sizing: border-box;
	background: rgba(29,74,75, 1);
	margin-bottom: 0;
}

#pageTitle::after {
	content: "";
	display: block;
	position: absolute;
	top :0;
	right: -50px;
	width: 0;
	border-style: solid;
	border-width: 99px 50px 0 50px;
	border-color: rgba(29,74,75, 1) transparent transparent transparent;
}

#pageTitle img {
	max-width: 80%;
	height: auto;
	z-index: 100;
	position: relative;
}

#mainNav {
	float: right;
	width: 50%;
	height: 100px;
}

#mainNav .nav_ul{
	width: 100%;
	height: 100%;
	border-left: 1px solid rgba(29,74,75, .3);
}


#mainNav li {
	float: left;
	display: table;
	height: 100%;
	width: 20%;
	text-align: center;
	border-right: 1px solid rgba(29,74,75, .3);
	border-left: 1px solid rgba(255,255,255, 1);
	box-sizing: border-box;
}


#mainNav li a {
	display: table-cell;
	vertical-align: middle;
	height: 100%;
	width: 100%;
	font-weight: bold;
	color:  rgba(29,74,75,1);
}

.page_main_img {
	float: left;
	width: 100%;
	height: 200px;
}

#aboutusPage .page_main_img {
	background: url("images/min/about_us.jpg") repeat-x;
	background-size: cover;
	background-position: center 60%;
}

#businessPage .page_main_img {
	background: url("images/min/our_business.jpg") repeat-x;
	background-size: cover;
	background-position: center 53%;
}

#contactPage .page_main_img {
	background: url("images/min/contact.jpg") repeat-x;
	background-size: cover;
	background-position: left 14%;
}


#worksPage .page_main_img {
	background: url("images/min/works_02.jpg") repeat-x;
	background-size: cover;
	background-position: left 51%;
}

#recruitPage .page_main_img {
	background: url("images/min/lights.jpg") repeat-x;
	background-size: cover;
	background-position: left 51%;
}

.content {
	clear: left;
	margin: 0 auto 40px auto;
	width: 1200px;
}

.content_title {
	float: left;
	width: 100%;
	padding: 40px 0;
	text-align: center;
}

.content_wrapper {
	width: 100%;
	padding: 0 20%;
	box-sizing: border-box;
}

.content_text {
	margin: 20px 0 55px 0;
}

.business_table th {
	width: 6em;
}

.hikaru_table ul {
	margin-bottom: 0;
}

.hikaru_table th,
.hikaru_table td {
	padding-top: 20px;
	padding-bottom: 20px;
}

.sections {
	position: relative;
}

.sections::before {
	content: "";
	display: block;
	width: 40px;
	height: 100px;
	position: fixed;
	left: 20%;
	top: calc(50vh - 50px);
	background: url("images/icon_02.png") no-repeat;
	background-size: contain;
}

.sections::after {
	content: "";
	display: block;
	width: 40px;
	height: 100px;
	position: fixed;
	right: 20%;
	top: calc(50vh - 50px);
	background: url("images/icon_02.png") no-repeat;
	background-size: contain;
}

.sections h2 {
	text-align: center;
	padding: 0 10% 20px 10%;
	box-sizing: border-box;
}

#upButton {
	position: fixed;
	bottom: 0;
	right: 0;
	display: none;
	color: #FFF;
	font-size: 1.5rem;
	height: 1.5em;
}

#upButton::before {
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	right: -28px;
	transform: skewX(-22deg);
	background: rgba(29,74,75,1);
	width: 50px;
	height: 100px;
}

#upButton span {
	position: relative;
}

#upButton:hover {
	text-decoration: none;
}

/*----about us----*/

#aboutusPage .section_wrapper{
	min-height: calc(100vh - 300px);
	background: url("images/min/conductor.png") no-repeat;
	background-size: 47% auto;
	background-position: -5% bottom;

}
/*----contact----*/

#contactPage .section_wrapper{
	min-height: calc(100vh - 300px);
	background: url("images/min/tools.png") no-repeat;
	background-size: 60% auto;
	background-position: right bottom;

}


/*----business----*/ 

#businessPage .section_wrapper{
	min-height: calc(100vh - 300px);
	background: url("images/min/lamps.png") no-repeat;
	background-size: 50% auto;
	background-position: right top;

}

/*----works----*/

#worksPage .section_wrapper{
	min-height: calc(100vh - 300px);
	background: url("images/min/tool_bag.png") no-repeat;
	background-size: 100% auto;
	background-position: 1 bottom;
	background-attachment: fixed;

}

.works_ul {
	text-align: center;
}

.works_ul li {
	margin: 0 0 10px 0;
}

.works_ul h3 {
	margin-top: 20px;
}

.works_ul h3 span {
	position: relative;
}

.works_ul h3 span::before {
	content: "";
	display: block;
	width: 50px;
	border-top: 1px solid #000;
	position: absolute;
	top: .6em;
	left: -60px;
}

.works_ul h3 span::after {
	content: "";
	display: block;
	width: 50px;
	border-top: 1px solid #000;
	position: absolute;
	top: .6em;
	right: -60px;
}

/*-----contact----*/

#contactPage table {
	margin: 20px 0 0 0;
}

input:not([type="submit"]),textarea {
	width: 100%;
	border: 1px solid #CCC;
	font-size: 1.2rem;
	padding: 5px;
	box-sizing: border-box;
	border-radius: 2px;
}

#contactPage .table th {
	width: 30%;
}

#contactPage .table td {
	width: 70%;
}

#contactPage .table th label {
	width: 100%;
}

.required {
	float: right;
	font-size: .7rem;
	font-weight: normal;
	color: #D80508;
}

.wpcf7-form-control.wpcf7-submit {
	background: rgba(29,74,75,1);
	box-shadow:0 5px 0 #0B2828;
	font-size:95%;
	position:relative;
	display:block;
	padding:10px;
	box-sizing: border-box;
	color:#fff;
	border-radius:6px;
	text-align:center;
	text-decoration: none;
	font-weight: bold;
	width: 100%;
	border: none;
}

.wpcf7-form-control.wpcf7-submit:hover {
	background: #0B2828;
	-webkit-transform: translate3d(0px, 5px, 1px);
	-moz-transform: translate3d(0px, 5px, 1px);
	transform: translate3d(0px, 5px, 1px);
	box-shadow:none;
}

#foot_wrapper {
	float: left;
	width: 100%;
	background: #0B2828;
	box-shadow: 0px -1px 8px 1px rgba(0, 0, 0, .4);
}

/*----footer----*/

#footer {
	clear: left;
	padding: 20px 0;
	margin: 0 auto 0 auto;
	width: 1200px;
}

#footerTitle {
	margin:30px 0;
	width: 20%;
}

#footerAddress {
	color: #FFF;
	margin: 10px 0 0 0;
}

.mbs {
	display: none;
}

.mobile_br {
	display: none;
}



@media screen and (max-width:1024px) {

	.cm_inner {
		z-index: 100;
	}

	#pageTitle {
		width: 80%;
		max-height: 66px;
		height: inherit;
		z-index: 1001;
	}

	#pageTitle img {
		margin: -10px 0 0 0;
		max-height: 50px;
		width: auto;
	}

	#topMain {
		background-size: cover;
		background-position: 60% center;
	}

	.cm_inner {
		padding: 52% 0 0 0;
	}

	#topTitle:after {
		display: none;
	}

	#siteTitle {
		width: 100vw;
		padding: 0 10%;
		box-sizing: border-box;
	}
	
	.sections h2 {
		text-align: center;
		padding: 0 5% 20px 5%;
		box-sizing: border-box;
	}

	.mbs {
		display: inherit;
	}

	.menu_bar {
		font-size: 2rem;
		position: absolute;
		right: 20px;
		top: 10px;
		color: rgba(29,74,75,1);
	}

	a.menu_bar:hover  {
		color: rgba(29,74,75,1);
	}

	#mainNav,
	#topPage #mainNav {
		position: fixed;
		top: 66px;
		left: 0;
		float: left;
		width: 100%;
		height: 100%;
		display: none;
		z-index: 1000;
		background: rgb(255,255,255);
	}

	#mainNav .nav_ul {
		float: left;
		width: 100%;
		height: inherit;
		background: rgb(255,255,255);
	}

	#mainNav li {
		height: inherit;
		float: left;
		width: 100%;
		height: calc( (100% - 60px) / 5);
		border-top: 1px solid rgba(29,74,75, .3);
		border-bottom: 1px solid rgba(255,255,255, 1);
		box-sizing: border-box;
	}

	#mainNav li a{
		padding: 30px 0;
	}

	.menu_bar::after {
		content: "menu";
		position: absolute;
		bottom: -.5px;
		left: -.5px;
		font-size: .7rem;
	}

	#siteDescription {
		font-size: 8rem;
	}

	#topPage #mainNav .nav_ul {
		width: 100%;
	}
 
	#mainNav .nav_ul {
		border-left: none;
	}

	#mainNav li:last-child {
		border-right: none;
	}

	#topPage #mainNav::after {
		width: 100%;
	}

	.content,
	#footer {
		width: 100%;
	}

	.sections h2 {
		font-size: 1.2rem;
		font-weight: bolder;
	}

	.sections h3 {
		font-size: 1.2rem;
	}

	.content_wrapper {
		padding: 0 15%;
		box-sizing: border-box;
	}

	.sections::before,
	.sections::after {
		display: none;
	}

	.table td, .table th {
		padding: 20px 0;
	}

	.aboutus_table th,
	.recruit_table th {
		width: 8em;
		padding-right: 1em;
		box-sizing: border-box;
	}

	.business_table th {
		width: 5em;
		padding-right: 1em;
		box-sizing: border-box;
	}

	.mobile_br {
		display: inherit;
	}

	#footerTitle {
		margin: 6px 0 0 5%;
		width: 30%;
	}

	#footerAddress {
		font-size: .8rem;
		color: #FFF;
		margin: 10px 5% 0 0;
	}

	.contact_table .required {
		padding: 0 10px 0 0;
	}

	.pc_br {
		display: none;
	}
}

@media screen and (max-width: 700px) {
	
	#pageTitle {
		width: 70%;
		height: inherit;
		z-index: 1001;
	}
	
	#siteDescription {
		font-size: 4rem;
		bottom: 70px;
	}

	.content_wrapper {
		padding: 0 5%;
		box-sizing: border-box;
	}

	table {
		font-size: .9rem;
	}

	.contact_table .required {
		width: 100%;
		margin: 2px 0 0 0;
		font-size: .8rem;
	}
}