@charset "UTF-8";
/*!
 * Eric Meyer's Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/)
 * http://cssreset.com
 */
article, aside, details, figcaption, figure,
footer, header, hgroup, main, nav, section, summary {
  display: block;
}

audio, canvas, video {
  display: inline-block;
}

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
main, menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

*, *::before, *::after {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

html {
  position: relative;
  overflow: auto;
  height: 100%;
  font-size: 62.5%;
}

body {
  position: relative;
  height: 100%;
  color: #313346;
  font-size: 1.2rem;
  font-family: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "游ゴシック体", "Yu Gothic", YuGothic, Meiryo, メイリオ, "MS PGothic", "ＭＳ Ｐゴシック", sans-serif;
  line-height: 1.75;
  word-break: break-all;
  background-color: #fff;
  -webkit-text-size-adjust: 100%;
}
@media only screen and (min-width: 768px) {
  body {
    font-size: 1.5rem;
  }
}

input, select, textarea, button {
  font-size: 100%;
  font-family: inherit;
  vertical-align: middle;
}

a {
  color: #111986;
  outline: none;
}
a:link, a:visited {
  text-decoration: none;
}
a:hover, a:active {
  text-decoration: underline;
}

th, td {
  text-align: left;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

iframe {
  max-width: 100%;
}

strong, b {
  font-weight: 700;
}

em {
  color: #e00f36;
  font-style: inherit;
}

small {
  font-size: 75%;
}

.fade {
  -webkit-transition: opacity 0.3s ease-out;
  transition: opacity 0.3s ease-out;
}
.fade:hover, .fade:active {
  opacity: 0.7;
}

.abs {
  position: absolute;
}

.rel {
  position: relative;
}

.left {
  float: left;
}

.right {
  float: right;
}

.clear {
  clear: both;
}

.clearfix::after {
  content: " ";
  display: block;
  clear: both;
}

.tal {
  text-align: left;
}

.tac {
  text-align: center;
}

.tar {
  text-align: right;
}

.vat {
  vertical-align: top;
}

.vam {
  vertical-align: middle;
}

.vab {
  vertical-align: bottom;
}

.hidden {
  display: none;
  visibility: hidden;
}

@media only screen and (min-width: 768px) {
  .visible-xs {
    display: none !important;
  }
}

.visible-sm {
  display: none !important;
}
@media only screen and (min-width: 768px) {
  .visible-sm {
    display: block !important;
  }
}

.visible-md {
  display: none !important;
}
@media only screen and (min-width: 900px) {
  .visible-md {
    display: block !important;
  }
}

.visible-lg {
  display: none !important;
}
@media only screen and (min-width: 960px) {
  .visible-lg {
    display: block !important;
  }
}

.visible-xl {
  display: none !important;
}
@media only screen and (min-width: 1140px) {
  .visible-xl {
    display: block !important;
  }
}

@media only screen and (max-width: 767px) {
  .hidden-xs {
    display: none !important;
  }
}

@media only screen and (min-width: 768px) {
  .hidden-sm {
    display: none !important;
  }
}

@media only screen and (min-width: 900px) {
  .hidden-md {
    display: none !important;
  }
}

@media only screen and (min-width: 960px) {
  .hidden-lg {
    display: none !important;
  }
}

@media only screen and (min-width: 1140px) {
  .hidden-xl {
    display: none !important;
  }
}

.en {
  font-family: Century Gothic, sans-serif;
}

.ja {
  font-family: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "游ゴシック体", "Yu Gothic", YuGothic, Meiryo, メイリオ, "MS PGothic", "ＭＳ Ｐゴシック", sans-serif;
}

.fs10 {
  font-size: 1rem;
}

.fs11 {
  font-size: 1.1rem;
}

.fs12 {
  font-size: 1.2rem;
}

.fs13 {
  font-size: 1.3rem;
}

.fs14 {
  font-size: 1.4rem;
}

.fs15 {
  font-size: 1.5rem;
}

.fs16 {
  font-size: 1.6rem;
}

.fs17 {
  font-size: 1.7rem;
}

.fs18 {
  font-size: 1.8rem;
}

.fs19 {
  font-size: 1.9rem;
}

.fs20 {
  font-size: 2rem;
}

.fs21 {
  font-size: 2.1rem;
}

.fs22 {
  font-size: 2.2rem;
}

.fs23 {
  font-size: 2.3rem;
}

.fs24 {
  font-size: 2.4rem;
}

.fs25 {
  font-size: 2.5rem;
}

.fs26 {
  font-size: 2.6rem;
}

.fs27 {
  font-size: 2.7rem;
}

.fs28 {
  font-size: 2.8rem;
}

.fs29 {
  font-size: 2.9rem;
}

.fs30 {
  font-size: 3rem;
}

.fs36 {
  font-size: 3.6rem;
}

.fs48 {
  font-size: 4.8rem;
}

.fs60 {
  font-size: 6rem;
}

.mt0 {
  margin-top: 0 !important;
}

.mt5 {
  margin-top: 5px !important;
}

.mt10 {
  margin-top: 10px !important;
}

.mt15 {
  margin-top: 15px !important;
}

.mt20 {
  margin-top: 20px !important;
}

.mt25 {
  margin-top: 25px !important;
}

.mt30 {
  margin-top: 30px !important;
}

.mt40 {
  margin-top: 40px !important;
}

.mt50 {
  margin-top: 50px !important;
}

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

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

.mt3em {
  margin-top: 3em !important;
}

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

.mb5 {
  margin-bottom: 5px !important;
}

.mb10 {
  margin-bottom: 10px !important;
}

.mb15 {
  margin-bottom: 15px !important;
}

.mb20 {
  margin-bottom: 20px !important;
}

.mb25 {
  margin-bottom: 25px !important;
}

.mb30 {
  margin-bottom: 30px !important;
}

.mb40 {
  margin-bottom: 40px !important;
}

.mb50 {
  margin-bottom: 50px !important;
}

.mb1em {
  margin-bottom: 1em !important;
}

.mb2em {
  margin-bottom: 2em !important;
}

.mb3em {
  margin-bottom: 3em !important;
}

.ml0 {
  margin-left: 0 !important;
}

.ml5 {
  margin-left: 5px !important;
}

.ml10 {
  margin-left: 10px !important;
}

.ml15 {
  margin-left: 15px !important;
}

.ml20 {
  margin-left: 20px !important;
}

.ml25 {
  margin-left: 25px !important;
}

.ml30 {
  margin-left: 30px !important;
}

.ml40 {
  margin-left: 40px !important;
}

.ml50 {
  margin-left: 50px !important;
}

.mr0 {
  margin-right: 0 !important;
}

.mr5 {
  margin-right: 5px !important;
}

.mr10 {
  margin-right: 10px !important;
}

.mr15 {
  margin-right: 15px !important;
}

.mr20 {
  margin-right: 20px !important;
}

.mr25 {
  margin-right: 25px !important;
}

.mr30 {
  margin-right: 30px !important;
}

.mr40 {
  margin-right: 40px !important;
}

.mr50 {
  margin-right: 50px !important;
}

.mb-xs {
  margin-bottom: 10px !important;
}
@media only screen and (min-width: 768px) {
  .mb-xs {
    margin-bottom: 20px !important;
  }
}

.mb-sm {
  margin-bottom: 20px !important;
}
@media only screen and (min-width: 768px) {
  .mb-sm {
    margin-bottom: 30px !important;
  }
}

.mb-md {
  margin-bottom: 30px !important;
}
@media only screen and (min-width: 768px) {
  .mb-md {
    margin-bottom: 50px !important;
  }
}

.mt-xs {
  margin-top: 10px !important;
}
@media only screen and (min-width: 768px) {
  .mt-xs {
    margin-top: 20px !important;
  }
}

.mt-sm {
  margin-top: 20px !important;
}
@media only screen and (min-width: 768px) {
  .mt-sm {
    margin-top: 30px !important;
  }
}

.mt-md {
  margin-top: 30px !important;
}
@media only screen and (min-width: 768px) {
  .mt-md {
    margin-top: 50px !important;
  }
}

.l-wrapper {
  overflow: hidden;
  position: relative;
}
@media only screen and (min-width: 768px) {
  .l-wrapper {
    min-width: 1140px;
  }
}

.l-header {
  position: fixed;
  z-index: 100;
  width: 100%;
  height: 50px;
  background-color: #111987;
}
.l-header a {
  color: #fff;
}
.l-header a:hover, .l-header a:active {
  text-decoration: none;
}
@media only screen and (min-width: 768px) {
  .l-header {
    position: relative;
    height: auto;
  }
  .l-header .inner {
    position: relative;
    width: 1100px;
    height: 90px;
    margin: 0 auto;
  }
}

.header-logo {
  position: absolute;
  left: 15px;
  top: 13px;
}
.header-logo a {
  display: block;
  overflow: hidden;
  width: 190px;
  height: 28px;
  text-indent: 100%;
  white-space: nowrap;
  background: url(/assets/images/logo_header.png) 0 0 no-repeat;
  background-size: contain;
}
@media only screen and (min-width: 768px) {
  .header-logo {
    left: 0;
    top: 24px;
  }
  .header-logo a {
    width: 328px;
    height: 48px;
  }
}

.nav-open {
  position: absolute;
  right: 15px;
  top: 16px;
  width: 22px;
  height: 18px;
  padding: 0;
  border: none;
  outline: 0;
  background-color: transparent;
  background-image: none;
  cursor: pointer;
}
.nav-open .bar {
  position: absolute;
  top: 0;
  left: 0;
  width: 22px;
  height: 2px;
  background-color: #fff;
  transition: transform 0.3s;
}
.nav-open .bar.b1 {
  margin: 0 0 0 0;
}
.nav-open .bar.b2 {
  width: 17px;
  margin: 8px 0 0 5px;
}
.nav-open .bar.b3 {
  width: 12px;
  margin: 16px 0 0 10px;
}
.nav-opened .nav-open .bar.b1 {
  width: 28px;
  margin: 8px 0 0 -3px;
  transform: rotate(135deg);
}
.nav-opened .nav-open .bar.b2 {
  transform: scale(0);
}
.nav-opened .nav-open .bar.b3 {
  width: 28px;
  margin: 8px 0 0 -3px;
  transform: rotate(-135deg);
}
@media only screen and (min-width: 768px) {
  .nav-open {
    display: none;
  }
}

.nav {
  display: -webkit-flex;
  -webkit-justify-content: center;
  -webkit-align-items: center;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow-y: scroll;
  position: fixed;
  top: -9999px;
  width: 100%;
  height: calc(100vh - 50px);
  background-color: rgba(17, 25, 135, 0.95);
  border-top: 1px solid #8a8ec2;
  opacity: 0;
  -webkit-overflow-scrolling: touch;
  transition: opacity 0.3s, top 0s 1s;
}
@media only screen and (max-height: 600px) {
  .nav {
    -webkit-align-items: flex-start;
    align-items: flex-start;
  }
}
@media only screen and (min-width: 768px) {
  .nav {
    overflow-y: auto;
    position: static;
    top: auto;
    height: auto;
    background-color: transparent;
    border-top: none;
    opacity: 1;
  }
}

.nav-opened {
  overflow: hidden;
}
.nav-opened .nav {
  top: 50px;
  opacity: 1;
  transition: opacity 0.3s, top 0s 0s;
}

.global-nav {
  width: 100%;
}
.global-nav ul li {
  font-size: 1.7rem;
  text-align: center;
}
.global-nav ul li a {
  display: block;
  position: relative;
  padding: 20px 0;
}
.global-nav ul li a::after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  width: 40px;
  height: 1px;
  margin: auto;
  background-color: rgba(255, 255, 255, 0.5);
}
.global-nav ul li:last-child a::after {
  display: none;
}
@media only screen and (min-width: 768px) {
  .global-nav {
    position: absolute;
    right: 0;
    bottom: 16px;
    width: auto;
  }
  .global-nav ul {
    display: -webkit-flex;
    -webkit-justify-content: flex-end;
    display: flex;
    justify-content: flex-end;
  }
  .global-nav ul:hover li a {
    opacity: 0.7;
  }
  .global-nav ul li {
    margin-right: 30px;
    font-size: 1.6rem;
  }
  .global-nav ul li:last-child {
    margin-right: 0;
  }
  .global-nav ul li a {
    position: relative;
    padding: 0;
    line-height: 30px;
    transition: opacity 0.3s;
  }
  .global-nav ul li a::before, .global-nav ul li a::after {
    content: "";
    display: block !important;
    position: absolute;
    width: 0;
    height: 1px;
    margin: auto;
    background-color: #fff;
    transition: width 0.3s;
  }
  .global-nav ul li a::before {
    left: 0;
  }
  .global-nav ul li a::after {
    left: auto;
    right: 0;
  }
  .global-nav ul li a:hover, .global-nav ul li a:active {
    opacity: 1;
  }
  .global-nav ul li a:hover::before, .global-nav ul li a:hover::after, .global-nav ul li a:active::before, .global-nav ul li a:active::after {
    width: 100%;
  }
  .global-nav ul li.active a::before, .global-nav ul li.active a::after {
    width: 100%;
    background-color: #fff;
  }
}

.utility-nav {
  display: none;
}
@media only screen and (min-width: 768px) {
  .utility-nav {
    display: block;
    position: absolute;
    right: 0;
    top: 12px;
  }
  .utility-nav ul {
    display: -webkit-flex;
    -webkit-justify-content: flex-end;
    display: flex;
    justify-content: flex-end;
  }
  .utility-nav ul li {
    margin-right: 24px;
    font-size: 1.2rem;
  }
  .utility-nav ul li:last-child {
    margin-right: 0;
  }
  .utility-nav ul li a {
    transition: opacity 0.3s;
  }
  .utility-nav ul li a:hover, .utility-nav ul li a:active {
    opacity: 0.7;
  }
}

.l-footer {
  position: relative;
  z-index: 90;
  width: 100%;
  color: #fff;
  font-size: 1.2rem;
  background-color: #111987;
}
.l-footer a {
  color: #fff;
  text-decoration: none;
}
@media only screen and (min-width: 768px) {
  .l-footer {
    font-size: 1.4rem;
  }
  .l-footer .inner {
    width: 1100px;
    margin: 0 auto;
  }
}

.footer-nav {
  margin-bottom: 10px;
}
.footer-nav ul li {
  font-size: 1.1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}
.footer-nav ul li a {
  display: block;
  padding: 15px;
  text-decoration: none;
}
@media only screen and (min-width: 768px) {
  .footer-nav {
    margin-bottom: 50px;
  }
  .footer-nav ul {
    display: -webkit-flex;
    -webkit-justify-content: center;
    display: flex;
    justify-content: center;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  }
  .footer-nav ul li {
    font-size: 1.6rem;
    border: none;
  }
  .footer-nav ul li a {
    margin: 20px;
    padding: 0;
    transition: opacity 0.3s;
  }
  .footer-nav ul li a:hover, .footer-nav ul li a:active {
    opacity: 0.7;
  }
  .footer-nav ul li.active a {
    opacity: 0.7;
  }
}

.footer-container {
  padding: 15px;
}
@media only screen and (min-width: 768px) {
  .footer-container {
    display: -webkit-flex;
    display: flex;
    padding: 0;
  }
  .footer-container .footer-left {
    overflow: hidden;
    width: 670px;
  }
  .footer-container .footer-right {
    width: 430px;
  }
}

.footer-logo {
  display: none;
}
@media only screen and (min-width: 768px) {
  .footer-logo {
    display: block;
    width: 100%;
    height: 45px;
    margin-bottom: 35px;
  }
  .footer-logo img {
    width: 171px;
    height: 47px;
  }
}

.footer-company {
  margin-bottom: 20px;
}
.footer-company h2 {
  margin-bottom: 12px;
  font-size: 1.5rem;
  font-weight: 700;
}
.footer-company ul {
  margin-bottom: 12px;
}
.footer-company .email a {
  text-decoration: underline;
}
.footer-company .email a:hover, .footer-company .email a:active {
  text-decoration: none;
}
.footer-company .btn-contact {
  display: inline-block;
}
@media only screen and (min-width: 768px) {
  .footer-company {
    float: left;
    margin: 0 80px 80px 0;
  }
  .footer-company h2 {
    margin-bottom: 20px;
    font-size: 1.8rem;
  }
  .footer-company ul {
    margin-bottom: 30px;
  }
  .footer-company .email {
    margin-top: 10px;
  }
}

.footer-access {
  margin-bottom: 20px;
}
.footer-access p + p {
  margin-top: 10px;
}
@media only screen and (min-width: 768px) {
  .footer-access p + p {
    margin-top: 24px;
  }
}

.footer-map iframe {
  width: 100%;
}
@media only screen and (min-width: 768px) {
  .footer-map {
    margin-bottom: 80px;
  }
}

.footer-bottom {
  padding: 20px;
  text-align: center;
  background-color: #0c115e;
}
.footer-bottom .privacy {
  margin-bottom: 10px;
  font-size: 1.1rem;
}
.footer-bottom .copyright {
  font-size: 0.9rem;
}
@media only screen and (min-width: 768px) {
  .footer-bottom {
    overflow: hidden;
    padding: 25px 0;
    font-size: 1.3rem;
  }
  .footer-bottom .privacy {
    float: right;
    margin-bottom: 0;
  }
  .footer-bottom .privacy a {
    transition: opacity 0.3s;
  }
  .footer-bottom .privacy a:hover, .footer-bottom .privacy a:active {
    opacity: 0.7;
  }
  .footer-bottom .copyright {
    float: left;
  }
}

.l-main {
  position: relative;
  width: 100%;
  padding-top: 50px;
}
@media only screen and (min-width: 768px) {
  .l-main {
    padding-top: 0;
  }
}

.l-container {
  margin-bottom: 40px;
  padding: 0 15px;
}
@media only screen and (min-width: 768px) {
  .l-container {
    width: 1020px;
    margin: 0 auto 100px;
    padding: 0;
  }
  .l-container.extension {
    width: 1120px;
  }
}

.section {
  padding: 25px 0;
  border-bottom: 1px solid #d6d6da;
}
.section:last-child {
  padding-bottom: 0;
  border-bottom: none;
}
@media only screen and (min-width: 768px) {
  .section {
    display: -webkit-flex;
    display: flex;
    padding: 80px 0;
  }
}

.section-header {
  margin-bottom: 15px;
  text-align: center;
}
@media only screen and (min-width: 768px) {
  .section-header {
    width: 280px;
    text-align: left;
  }
}

.section-title {
  font-size: 2.2rem;
}
.section-title::after {
  content: "";
  display: block;
  width: 50px;
  height: 2px;
  margin: 5px auto 0;
  line-height: 1.5;
  background-color: #111987;
}
@media only screen and (min-width: 768px) {
  .section-title {
    font-size: 2.0rem;
  }
  .section-title::after {
    width: 42px;
    margin-left: 0;
  }
}

.section-body .lead {
  margin-bottom: 10px;
}
@media only screen and (min-width: 768px) {
  .section-body {
    width: 840px;
  }
  .section-body .lead {
    margin-bottom: 30px;
  }
}

.btn {
  display: block;
  position: relative;
  padding: 0 28px;
  color: #313346;
  font-size: 1.2rem;
  line-height: 32px;
  text-align: center;
  text-decoration: none !important;
  border: 1px solid #313346;
  outline: 0;
  cursor: pointer;
  vertical-align: middle;
}
.btn.en {
  font-weight: 700;
}
.btn .arrow-right {
  display: inline-block;
  position: relative;
  padding-right: 30px;
}
.btn .arrow-right::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 18px;
  height: 12px;
  margin: auto;
  background: url(/assets/images/img_arrow01.svg) 100% 50% no-repeat;
  background-size: 18px 12px;
}
.btn.reversal {
  color: #fff;
  border-color: #fff;
}
.btn.reversal .arrow-right::after {
  background-image: url(/assets/images/img_arrow02.svg);
}
@media only screen and (min-width: 768px) {
  .btn {
    display: inline-block;
    font-size: 1.3rem;
  }
  .btn::before, .btn::after {
    content: "";
    position: absolute;
    z-index: 2;
    width: 0;
    height: 0;
    border: 1px solid transparent;
    box-sizing: content-box;
  }
  .btn::before {
    top: -1px;
    left: -1px;
  }
  .btn::after {
    bottom: -1px;
    right: -1px;
  }
  .btn .arrow-right {
    padding-right: 40px;
  }
  .btn .arrow-right::after {
    width: 26px;
    height: 16px;
    background-size: 26px 16px;
    transition: transform 0.3s;
  }
  .btn:hover, .btn:active {
    border-color: transparent;
  }
  .btn:hover::before, .btn:hover::after, .btn:active::before, .btn:active::after {
    width: 100%;
    height: 100%;
  }
  .btn:hover::before, .btn:active::before {
    border-top-color: #313346;
    border-left-color: #313346;
    transition: width 0.3s, height 0.3s 0.3s, border-left-color 0s 0.3s;
  }
  .btn:hover::after, .btn:active::after {
    border-bottom-color: #313346;
    border-right-color: #313346;
    transition: width 0.3s, height 0.3s 0.3s, border-right-color 0s 0.3s;
  }
  .btn:hover .arrow-right::after, .btn:active .arrow-right::after {
    transform: translateX(8px);
    transition: transform 0.6s 0.1s;
  }
  .btn.reversal:hover::before, .btn.reversal:active::before {
    border-top-color: #fff;
    border-left-color: #fff;
  }
  .btn.reversal:hover::after, .btn.reversal:active::after {
    border-bottom-color: #fff;
    border-right-color: #fff;
  }
}

