@charset "UTF-8";
/* CSS Document */
main {
  overflow: hidden;
  scroll-padding-top: 100px;
  padding-top: 85px; }
  @media screen and (max-width: 767px) {
    main {
      padding-top: 2rem;
      margin-top: 70px; } }

.anchor {
  padding-top: 120px;
  /* ヘッダーの高さを入力 */
  margin-top: -120px;
  /* ヘッダーの高さを入力 */ }

.inner {
  width: 83%;
  margin: 0 auto; }
  @media screen and (max-width: 991px) {
    .inner {
      width: 90%; } }
  @media screen and (max-width: 767px) {
    .inner {
      width: 100%; } }

.container-l {
  max-width: 1300px;
  margin: auto; }
  @media screen and (max-width: 1399px) {
    .container-l {
      max-width: calc(100% - 50px); } }
  @media screen and (max-width: 1199px) {
    .container-l {
      max-width: 960px; } }
  @media screen and (max-width: 991px) {
    .container-l {
      max-width: 720px; } }
  @media screen and (max-width: 767px) {
    .container-l {
      max-width: 540px; } }
  @media screen and (max-width: 575px) {
    .container-l {
      width: 100%;
      padding-right: 15px;
      padding-left: 15px;
      margin-right: auto;
      margin-left: auto; } }

