* {
	box-sizing: border-box;
}

html {
	overflow-x: hidden;
	font-size: 62.5%;
}

body {
	overflow-x: hidden;
	background-color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 500;
	font-style: normal;
	font-size: 1.8rem;
	font-optical-sizing: auto;
	color: #000;
	line-height: 1.875;
	letter-spacing: 1px;
}

img {
	max-width: 100%;
	height: auto;
}

p {
	margin-bottom: 2rem;
}

ul, ol {
	margin-top: 0;
	margin-bottom: 2rem;
}

a {
	color: #457DAA;
	transition: .3s ease;
}

a:hover {
	color: #7eb3de;
}

a img {
	transition: .3s ease;
}


/* --------------------------------------------------

	display

-------------------------------------------------- */

.d-flex { display: flex !important;}
.d-none { display: none !important;}
.d-block { display: block !important;}

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

	.d-xs-none { display: none !important;}
	.d-xs-block { display: block !important;}

}


/* --------------------------------------------------

	spacing

-------------------------------------------------- */

.mt-0 { margin-top: 0 !important;}
.mt-1 { margin-top: 1rem !important;}
.mt-2 { margin-top: 2rem !important;}
.mt-4 { margin-top: 4rem !important;}
.mt-8 { margin-top: 8rem !important;}

.mb-0 { margin-bottom: 0 !important;}
.mb-1 { margin-bottom: 1rem !important;}
.mb-2 { margin-bottom: 2rem !important;}
.mb-4 { margin-bottom: 4rem !important;}
.mb-8 { margin-bottom: 8rem !important;}

.p-8 { padding: 8rem;}

.pt-0 { padding-top: 0 !important;}
.pt-1 { padding-top: 1rem !important;}
.pt-2 { padding-top: 2rem !important;}

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

	.mb-xs-4 { margin-bottom: 4rem !important;}

	.p-xs-2 { padding: 2rem !important;}

}


/* --------------------------------------------------

	loyout

-------------------------------------------------- */

.section {
	position: relative;
	padding-top: 8rem;
	padding-bottom: 8rem;
}

.inner {
	position: relative;
	z-index: 2;;
	max-width: 1280px;
	width: 100%;
	margin: 0 auto;
	padding: 0 4rem;
}

.inner--xs-large { max-width: 1380px;}
.inner--large { max-width: 1720px;}

.inner > :last-child {
	margin-bottom: 0;
}

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

	.section {
		padding-top: 4rem;
		padding-bottom: 4rem;
	}

}


.box { margin-bottom: 8rem;}
.box > :last-child { margin-bottom: 0;}

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

	.box { margin-bottom: 4rem;}

}


.align-items-center { align-items: center;}
.justify-content-center { justify-content: center;}

.flex-row { flex-direction: row;}
.flex-row-reverse { flex-direction: row-reverse;}
.flex-column { flex-direction: column;}
.flex-column-reverse { flex-direction: column-reverse;}

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

	.align-items-xs-center { align-items: center;}
	.justify-content-xs-center { justify-content: center;}

	.flex-xs-row { flex-direction: row;}
	.flex-xs-row-reverse { flex-direction: row-reverse;}
	.flex-xs-column { flex-direction: column;}
	.flex-xs-column-reverse { flex-direction: column-reverse;}

}


.row {
	display: flex;
	flex-wrap: wrap;
	margin: 0 -2rem -4rem;
}

[class^="col"] {
	margin: 0 0 4rem;
	padding: 0 2rem;
}

.col-1 { width: 8.33333333%;}
.col-2 { width: 16.66666667%;}
.col-3 { width: 25%;}
.col-4 { width: 33.33333333%;}
.col-5 { width: 41.66666667%;}
.col-6 { width: 50%;}
.col-7 { width: 58.33333333%;}
.col-8 { width: 66.66666667%;}
.col-9 { width: 75%;}
.col-10 { width: 83.33333333%;}
.col-11 { width: 91.66666667%;}
.col-12 {width: 100%;}

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

	.col-xs-1 { width: 8.33333333%;}
	.col-xs-2 { width: 16.66666667%;}
	.col-xs-3 { width: 25%;}
	.col-xs-4 { width: 33.33333333%;}
	.col-xs-5 { width: 41.66666667%;}
	.col-xs-6 { width: 50%;}
	.col-xs-7 { width: 58.33333333%;}
	.col-xs-8 { width: 66.66666667%;}
	.col-xs-9 { width: 75%;}
	.col-xs-10 { width: 83.33333333%;}
	.col-xs-11 { width: 91.66666667%;}
	.col-xs-12 {width: 100%;}

}


/* --------------------------------------------------

	font

-------------------------------------------------- */

.en { font-family: "Barlow", sans-serif; text-transform: uppercase;}

.text-left { text-align: left;}
.text-center { text-align: center;}
.text-right { text-align: right;}


/* --------------------------------------------------

	nav

-------------------------------------------------- */

.section-nav-wrap {
	display: flex;
	justify-content: flex-end;
	margin: 0;
}

.section-nav {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	max-width: 600px;
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.section-nav li {
	width: 33.33333333%;
	padding: 0 1.6rem;
}

.section-nav a {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	padding: 2rem 1rem 2rem 0;
	border-bottom: 1px solid rgba(255,255,255,0.32);
	color: #fff;
	line-height: 1;
}

.section-nav a::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 0;
	display: block;
	width: 8px;
	height: 10px;
	background-color: #fff;
	clip-path: polygon(0 0, 100% 0, 50% 100%);
	transform: translateY(-50%);
}

.section-nav a:hover {
	border-bottom: 1px solid rgba(255,255,255,1);
}

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

	.section-nav li {
		width: 50%;
	}

}

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

	.section-nav-wrap {
		justify-content: flex-start;
	}

	.section-nav {
		margin: 0 -1.6rem;
	}

}

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

	.section-nav li {
		width: 50%;
	}

}


/* --------------------------------------------------

	btn

-------------------------------------------------- */

.btn-group {
	display: flex;
	flex-wrap: wrap;
	gap: 2rem;
}

.btn {
	position: relative;
	display: flex;
	align-items: center;
	width: 20rem;
	height: 48px;
	padding: 0 0 0 2rem;
	background-color: #457DAA;
	color: #fff;
	font-weight: 700;
	line-height: 1;
}

.cat-contact .btn {
	width: 24rem;
}

.btn::before {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	display: block;
	height: 100%;
	aspect-ratio: 1/1;
	border-left: 1px solid #fff;
}

.btn::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 19px;
	display: block;
	width: 10px;
	height: 8px;
	background-color: currentColor;
	clip-path: polygon(0 0, 0 100%, 100% 50%);
	transition: transform 0.3s ease, right 0.3s ease;
	transform: translateY(-50%);
}

