@charset "UTF-8";
@-webkit-keyframes slideLRAnime {
	0% {
		-webkit-clip-path: inset(0 100% 0 0);
						clip-path: inset(0 100% 0 0);
	}
	100% {
		-webkit-clip-path: inset(0);
						clip-path: inset(0);
	}
}
@keyframes slideLRAnime {
	0% {
		-webkit-clip-path: inset(0 100% 0 0);
						clip-path: inset(0 100% 0 0);
	}
	100% {
		-webkit-clip-path: inset(0);
						clip-path: inset(0);
	}
}
@-webkit-keyframes slideTBAnime {
	0% {
		-webkit-clip-path: inset(0 0 100% 0);
						clip-path: inset(0 0 100% 0);
	}
	100% {
		-webkit-clip-path: inset(0);
						clip-path: inset(0);
	}
}
@keyframes slideTBAnime {
	0% {
		-webkit-clip-path: inset(0 0 100% 0);
						clip-path: inset(0 0 100% 0);
	}
	100% {
		-webkit-clip-path: inset(0);
						clip-path: inset(0);
	}
}
* {
	margin: 0;
	padding: 0;
	font-size: 100%;
	font-style: normal;
}

body {
	-moz-text-size-adjust: 100%;
	 -ms-text-size-adjust: 100%;
			 text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
	margin: 0;
	padding: 0;
}

*,
*::before,
*::after {
	-webkit-box-sizing: border-box;
					box-sizing: border-box;
}

a {
	text-decoration: none;
	color: #222222;
}

a img {
	border: none;
}

img {
	width: 100%;
	height: auto;
	vertical-align: bottom;
}

figure {
	margin: 0;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

ul,
li,
ol,
dl,
dt,
dd {
	margin: 0;
	padding: 0;
	list-style: none;
}

input,
label,
select,
textarea {
	vertical-align: middle;
}

button {
	color: unset;
	background-color: unset;
	border: none;
	outline: none;
	padding: 0;
	-webkit-appearance: none;
		 -moz-appearance: none;
					appearance: none;
	cursor: pointer;
}

body {
	font-family: "Yu Gothic", YuGothic, "游ゴシック", "游ゴシック体", "ヒラギノ角ゴ Pro W3", "Noto Sans CJK", sans-serif;
	font-weight: 500;
	font-size: 12px;
	color: #222222;
}
@media all and (min-width: 751px) {
	body {
		font-size: 16px;
	}
}

:root {
	--header-hight: 60px;
}
@media all and (min-width: 751px) {
	:root {
		--header-hight: 80px;
	}
}
@media screen and (min-width: 751px) and (max-width: 999px) {
	:root {
		--header-hight: 60px;
	}
}

.inner {
	--sp_padding: 25px;
	--tb_padding: 8%;
	--pc_padding: 200px;
	padding: 0 var(--sp_padding);
}
@media screen and (min-width: 500px) and (max-width: 750px) {
	.inner {
		padding: 0 80px;
	}
}
@media all and (min-width: 751px) {
	.inner {
		padding: 0 var(--pc_padding);
		max-width: 1400px;
		margin: 0 auto;
	}
}
@media all and (min-width: 751px) and (max-width: 1200px) {
	.inner {
		padding: 0 calc(var(--pc_padding) / 2);
	}
}
@media screen and (min-width: 751px) and (max-width: 999px) {
	.inner {
		padding: 0 var(--tb_padding);
	}
}

.forSP {
	display: block;
}
@media all and (min-width: 751px) {
	.forSP {
		display: none;
	}
}

.forPC {
	display: none;
}
@media all and (min-width: 751px) {
	.forPC {
		display: block;
	}
}

.brsp {
	display: block;
}
@media all and (min-width: 751px) {
	.brsp {
		display: none;
	}
}

.brpc {
	display: none;
}
@media all and (min-width: 751px) {
	.brpc {
		display: block;
	}
}

/*----------------------------------------------------
タイトル
----------------------------------------------------*/
#mv {
	position: relative;
}
#mv .page_title {
	position: absolute;
	z-index: 1;
	top: 60%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
					transform: translate(-50%, -50%);
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
			-ms-flex-direction: column;
					flex-direction: column;
	-webkit-box-align: center;
			-ms-flex-align: center;
					align-items: center;
	gap: 22px;
	text-align: center;
}
@media all and (min-width: 751px) {
	#mv .page_title {
		top: 60%;
		gap: 54px;
	}
}
@media screen and (min-width: 751px) and (max-width: 999px) {
	#mv .page_title {
		gap: 30px;
	}
}
#mv .page_title span {
	display: block;
	color: #fff;
	text-align: center;
	white-space: nowrap;
	font-weight: bold;
}
#mv .page_title .en {
	font-family: "Roboto", sans-serif;
	font-style: normal;
	font-weight: 900;
	font-size: 27px;
	letter-spacing: 0.4em;
}
@media all and (min-width: 751px) {
	#mv .page_title .en {
		font-size: 44px;
	}
}
@media screen and (min-width: 751px) and (max-width: 999px) {
	#mv .page_title .en {
		font-size: 36px;
	}
}
#mv .page_title .jp {
	position: relative;
	font-weight: bold;
	letter-spacing: 0.2em;
	font-size: 15px;
}
@media all and (min-width: 751px) {
	#mv .page_title .jp {
		font-size: 23px;
	}
}
@media screen and (min-width: 751px) and (max-width: 999px) {
	#mv .page_title .jp {
		font-size: 18px;
	}
}
#mv .page_title .jp::before {
	position: absolute;
	content: "";
	top: -10px;
	left: 50%;
	-webkit-transform: translate(-50%, -100%) scaleX(0);
					transform: translate(-50%, -100%) scaleX(0);
	background-color: #fff;
	width: 45px;
	height: 2px;
	-webkit-transform-origin: center;
					transform-origin: center;
	-webkit-animation: showLine 0.4s 0.6s forwards ease;
					animation: showLine 0.4s 0.6s forwards ease;
}
@media all and (min-width: 751px) {
	#mv .page_title .jp::before {
		top: -24px;
		width: 90px;
		height: 4px;
	}
}
@media screen and (min-width: 751px) and (max-width: 999px) {
	#mv .page_title .jp::before {
		top: -16px;
		width: 80px;
		height: 3px;
	}
}
@-webkit-keyframes showLine {
	0% {
		-webkit-transform: translate(-50%, -100%) scaleX(0);
						transform: translate(-50%, -100%) scaleX(0);
	}
	100% {
		-webkit-transform: translate(-50%, -100%) scaleX(100%);
						transform: translate(-50%, -100%) scaleX(100%);
	}
}
@keyframes showLine {
	0% {
		-webkit-transform: translate(-50%, -100%) scaleX(0);
						transform: translate(-50%, -100%) scaleX(0);
	}
	100% {
		-webkit-transform: translate(-50%, -100%) scaleX(100%);
						transform: translate(-50%, -100%) scaleX(100%);
	}
}

