@import url(//fonts.googleapis.com/css?family=Noto+Sans+JP:400,700|Oswald:700);@charset "UTF-8";
/* Slider */
.slick-slider {
  position: relative;
  display: block;
  box-sizing: border-box;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  -khtml-user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent; }

.slick-list {
  position: relative;
  display: block;
  overflow: hidden;
  margin: 0;
  padding: 0; }

.slick-list:focus {
  outline: none; }

.slick-list.dragging {
  cursor: pointer;
  cursor: hand; }

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

.slick-track {
  position: relative;
  top: 0;
  left: 0;
  display: block;
  margin-left: auto;
  margin-right: auto; }

.slick-track:before,
.slick-track:after {
  display: table;
  content: ''; }

.slick-track:after {
  clear: both; }

.slick-loading .slick-track {
  visibility: hidden; }

.slick-slide {
  display: none;
  float: left;
  height: 100%;
  min-height: 1px; }

[dir='rtl'] .slick-slide {
  float: right; }

.slick-slide img {
  display: block; }

.slick-slide.slick-loading img {
  display: none; }

.slick-slide.dragging img {
  pointer-events: none; }

.slick-initialized .slick-slide {
  display: block; }

.slick-loading .slick-slide {
  visibility: hidden; }

.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent; }

.slick-arrow.slick-hidden {
  display: none; }

/* --------------------
HEADER FOOTER
COMMON
- layout
- heading
- list
- box
- table
- images
- font
- align

TOP PAGE
API PAGE

RESPONSIVE
- max-width: 1024px
- max-width: 991px
- max-width: 600px
- max-width: 480px
 -------------------- */
/* --------------------
COMMON
 -------------------- */