.color-blue {
  color: #296ece; }

.shadow-01 {
  box-shadow: 0px 0px 7px 0px rgba(0, 0, 0, 0.1); }

.round {
  border-radius: 10px; }

.btn_center {
  display: flex;
  justify-content: center; }

a.link_btn {
  color: #296ece;
  font-size: 18px;
  font-size: 1.8rem;
  font-weight: 600;
  background-color: #ffffff;
  width: 323px;
  height: 60px;
  text-align: center;
  border: 1.5px solid #296ece;
  position: relative;
  z-index: 1;
  overflow: hidden;
  border-radius: 2em;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 1.5em 0 2.5em;
  transition: 0.6s; }
  @media screen and (max-width: 575px) {
    a.link_btn {
      width: 275px; } }
  a.link_btn i {
    font-size: 0.75rem; }

a.link_btn::before {
  content: "";
  width: 120%;
  height: 200%;
  position: absolute;
  top: -50%;
  right: 0;
  z-index: -1;
  background: #296ece;
  transform: translateX(-100%);
  transition: transform ease 0.6s; }

a.link_btn:hover {
  color: #fff; }

a.link_btn:hover::before {
  transform: translateX(10%); }

h2 {
  text-align: center;
  margin-bottom: 8.5rem; }
  @media screen and (max-width: 991px) {
    h2 {
      margin-bottom: 6.5rem; } }
  @media screen and (max-width: 575px) {
    h2 {
      margin-bottom: 3.5rem; } }
  h2 .deco {
    position: relative;
    text-align: center;
    display: inline-block; }
    h2 .deco span.en {
      font-size: 15px;
      font-size: 1.5rem;
      color: #296ece; }
    h2 .deco span.ja {
      font-size: 28px;
      font-size: 2.8rem;
      line-height: 1.9; }
    h2 .deco::before {
      background-image: url("../img/deco.svg");
      background-size: cover;
      background-repeat: no-repeat;
      content: "";
      margin: 0 auto;
      position: absolute;
      left: -100px;
      top: -27px;
      height: 116px;
      width: 116px; }
      @media screen and (max-width: 991px) {
        h2 .deco::before {
          left: -80px; } }

.site-header {
  overflow: visible; }
  .site-header .header-flex {
    position: fixed;
    max-width: 100%;
    width: 100%;
    height: 85px;
    z-index: 999;
    background-color: #fff;
    transition: background-color .5s, color .5s;
    display: flex !important;
    justify-content: space-between;
    align-items: center; }
    .site-header .header-flex .logo {
      margin-left: 3rem; }
      .site-header .header-flex .logo img {
        width: 200px; }
    .site-header .header-flex .header-inner {
      display: flex;
      justify-content: flex-end; }
      .site-header .header-flex .header-inner ul {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        height: 80px;
        text-align: right;
        padding-right: 3rem;
        margin: 0; }
        .site-header .header-flex .header-inner ul li {
          display: inline-block;
          font-size: 14px;
          font-size: 1.4rem;
          font-weight: 500;
          padding-left: 3rem; }
          @media screen and (max-width: 991px) {
            .site-header .header-flex .header-inner ul li {
              padding-left: 2rem; } }
          .site-header .header-flex .header-inner ul li a {
            display: block;
            color: #505050;
            transition: 0.3s; }
            .site-header .header-flex .header-inner ul li a:hover {
              color: #296ece; }
          .site-header .header-flex .header-inner ul li a.recruit {
            color: #ffffff;
            background: linear-gradient(270deg, #62c9ff, #3277e3, #62c9ff) 0 50%/300% 100%;
            padding: 0.8rem 4rem 1.0rem 4rem;
            border-radius: 5px;
            transition: all .5s ease; }
            @media screen and (max-width: 991px) {
              .site-header .header-flex .header-inner ul li a.recruit {
                padding: 0.8rem 3rem 1.0rem 3rem; } }
          .site-header .header-flex .header-inner ul li a.recruit:hover {
            background-position: 100% 50%; }
          .site-header .header-flex .header-inner ul li a.contact {
            display: flex;
            align-items: center;
            justify-content: center;
            background-color: #0f4b93;
            border-radius: 50%;
            height: 48px;
            width: 48px;
            margin-right: 0; }
            .site-header .header-flex .header-inner ul li a.contact img {
              height: 17px; }
          .site-header .header-flex .header-inner ul li a.contact:hover {
            background-color: #62c9ff; }
      .site-header .header-flex .header-inner .contact a {
        background-color: #296ece;
        height: 80px;
        width: 80px;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        transition: 0.3s; }
        .site-header .header-flex .header-inner .contact a::before {
          content: "";
          background-image: url("../img/contact-white.svg");
          height: 24px;
          width: 35.6px;
          margin: auto; }
        .site-header .header-flex .header-inner .contact a:hover {
          background-color: #505050; }
    @media screen and (max-width: 767px) {
      .site-header .header-flex {
        display: none !important; } }

.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  background-color: #fff;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
  z-index: 999; }
  .header .logo {
    display: flex; }
    .header .logo a img {
      width: 190px; }
      .header .logo a img:hover {
        opacity: 0.5; }
  .header .header__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.5rem 2rem; }

.drawer__button {
  position: relative;
  width: 4rem;
  height: 4rem;
  background-color: transparent;
  border: none;
  cursor: pointer;
  z-index: 999; }
  .drawer__button > span {
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 4rem;
    height: 2px;
    background-color: #505050;
    transform: translateX(-50%); }
  .drawer__button > span:first-child {
    transform: translate(-50%, calc(-50% - 1rem));
    transition: transform 0.3s ease; }
  .drawer__button > span:nth-child(2) {
    transform: translate(-50%, -50%);
    transition: opacity 0.3s ease; }
  .drawer__button > span:last-child {
    transform: translate(-50%, calc(-50% + 1rem));
    transition: transform 0.3s ease; }

.drawer__button.active > span:first-child {
  transform: translate(-50%, -50%) rotate(-45deg); }
.drawer__button.active > span:nth-child(2) {
  opacity: 0; }
.drawer__button.active > span:last-child {
  transform: translate(-50%, -50%) rotate(45deg); }

.drawer__nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.5);
  transition: opacity 0.3s ease;
  opacity: 0;
  visibility: hidden; }
  .drawer__nav .drawer__nav__inner {
    position: relative;
    width: 60%;
    height: 100%;
    background-color: #e5f5ff;
    padding: 0;
    margin: 0 0 0 auto;
    overflow: scroll;
    transform: translateX(100%);
    transition: transform 0.3s ease; }
    .drawer__nav .drawer__nav__inner .drawer__nav__menu {
      list-style: none;
      padding-left: 0;
      padding-top: 7.5rem; }
      .drawer__nav .drawer__nav__inner .drawer__nav__menu .drawer__nav__link {
        font-size: 20px;
        font-size: 2rem;
        display: block;
        color: #505050;
        text-decoration: none;
        padding: 2rem;
        border-bottom: solid 1px lightgray;
        transition: 0.3s;
        display: flex;
        justify-content: space-between;
        align-items: center; }
        .drawer__nav .drawer__nav__inner .drawer__nav__menu .drawer__nav__link:hover {
          background-color: #296ece; }
        .drawer__nav .drawer__nav__inner .drawer__nav__menu .drawer__nav__link i {
          font-size: 16px;
          font-size: 1.6rem;
          margin-right: 1em;
          padding-top: 0.2rem; }
      .drawer__nav .drawer__nav__inner .drawer__nav__menu .drawer__nav__link.recruit {
        background-color: #62c9ff;
        color: #fff; }
      .drawer__nav .drawer__nav__inner .drawer__nav__menu .drawer__nav__link.contact {
        background-color: #548bd8;
        color: #fff; }
      .drawer__nav .drawer__nav__inner .drawer__nav__menu li:last-child {
        border-bottom: none; }

.drawer__nav.active {
  opacity: 1;
  visibility: visible; }
  .drawer__nav.active .drawer__nav__inner {
    transform: translateX(0); }

body.active {
  height: 100%;
  overflow: hidden; }

.site-footer .footer-info {
  background-color: #effaff;
  padding-top: 18rem;
  position: relative; }
  @media screen and (max-width: 767px) {
    .site-footer .footer-info {
      padding-top: 13rem; } }
  @media screen and (max-width: 575px) {
    .site-footer .footer-info {
      padding-top: 9rem; } }
  .site-footer .footer-info .arc-bottom {
    position: absolute;
    top: 0; }
  .site-footer .footer-info .footer-top {
    display: flex;
    height: 280px;
    margin-bottom: 6rem; }
    @media screen and (max-width: 991px) {
      .site-footer .footer-info .footer-top {
        height: 243px; } }
    @media screen and (max-width: 767px) {
      .site-footer .footer-info .footer-top {
        flex-direction: column;
        height: auto;
        margin-bottom: 3rem; } }
    .site-footer .footer-info .footer-top .g-map {
      width: 43%; }
      @media screen and (max-width: 767px) {
        .site-footer .footer-info .footer-top .g-map {
          width: 100%;
          height: 190px; } }
      @media screen and (max-width: 575px) {
        .site-footer .footer-info .footer-top .g-map {
          height: 150px; } }
      .site-footer .footer-info .footer-top .g-map iframe {
        width: 100%;
        height: 100%; }
    .site-footer .footer-info .footer-top .schedule {
      width: 57%;
      padding-left: 5rem; }
      @media screen and (max-width: 991px) {
        .site-footer .footer-info .footer-top .schedule {
          padding-left: 3rem; } }
      @media screen and (max-width: 767px) {
        .site-footer .footer-info .footer-top .schedule {
          width: 100%;
          padding-left: 0;
          margin-bottom: 2rem; } }
      .site-footer .footer-info .footer-top .schedule .table-bg {
        background-color: #ffffff;
        border-radius: 10px;
        padding: 0 1.4rem;
        height: 210px;
        display: flex;
        align-items: center;
        margin-bottom: 1rem; }
        @media screen and (max-width: 991px) {
          .site-footer .footer-info .footer-top .schedule .table-bg {
            height: 187px; } }
        @media screen and (max-width: 575px) {
          .site-footer .footer-info .footer-top .schedule .table-bg {
            height: auto;
            padding: 1rem 1.9rem; } }
        .site-footer .footer-info .footer-top .schedule .table-bg table {
          width: 100%;
          text-align: center;
          font-weight: 600; }
          @media screen and (max-width: 575px) {
            .site-footer .footer-info .footer-top .schedule .table-bg table {
              font-size: 14px;
              font-size: 1.4rem; } }
          .site-footer .footer-info .footer-top .schedule .table-bg table tr th {
            color: #296ece;
            padding: 1.5rem 0; }
          .site-footer .footer-info .footer-top .schedule .table-bg table tr td {
            color: #62c9ff;
            border-top: 1px solid #afafaf;
            padding: 1.5rem 0; }
            .site-footer .footer-info .footer-top .schedule .table-bg table tr td:first-child {
              color: #505050;
              width: 30%; }
              @media screen and (max-width: 575px) {
                .site-footer .footer-info .footer-top .schedule .table-bg table tr td:first-child {
                  letter-spacing: 0.1rem; } }
          .site-footer .footer-info .footer-top .schedule .table-bg table tr td.gray {
            color: #505050;
            font-weight: 400; }
      .site-footer .footer-info .footer-top .schedule p {
        font-weight: 600;
        font-size: 18px;
        font-size: 1.8rem; }
        @media screen and (max-width: 991px) {
          .site-footer .footer-info .footer-top .schedule p {
            font-size: 17px;
            font-size: 1.7rem; } }
        @media screen and (max-width: 575px) {
          .site-footer .footer-info .footer-top .schedule p {
            text-align: center;
            margin-bottom: 0; } }
        .site-footer .footer-info .footer-top .schedule p span {
          color: #296ece; }
        .site-footer .footer-info .footer-top .schedule p i {
          color: #62c9ff; }
  .site-footer .footer-info .access {
    text-align: center;
    margin-bottom: 4.7rem;
    display: flex;
    flex-direction: column;
    align-items: center; }
    @media screen and (max-width: 767px) {
      .site-footer .footer-info .access {
        margin-bottom: 2rem; } }
    .site-footer .footer-info .access img {
      width: 310px;
      margin-bottom: 1rem; }
      @media screen and (max-width: 575px) {
        .site-footer .footer-info .access img {
          margin-bottom: 0; } }
    .site-footer .footer-info .access a {
      display: inline;
      color: #296ece;
      font-size: 27px;
      font-size: 2.7rem;
      font-weight: 600; }
      .site-footer .footer-info .access a span {
        font-size: 35px;
        font-size: 3.5rem;
        padding-left: 0.8rem; }
    .site-footer .footer-info .access p {
      line-height: 1.5; }
  .site-footer .footer-info .link-box {
    display: flex;
    justify-content: center; }
    @media screen and (max-width: 767px) {
      .site-footer .footer-info .link-box {
        flex-direction: column; } }
    .site-footer .footer-info .link-box ul {
      display: flex;
      justify-content: center;
      align-items: center;
      margin-bottom: 0;
      padding-bottom: 2.8rem; }
      @media screen and (max-width: 767px) {
        .site-footer .footer-info .link-box ul {
          padding-bottom: 1.8rem; } }
      @media screen and (max-width: 575px) {
        .site-footer .footer-info .link-box ul {
          font-size: 1.45px;
          font-size: 1.45rem; } }
      .site-footer .footer-info .link-box ul li a {
        font-weight: 600;
        color: #505050;
        margin-right: 2em;
        transition: 0.3s; }
        @media screen and (max-width: 575px) {
          .site-footer .footer-info .link-box ul li a {
            margin-right: 1.5em; } }
      .site-footer .footer-info .link-box ul li a:hover {
        color: #296ece; }
      .site-footer .footer-info .link-box ul li a.recruit {
        color: #ffffff;
        background: linear-gradient(270deg, #62c9ff, #3277e3, #62c9ff) 0 50%/300% 100%;
        padding: 1.2rem 4rem 1.4rem 4rem;
        border-radius: 5px;
        margin-right: 1.5em;
        transition: all .5s ease; }
      .site-footer .footer-info .link-box ul li a.recruit:hover {
        background-position: 100% 50%; }
      .site-footer .footer-info .link-box ul li a.contact {
        display: flex;
        align-items: center;
        justify-content: center;
        background-color: #0f4b93;
        border-radius: 50%;
        height: 48px;
        width: 48px;
        margin-right: 0; }
        .site-footer .footer-info .link-box ul li a.contact img {
          height: 17px; }
      .site-footer .footer-info .link-box ul li a.contact:hover {
        background-color: #62c9ff; }
      @media screen and (max-width: 575px) {
        .site-footer .footer-info .link-box ul li:nth-child(4) a {
          margin-right: 0; } }
.site-footer .copyright {
  color: #ffffff;
  background-color: #62c9ff;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center; }
  .site-footer .copyright p {
    font-size: 12px;
    font-size: 1.2rem;
    margin-bottom: 0; }

#ul-header {
  margin-bottom: 11.1rem; }
  @media screen and (max-width: 1199px) {
    #ul-header {
      margin-bottom: 8rem; } }
  @media screen and (max-width: 991px) {
    #ul-header {
      margin-bottom: 4rem; } }
  #ul-header .ul-header-bg {
    background-image: linear-gradient(90deg, rgba(98, 201, 255, 0.3), rgba(50, 119, 228, 0.3));
    height: 260px;
    width: calc(100% - 75px);
    margin: 0 auto;
    border-radius: 10px;
    position: relative;
    display: flex;
    align-items: center; }
    @media screen and (max-width: 767px) {
      #ul-header .ul-header-bg {
        height: 200px; } }
    @media screen and (max-width: 575px) {
      #ul-header .ul-header-bg {
        width: calc(100% - 30px);
        height: 180px; } }
    #ul-header .ul-header-bg h1 {
      letter-spacing: 0.45rem;
      margin-left: 4em;
      line-height: 1.35;
      position: relative;
      z-index: 5; }
      @media screen and (max-width: 991px) {
        #ul-header .ul-header-bg h1 {
          margin-left: 2.5em; } }
      @media screen and (max-width: 575px) {
        #ul-header .ul-header-bg h1 {
          line-height: 1.1;
          margin-left: 2em; } }
      #ul-header .ul-header-bg h1 span.ja {
        font-size: 50px;
        font-size: 5rem;
        font-weight: 500; }
        @media screen and (max-width: 575px) {
          #ul-header .ul-header-bg h1 span.ja {
            font-size: 40px;
            font-size: 4rem; } }
      #ul-header .ul-header-bg h1 span.en {
        font-size: 20px;
        font-size: 2rem;
        font-weight: 600;
        color: #296ece; }
    #ul-header .ul-header-bg img {
      position: absolute;
      height: 260px;
      top: 0;
      right: 6rem; }
      @media screen and (max-width: 991px) {
        #ul-header .ul-header-bg img {
          right: 2rem; } }
      @media screen and (max-width: 767px) {
        #ul-header .ul-header-bg img {
          right: -1rem; } }
      @media screen and (max-width: 767px) {
        #ul-header .ul-header-bg img {
          height: 200px; } }
      @media screen and (max-width: 575px) {
        #ul-header .ul-header-bg img {
          height: 180px; } }

