﻿@charset "utf-8";

/* -----------------------------------------------------------
    reset
-------------------------------------------------------------- */
html {
	overflow-x: auto;
	overflow-y: scroll;
	font-size: 62.5%;
}

* {
	box-sizing: border-box;
}

h1, h2, h3, h4, h5, h6, p, ul, ol, li, div, dl, dt, dd, form, img, hr, table, tr, td, br, em, figure {
	margin: 0;
	padding: 0;
	border: none;
	font-style: normal;
}

h1, h2, h3, h4, h5, h6 {
	font-weight: 500;
	font-size: 1.6rem;
}

ul, ol, dl {
	list-style: none;
}

img {
	vertical-align: bottom;
}

@media screen and (max-width: 768px) {
	img {
		width: auto;
		max-width: 100%;
		height: auto;
		margin: 0 auto;
	}
}

/* -----------------------------------------------------------
    body
-------------------------------------------------------------- */
body {
	margin: 0 auto;
	padding: 0;
	line-height: 1;
	font-size: 1.6rem;
	color: var(--cmnblack);
	font-family: 'Noto Sans JP', "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "游ゴシック", YuGothic, "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	font-weight: 400;
	background: #FFF;
	-webkit-text-size-adjust: 100%;
	word-break: break-all;
	min-width: 1240px;
}

p {
	line-height: 2;
	letter-spacing: .05em;
}

#wrapper {
	width: 100%;
	height: 100%;
	margin: 0 auto;
	overflow: hidden;
	padding: 200px 0 0 0;
}

@media screen and (max-width: 768px) {
	body {
		min-width: inherit;
	}

	body.open_fix {
		position: relative;
		height: 100vh;
		width: 100%;
		overflow: hidden;
	}

	#wrapper {
		min-width: 100%;
		padding: 80px 0 0 0;
	}

	.drawer_open #main {
		overflow: hidden;
		opacity: 0 !important;
	}

	.drawer_open #wrapper {
		padding: 0;
		height: 100%;
	}
}

/* -----------------------------------------------------------
    link
-------------------------------------------------------------- */
a:link, a:visited {
	color: var(--link);
	text-decoration: none;
	-webkit-transition: 0.5s;
	transition: 0.5s;
}

a:focus {
	outline: none;
}

::-moz-selection {
	background: var(--main);
	color: #fff;
}

@media screen and (max-width: 768px) {
	a:link, a:visited {
		-webkit-transition: 0;
		transition: 0;
	}

	a[href^="tel:"] {
		color: var(--link) !important;
		text-decoration: underline !important;
	}
}

/* PCのみ */
@media(min-width: 769px) {
	a:hover {
		color: var(--link);
		text-decoration: none;
	}

	a[href^="tel:"] {
		pointer-events: none; /*電話発信を無効にする*/
	}
}

/* -----------------------------------------------------------
    clear
-------------------------------------------------------------- */
.clear {
	height: 0;
	margin: 0;
	padding: 0;
	line-height: 0;
	clear: both;
	font-size: 0;
}

.clearfix:after {
	content: ".";
	display: block;
	height: 0;
	clear: both;
	visibility: hidden;
}

.clearfix {
	display: inline-block;
}

/* Hides from IE-mac \*/
* html .clearfix {
	zoom: 1;
}

.clearfix {
	display: block;
}

/* End hide from IE-mac */
/* -----------------------------------------------------------
    Frame
-------------------------------------------------------------- */
.inner {
	width: 1200px;
	margin: 0 auto;
}

.inner0 {
	width: 1000px;
	margin: 0 auto;
}

.inner1 {
	width: 1100px;
	margin: 0 auto;
}

.inner3 {
	width: 1300px;
	margin: 0 auto;
}

@media screen and (min-width: 769px) and (max-width: 1400px) {
	.inner3 {
		width: 1200px;
		margin: 0 auto;
	}
}

@media screen and (max-width: 768px) {
	.inner, .inner0, .inner1, .inner3 {
		width: 100%;
		margin: 0 auto;
	}

	.wrap10 {
		padding: 0 10px;
	}

	.wrap15 {
		padding: 0 15px;
	}

	.wrap20 {
		padding: 0 20px;
	}

	.wrap30 {
		padding: 0 30px;
	}
}

/* -----------------------------------------------------------
    cmn-ratio
-------------------------------------------------------------- */
.cmn-ratio-logo {
	aspect-ratio: 300/33;
}

/* -------------------------------------------------------------
    cmn-btn
-------------------------------------------------------------- */
.cmn-btn a {
	align-items: center;
	background: linear-gradient(90deg, var(--main), #1387d6);
	display: flex;
	min-width: 280px;
	padding: 20px 45px;
	position: relative;
	transition: .3s;
	overflow: hidden;
	height: 70px;
	justify-content: center;
}

@media screen and (min-width: 769px) {
	.cmn-btn a::before {
		content: "";
		width: 0;
		height: 100%;
		position: absolute;
		right: 0;
		top: 0;
		background: linear-gradient(90deg, #26a6fe, #1387d6);
		transition: width cubic-bezier(0.23, 1, 0.32, 1) .7s;
		z-index: 1;
	}
}

.cmn-btn a::after {
	content: "\f105";
	color: #fff;
	font: 900 1.1rem/1 var(--webicon);
	position: absolute;
	top: 50%;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	right: 14px;
	z-index: 2;
}

.cmn-btn span {
	color: #fff;
	font-size: 1.7rem;
	font-weight: 600;
	position: relative;
	transition: .3s;
	letter-spacing: .05em;
	line-height: 1.4;
	z-index: 2;
}

@media screen and (min-width: 769px) {
	.cmn-btn a:hover:before {
		background: linear-gradient(90deg, #1387d6, #299be9);
		left: 0;
		width: 100%;
	}
}

@media screen and (max-width: 768px) {
	.cmn-btn a {
		padding: 20px 15px;
		min-width: unset;
		height: 60px;
	}

	.cmn-btn span {
		font-size: 1.6rem;
		font-weight: .03em;
	}
}

/* -----------------------------------------------------------
    header
-------------------------------------------------------------- */
.header {
	top: 0;
	left: 0;
	position: absolute;
	width: 100%;
	z-index: 9999;
	min-width: 1240px;
	background: #fff;
	height: 110px;
}

header.header_active {
	top: -100px;
	transition: all .5s;
}

header.header_active2 {
	position: fixed;
	top: 0 !important;
	height: auto;
	padding: 0 0 10px;
	background: rgba(255, 255, 255, 0.98);
	backdrop-filter: blur(10px);
	box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
}

#pc_head {
	min-width: 100%;
	height: 100%;
}

#sp_head {
	display: none;
}

#pc_head .header_wrap {
	align-items: center;
	display: flex;
	justify-content: space-between;
	position: relative;
	height: 100%;
}

.header_logo {
	display: block;
	position: absolute;
	top: 50%;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	left: 30px;
}

@media screen and (min-width: 769px) and (max-width: 1500px) {
	.header_logo {
		width: 26%;
	}
}

.header_logo img {
	display: block;
	width: 400px;
	transition: .1s all;
}

@media screen and (min-width: 769px) and (max-width: 1500px) {
	.header_logo img {
		width: 100%;
	}
}

header.header_active2 .header_logo {
	top: 30px;
	left: 20px;
}

header.header_active2 .header_logo img {
	width: 280px;
}

.h_logo_top {
	display: none !important;
}

/*----------------------------header_nav_top*/
.header_nav_wrap {
	display: flex;
	margin: 0 0 0 auto;
	height: 100%;
	padding: 20px 30px 0 0;
	transition: .4s all;
}

header.header_active2 .header_nav_wrap {
	padding: 0 30px 0 0;
}

.header_nav_wrap .header_nav {
	display: flex;
	flex-direction: column;
	gap: 22px;
	transition: .4s all;
	justify-content: space-between;
}

.header_nav_top {
	align-items: center;
	display: flex;
	gap: 15px;
	justify-content: flex-end;
}

.header_nav_sub {
	align-items: center;
	display: flex;
	flex-shrink: 0;
}

@media screen and (min-width: 769px) and (max-width: 1500px) {
	.header_nav_sub {
		flex-wrap: wrap;
		width: 300px;
		gap: 8px 0;
		justify-content: flex-end;
		padding: 3px 0 0;
	}
}

.header_nav_sub a {
	display: block;
	padding: 0 14px;
	position: relative;
}

header.header_active2 .header_nav_sub a {
	font-size: 1.4rem;
}

.header_nav_sub li:last-child a::before {
	display: none;
}

.header_nav_sub span {
	color: var(--cmnblack);
	font-size: 1.4rem;
	letter-spacing: .05em;
}

.header_nav_cv {
	align-items: center;
	display: flex;
}

.header_nav_tel {
	align-items: center;
	color: var(--cmnblack);
	display: flex;
	flex-direction: column;
	gap: 5px;
	margin: 0 20px 0 0;
}

.header_nav_tel p {
	line-height: 1 !important;
}

.header_nav_tel .num {
	align-items: center;
	font: 700 2.5rem /1 var(--en);
	display: flex;
	letter-spacing: .05em;
	position: relative;
	justify-content: center;
	gap: 3px;
}

.header_nav_tel .num::before {
	content: "\f879";
	font: 900 1.8rem/1 var(--webicon);
}

.header_nav_tel .timewrap {
	font-size: 1.4rem;
	letter-spacing: .02em;
}

header.header_active2 .header_nav_tel .num {
	font-size: 2.2rem;
}

header.header_active2 .header_nav_tel .num::before {
	font-size: 1.6rem;
}

header.header_active2 .header_nav_tel .timewrap {
	letter-spacing: 0;
}

.header_nav_tel .time {
	font-size: 1.3rem;
	padding: 0 7px;
}

.header_nav_solution {
	width: 200px;
	margin: 0 5px 0 0;
}

.header_nav_solution a, .header_nav_form a {
	align-items: center;
	display: flex;
	justify-content: center;
	height: 64px;
	position: relative;
	overflow: hidden;
}

.header_nav_solution a {
	background: var(--worry);
	display: flex;
	flex-direction: column;
	gap: 5px;
	padding: 0 0 1px;
	width: 100%;
	justify-content: center;
	align-items: center;
}