* {
  margin: 0;
  padding: 0;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

body {
  font-family: 'Oswald','Noto Sans JP', "\6E38\30B4\30B7\30C3\30AF   Medium", "Yu Gothic Medium", YuGothicM, 游ゴシック体, YuGothic, "\30D2\30E9\30AE\30CE\89D2\30B4   Pro", "Hiragino Kaku Gothic Pro", "Meiryo UI",メイリオ, Meiryo, sans-serif;
  font-size: 100%;
  color: #3C4854;
  width: 100%;
  line-height: 1.8;
  font-feature-settings: "palt" 1;
  -webkit-text-size-adjust: 100%; }

p {
  font-family: 'Noto Sans JP', "\6E38\30B4\30B7\30C3\30AF   Medium", "Yu Gothic Medium", YuGothicM, 游ゴシック体, YuGothic, "\30D2\30E9\30AE\30CE\89D2\30B4   Pro", "Hiragino Kaku Gothic Pro", "Meiryo UI",メイリオ, Meiryo, sans-serif;
  padding-bottom: 16px;
  line-height: 2; }
  p a {
    color: #DF2220;
    text-decoration: underline; }
    p a:hover {
      color: #3C4854; }
    p a.gray:hover {
      color: #BBC8D0; }

a {
  color: #3C4854;
  text-decoration: none;
  outline: none;
  transition: color 0.5s; }

button {
  outline: none; }

ol, ul {
  list-style: none;
  margin: 0;
  padding: 0; }
  ol li, ul li {
    font-family: 'Noto Sans JP', "\6E38\30B4\30B7\30C3\30AF   Medium", "Yu Gothic Medium", YuGothicM, 游ゴシック体, YuGothic, "\30D2\30E9\30AE\30CE\89D2\30B4   Pro", "Hiragino Kaku Gothic Pro", "Meiryo UI",メイリオ, Meiryo, sans-serif; }

img {
  vertical-align: bottom; }

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

[class^="icon-"], [class*=" icon-"] {
  font-family: 'icon-font' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.icon-arrow_back:before {
  content: "\E900"; }

.icon-twitter:before {
  content: "\F099"; }

.icon-facebook:before {
  content: "\F09A"; }

/* header footer */
header {
  height: 56px;
  padding: 8px 0;
  font-weight: bold;
  line-height: 1;
  background-color: #fff; }
  header .contents {
    position: relative; }
  header .header-logo {
    display: flex;
    align-items: center; }
    header .header-logo img {
      width: 40px;
      /* ie11 */
      height: 40px;
      margin-right: 8px; }

.header-menu li,
.footer-menu li,
.header-sns li,
.footer-sns li {
  display: inline-block;
  text-align: center;
  font-family: 'Oswald','Noto Sans JP', "\6E38\30B4\30B7\30C3\30AF   Medium", "Yu Gothic Medium", YuGothicM, 游ゴシック体, YuGothic, "\30D2\30E9\30AE\30CE\89D2\30B4   Pro", "Hiragino Kaku Gothic Pro", "Meiryo UI",メイリオ, Meiryo, sans-serif; }

.header-menu {
  position: absolute;
  top: 4px;
  right: 100px; }
  .header-menu a {
    display: inline-block;
    padding: 8px 16px;
    color: #DF2220; }
    .header-menu a:hover {
      color: #3C4854; }

.header-sns {
  position: absolute;
  top: 8px;
  right: 0;
  font-size: 20px; }
  .header-sns a {
    display: block;
    width: 32px;
    height: 100%;
    color: #3C4854; }
    .header-sns a:hover {
      color: #BBC8D0; }

/* 20200923 tamori add */
header#header-gray {
    height: 56px;
    padding: 8px 0;
    font-weight: bold;
    line-height: 1;
    color: #BBC8D0;
    background-color: #3C4854; }
header#header-gray  .contents {
    position: relative; }
header#header-gray  .header-logo {
    display: flex;
    align-items: center; }
header#header-gray  .header-logo img {
    width: 40px;
    /* ie11 */
    height: 40px;
    margin-right: 8px; }

.header-gray-menu li,
.header-gray-sns li {
    display: inline-block;
    text-align: center;
    font-family: 'Oswald','Noto Sans JP', "\6E38\30B4\30B7\30C3\30AF   Medium", "Yu Gothic Medium", YuGothicM, 游ゴシック体, YuGothic, "\30D2\30E9\30AE\30CE\89D2\30B4   Pro", "Hiragino Kaku Gothic Pro", "Meiryo UI",メイリオ, Meiryo, sans-serif; }

.header-gray-menu {
      position: absolute;
      top: 4px;
      right: 100px; }
.header-gray-menu a {
    display: inline-block;
    padding: 8px 16px;
    color: #fff; }
.header-gray-menu a:hover {
    color: #BBC8D0; }

.header-gray-sns {
      position: absolute;
      top: 8px;
      right: 0;
      font-size: 20px; }
.header-gray-sns a {
    display: block;
    width: 32px;
    height: 100%;
    color: #BBC8D0; }
.header-gray-sns a:hover {
    color: #f0f3f5; }

footer {
  clear: both;
  padding: 64px 0;
  color: #BBC8D0;
  font-weight: normal;
  text-align: center;
  background-color: #3C4854; }
  footer small {
    display: block; }

.footer-menu {
  padding: 16px 0;
  font-size: 0.875rem; }
  .footer-menu a {
    display: inline-block;
    padding: 8px 16px;
    color: #fff; }
    .footer-menu a:hover {
      color: #BBC8D0; }

.footer-sns {
  font-size: 24px; }
  .footer-sns a {
    display: block;
    width: 48px;
    height: 100%;
    color: #BBC8D0; }
    .footer-sns a:hover {
      color: #f0f3f5; }

/*
body {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: column;
  flex-direction: column;
  min-height: 100vh;
}

footer {
  margin-top: auto;
}
*/
body {
  position: relative;
  min-height: 100vh;
  padding-bottom: 350px; }

footer {
  position: absolute;
  width: 100%;
  bottom: 0;
  left: 0; }

/* iframe */

iframe {
    border: none;
    width: 100%;
}

/* layout */
.contents {
  max-width: 1000px;
  margin: 0 auto; }

.contents-wider {
  max-width: 1200px;
  margin: 0 auto; 
}


#typedtext {
    
    background-color: #000;
    color: #18ED59;
    padding: 32px 32px 32px 32px;
    margin: 16px 0 16px 0;
}
.contents-narrow {
  max-width: 800px;
  margin: 0 auto; }

[class^="section-"] {
  padding: 32px 0; }

.section-gray {
  background-color: #f0f3f5; }

.cb-col2 {
  display: flex;
  justify-content: space-between; }
  .cb-col2 .cb {
    width: 49%; }

.clear {
  clear: both; }

/* heading */
.ttl-red-line {
  margin-bottom: 24px;
  color: #DF2220;
  font-size: 2.25rem;
  border-bottom: 1px solid #DF2220; }

.ttl-gray-line {
  margin-bottom: 24px;
  color: #BBC8D0;
  font-size: 2.25rem;
  border-bottom: 1px solid #BBC8D0; }

.ttl-gray {
  margin: 16px 0;
  font-size: 1.5rem; }

.ttl-gray-light {
  margin-bottom: 8px;
  color: #677b90; }

.ttl-category {
  min-height: 80px;
  padding: 24px;
  text-align: center;
  border-bottom: 8px solid #3C4854;
  background: #f0f3f5 url(../images/bg_dot.png) top left; }
  .ttl-category .category {
    color: #BBC8D0; }
  .ttl-category h1 {
    line-height: 1.3; }

/* list */
.list-news dd {
  margin-bottom: 16px;
  padding-bottom: 16px;
  border-bottom: 1px dotted #BBC8D0; }
.list-news a {
    color: #DF2220;
    text-decoration: underline; }
.list-news a:hover {
      color: #3C4854; }

.list-disc,
.list-num {
  margin-left: 24px;
  padding-bottom: 16px; }
  .list-disc li,
  .list-num li {
    list-style: disc;
    margin-bottom: 8px;
    padding-left: 8px; }
    .list-disc li a,
    .list-num li a {
      color: #DF2220;
      text-decoration: underline; }
      .list-disc li a:hover,
      .list-num li a:hover {
        color: #3C4854; }

.list-num li {
  list-style: decimal; }

/* box */
.cb-gray, .cb-code {
  margin: 16px 0;
  padding: 24px;
  background-color: #f0f3f5; }

/* table */
table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 16px; }
  table th, table td {
    padding: 8px;
    text-align: left;
    vertical-align: top;
    border: 1px solid #BBC8D0; }
    table th.nowrap, table td.nowrap {
      white-space: nowrap; }
  table th {
    background-color: #f0f3f5; }
  table tr.tr-dark th, table tr.tr-dark td {
    color: #fff;
    background-color: #3C4854; }

/* images */
.img-l img,
.img-r img,
.img-c img {
  max-width: 100%; }

.img-l .caption,
.img-r .caption,
.img-c .caption {
  margin-top: 8px;
  color: #BBC8D0;
  font-size: 0.875rem; }

.img-l,
.img-r {
  max-width: 400px; }

.img-l {
  float: left;
  margin: 0 16px 16px 0; }

.img-r {
  float: right;
  margin: 0 0 16px 16px; }

.img-c {
  clear: both;
  margin: 16px 0;
  text-align: center; }

/* font */
code {
  padding: 2px 4px;
  color: #DF2220;
  background-color: #f0f3f5;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px; }

.date {
  font-size: 1.125rem; }

.ta-c {
  text-align: center; }

/* align */
.al-r {
  text-align: right; }

.al-c {
  text-align: center; }

/* --------------------
TOP PAGE
 -------------------- */
#hero {
  position: relative;
  overflow: hidden;
  height: 640px;
  background: url(../images/bg_dot.png) top left; }
  #hero::before, #hero::after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 55%;
    width: 755px;
    height: 755px;
    background: url(../images/ring_2.png) no-repeat center center;
    opacity: 0;
    animation: anime1 5s ease 1.5s 1 forwards; }
  #hero::before {
    background: url(../images/ring_1.svg) no-repeat center center;
    animation: anime1 5s ease 0s 1 forwards; }

@keyframes anime1 {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
  #hero .hero-txt-flow {
    position: absolute;
    top: 0;
    left: 55%;
    width: 755px;
    height: 755px; }
    #hero .hero-txt-flow span {
      position: absolute;
      top: 50%;
      left: 50%;
      color: #DF2220;
      font-weight: bold;
      font-size: 1.4rem;
      opacity: 0;
      animation: flow1 3s linear 0s 1 forwards; }
    #hero .hero-txt-flow span:nth-of-type(2n) {
      color: #3C4854;
      font-weight: normal;
      font-size: 1.25rem; }
    #hero .hero-txt-flow span:nth-of-type(3n) {
      color: #DF2220;
      font-weight: normal;
      font-size: 1.25rem; }
    #hero .hero-txt-flow span:nth-of-type(4n) {
      color: #3C4854;
      font-weight: normal;
      font-size: 0.875rem; }
    #hero .hero-txt-flow span:nth-of-type(2) {
      animation: flow2 2s linear 2s 1 forwards; }
    #hero .hero-txt-flow span:nth-of-type(3) {
      animation: flow5 3s linear 0s 1 forwards; }
    #hero .hero-txt-flow span:nth-of-type(5) {
      animation: flow2 5s linear 3s 1 forwards; }
    #hero .hero-txt-flow span:nth-of-type(6) {
      animation: flow3 4s linear 1s 1 forwards; }
    #hero .hero-txt-flow span:nth-of-type(7) {
      animation: flow1 4s linear 2s 1 forwards; }
    #hero .hero-txt-flow span:nth-of-type(8) {
      animation: flow8 4s linear 3s 1 forwards; }
    #hero .hero-txt-flow span:nth-of-type(9) {
      animation: flow7 4s linear 3s 1 forwards; }
    #hero .hero-txt-flow span:nth-of-type(10) {
      animation: flow5 2s linear 3s 1 forwards; }
    #hero .hero-txt-flow span:nth-of-type(11) {
      animation: flow6 3s linear 1s 1 forwards; }
    #hero .hero-txt-flow span:nth-of-type(12) {
      animation: flow8 3s linear 0s 1 forwards; }
    #hero .hero-txt-flow span:nth-of-type(13) {
      animation: flow4 5s linear 0s 1 forwards; }
    #hero .hero-txt-flow span:nth-of-type(14) {
      animation: flow7 4s linear 0s 1 forwards; }
    #hero .hero-txt-flow span:nth-of-type(15) {
      animation: flow6 4s linear 2s 1 forwards; }

@keyframes flow1 {
  0% {
    opacity: 0;
    top: 50%;
    left: 50%; }
  60% {
    opacity: 1; }
  100% {
    opacity: 0;
    top: 0;
    left: 30%; } }

@keyframes flow2 {
  0% {
    opacity: 0;
    top: 50%;
    left: 50%; }
  60% {
    opacity: 1; }
  100% {
    opacity: 0;
    top: 30%;
    left: 70%; } }

@keyframes flow3 {
  0% {
    opacity: 0;
    top: 50%;
    left: 50%; }
  60% {
    opacity: 1; }
  100% {
    opacity: 0;
    top: 100%;
    left: 60%; } }

@keyframes flow4 {
  0% {
    opacity: 0;
    top: 50%;
    left: 50%; }
  60% {
    opacity: 1; }
  100% {
    opacity: 0;
    top: 100%;
    left: 50%; } }

@keyframes flow5 {
  0% {
    opacity: 0;
    top: 50%;
    left: 50%; }
  60% {
    opacity: 1; }
  100% {
    opacity: 0;
    top: 60%;
    left: 0; } }

@keyframes flow6 {
  0% {
    opacity: 0;
    top: 50%;
    left: 50%; }
  60% {
    opacity: 1; }
  100% {
    opacity: 0;
    top: 0;
    left: 50%; } }

@keyframes flow7 {
  0% {
    opacity: 0;
    top: 50%;
    left: 50%; }
  60% {
    opacity: 1; }
  100% {
    opacity: 0;
    top: 50%;
    left: 70%; } }

@keyframes flow8 {
  0% {
    opacity: 0;
    top: 50%;
    left: 50%; }
  60% {
    opacity: 1; }
  100% {
    opacity: 0;
    top: 50%;
    left: 0; } }
  #hero .contents {
    position: relative;
    z-index: 5;
    height: 100%;
    display: flex;
    align-items: center; }
  #hero .hero-ttl {
    width: 33em;
    margin-top: -64px; }
    #hero .hero-ttl h1 {
      margin-bottom: 24px;
      color: #DF2220;
      font-size: 2.8rem;
      font-weight: normal; }
      #hero .hero-ttl h1 span {
        position: relative;
        display: block; }
        #hero .hero-ttl h1 span::after {
          content: "";
          display: block;
          position: absolute;
          bottom: -4px;
          left: 0;
          width: 5em;
          height: 1px;
          background-color: #DF2220; }
        #hero .hero-ttl h1 span:nth-of-type(2)::after {
          width: 11em; }
        #hero .hero-ttl h1 span:nth-of-type(3)::after {
          width: 11em; }

/* slider */
.slider-panel {
  display: none;
  margin: -128px 0 48px; }
  .slider-panel.slick-initialized {
    display: block; }
  .slider-panel .slick-track {
    display: flex; }
    .slider-panel .slick-track .slick-slide {
      height: auto; }
  .slider-panel .slick-arrow {
    position: absolute;
    top: calc(50% - 47px);
    left: -50px;
    width: 50px;
    height: 50px;
    color: transparent;
    line-height: 1;
    border: none;
    background: none; }
    .slider-panel .slick-arrow.slick-next {
      left: auto;
      right: -50px;
      -webkit-transform: rotate(180deg);
      -moz-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
      -o-transform: rotate(180deg);
      transform: rotate(180deg); }
    .slider-panel .slick-arrow:hover {
      cursor: pointer; }
    .slider-panel .slick-arrow::before {
      content: "";
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      z-index: 9999;
      font-family: 'icon-font' !important;
      content: "\E900";
      width: 100%;
      height: 100%;
      color: #DF2220;
      font-size: 50px; }
  .slider-panel .slick-dots {
    padding-top: 16px;
    text-align: center; }
    .slider-panel .slick-dots li {
      display: inline-block;
      padding: 0 8px; }
      .slider-panel .slick-dots li button {
        width: 10px;
        height: 10px;
        -webkit-border-radius: 50%;
        -moz-border-radius: 50%;
        border-radius: 50%;
        background: #BBC8D0;
        border: none;
        color: transparent; }
        .slider-panel .slick-dots li button:hover {
          cursor: pointer; }
      .slider-panel .slick-dots li.slick-active button {
        background: #DF2220; }
  .slider-panel .panel {
    -webkit-box-shadow: 0 1px 3px #BBC8D0;
    -moz-box-shadow: 0 1px 3px #BBC8D0;
    box-shadow: 0 1px 3px #BBC8D0;
    -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
    border-radius: 3px;
    margin: 0 8px;
    background-color: #3C4854;
    -webkit-transition: background-color 0.5s;
    -moz-transition: background-color 0.5s;
    -ms-transition: background-color 0.5s;
    -o-transition: background-color 0.5s;
    transition: background-color 0.5s; }
    .slider-panel .panel:hover {
      background-color: #5c788a; }
    .slider-panel .panel a {
      display: block;
      padding: 24px;
      width: 100%;
      height: 100%;
      color: #fff; }
    .slider-panel .panel .thumb {
      display: flex;
      justify-content: center;
      align-items: center;
      height: 80px;
      margin-bottom: 16px; }
      .slider-panel .panel .thumb img {
        display: inline-block;
        max-width: 100%;
        max-height: 80px; }
    .slider-panel .panel .name {
      margin-bottom: 16px;
      font-size: 1.125rem;
      font-weight: bold; }
    .slider-panel .panel .summary {
      font-size: 0.875rem; }

/* --------------------
API PAGE
 -------------------- */
.api-intro {
  -webkit-box-shadow: 0 1px 3px #BBC8D0;
  -moz-box-shadow: 0 1px 3px #BBC8D0;
  box-shadow: 0 1px 3px #BBC8D0;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  display: flex;
  overflow: hidden;
  margin-bottom: 8px;
  background-color: #f0f3f5; }
  .api-intro .thumb {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 50%;
    padding: 24px;
    background-color: #3C4854; }
    .api-intro .thumb img {
      max-width: 100px; }
  .api-intro .thumb-logo {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 50%;
    padding: 24px;
    background-color: #fff; }
    .api-intro .thumb-logo img {
      max-width: 300px; }
.api-intro .txt {
    width: 50%;
    padding: 24px; }
    .api-intro .txt .name {
      margin-bottom: 16px;
      font-size: 1.25rem;
      font-weight: bold; }

.api-pagenav {
  -webkit-box-shadow: 0 1px 3px #BBC8D0;
  -moz-box-shadow: 0 1px 3px #BBC8D0;
  box-shadow: 0 1px 3px #BBC8D0;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  overflow: hidden;
  display: flex;
  justify-content: space-between;
  text-align: center; }
  .api-pagenav li {
    width: 100%; }
    .api-pagenav li a {
      display: block;
      width: 100%;
      height: 100%;
      padding: 8px 0;
      background-color: #f0f3f5;
      -webkit-transition: background-color 0.5s;
      -moz-transition: background-color 0.5s;
      -ms-transition: background-color 0.5s;
      -o-transition: background-color 0.5s;
      transition: background-color 0.5s; }
      .api-pagenav li a.btn-api-key {
        color: #fff;
        background-color: #DF2220; }
      .api-pagenav li a:hover {
        color: #fff;
        background-color: #3C4854; }
  .api-pagenav.fixed {
    position: fixed !important;
    top: -50px;
    left: 0;
    z-index: 9999;
    width: 100%;
    opacity: 0;
    animation: down 0.5s ease 0s 1 forwards; }

@keyframes down {
  0% {
    top: -50px;
    opacity: 0; }
  100% {
    top: 0;
    opacity: 1; } }

/* panel */
.panel-api-small .panel,
.panel-api-large .panel,
.panel-member .panel {
  -webkit-box-shadow: 0 1px 3px #BBC8D0;
  -moz-box-shadow: 0 1px 3px #BBC8D0;
  box-shadow: 0 1px 3px #BBC8D0;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  width: 32%;
  float: left;
  margin: 0 2% 16px 0;
  background-color: #fff;
  overflow: hidden; }
  .panel-api-small .panel:nth-of-type(3n),
  .panel-api-large .panel:nth-of-type(3n),
  .panel-member .panel:nth-of-type(3n) {
    margin-right: 0; }
  .panel-api-small .panel:nth-of-type(3n+1),
  .panel-api-large .panel:nth-of-type(3n+1),
  .panel-member .panel:nth-of-type(3n+1) {
    clear: both; }
  .panel-api-small .panel a,
  .panel-api-large .panel a,
  .panel-member .panel a {
    display: block;
    width: 100%;
    height: 100%; }
  .panel-api-small .panel .thumb,
  .panel-api-large .panel .thumb,
  .panel-member .panel .thumb {
    background-color: #3C4854;
    -webkit-transition: background-color 0.5s;
    -moz-transition: background-color 0.5s;
    -ms-transition: background-color 0.5s;
    -o-transition: background-color 0.5s;
    transition: background-color 0.5s; }
    .panel-api-small .panel .thumb img,
    .panel-api-large .panel .thumb img,
    .panel-member .panel .thumb img {
      max-width: 90%;
      max-height: 80px; }
  .panel-api-small .panel a:hover .thumb,
  .panel-api-large .panel a:hover .thumb,
  .panel-member .panel a:hover .thumb {
    background-color: #5c788a; }
  .panel-api-small .panel .name,
  .panel-api-large .panel .name,
  .panel-member .panel .name {
    padding: 16px;
    font-weight: bold; }

.panel-api-small {
  display: flex;
  flex-wrap: wrap; }
  .panel-api-small .panel {
    -webkit-transition: box-shadow 0.5s;
    -moz-transition: box-shadow 0.5s;
    -ms-transition: box-shadow 0.5s;
    -o-transition: box-shadow 0.5s;
    transition: box-shadow 0.5s; }
    .panel-api-small .panel:hover {
      -webkit-box-shadow: 0 5px 3px #BBC8D0;
      -moz-box-shadow: 0 5px 3px #BBC8D0;
      box-shadow: 0 5px 3px #BBC8D0; }
    .panel-api-small .panel a {
      display: flex; }
    .panel-api-small .panel .thumb {
      display: flex;
      justify-content: center;
      align-items: center;
      flex-shrink: 0;
      width: 96px;
      min-height: 96px; }
    .panel-api-small .panel .name {
      display: flex;
      align-items: center;
      flex-shrink: 1; }

.panel-api-large {
  display: flex;
  flex-wrap: wrap; }
  .panel-api-large .panel {
    margin-bottom: 48px;
    background-color: #f0f3f5;
    -webkit-transition: box-shadow 0.5s;
    -moz-transition: box-shadow 0.5s;
    -ms-transition: box-shadow 0.5s;
    -o-transition: box-shadow 0.5s;
    transition: box-shadow 0.5s; }
    .panel-api-large .panel:hover {
      -webkit-box-shadow: 0 5px 3px #BBC8D0;
      -moz-box-shadow: 0 5px 3px #BBC8D0;
      box-shadow: 0 5px 3px #BBC8D0; }
    .panel-api-large .panel .thumb {
      display: flex;
      justify-content: center;
      align-items: center;
      height: 116px; }
      .panel-api-large .panel .thumb img {
        display: inline-block; }
    .panel-api-large .panel .summary {
      padding: 0 16px 24px; }

.panel-member {
  display: flex;
  flex-wrap: wrap; }
  .panel-member .panel {
    padding: 24px;
    text-align: center; }
    .panel-member .panel .thumb {
      background-color: #fff; }
      .panel-member .panel .thumb img {
        width: 150px;
        max-height: none;
        -webkit-border-radius: 50%;
        -moz-border-radius: 50%;
        border-radius: 50%; }
    .panel-member .panel .summary {
      text-align: left; }

/* btn */
.btn-area {
  clear: both;
  padding: 24px 0;
  text-align: center; }

.btn-red-line {
  display: inline-block;
  min-width: 50%;
  padding: 16px;
  font-size: 1.125rem;
  font-weight: bold;
  text-align: center;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  position: relative;
  color: #DF2220;
  border: 2px solid #DF2220; }
  .btn-red-line::before, .btn-red-line::after {
    content: "";
    display: block;
    position: absolute;
    top: 53%;
    right: 16px;
    width: 64px;
    height: 1px;
    background-color: #DF2220;
    -webkit-transition: 0.5s;
    -moz-transition: 0.5s;
    -ms-transition: 0.5s;
    -o-transition: 0.5s;
    transition: 0.5s; }
  .btn-red-line::after {
    width: 24px;
    transform-origin: bottom right;
    -webkit-transform: rotate(30deg);
    -moz-transform: rotate(30deg);
    -ms-transform: rotate(30deg);
    -o-transform: rotate(30deg);
    transform: rotate(30deg); }
  .btn-red-line:hover {
    background-color: #fff; }
    .btn-red-line:hover::before, .btn-red-line:hover::after {
      right: -32px; }

.btn-red {
  display: inline-block;
  min-width: 50%;
  padding: 16px;
  font-size: 1.125rem;
  font-weight: bold;
  text-align: center;
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  color: #fff;
  background-color: #DF2220;
  -webkit-transition: background-color 0.5s;
  -moz-transition: background-color 0.5s;
  -ms-transition: background-color 0.5s;
  -o-transition: background-color 0.5s;
  transition: background-color 0.5s; }
  .btn-red:hover {
    cursor: pointer;
    background-color: #3C4854; }
.box{
  vertical-align: middle;
    display: inline-flex;
width: 100%
}
.btn-red-small {
  display: inline-block;
  min-width: 15%;
  min-height:24px;
    margin-top: 4px;
  margin-bottom: 20px;
  margin-left: 10px;
  padding: 2px;
  font-size: 1.125rem;
  font-weight: bold;
   text-align: center;   
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  
  color: #fff;
  background-color: #DF2220;
  -webkit-transition: background-color 0.5s;
  -moz-transition: background-color 0.5s;
  -ms-transition: background-color 0.5s;
  -o-transition: background-color 0.5s;
  transition: background-color 0.5s; }
  .btn-red-small:hover {
    cursor: pointer;
    background-color: #3C4854; }

.btn-red-verysmall {
  display: inline;
  min-width: 8%;
  min-height:24px;
    margin-top: 2px;
  margin-bottom: 10px;
  margin-left: 5px;
  margin-right: 5px;
  padding: 2px;
  font-size: 0.5rem;
   text-align: center;   
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  
  color: #fff;
  background-color: #DF2220;
  -webkit-transition: background-color 0.5s;
  -moz-transition: background-color 0.5s;
  -ms-transition: background-color 0.5s;
  -o-transition: background-color 0.5s;
  transition: background-color 0.5s; }
  .btn-red-verysmall:hover {
    cursor: pointer;
    background-color: #3C4854; }

/* code */
.cb-code {
  clear: both;
  background-color: #2b343c; }
  .cb-code pre {
    word-break: break-all;
    word-wrap: break-word; }
  .cb-code code {
    display: block;
    overflow-x: auto;
    color: #BBC8D0;
    white-space: pre-wrap;
    background-color: transparent; }
    .cb-code code .hljs {
      display: block;
      overflow-x: auto;
      padding: 0.5em;
      background: #002b36;
      color: #839496; }
    .cb-code code .hljs-comment, .cb-code code .hljs-quote {
      color: #586e75; }
    .cb-code code .hljs-keyword, .cb-code code .hljs-selector-tag, .cb-code code .hljs-addition {
      color: #859900; }
    .cb-code code .hljs-number, .cb-code code .hljs-string, .cb-code code .hljs-meta .hljs-meta-string, .cb-code code .hljs-literal, .cb-code code .hljs-doctag, .cb-code code .hljs-regexp {
      color: #2aa198; }
    .cb-code code .hljs-title, .cb-code code .hljs-section, .cb-code code .hljs-name, .cb-code code .hljs-selector-id, .cb-code code .hljs-selector-class {
      color: #268bd2; }
    .cb-code code .hljs-attribute, .cb-code code .hljs-attr, .cb-code code .hljs-variable, .cb-code code .hljs-template-variable, .cb-code code .hljs-class .hljs-title, .cb-code code .hljs-type {
      color: #b58900; }
    .cb-code code .hljs-symbol, .cb-code code .hljs-bullet, .cb-code code .hljs-subst, .cb-code code .hljs-meta, .cb-code code .hljs-meta .hljs-keyword, .cb-code code .hljs-selector-attr, .cb-code code .hljs-selector-pseudo, .cb-code code .hljs-link {
      color: #cb4b16; }
    .cb-code code .hljs-built_in, .cb-code code .hljs-deletion {
      color: #dc322f; }
    .cb-code code .hljs-formula {
      background: #073642; }
    .cb-code code .hljs-emphasis {
      font-style: italic; }
    .cb-code code .hljs-strong {
      font-weight: bold; }
    .cb-code code.code-custom [class^="hljs-"] {
      color: #BBC8D0; }
    .cb-code code.code-custom .lime {
      color: #859900; }
    .cb-code code.code-custom .lime span {
      color: #859900; }
    .cb-code code.code-custom .green {
      color: #2aa198; }
    .cb-code code.code-custom .green span {
      color: #2aa198; }
    .cb-code code.code-custom .blue {
      color: #268bd2; }
    .cb-code code.code-custom .blue span {
      color: #268bd2; }
    .cb-code code.code-custom .orange {
      color: #b58900; }
    .cb-code code.code-custom .orange span {
      color: #b58900; }
    .cb-code code.code-custom .mandarine {
      color: #cb4b16; }
    .cb-code code.code-custom .mandarine span {
      color: #cb4b16; }
    .cb-code code.code-custom .red {
      color: #dc322f; }
    .cb-code code.code-custom .red span {
      color: #dc322f; }

/* --------------------
FORM
 -------------------- */
input[type="text"],
textarea,
select {
  margin-bottom: 16px;
  padding: 8px;
  font-size: 100%;
  border: 1px solid #BBC8D0;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  background-color: #f0f3f5; }

input[type="text"] {
  min-width: 49%;
  min-height: 24px; }

input[type="password"]{
  margin-bottom: 16px;
  padding: 8px;
  font-size: 100%;
  border: 1px solid #BBC8D0;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  background-color: #f0f3f5; }

input[type="password"] {
  min-width: 49%;
  min-height: 24px; }

textarea {
  width: 100%;
  min-height: 150px;
  margin-bottom: 16px;
  color: #3C4854;
  line-height: 1.75;
  font-family: 'Oswald','Noto Sans JP', "\6E38\30B4\30B7\30C3\30AF   Medium", "Yu Gothic Medium", YuGothicM, 游ゴシック体, YuGothic, "\30D2\30E9\30AE\30CE\89D2\30B4   Pro", "Hiragino Kaku Gothic Pro", "Meiryo UI",メイリオ, Meiryo, sans-serif; }

select {
  position: relative;
  min-width: 49%;
  min-height: 24px;
  line-height: 1.6;
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: #f0f3f5 url(../images/icon_arrow.png) no-repeat 98% 50%; }
  select option {
    min-height: 24px;
    padding: 8px; }

input::placeholder,
textarea::placeholder {
  color: #BBC8D0; }

input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
  color: #BBC8D0; }

input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
  color: #BBC8D0; }

input:focus::placeholder,
textarea:focus::placeholder {
  color: transparent; }

input:focus:-ms-input-placeholder,
textarea:focus:-ms-input-placeholder {
  color: transparent; }

input:focus:-ms-input-placeholder,
textarea:focus:-ms-input-placeholder {
  color: transparent; }

.checkbox, .radio {
  position: relative; }
  .checkbox input[type=checkbox], .radio input[type=checkbox] {
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 0;
    opacity: 0;
    pointer-events: none; }
  .checkbox label, .radio label {
    position: relative;
    display: block;
    margin-bottom: 16px;
    padding-left: 48px;
    cursor: pointer; }
    .checkbox label::before, .radio label::before {
      content: "";
      display: block;
      position: absolute;
      left: 0;
      top: 0;
      -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
      box-sizing: border-box;
      width: 24px;
      height: 24px;
      border: 2px solid #BBC8D0;
      background-color: #f0f3f5; }
    .checkbox label::after, .radio label::after {
      content: "";
      display: block;
      position: absolute;
      left: 0;
      top: 0;
      width: 48px;
      height: 48px;
      margin: -12px 0 0 -12px;
      -webkit-border-radius: 100%;
      -moz-border-radius: 100%;
      border-radius: 100%;
      background-color: #3C4854;
      opacity: 0;
      -webkit-transition: 0.3s;
      -moz-transition: 0.3s;
      -ms-transition: 0.3s;
      -o-transition: 0.3s;
      transition: 0.3s; }
    .checkbox label:hover::after, .radio label:hover::after {
      opacity: 0.1; }
  .checkbox input[type=checkbox]:checked + label::before, .radio input[type=checkbox]:checked + label::before {
    background-color: #3C4854;
    border-color: #3C4854; }
  .checkbox input[type=checkbox]:checked + label::after, .radio input[type=checkbox]:checked + label::after {
    top: 4px;
    left: 4px;
    width: 14px;
    height: 8px;
    margin: 0;
    border-left: 2px solid #fff;
    border-bottom: 2px solid #fff;
    background-color: transparent;
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
    transform: rotate(-45deg);
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    border-radius: 0;
    opacity: 1; }
  .checkbox input[type="text"], .radio input[type="text"] {
    margin: 0 0 16px 48px; }

.radio input[type=radio] {
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  opacity: 0;
  pointer-events: none; }

.radio label::before {
  -webkit-border-radius: 100%;
  -moz-border-radius: 100%;
  border-radius: 100%; }

.radio input[type=radio]:checked + label::before {
  border-color: #3C4854; }

.radio input[type=radio]:checked + label::after {
  top: 6px;
  left: 6px;
  width: 12px;
  height: 12px;
  margin: 0;
  opacity: 1; }

/* error */
form .message-error {
  display: none;
  margin-left: 8px;
  color: #DF2220;
  font-size: 0.75rem;
  font-weight: bold; }

form .error .message-error {
  display: inline-block; }

form .error .checkbox label::before, form .error .radio label::before, form .error .radio label::before,
form .error .checkbox input[type="text"],
form .error .radio input[type="text"], form .error .radio input[type="text"], form .error input[type="text"],
form .error textarea,
form .error select {
  background-color: #fce9e9; }

/* form layout */
.form-block {
  margin-bottom: 16px; }
  .form-block p {
    padding-bottom: 4px; }

.input-2col {
  display: flex;
  justify-content: space-between; }

.input-required span:first-of-type {
  position: relative;
  padding-right: 2.5rem; }
  .input-required span:first-of-type::after {
    content: "";
    display: block;
    position: absolute;
    content: "\5FC5\9808";
    right: 0;
    bottom: 2px;
    padding: 0 4px;
    color: #DF2220;
    font-size: 0.75rem;
    line-height: 1.5;
    background-color: #fce9e9;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px; }

.form-process {
  margin-top: 32px; }
  .form-process ul {
    position: relative;
    display: flex;
    justify-content: space-between;
    padding-top: 96px; }
    .form-process ul::before {
      content: "";
      display: block;
      position: absolute;
      width: 100%;
      height: 4px;
      top: calc(50% - 12px);
      left: 0;
      background-color: #f0f3f5; }
    .form-process ul li {
      position: relative;
      width: 96px;
      font-size: 0.75rem;
      text-align: center; }
      .form-process ul li::before, .form-process ul li::after {
        content: "";
        display: block;
        position: absolute;
        top: -96px;
        left: 0;
        width: 96px;
        height: 96px;
        -webkit-border-radius: 50%;
        -moz-border-radius: 50%;
        border-radius: 50%;
        background-color: #fff; }
      .form-process ul li.current::before {
        background-color: #f0f3f5; }
      .form-process ul li::after {
        top: -56px;
        left: calc(50% - 8px);
        width: 16px;
        height: 16px;
        background-color: #3C4854; }

/* --------------------
RESPONSIVE
 -------------------- */
@media (max-width: 1024px) {
  .contents,
  .contents-wider,
  .contents-narrow {
    max-width: 100%;
    margin: 0 24px; }
  /* slider */
  .slider-panel {
    margin: -128px 50px 48px; }
  /* panel */
  .panel-api-small,
  .panel-api-large,
  .panel-member {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between; }
    .panel-api-small .panel,
    .panel-api-large .panel,
    .panel-member .panel {
      width: 49%;
      margin: 0 0 16px 0; }
      .panel-api-small .panel:nth-of-type(3n+1),
      .panel-api-large .panel:nth-of-type(3n+1),
      .panel-member .panel:nth-of-type(3n+1) {
        clear: none; } }

@media (max-width: 991px) {
  body {
    padding-bottom: 400px; }
  /* layout */
  .cb-col2 {
    display: block; }
    .cb-col2 .cb {
      width: 100%; }
  /* header */
  header {
    height: auto;
    padding-bottom: 0; }
    header .contents {
      margin: 0; }
    header .header-logo {
      padding: 0 8px; }
  .header-menu {
    position: static;
    display: flex;
    justify-content: space-between;
    margin-top: 4px;
    padding: 0 24px;
    border-top: 1px solid #BBC8D0;
    border-bottom: 1px solid #BBC8D0; }
/* add tamori 20200925 */
    header#header-gray {
        height: auto;
        padding-bottom: 0; }
    header#header-gray .contents {
      margin: 0; }
    header#header-gray .header-logo {
      padding: 0 8px; }
  .header-gray-menu {
    position: static;
    display: flex;
    justify-content: space-between;
    margin-top: 4px;
    padding: 0 24px;
    border-top: 1px solid #BBC8D0;
    border-bottom: 1px solid #BBC8D0; }
    
    
  /* btn */
  .btn-red-line {
    min-width: calc(100% - 64px);
    margin: 0 32px; } }

@media (max-width: 600px) {
  .sp-hide {
    display: none; }
  .contents,
  .contents-wider,
  .contents-narrow {
    margin: 0 16px; }
  /* heading */
  .ttl-red-line {
    font-size: 1.25rem; }
  .ttl-gray-line {
    font-size: 1.25rem; }
  .ttl-gray {
    font-size: 1.25rem; }
  .ttl-category h1 {
    font-size: 1.5rem; }
  /* table */
  .table-scroll {
    width: 100%;
    overflow-x: scroll; }
    .table-scroll table {
      width: auto;
      min-width: 200%; }
      .table-scroll table th {
        min-width: 100px;
        white-space: nowrap; }
  /* images */
  .img-l,
  .img-r,
  .img-c {
    max-width: 100%;
    clear: both;
    float: none;
    margin: 16px 0;
    text-align: center; }
  /* header footer */
  header .header-logo img {
    height: 30px;
    width: 30px; }
  header .header-sns {
    top: 0;
    right: 8px; }
  .header-menu, .footer-menu {
    font-size: 0.75rem; }
  .header-menu {
    padding: 0;
    overflow-x: scroll; }
    .header-menu li {
      display: table-cell;
      white-space: nowrap; }
  .footer-menu a {
    padding: 8px; }
    footer{
        padding: 8px;
    }
    
 /* header-gray 20200925 tamori add */
  header#header-gray .header-logo img {
    height: 30px;
    width: 110px; }
  header .header-gray-sns {
    top: 0;
    right: 8px; }
  .header-gray-menu {
    font-size: 0.75rem; }
  .header-gray-menu {
    padding: 0;
    overflow-x: scroll; }
    .header-gray-menu li {
      display: table-cell;
      white-space: nowrap; }

    
  /* hero */
  #hero {
    height: 480px; }
    #hero::before, #hero::after,
    #hero .hero-txt-flow {
      width: 100%;
      height: 480px;
      left: 0;
      top: 30%;
      -webkit-background-size: contain;
      background-size: contain; }
    #hero .contents {
      align-items: flex-start; }
    #hero .hero-ttl {
      width: auto;
      margin-top: 32px; }
      #hero .hero-ttl h1 {
        font-size: 1.5rem; }
      #hero .hero-ttl .hero-summary {
        font-size: 0.785rem; }
  /* api */
  .api-intro {
    display: block; }
    .api-intro .thumb, .api-intro .txt {
      width: 100%; }
    .api-intro .thumb-logo{
        width: 100%;
    }
  .api-pagenav {
    font-size: 0.75rem; }
  .cb-code {
    padding: 16px; }
  /* panel */
  .panel-api-small .panel,
  .panel-api-large .panel,
  .panel-member .panel {
    width: 100%; }
  /* btn */
  .btn-red-line,
  .btn-red {
    width: 100%;
    margin: 0;
    font-size: 0.875rem; }
    .btn-red-line::before, .btn-red-line::after,
    .btn-red::before,
    .btn-red::after {
      display: none; }
  /* form */
  input[type="text"],
  select {
    width: 100%; }
  .checkbox input[type="text"], .radio input[type="text"],
  .radio input[type="text"] {
    width: calc(100% - 48px); }
  .input-2col {
    display: block; }
  .form-process {
    margin: 24px -16px 0; }
    .form-process ul {
      padding-top: 48px; }
      .form-process ul::before {
        height: 4px;
        top: calc(50% - 12px); }
      .form-process ul li {
        width: 96px; }
        .form-process ul li::before, .form-process ul li::after {
          top: -48px;
          left: 24px;
          width: 48px;
          height: 48px; }
        .form-process ul li::after {
          top: -28px;
          left: calc(50% - 4px);
          width: 8px;
          height: 8px;
          background-color: #3C4854; } }

@media (max-width: 480px) {
  /* slider */
  .slider-panel {
    margin: -128px 0 48px; }
    .slider-panel .slick-arrow {
      display: none !important; } }
