﻿@charset "utf-8";
/* =======================================================================
	BASE
======================================================================= */
html {height:100%;box-sizing: border-box;}
*, *:before, *:after {box-sizing: inherit;}
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, 
pre, code, form, fieldset, legend, input, textarea, 
p, blockquote, th, td{margin:0;padding:0;}
a {outline: none; color:#0055AC; text-decoration: none;	transition:0.1s all;}
img { border:none }
h1,h2,h3,h4,h5,h6 {	font-size:100%;	font-weight:normal;}
body{
	font-family: 'Noto Sans JP', sans-serif;
	font-size:16px;
	font-style: normal;
	font-weight: 500;
	line-height:1.6;
	color:#111;
}
@media screen and (min-width:2560px) {body{font-size:20px;}}

/* Clearfix */
.clearfix:after {
	content: "";
	clear: both;
	display: block;
}
.pcnone{display:none;}

/* Opening */
.opening{
	width: 100%;
	height: 100%;
	position: fixed;
	top: 0;
	left: 0;
	display: flex;
	background:#FFF;
	justify-content: center;
	align-items: center;
	z-index: 10000;
	overflow: hidden;
}
.opening .opening_logo{ display: none;}
.opening .opening_logo img{
	width:auto;
	height:100px;
}

/* FadeIn */
.fadeIn{opacity: 0;transition: 1.2s;}
.fadeIn.is-show{opacity: 1;}

/* =======================================================================
	HEADER
======================================================================= */
header{
	width:100%;
	position:absolute;
	top:0;
}
header.fixed_header{
	height:80px;
	background:#FFF;
	animation: hfadeIn 0.5s ease 0s 1 normal;
	box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .15);
	position:fixed;
	top: 0;
	z-index:2;
}
@keyframes hfadeIn {
    0% {opacity: 0}
    100% {opacity: 1}
}
.header_inner .logo_area{
	float:left;
	margin:22px 0 0 35px;
}
.header_inner .logo_area img{
	width:auto;
	height:36px;
}
.header_inner ul.pc_navi{
	float:right;
	margin:20px 25px 0 0;
}
.header_inner ul.pc_navi li{
	display:inline-block;
	margin-left:30px;
}
header ul.pc_navi li a{
	font-weight:700;
	color:#111;
}
header ul.pc_navi li a:hover{
	opacity:0.5;
}
body.subpage header{
	height:80px;
	background:#FFF;
}

