@charset "UTF-8";

/* --------------------
Reset
-------------------- */

html,
body,
h1,
h2,
h3,
h4,
h5,
h6,
a,
p,
span,
em,
small,
strong,
sub,
sup,
mark,
del,
ins,
strike,
abbr,
dfn,
blockquote,
q,
cite,
code,
pre,
ol,
ul,
li,
dl,
dt,
dd,
div,
section,
article,
main,
aside,
nav,
header,
hgroup,
footer,
img,
figure,
figcaption,
address,
time,
audio,
video,
canvas,
iframe,
details,
summary,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td {
  margin: 0;
  padding: 0;
}

img {
  vertical-align: middle;
}

nav a {
  text-decoration: none;
}

#nav ul li {
  list-style-type: none;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Hiragino Kaku Gothic ProN',
    'ヒラギノ角ゴ ProN W3', Meiryo, 'Helvetica Neue', Helvetica, Arial,
    sans-serif;
}

/* --------------------
Common
-------------------- */

.cb {
  width: 960px;
  margin: 0 auto;
  box-sizing: border-box;
}

.hl {
  font-size: 32px;
  font-weight: normal;
  text-align: center;
  color: #343b8b;
  line-height: 40px;
}

.layout-section {
  padding-top: 80px;
}

.layout-section .cb {
  padding-bottom: 80px;
}

/* --------------------
Navigation
-------------------- */

.layout-nav {
  position: relative;
  z-index: 1;
  background: rgba(255, 255, 255, 0.9);
}

.layout-nav.fixed {
  position: fixed;
  top: 0;
  z-index: 9999;
  width: 100%;
}

.layout-nav .cb {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 48px;
}

.layout-nav .logo a {
  font-size: 20px;
  color: #343b8b;
}

.layout-nav .lists {
  display: flex;
  align-items: center;
  list-style: none;
}

.layout-nav .link {
  margin-right: 24px;
  color: #343b8b;
  font-size: 14px;
  line-height: 20px;
}

.layout-nav .btn {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 144px;
  height: 40px;
  background: #f3742d;
  border-radius: 4px;
  color: #fff;
  text-decoration: none;
  font-size: 14px;
  line-height: 20px;
}

.layout-nav .btn:hover {
  color: #fff;
  background-color: #ffaa61;
}

/* --------------------
Hero
-------------------- */

.layout-hero {
  position: relative;
  padding: 64px 0;
  background: url('../images/hero_bg.svg') no-repeat;
  background-position: calc(50% + 318px) 62px;
  overflow: hidden;
}

.layout-hero .ttl {
  font-size: 32px;
  line-height: 40px;
  font-weight: normal;
  color: #343b8b;
}

.layout-hero .text {
  margin-top: 16px;
  font-size: 20px;
  line-height: 24px;
  color: #343b8b;
}

.layout-hero .gfx img {
  width: 566px;
}

.layout-hero .btn {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 24px;
  width: 130px;
  height: 40px;
  background: #f3742d;
  border-radius: 4px;
  color: #fff;
  text-decoration: none;
  font-size: 14px;
  line-height: 20px;
}

.layout-hero .btn:hover {
  color: #fff;
  background-color: #ffaa61;
}

.layout-hero .gfx {
  position: absolute;
  top: -48px;
  left: calc(50% + 10px);
}

/* --------------------
Feature
-------------------- */

.layout-section:nth-child(2) {
  padding-top: 120px;
  background-image: url(../images/about_bg.svg), url(../images/bg_gray.png);
  background-repeat: repeat-x, repeat-x;
  background-position: center top, center 107px;
}

.feature {
}

.feature-cards {
  display: flex;
  margin-top: 32px;
  list-style: none;
}

.feature-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
  padding: 16px;
}

.feature-card + .feature-card {
  margin-left: 2.5%;
}

.feature-card .icon {
  width: 160px;
}

.feature-card .icon img {
  width: 100%;
}

.feature-card .caption {
  margin-top: 16px;
  font-weight: bold;
  font-size: 16px;
  line-height: 24px;
}

.feature-card .text {
  margin-top: 16px;
  font-size: 14px;
  line-height: 20px;
  text-align: center;
  width: 100%;
}

/* --------------------
About
-------------------- */

.about {
}

.about-text {
  width: 796px;
  margin-left: auto;
  margin-right: auto;
  margin-top: 16px;
  font-size: 14px;
  line-height: 20px;
  text-align: center;
}

