﻿@charset "UTF-8";
/* CSS Document */
/* スマートフォン 580px以下 */
@import url("common_sp.css") only screen and (max-width: 580px);
/* デスクトップ 581px以上*/
@import url("common_pc.css") print, screen and (min-width: 581px);
/* Web Fonts */
@import url(https://fonts.googleapis.com/earlyaccess/notosansjapanese.css);
@import url(https://fonts.googleapis.com/css?family=Roboto+Condensed:300);
/*-------------------------CSS Reset*/
html, body, h1, h2, h3, h4, h5, h6, figure,
blockquote, ul, ol, dl, dt, dd, form, p {
  margin: 0;
  padding: 0;
}

html {
  font-size: 62.5%;
}

body {
  font-family: 'Noto Sans Japanese', "游ゴシック体", "Yu Gothic", YuGothic, "メイリオ", Meiryo, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  color: #333;
  background: -webkit-gradient(linear, left top, left bottom, from(#e2ede7), to(#cde6f3));
  background: linear-gradient(#e2ede7, #cde6f3);
  -webkit-text-size-adjust: 100%;
}

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

img {
  border: none;
  vertical-align: bottom;
}

strong {
  font-weight: bold;
}

strong.red {
  color: #f00;
}

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

a {
  color: #0b41a6;
}

a:hover,
a:active {
  color: #2ab2fb;
}

.alCenter {
  text-align: center;
}

.alRight {
  text-align: right;
}

/*clearfix start*/
.clearfix:after {
  content: ".";
  height: 0;
  font-size: 0;
  clear: both;
  display: block;
  visibility: hidden;
}

/*clearfix end*/
img {
  width: 100%;
  height: auto;
}

header,
footer {
  width: 100%;
}

main {
  display: block;
}

table {
  border-collapse: collapse;
}

.-ff-roboto,
footer > small {
  font-family: 'Roboto Condensed', sans-serif;
}

.icon-pdf {
  position: relative;
  padding: 0 .1em;
  display: inline-block;
}
.icon-pdf > img {
  width: initial;
}

/* ============================
 | Keyframes |
============================ */
@keyframes fadeIn {
  0% {
    visibility: hidden;
    opacity: 0;
    display: none;
  }
  1% {
    display: block;
  }
  2% {
    visibility: visible;
    opacity: 0;
  }
  100% {
    visibility: visible;
    opacity: 1;
  }
}

@keyframes fadeOut {
  0% {
    visibility: visible;
    opacity: 1;
  }
  99% {
    visibility: visible;
    opacity: 0;
  }
  100% {
    visibility: hidden;
    opacity: 0;
  }
}

@keyframes slideIn {
  0% {
    display: none;
    transform: translateY(-150vh);
  }
  1% {
    display: block;
    transform: translateY(-150vh);
  }
  100% {
    display: block;
    transform: translateY(0);
  }
}

@keyframes slideOut {
  0% {
    display: block;
    transform: translateY(0);
  }
  99% {
    display: block;
    transform: translateY(-150vh);
  }
  100% {
    display: none;
    transform: translateY(-150vh);
  }
}

/* ============================
 | Styles |
============================ */
html {
  position: relative;
}

html._fix {
  position: fixed;
  width: 100%;
  height: 100%;
}

body {
  position: relative;
}

.c-header a {
  text-decoration: none;
}

/* .c-header */
.c-header {
  z-index: 10;
  position: fixed;
  top: 0;
  display: flex;
  align-items: center;
  background-color: #000;
}

@media only screen and (min-width: 801px) {
  .c-header {
    justify-content: space-between;
    padding: 0 60px;
  }
}

@media only screen and (min-width: 801px) and (max-width: 1110px) {
  .c-header {
    padding: 0 40px;
  }
}

@media only screen and (max-width: 800px) {
  .c-header {
    justify-content: flex-end;
    flex-wrap: wrap;
  }
}

@media only screen and (max-width: 800px) {
  .c-header._open .c-header-btn span {
    transform: rotate(-405deg);
  }
}

@media only screen and (max-width: 800px) {
  .c-header._open .c-header-btn span::before {
    transform: rotate(-90deg);
  }
}

@media only screen and (max-width: 800px) {
  .c-header._open .c-header-btn span::after {
    transform: rotate(0);
  }
}

@media only screen and (max-width: 800px) {
  .c-header._open .c-header-list {
    display: block;
    transform: translateY(0);
    animation: slideIn 0.25s cubic-bezier(0.26, 0.01, 0.82, 0.15) forwards;
  }
}

@media only screen and (max-width: 800px) {
  .c-header._close .c-header-list {
    animation: slideOut 0.2s cubic-bezier(0.26, 0.01, 0.82, 0.15) forwards;
  }
}

/* .c-header-logo */
@media only screen and (min-width: 801px) {
  .c-header-logo {
    display: block;
  }
}

@media only screen and (max-width: 800px) {
  .c-header-logo {
    position: absolute;
    top: 50%;
    left: 5.33333vw;
    transform: translateY(-50%);
  }
}

@media only screen and (min-width: 581px) and (max-width: 800px) {
  .c-header-logo {
    left: 40px;
  }
}

@media only screen and (min-width: 801px) {
  .c-header-logo img {
    width: 132px;
    height: 44px;
  }
}

@media only screen and (max-width: 800px) {
  .c-header-logo img {
    width: 24vw;
  }
}

@media only screen and (min-width: 581px) and (max-width: 800px) {
  .c-header-logo img {
    width: 180px;
  }
}

/* .c-header-btn */
@media only screen and (min-width: 801px) {
  .c-header-btn {
    display: none;
  }
}

@media only screen and (max-width: 800px) {
  .c-header-btn {
    z-index: 20;
    position: relative;
    display: block;
    width: 7.46667vw;
    height: 4vw;
    margin: 6vw 5.33333vw;
  }
}

@media only screen and (min-width: 581px) and (max-width: 800px) {
  .c-header-btn {
    width: 56px;
    height: 30px;
    margin: 45px 40px;
  }
}

@media only screen and (max-width: 800px) {
  .c-header-btn span {
    position: absolute;
    top: calc(50% - 0.4vw);
    display: block;
    width: 100%;
    height: 0.8vw;
    transform-origin: center;
    transition: 0.2s cubic-bezier(0.16, 0.14, 0.01, 1);
  }
}

@media only screen and (min-width: 581px) and (max-width: 800px) {
  .c-header-btn span {
    top: calc(50% - 3px);
    height: 6px;
  }
}

@media only screen and (max-width: 800px) {
  .c-header-btn span::before, .c-header-btn span::after {
    position: absolute;
    top: 0;
    left: 0;
    content: "";
    display: block;
    width: 100%;
    height: 0.8vw;
    background-color: #fff;
    transform-origin: center;
    transition: 0.1s cubic-bezier(0.16, 0.14, 0.01, 1) 0.1s;
  }
}

@media only screen and (min-width: 581px) and (max-width: 800px) {
  .c-header-btn span::before, .c-header-btn span::after {
    height: 6px;
  }
}

@media only screen and (max-width: 800px) {
  .c-header-btn span::before {
    transform: translateY(-1.46667vw);
  }
}

@media only screen and (min-width: 581px) and (max-width: 800px) {
  .c-header-btn span::before {
    transform: translateY(-11px);
  }
}

@media only screen and (max-width: 800px) {
  .c-header-btn span::after {
    transform: translateY(1.46667vw);
  }
}

@media only screen and (min-width: 581px) and (max-width: 800px) {
  .c-header-btn span::after {
    transform: translateY(11px);
  }
}

/* .c-header-list */
@media only screen and (min-width: 801px) {
  .c-header-list {
    display: flex;
  }
}

@media only screen and (max-width: 800px) {
  .c-header-list {
    z-index: 15;
    overflow-y: scroll;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    padding: 14.66667vw 0 8vw;
    background-color: #000;
    transform: translateY(-150vh);
  }
}

/* .m-headerNav-item */
@media only screen and (min-width: 801px) {
  .m-headerNav-item {
    margin-left: 15px;
    border-top: 4px solid #000;
  }
}

@media only screen and (min-width: 801px) {
  .m-headerNav-item:first-of-type {
    margin-left: 0;
  }
}

@media only screen and (min-width: 801px) {
  .m-headerNav-item.-current {
    border-top: 4px solid #fff;
  }
}

@media only screen and (max-width: 800px) {
  .m-headerNav-item.-current a::before {
    position: absolute;
    top: calc(50% - 5.33333vw);
    left: -10.66667vw;
    content: "";
    display: block;
    width: 5.33333vw;
    height: 1.33333vw;
    background-color: #fff;
  }
}

@media only screen and (min-width: 801px) {
  .m-headerNav-item:hover {
    border-top: 4px solid #fff;
  }
}

.m-headerNav-item a {
  display: block;
  line-height: 1;
}

@media only screen and (min-width: 801px) {
  .m-headerNav-item a {
    padding: 18px 10px 12px;
    font-size: 12px;
    color: #808080;
  }
}

@media only screen and (max-width: 800px) {
  .m-headerNav-item a {
    position: relative;
    width: 32vw;
    margin: auto;
    padding: 5.33333vw 0;
    font-size: 3.2vw;
    color: #cccccc;
  }
}

@media only screen and (min-width: 581px) and (max-width: 800px) {
  .m-headerNav-item a {
    width: 240px;
    padding: 40px 0;
    font-size: 24px;
  }
}

.m-headerNav-item a span {
  display: block;
  color: #fff;
}

@media only screen and (min-width: 801px) {
  .m-headerNav-item a span {
    margin-bottom: 10px;
    font-size: 18px;
  }
}

@media only screen and (max-width: 800px) {
  .m-headerNav-item a span {
    margin-bottom: 2.4vw;
    font-size: 8vw;
    font-weight: 200;
  }
}

@media only screen and (min-width: 581px) and (max-width: 800px) {
  .m-headerNav-item a span {
    margin-bottom: 18px;
    font-size: 60px;
    font-weight: 200;
  }
}

.list-inline {
    padding-left: 0;
    list-style: none;
    margin-left: -5px;
    text-align: center;
}

.list-inline>li {
    display: inline-block;
    padding-left: 7px;
    padding-right: 7px;
}

.v-line>li {
    border-left: 1px solid #000
}

.v-line>li:first-child {
    border-left: none
}

/* ボタン */
.btn-type-a > .btn-inner {
width: 100%;
display: inline-block;
padding: .8em 1em;
background-color: #094ab0;
color: #fff;
font-size: 1.3rem;
font-weight: bold;
text-align: center;
text-decoration: none;
border-radius: 7px;
vertical-align: middle;
}
@media print, screen and (min-width: 581px) {
  .col-4 .btn-type-a {
    display: flex;
  }
  .btn-type-a > .btn-inner {
    width: initial;
    width: auto; /* IE用 */
    padding: 15px;
    font-size: 1.6rem;
    transition: all 300ms 0s ease;
  }
  .col-4 .btn-type-a > .btn-inner {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .btn-type-a > .btn-inner:hover {
    background-color: #fff;
    color: #094ab0;
  }
}

/* レイアウト（4カラム） */
.col-4 {
  margin: 2em 0 0;
}
.col-4 > li,
.col-4 > .part {
  margin: 1em 0 0;
}
.col-4 > li:first-child,
.col-4 > .part:first-child {
  margin-top: 0;
}

@media print, screen and (min-width: 581px) {
  .col-4 {
    margin: 40px 0 0; /* 修正 */
    width: 100%;
    display: flex;
    flex-wrap: wrap;
  }
  .col-4 > li,
  .col-4 > .part {
    width: calc((100% - 20.01px *3) / 4);
    margin: 0 20px 0 0;
  }
  /* Edge対策 */
  @supports (-ms-ime-align: auto) {
    .col-4 > li,
    .col-4 > .part {
      width: calc(50% - 10.01px *3) / 4);
    }
  }
  .col-4 > li:nth-child(4n),
  .col-4 > .part:nth-child(4n) {
    margin-right: 0;
  }
  .col-4 > li:nth-child(n + 5),
  .col-4 > .part:nth-child(n + 5) {
    margin-top: 20px;
  }
}