.btn-primary { background-color: #457DAA; color: #fff;}
.btn-secondary { background-color: #F4C82D; color: #fff;}
.btn-light { background-color: #F2F2F2;}
.btn-white { background-color: #fff;}

a.btn:hover,
a:hover .btn {
	background-color: #508ebf;
	color: #fff;
}

a.btn-secondary:hover,
a:hover .btn-secondary {
	background-color: #f9db6e;
}

a.btn:hover::after,
a:hover .btn::after {
	right: 14px;
}


/* --------------------------------------------------

	color

-------------------------------------------------- */

.text-primary { color: #457DAA;}
.text-secondary { color: #F4C82D;}
.text-light { color: #F2F2F2;}
.text-white { color: #fff;}

.bg-primary { background-color: #457DAA; color: #fff;}
.bg-secondary { background-color: #F4C82D; color: #fff;}
.bg-light { background-color: #F2F2F2;}
.bg-white { background-color: #fff;}

.fill-white { fill: #fff;}


/* --------------------------------------------------

	badge

-------------------------------------------------- */

.badge {
	display: inline-block;
	margin: 0;
	padding: .8rem;
	border: 2px solid currentColor;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
}


/* --------------------------------------------------

	Heading

-------------------------------------------------- */

.h3 {
	margin: 0 0 2rem;
	font-size: 2.4rem;
	font-weight: 700;
}

.h4 {
	margin: 0 0 2rem;
	font-size: 2rem;
	font-weight: 700;
}

.h5 {
	margin: 0 0 2rem;
	font-size: 1.6rem;
	font-weight: 700;
}

.key-row {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
}

.key-col {
	width: 50%;
}

.key__sub-stitle {
	margin: 0 0 1rem;
	font-size: 10rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 1px;
	text-transform: uppercase;
}

.key__title {
	font-size: 2rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 2px;
}

.key__photo {
	width: calc(100vw - ((100vw - 1200px) / 2));
	height: 600px;
	margin-top: 8rem;
	margin-left: calc((100vw - 1200px) / 2);
}

.key__photo img {
	display: block;
	height: 600px;
	width: 100%;
	max-width: none;
	object-fit: cover;
}

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

	.key__sub-stitle {
		font-size: 7.2rem;
	}

}

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

	.key-row {
		flex-direction: column;
		margin-bottom: -4rem;
	}

	.key-col {
		width: 100%;
		margin-bottom: 4rem;
	}

	.key__photo {
		width: 100%;
		height: auto;
		margin: 4rem 0 0;
		aspect-ratio: 1/0.5;
	}

	.key__photo img {
		height: auto;
		aspect-ratio: 1/0.5;
	}

}

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

	.key__sub-stitle {
		margin-bottom: 1.6rem;
		font-size: 4rem;
	}

}


.head-parts {
	display: flex;
	gap: 2rem;
	margin: 0 0 4rem;
}

.head-parts__title {
	font-size: 4rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 2px;
}

.head-parts__sub-title {
	margin: 0;
}

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

	.head-parts {
		flex-direction: column;
		align-items: flex-start;
	}

	.head-parts__title {
		font-size: 3.2rem;
	}

}


/* --------------------------------------------------

	table

-------------------------------------------------- */

.table {
	width: 100%;
}

.table tr {
	border-bottom: 1px solid #E6E6E6;
}

.table th {
	width: 160px;
	padding-top: 2.6rem;
	padding-bottom: 3.2rem;
}

.table td {
	width: calc(100% - 160px);
	padding-top: 2.6rem;
	padding-bottom: 3.2rem;
}

.table th > :last-child,
.table td > :last-child {
	margin-bottom: 0;;
}


.table-company {
	width: 100%;
}

.table-company tr {
	border-bottom: 1px solid #E6E6E6;
}

.table-company th {
	width: 160px;
	padding-top: 2.6rem;
	padding-bottom: 3.2rem;
}

.table-company td {
	width: calc(100% - 160px);
	padding-top: 2.6rem;
	padding-bottom: 3.2rem;
}

.table-company th > :last-child,
.table-company td > :last-child {
	margin-bottom: 0;;
}

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

	.table-company th {
		display: block;
		width: 100%;
		padding-top: 2.6rem;
		padding-bottom: 0;
	}

	.table-company td {
		display: block;
		width: 100%;
		padding-top: 0;
		padding-bottom: 3.2rem;
	}

}


/* --------------------------------------------------

	header

-------------------------------------------------- */

.header-wrap {
	background: #457DAA;
}

.home .header-wrap {
	padding-top: 0 !important;
}

.header {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10000;
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 2rem 2rem 2rem 7.2rem;
	transition: background-color 0.3s;
}

.home .header {
	padding-left: 7.2rem;
}

.header.is-fixed,
.home .header.is-fixed {
	background-color: #fff;
	color: #000;
}

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

	.header,
	.home .header {
		padding: 1.6rem;
	}

}


.logo {
	display: flex;
	gap: 2rem;
	align-items: center;
	color: currentColor;
}

.footer .logo {
	margin-bottom: 4rem;
}

.logo__icon {
	width: 4.8rem;
	line-height: 1;
}

.logo__icon svg {
	width: 4.8rem;
	fill: currentColor;
}

.header.is-fixed .logo__icon svg {
	fill: #69b5e9;
}

.logo dl {
	margin: 0;
	padding: 0;
	fill: currentColor;
}

.logo dt {
	margin: 0 0 1rem;
	padding: 0;
	font-size: 1.2rem;
	line-height: 1;
}

.logo dd {
	margin: 0;
	padding: 0;
	line-height: 1;
}

.logo dd svg {
	line-height: 1;
	vertical-align: top;
}

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

	.logo {
		gap: 1rem;
	}

	.logo__icon {
		width: 3.2rem;
	}

	.logo__icon svg {
		width: 3.2rem;
	}

	.logo dt {
		margin-bottom: .8rem;
		font-size: 1rem;
	}

	.logo dd svg {
		width: 16rem;
	}

}


.header__nav {
	display: flex;
	align-items: center;
	column-gap: 2rem;
}

.header-nav {
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0;
	font-weight: 500;
	list-style: none;
}

.header-nav > li {
    position: relative;
    padding: 0 1.6rem;
}

.header-nav a {
	display: block;
	padding: 1.2rem 0;
	color: #fff;
}

.header-nav a:hover {
	opacity: .5;
}

.header-nav ul {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 999;
	display: none;
	width: 250px;
	background: #fff;
	box-shadow: 0 4px 10px rgba(0,0,0,0.1);
	padding: 0;
	list-style: none;
}

.header-nav ul li {
	width: 100%;
}

.header-nav ul li a {
	display: block;
	padding: 10px 20px;
	text-decoration: none;
	color: #333;
}

.header-nav ul li a:hover {
	background-color: #f8f8f8;
	opacity: 1;
}

.header.is-fixed .header-nav a {
	color: #000;
}

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

	.header__nav {
		display: none;
	}

}


.header__sp-nav {
	display: none;
}

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

	.header__sp-nav {
		display: block;
	}

}


.spnav-trigger {
	position: relative;
	width: 52px;
	height: 52px;
	border: none;
	cursor: pointer;
}

.spnav-trigger.is-active {
	z-index: 10001;
}

.spnav-trigger span {
	display: block;
	position: absolute;
	left: 16px;
	width: 20px;
	height: 2px;
	background-color: #fff;
	transition: all 0.3s;
}

.header.is-fixed .spnav-trigger span {
	background-color: #000;
}

.spnav-trigger span:nth-of-type(1) { top: 50%; transform: translateY(-8px);}
.spnav-trigger span:nth-of-type(2) { top: 50%;}
.spnav-trigger span:nth-of-type(3) { top: 50%; transform: translateY(8px);}

.btn-sp-nav-close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	width: 40px;
	height: 40px;
	border: none;
	cursor: pointer;
}

.btn-sp-nav-close span {
	display: block;
	position: absolute;
	left: 10px;
	top: 50%;
	width: 20px;
	height: 2px;
	background-color: #fff;
	transition: all 0.3;
}

.btn-sp-nav-close span:nth-of-type(1) { transform: rotate(-45deg);}
.btn-sp-nav-close span:nth-of-type(2) { transform: rotate(45deg);}


/* --------------------------------------------------

	cat-contact

-------------------------------------------------- */

.cat-contact {
	position: relative;
	background: url(../images/common/cta-contact.jpg) no-repeat center center;
	background-size: cover;
	padding: 6rem 4rem;
}

.cat-contact::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	display: block;
	width: 100%;
	height: 100%;
	background-color: rgba(45, 58, 69, 100%);
	opacity: .75;
	mix-blend-mode: multiply;
}

.cat-contact__row {
	position: relative;
	z-index: 2;
	display: flex;
	max-width: 1480px;
	margin: 0 auto;
}

.cat-contact__head {
	display: flex;
	flex-direction: column;
	width: 32%;
	padding-right: 4rem;
}

.cat-contact__body {
	display: flex;
	width: 68%;
}

.cat-contact__tel {
	display: flex;
	flex-direction: column;
	width: 50%;
	padding: 0 6rem;
	border-left: 1px solid #fff;
}

.cat-contact__mail {
	display: flex;
	flex-direction: column;
	width: 50%;
	padding: 0 6rem;
	border-left: 1px solid #fff;
}

.cat-contact__sub-title {
	display: flex;
	align-items: center;
	column-gap: 8px;
	margin: 0 0 2rem;
	font-size: 2rem;
	font-weight: 700;
}

.cat-contact__sub-title img {
	width: auto;
	height: 20px;
	line-height: 1;
	vertical-align: middle;
}

.cat-contact__tel-mun {
	display: flex;
	align-items: center;
	margin: 0 -0.6rem;
}

.cat-contact__tel-mun + .cat-contact__tel-mun {
	margin-top: 1.6rem;
}

.cat-contact__tel-mun dt {
	margin: 0;
	padding: 0 .6rem;
	line-height: 1;
}

.cat-contact__tel-mun dt span {
	padding: 2px 4px;
	border: 1px solid #fff;
}

.cat-contact__tel-mun dd {
	padding: 0 .6rem;
	font-size: 4.4rem;
	font-weight: 700;
	line-height: 1;
}

.cat-contact__tel-mun a {
	color: #fff;
}

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

	.cat-contact__tel {
		padding: 0 4rem;
	}

	.cat-contact__tel-mun dd {
		font-size: 3.2rem;
	}

	.cat-contact__mail {
		padding: 0 4rem;
	}

}

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

	.cat-contact__row {
		flex-direction: column;
	}

	.cat-contact__head {
		width: 100%;
		padding-right: 0;
	}

	.cat-contact .head-parts {
		flex-direction: row;
		align-items: center;
	}

	.cat-contact__body {
		display: flex;
		width: 100%;
	}

	.cat-contact__tel {
		padding: 0;
		border: none;
	}

	.cat-contact__mail {
		padding: 0;
		border: none;
	}

}

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

	.section-cta {
		padding-top: 0;
		padding-bottom: 0;
	}

	.section-cta .inner {
		padding-right: 0;
		padding-left: 0;
	}

	.cat-contact {
		padding: 4rem;
		text-align: center;
	}

	.cat-contact .head-parts {
		flex-direction: column;
	}

	.cat-contact__row {
		flex-direction: column;
	}

	.cat-contact__sub-title {
		margin-right: auto;
		margin-left: auto;
	}

	.cat-contact__body {
		flex-direction: column;
	}

	.cat-contact__tel {
		width: 100%;
		margin-bottom: 4rem;
		padding: 0;
	}

	.cat-contact__mail {
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;
		padding: 0;
	}

	.cat-contact__tel-mun {
		justify-content: center;
	}

	.cat-contact__tel-mun + .cat-contact__tel-mun {
		margin-top: 2.4rem;
	}

	.cat-contact__tel-mun dd {
		font-size: 2.4rem;
	}

}


