@charset "UTF-8";
.tablet #hovermenu .sub .language a, main .contents h2 .en, main .contents .boxmenu a .text .more, main .contents.newsblock .news .title a {
  font-family: 'Poppins', sans-serif; }

* {
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  -o-text-size-adjust: 100%;
  text-size-adjust: 100%;
  box-sizing: border-box; }

@font-face {
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 400;
  src: local("Noto Sans CJK JP"), url(https://fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.woff2) format("woff2"), url(https://fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.woff) format("woff"), url(https://fonts.gstatic.com/ea/notosansjp/v5/NotoSansJP-Regular.otf) format("opentype");
  font-display: swap; }
.serif {
  font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", NotoSerif, serif; }

html {
  font-size: 16px;
  overflow-y: scroll; }
  html.sp {
    font-size: 16px !important; }

body, th, td, input, select, textarea {
  font-size: 16px;
  font-size: 1rem;
  line-height: 17.6px;
  line-height: 1.1rem;
  font-family: -apple-system, BlinkMacSystemFont, "Noto Sans JP", Meiryo, Verdana, sans-serif;
  font-feature-settings: "palt"; }

_::-webkit-full-page-media, _:future, :root * {
  font-feature-settings: "pkna"; }

body {
  margin: 0px auto;
  color: #000000;
  background: #ffffff;
  overflow: hidden;
  padding-top: 90px; }
  .tablet body {
    padding-top: 50px; }
  body#home2 {
    padding-top: 0; }

img {
  border: 0px; }

a {
  text-decoration: underline;
  color: #000000;
  -webkit-transition: opacity 0.2s, background 0.2s;
  transition: opacity 0.2s, background 0.2s;
  cursor: pointer;
  -webkit-text-decoration-skip: none; }
  a:hover {
    opacity: 0.7; }
  .en a {
    text-underline-position: under; }
  a:hover {
    text-decoration: none; }

dl, ul, ol {
  margin: 0px;
  padding: 0px;
  list-style: none; }

p {
  margin: 0px; }

.clear {
  clear: both; }

.pdf:after {
  content: "";
  position: relative;
  display: inline-block;
  width: 16px;
  height: 18px;
  top: -1px;
  margin: 0px 5px;
  padding: 0px !important;
  background: url(../images/pdf.svg) no-repeat;
  background-size: 16px 18px;
  vertical-align: middle;
  overflow: hidden; }
  .tablet .pdf:after {
    width: 16px;
    height: 18px;
    background-size: 16px 18px; }
  .sp .pdf:after {
    width: 12px;
    height: 15px;
    background-size: 12px 15px; }

.blank:after {
  content: "";
  position: relative;
  display: inline-block;
  width: 1rem;
  height: 1rem;
  top: -3px;
  margin: 0px 8px;
  padding: 0px !important;
  background: url(../images/blank.svg) no-repeat left top;
  background-size: 100%;
  vertical-align: middle; }

sup {
  position: relative;
  vertical-align: middle;
  font-size: 60%;
  top: -0.6em; }

sub {
  position: relative;
  vertical-align: middle;
  font-size: 60%;
  bottom: -0.2em; }

.sp .view_pc {
  display: none !important; }

.view_tablet {
  display: none !important; }
  .tablet .view_tablet {
    display: block !important; }

.view_sp {
  display: none !important; }
  .sp .view_sp {
    display: block !important; }

.sp main .contents .menu.col2 > div a .image img {
  min-width: 480px; }

.normal {
  white-space: normal !important;
  line-height: 1.7 !important; }

.red {
  color: #ff0000 !important; }

@media screen and (max-width: 1100px) {
  .short header #logo.english a {
    width: 32px;
    overflow: hidden; }
    .short header #logo.english a img {
      width: 300px;
      height: 57px; } }
@media screen and (max-width: 1200px) {
  .menublock.right {
    background-position: right -200px center !important; }

  .menublock.left {
    background-position: left -220px center !important; } }
header {
  position: fixed;
  width: 100%;
  height: 90px;
  z-index: 100;
  background: #fff;
  top: 0px;
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); }
  .tablet header {
    height: 50px; }
  header > div {
    height: 90px;
    width: 100%;
    top: 0px;
    left: 0px;
    z-index: 500; }
    .menuopen header > div {
      border-bottom-color: #aeb1c2; }
    .tablet header > div {
      top: 0px;
      height: 50px; }
  header #logo {
    position: absolute;
    top: 25px;
    left: 20px;
    width: 210px; }
    .tablet header #logo {
      top: 12px;
      left: 10px;
      width: 150px; }
    .en header #logo {
      top: 18px; }
    .en.tablet header #logo {
      top: 6px; }
    header #logo h1 {
      display: inline;
      margin: 0px;
      padding: 0px; }
    header #logo a {
      -webkit-transition: opacity 0.2s, background 0.2s;
      transition: opacity 0.2s, background 0.2s;
      cursor: pointer; }
      header #logo a:hover {
        opacity: 0.7; }
    header #logo img {
      width: 100%;
      height: auto; }
  header #globalnavi {
    padding-top: 30px;
    padding-right: 30px;
    text-align: center;
    letter-spacing: -1rem; }
    .tablet header #globalnavi {
      display: none; }
    header #globalnavi > * {
      display: inline-block;
      /* IE11 */ }
      @media all and (-ms-high-contrast: none) {
        header #globalnavi > * {
          vertical-align: middle; } }
    header #globalnavi ul {
      font-size: 0px;
      line-height: 0px; }
      header #globalnavi ul:after {
        content: "";
        display: block;
        clear: both; }
      header #globalnavi ul li {
        float: left;
        padding-left: 10px;
        font-size: 16px;
        font-size: 1rem;
        line-height: 17.6px;
        line-height: 1.1rem;
        font-weight: bold;
        vertical-align: bottom;
        padding-bottom: 5px;
        letter-spacing: 0; }
        header #globalnavi ul li.border {
          position: relative; }
          header #globalnavi ul li.border:before {
            content: "";
            position: absolute;
            width: 1px;
            height: 60%;
            background: #000;
            top: 20%;
            left: 5px; }
        header #globalnavi ul li:first-child a {
          padding-left: 15px; }
        header #globalnavi ul li a {
          display: block;
          padding: 10px;
          color: #000000;
          text-decoration: none; }
          header #globalnavi ul li a.ac {
            border-bottom: 2px solid #0050a0; }
        header #globalnavi ul li.current a {
          color: #0050a0; }
    header #globalnavi #sitenavi {
      width: 48px;
      height: 48px;
      border: 1px solid #646464;
      margin-left: 20px; }
      header #globalnavi #sitenavi > div {
        position: relative;
        width: 48px;
        height: 48px;
        -webkit-transition: opacity 0.2s, background 0.2s;
        transition: opacity 0.2s, background 0.2s;
        cursor: pointer;
        transition: all .4s; }
        header #globalnavi #sitenavi > div:hover {
          opacity: 0.7; }
        header #globalnavi #sitenavi > div span {
          position: absolute;
          display: inline-block;
          left: 11px;
          width: 24px;
          height: 1px;
          background-color: #646464;
          transition: all .4s; }
          header #globalnavi #sitenavi > div span:nth-of-type(1) {
            top: 13px; }
          header #globalnavi #sitenavi > div span:nth-of-type(2) {
            top: 23px; }
          header #globalnavi #sitenavi > div span:nth-of-type(3) {
            bottom: 14px; }
        header #globalnavi #sitenavi > div.active {
          -webkit-transform: rotate(360deg);
          transform: rotate(360deg); }
          header #globalnavi #sitenavi > div.active span:nth-of-type(1) {
            -webkit-transform: translateY(20px) rotate(-45deg);
            transform: translateY(10px) rotate(-45deg); }
          header #globalnavi #sitenavi > div.active span:nth-of-type(2) {
            -webkit-transform: translateY(0) rotate(45deg);
            transform: translateY(0) rotate(45deg); }
          header #globalnavi #sitenavi > div.active span:nth-of-type(3) {
            opacity: 0; }
  header #utility {
    position: absolute;
    top: 15px;
    right: 20px;
    text-align: right; }
    .tablet header #utility {
      display: none; }
    header #utility .top .lang {
      display: inline-block;
      vertical-align: top; }
      header #utility .top .lang a {
        font-size: 13px;
        font-size: 0.8125rem;
        line-height: 14.3px;
        line-height: 0.89375rem;
        -webkit-transition: opacity 0.2s, background 0.2s;
        transition: opacity 0.2s, background 0.2s;
        cursor: pointer; }
        header #utility .top .lang a:hover {
          opacity: 0.7; }
    header #utility .top .search {
      display: inline-block;
      vertical-align: top;
      margin-left: 0.5rem;
      font-size: 0px;
      font-size: 0rem;
      line-height: 0px;
      line-height: 0rem; }
      header #utility .top .search div {
        display: inline-block;
        vertical-align: middle; }
      header #utility .top .search input {
        font-size: 16px;
        font-size: 1rem;
        line-height: 17.6px;
        line-height: 1.1rem; }
        header #utility .top .search input#searchtxt {
          width: 12rem;
          height: 24px; }
        header #utility .top .search input#btnsearch {
          display: block;
          width: 24px;
          height: 24px;
          background: url(../images/ico_search.svg) no-repeat #0050a0 center center;
          background-size: 16px 16px;
          border: 1px solid #7e9db9;
          border-left: none; }
    header #utility .top .searchbox {
      position: absolute;
      top: 30px;
      width: 272px;
      right: calc(14.375em + 50px);
      font-size: 16px;
      font-size: 1rem;
      line-height: 17.6px;
      line-height: 1.1rem;
      border: 1px solid #aeb1c2;
      opacity: 0;
      pointer-events: none;
      -webkit-transition: 400ms;
      transition: 400ms;
      overflow: hidden; }
      header #utility .top .searchbox.show {
        float: left;
        top: 40px;
        opacity: 1;
        pointer-events: auto; }
      header #utility .top .searchbox input[type="search"] {
        float: left;
        width: 200px;
        height: 30px;
        padding: 2px 10px;
        font-size: 16px;
        font-size: 1rem;
        line-height: 20px;
        vertical-align: top;
        border: 0px; }
        header #utility .top .searchbox input[type="search"]:focus {
          outline: none; }
      header #utility .top .searchbox input[type="submit"] {
        padding: 0px 10px;
        width: 70px;
        height: 30px;
        border: 0px;
        font-size: 16px;
        font-size: 1rem;
        line-height: 30px;
        color: #ffffff;
        vertical-align: top;
        background: #5c83b4;
        cursor: pointer;
        -webkit-appearance: none;
        border-radius: 0; }
    header #utility .link {
      display: inline-block;
      vertical-align: top;
      margin-top: 12px; }
      header #utility .link li {
        display: inline-block;
        -webkit-transition: 0.5s;
        transition: 0.5s;
        box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3);
        cursor: pointer;
        position: relative;
        top: 0px; }
        header #utility .link li:hover {
          top: -3px;
          box-shadow: 6px 6px 6px rgba(0, 0, 0, 0.4); }
          .tablet header #utility .link li:hover {
            top: 0;
            box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3); }
      header #utility .link li + li {
        margin-left: 10px; }
      header #utility .link a {
        position: relative;
        display: inline-block;
        font-size: 13px;
        font-size: 0.8125rem;
        line-height: 14.3px;
        line-height: 0.89375rem;
        -webkit-transition: opacity 0.2s, background 0.2s;
        transition: opacity 0.2s, background 0.2s;
        cursor: pointer;
        background: #0050a0;
        color: #fff;
        text-decoration: none;
        padding: 8px 10px 8px 30px;
        min-width: 8rem; }
        header #utility .link a:hover {
          opacity: 0.7; }
        .en header #utility .link a {
          text-align: center; }
        header #utility .link a:before {
          content: "";
          position: absolute;
          left: 8px;
          top: 50%;
          -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
          width: 18px;
          height: 12px;
          background: url(../images/link01.svg) no-repeat;
          background-size: 18px 12px; }
        header #utility .link a.access:before {
          width: 14px;
          height: 19px;
          background: url(../images/link02.svg) no-repeat;
          background-size: 14px 19px; }

header.home {
  position: fixed;
  width: 100%;
  height: 70px;
  z-index: 100;
  background: none;
  top: 0px;
  -webkit-transition: 400ms;
  transition: 400ms; }
  header.home.scroll {
    background: #fff; }
    header.home.scroll #logo img.main {
      opacity: 1; }
    header.home.scroll #logo img.white {
      opacity: 0; }
    header.home.scroll #utility .lang {
      color: #000; }
      header.home.scroll #utility .lang a {
        color: #000; }
      header.home.scroll #utility .lang span + span:before {
        color: #000; }
    header.home.scroll #utility li img.main {
      opacity: 1; }
    header.home.scroll #utility li img.white {
      opacity: 0; }
    header.home.scroll #utility li.menu span {
      background: #0050a0; }
  header.home > div {
    height: 70px;
    width: 100%;
    top: 0px;
    left: 0px;
    z-index: 500;
    border-bottom: 1px solid transparent; }
    .menuopen header.home > div {
      border-bottom-color: #aeb1c2; }
    .tablet header.home > div {
      top: 0px;
      height: 50px; }
  header.home #logo {
    position: absolute;
    top: 15px;
    left: 20px;
    width: 210px; }
    .tablet header.home #logo {
      top: 12px;
      left: 10px;
      width: 150px; }
    header.home #logo h1 {
      display: inline;
      margin: 0px;
      padding: 0px; }
    header.home #logo img {
      position: absolute;
      width: 100%;
      height: auto;
      left: 0;
      top: 0;
      -webkit-transition: 400ms;
      transition: 400ms; }
      header.home #logo img.main {
        opacity: 0; }
  header.home #utility {
    position: absolute;
    top: 20px;
    right: 20px;
    text-align: right; }
    .tablet header.home #utility {
      display: none; }
    header.home #utility .lang {
      display: inline-block;
      color: #fff;
      font-size: 13px;
      font-size: 0.8125rem;
      line-height: 14.3px;
      line-height: 0.89375rem;
      -webkit-transition: 400ms;
      transition: 400ms; }
      header.home #utility .lang a {
        display: inline;
        color: #fff;
        -webkit-transition: opacity 0.2s, background 0.2s;
        transition: opacity 0.2s, background 0.2s;
        cursor: pointer;
        -webkit-transition: 400ms;
        transition: 400ms; }
        header.home #utility .lang a:hover {
          opacity: 0.7; }
      header.home #utility .lang span {
        display: inline-block; }
        header.home #utility .lang span + span {
          padding-left: 20px;
          position: relative; }
          header.home #utility .lang span + span:before {
            content: "|";
            position: absolute;
            color: #fff;
            left: 10px;
            -webkit-transition: 400ms;
            transition: 400ms; }
    header.home #utility li {
      display: inline-block;
      vertical-align: middle;
      position: relative;
      display: inline-block;
      font-size: 13px;
      font-size: 0.8125rem;
      line-height: 14.3px;
      line-height: 0.89375rem;
      background: none;
      color: #fff;
      text-decoration: none;
      padding: 0px;
      box-shadow: none; }
      header.home #utility li:before {
        display: none; }
      header.home #utility li img {
        position: absolute;
        left: 0;
        top: 0; }
        header.home #utility li img.main {
          opacity: 0; }
      header.home #utility li:nth-of-type(2) {
        width: 31px;
        height: 20px; }
        header.home #utility li:nth-of-type(2) img {
          width: 31px;
          height: 20px; }
      header.home #utility li:nth-of-type(3) {
        width: 22px;
        height: 31px; }
        header.home #utility li:nth-of-type(3) img {
          width: 22px;
          height: 31px; }
      header.home #utility li:nth-of-type(4) {
        width: 29px;
        height: 28px; }
        header.home #utility li:nth-of-type(4) img {
          width: 29px;
          height: 28px; }
    header.home #utility li + li {
      margin-left: 20px; }
    header.home #utility li.menu {
      position: relative;
      width: 30px;
      height: 26px;
      cursor: pointer;
      -webkit-transition: opacity 0.2s, background 0.2s;
      transition: opacity 0.2s, background 0.2s;
      cursor: pointer; }
      header.home #utility li.menu:hover {
        opacity: 0.7; }
      header.home #utility li.menu span {
        position: absolute;
        left: 0;
        top: 0;
        width: 30px;
        height: 4px;
        background: #fff;
        -webkit-transition: 400ms;
        transition: 400ms; }
      header.home #utility li.menu span:nth-of-type(2) {
        top: 11px; }
      header.home #utility li.menu span:nth-of-type(3) {
        top: 22px; }

#megamenu {
  background: #ececec;
  position: fixed;
  z-index: 500;
  width: 100%;
  display: none; }
  #megamenu > div {
    position: relative;
    width: 100%;
    max-width: 1240px;
    margin: auto;
    padding: 0px 20px;
    padding: 20px; }
    .sp #megamenu > div {
      padding: 0px 10px; }
    #megamenu > div > div {
      display: none; }
  #megamenu .title {
    font-size: 16px;
    font-size: 1rem;
    line-height: 17.6px;
    line-height: 1.1rem;
    font-weight: bold; }
  #megamenu .list {
    margin-top: 20px; }
    #megamenu .list:after {
      content: "";
      display: block;
      clear: both; }
    #megamenu .list > a {
      display: block;
      float: left;
      width: 15%;
      margin-left: 2%; }
      #megamenu .list > a:nth-of-type(6n+1) {
        margin-left: 0;
        clear: both; }
      #megamenu .list > a:nth-of-type(n+7) {
        margin-top: 20px; }
      #megamenu .list > a img {
        width: 100%;
        height: auto;
        margin-bottom: 3px; }

#categorytitle {
  position: absolute;
  left: 20px;
  bottom: 20px;
  margin-bottom: 20px;
  width: calc(100% - 190px - 34rem);
  font-size: 20px;
  font-size: 1.25rem;
  line-height: 22px;
  line-height: 1.375rem;
  font-weight: bold;
  white-space: nowrap;
  overflow: hidden;
  -webkit-transform: translateY(50%);
  transform: translateY(50%); }
  #categorytitle.english {
    width: calc(100% - 190px - 42rem); }
  .sp #categorytitle {
    display: none; }
  #categorytitle h1 {
    margin: 0px;
    padding: 0px;
    font-size: 100%; }
  #categorytitle:before {
    content: "";
    display: block;
    position: absolute;
    width: 100px;
    height: 100%;
    right: 0px;
    background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, white 100%);
    background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, white 100%);
    background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, white 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00ffffff', endColorstr='#ffffff',GradientType=1 ); }

#spmenusw {
  position: absolute;
  display: none;
  right: 5px;
  top: 5px;
  z-index: 560; }
  #spmenusw a {
    position: relative;
    display: block;
    width: 40px;
    height: 40px;
    text-indent: -10000px;
    overflow: hidden;
    background: #0050a0;
    box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5); }
    #spmenusw a:before {
      content: "";
      display: block;
      position: absolute;
      top: -26px;
      left: 8px;
      width: 24px;
      height: 3px;
      background: #ffffff;
      transform: rotate(45deg);
      -webkit-transition: 400ms;
      transition: 400ms; }
    #spmenusw a:after {
      content: "";
      display: block;
      position: absolute;
      top: -26px;
      left: 8px;
      width: 24px;
      height: 3px;
      background: #ffffff;
      transform: rotate(-45deg);
      -webkit-transition: 400ms;
      transition: 400ms; }
    #spmenusw a.open:before {
      top: 19px; }
    #spmenusw a.open:after {
      top: 19px; }
    #spmenusw a.open span {
      top: 74px; }
  .tablet #spmenusw {
    display: block; }
  #spmenusw span {
    position: absolute;
    top: 19px;
    left: 8px;
    width: 24px;
    height: 3px;
    background: #ffffff;
    -webkit-transition: 400ms;
    transition: 400ms; }
    #spmenusw span:before {
      content: "";
      display: block;
      position: absolute;
      top: -8px;
      left: 0px;
      width: 24px;
      height: 3px;
      background: #ffffff; }
    #spmenusw span:after {
      content: "";
      display: block;
      position: absolute;
      top: 8px;
      left: 0px;
      width: 24px;
      height: 3px;
      background: #ffffff; }

#pulldownmenu {
  position: fixed;
  top: -60px;
  width: 100%;
  min-height: 380px;
  padding-top: 160px;
  background: #000;
  background-color: rgba(0, 0, 0, 0.8);
  z-index: 95;
  opacity: 0;
  pointer-events: none;
  -webkit-transition: 400ms;
  transition: 400ms; }
  .tablet #pulldownmenu {
    min-height: 350px; }
  .short #pulldownmenu {
    min-height: 290px;
    padding-top: 80px; }
  .pulldownopen #pulldownmenu {
    top: 0px;
    opacity: 1;
    pointer-events: auto; }
  .sp #pulldownmenu {
    display: none; }
  #pulldownmenu > div {
    position: relative;
    max-width: 1100px;
    margin: 0 auto;
    z-index: 97; }
    #pulldownmenu > div.body > div {
      left: 20px; }
    #pulldownmenu > div > div {
      position: absolute;
      width: 100%;
      left: -40px;
      top: 20px;
      opacity: 0;
      -webkit-transition: 200ms;
      transition: 200ms;
      z-index: 98;
      pointer-events: none; }
      #pulldownmenu > div > div:after {
        content: "";
        display: block;
        clear: both; }
      #pulldownmenu > div > div.fadein {
        opacity: 1;
        left: 20px;
        z-index: 99;
        pointer-events: auto; }
      #pulldownmenu > div > div.fadeout {
        opacity: 0;
        left: 80px; }
      #pulldownmenu > div > div > .title {
        float: left;
        width: 18%; }
        #pulldownmenu > div > div > .title a {
          color: #fff;
          font-size: 19.2px;
          font-size: 1.2rem;
          line-height: 21.12px;
          line-height: 1.32rem; }
      #pulldownmenu > div > div > ul {
        float: left;
        width: 82%; }
        #pulldownmenu > div > div > ul li {
          position: relative;
          display: inline-block;
          vertical-align: top;
          font-size: 16px;
          font-size: 1rem;
          line-height: 22.4px;
          line-height: 1.4rem;
          padding-left: 15px;
          margin-bottom: 50px;
          width: 32%; }
          #pulldownmenu > div > div > ul li:before {
            content: "-";
            position: absolute;
            top: -0.15rem;
            left: 2px;
            color: #fff; }
          #pulldownmenu > div > div > ul li a {
            color: #fff; }
            .sp #pulldownmenu > div > div > ul li a {
              display: table-cell;
              padding: 5px 20px 5px 40px;
              color: #ffffff;
              vertical-align: middle; }
              .sp #pulldownmenu > div > div > ul li a:before {
                display: none; }
          #pulldownmenu > div > div > ul li ul {
            display: none; }

