@charset "UTF-8";

/* !Base -------------------------------------------------------------- */
:root {
  --blue: #008add;
  --dblue: #0079c1;
  --vblue: #3030c0;
  --gray: #808080;
  --lgray: #b4b4b4;
  --dgray: #424242;
  --black: #181b19;
  --green: #0ca779;
  --pink: #d9589e;
}
a {	color: inherit; text-decoration: none; }
a:hover { color: inherit; text-decoration: none;}
.detail a {	color: #3030c0; font-weight: 700; border-bottom: 1px solid; }
.detail a:hover,
a.underline { border-bottom: 1px solid; }
a.underline:hover {  }
a.white:hover { color: #fff; }
html { 
	font-size: 62.5%; overflow-y: scroll;
}
body {
	font-size: 16px;
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight: 500;
	font-style: normal;
	letter-spacing: 0;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	line-height: 2;
	color: #000;
	background: #f3f6f4;
}
.noto {
	font-family: "Noto Sans JP", sans-serif;
}
.oswald {
	font-family: "Oswald", sans-serif;
	font-optical-sizing: auto;
	font-weight: 500;
	font-style: normal;
}
.inter {
	font-family: "Inter", sans-serif;
	font-optical-sizing: auto;
	font-weight: 800;
	font-style: normal;
	letter-spacing: 0.05em;
}
.serif {
	font-family: "Noto Serif JP", serif;
	font-optical-sizing: auto;
	font-weight: 600;
	font-style: normal;
}
.bold {
	font-weight: 700;
}
.semibold {
	font-weight: 600;
}
.medium {
	font-weight: 500;
}
.normal {
	font-weight: 400;
}
p { padding: 1em 0; }
img { max-width: 100%; height: auto; }
.taL { text-align: left   !important;}
.taC { text-align: center !important;}
.taR { text-align: right  !important;}
.marker { background:linear-gradient(transparent 60%, #FCFAD8 60%, #FCFAD8 100%, #fff 100%);}
.white { color: #fff; }
.black { color: #var(--black); }
.black2 { color: 000; }
.gray { color: var(--gray); }
.lgray { color: var(--lgray); }
.dgray { color: var(--dgray); }
.blue { color: var(--blue); }
.vblue { color: var(--vblue); }
.green { color: var(--green); }
.pink { color: var(--pink); }
.red { color: #d6002d; }
.orange { color: #f38900; }
.bg_white { background: #fff; }
.bg_black { background: var(--black); }
.bg_blue { background: var(--blue); }
.bg_vblue { background: var(--vblue); }
.bg_lgray { background: #f3f6f4; }
.bg_lbgray { background: #dee8e7; }
.bg_green { background: var(--green); }
.bg_pink { background: var(--pink); }
.shadow { box-shadow: 3px 2px 16px rgba(0,0,0,.15); }
.br50 { border-radius: 2em; }
.br12 { border-radius: 12px; }
.br10 { border-radius: 10px; }
h1,.h1,h2,h3,h4,h5 { line-height: 1.4; font-weight: 700; padding: 0; }
.fz120 { font-size: 120px; }
.fz100 { font-size: 100px; }
.fz80 { font-size: 80px; }
.fz68 { font-size: 68px; }
.fz50 { font-size: 50px; }
.fz47 { font-size: 47px; }
.fz45 { font-size: 45px; }
.fz43 { font-size: 43px; }
.fz42 { font-size: 42px; }
.fz40 { font-size: 40px; }
.fz39 { font-size: 39px; }
.fz36 { font-size: 36px; }
.fz35 { font-size: 35px; }
.fz32 { font-size: 32px; }
.fz30 { font-size: 30px; }
.fz29 { font-size: 29px; }
.fz28 { font-size: 28px; }
.fz27 { font-size: 27px; }
.fz26 { font-size: 26px; }
.fz25 { font-size: 25px; }
.fz24 { font-size: 24px; }
.fz23 { font-size: 23px; }
.fz22 { font-size: 22px; }
.fz20 { font-size: 20px; }
.fz19 { font-size: 19px; }
.fz18 { font-size: 18px; }
.fz17 { font-size: 17px; }
.fz16 { font-size: 16px; }
.fz15 { font-size: 15px; }
.fz14 { font-size: 14px; }
.h1 { font-size: 58px; }
h2 { font-size: 45px; }
.home h2 { font-size: 20px; }
.detail h1 { font-size: 32px; }
h3 { font-size: 30px; }
h4,h5,.detail h2 { font-size: 25px; }
strong { font-weight: 700; }
.lh25 {line-height:2.5;}
.lh24 {line-height:2.4;}
.lh23 {line-height:2.3;}
.lh22 {line-height:2.2;}
.lh21 {line-height:2.1;}
.lh20 {line-height:2.0;}
.lh19 {line-height:1.9;}
.lh18 {line-height:1.8;}
.lh17 {line-height:1.7;}
.lh16 {line-height:1.6;}
.lh15 {line-height:1.5;}
.lh14 {line-height:1.4;}
.lh13 {line-height:1.3;}
.lh12 {line-height:1.2;}
.lh11 {line-height:1.1;}
.lh10 {line-height:1;}
.ls00 {letter-spacing:0;}
.ls002 {letter-spacing:0.02em;}
.ls003 {letter-spacing:0.03em;}
.ls004 {letter-spacing:0.04em;}
.ls005 {letter-spacing:0.05em;}
.ls008 {letter-spacing:0.08em;}
.ls01 {letter-spacing:0.1em;}
.ls02 {letter-spacing:0.2em;}
.ls03 {letter-spacing:0.3em;}
.ls04 {letter-spacing:0.4em;}
figcaption { line-height: 1.8; margin-top: 0.7em; }
.r_over { transition: all 0.2s;}
.r_over:hover { filter: brightness(110%);}
.hdn { display: none; }
@media screen and (max-width: 1920px) {
}
@media screen and (max-width: 1379px) {
body { font-size: 1.16vw; }
.fz120 { font-size: 8.702vw; }
.fz100 { font-size: 7.252vw; }
.fz80 { font-size: 5.801vw; }
.fz68 { font-size: 4.931vw; }
.fz50 { font-size: 3.626vw; }
.fz47 { font-size: 3.408vw; }
.fz45 { font-size: 3.263vw; }
.fz43 { font-size: 3.118vw; }
.fz42 { font-size: 3.046vw; }
.fz40 { font-size: 2.901vw; }
.fz39 { font-size: 2.828vw; }
.fz36 { font-size: 2.611vw; }
.fz35 { font-size: 2.538vw; }
.fz32 { font-size: 2.321vw; }
.fz30 { font-size: 2.175vw; }
.fz29 { font-size: 2.103vw; }
.fz28 { font-size: 2.03vw; }
.fz27 { font-size: 1.958vw; }
.fz26 { font-size: 1.885vw; }
.fz25 { font-size: 1.813vw; }
.fz24 { font-size: 1.74vw; }
.fz23 { font-size: 1.668vw; }
.fz22 { font-size: 1.595vw; }
.fz20 { font-size: 1.45vw; }
.fz19 { font-size: 1.378vw; }
.fz18 { font-size: 1.305vw; }
.fz17 { font-size: 1.233vw; }
.fz16 { font-size: 1.16vw; }
.fz15 { font-size: 1.088vw; }
.fz14 { font-size: 1.015vw; }
.h1 { font-size: 4.206vw; }
h2 { font-size: 3.263vw; }
.home h2 { font-size: 1.45vw; }
.detail h1 { font-size: 2.321vw; }
h3 { font-size: 2.175vw; }
h4,h5,.detail h2 { font-size: 1.813vw; }
}
@media screen and (max-width: 1024px) {
body { font-size: 1.563vw; }
.fz120 { font-size: 9vw; }
.fz100 { font-size: 7.5vw; }
.fz80 { font-size: 7vw; }
.fz68 { font-size: 5.5vw; }
.fz50 { font-size: 4.883vw; }
.fz47 { font-size: 3.5vw; }
.fz45 { font-size: 4vw; }
.fz43 { font-size: 4.199vw; }
.fz42 { font-size: 4.102vw; }
.fz40 { font-size: 3.906vw; }
.dl_history .fz40 { font-size: 2.8vw; }
.fz39 { font-size: 3.809vw; }
.voice .fz39 { font-size: 2.8vw; }
.fz36 { font-size: 3.516vw; }
.fz35 { font-size: 3.418vw; }
.company .fz35 { font-size: 2.8vw; }
.voice .fz35 { font-size: 2.8vw; }
.fz32 { font-size: 3.125vw; }
.fz30 { font-size: 2.93vw; }
.fz29 { font-size: 2.832vw; }
.fz28 { font-size: 2.734vw; }
.fz27 { font-size: 2.637vw; }
.fz26 { font-size: 2.539vw; }
.fz25 { font-size: 2.441vw; }
.fz24 { font-size: 2.344vw; }
.fz23 { font-size: 2.246vw; }
.voice .fz23 { font-size: 2vw; }
.fz22 { font-size: 2.148vw; }
.fz20 { font-size: 1.953vw; }
.fz19 { font-size: 1.855vw; }
.fz18 { font-size: 1.758vw; }
.voice-title.fz18 { font-size: 1.65vw; }
.fz17 { font-size: 1.66vw; }
.fz16 { font-size: 1.563vw; }
.fz15 { font-size: 1.465vw; }
.fz14 { font-size: 1.367vw; }
.h1 { font-size: 5vw; }
h2 { font-size: 4.395vw; }
.home h2 { font-size: 1.953vw; }
.detail h1 { font-size: 3.125vw; }
h3 { font-size: 2.93vw; }
h4,h5,.detail h2 { font-size: 2.441vw; }
.tab-taC { text-align: center !important;}
}
@media screen and (max-width: 540px) { /*450px*/
body { font-size: 3.7vw; line-height: 1.8; }
.fz120 { font-size: 13.3vw; }
.fz100 { font-size: 13.3vw; }
.fz80 { font-size: 9.3vw; }
.work .fz80 { font-size: 10vw; }
.fz68 { font-size: 7.3vw; }
.work .fz68 { font-size: 9vw; }
.fz50 { font-size: 7vw; }
.fz47 { font-size: 7vw; }
.fz45 { font-size: 6vw; }
.recruit .fz45 { font-size: 7vw; }
.fz43 { font-size: 6vw; }
.fz42 { font-size: 6vw; }
.fz40 { font-size: 5.5vw; }
.dl_history .fz40 { font-size: 3.6vw; }
.fz39 { font-size: 5.2vw; }
.voice .fz39 { font-size: 5.1vw; }
.fz36 { font-size: 5vw; }
.fz35 { font-size: 5vw; }
.company .fz35 { font-size: 4.8vw; }
.voice .fz35 { font-size: 4.3vw; }
.fz32 { font-size: 4.3vw; }
.fz30 { font-size: 4.2vw; }
.fz29 { font-size: 4.2vw; }
.recruit .fz29 { font-size: 4vw; }
.fz28 { font-size: 4.1vw; }
.fz27 { font-size: 4.1vw; }
.fz26 { font-size: 4vw; }
.fz25 { font-size: 3.9vw; }
.fz24 { font-size: 3.9vw; }
.fz23 { font-size: 3.9vw; }
.voice .fz23 { font-size: 3.8vw; }
.fz22 { font-size: 3.8vw; }
.voice .fz22 { font-size: 4.2vw; }
.fz20 { font-size: 3.8vw; }
.fz20-2 { font-size: 3.7vw; }
.ul_dot.fz20,
.ul_dot_pink.fz20 { font-size: 3.6vw; }
.fz19 { font-size: 3.8vw; }
.fz18 { font-size: 3.7vw; }
.voice-title.fz18 { font-size: 3.1vw; }
.dl_history.fz18 { font-size: 3.2vw; }
.fz17 { font-size: 3.7vw; }
.fz16 { font-size: 3.7vw; }
.fz15 { font-size: 2.6vw; }
.fz14 { font-size: 2.6vw; }
.h1 { font-size: 8vw; }
h2 { font-size: 7.05vw; }
.home h2 { font-size: 3.2vw; }
.detail h1 { font-size: 6vw; }
h3 { font-size: 5.3vw; }
h3.fz27 { font-size: 5vw; }
h4,h5,.detail h2 { font-size: 5vw; }
.sp-taC { text-align: center !important;}
}
.sp,
.pro,
.tab,
.protabonly {
	display: none;
}
@media screen and (max-width: 1024px) {
	.pc {
		display: none;
	}
	.pro,
	.protabonly {
		display: block;
	}
}
@media screen and (max-width: 820px) {
	.pcpro,
	.notabonly {
		display: none;
	}
	.tab {
		display: block;
	}
}
@media screen and (max-width: 540px) {
	.sp,
	.notabonly {
		display: block;
	}
	.nosp,
	.protabonly {
		display: none !important;
	}
}
.dib { display: inline-block; }
.ofh { overflow: hidden; }


/*ナビゲーション部分*/

.menu { 
	background-color: #3c3c3c;
	-webkit-transform: translateX(100%);
	transform: translateX(100%);
	position: fixed;
	z-index: 8;
	right: 0;
	top: 0;
	width: 48em;
	max-width: 100%;
	height: 100%;
	overflow-y: auto;
	scrollbar-width: none;
	overscroll-behavior: none;
	padding: 0;
	transition: 0.4s ease;
}
.menu-inner {
	height: 100%;
	min-height: 100.1%;
	min-height: calc(100% + 1px);
	overflow-y: auto;
}
.menu.open {
	-webkit-transform: translateX(0%);
	transform: translateX(0%);
}
.menu > * {
	height: 100%;
}
.menu a {
	display: block;
	color: #fff;
}
.menu a:not([class]) {
	font-weight: 400;
}
.menu-inter a,
.menu a:hover {
	color: var(--blue);
}
.menu-inter a {
	font-size: 1.6em;
	letter-spacing: 0.04em;
}
.menu-sub a {
	padding: .8em 0;
	border-bottom: 1px solid #7a9cd0;
}
.menu-nav {
	width: 100%;
	padding: 0 10%;
}
.menu-inter {
	margin-top: .5em;
}
.menu-sub + .menu-inter {
	margin-top: 1.5em;
}
@media screen and (max-width: 1024px) {
	.menu { 
		font-size: 2vw;
		width: 100%;
	}
}
@media screen and (max-width: 540px) {
	.menu { 
		font-size: 4vw;
	}
	.menu-nav {
		padding: 18% 14% 12%;
	}
	.flex-w46 + .flex-w46 > .menu-inter {
		margin-top: 1.5em;
	}
}


.Toggle {
	display: block;
	position: fixed;
	cursor: pointer;
	z-index: 9;
	right: 0;
	top: 0;
	width: 5.5em;
	height: 5.5em;
	background: #3c3c3c;
}
.Toggle.active {
	background: #fff;
}
.Toggle span {
	display: block;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	width: 37.5%;
	border-bottom: solid 2px #fff;
	-webkit-transition: .35s ease-in-out;
	-moz-transition: .35s ease-in-out;
	transition: .35s ease-in-out;
}
.Toggle span:nth-child(1) {
	top: 37%;
}
.Toggle span:nth-child(2) {
	top: 50%;
}
.Toggle span:nth-child(3) {
	top: 63%;
}
.Toggle.active span:nth-child(1) {
	top: 50%;
	left: 32%;
	-webkit-transform: rotate(-45deg);
	-moz-transform: rotate(-45deg);
	transform: rotate(-45deg);
	border-bottom-color: #3c3c3c;
}
.Toggle.active span:nth-child(2),
.Toggle.active span:nth-child(3) {
	top: 50%;
	left: 32%;
	-webkit-transform: rotate(45deg);
	-moz-transform: rotate(45deg);
	transform: rotate(45deg);
	border-bottom-color: #3c3c3c;
}
.menu-cover {
	background-color: rgba(8,18,15,.5);
	position: fixed;
	top: 0;
	left: 0;
	height: 100%;
	width: 100%;
	opacity: 0;
	visibility: hidden;
	transition: opacity .2s ease;
	z-index: 7;
}
.menu.open + .menu-cover {
	opacity: 1;
	visibility: visible;
}
@media screen and (max-width: 1024px) {
	.Toggle {
		width: 8vw;
		height: 8vw;
	}
	.Toggle span {
		border-bottom-width: 1px;
	}
}
@media screen and (max-width: 540px) {
	.Toggle {
		width: 12vw;
		height: 12vw;
	}
}

@media screen and (min-width: 1024.1px) {
	.menu-pc-only {
		background: #fff;
		padding-left: 1.5em;
	}
}
.menu-pc-only li {
	height: 5.5em;
}
.menu-pc-only li a {
	font-size: 1.125em;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	padding: 0 1em;
	height: 100%;
}
.menu-pc-only li:not(.header-contact) a:hover {
	color: var(--blue);
}

.header-contact {
	margin-left: 1.5em;
}
.menu-pc-only li.header-contact a {
	background: var(--blue);
	color: #fff;
	width: 5.5em;
	font-size: 1.25em;
}
.menu-pc-only li.header-contact a:hover {
	background: var(--dblue);
}
.header-contact a img {
	margin-top: .8em;
	width: 1.6875em;
}
@media screen and (max-width: 1024px) {
	.menu-pc-only li {
		height: 8vw;
	}
	.menu-pc-only li.header-contact a {
		width: 8vw;
	}
	.header-contact a img {
		width: 2.62vw;
	}
}
@media screen and (max-width: 540px) {
	.menu-pc-only li {
		height: 12vw;
	}
	.menu-pc-only li.header-contact a {
		width: 12vw;
		font-size: 2.7vw;
	}
	.header-contact a img {
		width: 3.6vw;
	}
}


/* !header -------------------------------------------------------------- */
#header {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.header-fixed {
	position: fixed;
	top: 0;
	right: 5.5em;
	z-index: 3;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	height: 5.5em;
}
#header.change-color {
}
#contents {
	/*padding-top: 98px;*/
}
@media screen and (max-width: 1905px) {
	#header {
		font-size: 0.84vw;
	}
}
@media screen and (max-width: 1024px) {
	#header {
		font-size: 1.16vw;
	}
	.header-fixed {
		height: 8vw;
		right: 8vw;
	}
}
@media screen and (max-width: 540px) {
	#header {
		font-size: 2.133vw;
	}
	.header-fixed {
		height: 12vw;
		right: 12vw;
	}
}


/* !logo -------------------------------------------------------------- */
.logo {
	padding: 0;
	position: relative;
}
.logo a {
	display: inline-block;
	background: url(../images/logo.svg) no-repeat;
	background-size: 100%;
	background-position: top;
	text-indent: 101%;
	overflow: hidden;
	white-space: nowrap;
	width: 6.5em;
	height: 5.5625em;
}
#header .logo a {
	position: absolute;
	left: 1.93em;
	top: 1.25em;
	z-index: 2;
}
.home #header .logo a {
	left: 1.875em;
	top: 1.625em;
}
.home .logo a {
	width: 9.1875em;
	height: 7.875em;
}
.change-color .logo a {
	background-position: bottom;
}
#footer .logo {
	padding-left: 2em;
	position: inherit;
}
#footer .logo a {
	width: 8.125em;
	height: 6.9375em;
}
@media screen and (max-width: 1024px) {
	#footer .logo {
		padding-left: 0;
	}
}
@media screen and (max-width: 540px) {
	.logo {
	}
}


