@charset "utf-8";

#content_wrap{border-top:1px solid #E6E6E6;}
.content_area{
	max-width:1140px;
	padding:80px 20px 0;
	margin:auto;
}
.page_title{
	position:relative;
	margin-bottom:65px;
	font-size:3.2rem;
	font-weight:bold;
	letter-spacing:1.92px;
	line-height:4.6rem;
}
.page_title[data-slug]::before{
	content:attr(data-slug);
	display:block;
	margin:0 0 5px 40px;
	font-family:var(--font_montserrat);
	font-size:1.5rem;
	font-weight:600;
	letter-spacing:0;
	line-height:1.9rem;
	text-transform:capitalize;
}
.page_title[data-slug]::after{
	content:'';
	position:absolute;
	top:10px;
	left:0;
	width:30px;
	height:1px;
	background:#333;
}
.page_title + *{margin-top:0;}

.page_parent .content_area{padding-top:60px;}
.page_parent .page_title{
	font-size:2rem;
	letter-spacing:1.2px;
	line-height:2.9rem;
}
.page_parent .page_title[data-slug]::before{
	display:inline-block;
	position:relative;
	top:4px;
	margin:0 60px 0 0;
	font-size:6.8rem;
	line-height:8.3rem;
}
.page_parent .page_title[data-slug]::after{display:none;}
.page_title_txt{
	display:inline-block;
	position:relative;
}
.page_title_txt::before{
	content:'';
	position:absolute;
	top:2px;
	bottom:0;
	left:-30px;
	width:1px;
	height:20px;
	margin:auto;
	background:#333;
}

h2{
	margin:70px 0 20px;
	font-size:2.8rem;
	font-weight:bold;
	letter-spacing:1.68px;
	line-height:4rem;
}
h3{
	margin:50px 0 15px;
	font-size:2.4rem;
	font-weight:bold;
	letter-spacing:1.44px;
	line-height:3.5rem;
}
h4{
	margin:50px 0 15px;
	font-size:2rem;
	font-weight:bold;
	letter-spacing:1.2px;
	line-height:2.9rem;
}
h5{
	margin:50px 0 10px;
	font-weight:bold;
	letter-spacing:0.96px;
}
p{
	line-height:2.9rem;
	margin-bottom:15px;
}
ul{
	padding-left:20px;
	margin-bottom:20px;
}
ol{
	padding-left:30px;
	margin-bottom:20px;
}
ul li{list-style:disc;}
li ul, li ol{margin:5px 0 10px;}
ul li ul li{list-style:circle;}
ul li ul li ul li{list-style:square;}
ol li{list-style:decimal;}
li{
	letter-spacing:1.28px;
	line-height:2.9rem;
	margin-bottom:5px;
}
table{
	table-layout:fixed;
	width:100%;
	margin-bottom:20px;
	border-top:1px solid #ddd;
	border-left:1px solid #ddd;
}
th, td{
	padding:16px 20px 17px;
	border-right:1px solid #ddd;
	border-bottom:1px solid #ddd;
	vertical-align:top;
}
th{
	width:260px;
	background:#F1F5F2;
	font-weight:500;
	text-align:left;
}
th *:last-child, td *:last-child{margin-bottom:0;}
td p{line-height:2.4rem;}
td li{
	letter-spacing:1.6px;
	line-height:2.4rem;
}
.scroll_table{margin-bottom:10px;}
.scroll_table table{
	table-layout:auto;
	margin-bottom:10px;
}
.scroll_table th, .scroll_table td{display:table-cell !important;}
.scroll_table thead th{
	min-width:180px;
	width:auto;
}
.scroll-hint-icon{
	top:0;
	right:0;
	bottom:0;
	left:0;
	width:130px;
	height:90px;
	margin:auto;
}

.content_area img{border-radius:5px;}
.content_area img[srcset]{width:100%;}
.alignleft{margin-right:auto;}
.aligncenter{margin:auto;}
.alignright{margin-left:auto;}