.header_nav_solution .box {
	display: flex;
	margin: 0 auto;
	text-align: center;
	line-height: 1;
	align-items: center;
}

.header_nav_solution .ttl {
	font-size: 1.5rem;
	font-weight: bold;
	line-height: 1;
}

.header_nav_solution .box span {
	border: solid 1px #fff;
	display: block;
	font-size: 1.3rem;
	margin: 0 3px 0 0;
	padding: 3px 5px 3.5px;
	font-weight: 600;
}

.header_nav_solution .box span:last-of-type {
	margin: 0;
}

.header_nav_form a {
	background-image: var(--cv);
	padding: 0 19px 3px;
	width: 170px;
}

header.header_active2 .header_nav_solution a, header.header_active2 .header_nav_form a {
	height: 56px;
}

.header_nav_solution a::before, .header_nav_form a::before {
	content: "";
	width: 0;
	height: 100%;
	position: absolute;
	right: 0;
	top: 0;
	transition: width cubic-bezier(0.23, 1, 0.32, 1) .5s;
	z-index: 1;
}

.header_nav_solution a::before {
	background: var(--worry2);
}

.header_nav_form a::before {
	background: var(--cv2);
}

.header_nav_solution a:hover::before, .header_nav_form a:hover::before {
	left: 0;
	width: 100%;
}

.header_nav_solution span, .header_nav_form span {
	position: relative;
	z-index: 3;
	transition: .5s;
}

.header_nav_solution span {
	color: #fff;
}

.header_nav_form span {
	color: #fff;
	font-weight: bold;
	padding: 0 0 0 25px;
}

.header_nav_form span::before {
	transition: .5s;
	position: absolute;
	left: 0;
}

.header_nav_form span::before {
	background: url("../img/cmn_icon_mail.svg")center/contain no-repeat;
	content: "";
	transition: .5s;
	position: absolute;
	top: 50%;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	left: -3px;
	width: 22px;
	height: 16px;
}

/*----------------------------header_nav_list*/
.header_nav_list {
	display: flex;
	color: var(--cmnblack);
	font-size: 1.8rem;
	justify-content: flex-end;
	gap: 39px;
	margin: 0;
	align-items: flex-start;
}

@media screen and (min-width: 769px) and (max-width: 1500px) {
	.header_nav_list {
		gap: 35px;
		font-size: 1.7rem;
	}
}

header.header_active .header_nav_list {
	font-size: 1.7rem;
}

.header_nav_item {
	font-weight: bold;
	transition: .4s all;
}

.header_nav_item:hover .link_line {
	color: var(--link) !important;
}

.header_nav_link {
	display: block;
	padding: 0;
	position: relative;
	z-index: 6;
	line-height: 1;
}

.header_nav_list .link_line {
	color: #222;
}

.header_nav_wrap a:hover .link_line {
	color: var(--link);
}

@keyframes btngrad {
	0% {
		background-position: 0% 50%
	}

	50% {
		background-position: 100% 50%
	}

	100% {
		background-position: 0% 50%
	}
}

.header_nav_list .link_line .s {
	display: block;
	font-size: 1.4rem;
	line-height: 2;
	margin: 0 auto;
	text-align: center;
}

header.header_active .header_nav_list .link_line .s {
	font-size: 1.3rem;
	line-height: 1.4;
}

.header_has_mega {
	position: relative;
	padding: 0 14px;
}

@media screen and (min-width: 769px) and (max-width: 1500px) {
	.header_has_mega {
		padding: 0;
	}
}

.header_has_mega:hover .header_has_mega_body {
	opacity: 1;
	visibility: visible;
	box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
}

.header_has_mega_body {
	position: absolute;
	left: 0;
	top: 100%;
	opacity: 0;
	visibility: hidden;
	transition: 0.3s;
	z-index: 7;
}

.header_has_mega_list {
	padding: 15px 20px;
	background: #fff;
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.header_has_mega_item a {
	align-items: center;
	border: 1px solid var(--gray);
	display: flex;
	gap: 10px;
	padding: 15px;
	height: 45px;
	width: 100%;
	justify-content: center;
}

.header_has_mega_item span {
	color: var(--sub);
	font: italic 600 1.8rem /1 var(--en);
	position: relative;
	padding: 0 0 0 32px;
	transition: .5s;
	white-space: nowrap;
}

.header_has_mega_item span::before {
	aspect-ratio: 117/150;
	background: url("../img/icon-pdf-gray.svg")center/contain no-repeat;
	content: "";
	width: 28px;
	position: absolute;
	top: 50%;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	left: 0;
}

@media screen and (max-width: 768px) {
	#pc_head {
		display: none;
	}

	#sp_head {
		display: block;
	}

	#sp_head .sp_head_bg {
		background: transparent;
		backdrop-filter: none;
		display: flex;
		height: 70px;
		position: relative;
		width: 100%;
		transition: all .2s;
		z-index: 300;
		justify-content: space-between;
		padding: 8px 0 0 10px;
	}

	header.header_active2, header.header_active2 #sp_head .sp_head_bg {
		background: none;
	}

	header.header_active2 #sp_head .logo_area, header.header_active2 #sp_head .sp_head_cv {
		display: none;
	}

	.drawer_open header.header_active2 #sp_head .sp_head_bg {
		background: #fff;
	}

	.drawer_open header.header_active2 #sp_head .sp_head_cv {
		display: flex;
	}

	.drawer_open #sp_head .sp_head_bg {
		position: fixed;
		background: #fff;
		height: 80px;
	}

	.header {
		height: 63px;
		min-width: 100%;
		top: 0;
		background: none;
	}

	.drawer_open .header {
		top: 0;
		position: fixed;
	}

	header.header_active2 {
		backdrop-filter: none;
		height: auto;
		box-shadow: none;
	}

	#sp_head .logo_area {
		position: relative;
		z-index: 300;
		height: 55px;
		align-items: center;
		display: flex;
		width: 44%;
	}

	.drawer_open header.header_active2 #sp_head .logo_area {
		margin: 0;
		display: flex;
	}

	#sp_head .logo_area a {
		width: 100%;
		align-items: center;
		display: flex;
		height: 100%;
	}

	#sp_head .logo_area img {
		width: 100%;
	}

	#sp_head .sp_head_cv {
		align-items: center;
		background: var(--worry);
		cursor: pointer;
		display: flex;
		justify-content: center;
		z-index: 2;
		width: 130px;
		height: 54px;
		position: absolute;
		right: 63px;
	}

	#sp_head .sp_head_cv a {
		display: flex;
		flex-direction: column;
		gap: 5px;
		padding: 0 0 1px;
	}

	#sp_head .sp_head_cv .box {
		display: flex;
		margin: 0 auto;
		text-align: center;
		line-height: 1;
		align-items: center;
	}

	#sp_head .sp_head_cv .box span {
		border: solid 1px #fff;
		color: #fff;
		display: block;
		font-size: 1.1rem;
		margin: 0 3px 0 0;
		padding: 3px 5px 3.5px;
		font-weight: 600;
	}

	#sp_head .sp_head_cv .ttl {
		color: #fff;
		font-size: 1.15rem;
		font-weight: bold;
		line-height: 1;
		letter-spacing: 0;
	}

	/*----------------------------sp_s_nav*/
	.sp_s_nav {
		display: flex;
		background: #96876d;
		width: 100%;
		margin: 54px 0 0;
	}

	.form_page .sp_s_nav {
		margin: 0;
	}

	.sp_s_nav li {
		width: 50%;
	}

	.sp_s_nav li:first-of-type {
		border-right: 1px solid #544c3e;
	}

	.sp_s_nav li:last-of-type {
		border-left: 1px solid #c0ae8e;
	}

	.sp_s_nav a {
		color: #fff;
		display: block;
		font-size: 1.6rem;
		text-align: center;
		height: 42px;
		line-height: 42px;
	}
}

@media screen and (max-width: 360px) {
	#sp_head .logo_area {
		width: 42% !important;
	}
}

/* -----------------------------------------------------------
    メガメニュー
-------------------------------------------------------------- */
.header_megamenu {
	align-items: center;
	box-shadow: 0 15px 15px 0px rgba(0, 0, 0, .025);
	background: #fff;
	display: flex;
	position: absolute;
	pointer-events: auto;
	justify-content: center;
	min-width: 1240px;
	width: 100%;
	top: 100%;
	transform: translateY(-10px);
	transition-duration: .5s;
	transition-timing-function: cubic-bezier(.215, .61, .355, 1);
	visibility: hidden;
	left: 0;
	right: 0;
	opacity: 0;
	overflow: hidden;
	z-index: -1;
}

header.header_active2 .header_megamenu {
	background: rgba(255, 255, 255, 0.98);
	backdrop-filter: blur(10px);
}

#header_mega_1:hover .header_megamenu, #header_mega_2:hover .header_megamenu {
	opacity: 1;
	pointer-events: all;
	transform: translateY(0);
	visibility: visible;
	z-index: 2;
}

.header_mega_inner {
	display: flex;
	min-width: 1200px;
	max-width: 1200px;
	padding: 60px 0 50px;
	width: 100%;
	gap: 15px;
	align-items: flex-start;
}

header.header_active2 .header_mega_inner {
	padding: 30px 0 50px;
}

#header_mega_1 .header_mega_inner {
	display: block;
}

