@charset "UTF-8";
/*==============================================

  STYLE SHEET

==============================================*/
/*==============================================

  RESET

==============================================*/
html, body, div, span, applet, object,
iframe, h1, h2, h3, h4, h5, h6, p, blockquote,
pre, a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp, small,
strike, strong, sub, sup, tt, var, b, u, i, center,
dl, dt, dd, ol, ul, li, fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td, article,
aside, canvas, details, embed, figure, figcaption, footer,
header, hgroup, menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	border: 0;
	font-size: 100%;
	font-style: normal;
	font-weight: normal;
	font: inherit;
	margin: 0;
	padding: 0;
	vertical-align: baseline;
}

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

body {
	line-height: 1;
}

ol, ul {
	list-style: none;
}

blockquote, q {
	quotes: none;
}

blockquote:before, blockquote:after, q:before, q:after {
	content: "";
	content: none;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

th, td {
	text-align: left;
	vertical-align: top;
}

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

/*==============================================

  SETTING MIXIN

==============================================*/
/*==============================================
    2-1. mixins
==============================================*/
/* font family */
/*==============================================

  BASE

==============================================*/
html {
	overflow: overlay;
	font-size: 14px;
}
@media screen and (min-width: 769px) {
	html {
		font-size: 15px;
	}
}

body {
	font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
	line-height: 1.5;
	letter-spacing: 0.06em;
	background-color: #ffffff;
	color: #000000;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	-webkit-overflow-scrolling: touch;
	-webkit-text-size-adjust: 100%;
}

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

picture {
	display: block;
}

a {
	text-decoration: none;
	-webkit-transition: opacity 0.4s ease;
	transition: opacity 0.4s ease;
}
a:link, a:visited {
	color: #000000;
}

a:hover {
	opacity: 0.7;
}

a[data-rel=external]:after {
	content: "";
	width: 1em;
	height: 1em;
	display: inline-block;
	vertical-align: middle;
	margin-left: 0.5em;
	background: transparent url("../image/icon-external.png") no-repeat scroll center center;
	background-size: contain;
	margin-right: 0.5em;
}

/*==============================================

  LAYOUT

==============================================*/
/*==============================================
  LAYOUT LIMIT
==============================================*/
.l-limit {
	margin: 0 auto;
}
@media screen and (min-width: 769px) {
	.l-limit {
		-webkit-box-sizing: border-box;
		box-sizing: border-box;
		min-width: 1000px;
		max-width: 1600px;
	}
}

/*==============================================
  LAYOUT FRAME
==============================================*/
.l-frame {
	width: 89.3333333333%;
	margin: 0 auto;
}
@media screen and (min-width: 769px) {
	.l-frame {
		width: 89.0625%;
	}
}

/*==============================================
  LAYOUT COLUMNS
==============================================*/
@media screen and (min-width: 769px) {
	.l-column {
		display: -webkit-box;
		display: -webkit-flex;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-pack: justify;
		-webkit-justify-content: space-between;
		-ms-flex-pack: justify;
		justify-content: space-between;
	}
}
.l-column-both {
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-webkit-justify-content: space-between;
	-ms-flex-pack: justify;
	justify-content: space-between;
}
.l-column--wrap {
	-webkit-flex-wrap: wrap;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}
.l-column--reverse {
	-webkit-box-orient: horizontal;
	-webkit-box-direction: reverse;
	-webkit-flex-direction: row-reverse;
	-ms-flex-direction: row-reverse;
	flex-direction: row-reverse;
}

/*==============================================

  HEADER

==============================================*/
.l-header {
	z-index: 10;
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-webkit-align-items: center;
	-ms-flex-align: center;
	align-items: center;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	padding: 20px 5.3333333333%;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	background-color: transparent;
	opacity: 0;
	-webkit-transform: translateY(4px);
	transform: translateY(4px);
	-webkit-transition: opacity 1s cubic-bezier(0.26, 0.06, 0, 1), padding 1s cubic-bezier(0.26, 0.06, 0, 1), background-color 1.2s cubic-bezier(0.26, 0.06, 0, 1), -webkit-transform 1.6s cubic-bezier(0.26, 0.06, 0, 1);
	transition: opacity 1s cubic-bezier(0.26, 0.06, 0, 1), padding 1s cubic-bezier(0.26, 0.06, 0, 1), background-color 1.2s cubic-bezier(0.26, 0.06, 0, 1), -webkit-transform 1.6s cubic-bezier(0.26, 0.06, 0, 1);
	transition: opacity 1s cubic-bezier(0.26, 0.06, 0, 1), transform 1.6s cubic-bezier(0.26, 0.06, 0, 1), padding 1s cubic-bezier(0.26, 0.06, 0, 1), background-color 1.2s cubic-bezier(0.26, 0.06, 0, 1);
	transition: opacity 1s cubic-bezier(0.26, 0.06, 0, 1), transform 1.6s cubic-bezier(0.26, 0.06, 0, 1), padding 1s cubic-bezier(0.26, 0.06, 0, 1), background-color 1.2s cubic-bezier(0.26, 0.06, 0, 1), -webkit-transform 1.6s cubic-bezier(0.26, 0.06, 0, 1);
}
@media screen and (min-width: 769px) {
	.l-header {
		padding: 40px 4.1666666667%;
	}
}
.l-header.is-active {
	opacity: 1;
	-webkit-transform: translateY(0);
	transform: translateY(0);
}
.l-header.is-transition {
	padding: 10px 5.3333333333%;
	background-color: #ffffff;
}
@media screen and (min-width: 769px) {
	.l-header.is-transition {
		padding: 14px 4.1666666667%;
	}
}
.l-header.is-transition .l-headerSub__menu {
	top: 14px;
}
@media screen and (min-width: 769px) {
	.l-header.is-transition .l-headerSub__menu {
		top: 18px;
	}
}

.l-headerMain__logo {
	width: 140px;
	-webkit-transform: translateY(2px);
	transform: translateY(2px);
	opacity: 0;
	pointer-events: none;
	-webkit-transition: opacity 1s cubic-bezier(0.26, 0.06, 0, 1), -webkit-transform 1.6s cubic-bezier(0.26, 0.06, 0, 1);
	transition: opacity 1s cubic-bezier(0.26, 0.06, 0, 1), -webkit-transform 1.6s cubic-bezier(0.26, 0.06, 0, 1);
	transition: opacity 1s cubic-bezier(0.26, 0.06, 0, 1), transform 1.6s cubic-bezier(0.26, 0.06, 0, 1);
	transition: opacity 1s cubic-bezier(0.26, 0.06, 0, 1), transform 1.6s cubic-bezier(0.26, 0.06, 0, 1), -webkit-transform 1.6s cubic-bezier(0.26, 0.06, 0, 1);
}

.l-headerSub {
	margin-left: auto;
}

.l-headerSub__contact {
	z-index: 150;
	position: relative;
	padding-right: 42px;
}
@media screen and (min-width: 769px) {
	.l-headerSub__contact {
		padding-right: 78px;
	}
}
.l-headerSub__contact a {
	position: relative;
	display: inline-block;
	padding: 10px 34px 10px 24px;
	color: #ffffff;
	background-color: #233336;
	border-radius: 200px;
	-webkit-transition: all 0.8s cubic-bezier(0.26, 0.06, 0, 1) 0s;
	transition: all 0.8s cubic-bezier(0.26, 0.06, 0, 1) 0s;
	will-change: color, background-color;
}
@media screen and (min-width: 769px) {
	.l-headerSub__contact a {
		padding: 16px 74px 16px 50px;
	}
}
.l-headerSub__contact a::before {
	content: "";
	position: absolute;
	top: 50%;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	right: 10px;
	width: 13px;
	height: 5.5px;
	background: transparent url(../../image/arrow_01.svg) no-repeat scroll center center/cover;
	-webkit-transition: background-image 1s cubic-bezier(0.26, 0.06, 0, 1) 0s;
	transition: background-image 1s cubic-bezier(0.26, 0.06, 0, 1) 0s;
	will-change: background-image;
}
@media screen and (min-width: 769px) {
	.l-headerSub__contact a::before {
		right: 18px;
		width: 21.7px;
		height: 9.2px;
		will-change: background-image, right;
	}
}
.l-headerSub__contact span {
	display: inline-block;
	-webkit-transform-origin: center;
	transform-origin: center;
	-webkit-transition: -webkit-transform 0.8s cubic-bezier(0.26, 0.06, 0, 1) 0s;
	transition: -webkit-transform 0.8s cubic-bezier(0.26, 0.06, 0, 1) 0s;
	transition: transform 0.8s cubic-bezier(0.26, 0.06, 0, 1) 0s;
	transition: transform 0.8s cubic-bezier(0.26, 0.06, 0, 1) 0s, -webkit-transform 0.8s cubic-bezier(0.26, 0.06, 0, 1) 0s;
	will-change: transfrom;
	font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;;
	font-weight: 700;
	font-size: 0.8571428571rem;
	line-height: 1.5;
}
@media screen and (min-width: 769px) {
	.l-headerSub__contact span {
		font-size: 1rem;
		line-height: 1.5;
	}
}
.l-headerSub__contact a:hover {
	opacity: 1;
}
@media screen and (min-width: 769px) {
	.l-headerSub__contact a:hover::before {
		-webkit-animation: arrowMove 0.8s linear 0s;
		animation: arrowMove 0.8s linear 0s;
	}
}
@media screen and (min-width: 769px) {
	.l-headerSub__contact a:hover span {
		-webkit-transform: scale(1.05);
		transform: scale(1.05);
	}
}
.l-headerSub__contact.is-active a {
	color: #233336;
	background-color: #ffffff;
}
.l-headerSub__contact.is-active a::before {
	background: transparent url(../../image/arrow_04.svg) no-repeat scroll center center/cover;
}

@-webkit-keyframes arrowMove {
	0% {
		opacity: 1;
		right: 18px;
	}
	33% {
		opacity: 0;
		right: 10px;
	}
	66% {
		opacity: 0;
		right: 30px;
	}
	100% {
		opacity: 1;
		right: 18px;
	}
}

@keyframes arrowMove {
	0% {
		opacity: 1;
		right: 18px;
	}
	33% {
		opacity: 0;
		right: 10px;
	}
	66% {
		opacity: 0;
		right: 30px;
	}
	100% {
		opacity: 1;
		right: 18px;
	}
}
.l-headerSub__menu {
	z-index: 150;
	position: absolute;
	top: 24px;
	right: 5.3333333333%;
	width: 30px;
	height: 30px;
	-webkit-transition: top 1s cubic-bezier(0.26, 0.06, 0, 1) 0s, -webkit-transform 0.5s cubic-bezier(0.44, 0, 0.54, 1) 0s;
	transition: top 1s cubic-bezier(0.26, 0.06, 0, 1) 0s, -webkit-transform 0.5s cubic-bezier(0.44, 0, 0.54, 1) 0s;
	transition: transform 0.5s cubic-bezier(0.44, 0, 0.54, 1) 0s, top 1s cubic-bezier(0.26, 0.06, 0, 1) 0s;
	transition: transform 0.5s cubic-bezier(0.44, 0, 0.54, 1) 0s, top 1s cubic-bezier(0.26, 0.06, 0, 1) 0s, -webkit-transform 0.5s cubic-bezier(0.44, 0, 0.54, 1) 0s;
}
@media screen and (min-width: 769px) {
	.l-headerSub__menu {
		right: 4.1666666667%;
		top: 42px;
		width: 50px;
		height: 50px;
	}
}
.l-headerSub__menu span {
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	width: 30px;
	height: 1.2px;
	background-color: #233336;
	-webkit-transition: background-color 0.5s cubic-bezier(0.44, 0, 0.54, 1) 0s;
	transition: background-color 0.5s cubic-bezier(0.44, 0, 0.54, 1) 0s;
	cursor: pointer;
}
@media screen and (min-width: 769px) {
	.l-headerSub__menu span {
		width: 50px;
		height: 2px;
	}
}
.l-headerSub__menu span::before {
	content: "";
	display: block;
	position: absolute;
	top: -8px;
	right: 0;
	width: 30px;
	height: 1.2px;
	background-color: #233336;
	-webkit-transform-origin: center;
	transform-origin: center;
	-webkit-transition: all 0.5s cubic-bezier(0.44, 0, 0.54, 1) 0s;
	transition: all 0.5s cubic-bezier(0.44, 0, 0.54, 1) 0s;
}
@media screen and (min-width: 769px) {
	.l-headerSub__menu span::before {
		top: -12px;
		width: 50px;
		height: 2px;
	}
}
.l-headerSub__menu span::after {
	content: "";
	display: block;
	position: absolute;
	top: 8px;
	right: 0;
	width: 30px;
	height: 1.2px;
	background-color: #233336;
	-webkit-transform-origin: center;
	transform-origin: center;
	-webkit-transition: all 0.5s cubic-bezier(0.44, 0, 0.54, 1) 0s;
	transition: all 0.5s cubic-bezier(0.44, 0, 0.54, 1) 0s;
}
@media screen and (min-width: 769px) {
	.l-headerSub__menu span::after {
		top: 12px;
		width: 50px;
		height: 2px;
	}
}
.l-headerSub__menu.is-active span {
	background-color: #213336;
}
.l-headerSub__menu.is-active span::before {
	-webkit-transform: translate(0, 12px) rotate(30deg);
	transform: translate(0, 12px) rotate(30deg);
	background-color: #ffffff;
}
.l-headerSub__menu.is-active span::after {
	-webkit-transform: translate(0, -12px) rotate(-30deg);
	transform: translate(0, -12px) rotate(-30deg);
	background-color: #ffffff;
}

.l-header__gnav {
	z-index: 30;
	position: fixed;
	top: 0;
	right: 0;
	width: 84%;
	height: 100vh;
	overflow-y: scroll;
	background-color: #213336;
	pointer-events: none;
	-webkit-transform: translateX(100%);
	transform: translateX(100%);
	-webkit-transition: -webkit-transform 0.6s cubic-bezier(0.44, 0, 0.54, 1) 0s;
	transition: -webkit-transform 0.6s cubic-bezier(0.44, 0, 0.54, 1) 0s;
	transition: transform 0.6s cubic-bezier(0.44, 0, 0.54, 1) 0s;
	transition: transform 0.6s cubic-bezier(0.44, 0, 0.54, 1) 0s, -webkit-transform 0.6s cubic-bezier(0.44, 0, 0.54, 1) 0s;
	will-change: transform;
}
@media screen and (min-width: 769px) {
	.l-header__gnav {
		width: 39.6875%;
		min-height: 800px;
	}
}
.l-header__gnav.is-active {
	-webkit-transform: translateX(0);
	transform: translateX(0);
	pointer-events: auto;
}

.l-nav {
	position: absolute;
	top: 50%;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	left: 12.6984126984%;
}
@media screen and (min-width: 769px) {
	.l-nav {
		left: 11.4173228346%;
	}
}
.l-nav li + * {
	margin-top: 60px;
}
@media screen and (min-width: 769px) {
	.l-nav li + * {
		margin-top: 50px;
	}
}
.l-nav a {
	color: #ffffff;
	letter-spacing: 0.08em;
	font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;;
	font-weight: 700;
	font-size: 1.5714285714rem;
	line-height: 1.5;
}
@media screen and (min-width: 769px) {
	.l-nav a {
		font-size: 1.7333333333rem;
		line-height: 1.5;
	}
}
.l-nav span {
	font-family: "Outfit", sans-serif;;
	font-weight: 600;
	letter-spacing: 0.1em;
}

/*==============================================

  FOOTER

==============================================*/
.l-footer {
	padding: 60px 0 20px;
	background-color: #233336;
	overflow: hidden;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
@media screen and (min-width: 769px) {
	.l-footer {
		padding: 160px 0 30px;
	}
}

.l-footerContact a {
	display: block;
	position: relative;
	width: 94.9333333333%;
	margin-left: auto;
	padding: 60px 0 60px 21.9101123596%;
	padding-left: 21.9101123596%;
	background-color: #ffffff;
	color: #233336;
	border-radius: 100vh 0 0 100vh;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	-webkit-transform: translateX(100%);
	transform: translateX(100%);
	-webkit-transition: -webkit-transform 0.8s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
	transition: -webkit-transform 0.8s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
	transition: transform 0.8s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
	transition: transform 0.8s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s, -webkit-transform 0.8s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
	will-change: transform;
}
@media screen and (min-width: 769px) {
	.l-footerContact a {
		width: 96.09375%;
		margin-left: auto;
		padding: 80px 0 80px 34.7967479675%;
	}
}
.l-footerContact a::before {
	content: "";
	position: absolute;
	top: 50%;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	right: 8.4269662921%;
	width: 27.5px;
	height: 16.3px;
	background: transparent url(../../image/arrow_03.svg) no-repeat scroll center center/cover;
	opacity: 0;
	-webkit-transition: opacity 0.8s cubic-bezier(0.26, 0.06, 0, 1) 0.9s;
	transition: opacity 0.8s cubic-bezier(0.26, 0.06, 0, 1) 0.9s;
	will-change: opacity;
}
@media screen and (min-width: 769px) {
	.l-footerContact a::before {
		right: 3.9024390244%;
		width: 63px;
		height: 37.3px;
		will-change: right;
	}
}
.l-footerContact span {
	display: inline-block;
	-webkit-transform-origin: center;
	transform-origin: center;
	opacity: 0;
	-webkit-transition: opacity 0.8s cubic-bezier(0.26, 0.06, 0, 1) 0.9s, -webkit-transform 0.8s cubic-bezier(0.26, 0.06, 0, 1) 0s;
	transition: opacity 0.8s cubic-bezier(0.26, 0.06, 0, 1) 0.9s, -webkit-transform 0.8s cubic-bezier(0.26, 0.06, 0, 1) 0s;
	transition: opacity 0.8s cubic-bezier(0.26, 0.06, 0, 1) 0.9s, transform 0.8s cubic-bezier(0.26, 0.06, 0, 1) 0s;
	transition: opacity 0.8s cubic-bezier(0.26, 0.06, 0, 1) 0.9s, transform 0.8s cubic-bezier(0.26, 0.06, 0, 1) 0s, -webkit-transform 0.8s cubic-bezier(0.26, 0.06, 0, 1) 0s;
	will-change: opacity, transfrom;
	font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;;
	font-weight: 700;
	font-size: 1.2857142857rem;
	line-height: 1.5555555556;
}
@media screen and (min-width: 769px) {
	.l-footerContact span {
		font-size: 2.1333333333rem;
		line-height: 1.5125;
	}
}
.l-footerContact a:hover {
	opacity: 1;
}
@media screen and (min-width: 769px) {
	.l-footerContact a:hover::before {
		-webkit-animation: arrowMove2 0.8s linear 0s;
		animation: arrowMove2 0.8s linear 0s;
	}
}
@media screen and (min-width: 769px) {
	.l-footerContact a:hover span {
		-webkit-transform: scale(1.05);
		transform: scale(1.05);
	}
}
.l-footerContact.is-active a {
	-webkit-transform: translateX(0);
	transform: translateX(0);
}
.l-footerContact.is-active a::before,
.l-footerContact.is-active a span {
	opacity: 1;
}

@-webkit-keyframes arrowMove2 {
	0% {
		opacity: 1;
		right: 3.9024390244%;
	}
	33% {
		opacity: 0;
		right: 1.6260162602%;
	}
	66% {
		opacity: 0;
		right: 6.1788617886%;
	}
	100% {
		opacity: 1;
		right: 3.9024390244%;
	}
}

@keyframes arrowMove2 {
	0% {
		opacity: 1;
		right: 3.9024390244%;
	}
	33% {
		opacity: 0;
		right: 1.6260162602%;
	}
	66% {
		opacity: 0;
		right: 6.1788617886%;
	}
	100% {
		opacity: 1;
		right: 3.9024390244%;
	}
}
.l-footerMenu {
	padding: 60px 8% 0;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
@media screen and (min-width: 769px) {
	.l-footerMenu {
		display: -webkit-box;
		display: -webkit-flex;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		-webkit-align-items: center;
		-ms-flex-align: center;
		align-items: center;
		-webkit-box-pack: justify;
		-webkit-justify-content: space-between;
		-ms-flex-pack: justify;
		justify-content: space-between;
		padding: 120px 4.0625% 0;
	}
}
@media screen and (min-width: 769px) {
	.l-footerMenu ul {
		display: -webkit-box;
		display: -webkit-flex;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		-webkit-align-items: center;
		-ms-flex-align: center;
		align-items: center;
	}
}
.l-footerMenu li:first-of-type {
	width: 156px;
}
@media screen and (min-width: 769px) {
	.l-footerMenu li:first-of-type {
		width: 195px;
		min-width: 195px;
		padding-right: 10px;
	}
}
.l-footerMenu li {
	font-family: "Noto Sans JP", sans-serif;;
	font-weight: 400;
	font-size: 0.7857142857rem;
	line-height: 1.5;
}
@media screen and (min-width: 769px) {
	.l-footerMenu li {
		font-size: 0.9333333333rem;
		line-height: 1.5;
	}
}
.l-footerMenu li + * {
	margin-top: 28px;
}
@media screen and (min-width: 769px) {
	.l-footerMenu li + * {
		margin-top: 0;
		padding-left: 3.4013605442%;
		-webkit-box-sizing: border-box;
		box-sizing: border-box;
		white-space: nowrap;
	}
}
.l-footerMenu a {
	color: #9EACAD;
}
.l-footerMenu small {
	text-align: right;
	display: block;
	margin-top: 40px;
	color: #9EACAD;
	font-family: "Noto Sans JP", sans-serif;;
	font-weight: 400;
	font-size: 0.6428571429rem;
	line-height: 1.5;
}
@media screen and (min-width: 769px) {
	.l-footerMenu small {
		margin-top: 0;
		font-size: 0.9333333333rem;
		line-height: 1.5;
	}
}

.l-footerBottom {
	padding: 80px 5.3333333333% 0;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
@media screen and (min-width: 769px) {
	.l-footerBottom {
		padding: 90px 4.6875% 0;
	}
}
.l-footerBottom p {
	padding-bottom: 24px;
	color: #9faeb2;
	font-family: "Noto Sans JP", sans-serif;;
	font-weight: 400;
	font-size: 1rem;
	line-height: 1.5714285714;
}
@media screen and (min-width: 769px) {
	.l-footerBottom p {
		padding-bottom: 30px;
		font-size: 1rem;
		line-height: 1.8666666667;
	}
}

.l-footerBottom__logo a {
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: end;
	-webkit-align-items: flex-end;
	-ms-flex-align: end;
	align-items: flex-end;
}
.l-footerBottom__logo picture {
	display: block;
	width: 100px;
}
.l-footerBottom__logo span {
	display: inline-block;
	padding-left: 6px;
	color: #ffffff;
	font-family: "メイリオ", "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
	font-weight: bold;
	font-size: 0.7142857143rem;
	line-height: 1;
}
@media screen and (min-width: 769px) {
	.l-footerBottom__logo span {
		padding-left: 8px;
		font-size: 0.6666666667rem;
		line-height: 1;
	}
}

/*==============================================

  COMPONENT

==============================================*/
/*==============================================
  COMPONENT TEXT
==============================================*/
.c-h1 {
	font-size: 1rem;
	line-height: 1.5;
}
@media screen and (min-width: 769px) {
	.c-h1 {
		font-size: 1rem;
		line-height: 1.5;
	}
}

/*==============================================
  COMPONENT BUTTON
==============================================*/
/*==============================================
  COMPONENT SECTION
==============================================*/
.c-section:last-of-type {
	padding-bottom: 120px;
}
@media screen and (min-width: 769px) {
	.c-section:last-of-type {
		padding-bottom: 180px;
	}
}

.c-sectionLimit {
	max-width: 1600px;
	margin: 0 auto;
}

/*==============================================

  UTILITY

==============================================*/
.u-hidden {
	display: none;
}

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

@media screen and (min-width: 769px) {
	.u-hidden-pc {
		display: none;
	}
}

.u-left {
	text-align: left;
}

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

.u-right {
	text-align: right;
}

.u-red {
	color: red;
}

.u-bg-red {
	background-color: red;
}

/* 
* 余白打ち消しクラス
*/
.u-noRadius {
	border-radius: 0 !important;
}

.u-noMargin {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.u-noMargin-top {
	margin-top: 0 !important;
}

.u-noMargin-bottom {
	margin-bottom: 0 !important;
}

.u-noPadding {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.u-noPadding-top {
	padding-top: 0 !important;
}

.u-noPadding-bottom {
	padding-bottom: 0 !important;
}

/* 
* 余白
*/
.-padding-t {
	padding-top: 10px;
}
.-padding-t.-x2 {
	padding-top: 20px;
}
.-padding-t.-x4 {
	padding-top: 40px;
}
.-padding-t.-x6 {
	padding-top: 60px;
}
.-padding-t.-x8 {
	padding-top: 80px;
}
.-padding-t.-x10 {
	padding-top: 100px;
}

.-padding-b {
	padding-bottom: 10px;
}
.-padding-b.-x2 {
	padding-bottom: 20px;
}
.-padding-b.-x4 {
	padding-bottom: 40px;
}
.-padding-b.-x6 {
	padding-bottom: 60px;
}
.-padding-b.-x8 {
	padding-bottom: 80px;
}
.-padding-b.-x10 {
	padding-bottom: 100px;
}

.-margin-t {
	margin-top: 10px;
}
.-margin-t.-x2 {
	margin-top: 20px;
}
.-margin-t.-x4 {
	margin-top: 40px;
}
.-margin-t.-x6 {
	margin-top: 60px;
}
.-margin-t.-x8 {
	margin-top: 80px;
}
.-margin-t.-x10 {
	margin-top: 100px;
}

.-margin-b {
	margin-bottom: 10px;
}
.-margin-b.-x2 {
	margin-bottom: 20px;
}
.-margin-b.-x4 {
	margin-bottom: 40px;
}
.-margin-b.-x6 {
	margin-bottom: 60px;
}
.-margin-b.-x8 {
	margin-bottom: 80px;
}
.-margin-b.-x10 {
	margin-bottom: 100px;
}

/*==============================================

  THEME HOME

==============================================*/
.home {
	-webkit-transition: background-color 0.6s cubic-bezier(0.26, 0.06, 0, 1) 0s;
	transition: background-color 0.6s cubic-bezier(0.26, 0.06, 0, 1) 0s;
}

.c-canvas,
.c-canvasTarget,
.c-canvasDomOverlay {
	width: 100% !important;
	height: auto !important;
}

/*
  .t-hero
*/
.t-hero {
	position: relative;
	width: 100%;
	height: 100vh;
	overflow: hidden;
	opacity: 0;
	-webkit-transition: opacity 1s cubic-bezier(0.44, 0, 0.54, 1) 0s;
	transition: opacity 1s cubic-bezier(0.44, 0, 0.54, 1) 0s;
}
.t-hero__logo {
	z-index: 4;
	position: relative;
	display: block;
	width: 100%;
	height: calc(100vh - 70px);
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	-webkit-transition: width 0.6s cubic-bezier(0.44, 0, 0.54, 1) 2.6s, height 0.6s cubic-bezier(0.44, 0, 0.54, 1) 2.6s, left 0.6s cubic-bezier(0.44, 0, 0.54, 1) 2.6s, -webkit-transform 0.8s cubic-bezier(0.44, 0, 0.54, 1) 2.6s;
	transition: width 0.6s cubic-bezier(0.44, 0, 0.54, 1) 2.6s, height 0.6s cubic-bezier(0.44, 0, 0.54, 1) 2.6s, left 0.6s cubic-bezier(0.44, 0, 0.54, 1) 2.6s, -webkit-transform 0.8s cubic-bezier(0.44, 0, 0.54, 1) 2.6s;
	transition: width 0.6s cubic-bezier(0.44, 0, 0.54, 1) 2.6s, height 0.6s cubic-bezier(0.44, 0, 0.54, 1) 2.6s, left 0.6s cubic-bezier(0.44, 0, 0.54, 1) 2.6s, transform 0.8s cubic-bezier(0.44, 0, 0.54, 1) 2.6s;
	transition: width 0.6s cubic-bezier(0.44, 0, 0.54, 1) 2.6s, height 0.6s cubic-bezier(0.44, 0, 0.54, 1) 2.6s, left 0.6s cubic-bezier(0.44, 0, 0.54, 1) 2.6s, transform 0.8s cubic-bezier(0.44, 0, 0.54, 1) 2.6s, -webkit-transform 0.8s cubic-bezier(0.44, 0, 0.54, 1) 2.6s;
	will-change: width, left, transform;
}
@media screen and (min-width: 769px) {
	.t-hero__logo {
		width: 100%;
		height: calc(100vh - 66px);
	}
}
.t-hero__logo span, .t-hero__logo img {
	display: block;
}
.t-hero__logo span {
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	top: 58%;
	width: 198px;
	margin-bottom: -20px;
	-webkit-transition: width 0.6s cubic-bezier(0.44, 0, 0.54, 1) 2.6s;
	transition: width 0.6s cubic-bezier(0.44, 0, 0.54, 1) 2.6s;
}
@media screen and (min-width: 769px) {
	.t-hero__logo span {
		top: 50%;
		width: 380px;
	}
}
@media screen and (min-width: 1000px) {
	.t-hero__logo span {
		width: 490px;
	}
}
.t-hero__logo iframe {
	display: block;
	width: 100%;
	height: 100%;
	overflow: visible;
	border: none;
}

.t-hero__window {
	z-index: 1;
	position: absolute;
	bottom: 70px;
	left: 0;
	width: 100%;
	height: 40vh;
	border-radius: 0 0 0 100px;
	-webkit-transition: -webkit-transform 0.8s cubic-bezier(0.44, 0, 0.54, 1) 3.1s;
	transition: -webkit-transform 0.8s cubic-bezier(0.44, 0, 0.54, 1) 3.1s;
	transition: transform 0.8s cubic-bezier(0.44, 0, 0.54, 1) 3.1s;
	transition: transform 0.8s cubic-bezier(0.44, 0, 0.54, 1) 3.1s, -webkit-transform 0.8s cubic-bezier(0.44, 0, 0.54, 1) 3.1s;
	will-change: transform;
	overflow: hidden;
}
@media screen and (min-width: 769px) {
	.t-hero__window {
		position: absolute;
		top: 0;
		right: 0;
		left: auto;
		bottom: auto;
		width: 50%;
		height: 100vh;
	}
}
@media screen and (min-width: 769px) {
	.t-hero__window {
		height: calc(100vh - 66px);
	}
}
.t-hero__window::before {
	content: "";
	z-index: 2;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #ffffff;
	-webkit-transform-origin: top center;
	transform-origin: top center;
	-webkit-transition: -webkit-transform 0.8s cubic-bezier(0.44, 0, 0.54, 1) 3.1s;
	transition: -webkit-transform 0.8s cubic-bezier(0.44, 0, 0.54, 1) 3.1s;
	transition: transform 0.8s cubic-bezier(0.44, 0, 0.54, 1) 3.1s;
	transition: transform 0.8s cubic-bezier(0.44, 0, 0.54, 1) 3.1s, -webkit-transform 0.8s cubic-bezier(0.44, 0, 0.54, 1) 3.1s;
}
@media screen and (min-width: 769px) {
	.t-hero__window::before {
		-webkit-transform-origin: center left;
		transform-origin: center left;
	}
}
.t-hero__window h2 {
	z-index: 1;
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	text-align: center;
	width: 100%;
	font-family: "Noto Sans JP", sans-serif;;
	font-weight: 700;
	opacity: 0;
	-webkit-transition: opacity 1s cubic-bezier(0.44, 0, 0.54, 1) 3.8s;
	transition: opacity 1s cubic-bezier(0.44, 0, 0.54, 1) 3.8s;
	font-size: 1.2857142857rem;
	line-height: 1.6;
}
@media screen and (min-width: 769px) {
	.t-hero__window h2 {
		font-size: 2.1333333333rem;
		line-height: 1.65625;
	}
}
.t-hero__window .c-canvas,
.t-hero__window .c-canvasTarget,
.t-hero__window .c-canvasDomOverlay {
	z-index: 0;
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	width: 60vh !important;
	height: 60vh !important;
}
@media screen and (min-width: 769px) {
	.t-hero__window .c-canvas,
.t-hero__window .c-canvasTarget,
.t-hero__window .c-canvasDomOverlay {
		width: 100vh !important;
		height: 100vh !important;
	}
}

@media screen and (max-height: 640px) and (min-width: 769px) {
	.t-hero__window .c-canvas,
.t-hero__window .c-canvasTarget,
.t-hero__window .c-canvasDomOverlay {
		width: 150vh !important;
		height: 150vh !important;
	}
}
@media screen and (max-height: 640px) and (min-width: 769px) and (min-width: 769px) {
	.t-hero__window .c-canvas,
.t-hero__window .c-canvasTarget,
.t-hero__window .c-canvasDomOverlay {
		height: 150vh !important;
	}
}
.t-hero.is-active {
	opacity: 1;
}
.t-hero.is-active .t-hero__logo {
	height: 49.2vh;
	top: auto;
	left: auto;
	-webkit-transform: translate(0, 0);
	transform: translate(0, 0);
}
@media screen and (min-width: 769px) {
	.t-hero.is-active .t-hero__logo {
		width: 50%;
		height: calc(100vh - 66px);
		left: 0;
	}
}
.t-hero.is-active .t-hero__window::before {
	-webkit-transform: scaleY(0);
	transform: scaleY(0);
}
@media screen and (min-width: 769px) {
	.t-hero.is-active .t-hero__window::before {
		-webkit-transform: scaleX(0);
		transform: scaleX(0);
	}
}
.t-hero.is-active .t-hero__window h2 {
	opacity: 1;
}

/*
  .t-news
*/
.t-news {
	z-index: 1;
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 70px;
	max-height: 70px;
	padding: 4px 5.3333333333% 10px;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	background-color: #ffffff;
	opacity: 0;
	-webkit-transition: opacity 1s cubic-bezier(0.44, 0, 0.54, 1) 3.8s;
	transition: opacity 1s cubic-bezier(0.44, 0, 0.54, 1) 3.8s;
}
@media screen and (min-width: 769px) {
	.t-news {
		padding: 22px 3.90625%;
	}
}
@media screen and (min-width: 769px) {
	.t-news a {
		display: -webkit-box;
		display: -webkit-flex;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		-webkit-align-items: center;
		-ms-flex-align: center;
		align-items: center;
	}
}
.t-news time {
	position: relative;
	display: inline-block;
	padding-left: 20px;
	font-family: "Lexend Deca", sans-serif;;
	font-weight: 300;
	font-size: 0.7142857143rem;
	line-height: 1.5;
}
@media screen and (min-width: 769px) {
	.t-news time {
		padding-right: 14px;
		font-size: 0.9333333333rem;
		line-height: 1.5;
	}
}
.t-news time::before {
	content: "";
	position: absolute;
	top: 50%;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	left: 0;
	width: 8px;
	height: 8px;
	background-color: #9EACAD;
	border-radius: 50%;
}
.t-news p {
	padding-top: 2px;
	overflow: hidden;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;;
	font-weight: 500;
	font-size: 0.7857142857rem;
	line-height: 1.4545454545;
}
@media screen and (min-width: 769px) {
	.t-news p {
		font-size: 0.9333333333rem;
		line-height: 1.5;
	}
}

.t-news.is-active {
	opacity: 1;
}

/*
  .t-chapter
*/
.t-chapter {
	position: relative;
	width: 100%;
	height: 100vh;
}

.t-chapterTitle {
	z-index: 1;
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-webkit-align-items: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: center;
	-webkit-justify-content: center;
	-ms-flex-pack: center;
	justify-content: center;
	width: 78.6666666667%;
	height: 200px;
	border-radius: 200px;
	-webkit-transform-origin: center;
	transform-origin: center;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
@media screen and (min-width: 769px) {
	.t-chapterTitle {
		width: 53.125%;
		height: 280px;
	}
}
.t-chapterTitle h2 {
	position: relative;
	text-align: center;
	letter-spacing: 0.08em;
	font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;;
	font-weight: 700;
	font-size: 1.8571428571rem;
	line-height: 1.3846153846;
}
@media screen and (min-width: 769px) {
	.t-chapterTitle h2 {
		font-size: 2.9333333333rem;
		line-height: 1.1;
	}
}
.t-chapterTitle h2::before {
	content: "";
	position: absolute;
	left: 50%;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
	bottom: -26px;
	width: 49.3px;
	height: 5.5px;
	background: transparent url(../../image/object_01.svg) no-repeat scroll center center/cover;
}
@media screen and (min-width: 769px) {
	.t-chapterTitle h2::before {
		bottom: -34px;
		width: 61.1px;
		height: 6.9px;
	}
}
.t-chapterTitle span {
	font-family: "Outfit", sans-serif;;
	font-weight: 600;
	letter-spacing: 0.1em;
}
.t-chapter--1 .t-chapterTitle {
	background-color: #E4E8E8;
}
.t-chapter--2 .t-chapterTitle {
	background-color: #FFFFFF;
}

/*
  .t-service
*/
.t-service {
	z-index: 1;
	position: relative;
	margin-top: calc(-50vh + 100px);
	padding-bottom: 120px;
}
@media screen and (min-width: 769px) {
	.t-service {
		margin-top: calc(-50vh + 150px);
		padding-bottom: 80px;
	}
}

.t-serviceWrap {
	position: relative;
}
.t-serviceWrap + *:not(.t-serviceMore) {
	margin-top: 100px;
}
@media screen and (min-width: 769px) {
	.t-serviceWrap + *:not(.t-serviceMore) {
		margin-top: 100px;
	}
}
.t-serviceWrap picture {
	z-index: 1;
	position: relative;
	width: 80%;
	margin: -56px auto 0;
	opacity: 0;
	-webkit-transition: opacity 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0.4s;
	transition: opacity 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0.4s;
}
@media screen and (min-width: 769px) {
	.t-serviceWrap picture {
		position: absolute;
		top: 50%;
		-webkit-transform: translateY(-50%);
		transform: translateY(-50%);
		right: 11.09375%;
		width: 32.5%;
		max-width: 450px;
		margin: 0;
	}
}

.t-serviceWrap__inner {
	position: relative;
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-flex-wrap: wrap;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	padding: 56px 8% 106px;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	overflow: hidden;
}
@media screen and (min-width: 769px) {
	.t-serviceWrap__inner {
		display: block;
		width: 75.3125%;
		padding: 110px 26.953125% 110px 12.1875%;
	}
}
.t-serviceWrap__inner::before {
	content: "";
	z-index: 0;
	position: absolute;
	top: 0;
	left: -100%;
	width: 113.8666666667%;
	height: 100%;
	border-radius: 0 100vh 100vh 0;
	background-color: #ffffff;
	-webkit-transition: left 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
	transition: left 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
	will-change: left;
}
@media screen and (min-width: 769px) {
	.t-serviceWrap__inner::before {
		width: 100%;
	}
}
.t-serviceWrap__inner * {
	z-index: 1;
	position: relative;
}
.t-serviceWrap__inner span {
	position: relative;
	display: inline-block;
	width: 103px;
	-webkit-transform: translateX(-20px) translateY(-10px);
	transform: translateX(-20px) translateY(-10px);
	font-family: "Outfit", sans-serif;;
	font-weight: 700;
	font-size: 3.4285714286rem;
	line-height: 1.5;
	opacity: 0;
	-webkit-transition: opacity 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s, -webkit-transform 1.4s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
	transition: opacity 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s, -webkit-transform 1.4s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
	transition: opacity 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s, transform 1.4s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
	transition: opacity 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s, transform 1.4s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s, -webkit-transform 1.4s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
	will-change: opacity, transform;
}
@media screen and (min-width: 769px) {
	.t-serviceWrap__inner span {
		width: 100%;
		padding-bottom: 2px;
		font-size: 4.4rem;
		line-height: 1.5;
	}
}
.t-serviceWrap__inner span::after {
	content: "";
	display: inline-block;
	width: 9.6px;
	height: 9.6px;
	margin-left: 6px;
	background-color: #9EACAD;
	border-radius: 50%;
	-webkit-transform: scale(0);
	transform: scale(0);
	-webkit-transform-origin: center;
	transform-origin: center;
	-webkit-transition: -webkit-transform 0.4s cubic-bezier(0.15, 0.82, 0.64, 1.43) 0.4s;
	transition: -webkit-transform 0.4s cubic-bezier(0.15, 0.82, 0.64, 1.43) 0.4s;
	transition: transform 0.4s cubic-bezier(0.15, 0.82, 0.64, 1.43) 0.4s;
	transition: transform 0.4s cubic-bezier(0.15, 0.82, 0.64, 1.43) 0.4s, -webkit-transform 0.4s cubic-bezier(0.15, 0.82, 0.64, 1.43) 0.4s;
	will-change: opacity, transform;
}
@media screen and (min-width: 769px) {
	.t-serviceWrap__inner span::after {
		width: 12px;
		height: 12px;
		margin-left: 12px;
	}
}
.t-serviceWrap__inner h3 {
	width: calc(100% - 103px);
	padding-bottom: 36px;
	font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;;
	font-weight: 700;
	font-size: 1.4285714286rem;
	line-height: 1.6;
	opacity: 0;
	-webkit-transform: translateX(-20px);
	transform: translateX(-20px);
	-webkit-transition: opacity 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0.2s, -webkit-transform 1.4s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0.2s;
	transition: opacity 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0.2s, -webkit-transform 1.4s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0.2s;
	transition: opacity 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0.2s, transform 1.4s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0.2s;
	transition: opacity 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0.2s, transform 1.4s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0.2s, -webkit-transform 1.4s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0.2s;
	will-change: opacity, transform;
}
@media screen and (min-width: 769px) {
	.t-serviceWrap__inner h3 {
		width: 100%;
		padding-bottom: 30px;
		font-size: 2.1333333333rem;
		line-height: 1.6875;
	}
}
.t-serviceWrap__inner p {
	width: 100%;
	color: #595959;
	font-family: "Noto Sans JP", sans-serif;;
	font-weight: 400;
	font-size: 1rem;
	line-height: 1.8;
	opacity: 0;
	-webkit-transform: translateX(-20px);
	transform: translateX(-20px);
	-webkit-transition: opacity 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0.3s, -webkit-transform 1.4s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0.3s;
	transition: opacity 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0.3s, -webkit-transform 1.4s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0.3s;
	transition: opacity 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0.3s, transform 1.4s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0.3s;
	transition: opacity 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0.3s, transform 1.4s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0.3s, -webkit-transform 1.4s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0.3s;
	will-change: opacity, transform;
}
@media screen and (min-width: 769px) {
	.t-serviceWrap__inner p {
		font-size: 1rem;
		line-height: 2.1333333333;
	}
}

.t-serviceWrap__inner__canvas {
	z-index: 1;
	position: relative;
	width: 80%;
	margin: -56px auto 0;
	-webkit-transition: opacity 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0.4s;
	transition: opacity 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0.4s;
}
@media screen and (min-width: 769px) {
	.t-serviceWrap__inner__canvas {
		position: absolute;
		top: 50%;
		-webkit-transform: translateY(-50%);
		transform: translateY(-50%);
		right: 11.09375%;
		width: 32.5%;
		max-width: 450px;
		margin: 0;
	}
}

#serviceWrapEl1,
#serviceWrapEl2,
#serviceWrapEl3 {
	opacity: 0;
	-webkit-transition: opacity 0.5s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
	transition: opacity 0.5s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
}

@media screen and (min-width: 769px) {
	.t-serviceWrap:nth-of-type(2n) picture, .t-serviceWrap:nth-of-type(2n) .t-serviceWrap__inner__canvas {
		right: auto;
		left: 11.09375%;
	}
}
@media screen and (min-width: 769px) {
	.t-serviceWrap:nth-of-type(2n) .t-serviceWrap__inner {
		margin-left: auto;
		padding: 110px 12.1875% 110px 26.953125%;
	}
}
.t-serviceWrap:nth-of-type(2n) .t-serviceWrap__inner::before {
	content: "";
	right: -100%;
	left: auto !important;
	border-radius: 100vh 0 0 100vh;
	-webkit-transition: right 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
	transition: right 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
	will-change: right;
}

.t-serviceWrap.is-active picture {
	opacity: 1;
}
.t-serviceWrap.is-active .t-serviceWrap__inner::before {
	left: 0;
}
.t-serviceWrap.is-active .t-serviceWrap__inner span {
	opacity: 1;
	-webkit-transform: translateX(0) translateY(-10px);
	transform: translateX(0) translateY(-10px);
}
.t-serviceWrap.is-active .t-serviceWrap__inner span::after {
	-webkit-transform: scale(0.9);
	transform: scale(0.9);
}
.t-serviceWrap.is-active .t-serviceWrap__inner h3 {
	opacity: 1;
	-webkit-transform: translateX(0);
	transform: translateX(0);
}
.t-serviceWrap.is-active .t-serviceWrap__inner p {
	opacity: 1;
	-webkit-transform: translateX(0);
	transform: translateX(0);
}

.t-serviceWrap:nth-of-type(2n).is-active picture {
	opacity: 1;
}
.t-serviceWrap:nth-of-type(2n).is-active .t-serviceWrap__inner::before {
	right: 0;
}
.t-serviceWrap:nth-of-type(2n).is-active .t-serviceWrap__inner span {
	opacity: 1;
	-webkit-transform: translateX(0) translateY(-10px);
	transform: translateX(0) translateY(-10px);
}
.t-serviceWrap:nth-of-type(2n).is-active .t-serviceWrap__inner span::after {
	opacity: 1;
	-webkit-transform: translateX(0);
	transform: translateX(0);
}
.t-serviceWrap:nth-of-type(2n).is-active .t-serviceWrap__inner h3 {
	opacity: 1;
	-webkit-transform: translateX(0);
	transform: translateX(0);
}
.t-serviceWrap:nth-of-type(2n).is-active .t-serviceWrap__inner p {
	opacity: 1;
	-webkit-transform: translateX(0);
	transform: translateX(0);
}

.t-serviceMore {
	position: relative;
	padding-top: 40px;
}
@media screen and (min-width: 769px) {
	.t-serviceMore {
		padding-top: 100px;
	}
}

.t-serviceMore__guide {
	z-index: 1;
	position: absolute;
	left: 50%;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
	top: 0;
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: center;
	-webkit-justify-content: center;
	-ms-flex-pack: center;
	justify-content: center;
	-webkit-box-align: center;
	-webkit-align-items: center;
	-ms-flex-align: center;
	align-items: center;
	width: 148px;
	height: 148px;
	margin: 0 auto;
	background-color: #333333;
	border-radius: 50%;
	-webkit-transform: translateX(-50%) scale(0);
	transform: translateX(-50%) scale(0);
	-webkit-transform-origin: top center;
	transform-origin: top center;
	pointer-events: none;
}
@media screen and (min-width: 769px) {
	.t-serviceMore__guide {
		width: 246px;
		height: 246px;
		margin: 0 auto;
	}
}
.t-serviceMore__guide p {
	opacity: 0;
	text-align: center;
	color: #ffffff;
	-webkit-transition: opacity 0.5s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
	transition: opacity 0.5s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
	font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;;
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.5714285714;
}
@media screen and (min-width: 769px) {
	.t-serviceMore__guide p {
		font-size: 1.4666666667rem;
		line-height: 1.6363636364;
	}
}
.t-serviceMore__guide::before {
	content: "";
	position: absolute;
	left: 50%;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
	bottom: 20px;
	width: 13px;
	height: 16.4px;
	background: transparent url(../../image/arrow_02.svg) no-repeat scroll center center/cover;
	opacity: 0;
	-webkit-transition: opacity 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
	transition: opacity 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
}
@media screen and (min-width: 769px) {
	.t-serviceMore__guide::before {
		bottom: 34px;
		width: 21.8px;
		height: 27.4px;
	}
}
.t-serviceMore__guide.is-active p {
	opacity: 1;
}
.t-serviceMore__guide.is-active::before {
	opacity: 1;
}

.t-serviceMore__movie {
	position: relative;
	padding: 100px 0 130px;
}
@media screen and (min-width: 769px) {
	.t-serviceMore__movie {
		padding: 120px 0 160px;
	}
}
.t-serviceMore__movie a {
	position: relative;
	display: block;
	cursor: pointer;
}
.t-serviceMore__movie a::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
	width: 52px;
	height: 52px;
	-webkit-transform-origin: center;
	transform-origin: center;
	background: transparent url(../../image/icon_play.svg) no-repeat scroll center center/cover;
	-webkit-transition: -webkit-transform 0.6s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
	transition: -webkit-transform 0.6s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
	transition: transform 0.6s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
	transition: transform 0.6s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s, -webkit-transform 0.6s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
}
@media screen and (min-width: 769px) {
	.t-serviceMore__movie a::before {
		width: 140px;
		height: 140px;
	}
}
@media screen and (min-width: 769px) {
	.t-serviceMore__movie a:hover {
		opacity: 1;
	}
	.t-serviceMore__movie a:hover::before {
		-webkit-transform: translate(-50%, -50%) scale(1.2);
		transform: translate(-50%, -50%) scale(1.2);
	}
}
.t-serviceMore__movie picture {
	width: 88%;
	margin: 0 auto;
}
@media screen and (min-width: 769px) {
	.t-serviceMore__movie picture {
		width: 67.1875%;
	}
}

.t-serviceMore__background {
	pointer-events: none;
	z-index: -1;
	position: absolute;
	bottom: 120px;
	left: 0;
	width: 100%;
	overflow: hidden;
}
@media screen and (min-width: 769px) {
	.t-serviceMore__background {
		bottom: 0;
	}
}
.t-serviceMore__background picture {
	width: 180%;
	margin-left: -40%;
}
@media screen and (min-width: 769px) {
	.t-serviceMore__background picture {
		width: 100%;
		margin-left: 0;
	}
}

/*
  .t-structure
*/
.t-structure {
	z-index: 1;
	position: relative;
	margin-top: calc(-50vh + 100px);
}
@media screen and (min-width: 769px) {
	.t-structure {
		margin-top: calc(-50vh + 150px);
	}
}

.t-structure__fadein {
	opacity: 0;
	-webkit-transform: translateY(20px);
	transform: translateY(20px);
	-webkit-transition: opacity 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s, -webkit-transform 1.4s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
	transition: opacity 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s, -webkit-transform 1.4s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
	transition: opacity 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s, transform 1.4s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
	transition: opacity 1s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s, transform 1.4s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s, -webkit-transform 1.4s cubic-bezier(0.19, 0.55, 0.43, 0.86) 0s;
	will-change: opacity, transform;
}
.t-structure__fadein.is-active {
	opacity: 1;
	-webkit-transform: translateY(0);
	transform: translateY(0);
}

.t-structure__text {
	padding: 0 8% 40px;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
@media screen and (min-width: 769px) {
	.t-structure__text {
		padding: 0 9% 40px;
	}
}
.t-structure__text p {
	text-align: left;
	color: #595959;
	font-family: "Noto Sans JP", sans-serif;;
	font-weight: 400;
	font-size: 1rem;
	line-height: 1.7142857143;
}
@media screen and (min-width: 769px) {
	.t-structure__text p {
		text-align: center;
		font-size: 1rem;
		line-height: 1.7;
	}
}

.t-structure__image {
	width: 84%;
	margin: 0 auto;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
@media screen and (min-width: 769px) {
	.t-structure__image {
		width: 82.96875%;
	}
}

.t-structureContents {
	padding: 108px 8% 0;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
@media screen and (min-width: 769px) {
	.t-structureContents {
		padding: 156px 19.765625% 0;
	}
}
.t-structureContents h3 {
	position: relative;
	text-align: center;
	margin-bottom: 52px;
	letter-spacing: 0.08em;
	font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;;
	font-weight: 700;
	font-size: 1.8571428571rem;
	line-height: 1.3846153846;
}
@media screen and (min-width: 769px) {
	.t-structureContents h3 {
		margin-bottom: 80px;
		font-size: 2.9333333333rem;
		line-height: 1.1;
	}
}
.t-structureContents h3::before {
	content: "";
	position: absolute;
	left: 50%;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
	bottom: -26px;
	width: 49.3px;
	height: 5.5px;
	background: transparent url(../../image/object_01.svg) no-repeat scroll center center/cover;
}
@media screen and (min-width: 769px) {
	.t-structureContents h3::before {
		bottom: -34px;
		width: 61.1px;
		height: 6.9px;
	}
}
.t-structureContents span {
	font-family: "Outfit", sans-serif;;
	font-weight: 600;
	letter-spacing: 0.1em;
}
.t-structureContents p {
	padding-top: 32px;
	color: #595959;
	font-family: "Noto Sans JP", sans-serif;;
	font-weight: 400;
	font-size: 1rem;
	line-height: 1.7142857143;
}
@media screen and (min-width: 769px) {
	.t-structureContents p {
		padding-top: 40px;
		font-size: 1rem;
		line-height: 2.1333333333;
	}
}

.t-structureContents__wrap {
	text-align: center;
	padding: 40px 9.5238095238%;
	background-color: #F2F2F2;
	border-radius: 26px;
}
@media screen and (min-width: 769px) {
	.t-structureContents__wrap {
		padding: 76px 7.5129533679%;
	}
}
.t-structureContents__wrap h4 {
	display: inline-block;
	text-align: center;
	margin-bottom: 30px;
	color: #333333;
	border-bottom: 1px solid #333333;
	font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;;
	font-weight: 700;
	font-size: 1.2857142857rem;
	line-height: 1.7777777778;
}
@media screen and (min-width: 769px) {
	.t-structureContents__wrap h4 {
		margin-bottom: 36px;
		font-size: 2.1333333333rem;
		line-height: 1.75;
	}
}
.t-structureContents__wrap p {
	text-align: left;
	padding: 0;
	color: #595959;
	font-family: "Noto Sans JP", sans-serif;;
	font-weight: 400;
	font-size: 1rem;
	line-height: 1.8571428571;
}
@media screen and (min-width: 769px) {
	.t-structureContents__wrap p {
		font-size: 1.0666666667rem;
		line-height: 2;
	}
}
.t-structureContents__wrap picture {
	width: 53.7313432836%;
	margin: 0 auto;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
@media screen and (min-width: 769px) {
	.t-structureContents__wrap picture {
		width: 300px;
	}
}

/*
  .t-topics
*/
.t-topics {
	padding: 96px 0 114px;
}
@media screen and (min-width: 769px) {
	.t-topics {
		width: 76.25%;
		margin: 0 auto;
		padding: 162px 0 190px;
	}
}
.t-topics h3 {
	position: relative;
	text-align: center;
	margin-bottom: 66px;
	letter-spacing: 0.08em;
	font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;;
	font-weight: 700;
	font-size: 1.5714285714rem;
	line-height: 1.7272727273;
}
@media screen and (min-width: 769px) {
	.t-topics h3 {
		margin-bottom: 70px;
		font-size: 1.8666666667rem;
		line-height: 1.7285714286;
	}
}
.t-topics h3::before {
	content: "";
	position: absolute;
	left: 50%;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
	bottom: -18px;
	width: 49.3px;
	height: 5.5px;
	background: transparent url(../../image/object_01.svg) no-repeat scroll center center/cover;
}
@media screen and (min-width: 769px) {
	.t-topics h3::before {
		bottom: -20px;
		width: 61.1px;
		height: 6.9px;
	}
}
.t-topics a {
	display: block;
	padding: 30px 8%;
	border-bottom: 1px solid #C4D0D1;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
@media screen and (min-width: 769px) {
	.t-topics a {
		display: -webkit-box;
		display: -webkit-flex;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		-webkit-align-items: center;
		-ms-flex-align: center;
		align-items: center;
		padding: 40px 4.3032786885% 38px;
	}
}
.t-topics li:first-of-type a {
	border-top: 1px solid #C4D0D1;
}
.t-topics time {
	position: relative;
	display: inline-block;
	padding-left: 20px;
	font-family: "Lexend Deca", sans-serif;;
	font-weight: 300;
	font-size: 0.7142857143rem;
	line-height: 1.5;
}
@media screen and (min-width: 769px) {
	.t-topics time {
		padding-left: 24px;
		padding-right: 18px;
		font-size: 0.8rem;
		line-height: 1.5;
	}
}
.t-topics time::before {
	content: "";
	position: absolute;
	top: 50%;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	left: 0;
	width: 8px;
	height: 8px;
	background-color: #9EACAD;
	border-radius: 50%;
}
.t-topics p {
	padding-top: 6px;
	color: #595959;
	font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;;
	font-weight: 500;
	font-size: 1rem;
	line-height: 1.7142857143;
}
@media screen and (min-width: 769px) {
	.t-topics p {
		padding-top: 0;
		font-size: 1.0666666667rem;
		line-height: 1.7;
	}
}

.t-popup {
	visibility: hidden;
	opacity: 0;
	-webkit-transition: opacity 0.6s ease;
	transition: opacity 0.6s ease;
	position: fixed;
	z-index: 10;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	overflow: auto;
	background-color: rgba(161, 161, 161, 0.1);
}
.t-popup__content {
	position: relative;
	background-color: #fff;
	margin: 20% auto;
	width: 85%;
	border-radius: 26px;
	padding: 50px 8% 40px;
	text-align: center;
	-webkit-box-shadow: 0 4px 10px rgba(25, 25, 25, 0.2);
	box-shadow: 0 4px 10px rgba(25, 25, 25, 0.2);
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
@media screen and (min-width: 769px) {
	.t-popup__content {
		margin: 15% auto;
		width: 72%;
		max-width: 780px;
		border-radius: 36px;
		padding: 50px 4%;
	}
}
.t-popup__content .close-button {
	font-weight: bold;
	position: absolute;
	top: 12px;
	right: 15px;
	display: block;
	width: 30px;
	height: 30px;
	-webkit-transition: opacity 0.4s;
	transition: opacity 0.4s;
}
@media screen and (min-width: 769px) {
	.t-popup__content .close-button {
		right: 16px;
		top: 20px;
		width: 36px;
		height: 36px;
	}
}
.t-popup__content .close-button::before, .t-popup__content .close-button::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 2px;
	height: 24px;
	background: #C2CBCB;
}
@media screen and (min-width: 769px) {
	.t-popup__content .close-button::before, .t-popup__content .close-button::after {
		height: 30px;
	}
}
.t-popup__content .close-button::before {
	-webkit-transform: translate(-50%, -50%) rotate(45deg);
	transform: translate(-50%, -50%) rotate(45deg);
}
.t-popup__content .close-button::after {
	-webkit-transform: translate(-50%, -50%) rotate(-45deg);
	transform: translate(-50%, -50%) rotate(-45deg);
}
.t-popup__content .close-button:hover,
.t-popup__content .close-button:focus {
	text-decoration: none;
	cursor: pointer;
	opacity: 0.6;
}
.t-popup__title {
	color: #EF4914;
	font-size: 18px;
	font-weight: 800;
	line-height: 160%;
	text-align: center;
}
@media screen and (min-width: 769px) {
	.t-popup__title {
		line-height: 200%;
		font-size: 20px;
	}
}
.t-popup p {
	margin: 12px auto 0;
	font-size: 14px;
	line-height: 1.6;
	text-align: left;
}
@media screen and (min-width: 769px) {
	.t-popup p {
		font-size: 16px;
		text-align: center;
	}
}
.t-popup__contact {
	display: -ms-grid;
	display: grid;
	place-items: center;
	border-radius: 30px;
	border: 1px solid #C2CBCB;
	padding: 1rem 40px;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
	margin: 24px auto 0;
	font-size: 14px;
}
@media screen and (min-width: 769px) {
	.t-popup__contact {
		padding: 1rem 100px;
		font-size: 16px;
	}
}
.t-popup__contact span {
	-webkit-transition: all 0.5s;
	transition: all 0.5s;
}
.t-popup__contact:hover span {
	-webkit-transform: scale(1.03);
	transform: scale(1.03);
}