@charset "UTF-8";


/* reset ---------------------------------------*/

div,dl,dt,dd,ul,ol,
li,h1,h2,h3,h4,h5,
h6,pre,code,form,fieldset,legend,
input,textarea,p,blockquote,
th,td{margin:0;padding:0;}
table{border-collapse:collapse;border-spacing:0;word-break: break-all;font-size:inherit;width:100%;}
fieldset,img{border:0;}
address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}
li{list-style:none;}
caption,th{text-align:left;}
h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}
q::before,q::after{content:'';}
abbr{border:0;font-variant:normal;}
sup{vertical-align:text-top;}
sub{vertical-align:text-bottom;}
input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit;}
input,textarea,select{font-size:100%;}
legend{color:#000;}
select,input,button,textarea{font-size:inherit;font-family:inherit;box-sizing: border-box;}
pre,code,kbd,samp{font-family:monospace;font-size:108%;line-height:100%;}
figure{padding:0;margin:0;}
input[type="submit"],
input[type="button"],
button {
  border-radius: 0;
  -webkit-box-sizing: content-box;
  -webkit-appearance: button;
  appearance: button;
  border: none;
  box-sizing: border-box;
  cursor: pointer;
}
input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration,
button::-webkit-search-decoration {display: none;}
input[type="submit"]::focus,
input[type="button"]::focus,
button::focus {outline-offset: -2px;}


/* base ---------------------------------------*/

*{box-sizing:border-box;}

html,body{height:100%;}

body{
	-webkit-text-size-adjust: 100%;
	padding:0;
	margin: 0;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 400;
	color: #23504E;
	font-feature-settings: "palt" 1;
	-webkit-font-feature-settings: "palt" 1;
}

a{
	text-decoration: none;
	color:inherit;
	transition: all .25s ease;
	-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
}

a:hover{opacity: 0.7;}

img{
	vertical-align: top;
	line-height: 1;
	max-width:100%;
	height:auto;
}


/* common item ---------------------------------------*/

.clearfix::after,
.inner::after {
	visibility: hidden;
	display: block;
	font-size: 0;
	content: " ";
	clear: both;
	height: 0;
}

.ov-h{overflow: hidden;}

.fc-blue {color: #4D7AFF;}
.font-poppins {font-family: "Poppins", sans-serif;}


/* layout ---------------------------------------*/

.inner {
	max-width: 960px;
	margin: 0 auto;
}

.overlay{display: none;}


/* icon ---------------------------------------*/
.icon-arrow {
	display: inline-block;
	width: 63px;
	height: 63px;
	-webkit-mask-image: url('../img/icon_arrow_circle.svg');
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: 0 0;
	-webkit-mask-size: contain;
	mask-image: url('../img/icon_arrow_circle.svg');
	mask-repeat: no-repeat;
	mask-position: 0 0;
	mask-size: contain;
	background: #fff;
	transition: all .25s ease;
}


/* btn ---------------------------------------*/
.btn {
	display: inline-block;
	position: relative;
	padding: 50px 40px 48px;
	max-width: 960px;
	width: 100%;
	background: #4D7AFF;
	border: 4px solid #4D7AFF;
	border-radius: 10px;
	box-shadow: 0 0 24px 0 rgba(212, 212, 212, 1);
	transition: all .25s ease;
}

.btn > b {
	display: block;
	margin-bottom: 10px;
	font-size: 46px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	color: #fff;
}

.btn > small {
	display: block;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.1;
	text-align: center;
	color: #fff;
}

.btn .icon-arrow {
	position: absolute;
	top: 50%;
	right: 54px;
	transform: translateY(-50%);
}

.btn:hover {
	background: #fff;
	opacity: 1;
}

.btn:hover > b {
	color: #4D7AFF;
}

.btn:hover > small {
	color: #4D7AFF;
}

.btn:hover .icon-arrow {
	background: #4D7AFF;
}


/* header ---------------------------------------*/
header {
	position: fixed;
	left: 0;
	top: 0;
	padding: 0 36px;
	width: 100%;
	z-index: 100;
}

.header-inner {
	position: relative;
	width: 100%;
}

.header-logo {
	display: block;
	position: absolute;
	top: 38px;
	left: 0;
	width: 271px;
	z-index: 101;
	transition: all .25s ease;
}

.header-logo img {
	width: 100%;
}

#openmenu {display:none;}


/* gnav ---------------------------------------*/
.gnav {
	position:absolute;
	top: 28px;
	right: 20px;
	z-index: 99;
	width: 100%;
	max-width: 241px;
}

.gnav-list {
	background: #fff;
	border-radius: 10px;
	box-shadow: 0 0 13px 0 rgba(35, 80, 78, 0.3);
}

.gnav-list > li {
	position: relative;
}

.gnav-list > li + li {
	border-top: 1px solid #46DDCC;
}

.gnav-list > li > a {
	display: block;
	padding: 17px 12px 10px;
}

.gnav-list > li > a > b {
	display: block;
	margin-bottom: 1px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	color: #46DDCC;
	transition: all .25s ease;
}

.gnav-list > li.is-active > a > b {
	color: #4D7AFF;
}

.gnav-list > li > a > b > small {
	font-size: 10px;
	font-weight: 700;
	vertical-align: middle;
}

.gnav-list > li > a > span {
	display: block;
	font-size: 10px;
	font-weight: 900;
	line-height: 2;
	text-align: center;
}

.gnav-list > li > a > span > small {
	font-size: 9px;
	font-weight: 900;
}

.gnav-list > li > a:hover {
	opacity: 1;
}

.gnav-list > li > a:hover > b {
	color: #4D7AFF;
}

.gnav-list > li.is-active > a:hover > b {
	color: #46DDCC;
}

.gnav-contact {
	margin-top: 15px;
}

.gnav-contact .btn {
	padding: 19px 20px 17px;
	border: 2px solid #4D7AFF;
	box-shadow: 0 0 13px 0 rgba(35, 80, 78, 0.3);
}

.gnav-contact .btn > b {
	font-size: 16px;
	margin-bottom: 2px;
}

.gnav-contact .btn > small {
	font-size: 10px;
}

.gnav-contact .btn .icon-arrow {
	right: 12px;
	width: 30px;
	height: 30px;
}

.gnav-copy {display: none;}

.bodyfixed {
	position: fixed;
	width: 100%;
	height: 100%;
}


/* fixedcopy ---------------------------------------*/
.fixedcopy {
	position: fixed;
	bottom: 58px;
	right: -32px;
	z-index: 99;
	transform: rotate(-90deg);
}

.fixedcopy small {
	font-size: 10px;
	font-weight: 700;
	line-height: 1;
}

/* wrapper ---------------------------------------*/
.wrapper {
	overflow: hidden;
}


/* section-title ---------------------------------------*/
.section-title {
}

.section-title b {
	display: block;
	margin-bottom: 24px;
	font-size: 60px;
	font-weight: 900;
	line-height: 1;
	text-align: center;
	color: #4D7AFF;
}

.section-title b small {
	display: inline-block;
	margin: -6px 3px 0 9px;
	vertical-align: middle;
	font-size: 40px;
	font-weight: 400;
}

.section-title span {
	display: block;
	font-size: 20px;
	font-weight: 900;
	line-height: 1.1;
	text-align: center;
	letter-spacing: 0.1em;
	color: #4D7AFF;
}


/* kv ---------------------------------------*/
.kv {
	background: url('../img/kv_bg.jpg') no-repeat;
	background-position: center center;
	background-size: cover;
	width: 100%;
	height: 100vh;
	min-height: 830px;
}

.kv-inner {
	position: relative;
	margin: 0 auto;
	max-width: 1440px;
	width: 100%;
	height: 100%;
}

.kv-logo {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: calc(1431 / 1440 * 100%);
}

.kv-logo img {
	width: 100%;
}

.kv-image-01 {
	position: absolute;
	top: calc(726 / 1440 * 100%);
	left: 31%;
	transform: translateX(-50%);
	width: calc(466 / 1440 * 100%);
}

.kv-image-01 img {
	width: 100%;
}

.kv-title {
	padding-top: calc(156 / 1440 * 100%);
	margin: 0 0 calc(22 / 1440 * 100%) calc(50 / 1440 * 100%);
}

.kv-title span {
	clip-path: inset(100% 0 0 0);
	transition: all 1.2s ease;
}

.kv.is-show .kv-title span {
	clip-path: inset(-20px -20px -20px -20px);
}

.kv-title strong {
	display: inline-block;
	margin-right: min(calc(6 / 1440 * 100vw), 6px);
	font-size: min(calc(82 / 1440 * 100vw), 82px);
	font-weight: 900;
	line-height: 1.1;
	letter-spacing: -0.08em;
}

.kv-title strong.font-poppins {
	font-size: min(calc(97 / 1440 * 100vw), 97px);
}

.kv-title b {
	display: inline-block;
	margin-top: max(calc(-10 / 1440 * 100vw), -10px);
	font-size: min(calc(40 / 1440 * 100vw), 40px);
	font-weight: 900;
	line-height: 1.1;
	letter-spacing: -0.08em;
}

.kv-title b.font-poppins {
	font-size: min(calc(60 / 1440 * 100vw), 60px);
}

.kv-title .mr-6 {
	margin-right: min(calc(6 / 1440 * 100vw), 6px);
}

.kv-title .mr-8 {
	margin-right: min(calc(8 / 1440 * 100vw), 8px);
}

.kv-text {
	padding-left:calc(50 / 1440 * 100%);
	font-size: 18px;
	font-weight: 700;
	line-height: calc(32 / 18);
	letter-spacing: 0.03em;
	width: min(calc(600 / 1100 * 100vw), 600px);
}

.kv-text span {
	display: block;
	clip-path: inset(100% 0 0 0);
	transition: all 1s ease;
	transition-delay: 0.7s;
}

.kv.is-show .kv-text span {
	clip-path: inset(0 0 0 0);
}

.kv-image-02 {
	position: absolute;
	top: calc(334 / 1440 * 100%);
	left: 74.5%;
	transform: translate(-50%, 50px);
	width: calc(615 / 1440 * 100%);
	transition: all 0.6s ease;
	transition-delay: 1.2s;
	opacity: 0;
}

.kv.is-show .kv-image-02 {
	transform: translate(-50%, 0);
	opacity: 1;
}

.kv-image-02 img {
	width: 100%;
}

.kv-scroll {
	position: absolute;
	bottom: calc(50 / 1440 * 100%);
	left: 50px;
	width: 100px;
}

.kv-scroll-inner {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	z-index: 10;
	width: 100px;
	height: 100px;
	border-radius: 50%;
	background: rgba(77, 122, 255, 0.8);
	overflow: hidden;
}

.kv-scroll-inner::after,
.kv-scroll-line {
	position: absolute;
	top: 73px;
	left: 0;
	right: 0;
	z-index: 1;
	margin: 0 auto;
	width: 2px;
	height: 70px;
	animation: scroll-line 2s infinite ease;
}

.kv-scroll-inner::after {
	background: #fff;
	content: '';
}

.kv-scroll-line {
	background: #4D7AFF;
}

@keyframes scroll-line {
	0% {
		transform: scale(1, 0);
		transform-origin: 0 0;
	}
	
	50% {
		transform: scale(1, 1);
		transform-origin: 0 0;
	}
	51% {
		transform: scale(1, 1);
		transform-origin: 0 100%;
	}
	100% {
		transform: scale(1, 0);
		transform-origin: 0 100%;
	}
}

.kv-scroll-text {
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	color: #fff;
}


/* about ---------------------------------------*/
.about {
	padding: 136px 20px 120px;
	margin: 0 auto;
	background: url('../img/bg_about.png') no-repeat;
	background-position: top center;
	background-size: cover;
	max-width: 1440px;
	width: 100%;
}

.about-text {
	margin-top: 68px;
	font-size: 24px;
	font-weight: 700;
	line-height: calc(60 / 24);
	text-align: center;
	letter-spacing: 0.05em;
}


/* vision ---------------------------------------*/
.vision {
	padding: 100px 20px 84px;
	background: url('../img/bg_vision.jpg') no-repeat;
	background-position: center center;
	background-size: cover;
	width: 100%;
}

.vision .inner {
	position: relative;
}

.vision-list {
	margin-top: 70px;
}

.vision-list > li {
	padding: 54px 30px 50px;
	width: 100%;
	background: #fff;
	border-radius: 20px;
}

.vision-list > li + li {
	margin-top: 22px;
}

.vision-list-title {
	margin-bottom: 14px;
	font-size: 46px;
	font-weight: 900;
	line-height: 1;
	text-align: center;
}

.vision-list-lead {
	margin-bottom: 18px;
	font-size: 36px;
	font-weight: 900;
	line-height: 1.5;
	text-align: center;
	letter-spacing: 0.05em;
}

.vision-list-text {
	font-size: 17px;
	font-weight: 900;
	line-height: calc(32 / 17);
	text-align: center;
	letter-spacing: 0.05em;
}

.vision-list-valuelist {
	display: flex;
	gap: calc(30 / 900 * 100%);
	margin-top: 24px;
}

.vision-list-valuelist > li {
	width: calc(280 / 900 * 100%);
}

.vision-list-valuelist-num {
	display: flex;
	align-items: flex-end;
	gap: 5px;
	margin-bottom: 6px;
}

.vision-list-valuelist-num b {
	display: block;
	font-size: 42px;
	font-weight: 900;
	line-height: 1;
	color: #4D7AFF;
}

.vision-list-valuelist-num small {
	display: block;
	margin-bottom: 6px;
	font-size: 12px;
	font-weight: 900;
	line-height: 1;
	color: #4D7AFF;
}

.vision-list-valuelist-title {
	padding-bottom: 8px;
	margin-bottom: 16px;
	font-size: 20px;
	font-weight: 900;
	line-height: calc(32 / 20);
	letter-spacing: 0.05em;
	background-image: linear-gradient(to right, #42CABB 3px, transparent 3px);
	background-size: 7px 2px;
	background-repeat: repeat-x;
	background-position: left bottom;
}

.vision-list-valuelist-text {
	font-size: 16px;
	font-weight: 700;
	line-height: 2;
	text-align: justify;
	letter-spacing: 0.1em;
}

.vision-image-01 {
	position: absolute;
	top: 31%;
	left: max(calc(-164 / 1440 * 100vw), -164px);
	width: min(calc(330 / 1440 * 100vw), 330px);
}

.vision-image-01 img {
	width: 100%;
}

.vision-image-02 {
	position: absolute;
	top: 55.5%;
	right: max(calc(-200 / 1440 * 100vw), -116px);
	width: min(calc(330 / 1440 * 100vw), 330px);
}

.vision-image-02 img {
	width: 100%;
}


/* service ---------------------------------------*/
.service {
	padding: 96px 20px 114px;
	margin: 0 auto;
	background: url('../img/bg_service.png') no-repeat;
	background-position: top center;
	background-size: cover;
	max-width: 1440px;
	width: 100%;
}

.service-lead {
	margin: 48px auto 24px;
	font-size: 32px;
	font-weight: 900;
	line-height: calc(46 / 32);
	text-align: center;
}

.service-text {
	margin-bottom: 64px;
	font-size: 17px;
	font-weight: 900;
	line-height: calc(32 / 17);
	text-align: center;
	letter-spacing: 0.06em;
}

.service-list {

}

.service-list > li {
	display: flex;
	align-items: center;
	background: #fff;
	border-radius: 20px;
	margin-left: 1px;
	margin-right: 17px;
}

.service-list > li:nth-of-type(odd) {
	padding: 10px 26px 10px 30px;
	border: 2px solid #42CABB;
	box-shadow: 8px 10px 0 10px #42CABB;
}

.service-list > li:nth-of-type(even) {
	padding: 10px 34px 10px 40px;
	border: 2px solid #7BB7FB;
	box-shadow: 8px 10px 0 10px #7BB7FB;
}

.service-list > li + li {
	margin-top: 38px;
}

.service-list-image {
}

.service-list > li:nth-of-type(odd) .service-list-image {
	width: calc(250 / 882 * 100%);
	margin-right: calc(36 / 882 * 100%);
}

.service-list > li:nth-of-type(even) .service-list-image {
	width: calc(250 / 864 * 100%);
	margin-left: calc(24 / 864 * 100%);
}

.service-list-image img {
	width: 100%;
}

.service-list-summary {
	flex: 1;
}

.service-list > li:nth-of-type(odd) .service-list-image,
.service-list > li:nth-of-type(even) .service-list-summary {order: 1;}
.service-list > li:nth-of-type(even) .service-list-image,
.service-list > li:nth-of-type(odd) .service-list-summary {order: 2;}

.service-list-title {
	padding-bottom: 16px;
	margin-bottom: 18px;
	width: 100%;
	font-size: 24px;
	font-weight: 900;
	line-height: 1.2;
	background-size: 7px 2px;
	background-repeat: repeat-x;
	background-position: left bottom;
}

.service-list > li:nth-of-type(odd) .service-list-title {background-image: linear-gradient(to right, #42CABB 3px, transparent 3px);}
.service-list > li:nth-of-type(even) .service-list-title {background-image: linear-gradient(to right, #7BB7FB 3px, transparent 3px);}

.service-list-text {
	font-size: 16px;
	font-weight: 700;
	line-height: calc(28 / 16);
	letter-spacing: 0.05em;
}


/* company ---------------------------------------*/
.company {
	position: relative;
	padding: 60px 20px 150px;
	background: url('../img/bg_company.jpg') no-repeat;
	background-position: center center;
	background-size: cover;
	width: 100%;
}

.company-block {
	display: flex;
	gap: calc(26 / 960 * 100%);
}

.company-summary {
	position: relative;
	margin-top: 44px;
	padding-left: calc(12 / 960 * 100%);
	width: calc(414 / 960 * 100%);
}

.company-image {
	position: absolute;
	top: 120px;
	right: 0;
	width: min(calc(630 / 1440 * 100vw), 630px);
}

.company-image img {
	width: 100%;
}

.company-info {
	padding: 14px 48px;
	width: calc(520 / 960 * 100%);
	background: #fff;
	border-radius: 20px;
}

.company-info-list {
	display: flex;
	padding: 19px 8px;
}

.company-info-list + .company-info-list {
	background-image: linear-gradient(to right, rgba(35, 80, 78, 0.2) 3px, transparent 3px);
	background-size: 7px 2px;
	background-repeat: repeat-x;
	background-position: left top;
}

.company-info-list dt {
	width: 138px;
	font-size: 16px;
	font-weight: 900;
	line-height: calc(30 / 16);
}

.company-info-list dd {
	width: calc(100% - 138px);
	font-size: 16px;
	font-weight: 500;
	line-height: calc(30 / 16);
}

.company-logo {
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 100%;
	max-width: 1440px;
}

.company-logo img {
	width: 100%;
}


/* member ---------------------------------------*/
.member {
	padding: 92px 20px 50px;
	margin: 0 auto;
	background: url('../img/bg_member.png') no-repeat;
	background-position: center center;
	background-size: cover;
	max-width: 1440px;
	width: 100%;
}

.member-list {
	display: flex;
	flex-wrap: wrap;
	gap: 62px calc(40 / 960 * 100%);
	margin: 174px auto 68px;
}

.member-list > li {
	margin: 0 calc(10 / 960 * 100%);
	width: calc(440 / 960 * 100%);
}

.member-list-image {
	position: relative;
	margin-bottom: 42px;
}

.member-list-image::before {
	position: absolute;
	top: 17px;
	left: -10px;
	z-index: -1;
	width: calc(100% + 10px);
	height: 100%;
	background: #46DDCC;
	border-radius: 20px;
	content: '';
}

.member-list-image-inner {
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 10px -17px 0 0 #6CAFFB;
}

.member-list-image-inner img {
	width: 100%;
}

.member-list-position {
	margin-bottom: 6px;
	font-size: 20px;
	font-weight: 900;
	line-height: 1.5;
}

.member-list-title {
	margin-bottom: 10px;
}

.member-list-title b {
	font-size: 30px;
	font-weight: 900;
	line-height: 1.5;
}

.member-list-title small {
	margin-left: 16px;
	font-size: 20px;
	font-weight: 900;
	line-height: 1.2;
	letter-spacing: 0.03em;
	color: #4D7AFF;
}

.member-list-text {
	font-size: 14px;
	font-weight: 700;
	line-height: calc(24 / 14);
	letter-spacing: 0.05em;
}

.member-btn {
	text-align: center;
}


/* animation ---------------------------------------*/
.animation {
	transition: all 1.2s ease;
	transform:translate(0, 50px);
	opacity:0;
}

.animation.on {
	transform:translate(0, 0);
	opacity:1;
}

.animation.animation-above {
	transform:translate(0, -50px);
}

.animation.animation-above.on {
	transform:translate(0, -100px);
}



/* pc only */
@media screen and (min-width: 768px){
	.sp{display: none !important;}
	.spbr{display: none;}
}


/* small pc */
@media screen and (min-width: 768px) and (max-width: 1280px){
	.vision-image-01 {
		left: -40px;
	}

	.vision-image-02 {
		right: -60px;
	}
}

@media screen and (min-width: 768px) and (max-width: 1080px){
	.vision-image-01 {
		top: 35%;
		left: -10px;
	}

	.vision-image-02 {
		top: 59%;
		right: -20px;
	}
}

/* drawer menu */
@media screen and (max-width: 980px){
	/* header ---------------------------------------*/
	header {
		padding: 0;
	}

	.header-inner {
		height: 80px;
	}

	.header-logo {
		top: 28px;
		left: 20px;
		width: 214px;
	}

	#openmenu {
		display:block;
		width: 60px;
		height: 60px;
		background: #4D7AFF;
		border-radius: 50%;
		text-indent: -99em;
		overflow: hidden;
		position:fixed;
		right: 8px;
		top: 10px;
		z-index: 101;
		transition: all .25s ease;
	}

	#openmenu span {
		display: block;
		position: absolute;
		left: 21px;
		width: 18px;
		height: 2px;
		background: #fff;
		border-radius: 2px;
		content:'';
		transition: all .25s ease;
	}

	#openmenu span:nth-child(1) {top:23px;}
	#openmenu span:nth-child(2) {top:29px;}
	#openmenu span:nth-child(3) {top:35px;}

	#openmenu.is-open span:nth-child(1),
	#openmenu.is-open span:nth-child(3) {
		top:29px;
	}

	#openmenu.is-open span:nth-child(1) {transform:rotate(45deg);}
	#openmenu.is-open span:nth-child(3) {transform:rotate(-45deg);}

	#openmenu.is-open span:nth-child(2) {
		opacity: 0;
	}


	/* gnav ---------------------------------------*/
	.gnav {
		display: flex;
		flex-direction: column;
		background: url('../img/bg_drawer.jpg') no-repeat;
		background-position: center center;
		background-size: cover;
		overflow:auto;
		z-index:100;
		left: 0;
		top: 0;
		width:100%;
		max-width: unset;
		height: 100vh!important;
		padding: 174px 20px 36px;
		transition: all .25s ease;
		transform:translate3d(0, -100%, 0);
	}

	.gnav.is-active {
		transform:translate3d(0,0,0);
	}

	.gnav::before {
		position: absolute;
		top: 0;
		left: 50%;
		transform: translateX(-50%);
		z-index: 1;
		max-width: 390px;
		width: 100%;
		aspect-ratio: 390 / 137;
		background: url('../img/kv_logo_sp.png') no-repeat;
		background-size: contain;
		content: '';
	}

	.gnav-list {
		box-shadow: unset;
	}

	.gnav-list > li::after {
		position: absolute;
		top: 50%;
		right: 30px;
		transform: translateY(-50%) rotate(45deg);
		z-index: 1;
		width: 6px;
		height: 6px;
		border-top: solid 2px #4D7AFF;
		border-right: solid 2px #4D7AFF;
		content: '';
	}
	
	.gnav-list > li > a {
		padding: 18px 12px 10px;
	}
	
	.gnav-list > li > a > b {
		margin-bottom: -5px;
		font-size: 18px;
		color: #46DDCC;
	}
	
	.gnav-list > li.is-active > a > b {
		color: #46DDCC;
	}
	
	.gnav-list > li > a > b > small {
		display: inline-block;
		margin-top: -2px;
		font-size: 12px;
	}
	
	.gnav-list > li > a > span {
		font-size: 12px;
	}
	
	.gnav-list > li > a > span > small {
		font-size: 11px;
	}
	
	.gnav-list > li > a:hover > b {
		color: #46DDCC;
	}
	
	.gnav-contact {
		margin-top: 12px;
	}
	
	.gnav-contact .btn {
		padding: 25px 20px 23px;
		box-shadow: unset;
	}
	
	.gnav-contact .btn > b {
		font-size: 20px;
		margin-bottom: 2px;
	}
	
	.gnav-contact .btn > small {
		font-size: 14px;
	}
	
	.gnav-contact .btn .icon-arrow {
		right: 18px;
	}

	.gnav-copy {
		display: block;
		margin: auto auto 0;
	}

	.gnav-copy small {
		display: block;
		margin-top: 20px;
		font-size: 10px;
		font-weight: 700;
		line-height: 1;
	}

}

/* sp only */
@media screen and (max-width: 767px){

	/* common item ---------------------------------------*/

	.pc{display: none !important;}
	.pcbr{display: none;}

	a:hover{opacity: 1;}


	/* layout ---------------------------------------*/

	.footer-inner,
	.inner{
		min-width: 0;
		width: 100%;
	}


	/* layout ---------------------------------------*/
	.inner {
		max-width: unset;
		padding: unset;
	}
	

	/* icon ---------------------------------------*/
	.icon-arrow {
		width: 49px;
		height: 49px;
	}


	/* btn ---------------------------------------*/
	.btn {
		padding: 36px 20px 34px;
		max-width: unset;
	}

	.btn > b {
		margin-bottom: 4px;
		font-size: 32px;
	}

	.btn > small {
		font-size: 14px;
	}

	.btn .icon-arrow {
		right: 10px;
	}

	.btn:hover {
		background: #4D7AFF;
	}

	.btn:hover > b {
		color: #fff;
	}

	.btn:hover > small {
		color: #fff;
	}

	.btn:hover .icon-arrow {
		background: #fff;
	}


	/* fixedcopy ---------------------------------------*/
	.fixedcopy {
		bottom: 78px;
		right: -28px;
	}
	
	
	/* section-title ---------------------------------------*/
	.section-title b {
		margin-bottom: 8px;
		font-size: 40px;
		line-height: calc(46 / 40);
	}
	
	.section-title b small {
		display: none;
	}
	
	.section-title span {
		font-size: 12px;
	}
	
	
	/* kv ---------------------------------------*/
	.kv {
		background: url('../img/kv_bg_sp.jpg') no-repeat;
		background-position: center center;
		background-size: cover;
		width: 100%;
		height: unset;
		min-height: unset;
	}
	
	.kv-inner {
		padding: 68px 0 40px;
		max-width: unset;
	}
	
	.kv-logo {
		width: 100vw;
	}
	
	.kv-image-01 {
		position: unset;
		transform: unset;
		margin: 0 auto 1vw;
		width: calc(210 / 390 * 100vw);
	}
	
	.kv-title {
		padding-top: 0;
		margin: 0 auto 2vw;
		text-align: center;
	}

	.kv.is-show .kv-title span {
		clip-path: inset(-3vw -3vw -3vw -3vw);
	}

	.kv-title strong {
		margin-right: 0;
		font-size: calc(52 / 390 * 100vw);
		letter-spacing: -0.1em;
	}
	
	.kv-title strong.font-poppins {
		font-size: calc(67 / 390 * 100vw);
	}
	
	.kv-title b {
		margin-top: calc(-6 / 390 * 100vw);
		font-size: calc(24 / 390 * 100vw);
		vertical-align: middle;
	}
	
	.kv-title b.font-poppins {
		font-size: calc(40 / 390 * 100vw);
	}
	
	.kv-title .mr-6 {
		margin-right: calc(6 / 390 * 100vw);
	}
	
	.kv-title .mr-8 {
		margin-right: calc(8 / 390 * 100vw);
	}

	.kv-title .mt-m8-sp {
		margin-top: calc(-8 / 390 * 100vw);
	}

	.kv-title .mt-6-sp {
		margin-top: calc(6 / 390 * 100vw);
	}
	
	.kv-text {
		padding: 0;
		margin-bottom: 4vw;
		font-size: calc(14 / 390 * 100vw);
		line-height: calc(24 / 14);
		text-align: center;
		width: 100%;
	}

	.kv-text span {
		transition-delay: 0.7s;
	}
	
	.kv-image-02 {
		position: unset;
		transform: translate(0, 30px);
		margin: 0 auto;
		width: calc(265 / 390 * 100vw);
	}

	.kv.is-show .kv-image-02 {
		transform: translate(0, 0);
		opacity: 1;
	}

	.kv-scroll {
		bottom: 14px;
		left: 20px;
		width: 76px;
	}
	
	.kv-scroll-inner {
		width: 76px;
		height: 76px;
	}
	
	.kv-scroll-inner::after,
	.kv-scroll-line {
		top: 49px;
		height: 54px;
		animation: scroll-line 2s infinite ease;
	}

	.kv-scroll-text {
		font-size: 11px;
	}
	
	
	/* about ---------------------------------------*/
	.about {
		padding: 72px 20px 70px;
		background: url('../img/bg_about_sp.png') no-repeat;
		background-position: top center;
		background-size: cover;
		max-width: unset;
	}
	
	.about-text {
		margin-top: 46px;
		font-size: 18px;
		line-height: calc(38 / 18);
	}
	
	
	/* vision ---------------------------------------*/
	.vision {
		padding: 72px 20px 64px;
		background: url('../img/bg_vision_sp.jpg') no-repeat;
		background-position: center center;
		background-size: cover;
	}

	.vision-list {
		margin-top: 42px;
	}
	
	.vision-list > li {
		padding: 50px 16px 36px;
	}
	
	.vision-list > li + li {
		margin-top: unset;
	}

	.vision-list > li:nth-of-type(2) {
		margin-top: 74px;
		padding: 46px 20px;
	}
	.vision-list > li:nth-of-type(3) {
		margin-top: 62px;
		padding: 46px 20px 40px;
	}

	.vision-list-title {
		margin-bottom: 16px;
		font-size: 36px;
	}
	
	.vision-list-lead {
		margin-bottom: 14px;
		font-size: 20px;
		line-height: calc(26 / 20);
	}
	
	.vision-list-text {
		font-size: 14px;
		line-height: calc(26 / 14);
	}
	
	.vision-list-valuelist {
		display: block;
		margin-top: 20px;
	}
	
	.vision-list-valuelist > li {
		width: 100%;
	}

	.vision-list-valuelist > li {
		margin-top: 16px;
	}

	.vision-list-valuelist-num {
		justify-content: center;
		gap: 5px;
		margin-bottom: 4px;
	}
	
	.vision-list-valuelist-num b {
		font-size: 36px;
	}
	
	.vision-list-valuelist-num small {
		margin-bottom: 7px;
		font-size: 10px;
	}
	
	.vision-list-valuelist-title {
		padding-bottom: 7px;
		margin-bottom: 12px;
		font-size: 18px;
		line-height: calc(32 / 18);
		text-align: center;
	}
	
	.vision-list-valuelist-text {
		font-size: 14px;
		line-height: calc(24 / 14);
	}
	
	.vision-image-01 {
		top: 27%;
		left: -14px;
		width: 188px;
	}

	.vision-image-02 {
		top: 48.5%;
		right: -20px;
		width: 187px;
	}
	
	
	/* service ---------------------------------------*/
	.service {
		padding: 70px 20px;
		background: url('../img/bg_service_sp.png') no-repeat;
		background-position: top center;
		background-size: cover;
		max-width: unset;
	}
	
	.service-lead {
		margin: 34px auto 18px;
		font-size: 20px;
		line-height: calc(28 / 20);
	}
	
	.service-text {
		margin-bottom: 34px;
		font-size: 14px;
		line-height: calc(26 / 14);
	}
	
	.service-list > li {
		display: block;
		margin-left: 1px;
		margin-right: 9px;
	}
	
	.service-list > li:nth-of-type(odd) {
		padding: 16px 20px 16px;
		box-shadow: 4px 4px 0 5px #42CABB;
	}
	
	.service-list > li:nth-of-type(even) {
		padding: 16px 20px 16px;
		box-shadow: 4px 4px 0 5px #7BB7FB;
	}
	
	.service-list > li + li {
		margin-top: 20px;
	}
	
	.service-list > li:nth-of-type(odd) .service-list-image,
	.service-list > li:nth-of-type(even) .service-list-image {
		width: 192px;
		margin: 0 auto 6px;
	}
	
	.service-list-title {
		padding-bottom: 17px;
		margin-bottom: 5px;
		font-size: 20px;
		line-height: calc(24 / 20);
		text-align: center;
	}
	
	.service-list-text {
		font-size: 14px;
		line-height: calc(26 / 14);
	}
	
	
	/* company ---------------------------------------*/
	.company {
		padding: 70px 20px 152px;
		background: url('../img/bg_company_sp.jpg') no-repeat;
		background-position: center center;
		background-size: cover;
	}
	
	.company-block {
		display: block;
		gap: calc(26 / 960 * 100%);
	}
	
	.company-summary {
		position: relative;
		margin: 0 auto 10px;
		padding-left: 0;
		width: 100%;
	}
	
	.company-image {
		position: unset;
		width: min(calc(432 / 390 * 100vw), 432px);
		margin: -8px auto 0 calc(50vw - 20px - calc(min(calc(432 / 390 * 100vw), 432px) / 2));
	}
	
	.company-info {
		padding: 20px 20px;
		width: 100%;
	}
	
	.company-info-list {
		padding: 17px 0;
	}
	
	.company-info-list dt {
		width: 90px;
		font-size: 14px;
		line-height: calc(20 / 14);
	}
	
	.company-info-list dd {
		width: calc(100% - 90px);
		font-size: 14px;
		line-height: calc(20 / 14);
	}
	
	.company-logo {
		max-width: unset;
		margin: 0 calc(50% - 50vw);
	}
	

	/* member ---------------------------------------*/
	.member {
		padding: 70px 20px 40px;
		background: url('../img/bg_member_sp.png') no-repeat;
		background-position: center center;
		background-size: cover;
		max-width: unset;
	}
	
	.member-list {
		display: block;
		margin: 50px auto 34px;
	}
	
	.member-list > li {
		margin: 0;
		width: 100%;
	}

	.member-list > li + li {
		margin-top: 42px;
	}
	
	.member-list-image {
		margin: 0 calc(8 / 350 * 100%) 20px;
		width: calc(100% - 16px);
	}
	
	.member-list-image::before {
		top: 10px;
		left: -8px;
		width: calc(100% + 8px);
	}
	
	.member-list-image-inner {
		box-shadow: 8px -10px 0 0 #6CAFFB;
	}
	
	.member-list-position {
		margin-bottom: -4px;
		font-size: 14px;
		font-weight: 900;
		line-height: calc(30 / 14);
	}
	
	.member-list-title {
		margin-bottom: 4px;
	}
	
	.member-list-title b {
		font-size: 24px;
	}
	
	.member-list-title small {
		margin-left: 6px;
		font-size: 14px;
	}
	
	.member-list-text {

	}

	
	/* animation ---------------------------------------*/
	.animation.animation-above {
		transform:translate(0, 50px);
	}
	
	.animation.animation-above.on {
		transform:translate(0, 0);
	}







}




/* iphone5 iphoneSE用 */
@media screen and (max-width: 370px){

}