#hovermenu {
  position: fixed;
  top: -60px;
  width: 100%;
  max-height: calc(100% - 50px);
  padding: 160px 0 0 0;
  background: #ffffff;
  z-index: 99;
  opacity: 0;
  display: none;
  pointer-events: none;
  -webkit-transition: 400ms;
  transition: 400ms;
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); }
  #hovermenu a {
    text-decoration: none; }
  .short #hovermenu {
    padding: 80px 0 40px 0; }
  .menuopen #hovermenu {
    top: 0px;
    opacity: 1;
    pointer-events: auto; }
  .tablet #hovermenu {
    top: 0px;
    padding-top: 0px;
    overflow-Y: auto;
    display: block; }
  .tablet.menuopen #hovermenu {
    top: 50px; }
  #hovermenu .main {
    position: relative;
    width: 100%;
    max-width: 1920px;
    margin: auto;
    padding: 20px 0px 40px;
    max-height: calc(100vh - 200px - 80px);
    overflow-X: hidden;
    overflow-Y: auto; }
    .sp #hovermenu .main {
      padding: 10px 0px 20px; }
    .short #hovermenu .main {
      max-height: calc(100vh - 100px - 50px); }
    .tablet #hovermenu .main {
      height: auto;
      max-height: none;
      padding: 0px;
      overflow-Y: hidden; }
  #hovermenu .body {
    margin-right: -5px;
    font-size: 0px;
    line-height: 0px;
    letter-spacing: -1rem; }
    .tablet #hovermenu .body {
      margin-right: 0px;
      background: #ffffff; }
    #hovermenu .body > div {
      display: inline-block;
      width: calc((100% - 5px) / 4);
      padding: 20px;
      vertical-align: top;
      font-size: 16px;
      font-size: 1rem;
      line-height: 20.8px;
      line-height: 1.3rem;
      background: transparent;
      -webkit-transition: background 400ms;
      transition: background 400ms;
      letter-spacing: 0; }
      #hovermenu .body > div.highlight {
        background: rgba(92, 131, 180, 0.3); }
      .tablet #hovermenu .body > div {
        width: 100%;
        padding: 0px;
        font-size: 14px;
        font-size: 0.875rem;
        line-height: 18.2px;
        line-height: 1.1375rem; }
    #hovermenu .body .title {
      padding: 0px 0px 10px;
      border-bottom: 1px solid #808080; }
      .tablet #hovermenu .body .title {
        display: table;
        width: 100%;
        padding: 0px;
        background: #ececec; }
        .tablet #hovermenu .body .title.other {
          display: none; }
      #hovermenu .body .title a {
        color: #000000;
        -webkit-transition: opacity 0.2s, background 0.2s;
        transition: opacity 0.2s, background 0.2s;
        cursor: pointer; }
        #hovermenu .body .title a:hover {
          opacity: 0.7; }
        .tablet #hovermenu .body .title a {
          display: table-cell;
          height: 50px;
          padding: 5px 20px;
          vertical-align: middle;
          color: #000000;
          font-size: 18px;
          font-size: 1.125rem;
          line-height: 23.4px;
          line-height: 1.4625rem; }
      #hovermenu .body .title a.opensw {
        display: none; }
        .tablet #hovermenu .body .title a.opensw {
          position: relative;
          display: table-cell;
          width: 45px;
          padding: 0px; }
          .tablet #hovermenu .body .title a.opensw.open:after {
            border-width: 0 8px 12px 8px;
            border-color: transparent transparent #ffffff transparent; }
          .tablet #hovermenu .body .title a.opensw:before {
            content: "";
            position: absolute;
            background: #0050a0;
            height: 40px;
            width: 40px;
            right: 5px;
            top: 5px;
            pointer-events: none;
            box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5); }
          .tablet #hovermenu .body .title a.opensw:after {
            content: "";
            position: absolute;
            width: 0;
            height: 0;
            right: 16px;
            top: 20px;
            border-style: solid;
            border-width: 12px 8px 0 8px;
            border-color: #ffffff transparent transparent transparent;
            pointer-events: none; }
    #hovermenu .body * + .title {
      margin-top: 40px; }
      .tablet #hovermenu .body * + .title {
        margin-top: 0px;
        border-top: 1px solid rgba(174, 177, 194, 0.5); }
    #hovermenu .body ul {
      margin-top: 15px; }
      .tablet #hovermenu .body ul {
        display: none;
        position: relative;
        margin-top: 0px;
        border-bottom: 1px solid #808080; }
        .tablet #hovermenu .body ul:after {
          content: "";
          position: absolute;
          display: block;
          width: calc(100% - 20px);
          height: 0px;
          top: 0px;
          left: 20px;
          background: rgba(174, 177, 194, 0.5); }
      #hovermenu .body ul li {
        position: relative;
        padding-left: 15px; }
        .tablet #hovermenu .body ul li {
          padding: 0px; }
          .tablet #hovermenu .body ul li.ac a {
            color: #0050a0; }
          .tablet #hovermenu .body ul li:after {
            content: "";
            position: absolute;
            display: block;
            width: 100%;
            height: 1px;
            top: 0px;
            left: 0px;
            background: rgba(174, 177, 194, 0.5); }
        #hovermenu .body ul li:first-child:after {
          display: none; }
        #hovermenu .body ul li:before {
          content: "-";
          position: absolute;
          top: -0.15rem;
          left: 2px; }
          .tablet #hovermenu .body ul li:before {
            display: none; }
        .tablet #hovermenu .body ul li > span {
          display: table;
          width: 100%;
          height: 40px; }
        #hovermenu .body ul li a {
          color: #000000; }
          .tablet #hovermenu .body ul li a {
            display: table-cell;
            padding: 5px 20px 5px 40px;
            vertical-align: middle; }
            .tablet #hovermenu .body ul li a:before {
              display: none; }
        #hovermenu .body ul li .opensw {
          display: none; }
          .tablet #hovermenu .body ul li .opensw {
            position: relative;
            display: table-cell;
            width: 40px;
            padding: 0px; }
            .tablet #hovermenu .body ul li .opensw.open:after {
              margin-top: 40px;
              opacity: 0; }
            .tablet #hovermenu .body ul li .opensw:before {
              content: "";
              position: absolute;
              display: block;
              width: 12px;
              height: 2px;
              top: 50%;
              left: 14px;
              margin-top: -1px;
              background: #ffffff;
              -webkit-transform: scale(1);
              transform: scale(1);
              opacity: 1; }
            .tablet #hovermenu .body ul li .opensw:after {
              content: "";
              position: absolute;
              display: block;
              width: 2px;
              height: 12px;
              top: 50%;
              left: 19px;
              margin-top: -6px;
              background: #ffffff;
              -webkit-transition: 400ms;
              transition: 400ms; }
        #hovermenu .body ul li ul {
          display: none; }
          .tablet #hovermenu .body ul li ul a {
            padding-left: 60px; }
          .tablet #hovermenu .body ul li ul:after {
            width: calc(100% - 40px);
            left: 40px; }
          .tablet #hovermenu .body ul li ul li:after {
            width: calc(100% - 60px);
            left: 60px; }
      #hovermenu .body ul li + li {
        margin-top: 10px; }
        .tablet #hovermenu .body ul li + li {
          margin-top: 0px; }
  #hovermenu .sub {
    display: none; }
    .tablet #hovermenu .sub {
      position: relative;
      display: block;
      padding: 20px 0;
      height: 60px;
      background: #808080; }
      .tablet #hovermenu .sub .news {
        display: none; }
      .tablet #hovermenu .sub .lang {
        position: absolute;
        display: block;
        font-size: 18px;
        font-size: 1.125rem;
        line-height: 19.8px;
        line-height: 1.2375rem;
        left: 0;
        top: calc(50% - 0.5rem); }
        .tablet #hovermenu .sub .lang a {
          padding: 5px 20px;
          color: #fff; }
      .tablet #hovermenu .sub .search {
        position: absolute;
        display: block;
        width: calc(100% - 8rem);
        font-size: 0px;
        font-size: 0rem;
        line-height: 0px;
        line-height: 0rem;
        right: 0;
        top: 10px; }
        .tablet #hovermenu .sub .search div {
          display: inline-block;
          vertical-align: middle; }
          .tablet #hovermenu .sub .search div#searchwrap {
            width: calc(100% - 50px); }
        .tablet #hovermenu .sub .search input {
          font-size: 16px;
          font-size: 1rem;
          line-height: 17.6px;
          line-height: 1.1rem; }
          .tablet #hovermenu .sub .search input#searchtxt {
            width: 100%;
            height: 40px; }
          .tablet #hovermenu .sub .search input#btnsearch {
            display: block;
            width: 40px;
            height: 40px;
            background: url(../images/ico_search.svg) no-repeat #0050a0 center center;
            background-size: 28px 28px;
            border: 1px solid #7e9db9;
            border-left: none; }
      .tablet #hovermenu .sub .searchbox {
        position: relative;
        background: #ffffff; }
        .tablet #hovermenu .sub .searchbox input[type="search"] {
          width: 100%;
          padding: 10px 50px 10px 10px;
          font-size: 16px;
          font-size: 1rem;
          line-height: 17.6px;
          line-height: 1.1rem;
          border: 0px; }
          .tablet #hovermenu .sub .searchbox input[type="search"]:focus {
            outline: none; }
        .tablet #hovermenu .sub .searchbox input[type="submit"] {
          position: absolute;
          width: 40px;
          height: 100%;
          top: 0px;
          right: 0px;
          border: 0px;
          text-indent: -10000px;
          background: url(../images/search.svg) no-repeat center center transparent;
          cursor: pointer;
          -webkit-appearance: none;
          border-radius: 0; }
      .tablet #hovermenu .sub .language {
        display: block;
        margin-top: 30px;
        padding-left: 25px; }
        .tablet #hovermenu .sub .language a {
          position: relative;
          display: inline-block;
          font-size: 13px;
          font-size: 0.8125rem;
          line-height: 14.3px;
          line-height: 0.89375rem;
          color: #ffffff; }
          .tablet #hovermenu .sub .language a:after {
            content: url(../images/language2.svg);
            display: inline-block;
            position: absolute;
            left: -25px;
            top: 50%;
            -webkit-transform: translateY(-50%);
            transform: translateY(-50%); }
      .tablet #hovermenu .sub .contact {
        display: block;
        margin-top: 30px; }
        .tablet #hovermenu .sub .contact a {
          display: block;
          width: 100%;
          height: 48px;
          font-size: 16px;
          font-size: 1rem;
          line-height: 48px;
          color: #ffffff;
          text-align: center;
          background: #0050a0;
          border: 1px solid #ffffff;
          -webkit-transition: opacity 0.2s, background 0.2s;
          transition: opacity 0.2s, background 0.2s;
          cursor: pointer; }
          .tablet #hovermenu .sub .contact a:hover {
            opacity: 0.7; }
          .tablet #hovermenu .sub .contact a span:before {
            position: relative;
            content: url(../images/mail.svg);
            display: inline-block;
            margin-right: 10px;
            top: 1px; }
  #hovermenu .close {
    position: absolute;
    width: 100px;
    height: 35px;
    bottom: -34px;
    left: 50%;
    margin-left: -50px;
    background: #ffffff;
    border: 1px solid #aeb1c2;
    border-top: 0px;
    cursor: pointer; }
    .tablet #hovermenu .close {
      display: none; }
    #hovermenu .close:before {
      position: absolute;
      content: "";
      display: block;
      width: 12px;
      height: 12px;
      top: 50%;
      left: 50%;
      margin-top: -3px;
      margin-left: -7px;
      border-top: 2px solid #000000;
      border-right: 2px solid #000000;
      -webkit-transform: rotate(-45deg);
      transform: rotate(-45deg); }

#pagetitle {
  position: relative;
  margin-bottom: 60px; }
  .sp #pagetitle {
    margin-bottom: 30px; }
  #pagetitle.level2 {
    position: relative;
    height: 320px;
    background: url(../images/pagetitle_bg.png) repeat-y center; }
    .sp #pagetitle.level2 {
      height: 150px; }
    #pagetitle.level2 .image {
      position: absolute;
      width: 100%;
      height: 100%;
      top: 0px;
      left: -10%;
      background: right no-repeat;
      background-size: contain;
      z-index: 0; }
      .pc #pagetitle.level2 .image {
        left: 0; }
      .sp #pagetitle.level2 .image {
        width: 100%;
        height: 150px; }
      #pagetitle.level2 .image img {
        display: none; }
    #pagetitle.level2 .title {
      position: relative;
      width: 100%;
      max-width: 1240px;
      margin: auto;
      padding: 12px 20px;
      display: table;
      height: 320px;
      padding: 0 20px; }
      .sp #pagetitle.level2 .title {
        padding: 6px 10px; }
      #pagetitle.level2 .title h1 {
        display: table-cell;
        vertical-align: middle;
        font-size: 48px;
        font-size: 3rem;
        line-height: 72px;
        line-height: 4.5rem;
        text-align: left;
        background: right no-repeat;
        background-size: contain; }
        .sp #pagetitle.level2 .title h1 {
          font-size: 28px;
          font-size: 1.75rem;
          line-height: 42px;
          line-height: 2.625rem;
          text-shadow: 1px 1px 1px #fff, -1px 1px 1px #fff, 1px -1px 1px #fff, -1px -1px 1px #fff; }
      .sp #pagetitle.level2 .title {
        padding: 0px 10px;
        font-size: 16px;
        font-size: 1rem;
        line-height: 24px;
        line-height: 1.5rem;
        font-weight: normal;
        height: 150px; }
    #pagetitle.level2 .description {
      position: absolute;
      width: 50%;
      right: 0px;
      bottom: 0px;
      padding: 30px 20px;
      background: rgba(255, 255, 255, 0.9);
      z-index: 5; }
      .sp #pagetitle.level2 .description {
        position: static;
        width: 100%;
        padding: 20px 10px; }
      #pagetitle.level2 .description p {
        max-width: 920px;
        font-size: 16px;
        font-size: 1rem;
        line-height: 27.2px;
        line-height: 1.7rem; }
        .sp #pagetitle.level2 .description p {
          font-size: 14px;
          font-size: 0.875rem;
          line-height: 21px;
          line-height: 1.3125rem; }
  #pagetitle.level2_recruit {
    position: relative;
    height: 600px; }
    .sp #pagetitle.level2_recruit {
      height: auto; }
    #pagetitle.level2_recruit .image {
      position: absolute;
      width: 100%;
      height: 100%;
      top: 0px;
      left: 0px;
      background: none no-repeat center center;
      background-size: cover;
      z-index: 0; }
      .sp #pagetitle.level2_recruit .image {
        position: relative;
        width: 100%;
        left: 0px;
        height: 150px;
        background: none no-repeat center bottom;
        background-size: cover; }
      #pagetitle.level2_recruit .image img {
        display: none; }
    #pagetitle.level2_recruit .title {
      display: none; }
      .sp #pagetitle.level2_recruit .title {
        position: relative;
        display: block;
        margin: 0px;
        padding: 15px 10px 20px;
        font-size: 16px;
        font-size: 1rem;
        line-height: 24px;
        line-height: 1.5rem;
        font-weight: normal;
        border-bottom: 1px solid #aeb1c2; }
        .sp #pagetitle.level2_recruit .title:before {
          content: "";
          display: block;
          position: absolute;
          width: 100px;
          height: 3px;
          left: 50%;
          bottom: -2px;
          margin-left: -50px;
          background: #5c83b4; }
    #pagetitle.level2_recruit .description {
      position: absolute;
      display: table;
      width: 100%;
      height: 100%;
      z-index: 1; }
      #pagetitle.level2_recruit .description > div {
        display: table-cell;
        vertical-align: middle;
        padding: 0 20%; }
        .tablet #pagetitle.level2_recruit .description > div {
          padding: 0 5%; }
        .sp #pagetitle.level2_recruit .description > div {
          padding: 0; }
        #pagetitle.level2_recruit .description > div .catch {
          color: #fff;
          font-size: 80px;
          font-weight: bold;
          line-height: 1.3; }
          .sp #pagetitle.level2_recruit .description > div .catch {
            color: #000;
            margin: 0px 0px 15px;
            padding: 0px 0px 6px;
            font-size: 16px;
            font-size: 1rem;
            line-height: 22.4px;
            line-height: 1.4rem;
            font-weight: bold;
            border-bottom: 1px solid #aeb1c2; }
            .sp #pagetitle.level2_recruit .description > div .catch br {
              display: none; }
        #pagetitle.level2_recruit .description > div .lead {
          color: #fff;
          margin-top: 30px;
          line-height: 2;
          font-size: 16px; }
          .sp #pagetitle.level2_recruit .description > div .lead {
            color: #000;
            margin-top: 0; }
      .sp #pagetitle.level2_recruit .description {
        position: static;
        width: 100%;
        padding: 20px 10px; }
      #pagetitle.level2_recruit .description p {
        max-width: 920px;
        font-size: 16px;
        font-size: 1rem;
        line-height: 27.2px;
        line-height: 1.7rem; }
        .sp #pagetitle.level2_recruit .description p {
          font-size: 14px;
          font-size: 0.875rem;
          line-height: 21px;
          line-height: 1.3125rem; }
  #pagetitle.level3 {
    position: relative;
    height: 200px;
    background: url(../images/pagetitle_bg.png) repeat-y center; }
    .sp #pagetitle.level3 {
      margin-bottom: 30px;
      height: 100px; }
    #pagetitle.level3 .image {
      position: absolute;
      width: 100%;
      height: 100%;
      top: 0px;
      background: right no-repeat;
      background-size: contain;
      z-index: 0; }
      .pc #pagetitle.level3 .image {
        left: 0; }
      .sp #pagetitle.level3 .image {
        width: 100%;
        height: 100px; }
      #pagetitle.level3 .image img {
        display: none; }
    #pagetitle.level3 .title {
      position: relative;
      width: 100%;
      max-width: 1240px;
      margin: auto;
      padding: 12px 20px;
      display: table;
      padding: 0 20px;
      height: 200px; }
      .sp #pagetitle.level3 .title {
        padding: 6px 10px; }
      #pagetitle.level3 .title h1 {
        display: table-cell;
        vertical-align: middle;
        font-size: 48px;
        font-size: 3rem;
        line-height: 72px;
        line-height: 4.5rem;
        text-align: left;
        background: right no-repeat;
        background-size: contain; }
        .sp #pagetitle.level3 .title h1 {
          font-size: 28px;
          font-size: 1.75rem;
          line-height: 42px;
          line-height: 2.625rem;
          text-shadow: 1px 1px 1px #fff, -1px 1px 1px #fff, 1px -1px 1px #fff, -1px -1px 1px #fff; }
      .sp #pagetitle.level3 .title {
        padding: 0 10px;
        font-size: 16px;
        font-size: 1rem;
        line-height: 24px;
        line-height: 1.5rem;
        font-weight: normal;
        height: 100px; }
    #pagetitle.level3 .description {
      position: absolute;
      width: 50%;
      right: 0px;
      bottom: 0px;
      padding: 30px 20px;
      background: rgba(255, 255, 255, 0.9);
      z-index: 5; }
      .sp #pagetitle.level3 .description {
        position: static;
        width: 100%;
        padding: 20px 10px; }
      #pagetitle.level3 .description p {
        max-width: 920px;
        font-size: 16px;
        font-size: 1rem;
        line-height: 27.2px;
        line-height: 1.7rem; }
        .sp #pagetitle.level3 .description p {
          font-size: 14px;
          font-size: 0.875rem;
          line-height: 21px;
          line-height: 1.3125rem; }

#breadcrumbs > ul {
  position: relative;
  width: 100%;
  max-width: 1240px;
  margin: auto;
  padding: 12px 20px;
  max-width: none;
  /*
  	font-size: 0px;
  	line-height: 0px;
  */ }
  .sp #breadcrumbs > ul {
    padding: 6px 10px; }
  #breadcrumbs > ul:after {
    content: "";
    display: block;
    clear: both; }
  #breadcrumbs > ul > li {
    display: inline-block;
    font-size: 16px;
    font-size: 1rem;
    line-height: 17.6px;
    line-height: 1.1rem;
    color: #000000; }
    .sp #breadcrumbs > ul > li {
      font-size: 10px;
      font-size: 0.625rem;
      line-height: 11px;
      line-height: 0.6875rem; }
    #breadcrumbs > ul > li + li:before {
      content: "";
      position: relative;
      display: inline-block;
      width: 1px;
      height: 0.75em;
      top: 0;
      margin: 0px 8px;
      background: #000000;
      -webkit-transform: skewX(-30deg);
      transform: skewX(-30deg); }
    #breadcrumbs > ul > li a {
      color: #000000; }

.level2 #breadcrumbs, .level2_recruit #breadcrumbs {
  background: rgba(0, 51, 110, 0.2); }
  .level2 #breadcrumbs > ul > li, .level2_recruit #breadcrumbs > ul > li {
    color: #ffffff; }
    .level2 #breadcrumbs > ul > li + li:before, .level2_recruit #breadcrumbs > ul > li + li:before {
      background: #ffffff; }
    .level2 #breadcrumbs > ul > li a, .level2_recruit #breadcrumbs > ul > li a {
      color: #ffffff; }

#siteutility {
  position: relative;
  background: #ffffff;
  border-top: 1px solid #aeb1c2;
  z-index: 1; }
  #siteutility > div {
    position: relative;
    width: 100%;
    max-width: 1240px;
    margin: auto;
    padding: 70px 20px; }
    .sp #siteutility > div {
      padding: 35px 10px; }
    .sp #siteutility > div {
      padding: 10px; }
  #siteutility ul {
    margin-right: -5px;
    text-align: center;
    font-size: 0px;
    line-height: 0px; }
    #siteutility ul li {
      display: inline-block;
      vertical-align: top;
      width: calc((100% - 15px) / 3);
      max-width: 370px; }
    #siteutility ul a {
      display: inline-block;
      -webkit-transition: opacity 0.2s, background 0.2s;
      transition: opacity 0.2s, background 0.2s;
      cursor: pointer; }
      #siteutility ul a:hover {
        opacity: 0.7; }
      #siteutility ul a > span img {
        display: block;
        margin: 0px auto 2rem; }
        .sp #siteutility ul a > span img {
          margin-bottom: 0.2rem;
          width: 40px; }
      #siteutility ul a > span > span {
        font-size: 16px;
        font-size: 1rem;
        line-height: 20.8px;
        line-height: 1.3rem;
        color: #000000; }
        .sp #siteutility ul a > span > span {
          font-size: 12px;
          font-size: 0.75rem;
          line-height: 15.6px;
          line-height: 0.975rem; }
        #siteutility ul a > span > span span {
          display: inline-block; }

