
/* mv
========================================== */
.submvArea {
	background: url(../img/mv_sub.png)right bottom/cover no-repeat;
}
.submvArea .title{
	line-height: 1.2;
	max-width: 1200px;
	margin: 0 auto;
	padding: 2.3em 0;
	font-weight: 800;
	font-size:min(2.5vw,3rem);
}
.submvArea .title .en{
	display: block;
	margin-bottom: 5px;
	font-family: var(--font-english);
	font-size:min(5vw,6rem);
	color: var(--color-primary);
}
.submvArea .title .ja{
	display: block;
	color: var(--color-secondary);
}

@media screen and (max-width:1200px) {
	.submvArea .title {padding:2em clamp(20px, 5vw, 30px);}
}
@media screen and (max-width:599px) {
	.submvArea .title {font-size:1.4rem;}
	.submvArea .title .en{font-size:1.8rem;}
}

/* breadcrumb
========================================== */
.breadcrumb {
	margin: 20px auto 0;
	max-width: 1200px;
	text-align: right;
}
.breadcrumb li {
	display: inline;
	list-style-type: none;
	font-size: 1.2rem;
	color: var(--color-primary);
	font-weight: 600;
}
.breadcrumb li:before {
	content: "";
    display: inline-block;
    vertical-align: middle;
    margin: 0 1em;
    width: 10px;
    height: 1px;
    background: var(--border-color);
}
.breadcrumb li:first-child:before {content: none;}
.breadcrumb li a {
	text-decoration: none;
	font-weight: 400;
	color: #888;}
.breadcrumb li a:hover {
	text-decoration: underline;
}

@media screen and (max-width: 1200px) {
	.breadcrumb {
		margin: 15px auto;
		max-width: 100%;
		padding:0 clamp(20px, 5vw, 30px);
	}
}
@media screen and (max-width: 599px) {
	.breadcrumb li {font-size: 1.1rem;}
}

/* section
========================================== */
.sectionInner {
	width: 1200px;
	margin: 0 auto;
	padding:100px 0;
}
.cta .sectionInner {padding:60px 0;}
.sectionBody{
	background-color: #fff;
	border-radius: 10px;
	padding: 60px;
}

@media screen and (max-width: 1200px) {
	.sectionInner {
		width: 100%;
		margin: 0 auto;
		padding:60px clamp(20px, 5vw, 30px);
	}
	.cta .sectionInner {padding:40px clamp(20px, 5vw, 30px);}
	.sectionBody{
		padding:40px clamp(20px, 5vw, 30px);
	}
}
/* 背景色 シャドウ
========================================== */
.bgBlue{background-color: var(--bg-blue);}
.bgGrey{background-color: var(--bg-grey);}
.bgYellow{background:url(../img/bg_yellow.png)right bottom/cover no-repeat;}
.boxShadow{filter: drop-shadow(var(--shadow-box));}

/* menu
========================================== */
.subpageMenuWrap {
	z-index: 10;
	padding: 80px 0 60px;
}
.subpageMenu {
	position:relative;
	z-index: 10;
	max-width: 1200px;
	margin:0 auto;
	display: flex;
	flex-wrap: wrap;
	justify-content:center;
	gap: 1em;
}
.subpageMenu li a {
	position: relative;
	display: block;
	padding: 0.5em 3em 0.5em 1.5em;
	border-radius: 5px;
	color:#fff;
	font-weight: 500;
	text-align: center;
	text-decoration: none;
	box-sizing: border-box;
	background-color:var(--color-primary);
	transition: 0.3s;
}
.subpageMenu li a::after {
	content: "";
	position: absolute;
	right: 1.3em;
	top: 50%;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	width: 8px;
	height: 8px;
	transform: translateY(-50%) rotate(135deg);
	transition: 0.3s;
}
.subpageMenu li a:hover {
	background-color: var(--color-secondary);
}
.subpageMenu li a:hover::after {
	top: 55%;
}
.scrollHint{display: none;}

@media screen and (max-width:1200px) {
	.subpageMenuWrap {padding: 0 clamp(20px, 5vw, 30px);}
	.subpageMenu{gap: 10px;}
}

@media screen and (max-width:840px) {
	.subpageMenuWrap {
		position: sticky;
		z-index: 10;
		top: 50px;
		margin-top:0;
		padding:0;
		background-color: #cfd7e8;
	}
	.subpageMenu{
		padding:10px 10px;
		flex-wrap: nowrap;
		justify-content: flex-start;
		overflow-x: auto;
		gap:.5em;
		margin:0;
		-webkit-overflow-scrolling: touch;
	}
	.subpageMenu li a{
		white-space: nowrap;
		padding:0.2em 1em;
		font-size: 1.4rem;}
	.subpageMenu li a::after {display: none;}
	.subpageMenu li a:hover{
		background-color: #fff;
		color: var(--text-primary);
	}

	.subpageMenu::-webkit-scrollbar {height: 8px;}
	.subpageMenu::-webkit-scrollbar-track {background: #F1F1F1;}
	.subpageMenu::-webkit-scrollbar-thumb {background: #888;}

	.scrollHint {
		display: block;
		position: absolute;
		right: 1em;
		font-size: 0.9rem;
		color: #333;
		margin-top: 4px;
		opacity: 0.7;
	}
}


/* 導入
========================================== */
.introTitle{
	line-height: var(--line-height-heading);
	display:flex;
	flex-wrap: wrap;
	justify-content: center;
	margin:0 auto 1.5em;
	gap: 5px 0;
	padding: .3em 0;
	font-weight: 900;
	font-size:var(--font-size-heading);
	font-family: var(--font-secondary);
	color: var(--color-primary);
}
.introTitle .break{
	flex-basis: 100%;
	height: 0;
	padding:0;
}
.introText{
	line-height:1.8;
	text-align: center;
	word-break: keep-all;
	overflow-wrap: break-word;
	font-size: clamp(1.6rem, 1.5vw + 0.5rem, 1.8rem);
	font-weight: 800;
}
@media screen and (max-width:1200px){
	.introWrap{padding:40px clamp(20px, 5vw, 30px) 0;}
	.introImage{
		margin: 0 -30px 30px;
	}
}

@media screen and (max-width:599px){
	.introText{
		text-align: left;
		word-break:normal;
	}
	.introText .sp-no-br{display: none;}
}

/* 取扱商品
========================================== */
.productList{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap:30px 3%;
}
.productList .item{
	width: calc((100% - 3% * 2)/3);
	padding: 2em;
	background-color: #fff;
	border-radius: 20px;
	filter: drop-shadow(var(--shadow-box));
}
.productList .item .imageBlock{
	margin-bottom: 20px;
	text-align: center;
}
.productList .item .imageBlock img{
	max-width: 100%;
	height: auto;
}
.productList .item .productName{
	line-height: var(--line-height-heading);
	margin-bottom: 1.5em;
	font-size: var(--font-size-subheading);
	font-weight: 800;
	text-align: center;
	color: var(--color-primary);
}
.productList .item p{
	margin-bottom: 1.5em;
	font-weight: 600;
}
.productList .item .list{
	display: flex;
	flex-wrap: wrap;
	gap: .5em .5em;
	font-size: var(--font-size-caption);
	padding-top: 30px;
	border-top: 1px solid var(--border-color);
}
.productList .item .list li{
	line-height: 1;
	padding: 0.3em 1em;
	border-radius: 9999px;
	background-color: var(--color-primary);
	color: #fff;
}
.productList .item .list li.other{
	background-color: #fff;
	padding: .3em 0;
	color: var(--text-primary);
}

@media screen and (max-width:840px){
	.productList .item{
		width: calc((100% - 3%)/2);
	}
}

@media screen and (max-width:599px){
	.productList .item{
		padding: 1.5em;
		width:100%;
	}
}
.serviceMessage{
	position: relative;
	margin-bottom: 30px;
	width: 100%;
}
.serviceMessage .title{
	position: absolute;
	left: 50%;
	top:0;
	transform: translate(-50%,-50%);
	width: 100%;
	text-align: center;
}
.serviceMessage .title span{
	background: #ffe546;
	padding: 0.3em 0.5em .2em;
	font-size: var(--font-size-heading);
	font-weight: 800;
	color: var(--color-primary);
	word-wrap: nowrap;
}
.serviceMessage .title em{
	font-size: 140%;
}
.serviceMessage .box{
	padding:60px 2em 2em;
	border: 1px solid #2f4a8a;
	border-radius: 20px;
	box-sizing: border-box;
	background: #fff;
	font-weight: 800;
	font-size: var(--font-size-accent);
}
.serviceMessage .box .text{
	text-align: center;
}
.serviceMessage .box .list{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap:1em;
	margin:2em auto;
	max-width: 960px;
}
.serviceMessage .box .list li{
	padding: .3em 1em;
	border-radius: 10px;
	background-color: #cfd7e8;
}


@media screen and (max-width:840px) {
	.serviceMessage .box{
		gap: 20px 30px;
		padding:60px 1.5em 1.5em;
	}
	.serviceMessage .box .list{
		gap:.6em;
	}
}

@media screen and (max-width:599px) {
	.serviceMessage .title span{
		font-size: var(--font-size-subheading);
	}
	.serviceMessage .box .text{
		text-align: left;
	}
	.serviceMessage .box .text br{
		display: none;
	}
}
@media screen and (max-width:380px) {
	.serviceMessage .box .list{
		flex-direction: column;
	}
	.serviceMessage .box .list li
		text-align: center;
	}
}

/* 企業向け量産体制
========================================== */
.bgProduction{background:url(../img/production/bg_production.png)right bottom/cover no-repeat;}
.productionWrap{
	display: flex;
	flex-wrap: wrap;
	gap:30px 5%;
	margin-top: 60px;
	margin-bottom: 80px;
}
.productionWrap .item{
	padding-top: 100px;
	width: calc((100% - 5%)/2);
	filter: drop-shadow(var(--shadow-box));
}
.productionWrap .item .itemBody{
	position: relative;
	padding:100px 30px 30px;
	border-radius: 20px 20px 0 0;
	background-color: #fff;
}
.productionWrap .item .itemBody .icon{
	position: absolute;
	top: -95px;
	left: 50%;
	transform: translateX(-50%);
	width: 189px;
}
.productionWrap .item .itemBody .icon img{
	max-width: 100%;
	height: auto;
}
.productionWrap .item .itemBody .title{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	line-height: var(--line-height-heading);
	margin-bottom: 1em;
	color: var(--color-primary);
	font-weight: 800;
	font-size: var(--font-size-heading);
	text-align: center;
	line-break: strict;
	overflow-wrap: break-word;
}
.productionWrap .item .itemBody .text{
	font-weight: 800;
	text-align: center;
	line-break: strict;
	overflow-wrap: break-word;
}
.productionWrap .item .list{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .5em;
	padding:10px 30px;
	background-color: var(--color-primary);
	border-radius: 0 0 20px 20px;
}
.productionWrap .item .list li{
	line-height: 1.2;
	padding: 0.3em 1.5em;
	background-color: #fff;
	border-radius: 9999px;
	font-weight: 800;
	color: var(--color-primary);
}

.productionTitle{
	line-height: var(--line-height-heading);
	width: fit-content;
	margin: 0 auto 1.5em;
	padding:.1em 0.3em;
	background-color: #fff;
	font-weight: 800;
	font-size:  clamp(2.4rem, 3vw + 0.8rem, 4.2rem);
	color: var(--color-primary);
	text-align: center;
}
.productionText{
	line-height: 2;
	font-size: var(--font-size-subheading);
	font-weight: 800;
	text-align: center;
    word-break: keep-all;
    overflow-wrap: break-word;
}

@media screen and (max-width:1200px){
	.productionWrap .item .itemBody .text{
		text-align: left;
	}
}

@media screen and (max-width:599px){
	.productionWrap{
		flex-direction: column;
		margin-top: 40px;
	}
	.productionWrap .item{
		padding-top: 50px;
		width:100%;
	}
	.productionWrap .item .itemBody{
		padding:70px 30px 30px;
	}
	.productionWrap .item .itemBody .icon{
		top: -60px;
		width: 120px;
	}

}

.productionVoice{
	display: flex;
	align-items: center;
	gap: 30px 2em;
	padding: 2em;
	border-radius: 20px;
	background-color: #fff;
	filter: drop-shadow(var(--shadow-box));
}
.productionVoice .imageBlock{
	padding: 0 40px;
	text-align: center;
}
.productionVoice .imageBlock span{
	display: block;
	margin-top: 10px;
	background-color:#cfd7e8;
	border-radius: 9999px;
	color: var(--color-primary);
	font-weight: 800;
	text-align: center;
}
.productionVoice .imageBlock img{
	max-width: 100%;
	height: auto;
}
.productionVoice .textBlock{
	flex: 1;
}
.productionVoice .textBlock .head{
	line-height: var(--line-height-heading);
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items:baseline;
	margin-bottom: 2em;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--color-primary);
}
.productionVoice .textBlock .head .title{
	display: flex;
	align-items: baseline;
	gap: 1em;
}
.productionVoice .textBlock .head .en{
	color: var(--color-primary);
	font-size: min(10vw, 5rem);
	font-family: var(--font-english);
	font-weight: 900;
}
.productionVoice .textBlock .head .ja{
	color: var(--color-secondary);
	font-size: var(--font-size-subheading);
	font-family: var(--font-english);
	font-weight: 800;
}
.productionVoice .textBlock .head .meta{
	color: var(--color-secondary);
	font-size: var(--font-size-subheading);
	font-family: var(--font-english);
	font-weight: 800;
}
.productionVoice .textBlock p{
	color: var(--color-primary);
	font-weight: 600;
}
.productionVoice .textBlock ol li{
	font-weight: 600;
}

@media screen and (max-width:599px){
	.productionVoice{
		flex-direction: column;
	}
}


/* ご依頼の流れ
========================================== */
.bgFlow{
	position: relative;
	background-color: var(--bg-grey);
	margin-bottom: 200px;
}
.bgFlow::after{
	content: "";
	position: absolute;
	left: 0;
	bottom: -200px;
	width: 100%;
	height: 200px;
	background:  var(--bg-grey);
	clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.flowTitle{
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 10px;
	line-height: var(--line-height-heading);
	margin-top: 1em;
	margin-bottom:3em;
	font-weight: 600;
	color: var(--text-secondary);
}
.flowTitle .en{
	line-height: 1;
	display: block;
	color: var(--color-primary);
	font-family: var(--font-english);
	font-size:min(10vw,11rem);;
}
.flowList{
	padding:30px 60px 0;
}
.flowList .item{
	position: relative;
}
.flowList .item:not(:last-child){
	margin-bottom: 60px;
}
.flowList .item:not(:last-child)::after{
	content: "";
	position: absolute;
	bottom: -50px;
	left: 73px;
	background: url(../img/production/line.png)left top/contain no-repeat;
	width:4px;
	height:36px;
}
.flowList .stepHead,
.flowList .stepBody{
	display: flex;
	align-items: center;
	gap: 20px;
}
.flowList .stepHead{
	line-height: var(--line-height-heading);
	margin-bottom: 20px;
}

.flowList .stepHead .stepNumber,
.flowList .stepBody .icon{
	width: 150px;
	text-align: center;
}
.flowList .stepHead .stepNumber{
	color: var(--color-primary);
	font-weight: 800;
	font-size: var(--font-size-subheading);
	font-size: var(--font-size-accent);
}
.flowList .stepHead .stepNumber span{
	font-size: var(--font-size-subheading);
}
.flowList .stepHead .stepTitle{
	font-weight: 800;
	font-size: var(--font-size-subheading);
	color: var(--color-primary);
}

.flowList .stepBody .text{
	flex: 1;
	padding:1.5em;
	background-color: #fff;
	filter: drop-shadow(var(--shadow-box));
	border-radius: 20px;
	font-weight: 600;
}
@media screen and (max-width:1200px) {
	.flowList{padding:30px 0 0;}
}
@media screen and (max-width:840px) {
	.bgFlow{
		margin-bottom: 100px;
	}
	.bgFlow::after{
		bottom: -100px;
		height: 100px;
	}
}
@media screen and (max-width:599px) {
	.flowList{
		display: flex;
		flex-wrap:nowrap;
		justify-content: flex-start;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		padding: 30px calc(50% - 125px);
		gap: 20px;
	}
	.flowList .item{
		width: auto;
		flex: 0 0 250px;
		padding: 2em 1.5em;
		scroll-snap-align: center;
		background-color: #fff;
		filter: drop-shadow(var(--shadow-box));
		border-radius: 10px;
	}
	.flowList .item:not(:last-child){margin-bottom:0;}
	.flowList .item:not(:last-child)::after{display:none;}
	.flowList .stepHead,
	.flowList .stepBody{
		flex-direction: column;
		gap:10px 20px;
	}
	.flowList .stepBody .text{
		background: none;
		padding: 0;
	}
	.flowList::-webkit-scrollbar{height: 10px;}
	.flowList::-webkit-scrollbar-track{background: #fff;}
	.flowList::-webkit-scrollbar-thumb {background: var(--color-accent);}
}

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

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


/* 品質管理へのリンク
========================================== */
.qualityLink{
	position: relative;
	margin-bottom: 30px;
	width: 100%;
}
.qualityLink .title{
	position: absolute;
	left: 50%;
	top:0;
	transform: translate(-50%,-50%);
	width: 100%;
	text-align: center;
}
.qualityLink .title span{
	background: #ffe546;
	padding: 0.3em 0.5em .2em;
	font-size: var(--font-size-heading);
	font-weight: 800;
	color: var(--color-primary);
	word-wrap: nowrap;
}
.qualityLink .title em{
	font-size: 140%;
}
.qualityLink .box{
	display: flex;
	align-items: center;
	gap: 20px 30px;
	padding:60px 2em 2em;
	border: 1px solid #2f4a8a;
	border-radius: 20px;
	box-sizing: border-box;
	background: #fff;
	font-weight: 800;
	font-size: var(--font-size-accent);
	color: var(--color-primary);
}
.qualityLink .box .imageBlock{
	width: 30%;
	text-align: center;
}
.qualityLink .box .imageBlock img{
	max-width: 100%;
	height: auto;
}

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

	.qualityLink .box{
		flex-direction: column;
		gap: 20px 30px;
		padding:60px 1.5em 1.5em;
	}
}

@media screen and (max-width:599px) {
	.qualityLink .title span{
		font-size: var(--font-size-subheading);
	}
}

/* 印刷サービス
========================================== */
.printingTitle{
	line-height: var(--line-height-heading);
	margin-top: 2em;
	margin-bottom:80px;
	font-weight: 600;
	color: #fff;
	text-align: center;
}
.printingTitle .en{
	line-height: 1;
	display: block;
	font-family: var(--font-english);
	font-size:min(10vw,11rem);
}
.printingTitle .ja{
	display: block;
	margin-top: 1em;
	font-size:var(--font-size-subheading);
	color: var(--color-secondary);
}
.printingText{
	margin-bottom: 2.5em;
	text-align: center;
	color: #fff;
	font-size: var(--font-size-accent);
	font-weight: 800;
}

.serviceMenu{}
.serviceMenu .item a{
	position: relative;
	display:flex;
	justify-content: space-between;
	align-items: center;
	gap:20px 30px;
	padding: 2em 80px 2em 2em;
	background-color: #fff;
	text-decoration: none;
	border-radius: 20px;
	box-sizing: border-box;
	border: 5px solid transparent;
	font-weight: 600;
	font-size: var(--font-size-accent);
	transition: .3s;
}
.serviceMenu .item a::after{
	content: "";
	position: absolute;
	top: 50%;
	right:25px;
	transform: translateY(-50%);
	width: 28px;
	height: 28px;
	mask-image: url("../img/icon_arrow.svg");
	-webkit-mask-image: url("../img/icon_arrow.svg");
	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: contain;
	-webkit-mask-size: contain;
	background-color:var(--color-primary);
	transition: .3s;
}
.serviceMenu .item a .image{text-align: center;}
.serviceMenu .item a .text{}
.serviceMenu .item a:hover{border-color: var(--color-accent);}
.serviceMenu .item a:hover::after{right:20px}

.serviceMenu .menuRow{
	display: grid;
	grid-template-columns: repeat(2,1fr);
	gap:30px;
	margin-top: 30px;
}
.serviceMenu .item .title{
	line-height: var(--line-height-heading);
	margin-bottom: 1em;
	padding:0.1em 15px;
	border-left: 6px solid var(--color-primary);
	font-weight: 800;
	font-size: var(--font-size-subheading);
	color: var(--color-primary);
}

@media screen and (max-width:1200px) {
	.serviceMenu .item a{padding: 1.5em 1.5em 30px;}
	.serviceMenu .menuRow .item a{
		flex-direction: column;
	}
	.serviceMenu .menuRow .item a .image,
	.serviceMenu .menuRow .item a .text{width: 100%;}
	.serviceMenu .item a::after{
		top: auto;
		right:10px;
		bottom: 10px;
		transform: translateY(0);
		width: 24px;
		height: 24px;
	}
	.serviceMenu .item a:hover::after{right:5px}
}

@media screen and (max-width:840px) {
	.serviceMenu .item a{
		flex-direction: column;
		padding: 1em 1em 30px;
	}
	.serviceMenu .item a .image,
	.serviceMenu .item a .text{width: 100%;}
}
@media screen and (max-width:599px) {
	.printingText{text-align: left;}
	.serviceMenu .menuRow{grid-template-columns: repeat(1,1fr);margin-top: 20px;gap: 20px;}
	.serviceMenu .menuRow .image{display: none;}
}


.ctaBox{
	position: relative;
	padding:60px 12% 20px;
	background: url(../img/bg_print.png)right bottom/cover no-repeat;
	border-radius: 9999px;
}
.ctaBox .image01,
.ctaBox .image02{
	position: absolute;
}
.ctaBox .image01 img,
.ctaBox .image02 img{
	width: 100%;
	height: auto;
}
.ctaBox .image01{
	top: -20px;
	left: -40px;
	width: 15%;
}
.ctaBox .image02{
	bottom: 0;
	right: 0;
	width: 10%;
}


.ctaBox .features{
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	margin-bottom: 30px;
	gap: 10px;
}
.ctaBox .features .item{
	line-height: 1;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 5px 10px;
	background-color: #fff;
	font-weight: 800;
	font-size: var(--font-size-subheading);
	color: var(--color-primary);
}
.ctaBox .features .item:last-of-type{background: none;padding: 5px 0;}
.ctaBox .features .item strong{
	padding: 0 3px;
	background-color: var(--color-accent);
	color: var(--text-primary);
}

.ctaBox .lead{
	margin-bottom: 30px;
	text-align: center;
	font-weight: 800;
	font-size: var(--font-size-accent);
}

.ctaLink{
	display: grid;
	grid-template-columns: repeat(2,1fr);
	gap: 5%;
}
.ctaLink > * {
	min-width: 0;
}
.ctaLink .mailLink a,
.ctaLink .message{
	line-height: 1.5;
	padding:1.5em 1em;
	background-color: var(--color-primary);
	border-radius: 5px;
	font-weight: 600;
	text-decoration: none;
	color: #fff;
	text-align: center;
}

.ctaLink .message .title{
	margin-bottom: 1em;
	padding-bottom: 1em;
	text-align: center;
	border-bottom: 1px solid #fff;
}
.ctaLink .message .tel{
	color: #fff;
}

.ctaLink .mailLink a{
	position: relative;
	padding:0 30px;
	background-color: var(--color-primary);
	border-radius: 5px;
	text-align: center;
	text-decoration: none;
	color: #fff;
	transition: 0.3s;
}
.ctaLink .mailLink a::after{
	content:"";
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-50%);
	width: 24px;
	height: 24px;
	mask-image: url("../img/icon_arrow.svg");
	-webkit-mask-image: url("../img/icon_arrow.svg");
	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: contain;
	-webkit-mask-size: contain;
	background-color: currentColor;
	transition: 0.3s;
}
.ctaLink small{
	display: block;
	margin-bottom: 5px;
	font-weight: 600;
}
.ctaLink .mailLink a:hover{
	background-color: #fff;
	color: var(--text-primary);
}
.ctaLink .mailLink a:hover::after{right: 15px;}

.ctaBox .textBlock{
	margin: 20px auto 0;
	padding: 1em 1.5em;
	width: fit-content;
	font-weight: 800;
	background-color: #fff;
	border-radius: 5px;
}
.ctaBox .textBlock .type{
	width: fit-content;
	margin: 10px auto 0;
}

@media screen and (max-width:1200px) {
	.ctaBox{
		padding:30px;
		border-radius: 20px;
	}
}

@media screen and (max-width:840px) {
	.ctaBox{
		margin-top: 20px;
	}
	.ctaBox .image01,
	.ctaBox .image02{
		display: none;
	}
	.ctaBox .lead{
		text-align: left;
	}
	.ctaLink{
		grid-template-columns: repeat(1,1fr);
		gap: 10px;
	}
}
@media screen and (max-width:599px) {
	.ctaBox .features .item:last-of-type{
		display: block;
		width: 100%;
		text-align: center;
	}
	.ctaLink .mailLink a, .ctaLink .message{
		text-align: left;
		word-break: normal;
	}
	.ctaBox .text{
		text-align: left;
		width: 100%;
	}

}
@media screen and (max-width:320px) {
	.ctaLink .message br{display:block;}
}

/* 品質管理
========================================== */
.qualityText{
	line-height: 2;
	margin-bottom: 3em;
	font-size: var(--font-size-accent);
	font-weight: 800;
	text-align: center;
    word-break: keep-all;
    overflow-wrap: break-word;
}
.qualityWrap{
	display: flex;
	gap:20px 5%;
}
.qualityWrap .item{
	padding:30px;
    width: calc((100% - 5%) / 2);
    filter: drop-shadow(var(--shadow-box));
	border-radius: 20px;
	border: 1px solid var(--color-primary);
}
.qualityWrap .item .icon{
	margin-bottom: 10px;
	text-align: center;
}
.qualityWrap .item .icon img{
	max-width: 100%;
	height: auto;
}
.qualityWrap .item .titleWrap{
	display: table;
	width: 100%;
	height: 4em;
}
.qualityWrap .item .title{
	line-height: 1.5;
	display: table-cell;
	vertical-align: middle;
	text-align: center;
	font-weight: 800;
	font-family: var(--font-secondary);
	font-size: var(--font-size-subheading);
	color: var(--color-primary);
}
.qualityWrap .item .title span{
	display: inline-block;
}
.qualityWrap .item .text{
	margin-top: 1em;
	font-weight: 600;
}

@media screen and (max-width:599px) {
	.qualityWrap{
		flex-direction: column;
	}
	.qualityWrap .item{
		padding:1.5em;
		width: 100%;
	}
}


/* 設備
========================================== */
.facilityWrap{
	padding: 60px 5%;
	border-radius: 20px;
	background-color: #fff;
	filter: drop-shadow(var(--shadow-box));
}
.facilityWrap + .facilityWrap{margin-top: 40px;}

.facilityTitle{
	line-height: var(--line-height-heading);
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 20px;
	align-items: last baseline;
	gap:5px 15px;
	padding: 3px 10px;
	background-color: var(--color-primary);
	color: #fff;
	font-weight: 800;
}
.facilityTitle .number{
	font-size: var(--font-size-heading);
	font-style: italic;
}
.facilityTitle .text{
	font-size: var(--font-size-subheading);
}
.facilityText{
	margin-bottom: 2.5em;
}

.facilityItem + .facilityItem{margin-top: 50px;}
.facilityItem .flexInner{
	display: flex;
	gap:20px 5%;
}
.facilityItem .flexInner .text{
	flex: 1;
}
.facilityItem .flexInner .image{
	width: 40%;
	text-align: center;
}
.facilityItem .flexInner .image img{
	max-width: 100%;
	height: auto;
}
.facilityName{
	position: relative;
	line-height: var(--line-height-heading);
	margin-bottom:1.5em;
	padding: .5em .5em .7em;
	border-left: 8px solid var(--color-secondary);
	font-size: var(--font-size-accent);
	font-weight: 800;
}
.facilityName::after{
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 1px;
	background-color: var(--border-color);
}

@media screen and (max-width:599px) {
	.facilityWrap{
		padding: 30px clamp(20px, 5vw, 30px);
	}
	.facilityItem .flexInner{
		flex-direction: column;
	}
	.facilityItem .flexInner .image{
		width: 100%;
	}
}

/* よくあるご質問
========================================== */
.faqItem{
	border:1px solid var(--border-color);
	border-bottom:transparent;
	background-color: #fff;
}
.faqItem:last-child{margin-bottom: 0;border-bottom:1px solid var(--border-color);}
.faqToggle{
	position: relative;
	width: 100%;
	text-align: left;
	padding:1em 4em 1em 1.5em;
	border: none;
	cursor: pointer;
	font-weight: 600;
}
.faqToggle::after {
	position: absolute;
	top: 50%;
	right: 1em;
	transform: translateY(-50%);
	content: "＋";
	font-size: 2.5rem;
	font-weight: 600;
	color: var(--color-primary);
	transition: transform 0.3s;
}
.faqToggle.active{
	background-color: var(--bg-grey);
}
.faqToggle.active::after {content: "－";}
.faqContent {
	overflow: hidden;
	max-height: 0;
	transition: max-height 0.4s ease;
	padding: 0;
}
.faqContent .box{
	padding:1em 4em 1em 1.5em;
}
.faqContent .box .listType01{margin: 1em 0;}

.faqMessage{
	margin-bottom: 30px;
	font-weight: 600;
	font-size: var(--font-size-accent);
	color: #fff;
	text-align: center;

}

@media screen and (max-width: 599px) {
	.faqList:not(:last-of-type){margin-bottom: 50px;}
	.faqToggle{padding: 1.2em 3em 1.2em 1em;}
	.faqContent .box{padding:1.2em 1em 1.2em;}
	.faqToggle::after {
		right: .8em;
		font-size: 2rem;
	}
}


/* 事業案内問い合わせ
========================================== */
.businessContact{
	margin: 0 auto;
	max-width: 1080px;
}
.businessContact .inner{
	padding: 50px 5% 30px;
	box-sizing: border-box;
	border: 1px solid var(--color-secondary);
}
.businessContact .title{
	line-height: var(--line-height-heading);
	margin-bottom: 1.5em;
	font-size: var(--font-size-subheading);
	font-weight: 800;
	text-align: center;
}
.businessContact .text{
	margin-bottom: 2em;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}
.businessContact .text .break{
	flex-basis: 100%;
	height: 0;
}


@media screen and (max-width: 1080px) {
	.businessContact{
		padding: 0 clamp(20px, 5vw, 30px);
	}
	.businessContact .inner{
		padding: 30px clamp(20px, 5vw, 30px) 20px;
	}
}

/* 行動指針
========================================== */
.valuesWrap{
	display: flex;
	width: fit-content;
	max-width: 100%;
	margin: 30px auto;
	box-sizing: border-box;
	background-color: #fff;

}
.valuesWrap .titleBlock{
	line-height: 1.3;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	background-color: var(--bg-grey);
	padding: 2em;
}
.valuesWrap .textBlock{
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 1em;
	padding: 2em;
	background: url(../img/mv_sub.png) right bottom / cover no-repeat;
}

.valuesWrap .titleBlock .jp{
	font-size: var(--font-size-subheading);
	font-weight: 700;
}
.valuesWrap .titleBlock .en{
	font-family: var(--font-english);
	color: var(--color-primary);
}

.valuesWrap .textBlock .title{
	line-height: 1.3;
	display: flex;
	flex-wrap: wrap;
	align-items: first baseline;
	gap: 10px;
	color: var(--color-primary);
}
.valuesWrap .textBlock .title .jp{
	font-size: var(--font-size-heading);
	font-weight: 800;
}
.valuesWrap .textBlock .title .en{
	font-family: var(--font-english);
}
.valuesWrap .textBlock .text{
	line-height: 1.3;
	font-size: var(--font-size-accent);
	font-weight: 600;
}

@media screen and (max-width: 599px) {
	.valuesWrap{
		flex-direction: column;
	}
	.valuesWrap .titleBlock{
		flex-direction: row;
		flex-wrap: wrap;
		align-items: first baseline;
		padding: 1em;
		width: 100%;
	}
}


/* 沿革
========================================== */
.messageText{
	line-height: 2;
	font-size: clamp(1.6rem, 1.5vw + 0.5rem, 1.8rem);
	font-weight: 800;
}

/* 組織図
========================================== */
.orgImage{
	padding: 20px;
	background-color: #fff;
	text-align: center;
}
.orgImage img{
	max-width: 100%;
	height: auto;
}

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

/* 沿革
========================================== */
.historyScroll {
    height: 500px;
    overflow-y: scroll;
    box-shadow: inset -10px 0 0 0 var(--bg-grey);
    padding-right: 15px; 
    -webkit-overflow-scrolling: touch;
}
.historyScroll::-webkit-scrollbar {
    width: 10px;
}
.historyScroll::-webkit-scrollbar-thumb {
    background-color: var(--color-secondary);
    border-radius: 10px;
}
.historyScroll::-webkit-scrollbar-track {
    background: transparent;
}

.historyBlock{
	margin-bottom: 60px;
}
.historyBlock .title{
	line-height: var(--line-height-heading);
	margin: 0 auto 2em;
	padding:.3em .5em;
	width: fit-content;
	background-color: var(--color-accent);
	font-size: var(--font-size-subheading);
	font-weight: 800;
	color: var(--color-primary);
}

.historyList{}
.historyList .item {
	position: relative;
	display: flex;
	gap: 5%;
	padding-bottom: 20px;
}
.historyList .item:not(:last-of-type)::before {
	content: "";
	position: absolute;
	top: 25px;
	left: 6px;
	bottom: 0;
	width: 2px;
	height: 100%;
	background: #ccc;
}
.historyList .item dt {
	position: relative;
	padding:10px 10px 10px 35px;
	width: 10em;
	font-weight:800;
	font-size: var(--font-size-accent);
	color: var(--color-primary);
}
.historyList .item dt::before {
	content: "";
	position: absolute;
	top: 23px;
	left: 0;
	width: 14px;
	height: 14px;
	background: #ff9100;
	border-radius: 50%;
}

.historyList .item dd {
	width: calc(100% - 10em);
	padding:15px 10px 10px;
	font-weight: 800;
}
@media screen and (max-width: 599px) {
	.historyList .item {
		gap: 1em;
		padding-bottom: 10px;
	}
	.historyList .item dt{width: 9em;}
	.historyList .item dd {
		width: calc(100% - 9em);
		padding:10px;
	}
}
@media screen and (max-width: 380px) {
	.historyBlock .title{margin-bottom: 1em;}
	.historyList .item {flex-direction: column;gap:0;padding: 0;}
	.historyList .item dt{width: 100%;}
	.historyList .item dd {
		width:100%;
		padding:0 10px 15px 35px;
	}
	.historyList .item dt::before {top: 18px;}
}

/* アクセス
========================================== */
.accessWrap{
	margin: 60px auto 0;
	max-width: 1080px;
}

.accessWrap .address{
	font-weight: 800;
	font-size: var(--font-size-accent);
	color: var(--color-primary);
}

.gmap {
	position: relative;
	height: 0;
	overflow: hidden;
	margin: 1em 0 30px;
	padding-bottom: 65%;
}
.gmap iframe {
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
}
.accessBlock{
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding:20px 30px 20px 0;
	border-radius: 20px;
	background-color: #fff;
}
.accessBlock .accessTitle{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 0 3em;
	font-weight: 800;
	font-size: var(--font-size-accent);
	color: var(--color-primary);
}
.accessBlock .accessTitle .icon{
	width:30px;
}
.accessBlock .accessTitle .icon img{
	width: 100%;
	height: auto;
}
.accessBlock .accessList{
	flex: 1;
	padding: 1em 1em 1em 3em;
	padding-left: 3em;
	border-left: 1px solid var(--color-primary);
	font-weight: 800;
	color: var(--color-primary);
}
.accessBlock .accessList li{
	position: relative;
	padding-left: 1.5em;
}
.accessBlock .accessList li::before{
	content: "・";
	position: absolute;
	top: 0;
	left: 0;
}

@media screen and (max-width: 840px) {
	.accessBlock{
		flex-direction: column;
		padding:2em;
	}
	.accessBlock .accessTitle{
		padding:0 1em 1em;
	}
	.accessBlock .accessList{
		padding:0;
		border:none;
	}
}


/* 求める人材
========================================== */
.personWrap{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap:30px 5%;
}
.personWrap .item{
	width: calc((100% - 5% *2)/3);
	padding: 2em;
	background-color: #fff;
	filter: drop-shadow(var(--shadow-box));
	border-radius: 20px;
}
.personWrap .item .icon{
	margin-bottom: 10px;
	text-align: center;
}
.personWrap .item .icon img{
	max-width: 100%;
	height: auto;
}
.personWrap .item .titleWrap{
	display: table;
	width: 100%;
	height: 8em;
}
.personWrap .item .title{
	line-height: 1.5;
	display: table-cell;
	vertical-align: middle;
	text-align: center;
	font-weight: 800;
	font-family: var(--font-secondary);
	font-size: var(--font-size-subheading);
	color: var(--color-primary);
}
.personWrap .item .title span{
	display: inline-block;
}
.personWrap .item .text{
	margin-top: 1em;
	font-weight: 600;
}
@media screen and (max-width: 840px) {
	.personWrap .item{
		width: calc((100% - 5%)/2);
	}
}
@media screen and (max-width: 599px) {
	.personWrap .item{width:100%;padding: 1.5em;}
	.personWrap .item .titleWrap{
		display:block;
		width: 100%;
		height: auto;
	}
	.personWrap .item .title{
		display: block;
		margin: 1.5em 0;
		text-align: center;
	}
}

/* キャリア
========================================== */
.careerFlow {}

.careerFlow .item{
	position: relative;
	display: flex;
	gap:10px 30px;
	padding-bottom: 50px;
}
.careerFlow .item:not(:last-of-type)::before{
    content: "";
    position: absolute;
    top:23px;
    left: 6px;
    bottom: 0;
    width: 2px;
    height: 100%;
    background: #ccc;
}
.careerFlow dt{
	position: relative;
	width: 12em;
	padding-left: 35px;
	font-size: var(--font-size-accent);
	font-weight: 800;
	color: var(--color-primary);
}
.careerFlow dt::before {
    content: "";
    position: absolute;
    top: .6em;
    left: 0;
    width: 14px;
    height: 14px;
    background: #ff9100;
    border-radius: 50%;
}
.careerFlow dd{
	width: calc(100% - 12em - 30px);
	font-weight: 600;
}
.careerFlow dd .title{
	margin-bottom: 1em;
	font-size: var(--font-size-accent);
	font-weight: 800;
}
.careerFlow dd .salary{
	color:#ff9100;
	font-weight: 800;
}

@media screen and (max-width: 599px) {
	.careerFlow .item{
		flex-direction: column;
		padding-bottom: 40px;
	}
	.careerFlow dt,
	.careerFlow dd{
		width: 100%;
		padding-left: 35px;
	}
}

/* 数字で見る
========================================== */
.numberList{
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
}

.numberList .stat{
	width: calc((100% - 40px *2)/3);
	padding:1.5em;
	background-color: #fff;
	border-radius:10px;
	text-align: center;
	filter:drop-shadow(var(--shadow-box));
}
.numberList .stat.age{width: calc(((100% - 20px)/3)*2);}
.numberList .stat h3{
	line-height: 1.3;
	margin-bottom: 1em;
	padding: .2em 0 1em;
	border-bottom: 1px solid var(--border-color);
	color: var(--color-secondary);
	font-weight: 800;
	font-size: var(--font-size-subheading);
	text-align: center;
}
.numberList .stat p{margin-top: 1em;}
.numberList .statWrap{
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap:1em 3em;
}
.numberList .statWrap dl{}
.numberList .statWrap dl dt{line-height: 1;}
.numberList .stat.age .statWrap dl dt{margin-right: .8em;}
.counter-wrap {
	display: flex;
	align-items: baseline;
	justify-content: center;
}
.counter {
	line-height: 1.2;
	font-size: 6rem;
	font-weight: 600;
	color: var(--color-primary);
}
.unit {
	font-size: 1.6rem;
	font-weight: 600;
	margin-left: 0.2rem;
}

@media screen and (max-width:1024px) {
	.numberList{gap: 20px;}
	.numberList .stat {width: calc((100% - 20px * 2)/3);padding:1.5em;}
}

@media screen and (max-width:840px) {
	.numberList .stat {width: calc((100% - 20px)/2);}
	.numberList .stat.age{width:100%;}

}

@media screen and (max-width:599px) {
	.counter {font-size: 4rem;}
}