.door_page #mv {
	position: relative;
	background-image: url(../images/common/mvbg_sp.webp);
	background-size: 100% 61.13%;
	background-repeat: no-repeat;
}
@media all and (min-width: 751px) {
	.door_page #mv {
		background-image: url(../images/common/mvbg_pc.webp);
		background-size: 91.43% 94.8%;
	}
}
.door_page #mv .page_title {
	position: absolute;
	z-index: 1;
	top: 33%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
					transform: translate(-50%, -50%);
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
			-ms-flex-direction: column;
					flex-direction: column;
	-webkit-box-align: center;
			-ms-flex-align: center;
					align-items: center;
	gap: 30px;
	text-align: center;
}
@media all and (min-width: 751px) {
	.door_page #mv .page_title {
		top: 52%;
		left: 30%;
		gap: 42px;
	}
}
@media screen and (min-width: 751px) and (max-width: 999px) {
	.door_page #mv .page_title {
		gap: 30px;
	}
}
.door_page #mv .page_title span {
	display: block;
	color: #fff;
	text-align: center;
	white-space: nowrap;
	font-weight: bold;
}
.door_page #mv .page_title .en {
	font-family: "Roboto", sans-serif;
	font-style: normal;
	font-weight: 900;
	font-size: 28px;
	letter-spacing: 0.4em;
}
@media all and (min-width: 751px) {
	.door_page #mv .page_title .en {
		font-size: 42px;
	}
}
@media screen and (min-width: 751px) and (max-width: 999px) {
	.door_page #mv .page_title .en {
		font-size: 34px;
	}
}
.door_page #mv .page_title .jp {
	position: relative;
	font-weight: bold;
	letter-spacing: 0.2em;
	font-size: 15px;
}
@media all and (min-width: 751px) {
	.door_page #mv .page_title .jp {
		font-size: 19px;
	}
}
@media screen and (min-width: 751px) and (max-width: 999px) {
	.door_page #mv .page_title .jp {
		font-size: 15px;
	}
}
.door_page #mv .page_title .jp::before {
	position: absolute;
	content: "";
	top: -14px;
	left: 50%;
	-webkit-transform: translate(-50%, -100%) scaleX(0);
					transform: translate(-50%, -100%) scaleX(0);
	background-color: #fff;
	width: 55px;
	height: 2px;
	-webkit-transform-origin: center;
					transform-origin: center;
	-webkit-animation: showLine 0.4s 0.6s forwards ease;
					animation: showLine 0.4s 0.6s forwards ease;
}
@media all and (min-width: 751px) {
	.door_page #mv .page_title .jp::before {
		top: -24px;
		width: 68px;
		height: 3px;
	}
}
@media screen and (min-width: 751px) and (max-width: 999px) {
	.door_page #mv .page_title .jp::before {
		top: -16px;
		height: 2px;
	}
}
@keyframes showLine {
	0% {
		-webkit-transform: translate(-50%, -100%) scaleX(0);
						transform: translate(-50%, -100%) scaleX(0);
	}
	100% {
		-webkit-transform: translate(-50%, -100%) scaleX(100%);
						transform: translate(-50%, -100%) scaleX(100%);
	}
}
@media all and (max-width: 750px) {
	.door_page #mv .image {
		padding-top: 54%;
		margin-inline: 20px;
	}
}
@media all and (min-width: 751px) {
	.door_page #mv .image {
		width: 50vw;
		padding-top: 97px;
		margin-left: auto;
	}
}

body:not(#home) .section_title {
	text-align: center;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
			-ms-flex-direction: column;
					flex-direction: column;
	-webkit-box-align: center;
			-ms-flex-align: center;
					align-items: center;
	gap: 6px;
}
body:not(#home) .section_title .en {
	font-family: "Roboto", sans-serif;
	font-style: normal;
	color: #00787e;
	font-weight: bold;
	letter-spacing: 0.3em;
	font-size: 20px;
}
@media all and (min-width: 751px) {
	body:not(#home) .section_title .en {
		font-size: 30px;
	}
}
body:not(#home) .section_title .jp {
	font-weight: bold;
	letter-spacing: 0.2em;
	font-size: 12px;
}
@media all and (min-width: 751px) {
	body:not(#home) .section_title .jp {
		font-size: 18px;
	}
}