.about-lists {
  display: flex;
  justify-content: space-between;
  width: 796px;
  margin-top: 32px;
  margin-left: auto;
  margin-right: auto;
  list-style: none;
}

.about-list {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: calc(50% - 12px);
}

.about-list .caption {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 240px;
  height: 32px;
  margin-bottom: 40px;
  background: #343b8b;
  color: #fff;
  font-size: 16px;
  font-weight: normal;
  line-height: 24px;
  border-radius: 32px;
}

/* --------------------
Price:   ;
-------------------- */

.layout-section:nth-child(4) {
  padding-top: 80px;
  background-color: #e1eef3;
  background-image: url(../images/bg_price-top-repeat-x.svg);
  background-repeat: repeat-x;
  background-position: center top;
}

.price h2 {
  margin-bottom: 32px;
}

.price-overview {
  background-color: #fff;
  max-width: 796px;
  width: 100%;
  margin: auto;
  padding: 24px;
  border-radius: 8px;
  box-sizing: border-box;
  text-align: center;
}

.price-overview picture {
  width: 100%;
}

.price-overview picture img {
  max-width: 748px;
  width: 100%;
}

.price-breakdown {
  display: flex;
  max-width: 796px;
  width: 100%;
  margin: 16px auto 24px;
  gap: 24px;
  color: #343b8b;
  list-style: none;
  justify-content: space-between;
}

.price-breakdown li {
  flex: 1 1 20%;
  padding: 24px 16px;
  border-radius: 8px;
  background-color: #fff;
  text-align: center;
  box-sizing: border-box;
}

.price-outbound {
  color: #f3742d;
}

.price-breakdown li figcaption {
  padding-top: 8px;
  font-size: 14px;
  font-weight: bold;
  line-height: 20px;
}

.free-usage {
  background-color: #fff;
  max-width: 796px;
  width: 100%;
  margin: auto;
  padding: 16px;
  border-radius: 8px;
  text-align: center;
  color: #343b8b;
  font-weight: normal;
  box-sizing: border-box;
}

.free-usage strong {
  display: block;
  margin-top: 8px;
  font-weight: normal;
  font-size: 24px;
  line-height: 32px;
}

.footnote {
  max-width: 796px;
  width: 100%;
  margin: 16px auto 0;
  font-weight: normal;
}

.footnote li {
  font-size: 12px;
  list-style: none;
  line-height: 16px;
}

.price-usecase {
  max-width: 796px;
  width: 100%;
  margin: auto;
}

.price-usecase h3 {
  margin: 64px 0 32px;;
  color: #343b8b;
  font-weight: normal;
  font-size: 24px;
  line-height: 32px;
  text-align: center;
}

.price-usecase h4 {
  margin-bottom: 16px;
  color: #343b8b;
  font-weight: bold;
  font-size: 16px;
  line-height: 24px;
}

.usecase-list {
  display: flex;
  margin-bottom: 16px;
  gap: 24px;
  justify-content: space-between;
}

.usecase-list li {
  flex: 1 1 50%;
  list-style: none;
}

.usecase_detail {
  margin: 16px 24px;
}

.usecase_detail li {
  list-style: disc;
  font-size: 14px;
  line-height: 20px;
  font-weight: normal;
}

.usecase-list li figure {
  padding: 12px;
  border: 1px solid #343b8b;
  border-radius: 4px;
  text-align: center;
}

.link_to_commentary {
  margin: 32px 0 80px;
  text-align: center;
}

.link_to_commentary a {
  display: flex;
  width: 232px;
  height: 40px;
  margin: auto;
  padding: 8px 16px;
  border-radius: 4px;
  background-color: #343b8b;
  color: #fff;
  font-size: 14px;
  line-height: 20px;
  text-decoration: none;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

/* --------------------
Preparation ;
-------------------- */

.layout-section:nth-child(6) {
  position: relative;
  background-image: url('../images/bg_preparation-top-repeat-x.svg'), url('../images/bg_gray.png');
  background-repeat: repeat-x, repeat-x;
  background-position: center top, center 80px;
}

.preparation-box {
  display: flex;
  justify-content: space-between;
  margin-top: 32px;
  padding: 24px;
  background: #fff;
  box-sizing: border-box;
  border-radius: 8px;
}

.preparation-box .left,
.preparation-box .right {
  width: calc(50% - 24px);
  list-style: none;
}

.preparation-box .shl {
  margin-bottom: 16px;
  font-size: 20px;
  line-height: 24px;
  font-weight: normal;
  color: #343b8b;
}

.preparation-box .text {
  margin-bottom: 16px;
  font-size: 14px;
  line-height: 20px;
}

.preparation-box .logos {
  display: flex;
  margin-top: 8px;
  margin-bottom: 24px;
  list-style: none;
}

.preparation-box .logo + .logo {
  margin-left: 16px;
}

.preparation-box .note {
  font-size: 12px;
  line-height: 16px;
}

/* ------------------
Flow
-------------------- */

.layout-section:nth-child(7) {
  position: relative;
  padding-top: 80px;
  background: #343b8b;
  background-image: url('../images/flow_bg01.svg');
  background-position: center top;
  background-repeat: repeat-x;
  z-index: 1;
}

.flow .hl {
  color: #fff;
}

.flow-cards {
  display: flex;
  margin-top: 32px;
}

.flow-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  padding: 16px;
  background: #fff;
  box-sizing: border-box;
  min-height: 440px;
}

