@charset "UTF-8";
/* クリアフィックス
-----------------------------------------------------------------*/
.slick-track, .header_top, .header_open, .header_select, .header .commonNav, .header .commonNav_subNavInner, .footer .commonNav, .footer_inner, .footer_undernavList, .description_listRow {
  zoom: 1; }
  .slick-track:before, .header_top:before, .header_open:before, .header_select:before, .header .commonNav:before, .header .commonNav_subNavInner:before, .footer .commonNav:before, .footer_inner:before, .footer_undernavList:before, .description_listRow:before, .slick-track:after, .header_top:after, .header_open:after, .header_select:after, .header .commonNav:after, .header .commonNav_subNavInner:after, .footer .commonNav:after, .footer_inner:after, .footer_undernavList:after, .description_listRow:after {
    position: static;
    display: block;
    height: 0;
    visibility: hidden;
    content: "\0020"; }
  .slick-track:after, .header_top:after, .header_open:after, .header_select:after, .header .commonNav:after, .header .commonNav_subNavInner:after, .footer .commonNav:after, .footer_inner:after, .footer_undernavList:after, .description_listRow:after {
    clear: both; }

html, body {
  -webkit-font-smoothing: antialiased;
  -webkit-print-color-adjust: exact;
  -webkit-text-size-adjust: none; }

body {
  font-family: 'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro', '游ゴシック', YuGothic, 'メイリオ',Meiryo, "ＭＳ ゴシック", sans-serif;
  font-size: 12px;
  color: #000;
  letter-spacing: 0.05em; }

body * {
  box-sizing: border-box;
  word-break: break-all; }

body, div, p, form, input, textarea, select, option, button, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, address, button, figure, figcaption {
  font-style: normal;
  line-height: 1;
  margin: 0;
  padding: 0;
  -webkit-tap-highlight-color: transparent; }

select, input[type="text"], input[type="password"], textarea {
  border: 0px;
  border-radius: 0;
  box-shadow: 0;
  outline: none; }

input[type="text"], input[type="password"], textarea, select {
  outline: none; }

table {
  border-collapse: collapse; }

main, article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary {
  display: block; }

img, svg {
  border: 0;
  vertical-align: middle;
  overflow: hidden; }

ul, ol, li {
  list-style: none; }

a {
  color: #000;
  cursor: pointer;
  text-decoration: none; }

i {
  font-style: normal; }

pre {
  font-family: 'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro', '游ゴシック', YuGothic, 'メイリオ',Meiryo, "ＭＳ ゴシック", sans-serif; }

/* カラー定義
-----------------------------------------------------------------*/
/* easing定義
-----------------------------------------------------------------*/
/* 共通fontスタイル
-----------------------------------------------------------------*/
.contentVisual_title .en, .header .commonNav_subNavTitle {
  font-family: 'Montserrat','ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro', '游ゴシック', YuGothic, Yu Gothic, 'メイリオ',Meiryo, "ＭＳ ゴシック", sans-serif; }