/*----------------------------------------------------
扉ページ
----------------------------------------------------*/
body.door_page .contents {
	padding: 50px 0 75px;
}
@media all and (min-width: 751px) {
	body.door_page .contents {
		padding: 94px 0 150px;
	}
}
body.door_page .contents .title {
	text-align: center;
	font-family: "Roboto", sans-serif;
	font-style: normal;
	font-weight: bold;
	color: #00787e;
	letter-spacing: 0.3em;
	font-size: 20px;
}
@media all and (min-width: 751px) {
	body.door_page .contents .title {
		font-size: 32px;
	}
}
body.door_page .contents .list {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
			-ms-flex-direction: column;
					flex-direction: column;
	row-gap: 33px;
	margin-top: 27px;
}
@media all and (min-width: 751px) {
	body.door_page .contents .list {
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
				-ms-flex-direction: row;
						flex-direction: row;
		-ms-flex-wrap: wrap;
				flex-wrap: wrap;
		-webkit-box-pack: justify;
				-ms-flex-pack: justify;
						justify-content: space-between;
		row-gap: 117px;
		margin-top: 43px;
	}
}
@media all and (min-width: 751px) {
	body.door_page .contents .list > li {
		width: 48%;
	}
}
body.door_page .contents .list > li a {
	display: block;
}
@media (hover: hover) {
	body.door_page .contents .list > li a .image img {
		-webkit-transition: -webkit-transform 0.3s ease-out;
		transition: -webkit-transform 0.3s ease-out;
		transition: transform 0.3s ease-out;
		transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
	}
	body.door_page .contents .list > li a:hover .image img {
		-webkit-transform: scale(1.08);
						transform: scale(1.08);
	}
}
body.door_page .contents .list > li a .image {
	overflow: hidden;
}
body.door_page .contents .list > li .head {
	text-align: center;
	color: #00787e;
	font-weight: bold;
	letter-spacing: 0.1em;
	font-size: 15px;
	margin-top: 12px;
}
@media all and (min-width: 751px) {
	body.door_page .contents .list > li .head {
		font-size: 20px;
		margin-top: 20px;
	}
}
@media screen and (min-width: 751px) and (max-width: 999px) {
	body.door_page .contents .list > li .head {
		font-size: 18px;
	}
}

