/*===========================================================
# reset - 
========================================================== */

* {
	box-sizing: border-box;
}

html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
dl,
li,
dt,
dd,
p,
div,
span,
img,
a,
table,
tr,
th,
td,
small,
button,
time,
figure {
	border: 0;
	font: inherit;
	font-size: 100%;
	margin: 0;
	padding: 0;
	vertical-align: baseline;
}

html {
	line-height: 1;
}

ol,
ul {
	list-style: none;
}

li,
dd {
	list-style-type: none;
}

header,
footer,
nav,
section,
article,
aside,
figure,
figcaption {
	display: block;
}

img {
	border: none;
	vertical-align: bottom;
}

a {
	cursor: pointer;
	text-decoration: none;
}

input[type=submit],
input[type=button] {
	-webkit-box-sizing: content-box;
	-webkit-appearance: button;
	-moz-appearance: button;
	appearance: button;
	border: none;
	border-radius: 0;
	box-sizing: border-box;
	cursor: pointer;
}

input[type=submit]::-webkit-search-decoration,
input[type=button]::-webkit-search-decoration {
	display: none;
}

input[type=submit]::focus,
input[type=button]::focus {
	outline-offset: -2px;
}

/*===========================================================
# style - 
========================================================== */

.header {
	background-color: #fff;
}

.header__inner {
	align-items: center;
	display: flex;
	justify-content: space-between;
	padding: 2rem 3.5rem;
}

.header__logo {
	width: 16rem;
}

.header__nav-list {
	align-items: center;
	display: flex;
	gap: 8rem;
	justify-content: space-between;
}

.header__nav-item {
	list-style: none;
}

.header__nav-link {
	color: #666666;
	display: inline-block;
	position: relative;
	text-decoration: none;
	transition: 0.2s;
	width: 100%;
}

.header__nav-link::after {
	background: linear-gradient(90deg, rgb(1, 165, 81) 0%, rgb(116, 187, 74) 100%);
	bottom: 0;
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	transition: all 0.3s ease-in-out;
	width: 0%;
}

.header__nav-link:hover::after {
	width: 100%;
}

.header__nav-contact .header__nav-link {
	background: linear-gradient(90deg, rgb(1, 165, 81) 0%, rgb(116, 187, 74) 100%);
	border-radius: 0.4rem;
	color: #fff;
	display: inline-block;
	height: 100%;
	padding: 0.5rem 0;
	position: relative;
	text-align: center;
	width: 14rem;
	z-index: 1;
}

.header__nav-contact .header__nav-link::before {
	background: linear-gradient(90deg, rgb(116, 187, 74) 0%, rgb(1, 165, 81) 100%);
	border-radius: 0.4rem;
	content: "";
	height: 100%;
	left: 0;
	opacity: 0;
	position: absolute;
	top: 0;
	transition: all 0.3s ease-in-out;
	width: 100%;
	z-index: -1;
}

.header__nav-contact .header__nav-link:hover::before {
	opacity: 1;
}

.header__nav-contact .header__nav-link:hover::after {
	display: none;
}

.header .burger-btn {
	display: none;
}

.page-head {
	background-image: url(../image/mv.jpg);
	background-position: center 95%;
	background-repeat: no-repeat;
	background-size: cover;
	height: 57rem;
	position: relative;
	width: 100%;
}

.page-head__inner {
	align-items: center;
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: center;
}

.page-head__title {
	color: #fff;
	font-size: 3.2rem;
	font-weight: bold;
	margin-top: 10rem;
	text-align: center;
}

.footer {
	background: linear-gradient(90deg, rgb(1, 165, 81) 0%, rgb(116, 187, 74) 100%);
	padding: 7rem 0 5rem;
}

.footer__content {
	display: flex;
	justify-content: space-between;
}

.footer__left {
	position: relative;
}

.footer__left::before {
	background-color: #B2D2CC;
	content: "";
	height: 15rem;
	position: absolute;
	right: -15rem;
	top: 50%;
	transform: translateY(-50%);
	width: 1px;
}

.footer__logo {
	margin-bottom: 4rem;
	width: 19rem;
}

.footer__info {
	color: #fff;
	margin-bottom: 3rem;
}

.footer__info-name {
	font-size: 1.2rem;
	font-weight: bold;
}

.footer__copyright {
	color: #fff;
	display: inline-block;
	font-size: 1rem;
}

.footer__nav-list {
	display: flex;
	gap: 3.6rem;
	margin-bottom: 4rem;
}

.footer__nav-link {
	color: #fff;
	font-size: 1.2rem;
	position: relative;
}

.footer__nav-link::after {
	background-color: #fff;
	bottom: -0.5rem;
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	transition: all 0.3s ease-in-out;
	width: 0%;
}

.footer__nav-link:hover::after {
	width: 100%;
}

.footer__corp {
	align-items: center;
	display: flex;
	gap: 4rem;
	justify-content: end;
}

.footer__corp-link {
	color: #B2D2CC;
	position: relative;
	transition: 0.3s;
}