.btn-box {
  display: block;
  position: relative;
  height: 34px;
  color: #313346;
  font-size: 1.2rem;
  line-height: 32px;
  text-align: center;
  text-decoration: none !important;
  outline: 0;
  cursor: pointer;
  vertical-align: middle;
  -webkit-perspective: 300px;
  perspective: 300px;
  transition: all 0.3s;
}
.btn-box.en {
  font-weight: 700;
}
.btn-box > span {
  display: block;
  width: 100%;
  height: 34px;
  padding: 0 28px;
  line-height: 32px;
  transition: all 0.3s;
  pointer-events: none;
}
.btn-box > span .arrow-right {
  display: inline-block;
  position: relative;
  padding-right: 30px;
}
.btn-box > span .arrow-right::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 18px;
  height: 12px;
  margin: auto;
  background: url(/assets/images/img_arrow01.svg) 100% 50% no-repeat;
  background-size: 18px 12px;
}
.btn-box > span:nth-child(1) {
  color: #fff;
  background-color: #111987;
  border: 1px solid #111987;
  transform: rotateX(90deg);
  transform-origin: 50% 50% -17px;
}
.btn-box > span:nth-child(1) .arrow-right::after {
  background-image: url(/assets/images/img_arrow02.svg);
}
.btn-box > span:nth-child(2) {
  position: absolute;
  top: 0;
  color: #313346;
  background-color: #fff;
  border: 1px solid #313346;
  transform: rotateX(0deg);
  transform-origin: 50% 50% -17px;
}
.btn-box.reversal > span:nth-child(1) {
  color: #fff;
  background-color: #3039b4;
  border-color: #3039b4;
}
.btn-box.reversal > span:nth-child(1) .arrow-right::after {
  background-image: url(/assets/images/img_arrow02.svg);
}
.btn-box.reversal > span:nth-child(2) {
  color: #fff;
  background-color: #111987;
  border-color: #fff;
}
.btn-box.reversal > span:nth-child(2) .arrow-right::after {
  background-image: url(/assets/images/img_arrow02.svg);
}
@media only screen and (min-width: 768px) {
  .btn-box {
    display: inline-block;
    font-size: 1.3rem;
  }
  .btn-box > span .arrow-right {
    padding-right: 40px;
  }
  .btn-box > span .arrow-right::after {
    width: 26px;
    height: 16px;
    background-size: 26px 16px;
  }
  .btn-box:hover > span:nth-child(1), .btn-box:active > span:nth-child(1) {
    transform: rotateX(0deg);
  }
  .btn-box:hover > span:nth-child(2), .btn-box:active > span:nth-child(2) {
    background-color: #111987;
    transform: rotateX(-90deg);
  }
  .btn-box.reversal:hover > span:nth-child(1), .btn-box.reversal:active > span:nth-child(1) {
    transform: rotateX(0deg);
  }
  .btn-box.reversal:hover > span:nth-child(2), .btn-box.reversal:active > span:nth-child(2) {
    background-color: #fff;
    transform: rotateX(-90deg);
    opacity: 0;
  }
}