/*基準1379*/
.container {
	width: 87%;
	max-width: 1200px;
	margin: 0 auto;
}
.container870 {
	width: 63.1%;
	max-width: 870px;
	margin: 0 auto;
}
.container1000 {
	width: 72.7%;
	max-width: 1000px;
	margin: 0 auto;
}
.container1666 {
	width: 100%;
	max-width: 1666px;
	margin: 0 auto;
}
.container1090 {
	width: 92%;
	max-width: 1090px;
	margin: 0 auto;
}
.container1920 {
	width: 100%;
	max-width: 1920px;
	margin: 0 auto;
}
.container1920z {
	width: 120em;
	margin: 0 auto;
}
.container100 {
	width: 100%;
	margin: 0 auto;
}
.container84 {
	width: 84%;
	margin: 0 auto;
}
.container87 {
	width: 87%;
	margin: 0 auto;
}
.container92 {
	width: 92.1%;
	margin: 0 auto;
}
.container1200-100 {
	width: 87%;
	max-width: 1200px;
	margin: 0 auto;
}
.container-left {
	margin-left: 0;
	margin-right: auto;
}
.container-right {
	margin-right: 0;
	margin-left: auto;
}
.container1920z {
	width: 120em;
	margin-left: auto;
	margin-right: auto;
}
@media screen and (max-width: 1920px) {
	.container1920z {
		margin-left: calc(calc(100% - 120em) /2);
	}
}
@media screen and (max-width: 1024px) {
.container1200-100 {
	width: 100%;
}
.container870 {
	width: 87%;
}
}
@media screen and (max-width: 540px) {
	.container84 {
		width: 88%;
	}
	.container92 {
		width: 88%;
	}
	.container1000 {
		width: 88%;
	}
}