.footer__corp-link::after {
	background-image: url(../image/footer-arrow.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	height: 0.8rem;
	position: absolute;
	right: -1.5rem;
	top: 50%;
	transform: translateY(-50%);
	width: 0.8rem;
}

.footer__sns {
	display: flex;
	gap: 1rem;
}

.news-archive {
	padding: 20rem 0 25rem;
}

.news-archive .section-title {
	margin: 0 auto;
}

.news-archive .section-title::after {
	background-image: url(../image/news-title.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	height: 12rem;
	left: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 374rem;
	z-index: -1;
}

.news-archive .CMS-NEWS-INDEX {
	display: flex;
	flex-wrap: wrap;
	gap: 3rem;
	margin-top: 12rem;
	padding-bottom: 5rem;
	position: relative;
}

.news-archive .CMS-NEWS-ITEM {
	width: calc(33.3333333333% - 2rem);
}

.news-archive .CMS-NEWS-LINK-CONTENT {
	color: #666666;
	display: inline-block;
	width: 100%;
}

.news-archive .CMS-NEWS-THUMBNAIL {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: 3/2;
}

.news-archive .CMS-NEWS-MORE-READ {
	align-items: center;
	background: linear-gradient(90deg, rgb(1, 165, 81) 0%, rgb(116, 187, 74) 100%);
	border-radius: 0.4rem;
	color: #fff;
	display: inline-block;
	display: flex;
	font-size: 1.6rem;
	font-weight: bold;
	justify-content: center;
	left: 50%;
	padding: 1.5rem 0;
	position: absolute;
	top: 100%;
	transform: translateX(-50%);
	width: 34.3rem;
}

.news-detail {
	padding: 20rem 0;
}

.news-detail .CMS-NEWS-TITLE {
	font-size: 2.4rem;
	line-height: 1.5;
	margin-bottom: 2rem;
	padding-bottom: 1.5rem;
	position: relative;
}

.news-detail .CMS-NEWS-TITLE::after {
	background: linear-gradient(90deg, rgb(1, 165, 81) 0%, rgb(116, 187, 74) 100%);
	bottom: 0;
	content: "";
	height: 0.3rem;
	left: 0;
	position: absolute;
	width: 100%;
}

.news-detail .CMS-NEWS-CONTENT img {
	width: revert-layer;
	height: auto;
}

.page-map {
	padding: 5rem 0;
	position: relative;
}

.page-map__inner {
	align-items: end;
	display: flex;
	gap: 6rem;
}

.page-map__img {
	width: 57rem;
}

.page-map__content {
	padding-bottom: 1rem;
	position: relative;
	width: calc(100% - 63rem);
}

.page-map__content img {
	height: 50rem;
	left: 50%;
	position: absolute;
	top: 7%;
	transform: translate(-50%, -50%);
	width: 62.2rem;
}

.page-map .section-title {
	margin-bottom: 15rem;
	text-align: left;
}

.page-map .section-title::after {
	background-image: url(../image/map-title.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	height: 30rem;
	left: -16rem;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 76.9rem;
	z-index: -1;
}

.map-illust {
	margin: 0 auto 8rem;
	max-width: 66.4rem;
}

.map-btn__inner {
	display: flex;
	gap: 10rem;
	justify-content: center;
	margin-bottom: 8rem;
}

.map-btn p {
	color: #666666;
	cursor: pointer;
	font-family: "Zen Old Mincho", serif;
	font-size: 2rem;
	font-weight: bold;
	padding: 1.5rem 3rem 0.5rem 3rem;
	position: relative;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
}

.map-btn p:hover::after {
	width: 100%;
}

.map-btn p.active::after {
	background-color: #F83F0C;
	bottom: 0;
	content: "";
	height: 0.1rem;
	left: 0;
	position: absolute;
	transition: width 0.3s ease-in-out;
	width: 100%;
}

.map-facility {
	padding-bottom: 20rem;
}

.map-facility__wrap {
	display: flex;
	flex-wrap: wrap;
	gap: 13rem;
}

.map-facility__item {
	width: calc(50% - 6.5rem);
}

.map-facility__title {
	font-family: "Zen Old Mincho", serif;
	font-size: 2.4rem;
	margin-bottom: 2rem;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
}

.map-facility__text {
	font-size: 1.4rem;
	margin-bottom: 2rem;
}

.map-facility__link {
	background: linear-gradient(90deg, rgb(1, 165, 81) 0%, rgb(116, 187, 74) 100%);
	border-radius: 0.4rem;
	color: #fff;
	display: inline-block;
	font-size: 1.6rem;
	letter-spacing: 0.01em;
	padding: 0.3rem 0;
	position: relative;
	text-align: center;
	width: 18rem;
	z-index: 1;
}

.map-facility__link:before {
	background: linear-gradient(90deg, rgb(116, 187, 74) 0%, rgb(1, 165, 81) 100%);
	border-radius: 0.4rem;
	content: "";
	height: 100%;
	left: 0;
	opacity: 0;
	position: absolute;
	top: 0;
	transition: all 0.3s ease-in-out;
	width: 100%;
	z-index: -1;
}

.map-facility__link:hover::before {
	opacity: 1;
}

.map-facility #map-facility-2 .map-facility__link {
	background: linear-gradient(90deg, rgb(9, 30, 58) 0%, rgb(47, 128, 237) 50%, rgb(45, 158, 224) 100%);
}

.map-facility #map-facility-2 .map-facility__link:before {
	background: linear-gradient(90deg, rgb(45, 158, 224) 0%, rgb(47, 128, 237) 50%, rgb(9, 30, 58) 100%);
}

.map-facility #map-facility-3 .map-facility__link {
	background: linear-gradient(90deg, rgb(200, 0, 28) 0%, rgb(255, 67, 0) 100%);
}

.map-facility #map-facility-3 .map-facility__link:before {
	background: linear-gradient(90deg, rgb(255, 67, 0) 0%, rgb(200, 0, 28) 100%);
}

.president {
	padding: 20rem 0;
}

