@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&family=Noto+Serif+JP:wght@400;600&display=swap");
@import url(ress.css);
/* colors
------------------------------ */
/* fonts
------------------------------ */
/* icon */
/* width
------------------------------ */
/* flex */
.flex {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex; }

.flex-j_s {
  -webkit-box-pack: start;
  -webkit-justify-content: flex-start;
  -ms-flex-pack: start;
  justify-content: flex-start; }

.flex-j_b {
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between; }

.flex-j_c {
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center; }

.flex-j_e {
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
  -ms-flex-pack: end;
  justify-content: flex-end; }

.flex-w_w {
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap; }

/* grid */
.row {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap; }
  @media print, screen and (min-width: 768px) {
    .row.gutter {
      margin-left: -24px; }
      .row.gutter > div {
        padding-left: 24px; } }
  @media only screen and (max-width: 767px) {
    .row.gutter .span-s-12 + .span-s-12 {
      margin-top: 24px; } }

.row .span-1 {
  width: 8.33333%; }

.row .span-2 {
  width: 16.66667%; }

.row .span-3 {
  width: 25%; }

.row .span-4 {
  width: 33.33333%; }

.row .span-5 {
  width: 41.66667%; }

.row .span-6 {
  width: 50%; }

.row .span-7 {
  width: 58.33333%; }

.row .span-8 {
  width: 66.66667%; }

.row .span-9 {
  width: 75%; }

.row .span-10 {
  width: 83.33333%; }

.row .span-11 {
  width: 91.66667%; }

.row .span-12 {
  width: 100%; }

@media only screen and (max-width: 767px) {
  .row .span-s-3 {
    width: 25% !important; }
  .row .span-s-4 {
    width: 33.33% !important; }
  .row .span-s-6 {
    width: 50% !important; }
  .row .span-s-12 {
    width: 100% !important; } }

/* text */
.ta-c {
  text-align: center !important; }

.ta-l {
  text-align: left !important; }

.ta-r {
  text-align: right !important; }

.fw-n {
  font-weight: normal; }

.fw-b {
  font-weight: bold; }

.ff-mincho {
  font-family: "Noto Serif JP", serif; }