.page_link{
	display:flex;
	flex-wrap:wrap;
	gap:15px 30px;
	align-items:center;
	padding:33px 30px 35px;
	margin:75px 0;
	background:#F1F5F2;
	border-radius:5px;
}
.page_link li{
	list-style:none;
	margin:0;
	font-size:1.5rem;
	font-weight:500;
	letter-spacing:0.9px;
	line-height:2.2rem;
}
.page_link a{
	display:block;
	padding:0 0 1px 20px;
	background:url(/img/common/arrow_b.svg) no-repeat center left;
	color:#333 !important;
	text-decoration:none !important;
}
.page_link a:hover{text-decoration:underline !important;}

.column_2, .column_3, .gallery{
	display:grid;
	gap:30px 40px;
	padding:0;
	margin-bottom:30px;
}
.column_2, .gallery-columns-2{grid-template-columns:repeat(2, 1fr);}
.column_3, .gallery-columns-3{grid-template-columns:repeat(3, 1fr);}
p + .column_2, p + .column_3, p + .gallery{margin-top:30px;}
.gallery-item{
	width:auto !important;
	padding:0 !important;
}
.gallery img{margin:auto;}
.wp-caption{
	max-width:100%;
	width:auto !important;
	margin-bottom:30px;
}
.column_2 .wp-caption, .column_3 .wp-caption{margin:0;}
.wp-caption-text{
	padding:0 !important;
	margin:15px 0;
	line-height:2.4rem;
	text-align:center;
}
div.gallery > br{display:none;}

.img_txt{
	display:flex;
	gap:30px;
	margin-bottom:30px;
}
.img_txt > p{
	flex-shrink:0;
	width:340px;
	margin:0;
}
.img_txt > div{width:100%;}

.map, .movie_wrap{
	position:relative;
	width:auto;
	height:0;
	margin:30px auto;
	border-radius:5px;
	overflow:hidden;
}
.map{
	min-height:200px;
	padding-bottom:45.454%;
}
.movie_wrap{
	max-width:640px;
	padding-bottom:calc(640px * 0.5625);
}
.map iframe, .movie_wrap iframe{
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	border:none;
}

.localnav{margin-top:100px;}
.ln_top{
	margin:0 0 15px;
	font-size:2rem;
	letter-spacing:1.2px;
	line-height:2.9rem;
}
.ln_top_link{
	display:block;
	position:relative;
	padding:20px 40px 20px 30px;
	background:url(/img/common/arrow_r.svg) no-repeat center right 15px;
	border-bottom:1px solid #DFDFDF;
	color:#333 !important;
	text-decoration:none;
	transition:background 0.3s, color 0.3s;
}
.ln_top_link:hover{
	background-position-x:right 5px;
	color:#338633 !important;
}
.ln_top_link::before{
	content:'';
	position:absolute;
	top:1px;
	bottom:0;
	left:0;
	width:17px;
	height:17px;
	margin:auto;
	background:url(/img/common/icon_local.svg) no-repeat center/cover;
}
.ln_top_link::after, .ln_link::after{
	content:'';
	position:absolute;
	bottom:-1px;
	left:0;
	width:100%;
	height:1px;
	background:#338633;
	transform:scaleX(0);
	transform-origin:right;
	transition:transform 0.3s;
}
.ln_top_link:hover::after, .ln_link:hover::after{
	transform:scaleX(1);
	transform-origin:left;
}
.ln_list{
	display:grid;
	grid-template-columns:1fr 1fr 1fr;
	gap:15px 30px;
	padding:0;
	margin:0;
}
.ln_item{
	list-style:none;
	margin:0;
	font-size:1.5rem;
	font-weight:bold;
	letter-spacing:0.9px;
	line-height:2.2rem;
}
.ln_link{
	display:flex;
	align-items:center;
	position:relative;
	height:100%;
	padding:20px 40px 20px 0;
	background:url(/img/common/arrow_r.svg) no-repeat center right 15px;
	border-bottom:1px solid #DFDFDF;
	color:#333 !important;
	text-decoration:none !important;
	transition:background 0.3s, color 0.3s;
}
.ln_link:hover{
	background-position-x:right 5px;
	color:#338633 !important;
}
.on .ln_link{color:#338633 !important;}
.on .ln_link::after{
	height:2px;
	transform:scaleX(1);
}

#pankuzu{
	padding:0 70px 10px 0;
	margin-top:120px;
}
#pankuzu ol{
	display:flex;
	flex-wrap:wrap;
	padding:0;
	margin:0;
}
#pankuzu li{
	position:relative;
	list-style:none;
	padding-right:18px;
	margin:0 12px 10px 0;
	background:url(/img/common/arrow_pankuzu.svg) no-repeat center right;
	font-size:1.3rem;
	letter-spacing:0.78px;
	line-height:1.9rem;
}
#pankuzu li:last-child{
	padding:0;
	margin-right:0;
	background:none;
}
#pankuzu a{
	display:block;
	color:#333 !important;
	text-decoration:none !important;
}
#pankuzu a:hover{text-decoration:underline !important;}
#pankuzu li:last-child a{pointer-events:none;}