.president__title .main-title {
	font-family: "Zen Old Mincho", serif;
	font-size: 3.2rem;
	margin-bottom: 6rem;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
}

.president__title .sub-title {
	display: block;
	font-size: 1.6rem;
	transform: translateX(-4rem);
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
}

.president__content {
	display: flex;
	gap: 8rem;
	margin-bottom: 12rem;
}

.president__text {
	width: calc(100% - 62rem);
}

.president__img {
	width: 54rem;
}

.president__info-name {
	font-family: "Zen Old Mincho", serif;
	font-size: 2.4rem;
	font-weight: 400;
	letter-spacing: 0.02em;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
}

.president__info-text {
	font-size: 1.6rem;
	font-weight: 400;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
}

.president__info-text span {
	font-size: 1.2rem;
	font-weight: 400;
}

.vision {
	background-image: url(../image/vision-bg.jpg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	padding: 5rem 0 40rem;
}

.vision__title {
	color: #333333;
	font-size: 1.6rem;
	margin: 0 auto 6rem;
	text-align: center;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
}

.vision__subtitle {
	color: #333333;
	font-family: "Zen Old Mincho", serif;
	font-size: 4.8rem;
	letter-spacing: 0.02em;
	line-height: 1.5;
	margin: 0 auto;
	text-align: center;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
}

.vision__subtitle span {
	font-size: 3.2rem;
}

.group-company {
	padding: 23rem 0 20rem;
}

.group-company__title {
	color: #FF4300;
	font-family: "Zen Old Mincho", serif;
	font-size: 3.2rem;
	margin: 0 auto;
	text-align: center;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
}

.group-company__text {
	font-size: 1.6rem;
	margin-bottom: 15rem;
	text-align: center;
}

.group-company__subtitle {
	color: #FF4300;
	font-family: "Zen Old Mincho", serif;
	font-size: 3.2rem;
	line-height: 1.2;
	margin: 0 auto 4rem;
	text-align: center;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
}

.group-company__subtitle span {
	color: #666666;
	font-size: 1.6rem;
}

.group-company__content {
	display: flex;
	flex-wrap: wrap;
	gap: 17rem;
	margin-bottom: 15rem;
}

.group-company__item {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	width: calc(50% - 8.5rem);
}

.group-company__item-name {
	color: #FF4300;
	font-size: 2.4rem;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
}

.group-company__item-logo {
	margin: 4rem 0;
	width: 25rem;
}

.group-company__item-text {
	margin-bottom: 3rem;
}

.group-company__item-link {
	background: linear-gradient(90deg, rgb(200, 0, 28) 0%, rgb(255, 67, 0) 100%);
	border-radius: 0.4rem;
	color: #FF4300;
	color: #fff;
	display: inline-block;
	font-size: 1.6rem;
	font-weight: 400;
	padding: 0.2rem 0;
	position: relative;
	text-align: center;
	width: 18rem;
	z-index: 1;
}

.group-company__item-link:before {
	background: linear-gradient(90deg, rgb(255, 67, 0) 0%, rgb(200, 0, 28) 100%);
	border-radius: 0.4rem;
	content: "";
	height: 100%;
	left: 0;
	opacity: 0;
	position: absolute;
	top: 0;
	transition: all 0.3s ease-in-out;
	width: 100%;
	z-index: -1;
}

.group-company__item-link:hover::before {
	opacity: 1;
}

.contact {
	background-color: #fff;
	padding: 15rem 0;
}

.contact__inner {
	margin: 0 auto;
	max-width: 68rem;
}

.contact__text {
	font-family: "Zen Old Mincho", serif;
	font-size: 2rem;
	line-height: 1.5;
	margin-bottom: 8rem;
	text-align: center;
}

.contact .CMS-FORM-GROUP {
	margin-bottom: 2.4rem;
}

.contact .CMS-FORM-GROUP:last-child {
	margin-bottom: 0;
}

.contact .CMS-FORM-INPUT-LABEL {
	color: #666666;
	font-weight: 400;
}

.contact .CMS-FORM-INPUT,
.contact .CMS-FORM-EMAIL {
	border: 1px solid #dddddd;
	border-radius: 0.4rem;
	height: 5rem;
	padding: 1rem;
	width: 100%;
}

.contact .CMS-FORM-TEXTAREA {
	border: 1px solid #dddddd;
	border-radius: 0.4rem;
	height: 8rem;
	padding: 1rem;
	resize: none;
	width: 100%;
}

.contact .CMS-FORM-CHECKBOX {
	align-items: center;
	display: flex;
	justify-content: center;
	margin-bottom: 2.4rem;
	position: relative;
}

.contact .CMS-FORM-CHECKBOX input[type=checkbox] {
	cursor: pointer;
	height: 2rem;
	left: 0;
	margin: 0;
	opacity: 0;
	position: absolute;
	top: 0;
	width: 2rem;
	z-index: 2;
}

.contact .CMS-FORM-CHECKBOX label {
	cursor: pointer;
	display: inline-block;
	line-height: 2rem;
	margin-left: 2.8rem;
	min-height: 2rem;
	position: relative;
}

.contact .CMS-FORM-CHECKBOX label a {
	color: #444444;
	text-decoration: underline;
}

.contact .CMS-FORM-CHECKBOX label:before {
	background: #fff;
	border: 1.5px solid #fff;
	border: 1px solid #444444;
	border-radius: 0.4rem;
	box-sizing: border-box;
	content: "";
	height: 2rem;
	left: -3rem;
	position: absolute;
	top: 0;
	transition: border-color 0.2s, background 0.2s;
	width: 2rem;
}

.contact .CMS-FORM-CHECKBOX input[type=checkbox]:checked + label:before {
	background: #444444;
}

.contact .CMS-FORM-CHECKBOX input[type=checkbox]:checked + label:after {
	border-bottom: 2.5px solid #fff;
	border-right: 2.5px solid #fff;
	content: "";
	height: 1rem;
	left: -2.4rem;
	position: absolute;
	top: 0.3rem;
	transform: rotate(40deg);
	width: 0.5rem;
}

.contact .submit-btn {
	background: linear-gradient(90deg, rgb(1, 165, 81) 0%, rgb(116, 187, 74) 100%);
	border: none;
	border-radius: 0.4rem;
	cursor: pointer;
	display: block;
	margin: 0 auto;
	padding: 1rem 0;
	position: relative;
	width: 34rem;
	z-index: 1;
}

.contact .submit-btn input[type=submit] {
	background: none;
	border: none;
	color: #fff;
	cursor: pointer;
	font-size: 1.4rem;
	font-weight: 600;
	height: 100%;
	text-align: center;
	width: 100%;
}

.contact .submit-btn::before {
	background: linear-gradient(90deg, rgb(116, 187, 74) 0%, rgb(1, 165, 81) 100%);
	border-radius: 0.4rem;
	content: "";
	height: 100%;
	left: 0;
	opacity: 0;
	position: absolute;
	top: 0;
	transition: all 0.3s ease-in-out;
	width: 100%;
	z-index: -1;
}

.contact .submit-btn::after {
	color: #fff;
	content: ">";
	font-size: 1.6rem;
	font-weight: bold;
	position: absolute;
	right: 30%;
	top: 50%;
	transform: translateY(-50%);
	transition: all 0.3s ease-in-out;
}

.contact .submit-btn:hover::before {
	opacity: 1;
}

.contact .submit-btn:hover::after {
	right: 27%;
}

.thanx {
	background-color: #fff;
	padding: 20rem 0;
}

.thanx__inner {
	margin: 0 auto;
	max-width: 68rem;
}

.thanx__title {
	font-family: "Zen Old Mincho", serif;
	font-size: 2rem;
	line-height: 1.5;
	margin-bottom: 10rem;
	text-align: center;
}

.thanx__text {
	margin-bottom: 15rem;
}

.thanx__btn {
	background: linear-gradient(90deg, rgb(1, 165, 81) 0%, rgb(116, 187, 74) 100%);
	border-radius: 0.4rem;
	color: #fff;
	display: block;
	font-size: 1.4rem;
	font-weight: 600;
	margin: 0 auto;
	padding: 1rem 0;
	text-align: center;
	width: 34rem;
}

.privacy {
	background-color: #fff;
	padding: 20rem 0;
}

.privacy__inner {
	margin: 0 auto;
	max-width: 75rem;
}

.privacy__title {
	font-family: "Zen Old Mincho", serif;
	font-size: 2rem;
	line-height: 1.5;
	margin-bottom: 10rem;
	text-align: center;
}

.privacy__text {
	margin-bottom: 10rem;
}

.privacy__btn {
	background: linear-gradient(90deg, rgb(1, 165, 81) 0%, rgb(116, 187, 74) 100%);
	border-radius: 0.4rem;
	color: #fff;
	display: block;
	margin: 0 auto;
	padding: 1rem 0;
	position: relative;
	text-align: center;
	width: 34rem;
	z-index: 1;
}

.privacy__btn::before {
	background: linear-gradient(90deg, rgb(116, 187, 74) 0%, rgb(1, 165, 81) 100%);
	border-radius: 0.4rem;
	content: "";
	height: 100%;
	left: 0;
	opacity: 0;
	position: absolute;
	top: 0;
	transition: all 0.3s ease-in-out;
	width: 100%;
	z-index: -1;
}

.privacy__btn::after {
	color: #fff;
	content: ">";
	font-size: 1.6rem;
	font-weight: bold;
	position: absolute;
	right: 30%;
	top: 50%;
	transform: translateY(-50%);
	transition: all 0.3s ease-in-out;
}

.privacy__btn:hover::before {
	opacity: 1;
}

.privacy__btn:hover::after {
	right: 27%;
}

html {
	font-size: 0.6944444444vw;
}

body {
	background-color: #fff;
	background-image: url(../image/bg.svg);
	background-position: center;
	background-repeat: repeat-y;
	background-size: contain;
	color: #666666;
	font-family: "Zen Kaku Gothic New", "Noto Sans", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
	font-size: 1.4rem;
	font-weight: 500;
	letter-spacing: 0.01em;
	line-height: 2;
}

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

main {
	overflow: hidden;
}

.container {
	margin: 0 auto;
	max-width: 126rem;
	padding: 0 2rem;
}

.section-title {
	font-family: "Zen old mincho", serif;
	font-size: 3.2rem;
	font-weight: bold;
	letter-spacing: 0.01em;
	line-height: 2;
	position: relative;
	text-align: center;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
}

.btn {
	background: linear-gradient(90deg, rgb(200, 0, 28) 0%, rgb(255, 67, 0) 100%);
	border-radius: 0.4rem;
	color: #fff;
	display: block;
	font-size: 1.6rem;
	font-weight: bold;
	letter-spacing: 0.01em;
	line-height: 1;
	margin: 0 auto;
	padding: 1.6rem 0;
	position: relative;
	text-align: center;
	transition: all 0.3s ease-in-out;
	width: 34.3rem;
	z-index: 1;
}

.btn::before {
	background: linear-gradient(90deg, rgb(255, 67, 0) 0%, rgb(200, 0, 28) 100%);
	border-radius: 0.4rem;
	content: "";
	height: 100%;
	left: 0;
	opacity: 0;
	position: absolute;
	top: 0;
	transition: all 0.3s ease-in-out;
	width: 100%;
	z-index: -1;
}

.btn::after {
	color: #fff;
	content: ">";
	font-size: 1.6rem;
	font-weight: bold;
	position: absolute;
	right: 30%;
	top: 50%;
	transform: translateY(-50%);
	transition: all 0.3s ease-in-out;
}

.btn:hover::before {
	opacity: 1;
}

.btn:hover::after {
	right: 27%;
}

.sp {
	display: none;
}

.pc {
	display: block;
}

.hero {
	background-image: url(../image/mv.jpg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	height: 79.8rem;
	overflow: hidden;
	position: relative;
	width: 100%;
}

.hero__inner {
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: end;
}

.hero__title {
	color: #fff;
	font-size: 3.2rem;
	font-weight: bold;
	margin: 0 auto;
	text-align: center;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
}

.hero__text-scroll {
	display: flex;
	flex-wrap: nowrap;
	width: 100%;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
}

.hero__text-scroll li {
	-webkit-animation: scroll-left 40s linear infinite;
	animation: scroll-left 40s linear infinite;
	color: #fff;
	font-size: 16rem;
	font-weight: bold;
	line-height: 0.7;
	padding-left: 0.2em;
	white-space: nowrap;
	width: -moz-fit-content;
	width: -webkit-fit-content;
	width: fit-content;
}

.hero__circle {
	-webkit-animation: rotate 10s linear infinite;
	animation: rotate 10s linear infinite;
	bottom: 15rem;
	height: 13.6rem;
	position: absolute;
	right: 3rem;
	width: 13.6rem;
	z-index: 1;
}

.news {
	padding: 10rem 0 5rem;
}

.news .section-title {
	margin: 0 auto;
}

.news .section-title::after {
	background-image: url(../image/news-title.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	height: 12rem;
	left: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 374rem;
	z-index: -1;
}

.news .CMS-NEWS-INDEX {
	margin: 10rem auto 0;
	width: 67.5rem;
}

.news .CMS-NEWS-ITEM {
	margin-bottom: 6rem;
	position: relative;
}

.news .CMS-NEWS-ITEM::after {
	background-color: #ccc;
	bottom: -0.5rem;
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	transition: all 0.3s ease-in-out;
	width: 0%;
}

.news .CMS-NEWS-ITEM:last-child {
	margin-bottom: 0;
}

.news .CMS-NEWS-ITEM:hover::after {
	width: 100%;
}

.news .CMS-NEWS-LINK-CONTENT {
	color: #666666;
	display: inline-block;
	width: 100%;
}

.news .CMS-NEWS-LINK {
	margin-left: 2rem;
}

.news .CMS-NEWS-MORE-READ {
	display: none;
}

.about {
	padding: 5rem 0;
	position: relative;
}

.about__inner {
	align-items: end;
	display: flex;
	gap: 6rem;
}

.about__img {
	width: 57rem;
}

.about__content {
	padding-bottom: 4rem;
	width: calc(100% - 63rem);
}

.about .section-title {
	margin-bottom: 1.5rem;
	text-align: left;
	z-index: 1;
}

.about .section-title::after {
	background-image: url(../image/about-title.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	height: 12rem;
	left: 0;
	position: absolute;
	top: 30%;
	transform: translateY(-50%);
	width: 61.1rem;
	z-index: -1;
}

.about__title {
	font-size: 1.6rem;
	font-weight: bold;
	letter-spacing: 0.01em;
	margin-bottom: 4.2rem;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
}

.about__subtitle {
	font-size: 2.4rem;
	font-weight: bold;
	letter-spacing: 0.01em;
	margin-bottom: 3.8rem;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
}

.about__bg {
	height: 100%;
	left: 50%;
	position: absolute;
	top: 34%;
	transform: translateX(-50%);
	width: 100%;
	z-index: -1;
}

.reason {
	padding: 5rem 0 10rem;
}

.reason .section-title {
	margin: 0 auto 6rem;
}

.reason__content {
	display: flex;
	flex-wrap: wrap;
	gap: 10rem;
}

.reason__item {
	width: calc(50% - 5rem);
}

.reason__item-img {
	margin-bottom: 1.5rem;
}

.reason__item-title {
	color: #333333;
	font-family: "Zen old mincho", serif;
	font-size: 1.8rem;
	font-weight: bold;
	letter-spacing: 0.01em;
	margin: 0 auto 1.5rem;
	text-align: center;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
}

.reason__item-text {
	text-align: center;
}

.movie {
	background-image: url(../image/movie-bg.png);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	padding: 6rem 0;
}

.movie .section-title {
	margin-bottom: 6rem;
}

.movie__video {
	height: 100%;
	width: 100%;
}

.movie__video video {
	-o-object-fit: cover;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.number {
	padding: 20rem 0 5rem;
}

.number .section-title {
	margin: 0 auto;
}

.number .section-title::after {
	background-image: url(../image/number-title.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	height: 12rem;
	left: 50%;
	position: absolute;
	top: 40%;
	transform: translate(-50%, -50%);
	width: 81.5rem;
	z-index: -1;
}

.number__content {
	background-image: url(../image/number-bg.jpg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	padding: 10rem 0;
}

.number__text {
	color: #fff;
	margin-bottom: 8rem;
	text-align: center;
}

.map {
	padding: 5rem 0;
	position: relative;
}

.map__inner {
	align-items: end;
	display: flex;
	gap: 6rem;
}

.map__img {
	width: 57rem;
}

.map__content {
	padding-bottom: 1rem;
	position: relative;
	width: calc(100% - 63rem);
}

.map__content img {
	height: 50rem;
	left: 50%;
	position: absolute;
	top: 7%;
	transform: translate(-50%, -50%);
	width: 62.2rem;
}

.map .section-title {
	margin-bottom: 15rem;
	text-align: left;
}

.map .section-title::after {
	background-image: url(../image/map-title.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	height: 30rem;
	left: -16rem;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 76.9rem;
	z-index: -1;
}

.map .btn {
	background: linear-gradient(90deg, rgb(1, 165, 81) 0%, rgb(116, 187, 74) 100%);
	margin-top: 10rem;
}

.map .btn:before {
	background: linear-gradient(90deg, rgb(116, 187, 74) 0%, rgb(1, 165, 81) 100%);
}

.map .btn:hover::before {
	opacity: 1;
}

.voice {
	padding: 20rem 0 5rem;
}

.voice .section-title {
	margin: 0 auto;
}

.voice .section-title::after {
	background-image: url(../image/voice-title.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	height: 12rem;
	left: 50%;
	position: absolute;
	top: 40%;
	transform: translate(-50%, -50%);
	width: 109.4rem;
	z-index: -1;
}

.voice__content {
	background-image: url(../image/voice-bg.jpg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	padding: 10rem 0;
}

.voice__text {
	color: #fff;
	margin-bottom: 8rem;
	text-align: center;
}

.company {
	padding: 10rem 0;
	position: relative;
}

.company__inner {
	align-items: end;
	display: flex;
	gap: 6rem;
}

.company__img {
	width: 57rem;
}

.company__content {
	padding-bottom: 1rem;
	width: calc(100% - 63rem);
}

.company .section-title {
	margin-bottom: 4rem;
	text-align: left;
}

.company .section-title::after {
	background-image: url(../image/company-title.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	height: 30rem;
	left: 0;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 68rem;
	z-index: -1;
}

.company__title {
	font-size: 1.6rem;
	margin-bottom: 5rem;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
}

.company .btn {
	background: linear-gradient(90deg, rgb(1, 165, 81) 0%, rgb(116, 187, 74) 100%);
	margin-top: 10rem;
}

.company .btn:before {
	background: linear-gradient(90deg, rgb(116, 187, 74) 0%, rgb(1, 165, 81) 100%);
}

.company .btn:hover::before {
	opacity: 1;
}

.parallax {
	overflow: hidden;
	padding: 13rem 0;
	position: relative;
}

.parallax__bg {
	background-image: url(../image/parallax-bg.jpg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	height: 75vh;
	left: 0;
	position: absolute;
	top: 0;
	transform: translateZ(0);
	width: 100%;
	will-change: transform;
}

.parallax__inner {
	position: relative;
	z-index: 2;
}

.parallax__text-scroll {
	display: flex;
	flex-wrap: nowrap;
	width: 100%;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
}

.parallax__text-scroll li {
	-webkit-animation: scroll-left 40s linear infinite;
	animation: scroll-left 40s linear infinite;
	color: #fff;
	font-size: 16rem;
	font-weight: bold;
	line-height: 0.7;
	padding-left: 0.2em;
	white-space: nowrap;
	width: -moz-fit-content;
	width: -webkit-fit-content;
	width: fit-content;
}

.recruit {
	background-image: url(../image/recruit-bg.png);
	background-position: center 90%;
	background-repeat: no-repeat;
	background-size: 80%;
	overflow: hidden;
	padding: 36rem 0 15rem;
}

.recruit__inner {
	position: relative;
}

.recruit__map {
	height: 46.8rem;
	left: 50%;
	position: absolute;
	top: -15%;
	transform: translateX(-50%);
	width: 62.2rem;
	z-index: 0;
}

.recruit .section-title {
	margin: 0 auto 14rem;
	position: relative;
	z-index: 1;
}

.recruit .section-title::after {
	background-image: url(../image/recruit-title.svg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	height: 12rem;
	left: 50%;
	position: absolute;
	top: 220%;
	transform: translateX(-50%);
	width: 94rem;
}

.recruit__img {
	margin-bottom: 6rem;
}

.recruit__text {
	text-align: center;
}

.recruit .btn {
	background: linear-gradient(90deg, rgb(1, 165, 81) 0%, rgb(116, 187, 74) 100%);
	margin-top: 6rem;
}

.recruit .btn:before {
	background: linear-gradient(90deg, rgb(116, 187, 74) 0%, rgb(1, 165, 81) 100%);
}

.recruit .btn:hover::before {
	opacity: 1;
}

.bgLRextendTrigger {
	position: relative;
	transform: translateZ(0);
	will-change: transform;
}

.bgextend {
	opacity: 0;
	position: relative;
	transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1);
	will-change: opacity;
}

.bgextend.bgLRextend {
	opacity: 1;
}

.bgappear {
	opacity: 0;
	transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1);
	transition-delay: 0.6s;
	will-change: opacity;
}

.bgLRextend .bgappear {
	opacity: 1;
}

.bgLRextend::before {
	background: linear-gradient(90deg, rgb(1, 165, 81) 0%, rgb(114, 186, 74) 100%);
	content: "";
	height: 100%;
	position: absolute;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
	width: 100%;
	will-change: transform;
}

.bgLRextend.is-active::before {
	transform: scaleX(1);
	transform-origin: left;
	transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.bgLRextend.is-active.is-leaving::before {
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

.bgv2::before {
	background: linear-gradient(90deg, rgb(200, 0, 28) 0%, rgb(255, 67, 0) 100%);
}

.fade-in-up {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.8s ease-in-out, transform 0.8s ease-in-out;
	will-change: opacity, transform;
}

.fade-in-up.is-active {
	opacity: 1;
	transform: translateY(0);
}

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

.header__inner {
	padding: 1.5rem;
}

.header__nav {
	background-color: #F5F7F5;
	height: 100%;
	padding: 2rem;
	position: fixed;
	right: 0;
	top: 0;
	transform: translateX(100%);
	transition: 0.2s;
	width: 100%;
	z-index: 99999;
}

.header__nav.active {
	transform: translateX(0);
}

.header__nav-list {
	align-items: start;
	flex-direction: column;
	gap: 0;
	height: 100%;
	justify-content: center;
}

.header__nav-item {
	border-bottom: 1px solid #E0E0E0;
	width: 100%;
}

.header__nav-item:last-child {
	border-bottom: none;
	padding: 2rem 0;
	text-align: center;
}

.header__nav-link {
	font-size: 1.6rem;
	padding: 2rem 0;
}

.header .burger-btn {
	background: transparent;
	border: none;
	cursor: pointer;
	display: block;
	position: fixed;
	right: 1rem;
	top: 1.5rem;
	z-index: 99999;
}

.header .burger-btn .bar {
	background: #004B42;
	display: block;
	height: 0.2rem;
	margin: 0;
	transition: 0.2s;
	width: 4rem;
}

.header .burger-btn .h-menu {
	display: inline-block;
	text-align: center;
	transform: translateY(0);
	transition: 0.2s;
	width: 100%;
}

.header .burger-btn.active .bar-top {
	transform: translateY(1.5rem) rotate(45deg);
}

.header .burger-btn.active .h-menu {
	transform: translateY(3rem);
}

.header .burger-btn.active .bar-bottom {
	transform: translateY(-1.5rem) rotate(-45deg);
}

.page-head {
	height: 40vh;
}

.page-head__title {
	font-size: 1.6rem;
}

.footer {
	padding: 4rem 0;
}

.footer__content {
	flex-direction: column;
}

.footer__left::before {
	height: 1px;
	left: 0;
	right: auto;
	top: 100%;
	width: 100%;
}

.footer__right {
	margin-top: 2rem;
}

.footer__logo {
	margin-bottom: 2rem;
}

.footer__info {
	margin-bottom: 2rem;
}

.footer__copyright {
	text-align: center;
}

.footer__nav-list {
	flex-direction: column;
	gap: 1rem;
	margin-bottom: 2rem;
}

.footer__sns {
	margin-bottom: 1rem;
}

.news-archive {
	padding: 8rem 0 15rem;
}

.news-archive .section-title::after {
	height: 100%;
	width: 100%;
}

.news-archive .CMS-NEWS-INDEX {
	flex-direction: column;
	gap: 4rem;
	margin-top: 4rem;
}

.news-archive .CMS-NEWS-ITEM {
	width: 100%;
}

.news-detail {
	padding: 8rem 0;
}

.news-detail .CMS-NEWS-TITLE {
	font-size: 1.8rem;
}

.news-detail .CMS-NEWS-CONTENT img {
	width: 100%;
	height: auto;
}

.page-map {
	padding: 4rem 0;
}

.page-map__inner {
	flex-direction: column;
	gap: 3rem;
}

.page-map__img {
	width: 100%;
}

.page-map__content {
	padding-bottom: 0;
	width: 100%;
}

.page-map__content img {
	width: 110%;
}

.page-map .section-title {
	margin-bottom: 6rem;
}

.page-map .section-title::after {
	left: 0;
	width: 110%;
}

.map-illust {
	margin-bottom: 4rem;
}

.map-btn__inner {
	gap: 2rem;
	justify-content: space-between;
	margin-bottom: 4rem;
}

.map-btn p {
	font-size: 1.6rem;
	padding: 0;
}

.map-facility__wrap {
	flex-direction: column;
	gap: 4rem;
}

.map-facility__item {
	width: 100%;
}

.map-facility__title {
	font-size: 2rem;
	margin-bottom: 1rem;
}

.map-facility__text {
	font-size: 1.4rem;
	margin-bottom: 1rem;
}

.map-facility__link {
	font-size: 1.4rem;
	width: 10rem;
}

.president {
	padding: 10rem 0;
}

.president__title .main-title {
	font-size: 2.4rem;
	margin-bottom: 3rem;
}

.president__title .sub-title {
	font-size: 1.4rem;
	transform: translateX(0);
}

.president__content {
	flex-direction: column;
	gap: 4rem;
	margin-bottom: 6rem;
}

.president__text {
	order: 1;
	width: 100%;
}

.president__img {
	order: 0;
	width: 100%;
}

.president__info-name {
	font-size: 2rem;
}

.president__info-text {
	font-size: 1.4rem;
}

.vision {
	padding: 5rem 0 15rem;
}

.vision__title {
	margin-bottom: 3rem;
}

.vision__subtitle {
	font-size: 2.8rem;
}

.group-company {
	padding: 10rem 0 8rem;
}

.group-company__title {
	font-size: 2.4rem;
}

.group-company__text {
	margin-bottom: 6rem;
}

.group-company__subtitle {
	font-size: 2.4rem;
}

.group-company__subtitle span {
	font-size: 1.4rem;
}

.group-company__content {
	flex-direction: column;
	gap: 6rem;
	margin-bottom: 10rem;
}

.group-company__item {
	width: 100%;
}

.group-company__item-name {
	font-size: 2rem;
}

.group-company__item-logo {
	margin: 2rem 0;
	width: 100%;
}

.group-company__item-text {
	margin-bottom: 2rem;
}

.contact {
	padding: 8rem 0;
}

.contact__text {
	font-size: 1.8rem;
	margin-bottom: 6rem;
}

.contact .CMS-FORM-GROUP {
	margin-bottom: 2rem;
}

.contact .CMS-FORM-INPUT,
.contact .CMS-FORM-EMAIL {
	height: 4rem;
}

.thanx {
	padding: 8rem 0;
}

.thanx__title {
	font-size: 1.8rem;
	margin-bottom: 6rem;
}

.privacy {
	padding: 8rem 0;
}

.privacy__title {
	font-size: 1.8rem;
	margin-bottom: 6rem;
}

html {
	font-size: 2.6666666667vw;
}

.section-title {
	font-size: 2.8rem;
}

.btn {
	font-size: 1.4rem;
	padding: 1.3rem;
	width: 30rem;
}

.sp {
	display: block;
}

.pc {
	display: none;
}

.hero {
	height: 70vh;
}

.hero__title {
	font-size: 1.6rem;
}

.hero__text-scroll li {
	font-size: 6.8rem;
	line-height: 1;
}

.hero__circle {
	height: 7rem;
	right: 1rem;
	width: 7rem;
}

.news {
	padding: 8rem 0 4;
}

.news .section-title::after {
	height: 100%;
	width: 150%;
}

.news .CMS-NEWS-INDEX {
	margin-top: 3rem;
	width: 100%;
}

.news .CMS-NEWS-ITEM {
	margin-bottom: 3rem;
}

.about {
	padding: 4rem 0;
}

.about__inner {
	flex-direction: column;
	gap: 4rem;
}

.about__img {
	width: 100%;
}

.about__content {
	padding-bottom: 0;
	width: 100%;
}

.about .section-title {
	margin-bottom: 0;
}

.about .section-title::after {
	height: 100%;
	width: 150%;
}

.about__title {
	font-size: 1.4rem;
	margin-bottom: 1rem;
}

.about__subtitle {
	font-size: 2rem;
	line-height: 1.5;
	margin-bottom: 1.5rem;
}

.about__bg {
	top: 60%;
}

.about__bg img {
	-o-object-fit: cover;
	height: 60%;
	object-fit: cover;
}

.reason {
	padding: 4rem 0 8rem;
}

.reason .section-title {
	line-height: 1.5;
	margin-bottom: 3rem;
}

.reason__content {
	flex-direction: column;
	gap: 4rem;
}

.reason__item {
	width: 100%;
}

.reason__item-img {
	margin-bottom: 1rem;
}

.reason__item-title {
	font-size: 1.6rem;
	margin-bottom: 1rem;
}

.movie {
	padding: 4rem 0;
}

.number {
	padding: 8rem 0 4rem;
}

.number .section-title::after {
	height: 100%;
	width: 100%;
}

.number__content {
	padding: 4rem 1rem;
}

.number__text {
	margin-bottom: 4rem;
}

.number .btn {
	width: 30rem;
}

.map {
	padding: 4rem 0;
}

.map__inner {
	flex-direction: column;
	gap: 3rem;
}

.map__img {
	width: 100%;
}

.map__content {
	padding-bottom: 0;
	width: 100%;
}

.map__content img {
	width: 110%;
}

.map .section-title {
	margin-bottom: 6rem;
}

.map .section-title::after {
	left: 0;
	width: 110%;
}

.map .btn {
	margin-top: 4rem;
}

.voice {
	padding: 4rem 0;
}

.voice .section-title::after {
	height: 100%;
	width: 250%;
}

.voice__content {
	padding: 4rem 1rem;
}

.voice__text {
	margin-bottom: 4rem;
}

.voice .btn {
	width: 30rem;
}

.company {
	padding: 4rem 0 8rem;
}

.company__inner {
	flex-direction: column;
	gap: 4rem;
}

.company__img {
	order: 0;
	width: 100%;
}

.company__content {
	order: 1;
	padding-bottom: 0;
	width: 100%;
}

.company .section-title {
	margin-bottom: 1rem;
}

.company .section-title::after {
	height: 100%;
	width: 250%;
}

.company__title {
	margin-bottom: 2rem;
}

.company .btn {
	margin-top: 4rem;
}

.parallax {
	padding: 8rem 0;
}

.parallax__text-scroll li {
	font-size: 6.8rem;
	line-height: 1;
}

.recruit {
	background-position: center 100%;
	background-size: 140%;
	padding: 8rem 0;
}

.recruit__map {
	width: 100%;
}

.recruit .section-title {
	line-height: 1.5;
	margin-bottom: 6rem;
}

.recruit .section-title::after {
	height: 100%;
	top: 100%;
	width: 100%;
}

.recruit__img {
	margin-bottom: 4rem;
}

.recruit__text {
	text-align: left;
}

.recruit .btn {
	margin-top: 4rem;
}

}

@-webkit-keyframes scroll-left {

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

}

@keyframes scroll-left {

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

}

@-webkit-keyframes rotate {

from {
	transform: rotate(0deg);
}

to {
	transform: rotate(360deg);
}

}

@keyframes rotate {

from {
	transform: rotate(0deg);
}

to {
	transform: rotate(360deg);
}

}