#footerlink {
  background: url(../images/bg_slant.png);
  padding: 20px 0 25px 0;
  margin-top: 60px;
  text-align: center; }
  #recruitpage #footerlink {
    margin-top: 0; }
  .sp #footerlink {
    padding: 0px 0 20px;
    margin-top: 30px; }
  #footerlink li {
    display: inline-block; }
    #footerlink li + li {
      margin-left: 150px; }
      .sp #footerlink li + li {
        margin-left: 30px; }
    #footerlink li a {
      display: inline-block;
      text-decoration: none;
      height: 0;
      padding-top: 80px;
      min-width: 60px;
      font-size: 18px;
      font-size: 1.125rem;
      line-height: 19.8px;
      line-height: 1.2375rem; }
      .sp #footerlink li a {
        font-size: 14px;
        font-size: 0.875rem;
        line-height: 15.4px;
        line-height: 0.9625rem;
        height: auto;
        padding-top: 80px; }
      #footerlink li a.contact {
        background: url(../images/link01_main.svg) center center no-repeat;
        background-size: 60px 40px; }
        .sp #footerlink li a.contact {
          background-size: 40px 27px; }
      #footerlink li a.access {
        background: url(../images/link02_main.svg) center center no-repeat;
        background-size: 37px 51px; }
        .sp #footerlink li a.access {
          background-size: 25px 35px; }

#footersitemap {
  position: relative;
  width: 100%;
  background: #ffffff;
  z-index: 1;
  padding: 0 10px; }
  .tablet #footersitemap {
    display: none; }
  #footersitemap > div {
    position: relative;
    width: 100%;
    max-width: 1200px;
    margin: auto;
    padding: 40px 0px 20px; }
    .sp #footersitemap > div {
      padding: 20px 0px 10px; }
    #footersitemap > div:after {
      content: "";
      display: block;
      clear: both; }
    #footersitemap > div > div {
      width: 20%;
      float: left; }
      #footersitemap > div > div:nth-of-type(6n) {
        clear: both; }
      #footersitemap > div > div:nth-of-type(n+6) {
        margin-top: 35px; }
      .en #footersitemap > div > div {
        width: 25%;
        float: left; }
        .en #footersitemap > div > div:nth-of-type(6n) {
          clear: none; }
        .en #footersitemap > div > div:nth-of-type(n+6) {
          margin-top: 0; }
    #footersitemap > div .title {
      padding: 0px 0px 20px; }
      #footersitemap > div .title a {
        color: #000000; }
    #footersitemap > div ul li {
      position: relative; }
      .en #footersitemap > div ul li {
        padding-right: 20px; }
      #footersitemap > div ul li a {
        color: #000000; }
      #footersitemap > div ul li ul {
        display: none; }
    #footersitemap > div ul li + li {
      margin-top: 10px; }

footer {
  text-align: center;
  background: #000;
  color: #fff;
  padding: 10px 10px; }
  footer .col {
    display: none;
    margin-bottom: 10px; }
    .tablet footer .col {
      display: block; }
    footer .col ul {
      text-align: center;
      font-size: 0; }
      footer .col ul:after {
        content: "";
        display: block;
        clear: both; }
      footer .col ul li {
        display: inline-block; }
        footer .col ul li + li {
          margin-left: 1rem; }
        footer .col ul li a {
          display: block;
          padding: 15px 5px;
          text-align: center;
          font-size: 18px;
          font-size: 1.125rem;
          line-height: 19.8px;
          line-height: 1.2375rem;
          color: #fff; }
          .sp footer .col ul li a {
            font-size: 14px;
            font-size: 0.875rem;
            line-height: 15.4px;
            line-height: 0.9625rem; }
  footer p {
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 18.2px;
    line-height: 1.1375rem; }
    .sp footer p {
      font-size: 9px;
      font-size: 0.5625rem;
      line-height: 11.7px;
      line-height: 0.73125rem; }

main {
  position: relative;
  display: block;
  background: #ffffff; }
  main:after {
    content: "";
    display: block;
    clear: both; }

#sidenavi {
  position: absolute;
  top: 20px;
  width: 100%;
  max-width: 1220px;
  left: 50%;
  transform: translateX(-50%); }
  .sp #sidenavi {
    display: none; }
  #sidenavi.fixed {
    position: fixed;
    top: 100px; }
  #sidenavi.bottom {
    position: absolute;
    top: auto;
    bottom: 80px; }
    #sidenavi.bottom > div {
      top: auto;
      bottom: 0px; }
  #sidenavi > div {
    position: absolute;
    top: 0px;
    left: 20px;
    width: 280px; }
    .pc #sidenavi > div {
      width: calc((100% - 60px) * 0.24137931034482758620689655172414); }
  #sidenavi dt {
    font-size: 16px;
    font-size: 1rem;
    line-height: 20.8px;
    line-height: 1.3rem;
    font-weight: bold; }
    #sidenavi dt a.current {
      color: #0050a0; }
  #sidenavi dd {
    margin: 20px 0px 0px;
    padding: 0px;
    font-size: 16px;
    font-size: 1rem;
    line-height: 20.8px;
    line-height: 1.3rem; }
  * + #sidenavi ul > li {
    margin-top: 20px; }
  #sidenavi ul > li > ul > li {
    position: relative;
    padding-left: 15px; }
    #sidenavi ul > li > ul > li:before {
      content: "-";
      position: absolute;
      top: -0.15rem;
      left: 2px; }
    * + #sidenavi ul > li > ul > li {
      margin-top: 10px; }
  #sidenavi a {
    color: #000000; }
  #sidenavi .current > a {
    color: #0050a0; }

main .contents * + .middleblock, main .contents * + .shortblock, main .contents * + .text, main .contents * + .edit_area, main .contents .text * + .lead, main .contents .edit_area * + .lead, main .contents * + .image, main .contents * + .imagebox, main .contents * + .column, main .contents * + .button, main .contents * + .table, main .contents * + .format, main .contents .form * + table, main .contents .form * + textarea, main .contents * + .boxmenu, main .contents * + .box, main .contents * + .googlemap, body#recruitpage * + .image {
  margin-top: 20px; }
  .sp main .contents * + .middleblock, main .contents .sp * + .middleblock, .sp main .contents * + .shortblock, main .contents .sp * + .shortblock, .sp main .contents * + .text, main .contents .sp * + .text, .sp main .contents * + .edit_area, main .contents .sp * + .edit_area, .sp main .contents .text * + .lead, main .contents .text .sp * + .lead, .sp main .contents .edit_area * + .lead, main .contents .edit_area .sp * + .lead, .sp main .contents * + .image, main .contents .sp * + .image, .sp main .contents * + .imagebox, main .contents .sp * + .imagebox, .sp main .contents * + .column, main .contents .sp * + .column, .sp main .contents * + .button, main .contents .sp * + .button, .sp main .contents * + .table, main .contents .sp * + .table, .sp main .contents * + .format, main .contents .sp * + .format, .sp main .contents .form * + table, main .contents .form .sp * + table, .sp main .contents .form * + textarea, main .contents .form .sp * + textarea, .sp main .contents * + .boxmenu, main .contents .sp * + .boxmenu, .sp main .contents * + .box, main .contents .sp * + .box, .sp main .contents * + .googlemap, main .contents .sp * + .googlemap, .sp body#recruitpage * + .image, body#recruitpage .sp * + .image {
    margin-top: 15px; }

main .contents * + .layout, main .contents * + .form, main .contents * + .menu, main .contents * + .businessbox, main .contents * + .strengthbox {
  margin-top: 80px; }
  .sp main .contents * + .layout, main .contents .sp * + .layout, .sp main .contents * + .form, main .contents .sp * + .form, .sp main .contents * + .menu, main .contents .sp * + .menu, .sp main .contents * + .businessbox, main .contents .sp * + .businessbox, .sp main .contents * + .strengthbox, main .contents .sp * + .strengthbox {
    margin-top: 60px; }

main .contents .text * + p, main .contents .edit_area * + p, main .contents .text .lead * + p, main .contents .edit_area .lead * + p, main .contents .text * + ul, main .contents .edit_area * + ul, main .contents .text * + ol, main .contents .edit_area * + ol, main .contents .text * + dl, main .contents .edit_area * + dl, main .contents .text dl * + dt, main .contents .edit_area dl * + dt, main .contents .text * + .image.floatright, main .contents .edit_area * + .image.floatright, main .contents .text * + .image.floatleft, main .contents .edit_area * + .image.floatleft, main .contents .edit_area > * + div {
  margin-top: 20px; }

main.sidenavi .contents > div:not(.background) {
  max-width: 1220px;
  padding-left: 320px; }
  .pc main.sidenavi .contents > div:not(.background) {
    padding-left: calc((100% - 60px) * 0.24137931034482758620689655172414 + 40px); }
  .sp main.sidenavi .contents > div:not(.background) {
    padding-left: 10px; }