.flow-card + .flow-card {
  margin-left: 2.5%;
}

.flow-card .icon {
  margin-top: 16px;
}

.flow-card .icon img {
  max-width: 100%;
  height: auto;
}

.flow-card .caption {
  margin-top: 16px;
  font-size: 16px;
  line-height: 24px;
  font-weight: bold;
}

.flow-card .text {
  flex: 1;
  margin-top: 16px;
  font-size: 14px;
  line-height: 20px;
  text-align: center;
  width: 100%;
}

.flow-card .btn {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 40px;
  margin-top: 32px;
  background: #343b8b;
  text-decoration: none;
  color: #fff;
  font-size: 14px;
  line-height: 20px;
  border-radius: 4px;
}

.flow-card .btn:hover {
  background-color: #6c6ac1;
}

.flow-card .btn.wire {
  background: #fff;
  border: 1px solid #343b8b;
  box-sizing: border-box;
  color: #343b8b;
}

.flow-card .btn.wire:hover {
  color: #6c6ac1;
  border-color: #6c6ac1;
  background-color: rgba(255, 255, 255, 0.2);
}

/* --------------------
Customers
-------------------- */

.layout-section:nth-child(8) {
  position: relative;
  background: url('../images/flow_bg02.svg');
  background-position: center top;
  background-repeat: repeat-x;
  box-sizing: border-box;
}

.customers .text {
  margin-top: 16px;
  text-align: center;
  font-size: 14px;
  line-height: 20px;
}

.customers-lists {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 32px;
  list-style: none;
}

.customers-list + .customers-list {
  margin-left: 32px;
}

.customers-sublist + .customers-sublist {
  margin-left: 24px;
}

/* --------------------
Case
-------------------- */

.layout-section:nth-child(5) {
  position: relative;
  padding-top: 80px;
  background: #fff;
  background-image: url('../images/bg_case-top-repeat-x.svg');
  background-repeat: repeat-x;
  background-position: center top;
  z-index: 1;
}

.case {
  padding-bottom: 80px;
}

.case-cards {
  display: flex;
  margin-top: 32px;
  margin-bottom: 80px;
  list-style: none;
}

.case-card {
  width: 100%;
  background-color: #fff;
  box-sizing: border-box;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

.case-card + .case-card {
  margin-left: 24px;
}

.case-card .link {
  display: block;
  height: 100%;
  text-decoration: none;
  color: #000;
}

.case-card .box {
  padding: 16px;
}

.case-card .photo .image {
  width: 100%;
}

.case-card .logo {
  height: auto;
  position: relative;
  max-height: 48px;
  overflow: hidden;
}

.case-card .logo::before {
  content: "";
  display: block;
  padding-top: 17.647058823%;
}

.case-card .logo img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: left center;
}

.case-card .caption {
  margin-top: 16px;
  margin-bottom: 8px;
  font-weight: bold;
  font-size: 16px;
  line-height: 24px;
}

.case-card .text {
  margin-top: 16px;
  font-size: 14px;
  line-height: 20px;
}

.case-outbound-link {
  display: block;
  width: 100%;
  text-align: center;
}

.case-outbound-link .banner {
  border-radius: 8px;
  border-width: 0px;
  width: 100%;
  max-width: 912px;
}


/* --------------------
SP
-------------------- */
.layout-sp {
  padding-top: 0;
}

.layout-cta-area .layout-sp {
  padding-bottom: 80px;
}

.layout-sp .cb {
  width: auto;
  max-width: 960px;
  padding: 32px;
  background: #343b8b;
  color: #fff;
  border-radius: 8px;
  box-sizing: border-box;
}