/* Drawer */
.el_humburger {
	cursor: pointer;
	box-sizing: border-box;
	-webkit-box-sizing: border-box;
	pointer-events: auto;
	caret-color: transparent;
	position: fixed;
	top: 27px;
	right: 25px;
	padding:0;
	z-index:100;
}
.el_humburger_wrapper {
	width: 40px;
	display: inline-block;
}
.el_humburger_text.el_humburger_text__close {display: none; }
.js_humburgerOpen .el_humburger_text.el_humburger_text__menu {display: none; }
.js_humburgerOpen .el_humburger_text.el_humburger_text__close {display: block;}
.el_humburger span.el_humburger_bar {
	width: 100%;
	height: 3px;
	background: #111;
	display: block;
	-webkit-transition: all .2s ease-in-out;
	-o-transition: all .2s ease-in-out;
	transition: all .2s ease-in-out;
	margin: 0 auto 9px;
}
body.js_humburgerOpen span.el_humburger_bar{
	background: #FFF !important;
	margin: 0 auto 8px;
}
.js_humburgerOpen .el_humburger span.el_humburger_bar.top {
	-webkit-transform: translateY(9px) rotate(-45deg);
	-ms-transform: translateY(9px) rotate(-45deg);
	transform: translateY(9px) rotate(-45deg);
}
.js_humburgerOpen .el_humburger span.el_humburger_bar.middle {opacity: 0;}
.js_humburgerOpen .el_humburger span.el_humburger_bar.bottom {
	-webkit-transform: translateY(-12px) rotate(45deg);
	-ms-transform: translateY(-12px) rotate(45deg);
	transform: translateY(-12px) rotate(45deg);
}
.el_humburgerButton.el_humburgerButton__close {
	background: #FFF;
}
.el_humburgerButton__close span.el_humburger_bar {
	width: 35px;
	height: 4px;
	display: block;
	margin: 0 auto;
}
.el_humburgerButton__close span.el_humburger_bar.top {
	-webkit-transform: translateY(5px) rotate(-45deg);
	-ms-transform: translateY(5px) rotate(-45deg);
	transform: translateY(5px) rotate(-45deg);
}
.el_humburgerButton__close span.el_humburger_bar.bottom {
	-webkit-transform: translateY(-6px) rotate(45deg);
	-ms-transform: translateY(-6px) rotate(45deg);
	transform: translateY(-6px) rotate(45deg);
}
.sp_navi {
	width: 0;
	height: 100%;
	overflow: auto;
	will-change: transform;
	background-color: rgba(45, 35, 30, 0.9);
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	-webkit-transition: all 250ms ease-out;
	-o-transition: all 250ms ease-out;
	transition: all 250ms ease-out;
	transform:translateZ(0) translateX(0%);
	position: fixed;
	top:0;
	right:0;
	padding-top: 8%;
	z-index: 99;
}
.js_humburgerOpen .sp_navi {width: 35%;}
.navi_item {
	font-size: 17px;
	font-weight:500;
	white-space: nowrap;
	margin:0 0 35px 10%;
	padding-left:25px;
	position:relative;
}
.navi_item img{margin-top:20px;}
.navi_item a{color:#FFF;}
.navi_item.op_innerLink {cursor: pointer;}
@media screen and (min-width:1025px){
	.el_humburger{display:none;}
	.sp_navi{display:none;}
}
@media screen and (min-width:768px) and ( max-width:1024px) {
	.header_inner{min-width:100%;}
	.header_inner ul.pc_navi{display:none;}
}
@media screen and (min-width:2560px){
	.header_inner{width:60%;margin:0 auto;}
	.header_inner .logo_area{margin:22px 0 0 0;}
	.header_inner ul.pc_navi{margin:20px 0 0 0;}
}

/* =======================================================================
	MAIN
======================================================================= */
body.subpage main{padding-top:60px;}

/* MV
------------------------------------------------------------------------*/
section#mv{
	width:100%;
	height:800px;
	background: url("../images/mv.webp") center no-repeat;
	background-size:cover;
}
section#mv .mv_inner{
	width:1100px;
	color:#1B1B1B;
	padding-top:250px;
	margin:0 auto;
}
.mv_inner h1{
	font-size:38px;
	font-weight:700;
	letter-spacing:5px;
}
.mv_inner h2{
	font-size:22px;
	font-weight:600;
	line-height:2.5;
	letter-spacing:5px;
	margin-top:40px;
}
.mv_fadein{
	opacity: 0;
	animation: mvfadein 1.5s ease forwards;
}
@keyframes mvfadein {100% {  opacity: 1;}}
.mvf01 {animation-delay: 5.5s;}
.mvf02 {animation-delay: 6s;}
.mvf03 {animation-delay: 6.5s;}

@media screen and (min-width:768px) and ( max-width:1024px) {
	section#mv{background-position:65% 0;}
	section#mv .mv_inner{width:86%;}
}
@media screen and (min-width:2560px){
	section#mv{height:1100px;}
	section#mv .mv_inner{width:60%;padding-top:400px;}
	.mv_inner h1{font-size:250%;}
	.mv_inner h2{font-size:150%;margin-top:40px;}
}


/* About
------------------------------------------------------------------------*/
section#about{
	width:100%;
	display:flex;
	padding:110px 0;
}
section#about .about_bg{
	width:45%;
	height:600px;
	max-height:600px;
	background: url("../images/about.webp") bottom right no-repeat;
	background-size:auto 100%;
}
section#about .about_txt{
	width:55%;
	line-height:2.5;
	padding:0 0 0 8%;
}
section#about .about_txt b{
	font-size:22px;
	font-weight:800;
	display:block;
	margin:20px 0;
}
@media screen and (min-width:768px) and ( max-width:1024px) {
	section#about{padding:100px 0;}
	section#about .about_bg{width:40%;height:300px;max-height:300px;}
	section#about .about_txt{width:60%;line-height:2;padding:0 0 0 8%;}
}
@media screen and (min-width:2560px){
	section#about .about_bg{
		width:55%;
		height:680px;
		max-height:680px;
		background-position:bottom left;
	}
	section#about .about_txt{width:45%;padding:0;}
}
@media screen and (min-width:5120px){
	section#about{width:60%;font-size:30px;	margin:0 auto;}
}