main .contents {
  position: relative;
  padding: 0px; }
  main .contents:after {
    content: "";
    display: block;
    clear: both; }
  main .contents > div:not(.background) {
    position: relative;
    width: 100%;
    max-width: 1240px;
    margin: auto;
    padding: 20px 20px;
    max-width: 1240px; }
    .sp main .contents > div:not(.background) {
      padding: 10px 10px; }
    .sp main .contents > div:not(.background) {
      width: auto; }
  main .contents.narrow > div {
    max-width: 1000px; }
    .sp main .contents.narrow > div {
      padding-left: 10px;
      padding-right: 10px; }
  main .contents > div.background {
    position: absolute;
    width: 100%;
    height: 100%;
    background: rgba(255, 0, 0, 0.1);
    z-index: 0; }
  main .contents .middleblock {
    max-width: 1180px;
    margin-left: auto;
    margin-right: auto; }
  main .contents .shortblock {
    max-width: 750px;
    margin-left: auto;
    margin-right: auto; }
  main .contents h1 + *, main .contents h2 + *, main .contents h3 + *, main .contents h4 + *, main .contents h5 + *, main .contents h6 + *, main .contents .h2button + *, main .contents .h3button + * {
    margin-top: 0px !important; }
  main .contents h1 {
    clear: both;
    display: block;
    margin: 0px 0px 20px;
    padding: 0px;
    font-size: 48px;
    font-size: 3rem;
    line-height: 62.4px;
    line-height: 3.9rem;
    font-weight: normal; }
  main .contents * + h1 {
    margin-top: 160px; }
  main .contents h2 {
    clear: both;
    display: block;
    position: relative;
    margin: 0 0 40px 0;
    padding: 0 0 20px 0;
    font-size: 36px;
    font-size: 2.25rem;
    line-height: 54px;
    line-height: 3.375rem;
    font-weight: normal;
    border-bottom: 2px solid #aeb1c2; }
    main .contents h2:after {
      display: block;
      content: "";
      position: absolute;
      width: 20%;
      bottom: -2px;
      border-bottom: 2px solid #0050a0; }
    .sp main .contents h2 {
      font-size: 16px;
      font-size: 1rem;
      line-height: 22.4px;
      line-height: 1.4rem;
      padding: 0px 0px 14px 0;
      margin: 0 0 20px 0; }
    main .contents h2.center {
      text-align: center; }
    main .contents h2 a {
      color: #000000; }
    main .contents h2 .sub {
      display: block;
      font-size: 16px;
      font-size: 1rem;
      line-height: 20.8px;
      line-height: 1.3rem;
      font-weight: bold; }
      .sp main .contents h2 .sub {
        font-size: 14px;
        font-size: 0.875rem;
        line-height: 18.2px;
        line-height: 1.1375rem; }
  main .contents * + h2 {
    margin-top: 80px; }
    main .contents * + h2#contact {
      margin-top: 40px; }
    .sp main .contents * + h2 {
      margin-top: 48px; }
  main .contents h3 {
    clear: both;
    position: relative;
    margin: 0px 0px 20px;
    padding: 0px;
    font-size: 20px;
    font-size: 1.25rem;
    line-height: 26px;
    line-height: 1.625rem;
    font-weight: normal; }
    .sp main .contents h3 {
      font-size: 16px;
      font-size: 1rem;
      line-height: 20.8px;
      line-height: 1.3rem; }
  main .contents * + h3 {
    margin-top: 32px; }
  main .contents h4 {
    clear: both;
    display: block;
    margin: 0px 0px 20px;
    padding: 0px;
    font-size: 16px;
    font-size: 1rem;
    line-height: 20.8px;
    line-height: 1.3rem; }
    .sp main .contents h4 {
      font-size: 16px;
      font-size: 1rem;
      line-height: 20.8px;
      line-height: 1.3rem; }
  main .contents * + h4 {
    margin-top: 20px; }
  main .contents h5 {
    clear: both;
    display: block;
    margin: 0px 0px 20px;
    padding: 0px;
    font-size: 16px;
    font-size: 1rem;
    line-height: 20.8px;
    line-height: 1.3rem;
    font-weight: normal; }
    main .contents h5:before {
      display: inline;
      content: "\3008"; }
    main .contents h5:after {
      display: inline;
      content: "\3009"; }
    .sp main .contents h5 {
      font-size: 14px;
      font-size: 0.875rem;
      line-height: 18.2px;
      line-height: 1.1375rem; }
  main .contents * + h5 {
    margin-top: 20px; }
  main .contents h6 {
    clear: both;
    display: block;
    margin: 0px 0px 20px;
    padding: 0px;
    font-size: 16px;
    font-size: 1rem;
    line-height: 20.8px;
    line-height: 1.3rem; }
    .sp main .contents h6 {
      font-size: 14px;
      font-size: 0.875rem;
      line-height: 18.2px;
      line-height: 1.1375rem; }
  main .contents * + h6 {
    margin-top: 20px; }
  main .contents .h2button {
    position: relative;
    margin-bottom: 20px;
    padding: 0px 200px 20px 0px;
    border-bottom: 1px solid #aeb1c2; }
    .sp main .contents .h2button {
      padding-right: 0px; }
    main .contents .h2button h2 {
      margin: 0px;
      padding: 0px;
      border: 0px; }
      .sp main .contents .h2button h2 {
        margin-bottom: 10px; }
    main .contents .h2button .button {
      position: absolute;
      bottom: 20px;
      right: 0px; }
      .sp main .contents .h2button .button {
        position: static;
        text-align: right; }
  main .contents * + .h2button {
    margin-top: 80px; }
  main .contents .h3button {
    position: relative;
    margin-bottom: 20px;
    padding: 0px 200px 20px 0px;
    border-bottom: 1px solid #aeb1c2; }
    .sp main .contents .h3button {
      padding-right: 0px; }
    main .contents .h3button h3 {
      margin: 0px; }
      .sp main .contents .h3button h3 {
        margin-bottom: 10px; }
    main .contents .h3button .button {
      position: absolute;
      bottom: 20px;
      right: 0px; }
      .sp main .contents .h3button .button {
        position: static;
        text-align: right; }
  main .contents * + .h3button {
    margin-top: 20px; }
  main .contents .stack {
    margin-top: 0px !important; }
  main .contents .block {
    margin-top: 20px !important; }
    .sp main .contents .block {
      margin-top: 15px !important; }
  main .contents .section {
    margin-top: 80px !important; }
    .sp main .contents .section {
      margin-top: 60px !important; }
  main .contents .paragraph {
    margin-top: 20px !important; }
  main .contents .text:after, main .contents .edit_area:after {
    content: "";
    display: block;
    clear: both; }
  main .contents .text a:visited, main .contents .edit_area a:visited {
    color: #999; }
  main .contents .text p, main .contents .edit_area p {
    font-size: 16px;
    font-size: 1rem;
    line-height: 27.2px;
    line-height: 1.7rem; }
    .sp main .contents .text p, .sp main .contents .edit_area p {
      font-size: 14px;
      font-size: 0.875rem;
      line-height: 23.8px;
      line-height: 1.4875rem; }
    main .contents .text p .required, main .contents .edit_area p .required {
      color: #ed1c24;
      margin-left: 4px;
      margin-right: 4px; }
    main .contents .text p.error_mes, main .contents .edit_area p.error_mes {
      color: #ed1c24; }
    main .contents .text p a, main .contents .edit_area p a {
      color: #000000; }
    main .contents .text p.center, main .contents .edit_area p.center {
      text-align: center; }
    main .contents .text p.right, main .contents .edit_area p.right {
      text-align: right; }
  main .contents .text .lead.center, main .contents .edit_area .lead.center {
    text-align: center; }
    .sp main .contents .text .lead.center, .sp main .contents .edit_area .lead.center {
      text-align: left; }
  main .contents .text .lead.policy p, main .contents .edit_area .lead.policy p {
    font-size: 32px;
    font-size: 2rem;
    line-height: 54.4px;
    line-height: 3.4rem; }
  main .contents .text .lead p, main .contents .edit_area .lead p {
    font-size: 20px;
    font-size: 1.25rem;
    line-height: 34px;
    line-height: 2.125rem; }
    .sp main .contents .text .lead p, .sp main .contents .edit_area .lead p {
      font-size: 16px;
      font-size: 1rem;
      line-height: 27.2px;
      line-height: 1.7rem; }
    main .contents .text .lead p span, main .contents .edit_area .lead p span {
      display: inline-block; }
      .sp main .contents .text .lead p span, .sp main .contents .edit_area .lead p span {
        display: inline; }
  main .contents .text figure, main .contents .edit_area figure {
    margin: 0; }
  main .contents .text ul, main .contents .edit_area ul {
    clear: both; }
    main .contents .text ul > li, main .contents .edit_area ul > li {
      margin-left: 14px;
      text-indent: -14px;
      font-size: 16px;
      font-size: 1rem;
      line-height: 27.2px;
      line-height: 1.7rem; }
      .sp main .contents .text ul > li, .sp main .contents .edit_area ul > li {
        font-size: 14px;
        font-size: 0.875rem;
        line-height: 23.8px;
        line-height: 1.4875rem; }
      main .contents .text ul > li:before, main .contents .edit_area ul > li:before {
        content: "";
        display: inline-block;
        width: 10px;
        height: 10px;
        margin-right: 4px;
        background: #0050a0;
        border-radius: 50%; }
      main .contents .text ul > li + li, main .contents .edit_area ul > li + li {
        margin-top: 4px; }
      main .contents .text ul > li *, main .contents .edit_area ul > li * {
        text-indent: 0px; }
      main .contents .text ul > li a, main .contents .edit_area ul > li a {
        color: #000000; }
    main .contents .text ul.float, main .contents .edit_area ul.float {
      margin-right: -40px; }
      main .contents .text ul.float li, main .contents .edit_area ul.float li {
        display: inline-block;
        margin-left: calc(14px - 0.3em);
        margin-right: 40px; }
    main .contents .text ul.ib, main .contents .edit_area ul.ib {
      margin-left: -36px;
      text-indent: 36px; }
      .sp main .contents .text ul.ib, .sp main .contents .edit_area ul.ib {
        margin-left: 0px;
        text-indent: 0px; }
      main .contents .text ul.ib li, main .contents .edit_area ul.ib li {
        display: inline-block; }
        .sp main .contents .text ul.ib li, .sp main .contents .edit_area ul.ib li {
          display: block; }
        main .contents .text ul.ib li + li, main .contents .edit_area ul.ib li + li {
          margin-left: 50px; }
          .sp main .contents .text ul.ib li + li, .sp main .contents .edit_area ul.ib li + li {
            margin-left: 14px; }
  main .contents .text ol, main .contents .edit_area ol {
    font-size: 16px;
    font-size: 1rem;
    line-height: 27.2px;
    line-height: 1.7rem;
    counter-reset: number; }
    .sp main .contents .text ol, .sp main .contents .edit_area ol {
      font-size: 14px;
      font-size: 0.875rem;
      line-height: 23.8px;
      line-height: 1.4875rem; }
    main .contents .text ol > li, main .contents .edit_area ol > li {
      margin-left: 1.2em;
      text-indent: -0.63em; }
      main .contents .text ol > li:before, main .contents .edit_area ol > li:before {
        counter-increment: number;
        content: " " counter(number) ".";
        display: inline-block;
        margin-right: 0.3em; }
      main .contents .text ol > li + li, main .contents .edit_area ol > li + li {
        margin-top: 4px; }
      main .contents .text ol > li *, main .contents .edit_area ol > li * {
        text-indent: 0px; }
      main .contents .text ol > li a, main .contents .edit_area ol > li a {
        color: #000000; }
    main .contents .text ol.digit2 > li, main .contents .edit_area ol.digit2 > li {
      margin-left: 1.5em;
      text-indent: -0.93em; }
      main .contents .text ol.digit2 > li:before, main .contents .edit_area ol.digit2 > li:before {
        counter-increment: number;
        content: " " counter(number) ".";
        display: inline-block;
        margin-right: 0.3em;
        padding-left: 0.5em; }
      main .contents .text ol.digit2 > li:nth-of-type(n+10), main .contents .edit_area ol.digit2 > li:nth-of-type(n+10) {
        margin-left: 1.5em;
        text-indent: -0.93em; }
        main .contents .text ol.digit2 > li:nth-of-type(n+10):before, main .contents .edit_area ol.digit2 > li:nth-of-type(n+10):before {
          margin-right: 0.4em;
          padding-left: 0; }
  main .contents .text dl dt, main .contents .edit_area dl dt {
    font-size: 16px;
    font-size: 1rem;
    line-height: 20.8px;
    line-height: 1.3rem; }
    .sp main .contents .text dl dt, .sp main .contents .edit_area dl dt {
      font-size: 16px;
      font-size: 1rem;
      line-height: 20.8px;
      line-height: 1.3rem;
      display: block; }
  main .contents .text dl dd, main .contents .edit_area dl dd {
    margin: 10px 0px 0px;
    font-size: 16px;
    font-size: 1rem;
    line-height: 27.2px;
    line-height: 1.7rem; }
    .sp main .contents .text dl dd, .sp main .contents .edit_area dl dd {
      font-size: 14px;
      font-size: 0.875rem;
      line-height: 23.8px;
      line-height: 1.4875rem;
      display: block; }
  main .contents .text dl.dl_list, main .contents .edit_area dl.dl_list {
    display: table; }
    main .contents .text dl.dl_list dt, main .contents .edit_area dl.dl_list dt {
      font-weight: bold;
      display: table-cell;
      vertical-align: top;
      white-space: nowrap;
      font-size: 16px;
      font-size: 1rem;
      line-height: 27.2px;
      line-height: 1.7rem; }
      .sp main .contents .text dl.dl_list dt, .sp main .contents .edit_area dl.dl_list dt {
        font-size: 14px;
        font-size: 0.875rem;
        line-height: 23.8px;
        line-height: 1.4875rem; }
    main .contents .text dl.dl_list dd, main .contents .edit_area dl.dl_list dd {
      display: table-cell;
      vertical-align: top;
      padding-left: 10px; }
  main .contents .text .image.floatright, main .contents .edit_area .image.floatright {
    float: right;
    margin-left: 20px;
    margin-bottom: 20px; }
    .sp main .contents .text .image.floatright, .sp main .contents .edit_area .image.floatright {
      margin-left: 10px;
      margin-bottom: 10px; }
  main .contents .text .image.floatleft, main .contents .edit_area .image.floatleft {
    float: left;
    margin-right: 20px;
    margin-bottom: 20px; }
    .sp main .contents .text .image.floatleft, .sp main .contents .edit_area .image.floatleft {
      margin-right: 10px;
      margin-bottom: 10px; }
  .sp main .contents .text .image.spclear, .sp main .contents .edit_area .image.spclear {
    float: none;
    width: auto !important;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 0px; }
  main .contents .image {
    text-align: center; }
    main .contents .image img {
      display: block;
      margin: auto;
      max-width: 100%;
      height: auto; }
    main .contents .image figcaption {
      margin: auto;
      text-align: left;
      font-size: 14px;
      font-size: 0.875rem;
      line-height: 23.8px;
      line-height: 1.4875rem; }
    main .contents .image p {
      margin: auto;
      text-align: left;
      font-size: 16px;
      font-size: 1rem;
      line-height: 20.8px;
      line-height: 1.3rem; }
      .sp main .contents .image p {
        font-size: 14px;
        font-size: 0.875rem;
        line-height: 18.2px;
        line-height: 1.1375rem; }
      * + main .contents .image p {
        margin-top: 10px; }
      main .contents .image p a {
        color: #000000; }
      main .contents .image p.note {
        font-size: 14px;
        font-size: 0.875rem;
        line-height: 23.8px;
        line-height: 1.4875rem; }
        .sp main .contents .image p.note {
          font-size: 11.9px;
          font-size: 0.74375rem;
          line-height: 20.23px;
          line-height: 1.26438rem; }
      main .contents .image p.center {
        text-align: center; }
      main .contents .image p.right {
        text-align: right; }
    main .contents .image.left {
      text-align: left; }
      main .contents .image.left img {
        margin-left: 0px; }
      main .contents .image.left p {
        margin-left: 0px; }
    main .contents .image.right {
      text-align: right; }
      main .contents .image.right img {
        margin-right: 0px; }
      main .contents .image.right p {
        margin-right: 0px; }
    main .contents .image > a {
      display: inline-block;
      -webkit-transition: opacity 0.2s, background 0.2s;
      transition: opacity 0.2s, background 0.2s;
      cursor: pointer;
      max-width: 100%; }
      main .contents .image > a:hover {
        opacity: 0.7; }
      main .contents .image > a p {
        color: #000000; }
  main .contents .edit_area img {
    max-width: 100%; }
  main .contents .imagebox {
    display: table;
    width: 100%; }
    main .contents .imagebox > * {
      display: table-cell;
      height: 100%;
      text-align: left;
      vertical-align: top; }
    .sp main .contents .imagebox.spcol1 {
      display: block; }
      .sp main .contents .imagebox.spcol1 > * {
        display: block;
        width: auto !important; }
        .sp main .contents .imagebox.spcol1 > * + * {
          padding-top: 20px;
          padding-left: 0px !important;
          padding-right: 0px !important; }
    main .contents .imagebox > * {
      margin-top: 0px !important; }
      main .contents .imagebox > * + * {
        padding-left: 20px; }
    main .contents .imagebox.reverse {
      direction: rtl; }
      main .contents .imagebox.reverse > * {
        direction: ltr; }
        main .contents .imagebox.reverse > * + * {
          padding-left: 0px;
          padding-right: 20px; }
    main .contents .imagebox > .image img {
      width: 100%; }
    main .contents .imagebox > .image p {
      width: auto !important; }
  main .contents .column {
    margin-bottom: -40px;
    margin-left: -20px;
    margin-right: -4px;
    margin-top: 32px !important; }
    .sp main .contents .column {
      margin-left: -10px;
      margin-bottom: -20px; }
    main .contents .column:after {
      content: "";
      display: block;
      clear: both; }
    main .contents .column > * {
      float: left;
      margin-bottom: 40px;
      margin-left: 20px; }
      .sp main .contents .column > * {
        margin-left: 10px;
        margin-bottom: 20px; }
    main .contents .column.col1 > * {
      width: calc((100% - 20px * 1 - 4px) / 1); }
      main .contents .column.col1 > *.size2 {
        width: calc(((100% - 20px * 1 - 4px) / 1) * 2 + 20px * 1); }
      main .contents .column.col1 > *.size1 {
        width: calc(((100% - 20px * 1 - 4px) / 1) * 1 + 20px * 0); }
      .sp main .contents .column.col1 > * {
        width: calc((100% - 10px * 1 - 4px) / 1); }
    .sp main .contents .column.spcol1 > * {
      width: calc((100% - 10px * 1 - 4px) / 1) !important; }
    main .contents .column.col2 > * {
      width: calc((100% - 20px * 2 - 4px) / 2); }
      main .contents .column.col2 > *.size2 {
        width: calc(((100% - 20px * 2 - 4px) / 2) * 2 + 20px * 1); }
      .sp main .contents .column.col2 > * {
        width: calc((100% - 10px * 2 - 4px) / 2); }
    .sp main .contents .column.spcol2 > * {
      width: calc((100% - 10px * 2 - 4px) / 2) !important; }
    main .contents .column.col3 > * {
      width: calc((100% - 20px * 3 - 4px) / 3); }
      main .contents .column.col3 > *.size2 {
        width: calc(((100% - 20px * 3 - 4px) / 3) * 2 + 20px * 1); }
      main .contents .column.col3 > *.size3 {
        width: calc(((100% - 20px * 3 - 4px) / 3) * 3 + 20px * 2); }
      .sp main .contents .column.col3 > * {
        width: calc((100% - 10px * 3 - 4px) / 3); }
    .sp main .contents .column.spcol3 > * {
      width: calc((100% - 10px * 3 - 4px) / 3) !important; }
    main .contents .column.col4 > * {
      width: calc((100% - 20px * 4 - 4px) / 4); }
      main .contents .column.col4 > *.size2 {
        width: calc(((100% - 20px * 4 - 4px) / 4) * 2 + 20px * 1); }
      main .contents .column.col4 > *.size3 {
        width: calc(((100% - 20px * 4 - 4px) / 4) * 3 + 20px * 2); }
      main .contents .column.col4 > *.size4 {
        width: calc(((100% - 20px * 4 - 4px) / 4) * 4 + 20px * 3); }
      .sp main .contents .column.col4 > * {
        width: calc((100% - 10px * 4 - 4px) / 4); }
    .sp main .contents .column.spcol4 > * {
      width: calc((100% - 10px * 4 - 4px) / 4) !important; }
    main .contents .column.col5 > * {
      width: calc((100% - 20px * 5 - 4px) / 5); }
      main .contents .column.col5 > *.size2 {
        width: calc(((100% - 20px * 5 - 4px) / 5) * 2 + 20px * 1); }
      main .contents .column.col5 > *.size3 {
        width: calc(((100% - 20px * 5 - 4px) / 5) * 3 + 20px * 2); }
      main .contents .column.col5 > *.size4 {
        width: calc(((100% - 20px * 5 - 4px) / 5) * 4 + 20px * 3); }
      main .contents .column.col5 > *.size5 {
        width: calc(((100% - 20px * 5 - 4px) / 5) * 5 + 20px * 4); }
      .sp main .contents .column.col5 > * {
        width: calc((100% - 10px * 5 - 4px) / 5); }
    .sp main .contents .column.spcol5 > * {
      width: calc((100% - 10px * 5 - 4px) / 5) !important; }
  main .contents .layout {
    display: table;
    width: calc(100% + 40px);
    margin-left: -20px;
    margin-right: -20px; }
    main .contents .layout > * {
      display: table-cell;
      height: 100%;
      text-align: center;
      vertical-align: middle; }
    main .contents .layout:after {
      content: "";
      display: block;
      clear: both; }
    .sp main .contents .layout {
      width: calc(100% + 20px);
      margin-left: -10px;
      margin-right: -10px; }
    main .contents .layout > * {
      padding: 0px 20px; }
      .sp main .contents .layout > * {
        padding: 0px 10px; }
      main .contents .layout > *.left {
        text-align: left; }
      main .contents .layout > *.right {
        text-align: right; }
      main .contents .layout > *.top {
        vertical-align: top; }
      main .contents .layout > *.bottom {
        vertical-align: bottom; }
    .sp main .contents .layout.spcol1 {
      display: block;
      width: auto;
      margin-left: 0px;
      margin-bottom: -40px;
      margin-right: 0px; }
    .sp main .contents .layout.spcol1 > * {
      display: block;
      margin-bottom: 40px;
      padding: 0px;
      width: auto !important; }
  main .contents .button {
    font-size: 0px;
    line-height: 0px; }
    .sp main .contents .button {
      text-align: center; }
    main .contents .button > div {
      display: inline-block;
      letter-spacing: -1rem; }
      .sp main .contents .button > div {
        display: block; }
    main .contents .button > div + div {
      margin-left: 20px; }
      .sp main .contents .button > div + div {
        margin-top: 20px;
        margin-left: 0px; }
    main .contents .button a, main .contents .button button {
      position: relative;
      display: inline-block;
      min-width: 180px;
      padding: 15px 20px;
      font-size: 16px;
      font-size: 1rem;
      line-height: 17.6px;
      line-height: 1.1rem;
      color: #fff;
      text-align: center;
      background: #0050a0;
      cursor: pointer;
      -webkit-transition: 0.5s;
      transition: 0.5s;
      box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3);
      cursor: pointer;
      position: relative;
      top: 0px;
      letter-spacing: 0;
      font-weight: bold;
      text-decoration: none; }
      main .contents .button a:hover, main .contents .button button:hover {
        top: -5px;
        box-shadow: 6px 6px 6px rgba(0, 0, 0, 0.4); }
        .tablet main .contents .button a:hover, .tablet main .contents .button button:hover {
          top: 0;
          box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3); }
      .sp main .contents .button a, .sp main .contents .button button {
        min-width: 0;
        padding: 10px;
        width: 100%; }
      main .contents .button a.nowrap, main .contents .button button.nowrap {
        white-space: nowrap; }
      main .contents .button a:visited, main .contents .button button:visited {
        color: #fff; }
      main .contents .button a.center, main .contents .button button.center {
        text-align: center; }
      main .contents .button a + a, main .contents .button button + a {
        margin-left: 20px; }
        .sp main .contents .button a + a, .sp main .contents .button button + a {
          margin: 20px 0 0 0; }
      main .contents .button a.ng, main .contents .button button.ng {
        pointer-events: none;
        transition: none;
        background: #666; }
    .sp main .contents .button.spcol2 a {
      width: calc((100% - 10px) / 2); }
      .sp main .contents .button.spcol2 a + a {
        margin: 0 0 0 10px; }
    main .contents .button.center {
      text-align: center; }
    main .contents .button.right {
      text-align: right; }
  main .contents .table {
    overflow-x: auto;
    overflow-y: hidden; }
    main .contents .table > table {
      width: calc(100% - 2px);
      border-spacing: 0;
      empty-cells: show;
      border-top: 1px solid #aeb1c2;
      border-left: 1px solid #aeb1c2;
      /*
      
      			> thead {
      				* + th {
      //					border-left: 1px solid #ffffff;
      					&:before {
      						content: "";
      						display: block;
      						position: absolute;
      						width: 1px;
      						height: 3000px;
      						top: 0px;
      						left: 0px;
      						background: #ffffff;
      					}
      				}
      				tr + tr th {
      //					border-top: 1px solid #ffffff;
      
      					&:before {
      						content: "";
      						display: block;
      						position: absolute;
      						width: 1px;
      						height: 3000px;
      						top: 0px;
      						left: 0px;
      						background: #ffffff;
      					}
      
      					&:after {
      						content: "";
      						display: block;
      						position: absolute;
      						width: 100%;
      						height: 1px;
      						top: 0px;
      						left: 0px;
      						background: #ffffff;
      					}
      				}
      			}
      */
      /*
      			> tr > td + td,
      			> * > tr > td + td {
      				position: relative;
      				overflow: hidden;
      
      //				border-left: 1px solid #ffffff;
      
      				&:before {
      					position: absolute;
      					display: block;
      					content: "";
      					width: 1px;
      					height: 3000px;
      					left: 0px;
      					top: 0px;
      					background: #ffffff;
      				}
      			}
      */ }
      main .contents .table > table.nb_all {
        border: none; }
      main .contents .table > table.th_middle tbody > tr > th {
        vertical-align: middle; }
      main .contents .table > table.td_right tbody > tr > td {
        text-align: right; }
      main .contents .table > table > thead > tr > th,
      main .contents .table > table > tbody > tr > th,
      main .contents .table > table > tr > th {
        position: relative;
        padding: 20px 16px;
        vertical-align: middle;
        text-align: center;
        font-size: 16px;
        font-size: 1rem;
        line-height: 20.8px;
        line-height: 1.3rem;
        font-weight: bold;
        color: #ffffff;
        background: #808080;
        overflow: hidden;
        border-right: 1px solid #bfbfbf;
        border-bottom: 1px solid #bfbfbf; }
        .sp main .contents .table > table > thead > tr > th, .sp
        main .contents .table > table > tbody > tr > th, .sp
        main .contents .table > table > tr > th {
          padding: 12px 8px;
          white-space: nowrap;
          font-size: 14px;
          font-size: 0.875rem;
          line-height: 18.2px;
          line-height: 1.1375rem; }
          .sp main .contents .table > table > thead > tr > th span, .sp
          main .contents .table > table > tbody > tr > th span, .sp
          main .contents .table > table > tr > th span {
            display: block; }
          .sp main .contents .table > table > thead > tr > th * + span, .sp
          main .contents .table > table > tbody > tr > th * + span, .sp
          main .contents .table > table > tr > th * + span {
            margin-top: 4px; }
        main .contents .table > table > thead > tr > th.result,
        main .contents .table > table > tbody > tr > th.result,
        main .contents .table > table > tr > th.result {
          border-left: 2px solid #bfbfbf; }
        main .contents .table > table > thead > tr > th.type2,
        main .contents .table > table > tbody > tr > th.type2,
        main .contents .table > table > tr > th.type2 {
          color: #000000;
          background: #ccc;
          border-right: 1px solid #808080;
          border-bottom: 1px solid #808080; }
          main .contents .table > table > thead > tr > th.type2.result,
          main .contents .table > table > tbody > tr > th.type2.result,
          main .contents .table > table > tr > th.type2.result {
            border-left: 2px solid #a6a6a6; }
      main .contents .table > table.small > thead > tr > th,
      main .contents .table > table.small > tbody > tr > th,
      main .contents .table > table.small > tr > th {
        padding: 8px;
        font-size: 12.8px;
        font-size: 0.8rem;
        line-height: 16.64px;
        line-height: 1.04rem; }
        .sp main .contents .table > table.small > thead > tr > th, .sp
        main .contents .table > table.small > tbody > tr > th, .sp
        main .contents .table > table.small > tr > th {
          font-size: 14px;
          font-size: 0.875rem;
          line-height: 18.2px;
          line-height: 1.1375rem; }
      main .contents .table > table > tbody > tr > th {
        vertical-align: top;
        color: #fff;
        background: #808080;
        border-right: 1px solid #ccc;
        border-bottom: 1px solid #ccc; }
      main .contents .table > table tr.w_border th {
        border-bottom: 3px double #fff; }
      main .contents .table > table tr.w_border th.type2, main .contents .table > table tr.w_border td {
        border-bottom: 3px double #808080; }
      main .contents .table > table > tr > td,
      main .contents .table > table > * > tr > td {
        padding: 16px;
        vertical-align: middle;
        text-align: center;
        font-size: 16px;
        font-size: 1rem;
        line-height: 27.2px;
        line-height: 1.7rem;
        font-weight: normal;
        color: #000000;
        border-right: 1px solid #808080;
        border-bottom: 1px solid #808080; }
        .sp main .contents .table > table > tr > td, .sp
        main .contents .table > table > * > tr > td {
          padding: 8px;
          font-size: 14px;
          font-size: 0.875rem;
          line-height: 23.8px;
          line-height: 1.4875rem; }
        main .contents .table > table > tr > td.result,
        main .contents .table > table > * > tr > td.result {
          border-left: 2px solid #c0c0c0; }
      main .contents .table > table.small > tr > td,
      main .contents .table > table.small > * > tr > td {
        padding: 8px;
        font-size: 12.8px;
        font-size: 0.8rem;
        line-height: 21.76px;
        line-height: 1.36rem; }
        .sp main .contents .table > table.small > tr > td, .sp
        main .contents .table > table.small > * > tr > td {
          font-size: 14px;
          font-size: 0.875rem;
          line-height: 23.8px;
          line-height: 1.4875rem; }
      main .contents .table > table .left {
        text-align: left; }
      main .contents .table > table .right {
        text-align: right; }
      main .contents .table > table .center {
        text-align: center; }
      main .contents .table > table .top {
        vertical-align: top; }
      main .contents .table > table .bottom {
        vertical-align: bottom; }
      main .contents .table > table .middle {
        vertical-align: middle; }
      main .contents .table > table .color1 {
        color: #ffffff;
        background: #99b8da !important; }
      main .contents .table > table .color2 {
        color: #ffffff;
        background: #b2cae3 !important; }
      main .contents .table > table .color3 {
        background: #e5edf6 !important; }
      main .contents .table > table .color4 {
        background: #ccdcec !important; }
      main .contents .table > table .color5 {
        background: #f2f2f2 !important; }
      main .contents .table > table .color6 {
        background: #e6e6e6 !important; }
      main .contents .table > table .space {
        background: transparent !important; }
      main .contents .table > table .border {
        border: 1px solid #fff; }
      main .contents .table > table .nb_top {
        border-top: none !important; }
      main .contents .table > table .nb_bottom {
        border-bottom: none !important; }
      main .contents .table > table .nb_right {
        border-right: none !important; }
      main .contents .table > table .b_right {
        border-right: 3px double #fff !important; }
      main .contents .table > table .nowrap {
        white-space: nowrap; }
        .sp main .contents .table > table .nowrap {
          white-space: normal; }
      main .contents .table > table .line {
        white-space: nowrap; }
      main .contents .table > table .change {
        position: relative; }
        main .contents .table > table .change:after {
          position: absolute;
          display: block;
          content: "";
          left: 50%;
          top: 50%;
          margin-top: -15px;
          margin-left: -9px;
          border: 15px solid transparent;
          border-left: 18px solid #5c83b4;
          border-right: 0px; }
      main .contents .table > table .recruitarrow {
        position: relative;
        vertical-align: middle;
        overflow: visible; }
        main .contents .table > table .recruitarrow div {
          position: absolute;
          padding: 4px 10px 6px;
          font-size: 14px;
          font-size: 0.875rem;
          line-height: 16.8px;
          line-height: 1.05rem;
          color: #ffffff;
          white-space: nowrap;
          background: #5c83b4;
          z-index: 10;
          -webkit-transform: translate(-11px, -50%);
          transform: translate(-11px, -50%);
          text-shadow: -1px -1px 0px #5c83b4, 1px -1px 0px #5c83b4, -1px 1px 0px #5c83b4, 1px 1px 0px #5c83b4; }
          .sp main .contents .table > table .recruitarrow div {
            font-size: 11.2px;
            font-size: 0.7rem;
            line-height: 13.44px;
            line-height: 0.84rem; }
          main .contents .table > table .recruitarrow div span {
            position: relative;
            z-index: 5; }
          main .contents .table > table .recruitarrow div:after {
            position: absolute;
            display: block;
            content: "";
            right: -18px;
            top: 50%;
            margin-top: -20px;
            border: 20px solid transparent;
            border-left: 18px solid #5c83b4;
            border-right: 0px;
            z-index: 0; }
      main .contents .table > table .recruitborder:before {
        position: absolute;
        display: block;
        content: "";
        width: 0px;
        height: 3000px;
        left: 1px;
        top: 0px;
        border-left: 1px dashed #ffffff; }
    main .contents .table > p {
      font-size: 14px;
      font-size: 0.875rem;
      line-height: 23.8px;
      line-height: 1.4875rem; }
      .sp main .contents .table > p {
        font-size: 11.9px;
        font-size: 0.74375rem;
        line-height: 20.23px;
        line-height: 1.26438rem; }
      main .contents .table > p.right {
        text-align: right; }
    main .contents .table > * + p {
      margin-top: 8px; }
    main .contents .table > p + table {
      margin-top: 8px; }
  main .contents .format > table {
    width: 100%;
    width: calc(100% - 2px);
    border-collapse: collapse;
    border-spacing: 0;
    empty-cells: show;
    border-top: 1px solid #808080;
    border-left: 1px solid #808080;
    border-bottom: 1px solid #808080;
    empty-cells: show; }
    .sp main .contents .format > table {
      border: none; }
    main .contents .format > table tr:last-child th {
      border-bottom: none; }
    main .contents .format > table th {
      padding: 20px 16px;
      vertical-align: top;
      text-align: center;
      color: #fff;
      background: #808080;
      border-bottom: 1px solid #fff; }
      .sp main .contents .format > table th {
        text-align: left; }
    main .contents .format > table td {
      padding: 16px;
      vertical-align: middle;
      text-align: left;
      font-size: 16px;
      font-size: 1rem;
      line-height: 27.2px;
      line-height: 1.7rem;
      font-weight: normal;
      color: #000000;
      border-right: 1px solid #808080;
      border-bottom: 1px solid #808080; }
    .sp main .contents .format > table {
      display: block; }
      .sp main .contents .format > table tbody {
        display: block; }
      .sp main .contents .format > table tr {
        display: block; }
      .sp main .contents .format > table th {
        display: block;
        width: auto;
        padding: 0px;
        font-size: 14px;
        font-size: 0.875rem;
        line-height: 23.8px;
        line-height: 1.4875rem;
        color: #000000;
        background: none;
        border: none; }
      .sp main .contents .format > table td {
        display: block;
        width: auto;
        padding: 0px;
        margin-bottom: 20px;
        font-size: 14px;
        font-size: 0.875rem;
        line-height: 23.8px;
        line-height: 1.4875rem;
        border: none; }
    main .contents .format > table.history_table td:first-child {
      padding-left: 0; }
  main .contents .form {
    margin-top: 32px !important;
    /*
    		button {
    			position: relative;
    			display: inline-block;
    			width: 180px;
    			max-width: calc((100% - 15px) / 2);
    			padding: $margin_base*2 $margin_base*5;
    			@include fontsize($fs7);
    			color: $color_link;
    			text-align: center;
    			background: #ffffff;
    			border: 1px solid $color_link;
    			cursor: pointer;
    			@include hover;
    
    			&:before {
    				content: "";
    				position: absolute;
    				display: block;
    				width: 7px;
    				height: 2px;
    				right: 0px;
    				top: 50%;
    				margin-top: -1px;
    				background: $color_link;
    			}
    
    			&.back {
    				color: #646464;
    				border: 1px solid #646464;
    
    				&:before {
    					background: #646464;
    				}
    			}
    		}
    
    		button[type="reset"] {
    			color: #646464;
    			border: 1px solid #646464;
    
    			&:before {
    				background: #646464;
    			}
    		}
    */ }
    main .contents .form h3 {
      margin-bottom: 20px; }
    main .contents .form form {
      margin: 0px;
      padding: 0px; }
    main .contents .form input.name {
      width: 40% !important; }
    main .contents .form .required {
      color: #ed1c24;
      margin-left: 4px; }
    main .contents .form table {
      border-collapse: collapse;
      width: 100%; }
      main .contents .form table.confirm th {
        padding-top: 0px; }
        .sp main .contents .form table.confirm th {
          padding-top: 10px; }
      main .contents .form table.confirm td {
        padding-top: 0px; }
        .sp main .contents .form table.confirm td.required {
          display: none; }
      .sp main .contents .form table {
        display: block; }
      .sp main .contents .form table tbody, .sp
      main .contents .form table tr {
        position: relative;
        display: block; }
      main .contents .form table th {
        width: 16rem;
        padding: 24px 20px 25px 0px;
        font-weight: bold;
        vertical-align: top;
        text-align: left;
        font-size: 16px;
        font-size: 1rem;
        line-height: 20.8px;
        line-height: 1.3rem; }
        main .contents .form table th span {
          margin-left: 3px;
          color: #ff0000; }
        .sp main .contents .form table th {
          display: block;
          width: auto;
          float: left;
          padding-top: 10px;
          padding-right: 10px;
          padding-bottom: 0px;
          font-size: 14px;
          font-size: 0.875rem;
          line-height: 18.2px;
          line-height: 1.1375rem; }
      main .contents .form table td {
        padding-top: 16px;
        padding-bottom: 25px;
        vertical-align: top;
        text-align: left;
        font-size: 16px;
        font-size: 1rem;
        line-height: 20.8px;
        line-height: 1.3rem;
        word-break: break-all; }
        .sp main .contents .form table td {
          clear: both;
          display: block;
          padding-top: 10px;
          padding-bottom: 15px;
          font-size: 14px;
          font-size: 0.875rem;
          line-height: 18.2px;
          line-height: 1.1375rem; }
        main .contents .form table td.required {
          width: 5rem;
          padding-top: 18px;
          padding-right: 20px;
          color: #ffffff; }
          main .contents .form table td.required span {
            display: block;
            margin-left: 0px;
            padding: 6px 8px;
            text-align: center;
            font-size: 12px;
            font-size: 0.75rem;
            line-height: 15.6px;
            line-height: 0.975rem;
            color: #ed1c24;
            border: 1px solid #ed1c24; }
          .sp main .contents .form table td.required {
            clear: none;
            float: right;
            padding: 0px;
            margin-top: 10px; }
            .sp main .contents .form table td.required span {
              margin-top: 0px; }
        main .contents .form table td span {
          display: inline-block; }
          main .contents .form table td span.label {
            position: absolute;
            width: 4em;
            margin-left: 10px;
            padding-top: 10px;
            font-size: 12px;
            font-size: 0.75rem;
            line-height: 15.6px;
            line-height: 0.975rem;
            color: #646464;
            pointer-events: none; }
      main .contents .form table tr:last-child > * {
        padding-bottom: 0px; }
      .sp main .contents .form table tr:last-child > th {
        padding-bottom: 10px; }
    main .contents .form textarea {
      width: 100%;
      height: 160px;
      padding: 8px 16px;
      font-size: 16px;
      font-size: 1rem;
      line-height: 20.8px;
      line-height: 1.3rem;
      border: 1px solid #aeb1c2; }
      main .contents .form textarea[required] {
        background: rgba(237, 28, 36, 0.15); }
        main .contents .form textarea[required].inputed {
          background: #fff; }
    main .contents .form input[type="text"], main .contents .form input[type="email"], main .contents .form input[type="tel"], main .contents .form input[type="url"] {
      width: 100%;
      height: 34px;
      padding: 0px 16px;
      font-size: 16px;
      font-size: 1rem;
      line-height: 32px;
      border: 1px solid #aeb1c2; }
      main .contents .form input[type="text"].withlabel, main .contents .form input[type="email"].withlabel, main .contents .form input[type="tel"].withlabel, main .contents .form input[type="url"].withlabel {
        padding-left: 4rem; }
      main .contents .form input[type="text"][required], main .contents .form input[type="email"][required], main .contents .form input[type="tel"][required], main .contents .form input[type="url"][required] {
        background: rgba(237, 28, 36, 0.1); }
        main .contents .form input[type="text"][required].inputed, main .contents .form input[type="email"][required].inputed, main .contents .form input[type="tel"][required].inputed, main .contents .form input[type="url"][required].inputed {
          background: #fff; }
      main .contents .form input[type="text"][data-input="zenkaku"], main .contents .form input[type="email"][data-input="zenkaku"], main .contents .form input[type="tel"][data-input="zenkaku"], main .contents .form input[type="url"][data-input="zenkaku"] {
        ime-mode: active; }
      main .contents .form input[type="text"][data-input="hankaku"], main .contents .form input[type="email"][data-input="hankaku"], main .contents .form input[type="tel"][data-input="hankaku"], main .contents .form input[type="url"][data-input="hankaku"] {
        ime-mode: disabled; }
    main .contents .form br + input[type="text"], main .contents .form br + input[type="email"], main .contents .form br + input[type="tel"], main .contents .form br + input[type="url"] {
      margin-top: 20px; }
    main .contents .form .select {
      position: relative;
      width: 400px; }
      .sp main .contents .form .select {
        width: 100%; }
      main .contents .form .select:before {
        content: "";
        position: absolute;
        background: #0050a0;
        height: 45px;
        width: 45px;
        right: 0;
        top: 0;
        pointer-events: none; }
      main .contents .form .select:after {
        content: "";
        position: absolute;
        width: 0;
        height: 0;
        right: 12px;
        top: 16px;
        border-style: solid;
        border-width: 15px 10px 0 10px;
        border-color: #ffffff transparent transparent transparent;
        pointer-events: none; }
    main .contents .form select {
      width: 100%;
      height: 45px;
      padding: 0px 16px;
      font-size: 16px;
      font-size: 1rem;
      line-height: 32px;
      border: 1px solid #aeb1c2;
      -webkit-appearance: none;
      -moz-appearance: none;
      appearance: none; }
    main .contents .form .side {
      margin: 0px -5px -10px -25px; }
      main .contents .form .side.center {
        text-align: center; }
      main .contents .form .side li {
        display: inline-block;
        margin-left: 25px;
        margin-bottom: 10px;
        min-width: 200px; }
        main .contents .form .side li:before {
          display: none; }
      main .contents .form .side + p {
        margin-top: 20px; }
    main .contents .form .box .side {
      padding-top: 10px; }
      main .contents .form .box .side li {
        min-width: 0px; }
    main .contents .form .note {
      margin-top: 8px;
      font-size: 14px;
      font-size: 0.875rem;
      line-height: 18.2px;
      line-height: 1.1375rem; }
    main .contents .form label {
      position: relative;
      display: block;
      padding: 4px 0px 4px 25px;
      font-size: 16px;
      font-size: 1rem;
      line-height: 20.8px;
      line-height: 1.3rem;
      cursor: pointer; }
      .sp main .contents .form label {
        font-size: 14px;
        font-size: 0.875rem;
        line-height: 18.2px;
        line-height: 1.1375rem; }
      main .contents .form label input[type="radio"], main .contents .form label input[type="checkbox"] {
        position: absolute;
        opacity: 0;
        top: 6px;
        left: 0px; }
      main .contents .form label input[type="radio"]:focus + span:before, main .contents .form label input[type="checkbox"]:focus + span:before {
        -webkit-transform: scale(1.2);
        transform: scale(1.2); }
      main .contents .form label input[type="radio"] + span:before {
        content: "";
        display: block;
        position: absolute;
        width: 0px;
        height: 0px;
        top: 50%;
        left: 0px;
        margin-top: -8px;
        background: #ffffff;
        border: 8px solid #aeb1c2;
        border-radius: 50%;
        -webkit-transition: 200ms;
        transition: 200ms; }
      main .contents .form label input[type="radio"]:checked + span:before {
        width: 6px;
        height: 6px;
        background: #ffffff;
        border: 5px solid #0050a0; }
      main .contents .form label input[type="checkbox"] + span:before {
        content: "";
        display: block;
        position: absolute;
        width: 16px;
        height: 16px;
        top: 50%;
        left: 0px;
        margin-top: -8px;
        background: #aeb1c2;
        border-radius: 5px;
        -webkit-transition: 200ms;
        transition: 200ms; }
      main .contents .form label input[type="checkbox"]:checked + span:before {
        background-color: #5c83b4; }
      main .contents .form label input[type="checkbox"] + span:after {
        content: "";
        display: block;
        position: absolute;
        width: 16px;
        height: 16px;
        top: 50%;
        left: 0px;
        margin-top: -8px;
        background: url(../images/check.svg) no-repeat center center;
        background-size: 100% auto;
        -webkit-transform: scale(0);
        transform: scale(0);
        -webkit-transition: 200ms;
        transition: 200ms; }
      main .contents .form label input[type="checkbox"]:checked + span:after {
        -webkit-transform: scale(1);
        transform: scale(1); }
    main .contents .form tr.formbutton td,
    main .contents .form div.formbutton {
      padding-top: 60px; }
      main .contents .form tr.formbutton td button + button,
      main .contents .form div.formbutton button + button {
        margin-left: 10px; }
  main .contents .menu {
    margin-left: -20px;
    margin-right: -25px;
    overflow: hidden; }
    .sp main .contents .menu {
      margin-left: -10px;
      margin-right: -15px; }
    main .contents .menu > div {
      float: left;
      width: calc((100% - 5px) / 4);
      font-size: 16px;
      font-size: 1rem;
      line-height: 20.8px;
      line-height: 1.3rem;
      font-weight: bold;
      vertical-align: top; }
      .sp main .contents .menu > div {
        width: calc((100% - 5px) / 2);
        font-size: 14px;
        font-size: 0.875rem;
        line-height: 18.2px;
        line-height: 1.1375rem; }
      main .contents .menu > div a {
        display: block;
        padding-bottom: 20px;
        color: #000000;
        text-align: center;
        -webkit-transition: opacity 0.2s, background 0.2s;
        transition: opacity 0.2s, background 0.2s;
        cursor: pointer; }
        main .contents .menu > div a:hover {
          opacity: 0.7; }
        main .contents .menu > div a .image {
          position: relative;
          display: block;
          width: 100%;
          height: 300px;
          overflow: hidden; }
          .sp main .contents .menu > div a .image {
            height: 150px; }
          main .contents .menu > div a .image img {
            position: absolute;
            width: auto;
            max-width: none;
            height: auto;
            min-height: 100%;
            max-height: 300px;
            left: 50%;
            top: 50%;
            -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%); }
            .sp main .contents .menu > div a .image img {
              width: 50vw;
              min-width: 240px; }
        main .contents .menu > div a .title {
          display: block;
          margin-top: 20px; }
          .sp main .contents .menu > div a .title {
            margin-top: 10px; }
    main .contents .menu.col2 > div {
      width: calc((100% - 5px) / 2); }
    main .contents .menu.col3 > div {
      width: calc((100% - 5px) / 3); }
  main .contents .boxmenu a {
    position: relative;
    display: block;
    max-width: 960px;
    height: 300px;
    margin: auto;
    background: #5c83b4;
    -webkit-transition: opacity 0.2s, background 0.2s;
    transition: opacity 0.2s, background 0.2s;
    cursor: pointer; }
    main .contents .boxmenu a:hover {
      opacity: 0.7; }
    .sp main .contents .boxmenu a {
      height: 150px; }
    main .contents .boxmenu a .image {
      position: absolute;
      width: 50%;
      height: 300px;
      right: 0px;
      overflow: hidden; }
      .sp main .contents .boxmenu a .image {
        width: 33%;
        height: 150px; }
      main .contents .boxmenu a .image img {
        position: absolute;
        width: auto;
        max-width: none;
        height: 300px;
        left: 50%;
        -webkit-transform: translateX(-50%);
        transform: translateX(-50%); }
        .sp main .contents .boxmenu a .image img {
          height: 180px; }
          .sp main .contents .boxmenu a .image img.no01 {
            left: auto;
            right: -30px;
            -webkit-transform: none;
            transform: none; }
          .sp main .contents .boxmenu a .image img.no02 {
            left: -60px;
            height: 190px;
            -webkit-transform: none;
            transform: none; }
    main .contents .boxmenu a .text {
      position: relative;
      display: block;
      width: 50%;
      height: 300px;
      margin: 0px !important;
      padding: 40px;
      color: #ffffff; }
      .sp main .contents .boxmenu a .text {
        width: 65%;
        height: 150px;
        padding: 10px; }
      main .contents .boxmenu a .text .title {
        display: block;
        font-size: 16px;
        font-size: 1rem;
        line-height: 20.8px;
        line-height: 1.3rem;
        font-weight: bold; }
        .sp main .contents .boxmenu a .text .title {
          font-size: 16px;
          font-size: 1rem;
          line-height: 20.8px;
          line-height: 1.3rem; }
      main .contents .boxmenu a .text .option {
        display: block;
        margin-top: 40px;
        font-size: 16px;
        font-size: 1rem;
        line-height: 20.8px;
        line-height: 1.3rem; }
        .sp main .contents .boxmenu a .text .option {
          margin-top: 15px;
          font-size: 14px;
          font-size: 0.875rem;
          line-height: 18.2px;
          line-height: 1.1375rem; }
      main .contents .boxmenu a .text .more {
        position: absolute;
        display: block;
        right: 40px;
        bottom: 40px;
        font-size: 14px;
        font-size: 0.875rem;
        line-height: 15.4px;
        line-height: 0.9625rem;
        color: #ffffff; }
        .sp main .contents .boxmenu a .text .more {
          right: 10px;
          bottom: 10px; }
        main .contents .boxmenu a .text .more:after {
          content: "";
          display: inline-block;
          width: 20px;
          height: 20px;
          margin-left: 8px;
          background: url(../images/moreicon2.svg) no-repeat center center #ffffff;
          background-size: auto 50%;
          vertical-align: middle;
          border-radius: 50%; }
  main .contents .box {
    padding: 20px;
    border: 1px solid #aeb1c2; }
    .sp main .contents .box {
      padding: 10px; }
  main .contents .googlemap {
    position: relative;
    padding-top: 50%; }
    .sp main .contents .googlemap {
      padding-top: 75%; }
    main .contents .googlemap iframe {
      position: absolute;
      width: 100%;
      height: 100%;
      top: 0px;
      -webkit-transition: opacity 400ms;
      transition: opacity 400ms; }
    main .contents .googlemap.googlemapview {
      background: url(../images/loading.gif) no-repeat center center; }
      main .contents .googlemap.googlemapview iframe {
        position: fixed;
        top: 90vh;
        opacity: 0;
        -webkit-transition: opacity 0ms;
        transition: opacity 0ms; }
  main .contents .youtube {
    max-width: 640px;
    margin: auto; }
    main .contents .youtube > div {
      position: relative;
      padding-top: 56.25%; }
      main .contents .youtube > div > iframe {
        position: absolute;
        width: 100%;
        height: 100%;
        top: 0px; }
    main .contents .youtube p {
      margin: auto;
      font-size: 14px;
      font-size: 0.875rem;
      line-height: 18.2px;
      line-height: 1.1375rem; }
      * + main .contents .youtube p {
        margin-top: 8px; }
  main .contents .member_list {
    display: table;
    width: 100%; }
    main .contents .member_list > * {
      display: table-cell;
      height: 100%;
      text-align: left;
      vertical-align: top; }
    .sp main .contents .member_list {
      display: block; }
    .sp main .contents .member_list > * {
      display: block; }
    main .contents .member_list > *.img {
      position: relative;
      width: 200px; }
      .sp main .contents .member_list > *.img {
        margin: 0 auto;
        text-align: center; }
      main .contents .member_list > *.img .front {
        position: absolute;
        left: 0;
        top: 0;
        display: none; }
      main .contents .member_list > *.img img {
        width: 100%; }
        .sp main .contents .member_list > *.img img {
          width: auto;
          max-width: 100%;
          text-align: center; }
    main .contents .member_list > *.img + .tx {
      padding-left: 20px; }
      .sp main .contents .member_list > *.img + .tx {
        padding-left: 0px; }
    main .contents .member_list > *.tx {
      width: calc(100% - 200px); }
      .sp main .contents .member_list > *.tx {
        width: auto;
        margin-top: 20px; }
      main .contents .member_list > *.tx .name {
        font-size: 24px;
        font-size: 1.5rem;
        line-height: 24px;
        line-height: 1.5rem;
        padding-bottom: 15px;
        border-bottom: 1px solid #ccc; }
        .sp main .contents .member_list > *.tx .name {
          font-size: 22px;
          font-size: 1.375rem;
          line-height: 22px;
          line-height: 1.375rem; }
      main .contents .member_list > *.tx .label {
        display: table;
        margin-top: 10px; }
        main .contents .member_list > *.tx .label > * {
          display: table-cell;
          line-height: 1.5; }
          main .contents .member_list > *.tx .label > *:first-child {
            min-width: 80px; }
      main .contents .member_list > *.tx .name + .label {
        margin-top: 25px; }
        .sp main .contents .member_list > *.tx .name + .label {
          margin-top: 15px; }
    main .contents .member_list + .member_list {
      margin-top: 40px; }
  main .contents .member_list2:after {
    content: "";
    display: block;
    clear: both; }
  .sp main .contents .member_list2 {
    display: none; }
  main .contents .member_list2 > .list {
    width: 33%;
    float: left;
    text-align: center;
    padding: 0 20px;
    margin-bottom: 50px; }
    main .contents .member_list2 > .list .img {
      position: relative;
      width: 80%;
      margin: 0 auto; }
      .sp main .contents .member_list2 > .list .img {
        margin: 0 auto;
        text-align: center; }
      main .contents .member_list2 > .list .img .front {
        position: absolute;
        left: 0;
        top: 0;
        display: none; }
      main .contents .member_list2 > .list .img img {
        width: 100%; }
        .sp main .contents .member_list2 > .list .img img {
          width: auto;
          max-width: 100%;
          text-align: center; }
    main .contents .member_list2 > .list .name {
      margin-top: 15px;
      padding-bottom: 15px;
      font-size: 20px;
      font-size: 1.25rem;
      line-height: 22px;
      line-height: 1.375rem;
      border-bottom: 1px solid #aaa; }
  main .contents .member_list_sp {
    display: none; }
    .sp main .contents .member_list_sp {
      display: block; }
    main .contents .member_list_sp > .list {
      border-bottom: 1px solid #aaa; }
      main .contents .member_list_sp > .list + .list {
        margin-top: 40px; }
      main .contents .member_list_sp > .list .img {
        position: relative;
        width: 200px;
        margin: 0 auto; }
        .sp main .contents .member_list_sp > .list .img {
          margin: 0 auto;
          text-align: center; }
        main .contents .member_list_sp > .list .img .front {
          position: absolute;
          left: 0;
          top: 0;
          display: none; }
        main .contents .member_list_sp > .list .img img {
          width: 200px; }
          .sp main .contents .member_list_sp > .list .img img {
            width: auto;
            max-width: 100%;
            text-align: center; }
      main .contents .member_list_sp > .list .name {
        margin-top: 15px;
        padding-bottom: 15px;
        font-size: 20px;
        font-size: 1.25rem;
        line-height: 22px;
        line-height: 1.375rem;
        text-align: center; }
      main .contents .member_list_sp > .list .tx {
        display: none;
        padding-bottom: 15px; }
  main .contents .productlink {
    text-align: center; }
    main .contents .productlink a {
      position: relative;
      display: inline-block;
      max-width: 100%;
      -webkit-transition: opacity 0.2s, background 0.2s;
      transition: opacity 0.2s, background 0.2s;
      cursor: pointer; }
      main .contents .productlink a:hover {
        opacity: 0.7; }
      main .contents .productlink a + a {
        margin-top: 20px; }
      main .contents .productlink a .image {
        display: block; }
      main .contents .productlink a .text {
        position: absolute;
        margin-top: 0px;
        padding: 5px 10px;
        color: #000;
        z-index: 15;
        font-size: 16px;
        font-size: 1rem;
        line-height: 20.8px;
        line-height: 1.3rem;
        display: inline-block;
        width: auto;
        top: auto;
        left: 0;
        bottom: 0;
        text-align: left;
        background: rgba(250, 250, 250, 0.7);
        -webkit-transform: none;
        transform: none;
        text-shadow: none; }
  main .contents .categorymenu {
    margin-top: 40px !important; }
    main .contents .categorymenu div {
      padding: 20px;
      width: 100%;
      border: 4px solid #ececec; }
      .sp main .contents .categorymenu div {
        padding: 0;
        border: none; }
      main .contents .categorymenu div .title {
        text-align: center;
        margin-bottom: 10px;
        font-size: 18px;
        font-size: 1.125rem;
        line-height: 30.6px;
        line-height: 1.9125rem; }
        .sp main .contents .categorymenu div .title {
          display: none; }
    main .contents .categorymenu a.spmenu {
      display: none; }
      .sp main .contents .categorymenu a.spmenu {
        position: relative;
        display: block;
        padding: 10px;
        height: 50px;
        line-height: 25px;
        border: 1px solid #ececec;
        text-decoration: none; }
        .sp main .contents .categorymenu a.spmenu:before {
          content: "";
          position: absolute;
          background: #0050a0;
          height: 40px;
          width: 40px;
          right: 5px;
          top: 3px;
          pointer-events: none;
          box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.5); }
        .sp main .contents .categorymenu a.spmenu:after {
          content: "";
          position: absolute;
          width: 0;
          height: 0;
          right: 16px;
          top: 18px;
          border-style: solid;
          border-width: 12px 8px 0 8px;
          border-color: #ffffff transparent transparent transparent;
          pointer-events: none; }
        .sp main .contents .categorymenu a.spmenu.open:after {
          border-width: 0 8px 12px 8px;
          border-color: transparent transparent #ffffff transparent; }
    main .contents .categorymenu ul {
      text-align: center; }
      .sp main .contents .categorymenu ul {
        display: none; }
      main .contents .categorymenu ul li {
        display: inline-block;
        padding: 0 10px;
        font-size: 16px;
        font-size: 1rem;
        line-height: 32px;
        line-height: 2rem; }
        .sp main .contents .categorymenu ul li {
          display: block;
          padding: 0; }
        .sp main .contents .categorymenu ul li a {
          display: block;
          width: 100%;
          padding: 10px;
          text-align: left;
          border: 1px solid #ececec;
          text-decoration: none; }
        main .contents .categorymenu ul li.current a {
          color: #0050a0; }
  main .contents div.item_index:after {
    content: "";
    display: block;
    clear: both; }
  main .contents div.item_index > div {
    float: left;
    width: calc((100% - 41px) / 3);
    margin-right: 20px;
    margin-bottom: 20px;
    -webkit-transition: 0.5s;
    transition: 0.5s;
    box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.3);
    cursor: pointer;
    position: relative;
    top: 0px; }
    main .contents div.item_index > div:hover {
      top: -10px;
      box-shadow: 9px 9px 9px rgba(0, 0, 0, 0.4); }
      .tablet main .contents div.item_index > div:hover {
        top: 0;
        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.3); }
    .sp main .contents div.item_index > div {
      width: calc((100% - 10px) / 2);
      margin-right: 10px;
      margin-bottom: 10px; }
    main .contents div.item_index > div:nth-of-type(3n) {
      margin-right: 0; }
      .sp main .contents div.item_index > div:nth-of-type(3n) {
        margin-right: 10px; }
    .sp main .contents div.item_index > div:nth-of-type(2n) {
      margin-right: 0; }
    main .contents div.item_index > div > a {
      display: block;
      position: relative;
      width: 100%;
      -webkit-transition: opacity 0.2s, background 0.2s;
      transition: opacity 0.2s, background 0.2s;
      cursor: pointer;
      text-decoration: none; }
      main .contents div.item_index > div > a:hover {
        opacity: 0.7; }
      main .contents div.item_index > div > a > img {
        display: block;
        width: 100%;
        max-width: none; }
      main .contents div.item_index > div > a > span {
        position: absolute;
        display: block;
        width: 100%;
        padding: 0.5em 5px;
        bottom: -1px;
        vertical-align: middle;
        text-align: center;
        color: #fff;
        background: #0050a0;
        font-size: 16px;
        font-size: 1rem;
        line-height: 24px;
        line-height: 1.5rem;
        font-weight: bold; }
        .sp main .contents div.item_index > div > a > span {
          font-size: 12px;
          font-size: 0.75rem;
          line-height: 15.6px;
          line-height: 0.975rem; }
    main .contents div.item_index > div.single > a > span {
      position: static;
      padding: 2em 5px; }
      .sp main .contents div.item_index > div.single > a > span {
        padding: 1em 5px; }
    .sp main .contents div.item_index > div.spcol1 {
      width: 100%;
      margin-left: 0; }
  main .contents div.item_index2:after {
    content: "";
    display: block;
    clear: both; }
  main .contents div.item_index2 > div {
    float: left;
    width: calc((100% - 20px) / 2);
    margin-left: 20px;
    margin-bottom: 20px;
    -webkit-transition: 0.5s;
    transition: 0.5s;
    box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.3);
    cursor: pointer;
    position: relative;
    top: 0px; }
    main .contents div.item_index2 > div:hover {
      top: -10px;
      box-shadow: 9px 9px 9px rgba(0, 0, 0, 0.4); }
      .tablet main .contents div.item_index2 > div:hover {
        top: 0;
        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.3); }
    .sp main .contents div.item_index2 > div {
      width: calc((100% - 11px) / 2);
      margin-left: 10px;
      margin-bottom: 10px; }
    main .contents div.item_index2 > div:nth-of-type(2n+1) {
      margin-left: 0; }
    main .contents div.item_index2 > div > a {
      display: block;
      position: relative;
      width: 100%;
      -webkit-transition: opacity 0.2s, background 0.2s;
      transition: opacity 0.2s, background 0.2s;
      cursor: pointer;
      text-decoration: none; }
      main .contents div.item_index2 > div > a:hover {
        opacity: 0.7; }
      main .contents div.item_index2 > div > a > img {
        display: block;
        width: 100%;
        max-width: none; }
      main .contents div.item_index2 > div > a > span {
        position: absolute;
        display: block;
        width: 100%;
        padding: 0.5em 5px;
        bottom: -1px;
        vertical-align: middle;
        text-align: center;
        color: #fff;
        background: #0050a0;
        font-size: 16px;
        font-size: 1rem;
        line-height: 24px;
        line-height: 1.5rem;
        font-weight: bold; }
        .sp main .contents div.item_index2 > div > a > span {
          font-size: 14px;
          font-size: 0.875rem;
          line-height: 21px;
          line-height: 1.3125rem; }
    main .contents div.item_index2 > div.single > a > span {
      position: static;
      padding: 2em 5px; }
      .sp main .contents div.item_index2 > div.single > a > span {
        padding: 1em 5px; }
    .sp main .contents div.item_index2 > div.spcol1 {
      width: 100%;
      margin-left: 0; }
  main .contents .qa .que {
    position: relative;
    padding-left: 3em; }
    main .contents .qa .que:before {
      content: "Q.";
      position: absolute;
      display: block;
      top: 0;
      left: 0;
      width: 1.3em;
      height: 1.5em;
      font-size: 20px;
      font-size: 1.25rem;
      line-height: 24px;
      line-height: 1.5rem;
      line-height: 1.5em;
      text-align: center;
      color: #0050a0;
      border: 1px solid #0050a0;
      padding-left: 0.2em; }
  main .contents .qa .ans {
    position: relative;
    margin-top: 20px;
    padding-left: 3em; }
    main .contents .qa .ans:before {
      content: "A.";
      position: absolute;
      display: block;
      top: 0;
      left: 0;
      width: 1.3em;
      height: 1.5em;
      padding-left: 0.2em;
      font-size: 20px;
      font-size: 1.25rem;
      line-height: 24px;
      line-height: 1.5rem;
      line-height: 1.5em;
      text-align: center;
      color: #5c83b4;
      border: 1px solid #5c83b4; }

.error_mes {
  margin-top: 20px;
  color: #f00;
  line-height: 1.5; }

#fs-result-items {
  margin-top: 30px; }
  #fs-result-items li + li {
    margin-top: 25px; }
  #fs-result-items a {
    color: #000000;
    font-size: 16px;
    font-size: 1rem;
    line-height: 27.2px;
    line-height: 1.7rem; }
    #fs-result-items a:visited {
      color: #000000; }
  #fs-result-items p {
    margin-top: 5px;
    line-height: 1.5; }

#fs-result .fs-paginate {
  margin-top: 30px; }
  #fs-result .fs-paginate li {
    display: inline-block;
    font-size: 16px;
    margin-right: 10px; }
    #fs-result .fs-paginate li.fs-current a {
      color: #000; }

.sp .aruaru_btn {
  display: none; }
.aruaru_btn > ul {
  margin-top: 20px; }
  .aruaru_btn > ul:after {
    content: "";
    display: block;
    clear: both; }
  .aruaru_btn > ul li {
    float: left;
    width: 23.5%; }
    .aruaru_btn > ul li + li {
      margin-left: 2%; }
    .aruaru_btn > ul li a {
      position: relative;
      display: block;
      padding: 8px 20px;
      font-size: 14px;
      font-size: 0.875rem;
      line-height: 15.4px;
      line-height: 0.9625rem;
      color: #000000;
      text-align: center;
      background: #ffffff;
      border: 1px solid #000000;
      cursor: pointer;
      -webkit-transition: opacity 0.2s, background 0.2s;
      transition: opacity 0.2s, background 0.2s;
      cursor: pointer; }
      .aruaru_btn > ul li a:hover {
        opacity: 0.7; }
      .sp .aruaru_btn > ul li a {
        width: 100%; }
      .aruaru_btn > ul li a:before {
        content: "";
        position: absolute;
        display: block;
        width: 7px;
        height: 2px;
        right: 0px;
        top: 50%;
        margin-top: -1px;
        background: #000000; }
      .aruaru_btn > ul li a.center {
        text-align: center; }
      .aruaru_btn > ul li a.btn01.ac {
        background: #000000;
        color: #fff; }
      .aruaru_btn > ul li a.btn02 {
        border: 1px solid #9269a1;
        color: #9269a1; }
        .aruaru_btn > ul li a.btn02:before {
          background: #9269a1; }
        .aruaru_btn > ul li a.btn02.ac {
          background: #9269a1;
          color: #fff; }
      .aruaru_btn > ul li a.btn03 {
        border: 1px solid #e44e43;
        color: #e44e43; }
        .aruaru_btn > ul li a.btn03:before {
          background: #e44e43; }
        .aruaru_btn > ul li a.btn03.ac {
          background: #e44e43;
          color: #fff; }
      .aruaru_btn > ul li a.btn04 {
        border: 1px solid #218ea9;
        color: #218ea9; }
        .aruaru_btn > ul li a.btn04:before {
          background: #218ea9; }
        .aruaru_btn > ul li a.btn04.ac {
          background: #218ea9;
          color: #fff; }

.aruaru_image {
  margin-top: 20px;
  position: relative; }
  .sp .aruaru_image {
    display: none; }
  .aruaru_image > div {
    width: 100%;
    position: absolute;
    left: 0;
    top: 0; }
  .aruaru_image > .first {
    width: 100%;
    height: 100%; }
    .aruaru_image > .first img {
      display: none;
      position: absolute;
      left: 0;
      top: 0; }
  .aruaru_image img {
    max-width: 100%;
    height: auto; }
  .aruaru_image .layer > div {
    display: none; }

.aruaru_sp {
  margin-top: 15px; }
  .aruaru_sp h4 {
    padding-bottom: 5px !important;
    border-bottom: 1px solid #aeb1c2; }

.pop_label {
  display: table; }
  .pop_label + .pop_label {
    margin-top: 5px; }
  .pop_label > * {
    display: table-cell;
    line-height: 1.5; }
    .pop_label > *:first-child {
      min-width: 80px; }

.loading * {
  -webkit-transition: 0ms !important;
  transition: 0ms !important; }

.popup {
  position: relative;
  opacity: 0;
  -webkit-transform: translateY(20%);
  transform: translateY(20%); }
  .sp .popup {
    -webkit-transition: opacity 0ms, -webkit-transform 0ms;
    transition: opacity 0ms, transform 0ms;
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0); }
  .popup.view {
    -webkit-transition: opacity 600ms, -webkit-transform 1200ms;
    transition: opacity 600ms, transform 1200ms;
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0); }

.company_index {
  display: table;
  width: 100%;
  margin: 0px -20px;
  width: calc(100% + 40px); }
  .company_index > * {
    display: table-cell;
    height: 100%;
    text-align: left;
    vertical-align: top; }
  .sp .company_index {
    display: block; }
  .company_index > * {
    width: 50%;
    position: relative;
    height: 400px;
    background: none no-repeat center top;
    background-size: cover;
    -webkit-transition: opacity 0.2s, background 0.2s;
    transition: opacity 0.2s, background 0.2s;
    cursor: pointer; }
    .company_index > *:hover {
      opacity: 0.9; }
    .sp .company_index > * {
      width: 100%;
      height: 200px;
      display: block; }
  .sp .company_index .message {
    background-position: 45% top;
    background-size: cover; }
  .company_index .message a {
    position: relative;
    display: block;
    width: 100%;
    height: 100%; }
    .company_index .message a > span {
      position: absolute;
      left: 58%;
      top: 50%;
      font-size: 36px;
      font-size: 2.25rem;
      line-height: 61.2px;
      line-height: 3.825rem;
      font-weight: bold;
      color: #ffffff;
      -webkit-transform: translateY(-50%);
      transform: translateY(-50%);
      padding-left: 20px; }
      .pc .company_index .message a > span {
        left: 55%;
        font-size: 36px;
        font-size: 2.25rem;
        line-height: 61.2px;
        line-height: 3.825rem; }
      .sp .company_index .message a > span {
        left: 55%;
        width: auto;
        font-size: 16px;
        font-size: 1rem;
        line-height: 27.2px;
        line-height: 1.7rem;
        padding-left: 0px; }
      .company_index .message a > span span {
        font-size: 16px;
        font-size: 1rem;
        line-height: 20.8px;
        line-height: 1.3rem;
        font-weight: normal;
        display: block;
        margin-top: 20px;
        padding: 20px 0 10px 0px; }
        .sp .company_index .message a > span span {
          display: block;
          margin-top: 10px;
          font-size: 14px;
          font-size: 0.875rem;
          line-height: 18.2px;
          line-height: 1.1375rem; }
      .company_index .message a > span img {
        position: relative;
        display: inline-block;
        top: 5px; }
        .pc .company_index .message a > span img {
          width: 150px;
          height: auto; }
        .sp .company_index .message a > span img {
          margin-top: 5px;
          width: 120px;
          height: auto; }
  .company_index .policy a {
    position: relative;
    display: block;
    width: 100%;
    height: 100%; }
    .company_index .policy a > span {
      position: absolute;
      width: 100%;
      left: 0%;
      top: 50%;
      font-weight: bold;
      color: #ffffff;
      -webkit-transform: translateY(-50%);
      transform: translateY(-50%); }
      .company_index .policy a > span > span {
        display: block;
        text-align: center; }
        .company_index .policy a > span > span.title {
          font-size: 36px;
          font-size: 2.25rem;
          line-height: 61.2px;
          line-height: 3.825rem; }
          .sp .company_index .policy a > span > span.title {
            font-size: 16px;
            font-size: 1rem;
            line-height: 27.2px;
            line-height: 1.7rem; }
        .company_index .policy a > span > span.lead {
          font-size: 16px;
          font-size: 1rem;
          line-height: 27.2px;
          line-height: 1.7rem;
          margin-top: 30px; }
          .sp .company_index .policy a > span > span.lead {
            font-size: 14px;
            font-size: 0.875rem;
            line-height: 23.8px;
            line-height: 1.4875rem;
            margin-top: 15px; }
        .company_index .policy a > span > span.link {
          font-size: 16px;
          font-size: 1rem;
          line-height: 27.2px;
          line-height: 1.7rem;
          margin-top: 30px; }
          .pc .company_index .policy a > span > span.link {
            font-size: 16px;
            font-size: 1rem;
            line-height: 27.2px;
            line-height: 1.7rem; }
          .sp .company_index .policy a > span > span.link {
            font-size: 14px;
            font-size: 0.875rem;
            line-height: 23.8px;
            line-height: 1.4875rem;
            margin-top: 15px; }
          .company_index .policy a > span > span.link > span {
            display: inline-block;
            padding-right: 25px;
            background: url(../images/arrow01.png) center right no-repeat;
            background-size: 19px 19px; }

.linkblock {
  margin: 80px -20px 0px;
  background: none no-repeat center 40px;
  background-size: cover; }
  .sp .linkblock {
    margin: 40px -10px 0px; }
  .linkblock h2 {
    padding: 0px !important;
    border: 0px !important; }
  .linkblock .boxmenu {
    padding-left: 20px;
    padding-right: 20px; }
    .sp .linkblock .boxmenu {
      padding-left: 10px;
      padding-right: 10px; }

.menublock {
  position: relative;
  margin: 80px -20px 0px;
  height: 400px;
  background: none no-repeat center center;
  background-size: cover; }
  .menublock.right {
    background-position: right center; }
  .menublock.left {
    background-position: left center; }
  .sp .menublock {
    margin: 40px -10px 0px;
    height: 250px; }
  .menublock > div {
    position: absolute;
    width: 100%;
    top: 50%;
    padding: 20px;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%); }
    .sp .menublock > div {
      padding: 10px; }
  .menublock h2 {
    padding: 0px !important;
    border: 0px !important;
    color: #ffffff !important; }
  .menublock.btn h2 {
    margin-bottom: 25px; }
  .menublock .button {
    margin-bottom: 25px; }
    .menublock .button a {
      -webkit-backface-visibility: hidden;
      backface-visibility: hidden; }
  .menublock ul {
    display: table;
    margin: auto; }
    .menublock ul li {
      display: table-cell;
      text-align: center;
      vertical-align: middle;
      color: #ffffff;
      font-size: 16px;
      font-size: 1rem;
      line-height: 20.8px;
      line-height: 1.3rem; }
      .sp .menublock ul li {
        font-size: 14px;
        font-size: 0.875rem;
        line-height: 18.2px;
        line-height: 1.1375rem; }
      .menublock ul li a {
        color: #ffffff; }
    .menublock ul li + li {
      position: relative;
      padding-left: 55px; }
      .sp .menublock ul li + li {
        padding-left: 21px; }
      .menublock ul li + li:before {
        content: "";
        display: block;
        position: absolute;
        width: 1px;
        height: 0.8em;
        top: 50%;
        margin-top: -0.4em;
        left: 27px;
        background: #ffffff; }
        .sp .menublock ul li + li:before {
          left: 10px; }

main .contents .businessbox {
  display: table;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  overflow: hidden; }
  main .contents .businessbox.reverse {
    direction: rtl; }
    main .contents .businessbox.reverse > * {
      direction: ltr; }
  main .contents .businessbox > * {
    display: table-cell;
    width: 50%;
    padding: 0 10px;
    vertical-align: top; }
    main .contents .businessbox > * img {
      width: 100%;
      max-width: 580px; }
    .sp main .contents .businessbox > * {
      display: block;
      width: 100%; }
  .sp main .contents .businessbox > * + * {
    margin-top: 20px !important;
    padding: 0; }
  main .contents .businessbox h2 {
    margin-bottom: 20px;
    padding: 0px;
    font-size: 36px;
    font-size: 2.25rem;
    line-height: 46.8px;
    line-height: 2.925rem;
    border: 0px; }
    .sp main .contents .businessbox h2 {
      font-size: 20px;
      font-size: 1.25rem;
      line-height: 26px;
      line-height: 1.625rem; }
  main .contents .businessbox .lead {
    font-size: 16px;
    font-size: 1rem;
    line-height: 27.2px;
    line-height: 1.7rem;
    margin-bottom: 20px; }
    .sp main .contents .businessbox .lead {
      font-size: 16px;
      font-size: 1rem;
      line-height: 20.8px;
      line-height: 1.3rem; }

main .contents .strengthbox {
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
  overflow: hidden; }
  main .contents .strengthbox .image_strength {
    position: relative;
    margin: 32px auto 0;
    width: 100%;
    height: auto;
    max-width: 900px;
    background: url(/at_a_glance/images/index01.jpg) no-repeat center center;
    background-size: 100% 100%; }
    .sp main .contents .strengthbox .image_strength {
      background: none; }
    main .contents .strengthbox .image_strength:before {
      content: "";
      display: block;
      padding-top: 100%; }
      .sp main .contents .strengthbox .image_strength:before {
        display: none; }
    main .contents .strengthbox .image_strength > div {
      position: absolute;
      width: 31%;
      height: 37%; }
      .sp main .contents .strengthbox .image_strength > div {
        position: static;
        width: 100%;
        height: auto; }
        .sp main .contents .strengthbox .image_strength > div + div {
          margin-top: 32px; }
      main .contents .strengthbox .image_strength > div h3 {
        text-align: center;
        font-size: 16px;
        font-size: 1rem;
        line-height: 20.8px;
        line-height: 1.3rem; }
      main .contents .strengthbox .image_strength > div .text {
        margin-top: 10px; }
      main .contents .strengthbox .image_strength > div.box1 {
        top: 40%;
        left: 35%; }
      main .contents .strengthbox .image_strength > div.box2 {
        top: 0;
        left: 0; }
      main .contents .strengthbox .image_strength > div.box3 {
        top: 0;
        right: 0; }
      main .contents .strengthbox .image_strength > div.box4 {
        bottom: 0;
        left: 0; }
      main .contents .strengthbox .image_strength > div.box5 {
        bottom: 0;
        right: 0; }
  main .contents .strengthbox.english {
    max-width: 1180px; }
    main .contents .strengthbox.english .image_strength {
      max-width: 1180px;
      margin-top: 0;
      background: url(/at_a_glance/images/index01_en.jpg) no-repeat center center;
      background-size: 76% 76%; }
      .sp main .contents .strengthbox.english .image_strength {
        background: none; }
      main .contents .strengthbox.english .image_strength > div {
        width: 34%; }
        main .contents .strengthbox.english .image_strength > div.box1 {
          top: 38%;
          left: 35%;
          width: 30%;
          height: auto; }
        main .contents .strengthbox.english .image_strength > div.box3, main .contents .strengthbox.english .image_strength > div.box2 {
          top: 5%; }
        .sp main .contents .strengthbox.english .image_strength > div {
          width: 100%; }

main .contents.businesslist {
  background: #e6e6e6; }
  main .contents.businesslist > div {
    padding-top: 40px;
    padding-bottom: 40px;
    max-width: 1202px; }
    .sp main .contents.businesslist > div {
      padding-top: 20px;
      padding-bottom: 20px; }
  main .contents.businesslist h3 {
    margin-left: 1px;
    margin-bottom: 20px;
    font-size: 16px;
    font-size: 1rem;
    line-height: 20.8px;
    line-height: 1.3rem; }
    .sp main .contents.businesslist h3 {
      font-size: 16px;
      font-size: 1rem;
      line-height: 20.8px;
      line-height: 1.3rem; }
  main .contents.businesslist ul {
    display: block;
    margin: 0px -5px -10px -20px;
    overflow: hidden; }
    .sp main .contents.businesslist ul {
      margin-left: -10px; }
  main .contents.businesslist li {
    float: left;
    display: block;
    width: calc((100% - 105px) / 5);
    margin-bottom: 10px;
    margin-left: 20px; }
    main .contents.businesslist li:nth-of-type(5n + 1) {
      clear: both; }
    .sp main .contents.businesslist li {
      width: calc((100% - 35px) / 3);
      margin-left: 10px; }
      .sp main .contents.businesslist li:nth-of-type(5n + 1) {
        clear: none; }
      .sp main .contents.businesslist li:nth-of-type(3n + 1) {
        clear: both; }
  main .contents.businesslist a {
    display: block;
    font-size: 16px;
    font-size: 1rem;
    line-height: 20.8px;
    line-height: 1.3rem;
    color: #000000;
    text-align: center;
    overflow: hidden;
    -webkit-transition: opacity 0.2s, background 0.2s;
    transition: opacity 0.2s, background 0.2s;
    cursor: pointer; }
    main .contents.businesslist a:hover {
      opacity: 0.7; }
    .sp main .contents.businesslist a {
      font-size: 12px;
      font-size: 0.75rem;
      line-height: 15.6px;
      line-height: 0.975rem; }
    main .contents.businesslist a > span:not(.image) {
      position: relative;
      display: block;
      padding: 3px 0px 5px;
      background: #e6e6e6; }
      main .contents.businesslist a > span:not(.image) span {
        display: inline-block; }
  main .contents.businesslist .button a {
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 15.4px;
    line-height: 0.9625rem;
    color: #000000; }
  main .contents.businesslist img {
    display: block;
    width: 100%;
    height: auto;
    margin: auto; }

main .contents.newsblock {
  background: #e6e6e6; }
  main .contents.newsblock > div {
    padding-top: 40px;
    padding-bottom: 40px;
    max-width: 1220px; }
    .sp main .contents.newsblock > div {
      padding-top: 20px;
      padding-bottom: 20px; }
  main .contents.newsblock .news {
    position: relative; }
    main .contents.newsblock .news .title {
      position: absolute;
      top: 0px;
      left: 20px;
      width: calc(100% / 4); }
      .sp main .contents.newsblock .news .title {
        position: static;
        width: 100%;
        text-align: right; }
      main .contents.newsblock .news .title div {
        margin-bottom: 20px;
        font-size: 20px;
        font-size: 1.25rem;
        line-height: 22px;
        line-height: 1.375rem;
        font-weight: bold; }
        .sp main .contents.newsblock .news .title div {
          margin-bottom: 10px;
          font-size: 16px;
          font-size: 1rem;
          line-height: 17.6px;
          line-height: 1.1rem;
          text-align: left; }
        main .contents.newsblock .news .title div span {
          display: inline-block; }
      main .contents.newsblock .news .title a {
        position: relative;
        display: inline-block;
        margin-left: 15px;
        font-size: 14px;
        font-size: 0.875rem;
        line-height: 15.4px;
        line-height: 0.9625rem;
        color: #555555;
        -webkit-transition: opacity 0.2s, background 0.2s;
        transition: opacity 0.2s, background 0.2s;
        cursor: pointer; }
        main .contents.newsblock .news .title a:hover {
          opacity: 0.7; }
        main .contents.newsblock .news .title a:after {
          content: "";
          display: inline-block;
          width: 20px;
          height: 20px;
          margin-left: 8px;
          background: url(../images/moreicon.svg) no-repeat center center #5c83b4;
          background-size: auto 50%;
          vertical-align: middle;
          border-radius: 50%; }
    main .contents.newsblock .news .list {
      margin-left: calc(100% / 4 + 40px);
      padding: 5px 0px 0px 0px; }
      .sp main .contents.newsblock .news .list {
        padding-top: 35px;
        margin-left: 0px;
        padding-right: 0px; }
      main .contents.newsblock .news .list dl {
        padding-bottom: 35px; }
        main .contents.newsblock .news .list dl:after {
          content: "";
          display: block;
          clear: both; }
        .sp main .contents.newsblock .news .list dl {
          padding-bottom: 0px; }
        main .contents.newsblock .news .list dl dt {
          position: relative;
          clear: both;
          float: left;
          width: calc(12.5rem);
          font-size: 16px;
          font-size: 1rem;
          line-height: 20.8px;
          line-height: 1.3rem; }
          .sp main .contents.newsblock .news .list dl dt {
            float: none;
            width: 100%;
            font-size: 14px;
            font-size: 0.875rem;
            line-height: 18.2px;
            line-height: 1.1375rem; }
          main .contents.newsblock .news .list dl dt span {
            position: absolute;
            display: inline-block;
            right: 0px;
            top: 50%;
            width: 5.5rem;
            margin-top: -11px;
            text-align: center;
            font-size: 10px;
            font-size: 0.625rem;
            line-height: 20px;
            border: 1px solid #afafaf; }
        main .contents.newsblock .news .list dl * + dt {
          margin-top: 30px; }
        main .contents.newsblock .news .list dl dd {
          margin-left: calc(14.5rem);
          font-size: 16px;
          font-size: 1rem;
          line-height: 20.8px;
          line-height: 1.3rem; }
          .sp main .contents.newsblock .news .list dl dd {
            margin-top: 10px;
            margin-left: 0px;
            font-size: 14px;
            font-size: 0.875rem;
            line-height: 18.2px;
            line-height: 1.1375rem; }
        main .contents.newsblock .news .list dl * + dt + dd {
          margin-top: 30px; }
          .sp main .contents.newsblock .news .list dl * + dt + dd {
            margin-top: 10px; }
        main .contents.newsblock .news .list dl a {
          color: #000000; }

.bggray_btn {
  background: #e6e6e6;
  display: table;
  width: 100%;
  padding: 10px 20px; }
  .sp .bggray_btn {
    display: block; }
  .bggray_btn > * {
    display: table-cell;
    vertical-align: middle; }
    .sp .bggray_btn > * {
      display: block; }
  .sp .bggray_btn > p {
    line-height: 1.5; }
  .bggray_btn > .button {
    text-align: right; }
    .sp .bggray_btn > .button {
      text-align: center;
      margin-top: 15px !important; }

main .contents .format > table.history th {
  text-align: left; }
  .sp main .contents .format > table.history th {
    margin: 20px 0 10px 0; }
  main .contents .format > table.history th ul {
    margin-top: 7px; }
    .sp main .contents .format > table.history th ul {
      margin-top: 0; }
    main .contents .format > table.history th ul li {
      font-weight: normal; }
.sp main .contents .format > table.history td {
  margin-bottom: 0; }

main .contents h2.small {
  font-size: 30px;
  font-size: 1.875rem;
  line-height: 33px;
  line-height: 2.0625rem;
  line-height: 3.375rem; }
  .sp main .contents h2.small {
    font-size: 16px;
    font-size: 1rem;
    line-height: 22.4px;
    line-height: 1.4rem; }

main .contents .image.visual_area {
  padding: 36px 0; }
  .sp main .contents .image.visual_area {
    padding: 18px 0; }

.message_name {
  text-align: right; }
  .message_name img {
    margin-left: 1rem;
    vertical-align: middle; }

.historybox {
  display: table;
  width: 100%;
  table-layout: fixed; }
  .historybox > div {
    display: table-cell;
    vertical-align: top; }
    .historybox > div:first-child {
      width: 75%;
      padding-right: 10px; }
      .sp .historybox > div:first-child {
        width: 60%; }
    .historybox > div:last-child {
      width: 25%;
      padding-left: 10px; }
      .sp .historybox > div:last-child {
        width: 40%; }

.newslist {
  padding: 40px 0px 0px 0px; }
  .sp .newslist {
    margin-left: 0px;
    padding: 20px 0px 0px 0px; }
  .newslist dl {
    padding-bottom: 35px; }
    .newslist dl:after {
      content: "";
      display: block;
      clear: both; }
    .sp .newslist dl {
      padding-bottom: 0px; }
    .newslist dl dt {
      position: relative;
      clear: both;
      float: left;
      width: calc(15rem);
      font-size: 16px;
      font-size: 1rem;
      line-height: 20.8px;
      line-height: 1.3rem; }
      .tablet .newslist dl dt {
        width: calc(15rem); }
      .sp .newslist dl dt {
        float: none;
        width: 100%;
        font-size: 14px;
        font-size: 0.875rem;
        line-height: 18.2px;
        line-height: 1.1375rem; }
      .newslist dl dt span {
        display: inline-block;
        border: 1px solid #000;
        padding: 2px;
        font-size: 10px;
        font-size: 0.625rem;
        line-height: 11px;
        line-height: 0.6875rem;
        margin-left: 2rem;
        width: 70px;
        text-align: center; }
    .newslist dl * + dt {
      margin-top: 20px;
      border-top: 1px solid #cfcfcf;
      padding-top: 20px; }
    .newslist dl dd {
      margin-left: calc(15.0rem) !important;
      font-size: 16px;
      font-size: 1rem;
      line-height: 24px;
      line-height: 1.5rem; }
      .tablet .newslist dl dd {
        padding-left: 2rem; }
      .sp .newslist dl dd {
        margin-top: 10px;
        margin-left: 0px !important;
        padding-left: 0;
        font-size: 14px;
        font-size: 0.875rem;
        line-height: 18.2px;
        line-height: 1.1375rem; }
    .newslist dl * + dt + dd {
      border-top: 1px solid #cfcfcf;
      margin-top: 20px !important;
      padding-top: 20px; }
      .sp .newslist dl * + dt + dd {
        padding-top: 0px;
        margin-top: 10px;
        border-top: none; }
    .newslist dl a {
      color: #000000; }

#recruit_menu {
  position: fixed;
  right: 0;
  padding: 15px;
  background: #fff;
  top: 50%;
  transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  z-index: 50;
  border-top: 1px solid #e2e2e2;
  border-bottom: 1px solid #e2e2e2;
  border-left: 1px solid #e2e2e2;
  transition: opacity 0.5s, visibility 0.5s;
  opacity: 1;
  visibility: visible; }
  .max #recruit_menu {
    width: 100%;
    bottom: 0;
    top: auto;
    transform: none;
    -webkit-transform: none;
    border-bottom: none;
    border-left: none;
    text-align: center; }
    .max #recruit_menu.hide {
      opacity: 0;
      visibility: hidden; }
  .sp #recruit_menu {
    padding: 15px 15px 30px 15px; }
  #recruit_menu li + li {
    margin-top: 10px; }
    .sp #recruit_menu li + li {
      margin: 10px 0 0 0; }
  .sp #recruit_menu li {
    display: block; }
  .max #recruit_menu li {
    display: inline-block; }
    .max #recruit_menu li + li {
      margin-top: 0px;
      margin-left: 15px; }
  #recruit_menu li + li {
    margin-top: 10px; }
    .sp #recruit_menu li + li {
      margin: 10px 0 0 0; }
  .sp #recruit_menu li {
    display: block; }
  #recruit_menu a {
    text-decoration: none; }
    #recruit_menu a.btn {
      display: block;
      background: #0050a0;
      color: #fff;
      padding: 5px 10px;
      text-align: center;
      min-width: 150px;
      font-size: 20px;
      font-size: 1.25rem;
      line-height: 22px;
      line-height: 1.375rem;
      -webkit-transition: 0.5s;
      transition: 0.5s;
      box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3);
      cursor: pointer;
      position: relative;
      top: 0px; }
      #recruit_menu a.btn:hover {
        top: -5px;
        box-shadow: 6px 6px 6px rgba(0, 0, 0, 0.4); }
        .tablet #recruit_menu a.btn:hover {
          top: 0;
          box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3); }
      .max #recruit_menu a.btn {
        display: inline-block;
        min-width: 0;
        width: 220px;
        margin: 0 auto; }
      .sp #recruit_menu a.btn {
        display: block;
        width: 100%;
        padding: 15px 10px; }

@media all and (-ms-high-contrast: none) {
  *::-ms-backdrop, body#recruitpage {
    /* IE11 */
    background: url(../../recruit/images/bg01.jpg) center center no-repeat;
    background-attachment: fixed;
    background-size: cover; } }
body#recruitpage:before {
  content: "";
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 100vh;
  background: url(../../recruit/images/bg01.jpg) center center no-repeat;
  background-size: cover; }
  .sp body#recruitpage:before {
    background: none !important; }
body#recruitpage.change:before {
  background: url(../../recruit/images/bg02.jpg) center center no-repeat;
  background-size: cover; }
body#recruitpage main {
  background: none; }
body#recruitpage section > div {
  position: relative;
  width: 100%;
  max-width: 1240px;
  margin: auto;
  padding: 60px 20px; }
  .sp body#recruitpage section > div {
    padding: 30px 10px; }
body#recruitpage h2 {
  font-size: 40px;
  font-size: 2.5rem;
  line-height: 48px;
  line-height: 3rem;
  margin: 0; }
  .sp body#recruitpage h2 {
    font-size: 24px;
    font-size: 1.5rem;
    line-height: 28.8px;
    line-height: 1.8rem; }
body#recruitpage p.sub {
  color: #0050a0;
  margin-top: 10px;
  font-size: 18px;
  font-size: 1.125rem;
  line-height: 21.6px;
  line-height: 1.35rem; }
  .sp body#recruitpage p.sub {
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 16.8px;
    line-height: 1.05rem; }
body#recruitpage p.controller {
  text-align: right; }
  body#recruitpage p.controller a {
    text-decoration: none; }
body#recruitpage #mainvisual {
  width: 100%;
  height: 100vh;
  text-align: center;
  display: table; }
  .sp body#recruitpage #mainvisual {
    height: auto; }
    .sp body#recruitpage #mainvisual img {
      width: 100%;
      height: auto; }
  body#recruitpage #mainvisual > div {
    width: 100%;
    height: 100%;
    padding: 0 0 140px;
    display: table-cell;
    vertical-align: middle; }
    .sp body#recruitpage #mainvisual > div {
      padding: 50px 0;
      background: url(../../recruit/images/bg01.jpg) center center no-repeat;
      background-size: cover; }
    body#recruitpage #mainvisual > div .main {
      font-size: 60px;
      line-height: 1.4; }
      .sp body#recruitpage #mainvisual > div .main {
        font-size: 28px;
        text-shadow: 2px 2px 2px white, -2px 2px 2px white, 2px -2px 2px white, -2px -2px 2px white; }
    body#recruitpage #mainvisual > div .sub {
      font-size: 24px;
      color: #666; }
      .sp body#recruitpage #mainvisual > div .sub {
        font-size: 17px;
        text-shadow: 2px 2px 2px white, -2px 2px 2px white, 2px -2px 2px white, -2px -2px 2px white; }
body#recruitpage #button {
  background: #fff; }
  body#recruitpage #button .link {
    margin-top: 30px; }
    body#recruitpage #button .link:after {
      content: "";
      display: block;
      clear: both; }
    body#recruitpage #button .link > div {
      width: 50%;
      float: left;
      text-align: center; }
      body#recruitpage #button .link > div:first-child {
        padding-left: 5%; }
      body#recruitpage #button .link > div:last-child {
        padding-right: 5%; }
      .pc body#recruitpage #button .link > div {
        width: 100%;
        float: none; }
        .pc body#recruitpage #button .link > div:first-child {
          padding-left: 0%; }
        .pc body#recruitpage #button .link > div:last-child {
          padding-right: 0%; }
        .pc body#recruitpage #button .link > div + div {
          margin-top: 20px; }
    body#recruitpage #button .link a {
      width: 80%;
      height: 100%;
      display: inline-block;
      background: #0050a0;
      color: #fff;
      padding: 15px;
      text-decoration: none;
      -webkit-transition: 0.5s;
      transition: 0.5s;
      box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3);
      cursor: pointer;
      position: relative;
      top: 0px;
      vertical-align: middle; }
      body#recruitpage #button .link a:hover {
        top: -5px;
        box-shadow: 6px 6px 6px rgba(0, 0, 0, 0.4); }
        .tablet body#recruitpage #button .link a:hover {
          top: 0;
          box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3); }
      .pc body#recruitpage #button .link a {
        width: 400px; }
      .sp body#recruitpage #button .link a {
        width: 100%; }
      body#recruitpage #button .link a span {
        width: 100%;
        text-align: center;
        vertical-align: middle; }
      body#recruitpage #button .link a span.career {
        display: table;
        width: 100%;
        height: 100%; }
        body#recruitpage #button .link a span.career > span {
          display: table-cell;
          vertical-align: middle; }
      body#recruitpage #button .link a img {
        width: 180px;
        height: auto;
        vertical-align: middle;
        margin-right: 15px; }
        .sp body#recruitpage #button .link a img {
          margin-right: 0;
          margin-bottom: 10px; }