/* header_solution */
.header_solution {
	margin: 0 0 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.header_solution_box {
	width: 135px;
	flex-shrink: 0;
}

.header_solution_logo {
	width: 94px;
	margin: 0 auto 10px;
	display: block;
}

.header_solution_ttl {
	font-size: 3.2rem;
	color: var(--main);
	line-height: 1.15;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin: 15px 0 0;
}

.header_solution_name {
	aspect-ratio:300/99;
	width: 91px;
	margin: 0 5px 0 0;
}

.header_solution_name .s {
	font-size: 2.5rem;
}

.header_solution_name .m {
	font-size: 3.2rem;
}

.header_solution_cross {
	aspect-ratio: 52/53;
	width: 52px;
	margin: 0;
	display: block;
}

.header_solution_list {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 20px;
	width: 960px;
	flex-shrink: 0;
}

.header_solution_list li {
	position: relative;
	overflow: hidden;
}

.header_solution_list a {
	display: block;
	width: 100%;
	height: 100%;
}

.header_solution_list img {
	transition: .5s all;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.header_solution_list li:hover img {
	transform: scale(1.07);
}

.header_solution_list .top {
	grid-column: span 2;
	height: 180px;
}

.header_solution_list .bottom {
	grid-column: span 3;
	height: 180px;
}

.header_solution_subttl {
	position: absolute;
	bottom: 0;
	right: 0;
	background-color: #1e73be;
	color: #fff;
	padding: 0 40px 0 30px;
	clip-path: polygon(20px 0, 100% 0, 100% 100%, 0% 100%);
	font-size: 1.8rem;
	height: 51px;
	display: flex;
	align-items: center;
	gap: 10px;
	line-height: 1;
	font-weight: bold;
}

.header_solution_subttl::after {
	content: '';
	position: absolute;
	width: 18px;
	height: 8px;
	right: 13px;
	background: url("../img/white-arrow.png") no-repeat top center / contain;
	line-height: 51px;
}

.header_solution_subttl span {
	font-size: 1.4rem;
	line-height: 1.3;
	display: inline-block;
}

/* -----------------------------------------------------------
    Responsive
-------------------------------------------------------------- */
.pc-display {}

.pc-display-b {}

.sp-display {
	display: none;
}

.sp-display-b {
	display: none;
}

br.pc-br {
	display: inline;
}

br.sp-br {
	display: none;
}

br.note-br {
	display: none;
}

@media screen and (min-width: 769px) and (max-width: 1400px) {
	br.note-br {
		display: inline;
	}
}

@media screen and (max-width: 768px) {
	.pc-display {
		display: none;
	}

	.pc-display-b {
		display: none;
	}

	.sp-display {
		display: inline;
	}

	.sp-display-b {
		display: block;
	}

	br.pc-br {
		display: none;
	}

	br.sp-br {
		display: inline;
	}

	br.note-br {
		display: none;
	}
}

/* -----------------------------------------------------------
    main
-------------------------------------------------------------- */
.contents {
	position: relative;
}

@media screen and (max-width: 768px) {
	#main {
		position: relative;
	}
}

/* -----------------------------------------------------------
    #page_top
-------------------------------------------------------------- */
#page_top {
	position: fixed;
	bottom: 30px;
	right: 20px;
	z-index: 500;
	line-height: 1.0;
}

#page_top a {
	align-items: center;
	background: rgba(255, 255, 255, 0.9);
	backdrop-filter: blur(10px);
	border: 1px solid var(--sub);
	display: flex;
	width: 56px;
	height: 56px;
	justify-content: center;
}

#page_top span {
	width: 26px;
	height: 26px;
	display: flex;
	align-items: center;
	justify-content: center;
}

#page_top span img {
	width: 100%;
}

#page_top i {
	font-size: 2.2rem;
	color: var(--sub) !important;
}

@media screen and (max-width: 768px) {
	#page_top {
		bottom: 70px;
		right: 10px;
		z-index: 5;
	}

	#page_top a {
		width: 50px;
		height: 50px;
	}

	#page_top span {
		width: 20px;
		height: 20px;
	}
}

/* -----------------------------------------------------------
    アンカーリンクのずれ調整
-------------------------------------------------------------- */
.anchor {
	display: block;
	padding-top: 110px;
	margin-top: -110px;
}

@media screen and (max-width: 768px) {
	.anchor {
		padding-top: 60px;
		margin-top: -60px;
	}
}

/* -----------------------------------------------------------
    jsもっと見るボタン
-------------------------------------------------------------- */
[class^="js-moreview-btn"] {
	align-items: center;
	background: #fff;
	border: #858585 1px solid;
	cursor: pointer;
	font-size: 1.7rem;
	font-weight: bold;
	display: flex;
	width: 300px;
	height: 70px;
	justify-content: center;
	position: relative;
	overflow: hidden;
	transition: .5s;
}

[class^="js-moreview-btn"]:hover {
	background: var(--link);
	border-color: var(--link);
	color: #fff;
}

[class^="js-moreview-btn"]::before, [class^="js-moreview-btn"]::after {
	position: absolute;
	content: '';
	background-color: var(--link);
}

[class^="js-moreview-btn"]:hover::before, [class^="js-moreview-btn"]:hover::after {
	background: #fff !important;
}

[class^="js-moreview-btn"]::before {
	width: 22px;
	height: 1px;
	right: 12px;
	bottom: 34px;
}

[class^="js-moreview-btn"]::after {
	width: 1px;
	height: 22px;
	right: 22px;
	bottom: 23px;
}

@media screen and (min-width: 769px) {
	.js-moreview-hidden {
		opacity: 0;
		height: 0;
		margin: 0 10px;
		padding: 0;
		display: none;
	}
}