/* --------------------------------------------------

	footer

-------------------------------------------------- */

.footer {
	padding-top: 8rem;
	padding-bottom: 8rem;
}

.footer__row {
	display: flex;
	justify-content: space-between;
	width: 100%;
	gap: 2rem;
}

.footer__company {
	width: calc(100% - 660px);
}

.footer-logo {
	margin: 0 0 4rem;
	padding: 0;
	font-weight: 700;
}

.footer-logo dt {
	margin: 0;
	padding: 0;
	font-size: 1.4rem;
	list-style: 1;
}

.footer-logo dd {
	margin: 0;
	padding: 0;
	font-size: 2rem;
	line-height: 1;
	letter-spacing: 2px;
}

.footer-address {
	margin: 0 0 4rem;
}

.footer__nav {
	display: flex;
	justify-content: space-between;
	width: 660px;
}

.footer-nav {
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-nav li + li {
	margin-top: 2rem;
}

.footer-nav a {
	position: relative;
	display: inline-block;
	padding: 0 0 0 2rem;
	color: #fff;
}

.footer-nav a::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 0;
	display: block;
	width: 10px;
	height: 8px;
	background-color: #fff;
	clip-path: polygon(0 0, 0 100%, 100% 50%);
	transform: translateY(-50%);
}

.footer-nav a:hover {
	opacity: .5;
}

.footer-nav__child {
	margin: 2rem 0 0 2rem;
	padding: 0;
	list-style: none;
}

.footer-nav__child a::before {
	height: 1px;
	clip-path: none;
}

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

	.footer__row {
		flex-direction: column-reverse;
	}

	.footer__company {
		width: 100%;
	}

	.footer__nav {
		display: block;
		width: 100%;
		margin-bottom: 8rem;
	}

	.footer-nav + .footer-nav {
		margin-top: 2rem;
	} 

}

/* --------------------------------------------------

	sp-nav

-------------------------------------------------- */

.sp-nav-box {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10000;
	display: flex;
	width: 100%;
	height: 100vh;
	padding: 52px 0 0;
	background: #457DAA;
	transition: transform 0.3s ease;
	transform: translateY(-200%);
}

.sp-nav-box.is-active {
	transform: translateY(0);
}

.sp-nav {
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid rgba(255, 255, 255, 0.32);
}

.sp-nav > li {
	border-bottom: 1px solid rgba(255, 255, 255, 0.32);
}

.sp-nav a {
	display: block;
	padding: 2rem 0 2rem 1rem;
	color: #fff;
}

.sp-nav__child {
	display: none;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sp-nav__child a {
	padding: 1.6rem 0 1.6rem 2.4rem;
}


/* --------------------------------------------------

  top

-------------------------------------------------- */

.top-key__copyright {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	margin: 0;
	border-right: 1px solid #fff;
	font-size: 1.4rem;
}

.top-key__copyright span {
	position: absolute;
	transform: rotate(-90deg);
	white-space: nowrap;
}

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

	.top-key__copyright {
		display: none;
	}

}