/* contact (product) */
.contact .bg_box{
	padding:30px 20px;
	margin:25px 0;
	background:#F1F5F2;
	border-radius:5px;
}
.contact_info{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:120px;
	position:relative;
	max-width:820px;
	margin:auto;
}
.contact_info::after{
	content:'';
	position:absolute;
	top:0;
	right:0;
	bottom:0;
	left:0;
	width:1px;
	height:40px;
	margin:auto;
	background:#ccc;
}
.contact_info p{
	display:flex;
	align-items:flex-end;
	margin:0;
	color:#338633;
	font-family:var(--font_montserrat);
	font-weight:600;
}
.contact_tel{justify-content:flex-end;}
.contact_number{
	margin-left:5px;
	color:#338633 !important;
	font-size:3rem;
	font-weight:600;
	letter-spacing:3px;
	line-height:4rem;
}
.contact_tel_in{
	position:relative;
	bottom:8px;
	margin-left:5px;
	color:#333;
	font-family:var(--font_noto);
	font-size:1.5rem;
	font-weight:bold;
	letter-spacing:0.9px;
	line-height:2.1rem;
}
.contact .bg_box + p{
	font-size:1.4rem;
	letter-spacing:1.4px;
	line-height:2.5rem;
}


/* recruit */
.recruit .column_2{margin-top:60px;}
.recruit .column_2 a{
	display:block;
	padding:0 !important;
	background:none !important;
	color:#333 !important;
	text-decoration:none !important;
}
.recruit .column_2 a div{
	position:relative;
	margin-bottom:15px;
	border-radius:5px;
	overflow:hidden;
}
.recruit .column_2 a div::after{
	content:'';
	position:absolute;
	z-index:1;
	top:0;
	left:0;
	width:100%;
	height:100%;
	border:2px solid #338633;
	border-radius:5px;
	opacity:0;
	transition:opacity 0.3s;
}
.recruit .column_2 a:hover div::after{opacity:1;}
.recruit .column_2 a img{border-radius:0;}
.recruit .column_2 a p{
	padding-left:20px;
	margin:0;
	background:url(/img/common/popup.svg) no-repeat top 9px left;
	font-size:1.8rem;
	font-weight:bold;
	letter-spacing:1.08px;
	line-height:2.6rem;
	transition:color 0.3s;
}
.recruit .column_2 a:hover p{color:#338633;}


/* privacy */
.privacy th[colspan]{min-width:420px;}
.privacy td[rowspan] + td{min-width:100px;}


/* sitemap */
.sitemap a{color:#333 !important;}


@media screen and (max-width:1024px){

.img_txt{gap:20px;}

}


@media screen and (min-width:768px) and (max-width:1024px){

.content_area{padding:65px 20px 0;}
.page_title{
	margin-bottom:60px;
	font-size:2.9rem;
	letter-spacing:1.74px;
	line-height:4.2rem;
}

.page_parent .content_area{padding-top:55px;}
.page_parent .page_title{
	font-size:1.8rem;
	letter-spacing:1.08px;
	line-height:2.6rem;
}
.page_parent .page_title[data-slug]::before{
	margin-right:50px;
	font-size:5.5rem;
	line-height:6.8rem;
}
.page_title_txt::before{
	top:3px;
	left:-25px;
	height:18px;
}

h2{
	margin-top:60px;
	font-size:2.6rem;
	letter-spacing:1.56px;
	line-height:3.8rem;
}
h3{
	margin-top:40px;
	font-size:2.2rem;
	letter-spacing:1.32px;
	line-height:3.2rem;
}
h4{
	margin-top:40px;
	font-size:1.8rem;
	letter-spacing:1.08px;
	line-height:2.6rem;
}
h5{
	margin-top:40px;
	font-size:1.5rem;
	letter-spacing:0.9px;
	line-height:2.2rem;
}
p, li{
	font-size:1.5rem;
	letter-spacing:1.5px;
	line-height:2.7rem;
}
th, td{
	padding:13px 18px 14px;
	font-size:1.5rem;
	letter-spacing:1.5px;
	line-height:2.2rem;
}
th{width:200px;}
td p, td li{line-height:2.2rem;}

.page_link{
	padding:29px 20px 31px;
	margin:65px 0;
}
.page_link li{
	font-size:1.4rem;
	letter-spacing:0.84px;
	line-height:2rem;
}

.column_2, .column_3, .gallery{
	gap:25px 30px;
	margin-bottom:25px;
}
.wp-caption, .img_txt{margin-bottom:25px;}
.wp-caption-text{
	margin:10px 0;
	font-size:1.5rem;
	letter-spacing:1.5px;
	line-height:2.2rem;
}
p + .column_2, p + .column_3, p + .gallery{margin-top:25px;}
.img_txt > p{width:300px;}
.map, .movie_wrap{margin:25px auto;}

.ln_top{margin-bottom:10px;}
.ln_list{
	grid-template-columns:1fr 1fr;
	gap:10px 30px;
}
.ln_link{
	padding-top:16px;
	padding-bottom:16px;
}

#pankuzu li{
	padding-right:14px;
	margin-right:10px;
	font-size:1.1rem;
	letter-spacing:0.66px;
	line-height:1.6rem;
}


/* contact (product) */
.contact_info{gap:50px;}
.contact_number{
	font-size:2.7rem;
	letter-spacing:2.7px;
	line-height:3.4rem;
}
.contact_tel_in{
	bottom:6px;
	font-size:1.4rem;
	letter-spacing:0.84px;
	line-height:2rem;
}


/* recruit */
.recruit .column_2{
	gap:30px;
	margin-top:50px;
}
.recruit .column_2 a p{
	font-size:1.7rem;
	letter-spacing:1.02px;
	line-height:2.5rem;
}

}


@media screen and (max-width:767px){

.content_area{padding:55px 20px 0;}
.page_title{
	margin-bottom:50px;
	font-size:2.6rem;
	letter-spacing:1.56px;
	line-height:3.7rem;
}
.page_title[data-slug]::before{margin-bottom:10px;}

.page_parent .content_area{padding-top:50px;}
.page_parent .page_title{
	font-size:1.5rem;
	letter-spacing:0.9px;
	line-height:2.1rem;
}
.page_parent .page_title[data-slug]::before{
	display:block;
	position:static;
	margin:0 0 10px;
	font-size:4.2rem;
	line-height:5.2rem;
}
.page_title_txt::before{display:none;}

h2{
	margin:50px 0 15px;
	font-size:2.4rem;
	letter-spacing:1.44px;
	line-height:3.5rem;
}
h3{
	margin:30px 0 10px;
	font-size:2rem;
	letter-spacing:1.2px;
	line-height:2.9rem;
}
h4{
	margin:30px 0 10px;
	font-size:1.7rem;
	letter-spacing:1.02px;
	line-height:2.5rem;
}
h5{
	margin-top:30px;
	font-size:1.4rem;
	letter-spacing:0.84px;
	line-height:2rem;
}
p, li{
	font-size:1.4rem;
	letter-spacing:1.4px;
	line-height:2.5rem;
}
th, td{
	display:list-item;
	list-style:none;
	padding:11px 15px;
	font-size:1.4rem;
	letter-spacing:1.4px;
	line-height:2rem;
}
th{width:100%;}
td{padding-bottom:20px;}
td p, td li{line-height:2rem;}
.scroll_table thead th{min-width:160px;}
.scroll_table td{padding-bottom:14px;}

.page_link{
	display:block;
	padding:0 20px;
	margin:55px 0;
}
.page_link li{
	border-bottom:1px solid #ccc;
	font-size:1.3rem;
	letter-spacing:0.78px;
	line-height:1.9rem;
}
.page_link li:last-child{border:none;}
.page_link a{padding:17px 0 18px 20px;}

.column_2, .column_3, .gallery{
	gap:20px;
	margin-bottom:20px;
}
.wp-caption{margin-bottom:20px;}
.wp-caption-text{
	margin:5px 0;
	font-size:1.4rem;
	letter-spacing:1.4px;
	line-height:2rem;
}
p + .column_2, p + .column_3, p + .gallery{margin-top:20px;}
.img_txt{margin-bottom:20px;}
.img_txt > p{width:250px;}
.map, .movie_wrap{margin:20px auto;}
.map{padding-bottom:56.25%;}

.ln_top{
	margin-bottom:10px;
	font-size:1.8rem;
	letter-spacing:1.08px;
	line-height:2.6rem;
}
.ln_top_link{
	padding:16px 20px 17px 25px;
	background-position:center right !important;
}
.ln_list{display:block;}
.ln_item{
	margin-bottom:10px;
	font-size:1.4rem;
	letter-spacing:0.84px;
	line-height:2rem;
}
.ln_link{
	padding:14px 20px 15px 0;
	background-position:center right !important;
}

#pankuzu{margin-top:100px;}
#pankuzu li{
	padding-right:14px;
	margin-right:10px;
	font-size:1.1rem;
	letter-spacing:0.66px;
	line-height:1.6rem;
}


/* contact (product) */
.contact .bg_box{padding:25px 20px;}
.contact_info{display:block;}
.contact_info::after{display:none;}
.contact_info p{
	font-size:1.3rem;
	letter-spacing:1.3px;
}
.contact_tel{
	justify-content:center;
	padding-bottom:15px;
	margin-bottom:15px !important;
	border-bottom:1px solid #ccc;
}
.contact_fax{justify-content:center;}
.contact_number{
	margin-left:3px;
	font-size:2.4rem;
	letter-spacing:2.4px;
	line-height:2.9rem;
}
.contact_tel_in{
	bottom:5px;
	margin:0;
	font-size:1.3rem;
	letter-spacing:0.78px;
	line-height:1.9rem;
}


/* recruit */
.recruit .column_2{
	gap:35px 20px;
	margin-top:40px;
}
.recruit .column_2 a p{
	padding-left:15px;
	background-position:top 8px left;
	font-size:1.6rem;
	letter-spacing:0.96px;
	line-height:2.4rem;
}

}


@media screen and (max-width:680px){

.movie_wrap{padding-bottom:56.25%;}

}


@media screen and (max-width:650px){

.img_txt{display:block;}
.img_txt > p{
	max-width:340px;
	width:100%;
	margin:0 auto 15px;
}

}


@media screen and (max-width:600px){

.column_3, .gallery-columns-3{grid-template-columns:repeat(1, 1fr);}

}


@media screen and (max-width:550px){

.column_2, .gallery-columns-2{grid-template-columns:repeat(1, 1fr);}

}