/* -----------------------------------------------------------
    テキスト強調箇所
-------------------------------------------------------------- */
.important {
	background: linear-gradient(transparent 70%, #e9f0b9 30%);
	font-weight: bold;
}

.important2 {
	color: var(--main);
}

/* -----------------------------
    テキストラインアニメーション
-------------------------------- */
.ani-line {
	background-image: linear-gradient(to right, #dbedfa 0%, #dbedfa 50%, transparent 50%);
	background-repeat: no-repeat;
	background-position: 100% 100%;
	background-size: 200% 7px;
	transition: background-position 1s;
	font-weight: bold;
	mix-blend-mode: multiply;
}

.ani-line.is-aniline {
	background-position: 0% 100%;
}

/* -----------------------------------------------------------
   ani-ttl
-------------------------------------------------------------- */
.ani-ttl span {
	display: inline-block;
	opacity: 0;
	transition: 1s;
}

.anittl-active.ani-ttl span {
	opacity: 1;
	transition: 1s;
}

.anittl-active.ani-ttl span:nth-child(1), .typeEn-active span:nth-child(1) {
	transition-delay: 0s;
}

.anittl-active.ani-ttl span:nth-child(2), .typeEn-active span:nth-child(2) {
	transition-delay: 0.06s;
}

.anittl-active.ani-ttl span:nth-child(3), .typeEn-active span:nth-child(3) {
	transition-delay: 0.12s;
}

.anittl-active.ani-ttl span:nth-child(4), .typeEn-active span:nth-child(4) {
	transition-delay: 0.18s;
}

.anittl-active.ani-ttl span:nth-child(5), .typeEn-active span:nth-child(5) {
	transition-delay: 0.24s;
}

.anittl-active.ani-ttl span:nth-child(6), .typeEn-active span:nth-child(6) {
	transition-delay: 0.3s;
}

.anittl-active.ani-ttl span:nth-child(7), .typeEn-active span:nth-child(7) {
	transition-delay: 0.36s;
}

.anittl-active.ani-ttl span:nth-child(8), .typeEn-active span:nth-child(8) {
	transition-delay: 0.42s;
}

.anittl-active.ani-ttl span:nth-child(9), .typeEn-active span:nth-child(9) {
	transition-delay: 0.48s;
}

.anittl-active.ani-ttl span:nth-child(10), .typeEn-active span:nth-child(10) {
	transition-delay: 0.54s;
}

.anittl-active.ani-ttl span:nth-child(11), .typeEn-active span:nth-child(11) {
	transition-delay: 0.6s;
}

.anittl-active.ani-ttl span:nth-child(12), .typeEn-active span:nth-child(12) {
	transition-delay: 0.66s;
}

.anittl-active.ani-ttl span:nth-child(13), .typeEn-active span:nth-child(13) {
	transition-delay: 0.72s;
}

.anittl-active.ani-ttl span:nth-child(14), .typeEn-active span:nth-child(14) {
	transition-delay: 0.78s;
}

.anittl-active.ani-ttl span:nth-child(15), .typeEn-active span:nth-child(15) {
	transition-delay: 0.84s;
}

.anittl-active.ani-ttl span:nth-child(16), .typeEn-active span:nth-child(16) {
	transition-delay: 0.9s;
}

.anittl-active.ani-ttl span:nth-child(17), .typeEn-active span:nth-child(17) {
	transition-delay: 0.96s;
}

.anittl-active.ani-ttl span:nth-child(18), .typeEn-active span:nth-child(18) {
	transition-delay: 1.02s;
}

.anittl-active.ani-ttl span:nth-child(19), .typeEn-active span:nth-child(19) {
	transition-delay: 1.08s;
}

.anittl-active.ani-ttl span:nth-child(20), .typeEn-active span:nth-child(20) {
	transition-delay: 1.14s;
}

.anittl-active.ani-ttl span:nth-child(21), .typeEn-active span:nth-child(21) {
	transition-delay: 1.2s;
}

.anittl-active.ani-ttl span:nth-child(22), .typeEn-active span:nth-child(22) {
	transition-delay: 1.26s;
}

.anittl-active.ani-ttl span:nth-child(23), .typeEn-active span:nth-child(23) {
	transition-delay: 1.32s;
}

.anittl-active.ani-ttl span:nth-child(24), .typeEn-active span:nth-child(24) {
	transition-delay: 1.38s;
}

.anittl-active.ani-ttl span:nth-child(25), .typeEn-active span:nth-child(25) {
	transition-delay: 1.44s;
}

.anittl-active.ani-ttl span:nth-child(26), .typeEn-active span:nth-child(26) {
	transition-delay: 1.50s;
}

.anittl-active.ani-ttl span:nth-child(27), .typeEn-active span:nth-child(27) {
	transition-delay: 1.56s;
}

.anittl-active.ani-ttl span:nth-child(28), .typeEn-active span:nth-child(28) {
	transition-delay: 1.62s;
}

.anittl-active.ani-ttl span:nth-child(29), .typeEn-active span:nth-child(29) {
	transition-delay: 1.68s;
}

.anittl-active.ani-ttl span:nth-child(30), .typeEn-active span:nth-child(30) {
	transition-delay: 1.74s;
}

.anittl-active.ani-ttl span:nth-child(31), .typeEn-active span:nth-child(31) {
	transition-delay: 1.80s;
}

.anittl-active.ani-ttl span:nth-child(32), .typeEn-active span:nth-child(32) {
	transition-delay: 1.86s;
}

.anittl-active.ani-ttl span:nth-child(33), .typeEn-active span:nth-child(33) {
	transition-delay: 1.82s;
}

.anittl-active.ani-ttl span:nth-child(34), .typeEn-active span:nth-child(34) {
	transition-delay: 1.88s;
}

.anittl-active.ani-ttl span:nth-child(35), .typeEn-active span:nth-child(35) {
	transition-delay: 1.94s;
}

.anittl-active.ani-ttl span:nth-child(36), .typeEn-active span:nth-child(36) {
	transition-delay: 2s;
}

.anittl-active.ani-ttl span:nth-child(37), .typeEn-active span:nth-child(37) {
	transition-delay: 2.02s;
}

.anittl-active.ani-ttl span:nth-child(38), .typeEn-active span:nth-child(38) {
	transition-delay: 2.08s;
}

.anittl-active.ani-ttl span:nth-child(39), .typeEn-active span:nth-child(39) {
	transition-delay: 2.14s;
}

.anittl-active.ani-ttl span:nth-child(40), .typeEn-active span:nth-child(40) {
	transition-delay: 2.20s;
}

.anittl-active.ani-ttl span:nth-child(41), .typeEn-active span:nth-child(41) {
	transition-delay: 2.26s;
}

.anittl-active.ani-ttl span:nth-child(42), .typeEn-active span:nth-child(42) {
	transition-delay: 2.32s;
}

.anittl-active.ani-ttl span:nth-child(43), .typeEn-active span:nth-child(43) {
	transition-delay: 2.38s;
}

.anittl-active.ani-ttl span:nth-child(44), .typeEn-active span:nth-child(44) {
	transition-delay: 2.44s;
}

.anittl-active.ani-ttl span:nth-child(45), .typeEn-active span:nth-child(45) {
	transition-delay: 2.5s;
}

/* -----------------------------------------------------------
    下層h1 ＆ パンくず
-------------------------------------------------------------- */
.bread-h1-wrap {
	align-items: center;
	display: flex;
	justify-content: space-between;
	min-width: 100%;
	width: 100%;
	z-index: 5;
	margin: 0 auto;
	top: -50px;
	position: absolute;
}

/*.subpage-header__nobg .bread-h1-wrap {
	top: -50px;
	position: absolute;
}*/
.under-h1 {
	top: 0;
	text-align: right;
	position: absolute;
	right: 0;
}

.under-h1 h1 {
	color: var(--sub);
	font-size: 1.2rem;
	font-weight: 400;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	width: 450px;
	margin: 0 0 0 auto;
	padding: 0 30px 3px 0;
}

.breadcrumblist {
	font-size: 1.2rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	padding: 0 30px 0 0;
	position: absolute;
	left: 30px;
	top: 0;
	color: var(--sub);
}

/*.subpage-header__nobg .breadcrumblist {
	position: static;
	padding: 0 0 3px 30px;
}*/
.breadcrumblist a {
	text-decoration: underline;
}

.breadcrumblist a::after {
	display: inline-block;
	content: "\f105";
	font-weight: 800;
	font-family: var(--webicon);
	padding: 0 10px;
}

@media screen and (max-width: 768px) {
	.bread-h1-wrap {
		position: static;
		display: block;
		top: 0 !important;
		padding: 0 !important;
	}

	.bread-h1-wrap .breadcrumblist {
		display: none;
	}

	.under-h1 {
		bottom: auto;
		top: 0;
		width: 100%;
	}

	.under-h1 h1 {
		font-size: 1rem;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
		padding: 0 15px 1px 0 !important;
		width: 50%;
	}
}

/* -----------------------------------------------------------
   subpage-header   下層ページ 大見出し
-------------------------------------------------------------- */
.subpage-header__wrapper {
	padding: 0 0 35px;
	position: relative;
}

.subpage-header__nobg .subpage-header__wrapper {
	padding: 0;
}

.subpage-header {
	min-width: 1240px;
}

.subpage-header__inner {
	position: relative;
	z-index: 6;
}

.subpage-header__inner .ja {
	color: var(--logoc);
	font-weight: 750;
	font-size: 5rem;
	line-height: 1.5;
	padding: 0 0 0 100px;
}

/*　下部ラインアニメーションver　*/
.subpage-header__inner .pagetitle-line {
	margin: 0 0 0 100px;
	position: relative;
}

.subpage-header__inner .pagetitle-line .ja {
	margin: 0;
	padding: 0 0 15px;
}

.pagetitle-line.anim-title--dot-left .anim-title__line::before {
	top: 0;
}

/* ---- */
.subpage-header__catch {
	padding: 35px 0 0 100px;
}

.subpage-header__catch .catch1 {
	font-size: 1.7rem;
	font-weight: 500;
	line-height: 1;
}

.subpage-header__catch .catch2 {
	font-size: 2.4rem;
	font-weight: 700;
	letter-spacing: .02em;
	line-height: 1;
	margin: 20px 0 0;
}

.subpage-header__line {
	border-bottom: 1px solid var(--logoc);
	padding: 20px 0 0 0;
	position: relative;
	width: calc(100% - 100px);
	margin: 0 0 0 auto;
}

.subpage-header__line::before {
	content: "";
	background: var(--logoc);
	border-radius: 50%;
	position: absolute;
	left: 0;
	top: 16.5px;
	width: 7px;
	height: 7px;
	;
}

.subpage-header__bg_wrap {
	width: 100%;
	height: 400px;
	margin: 60px 0 0;
	overflow: hidden;
}

.subpage-header__bg {
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	width: 100%;
	height: 100%;
	transform: scale(1.2);
	opacity: 0;
}

.multi-active .subpage-header__bg {
	transform: scale(1);
	transition: opacity 2s ease, transform 1s ease;
	opacity: 1;
}

#template .subpage-header__bg {
	background-image: url(../img/subpage-head-strengths.jpg);
}

#strengths .subpage-header__bg {
	background-image: url(../img/subpage-head-strengths.jpg);
}

#quality .subpage-header__bg {
	background-image: url(../img/subpage-head-quality.jpg);
}

#company .subpage-header__bg {
	background-image: url(../img/subpage-head-company.jpg);
}

#development .subpage-header__bg {
	background-image: url(../img/subpage-head-development.jpg);
}

@media screen and (max-width: 768px) {
	.subpage-header__wrapper {
		padding: 0 !important;
	}

	.subpage-header {
		height: 150px;
	}

	.subpage-header__inner {
		z-index: 0;
		padding: 30px 0 0;
	}

	.subpage-header__inner .ja {
		font-size: 2.7rem;
		letter-spacing: .03em;
		line-height: 1.3;
		padding: 0 0 0 20px;
	}

	.subpage-header__line {
		width: calc(100% - 20px);
	}

	/*　下部ラインアニメーションver　*/
	.subpage-header__inner .pagetitle-line {
		margin: 0 0 0 20px;
	}

	.subpage-header__inner .pagetitle-line .ja {
		padding: 0 0 15px;
	}

	/* ---- */
	.subpage-header__catch {
		padding: 20px 20px 0 20px;
	}

	.subpage-header__catch .catch1 {
		font-size: 1.5rem;
		line-height: 1.7;
		letter-spacing: .03em;
	}

	.subpage-header__catch .catch2 {
		font-size: 2.1rem;
		line-height: 1.5;
		letter-spacing: .03em;
		margin: 10px 0 0;
	}

	.subpage-header__bg_wrap {
		aspect-ratio: 16/4;
		margin: 30px 0 0;
		height: auto;
	}
}

/* -----------------------------------------------------------
   service-header__box   サービス・分野別 大見出し
-------------------------------------------------------------- */
.service-header__wrapper {
	padding: 10px 0 30px;
}

.service-header__box {
	align-items: center;
	display: flex;
	justify-content: space-between;
	flex-direction: row-reverse;
	gap: 50px;
	max-width: 1600px;
	margin: 0 auto;
	width: 100%;
}

@media screen and (min-width: 769px) and (max-width: 1600px) {
	.service-header__box {
		padding: 0 30px;
	}
}

.service-header__inner {
	flex: 1;
}

.service-header__inner .ja {
	color: var(--logoc);
	font-size: 5.2rem;
	font-weight: 800;
	line-height: 1.4;
}

#coating .service-header__inner .ja .mini {
	display: block;
	font-size: 3rem;
	margin: 5px 0 0;
}

#other .service-header__inner .ja .ttl-small {
	font-size: 2.7rem;
	margin: 0 0 8px;
	display: block;
}

.service-header__subcatch {
	padding: 20px 0 10px;
	font-size: 2.3rem;
	font-weight: bold;
	line-height: 1.5;
	letter-spacing: .02em;
}

.service-header__subcatch .blue {
	margin: 0 5px 0 2px;
	color: var(--main);
}

.service-header__subcatch .blue .num {
	font-style: italic;
	font-size: 3.5rem;
	font-weight: bold;
	font-family: var(--en);
	margin: 0 5px;
}

.service-header__line {
	padding: 2px;
	width: 100%;
}

.service-header__line::before {
	top: 1px;
}

.service-header__catch {
	font-size: 2.5rem;
	letter-spacing: 0.02em;
	font-weight: 800;
	padding: 25px 0 0 0;
	line-height: 1.6;
}

.service-header__list {
	padding: 25px 0 0 0;
}

.service-header__list li {
	background: #e5f1f9;
	padding: 17px 20px 17px 65px;
	font-size: 2rem;
	font-weight: 600;
	line-height: 1.4;
	position: relative;
}

.service-header__list li:nth-child(n + 2) {
	margin: 20px 0 0;
}

.service-header__list .list-num {
	color: var(--main);
	font-style: italic;
	font-family: var(--en);
	padding: 0;
	position: absolute;
	left: 20px;
}

.service-header__list .list-num::after {
	content: '';
	position: absolute;
	width: 1px;
	height: 47px;
	left: 26px;
	background: var(--main);
	transform: rotate(26deg);
	top: -10px;
}

.service-header__list .list-strong {
	color: var(--main);
	font-size: 2.3rem;
	padding: 0 5px;
}