.top-key {
	display: flex;
	height: 100vh;
	width: 100vw;
}

.top-key:after {
	content: '';
	position: absolute;
	top: 50%;
	display: block;
	width: 100%;
	height: 772px;
	background: url(../images/common/top-mv-wave.svg) no-repeat center center;
	background-size: cover;
	transform: translateY(-50%);
}

.top-key .inner {
	position: relative;
	z-index: 5;
	max-width: 100%;
	padding-left: 12rem;
	padding-right: 2rem;
}

.top-key-row {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100%;
}

.top-key-body {
	display: flex;
	align-items: center;
	justify-content: center;
}

.top-key-text-wrap {
	position: relative;
	z-index: 2;
}

.top-key-photo {
	padding: 0 2rem;
}

.top-key-photo img {
	max-width: 700px;
	width: 100%;
}

.top-key-title {
	margin: 0 0 2rem;
	font-size: 8rem;
	font-weight: 900;
	line-height: 1.4;
	white-space: nowrap;
}

.top-key-text {
	margin: 0;
	font-size: 3.2rem;
	font-weight: 700;
	line-height: 1.67;
	white-space: nowrap;
}

.top-key__photo {
	position: absolute;
	top: 0;
	left: 0;
	display: flex;
	align-items: end;
	width: 100vw;
	height: 100vh;
}

.top-key__photo::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	display: block;
	width: 100%;
	height: 100%;
	background: url(../images/common/top-mv-bg.png) no-repeat center center;
	background-size: 2500px auto;

}

.top-key__photo::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	z-index: 3;
	display: block;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, .5);
}

.top-key__photo img {
	display: block;
	max-width: none;
	width: 100vw;
	height: 100vh;
	object-fit: cover;
}


.slick-fade .slick-slide {
	z-index: 1 !important;
}

.slick-fade .slick-active {
	z-index: 2 !important;
}

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

	.top-key-row {
		position: relative;
	}

	.top-key-body {
		width: 30%;
	}

	.top-key-photo {
		width: 70%;
		text-align: right;
	}

}

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

	.top-key .inner {
		padding-left: 4rem;
		padding-right: 4rem;
	}

	.top-key-row {
		flex-direction: column;
		justify-content: center;
		gap: 4rem;
	}

	.top-key-body {
		width: 100%;
	}

	.top-key-photo {
		width: 100%;
		text-align: center;
	}

	.top-key-photo img {
		max-width: 320px;
	}

	.top-key-title {
		font-size: 4rem;
	}

	.top-key-text {
		font-size: 1.6rem;
	}

}


.top-lead {
	padding-bottom: 22rem;
}

.top-lead .inner::before {
	content: '';
	position: absolute;
	top: -5rem;
	left: -26rem;
	z-index: 1;
	display: block;
	width: 554px;
	height: 545px;
	background: url(../images/common/top-lead-bg01.svg) no-repeat center center;
	background-size: contain;
}

.top-lead .inner::after {
	content: '';
	position: absolute;
	bottom: -22rem;
	right: -20rem;
	z-index: 1;
	display: block;
	width: 484px;
	height: 426px;
	background: url(../images/common/top-lead-bg02.svg) no-repeat center center;
	background-size: contain;
}

.top-lead-row {
	position: relative;
	z-index: 4;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.top-lead-body {
	width: 53.8461538%;
}

.top-lead-list {
	display: flex;
	align-items: center;
	margin: 0 0 4rem;
	padding: 0;
	font-size: 4rem;
	font-weight: 700;
	list-style: none;
}

.top-lead-list__col {
	margin: 0;
	padding: 1.6rem 3.2rem;
	border: 1px solid currentColor;
	line-height: 1;
}

.top-lead-list__unit {
	position: relative;
	width: 30px;
	margin: 0 2px;
}

.top-lead-list__unit--multiply::before,
.top-lead-list__unit--multiply::after {
	content: '';
	display: block;
	top: 50%;
	width: 100%;
	height: 1px;
	background-color: currentColor;
}

.top-lead-list__unit--multiply::before {
	transform: rotate(45deg);
}

.top-lead-list__unit--multiply::after {
	transform: rotate(-45deg);
}

.top-lead-list__unit--equal::before,
.top-lead-list__unit--equal::after {
	content: '';
	display: block;
	top: 50%;
	width: 20px;
	height: 1px;
	margin: 0 auto;
	background-color: currentColor;
}

.top-lead-list__unit--equal::before {
	transform: translateY(-4px);
}

.top-lead-list__unit--equal::after {
	transform: translateY(4px);
}

.top-lead-title {
	margin: 0 0 3.2rem;
	font-size: 2.4rem;
	font-weight: 700;
}

.top-lead-text p {
	line-height: 2.5;
}

.top-lead-text > :last-child {
	margin-bottom: 0;
}

.top-lead-photo {
	position: relative;
	width: 30.7692308%;
}

.top-lead-photo02 {
	position: absolute;
	bottom: -14rem;
	left: -14rem;
	z-index: 4;
	width: 53.5%;
}

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

	.top-lead-list {
		font-size: 3.2rem;
	}

	.top-lead-list li {
		padding: 1.6rem;
	}

}

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

	.top-lead {
		padding-top: 8rem;
		padding-bottom: 12rem;
	}

	.top-lead .inner::before {
		top: -2rem;
		left: -2rem;
		width: 250px;
		height: 250px;
	}

	.top-lead .inner::after {
		bottom: -2rem;
		right: -2rem;
		width: 240px;
		height: 240px;
	}

	.top-lead-row {
		flex-direction: column;
	}

	.top-lead-body {
		width: 100%;
		margin-bottom: 2rem;
	}

	.top-lead-list {
		font-size: 2rem;
	}

	.top-lead-list__col {
		padding: 1.6rem 1rem;
	}



	.top-lead-title {
		font-size: 2rem;
	}

	.top-lead-photo {
		width: 100%;
	}

	.top-lead-photo01 {
		display: block;
		width: 60%;
		margin: 0 0 0 auto;
	}

	.top-lead-photo02 {
		position: absolute;
		bottom: -4rem;
		left: -0;
		width: 44%;
	}

}


.top-head-parts-wrap {
	display: flex;
	justify-content: center;
	margin: 0 0 4rem;
}

.top-head-parts {
	display: flex;
	-webkit-box-orient: horizontal;
	-webkit-box-direction: reverse;
	-webkit-flex-direction: row-reverse;
	-ms-flex-direction: row-reverse;
	flex-direction: row-reverse;
	font-size: 4rem;
	font-weight: 800;
	line-height: 1.5;
	letter-spacing: .5rem;
}

.top-head-parts__row {
	position: relative;
	padding: 0px 1.4rem;
	display: inline-block;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
	height: -webkit-fit-content;
	height: -moz-fit-content;
	height: fit-content;
	-webkit-writing-mode: vertical-rl;
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
}

.top-head-parts__row::after {
	content: "";
	position: absolute;
	top: 0;
	right: 10px;
	width: 1px;
	height: 100%;
	background-color: #000;
}

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

	.top-head-parts {
		font-size: 3.2rem;
	}

	.top-head-parts__row {
		padding: 0px .8rem;
	}

}


