@charset "UTF-8";

/* ---------------------------------------------
  共通
--------------------------------------------- */
.wrapper .button a {
  font-family: "Noto Sans JP", sans-serif;
  font-size: min(38 / 1200 * 100vw, 38px);
  line-height: 1;
  letter-spacing: 0.1em;
  font-weight: 400;
  color: #fff;
  background-color: #06c755;
  border-radius: 20px;
  padding: min(20 / 1200 * 100vw, 20px) 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: min(15 / 1200 * 100vw, 15px);
  position: relative;
  box-shadow: 0px min(7 / 1200 * 100vw, 7px) min(5 / 1200 * 100vw, 5px) 0px rgba(0, 0, 0, 0.2);
}
.wrapper .button a::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: min(28 / 1200 * 100vw, 28px);
  width: min(18 / 1200 * 100vw, 18px);
  height: min(18 / 1200 * 100vw, 18px);
  margin: auto;
  border-top: min(3 / 1200 * 100vw, 3px) solid #fff;
  border-right: min(3 / 1200 * 100vw, 3px) solid #fff;
  transform: rotate(45deg);
}
.wrapper .button a .button_label {
  max-width: 60px;
}
.wrapper .main_bg {
  background-color: #f6faff;
}
.wrapper .section_inner {
  max-width: 1280px;
  margin-inline: auto;
  padding: 0 min(40 / 1200 * 100vw, 40px);
}
.wrapper .cv_button {
  width: min(543 / 1200 * 100vw, 543px);
  margin-inline: auto;
}
.wrapper .cv_01 {
  padding: min(50 / 1200 * 100vw, 50px) 0;
}
.wrapper .cv_02 {
  padding: min(55 / 1200 * 100vw, 55px) 0 min(82 / 1200 * 100%, 82px);
}
.wrapper .cv_03 {
  padding: min(63 / 1200 * 100vw, 63px) 0 min(77 / 1200 * 100%, 77px);
}
.wrapper .cv_head {
  width: min(478 / 1200 * 100%, 478px);
  margin: 0 auto min(20 / 1200 * 100%, 20px);
}
@media (max-width: 750px) {
  .wrapper .button a {
    font-size: min(38 / 750 * 100vw, 38px);
    letter-spacing: 0.18em;
    border-radius: min(20 / 750 * 100vw, 20px);
    padding: min(20 / 750 * 100vw, 20px) 0;
    box-shadow: 0px min(7 / 750 * 100vw, 7px) min(5 / 750 * 100vw, 5px) 0px rgba(0, 0, 0, 0.2);
  }
  .wrapper .button a::after {
    right: min(28 / 750 * 100vw, 28px);
    width: min(18 / 750 * 100vw, 18px);
    height: min(18 / 750 * 100vw, 18px);
    border-top: min(3 / 750 * 100vw, 3px) solid #fff;
    border-right: min(3 / 750 * 100vw, 3px) solid #fff;
  }
  .wrapper .button a .button_label {
    width: min(60 / 750 * 100vw, 60px);
  }
  .wrapper .section_inner {
    padding: 0;
  }
  .wrapper .cv_button {
    width: min(577 / 750 * 100vw, 577px);
  }
  .wrapper .cv_01 {
    padding: min(32 / 750 * 100vw, 32px) 0 min(19 / 750 * 100vw, 19px);
  }
  .wrapper .cv_02 {
    padding: min(35 / 750 * 100vw, 35px) 0 min(75 / 750 * 100%, 75px);
  }
  .wrapper .cv_03 {
    padding: min(50 / 750 * 100vw, 50px) 0 min(80 / 750 * 100%, 80px);
  }
  .wrapper .cv_head {
    width: min(478 / 750 * 100%, 478px);
    margin: 0 auto min(20 / 750 * 100%, 20px);
  }
}
/* ---------------------------------------------
  fv
--------------------------------------------- */
.wrapper .fv {
  background-color: #a2c9e2;
}
.wrapper .fv_inner {
  padding-left: 0;
}
.wrapper .fv_wrap {
  padding: min(80 / 1200 * 100vw, 80px) 0 min(65 / 1200 * 100vw, 65px);
  position: relative;
}
.wrapper .fv_wrap::before {
  content: "";
  background: url(../img/front-page/fv_bg_pc.png) center/cover no-repeat;
  display: block;
  width: min(492 / 1200 * 100vw, 492px);
  height: min(744 / 1200 * 100vw, 744px);
  position: absolute;
  left: 4%;
  bottom: 0;
  pointer-events: none;
}
.wrapper .fv_text {
  width: min(645 / 1200 * 100%, 645px);
  margin: 0 0 0 auto;
}
.wrapper .fv_copy {
  font-family: "Shippori Mincho", serif;
  font-size: min(45 / 1200 * 100vw, 45px);
  line-height: 1.5;
  letter-spacing: -0.05em;
  font-weight: 400;
}
.wrapper .fv_copy span {
  font-size: inherit;
  line-height: 1;
  color: #fff;
  background-color: #004498;
  padding: min(3 / 1200 * 100vw, 3px) min(10 / 1200 * 100vw, 10px) min(9 / 1200 * 100vw, 9px);
  display: inline-block;
}
.wrapper .fv_feature {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: min(5 / 1200 * 100vw, 5px);
  margin-top: min(35 / 1200 * 100vw, 35px);
}
.wrapper .fv_featureAchievement {
  width: 47%;
  flex-shrink: 0;
}
.wrapper .fv_featureAchievement h3 {
  font-family: "Noto Sans JP", sans-serif;
  font-size: min(18 / 1200 * 100vw, 18px);
  line-height: 1.35;
  font-weight: 400;
  color: #fff;
  text-align: center;
  position: relative;
  padding-top: min(20 / 1200 * 100vw, 20px);
}
.wrapper .fv_featureAchievement h3::before {
  content: "";
  background: url(../img/front-page/fv_ribbon_left.png) center/cover no-repeat;
  display: block;
  width: min(49 / 1200 * 100vw, 49px);
  height: min(125 / 1200 * 100vw, 125px);
  position: absolute;
  top: 0;
  left: 0;
}
.wrapper .fv_featureAchievement h3::after {
  content: "";
  background: url(../img/front-page/fv_ribbon_right.png) center/cover no-repeat;
  display: block;
  width: min(49 / 1200 * 100vw, 49px);
  height: min(125 / 1200 * 100vw, 125px);
  position: absolute;
  top: 0;
  right: 0;
}
.wrapper .fv_featureAchievement h3 span {
  font-size: min(23 / 1200 * 100vw, 23px);
  line-height: inherit;
  font-weight: 500;
  color: #b68e15;
}
.wrapper .fv_featureNote {
  font-family: "Noto Sans JP", sans-serif;
  font-size: min(14 / 1200 * 100vw, 14px);
  line-height: 1;
  letter-spacing: 0.03em;
  font-weight: 300;
  color: #fff;
  margin-top: min(25 / 1200 * 100vw, 25px);
  text-align: center;
}
.wrapper .fv_featureBadge {
  font-family: "Noto Sans JP", sans-serif;
  font-size: min(22 / 1200 * 100vw, 22px);
  line-height: 1.3;
  font-weight: 400;
  color: #fff;
  background-color: #004498;
  width: min(158 / 1200 * 100vw, 158px);
  height: min(158 / 1200 * 100vw, 158px);
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  text-align: center;
}
.wrapper .fv_featureBadge span {
  font-size: min(16 / 1200 * 100vw, 16px);
  line-height: inherit;
  font-weight: 300;
  display: contents;
}
.wrapper .fv_buttonWrap {
  background-color: #fff;
  padding: min(62 / 1200 * 100vw, 62px) 0;
  border-radius: 20px;
  margin-top: min(31 / 1200 * 100vw, 31px);
  box-shadow: min(10 / 1200 * 100vw, 10px) min(10 / 1200 * 100vw, 10px) min(12 / 1200 * 100vw, 12px) 0px rgba(0, 0, 0, 0.1);
}
.wrapper .fv_buttonHead {
  font-family: "Noto Sans JP", sans-serif;
  font-size: min(30 / 1200 * 100vw, 30px);
  line-height: 1;
  letter-spacing: 0.08em;
  font-weight: 400;
  margin-bottom: min(24 / 1200 * 100vw, 24px);
  text-align: center;
}
.wrapper .fv_buttonHead_accent {
  font-size: min(30 / 1200 * 100vw, 30px);
  line-height: 1;
  color: #df0024;
}
.wrapper .fv_button {
  width: min(543 / 1200 * 100vw, 543px);
  margin-inline: auto;
}
@media (max-width: 750px) {
  .wrapper .fv {
    background: linear-gradient(180deg, #a2c9e2 0, #a2c9e2 83%, #fff 83%, #fff 100%);
  }
  .wrapper .fv_inner {
    padding: 0 min(35 / 750 * 100vw, 35px);
  }
  .wrapper .fv_wrap {
    padding: min(80 / 750 * 100vw, 80px) 0 min(65 / 750 * 100vw, 65px);
  }
  .wrapper .fv_wrap::before {
    background: url(../img/front-page/fv_bg_sp.png) center/cover no-repeat;
    width: min(565 / 750 * 100vw, 565px);
    height: min(931 / 750 * 100vw, 931px);
    top: min(50 / 750 * 100vw, 50px);
    left: 0;
    margin-inline: auto;
  }
  .wrapper .fv_text {
    width: 100%;
    margin: 0 auto;
    position: relative;
    z-index: 1;
  }
  .wrapper .fv_copy {
    font-size: min(39 / 750 * 100vw, 39px);
    line-height: 2;
    letter-spacing: 0;
    writing-mode: vertical-rl;
    margin: 0 0 0 auto;
  }
  .wrapper .fv_copy span {
    padding: min(10 / 750 * 100vw, 10px) min(5 / 750 * 100vw, 5px);
  }
  .wrapper .fv_feature {
    gap: min(5 / 750 * 100vw, 5px);
    margin-top: 0;
  }
  .wrapper .fv_featureAchievement h3 {
    font-size: min(18 / 750 * 100vw, 18px);
    padding-top: min(20 / 750 * 100vw, 20px);
  }
  .wrapper .fv_featureAchievement h3::before {
    width: min(49 / 750 * 100vw, 49px);
    height: min(125 / 750 * 100vw, 125px);
  }
  .wrapper .fv_featureAchievement h3::after {
    width: min(49 / 750 * 100vw, 49px);
    height: min(125 / 750 * 100vw, 125px);
  }
  .wrapper .fv_featureAchievement h3 span {
    font-size: min(23 / 750 * 100vw, 23px);
  }
  .wrapper .fv_featureNote {
    font-size: min(18 / 750 * 100vw, 18px);
    margin-top: min(35 / 750 * 100vw, 35px);
    width: 45vw;
  }
  .wrapper .fv_featureBadge {
    font-size: min(22 / 750 * 100vw, 22px);
    width: min(168 / 750 * 100vw, 168px);
    height: min(168 / 750 * 100vw, 168px);
  }
  .wrapper .fv_featureBadge span {
    font-size: min(16 / 750 * 100vw, 16px);
  }
  .wrapper .fv_buttonWrap {
    padding: min(40 / 750 * 100vw, 40px) 0;
    border-radius: min(20 / 750 * 100vw, 20px);
    margin-top: min(70 / 750 * 100vw, 70px);
    box-shadow: min(10 / 750 * 100vw, 10px) min(10 / 750 * 100vw, 10px) min(12 / 750 * 100vw, 12px) 0px rgba(0, 0, 0, 0.1);
  }
  .wrapper .fv_buttonHead {
    font-size: min(33 / 750 * 100vw, 33px);
    line-height: 1;
    letter-spacing: 0.08em;
    margin-bottom: min(24 / 750 * 100vw, 24px);
  }
  .wrapper .fv_buttonHead_accent {
    font-size: min(33 / 750 * 100vw, 33px);
    line-height: 1;
  }
  .wrapper .fv_button {
    width: min(577 / 750 * 100vw, 577px);
    margin-inline: auto;
  }
}

/* ---------------------------------------------
  works
--------------------------------------------- */
.wrapper .works {
  background-color: #e4edf5;
}
.wrapper .works_02 {
  position: absolute;
  top: -6%;
  left: 0;
  right: 0;
  margin-inline: auto;
  width: min(216 / 1200 * 100vw, 216px);
}
.wrapper .works_wrap {
  background-color: #fff;
  padding: min(20 / 1200 * 100vw, 20px) 0;
}
.wrapper .works_03 {
  margin-inline: auto;
  width: min(1079 / 1200 * 100vw, 1079px);
}
@media (max-width: 750px) {
  .wrapper .works_02 {
    top: -6%;
    width: min(216 / 750 * 100vw, 216px);
  }
  .wrapper .works_wrap {
    padding: min(20 / 750 * 100vw, 20px) 0;
    margin: 0 min(30 / 750 * 100vw, 30px);
  }
  .wrapper .works_03 {
    width: min(627 / 750 * 100vw, 627px);
  }
  .wrapper .works_slider .slick-slide {
    margin: 0 min(30 / 750 * 100vw, 30px);
  }
  .wrapper .works_slider .slick-slide:nth-of-type(odd) {
    width: min(605 / 750 * 100vw, 605px);
  }
  .wrapper .works_slider .slick-slide:nth-of-type(even) {
    width: min(540 / 750 * 100vw, 540px);
  }
}
/* ---------------------------------------------
  about
--------------------------------------------- */
@media (max-width: 750px) {
  .wrapper .about_slideWrap .slick-dotted.slick-slider {
    position: absolute;
    top: 25%;
    margin: 0 auto;
    left: 0;
    right: 0;
    width: min(570 / 750 * 100vw, 570px);
  }
  .wrapper .about_slider li > div {
    width: min(262 / 750 * 100vw, 262px);
  }
  .wrapper .about_slider .slick-arrow {
    background-size: contain;
    background-repeat: no-repeat;
    width: min(48 / 750 * 100vw, 48px);
    height: min(48 / 750 * 100vw, 48px);
    cursor: pointer;
    position: absolute;
    top: 59%;
    translate: 0 -50%;
    z-index: 1;
  }
  .wrapper .about_slider .slick-arrow::before {
    font-size: 0;
  }
  .wrapper .about_slider .slick-next {
    background-image: url(../img/front-page/about_slide_next.png);
    right: -12.5%;
  }
  .wrapper .about_slider .slick-prev {
    background-image: url(../img/front-page/about_slide_prev.png);
    left: -12.5%;
  }
  .wrapper .about_slider .slick-dots li {
    pointer-events: none;
    margin: 0 min(10 / 750 * 100vw, 10px);
  }
  .wrapper .about_slider .slick-dots li button::before {
    content: "";
    cursor: pointer;
    width: min(9 / 750 * 100vw, 9px);
    height: min(9 / 750 * 100vw, 9px);
    margin: auto;
    position: absolute;
    top: min(25 / 750 * 100vw, 25px);
    left: 0;
    right: 0;
    pointer-events: all;
    opacity: 1;
    z-index: 2;
    background-color: #bfbfbf;
    border-radius: 50%;
  }
  .wrapper .about_slider .slick-dots li.slick-active button::before {
    background-color: #1a4393;
  }
}
/* ---------------------------------------------
  point
--------------------------------------------- */
.wrapper .point ul {
  display: grid;
  grid-template: repeat(2, 1fr) / repeat(2, 1fr);
  grid-column-gap: min(15 / 1200 * 100vw, 15px);
  grid-row-gap: min(35 / 1200 * 100vw, 35px);
}
.wrapper .point ul li {
  width: min(592 / 1200 * 100vw, 592px);
}
@media (max-width: 750px) {
  .wrapper .point ul {
    display: flex;
    flex-direction: column;
    gap: min(46 / 750 * 100vw, 46px);
  }
  .wrapper .point ul li {
    width: min(630 / 750 * 100vw, 630px);
    margin-inline: auto;
  }
}
/* ---------------------------------------------
  recruit
--------------------------------------------- */
.wrapper .recruit {
  background-color: #f8f8f8;
  padding-bottom: min(175 / 1200 * 100vw, 175px);
}
.wrapper .recruit_slideWrap .slick-dotted.slick-slider {
  margin-bottom: 0;
}
.wrapper .recruit_slideWrap .slick-track {
  display: flex;
  gap: min(18 / 1200 * 100vw, 18px);
}
.wrapper .recruit_slider .slick-slide:nth-of-type(odd) > div {
  margin: 0 auto 0 0;
}
.wrapper .recruit_slider .slick-slide:nth-of-type(even) > div {
  margin: 0 0 0 auto;
}
.wrapper .recruit_slider .slick-arrow {
  background-size: contain;
  background-repeat: no-repeat;
  width: min(24 / 1200 * 100vw, 24px);
  height: min(65 / 1200 * 100vw, 65px);
  cursor: pointer;
  position: absolute;
  top: 59%;
  translate: 0 -50%;
  z-index: 1;
}
.wrapper .recruit_slider .slick-arrow::before {
  font-size: 0;
}
.wrapper .recruit_slider .slick-next {
  background-image: url(../img/front-page/recruit_slide_next.png);
  right: -00.5%;
}
.wrapper .recruit_slider .slick-prev {
  background-image: url(../img/front-page/recruit_slide_prev.png);
  left: 0;
}
.wrapper .recruit_slider .slick-dots li {
  pointer-events: none;
  margin: 0 min(15 / 1200 * 100vw, 15px);
}
.wrapper .recruit_slider .slick-dots li button::before {
  content: "";
  cursor: pointer;
  width: min(12 / 1200 * 100vw, 12px);
  height: min(12 / 1200 * 100vw, 12px);
  margin: auto;
  position: absolute;
  top: min(51 / 1200 * 100vw, 51px);
  left: 0;
  right: 0;
  pointer-events: all;
  opacity: 1;
  z-index: 2;
  background-color: #bfbfbf;
  border-radius: 50%;
}
.wrapper .recruit_slider .slick-dots li.slick-active button::before {
  background-color: #1a4393;
}
@media (max-width: 750px) {
  .wrapper .recruit {
    padding-bottom: min(105 / 750 * 100vw, 105px);
  }
  .wrapper .recruit_slider li > div {
    width: min(692 / 750 * 100vw, 692px);
    margin-inline: auto !important;
  }
  .wrapper .recruit_slider .slick-slide:nth-of-type(odd) > div{
    margin: 0;
  }
  .wrapper .recruit_slider .slick-slide:nth-of-type(even) > div{
    margin: 0;
  }
  .wrapper .recruit_slider .slick-arrow {
    width: min(24 / 750 * 100vw, 24px);
    height: min(65 / 750 * 100vw, 65px);
    top: 57%;
  }
  .wrapper .recruit_slider .slick-next {
    right: 1.5%;
  }
  .wrapper .recruit_slider .slick-prev {
    left: 2.5%;
  }
  .wrapper .recruit_slider .slick-dots li {
    margin: 0 min(10 / 750 * 100vw, 10px);
  }
  .wrapper .recruit_slider .slick-dots li button::before {
    width: min(9 / 750 * 100vw, 9px);
    height: min(9 / 750 * 100vw, 9px);
    top: min(37 / 750 * 100vw, 37px);
  }
}
/* ---------------------------------------------
  flow
--------------------------------------------- */
.wrapper .flow {
  background-color: #fff;
}
/* ---------------------------------------------
  faq
--------------------------------------------- */
.wrapper .faq {
  background-color: #f8f8f8;
  padding-bottom: min(91 / 1200 * 100vw, 91px);
}
.wrapper .faqAccordion:not(:last-of-type) {
  margin-bottom: min(28 / 1200 * 100vw, 28px);
}
.wrapper .faqAccordion_button {
  position: relative;
  cursor: pointer;
}
.wrapper .faqAccordion_status {
  display: flex;
  position: absolute;
  top: 50%;
  right: min(50 / 1200 * 100vw, 50px);;
  width: min(20 / 1200 * 100vw, 20px);
  height: min(20 / 1200 * 100vw, 20px);
  transform: translate(0, -50%);
  align-items: center;
  justify-content: center;
}
.wrapper .faqAccordion_status::before {
  content: "";
  width: 100%;
  height: 100%;
  border-top: solid min(2 / 1200 * 100vw, 2px) #1a4393;
  border-right: solid min(2 / 1200 * 100vw, 2px) #1a4393;
  transform: rotate(135deg) translate(-20%, 20%);
}
.wrapper .faqAccordion_button.is-open .faqAccordion_status::before {
  transform: rotate(-45deg) translate(-20%, 20%);
}
.wrapper .faqAccordion_body {
  display: none;
}
@media (max-width: 750px) {
  .wrapper .faq {
    padding-bottom: min(55 / 750 * 100vw, 55px);
  }
  .wrapper .faqAccordion {
    padding: 0 min(30 / 750 * 100vw, 30px);
  }
  .wrapper .faqAccordion:not(:last-of-type) {
    margin-bottom: min(30 / 750 * 100vw, 30px);
  }
  .wrapper .faqAccordion_status {
    right: min(43 / 750 * 100vw, 43px);;
    width: min(22 / 750 * 100vw, 22px);
    height: min(22 / 750 * 100vw, 22px);
  }
  .wrapper .faqAccordion_status::before {
    border-top: solid min(2 / 750 * 100vw, 2px) #1a4393;
    border-right: solid min(2 / 750 * 100vw, 2px) #1a4393;
  }
}