@charset "UTF-8";
/* ==================================================
[Style]
	 1. Reset
	 2. Animation
	 3. General
================================================== */
/* --------------------------------------------------
	 1. Reset
-------------------------------------------------- */

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  vertical-align: baseline;
  background: transparent;
}

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section {
    display: block;
}

nav ul {
  list-style: none;
}

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}


/* --------------------------------------------------
	 2. Animation
-------------------------------------------------- */
@keyframes fade-in3 {
	0% {
	  opacity: 0;
	  transform: translate3d(0, 20px, 0);
	}
	100% {
	  opacity: 1;
	  transform: translate3d(0, 0, 0);
	}
}

@keyframes fade-in4 {
	0% {
	  opacity: 1;
	  transform: translate3d(0, 20px, 0);
	}
	100% {
	  opacity: 1;
	  transform: translate3d(0, 0, 0);
	}
}

/* --------------------------------------------------
	 3. General
-------------------------------------------------- */
*,
*::before,
*::after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

body {
	word-break: normal;
	overflow-wrap: normal;
	word-wrap: normal;
	background-color: #fff;
	-webkit-font-smoothing: antialiased;
	-webkit-text-size-adjust: 100%;
	letter-spacing: 0;
	line-height: 1.8;
	color: #394862;
	font-family: 'Hiragino Kaku Gothic ProN', sans-serif;
  font-size: 10px;
}

em {
    font-family: 'Roboto Condensed', sans-serif;
    letter-spacing: -0.02em;
    font-size: 1.1em;
}

a {
  outline: none;
  word-break: break-all;
  overflow-wrap: break-word;
  word-wrap: break-word;
}

a:link, a:visited {
  color: #394862;
  text-decoration: none;
}

a:hover, a:active {
  text-decoration: underline;
}

ul, ol {
  list-style: none;
}

em, dl, i, address {
  font-style: normal;
}

sup, sub {
  font-size: 0.5em;
}

sup {
  vertical-align: text-top;
}

sub {
  vertical-align: text-bottom;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
  font-size: 1rem;
  font-family: inherit;
}

table th, table td {
  text-align: left;
  vertical-align: middle;
  padding: 1em;
}

table th {
  font-weight: normal;
}

table td {
  word-break: break-all;
  overflow-wrap: break-word;
  word-wrap: break-word;
}

img {
	width: 100%;
  max-width: 100%;
  height: auto;
}

/* fadeInAnime
------------------------------------------ */
.fadeIn {
    transition-property: opacity, transform;
    transition-duration: 1s;
    transition-timing-function: cubic-bezier(0.000, 0.295, 0.500, 1.000);
    opacity: 0;
    -webkit-transform: translate(0, 60px);
    transform: translate(0, 60px);
}
.fadeIn[data-delay="1"]{ transition-delay: 0.2s;}
.fadeIn[data-delay="2"]{ transition-delay: 0.4s;}
.fadeIn[data-delay="3"]{ transition-delay: 0.6s;}
.fadeIn[data-delay="4"]{ transition-delay: 0.8s;}
.fadeIn[data-delay="5"]{ transition-delay: 1s;}
.fadeIn[data-delay="6"]{ transition-delay: 1.2s;}
.fadeIn[data-delay="7"]{ transition-delay: 1.4s;}
.fadeIn[data-delay="8"]{ transition-delay: 1.6s;}
.fadeIn[data-delay="9"]{ transition-delay: 1.8s;}
.fadeIn[data-delay="10"]{ transition-delay: 2s;}
.fadeIn[data-delay="11"]{ transition-delay: 2.2s;}
.fadeIn[data-delay="12"]{ transition-delay: 2.4s;}

.fadeIn.is_done{
    opacity: 1;
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0);
}

.pc {	display: block!important;}
.sp {	display: none!important;}
@media screen and (max-width:764px) {
  .pc { display: none!important;}
  .sp { display: block!important;}
}

/* deco
------------------------------------------ */
:root {
  --primary-color: #3f48e4;
  --secondary-color: #394862;
  --en: 'Fira Sans', sans-serif;
}
.large110 { font-size: 110%;}
.large120 { font-size: 120%;}
.large130 { font-size: 130%;}
.large160 { font-size: 160%;}
.large170 { font-size: 170%;}
.large180 { font-size: 180%;}
.large200 { font-size: 200%;}
.small90 { font-size: 90%;}
.small80 { font-size: 80%;}
.bold { font-weight: bold;}
.blue { color: var(--primary-color);}
.en { font-family: var(--en); font-weight: 500;}