@-webkit-keyframes fadeInAnime {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

@keyframes fadeInAnime {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}
@-webkit-keyframes fadeUpAnime {
	0% {
		opacity: 0;
		-webkit-transform: translateY(50px);
						transform: translateY(50px);
	}
	100% {
		opacity: 1;
		-webkit-transform: translateY(0);
						transform: translateY(0);
	}
}
@keyframes fadeUpAnime {
	0% {
		opacity: 0;
		-webkit-transform: translateY(50px);
						transform: translateY(50px);
	}
	100% {
		opacity: 1;
		-webkit-transform: translateY(0);
						transform: translateY(0);
	}
}
@-webkit-keyframes fadeLeftAnime {
	0% {
		opacity: 0;
		-webkit-transform: translateX(-50px);
						transform: translateX(-50px);
	}
	100% {
		opacity: 1;
		-webkit-transform: translateX(0);
						transform: translateX(0);
	}
}
@keyframes fadeLeftAnime {
	0% {
		opacity: 0;
		-webkit-transform: translateX(-50px);
						transform: translateX(-50px);
	}
	100% {
		opacity: 1;
		-webkit-transform: translateX(0);
						transform: translateX(0);
	}
}
@-webkit-keyframes fadeRightAnime {
	0% {
		opacity: 0;
		-webkit-transform: translateX(50px);
						transform: translateX(50px);
	}
	100% {
		opacity: 1;
		-webkit-transform: translateX(0);
						transform: translateX(0);
	}
}
@keyframes fadeRightAnime {
	0% {
		opacity: 0;
		-webkit-transform: translateX(50px);
						transform: translateX(50px);
	}
	100% {
		opacity: 1;
		-webkit-transform: translateX(0);
						transform: translateX(0);
	}
}
@-webkit-keyframes slideToRight {
	0% {
		-webkit-clip-path: inset(0 100% 0 0);
						clip-path: inset(0 100% 0 0);
	}
	100% {
		-webkit-clip-path: inset(0);
						clip-path: inset(0);
	}
}
@keyframes slideToRight {
	0% {
		-webkit-clip-path: inset(0 100% 0 0);
						clip-path: inset(0 100% 0 0);
	}
	100% {
		-webkit-clip-path: inset(0);
						clip-path: inset(0);
	}
}
@-webkit-keyframes slideToLeft {
	0% {
		-webkit-clip-path: inset(0 0 0 100%);
						clip-path: inset(0 0 0 100%);
	}
	100% {
		-webkit-clip-path: inset(0);
						clip-path: inset(0);
	}
}
@keyframes slideToLeft {
	0% {
		-webkit-clip-path: inset(0 0 0 100%);
						clip-path: inset(0 0 0 100%);
	}
	100% {
		-webkit-clip-path: inset(0);
						clip-path: inset(0);
	}
}
.fadeUp {
	-webkit-animation: fadeUpAnime 0.6s forwards;
					animation: fadeUpAnime 0.6s forwards;
	opacity: 0;
}

.fadeLeft {
	-webkit-animation: fadeLeftAnime 0.6s forwards;
					animation: fadeLeftAnime 0.6s forwards;
	opacity: 0;
}

.fadeRight {
	-webkit-animation: fadeRightAnime 0.6s forwards;
					animation: fadeRightAnime 0.6s forwards;
	opacity: 0;
}

.fadeIn {
	-webkit-animation: fadeInAnime 0.6s forwards;
					animation: fadeInAnime 0.6s forwards;
	opacity: 0;
}

.delay02 {
	-webkit-animation-delay: 0.2s;
					animation-delay: 0.2s;
}

.delay04 {
	-webkit-animation-delay: 0.4s;
					animation-delay: 0.4s;
}

.delay06 {
	-webkit-animation-delay: 0.6s;
					animation-delay: 0.6s;
}

.delay08 {
	-webkit-animation-delay: 0.8s;
					animation-delay: 0.8s;
}

.delay10 {
	-webkit-animation-delay: 1s;
					animation-delay: 1s;
}

@media all and (min-width: 751px) {
	.delay02_pc {
		-webkit-animation-delay: 0.2s;
						animation-delay: 0.2s;
	}
	.delay04_pc {
		-webkit-animation-delay: 0.4s;
						animation-delay: 0.4s;
	}
	.delay06_pc {
		-webkit-animation-delay: 0.6s;
						animation-delay: 0.6s;
	}
}
.fadeUpTrigger,
.fadeLeftTrigger,
.fadeRightTrigger,
.fadeInTrigger {
	opacity: 0;
}

.delayScroll > * {
	opacity: 0;
}

html {
	-webkit-animation: fadeInAnime 0.8s forwards;
					animation: fadeInAnime 0.8s forwards;
	opacity: 0;
}

@media all and (max-width: 750px) {
	header {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: var(--header-hight);
		z-index: 100;
		-webkit-transition: background-color 0.3s;
		transition: background-color 0.3s;
	}
	header .header_inner {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-pack: justify;
				-ms-flex-pack: justify;
						justify-content: space-between;
		-webkit-box-align: center;
				-ms-flex-align: center;
						align-items: center;
		height: 100%;
	}
	header .logo {
		aspect-ratio: 26/15;
		height: 100%;
		background-color: #fff;
		-webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
						box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
	}
	header .logo a {
		display: block;
		height: 100%;
		padding: 7px 18px 9px;
	}
	header .openbtn {
		position: relative;
		aspect-ratio: 1;
		width: 75px;
	}
	header .openbtn span {
		position: absolute;
		display: block;
		left: 50%;
		-webkit-transform: translateX(-50%);
						transform: translateX(-50%);
		width: 27px;
		height: 2px;
		background-color: #fff;
		-webkit-transition: all 0.3s;
		transition: all 0.3s;
	}
	header .openbtn span:nth-child(1) {
		top: calc(50% - 9px);
	}
	header .openbtn span:nth-child(2) {
		top: 50%;
	}
	header .openbtn span:nth-child(3) {
		top: calc(50% + 9px);
	}
	header #gNav {
		visibility: hidden;
		position: fixed;
		top: var(--header-hight);
		left: 0;
		bottom: 0;
		width: 100%;
		background-color: #f7f7f7;
		overflow-y: scroll;
		opacity: 0;
		z-index: -10;
		-webkit-transition: opacity 0.3s, visibility 0.3s;
		transition: opacity 0.3s, visibility 0.3s;
	}
	header #gNav .nav_list {
		background-color: #fff;
	}
	header #gNav .nav_list > li {
		position: relative;
		border-bottom: 1px solid #bbbbbb;
	}
	header #gNav .nav_list > li > a {
		display: block;
		color: #00787e;
		font-weight: bold;
		font-size: 17px;
		letter-spacing: 0.1em;
		padding: 1.24em 25px;
		-webkit-transition: all 0.3s;
		transition: all 0.3s;
	}
	header #gNav .nav_list > li .cross {
		position: absolute;
		top: 10px;
		right: 16px;
		display: block;
		aspect-ratio: 1;
		width: 50px;
		cursor: pointer;
	}
	header #gNav .nav_list > li .cross::before, header #gNav .nav_list > li .cross::after {
		position: absolute;
		content: "";
		display: block;
		inset: 0;
		margin: auto;
		background-color: #00787e;
		width: 15px;
		height: 2px;
		-webkit-transition: all 0.3s;
		transition: all 0.3s;
	}
	header #gNav .nav_list > li .cross::after {
		-webkit-transform: rotate(-90deg);
						transform: rotate(-90deg);
	}
	header #gNav .nav_list > li .sub {
		display: none;
		background-color: #56b5ba;
	}
	header #gNav .nav_list > li .sub ul li {
		border-bottom: 1px solid #fff;
		position: relative;
	}
	header #gNav .nav_list > li .sub ul li:first-child {
		border-top: 1px solid #fff;
	}
	header #gNav .nav_list > li .sub ul li::after {
		position: absolute;
		content: "";
		display: block;
		aspect-ratio: 1;
		width: 9px;
		top: 44%;
		right: 38px;
		border-top: 1px solid #fff;
		border-right: 1px solid #fff;
		-webkit-transform: rotate(45deg);
						transform: rotate(45deg);
	}
	header #gNav .nav_list > li .sub ul li a {
		display: block;
		color: #fff;
		font-weight: bold;
		font-size: 15px;
		padding: 1.05em 35px;
	}
	header #gNav .nav_list > li.open {
		border-bottom: none;
	}
	header #gNav .nav_list > li.open > a {
		background-color: #05888e;
		color: #fff;
	}
	header #gNav .nav_list > li.open .cross::before, header #gNav .nav_list > li.open .cross::after {
		background-color: #fff;
	}
	header #gNav .nav_list > li.open .cross::after {
		-webkit-transform: rotate(-180deg);
						transform: rotate(-180deg);
	}
	header #gNav .nav_list > li:not(.hasSub)::after {
		position: absolute;
		content: "";
		display: block;
		aspect-ratio: 1;
		width: 9px;
		top: 44%;
		right: 38px;
		border-top: 1px solid #00787e;
		border-right: 1px solid #00787e;
		-webkit-transform: rotate(45deg);
						transform: rotate(45deg);
	}
	header #gNav .entry {
		margin-inline: auto;
		margin-top: 45px;
		margin-bottom: 42px;
		width: min(440px, 58.6%);
		height: 50px;
	}
	header #gNav .entry a {
		display: -ms-grid;
		display: grid;
		place-items: center;
		height: 100%;
		background: linear-gradient(20deg, #c62935 0, #d33b47 100%);
		font-family: "Roboto", sans-serif;
		font-style: normal;
		text-align: center;
		font-weight: bold;
		font-size: 15px;
		letter-spacing: 0.4em;
		color: #fff;
	}
	header #gNav .entry a span {
		position: relative;
	}
	header #gNav .entry a span::after {
		position: absolute;
		content: "";
		-webkit-clip-path: polygon(0 0, 0% 100%, 100% 50%);
						clip-path: polygon(0 0, 0% 100%, 100% 50%);
		background-color: #fff;
		aspect-ratio: 10/13;
		width: 5px;
		top: 49%;
		right: -16px;
		-webkit-transform: translateY(-50%);
						transform: translateY(-50%);
	}
	header #gNav .address {
		padding: 0 25px;
		margin-bottom: 13px;
	}
	header #gNav .address p {
		color: #383838;
		font-weight: 500;
		text-align: center;
		font-size: 12px;
		line-height: 1.75;
	}
	header #gNav .address p a {
		color: #383838;
	}
	header #gNav .address p .bold {
		font-weight: bold;
		margin-right: 0.5em;
	}
	header #gNav .address p:not(:last-child) {
		margin-bottom: 0.4em;
	}
	header #gNav .links {
		text-align: center;
		color: #383838;
		font-weight: 500;
		font-size: 12px;
		line-height: 1.75;
		margin-bottom: 35px;
	}
	header #gNav .links a {
		color: #383838;
		text-decoration: underline;
	}
	header #gNav .copyright {
		border-top: 1px solid #ddd;
		padding: 1.5em 1em;
	}
	header #gNav .copyright p {
		font-family: "Roboto", sans-serif;
		font-style: normal;
		color: #383838;
		text-align: center;
		font-weight: 400;
		font-size: 11px;
	}
	header.fixed .openbtn span {
		background-color: #00787e;
	}
	body.navOpen {
		overflow: hidden;
	}
	body.navOpen header {
		background-color: #fff;
		border-bottom: 1px solid #bbbbbb;
	}
	body.navOpen header .logo {
		-webkit-box-shadow: none;
						box-shadow: none;
	}
	body.navOpen header .openbtn span {
		background-color: #00787e;
	}
	body.navOpen header .openbtn span:nth-child(1) {
		-webkit-transform: translateX(-50%) rotate(45deg);
						transform: translateX(-50%) rotate(45deg);
		top: 50%;
	}
	body.navOpen header .openbtn span:nth-child(2) {
		width: 0;
		opacity: 0;
	}
	body.navOpen header .openbtn span:nth-child(3) {
		-webkit-transform: translateX(-50%) rotate(-45deg);
						transform: translateX(-50%) rotate(-45deg);
		top: 50%;
	}
	body.navOpen header #gNav {
		opacity: 1;
		visibility: visible;
	}
}
@media all and (min-width: 751px) {
	header .openbtn,
	header .cross,
	header .info_area {
		display: none;
		visibility: hidden;
	}
	header {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: var(--header-hight);
		z-index: 100;
		-webkit-transition: background-color 0.3s;
		transition: background-color 0.3s;
	}
	header .header_inner {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-pack: end;
				-ms-flex-pack: end;
						justify-content: flex-end;
		height: 100%;
		padding-right: 43px;
	}
	header .logo {
		position: absolute;
		z-index: 1;
		top: 0;
		left: 0;
		background-color: #fff;
		aspect-ratio: 26/15;
		width: 183px;
		-webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
						box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
	}
	header .logo a {
		display: -ms-grid;
		display: grid;
		place-items: center;
		height: 100%;
	}
	header .logo a img {
		aspect-ratio: 3/2;
		width: 64.4%;
	}
	header #gNav {
		-webkit-box-flex: 1;
				-ms-flex-positive: 1;
						flex-grow: 1;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
				-ms-flex-align: center;
						align-items: center;
		height: 100%;
	}
	header #gNav .nav_list {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
				-ms-flex-align: center;
						align-items: center;
		-webkit-box-pack: end;
				-ms-flex-pack: end;
						justify-content: flex-end;
		gap: 1em;
		-webkit-box-flex: 1;
				-ms-flex-positive: 1;
						flex-grow: 1;
		height: 100%;
	}
	header #gNav .nav_list > li {
		position: relative;
		height: 100%;
	}
	header #gNav .nav_list > li > a {
		display: -ms-grid;
		display: grid;
		place-items: center;
		height: 100%;
		color: #fff;
		font-weight: bold;
		font-size: 14px;
		letter-spacing: 0.04em;
		white-space: nowrap;
		padding: 0 10px;
	}
}
@media (min-width: 751px) and (hover: hover) {
	header #gNav .nav_list > li > a span {
		position: relative;
	}
	header #gNav .nav_list > li > a span::after {
		position: absolute;
		content: "";
		width: 0;
		height: 1px;
		bottom: -4px;
		left: 0;
		background-color: #fff;
	}
	header #gNav .nav_list > li > a,
	header #gNav .nav_list > li > a span::after {
		-webkit-transition: all 0.3s;
		transition: all 0.3s;
	}
	header #gNav .nav_list > li > a:hover span::after {
		width: 100%;
	}
}
@media all and (min-width: 751px) {
	header #gNav .nav_list > li > a.current span {
		position: relative;
	}
	header #gNav .nav_list > li > a.current span::after {
		position: absolute;
		content: "";
		width: 100%;
		height: 1px;
		bottom: -4px;
		left: 0;
		background-color: #fff;
	}
	header #gNav .nav_list > li .sub {
		position: absolute;
		top: 80%;
		left: 50%;
		-webkit-transform: translateX(-50%);
						transform: translateX(-50%);
		background-color: rgba(255, 255, 255, 0.9);
		padding: 16px 24px 20px;
		visibility: hidden;
		opacity: 0;
		-webkit-transition: all 0.4s ease;
		transition: all 0.4s ease;
	}
	header #gNav .nav_list > li .sub::before {
		position: absolute;
		content: "";
		top: 0;
		left: 50%;
		-webkit-transform: translate(-50%, -100%);
						transform: translate(-50%, -100%);
		-webkit-clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
						clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
		background-color: rgba(255, 255, 255, 0.9);
		aspect-ratio: 3/2;
		width: 9px;
	}
	header #gNav .nav_list > li .sub ul li {
		position: relative;
		padding-left: 0.8em;
	}
	header #gNav .nav_list > li .sub ul li::before {
		position: absolute;
		content: "";
		background-color: #057161;
		-webkit-clip-path: polygon(0 0, 0% 100%, 100% 50%);
						clip-path: polygon(0 0, 0% 100%, 100% 50%);
		aspect-ratio: 6/7;
		width: 6px;
		left: 0;
		top: 50%;
		-webkit-transform: translateY(-50%);
						transform: translateY(-50%);
	}
	header #gNav .nav_list > li .sub ul li:not(:last-child) {
		margin-bottom: 0.4em;
	}
	header #gNav .nav_list > li .sub ul li a {
		display: block;
		color: #057161;
		font-weight: bold;
		font-size: 14px;
		letter-spacing: 0.1em;
		white-space: nowrap;
		padding: 0.4em 0;
	}
}
@media (min-width: 751px) and (hover: hover) {
	header #gNav .nav_list > li .sub ul li a span {
		position: relative;
	}
	header #gNav .nav_list > li .sub ul li a span::after {
		position: absolute;
		content: "";
		width: 0;
		height: 1px;
		bottom: -4px;
		left: 0;
		background-color: #057161;
	}
	header #gNav .nav_list > li .sub ul li a,
	header #gNav .nav_list > li .sub ul li a span::after {
		-webkit-transition: all 0.3s;
		transition: all 0.3s;
	}
	header #gNav .nav_list > li .sub ul li a:hover span::after {
		width: 100%;
	}
}
@media all and (min-width: 751px) {
	header #gNav .nav_list > li:hover .sub {
		visibility: visible;
		opacity: 1;
	}
	header #gNav .entry {
		width: 140px;
		height: 48px;
		margin-left: 30px;
	}
	header #gNav .entry a {
		position: relative;
		z-index: 1;
		display: -ms-grid;
		display: grid;
		place-items: center;
		height: 100%;
		background: linear-gradient(20deg, #c62935 0, #d33b47 100%);
		font-family: "Roboto", sans-serif;
		font-style: normal;
		text-align: center;
		color: #fff;
		font-weight: bold;
		font-size: 14px;
		letter-spacing: 0.2em;
	}
}
@media (min-width: 751px) and (hover: hover) {
	header #gNav .entry a::before {
		position: absolute;
		content: "";
		top: 0;
		left: 0;
		background-color: #fff;
		width: 0;
		height: 100%;
		z-index: -1;
		-webkit-transition: width 0.25s cubic-bezier(0.72, 0.04, 0.5, 0.91);
		transition: width 0.25s cubic-bezier(0.72, 0.04, 0.5, 0.91);
	}
}
@media all and (min-width: 751px) {
	header #gNav .entry a span {
		position: relative;
		z-index: 2;
	}
	header #gNav .entry a span::after {
		position: absolute;
		content: "";
		-webkit-clip-path: polygon(0 0, 0% 100%, 100% 50%);
						clip-path: polygon(0 0, 0% 100%, 100% 50%);
		background-color: #fff;
		aspect-ratio: 10/13;
		width: 6px;
		top: 49%;
		right: -16px;
		-webkit-transform: translateY(-50%);
						transform: translateY(-50%);
	}
}
@media (min-width: 751px) and (hover: hover) {
	header #gNav .entry a, header #gNav .entry a span::after {
		-webkit-transition: all 0.3s;
		transition: all 0.3s;
	}
	header #gNav .entry a:hover {
		color: #c62935;
	}
	header #gNav .entry a:hover::before {
		width: 100%;
	}
	header #gNav .entry a:hover span::after {
		background-color: #c62935;
	}
}
@media all and (min-width: 751px) and (max-width: 1320px) {
	header .header_inner {
		padding-right: 20px;
	}
	header #gNav .nav_list > li > a {
		font-size: 13px;
		padding: 0 5px;
	}
	header #gNav .nav_list > li .sub ul li a {
		font-size: 13px;
	}
	header #gNav .entry {
		width: 120px;
		height: 40px;
		margin-left: 20px;
	}
}
@media all and (min-width: 751px) and (max-width: 1100px) {
	header .logo {
		width: 140px;
	}
	header #gNav .nav_list > li > a {
		font-size: 1.2vw;
		padding: 0 0.2em;
	}
	header #gNav .nav_list > li .sub ul li a {
		font-size: 1.2vw;
		padding: 0.2em 0;
	}
	header #gNav .entry {
		width: 110px;
	}
	header #gNav .entry a {
		font-size: 1.2vw;
	}
}
@media all and (min-width: 751px) and (max-width: 950px) {
	header .logo {
		width: 140px;
	}
	header #gNav .nav_list > li > a {
		font-size: 1.1vw;
		padding: 0 0.05em;
	}
	header #gNav .entry {
		width: 90px;
		height: 30px;
		margin-left: 10px;
	}
	header #gNav .entry a {
		font-size: 1.1vw;
	}
}
@media all and (min-width: 751px) {
	header.fixed {
		background-color: rgba(15, 65, 67, 0.3);
	}
}
@media all and (min-width: 751px) and (min-width: 1321px) {
	body#home header .logo {
		width: 230px;
		-webkit-transition: width 0.4s ease;
		transition: width 0.4s ease;
	}
	body#home header.fixed .logo {
		width: 183px;
	}
}
/*----------------------------------------------------
CTA
----------------------------------------------------*/
.cta {
	position: relative;
	z-index: 1;
	overflow: hidden;
	background: linear-gradient(340deg, rgba(4, 126, 132, 0.9) 20%, rgba(44, 162, 168, 0.9) 100%);
	padding: 64px 0;
}
@media all and (min-width: 751px) {
	.cta {
		background: linear-gradient(300deg, rgba(4, 126, 132, 0.9) 20%, rgba(44, 162, 168, 0.9) 80%);
		padding: 100px 0;
	}
}
.cta::before {
	position: absolute;
	content: "A CHAIN";
	top: 34%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
					transform: translate(-50%, -50%);
	font-family: "Roboto", sans-serif;
	font-style: normal;
	color: #f7f7f7;
	opacity: 0.2;
	mix-blend-mode: overlay;
	font-weight: 900;
	text-align: center;
	font-size: 84px;
	letter-spacing: 0.1em;
	white-space: nowrap;
	z-index: -1;
	-webkit-clip-path: inset(0 100% 0 0);
					clip-path: inset(0 100% 0 0);
}
@media all and (min-width: 751px) {
	.cta::before {
		content: "A CHAIN OF TRUST";
		top: 42%;
		font-size: 128px;
	}
}
@media all and (max-width: 750px) {
	.cta::after {
		position: absolute;
		content: "OF TRUST";
		top: 68%;
		left: 50%;
		-webkit-transform: translate(-50%, -50%);
						transform: translate(-50%, -50%);
		font-family: "Roboto", sans-serif;
		font-style: normal;
		color: #f7f7f7;
		opacity: 0.2;
		mix-blend-mode: overlay;
		font-weight: 900;
		text-align: center;
		font-size: 83px;
		letter-spacing: 0.06em;
		white-space: nowrap;
		z-index: -1;
		-webkit-clip-path: inset(0 100% 0 0);
						clip-path: inset(0 100% 0 0);
	}
}
.cta.animated::before {
	-webkit-animation: slideToRight 0.8s forwards ease;
					animation: slideToRight 0.8s forwards ease;
}
@media all and (max-width: 750px) {
	.cta.animated::after {
		-webkit-animation: slideToRight 0.8s 0.4s forwards ease;
						animation: slideToRight 0.8s 0.4s forwards ease;
	}
}
.cta .copy {
	text-align: center;
	color: #fff;
	font-weight: bold;
	font-size: 23px;
	letter-spacing: 0.2em;
	margin-bottom: 10px;
}
@media all and (min-width: 751px) {
	.cta .copy {
		font-size: 35px;
		margin-bottom: 30px;
	}
}
.cta .entry_btn {
	margin-inline: auto;
	width: min(302px, 46%);
	height: 40px;
}
@media all and (min-width: 751px) {
	.cta .entry_btn {
		width: 240px;
		height: 64px;
	}
}
.cta .entry_btn a {
	position: relative;
	z-index: 1;
	display: -ms-grid;
	display: grid;
	place-items: center;
	height: 100%;
	background: linear-gradient(20deg, #c62935 0, #d33b47 100%);
	font-family: "Roboto", sans-serif;
	font-style: normal;
	text-align: center;
	font-weight: bold;
	font-size: 12px;
	letter-spacing: 0.4em;
	color: #fff;
}
@media all and (min-width: 751px) {
	.cta .entry_btn a {
		font-size: 16px;
	}
}
@media (hover: hover) {
	.cta .entry_btn a::before {
		position: absolute;
		content: "";
		top: 0;
		left: 0;
		background-color: #fff;
		width: 0;
		height: 100%;
		z-index: -1;
		-webkit-transition: width 0.3s cubic-bezier(0.72, 0.04, 0.5, 0.91);
		transition: width 0.3s cubic-bezier(0.72, 0.04, 0.5, 0.91);
	}
}
.cta .entry_btn a span {
	position: relative;
	z-index: 2;
}
.cta .entry_btn a span::after {
	position: absolute;
	content: "";
	-webkit-clip-path: polygon(0 0, 0% 100%, 100% 50%);
					clip-path: polygon(0 0, 0% 100%, 100% 50%);
	background-color: #fff;
	aspect-ratio: 10/13;
	width: 5px;
	top: 49%;
	right: -16px;
	-webkit-transform: translateY(-50%);
					transform: translateY(-50%);
}
@media (hover: hover) {
	.cta .entry_btn a, .cta .entry_btn a span::after {
		-webkit-transition: all 0.3s;
		transition: all 0.3s;
	}
	.cta .entry_btn a:hover {
		color: #c62935;
	}
	.cta .entry_btn a:hover::before {
		width: 100%;
	}
	.cta .entry_btn a:hover span::after {
		background-color: #c62935;
	}
}
.cta .pagetop {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
			-ms-flex-pack: center;
					justify-content: center;
	-webkit-box-align: center;
			-ms-flex-align: center;
					align-items: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background-color: #1d1d1d;
	position: fixed;
	right: 15px;
	bottom: 15px;
	z-index: 50;
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	-webkit-transform: scale(1.4);
					transform: scale(1.4);
	-webkit-transition: all 0.3s;
	transition: all 0.3s;
}
@media all and (min-width: 751px) {
	.cta .pagetop {
		width: 55px;
		height: 55px;
		right: 20px;
		bottom: 20px;
	}
}
.cta .pagetop::before {
	position: absolute;
	content: "";
	display: block;
	top: 5px;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
	width: 7px;
	height: 7px;
	border-left: 2px solid #fff;
	border-top: 2px solid #fff;
	-webkit-transform: rotate(45deg);
					transform: rotate(45deg);
}
@media all and (min-width: 751px) {
	.cta .pagetop::before {
		width: 10px;
		height: 10px;
	}
}
.cta .pagetop.show {
	opacity: 0.3;
	visibility: visible;
	-webkit-transform: scale(1);
					transform: scale(1);
	pointer-events: auto;
}
@media (hover: hover) {
	.cta .pagetop.show:hover {
		opacity: 1;
	}
}
.cta .pagetop.absolute {
	position: absolute;
}

/*----------------------------------------------------
フッター
----------------------------------------------------*/
footer {
	overflow: hidden;
	background-color: #f7f7f7;
	padding-top: 30px;
}
@media all and (min-width: 751px) {
	footer {
		padding-top: 56px;
	}
}
footer .logo {
	margin-inline: auto;
	aspect-ratio: 95/63;
	width: 120px;
	margin-bottom: 25px;
}
@media all and (min-width: 751px) {
	footer .logo {
		width: 190px;
		margin-bottom: 37px;
	}
}
footer .logo a {
	display: block;
}
footer .address {
	margin-bottom: 6px;
}
@media all and (min-width: 751px) {
	footer .address {
		margin-bottom: 12px;
	}
}
footer .address p {
	color: #383838;
	font-weight: 500;
	text-align: center;
	font-size: 12px;
	line-height: 1.75;
}
@media all and (min-width: 751px) {
	footer .address p {
		font-size: 14px;
	}
}
footer .address p a {
	color: #383838;
	-webkit-backface-visibility: hidden;
					backface-visibility: hidden;
}
@media (hover: hover) {
	footer .address p a {
		-webkit-transition: all 0.3s;
		transition: all 0.3s;
	}
	footer .address p a:hover {
		opacity: 0.7;
	}
}
footer .address p .bold {
	font-weight: bold;
	margin-right: 0.5em;
}
footer .address p:not(:last-child) {
	margin-bottom: 0.3em;
}
@media all and (min-width: 751px) {
	footer .address p:not(:last-child) {
		margin-bottom: 0.5em;
	}
}
footer .links {
	text-align: center;
	color: #383838;
	font-weight: 500;
	font-size: 12px;
	line-height: 1.75;
	margin-bottom: 25px;
}
@media all and (min-width: 751px) {
	footer .links {
		font-size: 14px;
		margin-bottom: 50px;
	}
}
footer .links a {
	color: #383838;
	text-decoration: underline;
}
@media (hover: hover) {
	footer .links a {
		-webkit-transition: all 0.3s;
		transition: all 0.3s;
	}
	footer .links a:hover {
		color: #00787e;
	}
}
footer .copyright {
	margin: 0 calc(50% - 50vw);
	width: 100vw;
	border-top: 1px solid #eee;
	padding: 1.3em 1em;
}
@media all and (min-width: 751px) {
	footer .copyright {
		padding: 1.6em 1em;
	}
}
footer .copyright p {
	font-family: "Roboto", sans-serif;
	font-style: normal;
	color: #383838;
	text-align: center;
	font-weight: 400;
	font-size: 11px;
}
@media all and (min-width: 751px) {
	footer .copyright p {
		font-size: 12px;
	}
}
