@charset "utf-8";
/*
max-width: 1480px
max-width: 1240px
max-width: 1160px
max-width: 960px
max-width: 840px
max-width: 700px
max-width: 500px
max-width: 480px
max-width: 430px
*/

body, dl, dt, dd, ul, ol, li, dl, dt, dd, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, blockquote {font-weight:450;}
body, dl, dt, dd, ul, ol, li, dl, dt, dd, p, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, blockquote {margin:0;padding:0;font-style:normal;text-align:left;}
* html body{font-size:small; font:x-small;}
html{scroll-behavior: smooth;}
/**:first-child+html body{font-size: small; font: x-small;}*/
img, a img{border:0; vertical-align:bottom; padding:0px; margin:0px;}
h1,h2,h3,h4,h5,h6{font-size:100%; font-weight:normal;}
ul,dl,ol{text-indent:0;}li{list-style:none;}
address,caption,cite,code,dfn,em,strong,th,var{font-style:normal; font-weight:normal;}
input,textarea,select{font-family:inherit; font-size:inherit; font-weight:inherit;}
* html input,* html textarea,* html select{font-size:100%;}
*:first-child+html+input,*:first-child html+textarea,*:first-child+html select{font-size:100%;}
table{border-collapse:collapse; border-spacing:0; font-size: inherit; width:100%;}th,td{text-align:left; vertical-align:top;}caption{text-align:left;}
pre,code,kbd,samp,tt{font-family:monospace;}
* html pre,* html code,* html kbd,* html samp,* html tt{font-size:108%; line-height:100%;}
*:first-child+html pre,*:first-child html+code,*:first-child html+kbd,*:first-child+html+samp,*:first-child+html tt{font-size:108%; line-height:100%;}
input,select,textarea{font-size:100%; font-family:Verdana, Helvetica, sans-serif;}
input, textarea{margin:0; padding:0; vertical-align:middle;}
strong, em{font-weight:bold;}