/* !btn -------------------------------------------------------------- */
a.btn_01,
.submitbtnWrap {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	font-size: 1.125em;
	width: 14.7em;
	position: relative;
}
.submitbtnWrap {
	display: flex;
	margin-left: auto;
	margin-right: auto;
}
a.btn_01::after,
.submitbtnWrap::after {
	position: absolute;
	right: 1.5em;
	top: 50%;
	transform: translateY(-50%);
	width: 1.111em;
	height: 1.111em;
	display: block;
	content: "";
	background: #fff;
	transition: .2s;
	clip-path: polygon(13% 0, 93% 0, 100% 8%, 7% 100%, 0 92%, 82% 11%, 13% 11%);
}
a.btn_01:hover::after,
.submitbtnWrap:hover::after {
	right: 1.2em;
	top: 40%;
}
a.btn_01 span,
.submitbtnWrap input {
	width: 100%;
	height: 100%;
	color: #fff;
	background: #181b19;
	text-align: center;
	border-radius: 2em;
	padding: 1.25em 4em 1.4em 0;
	transition: .2s;
}
a.btn_01.btn_01_white span {
	color: #000;
	background: #fff;
}
a.btn_01.btn_01_white::after {
	background: #000;
}
.submitbtnWrap:not(.submitbtnWrap-confirm) input {
	background: #ccc;
}
.contactForm:has(input[type=checkbox]:checked) + .submitbtnWrap input {
	background: #000;
}
a.btn_01:not(.btn_01_white):hover span,
.contactForm:has(input[type=checkbox]:checked) + .submitbtnWrap input:hover,
.submitbtnWrap.submitbtnWrap-confirm input:hover {
	background: var(--blue);
}
a.btn_01.btn_01_long {
	width: 18em;
}
@media screen and (max-width: 540px) {
	a.btn_01,
	.submitbtnWrap {
		width: 51vw;
	}
	a.btn_01 span,
	.submitbtnWrap input {
		padding: 1em 3em 1.15em 0;
	}
	a.btn_01.btn_01_long {
		width: 65vw;
	}
}
a.btn_02 {
	display: inline-flex;
	align-items: center;
	line-height: 1;
	font-size: 1.125em;
	position: relative;
}
a.btn_02::before {
	position: absolute;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 3.6em;
	height: 3.6em;
	background: #181b19;
	border-radius: 50%;
	display: block;
	content: "";
}
a.btn_02::after {
	position: absolute;
	right: 1.2em;
	top: 50%;
	transform: translateY(-50%);
	width: 1.111em;
	height: 1.111em;
	display: block;
	content: "";
	background: #fff;
	transition: .2s;
	clip-path: polygon(13% 0, 93% 0, 100% 8%, 7% 100%, 0 92%, 82% 11%, 13% 11%);
}
a.btn_02:hover::after {
	right: .9em;
	top: 40%;
}
a.btn_02 span {
	color: #000;
	display: block;
	padding: 1.3em 5em 1.45em 0;
}
a.btn_02:hover::before {
	background: var(--blue);
}
@media screen and (max-width: 540px) {
	a.btn_02 span {
		padding: 1.3em 3.5em 1.45em 0;
	}
	a.btn_02::before,
	a.btn_02::after {
		font-size: 2.5vw;
	}
}