.service-header__img {
	aspect-ratio: 750/550;
	width: 46%;
	min-height: 500px;
}

.service-header__img img {
	transition: 0.5s;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media screen and (max-width: 768px) {
	.service-header__box {
		flex-direction: column;
		padding: 25px 0 40px;
	}

	.service-header__img {
		width: 100%;
		min-height: auto;
	}

	.service-header__inner {
		padding: 0 20px;
		width: 100%;
	}

	.service-header__inner .ja {
		font-size: 2.8rem;
		line-height: 1.5;
		opacity: 1 !important;
		transform: translate(0px) !important;
	}

	#coating .service-header__inner .ja .mini {
		font-size: 2.2rem;
		margin: 0;
	}

	#other .service-header__inner .ja .ttl-small {
		font-size: 1.8rem;
		margin: 3px 0;
		font-feature-settings: "palt";
	}

	.service-header__subcatch {
		padding: 15px 0 12px;
		font-size: 2rem;
		line-height: 1.3;
	}

	.service-header__subcatch .blue {
		margin: 0 2px;
	}

	.service-header__subcatch .blue .num {
		font-size: 3rem;
		margin: 0 5px 0 0;
	}

	.service-header__catch {
		padding: 15px 0 0;
		font-size: 2rem;
	}

	.service-header__list {
		padding: 20px 0 0;
	}

	.service-header__list li {
		font-size: 1.6rem;
		padding: 12px 10px 12px 42px;
	}

	.service-header__list li:nth-child(n + 2) {
		margin: 10px 0 0;
	}

	.service-header__list .list-num {
		left: 10px;
		padding: 0;
	}

	.service-header__list .list-num::after {
		height: 28px;
		left: 19px;
		top: -3px;
	}

	.service-header__list .list-strong {
		font-size: 1.9rem;
	}
}

/* -----------------------------------------------------------
   スクロールエフェクト　共通
-------------------------------------------------------------- */
.cmn-fadeup {
	opacity: 0;
	transform: translateY(70px);
	transition: transform cubic-bezier(.165, .84, .44, 1) 1.5s !important;
}

.cmn-fadeup.cmn-effect-fadeup {
	transform: translateY(0);
	opacity: 1;
}

.cmn-fade {
	opacity: 0;
	transition: opacity 2s;
}

.cmn-fade.effect-cmn-fade, .cmn-fade2.effect-cmn-fade {
	opacity: 1;
}

.cmn-fade2 {
	opacity: 0;
	transition: opacity 1s;
}

/*左からスライドイン*/
.cmn-slidein {
	opacity: 0;
	transform: translateX(-60px);
	transition: all .5s 0s ease-out;
}

/*左からスライドイン 早め*/
.cmn-slidein2 {
	opacity: 0;
	transform: translateX(-60px);
	transition: all .6s 0s ease-out;
}

/*cmn-fadeup　SPだけ効かせたい時*/
@media screen and (max-width: 768px) {
	.cmn-fadeup-sp {
		opacity: 0;
		transform: translateY(100px);
		transition: transform cubic-bezier(.165, .84, .44, 1) 1s;
	}
}

/* -スクロールエフェクト 背景色
-------------------------------------------------- */
.bg-slide {
	overflow: hidden;
	opacity: 0;
	transition: opacity .3s;
}

.isPlay .bg-slide {
	opacity: 1;
	position: relative;
}

/*js マスクとマスクを外すアニメーション*/
/*planning-img-slideをスライドイン*/
@keyframes play {
	from {
		transform: translateX(-100%);
	}

	to {
		transform: translateX(0);
	}
}

/*planning-img-slideをスライドアウト*/
@keyframes maskOut {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(100%);
	}
}

.trg::after {
	background: #fff;
	content: '';
	width: 100%;
	height: 100%;
	top: 0;
	left: -100%;
	position: absolute;
	transition: transform 2s cubic-bezier(0.005, 0.055, 0.305, 0.985) 1s;
	will-change: transform;
	transform-origin: right;
	z-index: 1;
}

.isPlay .trg::after {
	-webkit-transform: scaleX(0);
	transform: scaleX(0);
	left: 0;
}

/* -----------------------------------------------------------
   ft_link_area
-------------------------------------------------------------- */
.ft_link_area {
	padding: 140px 0px 100px;
}

.ft_link_area .ft_link_inner {
	display: flex;
	justify-content: space-between;
	gap: 50px;
}

.ft_link_area .ft_link_inner a {
	display: block;
	width: calc((100% - 100px) / 3);
}

.ft_link_area .ft_link_img {
	aspect-ratio: 370/250;
	width: 100%;
	overflow: hidden;
}

.ft_link_area .ft_link_img img {
	height: 100%;
	width: 100%;
	object-fit: cover;
	transition: .7s;
}

@media screen and (min-width: 769px) {
	.ft_link_area .ft_link_inner a:hover img {
		transform: scale(1.12);
	}
}

.ft_link_area .ft_link_txt {
	color: var(--cmnblack);
	font-weight: bold;
	font-size: 2.5rem;
	line-height: 1.5;
	letter-spacing: .05em;
	position: relative;
	padding: 12px 5px 17px;
}

.ft_link_area .ft_link_txt::before {
	aspect-ratio: 300 / 122;
	background: url(../img/cmn_arrow_blue.svg) center / contain no-repeat;
	bottom: 25px;
	content: "";
	width: 20px;
	transition: .5s;
	position: absolute;
	right: 0;
}

.ft_link_area .ft_link_inner a:hover .ft_link_txt::before {
	right: -5px;
}

@media screen and (max-width: 768px) {
	.ft_link_area {
		margin: 0 0 0;
		padding: 60px 0 50px;
	}

	.ft_link_area .ft_link_inner {
		flex-direction: column;
		gap: 15px;
	}

	.ft_link_area .ft_link_inner a {
		align-items: center;
		display: flex;
		gap: 15px;
		width: 100%;
		position: relative;
	}

	.ft_link_area .ft_link_img {
		width: 50%;
		flex-shrink: 0;
	}

	.ft_link_area .ft_link_txt {
		font-size: 1.9rem;
		padding: 0;
		flex-grow: 1;
	}

	.ft_link_area .ft_link_txt::before {
		bottom: -18px;
		right: auto;
		left: 0;
	}
}

/* -----------------------------------------------------------
   link_line  gナビで使用　線アニメーション
-------------------------------------------------------------- */
.link_line {
	position: relative;
}

.link_line::after {
	bottom: -1px;
	background: var(--link);
	content: '';
	display: inline-block;
	height: 1px;
	left: 0;
	margin: auto;
	position: absolute;
	/*right: 0;*/ /* 真ん中から開きたい時*/
	-webkit-transition: all 0.3s;
	transition: all 0.4s;
	width: 0;
}

.link_line_wrap:hover .link_line::after {
	width: 100%;
	display: inline-block;
}

/* -----------------------------------------------------------
    footer_fixed
-------------------------------------------------------------- */
@media screen and (min-width: 769px) {
	#footer_fixed {
		display: none !important;
	}
}

@media screen and (max-width: 768px) {
	#footer_fixed {
		position: fixed;
		bottom: 0;
		z-index: 20;
		right: 0;
	}

	.ff_btn_inner {
		position: relative;
	}

	#footer_fixed.float_btn_group {
		background: #fff;
		width: 146px;
		overflow: hidden;
		transition: 0.3s;
		height: 60px;
	}

	#footer_fixed.float_btn_group.ff_open {
		width: 100%;
		overflow: unset;
	}

	#footer_fixed.float_btn_group.ff_open .ff_btn_inner {
		background: #fff;
		box-shadow: 2px 2px 5px 2px rgba(0, 0, 0, .05);
	}

	#footer_fixed .ff_btn {
		align-items: center;
		background: var(--cv);
		cursor: pointer;
		display: flex;
		justify-content: center;
		width: 100%;
		height: 60px;
		position: relative;
		transition: 0.3s;
		z-index: 2;
	}

	#footer_fixed.ff_open .ff_btn {
		background: transparent;
		width: 50px;
		padding: 0 0 0 10px;
	}

	.ff_trg_ttl {
		color: #fff;
		font-size: 1.5rem;
		font-weight: bold;
	}

	#footer_fixed.ff_open .ff_trg_ttl {
		display: none;
	}

	#footer_fixed .ff_btn .plus {
		width: 15px;
		height: 15px;
	}

	#footer_fixed.ff_open .ff_btn .plus {
		width: 20px;
		height: 20px;
	}

	#footer_fixed .ff_btn .plus::after, #footer_fixed .ff_btn .plus::before {
		content: '';
		position: absolute;
		height: 15px;
		width: 1px;
		border-left: 1px solid #fff;
		transition: all .3s;
	}

	#footer_fixed.ff_open .plus::after, #footer_fixed.ff_open .plus::before {
		height: 20px;
		border-left: 1px solid var(--cmnblack);
	}

	#footer_fixed .ff_btn .plus::before {
		transform: rotate(0deg);
	}

	#footer_fixed.ff_open .plus::before {
		transform: rotate(40deg);
	}

	#footer_fixed .ff_btn .plus::after {
		transform: rotate(90deg);
	}

	#footer_fixed.ff_open .plus::after {
		transform: rotate(-40deg);
	}

	#footer_fixed .ff_btn_list {
		align-items: center;
		bottom: 0;
		display: flex;
		position: absolute;
		right: 0;
		transition: 0.3s;
		opacity: 0;
		width: calc(100% - 50px);
		height: 60px;
		padding: 8px 5px;
		justify-content: flex-end;
	}

	#footer_fixed .ff_btn_list img {
		height: 100%;
	}

	#footer_fixed.float_btn_group.ff_open .ff_btn_list {
		opacity: 1;
	}

	#footer_fixed .ff_btn_item__tel {
		align-items: center;
		border: 1px solid var(--cmnblack);
		color: var(--cmnblack);
		display: flex;
		gap: 8px;
		height: 100%;
		justify-content: center;
		width: 50%;
		margin: auto 8px auto auto;
		text-decoration: none !important;
	}

	#footer_fixed .ff_btn_item__tel span {
		color: var(--cmnblack);
		font-size: 1.3rem;
		flex-shrink: 0;
		line-height: 1.3;
		letter-spacing: .03em;
		width: 95px;
	}

	#footer_fixed .ff_btn_item__tel img {
		width: 20px;
		height: 20px;
		margin: 0;
		top: 41%;
		-webkit-transform: scaleX(-1);
		transform: scaleX(-1);
	}

	#footer_fixed .ff_btn_item__mail {
		align-items: center;
		background: var(--cv);
		width: 50%;
		flex-shrink: 0;
		height: 100%;
		display: flex;
		justify-content: center;
		margin: 0;
	}

	#footer_fixed .ff_btn_item__mail img {
		aspect-ratio: 300/214;
		width: 30px;
		margin: 0;
	}
}