body#recruitpage #button2 {
  background: #fff; }
  body#recruitpage #button2 .link {
    margin-top: 30px; }
    body#recruitpage #button2 .link:after {
      content: "";
      display: block;
      clear: both; }
    body#recruitpage #button2 .link > div {
      width: 33%;
      float: left;
      text-align: center; }
      body#recruitpage #button2 .link > div {
        padding-left: 3%;
        padding-right: 3%; }
      .pc body#recruitpage #button2 .link > div {
        width: 100%;
        float: none; }
        .pc body#recruitpage #button2 .link > div {
          padding-left: 0%;
          padding-right: 0%; }
        .pc body#recruitpage #button2 .link > div + div {
          margin-top: 20px; }
    body#recruitpage #button2 .link a {
      width: 90%;
      height: 100%;
      display: inline-block;
      background: #0050a0;
      color: #fff;
      padding: 15px;
      text-decoration: none;
      -webkit-transition: 0.5s;
      transition: 0.5s;
      box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3);
      cursor: pointer;
      position: relative;
      top: 0px;
      vertical-align: middle; }
      body#recruitpage #button2 .link a:hover {
        top: -5px;
        box-shadow: 6px 6px 6px rgba(0, 0, 0, 0.4); }
        .tablet body#recruitpage #button2 .link a:hover {
          top: 0;
          box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3); }
      .pc body#recruitpage #button2 .link a {
        width: 400px; }
      .sp body#recruitpage #button2 .link a {
        width: 100%; }
      body#recruitpage #button2 .link a span {
        width: 100%;
        text-align: center;
        vertical-align: middle; }
      body#recruitpage #button2 .link a span.career {
        display: table;
        width: 100%;
        height: 100%; }
        body#recruitpage #button2 .link a span.career > span {
          display: table-cell;
          vertical-align: middle; }
      body#recruitpage #button2 .link a img {
        width: 180px;
        height: auto;
        vertical-align: middle;
        margin-right: 15px; }
        .sp body#recruitpage #button2 .link a img {
          margin-right: 0;
          margin-bottom: 10px; }