.key-feature__title {
	margin: 0 0 3.2rem;
	font-size: 2.4rem;
	font-weight: 700;
	line-height: 1.4;
}

.key-feature__text p {
	line-height: 2.4;
}

.key-feature__text > :last-child {
	margin-bottom: 0;
}

.top-business-row {
	margin-bottom: .1rem;
}

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

	.top-business-row {
		margin: 0 -4rem .1rem;
	}

}


.top-business-card {
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	height: 320px;
	background-color: #000;
	color: #fff;
	cursor: pointer;
}

.top-business-card:hover {
	color: #fff;
}

.top-business-card::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 2;
	display: block;
	background: transparent linear-gradient(90deg, #030405 0%, #457DAA00 100%) 0% 0% no-repeat;
	opacity: 0.82;
}

.top-business-row:nth-child(even) .top-business-card::before {
	background: transparent linear-gradient(-90deg, #030405 0%, #457DAA00 100%) 0% 0% no-repeat;
}

.top-business-card__photo {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
}

.top-business-card__photo img {
	max-width: none;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

a.top-business-card:hover .top-business-card__photo img {
	transform: scale(1.1);
}

.top-business-card__en {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	margin: 0;
	border-right: 1px solid #fff;
}

.top-business-row:nth-child(even) .top-business-card__en {
	left: auto;
	right: 0;
	border-right: none;
	border-left: 1px solid #fff;
}

.top-business-card__en span {
	position: absolute;
	transform: rotate(-90deg);
}

.top-business-card__body {
	position: relative;
	z-index: 4;
	width: 52rem;
	max-width: 100%;
	margin: 0 0 0 92px;
}

.top-business-row:nth-child(even) .top-business-card__body {
	margin: 0 92px 0 auto;
}

.top-business-card__title {
	margin: 0 0 1rem;
	font-size: 3.2rem;
	font-weight: 700;
	line-height: 1.4;
}

.top-business-card__text > :last-child {
	margin-bottom: 0;
}

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

	.top-business-card::before {
		background: transparent linear-gradient(90deg, #030405 50%, #457DAA00 100%) 0% 0% no-repeat;
	}

	.top-business-row:nth-child(even) .top-business-card::before {
		background: transparent linear-gradient(-90deg, #030405 50%, #457DAA00 100%) 0% 0% no-repeat;
	}

	.top-business-card__en {
		width: 3rem;
		font-size: 1.4rem;
	}
	
	.top-business-card__body,
	.top-business-row:nth-child(even) .top-business-card__body {
		width: 100%;
		margin: 0;
		padding: 0 3rem 0 6rem;
	}
	
	.top-business-row:nth-child(even) .top-business-card__body {
		width: 100%;
		margin: 0;
		padding: 0 6rem 0 3rem;
	}

	.top-business-card__title {
		font-size: 2.4rem;
	}

}


.top-feature::after {
	content: '';
	position: absolute;
	top: 16rem;
	bottom: 0;
	right: 0;
	z-index: -1;
	display: block;
	width: 90%;
	background-color: #F2F2F2;
}

.top-feature-row {
	display: flex;
	margin: 0 -2rem -4rem;
}

.top-feature-col {
	width: 33.33333333%;
	margin-bottom: 4rem;
	padding: 0 2rem;
}

.top-feature-card {
	display: block;
	color: #000;
	cursor: pointer;
}

.top-feature-card:hover {
	color: #000;
}

.top-feature-card__photo {
	overflow: hidden;
	margin: 0 0 2rem;
}

.top-feature-card__photo img {
	display: block;
	max-width: none;
	width: 100%;
}

a.top-feature-card:hover .top-feature-card__photo img {
	transform: scale(1.1);
}

.top-feature-card__title {
	display: flex;
	align-items: center;
	column-gap: .8rem;
	margin: 0 0 2rem;
	font-size: 2rem;
	font-weight: 700;
	list-style: 1.4;
}

.top-feature-card__text > :last-child {
	margin-bottom: 0;
}

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

	.top-feature::after {
		width: calc(100vw - 2rem);
	}

	.top-feature-row {
		flex-direction: column;
	}

	.top-feature-col {
		width: 100%;
	}

}


.top-news {
	padding-top: 16rem;
	padding-bottom: 16rem;
}

.top-news__row {
	position: relative;
}

.top-news__head {
	position: absolute;
	z-index: 10000;
	width: 33.33333333%;
	height: 100%;
	background-color: #fff;
}

.top-news__head::after {
	content: '';
	position: absolute;
	top: 0;
	bottom: -4rem;
	right: 0;
	z-index: 9999;
	display: block;
	width: 100vw;
	background-color: #fff;
}

.top-news__head-body {
	position: relative;
	z-index: 10001;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.top-news__head-body > :last-child {
	margin-bottom: 0;
}

.top-news__body {
	margin: 0 -2rem;
}

.top-news-slide-wrap {
	margin: 0;
}

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

	.top-news {
		padding-top: 4rem;
		padding-bottom: 8rem;
	}

	.top-news__head {
		position: static;
		width: 100%;
		height: auto;
		margin-bottom: 4rem;
	}

	.top-news__head::after {
		display: none;
	}

	.slick-btn-group {
		justify-content: space-between;
		width: 100%;
		padding: 0 3rem;
	}

}


.news-card-wrap {
	padding: 0 2rem;
}

.top-news .slick-list {
	overflow: visible !important;
}

.news-card {
	position: relative;
	overflow: hidden;
	display: block;
	color: #fff;
	cursor: pointer;
}

.news-card:hover {
	color: #fff;
}

.news-card::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	z-index: 1;
	display: block;
	background: transparent linear-gradient(180deg, #000000 0%, #00000000 100%);
}

.news-card__photo {
	overflow: hidden;
}

.news-card__photo img {
	display: block;
	width: 100%;
	max-width: none;
	aspect-ratio: 400/480;
	object-fit: cover;
}

a.news-card:hover .news-card__photo img {
	transform: scale(1.1);
}

.news-card__head {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	width: 100%;
	padding: 3.2rem 2rem 0;
}

.news-card__date {
	margin: 0 0 .4rem;
}

.news-card__title {
	margin: 0 0 2rem;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.4;
}

.news-card__desc {
	font-size: 1.4rem;
}

.news-card__desc > :last-child {
	margin-bottom: 0;
}

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

	.news-card__desc {
		font-size: 1.4rem;
	}

}


.news-card__cat {
	position: absolute;
	bottom: 0;
	right: 2rem;
	left: 2rem;
	z-index: 2;
	padding: 1rem 0;
	border-top: 1px solid #fff;
	font-size: 1.4rem;
}

.news-card__cat ul {
	display: flex;
	justify-content: flex-end;
	margin: 0;
	padding: 0;
	list-style: none;
}


.top-company {
	padding-bottom: 8rem;
}

.top-company-mv {
	overflow: hidden;
	position: relative;
	margin: 0 0 3.2rem;
}

.top-company-mv__text {
	overflow: hidden;
	position: absolute;
	bottom: -16px;
	left: 0;
	right: 0;
	z-index: 1;
	font-size: 13.5rem;
	font-weight: 900;
	line-height: 1;
	color: #fff;
	white-space: nowrap;
}

.top-company__ticker {
	display: inline-flex;
	white-space: nowrap;
	animation: ticker-scroll 60s linear infinite;
}

.ticker-item {
	padding-left: 4rem; 
}

/* アニメーションの定義 */
@keyframes ticker-scroll {
	0% { transform: translateX(0); }
	100% { transform: translateX(-50%); }
}


.top-company__row {
	position: relative;
	display: flex;
}

.top-company__photo {
	width: calc(100% - 800px);
}

.top-company__photo img {
	position: absolute;
	top: 0;
	right: 50%;
	display: block;
	width: 50vw;
}

.top-company-box {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 800px;
	margin-top: 10rem;
	padding: 60px 80px;
}

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

	.top-company {
		padding-bottom: 0;
	}

	.top-company .inner {
		padding-left: 2rem;
		padding-right: 2rem;
	}

	.top-company-mv {
  		overflow: visible;
  		position: relative;
		z-index: 100;
  		margin: 0;
	}

	.top-company-mv img {
		display: block;
		max-width: none;
		width: 100%;
		aspect-ratio: 1.6/1;
		object-fit: cover;
	}

	.top-company-mv__text {
  		font-size: 6rem;
	}

	.top-company__row {
		flex-direction: column;
	}

	.top-company__photo {
		width: auto;
		margin: 0 -2rem;
	}

	.top-company__photo img {
		position: static;
		width: 100vw;
		aspect-ratio: 1.6/1;
		object-fit: cover;
	}

	.top-company-box {
		top: -4rem;
		margin-top: 0;
		padding: 4rem;
	}

}