.table {
  width: 100%;
}
.table tr {
  border-top: 1px solid #d6d6da;
  border-bottom: 1px solid #d6d6da;
}
.table tr th {
  padding: 8px;
  font-weight: 700;
  background-color: #f0f0f3;
}
.table tr td {
  padding: 8px;
  background-color: #fff;
  border-left: 1px solid #d6d6da;
}
@media only screen and (max-width: 767px) {
  .table.flex {
    border-bottom: 1px solid #d6d6da;
  }
  .table.flex tr {
    display: -webkit-flex;
    -webkit-flex-wrap: wrap;
    display: flex;
    flex-wrap: wrap;
    border: none;
  }
  .table.flex tr th {
    display: block;
    width: 100%;
    border-top: 1px solid #d6d6da;
    border-bottom: 1px solid #d6d6da;
  }
  .table.flex tr td {
    display: block;
    width: 42%;
    border-left: none;
  }
  .table.flex tr td + td {
    border-left: 1px solid #d6d6da;
  }
  .table.flex tr td:last-child {
    width: 16%;
  }
}
@media only screen and (min-width: 768px) {
  .table {
    table-layout: fixed;
  }
  .table tr th {
    padding: 10px 20px;
  }
  .table tr th.block {
    display: block;
  }
  .table tr td {
    padding: 10px 20px;
  }
}