/* --------------------------------------------------
	 INNNER
-------------------------------------------------- */
.inner {
	position: relative;
	margin: 0 auto;
	max-width: 980px;
}
@media screen and (max-width:1200px) {
  .inner {
    width: 90%;
  }
}

/* --------------------------------------------------
	 SECTION
-------------------------------------------------- */
section {
	padding: 80px 0;
}
@media screen and (max-width:764px) {
  section {
    padding: 12% 0 10%;
  }
}

/* --------------------------------------------------
	 header
-------------------------------------------------- */
header {
	background-color: #fff;
  max-width: 1160px;
  padding: 0 20px;
  margin: 0 auto;
  height: 85px;
  display: flex;
  align-items: center;
}
header h1,
header h1 a {
  line-height: 0;
}
header h1 .headerLogo {
  width: 256px;
}
@media screen and (max-width:764px) {
  header {
    height: 52px;
  }
  header h1 .headerLogo {
      width: 167px;
  }
}

/* --------------------------------------------------
	 FONT-SIZE
-------------------------------------------------- */
section {
	font-size: 16px;
}
@media screen and (max-width:764px) {
  section {
    font-size: 14px;
  }
}

h2 {
	text-align: center;
	font-size: 30px;
	font-weight: bold;
	line-height: 1.5;
	margin-bottom: 30px;
  letter-spacing: .05em;
}
p.notes {
  font-size: 14px;
  line-height: 1.6;
  color: #7b798b;
}
@media screen and (max-width:764px) {
  h2 {
    font-size: min(max(21px, calc(1.3125rem + ((1vw - 3.75px) * 4.5333))), 38px);
    margin-bottom: 1em;
  }
  p.notes {
    font-size: 12px;
    line-height: 1.5;
  }
}

/* --------------------------------------------------
	 a
-------------------------------------------------- */
main a {
    -webkit-transition: 0.7s;
    -moz-transition: 0.7s;
    -o-transition: 0.7s;
    -ms-transition: 0.7s;
    transition: 0.7s;
}
main a:hover {
	opacity: .7;
    -webkit-transition: 0.2s;
    -moz-transition: 0.2s;
    -o-transition: 0.2s;
    -ms-transition: 0.2s;
    transition: 0.2s;
}

/* --------------------------------------------------
	 kv
-------------------------------------------------- */
.kv {
  width: 100%;
  background-image: url("../img/bg01.png"), url("../img/bg02.jpg");
  background-position: center bottom, center;
  background-size: 1920px auto, cover;
  background-repeat: no-repeat, no-repeat;
  overflow: hidden;
  padding: 22px 40px 378px;
  line-height: 1;
  font-size: 0;
  position: relative;
}
.kv p {
  line-height: 1;
  font-size: 14px;
  color: #fff;
  position: absolute;
  bottom: 15px;
  right: 30px;
}
.kv div {
  width: 100%;
  max-width: 884px;
  margin: 0 auto;
}
.kv div img {
  max-width: 100%;
}

@media screen and (max-width:764px) {
  .kv {
    background: url("../img/fv_bg_sp.jpg");
    background-position: left top;
    background-size: cover;
    background-repeat: no-repeat;
    padding: 0;
  }
  .kv p {
    font-size: 2.133vw;
    bottom: 2vw;
    right: 2vw;
  }
  .kv div {
    width: 100%;
    margin: 0 auto;
  }
}

/* --------------------------------------------------
	 cv_fv
-------------------------------------------------- */
.cv_fv {
  padding: 0;
}
.cv_area {
	width: 100%;
  background: #fff;
	border-radius: 0;
	margin: 0 auto;
	padding: 40px 25px 25px;
	text-align: center;
}
.offers_ttl + .cv_fv {
  margin-bottom: 40px;
}
@media screen and (max-width:764px) {
  .cv_area {
    width: calc(640/750*100%);
    font-size: 16px;
    margin:  0 auto;
  	padding: 8% 0 9%;
  }
  .offers_ttl + .cv_fv {
    margin-bottom: 4%;
  }
}

