@charset "utf-8";

*,*::before,*::after{box-sizing:border-box;}
body,h1,h2,h3,h4,p,ul,ol,li,figure,figcaption,blockquote,dl,dd{margin:0;}
ul,ol{list-style:none;padding:0;}
a{color:inherit;text-decoration:inherit;text-decoration-skip-ink:auto;}
img,svg,video,iframe{vertical-align:middle;}
img,video{max-width:100%;}
img[height]{height:auto;}
input,button,textarea,select{font:inherit;}
button{-webkit-appearance:none;-moz-appearance:none;appearance:none;}
button{border:0;padding:0;background:none;}
small{font-size:inherit;}
sub{vertical-align:baseline;}
/*@media (prefers-reduced-motion:reduce){*{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;scroll-behavior:auto !important;}}*/
html {
	scroll-behavior: auto;
	-webkit-text-size-adjust: 100%;
}
body {
	overscroll-behavior: auto;
	color: #2e2e2e;
	font-size: 1em;
	line-height: 2;
	font-family: "Midashi Go MB31", sans-serif;
	font-weight: 500;
	letter-spacing: .06em;
	font-feature-settings: "palt";
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
body.is-fixed {
	position: fixed;
	width: 100%;
}
@media screen and (min-width: 768px) {
	.v-mb { display: none; }
}
@media screen and (max-width: 767px) {
	.v-dt { display: none; }
}
.isTouch a:focus,
.isTouch button:focus,
.isTouch *[tabindex] {
	outline: 0;
}

/**
 * mediaquery
 * common style (desktop/mobile 共通の style)
 * @media screen and (min-width: 480px) {} mobile には適用したくない style
 * @media screen and (min-width: 768px) {} desktop だけの style
 * @media screen and (min-width: 1200px) {} wide desktop style
 * @media screen and (max-width: 767px) {} desktop には適用したくない style
 * @media screen and (max-width: 479px) {} mobile だけの style
 * @media screen and (max-width: 360px) {} small mobile style
 * -------------------------------------------------- */
.l-main { z-index: 1; }
.l-footer { z-index: 2; }
.l-header { z-index: 3; }
.l-menu { z-index: 4; }

/**
 * header
 * ---------------------------------------- */
.l-header {
	display: flex;
	align-items: center;
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	margin: 0 auto;
	max-width: 1000px;
	height: 50px;
	padding-left: 24px;
}
.l-header::before {
	content: "";
	z-index: -1;
	position: absolute;
	top: 0;
	right: calc(50% - 50vw);
	bottom: 0;
	left: calc(50% - 50vw);
	background: white;
	box-shadow: 0 0 12px rgba(0,0,0,.1);
}
.hasScrollbar .l-header::before {
	right: calc(50% - 50vw + var(--scroll-bar-width) / 2);
	left: calc(50% - 50vw + var(--scroll-bar-width) / 2);
}
.l-header .logo {
	font-size: 10px;
	white-space: nowrap;
	letter-spacing: 0;
}
.l-header .logo img {
	width: 88px;
	margin-right: 1em;
}
@media screen and (max-width: 1024px) {
	.l-header {
		padding-right: 12px;
	}
}
@media screen and (max-width: 767px) {
	.l-header {
		padding-right: 24px;
		justify-content: center;
	}
}
/* motion */
.l-header.is-active {
	position: fixed;
}
.l-header.is-anim.is-active {
	animation: headerAppear .4s cubic-bezier(.3,1,.7,1);
}
.l-header.is-anim.is-hide {
	animation: headerHide .1s cubic-bezier(.3,1,.7,1);
}
@keyframes headerAppear {
	from { transform: translateY(-100%); }
}
@keyframes headerHide {
	to { transform: translateY(-100%); }
}


/* :::::: nav :::::: */
.l-header .nav_link {
	display: flex;
	height: 100%;
	margin-left: 48px;
	font-size: 14px;
	line-height: 1.2;
}
.l-header .nav_link > li {
	position: relative;
}
.l-header .nav_link > li + li::before {
	content: "";
	position: absolute;
	top: calc(50% - .7em);
	left: 0;
	height: 1.4em;
	border-left: 1px solid #c4c4c4;
}
.l-header .nav_link > li > a,
.l-header .nav_link > li > span {
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	height: 100%;
	padding: 0 24px;
}
.l-header .nav_link .ar {
	width: 7px;
	margin-left: 8px;
	fill: #7a7a7a;
}
.l-header .pull .tail {
	position: absolute;
	top: -10px;
	left: 2.8em;
	width: 12px;
	height: 10px;
	fill: #00abe4;
}
.l-header .nav_anchor {
	position: absolute;
	top: 100%;
	left: 1.5em;
	width: 216px;
	padding: 24px 18px 24px 32px;
	color: #fff;
	font-size: 12px;
	background: #00abe4;
}
.l-header .nav_anchor::before {
	content: "";
	position: absolute;
	top: 20px;
	left: 20px;
	bottom: 20px;
	border-left: 1px solid #fff;
}
.l-header .nav_anchor a {
	display: inline-block;
	padding: .5em 8px;
}
.l-header .nav_anchor .ar {
	position: relative;
	top: -.2em;
	fill: currentcolor;
}
@media screen and (max-width: 1024px) {
	.l-header .nav_link {
		margin-left: auto;
		font-size: 12px;
	}
	.l-header .nav_link > li > a,
	.l-header .nav_link > li > span {
		padding: 0 12px;
	}
}
@media screen and (max-width: 767px) {
	.l-header .nav_link { display: none; }
}
/* motion */
.l-header .nav_link a:not(.head) {
	transition: opacity .2s;
}
.l-header .pull .tail,
.l-header .pull .nav_anchor {
	transition: opacity .2s, transform .2s cubic-bezier(.3,1,.7,1);
}
.l-header .pull .head {
	transition: color .2s;
}
.l-header .pull .head .ar {
	transition: fill .2s, opacity .2s;
}
.l-header .nav_link a:not(.head):hover {
	opacity: .5;
}
.l-header .pull .tail,
.l-header .pull .nav_anchor {
	pointer-events: none;
	opacity: 0;
	transform: translateY(100%);
}
.l-header .pull .nav_anchor {
	transform: translateY(-8px);
}
.l-header .pull:hover .tail,
.l-header .pull:focus-within .tail,
.l-header .pull:hover .nav_anchor,
.l-header .pull:focus-within .nav_anchor {
	pointer-events: auto;
	opacity: 1;
	transform: none;
	transition-duration: .4s;
}
.l-header .pull:hover .head {
	color: #00abe4;
}
.l-header .pull:hover .head .ar {
	fill: #00abe4;
}

/* :::::: menu :::::: */
.l-header .menu {
	cursor: pointer;
	position: absolute;
	top: 4px;
	right: 4px;
	width: 40px;
	height: 40px;
	font-size: 10px;
}
.l-header .menu {
	fill: none;
	stroke: currentcolor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
}
.l-header .menu.is-active {
	opacity: 0;
	transform: scale(.5);
}
.l-header .menu.is-anim {
	transition: opacity .2s, transform .2s cubic-bezier(.3,1,.7,1);
}
.l-header .menu.is-anim.is-active {
	transition-duration: .4s;
}
@media screen and (min-width: 768px) {
	.l-header .menu { display: none; }
}


/**
 * main
 * ---------------------------------------- */
.l-main {
	overflow: hidden;
	position: relative;
	padding: 50px 32px 0;
}
.tab_contents {
	overflow: hidden;
}
@media screen and (max-width: 479px) {
	.l-main {
		padding-right: 16px;
		padding-left: 16px;
	}
}


/**
 * footer
 * ---------------------------------------- */
.l-footer {
	display: grid;
	position: relative;
	max-width: calc(960px + 48px);
	margin: 0 auto;
	padding: 80px 24px 24px;
	border-image: linear-gradient(#f3f3f3, #f3f3f3) 0 fill / 0 / 0 50vw;
	text-align: center;
}
.l-footer .pagetop {
	right: 80px;
	padding: 80px 0 24px;
	font-size: 11px;
}
.l-footer .pagetop:not(.is-sticky) {
	right: calc(50% - 50vw + 80px - var(--scroll-bar-width, 0px) * .5);
}
.l-footer .pagetop::before {
	content: "";
	position: absolute;
	top: 0;
	left: calc(50% - 8px);
	width: 12px;
	height: 80px;
	fill: none;
	stroke: #000;
	stroke-miterlimit: 10;
	background: center top / 12px 80px no-repeat;
	background-image: url(../img/pagetop.svg);
}
/* motion */
.l-footer .pagetop:not(.is-sticky) {
	position: absolute;
	top: 40px;
}
.l-footer .pagetop.is-sticky {
	position: fixed;
	top: auto;
	bottom: 0;
}
.l-footer .pagetop:not(.is-active),
.l-footer .pagetop.is-hide {
	opacity: 0;
	transform: translateY(24px);
	pointer-events: none;
}
.l-footer .pagetop.is-anim.is-active {
	animation: pagetopAppear .4s cubic-bezier(.3,1,.7,1);
}
.l-footer .pagetop.is-anim.is-hide {
	animation: pagetopHide .1s cubic-bezier(.3,1,.7,1);
}
@keyframes pagetopAppear {
	from { transform: translateY(24px); opacity: 0; }
}
@keyframes pagetopHide {
	from { transform: none; opacity: 1; }
}
@media screen and (max-width: 1199px) {
	.l-footer .pagetop {
		right: 40px;
	}
	.l-footer .pagetop:not(.is-sticky) {
		right: calc(50% - 50vw + 40px - var(--scroll-bar-width, 0px) * .5);
	}
}
@media screen and (min-width: 1025px) {
	.l-footer {
		grid-template-columns: 216px 1fr;
	}
	.l-footer .privacy_mark {
		margin-top: 16px;
	}
	.l-footer .nav_link {
		grid-area: 1 / 2 / 3 / 3;
	}
	.l-footer .external_link,
	.l-footer .footer_link,
	.l-footer .copyright {
		grid-column: span 2;
	}
}
@media screen and (max-width: 1024px) {
	.l-footer::before {
		padding-top: 48px;
	}
	.l-footer .pagetop {
		padding-top: 40px;
	}
	.l-footer .pagetop::before {
		height: 40px;
	}
	.l-footer .privacy_mark,
	.l-footer .footer_link,
	.l-footer .copyright {
		order: 1;
	}
}
@media screen and (max-width: 767px) {
	.l-footer {
		padding-top: 40px;
	}
	.l-footer .nav_link {
		max-width: 375px;
		margin-inline: auto;
	}
}
@media screen and (max-width: 479px) {
	.l-footer .pagetop {
		top: 24px;
		right: 24px;
	}
	.l-footer .logo,
	.l-footer .nav_link {
		margin-inline: -8px;
	}
	.l-footer .pagetop:not(.is-sticky) {
		top: 24px;
		right: calc(50% - 50vw + 24px - var(--scroll-bar-width, 0px) * .5);
	}
}
@media screen and (max-width: 360px) {
	.l-footer {
		padding-right: 16px;
		padding-left: 16px;
	}
	.l-footer .pagetop {
		right: 16px;
	}
	.l-footer .pagetop:not(.is-sticky) {
		right: calc(50% - 50vw + 16px - var(--scroll-bar-width, 0px) * .5);
	}
}


/* :::::: internal :::::: */
.l-footer .logo {
	flex-basis: 216px;
	font-size: 15px;
}
.l-footer .logo a {
	display: inline-block;
}
.l-footer .nav_link {
	flex-grow: 1;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	font-size: 15px;
	line-height: 1.2;
	text-align: left;
}
.l-footer .nav_link a {
	display: inline-block;
	padding: .5em 8px;
	padding-left: 16px;
	text-indent: -8px;
}
.l-footer .nav_link > li > a {
	color: #00abe4;
	font-weight: 700;
	letter-spacing: .4em;
}
.l-footer .nav_link > .menu_vision > a {
	letter-spacing: .2em;
}
.l-footer .nav_link a::before {
	content: "";
	display: inline-block;
	position: relative;
	top: -.1em;
	width: 24px;
	margin-right: 8px;
	border-top: 1px solid #bdbdbd;
	vertical-align: middle;
}
.l-footer .nav_anchor {
	padding-left: 32px;
	font-size: 11px;
}
.l-footer .nav_anchor a::before {
	width: 4px;
	height: 4px;
	margin-right: 4px;
	border-radius: 4px;
	background: #00abe4;
}
@media screen and (max-width: 1024px) {
	.l-footer .nav_link {
		margin-top: 32px;
	}
}
@media screen and (max-width: 767px) {
	.l-footer .nav_link > li {
		flex-basis: 50%;
	}
	.l-footer .nav_link > li:nth-child(n+3) {
		margin-top: 24px;
	}
}
@media screen and (max-width: 479px) {
	.l-footer .logo {
		width: 176px;
	}
	.l-footer .logo a {
		padding: 0 8px;
	}
	.l-footer .nav_link > li:nth-child(n+3) {
		margin-top: 16px;
	}
	.l-footer .nav_link > li > a {
		letter-spacing: .2em;
	}
	.l-footer .nav_link > .menu_vision > a {
		letter-spacing: .1em;
	}
	.l-footer .nav_link > li > a::before {
		width: 16px;
	}
	.l-footer .nav_anchor {
		padding-left: 24px;
	}
}
@media screen and (max-width: 360px) {
	.l-footer .nav_link {
		font-size: 14px;
	}
}

/* :::::: privacy mark :::::: */
.l-footer .privacy_mark figure {
	display: flex;
	justify-content: center;
	column-gap: 12px;
}
.l-footer .privacy_mark img {
	width: auto;
	height: 56px;
}
.l-footer .privacy_mark p {
	margin-top: .6em;
	font-size: 8px;
	font-family: "Noto Sans JP", sans-serif;
	white-space: nowrap;
	text-indent: 1em;
}
@media screen and (max-width: 1023px) {
	.l-footer .privacy_mark {
		margin-top: 48px;
	}
}

/* :::::: external :::::: */
.l-footer .external_link {
	display: flex;
	justify-content: center;
	column-gap: 32px;
	margin-top: 32px;
}
.l-footer .external_link li {
	flex-basis: 224px;
}
.l-footer .external_link .c-button {
	width: 100%;
	min-height: 56px;
	font-size: 14px;
}
@media screen and (max-width: 767px) {
	.l-footer .external_link {
		column-gap: 24px;
		margin-top: 24px;
	}
}
@media screen and (max-width: 479px) {
	.l-footer .external_link {
		column-gap: 12px;
	}
	.l-footer .external_link li {
		flex-basis: calc(50% - 6px);
	}
	.l-footer .external_link .c-button {
		font-size: 11px;
	}
}
@media screen and (max-width: 360px) {
	.l-footer .external_link {
		flex-direction: column;
		row-gap: 12px;
	}
	.l-footer .external_link .c-button {
		max-width: 240px;
	}
}

/* :::::: other :::::: */
.l-footer .footer_link {
	display: flex;
	justify-content: center;
	column-gap: 48px;
	font-size: 11px;
	margin-top: 48px;
}
.l-footer .footer_link li {
	position: relative;
}
.l-footer .footer_link li + li::before {
	content: "";
	position: absolute;
	top: calc(50% - .5em);
	left: -24px;
	height: 1em;
	border-left: 1px solid #bdbdbd;
}
.l-footer .footer_link a {
	padding: 8px;
}
.l-footer .copyright {
	margin-top: 40px;
	font-size: 10px;
}
@media screen and (max-width: 1023px) {
	.l-footer .footer_link {
		margin-top: 24px;
	}
}
@media screen and (max-width: 479px) {
	.l-footer .footer_link {
		column-gap: 24px;
	}
	.l-footer .footer_link li + li::before {
		left: -12px;
	}
}
@media screen and (max-width: 360px) {
	.l-footer .footer_link {
		column-gap: 16px;
		font-size: 10px;
	}
	.l-footer .footer_link li + li::before {
		left: -8px;
	}
}
@media (hover: hover) {
	.l-footer .pagetop:hover,
	.l-footer .nav_link a:hover,
	.l-footer .footer_link a:hover {
		opacity: .5;
	}
	.l-footer .pagetop,
	.l-footer .nav_link a,
	.l-footer .footer_link a {
		transition: opacity .2s;
	}
	.l-footer .external_link .c-button:hover {
		color: #00abe4;
		background: white;
	}
	.l-footer .external_link .c-button {
		transition: color .2s, background .2s;
	}
}


/**
 * nav
 * ---------------------------------------- */
.l-menu,
.l-menu .overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.l-menu {
	overflow: auto;
	-webkit-overflow-scrolling: touch;
	padding: 40px 24px;
}
.l-menu .overlay {
	background: #fff;
}
.l-menu .close {
	cursor: pointer;
	position: fixed;
	top: 4px;
	right: 4px;
}
.l-menu .close {
	fill: none;
	stroke: currentcolor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
}
.l-menu .container {
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;
	text-align: center;
}
.l-menu .logo {
	font-size: 12px;
}

.l-menu .nav_link {
	justify-content: center;
	font-size: 18px;
	margin-top: 24px;
	line-height: 1.2;
	text-align: left;
}
.l-menu .nav_link a,
.l-menu .nav_link button {
	cursor: pointer;
	display: inline-block;
	padding: .5em 8px;
}
.l-menu .nav_link > li {
	padding-bottom: 16px;
	border-top: 1px solid #bdbdbd;
}
.l-menu .nav_link > .menu_recruit,
.l-menu .nav_link > .menu_contact {
	padding-bottom: 0;
}
.l-menu .nav_link > li > button {
	color: #00abe4;
}
.l-menu .nav_link > li > a,
.l-menu .nav_link > li > button {
	width: 100%;
	padding: 25px 24px;
	letter-spacing: .4em;
	text-align: left;
}
.l-menu .nav_link > .menu_vision > a {
	letter-spacing: .2em;
}
.l-menu .nav_link .ar {
	position: relative;
	top: -.1em;
	width: 7px;
	height: auto;
	margin-left: 7px;
	fill: currentcolor;
}
.l-menu .nav_anchor {
	margin-top: -16px;
	margin-left: 16px;
	padding: 0 .8em;
	border-left: 1px solid #bdbdbd;
	font-size: 14px;
}
/* effect */
.l-menu:not(.is-active) {
	pointer-events: none;
}
.l-menu .overlay:not(.is-active),
.l-menu .close:not(.is-active),
.l-menu:not(.is-active) .container {
	opacity: 0;
}
.l-menu .close:not(.is-active) {
	transform: scale(.5);
}
.l-menu .overlay:not(.is-active) {
	transform: translateX(40px);
}
.l-menu .overlay.is-anim:not(.is-active) {
	transition: opacity .4s, transform .4s cubic-bezier(.3,1,.7,1);
}
.l-menu .overlay.is-anim,
.l-menu .close.is-anim,
.l-menu.is-anim .container {
	transition: opacity .4s, transform .4s cubic-bezier(.3,1,.7,1);
}
.l-menu.is-anim.is-active .container { transition-delay: .1s; }
.l-menu.is-anim:not(.is-active) .container { transition-duration: .3s; }
.l-menu .close.is-anim.is-active { transition-delay: .2s; }
.l-menu .close.is-anim:not(.is-active) { transition-duration: .3s; }
@media (hover: hover) {
	.l-menu .nav_link a {
		transition: opacity .2s;
	}
	.l-menu .nav_link a:hover {
		opacity: .5;
	}
}


/**
 * javascript
 * -------------------------------------------------- */
.svg-parts,
.visuallyhidden {
	position: absolute;
	top: 0;
	left: 0;
	clip: rect(0 0 0 0);
	overflow: hidden;
	width: 1px;
	height: 1px;
}
.js-holder {
	display: none;
}
.js-forfont {
	font-family: "Midashi Go MB31", sans-serif;
}

/* accordion UI */
.js-accContent {
	overflow: hidden;
}
.js-accContent.is-anim {
	transition: opacity .4s, height .4s cubic-bezier(.3,1,.7,1);
	will-change: opacity, height;
	backface-visibility: hidden;
}
.js-accToggle.is-anim .ar {
	transition: transform .4s .2s cubic-bezier(.3,1,.7,1);
	will-change: transform;
	backface-visibility: hidden;
}
.js-accContent:not(.is-active) {
	pointer-events: none;
	opacity: 0;
}
.js-accToggle.is-active .ar {
	transform: rotateX(-180deg);
}

/* transformScroll */
.js-sc-slip {
	will-change: transform;
}
.js-sc-slip {
	backface-visibility: hidden;
}

/* inview */
.js-inview:not(.is-inview) {
	opacity: 0;
	transform: translateY(24px);
}
.js-inview.is-anim {
	transition: opacity 1s, transform 1s cubic-bezier(.3,1,.7,1);
}

/* lazy */
img[data-src]:not(.is-loaded) {
	opacity: 0;
}
img[data-src].is-anim {
	transition: opacity .2s;
}

/*! Flickity v2.3.0
https://flickity.metafizzy.co
---------------------------------------------- */
.flickity-enabled{position:relative}.flickity-enabled:focus{outline:0}.flickity-viewport{overflow:hidden;position:relative;height:100%}.flickity-slider{position:absolute;width:100%;height:100%}.flickity-enabled.is-draggable{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.flickity-enabled.is-draggable .flickity-viewport{cursor:move;cursor:-webkit-grab;cursor:grab}.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down{cursor:-webkit-grabbing;cursor:grabbing}.flickity-button{position:absolute;background:hsla(0,0%,100%,.75);border:none;color:#333}.flickity-button:hover{background:#fff;cursor:pointer}.flickity-button:focus{outline:0;box-shadow:0 0 0 5px #19f}.flickity-button:active{opacity:.6}.flickity-button:disabled{opacity:.3;cursor:auto;pointer-events:none}.flickity-button-icon{fill:currentColor}.flickity-prev-next-button{top:50%;width:44px;height:44px;border-radius:50%;transform:translateY(-50%)}.flickity-prev-next-button.previous{left:10px}.flickity-prev-next-button.next{right:10px}.flickity-rtl .flickity-prev-next-button.previous{left:auto;right:10px}.flickity-rtl .flickity-prev-next-button.next{right:auto;left:10px}.flickity-prev-next-button .flickity-button-icon{position:absolute;left:20%;top:20%;width:60%;height:60%}.flickity-page-dots{position:absolute;width:100%;bottom:-25px;padding:0;margin:0;list-style:none;text-align:center;line-height:1}.flickity-rtl .flickity-page-dots{direction:rtl}.flickity-page-dots .dot{display:inline-block;width:10px;height:10px;margin:0 8px;background:#333;border-radius:50%;opacity:.25;cursor:pointer}.flickity-page-dots .dot.is-selected{opacity:1}