@charset "UTF-8";
:root {
  --main-color: #2d4b91;
  --main-color-dark: #101252;
  --main-color-font: #1d4cbb;
  --main-color-bright: #e7ecf9;
  --emphasis-color: #b71a3f;
}
/* ---------------------------------------common set */
/* -------------------------
   共通設定
------------------------- */
html {
  font-size: 1px; /* PC基準: 1rem = 1px */
  overscroll-behavior: none;
  scroll-behavior: smooth;
}
/* -------------------------
   スマホ（〜767px）
   → 375px幅を基準に拡大
------------------------- */
@media (max-width: 767px) {
  html {
    font-size: calc(100vw / 375);
  }
}
/* -------------------------
   タブレット（768〜1180px）
   → デザイン幅1140px基準で縮小
------------------------- */
@media (min-width: 768px) and (max-width: 1180px) {
  html {
    font-size: calc(100vw / 1180);
  }
}
/* CSS STYLE */
html {
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
    Arial, "Noto Sans JP", sans-serif;
}
body {
  font-size: 16rem;
  font-weight: 500;
  line-height: 1.8;
}
@media only screen and (max-width: 959px) {
  body {
    font-size: 13rem;
  }
}
a,
a img {
  -webkit-transition: 0.3s ease;
  transition: 0.3s ease;
}
a[href^="tel:"] {
  pointer-events: none;
  text-decoration: none;
}
a:hover img {
  opacity: 0.7;
}
img {
  width: 100%;
  height: auto;
}
iframe {
  vertical-align: bottom;
}
.cb {
  clear: both;
}
.pcnone {
  display: none !important;
}
.nolink {
  pointer-events: none;
  color: #999 !important;
}
/* line */
.line {
  display: block;
}
.pc-line {
  display: block;
}
.sp-line {
  display: inline;
}
@media only screen and (max-width: 767px) {
  .pc-line {
    display: inline;
  }
  .sp-line {
    display: block;
  }
}
.anchor {
  padding-top: 80rem;
  margin-top: -80rem;
}
/* PARTS */
#contents {
  /*
	background: #fff url(../img/header-line.webp) center top repeat-x;
	background-size: 1500rem;
	width: 100%;
	*/
  padding-top: 80rem;
  overflow: hidden;
  z-index: 2;
}
@media only screen and (max-width: 767px) {
  #contents {
    padding-top: 67rem;
  }
}
.inner {
  position: relative;
  width: 100%;
  max-width: 1180rem;
  margin-left: auto;
  margin-right: auto;
  padding-left: 40rem;
  padding-right: 40rem;
}
@media only screen and (max-width: 767px) {
  .inner {
    padding-left: 20rem;
    padding-right: 20rem;
  }
}
.btn {
  text-align: center;
}
a.btn {
  position: relative;
  top: 0;
  left: 0;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  border-radius: 65rem;
  background: linear-gradient(90deg, #ed006a 0%, #f87306 100%);
  width: 100%;
  max-width: 464rem;
  height: 78rem;
  padding: 0 20rem;
  font-size: 24rem;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  color: #fff;
  box-shadow: 4rem 6rem 0 #a3274b;
}
a.btn:hover {
  background: linear-gradient(90deg, #f87306 0%, #ed006a 100%);
  transform: translateY(4rem);
  box-shadow: none;
  box-shadow: 4rem 2rem 0 #a3274b;
}
a.btn.ic-mail::before {
  display: inline-block;
  margin-right: 8rem;
  content: "";
  width: 32rem;
  height: 32rem;
  background: url("../img/ic-mail.svg") center no-repeat;
  background-size: cover;
}
a.btn.ic-speech-bubble::before {
  display: inline-block;
  margin-right: 8rem;
  content: "";
  width: 32rem;
  height: 32rem;
  background: url("../img/ic-speech-bubble.svg") center no-repeat;
  background-size: cover;
}
@media only screen and (max-width: 767px) {
  a.btn.ic-mail::before {
    display: inline-block;
    margin-right: 8rem;
    content: "";
    width: 24rem;
    height: 24rem;
    background: url("../img/ic-mail.svg") center no-repeat;
    background-size: cover;
  }
}
a.btn.medium {
  width: 420rem;
  height: 52rem;
  font-size: 18rem;
  box-shadow: none;
  box-shadow: 3rem 4rem 0 rgba(62, 66, 155, 0.15);
}
a.btn.medium::after {
  display: inline-block;
  margin-left: 8rem;
  content: "";
  width: 24rem;
  height: 24rem;
  background: url("../img/arrow-right.svg") center no-repeat;
  background-size: contain;
  -webkit-transition: 0.3s ease;
  transition: 0.3s ease;
}
a.btn.medium:hover {
  box-shadow: none;
}
a.btn.medium:hover:after {
  content: "";
  -webkit-transform: translate(5rem, 0);
  transform: translate(5rem, 0);
}
a.btn.medium.services {
  background: #e96a03;
}
a.btn.medium.cources {
  background: #2d419a;
}
a.btn.small {
  width: 190rem;
  height: 36rem;
  font-size: 15rem;
  box-shadow: none;
}
a.btn.small:hover {
  transform: translateY(2rem);
}
a.btn.small.contact {
  background: #e96a03;
}
a.btn.small.contact::before {
  display: inline-block;
  margin-right: 10rem;
  content: "";
  width: 20rem;
  height: 20rem;
  background: url("../img/ic-mail.svg") center no-repeat;
  background-size: contain;
}
a.btn.small.document::before {
  display: inline-block;
  margin-right: 10rem;
  content: "";
  width: 20rem;
  height: 20rem;
  background: url("../img/ic-document.svg") center no-repeat;
  background-size: contain;
}
@media only screen and (max-width: 767px) {
  a.btn.small.contact::before,
  a.btn.small.document::before {
    display: none;
  }
}
a.btn.small.document {
  background: var(--main-color-dark);
}
a.btn.sub-color:hover {
  background: #ffffff;
  color: #0d60b9;
}
a.btn.em-color:hover {
  background: #ffffff;
  color: #00006c;
}
@media only screen and (max-width: 767px) {
  a.btn {
    border-radius: 40vw;
    width: 80vw;
    max-width: 100%;
    height: 48rem;
    padding: 0 2rem;
    font-size: 18rem;
    box-shadow: 2rem 3rem 0 #a3274b;
  }
  a.btn.medium {
    width: 80vw;
    height: 48rem;
    font-size: 14rem;
  }
  a.btn.small {
    width: 48rem;
    height: 48rem;
    font-size: 10rem;
    border-radius: 4rem;
    padding: 1rem 4rem;
    letter-spacing: 1rem;
    line-height: 1.2;
  }
  a.btn.sub-color:hover::after {
    content: "";
    position: absolute;
    display: inline-block;
    background: url("../img/ic-arrow-right_sub.svg") center no-repeat;
    background-size: contain;
    width: 14rem;
    height: 14rem;
    right: 7rem;
    top: 50%;
    margin-top: -7rem;
  }
  a.btn.em-color:hover::after {
    content: "";
    position: absolute;
    display: inline-block;
    width: 14rem;
    height: 14rem;
    right: 7rem;
    top: 50%;
    margin-top: -7rem;
  }
  a.btn.small::after,
  a.btn.small:hover::after {
    content: none;
  }
  a.btn.small .sp-hidden {
    display: none;
  }
}
.emphasis {
  color: var(--main-color-font);
  font-weight: 600;
}
.big {
  font-size: 112.5%;
}
.sml {
  font-size: 87.5%;
  line-height: 2.1;
}
.notes {
  font-size: 13rem;
  font-weight: 400;
  color: #707070;
}
.fade {
  opacity: 0;
  -webkit-transition: 0.6s linear;
  transition: 0.6s linear;
}
.fade.active {
  opacity: 1;
}
.fade-l {
  position: relative;
  opacity: 0;
  -webkit-transform: translate(-20rem, 0);
  transform: translate(-20rem, 0);
  -webkit-transition: 0.6s ease-out;
  transition: 0.6s ease-out;
}
.fade-l.active {
  opacity: 1;
  -webkit-transform: translate(0, 0);
  transform: translate(0, 0);
}
.fade-r {
  position: relative;
  opacity: 0;
  -webkit-transform: translate(20rem, 0);
  transform: translate(20rem, 0);
  -webkit-transition: 0.6s ease-out;
  transition: 0.6s ease-out;
}
.fade-r.active {
  opacity: 1;
  -webkit-transform: translate(0, 0);
  transform: translate(0, 0);
}
.fade-t {
  position: relative;
  opacity: 0;
  -webkit-transform: translate(0, -20rem);
  transform: translate(0, -20rem);
  -webkit-transition: 0.6s ease-out;
  transition: 0.6s ease-out;
}
.fade-t.active {
  opacity: 1;
  -webkit-transform: translate(0, 0);
  transform: translate(0, 0);
}
.fade-b {
  position: relative;
  opacity: 0;
  -webkit-transform: translate(0, 20rem);
  transform: translate(0, 20rem);
  -webkit-transition: 0.6s ease-out;
  transition: 0.6s ease-out;
}
.fade-b.active {
  opacity: 1;
  -webkit-transform: translate(0, 0);
  transform: translate(0, 0);
}
.fade-w {
  -webkit-transition: 0.6s ease-out;
  transition: 0.6s ease-out;
  -webkit-transform: scale(1.05, 1.05);
  transform: scale(1.05, 1.05);
  opacity: 0;
}
.fade-z {
  -webkit-transition: 0.6s ease-out;
  transition: 0.6s ease-out;
  -webkit-transform: scale(0.95, 0.95);
  transform: scale(0.95, 0.95);
  opacity: 0;
}
.fade-w.active,
.fade-z.active {
  -webkit-transform: scale(1, 1);
  transform: scale(1, 1);
  opacity: 1;
}
/* HELPER */
.hp_mbm {
  margin-bottom: 24rem;
}
@media only screen and (max-width: 767px) {
  .hp_mbm {
    margin-bottom: 1.6rem;
  }
}
.hp_underline {
  background: linear-gradient(transparent 80%, #ffd3da 80%);
}
/* -------------------------------------------------------------------------- HEADER */
header {
  position: fixed;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 80rem;
  -webkit-transition: 0.4s ease-out;
  transition: 0.4s ease-out;
  z-index: 10000;
}
header .header-top {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: #fff;
  width: 100%;
  height: 80rem;
  padding: 0 50rem;
  -webkit-transition: 0.4s ease-out;
  transition: 0.4s ease-out;
  z-index: 1;
  background: #fff url(../img/header-line.webp) center top repeat-x;
  background-size: 1500rem;
}
header.active .header-top {
  position: absolute;
  top: 0rem;
  left: 0;
  height: 80rem;
}
header.active.hide {
  top: -80rem;
  height: 0;
}
header.active .header-top {
  top: 0rem;
  height: 80rem;
}
header .header-top .menu-logo {
  width: 156rem;
  font-size: 0;
}
header .header-top .menu-btn-unit {
  display: flex;
  column-gap: 20rem;
}
@media only screen and (max-width: 767px) {
  /* HEADER sp*/
  header {
    height: 67rem;
    z-index: 100000;
  }
  header .header-top {
    height: 67rem;
    padding: 6rem 20rem 6rem 20rem;
    background: #fff url(../img/header-line.webp) center top repeat-x;
    background-size: 1500rem;
  }
  header.active .header-top {
    position: absolute;
    top: 0;
    left: 0;
    height: 67rem;
  }
  header.active {
    box-shadow: 0 2rem 2rem rgba(0, 0, 0, 0.15);
  }
  header.hide {
    box-shadow: none;
  }
  header.hide .header-top {
    top: -70rem;
  }
  header .header-top .menu-logo {
    width: 125rem;
    font-size: 0;
  }
  header .header-top .menu-btn-unit {
    column-gap: 10rem;
    padding-top: 5rem;
  }
  header .header-top .menu-btn-unit li {
    display: block;
  }
}
/* -------------------------------------------------------------------------- FOOTER */
footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  border-top: 1rem solid #e6e6e6;
  background-color: #fff;
  width: 100%;
  padding: 20rem 50rem 30rem 50rem;
  z-index: 2;
}
footer .logo {
  display: flex;
  align-items: flex-end;
  font-size: 10rem;
  letter-spacing: 0.7rem;
  line-height: 1.4;
  color: #848484;
}
footer .logo img {
  width: 120rem;
  margin-right: 20rem;
}
footer .gft-cybertrust {
  width: 100rem;
  height: 72rem;
}
#gotop {
  position: fixed;
  right: 20rem;
  bottom: 20rem;
  width: 50rem;
  height: 50rem;
  z-index: 10000;
}
#gotop a {
  display: block;
  background-color: var(--main-color);
  border-radius: 50rem;
  width: 50rem;
  height: 50rem;
  font-size: 10rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0;
  line-height: 46rem;
  color: #fff;
}
#gotop a:hover {
  background-color: var(--main-color-dark);
}
@media only screen and (max-width: 767px) {
  footer {
    padding: 35rem 20rem 45rem 20rem;
  }
  footer .logo {
    font-size: 9rem;
    line-height: 1.2;
    flex-direction: column;
    align-items: flex-start;
  }
  footer .logo img {
    display: block;
    margin-bottom: 1.5rem;
    margin-right: auto;
  }
  footer .gft-cybertrust {
    width: 100rem;
    height: 72rem;
  }
  #gotop {
    right: 20rem;
    bottom: 20rem;
    width: 50rem;
    height: 50rem;
  }
  #gotop a {
    border-radius: 50rem;
    width: 50rem;
    height: 50rem;
    font-size: 10rem;
    line-height: 46rem;
  }
}
/* -------------------------------------------------------------------------- LP */
.sp-menu {
  display: none;
}
@media only screen and (max-width: 767px) {
  .sp-menu {
    position: fixed;
    top: -4rem;
    left: 0;
    width: 100%;
    height: 4rem;
    z-index: 2;
    display: none;
  }
  .sp-menu .sp-fixed {
    position: fixed;
    top: -4rem;
    left: 0;
    background-color: #eef6ff;
    width: 100%;
    height: 4rem;
    -webkit-transition: 0.4s ease-out;
    transition: 0.4s ease-out;
  }
  .sp-menu.active .sp-fixed {
    position: fixed;
    top: 6.2rem;
    left: 0;
  }
  .sp-menu.active.move .sp-fixed {
    top: calc(6rem + 0.7rem);
    top: 6.2rem;
  }
  .sp-menu ul {
    display: flex;
    position: relative;
    background-color: #eef6ff;
    width: 100%;
    height: 4rem;
    font-size: 1.2rem;
    font-weight: 700;
  }
  .sp-menu ul li {
    border-right: 1rem solid #cfddec;
    width: 100%;
  }
  .sp-menu ul li:last-child {
    border-right: none;
  }
  .sp-menu ul a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    color: var(--main-color);
  }
}
/* -------------------------------------------------------------------------- MODULE */
.el_caption {
  font-size: 12rem;
  font-weight: 300;
}
.el_caption__w {
  font-size: 12rem;
  color: white;
  font-weight: 300;
}
.el_caption__right {
  text-align: right;
}
@media only screen and (max-width: 767px) {
  .el_caption {
    font-size: 10rem;
  }
  .el_caption__w {
    font-size: 10rem;
  }
}
.section-title {
  text-align: center;
  font-size: 40rem;
  font-weight: bold;
}
.section-title .sub {
  display: block;
  font-size: 24rem;
  text-align: center;
  font-weight: 500;
}
.section-title .dots {
  position: relative;
  color: var(--main-color-font);
}
.section-title .dots::before {
  content: "";
  width: 8rem;
  height: 8rem;
  border-radius: 4rem;
  background: var(--main-color-font);
  position: absolute;
  top: 0;
  left: 50%;
  margin-left: -4rem;
}
@media only screen and (max-width: 767px) {
  .section-title {
    font-size: 20rem;
  }
  .section-title .sub {
    font-size: 14rem;
    margin-bottom: 4rem;
  }
  .section-title .dots::before {
    content: "";
    width: 5rem;
    height: 5rem;
    border-radius: 4rem;
    background: var(--main-color-font);
    position: absolute;
    top: -2rem;
    left: 50%;
    margin-left: -2.5rem;
  }
}
/* cv-block */
.cv-block {
  background: url("../img/cv-bg.webp") center repeat-x;
  background-size: cover;
  padding: 60rem 0;
}
.cv-block-inner {
  position: relative;
  width: 100%;
  max-width: 1180rem;
  text-align: center;
  color: #ffffff;
  margin: 0 auto;
  padding: 0 40rem;
}
@media only screen and (max-width: 767px) {
  .cv-block-inner {
    padding: 0 20rem;
  }
}
.cv-block-inner.deco::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: -60rem;
  width: 140rem;
  height: 210rem;
  background: url(../img/guidance-woman.svg) center no-repeat;
  background-size: contain;
}
.cv-block-inner.deco::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -60rem;
  width: 140rem;
  height: 210rem;
  background: url(../img/guidance-man.svg) center no-repeat;
  background-size: contain;
}
@media only screen and (max-width: 767px) {
  .cv-block-inner.deco::before {
    content: none;
  }
  .cv-block-inner.deco::after {
    content: none;
  }
}
.cv-block h3 {
  position: relative;
  display: inline-block;
  text-align: center;
  color: #ffffff;
  font-size: 20rem;
  margin-bottom: 18rem;
}
.cv-block h3 span.cv-emphasis {
  display: block;
  font-size: 36rem;
  font-weight: bold;
}
.cv-block h3.decoration01::before {
  content: "";
  position: absolute;
  width: 90rem;
  height: 170rem;
  left: -100rem;
  top: 0;
  background: url("../img/cv-decoration01-left.svg") center no-repeat;
  background-size: contain;
}
.cv-block h3.decoration01::after {
  content: "";
  position: absolute;
  width: 90rem;
  height: 170rem;
  right: -100rem;
  top: 0;
  background: url("../img/cv-decoration01-right.svg") center no-repeat;
  background-size: contain;
}
@media only screen and (max-width: 767px) {
  .cv-block h3.decoration01::before {
    content: "";
    position: absolute;
    width: 45rem;
    height: 85rem;
    left: -45rem;
    top: auto;
    bottom: 0;
    background: url("../img/cv-decoration01-left.svg") center no-repeat;
    background-size: contain;
  }
  .cv-block h3.decoration01::after {
    content: "";
    position: absolute;
    width: 45rem;
    height: 85rem;
    right: -45rem;
    top: auto;
    bottom: 0;
    background: url("../img/cv-decoration01-right.svg") center no-repeat;
    background-size: contain;
  }
}
.cv-block h3.decoration02::before {
  content: "";
  position: absolute;
  width: 25rem;
  height: 46rem;
  left: -50rem;
  top: 0;
  background: url("../img/cv-decoration02-left.svg") center no-repeat;
  background-size: contain;
}
.cv-block h3.decoration02::after {
  content: "";
  position: absolute;
  width: 25rem;
  height: 46rem;
  right: -50rem;
  top: 0;
  background: url("../img/cv-decoration02-right.svg") center no-repeat;
  background-size: contain;
}
@media only screen and (max-width: 767px) {
  .cv-block h3.decoration02::before {
    content: "";
    position: absolute;
    width: 13rem;
    height: 23rem;
    left: -25rem;
    top: 1rem;
    background: url("../img/cv-decoration02-left.svg") center no-repeat;
    background-size: contain;
  }
  .cv-block h3.decoration02::after {
    content: "";
    position: absolute;
    width: 13rem;
    height: 23rem;
    right: -25rem;
    top: 1rem;
    background: url("../img/cv-decoration02-right.svg") center no-repeat;
    background-size: contain;
  }
}
.btn-box {
  text-align: center;
}
.cv-block .caption {
  position: absolute;
  right: 0;
  bottom: -40rem;
}
@media only screen and (max-width: 767px) {
  .cv-block {
    padding: 48rem 0 60rem 0;
  }
  .cv-block-inner {
    padding: 0 16rem;
  }
  .cv-block h3 {
    font-size: 14rem;
  }
  .cv-block h3 span.cv-emphasis {
    font-size: 20rem;
  }
  .cv-block .caption {
    bottom: -28rem;
  }
}
/* section-header */
.section-header {
  text-align: center;
  margin-bottom: 40rem;
}
.section-header h2 {
  margin-bottom: 24rem;
}
.section-header p {
  font-size: 18rem;
}
@media only screen and (max-width: 767px) {
  .section-header p {
    font-size: 13rem;
  }
}
/* -------------------------------------------------------------------------- MENU */
.main-menu {
  position: relative;
  width: 100%;
  height: 75rem;
  -webkit-transition: 0.4s ease-out;
  transition: 0.4s ease-out;
  z-index: 10001;
}
.main-menu .menu-fixed {
  background-color: var(--main-color-bright);
  width: 100%;
  height: 75rem;
  -webkit-transition: 0.4s ease-out;
  transition: 0.4s ease-out;
  z-index: 10001;
  border-bottom: solid 1rem #cecce3;
}
.main-menu.active .menu-fixed {
  position: fixed;
  top: 80rem;
  left: 0;
}
.main-menu.active.move .menu-fixed {
  top: 80rem;
}
.main-menu ul {
  display: flex;
  position: relative;
  width: 100%;
  max-width: 1100rem;
  height: 75rem;
  margin: 0 auto;
}
.main-menu ul {
  display: flex;
  position: relative;
  width: 100%;
  max-width: 1100rem;
  height: 75rem;
  margin: 0 auto;
}
.main-menu ul li {
  position: relative;
  width: 25%;
  height: 75rem;
  font-size: 16rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0;
  text-align: center;
}
.main-menu ul li:before,
.main-menu ul li:after {
  content: "";
  position: absolute;
  top: 50%;
  display: block;
  height: 36rem;
  margin-top: -18rem;
}
.main-menu ul li:before {
  left: 0;
  border-left: 1rem solid #cecce3;
}
.main-menu ul li:last-child:after {
  right: 0;
  border-right: 1rem solid #cecce3;
}
.main-menu a {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  padding: 10rem;
  color: var(--main-color-font);
  letter-spacing: 0.05em;
}
.main-menu a:hover {
  background-color: var(--main-color);
  color: white;
}
.main-menu a::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 4rem;
  width: 12rem;
  height: 7rem;
  margin-left: -6rem;
  background: url("../img/arrow-down.svg") bottom center no-repeat;
  background-size: contain;
  -webkit-transition: 0.3s ease;
  transition: 0.3s ease;
}
.main-menu a:hover:after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 12rem;
  height: 7rem;
  margin-left: -6rem;
  background: url("../img/arrow-down_w.svg") bottom center no-repeat;
  background-size: contain;
}
#main-menu.is_section-about li {
  -webkit-transition: 0.3s ease;
  transition: 0.3s ease;
}
#main-menu.is_section-about li:nth-child(1) a {
  background-color: var(--main-color);
  color: white;
}
#main-menu.is_section-about li:nth-child(1) a::after {
  content: none;
}
#main-menu.is_section-menu li:nth-child(2) a {
  background-color: var(--main-color);
  color: white;
}
#main-menu.is_section-menu li:nth-child(2) a::after {
  content: none;
}
#main-menu.is_section-menu li:nth-child(2) a {
  background-color: var(--main-color);
  color: white;
}
#main-menu.is_section-menu li:nth-child(2) a::after {
  content: none;
}
#main-menu.is_section-menu li:nth-child(2) a {
  background-color: var(--main-color);
  color: white;
}
#main-menu.is_section-menu li:nth-child(2) a::after {
  content: none;
}
#main-menu.is_section-case li:nth-child(3) a {
  background-color: var(--main-color);
  color: white;
}
#main-menu.is_section-case li:nth-child(3) a::after {
  content: none;
}
#main-menu.is_section-faq li:nth-child(4) a {
  background-color: var(--main-color);
  color: white;
}
#main-menu.is_section-faq li:nth-child(4) a::after {
  content: none;
}
@media only screen and (max-width: 767px) {
  .main-menu {
    background-color: #eef6ff;
    width: 100%;
    height: auto;
  }
  .main-menu .menu-fixed {
    height: auto;
  }
  .main-menu.active .menu-fixed {
    position: fixed;
    top: 67rem; /* SP時のheaderの高さ分下に配置 */
  }
  .main-menu.active.move .menu-fixed {
    top: 67rem; /* SP時のheaderの高さ分下に配置 */
  }
  .main-menu br {
    display: none;
  }
  .main-menu ul {
    width: 100%;
    display: block;
    height: auto;
    border-top: 1rem solid #cecce3;
  }
  .main-menu ul li {
    border-bottom: 1rem solid #cecce3;
    width: 100%;
    height: auto;
    font-size: 14rem;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
  }
  .main-menu ul li:last-child {
    border-bottom: none;
  }
  .main-menu a {
    display: block;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    padding: 12rem;
  }
  .main-menu a::after {
    content: "";
    position: absolute;
    left: auto;
    right: 10rem;
    bottom: 50%;
    width: 12rem;
    height: 7rem;
    margin-left: 0;
    margin-bottom: -3.5rem;
    background: url("../img/arrow-down.svg") bottom center no-repeat;
    background-size: contain;
    -webkit-transition: 0.3s ease;
    transition: 0.3s ease;
  }
  .main-menu a:hover:after {
    content: "";
    position: absolute;
    left: auto;
    right: 10rem;
    bottom: 40%;
    width: 12rem;
    height: 7rem;
    margin-left: 0;
    margin-bottom: -3.5rem;
    background: url("../img/arrow-down_w.svg") bottom center no-repeat;
    background-size: contain;
  }
}
/* -------------------------------------------------------------------------- MAIN AREA */
#main-area {
  background: url("../img/main-bg-pc.webp") center no-repeat var(--main-color);
  background-size: 2000rem auto;
  height: 540rem;
}
#main-area .inner {
  position: relative;
  padding: 60rem 40rem 0 40rem;
  max-width: 1180rem;
}
#main-area .page-title {
  font-size: 22rem;
  color: white;
  letter-spacing: 0.05em;
}
#main-area .page-title .sp-line {
  display: none;
}
#main-area .page-title span {
  display: block;
}
#main-area .page-title span.main {
  display: inline-block;
  padding: 13rem 16rem;
  margin-top: 16rem;
  font-size: 48rem;
  color: var(--main-color-dark);
  font-weight: bold;
  line-height: 1;
  background: white;
}
#main-area .page-title span.main.first {
  padding-right: 0;
}
.cv-unit {
  padding: 35rem 0 40rem 0;
}
#main-area .embrems {
  position: absolute;
  right: 50rem;
  top: 14rem;
  display: flex;
  justify-content: space-between;
  width: 300rem;
}
#main-area .embrems p {
  width: 145rem;
  height: 145rem;
}
@media only screen and (max-width: 767px) {
  #main-area {
    background: url("../img/main-bg-sp.webp") center bottom no-repeat
      var(--main-color);
    background-size: 100% auto;
    height: 540rem;
  }
  #main-area .inner {
    padding: 24rem 20rem 0 20rem;
    max-width: 100%;
    height: 100%;
  }
  #main-area .page-title {
    font-size: 13rem;
    color: white;
  }
  #main-area .page-title span {
    display: block;
  }
  #main-area .page-title .sp-line {
    display: block;
  }
  #main-area .page-title span.main {
    font-size: 21rem;
    padding: 8rem 8rem;
  }
  #main-area .embrems {
    position: absolute;
    right: auto;
    left: 16rem;
    top: 380rem;
    display: flex;
    justify-content: space-between;
    width: 230rem;
  }
  #main-area .embrems p {
    width: 110rem;
    height: 110rem;
  }
  #main-area .cv-unit {
    padding: 24rem 0 24rem 0;
  }
  .el_caption__w {
    position: absolute;
    bottom: 24rem;
    left: 16rem;
  }
}
/* -------------------------------------------------------------------------- next-officer intro */
#next-officer_intro {
  padding: 40rem 0 0 0;
  background: url("../img/intro_bg.svg") center no-repeat
    var(--main-color-bright);
  background-size: auto 100%;
}
.next-officer-problems {
  padding: 250rem 0 0 0;
  position: relative;
}
.quote {
  position: absolute;
  font-size: 20rem;
  font-weight: 500;
  text-align: center;
}
.quote span {
  color: var(--emphasis-color);
}
.quote01 {
  position: absolute;
  width: 330rem;
  height: 210rem;
  left: 0;
  top: 130rem;
  background: url("../img/speech-bubble01.svg") center no-repeat;
  background-size: contain;
  padding-top: 50rem;
  z-index: 2;
}
.quote02 {
  position: absolute;
  width: 330rem;
  height: 200rem;
  left: 132rem;
  top: 16rem;
  background: url(../img/speech-bubble02.svg) center no-repeat;
  background-size: contain;
  padding-top: 42rem;
}
.quote03 {
  position: absolute;
  width: 330rem;
  height: 210rem;
  left: 410rem;
  top: 52rem;
  background: url(../img/speech-bubble03.svg) center no-repeat;
  background-size: contain;
  padding-top: 46rem;
}
.quote04 {
  position: absolute;
  width: 330rem;
  height: 200rem;
  right: 74rem;
  top: 14rem;
  background: url("../img/speech-bubble04.svg") center no-repeat;
  background-size: contain;
  padding-top: 36rem;
}
.quote05 {
  position: absolute;
  width: 330rem;
  height: 210rem;
  right: 0;
  top: 120rem;
  background: url(../img/speech-bubble05.svg) center no-repeat;
  background-size: contain;
  padding-top: 50rem;
}
.next-officer-problems figure {
  width: 540rem;
  margin: 0 auto;
}
@media only screen and (max-width: 767px) {
  .next-officer-problems {
    padding: 330rem 0 0 0;
    position: relative;
    margin-top: 24px;
  }
  .quote {
    position: absolute;
    font-size: 13rem;
    font-weight: 500;
    text-align: center;
  }
  .quote span {
    color: var(--emphasis-color);
  }
  .quote01 {
    position: absolute;
    width: 188rem;
    height: auto;
    aspect-ratio: 330 / 210;
    left: -15rem;
    top: -10rem;
    background: url(../img/speech-bubble01.svg) center no-repeat;
    background-size: contain;
    padding-top: 25rem;
    z-index: 2;
  }
  .quote02 {
    position: absolute;
    width: 188rem;
    height: auto;
    aspect-ratio: 330 / 210;
    left: auto;
    right: -15rem;
    top: 15rem;
    background: url(../img/speech-bubble02_sp.svg) center no-repeat;
    background-size: contain;
    padding-top: 35rem;
  }
  .quote03 {
    position: absolute;
    width: 188rem;
    height: auto;
    aspect-ratio: 330 / 210;
    left: -15rem;
    top: 108rem;
    background: url(../img/speech-bubble01.svg) center no-repeat;
    background-size: contain;
    padding-top: 25rem;
    z-index: 2;
  }
  .quote04 {
    position: absolute;
    width: 188rem;
    height: auto;
    aspect-ratio: 330 / 210;
    left: auto;
    right: -15rem;
    top: 126rem;
    background: url(../img/speech-bubble04_sp.svg) center no-repeat;
    background-size: contain;
    padding-top: 33rem;
  }
  .quote05 {
    position: absolute;
    width: 200rem;
    height: auto;
    aspect-ratio: 380 / 240;
    left: 50rem;
    top: 230rem;
    background: url(../img/speech-bubble05_sp.svg) center no-repeat;
    background-size: contain;
    padding-top: 25rem;
    z-index: 2;
  }
  .next-officer-problems figure {
    width: 350rem;
    margin: 0 auto;
  }
}
/* -------------------------------------------------------------------------- about */
#next-officer_about {
  padding: 80rem 0 0 0;
  background: url("../img/about_bg.svg") center no-repeat
    var(--main-color-bright);
  background-size: auto 100%;
}
.training_list {
  display: flex;
  justify-content: space-between;
}
.training_list .box {
  width: 32%;
  border: solid 2rem var(--main-color);
  background: #ffffff;
  border-radius: 8rem;
  padding: 24rem 32rem;
}
.training_list .box .icon {
  width: 120rem;
  height: 120rem;
  margin: 0 auto 24rem auto;
}
.training_list .box h3 {
  color: var(--main-color-font);
  font-size: 20rem;
  font-weight: bold;
  text-align: center;
  margin-bottom: 16rem;
}
.guidance {
  position: relative;
  text-align: center;
  padding: 80rem 0 40rem;
  max-width: 1100px;
  margin: 0 auto;
}
.guidance p {
  position: relative;
  font-size: 24rem;
}
.guidance::before {
  content: "";
  position: absolute;
  left: 80rem;
  bottom: 0;
  width: 160rem;
  height: 140rem;
  background: url("../img/guidance-woman.svg") center top no-repeat;
  background-size: 140rem auto;
}
.guidance::after {
  content: "";
  position: absolute;
  right: 80rem;
  bottom: 0;
  width: 160rem;
  height: 140rem;
  background: url("../img/guidance-man.svg") center top no-repeat;
  background-size: 140rem auto;
}
@media only screen and (max-width: 767px) {
  #next-officer_about {
    padding: 48rem 0 0 0;
  }
  .training_list {
    flex-direction: column;
  }
  .training_list .box {
    width: 100%;
    padding: 16rem 24rem;
    margin-bottom: 24rem;
  }
  .training_list .box:last-child {
    margin-bottom: 0;
  }
  .training_list .box .icon {
    width: 80rem;
    height: 80rem;
    margin: 0 auto 16rem auto;
  }
  .training_list .box h3 {
    font-size: 16rem;
  }
  .guidance {
    padding: 40rem 0 40rem;
  }
  .guidance p {
    position: relative;
    font-size: 16rem;
  }
  .guidance::before {
    content: "";
    position: absolute;
    left: -10rem;
    bottom: 0;
    width: 110rem;
    height: 90rem;
    background: url("../img/guidance-woman.svg") center top no-repeat;
    background-size: 80rem auto;
  }
  .guidance::after {
    content: "";
    position: absolute;
    right: -10rem;
    bottom: 0;
    width: 110rem;
    height: 90rem;
    background: url("../img/guidance-man.svg") center top no-repeat;
    background-size: 80rem auto;
  }
}
/* -------------------------------------------------------------------------- service */
#next-officer_menu {
  padding: 80rem 0 0 0;
}
.service-menu-wrap {
  background: var(--main-color-bright);
  padding: 40rem;
}
.service-menu {
  position: relative;
  width: 100%;
  max-width: 1400rem;
  margin: 0 auto;
  height: 540rem;
}
.service-menu .stage {
  position: absolute;
  width: 12%;
  left: 0;
  top: 0;
  height: 540rem;
}
.service-menu .stage-title {
  background: #ffffff;
  text-align: center;
  border-radius: 4rem;
  height: 80rem;
  display: flex;
  justify-content: center;
  align-items: center;
  color: var(--main-color-font);
  line-height: 1.5;
  font-weight: bold;
  margin-bottom: 10rem;
}
.service-menu .stage-contents {
  position: relative;
  width: 100%;
  margin: 0 auto;
  height: 440rem;
  color: var(--main-color-font);
}
.service-menu .stage-contents::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  width: 25rem;
  height: 48rem;
  background: url("../img/arrow-up.svg") center no-repeat;
  background-size: contain;
  z-index: 2;
}
.service-menu .stage-name {
  display: flex;
  justify-content: center;
  align-items: center;
}
.service-menu .stage-name.stage01 {
  position: absolute;
  width: 100%;
  left: 0;
  top: 0;
  height: 48%;
  background: #ffffff;
  border-radius: 4rem;
  text-align: center;
}
.service-menu .stage-name.stage02 {
  position: absolute;
  width: 100%;
  left: 0;
  bottom: 0;
  height: 48%;
  background: #ffffff;
  border-radius: 4rem;
  text-align: center;
}
.service-menu .stage-name figure {
  margin: 0 auto;
  width: 60%;
}
.service-menu .service-unit01 {
  position: absolute;
  width: 10.5%;
  left: 13%;
  top: 0;
  height: 540rem;
  border-radius: 8rem;
  padding: 0 0.6%;
}
.service-menu .service-unit02 {
  position: absolute;
  width: 10.5%;
  left: 24.5%;
  top: 0;
  height: 540rem;
  border-radius: 8rem;
  padding: 0 0.7%;
}
.service-menu .service-unit03 {
  position: absolute;
  width: 20%;
  left: 36%;
  top: 0;
  height: 540rem;
  border-radius: 8rem;
  padding: 0 0.7%;
}
.service-menu .service-unit04 {
  position: absolute;
  width: 10.5%;
  left: 57%;
  top: 0;
  height: 540rem;
  border-radius: 8rem;
  padding: 0 0.7%;
}
.service-menu .service-unit05 {
  position: absolute;
  width: 10.5%;
  left: 68.5%;
  top: 0;
  height: 540rem;
  border-radius: 8rem;
  padding: 0 0.7%;
}
.service-menu .service-unit06 {
  position: absolute;
  width: 20%;
  left: 80%;
  top: 0;
  height: 540rem;
  border-radius: 8rem;
  padding: 0 0.7%;
}
.service-unit {
  text-align: center;
  background: var(--main-color);
}
.service-menu .service-title {
  height: 90rem;
  display: flex;
  justify-content: center;
  align-items: center;
}
.service-unit h3 {
  color: white;
  font-weight: bold;
  line-height: 1.5;
  text-align: center;
  font-size: 14rem;
}
.service-unit h3 .caption {
  font-weight: normal;
  font-size: 13rem;
}
.service-unit .service-contents {
  position: relative;
  margin: 0 auto;
  height: 440rem;
  padding: 0 10rem;
}
.service-unit .service-link {
  display: block;
  position: absolute;
  text-decoration: underline;
  color: var(--main-color-font);
  font-size: 13rem;
  line-height: 1.6;
  font-weight: bold;
  display: flex;
  justify-content: center;
  align-items: center;
  box-shadow: 0 0 8rem #3e429b;
  border-radius: 4rem;
  background: #dfe7ff;
  padding: 2rem;
}
.service-unit .service-link:hover {
  box-shadow: none;
  background: #ffffff;
  text-decoration: none;
}
.service-unit .service-link.service-link__no-link {
  text-decoration: none;
}
.service-unit .service-link.service-link__no-link:hover {
  cursor: default;
  background: #dfe7ff;
}
.service-unit .service-link .small {
  font-size: 12rem;
  font-weight: normal;
}
.service-unit .service-link.service01 {
  width: 100%;
  left: 0;
  bottom: 0;
  height: 48%;
}
.service-unit .service-link.service02 {
  width: 100%;
  left: 0;
  bottom: 0;
  height: 100%;
}
.service-unit .service-link.service03 {
  width: 48%;
  left: 0;
  top: 0;
  height: 100%;
}
.service-unit .service-link.service04 {
  width: 48%;
  right: 0;
  top: 0;
  height: 100%;
}
.service-unit .service-link.service05 {
  width: 100%;
  right: 0;
  top: 0;
  height: 48%;
}
.service-unit .service-link.service06 {
  width: 100%;
  left: 0;
  bottom: 0;
  height: 48%;
}
.service-unit .service-link.service07 {
  width: 100%;
  right: 0;
  top: 0;
  height: 48%;
}
.service-unit .service-link.service08 {
  width: 100%;
  left: 0;
  bottom: 0;
  height: 48%;
}
.service-unit .service-link.service09 {
  width: 100%;
  right: 0;
  bottom: 0;
  height: 48%;
}
.service-unit .service-link.service10 {
  width: 96%;
  left: 2%;
  top: 0;
  height: 48%;
}
.service-unit .service-link.service11 {
  width: 96%;
  left: 2%;
  bottom: 0;
  height: 48%;
}
.service-unit .service-link.service12 {
  width: 96%;
  left: 2%;
  bottom: 0;
  background: #e9f6ff;
  height: 100%;
}
.service-unit .service-link.service12:hover {
  background: #ffffff;
}
.btn-unit {
  display: flex;
  justify-content: center;
  align-items: center;
  column-gap: 40rem;
  padding: 40rem 0;
}
@media only screen and (max-width: 767px) {
  #next-officer_menu {
    padding: 48rem 0 0 0;
  }
  .service-menu-wrap {
    background: #ebeaf7;
    padding: 20rem;
  }
  .service-menu-wrap .scroll {
    width: 100%;
    overflow-x: auto;
  }
  .service-unit h3 {
    font-size: 14rem;
  }
  .service-unit .service-link {
    font-size: 12rem;
  }
  .service-unit .service-link .small {
    font-size: 10rem;
  }
  .btn-unit {
    flex-direction: column;
    gap: 24rem;
  }
}
@media only screen and (max-width: 767px) {
  .service-menu {
    width: 1800px;
    max-width: 1800px;
    height: 540rem;
  }
}
@media screen and (max-width: 540px) {
  .service-menu {
    width: 1260px;
    max-width: 1260px;
    height: 540rem;
  }
}
/* --------------------------------------------------------------------------  case*/
#next-officer_case {
  padding: 80rem 0 0 0;
}
.casestudy_list {
  display: flex;
  flex-wrap: wrap;
  padding-top: 24rem;
  justify-content: center;
  gap: 40rem;
  padding-bottom: 80rem;
}
.casestudy_list a {
  display: block;
  max-width: 30%;
  margin-bottom: 5rem;
  text-decoration: none;
}
.casestudy_list a:nth-of-type(3n) {
  margin-right: 0;
}
.casestudy_list a h3 {
  margin-top: 16rem;
  font-size: 16rem;
  font-weight: bold;
}
.casestudy_list a .article_img {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}
.casestudy_list a .article_img img {
  position: absolute;
  top: 0;
  left: 0;
  object-fit: cover;
  max-width: initial;
  width: 100%;
  height: 100%;
  transition: transform 0.6s ease;
  border: solid 1px #ccc;
}
.casestudy_list a:hover {
  text-decoration: underline;
}
.casestudy_list a:hover .article_img img {
  transform: scale(1.2); /* 拡大 */
  opacity: 1;
}
.casestudy_list a .article_company {
  margin-top: 1rem;
  font-size: 13rem;
  color: #8c8c8c;
}
@media only screen and (max-width: 767px) {
  #next-officer_case {
    padding: 48rem 0 0 0;
  }
  .casestudy_list {
    flex-direction: column;
    padding-top: 0;
  }
  .casestudy_list a {
    max-width: 100%;
    margin-bottom: 8rem;
  }
  .casestudy_list a h3 {
    margin-top: 8rem;
    font-size: 14rem;
  }
}
/* --------------------------------------------------------------------------  faq*/
#next-officer_faq {
  padding: 80rem 0 0 0;
}
.faq-wrapper {
  background: #ebeaf7;
  padding: 60rem 40rem 0 40rem;
}
.faq {
  max-width: 1100rem;
  margin: 0 auto;
  padding: 0 0 60rem 0;
}
.faq dt {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 16rem;
  align-items: center;
  font-size: 20rem;
}
.faq dt::before {
  content: "Q";
  display: block;
  width: 46rem;
  height: 46rem;
  background: #ffffff;
  line-height: 46rem;
  text-align: center;
  color: var(--main-color-font);
  font-size: 20rem;
  margin-right: 8rem;
  font-weight: bold;
}
.faq dd {
  display: flex;
}
.faq dd a {
  text-decoration: underline;
}
.faq dd::before {
  content: "A";
  display: block;
  width: 46rem;
  height: 46rem;
  background: #ffffff;
  line-height: 46rem;
  text-align: center;
  color: #f28393;
  font-size: 20rem;
  margin-right: 8rem;
  font-weight: bold;
}
.faq dt span,
.faq dd p {
  width: calc(100% - 54rem);
}
.faq dd p {
  padding-top: 8rem;
}
@media only screen and (max-width: 767px) {
  #next-officer_faq {
    padding: 48rem 0 0 0;
  }
  .faq-wrapper {
    padding: 32rem 20rem 0 20rem;
  }
  .faq {
    padding: 0 0 32rem 0;
  }
  .faq dt {
    font-size: 14rem;
  }
  .faq dt::before {
    content: "Q";
    display: block;
    width: 24rem;
    height: 24rem;
    line-height: 24rem;
    font-size: 16rem;
    margin-right: 6rem;
  }
  .faq dd {
    display: flex;
  }
  .faq dd::before {
    content: "A";
    display: block;
    width: 28rem;
    height: 28rem;
    line-height: 28rem;
    text-align: center;
    font-size: 16rem;
    margin-right: 6rem;
  }
  .faq dt span,
  .faq dd p {
    width: calc(100% - 44rem);
  }
  .faq dd p {
    padding-top: 0rem;
  }
}