/* -----------------------------------------------------------
    ft_cv_area
-------------------------------------------------------------- */
.ft_cv_area {
	border-top: solid 1px var(--sub);
	border-bottom: solid 1px var(--sub);
	padding: 75px 0 80px;
}

.ft_cv_area .inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	position: relative;
}

.ft_cv_ttl .en {
	font: 700 5rem /1 var(--en);
	letter-spacing: .02em;
}

.ft_cv_ttl .ja {
	font-weight: bold;
	margin: 0 0 0;
	font-size: 3.7rem;
}

.ft_cv_catch {
	font-size: 2.2rem;
	margin: 60px 0 0;
	line-height: 1.8;
	font-weight: 500;
}

.ft_cv_photo {
	aspect-ratio: 400/320;
	flex-shrink: 0;
	width: 400px;
}

.ft_cv_photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ft_cv_body {
	display: flex;
	flex-direction: column;
	gap: 10px;
	justify-content: center;
	align-items: center;
}

.ft_cv_tel {
	background: var(--tel);
	color: #fff;
	display: flex;
	flex-direction: column;
	font-feature-settings: "palt";
	justify-content: center;
	gap: 5px;
	height: 110px;
	width: 300px;
	align-items: center;
}

.ft_cv_tel_num {
	color: #fff;
	font: 600 3rem /1 var(--en);
	position: relative;
	padding: 0 0 0 28px;
	letter-spacing: .07em;
	width: fit-content;
	margin: 0 auto;
}

.ft_cv_tel_num::before {
	content: "";
	background: url("../img/com_icon_tel_white.svg")center/contain no-repeat;
	position: absolute;
	top: 50%;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	left: 0;
	width: 22px;
	height: 23px;
}

.ft_cv_tel_time {
	align-items: center;
	color: #fff;
	display: flex;
	font-size: 1.4rem;
	line-height: 1;
	letter-spacing: 0;
}

.ft_cv_tel_hour {
	font-size: 1.6rem;
	margin: 0 2px 0 4px;
}

.ft_cv_mail {
	align-items: center;
	background: var(--cv);
	color: #fff;
	display: flex;
	height: 100px;
	line-height: 1.5;
	text-align: center;
	transition: 0.3s ease;
	padding: 0 43px 0 38px;
	position: relative;
	justify-content: center;
	overflow: hidden;
	width: 300px;
}

.ft_cv_mail::before {
	content: '';
	width: 0;
	height: 100%;
	position: absolute;
	right: 0;
	top: 0;
	background: var(--cv2);
	transition: width cubic-bezier(0.23, 1, 0.32, 1) 0.5s;
	z-index: 0;
}

@media screen and (min-width: 769px) {
	.ft_cv_mail:hover::before {
		left: 0;
		width: 100%;
	}
}

.ft_cv_mail_txt {
	color: #fff;
	font-size: 2.3rem;
	font-weight: bold;
	padding: 0 0 0 37px;
	position: relative;
	line-height: 1;
	z-index: 2;
}

.ft_cv_mail_txt::before {
	background: url("../img/cmn_icon_mail.svg")center/contain no-repeat;
	content: "";
	transition: .5s;
	position: absolute;
	top: 50%;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	left: 0;
	width: 30px;
	height: 21px;
}

.ft_cv_fax {
	font-size: 2.3rem;
}

.circle-container {
	position: absolute;
	left: -20px;
	top: 40px;
	z-index: -1;
}

.circle-container .block {
	width: 108px;
	height: 108px;
	margin: auto;
}

.circleText {
	overflow: visible;
	animation: rotation 18s linear infinite;
	font-family: var(--en);
}

.circleText__circle {
	fill: none;
}

.circleText__text {
	fill: #ccdbf5;
	font-size: 1.5rem;
	letter-spacing: 0.05em;
}

@keyframes rotation {
	0% {
		transform: rotate(0deg);
	}

	100% {
		transform: rotate(360deg);
	}
}

@media screen and (max-width: 768px) {
	.ft_cv_area {
		padding: 40px 0;
	}

	.ft_cv_area .inner {
		display: block;
	}

	.ft_cv_photo {
		aspect-ratio: 175/135;
		width: 46.6vw;
		position: absolute;
		right: 0;
		top: 0;
		height: 130px;
	}

	.ft_cv_ttl .en {
		font-size: 3.9rem;
	}

	.ft_cv_ttl .ja {
		font-size: 2.4rem;
		letter-spacing: 0;
		height: 130px;
		margin: 0 0 25px;
		display: flex;
		align-items: center;
	}

	.ft_cv_catch {
		font-size: 1.8rem;
		line-height: 1.6;
		letter-spacing: .03em;
		font-weight: 600;
		margin: 0;
	}

	.ft_cv_body {
		flex-wrap: wrap;
		gap: 20px;
		margin: 30px 0 0;
		padding: 0 20px;
	}

	a[href^="tel:"].ft_cv_tel {
		font-size: 1.7rem;
		gap: 10px;
		text-decoration: none !important;
		text-align: center;
		height: 88px;
		width: 100%;
	}

	.ft_cv_tel_num {
		font-size: 2.5rem;
		margin: 0 auto;
		padding: 0 0 0 30px;
		text-align: center;
		font-weight: bold;
	}

	.ft_cv_tel_num::before {
		font-size: 2.3rem;
	}

	.ft_cv_tel_time {
		font-size: 1.3rem;
	}

	.ft_cv_tel_hour {
		font-size: 1.5rem;
	}

	.ft_cv_mail {
		height: 80px;
		width: 100%;
		padding: 0 5px 2px 0;
	}

	.ft_cv_mail::after {
		font-size: 1.5rem;
	}

	.ft_cv_mail_txt {
		font-size: 2.1rem;
		width: fit-content;
	}

	.ft_cv_mail_txt::before {
		left: 0;
	}

	.ft_cv_fax {
		font-size: 2rem;
		line-height: 1;
	}

	.ft_cv_circle {
		padding: 0 20px 0 30px;
	}

	.ft_cv_circle .circle-container {
		top: 28px;
		left: 15px;
	}

	.ft_cv_circle .circle-container .block {
		width: 80px;
		height: 80px;
	}

	.ft_cv_circle .circleText__text {
		font-size: 1.4rem;
	}
}

/* -----------------------------------------------------------
    footer
-------------------------------------------------------------- */
.footer {
	padding: 120px 0;
}

/**************フッター共通タイトル**************/
.ft_cmn_title {
	background: #eaeaea;
	font-size: 2.2rem;
	font-weight: bold;
	letter-spacing: .03em;
	line-height: 1;
	padding: 15px 0 18px;
	text-align: center;
}

.ft_cmn_subtitle {
	font-size: 2.1rem;
	font-weight: bold;
	text-align: center;
}

/**************ft_pay_area**************/
.ft_pay_area {
	padding: 90px 0 70px;
}

.ft_pay_logo_wrap {
	display: flex;
	justify-content: space-between;
	margin: 35px 0 0;
}

.ft_pay_logo_wrap dl {
	width: calc(100% / 2);
	position: relative;
	padding: 0 30px;
}

.ft_pay_logo_wrap dl:nth-child(2)::before {
	content: "";
	width: 1px;
	height: 100%;
	border-left: 2px dotted #aaa;
	position: absolute;
	top: 0;
}

.ft_pay_logo_wrap dl:nth-child(2)::before {
	left: 0;
}

.ft_pay_logo_wrap dd {
	margin: 30px 0 0;
}

.ft_pay_logo {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 15px 10px;
}

.ft_pay_cap {
	font-size: 1.4rem;
	text-align: center;
	margin: 15px 0 0;
}

.ft_pay_logo li {
	align-items: center;
	display: flex;
}

.ft_pay_logo li img {
	max-height: 35px;
	max-width: 55px;
}

/**************ft_areainfo**************/
.ft_areainfo_ttl {
	text-align: center;
	font-size: 2.3rem;
	font-weight: bold;
	letter-spacing: .03em;
}

.ft_areainfo_note {
	margin: 20px 0 40px;
	text-align: center;
	letter-spacing: .07em;
	position: relative;
	z-index: 2;
}

/**************f_company**************/
.f_company_address {
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 1.75;
	letter-spacing: .03em;
	margin: 20px 0 0;
}

.f_company_address a {
	font-size: 1.5rem;
}

.f_address_txt {
	line-height: 1.6;
	font-size: 1.5rem;
}

.f_address_txt span {
	display: block;
	font-weight: bold;
	line-height: 2;
}

.f_address_pin {
	align-items: center;
	display: flex;
	margin: 30px 0 0;
	gap: 13px;
}

.f_address_pin a {
	align-items: center;
	border: 1px solid var(--cmnblack);
	color: var(--cmnblack);
	font-size: 1.4rem;
	display: flex;
	justify-content: center;
	gap: 3px;
	padding: 10px 15px 12px;
	line-height: 1;
	font-family: var(--en);
}

.f_address_pin a::before {
	content: '';
	width: 12px;
	height: 16px;
	top: 0;
	right: 0;
	background: url("../img/access-pin.png") no-repeat top center / contain;
	transition: .3s all;
	margin: .5px 2px 0 0;
}

.f_address_pin a:hover {
	border-color: var(--link);
	background: var(--link);
	color: #fff;
}

.f_address_pin a:hover::before {
	background: url("../img/access-pin-white.png") no-repeat top center / contain;
}

.f_address_pin a:hover i {
	color: #fff;
	transition: .5s;
}