#page-link {
  margin-bottom: 10rem;
  z-index: 10;
  position: relative; }
  @media screen and (max-width: 767px) {
    #page-link {
      margin-bottom: 5rem; } }
  @media screen and (max-width: 575px) {
    #page-link {
      margin-bottom: 5rem; } }
  #page-link ul {
    display: flex;
    justify-content: center;
    align-content: center;
    flex-wrap: wrap; }
    #page-link ul li {
      margin-bottom: 0.7rem; }
      #page-link ul li a {
        color: #296ece;
        font-size: 18px;
        font-size: 1.8rem;
        font-weight: 600;
        transition: 0.1s;
        padding: 0 2em; }
        @media screen and (max-width: 991px) {
          #page-link ul li a {
            padding: 0 1.5em; } }
        @media screen and (max-width: 767px) {
          #page-link ul li a {
            padding: 0 0.4em; } }
        #page-link ul li a span {
          font-size: 15px;
          font-size: 1.5rem; }
        #page-link ul li a:hover {
          color: #62c9ff; }
      #page-link ul li::after {
        content: "︙";
        color: #62c9ff; }
      #page-link ul li:last-child::after {
        content: none; }

/* トップへ戻るボタン */
#page-top {
  position: fixed;
  bottom: 10px;
  right: 10px;
  margin-bottom: 0;
  z-index: 999; }
  #page-top a img {
    width: 55px;
    height: 55px;
    transition: 0.3s; }
  #page-top:hover a img {
    transform: scale(1.1, 1.1); }