/* !行間設定 -------------------------------------------------------------- */
.pd0	{ padding: 0; }
.pd01	{ padding: 0.1em 0; }
.pd02	{ padding: 0.2em 0; }
.pd03	{ padding: 0.3em 0; }
.pd04	{ padding: 0.4em 0; }
.pd05	{ padding: 0.5em 0; }
.pd07	{ padding: 0.7em 0; }
.pd08	{ padding: 0.8em 0; }
.pd1	{ padding: 1em 0; }
.pd15	{ padding: 1.5em 0; }
.pd2	{ padding: 2em 0; }
.pd25	{ padding: 2.5em 0; }
.pd3	{ padding: 3em 0; }
.pd35	{ padding: 3.5em 0; }
.pd4	{ padding: 4em 0; }
.pd45	{ padding: 4.5em 0; }
.pd5	{ padding: 5em 0; }
.pd6	{ padding: 6em 0; }
.pd7	{ padding: 7em 0; }
.pd8	{ padding: 8em 0; }
.mg05	{ margin: 0.5em auto; }
.mg1	{ margin: 1em auto; }
.mg15	{ margin: 1.5em auto; }
.mg2	{ margin: 2em auto; }
.mg25	{ margin: 2.5em auto; }
.mg3	{ margin: 3em auto; }
.mg4	{ margin: 4em auto; }
.mg5	{ margin: 5em auto; }
.mt05	{ margin-top: 0.5em;}
.mt1	{ margin-top: 1em;}
.mt15	{ margin-top: 1.5em;}
.mt18	{ margin-top: 1.8em;}
.mt2	{ margin-top: 2em;}
.mt25	{ margin-top: 2.5em;}
.mt3	{ margin-top: 3em;}
.mt35	{ margin-top: 3.5em;}
.mt4	{ margin-top: 4em;}
.mt45	{ margin-top: 4.5em;}
.mt5	{ margin-top: 5em;}
.mt6	{ margin-top: 6em;}
.mt7	{ margin-top: 7em;}
.mt8	{ margin-top: 8em;}
.mt9	{ margin-top: 9em;}
.mr05	{ margin-right: 0.5em;}
.mr1	{ margin-right: 1em;}
.mr15	{ margin-right: 1.5em;}
.mr2	{ margin-right: 2em;}
.mr25	{ margin-right: 2.5em;}
.mr3	{ margin-right: 3em;}
.mr4	{ margin-right: 4em;}
.mr5	{ margin-right: 5em;}
.ml05	{ margin-left: 0.5em;}
.ml1	{ margin-left: 1em;}
.ml15	{ margin-left: 1.5em;}
.ml2	{ margin-left: 2em;}
.ml25	{ margin-left: 2.5em;}
.ml3	{ margin-left: 3em;}
.ml4	{ margin-left: 4em;}
.ml5	{ margin-left: 5em;}
.mb05	{ margin-bottom: 0.5em;}
.mb1	{ margin-bottom: 1em;}
.mb15	{ margin-bottom: 1.5em;}
.mb2	{ margin-bottom: 2em;}
.mb25	{ margin-bottom: 2.5em;}
.mb3	{ margin-bottom: 3em;}
.mb35	{ margin-bottom: 3.5em;}
.mb4	{ margin-bottom: 4em;}
.mb45	{ margin-bottom: 4.5em;}
.mb5	{ margin-bottom: 5em;}
.mb6	{ margin-bottom: 6em;}
.pt05	{ padding-top: 0.5em;}
.pt1	{ padding-top: 1em;}
.pt15	{ padding-top: 1.5em;}
.pt2	{ padding-top: 2em;}
.pt25	{ padding-top: 2.5em;}
.pt3	{ padding-top: 3em;}
.pt35	{ padding-top: 3.5em;}
.pt4	{ padding-top: 4em;}
.pt45	{ padding-top: 4.5em;}
.pt5	{ padding-top: 5em;}
.pt6	{ padding-top: 6em;}
.pt7	{ padding-top: 7em;}
.pt8	{ padding-top: 8em;}
.pt9	{ padding-top: 9em;}
.pt10	{ padding-top: 10em;}
.pt14	{ padding-top: 14em;}
.pr05	{ padding-right: 0.5em;}
.pr1	{ padding-right: 1em;}
.pr15	{ padding-right: 1.5em;}
.pr2	{ padding-right: 2em;}
.pr25	{ padding-right: 2.5em;}
.pr3	{ padding-right: 3em;}
.pr35	{ padding-right: 3.5em;}
.pr4	{ padding-right: 4em;}
.pr5	{ padding-right: 5em;}
.pl03	{ padding-left: 0.3em;}
.pl05	{ padding-left: 0.5em;}
.pl1	{ padding-left: 1em;}
.pl15	{ padding-left: 1.5em;}
.pl2	{ padding-left: 2em;}
.pl25	{ padding-left: 2.5em;}
.pl3	{ padding-left: 3em;}
.pl35	{ padding-left: 3.5em;}
.pl4	{ padding-left: 4em;}
.pl45	{ padding-left: 4.5em;}
.pl5	{ padding-left: 5em;}
.pb05	{ padding-bottom: 0.5em;}
.pb1	{ padding-bottom: 1em;}
.pb15	{ padding-bottom: 1.5em;}
.pb2	{ padding-bottom: 2em;}
.pb25	{ padding-bottom: 2.5em;}
.pb3	{ padding-bottom: 3em;}
.pb35	{ padding-bottom: 3.5em;}
.pb4	{ padding-bottom: 4em;}
.pb45	{ padding-bottom: 4.5em;}
.pb5	{ padding-bottom: 5em;}
.pb6	{ padding-bottom: 6em;}
.pb7	{ padding-bottom: 7em;}
.pb8	{ padding-bottom: 8em;}
.pb9	{ padding-bottom: 9em;}
.pb10	{ padding-bottom: 10em;}
.pb-f	{ padding-bottom: 15em;}
@media screen and (max-width: 1024px) {
.tab-mt0 { margin-top: 0 !important; }
.tab-mt { margin-top: 2vw; }
.tab-mt2 { margin-top: 4vw; }
.tab-pt { padding-top: 5vw; }
.tab-pd { padding: 3vw 0; }
}
@media screen and (max-width: 540px) {
.pd02	{ padding: 0.1em 0; }
.pd08	{ padding: 2vw 0; }
.pd1	{ padding: 2vw 0; }
.pd15	{ padding: 3vw 0; }
.pd2	{ padding: 4vw 0; }
.pd25	{ padding: 5vw 0; }
.pd3	{ padding: 6vw 0; }
.pd35	{ padding: 7vw 0; }
.pd4	{ padding: 8vw 0; }
.pd45	{ padding: 9vw 0; }
.pd5	{ padding: 10vw 0; }
.pd6	{ padding: 12vw 0; }
.pd7	{ padding: 14vw 0; }
.pd8	{ padding: 16vw 0; }
.mg1	{ margin: 2vw auto; }
.mg15	{ margin: 3vw auto; }
.mg2	{ margin: 4vw auto; }
.mg25	{ margin: 5vw auto; }
.mg3	{ margin: 6vw auto; }
.mg4	{ margin: 8vw auto; }
.mg5	{ margin: 10vw auto; }
.mt1	{ margin-top: 2vw;}
.mt15	{ margin-top: 3vw;}
.mt2	{ margin-top: 4vw;}
.mt25	{ margin-top: 5vw;}
.mt3	{ margin-top: 6vw;}
.mt35	{ margin-top: 7vw;}
.mt4	{ margin-top: 8vw;}
.mt45	{ margin-top: 9vw;}
.mt5	{ margin-top: 10vw;}
.mt6	{ margin-top: 12vw;}
.mt7	{ margin-top: 14vw;}
.mt8	{ margin-top: 16vw;}
.mt9	{ margin-top: 18vw;}
.mr1	{ margin-right: 2vw;}
.mr15	{ margin-right: 3vw;}
.mr2	{ margin-right: 4vw;}
.mr25	{ margin-right: 5vw;}
.mr3	{ margin-right: 6vw;}
.mr4	{ margin-right: 8vw;}
.mr5	{ margin-right: 10vw;}
.ml1	{ margin-left: 2vw;}
.ml15	{ margin-left: 3vw;}
.ml2	{ margin-left: 4vw;}
.ml25	{ margin-left: 5vw;}
.ml3	{ margin-left: 6vw;}
.ml4	{ margin-left: 8vw;}
.ml5	{ margin-left: 10vw;}
.mb1	{ margin-bottom: 2vw;}
.mb15	{ margin-bottom: 3vw;}
.mb2	{ margin-bottom: 4vw;}
.mb25	{ margin-bottom: 5vw;}
.mb3	{ margin-bottom: 6vw;}
.mb35	{ margin-bottom: 7vw;}
.mb4	{ margin-bottom: 8vw;}
.mb45	{ margin-bottom: 9vw;}
.mb5	{ margin-bottom: 10vw;}
.mb6	{ margin-bottom: 12vw;}
.pt1	{ padding-top: 2vw;}
.pt15	{ padding-top: 3vw;}
.pt2	{ padding-top: 4vw;}
.pt25	{ padding-top: 5vw;}
.pt3	{ padding-top: 6vw;}
.pt35	{ padding-top: 7vw;}
.pt4	{ padding-top: 8vw;}
.pt45	{ padding-top: 9vw;}
.pt5	{ padding-top: 10vw;}
.pt6	{ padding-top: 12vw;}
.pt7	{ padding-top: 14vw;}
.pt8	{ padding-top: 16vw;}
.pt9	{ padding-top: 18vw;}
.pt10	{ padding-top: 20vw;}
.pt14	{ padding-top: 23vw;}
.pr1	{ padding-right: 2vw;}
.pr15	{ padding-right: 3vw;}
.pr2	{ padding-right: 4vw;}
.pr25	{ padding-right: 5vw;}
.pr3	{ padding-right: 6vw;}
.pr35	{ padding-right: 7vw;}
.pr4	{ padding-right: 8vw;}
.pr5	{ padding-right: 10vw;}
.pl1	{ padding-left: 2vw;}
.pl15	{ padding-left: 3vw;}
.pl2	{ padding-left: 4vw;}
.pl25	{ padding-left: 5vw;}
.pl3	{ padding-left: 6vw;}
.pl35	{ padding-left: 7vw;}
.pl4	{ padding-left: 8vw;}
.pl45	{ padding-left: 9vw;}
.pl5	{ padding-left: 10vw;}
.pb1	{ padding-bottom: 2vw;}
.pb15	{ padding-bottom: 3vw;}
.pb2	{ padding-bottom: 4vw;}
.pb25	{ padding-bottom: 5vw;}
.pb3	{ padding-bottom: 6vw;}
.pb3-2	{ padding-bottom: 19vw;}
.pb35	{ padding-bottom: 7vw;}
.pb4	{ padding-bottom: 8vw;}
.pb45	{ padding-bottom: 9vw;}
.pb5	{ padding-bottom: 10vw;}
.pb6	{ padding-bottom: 12vw;}
.pb7	{ padding-bottom: 14vw;}
.pb8	{ padding-bottom: 16vw;}
.pb9	{ padding-bottom: 18vw;}
.pb10	{ padding-bottom: 16vw;}
.pb-f	{ padding-bottom: 25vw;}
.tab-mt { margin-top: 3vw; }
.tab-mt2 { margin-top: 9vw; }
.tab-pt { padding-top: 0; }
.tab-pd { padding: 10vw 0; }
.sp-pt	{ padding-top: 8vw;}
.sp-mt0 { margin-top: 0; }
.sp-mt { margin-top: 3vw; }
.sp-mt2 { margin-top: 6vw; }
.sp-mt3 { margin-top: 9vw; }
.sp-mt4 { margin-top: 12vw; }
.sp-mt5 { margin-top: 15vw; }
.sp-pt { padding-top: 5vw; }
.sp-pl { padding-left: 5vw; }
.sp-pl2 { padding-left: 16vw; }
.sp-pb { padding-bottom: 6vw; }
.sp-pb2 { padding-bottom: 9vw; }
}