body#recruitpage #lead {
  background: #fff; }
  body#recruitpage #lead .news_area {
    margin-bottom: 30px; }
  body#recruitpage #lead p {
    text-align: center;
    font-size: 18px;
    font-size: 1.125rem;
    line-height: 27px;
    line-height: 1.6875rem; }
    .sp body#recruitpage #lead p {
      font-size: 14px;
      font-size: 0.875rem;
      line-height: 21px;
      line-height: 1.3125rem; }
    body#recruitpage #lead p.title {
      font-size: 24px;
      font-size: 1.5rem;
      line-height: 36px;
      line-height: 2.25rem;
      text-decoration: underline; }
      .sp body#recruitpage #lead p.title {
        font-size: 18px;
        font-size: 1.125rem;
        line-height: 27px;
        line-height: 1.6875rem; }
    body#recruitpage #lead p + p {
      margin-top: 15px; }
      body#recruitpage #lead p + p.title {
        margin-top: 30px; }
body#recruitpage #business {
  background-color: rgba(0, 80, 160, 0.9); }
  body#recruitpage #business h2 {
    color: #fff; }
  body#recruitpage #business p.sub {
    color: #fff; }
  body#recruitpage #business .list {
    margin-top: 60px; }
    body#recruitpage #business .list:after {
      content: "";
      display: block;
      clear: both; }
    .sp body#recruitpage #business .list {
      margin-top: 30px; }
    body#recruitpage #business .list > div {
      width: 18%;
      float: left;
      margin-left: 1%; 
      padding: 0px 5px 5px;
      background: #fff; }
      .sp body#recruitpage #business .list > div {
        width: 49%;
        margin-left: 0; 
        margin-bottom: 2%; }
        .sp body#recruitpage #business .list > div:nth-of-type(2n) {
          margin-left: 2%; }
      body#recruitpage #business .list > div + div {
        margin-left: 2%; }
        .sp body#recruitpage #business .list > div + div {
          margin-left: 0; }
      body#recruitpage #business .list > div .img {
        display: table;
        height: 180px;
        width: 100%; }
        .sp body#recruitpage #business .list > div .img {
          display: block;
          height: 100px; }
        body#recruitpage #business .list > div .img > span {
          display: table-cell;
          vertical-align: middle;
          text-align: center; }
          .sp body#recruitpage #business .list > div .img > span {
            display: block;
            height: 100px;
            margin-top: 15px; }
          body#recruitpage #business .list > div .img > span img {
            width: 60%; }
            .sp body#recruitpage #business .list > div .img > span img {
              width: auto;
              height: 100%; }
      body#recruitpage #business .list > div .title {
        font-size: 18px;
        font-size: 1.125rem;
        line-height: 21.6px;
        line-height: 1.35rem;
        font-weight: bold;
        text-align: center; }
        .sp body#recruitpage #business .list > div .title {
          margin-top: 15px;
          font-size: 14px;
          font-size: 0.875rem;
          line-height: 18px;
          line-height: 1.125rem; }
      body#recruitpage #business .list > div .comment {
        margin-top: 15px;
        line-height: 1.5; }
        .sp body#recruitpage #business .list > div .comment {
          font-size: 12px;
          font-size: 0.75rem;
          line-height: 18px;
          line-height: 1.125rem; }