@media only screen and (min-width: 768px) {
  .main-header {
    position: relative;
  }
}

.page-title {
  display: -webkit-flex;
  -webkit-justify-content: center;
  -webkit-align-items: center;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 150px;
  color: #fff;
  text-align: center;
  background-color: #000;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: cover;
}
.page-title h1 a, .page-title h2 a {
  color: #fff;
}
.page-title h1 a:hover, .page-title h2 a:hover {
  color: #fff;
  text-decoration: none;
}
.page-title h1 span, .page-title h2 span {
  display: block;
}
.page-title h1 .en, .page-title h2 .en {
  font-size: 2.5rem;
  line-height: 1.2;
}
.page-title h1 .ja, .page-title h2 .ja {
  font-size: 1.4rem;
  line-height: 1.5;
}
.page-title h1 .ja::before, .page-title h2 .ja::before {
  content: "";
  display: block;
  width: 38px;
  height: 1px;
  margin: 10px auto;
  background-color: #fff;
}
@media only screen and (min-width: 768px) {
  .page-title {
    max-width: 1900px;
    height: 350px;
    margin: 0 auto;
  }
  .page-title h1 .en {
    font-size: 4.4rem;
  }
  .page-title h1 .ja {
    font-size: 1.8rem;
  }
  .page-title h1 .ja::before {
    width: 76px;
    margin: 15px auto;
  }
  .page-title h2 .en {
    font-size: 3.4rem;
  }
  .page-title h2 .ja {
    font-size: 1.8rem;
  }
  .page-title h2 .ja::before {
    width: 76px;
    margin: 15px auto;
  }
}
@media only screen and (min-width: 768px) {
  .page-title.short {
    height: 250px;
  }
}

.breadcrumbs {
  padding: 10px 15px;
  background-color: #eceef3;
}
.breadcrumbs ol li {
  display: inline-block;
  font-size: 1.0rem;
}
.breadcrumbs ol li::after {
  content: ">";
  color: #313346;
}
.breadcrumbs ol li:last-child::after {
  display: none;
}
.breadcrumbs ol li:last-child a {
  color: #313346;
  text-decoration: none !important;
  pointer-events: none;
}
@media only screen and (min-width: 768px) {
  .breadcrumbs {
    position: absolute;
    width: 1100px;
    left: 0;
    right: 0;
    bottom: 15px;
    margin: auto;
    padding: 0;
    background-color: transparent;
  }
  .breadcrumbs ol li {
    color: #fff;
    font-size: 1.3rem;
  }
  .breadcrumbs ol li::after {
    color: #fff;
  }
  .breadcrumbs ol li a {
    color: #fff !important;
  }
  .breadcrumbs ol li a:link, .breadcrumbs ol li a:visited {
    text-decoration: underline;
  }
  .breadcrumbs ol li a:hover, .breadcrumbs ol li a:active {
    text-decoration: none;
  }
}

.nav-links {
  overflow: hidden;
  margin: 30px 0;
  text-align: center;
}
.nav-links .screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  height: 1px;
  overflow: hidden;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}
.nav-links .page-numbers {
  display: none;
  line-height: 1;
  text-decoration: none;
}
.nav-links .page-numbers.current {
  display: inline-block;
  padding: 10px;
  color: #313346;
}
.nav-links .page-numbers.current .screen-reader-text {
  clip: auto;
  height: auto;
  overflow: auto;
  position: relative !important;
  width: auto;
}
.nav-links .page-numbers.prev, .nav-links .page-numbers.next {
  display: inline-block;
  padding: 10px 15px;
  line-height: 1;
  background-color: #eceef3;
}
.nav-links .page-numbers.prev {
  float: left;
}
.nav-links .page-numbers.next {
  float: right;
}
.nav-links .page-numbers .icon {
  display: inline-block;
  fill: currentColor;
  height: 1em;
  position: relative;
  vertical-align: middle;
  width: 1em;
}
.nav-links .page-numbers svg:not(:root) {
  overflow: hidden;
}
@media only screen and (min-width: 768px) {
  .nav-links {
    width: 420px;
    margin: 35px auto;
  }
  .nav-links .page-numbers {
    display: inline-block;
    min-width: 40px;
    height: 40px;
    margin: 0 3px;
    padding: 11px 5px;
    font-size: 1.3rem;
    text-align: center;
    border: 2px solid #eceef3;
    background-color: #eceef3;
    transition: border 0.3s;
  }
  .nav-links .page-numbers:hover, .nav-links .page-numbers.active {
    border-color: #111987;
  }
  .nav-links .page-numbers.current {
    padding: 11px 5px;
    color: #fff;
    background-color: #111987;
    border-color: #111987 !important;
  }
  .nav-links .page-numbers.current .screen-reader-text {
    clip: rect(1px, 1px, 1px, 1px);
    height: 1px;
    overflow: hidden;
    position: absolute !important;
    width: 1px;
  }
  .nav-links .page-numbers.dots {
    color: #313346;
    background-color: transparent;
    border-color: transparent !important;
  }
  .nav-links .page-numbers.prev, .nav-links .page-numbers.next {
    margin: 0;
    padding: 11px 20px;
  }
  .nav-links .page-numbers .icon {
    top: -0.14em;
    width: 1.4em;
    height: 1.4em;
  }
}

.form-table {
  width: 100%;
  margin: 25px 0;
  border-top: 2px solid #313346;
  border-bottom: 2px solid #313346;
}
.form-table tr {
  display: block;
  overflow: hidden;
}
.form-table tr + tr {
  border-top: 1px dotted #d6d6da;
}
.form-table tr th {
  display: block;
  padding: 12px 0 8px;
}
.form-table tr td {
  display: block;
  padding: 0 0 12px;
}
.form-table .mwform-tel-field {
  display: block;
}
.form-table input[type='text'], .form-table textarea {
  width: 100%;
  max-width: 100%;
  padding: 8px;
  border: 1px solid #d6d6da;
}
.form-table input[type='text'].contact-tell, .form-table input[type='text'].contact-fax, .form-table textarea.contact-tell, .form-table textarea.contact-fax {
  width: 29.5%;
}
@media only screen and (min-width: 768px) {
  .form-table {
    margin-bottom: 50px;
  }
  .form-table tr {
    display: table-row;
  }
  .form-table tr th {
    display: table-cell;
    width: 18%;
    padding: 15px 15px 15px 0;
    vertical-align: top;
  }
  .form-table tr td {
    display: table-cell;
    padding: 15px 0 15px 15px;
  }
  .form-table input[type='text'], .form-table textarea {
    padding: 10px;
  }
}

.form-button {
  margin: 25px auto 50px;
  text-align: center;
}
.form-button input[type='submit'] {
  width: 67%;
  padding: 0 15%;
  color: #fff;
  font-size: 1.4rem;
  line-height: 50px;
  background-color: #111987;
  border: none;
  outline: 0;
  cursor: pointer;
}
.form-button input[type='submit'] + input[type='submit'] {
  margin-top: 16px;
}
.form-button .btn-next {
  background: url(/assets/images/img_arrow02.svg) 90% 50% no-repeat;
  background-size: 18px 12px;
}
.form-button .btn-back {
  background: url(/assets/images/img_arrow02_rev.svg) 10% 50% no-repeat;
  background-size: 18px 12px;
}
@media only screen and (min-width: 768px) {
  .form-button {
    overflow: hidden;
    width: 605px;
    margin: 50px auto 100px;
  }
  .form-button input[type='submit'] {
    width: 270px;
    padding: 0 60px;
    font-size: 1.6rem;
    line-height: 55px;
    transition: background 0.3s;
  }
  .form-button input[type='submit'] + input[type='submit'] {
    margin-top: 0;
  }
  .form-button input[type='submit']:hover, .form-button input[type='submit']:active {
    background-color: #3039b4;
  }
  .form-button input[type='submit']:first-child {
    float: left;
  }
  .form-button input[type='submit']:last-child {
    float: right;
  }
  .form-button input[type='submit']:only-child {
    float: none;
  }
  .form-button .btn-next, .form-button .btn-back {
    background-size: 26px 16px;
  }
}

.pagetop {
  text-align: center;
}
.pagetop a {
  display: inline-block;
  overflow: hidden;
  position: relative;
  overflow: hidden;
  width: 118px;
  height: 59px;
  text-indent: 100%;
  white-space: nowrap;
  vertical-align: bottom;
}
.pagetop a::before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  top: 40px;
  width: 16px;
  height: 24px;
  margin: auto;
  background: url(/assets/images/img_arrow03.svg) 0 0 no-repeat;
  background-size: cover;
}
.pagetop a::after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 118px;
  height: 118px;
  background: url(/assets/images/img_gear01.png) 0 0 no-repeat;
  background-size: cover;
}
@media only screen and (min-width: 768px) {
  .pagetop a::before {
    transition: transform 0.3s;
  }
  .pagetop a:hover::before, .pagetop a:active::before {
    transform: translateY(-4px);
  }
  .pagetop a:hover::after, .pagetop a:active::after {
    animation-name: rotateGear;
    animation-duration: 5s;
    animation-iteration-count: infinite;
    animation-timing-function: linear;
  }
}

