@charset "UTF-8";
*, *:before, *:after {
  box-sizing: border-box;
  outline: none; }

/*ーーーーーーーーーー
基本設定
ーーーーーーーーーーー*/
html, body {
  width: 100%;
  margin: 0 auto;
  padding: 0;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 16px;
  font-smooth: auto;
  line-height: 1.7;
  background: #fff;
  color: #003249;
  overflow-x: hidden; }
  @media (max-width: 900px) {
    html, body {
      font-size: 14px; } }
  html img, body img {
    max-width: 100%; }

header {
  padding: 0 0 5px; }
  header .logo h1 {
    width: 100%;
    max-width: 215px;
    margin: 0;
    padding: 5px 0 5px; }
    @media (max-width: 900px) {
      header .logo h1 {
        padding: 15px 0 5px;
        width: 60%; } }
  header .logo h2 {
    margin: 0;
    padding: 0;
    font-size: 0.85rem;
    line-height: 1.25;
    font-weight: 500;
    color: #005EAD; }
    @media (max-width: 900px) {
      header .logo h2 {
        font-size: 0.75rem; } }

ul.menu li a {
  padding: 6px; }
  @media (max-width: 900px) {
    ul.menu li a {
      padding: 10px; } }
ul.menu li.contact a {
  transition: .3s; }
  ul.menu li.contact a:hover {
    background: #0095DB; }
ul.menu li .submenu a {
  padding: 10px; }

section.def {
  width: 92%;
  max-width: 980px;
  margin: 0 auto 5.5rem; }
  @media (max-width: 900px) {
    section.def {
      margin: 0 auto 4rem; } }

p {
  margin: 0 0 2rem; }
  @media (max-width: 900px) {
    p {
      margin: 0 0 1.5rem; } }
  p.large {
    font-size: 1.1rem;
    margin: 0 0 3rem; }
  p.notice {
    font-size: 0.8rem; }
  p.caption {
    text-align: right;
    font-size: 0.8rem; }

h1.pagetitle {
  margin: 0 0 2.5rem;
  padding: 4rem 1rem;
  font-size: 2.5rem;
  line-height: 1.25;
  font-weight: 500;
  color: #005EAD;
  text-align: center;
  background: #E0F2FA; }

.under {
  padding-top: 115px; }
  @media (max-width: 900px) {
    .under {
      padding-top: 85px; } }

.view-pc {
  display: block; }
  @media (max-width: 900px) {
    .view-pc {
      display: none; } }

.view-sp {
  display: none; }
  @media (max-width: 900px) {
    .view-sp {
      display: block; } }

.fadeInUp {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s ease, transform 0.8s ease;
  will-change: opacity, transform; }

.fadeInUp.is-show {
  opacity: 1;
  transform: translateY(0); }

.fadeInUp.first-fade {
  opacity: 0;
  transform: translateY(0px);
  transition: opacity 0.8s ease, transform 0.8s ease;
  will-change: opacity, transform; }

.fadeInUp.first-fade.is-show {
  opacity: 1;
  transform: translateY(0); }

/*ーーーーーーーーーー
メインスライダー
ーーーーーーーーーーー*/
.main-slider {
  padding-top: 115px;
  margin: 0 auto 4rem; }
  @media (max-width: 900px) {
    .main-slider {
      padding-top: 85px; } }

/*ーーーーーーーーーー
JUST SYSTEM
ーーーーーーーーーーー*/
.just-system h1 {
  font-size: 2.4rem;
  text-align: center;
  color: #005EAD;
  line-height: 1.5;
  margin: 0 0 1.5rem; }
  @media (max-width: 900px) {
    .just-system h1 {
      font-size: 1.5rem; } }
.just-system p {
  font-size: 1.1rem;
  line-height: 2.0;
  margin: 0 0 2rem; }
  @media (max-width: 900px) {
    .just-system p {
      font-size: 1.0rem; } }

/*ーーーーーーーーーー
会長挨拶
ーーーーーーーーーーー*/
.message {
  padding-top: 1rem; }
  .message h2 {
    margin: 0;
    padding: 0;
    font-size: 4.2rem;
    line-height: 1.2;
    font-family: "Oswald", sans-serif;
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: normal;
    color: #005EAD;
    text-align: center; }
    @media (max-width: 900px) {
      .message h2 {
        font-size: 3.2rem; } }
  .message h3 {
    margin: 0 0 2rem;
    padding: 0;
    font-size: 1rem;
    font-weight: 500;
    text-align: center; }
  .message h4 {
    margin: 0 0 1.5rem;
    padding: 0;
    font-size: 1.5rem;
    font-weight: 500; }
    @media (max-width: 900px) {
      .message h4 {
        text-align: center; } }
  .message p {
    line-height: 1.8; }
    .message p.credit {
      font-size: 1.4rem;
      text-align: right;
      line-height: 1.3; }
      .message p.credit span {
        font-size: 0.8rem; }

.block-message {
  display: flex;
  gap: 20px 4%; }
  @media (max-width: 900px) {
    .block-message {
      flex-wrap: wrap-reverse; } }
  .block-message .text {
    width: 60%; }
    @media (max-width: 900px) {
      .block-message .text {
        width: 100%; } }
  .block-message .photo {
    width: 36%; }
    @media (max-width: 900px) {
      .block-message .photo {
        width: 60%;
        margin: 0 20%; } }

/*ーーーーーーーーーー
会社案内
ーーーーーーーーーーー*/
.profile {
  background: #E0F2FA; }
  .profile section.def {
    padding: 2.8rem 0; }
  .profile h2 {
    margin: 0;
    padding: 0;
    font-size: 4.2rem;
    line-height: 1.2;
    font-family: "Oswald", sans-serif;
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: normal;
    color: #005EAD;
    text-align: center; }
    @media (max-width: 900px) {
      .profile h2 {
        font-size: 3.2rem; } }
  .profile h3 {
    margin: 0 0 2rem;
    padding: 0;
    font-size: 1rem;
    font-weight: 500;
    text-align: center; }
  .profile h4 {
    color: #4CB5E4;
    font-weight: 500;
    border-bottom: 3px solid #fff;
    padding: 0 0.1rem 0.4rem;
    margin: 0 0 1rem; }
  .profile p {
    line-height: 1.5;
    margin: 0 0 1.5rem; }
    .profile p strong {
      color: #005EAD; }
    .profile p.def {
      line-height: 1.8; }
  .profile ul.block-com {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 2%;
    background: #F3FAFD;
    padding: 1rem 1.5rem;
    margin: 0 0 2.5rem; }
    .profile ul.block-com li {
      width: 49%;
      font-size: 0.9rem;
      /*line-height: 1.4;*/ }
      @media (max-width: 900px) {
        .profile ul.block-com li {
          width: 100%; } }
      .profile ul.block-com li strong {
        color: #4CB5E4; }

/*ーーーーーーーーーー
事業案内
ーーーーーーーーーーー*/
.title-a {
  border: 4px solid #005EAD;
  display: flex;
  padding: 5px;
  gap: 5px;
  align-items: center;
  margin: 0 0 1.2rem; }
  .title-a .icon {
    width: 55px; }
    @media (max-width: 900px) {
      .title-a .icon {
        width: 40px;
        min-width: 40px; } }
  .title-a h2 {
    font-size: 1.8rem;
    font-weight: 500;
    color: #005EAD;
    line-height: 1.25;
    margin: 0;
    padding: 0 0 0 0.3rem; }
    @media (max-width: 900px) {
      .title-a h2 {
        font-size: 1.5rem; } }

/******見出しデザイン*****/
.heading-box {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: stretch;
  width: 100%;
  margin: 0 0 1.2rem;
  min-height: 80px; }

/* 左側 */
.heading-title {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  background: #005EAD;
  color: #fff;
  padding: 0.5rem 1rem 0.5rem 1rem;
  font-size: clamp(1.6rem, 1.8vw, 2rem);
  font-weight: 500;
  line-height: 1.2;
  /*white-space: nowrap;*/ }
  @media (max-width: 900px) {
    .heading-title {
      font-size: 1.5rem; } }
  .heading-title span {
    font-size: 75%; }

/* 矢印 */
.heading-title::after {
  content: "";
  position: absolute;
  top: 0;
  right: -20px;
  width: 21px;
  height: 100%;
  background: #005EAD;
  clip-path: polygon(0 0, 100% 50%, 0 100%); }

/* 右側 */
.heading-sub {
  display: flex;
  align-items: center;
  background: #66BFE8;
  color: #fff;
  padding: 0.5rem 1rem 0.5rem 2.2rem;
  font-size: clamp(1.2rem, 1.2vw, 1.5rem);
  line-height: 1.5; }

@media (max-width: 900px) {
  .heading-box {
    grid-template-columns: 1fr; }

  .heading-title {
    justify-content: center; }

  .heading-title::after {
    top: auto;
    bottom: -24px;
    left: 0;
    right: 0;
    width: 100%;
    height: 25px;
    clip-path: polygon(0 0, 50% 100%, 100% 0); }

  .heading-sub {
    padding: 2.5rem 1.0rem 1.0rem; } }
h3.t-c {
  background: #005EAD;
  color: #fff;
  text-align: center;
  font-size: 1.5rem;
  font-weight: 500;
  padding: 0.4rem 0.5rem 0.6rem;
  line-height: 1.25;
  margin: 2rem 0 0.8rem; }
  @media (max-width: 900px) {
    h3.t-c {
      font-size: 1.4rem; } }

/******コンテンツブロック-A*****/
.block-a {
  display: flex;
  flex-wrap: wrap;
  gap: 20px 4%;
  margin: 0 0 2rem; }
  .block-a .text {
    width: 52%; }
    @media (max-width: 900px) {
      .block-a .text {
        width: 100%; } }
  .block-a .photo {
    width: 44%; }
    @media (max-width: 900px) {
      .block-a .photo {
        width: 100%; } }
  .block-a p {
    margin-bottom: 1.2rem; }
  .block-a h4 {
    font-size: 1.0rem;
    line-height: 1.25;
    background: #BFE4F5;
    padding: 0.5rem 1rem;
    color: #005EAD;
    margin: 0 0 0.5rem; }

/******コンテンツブロック-B*****/
.block-b {
  display: flex;
  flex-wrap: wrap;
  gap: 20px 4%;
  margin: 1.2rem 0 2.0rem; }
  .block-b .text {
    width: 44%; }
    @media (max-width: 900px) {
      .block-b .text {
        width: 100%; } }
  .block-b .photo {
    width: 52%; }
    @media (max-width: 900px) {
      .block-b .photo {
        width: 100%; } }
    .block-b .photo p.caption {
      text-align: right;
      font-size: 0.8rem; }
  .block-b p {
    margin-bottom: 1.2rem; }

/******コンテンツブロック-C*****/
.block-c {
  display: flex;
  flex-wrap: wrap;
  gap: 0 6%;
  margin: 0 0 2.0rem; }
  .block-c li {
    width: 47%; }
    @media (max-width: 900px) {
      .block-c li {
        width: 100%; } }

/******コンテンツブロック-D*****/
.block-d {
  display: flex;
  flex-wrap: wrap;
  gap: 0 8%;
  margin: 0 0; }
  .block-d .left {
    width: 55.5%; }
    @media (max-width: 900px) {
      .block-d .left {
        width: 100%; } }
  .block-d .right {
    width: 36.5%; }
    @media (max-width: 900px) {
      .block-d .right {
        width: 100%; } }

.sub-title {
  margin: 0 0 1.25rem; }
  .sub-title h4 {
    font-size: 1.2rem;
    font-weight: 500;
    line-height: 1.1;
    color: #0095DB;
    border-left: 5px solid #0095DB;
    margin: 0;
    padding: 0 0 0 10px; }
  .sub-title h5 {
    font-size: 1.0rem;
    font-weight: 500;
    line-height: 1.2;
    border-left: 5px solid #B5B5B6;
    margin: 0;
    padding: 0.15rem 0 0.15rem 10px; }

/*ーーーーーーーーーー
採用情報
ーーーーーーーーーーー*/
h1.pagetitle-recruit {
  margin: 0 0 4.5rem;
  padding: 7.0rem 1rem;
  font-size: 2.8rem;
  line-height: 1.25;
  font-weight: 500;
  color: #fff;
  text-align: center;
  background: url("../images/bg_recruit.jpg") no-repeat;
  background-size: cover; }
  @media (max-width: 900px) {
    h1.pagetitle-recruit {
      padding: 3.5rem 1rem;
      font-size: 2.0rem;
      margin: 0 0 3.5rem; } }

.recruit-page h2 {
  font-size: 1.5rem;
  color: #005EAD;
  border-bottom: 2px solid #005EAD;
  padding: 0 0.1rem 0.5rem;
  margin: 0 0 1rem; }
.recruit-page h3.t-c {
  text-align: left;
  margin-bottom: 1.0rem;
  padding: 0.7rem 0.8rem 0.9rem; }
.recruit-page .recruit-btn {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 2%;
  margin: 0 0 4.5rem; }
  @media (max-width: 900px) {
    .recruit-page .recruit-btn {
      margin: 0 0 3.5rem; } }
  .recruit-page .recruit-btn a {
    display: block;
    position: relative;
    width: 49%;
    padding: 1rem 3rem 1rem 1rem;
    background: #fff;
    border: 1px solid #005EAD;
    font-size: 1.0rem;
    border-radius: 5px;
    transition: .3s; }
    @media (max-width: 900px) {
      .recruit-page .recruit-btn a {
        width: 100%; } }
    .recruit-page .recruit-btn a.width-full {
      width: 100%; }
    .recruit-page .recruit-btn a i {
      padding-right: 0.4rem; }
      .recruit-page .recruit-btn a i.pdf {
        position: absolute;
        top: 50%;
        right: 6px;
        transform: translateY(-50%);
        -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        font-size: 1.25rem;
        color: #a42416; }
    .recruit-page .recruit-btn a:hover {
      background: #E0F2FA; }

.recruit-under {
  height: 38vh;
  display: flex;
  align-items: center;
  justify-content: center; }
  .recruit-under p {
    text-align: center;
    font-size: 1.2rem;
    padding-bottom: 3rem; }

/*ーーーーーーーーーー
ポリシー
ーーーーーーーーーーー*/
.policy {
  height: 65vh; }

/*ーーーーーーーーーー
お問い合わせ
ーーーーーーーーーーー*/
#contact .form-def .form-line {
  display: flex;
  flex-wrap: wrap;
  padding: 0; }
  #contact .form-def .form-line .name {
    padding: 2.0rem 0 1rem;
    width: 250px;
    font-weight: 400; }
    @media (max-width: 900px) {
      #contact .form-def .form-line .name {
        width: 100%;
        padding: 1rem 0 0; } }
  #contact .form-def .form-line .value {
    padding: 1rem 0;
    width: 600px; }
    @media (max-width: 900px) {
      #contact .form-def .form-line .value {
        width: 100%;
        padding: 0.5rem 0 1rem; } }
#contact .form-def textarea {
  border: 1px solid #aaa;
  font-size: 1rem;
  padding: 1.2em;
  font-smooth: auto;
  font-weight: 400;
  background: #fff;
  width: 100%; }
  #contact .form-def textarea.textarea_a {
    width: 100%;
    height: 6em; }
    @media (max-width: 900px) {
      #contact .form-def textarea.textarea_a {
        width: 100%; } }
  #contact .form-def textarea.textarea_a_l {
    width: 100%;
    height: 12em; }
    @media (max-width: 900px) {
      #contact .form-def textarea.textarea_a_l {
        width: 100%; } }
