@charset "utf-8";
/* CSS Document */
body {font-size: 14px;}
.inner {max-width: 96%;}
.sp {display: block;}
.pc {display: none;}
.flex{display:block;}
.left,.right{float:none;}
.flex{display:block;}

/********** header *******************/

header#header{
	padding: 1em 0 0 0;
	font-size:0.9em;
	max-width: 100%;
	width: 100%;
}
header#header nav {
	position:relative;
    display: block;
    padding-top: 0;
    width: 100%;
	text-align:left;
    margin-top: 0.7em;
}
header#header #spnav {
	display:block;
	font-size:2.5em;
	position:absolute;
	top: 0.63em;
	right:0.3em;
	line-height: 1;
}
header#header #spnav a {
	color:#331900;
	position: relative;
	z-index: 9999;
	display: inline-block;
	margin: 0;
	padding: 0;
	line-height: 1;
}
header#header #spnav a i{
	font-weight: 500;
	line-height:1;
}
header#header nav ul#nav {
	width: 100%;
	padding: 0;
	display: none;
	background-color: rgb(153, 108, 98);
	padding: 1em 0;
}
header#header nav ul#nav li {
	display:block; margin:0 0 0 0;
}
header#header nav ul#nav li:last-of-type {
	border-bottom: none;	
}
header#header nav ul#nav li a {
	display: block;
	color: #FFF;
	font-size: 1em;
	padding: 1em 1.5em;
	text-align: left;
}
header#header nav ul#nav li a:hover{
	border-bottom:none;
}
header#header nav ul#nav li a::after {
	display:none;
}
header#header nav ul#nav li a:hover::before {
    width: 0%;
}
header#header nav ul#nav li i{
	color:#69C051;
	font-size: 2em;
	vertical-align: middle;
	padding-right: 0.5em;
	display:inline-block;
}
header#header #trans {
	margin: 0 auto;
	position: absolute;
	left: auto;
	right: 4em;
	top: -3em;
}
header#header nav ul#nav li a:before ,
div.gray_img p.pa span.fs24:before {
	display:none;
}
.logo_box{
	max-width: calc(100% - 14em);
	width: 12em;
}
.logo_box span.per {
    max-width: 17.19em;
	width:100%;
	letter-spacing:0;
}
.logo_box span{
	letter-spacing:0;
}

/********** footer ************/

footer#footer{
	padding: 2.5em 0;
}
footer div.right{
	float: none;
	width: 100%;
	text-align: left;
}
footer div.right ul li:first-of-type,
footer div.right ul li{
	display: block;
	margin: 0.5em 0;
	font-size: 1.1em;
}
footer .logo_box{
	margin: 2em 0 0 0;
	max-width: 100%;
}
footer address{
	margin: 1.2em 0 0 0;
}
.foot_tel{
    margin: 0.5em 0;
    display: block;
}
footer p.copy{
	font-size: 0.875em;
    margin-top: 3em;
}

/***************** common ******************/

.leaf_ttl,
.leaf_ttl02{
	font-size: 4.5vw;
}
.leaf_ttl02{
	padding: 2.721em 0;
}
.leaf_ttl span,
.leaf_ttl02 span{
	font-size: 1.41666em;
	position: relative;
}
.leaf_ttl img,
.leaf_ttl02 img{
	padding: 0;
	position: absolute;
	left: 3vw;
	right: auto;
	top: 0;
	bottom: 0;
	margin: auto;
}
.leaf_ttl img.reverse, 
.leaf_ttl02 img.reverse{
	left: auto;
	right: 3vw;
}
p.btn a{
	margin:0 auto;
}

/****************** アニメーション **********************/

.hover_back:hover::after {
  top: -100%;
  left: -100%;
}
.hover_back:hover,
section.inquiry p.inquiry_btn.tell a:hover,
form a.back:hover{
  color: #FFF;
}