/* !flex -------------------------------------------------------------- */
.flex,
.flex_pc,
.flex_all {
	display: flex;
	justify-content: space-between;
}
.iflex {
	display: inline-flex;
}
.aic {
	align-items: center;
}
.ais {
	align-items: start;
}
.aie {
	align-items: end;
}
.flwWrap {
	flex-wrap: wrap;
}
.jcs {
	justify-content: start;
}
.jcc {
	justify-content: center;
}
.jcr {
	justify-content: flex-end;
}
.jc-se {
	justify-content: space-evenly;
}
.fd-rr {
	flex-direction: row-reverse;
}
.fd-column {
	flex-direction: column;
}
.flex-sh0 {
	flex-shrink: 0;
}
.order-1 {
	order: 1;
}
.order-2 {
	order: 2;
}

.flex-w100 {
	width: 100%;
}
.flex-w84 {
	width: 84%;
}
.flex-w70 {
	width: 70%;
}
.flex-w65 {
	width: 65%;
}
.flex-w65-45 {
	width: 65%;
}
.flex-w62 {
	width: 62%;
}
.flex-w61 {
	width: 61%;
}
.flex-w56 {
	width: 56%;
}
.flex-w55 {
	width: 55%;
}
.flex-w54 {
	width: 54%;
}
.flex-w50 {
	width: 50%;
}
.flex-w48 {
	width: 48.3%;
}
.flex-w47 {
	width: 47.25%;
}
.flex-w46 {
	width: 46%;
}
.flex-w45 {
	width: 44.8%;
}
.flex-w40 {
	width: 40%;
}
.flex-w384 {
	width: 38.4%;
}
.flex-w38 {
	width: 37.5%;
}
.flex-w35 {
	width: 35%;
}
.flex-w34 {
	width: 34%;
}
.flex-w30 {
	width: 30%;
}
.flex-w27 {
	width: 27%;
}
.flex-w16 {
	width: 16%;
}
.flex-col-3 {
	width: 31.67%;
}
.flex-col-3w {
	width: 33.333%;
}