@keyframes rotateGear {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.showcase {
  padding: 30px 15px 0;
  background-color: #eceef3;
}
@media only screen and (min-width: 768px) {
  .showcase {
    padding: 70px 0 0;
  }
}

.anchor-nav, .local-nav {
  position: relative;
  margin-top: 10px;
  padding-bottom: 10px;
  text-align: center;
  border-bottom: 1px solid #d6d6da;
}
.anchor-nav ul li, .local-nav ul li {
  display: inline-block;
  padding: 0 12px;
  line-height: 1.2;
}
.anchor-nav ul li + li, .local-nav ul li + li {
  border-left: 1px solid #313346;
}
.anchor-nav ul li a, .local-nav ul li a {
  color: #313346;
}
@media only screen and (min-width: 768px) {
  .anchor-nav, .local-nav {
    margin-top: 30px;
    padding-bottom: 0;
    border-bottom: none;
  }
  .anchor-nav ul li, .local-nav ul li {
    padding: 0 15px;
    line-height: 1.5;
  }
}

.local-nav ul li {
  margin-bottom: 5px;
}
.local-nav ul li span {
  position: relative;
}
.local-nav ul li span::after {
  content: "";
  display: block;
  position: absolute;
  bottom: -5px;
  width: 100%;
  height: 2px;
  background-color: #111987;
}

.information-list {
  margin: 20px 0 30px;
}
@media only screen and (min-width: 768px) {
  .information-list {
    margin-top: 30px;
  }
}

.information-item {
  border-bottom: 1px dotted #d6d6da;
}
.information-item a {
  display: block;
  overflow: hidden;
  padding: 10px 0;
  text-decoration: none;
}
.information-item .date {
  float: left;
  margin-bottom: 5px;
  color: #313346;
  line-height: 22px;
}
.information-item .category {
  float: left;
  width: 10em;
  margin: 0 0 5px 10px;
  padding: 0 5px;
  font-size: 1.1rem;
  line-height: 22px;
  text-align: center;
  background-color: #eceef3;
  border-radius: 11px;
}
.information-item .description {
  clear: both;
}
@media only screen and (min-width: 768px) {
  .information-item a {
    padding: 20px 0;
    transition: background 0.3s;
  }
  .information-item a:hover, .information-item a:active {
    background-color: #eceef3;
  }
  .information-item .date {
    width: 100px;
    margin-bottom: 0;
    padding-left: 10px;
    line-height: 30px;
  }
  .information-item .category {
    float: left;
    width: 140px;
    margin: 0 0 0 60px;
    padding: 0 10px;
    color: #fff;
    font-size: 1.3rem;
    line-height: 30px;
    text-align: center;
    background-color: #111987;
    border-radius: 15px;
  }
  .information-item .description {
    clear: none;
    float: left;
    width: 670px;
    margin-left: 50px;
  }
}

.contact-item {
  text-align: center;
}
.contact-item h2 {
  font-size: 2.2rem;
  line-height: 1.5;
}
.contact-item h2::before {
  content: "";
  display: block;
  width: 90px;
  height: 90px;
  margin: 0 auto 15px;
  background-color: #111987;
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: 50px 53px;
  border-radius: 50%;
}
.contact-item h2::after {
  content: "";
  display: block;
  width: 50px;
  height: 1px;
  margin: 10px auto 20px;
  background-color: #111987;
}
.contact-item h2.icon-form::before {
  background-image: url(/assets/images/img_contact01.svg);
}
.contact-item h2.icon-email::before {
  background-image: url(/assets/images/img_contact02.svg);
}
.contact-item h2.icon-tel::before {
  background-image: url(/assets/images/img_contact03.svg);
}
.contact-item h2.icon-fax::before {
  background-image: url(/assets/images/img_contact04.svg);
}
@media only screen and (min-width: 768px) {
  .contact-item h2 {
    font-size: 2.0rem;
  }
}

.contact-information {
  margin-bottom: 5px;
  color: #111987;
  font-size: 1.9rem;
  line-height: 1.2;
}
@media only screen and (min-width: 768px) {
  .contact-information {
    font-size: 2.2rem;
  }
}

.contact-form {
  margin: 30px 0 60px;
}
@media only screen and (min-width: 768px) {
  .contact-form {
    margin-bottom: 40px 0 120px;
  }
}

.contact-list .contact-item {
  margin-bottom: 25px;
  padding-bottom: 25px;
  border-bottom: 1px solid #d6d6da;
}
@media only screen and (min-width: 768px) {
  .contact-list {
    display: -webkit-flex;
    display: flex;
  }
  .contact-list .contact-item {
    width: 33.33333%;
    margin-bottom: 0;
    padding: 25px;
    border-top: 1px solid #d6d6da;
  }
  .contact-list .contact-item + .contact-item {
    border-left: 1px solid #d6d6da;
  }
}

.error {
  color: #e00f36;
}

.facilities-item {
  overflow: hidden;
}
.facilities-item .lead {
  margin-bottom: 10px;
}
.facilities-item .table {
  margin-bottom: 15px;
}
@media only screen and (min-width: 768px) {
  .facilities-item .lead {
    margin-bottom: 30px;
  }
  .facilities-item .table {
    margin-bottom: 40px;
  }
  .facilities-item .btn {
    float: right;
  }
  .facilities-item .btn-box {
    float: right;
  }
}

.facilities-figure {
  margin-bottom: 15px;
}
.facilities-figure figure img {
  width: 100%;
  margin-bottom: 5px;
}
.facilities-figure figure figcaption {
  margin-bottom: 10px;
  font-size: 1.0rem;
  text-align: right;
}
@media only screen and (min-width: 768px) {
  .facilities-figure {
    overflow: hidden;
    margin-bottom: 15px;
  }
  .facilities-figure figure {
    width: 418px;
  }
  .facilities-figure figure:nth-child(odd) {
    float: left;
  }
  .facilities-figure figure:nth-child(even) {
    float: right;
  }
  .facilities-figure figure figcaption {
    font-size: 1.2rem;
  }
}

.philosophy {
  padding: 15px 0;
  border-bottom: 1px solid #d6d6da;
}
@media only screen and (min-width: 768px) {
  .philosophy {
    padding: 30px 0 55px;
  }
}

@media only screen and (min-width: 768px) {
  .philosophy-item {
    width: 1120px;
    height: 680px;
    padding: 110px 70px 0;
    color: #fff;
    background: url(/assets/images/pic_philosophy01.jpg) 0 0 no-repeat;
  }
}

.philosophy-intro {
  margin-bottom: 10px;
  padding: 40px 18px 50px;
  color: #fff;
  background: url(/assets/images/pic_philosophy01.jpg) 50% 0 no-repeat;
  background-size: cover;
}
.philosophy-intro h2 {
  margin-bottom: 5px;
}
.philosophy-intro h2 span {
  display: block;
}
.philosophy-intro h2 .en {
  font-size: 1.5rem;
}
.philosophy-intro h2 .ja {
  font-size: 1.1rem;
}
.philosophy-intro .copy {
  position: relative;
  font-size: 2.5rem;
  font-family: "Hiragino Mincho ProN", "ヒラギノ明朝 ProN W3", "游明朝体", "Yu Mincho", YuMincho, "HG明朝E", "MS PMincho", "ＭＳ Ｐ明朝", serif;
  line-height: 1.3;
  /*
  		&::before, &::after {
  			content: "”";
  			position: absolute;
  		}
  
  		&::before {
  			left: -0.5em;
  		}*/
}
@media only screen and (min-width: 768px) {
  .philosophy-intro {
    margin-bottom: 20px;
    padding: 0;
    background: none;
  }
  .philosophy-intro h2 {
    margin-bottom: 40px;
  }
  .philosophy-intro h2 span {
    display: inline;
  }
  .philosophy-intro h2 .en {
    font-size: 2.4rem;
  }
  .philosophy-intro h2 .ja {
    margin-left: 15px;
    font-size: 1.4rem;
  }
  .philosophy-intro .copy {
    font-size: 3.8rem;
  }
}

.philosophy-text p {
  margin-bottom: 10px;
}
@media only screen and (min-width: 768px) {
  .philosophy-text {
    width: 510px;
  }
  .philosophy-text p {
    margin-bottom: 20px;
    line-height: 2.0;
  }
}

.row-list {
  overflow: hidden;
  line-height: 1.6;
}
.row-list > dt {
  margin-bottom: 3px;
  font-weight: 700;
}
.row-list > dd {
  overflow: hidden;
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px dotted #d6d6da;
}
.row-list > dd:last-of-type {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}
.row-list .executive {
  float: left;
}
.row-list .executive dt {
  clear: both;
  float: left;
  width: 8em;
}
.row-list .executive dd {
  margin-left: 8em;
}
@media only screen and (min-width: 768px) {
  .row-list > dt {
    clear: both;
    float: left;
    width: 130px;
    margin-bottom: 20px;
  }
  .row-list > dt:last-of-type {
    margin-bottom: 0;
  }
  .row-list > dd {
    margin: 0 0 20px 140px;
    padding-bottom: 0;
    border-bottom: none;
  }
}

.flow-item {
  position: relative;
  margin-bottom: 20px;
  padding: 10px 15px 15px;
  color: #fff;
  text-align: center;
  background-color: #111987;
}
.flow-item::after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  bottom: -14px;
  width: 0;
  height: 0;
  margin: auto;
  border-style: solid;
  border-width: 14px 12px 0 12px;
  border-color: #111987 transparent transparent transparent;
}
.flow-item:last-child {
  margin-bottom: 0;
}
.flow-item:last-child::after {
  display: none;
}
@media only screen and (min-width: 768px) {
  .flow-item {
    display: table;
    width: 100%;
    padding: 0;
    text-align: left;
  }
  .flow-item::after {
    left: 90px;
    right: auto;
    bottom: -10px;
    border-width: 10px 8px 0 8px;
  }
  .flow-item > div {
    display: table-cell;
    margin: 0;
    vertical-align: middle;
  }
}