.layout-sp .shl {
  font-size: 20px;
  line-height: 24px;
  font-weight: normal;
  text-align: center;
  color: #fff;
}

.layout-sp .text {
  margin-top: 24px;
  font-size: 14px;
  line-height: 20px;
  text-align: center;
}

.layout-sp .note {
  display: block;
  margin-top: 8px;
  text-align: center;
  font-size: 12px;
  line-height: 16px;
  text-indent: -1rem;
  padding-left: 1rem;
}

.layout-sp .btns {
  display: flex;
  justify-content: center;
  margin-top: 24px;
}

.layout-sp .btn01 {
  display: flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  width: 116px;
  height: 40px;
  border: 1px solid #fff;
  text-decoration: none;
  color: #fff;
  border-radius: 4px;
  font-size: 14px;
  line-height: 20px;
}

.layout-sp .btn01:hover {
  background-color: rgba(255, 255, 255, 0.2);
}

.layout-sp .btn02 {
  display: flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  width: 130px;
  height: 40px;
  margin-left: 24px;
  background: #f1f1f1;
  color: #343b8b;
  text-decoration: none;
  border-radius: 4px;
  font-size: 14px;
  line-height: 20px;
}

.layout-sp .btn02:hover {
  color: #6c6ac1;
  background-color: #fff;
}

/* レスポンシヴ対応（ 960px > * ）
 * --------------------------------------------- */
@media (max-width: 960px) {
  /* layout
   * ============= */
  .layout-nav .cb,
  main .cb {
    width: auto;
  }

  main .cb {
    padding: 0 16px;
  }

  /* layout-nav
   * ============= */
  .layout-nav {
    position: sticky;
    z-index: 1000;
    top: 0;
  }

  .layout-nav .logo {
    position: relative;
    width: 100%;
    padding-left: 16px;
  }

  .layout-nav .logo::after {
    content: '\f107';
    position: absolute;
    height: 2rem;
    line-height: 2rem;
    top: 0;
    right: 20px;
    bottom: 0;
    margin: auto;
    color: #333b8b;
    font-family: FontAwesome, sans-serif;
    font-size: 2rem;
  }

  .layout-nav.is-open .logo::after {
    transform: rotate(180deg);
  }

  .layout-nav .lists {
    display: block;
    position: absolute;
    top: 48px;
    width: 100%;
    max-height: 0;
    background: rgba(245, 245, 245, 1);
    box-shadow: 0 10px 15px -10px rgba(0, 0, 0, 0.3);
    transition: all 200ms 0s linear;
    overflow-y: hidden;
  }

  .layout-nav.is-open .lists {
    max-height: 241px;
  }

  .layout-nav .lists::after {
    content: '閉じる';
    display: block;
    height: 50px;
    line-height: 50px;
    background: #434349;
    color: #fff;
    font-size: 0.9rem;
    text-align: center;
  }

  .layout-nav .link {
    margin-right: 0;
    background: rgba(255, 255, 255, 1);
  }

  .layout-nav .lists a {
    display: block;
    padding: 0 5%;
    line-height: 60px;
    height: 60px;
    width: 90%;
  }

  .layout-nav .lists a:nth-child(2) {
    border-bottom: 1px solid #ccc;
  }

  .layout-nav .lists a.btn {
    margin: 15px 5%;
    width: 90%;
    padding: 0;
    text-align: center;
    line-height: 40px;
    height: 40px;
  }

  /* layout-hero
   * ============= */
  .layout-hero {
    padding: 80px 0 0;
    background: transparent;
  }

  .layout-hero .ttl,
  .layout-hero .text {
    position: relative;
    z-index: 10;
  }

  .layout-hero .text br {
    display: none;
  }

  .layout-hero .gfx {
    left: auto;
    right: 0;
    z-index: 0;
    background-image: url(../images/hero_gfx.png);
    background-size: cover;
    background-position: 70px 0;
    background-repeat: no-repeat;
  }

  .layout-hero .gfx img {
    width: 480px;
    height: 230px;
    visibility: hidden;
  }

  .layout-hero .btn {
    margin: 24px auto 8px;
  }

  /* layout-about
   * ============= */
  .about-text {
    min-width: 320px;
    width: 100%;
    font-feature-settings: 'pkna';
    text-align: left;
  }

  .about-lists {
    width: 100%;
  }

  .about-list {
    width: 100%;
    padding: 16px 0 24px;
  }

  .about-list .caption {
    margin-bottom: 10px;
  }

  .about-list .gfx {
    margin: 16px 0;
    text-align: center;
  }

  .about-list .gfx img {
    width: 90%;
  }

  /* layout-feature
   * ============= */
  .feature-cards {
    flex-direction: column;
  }

  .feature-card {
    flex-direction: row;
    justify-content: center;
  }

  .feature-card + .feature-card {
    margin-left: 0;
  }

  .feature-card .caption {
    flex: 0 1 140px;
    text-align: center;
    padding: 0 24px;
  }

  .feature-card .text {
    flex: 0 1 300px;
    text-align: left;
  }

  /* preparation
   * ============= */
  .preparation-box {
    flex-direction: column;
  }

  .preparation-box .left,
  .preparation-box .right {
    width: auto;
    list-style: none;
    margin-bottom: 24px;
  }

  .preparation-box li.logo {
    width: auto;
  }

  /* layout-sp
   * ============= */
  .layout-sp .cb {
    padding: 24px;
  }

  .layout-sp .btn01 {
    margin-left: 0;
  }

  .layout-sp .btn02 {
    margin-left: 24px;
  }

  /* flow
   * ============= */
  .layout-flow {
    margin-top: 0;
  }

  .layout-flow .btn.wire {
    font-size: 13px;
  }

  /* customers
   * ============= */
  .customers-lists + .customers-lists {
    display: block;
    text-align: center;
  }

  .customers-sublist {
    display: inline-block;
    padding: 8px 4px;
  }

  /* layout-cta-area
   * ============= */
  .layout-cta-area {
    padding: 0 16px;
  }
}