.fc-blue {
  color: #012177; }

.fc-orange {
  color: #F07F0E; }

/* clearfix */
.clear {
  clear: both;
  content: "";
  display: table; }

/* width */
.w-100 {
  width: 100%; }

.w-90 {
  width: 90%; }

.w-80 {
  width: 80%; }

.w-70 {
  width: 70%; }

.w-60 {
  width: 60%; }

.w-50 {
  width: 50%; }

.w-40 {
  width: 40%; }

.w-30 {
  width: 30%; }

.w-20 {
  width: 20%; }

.w-10 {
  width: 10%; }

.w-0 {
  width: 0%; }

/* margin */
.mt-0 {
  margin-top: 0 !important; }

.mb-0 {
  margin-bottom: 0 !important; }

.mt-1em {
  margin-top: 1em !important; }

.mt-2em {
  margin-top: 2em !important; }

/* responsive */
@media print, screen and (min-width: 768px) {
  .sponly {
    display: none; } }

@media only screen and (max-width: 767px) {
  .pconly {
    display: none; } }

/* link */
a {
  color: #000;
  text-decoration: none; }

a:hover {
  color: #F07F0E; }

/* img */
img {
  max-width: 100%;
  height: auto; }

/* hr */
hr {
  visibility: hidden; }

/* paragraph */
/* table */
table th {
  font-weight: bold;
  text-align: left;
  white-space: nowrap;
  word-break: keep-all; }

table th, table td {
  vertical-align: top; }

table th + td,
table td + td {
  padding-left: 2em; }

@media print, screen and (min-width: 768px) {
  table th, table td {
    line-height: 2; } }

@media only screen and (max-width: 767px) {
  table.sp-block > tbody {
    display: block; }
    table.sp-block > tbody > tr {
      display: block; }
      table.sp-block > tbody > tr > th, table.sp-block > tbody > tr > td {
        display: block; }
      table.sp-block > tbody > tr > th {
        margin-top: 1em; }
      table.sp-block > tbody > tr > td {
        margin-top: .5em;
        padding-left: 0; } }

table.list th {
  font-weight: normal;
  padding-right: 1em; }
  table.list th::before {
    content: "・"; }

/* list */
ol {
  margin-left: 1.5em; }
  ol li {
    margin-top: .75em; }
  ol.custom {
    list-style: none; }
  ol.brackets {
    margin-left: 0; }
    ol.brackets > li {
      padding-left: 3em;
      text-indent: -3em; }

.list-dot {
  list-style: none; }
  .list-dot li {
    padding-left: 1em;
    text-indent: -1em; }
    .list-dot li::before {
      content: "・"; }
  .list-dot.bold li::before {
    font-weight: bold; }

dl.table {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap; }
  @media print, screen and (min-width: 768px) {
    dl.table dd {
      padding-left: 2em; } }
  @media only screen and (max-width: 767px) {
    dl.table {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -webkit-flex-flow: column wrap;
      -ms-flex-flow: column wrap;
      flex-flow: column wrap; }
      dl.table dt,
      dl.table dd {
        width: 100% !important; }
      dl.table dd {
        padding-bottom: 1em; } }

@media only screen and (max-width: 767px) {
  dl.sp-inline {
    display: block; }
    dl.sp-inline dt, dl.sp-inline dd {
      display: inline;
      padding-bottom: 0;
      width: auto !important; }
    dl.sp-inline dd + dt::before {
      content: "\A";
      white-space: pre; } }

dl.list dt::before {
  content: "・"; }

.header {
  background: #FFF; }
  .header-inner {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto; }
  .header-logo {
    width: 310px;
    height: 29px;
    -webkit-flex-shrink: 1;
    -ms-flex-negative: 1;
    flex-shrink: 1; }
  @media only screen and (max-width: 767px) {
    .header {
      height: 55px;
      padding: 0; }
      .header-logo {
        padding: 0 20px;
        height: 24px; }
      .header .btn-menu {
        background: #000;
        cursor: pointer;
        width: 55px;
        height: 55px;
        position: relative; }
        .header .btn-menu span {
          display: block;
          border-top: 1px solid #FFF;
          width: 26px;
          height: 1px;
          position: absolute;
          top: 27px;
          left: 15px; }
          .header .btn-menu span::before, .header .btn-menu span::after {
            background: #FFF;
            content: "";
            display: block;
            width: 100%;
            height: 1px;
            position: absolute;
            -webkit-transform-origin: center;
            -ms-transform-origin: center;
            transform-origin: center;
            -webkit-transition: -webkit-transform .3s ease;
            transition: -webkit-transform .3s ease;
            transition: transform .3s ease;
            transition: transform .3s ease, -webkit-transform .3s ease; }
          .header .btn-menu span::before {
            top: -8px; }
          .header .btn-menu span::after {
            bottom: -8px; } }
  .header.is-active .btn-menu span {
    border-top: none; }
    .header.is-active .btn-menu span::before, .header.is-active .btn-menu span::after {
      top: 50%; }
    .header.is-active .btn-menu span::before {
      -webkit-transform: rotate(-45deg);
      -ms-transform: rotate(-45deg);
      transform: rotate(-45deg); }
    .header.is-active .btn-menu span::after {
      -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
      transform: rotate(45deg); }

@media print, screen and (min-width: 768px) {
  .fixed-header #header {
    background: #FFF;
    border-bottom: 3px solid #000;
    -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.18);
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.18);
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 10000; } }

.footer {
  background: #012177 url(/lib_image/common/bg_footer.jpg) no-repeat 50% 50%/cover;
  color: #FFF;
  position: relative; }
  .footer a {
    color: #FFF;
    text-decoration: none; }
  .footer .copyright {
    color: #A1A7B6;
    font-size: 12px;
    text-align: center; }
  @media print, screen and (min-width: 768px) {
    .footer {
      padding: 80px 0 56px; } }
  @media only screen and (max-width: 767px) {
    .footer {
      padding: 8% 0 0;
      text-align: center; }
      .footer .footer-contact,
      .footer .nav-footer_links {
        display: none; }
      .footer .copyright {
        margin-top: 3em; } }

.nav ul {
  list-style: none;
  margin: 0;
  padding: 0; }

.nav-global {
  z-index: 1000; }

.nav-footer {
  max-width: 1200px;
  margin-right: auto;
  margin-left: auto; }
  .nav-footer_contact .footer-contact {
    margin-top: 3em; }
    .nav-footer_contact .footer-contact a {
      border: 1px solid #FFF;
      display: inline-block;
      font-size: 16px;
      font-weight: bold;
      padding: 1em 3em;
      -webkit-transition: background .3s;
      transition: background .3s; }
      .nav-footer_contact .footer-contact a:hover {
        background: #FFF;
        color: #012177; }
      .nav-footer_contact .footer-contact a::before {
        font-size: 20px;
        margin-right: 12px; }
  .nav-footer_links {
    width: 57.5%; }
    .nav-footer_links a:hover {
      text-decoration: underline; }
    .nav-footer_links > ul {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      margin-bottom: 100px; }
      .nav-footer_links > ul > li {
        min-width: 33%;
        padding-right: 4em; }
        .nav-footer_links > ul > li > a {
          font-weight: bold; }
        .nav-footer_links > ul > li ul {
          margin-top: 2em; }
          .nav-footer_links > ul > li ul + ul {
            margin-top: 3em; }
        .nav-footer_links > ul > li li {
          margin-top: .6em;
          white-space: nowrap; }
  @media print, screen and (min-width: 768px) {
    .nav-footer {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex; }
      .nav-footer_contact {
        width: 42.5%; }
        .nav-footer_contact .footer-logo {
          width: 334px; } }
  @media only screen and (max-width: 767px) {
    .nav-footer_contact {
      text-align: center;
      width: 100%; }
      .nav-footer_contact .footer-logo {
        width: 62%;
        margin-right: auto;
        margin-left: auto; } }

.nav-top a {
  background: #000;
  color: #FFF;
  display: block;
  font-size: 12px;
  font-weight: bold;
  position: absolute;
  z-index: 1000; }
  .nav-top a::before, .nav-top a::after {
    content: "";
    display: block;
    position: absolute;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 8px 7px 8px;
    border-color: transparent transparent #FFF transparent;
    top: 15px;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%); }
  .nav-top a::after {
    border-bottom-color: #000;
    margin-top: 1px; }

@media print, screen and (min-width: 768px) {
  .nav-top a {
    border-radius: 70px;
    padding: 35px 0 10px;
    width: 70px;
    height: 70px;
    bottom: 435px;
    right: 40px;
    text-align: center; }
  .nav-top.fixed a {
    position: fixed;
    bottom: 50px; } }

@media only screen and (max-width: 767px) {
  .nav-top {
    margin-top: 2em;
    position: relative; }
    .nav-top a {
      bottom: 0;
      left: 0;
      width: 100%;
      height: 60px;
      padding: 30px 0 15px;
      position: relative; } }

@media print, screen and (min-width: 768px) {
  .nav-global_list {
    display: table; }
    .nav-global_list > li {
      display: table-cell;
      height: 80px;
      padding: 0 1.5em;
      vertical-align: middle; }
      .nav-global_list > li > a {
        color: inherit;
        font-weight: bold;
        position: relative;
        white-space: nowrap; }
        .nav-global_list > li > a::after {
          background: #00AAEE;
          content: "";
          display: block;
          height: 1px;
          max-height: 1px;
          position: absolute;
          right: 51%;
          left: 51%;
          bottom: -10px;
          z-index: -1;
          -webkit-transition: all .3s ease-out;
          transition: all .3s ease-out; }
        .nav-global_list > li > a:hover::after {
          right: 0;
          left: 0; }
      .nav-global_list > li:hover > .nav-global_menu {
        max-height: 9999px;
        opacity: 1;
        z-index: 1000; }
  .nav-global_contact a::before {
    display: none; }
  .nav-global_menu {
    background: #000;
    -webkit-box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    color: #FFF;
    font-weight: bold;
    opacity: 0;
    overflow: hidden;
    position: absolute;
    top: 80px;
    right: 0;
    left: 0;
    z-index: -1;
    max-height: 0;
    -webkit-transition: all .2s ease-in;
    transition: all .2s ease-in; }
    .nav-global_menu a {
      color: inherit;
      font-weight: bold;
      position: relative; }
      .nav-global_menu a::after {
        content: "";
        font-size: 20px;
        position: absolute;
        right: 25px;
        -webkit-transition: color .3s;
        transition: color .3s; }
      .nav-global_menu a:hover {
        color: #00AAEE; }
      .nav-global_menu a[target="_blank"]::after {
        content: "";
        font-size: 24px; }
    .nav-global_menu .l-inner {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: justify;
      -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
      justify-content: space-between;
      -webkit-box-align: center;
      -webkit-align-items: center;
      -ms-flex-align: center;
      align-items: center;
      padding: 40px 0; }
    .nav-global_menu .category-name {
      text-align: center;
      white-space: nowrap; }
      .nav-global_menu .category-name .jp, .nav-global_menu .category-name .en {
        display: block; }
      .nav-global_menu .category-name .jp {
        font-size: 26px; }
      .nav-global_menu .category-name .en {
        font-size: 12px; }
    .nav-global_menu .category-nav {
      display: -webkit-box;
      display: -webkit-flex;
      display: -ms-flexbox;
      display: flex;
      -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
      flex-wrap: wrap;
      margin-top: -24px;
      width: 920px; }
      .nav-global_menu .category-nav li {
        background: rgba(255, 255, 255, 0.1);
        font-size: 18px;
        margin-top: 16px;
        margin-left: 24px;
        width: 256px; }
        .nav-global_menu .category-nav li:nth-child(3n) {
          width: 336px; }
      .nav-global_menu .category-nav a {
        display: block;
        padding: 1.5em;
        -webkit-transition: -webkit-box-shadow .3s;
        transition: -webkit-box-shadow .3s;
        transition: box-shadow .3s;
        transition: box-shadow .3s, -webkit-box-shadow .3s;
        -webkit-box-shadow: inset 0 0 0 1px transparent;
        box-shadow: inset 0 0 0 1px transparent; }
        .nav-global_menu .category-nav a:hover {
          -webkit-box-shadow: inset 0 0 0 1px #00AAEE;
          box-shadow: inset 0 0 0 1px #00AAEE; }
  [data-current="home"] .nav-global_home > a::after,
  [data-current="service"] .nav-global_service > a::after,
  [data-current="company"] .nav-global_company > a::after,
  [data-current="recruit"] .nav-global_recruit > a::after {
    right: 0;
    left: 0; } }

@media only screen and (max-width: 767px) {
  .nav-global {
    content: "";
    display: block;
    position: fixed;
    top: 55px;
    right: 0;
    left: 0;
    -webkit-overflow-scrolling: touch; }
    .nav-global a {
      color: inherit; }
      .nav-global a[target=_blank]::after {
        content: "";
        font-size: 22px; }
    .nav-global_inner {
      background: #000;
      color: #FFF;
      padding: 40px 20px;
      position: absolute;
      top: 0;
      right: 0;
      width: 319px;
      -webkit-transform: translateX(100%);
      -ms-transform: translateX(100%);
      transform: translateX(100%);
      -webkit-transition: -webkit-transform .3s ease;
      transition: -webkit-transform .3s ease;
      transition: transform .3s ease;
      transition: transform .3s ease, -webkit-transform .3s ease; }
    .nav-global_list > li {
      margin-bottom: 1.5em; }
      .nav-global_list > li > a {
        display: block;
        font-weight: bold;
        position: relative; }
      .nav-global_list > li.has-menu > a {
        border-bottom: 1px solid #808080;
        padding-bottom: 1em;
        position: relative; }
        .nav-global_list > li.has-menu > a::before, .nav-global_list > li.has-menu > a::after {
          background: #FFF;
          content: "";
          display: block;
          width: 1px;
          height: 16px;
          opacity: 1;
          position: absolute;
          top: 50%;
          margin-top: -1em;
          -webkit-transition: opacity .3s;
          transition: opacity .3s; }
        .nav-global_list > li.has-menu > a::before {
          right: 8px; }
        .nav-global_list > li.has-menu > a::after {
          right: 8px;
          -webkit-transform: rotate(90deg);
          -ms-transform: rotate(90deg);
          transform: rotate(90deg); }
      .nav-global_list > li.is-open a::before {
        opacity: 0; }
      .nav-global_list > li.is-open .nav-global_menu {
        opacity: 1;
        max-height: 9999px;
        -webkit-transition: max-height .3s ease-in;
        transition: max-height .3s ease-in; }
    .nav-global_menu {
      opacity: 0;
      overflow: hidden;
      max-height: 0;
      -webkit-transition: max-height .1s ease-out;
      transition: max-height .1s ease-out; }
      .nav-global_menu .l-inner {
        padding: 1em 0 0 5em; }
      .nav-global_menu .category-name {
        display: none; }
      .nav-global_menu li {
        margin-top: .5em; }
        .nav-global_menu li a {
          display: block;
          padding: .5em 0; }
    .nav-global_contact a {
      border: 1px solid #FFF;
      display: inline-block;
      font-size: 16px;
      margin: 40px auto;
      padding: .75em 1em;
      text-align: center;
      width: 84%; }
      .nav-global_contact a::before {
        margin-right: .5em; }
    .nav-global .menu-close {
      background: #404040;
      cursor: pointer;
      display: inline-block;
      margin: 40px auto 0;
      padding: 1em 3em 1em 4.5em;
      position: relative; }
      .nav-global .menu-close::before, .nav-global .menu-close::after {
        background: #FFF;
        content: "";
        display: block;
        width: 1px;
        height: 16px;
        position: absolute;
        top: 50%;
        margin-top: -8px;
        left: 44px; }
      .nav-global .menu-close::before {
        -webkit-transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
        transform: rotate(-45deg); }
      .nav-global .menu-close::after {
        -webkit-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
        transform: rotate(45deg); }
  .is-active .nav-global {
    background: rgba(0, 0, 0, 0.3);
    bottom: 0;
    overflow: hidden;
    overflow-y: auto; }
    .is-active .nav-global_inner {
      -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
      transform: translateX(0); } }

* + .list-anchor {
  margin-top: 3em; }

.list-anchor ul {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  margin-left: -.5%; }
  .list-anchor ul li {
    background: #F5F5F5;
    border: 1px solid transparent;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    margin-top: .5%;
    margin-left: .5%;
    width: 19.5%;
    -webkit-transition: border .3s;
    transition: border .3s; }
    .list-anchor ul li:hover {
      border-color: #00AAEE; }
  .list-anchor ul a {
    color: #000;
    display: block;
    line-height: 1.5;
    position: relative;
    text-decoration: none;
    width: 100%; }
    .list-anchor ul a::after {
      content: "";
      display: block;
      width: 10px;
      height: 10px;
      border-right: 1px solid #00AAEE;
      border-bottom: 1px solid #00AAEE;
      position: absolute;
      -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
      transform: rotate(45deg); }

@media print, screen and (min-width: 768px) {
  .list-anchor ul {
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center; }
    .list-anchor ul li a {
      font-weight: bold;
      padding: 1em 2em 1em 1em; }
      .list-anchor ul li a::after {
        right: 15px;
        top: 50%;
        margin-top: -5px; } }

@media only screen and (max-width: 767px) {
  .list-anchor ul {
    -webkit-box-pack: start;
    -webkit-justify-content: flex-start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    margin-left: -2%; }
    .list-anchor ul li {
      width: 48%;
      margin-top: 2%;
      margin-left: 2%; }
      .list-anchor ul li a {
        padding: 1.5em .5em 3em;
        text-align: center; }
        .list-anchor ul li a:after {
          bottom: 1em;
          left: 50%;
          margin-left: -5px; } }

/* ------------------------------

------------------------------ */
body {
  background: #FFF;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  -webkit-text-size-adjust: 100%; }
  body.has-modal {
    position: fixed; }

/* icon */
@font-face {
  font-family: "icons";
  src: url("/css/fonts/icons.eot?qvbsjr");
  src: url("/css/fonts/icons.eot?qvbsjr#iefix") format("embedded-opentype"), url("/css/fonts/icons.ttf?qvbsjr") format("truetype"), url("/css/fonts/icons.woff?qvbsjr") format("woff"), url("/css/fonts/icons.svg?qvbsjr#icons") format("svg");
  font-weight: normal;
  font-style: normal;
  font-display: block; }

.icon-b,
.icon-a {
  position: relative; }

.icon-b::after {
  margin-right: .25em; }

.icon-a::after {
  margin-left: .25em; }

.icon-b::before,
.icon-a::after {
  display: inline-block;
  font-family: "icons" !important;
  font-size: 1.42em;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  vertical-align: middle;
  margin-top: -.1em;
  position: relative;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.icon-b.icon-download::before,
.icon-a.icon-download::after {
  content: ""; }

.icon-b.icon-blank::before,
.icon-a.icon-blank::after {
  content: ""; }

.icon-b.icon-arrow_b::before,
.icon-a.icon-arrow_b::after {
  content: ""; }

.icon-b.icon-arrow::before,
.icon-a.icon-arrow::after {
  content: ""; }

.icon-b.icon-mail::before,
.icon-a.icon-mail::after {
  content: ""; }

h1, h2, h3, h4, h5, h6 {
  font-size: 100%;
  line-height: 1.2;
  margin: 0;
  padding: 0; }

.title.lv-3 {
  border-top: 2px solid #012177;
  border-bottom: 2px solid #012177;
  color: #012177;
  line-height: 1.25;
  letter-spacing: 0.05em;
  margin-bottom: 1em;
  padding: .85em 0; }
  @media print, screen and (min-width: 768px) {
    .title.lv-3 {
      font-size: 1.71em; } }
  @media only screen and (max-width: 767px) {
    .title.lv-3 {
      font-size: 1.57em; } }
  .title.lv-3:not(:first-child) {
    margin-top: 2em; }

.title.lv-4 {
  border-bottom: 2px solid #EAEAEA;
  font-size: 1.29em;
  line-height: 1.33;
  letter-spacing: 0.1em;
  margin-top: 2em;
  margin-bottom: 1em;
  padding-bottom: 1em;
  position: relative; }
  .title.lv-4::before {
    background: #012177;
    content: "";
    display: block;
    width: 80px;
    height: 2px;
    position: absolute;
    top: 100%;
    left: 0; }

.title.title-main {
  background: #012177;
  color: #FFF;
  display: block;
  line-height: 1;
  margin-right: auto;
  margin-left: auto;
  padding: 1.25em 2.5em;
  text-align: center; }
  .title.title-main.border {
    margin-bottom: 1em;
    position: relative; }
    .title.title-main.border:first-child {
      margin-top: -2em; }
    .title.title-main.border ~ .title.title-main.border {
      margin-top: 2.5em; }
  @media print, screen and (min-width: 768px) {
    .title.title-main {
      font-size: 1.57em;
      min-width: 376px; }
      .title.title-main.border {
        width: 328px; }
        .title.title-main.border::before {
          background: #012177;
          content: "";
          display: block;
          width: 960px;
          height: 2px;
          position: absolute;
          top: 50%;
          left: 50%;
          -webkit-transform: translate(-50%, -50%);
          -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
          z-index: -1; } }
  @media only screen and (max-width: 767px) {
    .title.title-main {
      font-size: 1.29em;
      white-space: nowrap; } }

.fill {
  background: #F5F5F5; }
  .fill-pd {
    padding: 2em; }
  .fill-white {
    background: #FFF; }

.en {
  font-family: "Roboto", "Droid Sans", Arial, Helvetica, sans-serif; }

.title .en,
.title .jp {
  display: block; }

.category-header {
  background: #012177 url(/lib_image/common/bg_category_pc.jpg) no-repeat 50% 50%/cover;
  color: #FFF;
  text-align: center; }
  .category-header .jp {
    letter-spacing: 0.1em; }
  @media print, screen and (min-width: 768px) {
    .category-header {
      padding: 65px 0; }
      .category-header .title .jp {
        font-size: 2.57em; }
      .category-header .title .en {
        font-size: 1.14em; } }
  @media only screen and (max-width: 767px) {
    .category-header .title {
      padding: 3em 0; }
      .category-header .title .jp {
        font-size: 1.93em; }
      .category-header .title .en {
        font-size: 0.86em;
        margin-top: .5em; } }

.page-main {
  line-height: 1.71; }

.page-header {
  line-height: 1.71;
  max-width: 1200px;
  margin-right: auto;
  margin-left: auto; }
  .page-header .title {
    font-size: 1.71em;
    line-height: 1.46;
    text-align: center; }
  @media print, screen and (min-width: 768px) {
    .page-header .l-inner {
      padding-top: 65px;
      margin-bottom: 128px; }
    .page-header .title {
      letter-spacing: 0.1em;
      margin-bottom: 3em; } }
  @media only screen and (max-width: 767px) {
    .page-header {
      padding-bottom: 0; }
      .page-header .l-inner {
        padding-top: 40px; }
      .page-header .title {
        margin-bottom: 1.5em; } }

.l-inner {
  max-width: 1200px;
  margin-right: auto;
  margin-left: auto; }
  @media print, screen and (min-width: 768px) {
    .l-inner {
      padding: 64px 10% 56px; } }
  @media only screen and (max-width: 767px) {
    .l-inner {
      padding: 2.85em 8% 2.15em; } }

.section * + p {
  margin-top: 1em; }

.section-main {
  max-width: 1200px;
  margin-right: auto;
  margin-left: auto;
  position: relative;
  z-index: 0; }
  @media print, screen and (min-width: 768px) {
    .section-main {
      padding: 64px 10%; } }
  @media only screen and (max-width: 767px) {
    .section-main {
      padding: 2.8em 8% 4em; } }

.section:nth-child(even) {
  background: #FFF; }
  .section:nth-child(even) .section-main {
    background: #F5F5F5; }

.section:nth-child(odd) {
  background: #F5F5F5; }
  .section:nth-child(odd) .section-main {
    background: #FFF; }

.section-header {
  margin-right: auto;
  margin-left: auto;
  max-width: 1200px;
  position: relative;
  text-align: center; }
  .section-header .title {
    display: block;
    position: absolute;
    top: 100%;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    margin-top: -1.75em;
    z-index: 1; }
    @media only screen and (max-width: 767px) {
      .section-header .title {
        width: 84%; } }

.section-header_visual {
  text-align: center;
  z-index: 1; }
  .section-header_visual .images {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    overflow: hidden;
    position: relative;
    width: 100%;
    height: 256px; }
    .section-header_visual .images div {
      -webkit-box-flex: 1;
      -webkit-flex: 1 0 auto;
      -ms-flex: 1 0 auto;
      flex: 1 0 auto;
      overflow: hidden;
      position: relative;
      width: 50%; }
    .section-header_visual .images img {
      width: 100%; }
  @media print, screen and (min-width: 768px) {
    .section-header_visual .images img {
      max-width: none;
      width: auto;
      height: 256px; } }
  @media only screen and (max-width: 767px) {
    .section-header_visual .images {
      height: auto; }
      .section-header_visual .images div {
        padding-top: 70%;
        position: relative; }
      .section-header_visual .images img {
        display: block;
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
        -ms-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%); } }

.section-catch {
  font-size: 1.71em;
  font-weight: bold;
  line-height: 1.46;
  text-align: center; }
  @media print, screen and (min-width: 768px) {
    .section-catch {
      letter-spacing: 0.1em;
      margin-bottom: 2em; } }
  @media only screen and (max-width: 767px) {
    .section-catch {
      margin-bottom: 1.5em; } }

@media print, screen and (min-width: 768px) {
  .section {
    padding-bottom: 128px; }
    .section:first-child .section-header_visual {
      margin-top: 128px; }
    .section-header_visual {
      top: -128px; }
      .section-header_visual + .section-main {
        top: -128px;
        margin-bottom: -128px;
        padding-top: 96px; } }

@media only screen and (max-width: 767px) {
  .section-header_visual + .section-main {
    padding-top: 75px; } }

.aside {
  padding: 4.5em 0;
  text-align: center; }
  @media only screen and (max-width: 767px) {
    .aside {
      padding: 8%; } }

/* common */
.link-text {
  display: block;
  margin-right: auto;
  margin-left: auto;
  line-height: 1.5;
  max-width: 400px;
  text-align: center; }
  .link-text a {
    border: 5px solid #000;
    display: block;
    font-weight: bold;
    padding: 1.5em;
    text-decoration: none;
    -webkit-transition: border .3s, color .3s;
    transition: border .3s, color .3s; }
    .link-text a span {
      display: block; }
    .link-text a:hover {
      border-color: #F07F0E;
      color: #F07F0E; }
    .link-text a::after {
      content: "";
      font-size: 22px;
      position: absolute;
      top: 50%;
      right: 32px;
      -webkit-transform: translateY(-50%);
      -ms-transform: translateY(-50%);
      transform: translateY(-50%); }
  .link-text .en {
    font-size: 2.29em; }
  @media only screen and (max-width: 767px) {
    .link-text {
      border-width: 3px; }
      .link-text .jp {
        font-size: 0.79em; }
      .link-text .en {
        font-size: 1.79em; } }

.link-zoom {
  display: block; }
  .link-zoom .zoom-mask {
    display: block;
    overflow: hidden; }
    .link-zoom .zoom-mask img {
      display: block;
      -webkit-transition: -webkit-transform .8s ease-in-out;
      transition: -webkit-transform .8s ease-in-out;
      transition: transform .8s ease-in-out;
      transition: transform .8s ease-in-out, -webkit-transform .8s ease-in-out; }
  .link-zoom:hover .zoom-mask img {
    -webkit-transform: scale(1.07);
    -ms-transform: scale(1.07);
    transform: scale(1.07); }

.btn-dl {
  border: 1px solid #000;
  display: inline-block;
  margin-top: .5em;
  padding: .42em 1.5em;
  position: relative;
  -webkit-transition: border .3s, color .3s;
  transition: border .3s, color .3s; }
  .btn-dl.icon-b,
  .btn-dl.icon-a {
    padding: 1.5em 1.5em; }
  .btn-dl.icon-b::before,
  .btn-dl.icon-a::after {
    color: #00AAEE;
    font-size: 20px;
  }
  .btn-dl.icon-b::before {
    content: "";
    margin-right: 11px; }
  .btn-dl:hover {
    border-color: #F07F0E;
    color: #F07F0E; }
    .btn-dl:hover.icon-b::before,
    .btn-dl:hover.icon-a::after {
      color: inherit; }

/* service: terminal */
.title-service {
  display: inline-block;
  padding: 1em 3em; }

/* service: energy */
.block-station {
  margin-top: 3em; }
  .block-station ul {
    padding: 2.5em; }
    .block-station ul li + li {
      margin-top: 2em; }
  @media print, screen and (min-width: 768px) {
    .block-station {
      margin-left: -24px; }
      .block-station > div {
        padding-left: 24px; } }
  @media only screen and (max-width: 767px) {
    .block-station {
      background: #F5F5F5;
      padding: 2em 0;
      margin-top: 1.5em; }
      .block-station ul {
        padding: 0 2em; } }
   .jigyoushashoLink a img {
		-webkit-transition: 0.2s ease-in-out;
		   -moz-transition: 0.2s ease-in-out;
			 -o-transition: 0.2s ease-in-out;
				transition: 0.2s ease-in-out;}
   .jigyoushashoLink a:hover img {
		opacity: 0.6;
		filter: alpha(opacity=60);}

/* service: planning */
.link-marina {
  line-height: 1.2;
  margin-top: 2em; }
  .link-marina a {
    background: #FFF;
    border: 2px solid #000;
    color: #000;
    text-decoration: none;
    -webkit-transition: border .3s, color .3s;
    transition: border .3s, color .3s; }
    .link-marina a:hover {
      border-color: #F07F0E;
      color: #F07F0E; }
      .link-marina a:hover .text .name {
        color: inherit; }
  .link-marina .text p {
    font-weight: bold;
    margin-top: 0; }
  .link-marina .text .name {
    color: #012177;
    font-weight: bold; }
  .link-marina .text .desc::after {
    content: "";
    font-size: 26px; }
  @media print, screen and (min-width: 768px) {
    .link-marina a {
      display: table; }
      .link-marina a > div {
        display: table-cell;
        width: 50%;
        vertical-align: middle; }
    .link-marina .text {
      padding: 0 40px; }
      .link-marina .text .name {
        font-size: 2.86em; } }
  @media only screen and (max-width: 767px) {
    .link-marina a {
      display: block; }
    .link-marina .text {
      padding: 2em 0 1.5em;
      text-align: center; }
      .link-marina .text .name {
        font-size: 2.14em;
        margin-bottom: .1em; } }

/* company */
@media print, screen and (min-width: 768px) {
  .box-map {
    padding: 2em; }
    .box-map .title {
      font-size: 1.14em; } }

@media only screen and (max-width: 767px) {
  .box-map + .box-map {
    margin-top: 1.75em; }
  .box-map .text {
    padding: 1.75em; } }

.section-office .box-map + .box-map {
  margin-top: 2.25em; }

.block-office .title {
  font-weight: bold;
  letter-spacing: 0.1em; }

@media print, screen and (min-width: 768px) {
  .block-office {
    margin-left: -24px; }
    .block-office .item {
      margin-top: 3em;
      padding-left: 24px;
      width: 50%; }
      .block-office .item .title {
        border-bottom: 1px solid #000;
        padding-bottom: 1em; } }

@media only screen and (max-width: 767px) {
  .block-office .item {
    border-bottom: 1px solid #CCC;
    margin-top: 1.5em;
    padding-bottom: 1.5em;
    width: 100%; } }

.map {
  margin-top: 1em;
  height: 0;
  overflow: hidden;
  position: relative; }
  .map iframe,
  .map object,
  .map embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }
  @media print, screen and (min-width: 768px) {
    .map {
      border: 1px solid #999;
      padding-bottom: 26%; }
      .map-small {
        padding-bottom: 57.67%; } }
  @media only screen and (max-width: 767px) {
    .map {
      padding-bottom: 56.25%; } }

@media only screen and (max-width: 767px) {
  body[data-current="company"] .list-anchor ul li {
    width: 31%; } }

/* company: aisatsu */
.section-message .section-header {
  background: #000;
  color: #FFF; }
  .section-message .section-header .text {
    line-height: 1;
    padding: 1em 0; }
    .section-message .section-header .text .name {
      font-weight: bold;
      display: inline-block;
      margin-left: 1em;
      vertical-align: text-bottom; }
  @media print, screen and (min-width: 768px) {
    .section-message .section-header {
      margin-top: 256px !important; }
      .section-message .section-header .text {
        font-size: 18px;
        position: absolute;
        top: 50%;
        right: 150px;
        -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        transform: translateY(-50%); }
        .section-message .section-header .text .name {
          font-size: 40px; } }
  @media only screen and (max-width: 767px) {
    .section-message .section-header {
      margin-top: 8%; }
      .section-message .section-header .text .name {
        font-size: 24px; } }

@media print, screen and (min-width: 768px) {
  .section-message .section-main {
    padding-top: 4.57em; } }

@media only screen and (max-width: 767px) {
  .section-message .section-main {
    padding-top: 2.8em; } }

.section-message .catch {
  font-size: 1.71em;
  font-weight: bold;
  margin-bottom: 1em; }
  @media print, screen and (min-width: 768px) {
    .section-message .catch {
      text-align: center; } }

.section-message .box-rule {
  border: 1px solid #CCC;
  display: inline-block;
  font-size: 1.29em;
  margin-top: 3em;
  margin-right: auto;
  margin-left: auto;
  padding: 2em 3em 2.5em;
  text-align: center;
  line-height: 2; }
  .section-message .box-rule .title::before, .section-message .box-rule .title::after {
    background: #000;
    content: "";
    display: inline-block;
    margin: 0 .75em;
    width: 1em;
    height: 1px;
    vertical-align: middle; }
  .section-message .box-rule p + p {
    margin-top: .75em;
    line-height: 2.4;
    word-break: keep-all; }
  @media only screen and (max-width: 767px) {
    .section-message .box-rule {
      padding: 2em 1em 2.5em;
      width: 100%; } }

/*  recruit */
.page-recruit .section-main {
  padding-right: 0;
  padding-left: 0; }

@media print, screen and (min-width: 768px) {
  .page-recruit .section-main {
    background: transparent !important;
    padding-bottom: 0; }
  .section-interview .section-main {
    padding-top: 10px; } }

@media only screen and (max-width: 767px) {
  .section-interview .section-main {
    padding-top: 0;
    padding-bottom: 0; } }

.box-interview {
  background: #FFF;
  border: 4px solid #012177;
  line-height: 2.14; }
  .box-interview .title {
    background: #012177;
    color: #FFF;
    font-weight: normal;
    line-height: 1;
    width: 100%; }
  .box-interview .catch {
    font-size: 1.71em;
    font-weight: bold;
    line-height: 1.46;
    margin-bottom: 1em;
    text-align: center; }
    .box-interview .catch .marker {
      background: -webkit-gradient(linear, left top, left bottom, color-stop(80%, transparent), color-stop(80%, #c1e0ff));
      background: linear-gradient(transparent 80%, #c1e0ff 80%); }
  @media print, screen and (min-width: 768px) {
    .box-interview {
      margin-top: 82px;
      padding: 0 10% 104px; }
      .box-interview .title {
        display: table;
        margin-top: -2.75em;
        margin-right: auto;
        margin-left: auto;
        margin-bottom: 62px;
        padding: 30px 64px;
        position: relative;
        min-width: 61%; }
        .box-interview .title .number {
          font-size: 1.43em; }
        .box-interview .title .name {
          font-size: 1.71em; }
      .box-interview span {
        display: table-cell;
        vertical-align: middle; }
      .box-interview .catch {
        margin-top: 1em; }
      .box-interview:nth-child(odd) .text {
        padding-left: 6em; }
      .box-interview:nth-child(even) .row {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: reverse;
        -webkit-flex-direction: row-reverse;
        -ms-flex-direction: row-reverse;
        flex-direction: row-reverse; }
      .box-interview:nth-child(even) .text {
        padding-right: 6em; } }
  @media only screen and (max-width: 767px) {
    .box-interview {
      margin: 50px 0 90px;
      padding: 0 8% 8%; }
      .box-interview .title {
        margin-right: auto;
        margin-left: auto;
        margin-top: -3.5em;
        padding: .75em 0;
        width: 84%; }
        .box-interview .title span {
          display: block;
          padding: .25em 0;
          text-align: center !important; }
        .box-interview .title .name {
          font-size: 1.86em; }
        .box-interview .title .office {
          font-size: 0.86em; }
      .box-interview .img {
        margin-top: 8%;
        text-align: center; } }

.wrap-jobs .item .box-job .list-job {
  padding: 2em; }
  .wrap-jobs .item .box-job .list-job dt {
    font-weight: bold; }
  .wrap-jobs .item .box-job .list-job dd {
    margin-top: 1em; }
  .wrap-jobs .item .box-job .list-job dd + dt {
    margin-top: 1.5em; }

.wrap-jobs .item .box-job .link-job {
  background: #FFF;
  padding: 40px 0;
  padding-bottom: 132px; /*マイナビ2本*/
  text-align: center; }
  .wrap-jobs .item .box-job .link-job .title {
    color: #012177;
    font-size: 2.86em; }

@media print, screen and (min-width: 768px) {
  .wrap-jobs .item,
  .wrap-jobs .box-job {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column; }
  .wrap-jobs .item {
    margin-top: 64px; }
    .wrap-jobs .item .title {
      font-size: 1.43em; }
    .wrap-jobs .item .box-job {
      background: #F5F5F5;
      -webkit-box-flex: 1;
      -webkit-flex-grow: 1;
      -ms-flex-positive: 1;
      flex-grow: 1; }
    .wrap-jobs .item .link-job {
      margin: auto 10px 10px; } }

@media only screen and (max-width: 767px) {
  .wrap-jobs {
    padding: 0 8%; }
    .wrap-jobs .item {
      margin-top: 40px !important; }
      .wrap-jobs .item .list-job {
        background: #FFF; }
      .wrap-jobs .item .link-job {
        margin-top: 4px; } }
