* {
	box-sizing: border-box;
	word-break: break-all;
}

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

body {
	background-color: #fff;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.8rem;
	font-weight: 500;
	color: #333;
	letter-spacing: 1px;
	line-height: 2;
}

p {
	margin-bottom: 2rem;
}

.en {
	font-family: "Chakra Petch", sans-serif;
	font-weight: 400;
	font-style: normal;
	text-transform: uppercase;
}


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

.section-row {
	position: relative;
	margin-top: 12rem;
}

@media screen and (max-width: 768px) {
	
	.section {
		padding-top: 4rem;
		padding-bottom: 4rem;
	}

	.section-row {
		margin-top: 4rem;
	}
	
}


.inner {
	width: 100%;
	max-width: 1360px;
	margin: 0 auto;
	padding: 0 4rem;
}

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


.float-left { float: left;}
.float-right { float: right;}

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

	.float-xs-none { float: none;}

}

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


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

	images

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

img {
	max-width: 100%;
	height: auto;
	transition: .2s;
}


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

	display

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

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

@media screen and (max-width: 768px) {
	
	.d-sm-block { display: block;}
	.d-sm-none { display: none;}
	.d-sm-flex { display: flex;}
	
}


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

	space

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

.mb-0 { margin-bottom: 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-1 { margin-bottom: 1rem !important;}
.mb-2 { margin-bottom: 2rem !important;}
.mb-4 { margin-bottom: 4rem !important;}
.mb-8 { margin-bottom: 8rem !important;}


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

.pb-0 { padding-bottom: 0 !important;}
.pb-2 { padding-bottom: 2rem !important;}
.pb-4 { padding-bottom: 4rem !important;}
.pb-8 { padding-bottom: 8rem !important;}


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

	Grid system

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

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

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

@media screen and (max-width: 768px) {
	
	.row {
		margin: 0 -2rem -4rem;
	}

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


.col-1 { width: 8.3333333%;}
.col-2 { width: 16.6666667%;}
.col-3 { width: 25%;}
.col-4 { width: 33.33333333%;}
.col-5 { width: 41.6666667%;}
.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.6666667%;}
.col-12 { width: 100%;}

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

	.col-xs-1 { width: 8.3333333%;}
	.col-xs-2 { width: 16.6666667%;}
	.col-xs-3 { width: 20%;}
	.col-xs-4 { width: 25%;}
	.col-xs-5 { width: 41.6666667%;}
	.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.6666667%;}
	.col-xs-12 { width: 100%;}

}


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

@media screen and (max-width: 768px) {
	
	.flex-xs-row { flex-direction: row;}
	
}


.align-items-center { align-items: center;}
.align-items-end { align-items: flex-end;}

.justify-content-between { justify-content: space-between;}
.justify-content-center { justify-content: center;;}


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

	card

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

.card {
	padding: 4rem;
}

.card__title {
	margin: 0 0 3.2rem;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.52;
}

.card__body {
}

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

@media screen and (max-width: 768px) {
	
	.card {
		padding: 2rem;
	}
	
	.card__title {
		margin-bottom: 2rem;
	}
	
}


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

	badge

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

.badge {
	display: inline-block;
	padding: 1rem 1.6rem;
	background-color: #F1F3F7;
	font-size: 1.4rem;
	color: #333;
	line-height: 1;
	text-align: center;
	vertical-align: baseline;
}

.badge--block {
	display: block;
}


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

	text

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

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


@media screen and (max-width: 768px) {
	
	.text-sm-left { text-align: left;}
	.text-sm-center { text-align: center;}
	.text-sm-right { text-align: right;}
	
}


.font-large { font-size: 2rem;}

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

	.font-large { font-size: 1.6rem;}

}


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

	color

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