/* レスポンシヴ対応（ 730px > * ）
 * --------------------------------------------- */
 @media (max-width: 730px) {
  .usecase-list {
    margin-bottom: 32px;
    flex-direction: column;
    gap: 40px;
  }
}

/* レスポンシヴ対応（ 600px < * ）
 * --------------------------------------------- */
 @media (min-width: 600px) {
  .case-cards {
    justify-content: center;
  }

  .case-card {
    width: 33.33%;
  }
}

/* レスポンシヴ対応（ 600px > * ）
 * --------------------------------------------- */
@media (max-width: 600px) {
  .layout-hero .gfx {
    background-position: 0 0;
  }

  .layout-hero .gfx img {
    width: 312px;
    height: 170px;
    visibility: hidden;
  }

  .about-lists {
    width: 100%;
    flex-direction: column;
  }

  .feature-card {
    flex-direction: column;
  }

  .feature-card .caption {
    flex: 0 0 auto;
  }

  .feature-card .text {
    flex: 0 0 auto;
    text-align: left;
  }

  /* price
   * ============= */
   .price-overview picture img {
    max-width: 280px;
  }

  .price-breakdown {
    flex-wrap: wrap;
    margin-top: 48px;
    gap: 16px;
  }

  .price-breakdown li {
    flex: 1 1 45%;
    padding: 16px;
  }

  .price-breakdown .price-outbound {
    flex: 0 0 100%;
    padding: 24px 0;
  }

  .price-breakdown .price-outbound figure {
    display: flex;
    justify-content: left;
    padding-left: 24px;
  }

  .price-breakdown .price-outbound figcaption {
    text-align: left;
    padding-top: 0;
    padding-left: 16px;
  }

  .link_to_commentary a {
    width: 100%;
  }

  .layout-sp .text,
  .layout-sp .note {
    text-align: left;
  }

  .preparation-box li.logo img {
    height: 30px;
  }

  .flow-cards {
    display: flex;
    margin-top: 32px;
    flex-direction: column;
  }

  .flow-card {
    min-height: auto;
    margin: 16px 0;
  }

  .flow-card + .flow-card {
    margin-left: 0;
  }

  .flow-card .icon {
    min-height: 160px;
    padding: 24px 0 36px;
  }

  .flow-card .icon img {
    height: 160px;
  }

  .flow-card .text {
    flex: 0 0 auto;
    text-align: left;
  }

  .customers-list + .customers-list,
  .customers-sublist + .customers-sublist {
    margin-left: 0;
  }

  .customers-lists {
    display: block;
    text-align: center;
  }

  .customers-list {
    margin: 24px 0;
  }

  /* case
   * ============= */
  .case-cards {
    flex-direction: column;
  }

  .case-card {
    margin: 16px 0;
  }

  .case-cards li:not(:last-child) {
    margin-bottom: 32px;
  }

  .case-card + .case-card {
    margin-left: 0;
  }
}