.f_address_pin i {
	color: var(--link);
	font: 900 1.5rem/1 var(--webicon);
	margin: 3px 0 0;
}

/**************sitemap_wrap**************/
.sitemap_wrap [class^="sitemap_list_"] {
	display: flex;
	gap: 80px;
	width: fit-content;
}

.sitemap_list .sitemap_item, .sitemap_list .sitemap_txt {
	font-size: 1.4rem;
	margin: 0 0 20px;
	line-height: 1.5;
}

.sitemap_list .sitemap_txt {
	color: #86a1ba;
	border-bottom: 1px solid #86a1ba;
	padding: 0 0 8px;
}

.sitemap_list a {
	font-weight: 400;
}

.sitemap_product {
	/*min-width: 325px;*/
}

@media screen and (min-width:769px) and (max-width:1240px) {
	.sitemap_list .sitemap_item {
		font-size: 1.3rem;
		margin: 0 0 15px;
	}
}

.sitemap_list .sitemap_item:last-of-type {
	margin: 0;
}

.sitemap_list a {
	color: var(--cmnblack);
	line-height: 1.3;
}

.sitemap_under {
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	margin: 20px 0 10px;
	gap: 5px 40px;
}

.sitemap_product .sitemap_under {
	/*height: 385px;*/
}

.sitemap_under li {
	font-size: 1.4rem;
	margin: 0 0 20px;
	position: relative;
	padding: 0 0 0 0;
}

.sitemap_under li.sub {
	position: relative;
	padding: 0 0 0 15px;
}

.sitemap_under li.sub::before {
	content: '';
	top: 50%;
	left: 0;
	position: absolute;
	width: 5px;
	height: 5px;
	background: #86a1ba;
	border-radius: 10px;
}

/**************f_top_wrap**************/
.f_top_wrap {
	display: flex;
	justify-content: space-between;
	gap: 50px;
}

.f_top {
	flex-shrink: 0;
	gap: 35px;
}

.f_top .f_company_logo {
	width: 201px;
}

.f_top .f_company_logo img {
	width: 280px;
}

.f_top .f_sns_logo {
	display: flex;
	gap: 20px;
	margin: 30px 0 50px;
}

.f_top .f_sns_logo a {
	display: block;
}

.f_top .f_sns_logo img {
	aspect-ratio: 1/1;
	width: 45px;
}

/**************f_btm_wrap**************/
.f_btm_wrap {
	align-items: flex-end;
	display: flex;
	justify-content: space-between;
	margin: 100px 0 0;
}

.f_btm_list {
	display: flex;
}

.f_btm_list li {
	margin: 0 40px 0 0;
}

.f_btm_list li:last-child {
	margin: 0;
}

.f_btm_list a {
	color: var(--sub);
	font-size: 1.3rem;
	font-weight: 400;
}

.f_btm_list i {
	margin-left: 5px;
}

.f_copy {
	color: var(--sub);
	font-size: 1.2rem;
	font-weight: 400;
	letter-spacing: .03em;
}

.f_b_left {
	align-items: flex-end;
	display: flex;
}

@media screen and (max-width: 768px) {
	.footer {
		padding: 0;
	}

	.drawer_open .footer {
		opacity: 0 !important;
	}

	/**************フッター共通**************/
	.ft_cmn_title {
		font-size: 1.9rem;
		letter-spacing: .02em;
		line-height: 1.5;
		padding: 25px 0 20px;
	}

	.ft_cmn_subtitle {
		font-size: 1.9rem;
	}

	/**************ft_pay_area**************/
	.ft_pay_area {
		padding: 0 0 30px;
	}

	.ft_pay_logo_wrap {
		display: block;
		margin: 25px 20px 0;
	}

	.ft_pay_logo_wrap dl {
		width: 100%;
		padding: 0;
	}

	.ft_pay_logo_wrap dl:nth-child(2) {
		padding: 25px 0 0;
		margin: 25px 0 0;
	}

	.ft_pay_logo_wrap dl:nth-child(2)::before, .ft_pay_logo_wrap dl:nth-child(2)::after {
		width: 100%;
		height: 1px;
		border-left: none;
		border-top: 2px dotted #bed8b9;
	}

	.ft_pay_logo_wrap dl:nth-child(2)::before {
		left: 0;
	}

	.ft_pay_logo_wrap dl:nth-child(2)::after {
		right: 0;
		top: auto;
		bottom: 0;
	}

	.ft_pay_logo_wrap dd {
		margin: 17px 0 0;
	}

	.ft_pay_ttl {
		letter-spacing: .03em;
		font-size: 1.8rem;
		margin: 0 0 15px;
		line-height: 1.44;
	}

	.ft_pay_logo li {
		gap: 13px 10px;
	}

	.ft_pay_logo li img {
		max-width: 60px;
	}

	/**************ft_areainfo**************/
	.ft_areainfo_note {
		margin: 20px 0 30px;
		text-align: left;
		letter-spacing: .05em;
		padding: 0 20px;
		font-size: 1.5rem;
		line-height: 2;
	}

	/**************f_company**************/
	.f_top .f_company_logo {
		width: 300px;
		margin: 0 auto;
	}

	.f_address_txt {
		line-height: 1.56;
		font-size: 1.4rem;
	}

	.f_company_address {
		margin: 20px 0 20px;
		text-align: center;
	}

	.f_company_address span {
		margin: 0;
	}

	.f_company_address a {
		font-size: 1.8rem;
		font-weight: 400;
		padding: 16px 15px;
		width: 175px;
	}

	.f_address_pin {
		justify-content: center;
		margin: 30px 0 0;
	}

	.f_address_pin i {
		font-size: 1.7rem;
	}

	/**************f_mid_area**************/
	.f_mid_area {
		padding: 55px 0 0;
	}

	/**************sitemap_wrap**************/
	.sitemap_wrap {
		display: none;
	}

	/**************f_top_wrap**************/
	.f_top_wrap {
		display: block;
		margin: 0 0 0;
	}

	.f_top {
		display: block;
	}

	/**************f_btm_wrap**************/
	.f_btm {
		display: block;
	}

	.f_company_logo {
		text-align: center;
	}

	.f_btm_wrap {
		width: 100%;
		display: block;
		margin: 0 0 120px;
	}

	.f_copy {
		text-align: center;
	}

	.f_company_tel {
		display: none;
	}

	.f_btm_list {
		display: none;
	}

	.f_b_left {
		justify-content: center;
		margin: 0;
	}

	.f_top .f_sns_logo {
		justify-content: center;
		margin: 60px 0 80px;
	}
}

@media screen and (max-width: 360px) {
	.ft_cv_catch {
		font-size: 2rem;
	}

	.ft_cv_catch::before {
		bottom: -25px;
		height: 140px;
		right: -95px;
		width: 103px;
	}
}

/* -----------------------------------------------------------
    ft_area   ※※注意※※  下層 対応エリアページでも使用
-------------------------------------------------------------- */
.ft_area .ft_area_inner {
	display: flex;
	justify-content: space-between;
}

.ft_area .ft_cmn_subtitle {
	align-items: center;
	display: flex;
	width: fit-content;
	position: relative;
	margin: 0 auto;
	gap: 10px;
}

.ft_area .ft_cmn_subtitle span {
	font-size: 2.4rem;
}

.ft_area .ft_cmn_subtitle i {
	font-size: 3.2rem;
}

.ft_area_personal {
	border-right: 2px dotted #aaa;
	flex-shrink: 0;
	width: 770px;
}

.ft_area .ft_area_column {
	padding: 0 15px;
}

.ft_area .ft_area_ttl {
	flex-shrink: 0;
	font-size: 1.9rem;
	font-weight: bold;
	text-align: center;
	padding: 2px 0 0;
}

.ft_area_wrap {
	align-items: center;
	display: flex;
	width: 100%;
	gap: 20px;
	margin-top: 40px;
}

.ft_area_column .ft_area_wrap:first-of-type {
	margin-top: 30px;
}

.ft_area_wrap .ft_area_list {
	display: flex;
	gap: 20px 30px;
	flex-wrap: wrap;
}

.ft_area_wrap .ft_area_list dl {
	align-items: center;
	display: flex;
	gap: 12px;
}

.ft_area_wrap .ft_area_list dt {
	background: #ddd;
	font-size: 1.5rem;
	font-weight: bold;
	padding: 5px 10px 7px;
	width: 100px !important;
	text-align: center;
}

.ft_area_wrap .ft_area_list dt {
	background: #eaeaea;
}

.ft_area_wrap .ft_area_list dd {
	font-size: 1.5rem;
	letter-spacing: .07em;
}

.ft_area .ft_area_multiple dd {
	line-height: 1.66;
}

@media screen and (max-width: 768px) {
	.ft_area .ft_area_wrap {
		align-items: flex-start;
		width: 100%;
	}

	.ft_area .ft_area_inner {
		display: block !important;
		gap: 25px;
	}

	.ft_area .ft_area_column {
		padding: 0;
		width: 100%;
	}

	.ft_area .ft_area_corp {
		margin: 50px 0 0;
	}

	.ft_area_personal {
		border-right: none;
	}

	.ft_area .ft_area_ttl {
		font-size: 1.7rem;
		margin: 0;
		padding: 5px 0 0;
	}

	.ft_area .ft_area_list {
		gap: 15px 30px;
	}

	.ft_area_wrap .ft_area_list dl {
		display: block;
	}

	.ft_area_wrap .ft_area_list dt {
		float: left;
		padding: 7px 7px 9px;
		min-width: 65px;
		margin: 0 8px 0 0;
		width: auto !important;
	}

	.ft_area_wrap .ft_area_list dd {
		display: inline;
		line-height: 2.1;
	}
}

/* -----------------------------------------------------------
    overlay
-------------------------------------------------------------- */
#ft_overlay {
	width: 100%;
	height: 100%;
	display: block;
	background-color: rgba(0, 0, 0, 0.3);
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10;
	opacity: 0;
	transition: all 300ms ease;
	pointer-events: none;
}

#ft_overlay.over-show {
	opacity: 1;
}

/* -----------------------------------------------------------
    404
-------------------------------------------------------------- */
#contents-404 {
	padding: 60px 0 0;
	text-align: center;
}