/* --------------------------------------------------
	 offers_ttl
-------------------------------------------------- */
.offers_ttl {
  width: 100%;
  padding: 0 0 112px;
  overflow: hidden;
  background: url("../img/obi01_pc.png");
  background-position: center top;
  background-size: 1570px 201px;
  background-repeat: no-repeat;
}
.offers_ttl h2 {
  padding-top: 66px;
  margin-bottom: 0;
  line-height: 1.5;
  font-size: 24px;
  text-align: center;
}


@media screen and (max-width:764px) {
  .offers_ttl {
    background-size: 180%;
    padding: 0;
  }
  .offers_ttl h2 {
    font-size: min(max(18px, calc(1.125rem + ((1vw - 3.75px) * 4.8))), 36px);
    padding-top: 9%;
    padding-bottom: 16%;
  }
}
@media screen and (max-width:420px) {
  .offers_ttl {
    background: url("../img/obi01_sp.png");
    background-position: center top;
    background-size: contain;
    background-repeat: no-repeat;
  }
}
/* --------------------------------------------------
	 offers
-------------------------------------------------- */
.offers {
  background: #f4f5ff;
  padding: 60px 0 100px;
}
.offers .inner {
  max-width: 540px;
  margin: 0 auto;
}
.offers h2 {
  margin-bottom: 35px;
  line-height: 1;
  font-size: 32px;
}
.offers h2 span {
  border: 2px solid #3f48e4;
  padding: 2px 15px 1px;
  margin-right: 13px;
}
.offers ul {
  width: 100%;
  max-width: 542px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
}
.offers .offer_box {
  width: 47.97%;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
}
.offers .offer_box .img {
  font-size: 0;
  line-height: 1;
}
.offers .offer_box .txt {
  text-align: center;
  font-weight: bold;
  padding: 18px 20px 20px;
  font-size: 0;
  line-height: 1;
}
.offers .offer_box .txt p {
  font-size: 18px;
  line-height: 1.3;
}
.offers .offer_box .txt .job {
  height: 2em;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
.offers .offer_box .txt .job small {
  display: block;
  font-size: 12px;
}
.offers .offer_box .txt h3 {
  font-size: 17px;
  font-weight: bold;
  line-height: 1;
  text-align: center;
  border-top: 1px solid #394862;
  border-bottom: 1px solid #394862;
  padding: 4px 0;
  margin: 7px 0 2px;
}
.offers .offer_box .txt p .kara {
  vertical-align: super;
}
.offers p.notes {
  padding-top: .8em;
}
.offers .about {
  width: 670px;
  margin: 60px auto 0;
  border: 3px solid #b7183f;
  background: #fff;
  padding: 38px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.offers .about h2 {
  width: 100%;
  margin: 0 auto 28px;
}
.offers .about h2 img {
  width: 247px;
  margin: 0 auto;
}
.offers .about p {
  width: 296px;
  font-size: 18px;
  line-height: 1.89;
}
.offers .about .imgArea {
  width: 259px;
}
.offers .about .imgArea img {
  width: 100%;
}
@media screen and (max-width:764px) {
  .offers {
    padding: 11% 0 14%;
  }
  .offers .inner {
    width: 93.33%;
  }
  .offers h2 {
    font-size: min(max(22px, calc(1.375rem + ((1vw - 3.75px) * 5.6))), 43px);
    margin-bottom: 7%;
  }
  .offers .offer_box .txt p {
    font-size: min(max(14px, calc(0.875rem + ((1vw - 3.75px) * 3.7333))), 28px);
  }
  .offers .offer_box .txt {
    padding: 8% 5% 10%;
  }
  .offers .offer_box .txt h3 {
      font-size: 14px;
      padding: 5px 0 4px;
      margin: 10px 0 3px;
   }
   .offers .offer_box .txt p .kara {
      font-size: 13px;
   }
   .offers .about {
      width: 89.33%;
      margin-top: 30px;
      padding: 19px;
    }
    .offers .about h2 {
      margin: 0 auto 14px;
    }
    .offers .about h2 img {
      width: 154px;
    }
    .offers .about p {
      width: 50%;
      font-size: 11px;
    }
    .offers .about .imgArea {
      width: 43.8983%;
    }
}


/* --------------------------------------------------
	 cv
-------------------------------------------------- */
.cv {
  padding: 0;
  line-height: 1;
  background-color: #f4f5ff;
}
.cv_wrap {
  padding: 40px 0 35px;
  background-image:
    url("../img/obi02_pc.png"),
    url("../img/cv_bg.jpg");
  background-position:
    center 20px,
    center top;
  background-size:
    1570px 201px,
    100% 100%;
  background-repeat:
    no-repeat,
    no-repeat;
  border-top-right-radius: 160px;
  overflow: hidden;
}
@media screen and (max-width:764px) {
  .cv_wrap {
    padding: 9.5% 0 9%;
    background-image:
      url("../img/obi02_sp.png"),
      url("../img/cv_bg.jpg");
    background-position:
      center calc(86/750*100%),
      center top;
    background-size:
      contain,
      100% 100%;
    background-repeat:
      no-repeat,
      no-repeat;
    border-top-right-radius: 80px;
    overflow: hidden;
  }
}

/*
cv 中身
------------------------------ */
.cv h2 {
  margin-bottom: 35px;
	color: #FFF;
  font-size: 32px;
  line-height: 1.5;
}
.cv dl {
	margin: 0 auto;
	max-width: 580px;
}
.cv dl dt {
  position: relative;
	border-radius: 24px 24px 0 0;
	background-color: #FFF;
	padding: 24px 18px;
	text-align: center;
  line-height: 1;
  font-size: 0;
  display: inline-block;
  width: 100%;
}
.cv dl dt::after {
  content: "";
  position: absolute;
  display: block;
  border-bottom: solid #eeeeee 1px;
  margin: 0 auto;
  left: 0;
  right: 0;
  bottom: 1px;
  width: 94%;
}
.cv dl dd {
	border-radius: 0 0 24px 24px ;
	background-color: #FFF;
	padding: 24px 18px 24px;
	text-align: center;
}
.cv dl dd img {
	display: block;
	margin: 0 auto;
	width: 51.851851%;
}
.cv dl dd p {
	font-size: 12px;
  color: #7b798b;
  font-weight: bold;
  line-height: 1.5;
  text-align: center;
}
.cv dl dd ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
  flex-wrap: nowrap;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  width: 260px;
  gap: 7%;
  margin: 20px auto 3px;
}
.cv dl dd ul li {
	text-align: center;
}
.cv dl dd ul li img {
	display: block;
	width: 100%;
}

@media screen and (max-width:764px) {
  .cv h2 {
    font-size: min(max(24px, calc(1.5rem + ((1vw - 3.75px) * 6.4))), 48px);
    margin-bottom: 6%;
  }
  .cv .inner {
      width: calc(670/750*100%);
      margin: 0 auto;
  }
  .cv dl {
      width: 100%;
  }
  .cv dl dt {
    padding: 6% 0 7.5%;
    border-radius: 25px 25px 0 0;
  }
  .cv dl dd {
    padding: 7% 0 6%;
    border-radius: 0 0 25px 25px;
  }
  .cv dl dd p {
    font-size: min(max(12px, calc(0.75rem + ((1vw - 3.75px) * 3.2))), 24px);
  }
  .cv dl dd img {
      width: 80%;
  }
  .cv dl dd a {
      margin-top: 0;
  }
  .cv dl dd ul {
    width: 76%;
    margin: 6.5% auto 7.5%;
  }
}

/* --------------------------------------------------
	 ボタン
-------------------------------------------------- */
a.registration,
a.registration02,
a.recruitId {
	position: relative;
  border-radius: 100px;
  display: inline-block;
  font-size: 26px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .06em;
  padding: .9em 2em;
  width: 480px;
  -webkit-transition: 0.8s;
  -moz-transition: 0.8s;
  -o-transition: 0.8s;
  -ms-transition: 0.8s;
  transition: 0.8s;
	text-align: center;
}
a.registration {
  background: #3f48e4;
  color: #fff;
}
a.registration.white {
  background: #fff;
  color: var(--primary-color);
	position: relative;
}
a.registration02,
a.recruitId {
	background-color: #fff;
  color: var(--primary-color);
  margin-top: 18px;
  box-shadow: 0px 0px 3px 0px #1110B780;
  padding-left: 4em;
}
a.recruitId::before {
  content: "";
  position: absolute;
  height: 26px;
  width: 26px;
  background: transparent url(../img/cv_area_logo.png) no-repeat center center;
  background-size: 100%;
  top: 50%;
  left: 2.5em;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
}
a.registration02 {
  margin-top: 5px;
  padding: .6em 1em .7em;
  width: 100%;
  font-size: 14px;
  letter-spacing: .03em;
}
a.registration:hover,
a.registration02:hover,
a.registration.fv:hover,
a.registration.white:hover,
a.recruitId:hover {
	text-decoration: none;
}
@media screen and (max-width:764px) {
  a.registration,
  a.recruitId {
    width: 100%;
    font-size: min(max(18px, calc(1.125rem + ((1vw - 3.75px) * 4.8))), 36px);
  }
  .cv a.registration,
  .cv a.recruitId {
    width: calc(606/670*100%);
    margin: 0 auto;
  }
  .cv a.registration,
  .cv a.recruitId {
    font-size: min(max(16px, calc(1rem + ((1vw - 3.75px) * 4.2667))), 32px);
  }
  a.registration02 {
    font-size: min(max(11px, calc(0.6875rem + ((1vw - 3.75px) * 1.8667))), 18px);
    margin-top: 6%;
  }
  a.recruitId::before {
    height: 1.2em;
    width: 1.2em;
    left: 2.5em;
  }
}



/* --------------------------------------------------
	 footer
-------------------------------------------------- */
footer {
	border-top: solid 1px #E8E6EB;
	background-color: #F7F6FB;
	padding-top: 12px;
	padding-bottom: 12px;
}
footer .inner {
	padding: 20px;
}
footer .inner dl {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-pack: space-between;
    -ms-flex-pack: space-between;
    justify-content: space-between;
}
footer .inner dl dt img {
	width: 300px;
}
footer .inner dl dd ul li {
	display: inline-block;
    margin-right: 12px;
    padding-right: 12px;
	line-height: 1;
    font-size: 11px;
	border-right: solid 1px #394862;
}
footer .inner dl dd ul li:last-child {
    margin-right: 0px;
    padding-right: 0px;
	border-right: none;
}
footer .inner dl dd ul li a {
	color: #394862;
}
@media screen and (max-width:764px) {
  footer .inner {
     padding: 10px 0;
  }
  footer .inner dl {
    display: block;
    position: relative;
    padding-bottom: 15%;
  }
  footer .inner dl dt {
    position: absolute;
    bottom: 0;
    left: 0;
  }
  footer .inner dl dd ul {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -ms-flex-wrap: wrap;
      flex-wrap: wrap;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center;
  }
  footer .inner dl dd ul li {
    margin-right: 0px;
      padding-right: 0px;
      width: 50%;
      border-right: none;
    padding: 7px;
  }
}


/* --------------------------------------------------
	 casesSwiperContainer
-------------------------------------------------- */
.swiper-button-prev:after,
.swiper-button-next:after {
    display: none;
}
.casesSwiperContainer {
    position: relative;
}
/* ページネーション------ */
.casesSwiperContainer .swiper-pagination {
    line-height: 1;
    bottom: 0 !important;
    -webkit-transform: translateY(100%);
    transform: translateY(100%);
}
.casesSwiperContainer .swiper-pagination-bullet {
    width: 12px !important;
    height: 12px !important;
    background: transparent !important;
    border: 1px solid #3f48e4 !important;
    opacity: .8 !important;
}
.casesSwiperContainer .swiper-pagination-bullet-active {
    background-color: #3f48e4 !important;
}
/* 矢印------ */
.casesSwiperContainer .swiper-button-prev {
    left: -20px;
    top: 43%;
    background-image: url(../img/slider_arrow_prev.png);
    -webkit-transform: translateX(-100%);
    transform: translateX(-100%);
    background-size: 16px 61px;
}
.casesSwiperContainer .swiper-button-next {
    right: -20px;
    top: 43%;
    background-image: url(../img/slider_arrow_next.png);
    -webkit-transform: translateX(100%);
    transform: translateX(100%);
    background-size: 16px 61px;
}
.casesSwiperContainer .swiper-button-prev, .casesSwiperContainer .swiper-button-next {
    width: 16px;
    height: 61px;
}
@media screen and (max-width:764px) {
  .casesSwiperContainer .swiper-button-prev {
      left: -2.5%;
  }
  .casesSwiperContainer .swiper-button-next {
      right: -2.5%;
  }
}