body#recruitpage #introduction {
  background: #fff; }
  body#recruitpage #introduction .introduncion_box {
    margin-top: 15px;
    -webkit-transition: opacity 0.2s, background 0.2s;
    transition: opacity 0.2s, background 0.2s;
    cursor: pointer; }
    body#recruitpage #introduction .introduncion_box:after {
      content: "";
      display: block;
      clear: both; }
    body#recruitpage #introduction .introduncion_box:hover {
      opacity: 0.7; }
    body#recruitpage #introduction .introduncion_box .img {
      float: left;
      width: 20%;
      line-height: 0;
      height: 160px;
      background: center center no-repeat;
      background-size: cover; }
      body#recruitpage #introduction .introduncion_box .img img {
        display: none; }
      .sp body#recruitpage #introduction .introduncion_box .img {
        width: 40%;
        height: 100px; }
    body#recruitpage #introduction .introduncion_box .tx {
      float: left;
      width: 30%;
      height: 160px;
      background: #e2e2e2;
      padding-left: 20px;
      position: relative; }
      .sp body#recruitpage #introduction .introduncion_box .tx {
        width: 60%;
        height: 100px;
        padding-left: 10px; }
      body#recruitpage #introduction .introduncion_box .tx .div {
        margin-top: 45px; }
        .sp body#recruitpage #introduction .introduncion_box .tx .div {
          margin-top: 20px;
          font-size: 12px;
          font-size: 0.75rem;
          line-height: 13.2px;
          line-height: 0.825rem; }
      body#recruitpage #introduction .introduncion_box .tx .name {
        font-size: 26px;
        font-size: 1.625rem;
        line-height: 37.4px;
        line-height: 2.3375rem;
        margin-top: 15px; }
        .sp body#recruitpage #introduction .introduncion_box .tx .name {
          font-size: 22px;
          font-size: 1.375rem;
          line-height: 24.2px;
          line-height: 1.5125rem; }
      body#recruitpage #introduction .introduncion_box .tx .btn {
        position: absolute;
        display: block;
        width: 40px;
        height: 40px;
        background: #0050a0;
        box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3);
        right: 20px;
        top: 50%;
        transform: translateY(-50%);
        -webkit-transform: translateY(-50%);
        z-index: 10; }
        .sp body#recruitpage #introduction .introduncion_box .tx .btn {
          top: auto;
          right: 10px;
          bottom: -5px;
          width: 30px;
          height: 30px; }
        body#recruitpage #introduction .introduncion_box .tx .btn:before {
          content: "";
          position: absolute;
          width: 60%;
          height: 2px;
          top: 19px;
          background: #fff;
          margin: 0 auto;
          left: 0;
          right: 0;
          -webkit-transition: 0.3s;
          transition: 0.3s; }
          .sp body#recruitpage #introduction .introduncion_box .tx .btn:before {
            top: 14px; }
        body#recruitpage #introduction .introduncion_box .tx .btn:after {
          content: "";
          position: absolute;
          height: 60%;
          width: 2px;
          left: 19px;
          background: #fff;
          margin: auto 0;
          top: 0;
          bottom: 0;
          -webkit-transition: 0.3s;
          transition: 0.3s; }
          .sp body#recruitpage #introduction .introduncion_box .tx .btn:after {
            left: 14px; }
    body#recruitpage #introduction .introduncion_box.open .btn:before {
      -moz-transform: rotateZ(-225deg);
      -webkit-transform: rotateZ(-225deg);
      transform: rotateZ(-225deg); }
    body#recruitpage #introduction .introduncion_box.open .btn:after {
      -moz-transform: rotateZ(-225deg);
      -webkit-transform: rotateZ(-225deg);
      transform: rotateZ(-225deg); }
  body#recruitpage #introduction .lead {
    width: 45%;
    padding-left: 5%;
    display: none; }
    .sp body#recruitpage #introduction .lead {
      width: 100%; }
    body#recruitpage #introduction .lead > div {
      padding: 15px;
      border-left: 10px solid #e2e2e2;
      border-right: 10px solid #e2e2e2;
      border-bottom: 10px solid #e2e2e2; }
      body#recruitpage #introduction .lead > div h3 {
        font-size: 22px;
        font-size: 1.375rem;
        line-height: 33px;
        line-height: 2.0625rem; }
        .sp body#recruitpage #introduction .lead > div h3 {
          font-size: 16px;
          font-size: 1rem;
          line-height: 24px;
          line-height: 1.5rem; }
      body#recruitpage #introduction .lead > div p {
        line-height: 1.5; }
        body#recruitpage #introduction .lead > div p + p {
          margin-top: 15px; }
        .sp body#recruitpage #introduction .lead > div p {
          font-size: 12px;
          font-size: 0.75rem;
          line-height: 18px;
          line-height: 1.125rem; }