/* --------------------------------------------------

	モリシン精機について

-------------------------------------------------- */

.about-business-box {
	position: relative;
	margin-top: 8rem;
	margin-bottom: 12rem;
	padding-top: 4rem;
}

.about-business-box:last-child {
	margin-bottom: 0;
}

.about-business-box__head {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 2rem;
	padding: 4rem;
}

.about-business-box__title {
	margin: 0;
	padding-right: 2rem;
	border-right: 1px solid rgba(255,255,255,0.32);
	font-size: 2rem;
	font-weight: 700;
	line-height: 1;
}

.about-business-box__en {
	margin: 0;
	line-height: 1;
	opacity: .92;
}

.about-business-box__photo {
	margin: 0 0 3.2rem;
}

.about-business-box__row {
	display: flex;
	margin: 0 -2rem;
}

.about-business-box__text {
	width: 50%;
	padding: 0 2rem;
}

.about-business-box__text > :last-child {
	margin-bottom: 0;
}

.about-business-box__thumb {
	display: flex;
	justify-content: space-between;
	width: 50%;
	padding: 0 2rem;
}

.about-business-box__thumb-col {
	width: calc(50% - 1rem);
}

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

	.about-business-box__head {
		top: 0;
		flex-direction: column;
		gap: 1rem;
		padding: 2rem;
	}

	.about-business-box__title {
		width: 100%;
		padding-right: 0;
		border: none;
		line-height: 1;
	}

	.about-business-box__en {
		width: 100%;
		line-height: 1;
	}

	.about-business-box__photo {
		margin: 0 -4rem 2rem;
	}

	.about-business-box__row {
		flex-direction: column;
	}

	.about-business-box__text {
		width: 100%;
		margin-bottom: 2rem;
	}

	.about-business-box__thumb {
		width: 100%;
	}

}


.can-head .can-head__num {
	margin: 0 0 1rem;
	font-size: 2rem;
	font-weight: 700;
}


.area-box {
	display: flex;
	background-color: #fff;
	color: #000;
}

.area-box + .area-box {
	margin-top: 1px;
}

.area-box__photo {
	display: flex;
	width: 33.33333333%;
}

.area-box__photo img {
	display: block;
	width: 100%;
	max-width: none;
	height: 100%;
	object-fit: cover;
}

.area-box__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: calc(100% - 33.33333333%);
	padding: 4rem;
}

.area-box h3 {
	margin: 0 0 1rem;
	font-size: 2rem;
	font-weight: 700;
}

.area-box__body > :last-child {
	margin-bottom: 0;
}

.area-box__body ul {
	display: flex;
	flex-wrap: wrap;
	margin: 0 0 0 2rem;
	padding: 0;
}

.area-box__body li {
	margin: 0 4rem 0 0;
	padding: 0;
}

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

	.area-box {
		flex-direction: column;
	}

	.area-box__photo {
		width: 100%;
	}

	.area-box h3 {
		font-size: 2rem;
	}

	.area-box__body {
		width: 100%;
		padding: 2rem;
	}

}


.equipment-table {
	width: 100%;
}

.equipment-table thead {
	background-color: #F2F2F2;
}

.equipment-table thead th {
	padding: 1rem;
}

.equipment-table tbody tr {
	border-bottom: 1px solid #E6E6E6;
}

.equipment-table tbody th,
.equipment-table tbody td {
	padding: 1rem;
}

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

	.equipment-table thead {
		display: none;
	}

	.equipment-table tbody tr {
		display: block;
		padding: 2rem;
		border: 1px solid #E6E6E6;
	}

	.equipment-table tbody tr + tr {
		margin-top: 2rem;
	}
	
	.equipment-table tbody td {
		display: block;
		width: 100%;
		padding: 0;
		text-align: left;
	}

	.equipment-table td:nth-child(1):before {
		content: '設備名：';
		display: inline-block;
	}

	.equipment-table td:nth-child(2):before {
		content: 'メーカー：';
		display: inline-block;
	}

	.equipment-table td:nth-child(3):before {
		content: '型式：';
		display: inline-block;
	}

	.equipment-table td:nth-child(4):before {
		content: '台数：';
		display: inline-block;
	}

}


/* --------------------------------------------------

	事例紹介・お知らせ - 一覧

-------------------------------------------------- */

.pagination {
	flex-wrap: wrap;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-top: 8rem;
	gap: .8rem;
}

.pagination .page-numbers {
	padding: 8px 16px;
	border: 1px solid #ddd;
	text-decoration: none;
	color: #333;
}

.pagination .page-numbers.current {
	background: #333;
	color: #fff;
	border-color: #333;
}


/* --------------------------------------------------

	事例紹介・お知らせ - 詳細

-------------------------------------------------- */

.case-detail__head {
	margin-bottom: 40px;
}

.case-detail__meta {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1.6rem;
	padding-bottom: .8rem;
	border-bottom: 1px solid #E6E6E6;
}

.case-detail__title {
	margin: 0;
	font-size: 4rem;
	font-weight: 700;
	line-height: 1.4;
}

.case-detail__body {
	margin-bottom: 8rem;
}

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

	.case-detail__title {
		font-size: 2rem;
	}

	.case-detail__body {
		margin-bottom: 4rem;
	}

}


.case-detail__nav {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	margin: 0 -1rem -2rem;
}

.case-detail__nav-col {
	width: 33.33333333%;
	margin-bottom: 2rem;
	padding: 0 1rem;
}

.case-detail__nav-col a {
	position: relative;
}

.case-detail__nav-col--next a {
	padding-left: 2rem;
}

.case-detail__nav-col--next a::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 0;
	display: block;
	width: 10px;
	height: 8px;
	background-color: currentColor;
	clip-path: polygon(0 50%, 100% 0, 100% 100%);
	transition: transform 0.3s ease, right 0.3s ease;
	transform: translateY(-50%);
}