@media screen and (max-width: 1024px) {
	.flex_pc {
		display: block;
	}
	.flex_pro {
		display: flex;
	}
	.flex_pc > [class^="flex-w"],
	.flex_pc > [class^="flex-col-"] {
		width: 100%;
	}
	.flex-w27 {
		width: 33%;
	}
	.flex-w84 {
		width: 80%;
	}
	.flex-w16 {
		width: 20%;
	}
	.flex-w65-45 {
		width: 45%;
	}
}
@media screen and (max-width: 540px) {
	.flex {
		display: block;
	}
	.flex > [class^="flex-w"],
	.flex > [class^="flex-col-"] {
		width: 100%;
		padding-right: 0;
		padding-left: 0;
	}
	#contents .flex > * {
		padding-right: 0;
		padding-left: 0;
	}
	.flex_sp {
		display: flex;
	}
	.flex > .flex-w65-45 {
		width: 74%;
		margin-left: 13%;
	}
}


/* !mv -------------------------------------------------------------- */
.mv_wrapper {
	width: 100%;
	height: 100vh;
	max-height: 58.25em;
	min-height: 50.25em;
	position: relative;
}
.mv_img {
	width: 100%;
	height: 100%;
	position: absolute;
}
.mv_img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.mv_txt {
	position: absolute;
	z-index: 2;
	left: 18.75%;
	top: 50%;
	transform: translateY(-50%);
	color: #fff;
}
.mv_txt_1 {
	font-size: 8.5em;
	writing-mode: vertical-rl;
	padding: 0;
}
.mv_txt_2 {
	font-size: 3.5em;
	line-height: 1.57;
}
@media screen and (max-width: 1905px) {
	.mv_wrapper {
		font-size: 0.84vw;
	}
}
@media screen and (max-width: 1024px) {
	.mv_wrapper {
		font-size: 1vw;
	}
}
@media screen and (max-width: 540px) {
	.mv_wrapper {
		font-size: 2.133vw;
		height: 144vw;
		max-height: 100vh;
	}
	.mv_txt {
		left: 6%;
		top: 54%;
	}
	.mv_txt_1 {
		line-height: 1.7;
	}
}