/* Services
------------------------------------------------------------------------*/
/* Service */
section#services{
	width:100%;
	background:#F3F1EF;
	padding:90px 0;
}
section#services h2{
	font-size:40px;
	font-weight:500;
	height:75px;
	line-height:1;
	letter-spacing:1px;
	background: url("../images/h2_bg.png") bottom center no-repeat;
	background-size:70px 5px;
	text-align:center;
}
section#services .service ul{
	width:70%;
	min-width:1100px;
	list-style-type: none;
	display: flex;
    flex-wrap: wrap;
    margin:80px auto;
}
section#services .service ul li{
	width:calc(50% - 80px);
	margin:0 40px;
}
section#services .service h3{
	font-size:24px;
	font-weight:600;
	line-height:1;
	text-align:center;
}
section#services .service img{
	width:100%;
	height:auto;
	margin:30px 0;
}
/* Work Process */
section#services .work_process{
	width:100%;
	border-top:#C7C6C6 1px solid;
	padding-top:80px;
}
section#services .work_process h3{
	font-size:17px;
	text-align:center;
	margin:45px 0;
}
section#services .work_process ul{
	width:70%;
	min-width:1100px;
	list-style-type: none;
	display: flex;
    flex-wrap: wrap;
    justify-content: center;
    margin:0 auto;
}
section#services .work_process ul li{
	width:calc(25% - 30px);
	text-align:center;
	margin:0 15px;
}
section#services .work_process ul img{
	width:250px;
	height:auto;
}
section#services .work_process h4{
	font-size:18px;
	font-weight:600;
	margin-top:20px;
}

@media screen and (min-width:768px) and ( max-width:1024px) {
	section#services{padding:80px 0;}
	section#services .service ul{
		width:90%;
		min-width:90%;
	    margin:70px auto;
	}
	section#services .service ul li{
		width:calc(50% - 50px);
		margin:0 25px;
	}
	section#services .work_process{padding-top:70px;}
	section#services .work_process ul{
		width:90%;
		min-width:90%;
	}
	section#services .work_process ul li{
		width:calc(25% - 40px);
		text-align:center;
		margin:0 20px;
	}
	section#services .work_process ul li img{width:100%;height:auto;}
}
@media screen and (min-width:2560px){
	section#services h2{
		font-size:55px;
		height:90px;
	}
	section#services .service ul{
		width:60%;
		min-width:60%;
	}
	section#services .service ul li{
		width:calc(50% - 150px);
		margin:0 75px;
	}
	section#services .service h3{
		font-size:32px;
	}
	section#services .service img{margin:50px 0;}
	section#services .work_process h3{
		font-size:20px;
		text-align:center;
		margin:50px 0 55px 0;
	}
	section#services .work_process ul{
		width:60%;
		min-width:60%;
	}
	section#services .work_process ul li{
		width:calc(25% - 150px);
		text-align:center;
		margin:0 75px;
	}
	section#services .work_process ul li img{width:100%;height:auto;}
	section#services .work_process h4{font-size:20px;}
}


/* Compnay
------------------------------------------------------------------------*/
section#compnay{
	width:100%;
	padding:90px 0;
}
section#compnay h2{
	font-size:40px;
	font-weight:500;
	height:75px;
	line-height:1;
	letter-spacing:1px;
	background: url("../images/h2_bg.png") bottom center no-repeat;
	background-size:70px 5px;
	text-align:center;
}
section#compnay dl{
	width:800px;
	display: flex;
	flex-wrap: wrap;
	margin:65px auto;
} 
section#compnay dt{
	width:270px;
	font-weight:600;
	color:#4C3F38;
	border-bottom:#bbb 1px solid;
	padding:20px 15px;
}
section#compnay dd{
	width: calc(100% - 270px);
	border-bottom:#bbb 1px solid;
	padding:20px 15px;
}
section#compnay iframe{
	width:800px;
	height:400px;
	display:block;
	border:#bbb 1px solid !important;
	margin:0 auto;
}
@media screen and (min-width:2560px){
	section#compnay dl{width:50%;} 
	section#compnay dt{width:25%;}
	section#compnay dd{width: calc(100% - 25%);}
	section#compnay iframe{width:50%;height:500px;}
}