.flow-count {
  margin-bottom: 5px;
  font-size: 2.3rem;
  line-height: 1.5;
}
@media only screen and (min-width: 768px) {
  .flow-count {
    width: 50px;
    padding: 12px 0;
    font: 2.6rem;
    text-align: center;
  }
}

.flow-pict {
  margin-bottom: 5px;
}
.flow-pict span {
  display: inline-block;
  overflow: hidden;
  width: 80px;
  height: 80px;
  background-color: #fff;
  border-radius: 50%;
}
@media only screen and (min-width: 768px) {
  .flow-pict {
    width: 110px;
    padding: 12px 0;
  }
  .flow-pict span {
    width: 95px;
    height: 95px;
    vertical-align: middle;
  }
}

.flow-text h3 {
  margin-bottom: 5px;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.5;
}
.flow-text p {
  text-align: left;
}
.flow-text .btn {
  margin: 5px 0 10px;
}
@media only screen and (min-width: 768px) {
  .flow-text {
    padding: 12px 20px 12px 0;
  }
  .flow-text .btn {
    margin-bottom: 0;
  }
}

.flow-image {
  margin-top: 5px;
}
@media only screen and (min-width: 768px) {
  .flow-image {
    width: 190px;
    padding: 0;
  }
}

.related-links {
  overflow: hidden;
  margin-bottom: 40px;
}
@media only screen and (min-width: 768px) {
  .related-links {
    width: 1120px;
    margin: 0 auto 40px;
  }
}

.related-item {
  margin-bottom: 10px;
}
.related-item a {
  display: -webkit-flex;
  display: flex;
  color: #313346;
  text-decoration: none;
  background-color: #fff;
}
@media only screen and (min-width: 768px) {
  .related-item {
    width: 550px;
    margin-bottom: 0;
  }
  .related-item:nth-child(odd) {
    float: left;
  }
  .related-item:nth-child(even) {
    float: right;
  }
  .related-item a {
    transition: all 0.3s;
  }
  .related-item a:hover, .related-item a:active {
    color: #fff;
    background-color: #111987;
  }
}

.related-image {
  display: -webkit-flex;
  -webkit-align-items: center;
  display: flex;
  align-items: center;
  width: 120px;
}
.related-image img {
  width: 120px;
}
@media only screen and (min-width: 768px) {
  .related-image {
    width: 292px;
  }
  .related-image img {
    width: 292px;
  }
}

.related-text {
  display: -webkit-flex;
  -webkit-align-items: center;
  display: flex;
  align-items: center;
  width: calc(100% - 120px);
  padding: 15px;
}
.related-text p {
  position: relative;
  width: 100%;
  font-size: 1.4rem;
  font-weight: 700;
}
.related-text p .icon {
  display: block;
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 1em;
  height: 1em;
  margin: auto;
  fill: currentColor;
}
.related-text p svg:not(:root) {
  overflow: hidden;
}
@media only screen and (min-width: 768px) {
  .related-text {
    width: calc(100% - 292px);
    padding: 20px;
  }
  .related-text p {
    font-size: 1.6rem;
  }
  .related-text p .icon {
    width: 1.4em;
    height: 1.4em;
  }
}

.inspection-item {
  overflow: hidden;
  margin-bottom: 10px;
  border: 4px solid #111987;
}
.inspection-item:last-child {
  margin-bottom: 0;
}
.inspection-item h3 {
  position: relative;
  padding: 6px 5px 10px;
  color: #fff;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.5;
  background-color: #111987;
}
@media only screen and (min-width: 768px) {
  .inspection-item {
    margin-bottom: 20px;
  }
  .inspection-item h3 {
    padding: 16px 24px 20px;
    font-size: 1.8rem;
  }
}

.inspection-text {
  padding: 15px;
}
.inspection-text dl {
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid #d6d6da;
}
.inspection-text dl:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}
.inspection-text dl dt {
  font-weight: 700;
}
.inspection-text dl dd img {
  width: 70px;
}
.inspection-text dl dd span {
  display: inline-block;
  width: calc(100% - 70px);
  padding-left: 15px;
  line-height: 1.5;
  vertical-align: middle;
}
@media only screen and (min-width: 768px) {
  .inspection-text {
    float: left;
    width: 396px;
    padding: 15px 18px;
  }
  .inspection-text dl dt {
    margin-bottom: 3px;
  }
  .inspection-text dl dd img {
    width: 80px;
  }
  .inspection-text dl dd span {
    width: calc(100% - 80px);
  }
}

.inspection-image {
  max-width: 500px;
  padding: 0 15px 15px;
}
.inspection-image a {
  display: block;
  position: relative;
  border: 1px solid #d6d6da;
}
.inspection-image a .btn-pdf {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 10px;
  width: 230px;
  height: 40px;
  margin: auto;
  color: #fff;
  font-weight: 700;
  line-height: 40px;
  text-align: center;
  background-color: rgba(17, 25, 135, 0.9);
}
.inspection-image a .btn-pdf span {
  display: inline-block;
  padding-right: 32px;
  background: url(/assets/images/img_pdf.svg) 100% 50% no-repeat;
  background-size: 21px 23px;
}
@media only screen and (min-width: 768px) {
  .inspection-image {
    float: right;
    width: 430px;
    padding: 12px 12px 12px 0;
  }
  .inspection-image a:after {
    content: "";
    display: block;
    position: absolute;
    left: -1px;
    right: -1px;
    top: -1px;
    bottom: -1px;
    background-color: #111987;
    opacity: 0;
    transition: opacity 0.3s;
  }
  .inspection-image a .btn-pdf {
    width: 396px;
    height: 60px;
    font-size: 1.3rem;
    line-height: 60px;
    transition: background 0.3s;
  }
  .inspection-image a .btn-pdf span {
    padding-right: 42px;
    background-size: 35px 38px;
  }
  .inspection-image a:hover::after {
    opacity: 0.1;
  }
  .inspection-image a:hover .btn-pdf {
    background-color: #111987;
  }
}

.gear-group {
  margin-bottom: 30px;
}
.gear-group:last-child {
  margin-bottom: 0;
}
@media only screen and (min-width: 768px) {
  .gear-group {
    margin-bottom: 40px;
  }
}