*{
	box-sizing: border-box;
	scrollbar-color: #000 rgba(0,0,0,0.2); scrollbar-width: thin;
}
html::-webkit-scrollbar {width: 8px; height: 8px;}
html::-webkit-scrollbar-thumb {background: #000;}
html::-webkit-scrollbar-track {background: rgba(0,0,0,0.2);}


/*====================
#common
--------------------*/
body,input,textarea{
	font-family:
	"Yu Gothic",
	YuGothic,
	"Hiragino Kaku Gothic Pro",
	"Helvetica Neue",
	Arial,
	Meiryo,
	"MS PGothic",
	sans-serif;
}
body{
	color:#333;
	font-size:min(4.2vw,18px);
	line-height:1.6;
	min-width:1024px;
	-webkit-text-size-adjust:100%;/*スマホ表示対応*/
	font-feature-settings: "palt";
}
@media (min-width:961px){
	a[href^="tel:"]{pointer-events: none;}
	.sponly{
		display: none !important;
	}
}
@media (max-width:960px){
	body{
		min-width:320px;
	}
	.pconly{
		display: none !important;
	}
}

.acc {
	position: absolute;
	visibility: hidden;
}


input,
textarea{
	font-size:16px;
	line-height: 1.2;
}
.disable {
	pointer-events: none;
	opacity: 0.3;
}


.sectionmargin1{
	margin-top: 6em;
}
.section_wrapper + .section_wrapper{
	margin-top: 7em;
}
.section_inner + .section_inner{
	margin-top: 4em;
}
@media (max-width: 960px) {
	.sectionmargin1{
		margin-top: 4em;
	}
	.section_wrapper + .section_wrapper{
		margin-top: 4em;
	}
	.section_inner + .section_inner{
		margin-top: 2.5em;
	}
}
.main_wrapper{
	display: block;
}
.pagebox_wrapper{
	padding-right: 20px;
	padding-left: 20px;
	width: 100%;
}
.pagebox{
	margin-right:auto;
	margin-left:auto;
	width: 100%;
	max-width:1380px;
}
.pagebox.narrow{
	max-width:1080px;
}
.pagebox.narrow2{
	max-width:920px;
}
.pagebox.narrow3{
	max-width:780px;
}

.textblockwrapper{
    border: 1px solid #ccc;
    padding: 2em;
    box-shadow: 0 4px 4px -4px rgba(0,0,0,.3);
}
@media (max-width:960px){
	.textblockwrapper{
		padding: 1em;
	}
}


.eff{transition: all 0.3s;}
img{max-width:100%;}
.rendering{image-rendering: -webkit-optimize-contrast;}

/*:::::*/
.ofimg{
	text-align: center;
	position: relative;
}
a.ofimg{
	display: block;
}
.ofimg:before{
	content: "";
	display: block;
	width: 100%;
	padding-bottom:64%;
}
.ofimg img{
	position: absolute;
	left:0;
	top:0;
	object-fit:contain;
	width: 100%;
	height: 100%;
}
.ofimg.cover img{
	object-fit:cover;
}
.object-fit-img{
	font-family: 'object-fit: contain;'
}
.cover .object-fit-img{
	font-family: 'object-fit: cover;'
}

/**/
.center{text-align:center;}
.right{text-align:right;}
@media (min-width:961px){
	.pc_center{
		text-align: center;
	}
	.pc_right{
		display: flex;
		justify-content: flex-end;
	}
}

.box_sh1{
	box-shadow: 0 5px 10px rgba(0,0,0,.4);
}


/**/
.hover{background:inherit; transition:filter 0.3s, opacity 0.3s;}
.hover:hover, .hover:active{filter:alpha(opacity=60); opacity:0.60;}
a:link, a:visited{color:#000; text-decoration:underline;}
a:hover, a:active{color:#c00; text-decoration:none;}


/*margins==========*/
.mb0{margin-bottom:0 !important;}
.mt0{margin-top:0 !important;}
.mb1{margin-bottom:1em;}
.mb2{margin-bottom:2em;}
.mb3{margin-bottom:3em;}
.mb4{margin-bottom:4em;}
.mb5{margin-bottom:5em;}
.mt1{margin-top:1em;}
.mt2{margin-top:2em;}
.mt3{margin-top:3em;}
.mt4{margin-top:4em;}
.mt5{margin-top:5em;}


/*paddings==========*/
.pb1{padding-bottom:1em;}
.pb2{padding-bottom:2em;}
.pb3{padding-bottom:3em;}
.pb4{padding-bottom:4em;}
.pb5{padding-bottom:5em;}
.pt1{padding-top:1em;}
.pt2{padding-top:2em;}
.pt3{padding-top:3em;}
.pt4{padding-top:4em;}
.pt5{padding-top:5em;}


/*grid==========*/
.flexgroup{
	display: flex;
	gap: 30px 40px;
}
@media (max-width:960px){
	.flexgroup.sp-flex-direction-column {
		flex-direction: column;
	}
}
.flexgroup.justify-content-center {
	justify-content: center;
}
.flexgroup .flex1 {
	flex: 1;
}

.flexgroup.rev{
	flex-direction: row-reverse;
}
.flexgroup .imagebox{
	max-width:500px;
	width: 100%;
	margin-right: auto;
	margin-left:auto;
}
.flexgroup .imagebox.lv1{
	max-width: 700px;
}
.flexgroup .textbox{
	flex: 1;
}
.flexgroup.child_wrapper{
	gap: 3em 1em;
	flex-wrap: wrap;
}
.flexgroup.child_wrapper.child2 .child_block{
	width: calc((100% - 1em) / 2);
}
.flexgroup.child_wrapper.child3 .child_block{
	width: calc((100% - 1em * 2) / 3);
}
.flexgroup.child_wrapper.child4 .child_block{
	width: calc((100% - 1em * 3) / 4);
}
.flexgroup.child_wrapper.child5 .child_block{
	width: calc((100% - 1em * 4) / 5);
}
@media (max-width: 1200px){
	.flexgroup .imagebox.lv1.sp-pt1-size1{
		max-width: 500px;
	}
}
@media (max-width:960px){
	.flexgroup.sp_style,
	.flexgroup.sp-pt2-type1{
		flex-direction: column;
	}
	.flexgroup.sp-pt2-type1 .imagebox.lv1.sp-pt1-size1{
		max-width: 100%;
	}

	.flexgroup.child3.sp-pt2-type1 .child_block{
		width: 100%;
	}
	.flexgroup.child4.sp-pt2-type2 .child_block{
		width: calc((100% - 1em) / 2);
	}
}
@media (max-width:840px){
	.flexgroup.child3.sp-pt3-type2 .child_block{
		width: calc((100% - 1em) / 2);
	}
}


/*txt==========*/
.must,
.any{
	background: #fff;
	display: inline-block;
	font-size: 13px;
	font-weight: bold;
	line-height: 1.5em;
	padding: 0 0.3em;
}
.must {
	border:1px solid #c00;
	color: #c00;
}
.any {
	border:1px solid #ccc;
	color: #777;
}
table.style th .must,
table.style th .any { position: absolute; right: 10px; }

.txt_lv1{
	font-size: 110%;
}

.caption{
	font-weight: bold;
}
.caption.under{
	margin-top: .6em;
	line-height: 1.2;
}

.indent{
	text-indent:-1em;
	padding-left:1em;
}


/*title==========*/
.page_title{
	margin-bottom: 3em;
}
.page_title_fv{
	position: relative;
}
.page_title .image {
	overflow: hidden;
}
.page_title .image .img{
	object-fit: cover;
	width: 100%;
	height: 320px;
	filter: brightness(61%) blur(3px);
	margin: -3px;
}
.page_title .fv_item{
	position: absolute;
	right: 70px;
	bottom: -2em;
	width: 100%;
	max-width: 300px;
}
.page_title .title{
	display: flex;
	flex-direction: column;
	align-items: center;
	font-weight: bold;

	position: absolute;
	top: 190px;
	text-align: center;
	width: 100%;
	color: #eee;

}

@media (max-width: 960px) {
.page_title .title{
	top: 13vw;
}
}
@media (max-width: 500px) {
.page_title .title{
	top: 16vw;
}
}

.page_title .title::before{
	content: "";
	display: block;
	width: 3px;
	height: 1em;
	background: #d90000;
	order: 3;
}
.page_title .title .txt1{
	order: 1;
}
.page_title .title[data-eng]::after,
.page_title .title .txt2{
	color: #d90000;
	font-size: 65%;
	order: 2;
}
.page_title .title[data-eng]::after{
	content: attr(data-eng);
}
@media (max-width: 1480px){
	.page_title .fv_item{
		right: 10px;
	}
}
@media (max-width:960px){
	.page_title .image .img{
		height: 25vw;
	}
	.page_title .fv_item{
		bottom: -1em;
		max-width: 25vw;
	}
	.page_title .title::before{
		height: .6em;
	}
}


.heading{
	margin-bottom: 1em;
}
.heading.lv1{font-size: min(5.5vw, 340%);}
.heading.lv2{font-size: 260%;}
.heading.lv3{font-size: 190%;}
.heading.lv4{font-size: 160%;}
.heading.lv5{font-size: 140%;}
.heading.lv6{font-size: 120%;}
@media (max-width:960px){
	.heading.lv1{font-size: min(8vw, 340%);}
	.heading.lv2{font-size: min(5vw, 190%);}
	.heading.lv3{font-size: min(6vw, 160%);}
	.heading.lv5{font-size: min(5vw, 140%);}
}

.heading.style1{
	font-weight: bold;
	line-height: 1.2;
	word-break: break-all;
}
.heading.style1 .txt1{
	color: #d90000;
	display: block;
}
.heading.style1 .txt1.cl1{
	color: #000;
}
.heading.style1 .cl2{
	color: #d90000;
}
.heading.style1 .cl3{
	color: #fff;
}
.heading.style1 .txt2{
	font-size: 50%;
}
.heading.style1 .flex,
.heading.style1 .txt1.flex{
	display: flex;
	flex-wrap: wrap;
}
.heading.style1 .flex.center{
	justify-content: center;
}

.heading.style2{
	font-weight: bold;
	line-height: 1.2;
	margin-bottom: .5em;
	display: flex;
	flex-direction: column;
	gap: 1em;
}
.heading.style2 .txt1{
	color: #d90000;
	display: block;
}

.heading.style3{
	display: flex;
	flex-direction: column;
	align-items: center;
	font-weight: bold;
}
.heading.style3[data-eng]::after{
	content: attr(data-eng);
}
.heading.style3[data-eng]::after,
.heading.style3 .txt2{
	font-size: 70%;
}

.heading.style4{
	font-weight: bold;
}
.heading.style4[data-eng]::before{
	content: attr(data-eng);
}
.heading.style4[data-eng]::before,
.heading.style4 .txt1{
	font-size: 70%;
	color: #000;
}
.heading.style4.cl_t1_1[data-eng]::before,
.heading.style4.cl_t1_1 .txt1{
	color: #d90000;
}
.heading.style4 .txt2{
	display: block;
}

.heading.style5{
	border-bottom: 1px solid #ccc;
	font-weight: bold;
	padding-bottom: .6em;
}
.heading.style5.rev{
	border-top: 1px solid #ccc;
	border-bottom: none;
	padding-top: .6em;
	padding-bottom: 0;
}


/*  */
.contact_block{
	display: flex;
	flex-wrap: wrap;
	position: relative;
	z-index: 5;
}
.contact_block .box{
	width: 50%;
	background: #d80100;
	color: #fff;
	padding: 3em;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.contact_block .box.center{
	align-items: center;
}
.contact_block .cl2{
	background: #c40001;
}
.contact_block .tel{
	font-size: 140%;
	font-weight: bold;
}
.contact_block .tel .number{
	font-size: 180%;
}
.contact_block .tel_text{
	font-size: 80%;
	display: flex;
	flex-wrap: wrap;
	gap: 1em;
}
@media (max-width:960px){
	.contact_block .box{
		width: 100%;
		padding-top: 1.5em;
		padding-bottom: 1.5em;
	}
	.contact_block .heading{
		text-align: center;
	}
}
@media (max-width:700px){
	.contact_block .box{
		padding: 1.5em;
	}
	.contact_block .tel{
		font-size: 4.5vw;
	}
}


.contact_blockwrapper + .link_sect1{
	margin-top: -5em;
	position: relative;
}
.link_sect1{
	display: flex;
	flex-wrap: wrap;
}
.link_sect1 .box{
	width: 50%;
	text-decoration: none;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	justify-content: space-between;
	gap: 3em;
	position: relative;
	color: #fff;
	padding: 10em 1.5em;
}
.link_sect1 .box::before{
	content: "";
	display: block;
	position: absolute;
	z-index: 3;
	background: rgba(0,0,0,.8);
	left:0;
	top:0;
	width: 100%;
	height: 100%;
	transition: background .4s cubic-bezier(.24,.61,.52,1);
}
.link_sect1 .image{
	position: absolute;
	z-index: 2;
	left:0;
	top:0;
	width: 100%;
	height: 100%;
	overflow: hidden;
}
.link_sect1 .img{
	object-fit: cover;
	width: 100%;
	height: 100%;
	transition: transform .4s cubic-bezier(.24,.61,.52,1);
}
.link_sect1 .link_inner{
	position: relative;
	z-index: 4;
}
.link_sect1 .box:hover::before{
	background: rgba(0,0,0,.6);
}
.link_sect1 .box:hover .img{
	transform: scale(1.08);
}
.link_sect1 .box:hover .button{
	background: #d90000;
}
@media (max-width: 960px) {
	.contact_blockwrapper + .link_sect1{
		margin-top: 3em;
	}
	.link_sect1 .box{
		width: 100%;
		padding: 3em 1.5em;
	}
}


.sect_type1{
	--sect_type1-boxheight: 670px;
	position: relative;
	min-height: var(--sect_type1-boxheight);
	display: flex;
	align-items: flex-end;
	position: relative;
	z-index: 2;
}
.sect_type1 .imagebox{
	width: 60%;
	height: var(--sect_type1-boxheight);
	background: #eee;
	position: absolute;
	right: 0;
	top: 0;
}
.video-introduction ,
.sect_type1 .imagebox video{
	object-fit: cover;
	width: 100%;
	height: 100%;
}
.sect_type1 .inner{
	padding-right: calc(60vw - ((100vw - 100%) / 2) - 3em);
	position: relative;
	z-index: 2;
}
.sect_type1 .textbox{
	background: #fff;
	padding: 2em 2em 2em 0;
	margin-bottom: -2em;
}
@media (max-width: 960px) {
	.sect_type1{
		flex-direction: column;
		min-height: auto;
	}
	.sect_type1 .imagebox{
		position: static;
		width: 80%;
		height: 50vw;
	}
	.sect_type1 .inner{
		padding-right: 0;
		width: 95%;
	}
	.sect_type1 .textbox{
		margin-top: -4em;
		margin-bottom: 0;
	}
}
@media (max-width: 700px) {
	.sect_type1 .imagebox{
		width: calc(100% - 20px * 2);
		margin-right: auto;
		margin-left: auto;
	}
	.sect_type1 .inner{
		width: 100%;
	}
	.sect_type1 .textbox{
		padding-right: 0;
		margin-top: 0;
	}
}


.sect_type2{
	background: url(../img/bg1.webp) #000;
	background-size: cover;
	padding: 7em 20px;
	color: #fff;
}
.sect_type2 .sect_inner{
	display: flex;
	gap: 3em 5em;
}
.sect_type2 .imagebox{
	width: 100%;
	max-width: 540px;
	display: flex;
}
.sect_type2 .imagebox .image.l{
	width: 60%;
}
.sect_type2 .imagebox .image.s{
	width: 54%;
}
.sect_type2 .imagebox .image:nth-of-type(2){
	margin-top: 8em;
	margin-left: -14%;
}
.sect_type2 .textbox{
	flex: 1;
}
@media (max-width: 1160px) and (min-width: 961px) {
	.sect_type2 .sect_inner{
		column-gap: 4em;
	}
	.sect_type2 .imagebox{
		max-width: 45%;
	}
}
@media (max-width: 960px) {
	.sect_type2{
		padding-top: 4em;
		padding-bottom: 4em;
	}
	.sect_type2 .sect_inner{
		flex-direction: column;
	}
	.sect_type2 .imagebox{
		margin-right: auto;
		margin-left: auto;
	}
}


.sect_type3{
	display: flex;
}
.sect_type3 .box1{
	width: 35%;
}
.sect_type3 .box2{
	flex: 1;
	padding-left: 1em;
}
@media (max-width: 1200px) {
	.sect_type3 .box1{
		width: 45%;
	}
}
@media (min-width: 961px) {
	.sect_type3{
		align-items: center;
	}
}
@media (max-width: 960px) {
	.sect_type3{
		flex-direction: column;
		gap: 1.5em;
	}
	.sect_type3 .box1{
		width: 100%;
	}
	.sect_type3 .box2{
		padding-left: 0;
	}
}


.sect_type4{
	--sect_type4-lrpadding: calc(50vw - ((100vw - 100%) / 2) + 3em);
	position: relative;
}
.sect_type4 .imagebox{
	position: absolute;
	left:0;
	top:0;
	width: 50%;
	height: 100%;
}
.sect_type4 .imagebox .img{
	object-fit: cover;
	width: 100%;
	height: 100%;
}
.sect_type4 .textbox{
	padding: 4em 0;
}
.sect_type4 .inner{
	padding-left: var(--sect_type4-lrpadding);
	min-height: 600px;
	display: flex;
	justify-content: center;
	align-items: center;
}
.sect_type4.rev .imagebox{
	left: auto;
	right: 0;
}
.sect_type4.rev .inner{
	padding-left: 0;
	padding-right: var(--sect_type4-lrpadding);
}
@media (max-width: 900px) {
	.sect_type4{
		--sect_type4-lrpadding: 0;
	}
	.sect_type4 .imagebox{
		position: static;
		width: 100%;
		max-width: 780px;
		height: 50vw;
		padding-right: 20px;
		padding-left: 20px;
		margin-right: auto;
		margin-left: auto;
	}
	.sect_type4 .textbox{
		padding-top: 1.5em;
		background: #fff;
	}
	.sect_type4 .inner{
		min-height: auto;
	}
}


.sect_type5{
	--sect_type5-imagebox-w: 50vw;
	--sect_type5-img-h: 360px;
	--sect_type5-img-h-margin: -100px;
	position: relative;
}
.sect_type5 .imagebox{
	position: absolute;
	left:0;
	top:0;
	width: 50vw;
}
.sect_type5 .image{
	height: var(--sect_type5-img-h);
	width: 65%;
}
.sect_type5 .image:nth-child(even){
	margin-left: auto;
}
.sect_type5 .image:nth-child(2){
	margin-top: var(--sect_type5-img-h-margin);
}
.sect_type5 .image .img{
	object-fit: cover;
	width: 100%;
	height: 100%;
}
.sect_type5 .inner{
	min-height: calc((var(--sect_type5-img-h) * 2 + var(--sect_type5-img-h-margin)));
	display: flex;
	align-items: center;
}
.sect_type5 .textbox{
	padding-left: calc(var(--sect_type5-imagebox-w) - ((100vw - 100%) / 2) + 3em);
}
@media (max-width: 1200px) {
	.sect_type5{
		--sect_type5-imagebox-w: 45%;
		--sect_type5-img-h: 24vw;
	}
	.sect_type5 .imagebox{
		width: 45%;
	}
}
@media (max-width: 960px) {
	.sect_type5{
		--sect_type5-img-h: 40vw;
	}
	.sect_type5 .imagebox{
		position: static;
		margin:0 auto 1.5em;
		width: calc(100% - 20px * 2);
	}
	.sect_type5 .inner{
		min-height: auto;
	}
	.sect_type5 .textbox{
		padding-left: 0;
	}
}


.sect_type6{
	display: flex;
	align-items: center;
	gap: 3em;
}
.sect_type6 .imagebox{
	margin-left: calc((-100vw + 100%) / 2);
}
.sect_type6 .inner{
	width: 70%;
	min-width: 550px;
}
@media (max-width: 1200px) {
	.sect_type6{
		gap: 2em;
	}
	.sect_type6 .inner{
		min-width: 570px;
	}
}
@media (max-width: 960px) {
	.sect_type6{
		flex-direction: column;
	}
	.sect_type6 .imagebox{
		margin-left: 0;
	}
	.sect_type6 .inner{
		width: 100%;
		min-width: unset;
	}
}


/*table==========*/
table.style{
	border-top:1px solid #BCBEC5;
	border-right:1px solid #BCBEC5;
}
table.style th, table.style td{
	vertical-align:middle;
	padding:15px 10px;
	border-bottom:1px solid #BCBEC5;
	border-left:1px solid #BCBEC5;
}
table.style th{
	background:#F2F3F4;
	font-weight:bold;
	background-clip: padding-box;
}
table.style.th_lv1 th{
	width: 11em;
}
table.style td input,
table.style td textarea,
table.style td select{
	border:1px solid #CCC;
	padding:3px;
	border-radius:3px;
}

table.style td label input {
	display: inline-block;
	width: auto !important;
	margin-right:10px;
}
table.style label{
	display:inline-block;
	padding:6px 13px;
	border:1px solid #ddd;
	border-radius:8px;
	font-weight: bold;
	cursor: pointer;
	background: #fafafa;
	transition: background 0.4s;
	line-height: 1em;
	margin-bottom: 5px;
}
table.style label:hover {
	box-shadow: 0px 0px 4px #013db5;
}
table.style label.checked {
	color: #1053C3;
	border-color: #75B9F0;
	background: linear-gradient(to bottom,#fff,#BFE2FF);
}

table.style.border{
	border-right: none;
}
table.style.border th,
table.style.border td{
	background: none;
	border-left: none;
	padding:20px 10px;
}
@media (max-width:960px){
	table.style.mov,
	table.style.mov :is(tbody, tr, th, td){
		display:block;
		width:100%;
	}
	table.style.mov{border:none;}
	table.style.mov tr + tr{
		margin-top:10px;
	}
	table.style.mov tr{
		border-top:1px solid #BCBEC5;
		border-right:1px solid #BCBEC5;
	}
	table.style th, table.style td{
		padding:9px 10px;
	}

	table.style.mov tr + tr{
		margin-top:0;
		border-top: none;
	}
	table.style.border.mov tr{
		border-right: none;
	}
	table.style.border.mov th{
		border-bottom: none;
		padding-bottom: 0;
	}
	table.style.border.mov td{
		padding-top: 10px;
	}
}


/*liststyle==========*/
ol li{
	list-style:decimal inside;
	text-indent:-1.3em;
	padding-left:1.3em;
}

/*  */
.ul_style{
	margin:1em 0;
}
.ul_style .box{
	list-style:none;
	line-height:1.4;
	margin-bottom:1em;
	position:relative;
	padding:0 0 0 1.5em;
}
.ul_style .box:before{
	font-family:"Font Awesome 5 Free";
	font-weight:900;
	content: "\f192";
	display:block;
	width:1em;
	height:1em;
	line-height:1em;
	font-size:1em;
	position:absolute;
	top:0.2em;
	left:0px;
	text-align:center;
	color:#00abeb;
}

/*---*/
ul.disc{ margin:1.5em 0; padding:0 0 0 1.5em;}
ul.disc li{ list-style:disc outside; line-height:1.4; margin-bottom:1em;}
ul.disc li:last-child{margin-bottom:0;}

/*  */
.gallerywarapper{
	position: relative;
	width: calc(100% - 50px * 2);
	margin-right: auto;
	margin-left: auto;
}
.gallerywarapper .box{
	padding: 0 7px;
}
.gallerywarapper .image{
	aspect-ratio: 4/3;
	overflow: hidden;
}
.gallerywarapper .img{
	object-fit: cover;
	width: 100%;
	height: 100%;
	box-shadow: 0 4px 5px -4px rgba(0,0,0,.4);
	transition: transform .4s cubic-bezier(.24,.61,.52,1);
}
.gallerywarapper .image:hover .img{
	transform: scale(1.08);
}
.gallerywarapper .text{
	display: flex;
	justify-content: center;
	margin-top: .6em;
	font-size: 80%;
}
.gallerywarapper .slick-prev,
.gallerywarapper .slick-next{
	top:0;
	transform: translate(0, 0);
	height: 100%;
	background: rgba(255,255,255,.2);
	text-align: center;
	width: 40px;
	transition: background .3s;
}
.gallerywarapper .slick-prev:hover,
.gallerywarapper .slick-next:hover{
	background: rgba(255,255,255,.4);
}
.gallerywarapper .slick-prev{
	left: -50px;
}
.gallerywarapper .slick-next{
	right: -50px;
}
.gallerywarapper .slick-prev:before,
.gallerywarapper .slick-next:before{
	font-family:"Font Awesome 5 Free";
	font-weight:900;
	font-size: 25px;
}
.gallerywarapper .slick-prev:before{
	content: "\f053";
}
.gallerywarapper .slick-next:before{
	content: "\f054";
}


/*button==========*/
.button_wrapper{
	width: 100%;
}
.button_wrapper .button{
	color:#FFF;
	text-decoration:none;
	font-weight:bold;
	display:flex;
	gap: .5em;
	justify-content: center;
	align-items: center;
	width: 100%;
	max-width: 300px;
	min-height: 3em;
	margin-right: auto;
	margin-left: auto;
	font-size:90%;
	line-height:1.1;
	cursor:pointer;
	border:none;
	outline: none; /*input click時のborderを消す*/
	background:#000;
	transition: background .3s;
}
.button_wrapper .button.bor{
	border: 1px solid #fff;
}
.button_wrapper .button.sh{
	box-shadow: 0 0 10px rgba(0,0,0,.4);
}
.button_wrapper .button.icon{
	--button-icon: calc(2em + 20px);
	position: relative;
	padding-right: var(--button-icon);
	padding-left: var(--button-icon);
}
.button_wrapper .button.icon::after{
	font-family: "Font Awesome 5 free";
	font-weight: 600;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 80%;
	line-height: 1;
	box-sizing: border-box;
	position: absolute;
	background-color: #d90000;
	border-radius: 4px;
	width: 2em;
	height: 2em;
	right: 10px;
}
.button_wrapper .button.icon.ic1::after{
	content: "\f061";
	padding-top: 2px;
}
.button_wrapper .button.icon.ic2::after{
	content: "\f060";
	padding-top: 2px;
	right: auto;
	left: 10px;
}
.button_wrapper .button:hover{
	background: #d90000;
}
.button_wrapper.button_group{
	gap: 1em;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
}
.button_wrapper.button_group .button{
	margin-right: 0;
	margin-left: 0;
}
.button_wrapper .button.color1{
	background:#2f4d85;
}
.button_wrapper .button.color1:hover{
	background:#3867be;
}
.button_wrapper .button.color2,
.button_wrapper .button.submit{
	background:#a00f16;
}
.button_wrapper .button.color2:hover,
.button_wrapper .button.submit:hover{
	background:#d3252d;
}
@media (min-width: 961px) {
	.button_wrapper.left .button{
		margin-left: 0;
	}
}

/*====================
#pageBase
----------------------*/
.header_wrapper{
	border-top:5px solid #d90000;
	background: #000;
	color: #fff;
	position: sticky;
	top: 0;
	z-index: 99;
	transition: border.3s;
}
.header_active .header_wrapper{
	border-top-width: 0;
}
.header{
	padding-left: 5px;
}
.header .link{
	color: #fff;
}
.headerblock{
	display: flex;
	gap: 1em;
}

.head_main{
	flex: 1;
}
.head_txt{
	font-size: 11px;
	padding-top: 5px;
	color: #666;
}
.head_inner{
	display: flex;
	justify-content: space-between;
	gap: 1.5em;
	padding: .8em 0;
}
.header .logo{
	position: relative;
	z-index: 9;
}
.header .logo .inner{
	display: flex;
	align-items: center;
	gap: .8em;
	text-decoration: none;
	font-size: 110%;
	font-weight: bold;
}
.header .logo .img{
	width: 100%;
	max-width: 140px;
}
.header .logo .txt{
	display: flex;
	flex-direction: column;
	line-height: 1.2;
}
.header .logo .t2{
	font-size: 150%;
}
@media (max-width: 1480px) {
	.header .logo .inner{
		font-size: 105%;
	}
	.header .logo .img{
		max-width: 110px;
	}
}
@media (max-width: 1240px) and (min-width: 961px) {
	.header .logo .inner{
		font-size: 85%;
	}
	.header .logo .img{
		max-width: 85px;
	}
}
@media (max-width: 1080px) and (min-width: 1031px) {
	.headerblock{
		gap: .5em;
	}
}
@media (max-width: 960px) {
	.head_main{
		display: flex;
		align-items: center;
	}
	.head_txt{
		display: none;
	}
	
	.head_inner{
		padding: 0;
	}
}
@media (max-width: 500px) {
	.headerblock{
		gap: 0;
	}
	.header .logo .inner{
		font-size: 85%;
	}
	.header .logo .img{
		max-width: 70px;
	}
}


.gnav .nav{
	display: flex;
}
.gnav .link{
	text-decoration: none;
	font-weight: bold;
	padding: 0 1em;
	display: flex;
	flex-direction: column;
	font-size: 90%;
	position: relative;
}
.gnav .link::before{
	content: "";
	width: 0;
	height: 1px;
	background: #d90000;
	position: absolute;
	left:0;
	bottom: -8px;
	transition: width .4s cubic-bezier(.24,.61,.52,1);
}
.gnav .link::after{
	content: attr(data-eng);
	display: block;
	font-size: 70%;
	color: #f51f1f;
}
.gnav .link.icon{
	flex-direction: row;
	align-items: center;
	gap: .8em;
}
.page_home .nav_home::before,
.page_technology .nav_technology::before,
.page_quality .nav_quality::before,
.page_equipment .nav_equipment::before,
.page_processing .nav_processing::before,
.page_product .nav_product::before,
.page_company .nav_company::before,
.page_estimate .nav_estimate::before{
	width: 100%;
}
@media (max-width: 1480px) {
	.gnav .link{
		padding: 0 .6em;
	}
	.gnav .link::after{
		font-size: 10px;
	}
}
@media (max-width: 1240px) {
	.gnav .link{
		font-size: 80%;
	}
}
@media (max-width: 1080px) and (min-width: 1031px) {
	.gnav .link{
		font-size: 74%;
	}
}
@media (min-width: 961px) {
	.gnav .sponly{display: none;}
	.gnav .link:hover::before{
		width: 100%;
	}
}
@media (max-width:960px){
	.gnav {
		position: fixed;
		left: -100vw;
		top: 0;
		width: 100%;
		height: 100%;
		background: rgba(0,0,0,.87);
		z-index: 5;
		padding: 90px 0 20px;
		filter: alpha(opacity=0);
		opacity: 0;
		transition: filter .4s, opacity .4s;
	}
	.gnav_open .gnav {
		left: 0;
		filter: alpha(opacity=100);
		opacity: 1;
	}
	.gnav .nav{
		flex-direction: column;
		overflow-y: auto;
		height: 100%;
	}
	.gnav .box:first-child{
		border-top: 1px solid rgba(255,255,255,.25);
	}
	.gnav .box{
		width: 100%;
		max-width: 500px;
		margin-right: auto;
		margin-left: auto;
		border-bottom: 1px solid rgba(255,255,255,.25);
	}
	.gnav .link{
		font-size: 105%;
		padding: 1.5em 40px 1.5em 10px;
		position: relative;
	}
	.gnav .link::before{
		bottom: 0;
	}
	.gnav .link::after{
		font-family: "Font Awesome 5 free";
    	font-weight: 600;
		content: "\f054";
		color: rgba(255,255,255,.6);
		position: absolute;
		right:10px;
		top:0;
		height: 100%;
		display: flex;
		justify-content: center;
		align-items: center;
		font-size: 110%;
	}
}


.head_menu{
	position: relative;
	z-index: 9;
	transition: padding .3s;
}
.subnav{
	display: flex;
	height: 100%;
}
.subnav .link{
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: .5em;
	height: 100%;
	border: 1px solid rgba(255,255,255,.15);
	font-size: 12px;
	text-decoration: none;
	width: 8em;
	transition: background .3s;
}
.subnav .link:hover{
	background: #d90000;
}
.subnav .link i{
	font-size: 240%;
	margin-bottom: .2em;
	margin-top: .2em;
}
@media (max-width: 1240px) {
	.subnav .link{
		font-size: 10px;
	}
}
@media (max-width: 1080px) and (min-width: 1031px) {
	.subnav .link{
		padding-right: 0;
		padding-left: 0;
		width: 7.5em;
	}
}
@media (max-width: 960px) {
	.head_menu{
		padding-bottom: 0;
	}
	.subnav .estimate{
		display: none;
	}
	.subnav .link{
		width: 6em;
		aspect-ratio: 1/1;
	}
	.subnav .link .txt{
		display: none;
	}
}


.subnav .link.drawer-button{
	display: none;
	cursor: pointer;
}
.menubar{
	display: block;
	margin-right: auto;
	margin-left:auto;
	width: 30px;
	height: 22px;
	position: relative;
}
.menubar::before,
.menubar::after,
.menubar_close::before,
.menubar_close::after{
	content: "";
	display: block;
	height: 2px;
	width: 100%;
	background-color: #fff;
	position: absolute;
}
.menubar::before,
.menubar::after{
	right:0;
	transition: width .3s;
}
.menubar::before{
	top:0;
}
.menubar::after{
	bottom:0;
	transition-delay: .1s;
}
.menubar_close::before,
.menubar_close::after{
	top: calc(50% - 1px);
	transform-origin: center;
	transform: rotate(0);
	transition: .3s;
}
.gnav_open .menubar::before,
.gnav_open .menubar::after{
	opacity: 0;
}
.gnav_open .menubar_close::before{
	transform: rotate(45deg);
}
.gnav_open .menubar_close::after{
	transform: rotate(-45deg);
}
@media (max-width: 960px) {
	.subnav .link.drawer-button{
		display: flex;
	}
}
@media (max-width: 500px) {
	.subnav .link{
		width: 50px;
	}
}




/*footer==========*/
.footer{
	color: #fff;
	background: #000;
	border-bottom: 5px solid #d90000;
	padding-top: 4em;
}
.footer_inner{
	display: flex;
	justify-content: space-between;
	gap: 3em;
	margin-bottom: 2em;
}
.footer_inner .address{
	font-size: 90%;
}
.footer_inner .address .logo{
	display: flex;
	align-items: center;
	gap: .5em;
	margin-bottom: 1.5em;
}
.footer_inner .address .logo .img{
	width: 140px;
}
.footer_inner .address .logo .txt{
	margin-top: .5em;
	font-weight: bold;
	font-size: 120%;
}
.footer_inner .address .phone{
	display: flex;
	flex-wrap: wrap;
	gap: 0 1em;
}
.footer_inner .nav_wrapper{
	flex: 1;
	display: flex;
	justify-content: flex-end;
	gap: 1em 4em;
	font-size: 90%;
}
.footer_inner .nav .box:not(:first-child){
	margin-top: 1em;
}
.footer_inner .nav .link{
	text-decoration: none;
	display: flex;
	gap: .5em;
	color: #fff;
}
.footer_inner .nav .link::before{
	font-family: "Font Awesome 5 free";
    font-weight: 600;
	content: "\f061";
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 70%;
    line-height: 1;
    box-sizing: border-box;
    background-color: #d90000;
    border-radius: 4px;
    width: 2em;
    height: 2em;
}
.footer_inner .nav .link:hover{
	color: #f51f1f;
}
.footer_inner .nav .link:hover::before{
	color: #fff;
}
@media (max-width: 960px) {
	.footer_inner{
		flex-direction: column;
	}
	.footer_inner .address .logo,
	.footer_inner .address .phone{
		justify-content: center;
	}
	.footer_inner .address .add_text{
		text-align: center;
	}
	.footer_inner .nav_wrapper{
		justify-content: center;
	}
}
@media (max-width: 700px) {
	.footer_inner .nav_wrapper{
		display: none;
	}
}


.footer .snsicon{
	display: flex;
	flex-wrap: wrap;
	gap: 1em;
	justify-content: center;
	margin-bottom: 2em;
}
.footer .snsicon .sns_box{
	aspect-ratio: 1/1;
	border-radius: 10px;
	overflow: hidden;
	display: block;
	width: 50px;
}
.footer .snsicon .img{
	object-fit: cover;
	width: 100%;
	height: 100%;
}

.foot_copy{
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: center;
	gap: .5em;
	font-size: min(4.5vw, 380%);
	line-height: 1;
	font-family: 'Anton', sans-serif;
}
.foot_copy .txt1{
	font-size: 160%;
	color: #f51f1f;
}
.foot_copy .txt2{
	font-size: 130%;
}
@media (max-width: 960px) {
}
@media (max-width: 700px) {
}

.copyright{
	display: flex;
	justify-content: center;
	font-size: 11px;
	line-height: 1;
	font-family: Verdana, “Droid Sans”;
	padding: 1em 0;
}


/*  */
.panquzu{
	padding: 1em 20px 0;
	font-size: 60%;
	margin-bottom: 2em;
	display: flex;
	gap: 0 1em;
}
.panquzu .box{
	display: flex;
	gap: 1em;
}
.panquzu .box:not(:last-child)::after{
	font-family:"Font Awesome 5 Free";
	font-weight:900;
	content: "\f054";
	font-size: 85%;
	color: #737373;
}


/*  */
.pagenav_trigger{
	cursor: pointer;
	display: flex;
	justify-content: center;
	gap: 1em;
	align-items: center;
	font-weight: bold;
	background: #d9d9d9;
	border-radius: 100vw;
	font-size: 90%;
	padding: 1em .5em;
	margin-right: auto;
	margin-left: auto;
	width: 100%;
	max-width: 440px;
}
.pagenav_trigger i{
	font-size: 120%;
}
.pagenav{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1.5em;
}
.pagenav .link{
	font-weight: bold;
	text-decoration: none;
}
@media (min-width: 961px) {
	.pagenav_trigger{
		display: none;
	}
	.pagenav{
		display: flex !important;
	}
}
@media (max-width: 960px) {
	.pagenav{
		display: none;
		gap: 0;
		margin-right: auto;
		margin-left: auto;
		width: 100%;
		max-width: 440px;
		margin-top: 1em;
	}
	.pagenav_open + .pagenav{
		display: block;
	}
	.pagenav .box:first-child{
		border-top:1px solid #ddd;
	}
	.pagenav .box{
		border-bottom: 1px solid #ddd;
	}
	.pagenav .link{
		display: block;
		padding: 1em 2em 1em 10px;
		position: relative;
	}
	.pagenav .link::after{
		font-family: "Font Awesome 5 free";
    	font-weight: 600;
		content: "\f054";
		color: rgba(0,0,0,.15);
		position: absolute;
		right:10px;
		top:0;
		height: 100%;
		display: flex;
		justify-content: center;
		align-items: center;
		font-size: 110%;
	}
}


/*  */
.mapflame{
	display: block;
	border: none;
	width: 100%;
	height: 500px;
}


/*  */
.side_common{
	position: fixed;
	background: #fff;
	width: 50px;
	height: 100%;
	right:0;
	top:0;
	z-index: 99;
}
.side_common .box{
	display: block;
	text-decoration: none;
}
.side_common .inner{
	display: block;
	-ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
}

.side_common .recruit{
	background: #d90000;
	justify-content: flex-end;
	align-items: center;
	color: #fff;
	font-size: 110%;
	line-height: 1;
	display: flex;
	gap: .5em;
	padding: 0;
	font-weight: bold;
	height: 10em;
	transition: background .3s;
}
.side_common .recruit:hover{
	background: #ff3232;
}
.side_common .recruit::after{
	content: "";
	display: block;
	height: 3px;
	width: .8em;
	background: #fff;
}

.side_common .estimate{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .5em;
	padding-top: 3px;
	color: #fff;
	background: #000;
	font-size: 110%;
}
.side_common .estimate i{
	font-size: 110%;
}
.side_common .estimate .inner{
	font-weight: bold;
	line-height: 1;
}

.side_common .snsicon{
	padding: 2em .4em;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1em;
}
.side_common .snsicon .sns_box{
	aspect-ratio: 1/1;
	border-radius: 5px;
	overflow: hidden;
	display: block;
}
.side_common .snsicon .img{
	object-fit: cover;
	width: 100%;
	height: 100%;
}
@media (max-width: 1480px) and (min-width: 1031px) {
	.sitecontent_wrapper{
		padding-right: 50px;
	}
}
@media (min-width: 1031px){
	.side_common .estimate{
		display: none;
	}
}
@media (max-width: 1030px){
	.side_common{
		top: auto;
		bottom: 0;
		height: auto;
		width: 100%;
		display: flex;
	}
	.gnav_open .side_common{
		z-index: 9;
	}
	.side_common .box{
		flex: 1;
	}
	.side_common .sns{
		display: none;
	}
	.side_common .recruit{
		flex-direction: column-reverse;
		height: auto;
	}
	.side_common .recruit::after{
		height: .8em;
		width: 3px;
	}
	.side_common .inner{
		-ms-writing-mode: unset;
    	writing-mode: unset;
	}
	
	.side_common .snsicon{
		padding: 0;
		flex-direction: row;
		justify-content: center;
		padding: 10px 1em;
		background: #eee;
	}
	.side_common .snsicon .sns_box{
		height: 35px;
	}
	
	.footer{
		padding-bottom: 55px;
	}
}
@media (max-width: 640px){
	.fb_wrapper{
		padding-right: 20px;
		padding-left: 20px;
	}
}


/*wup comment==========*/
.longComment{font-feature-settings: normal;}
.longComment p{margin:0;}
.noData{
	color:#d00;
	padding:1em;
}