a { color: #0ABAB5; word-break: break-all; transition: .2s;}
a:hover { color: #f1931B;}

.text-primary { color: #0ABAB5;}
.text-secondary { color: #BFC5CA;}
.text-light { color: #F1F3F7;}
.text-white { color: #fff;}

.bg-primary { background-color: #0ABAB5; color: #fff;}
.bg-secondary { background-color: #BFC5CA; color: #fff;}
.bg-light { background-color: #F1F3F7;}
.bg-white { background-color: #fff;}
.bg-black { background-color: #000; color: #fff;}


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

	Heading

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

.h2 {
	margin: 0 0 3.2rem;
	font-size: 4rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 2px;
}

.h3 {
	margin: 0 0 3.2rem;
	font-size: 2.4rem;
	font-weight: 700;
	line-height: 1.52;
	letter-spacing: 2px;
}

@media screen and (max-width: 768px) {
	
	.h2 {
		font-size: 3.2rem;
	}

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


.head-parts {
	margin: 0 0 5.2rem;
}

.head-parts__title {
	margin: 0 0 0.8rem;
	font-size: 6rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 2px;
	word-break: keep-all;
}

.home .head-parts__title {
	font-size: 6rem;
}

.head-parts__title--small,
.home .head-parts__title--small {
	font-size: 4rem;
}

.head-parts__sup {
	margin: 0;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 2px;
}

@media screen and (max-width: 768px) {
	
	.head-parts {
		margin-bottom: 3.2rem;
	}

	.head-parts__title,
	.home .head-parts__title {
		font-size: 4rem;
	}

	.head-parts__title--small {
		font-size: 3rem;
	}

	.head-parts__sup {
		font-size: 1.6rem;
	}

}


.key {
	position: relative;
	height: 480px;
	background-image: linear-gradient(0deg, rgba(10, 186, 181, 1) 80%, rgba(255, 255, 255, 1) 80%);
}

.key__inner {
	display: flex;
	align-items: center;
	height: 100%;
}

.key__text {
	width: 90vw;
	max-width: 1320px;
	margin: 0 auto;
	padding: 0 2rem;
}

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

.key__title {
	width: calc(100% / 2);
	margin: 0 0 1rem;
	font-size: 6rem;
	font-weight: 700;
	line-height: 1.2;
	color: #fff;
}

.key__sup {
	width: calc(100% / 2);
	font-weight: 700;
	color: #fff;
}

.key__photo {
	position: absolute;
	width: 48%;
	margin: 0 0 0 auto;
	top: 0;
	right: 0;
}

.key__photo img {
	overflow: hidden;
    width: 100%;
	height: 420px;
	object-fit: cover;
}

@media screen and (max-width: 768px) {
	
	.key {
		height: auto;
	}
	
	.key--no-photo {
		background-color: #0ABAB5;
		background-image: none;
	}
	
	.key__inner {
		position: relative;
		flex-direction: column-reverse;
		height: 100%;
	}

	.key__text {
		margin: 2rem 0 0;
		padding: 0 0 4rem;
	}
	
	.key--no-photo .key__text {
		margin-top: 4rem;
	}

	.key__title {
		width: 100%;
		font-size: 4rem;
		line-height: 1.2;
	}

	.key__sup {
		width: 100%;
	}

	.key__photo {
		position: static;
		width: 95%;
	}

	.key__photo img {
		height: 200px;
	}
	
}


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

	Buttons

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

.btn {
	position: relative;
	display: flex;
	justify-content: flex-start;
	column-gap: 1rem;
	width: 24rem;
	max-width: 100%;
	padding: 2rem 0;
	border-top: 1px solid #DDDDDD;
	border-bottom: 1px solid #DDDDDD;
	text-align: left;
	vertical-align: middle;
	font-weight: 700;
	color: #333;
	cursor: pointer;
	user-select: none;
	transition: .2s;
}

.btn--large {
	width: 100%;
}

.btn:hover {
	color: #0ABAB5;
}

.btn::before {
	content: '';
	display: block;
	width: 30px;
	height: 30px;
	background: url("../images/common/arrow-right--dark.svg") no-repeat center center;
	background-size: contain;
	transition: .2s;
}

.btn:hover::before {
	background-image: url("../images/common/arrow-right--primary.svg");
}

.btn::after {
	position: absolute;
	bottom: -1px;
	left: 0;
	transform: scaleX(0);
	transform-origin: center left;
	width: 100%;
	height: 1px;
	background-color: #0ABAB5;
	content: '';
	transition: .2s;
}

.btn:hover::after {
	transform: scaleX(1);
}



.btn-cta {
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 360px;
	max-width: 100%;
	padding: 2rem;
	background-color: #0ABAB5;
	border: 2px solid #0ABAB5;
	color: #fff;
	font-weight: 700;
	line-height: 1.4;
	cursor: pointer;
	user-select: none;
	transition: .2s;
    overflow: hidden;
}

.btn-cta--large {
	width: 480px;
	padding-top: 3.2rem;
	padding-bottom: 3.2rem;
}

.btn-cta::after {
	content: '';
	display: block;
	width: 30px;
	height: 30px;
	background: url("../images/common/arrow-right--white.svg") no-repeat center center;
	background-size: contain;
	transition: .2s;
}

.btn-cta:hover {
    background-color: transparent;
    color: #0ABAB5;
}

.btn-cta:hover::after {
	background-image: url("../images/common/arrow-right--primary.svg");
}

.btn-cta::before {
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	width: 0;
	height: 100%;
	background-color: #fff;
	content: '';
	transition: .2s;
}

.btn-cta:hover::before {
	width: 100%;
}


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

	Breadcrumbs

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

.breadcrumbs {
	margin-top: 2rem;
	font-size: 1.4rem;
}

.breadcrumbs .inner > span {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	margin: 0;
	padding: 0;
}

.breadcrumbs .inner > span > span + span:before {
	content: '>';
	display: inline-block;
	padding: 0 1rem;
}

@media screen and (max-width: 768px) {
	
	.breadcrumbs {
		margin-top: 2rem;
	}

}


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

	header

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

.header {
	position: fixed;
	top: 0;
	z-index: 1000;
	display: flex;
	justify-content: space-between;
	width: 100%;
	padding: 1rem;
	background-color: #fff;
	transition: all 0.3s;
}

.home .header {
	background-color: transparent;
}

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

.header__logo a {
}

.header-logo {
	display: block;
	color: #333;
}

.home .header-logo {
	color: #fff;
}

.header-logo__sup {
	display: block;
	margin: 0;
	font-size: 1.2rem;
	line-height: 1;
}

.header-logo__photo {
	display: block;
	font-weight: 700;
	font-size: 2rem;
}

.header.is-fixed .header-logo {
	color: #333;
}


.header__nav {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	margin: 0 -1.6rem;
}

.header-nav {
	display: flex;
	align-items: center;
	margin: 0 -1.6rem;
	padding: 0 1.6rem;
	list-style: none;
}

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

.header-nav a,
.header-nav span {
	display: block;
	padding: 1rem 1.6rem;
	color: #333;
	line-height: 1.4;
	text-decoration: none;
}

.home .header-nav a,
.home .header-nav span {
	color: #fff;
}

.header-nav a {
	cursor: pointer;
}

.header-nav a:hover,
.home .header.is-fixed .header-nav a:hover {
	color: #333;
	opacity: .5;
}

.home .header .header-nav a:hover {
	color: #fff;
}

/* 子メニュー（非表示時は透明＆上に少しずらす） */
.header-nav .dropdown-menu {
	position: absolute;
	top: 100%; /* 親の下 */
	left: 0;
	z-index: 100;
	min-width: 180px;
	padding: 0;
	margin: 0;
	background: #fff;
	border-radius: 4px;
	list-style: none;
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: all 0.3s ease;
}

.header-nav .dropdown-menu li a {
	padding: 1.6rem 1.6rem;
	display: block;
	color: #333;
	white-space: nowrap;
}

.header-nav .dropdown-menu li a:hover,
.home .header .header-nav .dropdown-menu a:hover,
.home .header.is-fixed .header-nav .dropdown-menu li a:hover {
	background-color: #F1F3F7;
	color: #333;
	opacity: 1;
}

.home .header .header-nav a:hover {
	color: #fff;
}



/* ホバー時に表示（フェードイン + スライド） */
.header-nav .has-dropdown:hover .dropdown-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.header.is-fixed .header-nav a,
.header.is-fixed .header-nav span {
	color: #333;
}

.header__contact {
	padding: 0 1.6rem;
}

.btn-contact {
	display: block;
	padding: 1rem;
	width: 100%;
	max-width: 160px;
	background-color: #fff;
	border: 2px solid #0ABAB5;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	cursor: pointer;
}

.btn-contact:hover {
	background-color: #0ABAB5;
	color: #fff;
}

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

	.header-nav a,
	.header-nav span {
		padding: 1rem;
	}
	
}

@media screen and (max-width: 1080px) {
	
	.header-nav,
	.header__contact {
		display: none;
	}
	
	.header__nav {
		margin: 0;
	}
	
}


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

	sp

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

.btn-spnav {
	position: relative;
	display: none;
	width: 50px;
	height: 50px;
	background-color: #fff;
	cursor: pointer;
}

.btn-spnav span {
	display: inline-block;
	position: absolute;
	left: 14px;
	width: 45%;
	height: 3px;
	background-color: #0ABAB5;
	border-radius: 2px;
	transition: all .3s;
}

.btn-spnav span:nth-of-type(1) {
	top: 15px;
}

.btn-spnav span:nth-of-type(2) {
	top: 23px;
}

.btn-spnav span:nth-of-type(3) {
	top: 31px;
}

.btn-spnav.is-active span:nth-of-type(1) {
	top: 18px;
	left: 18px;
	width: 30%;
	transform: translateY(6px) rotate(-45deg);
}

.btn-spnav.is-active span:nth-of-type(2) {
	opacity: 0;
}

.btn-spnav.is-active span:nth-of-type(3){
	top: 30px;
	left: 18px;
	width: 30%;
	transform: translateY(-6px) rotate(45deg);
}

@media screen and (max-width: 1080px) {
	
	.btn-spnav {
		display: block;
	}
	
}


.sp-nav {
	position: fixed;
	z-index: 999;
	top: -120%;
	left: 0;
	width:100%;
	height: 100vh;
	transition: all .3s;
}

.sp-nav.is-active {
	top: 0;
}

.sp-nav.is-active .sp-nav__body {
	position: fixed;
	z-index: 999;
	overflow: auto;
	width: 100%;
	height: 100vh;
	-webkit-overflow-scrolling: touch;
}

.sp-nav__contents {
	width: 100%;
	margin: 0;
	padding: 10rem 2rem 4rem;
}

.nav-sp {
	margin: 0 0 4rem;
	padding: 0;
	list-style: none;
}

.nav-sp > li {
	border-bottom: 1px solid #fff;
}

.nav-sp a,
.has-submenu__title {
	display: block;
	width: 100%;
	padding: 1rem 0;
	color: #fff;
	text-decoration: none;
	text-transform: uppercase;
}

.has-submenu__title {
	position: relative;
}

.has-submenu__title::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 1rem;
	display: block;
	width: 10px;
	height: 10px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	transform: translateY(-50%) rotate(135deg);
}

.has-submenu.is-active .has-submenu__title::after {
	transform: translateY(-50%) rotate(315deg);
}

.nav-sp .submenu {
	display: none;
	list-style: none;
}

.nav-sp-contact {
	text-align: center;
}


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

	footer contact

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

.footer-contact {
	position: relative;
	padding-top: 8rem;
	padding-bottom: 8rem;
	background: #000 url("../images/common/footer-contact.jpg") no-repeat center center;
	background-size: cover;
	color: #fff;
}

.footer-contact::before {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	z-index: 1;
	display: block;
	width: 100%;
	height: 100%;
	background: transparent linear-gradient(180deg, #00000000 0%, #00000098 50%, #000000 100%) 0% 0% no-repeat;
}

.footer-contact .inner {
	position: relative;
	z-index: 2;
}

.footer-contact__title {
	margin: 0 0 2rem;
	font-size: 2.4rem;
	font-weight: 700;
	color: #fff;
	text-align: center;
}

.footer-contact-row {
	display: flex;
	margin: 0 -2rem -2rem;
}

.footer-contact--col {
	display: flex;
	width: 50%;
	margin-bottom: 2rem;
	padding: 0 2rem;
}

.footer-contact-box {
	width: 100%;
	padding: 4rem;
	border: 1px solid #fff;
}

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

.footer-contact-box__title {
	margin: 0 0 2rem;
	font-size: 2rem;
	font-weight: 700;
	text-align: center;
}

.footer-contact-box__title::before {
	content: '';
	display: block;
	width: 40px;
	height: 40px;
	margin: 0 auto;
	background: url("../images/icon/icon-tel.svg") no-repeat center center;
	background-size: contain;
}

.footer-contact-box__title--mail::before {
	background-image: url("../images/icon/icon-mail.svg")
}

.footer-contact-box__title::after {
	content: '';
	display: block;
	width: 40px;
	height: 2px;
	margin: 1rem auto 0;
	background-color: #fff;
}

.footer-contact-box__num {
	margin: 0 0 2rem;
	padding: 0;
	text-align: center;
	list-style: none;
}

.footer-contact-box__num li {
	font-size: 3.2rem;
	font-weight: 700;
	line-height: 1;
}

.footer-contact-box__num li + li {
	margin-top: 1.4rem;
}

.footer-contact-box__num-head {
	display: inline-block;
	padding-right: 1rem;
	font-size: 2rem;
}

.footer-contact-box__time {
	font-size: 1.4rem;
	text-align: center;
}

.footer-contact-box .btn-cta {
	margin: 0 auto;
}

@media screen and (max-width: 768px) {
	
	.footer-contact {
		padding-top: 4rem;
		padding-bottom: 4rem;
	}

	.footer-contact__title {
		font-size: 2rem;
	}

	.footer-contact-row {
		flex-direction: column;
	}

	.footer-contact--col {
		width: 100%;
	}

	.footer-contact-box {
		padding: 2rem;
	}

	.footer-contact-box__num li {
		font-size: 2rem;
	}
	
	.footer-contact-box__num a {
		color: #fff;
	}
	
}


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

	footer

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

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

.footer-box {
	display: flex;
	justify-content: space-between;
	margin: 0 -2rem;
}

.footer-box__info {
	width: 50%;
	padding: 0 2rem;
}

.footer-box__nav {
	width: 50%;
	padding: 0 2rem;
}

.footer-nav {
	display: flex;
	flex-wrap: wrap;
	margin: 0 -2rem -3.2rem;
	padding: 0;
	list-style: none;
	font-size: 1.6rem;
}

.footer-nav li {
	margin: 0 0 3.2rem;
	padding: 0 2rem;
}

.footer-nav a {
	color: #333;
}

.footer-info dt {
	margin-bottom: 3.2rem;
}

.footer-info__sup {
	display: block;
	margin-bottom: .8rem;
	font-size: 1.4rem;
	line-height: 1;
}

.footer-info dd {
	margin-top: .4rem;
	font-size: 1.6rem;
}

.copyright {
	margin: 8rem 0 0;
	font-size: 1.4rem;
}

@media screen and (max-width: 768px) {
	
	.footer {
		padding-top: 4rem;
		padding-bottom: 4rem;
	}

	.footer-box {
		flex-direction: column-reverse;
	}

	.footer-box__info {
		width: 100%;
	}

	.footer-box__nav {
		width: 100%;
		margin-bottom: 4rem;
	}

	.footer-nav {
		display: block;
		margin-bottom: -2rem;
	}

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


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

	ホーム

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

.top-key-wrap {
	position: relative;
	height: 100vh;
}

.top-key-wrap::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	width: 100%;
	height: 100%;
	background-color: #0ABAB5;
	/* 上辺: 左(0,0) → 右(100%,0)
     右下を50%にするため下辺の右端を50%に指定
     頂点は (0 0), (100% 0), (50% 100%), (0 100%) の順 */
	clip-path: polygon(0 0, 100% 0, 50% 100%, 0 100%);
	-webkit-clip-path: polygon(0 0, 100% 0, 50% 100%, 0 100%);
}

.top-key {
	position: relative;
	z-index: 2;
	padding-left: 8rem;
}

.top-key__body {
	position: relative;
}

.top-key__photo {
	position: relative;
}

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

.top-key__body::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	width: 100%;
	background-color: rgba(0, 0, 0, 0.4);
	clip-path: polygon(0 0, 100% 0, 100% 10%, 0% 20%);
	z-index: 1;
}

.top-key__photo::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	width: 100%;
	background-color: rgba(0, 0, 0, 0.4);
	clip-path: polygon(0 60%, 100% 90%, 100% 100%, 0% 100%);
	z-index: 2;
}

.top-key__photo::after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	width: 100%;
	background-color: rgba(0, 0, 0, 0.2);
	clip-path: polygon(0 94%, 100% 75%, 100% 100%, 0% 100%);
	z-index: 2;
}

.top-key__text {
	position: absolute;
	left: 8rem;
	bottom: 8rem;
	z-index: 10;
	padding-right: 1rem;
}

.top-key__title {
	margin: 0 0 1rem;
	font-size: 4.8rem;
	font-weight: 700;
	color: #fff;
	line-height: 1.5;
	text-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
}

.top-key__sup {
	margin: 0;
	font-size: 2.4rem;
	font-weight: 700;
	color: #fff;
	text-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
}

@media screen and (max-width: 768px) {
	
	.top-key {
		padding-left: 2rem;
	}
	
	.top-key__text {
		left: 2rem;
		bottom: 2rem;
		padding-right: 2rem;
	}

	.top-key__title {
		font-size: 2rem;
	}
	
	.top-key__sup {
		font-size: 1.4rem;
	}
	
}


.top-message {
	padding-bottom: 24rem;
	background: url("../images/top/message-bg.png") no-repeat center 80%;
	background-size: 2170px auto;
}

.message-box {
	display: flex;
	align-items: center;
	flex-direction: row-reverse;
}

.message-box__text {
	width: 50%;
	padding: 0 8rem;
}

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

.message-box__title {
	margin: 0 0 3.2rem;
	font-size: 3.2rem;
	font-weight: 700;
}

.message-box__photo {
	position: relative;
	width: 50%;
}

.message-box__photo:before {
	content: '';
	position: absolute;
	top: 4rem;
	left: -2rem;
	display: block;
	width: 5.2rem;
	height: 5.2rem;
	background-color: #B0E8E7;
}

.top-message01 {
	position: relative;
	display: block;
	width: 52rem;
	max-width: 100%;
	margin: 0 0 0 auto;
}

.top-message01:before {
	content: '';
	position: absolute;
	top: 12rem;
	left: -8rem;
	display: block;
	width: 8rem;
	height: 8rem;
	background-color: #0ABAB5;
}

.top-message01:after {
	content: '';
	position: absolute;
	right: -8rem;
	bottom: -8rem;
	display: block;
	width: 12rem;
	height: 12rem;
	background-color: #BFC5CA;
}

.top-message02 {
	position: absolute;
	left: -12rem;
	bottom: -15rem;
	display: block;
	width: 38rem;
	max-width: 100%;
}

@media screen and (max-width: 768px) {
	
	.top-message {
		padding-bottom: 8rem;
	}
	
	.message-box {
		flex-direction: column;
	}

	.message-box__text {
		width: 100%;
		margin-bottom: 4rem;
		padding: 0;
	}

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

	.message-box__photo {
		width: 100%;
	}

	.message-box__photo:before {
		top: 2rem;
		left: 4rem;
		width: 4rem;
		height: 4rem;
	}

	.head-parts__title01 {
		width: 60vw;
	}

	.top-message01:before {
		width: 8rem;
		height: 8rem;
	}

	.top-message01:after {
		bottom: -2rem;
		right: -2rem;
		width: 6rem;
		height: 6rem;
	}

	.top-message02 {
		width: 40vw;
		left: 0;
		bottom: -4rem;
	}
	
}


.top-value {
	background: #000 url("../images/top/top-value-bg.jpg") no-repeat center center;
	background-size: cover;
}

.top-value-box-wrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	max-width: 100rem;
	margin: 8rem auto 0;
}

.top-value-box {
	max-width: 440px;
	width: 100%;
}

.top-value-box:nth-child(2) {
	margin-top: 32rem;
	margin-bottom: -16rem;
}

.top-value-box__photo {
	position: relative;
	max-width: 400px;
	width: 100%;
	margin: 0 0 3.2rem;
}

.top-value-box__num {
	position: absolute;
	top: -4rem;
	right: -10rem;
}

.top-value-box__num::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: -20px;
	display: block;
	width: 150px;
	height: 2px;
	background-color: #fff;
	transform-origin: left top;
	transform: rotate(45deg) translateX(-50%);
}

.top-value-box--03 {
	margin-left: 4rem;
}

.top-value-box--03 .top-value-box__num {
	top: inherit;
	right: -12rem;
	bottom: -4rem;
}

.top-value-box--03 .top-value-box__num::after {
	top: 0;
	bottom: inherit;
	left: -20px;
	transform: rotate(-45deg) translateX(-50%);
}

.top-value-box__num dt {
	margin: 0 0 1rem;
	padding: 0;
	font-size: 4.8rem;
	font-weight: 700;
	line-height: 1;
	text-align: center;
}

.top-value-box__num dd {
	margin: 0;
	padding: 0;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1;
	text-align: center;
}

.top-value-box__title {
	margin: 0 0 2.4rem;
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 1.52;
	color: #E2FF00;
}

.top-value-box__sub-title {
	margin: 0 0 2rem;
	font-size: 2rem;
	font-weight: 700;
}

.top-value-box__sub-title > span {
	display: inline-block;
	padding-bottom: 6px;
	border-bottom: 4px solid #E2FF00;
}

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

	.top-value-box-wrap {
		flex-direction: column;
		margin: 4rem 2rem -2rem;
	}

	.top-value-box {
		margin-top: 0 !important;
		margin-bottom: 2rem !important;
	}


	.top-value-box--03 {
		margin-left: 0;
	}
	
	.top-value-box__num,
	.top-value-box--03 .top-value-box__num {
		top: -4rem;
		bottom: auto;
		right: -2rem;
	}

	.top-value-box__num::after,
	.top-value-box--03 .top-value-box__num::after {
		top: auto;
		bottom: 0;
		left: -20px;
		width: 120px;
		transform: rotate(45deg) translateX(-50%);
	}

	.top-value-box__num dt {
		font-size: 2.4rem;
	}

	.top-value-box__title {
		margin: 0 0 2.4rem;
		font-size: 2rem;
	}

	.top-value-box__sub-title {
		font-size: 1.8rem;
	}
	
}


.top-business-row {
	display: flex;
	flex-wrap: wrap;
	margin: 0 -1rem -2rem;
}

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

.business-card {
	overflow: hidden;
	position: relative;
	display: block;
	width: 100%;
}

.business-card::after {
	content: '';
	display: block;
	position: absolute;
	bottom: 0;
	right: -1px;
	z-index: 2;
	width: 80px;
	height: 40px;
	background: #0ABAB5 url("../images/common/arrow-white.svg") no-repeat calc(50% + 10px) center;
	background-size: 17px 20px;
	clip-path: polygon(20px 0%, 100% 0, 100% 100%, 0% 100%);
}

.business-card__photo {
	overflow: hidden;
}

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

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

.business-card__text {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
	width: 100%;
	padding: 2rem 2rem 2rem 3.2rem;
	background: transparent linear-gradient(180deg, #00000000 0%, #000000CC 100%) 0% 0% no-repeat;
}

.business-card__title {
	margin: 0 0 .4rem;
	font-size: 2.4rem;
	font-weight: 700;
	line-height: 1.52;
	color: #fff;
}

.business-card__sup {
	margin: 0;
	font-size: 1.4rem;
	font-weight: 700;
	color: #fff;
}

@media screen and (max-width: 768px) {
	
	.top-business-col {
		width: 100%;
	}

	.business-card__text {
		padding: 2rem;
	}

	.business-card__title {
		font-size: 2rem;
	}

}


.case-slide.slick-dotted.slick-slider {
	margin-bottom: 4rem;
}

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

.case-slide .slick-dots {
	bottom: -4rem;
}

.case-slide .slick-dots .slick-active button:before {
	opacity: 1;
	color: #0ABAB5;
}

@media screen and (max-width: 768px) {
	
	.case-slide .slick-list {
		overflow: hidden;
	}
	
}


.case-card {
	display: block;
	margin: 0 2rem;
	padding: 2rem;
	background-color: #fff;
	cursor: pointer;
}

.case-card__photo {
	overflow: hidden;
}

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

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

.case-card__title {
	margin: 0;
	padding: 2rem 0 0;
	text-align: center;
	color: #333;
}

@media screen and (max-width: 768px) {
	
	.case-card {
		margin: 0 1rem;
	}
	
}


.top-facility-row {
	padding: 0;
	background: url("../images/top/top-facility01.png") no-repeat center center;
	background-size: auto 490px;
}

.top-facility-box {
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 48rem;
	width: 100%;
	height: 490px;
	padding: 4rem;
	background-color: #fff;
}

@media screen and (max-width: 768px) {
	
	.top-facility-box {
		max-width: 32rem;
		height: auto;
		padding: 2rem;
		margin: 0 auto;
		}
	
}


.top-company-key img {
	display: block;
	max-width: none;
	width: 100%;
	height: 60rem;
	object-fit: cover;
}

.top-company-wrap {
	position: relative;
	z-index: 2;
	margin: -8rem 0 0;
	padding: 8rem;
	background-color: #fff;
}

.top-company-row {
	display: flex;
	justify-content: space-between;
}

.top-company_head {
	width: calc(100% - 400px);
}

.top-company_body {
	width: 360px;
}

.top-company-photo img {
	display: block;
	width: 100%;
	max-width: none;
	border: 1px solid #ddd;
}

.top-company-nav {
	display: flex;
	flex-wrap: wrap;
	margin: 0 -1rem;
	padding: 0;
	list-style: none;
}

.top-company-nav li {
	width: 50%;
	margin:  0;
	padding: 0 1rem;
}

.top-company-nav li:nth-child(n+3) a {
	border-top: none;
}

@media screen and (max-width: 768px) {
	
	.top-company-key img {
		max-width: 100%;
		height: auto;
		aspect-ratio: 16 / 12;
		object-fit: cover;
	}
	
	.top-company-wrap {
		margin-top: -4rem;
		padding: 4rem;
	}

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

	.top-company_head {
		width: 100%;
		margin-bottom: 4rem;
	}

	.top-company_body {
		width: 100%;
	}
	
}


.top-news-row {
	display: flex;
	justify-content: space-between;
}

.top-news__head {
	width: 360px;
}

.top-news__body {
	width: calc(100% - 400px);
}

@media screen and (max-width: 768px) {
	
	.top-news-row {
		flex-direction: column;
	}

	.top-news__head {
		display: flex;
		justify-content: space-between;
		align-items: center;
		width: 100%;
		margin-bottom: 2rem;
	}
	
	.top-news__head .btn {
		width: auto;
		padding-top: 0;
		border-top: 0;
	}

	.top-news__body {
		width: 100%;
	}
	
}


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

	各種金属プレス加工

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

.press-lead-row {
	display: flex;
	margin: 0 -1rem -2rem;
}

.press-lead-col {
	display: flex;
	width: 33.33333333%;
	margin: 0 0 2rem;
	padding: 0 1rem;
}

@media screen and (max-width: 768px) {
	
	.press-lead-row {
		flex-direction: column;
	}

	.press-lead-col {
		width: 100%;
	}
	
}


.press-specialty-box {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	width: 100%;
	border: 1px solid #ddd;
	padding: 8rem 2rem;
	font-weight: 700;
	text-align: center;
	line-height: 1.4;
}

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

.press-specialty01 {}

.press-specialty01__strong {
	font-size: 3.2rem;
	font-weight: 700;
	color: #0ABAB5;
}

.press-specialty02 dl {}

.press-specialty02 dt {
	margin: 0;
	padding: 0;
	text-align: center;
}

.press-specialty02 dd {
	margin: 0;
	padding: 0;
	text-align: center;
}

.press-specialty02__num {
	font-size: 3.2rem;
	font-weight: 700;
	color: #0ABAB5;
}

.press-specialty03__num {
	font-size: 3.2rem;
	font-weight: 700;
	color: #0ABAB5;
}

.press-specialty03__text {
	color: #0ABAB5;
}

@media screen and (max-width: 768px) {
	
	.press-specialty-box {
		padding: 4rem 2rem;
	}
	
	.press-specialty01__strong {
		font-size: 2rem;
	}

	.press-specialty02__num {
		font-size: 2rem;
	}

	.press-specialty03__num {
		font-size: 2rem;
	}
	
}


.presswork-box {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
	max-width: 1320px;
	margin: 0 auto 4rem;
	padding: 0 2rem;
}

.presswork-box--reverse {
	flex-direction: row-reverse;
}

.presswork-box__photo {
	position: absolute;
	top: 0;
	right: 0;
	width: 50%;
	height: 100%;
}

.presswork-box--reverse .presswork-box__photo {
	left: 0;
	right: auto;
}

.presswork-box__photo-wrap {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100%;
}

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

.presswork-box__text {
	width: 50%;
	padding: 0 8rem 0 0;
}

.presswork-box--reverse .presswork-box__text {
	padding: 0 0 0 8rem;
}


.presswork-box-head {
	position: relative;
	margin-bottom: 2rem;
}

.presswork-box-head dl {
	display: flex;
	flex-direction: row;
	align-items: center;
}

.presswork-box-head__num {
	margin: 0 1rem 0 0;
	padding: 0 0 1rem;
	border-bottom: 2px solid #0ABAB5;
	font-size: 4.8rem;
	font-weight: 700;
	color: #0ABAB5;
	line-height: 1;
	text-align: center;
}

.presswork-box-head__text {
	margin: 0;
	padding: 0;
	font-size: 1.8rem;
	font-weight: 700;;
	color: #0ABAB5;
	line-height: 1;
	text-align: center;
}

@media screen and (max-width: 768px) {
	
	.presswork-box {
		flex-direction: column;
	}

	.presswork-box--reverse {
		flex-direction: column;
	}

	.presswork-box__photo,
	.presswork-box--reverse .presswork-box__photo {
		position: static;
		width: 100%;
		margin-bottom: 2rem;
	}

	.presswork-box__text,
	.presswork-box--reverse .presswork-box__text {
		width: 100%;
		padding: 0;
	}
	
}

.presswork-iso9100 {
	width: 220px;
}


.scope-support {
	display: flex;
	flex-wrap: wrap;
	margin: 0;
	border-top: 1px solid #DDD;
}

.scope-support dt {
	width: 20rem;
	padding: 1rem 0;
	border-bottom: 1px solid #DDD;
}

.scope-support dd {
	width: calc(100% - 20rem);
	padding: 1rem 0;
	border-bottom: 1px solid #DDD;
}

@media screen and (max-width: 768px) {
	
	.scope-support dt {
		width: 100%;
		padding-bottom: 0;
		border-bottom: none;
		color: #0ABAB5;
	}

	.scope-support dd {
		width: 100%;
	}
	
}


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

	プレス金型製造

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

.moldmanufacturing-lead {
	font-weight: 700;
	font-size: 2rem;
}

.worries-title {
	margin: 0 0 4rem;
	font-size: 3.2rem;
	font-weight: 700;
	line-height: 1.52;
}

@media screen and (max-width: 768px) {
	
	.worries-title {
		margin: 0 0 2rem;
		font-size: 2.4rem;
	}
	
}


.worries-list {
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.worries-list ul {
	margin: 0 0 -1.6rem;
	padding: 0;
	list-style: none;
}

.worries-list li {
	margin: 0 0 1.6rem;
}

.worries-box {
	display: flex;
}

.worries-box__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	min-height: 60px;
	text-align: center;
}

.worries-box__text {
	width: calc(100% - 60px);
	padding: 1.6rem;
}


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

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

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

.scope-box__photo {
	width: 12rem;
}

.scope-box__text {
	width: calc(100% - 12rem);
	padding: 0 3.2rem;
	font-weight: 700;
}

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

@media screen and (max-width: 768px) {
	
	.scope-row {
		margin: 0 -1rem -2rem;
	}

	.scope-col {
		width: 100%;
		margin: 0 0 2rem;
		padding: 0 1rem;
	}
	
	.scope-box__photo {
		width: 8rem;
	}

	.scope-box__text {
		width: calc(100% - 8rem);
	}
	
}


.faq-list {
	margin-bottom: 4rem;
	padding: 3.2rem 4rem;
}

.faq-list dt {
	position: relative;
	margin: 0 0 2rem;
	padding: 0 0 0 6rem;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.52;
}

.faq-list dt::before {
	content: 'Q';
	position: absolute;
	top: 50%;
	left: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 4rem;
	height: 4rem;
	background-color: #0ABAB5;
	font-size: 2rem;
	font-family: "Chakra Petch", sans-serif;
	color: #fff;
	transform: translateY(-50%);
}

.faq-list dd {
	position: relative;
	padding: 0 0 0 6rem;
}

.faq-list dd::before {
	content: 'A';
	position: absolute;
	top: 50%;
	left: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 4rem;
	height: 4rem;
	background-color: #fff;
	font-size: 2rem;
	font-family: "Chakra Petch", sans-serif;
	color: #0ABAB5;
	transform: translateY(-50%);
}

.faq-list dd > :last-child {
	margin-bottom: 0;
}

@media screen and (max-width: 768px) {
	
	.faq-list {
		margin-bottom: 2rem;
		padding: 2rem;
	}
	
	.faq-list dt::before {
		top: 0%;
		transform: translateY(0);
	}

	.faq-list dd::before {
		top: 0%;
		transform: translateY(0);
	}
	
}


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

	製作実績

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

.work-box {}

.work-box__photo {
	margin-bottom: 1.6rem;
}

.work-box__photo a {
	overflow: hidden;
	display: block;
}

.work-box__photo img {
	display: block;
	width: 100%;
	max-width: none;
}

.work-box__title {
	margin-bottom: 1rem;
}

.work-box__cat {}

.work-box__cat ul {
	display: flex;
	flex-wrap: wrap;
	margin: 0;
	padding: 0;
	font-size: 1.4rem;
	list-style: none;
}

.work-box__cat li {
	padding: 0;
}

.work-box__cat li + li:before {
	content: ',';
	display: inline-block;
	padding: 0 .4rem;
}


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

	製作実績 - 詳細

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

.work-detail {
	margin-bottom: 8rem;
	padding: 8rem;
}

@media screen and (max-width: 768px) {
	
	.work-detail {
		margin: 0 -2rem 4rem;
		padding: 4rem;
	}
	
}


h2.wp-block-heading {
	margin: 3.2rem 0;
	padding: 1.6rem 1.6rem;
	border-left: 4px solid #0ABAB5;
	background-color: #F1F3F7;
	font-size: 2.4rem;
	font-weight: 700;
	line-height: 1.52;
	letter-spacing: 2px;
}

h3.wp-block-heading {
	position: relative;
	margin: 2.4rem 0;
	padding: 0 0 0 6rem;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.52;
	letter-spacing: 2px;
}

h3.wp-block-heading::after {
	content: '';
	position: absolute;
	top: 1.6rem;
	left: 0;
	display: block;
	width: 5.2rem;
	height: 2px;
	background-color: #333;
}

@media screen and (max-width: 768px) {
	
	h2.wp-block-heading {
		font-size: 2rem;
	}

	h3.wp-block-heading {
		padding: 0 0 0 3.2rem;
		font-size: 2rem;
	}

	h3.wp-block-heading::after {
		top: 1.6rem;
		width: 2.6rem;
	}
	
}


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

@media screen and (max-width: 768px) {
	
	.wp-block-image {
		margin:  2rem 0;
	}
	
}


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

	設備情報

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

.facilities-box {}

.facilities-box__photo {
	margin: 0 0 1.6rem;
}

.facilities-box__title {}

.equipment-table {
	width: 100%;
	border-top: 2px solid #DDDDDD;
}

.equipment-table thead {
	border-bottom: 2px solid #DDDDDD;
}

.equipment-table thead th {
	padding: 2rem 0;
	font-weight: 700;
}

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

.equipment-table tbody th {
	padding: 2rem 0;
	font-weight: 400;
}

.equipment-table tbody td {
	padding: 2rem 0;
}

.equipment-table__manufacturer {
	width: 30rem;
}

.equipment-table__model {
	width: 30rem;
}

.equipment-table__name {
	width: calc(100% - 60rem);
}

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

	.equipment-table tbody td {
	}

	.equipment-table tbody .equipment-table__manufacturer {
		display: block;
		width: 100%;
		padding-bottom: 0;
	}

	.equipment-table tbody .equipment-table__model {
		display: block;
		width: 100%;
		padding-top: 0;
		padding-bottom: 0;
	}

	.equipment-table tbody .equipment-table__name {
		display: block;
		width: 100%;
		padding-top: 0;
	}
	
}


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

	会社案内

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

.greeting-box {
	display: flex;
	flex-direction: row-reverse;
	justify-content: space-between;
}

.greeting-box__photo {
	width: 40%;
}

.greeting-box__text {
	width: 56%;
}

@media screen and (max-width: 768px) {
	
	.greeting-box {
		flex-direction: column;
	}

	.greeting-box__photo {
		width: 100%;
		margin-bottom: 2rem;
	}

	.greeting-box__text {
		width: 100%;
	}
	
}


.greeting-name {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	margin-top: 4rem;
}

.greeting-name__position {
	margin: 0 2rem 0 0;
	font-size: 1.6rem;
	font-weight: 400;
	letter-spacing: 2px;
}

.greeting-name__name {
	margin: 0 2rem 0 0;
	font-size: 2.4rem;
	line-height: 1.52;
}

.greeting-name__en {
	font-size: 1.4rem;
}




.Philosophy-box {
	padding: 4rem 0;
}

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

.Philosophy-box img {
	display: block;
	max-width: 100%;
	width: 480px;
	margin: 0 auto;
}

.table-company {
	width: 100%;
	border-top: 1px solid #DDDDDD;
}

.table-company th {
	width: 20rem;
	padding: 2.8rem 0;
	border-bottom: 1px solid #DDDDDD;
}

.table-company td {
	width: calc(100% - 20rem);
	padding: 2.8rem 0;
	border-bottom: 1px solid #DDDDDD;
}

@media screen and (max-width: 768px) {
	
	.table-company th {
		display: block;
		width: 100%;
		padding-bottom: 0;
		border-bottom: none;
	}

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


.history-head {
	display: grid;
	grid-template-columns: 12rem 18rem 1fr;
	border-top: .2rem solid #dadada;
	border-bottom: .2rem solid #dadada;
    letter-spacing: .08em;
    font-family: Montserrat, sans-serif;
    font-size: var(--font_size);
    font-weight: 400;
    font-style: normal;
	line-height: 1;
}

.history-head__year {
	padding: 2rem 0;
}

.history-head__month {
	padding: 2rem 0;
	text-align: center;
}

.history-head__archive {
	padding: 2rem 0;
}

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


.history-list {
	display: grid;
	grid-template-columns: 12rem 18rem 1fr;
	margin: 2rem 0;
}

.history-list__year {}

.history-list__month {
	text-align: center;
}

.history-list__archive {}

@media screen and (max-width: 768px) {
	
	.history-list {
		display: flex;
		flex-wrap: wrap;
	}
	
	.history-list__year {
		font-weight: 400;
	}
	
	.history-list__archive {
		width: 100%;
	}
	
}


.google-map {
	margin: 0 0 4rem;
}

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


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

	お知らせ

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

.news-list-row:first-child .news-list {
	border-top: 1px solid #DDDDDD;
}

.news-list {
	display: flex;
	flex-wrap: wrap;
	column-gap: 3rem;
	padding: 1.6rem 0;
	border-bottom: 1px solid #DDDDDD;
	color: #333;
	cursor: pointer;
}

.news-list__date {
	margin: 0;
}

.news-list__cat {
	margin: 0;
	padding: 0;
	list-style: none;
}

.news-list__title {
	margin: 0;
}

@media screen and (max-width: 768px) {
	
	.news-list__title {
		width: 100%;
	}
	
}


ul.page-numbers {
	display: flex;
	gap: 8px; /* ボタン間のスペース */
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	list-style: none;
}

a.page-numbers {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 1px solid #ddd;
	border-radius: 50%;
	text-align: center;
	line-height: 1;
}

.page-numbers.next {}


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

	お知らせ - 詳細

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

.news-detail {}

.news-detail__meta {
	display: flex;
	align-items: center;
	margin: 0 -1rem 2rem;
}

.news-detail__date {
	margin: 0;
	padding: 0 1rem;
}

.news-detail__cat {
	margin: 0;
	padding: 0 1rem;
}

.news-detail__cat ul {
	display: flex;
	align-items: center;
	margin: 0 -0.5rem;
	padding: 0;
	list-style: none;
}

.news-detail__cat li {
	padding: 0 0.5rem;
}

.page-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 8rem -2rem -2rem;
}

.page-nav__col {
	margin: 0 0 2rem;
	padding: 0 2rem;
}

.page-nav__col--next {}
.page-nav__col--home {}
.page-nav__col--prev {}


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

	採用情報

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

.recruit-message {
	padding-top: 4rem;
}

.recruit-message-box {
	padding-bottom: 8rem;
}

.recruit-message-box__photo img {
	display: block;
	object-fit: cover;
	aspect-ratio: 4 / 1.6;
}

.recruit-message-box__title {
	margin: 0 4rem;
	padding: 4rem 2rem;
	text-align: center;
	transform: translateY(-50%);
}

.recruit-message-box__title h3 {
	margin: 0;
	font-size: 2.4rem;
	line-height: 1.52;
}

.recruit-message-box__text {
	overflow: hidden;
	padding: 0 8rem;
}

.recruit-message-box__text img.float-left {
	margin: 0 4rem 2rem 0;
	width: 33.33333333%;
}

.recruit-message-box__text img.float-right {
	margin: 0 0 2rem 4rem;
	width: 33.33333333%;
}

@media screen and (max-width: 768px) {
	
	.recruit-message-box__photo img {
		aspect-ratio: 4 / 3;
	}

	.recruit-message-box__title {
		margin: 0 2rem;
		padding: 2rem;
		text-align: center;
		transform: translateY(-4rem);
	}

	.recruit-message-box__title h3 {
		font-size: 2rem;
	}

	.recruit-message-box__text {
		padding: 0;
	}

	.recruit-message-box__text img.float-left {
		display: block;
		width: 100%;
		max-width: none;
		margin: 0 0 2rem;
	}

	.recruit-message-box__text img.float-right {
		display: block;
		width: 100%;
		max-width: none;
		margin: 0 0 2rem;
	}
	
}


.ideal-box {
	margin: 0 0 2rem;
	padding: 0 2rem;
	text-align: center;
}

.ideal-box img {
	display: block;
	width: 60rem;
	max-width: 100%;
	margin: 0 auto;
}

.ideal-footer {
	font-size: 3.2rem;
	font-weight: 700;
	text-align: center;
}

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

	.ideal-footer {
		font-size: 2rem;
	}
	
}


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

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

.work-style-box__title {
	margin: 0 0 2rem;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.52;
	letter-spacing: 2px;
}

.work-style-box__sub-title {
	margin: 2rem 0 1rem;
	font-weight: 700;
}

@media screen and (max-width: 768px) {
	
	.work-style-box__text {
		padding: 2rem;
	}
	
}


.entry-btn-wrap {
	display: flex;
	justify-content: center;
	margin-top: 8rem;
}

@media screen and (max-width: 768px) {
	
	.entry-btn-wrap {
		margin-top: 4rem;
	}
	
}


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

	お問い合わせ

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

.contact-tel {
	margin-top: 4rem;
	margin-bottom: 12rem;
	padding: 8rem 2rem;
}

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

.contact-tel__col {
	width: 50%;
	padding: 0 2rem;
}

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

.contact-tel__col dl {
	margin: 0;
	padding: 0;
	text-align: right;
}

.contact-tel__col dt {
}
.contact-tel__col dd {}

.contact-tel-num {
	font-size: 4rem;
	font-weight: 700;
}

.contact-tel-num-head {
	display: inline-block;
	padding-right: 0.4rem;
	font-size: 2rem;
}

@media screen and (max-width: 768px) {
	
	.contact-tel {
		margin: 4rem -2rem;
		padding: 2rem;
	}

	.contact-tel-row {
		flex-direction: column;
	}

	.contact-tel__col {
		width: 100%;
	}

	.contact-tel__col dl {
		text-align: center;
	}

	.contact-tel-num {
		font-size: 3.2rem;
		text-align: center;
	}

	.contact-tel-num-head {
		font-size: 1.6rem;
	}
	
}


.snow-monkey-form {
	padding: 0 8rem;
}

.smf-action {
	padding: 2rem 0 0;
}

@media screen and (max-width: 768px) {
	
	.snow-monkey-form {
		padding: 2rem 2rem 4rem;
	}
	
}


.smf-item {
	margin: 0 0 3.2rem;
}


.form-day .smf-checkboxes-control {
	display: grid;
	align-items: center;
    grid-template-columns: 6rem 1fr;
}

.form-day .smf-control-fieldset {
	display: contents;
}



.smf-item__label {
	margin: 0 0 1rem;
	font-weight: 700;
}

.is-required {
	display: inline-block;
	margin: 0 0 0 1rem;
	padding: .4rem;
	background-color: #ce5252;
	border: 2px solid #ce5252;
	border-radius: 0;
	color: #fff;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1;
	text-align: center;
	vertical-align: baseline;
}

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



.smf-form .smf-text-control__control {
	width: 100%;
	padding: 1.6rem;
	background-color: #F1F3F7;
	border: 1px solid #F1F3F7;
	border-radius: 0;
	font-size: 1.6rem;
	line-height: 1.5;
	box-shadow: none;
}

.smf-form .smf-textarea-control__control {
	width: 100%;
	padding: 1.6rem;
	background-color: #F1F3F7;
	border: 1px solid #F1F3F7;
	border-radius: 0;
	font-size: 1.6rem;
	line-height: 1.5;
	box-shadow: none;
}

.smf-form .smf-file-control label {
	display: block;
	width: 100%;
	padding: 1.6rem;
	background-color: #F1F3F7;
	border: 1px solid #F1F3F7;
	border-radius: 0;
	font-size: 1.6rem;
	line-height: 1.5;
	box-shadow: none;
}

.smf-placeholder {
	margin-top: 1rem;
}

.form-consent {
	text-align: center;
}

.form-consent .smf-item__controls p {
	margin-bottom: 0;
}

[data-screen="confirm"] .form-consent {
	display: none;
}

#autozip {
	display: none !important;
}


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

.smf-action .smf-button-control__control {
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 360px;
	max-width: 100%;
	padding: 2rem;
	background: #0ABAB5 none;
	border: 2px solid #0ABAB5;
	border-radius: 0;
	color: #fff;
	font-weight: 700;
	line-height: 1.4;
	cursor: pointer;
	user-select: none;
	transition: .2s;
	overflow: hidden;
}

.smf-action .smf-button-control__control:hover {

}

.smf-action .smf-button-control__control[data-action="back"] {

}

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


.smf-sending {
	display: none !important;
}