.case-detail__nav-col--prev a {
	padding-right: 2rem;
}

.case-detail__nav-col--prev a::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 0;
	display: block;
	width: 10px;
	height: 8px;
	background-color: currentColor;
	clip-path: polygon(0 0, 0 100%, 100% 50%);
	transition: transform 0.3s ease, right 0.3s ease;
	transform: translateY(-50%);
}

@media screen and (max-width: 767px) {
	
	.case-detail__nav-col--next {
		order: 1;
		width: 50%;
	}

	.case-detail__nav-col--list {
		order: 3;
		width: 100%;
	}

	.case-detail__nav-col--prev {
		order: 2;
		width: 50%;
	}

}


h2.wp-block-heading {
	position: relative;
	margin: 4rem 0;
	padding-bottom: 2rem;
	border-bottom: 2px solid #E6E6E6;
	font-size: 2.4rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 1px;
}

h2.wp-block-heading::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: -2px;
	display: block;
	width: 4rem;
	height: 2px;
	background-color: #457DAA;
}

h3.wp-block-heading {
	margin: 0 0 2rem;
	font-size: 2.4rem;
	font-weight: 800;
	line-height: 1.4;
	letter-spacing: 2px;
}

h4.wp-block-heading {
	margin: 0 0 2rem;
	font-size: 1.6rem;
	font-weight: 800;
	letter-spacing: 2px;
}

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

	h2.wp-block-heading {
		margin-bottom: 2rem;
		font-size: 2rem;
	}

}


.case-detail__body .wp-block-gallery {
	margin: 4rem 0;
}

.wp-block-image {
	margin: 2rem 0;
}

.wp-block-tablet table {
	width: 100%;
}

.wp-block-table table th,
.wp-block-table table td {
	padding: 1rem;
	border: 1px solid #ddd;
}

.wp-block-table table th {
	background-color: #DEF1FB;
}


/* --------------------------------------------------

	会社案内

-------------------------------------------------- */

.company-profile-row {
	display: flex;
	margin: 0 -2rem;
}

.company-profile-col {
	width: 50%;
	padding: 0 2rem;
}

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

	.company-profile-row {
		flex-direction: column;
	}

	.company-profile-col {
		width: 100%;
	}

}


.philosophy-box {
	font-size: 2.4rem;
	font-weight: 700;
	text-align: center;
}

.philosophy-box > :last-child {
	margin-bottom: 0;
}

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

	.philosophy-box {
		font-size: 2rem;
	}

}


.history-row {
	display: flex;
}

.history-col {
	width: 25%;
}

.history-box {
	flex: 1;
	display: flex;
	flex-direction: column;
	margin-right: 1px;
}

.history-box__year {
	margin-bottom: 1.6rem;
	font-size: 3.6rem;
	font-weight: 700;
	line-height: 1;
}

.history-box__year-unit {
	font-size: 1.6rem;
}

.history-box__month {
	margin-bottom: 2rem;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1;
}

.history-box__body {
	flex: 1;
	padding: 4rem 6rem;
	background-color: #fff;
	color: #000;
}

.history-slide .slick-track {
	display: flex !important;
}

.history-slide .slick-slide {
	display: flex !important;
	flex-direction: column;
	height: auto !important;
}


.map-box iframe {
	width: 100%;
	aspect-ratio: 16 / 9;
}

.map-box iframe iframe {
	width: 100%;
	height: 100%;
}


/* --------------------------------------------------

	採用情報

-------------------------------------------------- */

.section-recruit-slide {
	background: linear-gradient(0deg, rgba(255, 255, 255, 1) 50%, rgba(69, 125, 170, 1) 50%);
}

.message-slide .slick-list {
	overflow: visible;
}

.message-slide-box {
	padding: 0 2rem;
}

.message-box {
	display: flex;
	margin-top: 8rem;
}

.message-box__head {
	width: 40%;
}

.message-box__title {
	font-size: 4rem;
	font-weight: 700;
}

.message-box__body {
	width: 60%;
}

.message-box__body > :last-child {
	margin-bottom: 0;
}

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

	.message-box {
		flex-direction: column;
		margin-top: 4rem;
	}

	.message-box__head {
		width: 100%;
	}

	.message-box__title {
		margin-bottom: 2rem;
		font-size: 2.4rem;
	}

	.message-box__body {
		width: 100%;
	}

}

.environment-box {
	display: flex;
	align-items: center;
}

.environment-box + .environment-box {
	margin-top: 4rem;
}

.environment-box__photo {
	width: 120px;
}

.environment-box__photo-icon {
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 2rem;
	border: 2px solid #fff;
	border-radius: 50%;
	aspect-ratio: 1/1;
}

.environment-box__text {
	width: calc(100% - 120px);
	padding-left: 2rem;
}

.environment-box__text > :last-child {
	margin-bottom: 0;
}

.environment-box__title {
	margin: 0 0 1rem;
	font-size: 2rem;
	font-weight: 700;
}

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

	.environment-box {
		flex-direction: column;
	}

	.environment-box__photo {
		width: 100px;
		margin-bottom: 2rem;
	}

	.environment-box__photo-icon {
		padding: 1.6rem;
	}

	.environment-box__text {
		width: 100%;
		padding-left: 0;
	}

}


.profile-row {
	display: flex;
	justify-content: center;
	max-width: 980px;
	margin: 0 auto 4rem;
}

.profile-col {
	position: relative;
	flex: 1;
	display: flex;
	width: 33.33333333%;
}

.profile-col::before {
	content: '';
	position: absolute;
	top: -1rem;
	bottom: -1rem;
	right: -1rem;
	left: -1rem;
	display: block;
	border-radius: 50%;
	border: 2px solid #000;
	aspect-ratio: 1/1;
}

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

	.profile-row {
		flex-direction: column;
		align-items: center;
	}

	.profile-col {
		width: 100%;
	}

	.profile-col::before {
		display: none;
	}

}


.profile-box {
	display: flex;
	align-items: center;
	flex-direction: column;
	justify-content: center;
	width: 100%;
	padding: 4rem;
	font-size: 2rem;
	font-weight: 700;
	text-align: center;
	aspect-ratio: 1/1;
}

.profile-box__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 74px;
	margin: 0 0 2rem;
}

.desired-footer {
	font-size: 2rem;
	font-weight: 700;
}

.desired-footer > :last-child {
	margin-bottom: 0;
}

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

	.profile-box {
		flex-direction: row;
		align-items: center;
		margin-bottom: 0;
		padding: 0;
		aspect-ratio: auto;
	}

	.profile-box + .profile-box {
		margin-top: 3.2rem;
	}

	.profile-box__icon {
		width: 74px;
	}

	.profile-box__text {
		width: calc(100% - 74px);
		padding-left: 2rem;
	}

}


.work-style-box {
	height: 100%;
}

.work-style-box__text {
	padding: 4rem;
}

.work-style-box__text > :last-child {
	margin-bottom: 0;
}

.work-style-box .h3 {
	font-size: 2rem;
}

.work-style-box .h4 {
	font-size: 1.6rem;
}