.figure-list {
  margin-bottom: 10px;
  padding: 30px 15px 15px;
  color: #fff;
  background-color: #111987;
  background-position: 0 0;
  background-repeat: no-repeat;
  background-size: 100% auto;
}
.figure-list:last-child {
  margin-bottom: 0;
}
.figure-list#gear01 {
  background-image: url(/assets/images/bg_gear01_01.png);
}
.figure-list#gear02 {
  background-image: url(/assets/images/bg_gear02_01.png);
}
.figure-list#gear03 {
  background-image: url(/assets/images/bg_gear03_01.png);
}
.figure-list h3 {
  margin-bottom: 30px;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.5;
}
.figure-list p {
  margin: -25px 0 10px;
}
.figure-list ul {
  display: -webkit-flex;
  -webkit-flex-wrap: wrap;
  display: flex;
  flex-wrap: wrap;
  position: relative;
  margin: -5px;
}
.figure-list ul li {
  width: 50%;
  padding: 5px;
}
.figure-list figure img {
  width: 100%;
}
.figure-list figure figcaption {
  margin-top: 8px;
  font-size: 1.1rem;
  line-height: 1.3;
}
@media only screen and (min-width: 768px) {
  .figure-list {
    padding: 70px 20px 20px;
  }
  .figure-list#gear01 {
    background-image: url(/assets/images/bg_gear01_02.png);
  }
  .figure-list#gear02 {
    background-image: url(/assets/images/bg_gear02_02.png);
  }
  .figure-list#gear03 {
    background-image: url(/assets/images/bg_gear03_02.png);
  }
  .figure-list h3 {
    margin-bottom: 60px;
    font-size: 2.4rem;
  }
  .figure-list p {
    margin: -50px 0 20px;
  }
  .figure-list ul {
    margin: -2px;
  }
  .figure-list ul li {
    width: 33.3333%;
    padding: 2px;
  }
  .figure-list figure figcaption {
    margin-bottom: 20px;
    font-size: 1.4rem;
  }
}

.entry {
  padding: 25px 0;
}
@media only screen and (min-width: 768px) {
  .entry {
    padding: 80px 0;
  }
}
.entry h1 {
  font-size: 2em;
  margin: 0.67em 0 0.1em;
}
.entry h1, .entry h2, .entry h3, .entry h4, .entry h5, .entry h6,
.entry .h1, .entry .h2, .entry .h3, .entry .h4, .entry .related-posts .entry__title, .entry .sidebar-widget__title, .entry .reply-title, .entry .h5, .entry .h6 {
  font-family: inherit;
  font-weight: 500;
  line-height: 1.3;
  color: inherit;
}
.entry h1 small,
.entry h1 .small, .entry h2 small,
.entry h2 .small, .entry h3 small,
.entry h3 .small, .entry h4 small,
.entry h4 .small, .entry h5 small,
.entry h5 .small, .entry h6 small,
.entry h6 .small,
.entry .h1 small,
.entry .h1 .small, .entry .h2 small,
.entry .h2 .small, .entry .h3 small,
.entry .h3 .small, .entry .h4 small,
.entry .related-posts .entry__title small,
.entry .sidebar-widget__title small,
.entry .reply-title small,
.entry .h4 .small, .entry .related-posts .entry__title .small, .entry .sidebar-widget__title .small, .entry .reply-title .small, .entry .h5 small,
.entry .h5 .small, .entry .h6 small,
.entry .h6 .small {
  font-weight: normal;
  line-height: 1;
  color: #777777;
}
.entry h1, .entry .h1,
.entry h2, .entry .h2,
.entry h3, .entry .h3 {
  margin-top: 23px;
  margin-bottom: 11.5px;
}
.entry h1 small,
.entry h1 .small, .entry .h1 small,
.entry .h1 .small,
.entry h2 small,
.entry h2 .small, .entry .h2 small,
.entry .h2 .small,
.entry h3 small,
.entry h3 .small, .entry .h3 small,
.entry .h3 .small {
  font-size: 65%;
}
.entry h4, .entry .h4,
.entry .related-posts .entry__title,
.entry .sidebar-widget__title,
.entry .reply-title,
.entry h5, .entry .h5,
.entry h6, .entry .h6 {
  margin-top: 11.5px;
  margin-bottom: 11.5px;
}
.entry h4 small,
.entry h4 .small, .entry .h4 small,
.entry .related-posts .entry__title small,
.entry .sidebar-widget__title small,
.entry .reply-title small,
.entry .h4 .small,
.entry .related-posts .entry__title .small,
.entry .sidebar-widget__title .small,
.entry .reply-title .small,
.entry h5 small,
.entry h5 .small, .entry .h5 small,
.entry .h5 .small,
.entry h6 small,
.entry h6 .small, .entry .h6 small,
.entry .h6 .small {
  font-size: 75%;
}
.entry h1, .entry .h1 {
  font-size: 170%;
}
.entry h2, .entry .h2 {
  font-size: 150%;
}
.entry h3, .entry .h3 {
  font-size: 130%;
}
.entry h4, .entry .h4, .entry .related-posts .entry__title, .entry .sidebar-widget__title, .entry .reply-title {
  font-size: 110%;
}
.entry p {
  margin: 0 0 11.5px;
}
.entry .information-item {
  overflow: hidden;
  padding-bottom: 1em;
  margin-bottom: 1em;
}
.entry .information-item .date {
  padding-left: 0.2em;
  width: 95%;
}
.entry .information-item h1 {
  margin: 0;
  clear: both;
}
.entry hr {
  border-bottom: 1px solid #d6d6da;
  border-top: 0;
  margin: 35px 0;
}
.entry .alignleft {
  display: inline;
  float: left;
  margin-right: 1.5em;
}
.entry .alignright {
  display: inline;
  float: right;
  margin-left: 1.5em;
}
.entry .aligncenter {
  clear: both;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.page-information .entry {
  padding: 5px 0 0;
}
@media only screen and (min-width: 768px) {
  .page-information .entry {
    padding: 30px 0 0;
  }
}

.page-home section .inner {
  padding: 30px 15px;
}
.page-home section h2 {
  margin-bottom: 20px;
  font-size: 2.2rem;
  line-height: 1.3;
  text-align: center;
}
@media only screen and (min-width: 768px) {
  .page-home section .inner {
    width: 1100px;
    margin: 0 auto;
    padding: 80px 0;
  }
  .page-home section h2 {
    margin-bottom: 50px;
    font-size: 2.8rem;
  }
}
.page-home .mv {
  position: relative;
}
.page-home .mv-contents {
  display: -webkit-flex;
  -webkit-justify-content: center;
  -webkit-align-items: center;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  position: relative;
  height: calc(100vh - 50px);
  min-height: 250px;
  background: url(/assets/images/bg_mv.jpg) 0 0 no-repeat;
  background-size: cover;
}
@media only screen and (min-width: 768px) {
  .page-home .mv-contents {
    height: calc(100vh - 90px);
    min-height: 710px;
    background: none;
  }
}
.page-home .mv-text h1 {
  width: 254px;
  height: 68px;
  margin: 0 auto 20px;
}
.page-home .mv-text p {
  width: 239px;
  height: 12px;
  margin: 0 auto 40px;
}
@media only screen and (min-width: 768px) {
  .page-home .mv-text h1 {
    width: 436px;
    height: 117px;
    margin-bottom: 30px;
  }
  .page-home .mv-text p {
    width: 378px;
    height: 19px;
  }
}
.page-home .mv-scroll {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 15px;
  width: 16px;
  margin: auto;
}
@media only screen and (min-width: 768px) {
  .page-home .mv-scroll {
    left: auto;
    right: 40px;
    bottom: 40px;
    animation-name: upDown;
    animation-duration: 3s;
    animation-iteration-count: infinite;
  }
}
@keyframes upDown {
  0% {
    transform: translateY(0);
  }
  25% {
    transform: translateY(-12px);
  }
  50% {
    transform: translateY(0);
  }
}
.page-home .mv-scroll-arrow {
  width: 16px;
  height: 55px;
  opacity: 0.8;
}
.page-home .mv-scroll-text {
  display: none;
}
@media only screen and (min-width: 768px) {
  .page-home .mv-scroll-text {
    display: block;
    margin-bottom: 17px;
  }
}
.page-home .mv-movie {
  display: none;
}
@media only screen and (min-width: 768px) {
  .page-home .mv-movie {
    display: block;
    position: absolute;
    z-index: -1;
    left: 0;
    top: 0;
    width: 100%;
    min-height: calc(100vh - 90px);
  }
  .page-home .mv-movie video {
    min-width: 100%;
    min-height: calc(100vh - 90px);
  }
}
.page-home .mv-news {
  background-color: #eceef3;
}
.page-home .mv-news .inner {
  padding: 20px 15px;
}
.page-home .mv-news h2 {
  margin-bottom: 10px;
  font-size: 1.6rem;
  font-weight: 700;
  font-family: Century Gothic, sans-serif;
  line-height: 1.2;
}
.page-home .mv-news dl {
  margin-bottom: 20px;
}
@media only screen and (min-width: 768px) {
  .page-home .mv-news {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 40px;
    width: 880px;
    margin: auto;
    padding: 10px 0;
    color: #fff;
    background-color: transparent;
    border: 1px solid #fff;
  }
  .page-home .mv-news .inner {
    display: -webkit-flex;
    display: flex;
    padding: 0;
  }
  .page-home .mv-news h2 {
    display: -webkit-flex;
    -webkit-justify-content: center;
    -webkit-align-items: center;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 110px;
    margin-bottom: 0;
    border-right: 1px solid #fff;
  }
  .page-home .mv-news dl {
    display: -webkit-flex;
    display: flex;
    width: 622px;
    margin-bottom: 0;
    padding: 5px 30px;
    font-size: 1.3rem;
    border-right: 1px solid #fff;
  }
  .page-home .mv-news dl dt {
    display: -webkit-flex;
    -webkit-align-items: center;
    display: flex;
    align-items: center;
    width: 90px;
    white-space: nowrap;
  }
  .page-home .mv-news dl dd {
    display: -webkit-flex;
    -webkit-align-items: center;
    display: flex;
    align-items: center;
    width: 531px;
    padding-left: 20px;
  }
  .page-home .mv-news dl dd a {
    color: #fff;
  }
  .page-home .mv-news .btn {
    display: -webkit-flex;
    -webkit-justify-content: center;
    -webkit-align-items: center;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 148px;
    padding: 0;
    color: #fff;
    border: none;
  }
  .page-home .mv-news .btn::before, .page-home .mv-news .btn::after {
    display: none !important;
  }
  .page-home .mv-news .btn .arrow-right::after {
    background-image: url(/assets/images/img_arrow02.svg);
  }
  .page-home .mv-news .btn:hover {
    animation-name: fadeIn;
    animation-duration: 1s;
  }
  .page-home .mv-news .btn:hover .arrow-right::after {
    transform: none;
  }
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.page-home .technology-home h2 {
  margin-bottom: 15px;
  font-size: 2.0rem;
  font-family: "Hiragino Mincho ProN", "ヒラギノ明朝 ProN W3", "游明朝体", "Yu Mincho", YuMincho, "HG明朝E", "MS PMincho", "ＭＳ Ｐ明朝", serif;
}
@media only screen and (min-width: 768px) {
  .page-home .technology-home .inner {
    overflow: hidden;
    position: relative;
    width: 100%;
  }
  .page-home .technology-home .inner::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 150%;
    height: 100%;
    margin: 380px -25% 0;
    background-color: #111987;
    transform: rotate(-5.4deg);
  }
  .page-home .technology-home h2 {
    margin-bottom: 30px;
    font-size: 3.3rem;
  }
  .page-home .technology-home .lead {
    margin-bottom: 70px;
    font-size: 1.5rem;
    text-align: center;
  }
}
.page-home .technology-list {
  overflow: hidden;
  position: relative;
  margin: 0 -15px -30px;
  padding: 25px 15px 10px;
  color: #fff;
}
.page-home .technology-list::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 150%;
  height: 100%;
  margin: 24% -25% 0;
  background-color: #111987;
  transform: rotate(-5.4deg);
}
.page-home .technology-list h3 {
  margin-bottom: 10px;
  font-size: 1.6rem;
  line-height: 1.3;
}
.page-home .technology-list p {
  margin-bottom: 10px;
}
@media only screen and (min-width: 768px) {
  .page-home .technology-list {
    display: -webkit-flex;
    display: flex;
    width: 1100px;
    margin: 0 auto;
    padding: 0;
  }
  .page-home .technology-list::before {
    display: none;
  }
  .page-home .technology-list h3 {
    font-size: 2.2rem;
  }
  .page-home .technology-list p {
    height: 8.75em;
    margin-bottom: 20px;
    font-size: 1.5rem;
  }
}
.page-home .technology-list-item {
  position: relative;
  margin-bottom: 30px;
}
@media only screen and (min-width: 768px) {
  .page-home .technology-list-item {
    width: 350px;
    margin-bottom: 0;
    margin-right: 25px;
  }
  .page-home .technology-list-item:last-child {
    margin-right: 0;
  }
}
.page-home .technology-list-image {
  margin-bottom: 15px;
  text-align: center;
}
@media only screen and (min-width: 768px) {
  .page-home .technology-list-image {
    margin-bottom: 20px;
  }
}
.page-home .field-home {
  background: #000 url(/assets/images/bg_field01.jpg) 50% 50% no-repeat;
  background-size: cover;
}
.page-home .field-home h2 {
  margin-top: 15px;
  color: #fff;
}
@media only screen and (min-width: 768px) {
  .page-home .field-home {
    height: 480px;
    background: url(/assets/images/bg_field02.jpg) 50% 0 repeat-x;
    background-size: 2200px 640px;
  }
}
.page-home .field-list {
  overflow: hidden;
}
.page-home .field-list .field-list-left,
.page-home .field-list .field-list-right {
  float: left;
  width: 50%;
  padding: 0 10px;
}
@media only screen and (min-width: 768px) {
  .page-home .field-list {
    width: 864px;
    margin: 0 auto;
  }
  .page-home .field-list .field-list-left,
  .page-home .field-list .field-list-center,
  .page-home .field-list .field-list-right {
    float: left;
    width: 33.3333%;
    padding: 0 10px;
  }
}
.page-home .field-list-item {
  margin-bottom: 15px;
  font-weight: 700;
  line-height: 34px;
  text-align: center;
  background-color: rgba(255, 255, 255, 0.9);
  border-radius: 17px;
}
@media only screen and (min-width: 768px) {
  .page-home .field-list-item {
    margin-bottom: 20px;
    font-size: 1.6rem;
    line-height: 48px;
    border-radius: 24px;
  }
}
@media only screen and (min-width: 768px) {
  .page-home .facilities-container {
    display: -webkit-flex;
    display: flex;
  }
}
.page-home .facilities-movie {
  position: relative;
  width: 100%;
  margin-bottom: 15px;
  padding-top: 66%;
}
.page-home .facilities-movie iframe {
  position: absolute;
  right: 0;
  top: 0;
  width: 100%;
  height: 100%;
}
@media only screen and (min-width: 768px) {
  .page-home .facilities-movie {
    width: 530px;
    margin-bottom: 0;
    padding-top: 0;
  }
  .page-home .facilities-movie iframe {
    position: static;
    right: auto;
    top: auto;
    width: 530px;
    height: 298px;
  }
}
.page-home .facilities-text h3 {
  margin-bottom: 10px;
  font-size: 1.6rem;
  line-height: 1.3;
  font-weight: bold;
}
.page-home .facilities-text p {
  margin-bottom: 10px;
}
@media only screen and (min-width: 768px) {
  .page-home .facilities-text {
    width: 570px;
    padding-left: 40px;
  }
  .page-home .facilities-text h3 {
    margin-bottom: 25px;
    font-size: 2.0rem;
  }
  .page-home .facilities-text p {
    margin-bottom: 25px;
    font-size: 1.5rem;
  }
}