#contact .form-def input {
  border: 1px solid #aaa;
  font-size: 1rem;
  padding: 1.2em;
  font-smooth: auto;
  font-weight: 400;
  background: #fff; }
  #contact .form-def input.textarea_l {
    width: 100%; }
    @media (max-width: 900px) {
      #contact .form-def input.textarea_l {
        width: 100%; } }
#contact .form-def .form_btn {
  text-align: center;
  margin: 2.5em auto; }
  #contact .form-def .form_btn input {
    width: 12em;
    padding: 0.8em;
    margin: 0 0.8em;
    background: #0071BC;
    color: #fff;
    border: none;
    cursor: pointer; }
    #contact .form-def .form_btn input.reset {
      background: #999; }
    @media (max-width: 900px) {
      #contact .form-def .form_btn input {
        width: 7em;
        padding: 0.8em 0.5em;
        margin: 0 0.4em; } }
#contact .must {
  color: #C60C05; }
#contact .thanks {
  display: flex;
  flex-wrap: wrap;
  height: 30vh;
  min-height: 400px;
  align-items: center; }
  #contact .thanks p {
    width: 100%;
    text-align: center;
    margin-bottom: 2rem; }
  #contact .thanks a:hover {
    text-decoration: underline; }

/*ーーーーーーーーーー
フッター
ーーーーーーーーーーー*/
footer {
  padding: 0;
  margin: 0; }
  footer .footer-wrap {
    background: url("../images/bg_footer.jpg") no-repeat;
    background-size: cover;
    background-position: center bottom;
    padding: 7rem 0 5rem; }
    @media (max-width: 900px) {
      footer .footer-wrap {
        padding: 3rem 0 2rem; } }
  footer .footer-cont {
    width: 92%;
    max-width: 980px;
    margin: 0 auto;
    padding: 0; }
    footer .footer-cont .logo h1 {
      width: 50%;
      max-width: 340px;
      margin: 0 0 0.3rem;
      padding: 0; }
    footer .footer-cont .logo h2 {
      color: #005EAD;
      font-size: 1.5rem;
      font-weight: 500;
      margin: 0 0 1.5rem;
      padding: 0; }
      @media (max-width: 900px) {
        footer .footer-cont .logo h2 {
          font-size: 1.2rem; } }
    footer .footer-cont .logo a {
      padding: 0;
      margin: 0; }
    footer .footer-cont a {
      margin-right: 1.5rem; }
      footer .footer-cont a:hover {
        text-decoration: underline; }
      footer .footer-cont a i {
        padding-right: 0.25rem; }
  footer .copyright {
    background: #005EAD;
    color: #fff;
    text-align: center;
    line-height: 1.2;
    padding: 2.5rem 1rem;
    margin: 0; }

/*ーーーーーーーーーー
クッキーバナー
ーーーーーーーーーーー*/
.cc-window {
  width: 100%;
  padding: 0;
  box-sizing: border-box; }

.cc-inner {
  width: 92%;
  max-width: 980px;
  margin: 0 auto;
  padding: 10px 0 5px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  font-size: 0.95rem; }

a.cc-link {
  /*display: block;*/
  display: none;
  max-width: 8rem;
  text-decoration: underline; }
  a.cc-link:hover {
    text-decoration: none; }
a.cc-btn {
  padding: 1rem 2.2rem;
  border-radius: 10px; }