.faq-box {
	display: flex;
	padding: 3.2rem 0;
	border-bottom: 1px solid #E6E6E6;
}

.faq-box__head {
	width: 10rem;
	font-size: 3.2rem;
	font-weight: 700;
	line-height: 1;
	text-align: center;
}

.faq-box__body {
	width: calc(100% - 10rem);
}

.faq-box__body dl {
	margin: 0;
	padding: .4rem 0 0;
}

.faq-box__body dt {
	margin: 0 0 3.2rem;
	padding: 0;
}

.faq-box__body dd {
	margin: 0;
	padding: 0;
}


/* --------------------------------------------------

	お問い合わせ

-------------------------------------------------- */

.contact-tel {
	display: flex;
	align-items: center;
	margin: 0 -0.6rem 2rem;
}

.contact-tel dt {
	margin: 0;
	padding: 0 .6rem;
	line-height: 1;
	font-weight: 700;
}

.contact-tel dt span {
	padding: 2px 4px;
	border: 1px solid currentColor;
}

.contact-tel dd {
	margin: 0;
	padding: 0 .6rem;
	font-size: 4.4rem;
	line-height: 1;
	font-weight: 700;
}

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

	.contact-tel dd {
		font-size: 2.4rem;
	}

	.contact-tel dd a {
		color: #000;
	}

}


.form-box {
	padding: 4rem;
}

.form-box .snow-monkey-form {
	max-width: 68rem;
	width: 100%;
	margin: 0 auto;
}

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

	.form-box {
		margin: 0 -2rem;
	}

}


.smf-item__label__text {
	font-weight: 700;
}

.smf-item.is-req .smf-item__label__text::after {
	display: inline-block;
	content: '必須';
	margin: 0 0 0 1rem;
	padding: .4rem;
	border: 2px solid currentColor;
	font-size: 1.4rem;
	color: #f42d2d;
	line-height: 1;
}

.smf-item__description {
	font-size: 1.4rem;
}

.snow-monkey-form[data-screen="confirm"] .smf-item__description {
	display: none;
}

.smf-action {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8rem;
}

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

	.smf-action {
		flex-direction: column-reverse;
		gap: 4rem;
	}

}


.form-box .smf-action .smf-button-control__control {
	position: relative;
	display: flex;
	align-items: center;
	width: 20rem;
	height: 48px;
	padding: 0 0 0 2rem;
	background: #457DAA none;
	border: none;
	border-radius: 0;
	box-shadow: none;
	color: #fff;
	font-weight: 700;
	line-height: 1;
	appearance: none;
	-webkit-appearance: none;
	outline: none;
	cursor: pointer;
	transition: .3s ease;
}

.form-box .smf-action .smf-button-control__control::before {
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	display: block;
	height: 100%;
	aspect-ratio: 1/1;
	border-left: 1px solid #fff;
}

.form-box .smf-action .smf-button-control__control::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 19px;
	display: block;
	width: 10px;
	height: 8px;
	background-color: currentColor;
	clip-path: polygon(0 0, 0 100%, 100% 50%);
	transition: transform 0.3s ease, right 0.3s ease;
	transform: translateY(-50%);
}

.form-box .smf-action .smf-button-control__control[data-action="back"] {
	justify-content: flex-end;
	padding: 0 2rem 0 4rem;
	background: #333 none;
	text-align: right;
}

.form-box .smf-action .smf-button-control__control[data-action="back"]::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	height: 100%;
	aspect-ratio: 1/1;
	border-left: none;
	border-right: 1px solid #fff;
}

.form-box .smf-action .smf-button-control__control[data-action="back"]::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 19px;
	display: block;
	width: 10px;
	height: 8px;
	background-color: currentColor;
	clip-path: polygon(0 50%, 100% 0, 100% 100%);
	transition: transform 0.3s ease, right 0.3s ease;
	transform: translateY(-50%);
}

.form-box .smf-action .smf-button-control__control:hover {
	background-color: #508ebf;
	color: #fff;
}

.form-box .smf-action .smf-button-control__control:hover::after {
	right: 14px;
}

.form-box .smf-action .smf-button-control__control[data-action="back"]:hover {
	background-color: #666;
	color: #fff;
}

.form-box .smf-action .smf-button-control__control[data-action="back"]::after:hover {
	left: 14px;
}


/* --------------------------------------------------

	slick

-------------------------------------------------- */

.slick-btn-group {
	display: flex;
	gap: .4rem;
	margin: 2rem 0 0 auto;
}

.top-news .slick-btn-group {
	width: calc(100% - 33.33333333%);
	padding: 0 2rem;
}

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

	.top-news .slick-btn-group {
		width: 100%;
	}

}


.slick-btn {
	position: relative;
	display: block;
	width: 60px;
	height: 32px;
	background-color: #457DAA;
	cursor: pointer;
	transition: .3s ease;
}

.slick-btn::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	display: block;
	width: 10px;
	height: 8px;
	background-color: #fff;
	clip-path: polygon(0 0, 0 100%, 100% 50%);
	transition: .3s ease;
	transform: translate(-50%, -50%);
}

.slick-btn--prev {
	transform: scaleX(-1);
}

.slick-btn:hover {
	background-color: #508ebf;
}

.slick-btn:hover::before {
	left: calc(50% + 4px);
}

.bg-primary .slick-btn {
	background-color: #fff;
}

.bg-primary .slick-btn::before {
	background-color: #457DAA;
}

.bg-primary .slick-btn:hover {
	background-color: #F2F2F2;
}


/* --------------------------------------------------

	フェードイン

-------------------------------------------------- */

.fade-in {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.8s, transform 0.8s;
}

body.is-animated .fade-in.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.delay-01 { transition-delay: 0.2s;}
.delay-02 { transition-delay: 0.4s;}
.delay-03 { transition-delay: 0.6s;}
.delay-04 { transition-delay: 0.8s;}
.delay-05 { transition-delay: 1s;}
.delay-06 { transition-delay: 1.2s;}
.delay-07 { transition-delay: 1.4s;}
.delay-08 { transition-delay: 1.6s;}
.delay-09 { transition-delay: 1.8s;}
.delay-10 { transition-delay: 2s;}


/* --------------------------------------------------

	ホーム ローディング

-------------------------------------------------- */

.loading {
	position: fixed;
	inset: 0;
	z-index: 100000;
	height: 100svh;
	background-color: #333;
}

.loading__inner {
	width: 100%;
	height: inherit;
	display: grid;
	place-items: center; 
	align-content: center;
	row-gap: 10px;
}

.loading__text,
.loading__logo {
	opacity: 0;
	transform: translate3d(0, 10px, 0);
	will-change: opacity, transform; 
	transition: transform 0.8s ease-out, opacity 0.8s ease-out;
}

.loading__text {
	font-size: 2.4rem;
	font-weight: 700;
	letter-spacing: 0.2em;
	line-height: 2;
	text-align: center;
	color: #fff;
}

.loading__logo {
	height: 80px;
	margin: 0 auto;
	opacity: 0;
	transform: translate3d(0, 10px, 0); 
    will-change: transform, opacity;
}

.loading__logo img {
	width: 200px;
}

.loading__text.is-shown, 
.loading__logo.is-shown {
	opacity: 1;
	transform: translateY(0);
}