/* Contact
------------------------------------------------------------------------*/
section#contact{
	width:100%;
	background:#F3F1EF;
	padding:90px 0;
}
section#contact h2{
	font-size:40px;
	font-weight:500;
	height:75px;
	line-height:1;
	letter-spacing:1px;
	background: url("../images/h2_bg.png") bottom center no-repeat;
	background-size:70px 5px;
	text-align:center;
}
section#contact h3{
	font-size:17px;
	line-height:1.8;
	text-align:center;
	margin:60px 0;
}
table.form{
	width:550px;
	text-align:left;
	border-collapse:collapse;
	margin:30px auto 0 auto;
}
table.form th{
	color:#4C3F38;
	display:block;
	margin:30px 0 10px 0;
}
table.form td{display:block;}

section#contact h3.thx{
	font-size:18px;
	line-height:2.5;
	text-align:center;
	margin:120px 0 100px 0;
}
section#contact span{
	font-size:13px;
	font-weight:600;
	line-height:1;
	color:#CC4649;
	margin-left:15px;
}
section#contact span.msg{
	font-size:16px;
	color:#DB394E;
	margin:0;
}

/* お問い合わせフォーム【フォームパーツ】 */
table.form input{
	width:100%;
	background:#FFF;
	border-radius:5px;
	vertical-align:middle;
	padding:1% 2%;
	margin:5px 5px 5px 0;
}
table.form input[type="checkbox"],
table.form input[type="radio"]{
	margin:-2px 8px 0 0;
}
table.form input[type="text"],
table.form input[type="number"]{
	border:1px solid #A69C97;
}
table.form input[type="number"]{
	width:40%;
}
table.form input[type="number"]::-webkit-inner-spin-button,
table.form input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  -moz-appearance:textfield;
  margin: 0;
}
table.form select {
	width:100%;
	border:1px solid #A69C97;
	padding:3px 5px 7px 5px;
}
table.form textarea{
	width:100%;
	background:#FFF;
	border:1px solid #A69C97;
	border-radius:5px;
	padding:1% 2%;
	margin-top:8px;
}

/* お問い合わせフォーム【フォームボタン】 */
.form_area .btnarea{}
.btnarea ul{
	list-style:none;
	text-align:center;
	margin-top:80px;
}
.btnarea li{
	color:#FFF;
	display: inline-block;
	margin:0 10px;
}
.btnarea .conbtn1{
	width:280px;
	font-size:19px;
	line-height:1.0;
	color:#FFF;
	display:block;
	cursor: pointer;
	border-radius:50px;
	border:none;
	background:#8A7C75;
	padding:25px 0;
}
.btnarea .conbtn2{
	width:280px;
	font-size:19px;
	line-height:1.0;
	color:#FFF;
	display:block;
	cursor: pointer;
	border-radius:50px;
	border:none;
	background:#CC4649;
	padding:25px 0;
}
@media screen and (min-width:2560px){
	table.form{width:800px;}
	.btnarea .conbtn1{
		width:350px;
		font-size:24px;
		padding:35px 0;
	}
	.btnarea .conbtn2{
		width:350px;
		font-size:24px;
		padding:35px 0;
	}
}

/* =======================================================================
	FOOTER
======================================================================= */
footer{
	line-height:1.8;
	text-align:center;
	background:#F9F8F6;
}
footer b{
	display:block;
	font-weight:700;
	padding:30px 0 10px 0;
}
footer .copyright{
	font-size:13px;
	font-weight:600;
	line-height:1;
	border-top:#CECDCC 1px solid;
	padding:20px 0 22px 0;
	margin-top:25px;
}