/****************** top *********************/
section#slide .video_inner {
  aspect-ratio: 1920 / 1250;
}
section#slide video {
  inline-size: 140%;
  inset-inline-start: -20%;
  position: relative;
}
section#slide div.slide_txt{
	font-size: 1.7vw;
}
section#slide div.slide_txt p.border_box{
	font-size: 1.5em;
}
section#slide:after,
section.common::after{
	height: 3.25em;
	bottom: -1.625em;
}
div.same .left, div.same .right{
	width: 100%;
	max-width: none;
}
div.same img.left,
div.same img.right{
	margin-bottom: 2em;
}
div.select a.left{
	display: block;
	width: 100%;
	margin: 0 auto;
}
div.select a.left p{
	font-size: 6vw;
	height: 18vw;
}
section#infinite_slide{
	padding: 1em 0;
}
section#infinite_slide li{
	float: left;
	width: 200px;
	margin-right: 1em;
}
section.top_recruit{
	padding-bottom: 0.5em;
}
section.top_gallery img.top_gallery_img{
	float: left;
	width: 48.5%;
	margin-right: 3%;
	max-width: none;
}
section.top_gallery img.top_gallery_img:nth-of-type(2n){
	margin-right:0;
}
section.top_gallery p.btn{
	padding-top: 3em;
}
div.same .txt_box p.fs24{
	padding: 0 0 1em 0;
}
div.same .normal + .normal {
    margin-top: 1em;
}

/**************** inquiry ********************/

section.inquiry p.inquiry_btn,
section.inquiry p.inquiry_btn.mail{
	width: 100%;
	margin: 0 auto;
}
section.inquiry p.inquiry_btn.mail{
	margin-top: 1em;
}
section.inquiry p.inquiry_btn a{
	font-size: 1.3em;
}

/****************** about **********************/

section#town .middle_inner {
    padding: 3em 0;
}
.img_container img.pa{
	width: 12em;
	bottom: -3em;
	right: -1em;
}
section#town .second_inner img{
    display: block;
    width: 100%;
    margin: 0 auto 1em auto;
}
section#concept div.same {
    padding: 3em 0 0 0;
}
section#concept p.top_space{
	text-align: left;
}
div.award{
	padding: 2em 3%;
}
div.award .left, div.award .right{
	max-width: none;
	width: 100%;
	margin: 0 auto;
}
div.award .right{
	margin-top: 2em;
}
div.award h4 img{
	left: 0.5em;
}
div.award h4 img.reverse{
	right: 0.5em;
}
section#concept .second_inner img{
	width: 100%;
	margin: 0 auto 1em auto;
}
section#company .middle_inner{
    padding: 1.7em 0 5em 0;
}
section#company table {
    max-width: 590px;
    width: 46.5%;
    width: 100%;
    max-width: none;
    margin: 0 auto 2.7em auto;
}
section#company div.right{
	max-width: none;
	width: 100%;
}

/***************** staff ********************/

section#staff figure.left,
section#staff figure.left:nth-of-type(3n){
	max-width: none;
	width: 100%;
	margin: 0 auto 3em auto;
}

/***************** gallery *********************/

section#gallery .gallery_main {
    padding: 3em 0 5em 0;
}
section#gallery ul.photo li,
section#gallery ul.photo li:nth-of-type(4n){
	width: 32%;
	float: left;
	margin-right: 2%;
}
section#gallery ul.photo li:nth-of-type(3n){
	margin-right:0;
}
section.top_gallery .h_inner a.img_link {margin-block-end: 0em;}
section.top_gallery .h_inner {inline-size: min(800px,100%);}
/******************** recruit ********************/

section#message {
    background: linear-gradient(transparent calc(100% - 13em),#E3CCBD 13em);
    padding: 3em 0 5em 0;
}
section#message div.same .txt_box p.fs24{
	padding: 0 0 1em 0;
}
section#message div.same .left, div.same .right {
    margin-bottom: 2.7em;
}
section#requirements {
    padding: 0 0 5em 0;
}
section#requirements img.half{
	width:100%;
	margin:0 auto 1em auto;
}
section#requirements table{
	width: 100%;
	margin: 0 auto;
	max-width: none;
}
section#requirements table th{
	padding-left: 0.8em;
	width: 7em;
}

/*************** contact ******************/

section#contact{
}
section#contact #formtop{
	margin: 5em auto;
}
section#contact #formtop p.contact_normal {
    line-height: 1.8;
    text-align: left;
    width: 96%;
}
section#contact table{
	display:block;
	width: 96%;
}
section#contact table tbody,
section#contact table tbody tr{
	width:100%;
	display:block;
}
section#contact table th, 
section#contact table td{
	display:block;
    width: 100%;
    text-align: left;
}
section#contact table th{
}
section#contact table td{
	padding: 0.7em 0 1.5em 0;
}
section#contact table td input, 
section#contact table td textarea{
	max-width: none;
}
section#contact.confirm table td{
	padding: 0.5em 1em;
	margin: 0.5em 0 1.5em 0;
	width: calc(100% - 2em);
}