.mv_txt_1,
.mv_txt_2_1,
.mv_txt_2_2,
.mv_txt_2_3 {
	overflow: hidden;
	transform: translateX(-15%);
	opacity: 0;
	clip-path: inset( 0 100% 0 0);
}
#mv.open .mv_txt_1 {
	opacity: 1;
	transform: translateX(0);
	transition: all 0.75s ease 1.8s;
	clip-path: inset(0);
}
#mv.open .mv_txt_2_1,
#mv.open .mv_txt_2_2,
#mv.open .mv_txt_2_3 {
	opacity: 1;
	transform: translateX(0);
	transition: all 0.75s ease 1.8s;
	clip-path: inset(0);
}
#mv.open .mv_txt_1 {
	transition-delay: 0.1s;
}
#mv.open .mv_txt_2_1 {
	transition-delay: 1s;
}
#mv.open .mv_txt_2_2 {
	transition-delay: 1.3s;
}
#mv.open .mv_txt_2_3 {
	transition-delay: 1.6s;
}


/* !decoration -------------------------------------------------------------- */
.arrow {
	position: relative;
}
.arrow::after {
	position: absolute;
	right: 1.8em;
	top: 50%;
	transform: translateY(-50%);
	width: .75em;
	height: 1.125em;
	display: block;
	content: "";
	background: var(--blue);
	transition: .2s;
	clip-path: polygon(19% 0, 100% 50%, 19% 100%, 0 87%, 63% 50%, 0 13%);
}
.arrow.arrow-under::after {
	width: .52em;
	height: .9em;
	background: #fff;
	transform: translateY(-50%) rotate(90deg);
	right: 0;
}
.arrow:not(.arrow-under):hover::after {
	right: 1.4em;
}
.txt-slash::before {
	content: "/ ";
}
@media screen and (max-width: 540px) {
	.arrow::after,
	.arrow:not(.arrow-under):hover::after {
		right: .6em;
	}
}