.page-information .page-title {
  background-image: url(/assets/images/bg_information01.jpg);
}
@media only screen and (min-width: 768px) {
  .page-information .page-title {
    background-image: url(/assets/images/bg_information02.jpg);
  }
}

.page-contact .page-title {
  background-image: url(/assets/images/bg_contact01.jpg);
}
@media only screen and (min-width: 768px) {
  .page-contact .page-title {
    background-image: url(/assets/images/bg_contact02.jpg);
  }
}

.page-facilities .page-title {
  background-image: url(/assets/images/bg_facilities01.jpg);
}
@media only screen and (min-width: 768px) {
  .page-facilities .page-title {
    background-image: url(/assets/images/bg_facilities02.jpg);
  }
}

.page-company .page-title {
  background-image: url(/assets/images/bg_company01.jpg);
}
@media only screen and (min-width: 768px) {
  .page-company .page-title {
    background-image: url(/assets/images/bg_company02.jpg);
  }
}

.page-gear .page-title {
  background-image: url(/assets/images/bg_gear01.jpg);
}
@media only screen and (min-width: 768px) {
  .page-gear .page-title {
    background-image: url(/assets/images/bg_gear02.jpg);
  }
}

.page-flow .page-title {
  background-image: url(/assets/images/bg_flow01.jpg);
}
@media only screen and (min-width: 768px) {
  .page-flow .page-title {
    background-image: url(/assets/images/bg_flow02.jpg);
  }
}

.page-inspection .page-title {
  background-image: url(/assets/images/bg_inspection01.jpg);
}
@media only screen and (min-width: 768px) {
  .page-inspection .page-title {
    background-image: url(/assets/images/bg_inspection02.jpg);
  }
}

.page-privacy .page-title {
  background-image: url(/assets/images/bg_privacy01.jpg);
}
@media only screen and (min-width: 768px) {
  .page-privacy .page-title {
    background-image: url(/assets/images/bg_privacy02.jpg);
  }
}

@media print {
  /*	html {
  		zoom: 0.8;
  	}*/
  .l-header {
    position: absolute !important;
  }

  .nav-overlay {
    display: none !important;
  }

  .events-container {
    height: auto !important;
  }

  .events-item {
    position: relative !important;
    left: auto !important;
    top: auto !important;
  }

  .slimScrollDiv, .list-entry-inner {
    height: auto !important;
  }

  .slimScrollBar {
    display: none !important;
  }
}