/* パーツ・ボタン スタイル
-----------------------------------------------------------------*/
.section_index {
  font-weight: bold;
  font-size: 32px;
  line-height: 2;
  letter-spacing: 0.1em; }
  @media only screen and (max-width: 767px) {
    .section_index {
      font-size: 21px;
      line-height: 1.8; } }
  .section_index span {
    padding: 0 0 5px;
    border-bottom: 2px solid #000; }
    html.ie .section_index span {
      padding: 0; }
    @media only screen and (max-width: 767px) {
      .section_index span {
        padding: 0 0 2px;
        border-bottom: 1px solid #000; } }

.contentVisual_title {
  margin-bottom: 78px; }
  @media only screen and (max-width: 767px) {
    .contentVisual_title {
      margin-bottom: 42px; } }
  .contentVisual_title span {
    font-weight: bold;
    display: block; }
  .contentVisual_title .jp {
    font-size: 70px;
    letter-spacing: .1em;
    line-height: 1.1; }
    @media only screen and (max-width: 767px) {
      .contentVisual_title .jp {
        font-size: 42px; } }
  .contentVisual_title .en {
    margin-top: 12px;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: .15em;
    color: #041978; }
    @media only screen and (max-width: 767px) {
      .contentVisual_title .en {
        margin-top: 8px;
        font-size: 18px; } }

@-webkit-keyframes hoverAnime {
  0% {
    -webkit-transform: translate(-100%, 0);
    transform: translate(-100%, 0); }
  50% {
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0); }
  100% {
    -webkit-transform: translate(100%, 0);
    transform: translate(100%, 0); } }

@keyframes hoverAnime {
  0% {
    -webkit-transform: translate(-100%, 0);
    transform: translate(-100%, 0); }
  50% {
    -webkit-transform: translate(0, 0);
    transform: translate(0, 0); }
  100% {
    -webkit-transform: translate(100%, 0);
    transform: translate(100%, 0); } }

@-webkit-keyframes hoverFontColor {
  0% {
    color: #fff; }
  50% {
    color: #313131; }
  100% {
    color: #fff; } }

@keyframes hoverFontColor {
  0% {
    color: #fff; }
  50% {
    color: #313131; }
  100% {
    color: #fff; } }

@-webkit-keyframes hoverBgColor {
  0% {
    background-color: #fff; }
  50% {
    background-color: #313131; }
  100% {
    background-color: #fff; } }

@keyframes hoverBgColor {
  0% {
    background-color: #fff; }
  50% {
    background-color: #313131; }
  100% {
    background-color: #fff; } }

@-webkit-keyframes hoverImgColor {
  0% {
    background-image: url(../img/common/arrow_left.svg); }
  50% {
    background-image: url(../img/common/arrow_left_grey.svg); }
  100% {
    background-image: url(../img/common/arrow_left.svg); } }

@keyframes hoverImgColor {
  0% {
    background-image: url(../img/common/arrow_left.svg); }
  50% {
    background-image: url(../img/common/arrow_left_grey.svg); }
  100% {
    background-image: url(../img/common/arrow_left.svg); } }

.notFoundButton a, .commonButton a {
  overflow: hidden;
  text-align: left;
  background-color: #313131;
  display: inline-block;
  width: 374px;
  padding: 40px 34px;
  color: #fff;
  font-size: 20px;
  font-weight: bold;
  position: relative;
  box-shadow: -1.8px 7.8px 21.3px 5.7px rgba(2, 2, 2, 0.2); }
  @media only screen and (max-width: 767px) {
    .notFoundButton a, .commonButton a {
      width: auto;
      padding: 30px 30px 30px 20px;
      font-size: 18px; } }
  .notFoundButton a:before, .commonButton a:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #fff;
    -webkit-transform: translate(-100%, 0);
    -ms-transform: translate(-100%, 0);
    transform: translate(-100%, 0); }
  .notFoundButton a:after, .commonButton a:after {
    content: "";
    width: 14px;
    height: 16px;
    position: absolute;
    right: 28px;
    bottom: 42px;
    background-image: url(../img/common/arrow_left.svg);
    background-repeat: no-repeat;
    background-position: right center;
    background-size: 14px auto; }
    @media only screen and (max-width: 767px) {
      .notFoundButton a:after, .commonButton a:after {
        right: 20px;
        bottom: 0;
        width: 12px;
        height: 100%;
        background-size: 12px auto; } }
  .notFoundButton a span, .commonButton a span, .notFoundButton a div, .commonButton a div {
    position: relative; }
  @media only screen and (min-width: 1025px) {
    .notFoundButton a:hover:before, .commonButton a:hover:before {
      -webkit-animation: hoverAnime 1s ease-in-out 1 alternate;
      animation: hoverAnime 1s ease-in-out 1 alternate; }
    .notFoundButton a:hover:after, .commonButton a:hover:after {
      -webkit-animation: hoverImgColor 1s ease-in-out 1 alternate;
      animation: hoverImgColor 1s ease-in-out 1 alternate; }
    .notFoundButton a:hover *, .commonButton a:hover * {
      -webkit-animation: hoverFontColor 1s ease-in-out 1 alternate;
      animation: hoverFontColor 1s ease-in-out 1 alternate; }
    .notFoundButton a:hover .messageSection_comment:before, .commonButton a:hover .messageSection_comment:before {
      -webkit-animation: hoverBgColor 1s ease-in-out 1 alternate;
      animation: hoverBgColor 1s ease-in-out 1 alternate; } }
  .notFoundButton a:active, .commonButton a:active {
    -webkit-transform: translate(-2px, 2px);
    -ms-transform: translate(-2px, 2px);
    transform: translate(-2px, 2px);
    box-shadow: -1.8px 7.8px 21.3px 1px rgba(2, 2, 2, 0.2); }

.notFoundButton a {
  display: inline-block;
  background-color: #101177; }

/* ページ下部動線
-----------------------------------------------------------------*/
.slick-slider * {
  outline: 0; }

.slick-dots {
  display: block;
  width: 100%;
  padding: 0;
  list-style: none;
  text-align: center;
  margin: 24px 0 0;
  font-size: 0px; }
  .slick-dots li {
    position: relative;
    display: inline-block;
    margin: 0 4px;
    padding: 0;
    cursor: pointer; }
    .slick-dots li button {
      font-size: 0;
      line-height: 0;
      display: block;
      padding: 5px;
      cursor: pointer;
      color: transparent;
      border: 0;
      outline: 0;
      background: transparent; }
      .slick-dots li button:before {
        font-size: 6px;
        line-height: 6px;
        position: absolute;
        top: 0;
        left: 0;
        content: '';
        border-radius: 6px;
        text-align: center;
        color: black;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale; }

.slick-list {
  overflow: hidden; }

.slick-slide {
  float: left; }

.slick-prev, .slick-next {
  font-size: 0;
  line-height: 0;
  position: absolute;
  top: 50%;
  z-index: 100;
  display: block;
  padding: 0;
  cursor: pointer;
  color: transparent;
  border: 0;
  outline: 0;
  background: transparent; }

.slick-prev:hover, .slick-prev:focus {
  color: transparent;
  outline: 0;
  background: transparent; }

.slick-next:hover, .slick-next:focus {
  color: transparent;
  outline: 0;
  background: transparent; }

.slick-prev:hover:before, .slick-prev:focus:before {
  opacity: 1; }

.slick-next:hover:before, .slick-next:focus:before {
  opacity: 1; }

.slick-prev.slick-disabled:before, .slick-next.slick-disabled:before {
  opacity: .25; }

.slick-prev:before, .slick-next:before {
  content: '';
  line-height: 1;
  display: block;
  color: white;
  background-repeat: no-repeat;
  background-position: center;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

/*
  CUSTOM
———————————————–*/
.slick-dots {
  text-align: left;
  font-size: 0;
  width: 100%;
  margin-top: 10px; }
  .slick-dots li {
    margin: 0 9px 0 0;
    width: 25px;
    height: 2px;
    display: inline-block;
    font-size: 0; }
    .slick-dots li.slick-active button {
      background-color: #999; }
    .slick-dots li button {
      border: 0;
      outline: none;
      width: 25px;
      height: 2px;
      padding: 0;
      display: inline-block;
      text-indent: -9999px;
      background-color: #ddd; }

.slick-prev, .slick-next {
  width: 75px;
  height: 60px;
  margin-top: -30px;
  opacity: 0;
  mix-blend-mode: exclusion; }
  html.ie .slick-prev:before, html.ie .slick-next:before {
    -webkit-transform: none !important;
    -ms-transform: none !important;
    transform: none !important; }
  .slick-prev:hover:before, .slick-next:hover:before {
    opacity: 0.9; }

.slick-prev {
  left: -46px;
  -webkit-transform: translate(-10px, 0);
  -ms-transform: translate(-10px, 0);
  transform: translate(-10px, 0); }
  .slick-prev:hover:before {
    -webkit-transform: translateX(-13px);
    -ms-transform: translateX(-13px);
    transform: translateX(-13px); }

.slick-next {
  right: -46px;
  -webkit-transform: translate(10px, 0);
  -ms-transform: translate(10px, 0);
  transform: translate(10px, 0); }
  .slick-next:hover:before {
    -webkit-transform: translateX(13px);
    -ms-transform: translateX(13px);
    transform: translateX(13px); }

.slick-prev:before, .slick-next:before {
  width: 100%;
  height: 12px;
  background-repeat: no-repeat;
  transition: 300ms ease; }

.slick-prev:before {
  background-image: url(../images/common/i_arrow_prev.png);
  background-position: right center; }
  html.ie .slick-prev:before {
    background-image: url(../images/common/i_arrow_by_prev.png); }

.slick-next:before {
  background-image: url(../images/common/i_arrow_next.png);
  background-position: left center; }
  html.ie .slick-next:before {
    background-image: url(../images/common/i_arrow_by_next.png); }

.header {
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000; }
  @media only screen and (min-width: 768px) {
    .header {
      background-color: #fff;
      min-width: 1025px; } }

.header_top {
  height: 100px;
  position: relative; }
  @media only screen and (min-width: 768px) {
    .header_top {
      float: left; } }
  @media only screen and (max-width: 767px) {
    .header_top {
      background-color: #fff;
      height: 50px; } }

.header_logo {
  display: inline-block;
  vertical-align: top;
  padding: 20px 0 0 30px; }
  
#persol_logo {
  display: block;
  float: left;
  width: 206px;
  padding-top: 15px; }
  
  
  @media only screen and (min-width: 768px) and (max-width: 1250px) {
    .header_logo {
      padding-top: 26px; } }
  @media only screen and (max-width: 767px) {
    .header_logo {
      padding: 6px 0 0 12px; }
      #persol_logo {
      width: 150px;
      padding-top: 5px; }
 }
  .header_logo svg {
    width: 172px;
    height: 58px;
    fill: #0D3387; }
    @media only screen and (min-width: 768px) and (max-width: 1250px) {
      .header_logo svg {
        width: 140px;
        height: 50px; } }
    @media only screen and (min-width: 768px) and (max-width: 1024px) {
      .header_logo svg {
        width: 140px;
        height: 50px; } }
    @media only screen and (max-width: 767px) {
      .header_logo svg {
        width: 85px;
        height: 29px; } }
        

.header_subCaption {
  font-size: 21px;
  font-weight: bold;
  display: inline-block;
  vertical-align: middle;
  line-height: 97px;
  letter-spacing: 0.08em;
  padding-left: 20px; }
  @media only screen and (min-width: 768px) and (max-width: 1250px) {
    .header_subCaption {
      font-size: 16px; 
      padding-top: 5px;} }
  @media only screen and (max-width: 767px) {
    .header_subCaption {
      font-size: 14px;
      padding-left: 10px;
      line-height: 42px; } }

@media only screen and (min-width: 768px) {
  .header_open {
    float: right;
    padding-right: 300px;
    opacity: 1 !important;
    display: block !important; } }

@media only screen and (min-width: 768px) and (max-width: 1250px) {
  .header_open {
    padding-right: 150px; } }

@media only screen and (max-width: 767px) {
  .header_open {
    background-color: #fff;
    position: fixed;
    top: 50px;
    left: 0;
    width: 100%;
    z-index: 100;
    text-align: center;
    height: 100%;
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch;
    display: none;
    opacity: 0; } }

@media only screen and (min-width: 768px) {
  .header_openScroll {
    -webkit-transform: none !important;
    -ms-transform: none !important;
    transform: none !important;
    opacity: 1 !important; } }

@media only screen and (max-width: 767px) {
  .header_openScroll {
    padding: 23px 40px 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch;
    -webkit-transform: translate(0, -30px);
    -ms-transform: translate(0, -30px);
    transform: translate(0, -30px); } }

@media only screen and (min-width: 768px) {
  .header_select {
    position: absolute;
    right: 0;
    top: 0; } }

@media only screen and (max-width: 767px) {
  .header_select {
    margin-bottom: 30px; } }

.header_selectNode {
  font-size: 16px;
  text-align: center;
  overflow: hidden;
  position: relative;
  font-weight: bold; }
  @media only screen and (min-width: 768px) {
    .header_selectNode {
      width: 150px;
      float: left; } }
  @media only screen and (min-width: 768px) and (max-width: 1250px) {
    .header_selectNode {
      float: none;
      font-size: 15px; } }
  @media only screen and (max-width: 767px) {
    .header_selectNode {
      margin-bottom: 10px; } }
  .header_selectNode.mypage {
    background-color: #313131; }
  .header_selectNode.entry {
    background-color: #041978; }
  .header_selectNode:hover a {
    -webkit-animation: hoverFontColor 1s ease-in-out 1 alternate;
    animation: hoverFontColor 1s ease-in-out 1 alternate; }
    .header_selectNode:hover a:before {
      -webkit-animation: hoverAnime 1s ease-in-out 1 alternate;
      animation: hoverAnime 1s ease-in-out 1 alternate; }
  .header_selectNode a {
    display: block;
    color: #fff;
    line-height: 100px; }
    @media only screen and (min-width: 768px) and (max-width: 1250px) {
      .header_selectNode a {
        line-height: 50px; } }
    @media only screen and (max-width: 767px) {
      .header_selectNode a {
        line-height: 60px; } }
    .header_selectNode a:before {
      content: "";
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-color: #fff;
      -webkit-transform: translate(-100%, 0);
      -ms-transform: translate(-100%, 0);
      transform: translate(-100%, 0); }
  .header_selectNode span {
    position: relative; }

@media only screen and (min-width: 768px) {
  .header .commonNav {
    padding-right: 15px; } }

@media only screen and (max-width: 767px) {
  .header .commonNav {
    border-top: 1px solid #000; } }

.header .commonNav_node {
  font-size: 16px;
  font-weight: bold; }
  @media only screen and (min-width: 768px) {
    .header .commonNav_node {
      float: left;
      margin: 0 25px; } }
  @media only screen and (min-width: 768px) and (max-width: 1024px) {
    .header .commonNav_node {
      margin: 0 20px; } }
  @media only screen and (max-width: 767px) {
    .header .commonNav_node {
      text-align: left;
      border-bottom: 1px solid #000; } }
  .header .commonNav_node.selected .commonNav_subNav {
    opacity: 1;
    visibility: visible; }
  .header .commonNav_node.selected .commonNav_subNavInner {
    opacity: 1;
    -webkit-transform: translate(0, 0);
    -ms-transform: translate(0, 0);
    transform: translate(0, 0); }
  .header .commonNav_node > a {
    display: block;
    line-height: 100px;
    position: relative; }
    @media only screen and (max-width: 767px) {
      .header .commonNav_node > a {
        height: 50px;
        line-height: 50px; } }
    @media only screen and (min-width: 768px) {
      .header .commonNav_node > a:hover:after {
        opacity: 1;
        -webkit-transform: scale(1);
        -ms-transform: scale(1);
        transform: scale(1); } }
    @media only screen and (min-width: 768px) {
      .header .commonNav_node > a:after {
        content: "";
        width: 100%;
        height: 4px;
        background-color: #101177;
        position: absolute;
        bottom: 23px;
        left: 0;
        opacity: 0;
        -webkit-transform: scale(0);
        -ms-transform: scale(0);
        transform: scale(0);
        transition: 300ms ease; } }
    @media only screen and (max-width: 767px) {
      .header .commonNav_node > a:after {
        content: "";
        width: 12px;
        height: 100%;
        background-image: url(../img/common/arrow_left_black.svg);
        background-repeat: no-repeat;
        background-position: center;
        position: absolute;
        top: 0;
        right: 0; } }
  @media only screen and (min-width: 768px) {
    .header .commonNav_node.nav2, .header .commonNav_node.nav3, .header .commonNav_node.nav5, .header .commonNav_node.nav6, .header .commonNav_node.nav7, .header .commonNav_node.nav9, .header .commonNav_node.nav10 {
      display: none; } }
  @media only screen and (max-width: 767px) {
    .header .commonNav_node.nav1, .header .commonNav_node.nav4, .header .commonNav_node.nav8 {
      display: none; } }

.header .commonNav_subNav {
  width: 100%;
  position: fixed;
  top: 100px;
  left: 0;
  padding: 92px 0 80px;
  background-color: rgba(16,17,119,0.9);
  visibility: hidden;
  opacity: 0;
  transition: 300ms ease; }
  @media only screen and (max-width: 767px) {
    .header .commonNav_subNav {
      display: none; } }

.header .commonNav_subNavInner {
  width: 1000px;
  margin: 0 auto;
  opacity: 0;
  -webkit-transform: translate(0, -30px);
  -ms-transform: translate(0, -30px);
  transform: translate(0, -30px);
  transition: 300ms ease; }

.header .commonNav_subNavBox {
  float: left;
  width: 33%; }
  .header .commonNav_subNavBox.commonNav_subNavBox-large {
    width: 66%; }

.header .commonNav_subNavTitle {
  color: #fff;
  font-weight: 700;
  font-size: 30px;
  margin-bottom: 24px;
  text-indent: 10px; }
  .header .commonNav_subNavTitle a {
    color: #fff; }

.header .commonNav_subNavList + .commonNav_subNavTitle {
  margin-top: 50px; }

.header .commonNav_subNavNode {
  font-size: 14px;
  letter-spacing: 0;
  display: inline-block;
  width: 325px;
  font-weight: 500; }
  .header .commonNav_subNavNode.commonNav_subNavNode-large {
    width: 330px; }
  .header .commonNav_subNavNode a {
    display: block;
    padding: 14px 0 14px 10px;
    color: #fff; }

.header .commonNav_subNavCloseBtn {
  position: absolute;
  top: 30px;
  right: 35px;
  width: 30px;
  height: 30px;
  cursor: pointer;
  background-image: url(../img/common/btn_close.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 30px 30px; }
  @media only screen and (max-width: 767px) {
    .header .commonNav_subNavCloseBtn {
      display: none; } }

.commonNav_subNavList-recruit .commonNav_subNavNode-small {
  width: 26%; }

.commonNav_subNavList-recruit .commonNav_subNavNode-large {
  width: 40%; }

.header_menuBtn {
  background-color: #041978;
  position: absolute;
  top: 0px;
  right: 0px;
  width: 50px;
  height: 50px;
  display: table;
  transition: background 300ms ease; }
  @media only screen and (min-width: 768px) {
    .header_menuBtn {
      display: none; } }
  .header_menuBtn i {
    display: block;
    width: 30px;
    height: 2px;
    margin: 8px auto;
    background-color: #fff;
    transition: -webkit-transform 300ms ease;
    transition: transform 300ms ease;
    transition: transform 300ms ease, -webkit-transform 300ms ease; }

.header_menuBtnInner {
  width: 50px;
  height: 50px;
  margin: auto;
  display: table-cell;
  vertical-align: middle;
  -webkit-perspective: 500px;
  perspective: 500px; }

/* ナビ展開後 */
body.headerOpen .header_menuBtn {
  background-color: #7d7d7d; }
  body.headerOpen .header_menuBtn i {
    position: absolute;
    top: 24px;
    width: 36px;
    margin: 0; }
    body.headerOpen .header_menuBtn i:nth-child(1) {
      left: 7px;
      -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
      transform: rotate(45deg); }
    body.headerOpen .header_menuBtn i:nth-child(2) {
      transition: none;
      opacity: 0; }
    body.headerOpen .header_menuBtn i:nth-child(3) {
      right: 6px;
      -webkit-transform: rotate(-45deg);
      -ms-transform: rotate(-45deg);
      transform: rotate(-45deg); }

/* メニューボタン ホバー後 */
@media only screen and (min-width: 768px) {
  .header_menuBtn:hover i {
    position: absolute;
    top: 20px;
    margin: 0;
    width: 18px; }
    .header_menuBtn:hover i:nth-child(1) {
      left: 3px;
      -webkit-transform: rotate(40deg);
      -ms-transform: rotate(40deg);
      transform: rotate(40deg); }
    .header_menuBtn:hover i:nth-child(2) {
      transition: none;
      opacity: 0; }
    .header_menuBtn:hover i:nth-child(3) {
      right: 3px;
      -webkit-transform: rotate(-40deg);
      -ms-transform: rotate(-40deg);
      transform: rotate(-40deg); } }

.pageTop {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 1000;
  opacity: 0;
  transition: 800ms ease; }
  @media only screen and (max-width: 767px) {
    .pageTop {
      bottom: 10px;
      right: 2px; } }
  body.pageTopShow .pageTop {
    opacity: 1; }
  body.headerOpen .pageTop {
    display: none; }
  .pageTop a {
    display: block;
    text-align: center;
    background-color: #000;
    width: 53px;
    height: 53px;
    border-radius: 53px;
    line-height: 46px;
    border: 2px solid #000;
    transition: background 300ms ease; }
    @media only screen and (max-width: 1024px) {
      .pageTop a {
        width: 50px;
        height: 50px;
        border-radius: 50px;
        line-height: 43px; } }
    .pageTop a:hover {
      background-color: #fff; }
      .pageTop a:hover svg {
        fill: #000; }
  .pageTop svg {
    width: 14px;
    height: 12px;
    fill: #fff;
    transition: fill 300ms ease; }

.footer {
  background-color: #313131;
  margin: 160px 0 0;
  padding: 38px 0 0;
  color: #fff; }
  @media only screen and (max-width: 767px) {
    .footer {
      margin: 40px 0 0;
      padding: 40px 20px 16px; } }
  .footer a {
    color: #fff; }
    @media only screen and (min-width: 1025px) {
      .footer a:hover {
        text-decoration: underline; } }
  .footer .commonNav {
    font-size: 14px; }
    @media only screen and (max-width: 767px) {
      .footer .commonNav {
        font-size: 16px;
        border-top: 1px solid #fff; } }
  .footer .commonNav_node {
    position: relative; }
    @media only screen and (min-width: 768px) {
      .footer .commonNav_node {
        display: inline-block;
        vertical-align: top;
        padding: 0 150px 0 0; } }
    @media only screen and (min-width: 768px) and (max-width: 1250px) {
      .footer .commonNav_node {
        padding: 0 90px 0 0; } }
    @media only screen and (min-width: 768px) and (max-width: 1024px) {
      .footer .commonNav_node {
        padding: 0 90px 0 0; } }
    @media only screen and (max-width: 767px) {
      .footer .commonNav_node {
        text-align: left;
        font-weight: bold;
        border-bottom: 1px solid #fff; } }
    .footer .commonNav_node > a {
      display: block;
      color: #898989; }
      @media only screen and (min-width: 768px) {
        .footer .commonNav_node > a {
          margin-bottom: 40px; } }
      @media only screen and (max-width: 767px) {
        .footer .commonNav_node > a {
          color: #fff;
          height: 50px;
          line-height: 50px; } }
      @media only screen and (max-width: 767px) {
        .footer .commonNav_node > a:after {
          content: "";
          width: 12px;
          height: 100%;
          background-image: url(../img/common/arrow_left.svg);
          background-repeat: no-repeat;
          background-position: center;
          position: absolute;
          top: 0;
          right: 0; } }
    .footer .commonNav_node .commonNav_subNavInner {
      padding-left: 10px; }
    .footer .commonNav_node.nav1 .commonNav_subNavInner {
      position: relative; }
    @media only screen and (min-width: 768px) {
      .footer .commonNav_node.nav1 .commonNav_subNavList {
        margin-right: 25px; } }
    @media only screen and (min-width: 768px) {
      .footer .commonNav_node.nav2, .footer .commonNav_node.nav3, .footer .commonNav_node.nav5, .footer .commonNav_node.nav6, .footer .commonNav_node.nav7, .footer .commonNav_node.nav9, .footer .commonNav_node.nav10 {
        display: none; } }
    @media only screen and (max-width: 767px) {
      .footer .commonNav_node.nav1, .footer .commonNav_node.nav4, .footer .commonNav_node.nav8 {
        display: none; } }
  @media only screen and (max-width: 767px) {
    .footer .commonNav_subNav {
      display: none; } }
  .footer .commonNav_subNavTitle {
    font-weight: bold;
    margin-bottom: 34px; }
    @media only screen and (max-width: 767px) {
      .footer .commonNav_subNavTitle {
        display: none; } }
  .footer .commonNav_subNavList {
    padding-left: 15px; }
    .footer .commonNav_subNavList + .commonNav_subNavTitle {
      margin-top: 25px; }
  .footer .commonNav_subNavNode a {
    display: inline-block;
    padding: 0 0 15px;
    position: relative; }
  @media only screen and (max-width: 767px) {
    .footer .commonNav_innersubNav {
      display: none; } }
  @media only screen and (min-width: 768px) {
    .footer .commonNav_subNavList {
      display: none; } }
  .footer .commonNav_subNavCloseBtn {
    display: none; }

.footer_inner {
  margin: 0 auto;
  max-width: 1200px;
  position: relative; }
  @media only screen and (min-width: 768px) and (max-width: 1250px) {
    .footer_inner {
      max-width: 930px; } }

.footer_navBox {
  position: relative;
  z-index: 100; }
  @media only screen and (min-width: 768px) {
    .footer_navBox {
      float: right;
      padding: 84px 5px 50px 90px;
      border: 3px solid #fff;
      border-bottom: 0; } }
  @media only screen and (min-width: 768px) and (max-width: 1250px) {
    .footer_navBox {
      width: 692px; } }
  @media only screen and (min-width: 768px) and (max-width: 1024px) {
    .footer_navBox {
      width: 692px; } }

.footer_logo {
  width: 348px;
  height: 240px;
  text-align: center;
  display: table;
  background-image: url(../img/common/footer_bg.jpg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover; }
  @media only screen and (min-width: 768px) {
    .footer_logo {
      position: absolute;
      top: -80px;
      left: -82px; } }
  @media only screen and (max-width: 767px) {
    .footer_logo {
      width: 100%;
      height: 115px;
      margin-top: 20px; } }
  .footer_logo a {
    text-decoration: none;
    display: block;
    transition: 800ms ease; }
    .footer_logo a:hover {
      opacity: .7; }
  .footer_logo i {
    display: block;
    margin-top: 8px; }
    @media only screen and (max-width: 767px) {
      .footer_logo i {
        margin-top: 6px; } }
  .footer_logo svg {
    width: 180px;
    height: 60px;
    fill: #fff; }
    @media only screen and (max-width: 767px) {
      .footer_logo svg {
        width: 187px;
        height: 62px; } }

.footer_logoInner {
  display: table-cell;
  vertical-align: middle;
  padding-left: 30px; }
  
.footer_logoInner i#text_logo {
  display: table-cell;
  vertical-align: middle;
  padding-top: 40px; }

@media only screen and (min-width: 768px) {
  .footer_undernav {
    width: 185px;
    float: left;
    margin-top: 190px; } }

@media only screen and (max-width: 767px) {
  .footer_undernav {
    margin-top: 24px; } }

.footer_underNode {
  font-size: 14px; }
  @media only screen and (min-width: 768px) {
    .footer_underNode {
      padding: 0 0 9px; } }
  @media only screen and (max-width: 767px) {
    .footer_underNode {
      float: left;
      font-size: 16px;
      letter-spacing: 0;
      margin-bottom: 22px; } }
  .footer_underNode:first-child {
    margin-right: 15px; }

.footer_copy {
  margin-top: 10px; }
  @media only screen and (max-width: 767px) {
    .footer_copy {
      text-align: center;
      margin-top: 0;
      font-size: 16px; } }
  .footer_copy i {
    vertical-align: middle;
    font-size: 22px; }

/* ベーススタイル
-----------------------------------------------------------------*/
@media only screen and (min-width: 768px) {
  body {
    min-width: 1025px; } }

img {
  max-width: 100%; }

.wrapper {
  overflow: hidden;
  padding-top: 100px; }
  @media only screen and (max-width: 767px) {
    .wrapper {
      padding-top: 50px; }
      body.headerOpen .wrapper {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%; } }

/* パーツ・ボタン スタイル
-----------------------------------------------------------------*/
.ht {
  display: none; }

@media only screen and (min-width: 768px) {
  .onlySp {
    display: none; } }

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

/* パンくず
-----------------------------------------------------------------*/
.breadcrumbs {
  padding: 18px; }
  @media only screen and (max-width: 767px) {
    .breadcrumbs {
      display: none; } }
  .breadcrumbs li {
    display: inline;
    vertical-align: top; }
    .breadcrumbs li:before {
      content: ">";
      display: inline-block;
      padding: 0 8px 0 8px; }
    .breadcrumbs li:first-child:before {
      display: none; }
    .breadcrumbs li * {
      font-size: 12px; }
  .breadcrumbs a {
    color: #170575; }
  .breadcrumbs h1 {
    display: inline;
    font-weight: normal; }

/* SECTION 共通スタイル
-----------------------------------------------------------------*/
.section_inner {
  position: relative;
  margin: 0 auto;
  font-size: 16px; }
  @media only screen and (min-width: 768px) {
    .section_inner {
      width: 930px; } }
  @media only screen and (max-width: 767px) {
    .section_inner {
      font-size: 14px; } }

.section_innerBg {
  background-color: #d9eff8;
  position: absolute;
  top: 0;
  left: 50%;
  margin-left: -360px;
  width: 100%;
  max-width: 1050px;
  height: 100%; }
  @media only screen and (max-width: 767px) {
    .section_innerBg {
      left: 40px;
      margin: 0; } }

.section_index {
  line-height: 1;
  font-size: 36px; }
  @media only screen and (max-width: 767px) {
    .section_index {
      font-size: 20px; } }
  @media only screen and (max-width: 767px) {
    .section_index span {
      padding: 0 20px 10px;
      display: block;
      border-bottom: 2px solid #a0a0a0; } }

/* 一覧ページ　コンテンツリスト
-----------------------------------------------------------------*/
.contentsLink {
  text-align: center;
  margin-top: 90px; }
  @media only screen and (max-width: 767px) {
    .contentsLink {
      margin-top: 28px; } }

.contentsLink_list {
  table-layout: fixed;
  max-width: 1340px;
  margin: 0 auto;
  text-align: center; }

.contentsLink_listNode {
  padding: 0 20px; }
  @media only screen and (min-width: 768px) {
    .contentsLink_listNode {
      width: 425px;
      margin-bottom: 45px;
      display: inline-block;
      vertical-align: top; } }
  @media only screen and (max-width: 767px) {
    .contentsLink_listNode {
      padding: 0 20px 40px;
      text-align: right; } }
  @media only screen and (min-width: 1025px) {
    .contentsLink_listNode:hover .contentsLink_label:before {
      -webkit-animation: hoverAnime 1s ease-in-out 1 alternate;
      animation: hoverAnime 1s ease-in-out 1 alternate; }
    .contentsLink_listNode:hover .contentsLink_label:after {
      -webkit-animation: hoverImgColor 1s ease-in-out 1 alternate;
      animation: hoverImgColor 1s ease-in-out 1 alternate; }
    .contentsLink_listNode:hover .contentsLink_label * {
      -webkit-animation: hoverFontColor 1s ease-in-out 1 alternate;
      animation: hoverFontColor 1s ease-in-out 1 alternate; } }
  .contentsLink_listNode img {
    width: 100%; }

.contentsLink_label {
  overflow: hidden;
  position: relative;
  background-color: #313131;
  text-align: left;
  color: #fff;
  padding: 36px 60px 36px 28px; }
  @media only screen and (min-width: 768px) {
    .contentsLink_label {
      min-height: 203px; } }
  @media only screen and (max-width: 767px) {
    .contentsLink_label {
      display: inline-block;
      width: 87%;
      margin-top: -30px;
      padding: 25px 40px 22px 20px;
      box-shadow: 0 8px 21.3px 5.7px rgba(2, 2, 2, 0.2); } }
  .contentsLink_label:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #fff;
    -webkit-transform: translate(-100%, 0);
    -ms-transform: translate(-100%, 0);
    transform: translate(-100%, 0); }
  .contentsLink_label:after {
    content: "";
    width: 14px;
    height: 100%;
    position: absolute;
    right: 28px;
    bottom: 0;
    background-image: url(../img/common/arrow_left.svg);
    background-repeat: no-repeat;
    background-position: right center;
    background-size: 14px auto; }
    @media only screen and (max-width: 767px) {
      .contentsLink_label:after {
        right: 20px;
        bottom: 0;
        width: 12px;
        background-size: 12px auto; } }
  .contentsLink_label .contentsLink_inner {
    position: relative; }
  .contentsLink_label .contentsLink_labelindex strong {
    display: block;
    font-size: 24px; }
    @media only screen and (max-width: 767px) {
      .contentsLink_label .contentsLink_labelindex strong {
        font-size: 17px; } }
  .contentsLink_label .contentsLink_labelindex span {
    display: block;
    font-size: 15px;
    padding: 7px 0 0; }
    @media only screen and (max-width: 767px) {
      .contentsLink_label .contentsLink_labelindex span {
        font-size: 12px;
        padding: 4px 0 0; } }
  .contentsLink_label .contentsLink_labelindex + p {
    margin-top: 20px; }
    @media only screen and (max-width: 767px) {
      .contentsLink_label .contentsLink_labelindex + p {
        margin-top: 10px; } }
  .contentsLink_label p {
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: 0; }
    @media only screen and (min-width: 768px) {
      .contentsLink_label p .shorten {
        letter-spacing: -1px; } }
    @media only screen and (max-width: 767px) {
      .contentsLink_label p {
        font-size: 14px; } }
  .contentsLink_label .contentsLink_labelName {
    font-weight: bold;
    margin-bottom: 12px; }
    @media only screen and (max-width: 767px) {
      .contentsLink_label .contentsLink_labelName {
        margin-bottom: 6px; } }

/* 概要ページ descriptionリスト
-----------------------------------------------------------------*/
.description_listItem {
  margin-bottom: 100px; }
  @media only screen and (max-width: 767px) {
    .description_listItem {
      margin-bottom: 30px; } }

.description_listImg {
  text-align: center; }

@media only screen and (min-width: 768px) {
  .description_listRow {
    border-top: 1px solid #000; }
    .description_listRow:first-of-type {
      border: none;
      margin-top: -36px; }
    .description_listRow:last-child .description_innerList:last-child {
      border: none; } }

@media only screen and (max-width: 767px) {
  .description_listRow {
    margin: 15px auto;
    padding: 0 20px; } }

@media only screen and (min-width: 768px) {
  .description_listRow + .description_listRow {
    margin-top: -1px; } }

.description_listRow a {
  color: #101177; }

.description_title {
  font-weight: bold;
  font-size: 16px;
  line-height: 2; }
  @media only screen and (min-width: 768px) {
    .description_title {
      float: left;
      margin: 28px 0 0 0;
      line-height: 1.7; }
      .description_title span {
        font-size: 14px; } }
  @media only screen and (max-width: 767px) {
    .description_title {
      line-height: 1.4;
      padding: 7px 10px 8px;
      background-color: #eee;
      display: inline-block; } }

.description_text {
  font-size: 16px;
  line-height: 2; }
  @media only screen and (min-width: 768px) {
    .description_text {
      display: table-cell; } }
  @media only screen and (max-width: 767px) {
    .description_text {
      font-size: 14px;
      line-height: 1.5;
      padding: 0 24px 0 20px; } }

.description_captionBox {
  width: 833px;
  margin-left: auto; }
  @media only screen and (max-width: 767px) {
    .description_captionBox {
      width: 100%; } }

.description_detailBox {
  width: 722px;
  margin-left: auto; }
  @media only screen and (max-width: 767px) {
    .description_detailBox {
      width: 100%; } }

.description_innerList {
  border-bottom: 1px solid #000; }
  @media only screen and (min-width: 768px) {
    .description_innerList {
      display: table;
      width: 100%; } }
  @media only screen and (max-width: 767px) {
    .description_innerList {
      padding: 14px 0; }
      .description_innerList:last-child {
        border: none; } }

.description_innerListTitle {
  font-weight: bold; }
  @media only screen and (min-width: 768px) {
    .description_innerListTitle {
      width: 258px;
      display: table-cell;
      vertical-align: top;
      font-size: 16px;
      line-height: 2;
      padding: 28px 0 30px 0; } }
  @media only screen and (max-width: 767px) {
    .description_innerListTitle {
      font-size: 14px;
      margin-bottom: 15px; } }

@media only screen and (min-width: 768px) {
  .description_innerListInfo {
    width: 462px;
    display: table-cell;
    vertical-align: top;
    padding: 28px 0 27px 0;
    font-size: 14px;
    line-height: 2; } }

@media only screen and (max-width: 767px) {
  .description_innerListInfo {
    line-height: 1.5; } }

.description_innerListInfo tr {
  text-align: left; }

.description_innerListInfo th {
  padding-right: 10px; }

/* ページ上部ビジュアル
-----------------------------------------------------------------*/
.contentVisual {
  position: relative; }

.contentVisual_img {
  overflow: hidden; }
  @media only screen and (max-width: 767px) {
    .contentVisual_img {
      position: relative; } }
  .contentVisual_img img {
    width: 100%; }
  .contentVisual_img .contentVisual_title {
    text-shadow: 1px 0.5px 0px #fff; }
    body[data-subdir="schedule"] .contentVisual_img .contentVisual_title {
      text-shadow: 1px 0.5px 0px #000; }
    @media only screen and (min-width: 768px) {
      .contentVisual_img .contentVisual_title {
        display: none; } }

.contentVisual_titleBox {
  text-shadow: 1px 0.5px 0px #fff; }
  body[data-subdir="schedule"] .contentVisual_titleBox {
    text-shadow: 1px 0.5px 0px #000; }
  @media only screen and (min-width: 768px) {
    .contentVisual_titleBox {
      width: 930px;
      height: 100%;
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      margin: auto; } }
  @media only screen and (max-width: 767px) {
    .contentVisual_titleBox .contentVisual_title {
      display: none; } }

.contentVisual_titleInner {
  display: table;
  height: 100%; }

.contentVisual_wrap {
  display: table-cell;
  vertical-align: middle; }

.contentVisual_title {
  margin: 0; }
  @media only screen and (max-width: 767px) {
    .contentVisual_title {
      position: absolute;
      top: 0px;
      bottom: 0;
      left: 0;
      width: 100%;
      height: 100%;
      padding: 0 20px;
      margin: auto;
      display: table; } }
  .contentVisual_title .inner {
    display: table-cell;
    vertical-align: middle; }
  .contentVisual_title .labelName {
    font-size: 24px;
    margin-bottom: 15px;
    text-indent: .2em; }
    @media only screen and (max-width: 767px) {
      .contentVisual_title .labelName {
        font-size: 20px;
        text-indent: 0; } }
  body[data-subdir="schedule"] .contentVisual_title .jp {
    color: #fff; }
  @media only screen and (max-width: 767px) {
    .contentVisual_title .jp {
      font-size: 36px; } }
  @media only screen and (max-width: 767px) {
    .contentVisual_title .en {
      font-size: 14px; } }

.contentVisual_caption {
  width: 400px;
  padding: 40px 0 0;
  font-size: 16px;
  font-weight: normal;
  line-height: 2; }
  @media only screen and (max-width: 767px) {
    .contentVisual_caption {
      width: auto;
      padding: 25px 20px 0;
      font-size: 14px;
      line-height: 1.8; } }
  @media only screen and (min-width: 768px) {
    .contentVisual_caption:before {
      content: "";
      width: 30px;
      height: 3px;
      display: block;
      margin: 0 0 38px;
      background-color: #000; } }
  .contentVisual_caption strong {
    display: block;
    font-weight: normal; }
    @media only screen and (max-width: 767px) {
      .contentVisual_caption strong {
        margin-bottom: 6px;
        font-size: 20px; } }

/* アンカーリンクリスト
-----------------------------------------------------------------*/
.anchorList {
  text-align: center;
  margin: 52px 0 44px; }
  @media only screen and (max-width: 767px) {
    .anchorList {
      margin: 1px 0 20px;
      background-color: #eee; } }

.anchorList_list {
  display: inline-block; }
  @media only screen and (max-width: 767px) {
    .anchorList_list {
      width: 100%;
      display: table; } }

.anchorList_node {
  display: inline-block;
  vertical-align: top;
  margin: 0 28px;
  font-size: 18px;
  font-weight: bold; }
  @media only screen and (max-width: 767px) {
    .anchorList_node {
      display: table-cell;
      vertical-align: top;
      font-size: 11px;
      border: 1px solid #fff; } }
  @media only screen and (max-width: 767px) {
    .anchorList_node a {
      display: table;
      width: 100%;
      height: 60px;
      line-height: 1.4;
      letter-spacing: 0; } }
  .anchorList_node span {
    display: table-cell;
    text-align: center;
    vertical-align: middle; }
    .anchorList_node span:after {
      content: "";
      display: block;
      margin: 10px auto 0;
      width: 26px;
      height: 26px;
      border-radius: 26px;
      -webkit-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
      transform: rotate(180deg);
      background-color: #000;
      background-image: url(../img/common/arrow_top_white.svg);
      background-repeat: no-repeat;
      background-position: center;
      background-size: 8px auto; }
      @media only screen and (max-width: 767px) {
        .anchorList_node span:after {
          -webkit-transform: rotate(0deg);
          -ms-transform: rotate(0deg);
          transform: rotate(0deg);
          margin-top: 3px;
          width: 9px;
          height: 6px;
          background-color: transparent;
          background-image: url(../img/common/arrow_black.png);
          background-size: 9px auto; } }

/* 404
-----------------------------------------------------------------*/
.notFoundSection {
  margin-top: 170px; }
  @media only screen and (max-width: 767px) {
    .notFoundSection {
      margin-top: 57px;
      padding: 0 20px; } }
  .notFoundSection .section_inner {
    text-align: center; }

.notFoundSection_caption {
  font-size: 30px;
  margin-bottom: 30px; }
  @media only screen and (max-width: 767px) {
    .notFoundSection_caption {
      font-size: 20px;
      margin-bottom: 16px; } }
  .notFoundSection_caption span {
    line-height: 1.7; }

.notFoundSection_content {
  color: #170575;
  font-size: 20px;
  font-weight: bold;
  line-height: 1.7; }
  @media only screen and (max-width: 767px) {
    .notFoundSection_content {
      font-size: 15px;
      line-height: 1.5; } }

.notFoundButtonBlock {
  margin-top: 92px; }
  @media only screen and (max-width: 767px) {
    .notFoundButtonBlock {
      margin-top: 50px; } }

.notFoundButton {
  margin-bottom: 40px; }
  .notFoundButton a {
    display: table;
    height: 105px;
    margin: 0 auto;
    padding: 0 34px; }
  .notFoundButton span {
    line-height: 1.7;
    display: table-cell;
    vertical-align: middle; }
  @media only screen and (max-width: 767px) {
    .notFoundButton {
      margin-bottom: 23px; }
      .notFoundButton a {
        width: 100%;
        height: 79px; } }