#contents-404 .bread-h1-wrap {
	top: 0;
}

#contents-404 .breadcrumblist {
	text-align: left;
}

#contents-404 .en-ttl {
	color: var(--main);
	font: bold 4.5rem/1 var(--en);
}

#contents-404 .ttl {
	color: var(--main);
	font-weight: bold;
	font-size: 2rem;
	letter-spacing: .05em;
	margin: 20px 0 0 0;
}

#contents-404 .txt-wrap {
	margin: 30px 0 0 0;
}

#contents-404 .txt-wrap p {
	line-height: 2;
}

#contents-404 .btn-wrap {
	display: flex;
	justify-content: center;
	margin: 40px auto 0;
}

#contents-404 .ft_link_area {
	margin-top: 80px;
}

@media screen and (max-width: 768px) {
	#contents-404 {
		padding: 40px 0 0;
	}

	#contents-404 .en-ttl {
		font-size: 3.8rem;
	}

	#contents-404 .ttl {
		font-size: 1.8rem;
		line-height: 1.3;
		margin: 10px 0 0 0;
	}

	#contents-404 .txt-wrap {
		margin: 15px 0 0 0;
	}

	#contents-404 .txt-wrap p {
		line-height: 1.7;
		margin-bottom: 10px;
	}

	#contents-404 .btn-wrap {
		display: block;
		margin: 30px 0 0 0;
		width: 100%;
	}

	#contents-404 .btn-wrap li:first-child {
		margin-bottom: 20px;
	}

	#contents-404 .ft_link_area {
		margin-top: 60px;
	}
}

/* -----------------------------------------------------------
    img-animation
-------------------------------------------------------------- */
.img-wrap {
	overflow: hidden;
	position: relative;
}

.img-animation {
	animation: img-opacity 1s cubic-bezier(.4, 0, .2, 1);
}

.img-animation:before {
	animation: img-animation 1s cubic-bezier(.4, 0, .2, 1) forwards;
	background: var(--main);
	bottom: 0;
	content: '';
	left: 0;
	pointer-events: none;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 1;
}

@keyframes img-opacity {
	0% {
		opacity: 0;
	}
}

@keyframes img-animation {
	100% {
		transform: translateX(100%);
	}
}

/* -----------------------------------------------------------
    採用スライド
-------------------------------------------------------------- */
@keyframes cmn-rec-slide {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(-100%);
	}
}

.cmn-rec-slide .cmn-rec-slide-inner {
	display: flex;
	overflow: hidden;
	height: 100%;
}

.cmn-rec-slide .cmn-rec-slide-list {
	animation: cmn-rec-slide 30s infinite linear .8s both;
	flex-shrink: 0;
	display: flex;
	height: 100%;
}

.cmn-rec-slide .cmn-rec-slide-list .img {
	aspect-ratio: 350/480;
	flex-shrink: 0;
	height: 100%;
}

.cmn-rec-slide .cmn-rec-slide-list img {
	height: 100%;
	width: 100%;
	object-fit: cover;
}

/* -----------------------------------------------------------
    コーティングの表（強み・コーティング）
-------------------------------------------------------------- */
.strengths-box-table table {
	background: #fff;
	border-left: solid 1px #d5dce0;
	table-layout: fixed;
	border-collapse: collapse;
}

.strengths-box-table table, .strengths-box-table td, .strengths-box-table th {
	border-bottom: solid 1px #d5dce0;
	border-right: solid 1px #d5dce0;
}

.strengths-box-table .parent-wrap th {
	background: var(--main);
	color: #fff;
	font-size: 1.5rem;
	line-height: 1.5;
	padding: 8px;
}

.strengths-box-table .parent-wrap .parent-ttl:first-of-type {
	width: 250px;
}

.strengths-box-table .child-wrap td, .strengths-box-table .child-wrap th {
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 1.5;
	padding: 20px;
}

.strengths-box-table .note {
	font-size: 1.5rem;
	line-height: 1.5;
}

.strengths-box-table .add {
	display: flex;
	flex-wrap: wrap;
	gap: 2px;
	margin: 10px 0 0;
}

.strengths-box-table .add dl {
	background: var(--cmnbg2);
	font-size: 1.5rem;
	flex-grow: 1;
	display: flex;
	gap: 15px;
	padding: 10px;
	min-width: calc((100% - 2px) / 2);
}

.strengths-box-table .add dt {
	color: #8fa0ac;
	font-weight: 600;
	flex-shrink: 0;
}

.strengths-box-table .typeimg {
	display: flex;
	align-items: center;
	gap: 10px;
	text-align: left;
}

.strengths-box-table .typeimg img {
	width: 90px;
	aspect-ratio: 120/100;
}

.strengths-box-table .child-wrap:nth-child(2) td:first-of-type {
	border-top: none;
}

.strengths-box-table .add2 {
	background: var(--cmnbg2);
	display: flex;
	flex-wrap: wrap;
	gap: 7px 15px;
	padding: 10px;
	margin: 15px 0 0;
}

.strengths-box-table .add2-ttl {
	width: 100%;
	line-height: 1;
	font-size: 1.4rem;
	color: var(--sub);
	font-weight: 500;
	padding: 0 0 0 11px;
	position: relative;
}

.strengths-box-table .add2-ttl::before {
	content: "\f063";
	font: 900 1.1rem/1 var(--webicon);
	position: absolute;
    top: 55%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
	left: 0;
}

.strengths-box-table .add2 dl {
	align-items: center;
	display: flex;
	gap: 5px;
}

.strengths-box-table .add2 dt {
	background: var(--sub);
	flex-shrink: 0;
	color: #fff;
	padding: 1.5px 7px 3px;
}

@media screen and (max-width: 768px) {
	.strengths-box-table .parent-wrap th {
		font-size: 1.3rem;
	}

	.strengths-box-table .parent-wrap .parent-ttl:first-of-type {
		width: 75px;
	}

	.strengths-box-table .parent-wrap .parent-ttl:nth-of-type(2) {
		width: 180px;
	}

	.strengths-box-table .child-wrap td, .strengths-box-table .child-wrap th {
		font-size: 1.3rem;
		line-height: 1.5;
		padding: 10px 5px;
	}

	.strengths-box-table .note {
		font-size: 1.3rem;
		line-height: 1.5;
	}

	.strengths-box-table .add dl {
		font-size: 1.3rem;
		padding: 8px;
		gap: 10px;
		width: 100%;
	}

	.strengths-box-table .add dt {
		width: 40px;
	}

	.strengths-box-table .typeimg {
		flex-direction: column;
		gap: 5px;
		text-align: center;
	}

	.strengths-box-table .add2 {
		padding: 8px;
		gap: 7px 8px;
		margin: 10px 0 0;
	}
	
	.strengths-box-table .add2-ttl {
		font-size: 1.3rem;
	}

	.strengths-box-table .add2 dl {
		width: 100%;
	}
}

/* -----------------------------------------------------------
    cmn-section-ttl
-------------------------------------------------------------- */
.cmn-section-ttl-wrap {
	position: relative;
	padding: 0 0 7px;
	overflow: hidden;
}

.cmn-section-ttl {
	display: flex;
	align-items: center;
	gap: 20px;
	padding: 0 0 28px;
	position: relative;
	opacity: 0;
	transform: translateY(100%);
}

.cmn-section-ttl-line {
	display: block;
	position: relative;
	width: 100%;
}

.cmn-section-ttl-line::after, .cmn-section-ttl-line::before {
	content: "";
	background: var(--main);
	position: absolute;
	left: 0;
	transition: .7s;
}

.cmn-section-ttl-line::before {
	border-radius: 50%;
	bottom: -3px;
	width: 0;
	height: 0;
}

.multi-active.cmn-section-ttl-line::before {
	width: 7px;
	height: 7px;
}

.cmn-section-ttl-line::after {
	bottom: 0;
	width: 0;
	height: 1px;
}

.multi-active.cmn-section-ttl-line::after {
	width: 100%;
}

.cmn-section-ttl-wrap.multi-active .cmn-section-ttl {
	animation: titleSlideUp .85s cubic-bezier(.22, 1, .36, 1) forwards .3s;
}

.cmn-section-ttl .ja {
	font-size: 4.3rem;
	font-weight: 700;
	position: relative;
	letter-spacing: 0;
}

.cmn-section-ttl .en {
	font: italic 700 2.6rem /1 var(--en);
	color: var(--main);
	letter-spacing: 0;
	position: relative;
}

@media screen and (max-width: 768px) {
	.cmn-section-ttl {
		padding: 0 0 14px;
		flex-wrap: wrap;
		gap: 5px;
	}

	.cmn-section-ttl .ja {
		font-size: 2.6rem;
		margin: 2px 0 0;
		line-height: 1.5;
		width: 100%;
	}

	.cmn-section-ttl .en {
		font-size: 1.8rem;
	}

	.cmn-section-ttl .en::before {
		width: 24px;
	}
}

/* -----------------------------------------------------------
    cmn-maxwidth
-------------------------------------------------------------- */
.cmn-maxwidth {
	display: flex !important;
	justify-content: center !important;
	align-items: center !important;
}

.cmn-maxwidth img {
	max-width: 100% !important;
	max-height: 100% !important;
	object-fit: unset !important;
	height: auto !important;
	width: auto !important;
}

@media screen and (max-width: 768px) {
	.cmn-maxwidth {
		display: block !important;
	}

	.cmn-maxwidth img {
		width: 100% !important;
	}
}

/* -----------------------------------------------------------
    fancybox
-------------------------------------------------------------- */
@media screen and (max-width: 768px) {
	.fancybox-toolbar {
		opacity: 1 !important;
		visibility: visible !important;
		transform: translate3d(0, 0, 0) !important;
	}

	.fancybox-is-idle .fancybox-toolbar {
		opacity: 1 !important;
		visibility: visible !important;
	}

	.fancybox-button, .fancybox-is-idle .fancybox-button {
		opacity: 1 !important;
		visibility: visible !important;
		pointer-events: auto !important;
	}

	.fancybox-is-idle .fancybox-button--arrow_left, .fancybox-is-idle .fancybox-button--arrow_right {
		opacity: 1 !important;
		visibility: visible !important;
	}
}