body#recruitpage #welfare .img {
  margin-top: 40px; }
  body#recruitpage #welfare .img img {
    width: 100%;
    height: auto; }
body#recruitpage #induction {
  background: #fff; }
  body#recruitpage #induction .tab {
    margin-top: 50px; }
    .sp body#recruitpage #induction .tab {
      margin-top: 20px; }
    body#recruitpage #induction .tab ul:after {
      content: "";
      display: block;
      clear: both; }
    body#recruitpage #induction .tab ul li {
      width: 24%;
      float: left; }
      .sp body#recruitpage #induction .tab ul li {
        width: 49%; }
        .sp body#recruitpage #induction .tab ul li:nth-of-type(2n) {
          margin-left: 2%; }
        .sp body#recruitpage #induction .tab ul li:nth-of-type(n+3) {
          margin-top: 2%; }
      body#recruitpage #induction .tab ul li + li {
        margin-left: 1.3%; }
        .sp body#recruitpage #induction .tab ul li + li {
          margin-left: 0; }
      body#recruitpage #induction .tab ul li a {
        display: block;
        background: #e2e2e2;
        color: #fff;
        position: relative;
        text-align: center;
        padding: 15px 0px;
        text-decoration: none; }
        .sp body#recruitpage #induction .tab ul li a {
          font-size: 14px; }
        body#recruitpage #induction .tab ul li a.ac {
          background: #0050a0; }
          body#recruitpage #induction .tab ul li a.ac:after {
            content: "";
            width: 1px;
            height: 1px;
            position: absolute;
            border-top: 15px solid #0050a0;
            border-right: 10px solid transparent;
            border-bottom: 15px solid transparent;
            border-left: 10px solid transparent;
            bottom: -30px;
            left: 0px;
            right: 0;
            margin: 0 auto; }
            .sp body#recruitpage #induction .tab ul li a.ac:after {
              display: none; }
  body#recruitpage #induction .tab_area {
    margin-top: 40px; }
    .sp body#recruitpage #induction .tab_area {
      margin-top: 20px; }
    body#recruitpage #induction .tab_area > div:not(:first-child) {
      display: none; }
    body#recruitpage #induction .tab_area > div .column {
      display: table;
      width: 100%; }
      body#recruitpage #induction .tab_area > div .column > * {
        display: table-cell;
        height: 100%;
        text-align: left;
        vertical-align: top; }
      .sp body#recruitpage #induction .tab_area > div .column {
        display: block; }
      body#recruitpage #induction .tab_area > div .column .img {
        width: 25%; }
        .sp body#recruitpage #induction .tab_area > div .column .img {
          display: block;
          width: 100%;
          margin-top: 20px;
          text-align: center; }
        body#recruitpage #induction .tab_area > div .column .img img {
          max-width: 100%;
          height: auto; }
    body#recruitpage #induction .tab_area p {
      font-size: 16px;
      font-size: 1rem;
      line-height: 24px;
      line-height: 1.5rem; }
      .sp body#recruitpage #induction .tab_area p {
        font-size: 12px;
        font-size: 0.75rem;
        line-height: 18px;
        line-height: 1.125rem; }
    body#recruitpage #induction .tab_area * + p {
      margin-top: 15px; }
    body#recruitpage #induction .tab_area .tx {
      width: 75%;
      padding-right: 30px; }
      .sp body#recruitpage #induction .tab_area .tx {
        display: block;
        width: 100%; }
    body#recruitpage #induction .tab_area .title {
      font-size: 34px;
      font-size: 2.125rem;
      line-height: 51px;
      line-height: 3.1875rem; }
      .sp body#recruitpage #induction .tab_area .title {
        font-size: 20px;
        font-size: 1.25rem;
        line-height: 30px;
        line-height: 1.875rem; }
    body#recruitpage #induction .tab_area h3 {
      font-size: 18px;
      font-size: 1.125rem;
      line-height: 27px;
      line-height: 1.6875rem;
      margin: 0;
      font-weight: normal; }
      body#recruitpage #induction .tab_area h3 span {
        display: inline-block;
        background: #0050a0;
        color: #fff;
        padding: 0 10px;
        margin-right: 10px; }
    body#recruitpage #induction .tab_area * + h3 {
      margin-top: 30px; }
    body#recruitpage #induction .tab_area h4 {
      margin: 20px 0 0; }
    body#recruitpage #induction .tab_area .title {
      font-size: 34px;
      font-size: 2.125rem;
      line-height: 51px;
      line-height: 3.1875rem; }
      .sp body#recruitpage #induction .tab_area .title {
        font-size: 20px;
        font-size: 1.25rem;
        line-height: 30px;
        line-height: 1.875rem; }
body#recruitpage #photo {
  background: #fff; }
  body#recruitpage #photo #gallery_scroll {
    position: relative;
    width: 100%;
    max-width: none;
    height: 600px;
    padding: 0;
    overflow: hidden; }
    .sp body#recruitpage #photo #gallery_scroll {
      height: 300px; }
    body#recruitpage #photo #gallery_scroll > div {
      position: absolute; }
      body#recruitpage #photo #gallery_scroll > div > div {
        display: table; }
        body#recruitpage #photo #gallery_scroll > div > div > div {
          display: table-cell;
          vertical-align: top; }
          body#recruitpage #photo #gallery_scroll > div > div > div > ul:after {
            content: "";
            display: block;
            clear: both; }
          body#recruitpage #photo #gallery_scroll > div > div > div > ul > li {
            float: left;
            height: 300px;
            line-height: 0; }
            .sp body#recruitpage #photo #gallery_scroll > div > div > div > ul > li {
              height: 150px; }
            body#recruitpage #photo #gallery_scroll > div > div > div > ul > li img {
              height: 300px;
              width: auto; }
              .sp body#recruitpage #photo #gallery_scroll > div > div > div > ul > li img {
                height: 150px; }
body#recruitpage #faq {
  background: #fff; }
  body#recruitpage #faq h3 {
    margin-top: 40px; }
  body#recruitpage #faq .controller {
    margin-top: 30px; }
  body#recruitpage #faq .controller + h3 {
    margin-top: 0; }
  body#recruitpage #faq .faq_box {
    background: #e2e2e2;
    padding: 15px;
    -webkit-transition: opacity 0.2s, background 0.2s;
    transition: opacity 0.2s, background 0.2s;
    cursor: pointer; }
    body#recruitpage #faq .faq_box:hover {
      opacity: 0.7; }
    body#recruitpage #faq .faq_box + .faq_box {
      margin-top: 1px; }
    body#recruitpage #faq .faq_box .q {
      font-weight: bold;
      position: relative; }
      .sp body#recruitpage #faq .faq_box .q {
        font-size: 14px;
        font-size: 0.875rem;
        line-height: 21px;
        line-height: 1.3125rem;
        padding-right: 35px; }
      body#recruitpage #faq .faq_box .q .btn {
        position: absolute;
        display: block;
        width: 30px;
        height: 30px;
        background: #0050a0;
        box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3);
        right: 0px;
        top: 50%;
        transform: translateY(-50%);
        -webkit-transform: translateY(-50%);
        z-index: 10; }
        body#recruitpage #faq .faq_box .q .btn:before {
          content: "";
          position: absolute;
          width: 60%;
          height: 2px;
          top: 14px;
          background: #fff;
          margin: 0 auto;
          left: 0;
          right: 0;
          -webkit-transition: 0.3s;
          transition: 0.3s; }
        body#recruitpage #faq .faq_box .q .btn:after {
          content: "";
          position: absolute;
          height: 60%;
          width: 2px;
          left: 14px;
          background: #fff;
          margin: auto 0;
          top: 0;
          bottom: 0;
          -webkit-transition: 0.3s;
          transition: 0.3s; }
    body#recruitpage #faq .faq_box .a {
      background: #fff;
      padding: 15px;
      margin-top: 20px;
      display: none; }
      .sp body#recruitpage #faq .faq_box .a {
        font-size: 14px;
        font-size: 0.875rem;
        line-height: 21px;
        line-height: 1.3125rem; }
      body#recruitpage #faq .faq_box .a p {
        line-height: 1.5; }
        body#recruitpage #faq .faq_box .a p + p {
          margin-top: 20px; }
    body#recruitpage #faq .faq_box.open .btn:before {
      -moz-transform: rotateZ(-225deg);
      -webkit-transform: rotateZ(-225deg);
      transform: rotateZ(-225deg); }
    body#recruitpage #faq .faq_box.open .btn:after {
      -moz-transform: rotateZ(-225deg);
      -webkit-transform: rotateZ(-225deg);
      transform: rotateZ(-225deg); }
body#recruitpage #requirements {
  background-color: rgba(255, 255, 255, 0.8); }
  body#recruitpage #requirements .company_info {
    position: absolute;
    right: 20px;
    top: 80px; }
    .sp body#recruitpage #requirements .company_info {
      position: static;
      margin-top: 20px;
      text-align: center; }
    body#recruitpage #requirements .company_info a {
      background: #0050a0;
      color: #fff;
      text-decoration: none;
      display: inline-block;
      padding: 10px 30px;
      -webkit-transition: 0.5s;
      transition: 0.5s;
      box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3);
      cursor: pointer;
      position: relative;
      top: 0px; }
      body#recruitpage #requirements .company_info a:hover {
        top: -5px;
        box-shadow: 6px 6px 6px rgba(0, 0, 0, 0.4); }
        .tablet body#recruitpage #requirements .company_info a:hover {
          top: 0;
          box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3); }
      body#recruitpage #requirements .company_info a:after {
        content: "";
        display: inline-block;
        vertical-align: text-bottom;
        width: 14px;
        height: 16px;
        padding-top: 2px;
        margin-left: 7px;
        background: url(../images/ico_pdf_w.svg) no-repeat;
        background-size: 14px 16px; }
      .sp body#recruitpage #requirements .company_info a {
        display: block;
        width: 100%;
        padding: 15px 10px; }
  body#recruitpage #requirements .table {
    width: 90%;
    margin: 50px auto 0;
    background: #fff;
    padding: 15px; }
    .sp body#recruitpage #requirements .table {
      width: 100%;
      margin-top: 20px;
      padding: 0px; }
    body#recruitpage #requirements .table h3 {
      font-size: 18px;
      font-size: 1.125rem;
      line-height: 27px;
      line-height: 1.6875rem;
      font-weight: normal;
      margin: 0; }
    body#recruitpage #requirements .table * + h3 {
      margin-top: 30px; }
    body#recruitpage #requirements .table table {
      width: 100%;
      border-collapse: collapse;
      margin-top: 10px; }
      .sp body#recruitpage #requirements .table table {
        display: block; }
      body#recruitpage #requirements .table table th {
        width: 20%;
        padding: 10px 15px;
        border-top: solid 1px #000;
        border-bottom: solid 1px #000;
        font-weight: normal;
        text-align: left;
        line-height: 1.5; }
        .sp body#recruitpage #requirements .table table th {
          display: block;
          width: 100%;
          border: none;
          padding: 0px;
          font-weight: bold; }
      .sp body#recruitpage #requirements .table table tr {
        display: block; }
      .sp body#recruitpage #requirements .table table tr + tr {
        margin-top: 20px; }
      body#recruitpage #requirements .table table td {
        width: 80%;
        padding: 10px 15px;
        border-top: solid 1px #000;
        border-bottom: solid 1px #000;
        border-left: solid 1px #000;
        line-height: 1.5; }
        .sp body#recruitpage #requirements .table table td {
          display: block;
          width: 100%;
          border: none;
          padding: 0px;
          margin-top: 5px;
          font-size: 14px;
          font-size: 0.875rem;
          line-height: 21px;
          line-height: 1.3125rem; }
        body#recruitpage #requirements .table table td p + p {
          margin-top: 15px; }
          .sp body#recruitpage #requirements .table table td p + p {
            margin-top: 10px; }
        body#recruitpage #requirements .table table td dl dt {
          clear: left;
          float: left;
          width: 12rem;
          line-height: 1.5em;
          margin-bottom: 10px; }
        body#recruitpage #requirements .table table td dl dd {
          margin-left: 12rem;
          line-height: 1.5em;
          margin-bottom: 10px; }
  body#recruitpage #requirements p {
    line-height: 1.5; }
body#recruitpage #entry {
  background: #fff; }
  body#recruitpage #entry .link {
    margin-top: 30px; }
    body#recruitpage #entry .link:after {
      content: "";
      display: block;
      clear: both; }
    body#recruitpage #entry .link > div {
      width: 50%;
      float: left;
      text-align: center; }
      body#recruitpage #entry .link > div:first-child {
        padding-left: 5%; }
      body#recruitpage #entry .link > div:last-child {
        padding-right: 5%; }
      .pc body#recruitpage #entry .link > div {
        width: 100%;
        float: none; }
        .pc body#recruitpage #entry .link > div:first-child {
          padding-left: 0%; }
        .pc body#recruitpage #entry .link > div:last-child {
          padding-right: 0%; }
        .pc body#recruitpage #entry .link > div + div {
          margin-top: 20px; }
    body#recruitpage #entry .link a {
      width: 80%;
      height: 100%;
      display: inline-block;
      background: #0050a0;
      color: #fff;
      padding: 15px;
      text-decoration: none;
      -webkit-transition: 0.5s;
      transition: 0.5s;
      box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3);
      cursor: pointer;
      position: relative;
      top: 0px;
      vertical-align: middle; }
      body#recruitpage #entry .link a:hover {
        top: -5px;
        box-shadow: 6px 6px 6px rgba(0, 0, 0, 0.4); }
        .tablet body#recruitpage #entry .link a:hover {
          top: 0;
          box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3); }
      .pc body#recruitpage #entry .link a {
        width: 400px; }
      .sp body#recruitpage #entry .link a {
        width: 100%; }
      body#recruitpage #entry .link a span {
        width: 100%;
        text-align: center;
        vertical-align: middle; }
      body#recruitpage #entry .link a span.career {
        display: table;
        width: 100%;
        height: 100%; }
        body#recruitpage #entry .link a span.career > span {
          display: table-cell;
          vertical-align: middle; }
      body#recruitpage #entry .link a img {
        width: 180px;
        height: auto;
        vertical-align: middle;
        margin-right: 15px; }
        .sp body#recruitpage #entry .link a img {
          margin-right: 0;
          margin-bottom: 10px; }
body#recruitpage #entry2 {
  background: #fff; }
  body#recruitpage #entry2 .link {
    margin-top: 30px; }
    body#recruitpage #entry2 .link:after {
      content: "";
      display: block;
      clear: both; }
    body#recruitpage #entry2 .link > div {
      width: 33%;
      float: left;
      text-align: center; }
      body#recruitpage #entry2 .link > div {
        padding-left: 3%;
        padding-right: 3%; }
      .pc body#recruitpage #entry2 .link > div {
        width: 100%;
        float: none; }
        .pc body#recruitpage #entry2 .link > div {
          padding-left: 0%;
          padding-right: 0%; }
        .pc body#recruitpage #entry2 .link > div + div {
          margin-top: 20px; }
    body#recruitpage #entry2 .link a {
      width: 90%;
      height: 100%;
      display: inline-block;
      background: #0050a0;
      color: #fff;
      padding: 15px;
      text-decoration: none;
      -webkit-transition: 0.5s;
      transition: 0.5s;
      box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3);
      cursor: pointer;
      position: relative;
      top: 0px;
      vertical-align: middle; }
      body#recruitpage #entry2 .link a:hover {
        top: -5px;
        box-shadow: 6px 6px 6px rgba(0, 0, 0, 0.4); }
        .tablet body#recruitpage #entry2 .link a:hover {
          top: 0;
          box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3); }
      .pc body#recruitpage #entry2 .link a {
        width: 400px; }
      .sp body#recruitpage #entry2 .link a {
        width: 100%; }
      body#recruitpage #entry2 .link a span {
        width: 100%;
        text-align: center;
        vertical-align: middle; }
      body#recruitpage #entry2 .link a span.career {
        display: table;
        width: 100%;
        height: 100%; }
        body#recruitpage #entry2 .link a span.career > span {
          display: table-cell;
          vertical-align: middle; }
      body#recruitpage #entry2 .link a img {
        width: 180px;
        height: auto;
        vertical-align: middle;
        margin-right: 15px; }
        .sp body#recruitpage #entry2 .link a img {
          margin-right: 0;
          margin-bottom: 10px; }
body#recruitpage #flyer {
  background: #fff; }
  body#recruitpage #flyer .link {
    margin-top: 30px; }
    body#recruitpage #flyer .link:after {
      content: "";
      display: block;
      clear: both; }
    body#recruitpage #flyer .link > div {
      width: 33%;
      float: left;
      text-align: center; }
      body#recruitpage #flyer .link > div {
        padding-left: 3%;
        padding-right: 3%; }
      .pc body#recruitpage #flyer .link > div {
        width: 100%;
        float: none; }
        .pc body#recruitpage #flyer .link > div {
          padding-left: 0%;
          padding-right: 0%; }
        .pc body#recruitpage #flyer .link > div + div {
          margin-top: 20px; }
    body#recruitpage #flyer .link a {
      width: 90%;
      height: 100%;
      display: inline-block;
      background: #D5F2FF;
      color: #fff;
      padding: 5px;
      text-decoration: none;
      -webkit-transition: 0.5s;
      transition: 0.5s;
      box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3);
      cursor: pointer;
      position: relative;
      top: 0px;
      vertical-align: middle; }
      body#recruitpage #flyer .link a:hover {
        top: -5px;
        box-shadow: 6px 6px 6px rgba(0, 0, 0, 0.4); }
        .tablet body#recruitpage #flyer .link a:hover {
          top: 0;
          box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3); }
      .pc body#recruitpage #flyer .link a {
        width: 400px; }
      .sp body#recruitpage #flyer .link a {
        width: 100%; }
      body#recruitpage #flyer .link a span {
        width: 100%;
        text-align: center;
        vertical-align: middle; }
      body#recruitpage #flyer .link a span.career {
        display: table;
        width: 100%;
        height: 100%; }
        body#recruitpage #flyer .link a span.career > span {
          display: table-cell;
          vertical-align: middle; }
      body#recruitpage #flyer .link a img {
        width: 275px;
        height: auto;
        vertical-align: middle;
        margin-right: 15px; }
        .sp body#recruitpage #flyer .link a img {
          margin-right: 0;
          margin-bottom: 10px; }
body#recruitpage .image {
  text-align: center; }
  body#recruitpage .image img {
    display: block;
    margin: auto;
    max-width: 100%;
    height: auto; }
  body#recruitpage .image figcaption {
    margin: auto;
    text-align: left;
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 23.8px;
    line-height: 1.4875rem; }
  body#recruitpage .image p {
    margin: auto;
    text-align: left;
    font-size: 16px;
    font-size: 1rem;
    line-height: 20.8px;
    line-height: 1.3rem; }
    .sp body#recruitpage .image p {
      font-size: 14px;
      font-size: 0.875rem;
      line-height: 18.2px;
      line-height: 1.1375rem; }
    * + body#recruitpage .image p {
      margin-top: 10px; }
    body#recruitpage .image p a {
      color: #000000; }
    body#recruitpage .image p.note {
      font-size: 14px;
      font-size: 0.875rem;
      line-height: 23.8px;
      line-height: 1.4875rem; }
      .sp body#recruitpage .image p.note {
        font-size: 11.9px;
        font-size: 0.74375rem;
        line-height: 20.23px;
        line-height: 1.26438rem; }
    body#recruitpage .image p.center {
      text-align: center; }
    body#recruitpage .image p.right {
      text-align: right; }
  body#recruitpage .image.left {
    text-align: left; }
    body#recruitpage .image.left img {
      margin-left: 0px; }
    body#recruitpage .image.left p {
      margin-left: 0px; }
  body#recruitpage .image.right {
    text-align: right; }
    body#recruitpage .image.right img {
      margin-right: 0px; }
    body#recruitpage .image.right p {
      margin-right: 0px; }
  body#recruitpage .image > a {
    display: inline-block;
    -webkit-transition: opacity 0.2s, background 0.2s;
    transition: opacity 0.2s, background 0.2s;
    cursor: pointer;
    max-width: 100%; }
    body#recruitpage .image > a:hover {
      opacity: 0.7; }
    body#recruitpage .image > a p {
      color: #000000; }
body#recruitpage .stack {
  margin-top: 0px !important; }
body#recruitpage .block {
  margin-top: 20px !important; }
  .sp body#recruitpage .block {
    margin-top: 15px !important; }
body#recruitpage .section {
  margin-top: 80px !important; }
  .sp body#recruitpage .section {
    margin-top: 60px !important; }
body#recruitpage .paragraph {
  margin-top: 20px !important; }

.bold {
  font-weight: bold !important; }

.indext_jinzai {
  width: 100%;
  margin-top: 10px;
  text-align: left;
  line-height: 1.5; }
  .indext_jinzai dt {
    float: left;
    width: 7rem;
    clear: both; }
  .indext_jinzai dd {
    margin-left: 8rem; }
