@charset "UTF-8";
html {
  font-size: 62.5%;
  color: #333333;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif; }

body {
  font-size: 1.5rem;
  /* basic size 15px */
  line-height: 2.2; }

a {
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all  0.3s ease; }

.pc1280-disp {
  display: block; }

.sp1280-disp {
  display: none; }

.pc820-disp {
  display: block; }

.sp820-disp {
  display: none; }

a:hover {
  opacity: .7; }

.header {
  width: 250px;
  position: fixed;
  top: 0;
  padding: 120px 0;
  z-index: 9999;
  overflow: hidden;
  height: 100vh;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  transition: all  0.3s ease; }
  .header__logo {
    width: 70%;
    margin: 0 auto 5rem auto; }
    .header__logo .logo-white {
      display: none; }
  .header__menu {
    text-align: center; }
    .header__menu li {
      margin-bottom: 1.5rem; }
      .header__menu li a {
        text-decoration: none;
        color: #333333; }

.contents {
  padding-left: 250px; }

@media screen and (max-width: 1280px) {
  .pc1280-disp {
    display: none; }

  .sp1280-disp {
    display: block; }

  .header {
    width: 100%;
    padding: 1.2rem 0;
    overflow: hidden;
    height: auto; }
    .header--back {
      backdrop-filter: blur(0.5rem);
      background-color: rgba(255, 255, 255, 0.5);
      /*rgba(31,46,85,.95)*/ }
    .header__menu-wrapper {
      display: flex;
      align-items: center;
      justify-content: space-between;
      width: 90%;
      margin: 0 auto; }
    .header__logo {
      width: 18%;
      margin: 0; }
    .header__menu {
      text-align: left;
      display: flex;
      align-items: center;
      justify-content: space-around;
      margin-right: 3rem; }
      .header__menu li {
        margin: 0 1rem; }
        .header__menu li a {
          text-decoration: none; }

  .header--top--back {
    background-color: rgba(31, 46, 85, 0.95);
    /*rgba(31,46,85,.95)*/ }
  .header--top__menu li a {
    color: #fff; }
  .header--top .btn-trigger span {
    background-color: #fff; }

  .contents {
    padding-left: 0px; } }
@media screen and (max-width: 1280px) {
  .header__logo .logo-color {
    display: block; }
  .header__logo .logo-white {
    display: none; } }
@media screen and (max-width: 820px) {
  .pc820-disp {
    display: none; }

  .sp820-disp {
    display: block; }

  .header__logo {
    width: 30%;
    margin: 0; } }
/*========　トップ　========*/
.fv {
  position: relative;
  background-size: cover;
  background-repeat: no-repeat; }
  .fv video {
    filter: brightness(0.75); }
  .fv__txt {
    position: absolute;
    top: 50%;
    left: 10%;
    transform: translateY(-50%);
    height: auto;
    z-index: 99; }
  .fv__logo {
    position: absolute;
    top: 45%;
    right: 15%;
    transform: translateY(-45%);
    height: auto;
    z-index: 99; }

.top-service {
  position: relative; }
  .top-service__position {
    position: absolute;
    top: 100%;
    width: 100%;
    padding: 2%;
    z-index: 5;
    background-color: #FAFAFA;
    background-image: url("../images/top_back_contents.png");
    background-repeat: no-repeat;
    background-size: 100%; }
  .top-service__tokutoku .tokutokuimg {
    object-fit: cover;
    width: 100%;
    max-height: 600px; }
  .top-service__tokutoku .text-box {
    position: absolute;
    top: 10vh;
    right: 3vw;
    width: 38%;
    color: #fff;
    text-align: left;
    background-color: rgba(31, 46, 85, 0.95);
    z-index: 5; }
    .top-service__tokutoku .text-box__heading {
      font-size: 2.8rem;
      padding: 6% 6% 0; }
    .top-service__tokutoku .text-box__subheading {
      font-size: 1.8rem;
      padding: 2% 6% 0; }
    .top-service__tokutoku .text-box p {
      padding: 2% 6% 6%; }
    .top-service__tokutoku .text-box img {
      width: 100% !important; }
  .top-service__tokutoku .button {
    text-align: center;
    color: #fff;
    background: #33398A; }
    .top-service__tokutoku .button a {
      display: block;
      color: #fff;
      text-decoration: none;
      padding: 2rem 1rem; }
      .top-service__tokutoku .button a .material-symbols-outlined {
        font-size: 1.6rem;
        vertical-align: middle; }
  .top-service__tokutoku .phone {
    position: absolute;
    top: 60%;
    left: 50%;
    transform: translateX(-50%);
    z-index: 6;
    width: 25%; }
  .top-service__creator .text-box {
    width: 40%; }
    .top-service__creator .text-box__heading,
    .top-service__creator .text-box p {
      margin-top: 1rem; }
  .top-service .loopSlide {
    position: relative;
    display: flex;
    flex-flow: row nowrap;
    overflow: hidden; }
    .top-service .loopSlide ul {
      max-width: 100%;
      padding: 0;
      display: flex;
      flex-shrink: 0; }
      .top-service .loopSlide ul li img {
        width: 100%; }
      .top-service .loopSlide ul:first-child {
        animation: slide1 60s -30s linear infinite; }
      .top-service .loopSlide ul:last-child {
        animation: slide2 60s linear infinite; }
      .top-service .loopSlide ul li {
        display: inline-block;
        margin-right: 2%;
        list-style: none;
        text-align: center; }
    .top-service .loopSlide:hover ul {
      animation-play-state: paused; }
@keyframes slide1 {
  0% {
    transform: translateX(100%); }
  to {
    transform: translateX(-100%); } }
@keyframes slide2 {
  0% {
    transform: translateX(0); }
  to {
    transform: translateX(-200%); } }
.top-footer {
  padding-top: 60%;
  background-color: #FAFAFA; }
  .top-footer--menu {
    display: flex;
    justify-content: space-between;
    flex-wrap: nowrap; }
    .top-footer--menu li {
      position: relative;
      width: 33.333%; }
      .top-footer--menu li a {
        color: #fff; }
        .top-footer--menu li a img {
          width: 100%; }
        .top-footer--menu li a .text {
          width: 100%;
          position: absolute;
          top: 50%;
          left: 50%;
          transform: translate(-50%, -50%);
          text-align: center;
          font-family: 'Roboto', sans-serif;
          font-size: 3rem;
          line-height: 1; }
          .top-footer--menu li a .text span {
            font-size: 1.8rem; }
  .top-footer--logo {
    margin: 5rem auto 2rem; }
    .top-footer--logo img {
      margin: 0 auto; }
  .top-footer--copyright {
    text-align: center;
    padding-bottom: 5rem; }

@media screen and (max-width: 1920px) {
  .top-footer {
    padding-top: 58%; } }
@media screen and (max-width: 1600px) {
  .top-footer {
    padding-top: 68%; } }
@media screen and (max-width: 1280px) {
  .top-footer {
    padding-top: 70%; } }
@media screen and (max-width: 1024px) {
  .top-service__heading {
    width: 30%; }
  .top-service__tokutoku .phone {
    top: 80%; }
    .top-service__tokutoku .phone img {
      width: 90%; }

  .top-footer {
    padding-top: 76%; } }
@media screen and (max-width: 820px) {
  .fv video {
    object-fit: cover;
    height: 100vh;
    max-height: 844px; }
  .fv__txt {
    position: absolute;
    top: 50%;
    left: 5%;
    transform: translateY(-50%);
    width: 70%; }
  .fv__logo {
    display: none; }

  .top-service__contents {
    width: 100%;
    display: block; }
    .top-service__contents--images {
      width: 100%;
      overflow: auto;
      margin-bottom: 3rem; }
    .top-service__contents--text {
      width: 100%;
      text-align: left; }
    .top-service__contents--textbox {
      margin-bottom: 3rem; }
  .top-service__heading {
    width: 60%; }
  .top-service__tokutoku .text-box {
    position: static;
    width: 100%;
    text-align: left; }
    .top-service__tokutoku .text-box__heading {
      width: 60%;
      font-size: 2.8rem;
      line-height: 1.2; }
    .top-service__tokutoku .text-box__subheading {
      width: 60%;
      font-size: 1.8rem; }
  .top-service__tokutoku .button {
    width: 100%;
    text-align: center;
    color: #fff;
    background: #33398A; }
    .top-service__tokutoku .button a {
      display: block;
      color: #fff; }
  .top-service__tokutoku .phone {
    position: absolute;
    top: 20%;
    left: auto;
    transform: translateX(0);
    right: 2%;
    width: 40%; }
  .top-service__creator .text-box {
    width: 100%; }

  .top-footer {
    padding-top: 85%; }
    .top-footer--menu li a .text {
      font-size: 1.6rem; }
      .top-footer--menu li a .text span {
        font-size: 1.1rem; }
    .top-footer--logo {
      width: 40%; } }
@media screen and (max-width: 414px) {
  .top-service .loopSlide ul {
    max-width: 200%; }

  .top-footer {
    padding-top: 165%; } }
@media screen and (max-width: 375px) {
  .top-footer {
    padding-top: 175%; } }
@media screen and (max-width: 320px) {
  .top-footer {
    padding-top: 195%; } }
/*========　中ページ　========*/
.page-mission,
.page-company,
.page-recruit {
  background-color: #FAFAFA; }
  .page-mission__title,
  .page-company__title,
  .page-recruit__title {
    overflow: hidden; }
    .page-mission__title .title_en,
    .page-company__title .title_en,
    .page-recruit__title .title_en {
      display: flex;
      width: 100vw;
      font-family: 'Roboto', sans-serif;
      font-weight: bold;
      font-size: 18rem;
      color: #F3F3F3;
      line-height: 1.5;
      max-height: 24rem;
      z-index: 1; }
      .page-mission__title .title_en .loop,
      .page-company__title .title_en .loop,
      .page-recruit__title .title_en .loop {
        flex: 0 0 auto;
        white-space: nowrap; }
        .page-mission__title .title_en .loop:nth-child(odd),
        .page-company__title .title_en .loop:nth-child(odd),
        .page-recruit__title .title_en .loop:nth-child(odd) {
          animation: loop 80s -45s linear infinite; }
        .page-mission__title .title_en .loop:nth-child(even),
        .page-company__title .title_en .loop:nth-child(even),
        .page-recruit__title .title_en .loop:nth-child(even) {
          animation: loop2 80s linear infinite; }
@keyframes loop {
  0% {
    transform: translateX(100%); }
  to {
    transform: translateX(-100%); } }
@keyframes loop2 {
  0% {
    transform: translateX(0); }
  to {
    transform: translateX(-200%); } }
    .page-mission__title .title_jp,
    .page-company__title .title_jp,
    .page-recruit__title .title_jp {
      position: absolute;
      font-size: 4rem;
      letter-spacing: .5rem;
      margin: -8rem 0 0 5%;
      z-index: 2; }

.page-contents {
  width: 100%;
  margin: 0 auto;
  padding: 6rem 0 0; }

.nolink {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none; }

@media screen and (max-width: 820px) {
  .page-mission__title,
  .page-company__title,
  .page-recruit__title {
    padding-top: 5rem; }
    .page-mission__title .title_en,
    .page-company__title .title_en,
    .page-recruit__title .title_en {
      font-size: 12rem; }
    .page-mission__title .title_jp,
    .page-company__title .title_jp,
    .page-recruit__title .title_jp {
      font-size: 2.5rem;
      margin-top: -8rem; }

  .page-contents {
    padding: 0; } }
/*========　ミッション・ビジョン　========*/
.page-mission .maintext {
  width: 67%;
  margin: -18rem 0 0 5%; }
.page-mission .title_jp {
  letter-spacing: 0; }
.page-mission .page-contents--mission .text-box .title, .page-mission .page-contents--vision .text-box .title {
  font-family: 'Roboto', sans-serif;
  font-size: 5rem; }
  .page-mission .page-contents--mission .text-box .title span, .page-mission .page-contents--vision .text-box .title span {
    vertical-align: middle;
    font-size: 1.6rem; }
.page-mission .page-contents--mission .text-box p, .page-mission .page-contents--vision .text-box p {
  line-height: 1.2;
  font-weight: bold;
  font-size: 5.4rem; }
.page-mission .page-contents--mission {
  display: flex;
  justify-content: space-around;
  align-items: center;
  margin: 15rem auto 0; }
.page-mission .page-contents--vision {
  position: relative;
  width: 90%;
  margin: 10rem auto 0; }
  .page-mission .page-contents--vision .text-box {
    position: absolute;
    top: 0;
    right: 0;
    width: 54%; }
  .page-mission .page-contents--vision .image-box {
    padding-top: 18rem; }

@media screen and (max-width: 820px) {
  .page-mission .maintext {
    width: 90%;
    margin: 5rem auto 0; }
  .page-mission .page-contents--mission {
    display: block;
    width: 90%;
    margin: 5rem auto 0; }
    .page-mission .page-contents--mission .image-box {
      justify-content: flex-end;
      display: flex;
      align-items: flex-start; }
  .page-mission .page-contents--vision {
    position: static;
    width: 90%;
    margin: 10rem auto 0; }
    .page-mission .page-contents--vision .text-box {
      position: static;
      width: 100%; }
    .page-mission .page-contents--vision .image-box {
      padding-top: 4rem; } }
@media screen and (max-width: 414px) {
  .page-mission .page-contents--mission .text-box p {
    font-size: 3.2rem; }
  .page-mission .page-contents--mission .image-box {
    padding-top: 4rem; }
  .page-mission .page-contents--vision .text-box p {
    font-size: 3.2rem; } }
/*========　会社概要　========*/
.page-company__details {
  width: 50%;
  margin: -10rem 0 0 5%;
  padding: 5rem;
  background: #fff;
  border-radius: 30px;
  opacity: .9; }
  .page-company__details dl {
    display: flex;
    justify-content: space-between; }
    .page-company__details dl > * {
      padding-top: 1rem;
      padding-bottom: 1rem; }
    .page-company__details dl dt {
      font-weight: normal;
      width: 25%; }
    .page-company__details dl dd {
      width: 75%;
      font-weight: bold;
      line-height: 1.5; }
.page-company .room-img {
  position: relative;
  width: 70%;
  margin: -5rem auto 0; }

@media screen and (max-width: 820px) {
  .page-company__details {
    width: 90%;
    margin: 5rem auto 0;
    padding: 0;
    background-color: #FAFAFA; }
    .page-company__details dl {
      display: block;
      justify-content: space-between; }
      .page-company__details dl > * {
        padding-left: 1rem; }
      .page-company__details dl dt {
        width: 100%;
        padding-right: 0;
        margin-right: 0;
        margin-bottom: .5rem;
        text-align: left;
        border-right: none;
        background-color: #efefef; }
      .page-company__details dl dd {
        width: 100%;
        padding-bottom: 2rem; }
  .page-company .room-img {
    display: none; } }
/*========　採用情報　========*/
.page-recruit .maintext {
  width: 67%;
  margin: 5rem 0 0 5%; }
.page-recruit .page-contents--system {
  width: 90%;
  margin: 8rem auto 0; }
  .page-recruit .page-contents--system .title {
    font-size: 3.5rem;
    text-align: center; }
  .page-recruit .page-contents--system .system-box {
    display: flex;
    justify-content: space-between;
    margin-top: 2rem; }
    .page-recruit .page-contents--system .system-box:last-child {
      margin-top: 5rem; }
    .page-recruit .page-contents--system .system-box--text {
      width: 50%; }
      .page-recruit .page-contents--system .system-box--text .system-time {
        margin-top: 5rem; }
      .page-recruit .page-contents--system .system-box--text .system-insurance {
        margin-top: 5rem; }
    .page-recruit .page-contents--system .system-box--image {
      width: 45%; }
  .page-recruit .page-contents--system dl dt {
    font-size: 2.2rem;
    font-weight: bold; }
.page-recruit .page-contents--position {
  background: #1F2E55;
  margin-top: 20rem;
  padding: 5rem 5%; }
  .page-recruit .page-contents--position .position-box {
    display: flex;
    justify-content: space-around;
    align-items: center;
    position: relative; }
    .page-recruit .page-contents--position .position-box .title {
      color: #fff;
      font-size: 3.5rem; }
    .page-recruit .page-contents--position .position-box .position-text {
      width: 60%; }
      .page-recruit .page-contents--position .position-box .position-text ul {
        align-items: center; }
        .page-recruit .page-contents--position .position-box .position-text ul li {
          color: #fff;
          margin-left: -1.6rem; }
      .page-recruit .page-contents--position .position-box .position-text p {
        color: #fff; }
  .page-recruit .page-contents--position .contact {
    width: 30%;
    height: fit-content;
    font-weight: bold;
    text-align: center;
    background: #fff; }
    .page-recruit .page-contents--position .contact a {
      display: block;
      color: #1F2E55;
      text-decoration: none;
      padding: 1rem; }
  .page-recruit .page-contents--position img {
    position: absolute;
    top: -22rem;
    right: 0;
    width: 40%;
    max-width: 550px; }

@media screen and (max-width: 1366px) {
  .page-recruit .page-contents--position img {
    top: -20rem; } }
@media screen and (max-width: 1024px) {
  .page-recruit .page-contents--position img {
    top: -18rem; } }
@media screen and (max-width: 820px) {
  .page-recruit .maintext {
    width: 90%; }
  .page-recruit .page-contents--system .system-box {
    display: block; }
    .page-recruit .page-contents--system .system-box--text {
      width: 100%; }
    .page-recruit .page-contents--system .system-box--image {
      width: 80%;
      margin: 10rem auto; }
  .page-recruit .page-contents--position .position-box {
    display: block;
    width: 100%; }
    .page-recruit .page-contents--position .position-box .position-text {
      width: 100%; }
  .page-recruit .page-contents--position .contact {
    width: 80%;
    margin: 5rem auto 0; }
  .page-recruit .page-contents--position img {
    top: -22rem;
    width: 65%; } }
@media screen and (max-width: 768px) {
  .page-recruit .page-contents--position img {
    top: -20rem; } }
@media screen and (max-width: 414px) {
  .page-recruit .page-contents--position img {
    top: -15rem;
    width: 80%; } }
@media screen and (max-width: 320px) {
  .page-recruit .page-contents--position {
    margin-top: 15rem; }
    .page-recruit .page-contents--position img {
      top: -13rem; } }
/*========　共通事項　========*/
.footer {
  text-align: center;
  background-color: #FAFAFA;
  margin: 0 auto;
  padding-top: 5rem;
  padding-bottom: 2rem; }
  .footer--menu {
    list-style-type: none;
    display: flex;
    justify-content: center;
    padding-bottom: 3rem  !important; }
    .footer--menu li:after {
      content: "";
      border-right: 1px solid #333333; }
    .footer--menu li:first-child:before {
      content: "";
      border-left: 1px solid #333333; }
    .footer--menu a {
      display: inline-block;
      padding: 0 2rem;
      text-decoration: none;
      color: #333333; }
  .footer--logo {
    display: inline-block;
    margin: 0 auto 3rem; }
  .footer--copyright {
    color: #333333;
    text-align: center;
    font-size: 1.2rem; }

@media screen and (max-width: 820px) {
  .footer--menu {
    flex-wrap: wrap; }
    .footer--menu li:after {
      content: "";
      border-right: none; }
    .footer--menu li:first-child:before {
      content: "";
      border-left: none; }
    .footer--menu a {
      font-size: 1.2rem;
      padding: 0 1rem; } }
/* モーダル表示時に背景固定 */
body.fixed {
  position: fixed;
  left: 0; }
  body.fixed .logo-color {
    display: none; }
  body.fixed .logo-white {
    display: block; }

.modal_contents {
  display: none;
  /* 初期状態 */
  position: fixed;
  top: 0;
  width: 100%;
  /* モーダルは画面いっぱいに */
  height: 100vh;
  /* モーダルは画面いっぱいに */
  margin: 0 !important;
  z-index: 100; }

.overlay {
  width: 100%;
  /* 黒背景も画面いっぱいに */
  height: 100vh;
  /* 黒背景も画面いっぱいに */
  background-color: rgba(31, 46, 85, 0.95); }

/* 配置関連。モーダル自体とは関係なし */
.modal {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 90%;
  height: 300px; }
  .modal .button {
    text-align: center; }
    .modal .button a {
      display: block;
      padding: 1rem 0;
      background: #fff;
      max-width: 250px;
      width: 80%;
      margin: 0 auto;
      text-align: center;
      color: #1F2E55;
      text-decoration: none;
      border-radius: .5rem; }

.btn-trigger {
  position: relative;
  width: 35px;
  height: 30px;
  cursor: pointer; }

.btn-trigger span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 4px;
  background-color: #333;
  border-radius: 4px; }

.btn-trigger, .btn-trigger span {
  display: inline-block;
  transition: all .5s;
  box-sizing: border-box; }

.btn-trigger span:nth-of-type(1) {
  top: 0; }

.btn-trigger span:nth-of-type(2) {
  top: 13px; }

.btn-trigger span:nth-of-type(3) {
  bottom: 0; }

.btn-on span {
  background-color: #fff; }

.btn-on span:nth-of-type(1) {
  -webkit-transform: t ranslateY(13px) rotate(45deg);
  transform: translateY(13px) rotate(45deg); }

.btn-on span:nth-of-type(2) {
  opacity: 0; }

.btn-on span:nth-of-type(3) {
  -webkit-transform: translateY(-13px) rotate(-45deg);
  transform: translateY(-13px) rotate(-45deg); }

.btn-on {
  display: none; }

.modal_menu {
  display: flex;
  justify-content: space-around;
  flex-wrap: wrap;
  margin-bottom: 3rem; }
  .modal_menu div {
    width: 48%;
    margin-bottom: 2rem; }
    .modal_menu div a {
      display: block;
      font-size: 1.4rem;
      padding: .5rem;
      text-align: center;
      color: #fff;
      border: solid 1px #fff;
      text-decoration: none; }

@media screen and (max-width: 820px) {
  .modal_menu div a {
    font-size: 1.2rem; } }