/* !contents -------------------------------------------------------------- */
.img_01 {
	background: #f2f5f3 url(../images/img_01.webp) center right no-repeat;
	background-size: 60em;
	height: 50.625em;
}
.bg_recruit {
	background: #36a3e3 url(../images/bg_recruit.webp) center no-repeat;
	background-size: cover;
	height: 48.875em;
}
@media screen and (max-width: 1024px) {
	.img_01 {
		background-size: 40em;
		height: 40em;
	}
}
@media screen and (max-width: 540px) {
	.img_01 {
		background: url(../images/img_01_sp.webp) left 0 top 19.3vw no-repeat;
		background-size: 100%;
		height: 176.8vw;
	}
	.sp-mt-service {
		margin-top: 78vw;
	}
	.img_02 {
		margin: 4vw 0 2vw;
	}
	.img_02 img {
		width: 80vw;
	}
	.bg_recruit {
		background-image: url(../images/bg_recruit_sp.webp);
		height: 113.5vw;
	}
}


/* !news -------------------------------------------------------------- */
.news_title {
	float: left;
	padding: .1em 0;
}
.news_list li {
	border-bottom: 1px solid #ccc;
}
.news_list li a {
	position: relative;
	display: flex;
	align-items: center;
	padding: .9em 0;
}
.news_list li a:hover {
	color: var(--blue);
}
.news_day {
	width: 26%;
	padding-left: 4.3%;
}
.news_list li p {
	width: 65%;
	display: flex;
	align-items: flex-start;
}
.news_more {
	margin-top: -4em;
}
.news-minheight {
	min-height: 14em;
}
@media screen and (max-width: 1024px) {
	.news_day {
		padding-left: 0;
	}
}
@media screen and (max-width: 540px) {
	.news_list li a {
		display: block;
		padding: .9em 0 .9em 3.5vw;
	}
	.news_day {
		width: 100%;
	}
	.news_list li p {
		width: 90%;
		display: flex;
		align-items: flex-start;
		padding: 0;
	}
	.news_more {
		margin-top: 1em;
	}
	.news-minheight {
		min-height: 8em;
	}
}


.zi2 {
	z-index: 2;
	position: relative;
}


.effect .effect-span {
    position: relative;
	display: inline-block;
}
.effect .effect-span,
.effect .effect-span::after {
  animation-delay: var(--animation-delay, .5s); /* アニメーションの開始タイミング */
  animation-iteration-count: var(--iterations, 1); /* 再生される回数 */
  animation-duration: var(--duration, 500ms); /* 完了するまでの所要時間 */
  animation-fill-mode: both; /* 実行の前後 */
  animation-timing-function: cubic-bezier(0, 0, 0.2, 1); /* タイミングの指定 */
}

.effect.scroll-in .effect-span {
  --animation-delay: var(--delay, 0);
  --animation-duration: var(--duration, 800ms);
  --animation-iterations: var(--iterations, 1);
  position: relative;
  animation-name: clip-text;
}
.effect.scroll-in .effect-span::after {
  content: "";
  position: absolute;
  z-index: 10;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: var(--blue);
  transform: scaleX(0);
  transform-origin: 0 50%;
  pointer-events: none;
  animation-name: text-revealer;
}
.effect.scroll-in .effect-span.effect-span-w::after {
  background-color: #fff;
}
@keyframes clip-text {
  from {
    clip-path: inset(0 100% 0 0);
  }
  to {
    clip-path: inset(0 0 0 0);
  }
}
@keyframes text-revealer {
  0%, 50% {
    transform-origin: 0 50%;
  }
  60%, 100% {
    transform-origin: 100% 50%;
  }
  60% {
    transform: scaleX(1);
  }
  100% {
    transform: scaleX(0);
  }
}


/* !footer
---------------------------------------------------------- */
#footer {
	padding: 4.5em 0;
}
.logo-txt img {
	width: 11.75em;
}
.footer-nav a:not([class]) {
	color: #424242;
}
.footer-nav-under {
	justify-content: flex-end;
}
.footer-nav-under a {
	color: #939393;
}
.footer-nav-under li + li::before {
	content: "｜";
	color: #939393;
	margin-left: .5em;
	margin-right: .5em;
}
.footer-nav a:not([class]):hover,
.footer-nav-under a:hover {
	color: var(--blue);
}
@media screen and (max-width: 1024px) {
	.footer-nav-under {
		justify-content: center;
	}
}
@media screen and (max-width: 540px) {
	#footer {
		padding: 3em 0;
	}
}


/*a.anchor {
    display: block;
    padding-top: 100px;
    margin-top: -100px;
}
@media screen and (max-width: 1024px) {
	a.anchor {
		padding-top: 8.333vw;
		margin-top: -8.333vw;
	}
}
@media screen and (max-width: 540px) {
	a.anchor {
		padding-top: 12.92vw;
		margin-top: -12.92vw;
	}
}*/

/* !Clearfix
---------------------------------------------------------- */
.clearfix::after,
.contactForm dd::after {
	content: '';
	display: block;
	height: 0;
	overflow: hidden;
	clear: both;
}

/* !tel
---------------------------------------------------------- */
@media (min-width: 541px) {
	a[href*="tel:"] {
		pointer-events: none;
		cursor: default;
		text-decoration: none;
	}
}