@charset "UTF-8";

/* 変数・関数・Mixin*/

/*
-apple-system：            iOS
NotoSans系：               Android 6.0・Notoインストール環境・Webフォント指定
游ゴシック Medium：        Win10
游ゴシック体：             Mac
Hiragino Kaku Gothic ProN：Mac
メイリオ：                 Win8以前
*/

/*
Noto Serif JP         Webフォント指定
Yu Mincho             Win10
YuMincho：            Mac
Hiragino Mincho ProN：Mac iOS
NotoSerifCJKjp：      Android等をWebフォントでカバーする場合
HGS明朝：             MS Officeインストール環境
*/

/*
 ########  ######## ########   ######  ######## ##    ## ########
 ##     ## ##       ##     ## ##       ##       ####  ##    ##
 ########  ######   ########  ##       ######   ## ## ##    ##
 ##        ##       ##   ##   ##       ##       ##  ####    ##
 ##        ######## ##     ##  ######  ######## ##    ##    ##
*/

/*
 ##    ## ##     ## ##     ##
 ####  ## ##     ## #### ####
 ## ## ## ##     ## ## ### ##
 ##  #### ##     ## ##     ##
 ##    ##  #######  ##     ##
*/

/*
########  #######  ##    ## ########          ######  ##          ###     ######   ######
##       ##     ## ####  ##    ##            ##       ##        ##   ##  ##       ##
######   ##     ## ## ## ##    ##    ####### ##       ##       ##     ##  ######   ######
##       ##     ## ##  ####    ##            ##       ##       #########       ##       ##
##        #######  ##    ##    ##             ######  ######## ##     ##  ######   ######
*/

/*
 ########             ###    ########  ########   #######  ##      ##
 ##     ##          ##   ##  ##     ## ##     ## ##     ## ##  ##  ##
 ########  ####### ##     ## ########  ########  ##     ## ##  ##  ##
 ##     ##         ######### ##   ##   ##   ##   ##     ## ##  ##  ##
 ########          ##     ## ##     ## ##     ##  #######   ###  ###
*/

/*
 ########  ######## ##       ########    ###
 ##     ## ##       ##          ##     ##   ##
 ##     ## ######   ##          ##    ##     ##
 ##     ## ##       ##          ##    #########
 ########  ######## ########    ##    ##     ##
*/

/*
    ###    ########  ########   #######  ##      ##
  ##   ##  ##     ## ##     ## ##     ## ##  ##  ##
 ##     ## ########  ########  ##     ## ##  ##  ##
 ######### ##   ##   ##   ##   ##     ## ##  ##  ##
 ##     ## ##     ## ##     ##  #######   ###  ###
*/

/*
 ##      ##    ###    ##     ## ########
 ##  ##  ##  ##   ##  ##     ## ##
 ##  ##  ## ##     ## ##     ## ######
 ##  ##  ## #########  ##   ##  ##
  ###  ###  ##     ##    ###    ########
*/

/*
 ########   ######          ##      ## ########     ###    ########
 ##     ## ##               ##  ##  ## ##     ##  ##   ##  ##     ##
 ########  ##       ####### ##  ##  ## ########  ##     ## ########
 ##        ##               ##  ##  ## ##   ##   ######### ##
 ##         ######           ###  ###  ##     ## ##     ## ##
*/

/* リセットCSS*/
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&amp;display=swap");
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@600&display=swap");
@import url("https://cdnjs.cloudflare.com/ajax/libs/vegas/2.4.4/vegas.min.css");
a,
abbr,
acronym,
address,
applet,
article,
aside,
audio,
b,
big,
blockquote,
body,
canvas,
caption,
center,
cite,
code,
dd,
del,
details,
dfn,
div,
dl,
dt,
em,
embed,
fieldset,
figcaption,
figure,
footer,
form,
h1,
h2,
h3,
h4,
h5,
h6,
header,
hgroup,
html,
i,
iframe,
img,
ins,
kbd,
label,
legend,
li,
mark,
menu,
nav,
object,
ol,
output,
p,
pre,
q,
ruby,
s,
samp,
section,
small,
span,
strike,
strong,
sub,
summary,
sup,
table,
tbody,
td,
tfoot,
th,
thead,
time,
tr,
tt,
u,
ul,
var,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  vertical-align: baseline;
}

html {
  line-height: 1;
}

ol,
ul {
  list-style: none;
}

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

caption,
td,
th {
  font-weight: inherit;
  text-align: left;
  /* vertical-align: middle; */
}

blockquote,
q {
  quotes: none;
}

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

a img {
  border: 0;
}

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

button {
  margin: 0;
  padding: 0;
  border: 0;
  background: 0;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}

/* 汎用CSS*/

/*
 ##     ## ######## ##     ## ##
 ##     ##    ##    ###   ### ##
 #########    ##    ## ### ## ##
 ##     ##    ##    ##     ## ##
 ##     ##    ##    ##     ## ########
*/

html {
  box-sizing: border-box;
  font-size: 62.5%;
}

*,
*:after,
*:before {
  box-sizing: inherit;
}

/*
 #### ##     ##  ######
  ##  #### #### ##
  ##  ## ### ## ##   ####
  ##  ##     ## ##    ##
 #### ##     ##  ######
*/

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

/*
 ######## ######## ##     ## ########
    ##    ##         ## ##      ##
    ##    ######      ###       ##
    ##    ##         ## ##      ##
    ##    ######## ##     ##    ##
*/

a {
  transition-duration: 0.5s;
}

b,
strong {
  font-weight: 700;
}

sup {
  font-size: 0.7em;
  vertical-align: super;
}

/*
########  #####  ######  ##      #######
   ##    ##   ## ##   ## ##      ##
   ##    ####### ######  ##      #####
   ##    ##   ## ##   ## ##      ##
   ##    ##   ## ######  ####### #######
*/

table {
  width: 100%;
  max-width: 100%;
}

table p:not([class]):not(:last-child) {
  margin-bottom: 1em;
}

td,
th {
  min-height: 0em;
  word-break: break-all;
  word-wrap: break-word;
}

/*
#######  ######  ######  ###    ###
##      ##    ## ##   ## ####  ####
#####   ##    ## ######  ## #### ##
##      ##    ## ##   ## ##  ##  ##
##       ######  ##   ## ##      ##
*/

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

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

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

[type="email"],
[type="password"],
[type="search"],
[type="tel"],
[type="text"],
[type="url"],
textarea,
button,
select {
  border: 0;
  background: 0;
  outline: none;
}

a,
area,
[type="checkbox"],
[type="radio"],
button,
select,
label {
  cursor: pointer;
}

/*
#overview
アニメーション

各種アニメーション処理
*/

/*
 ########    ###    ########  ########
 ##         ## ##   ##     ## ##
 ######   ##     ## ##     ## ######
 ##       ######### ##     ## ##
 ##       ##     ## ########  ########
*/

/*
#styleguide
anime
「.anime.アニメ名」の形でクラスを当て、.activeがつくと実行される。
「.anime.アニメ名.key」の形にするとkeyframe版になる。
keyframe版は始めからactiveが付いていてもアニメーションするが、active除去時はアニメーションしない。
```
<div class="flex break ta-center">
    <div>
        <button style="position:relative;z-index:2;" onclick="this.nextElementSibling.classList.toggle('active')">通常版切り替え</button>
        <div class="anime bottom-in">
            <img src="https://placehold.jp/300x300.jpg?text=" alt="">
        </div>
    </div>
    <div>
        <button style="position:relative;z-index:2;" onclick="this.nextElementSibling.classList.toggle('active')">keyframe版切り替え</button>
        <div class="anime bottom-in key active">
            <img src="https://placehold.jp/300x300.jpg?text=" alt="">
        </div>
    </div>
</div>
```
*/

.body-in {
  overflow-x: hidden;
}

.anime {
  -webkit-animation-duration: 0.5s;
  animation-duration: 0.5s;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards;
  /*
 ########    ###    ########  ########
 ##         ## ##   ##     ## ##
 ######   ##     ## ##     ## ######
 ##       ######### ##     ## ##
 ##       ##     ## ########  ########
*/
  /*
#styleguide
fade
フェードアニメ
```
<div class="flex break ta-center">
    <div>
        <button style="position:relative;z-index:2;" onclick="this.nextElementSibling.classList.toggle('active')">切り替え</button>
        <div class="anime fade-in">
            <img src="https://placehold.jp/300x300.jpg?text=" alt="">
        </div>
    </div>
</div>
```
*/
  /*
 ######## ##       #### ########
 ##       ##        ##  ##     ##
 ######   ##        ##  ########
 ##       ##        ##  ##
 ##       ######## #### ##
*/
  /*
#styleguide
flip-x flip-y
フリップアニメ　X軸回転とY軸回転
```
<div class="flex break ta-center">
    <div>
        <button style="position:relative;z-index:2;" onclick="this.nextElementSibling.classList.toggle('active')">flip-x</button>
        <div class="anime flip-x">
            <img src="https://placehold.jp/300x300.jpg?text=" alt="">
        </div>
    </div>
    <div>
        <button style="position:relative;z-index:2;" onclick="this.nextElementSibling.classList.toggle('active')">flip-y</button>
        <div class="anime flip-y">
            <img src="https://placehold.jp/300x300.jpg?text=" alt="">
        </div>
    </div>
</div>
```
*/
  /*
 ########  #######   #######  ##     ##
     ##   ##     ## ##     ## #### ####
    ##    ##     ## ##     ## ## ### ##
   ##     ##     ## ##     ## ##     ##
 ########  #######   #######  ##     ##
*/
  /*
#styleguide
zoom-in
ズームアニメ
```
<div class="flex break ta-center">
    <div>
        <button style="position:relative;z-index:2;" onclick="this.nextElementSibling.classList.toggle('active')">切り替え</button>
        <div class="anime zoom-in">
            <img src="https://placehold.jp/300x300.jpg?text=" alt="">
        </div>
    </div>
</div>
```
*/
  /*
  ######  ##       #### ########  ########         #### ##    ##
 ##       ##        ##  ##     ## ##                ##  ####  ##
  ######  ##        ##  ##     ## ######   #######  ##  ## ## ##
       ## ##        ##  ##     ## ##                ##  ##  ####
  ######  ######## #### ########  ########         #### ##    ##
*/
  /*
#styleguide
top-in bottom-in left-in right-in
スライドアニメ
```
<div class="flex break ta-center">
    <div>
        <button style="position:relative;z-index:2;" onclick="this.nextElementSibling.classList.toggle('active')">top-in</button>
        <div class="anime top-in">
            <img src="https://placehold.jp/300x300.jpg?text=" alt="">
        </div>
    </div>
    <div>
        <button style="position:relative;z-index:2;" onclick="this.nextElementSibling.classList.toggle('active')">bottom-in</button>
        <div class="anime bottom-in">
            <img src="https://placehold.jp/300x300.jpg?text=" alt="">
        </div>
    </div>
    <div>
        <button style="position:relative;z-index:2;" onclick="this.nextElementSibling.classList.toggle('active')">left-in</button>
        <div class="anime left-in">
            <img src="https://placehold.jp/300x300.jpg?text=" alt="">
        </div>
    </div>
    <div>
        <button style="position:relative;z-index:2;" onclick="this.nextElementSibling.classList.toggle('active')">right-in</button>
        <div class="anime right-in">
            <img src="https://placehold.jp/300x300.jpg?text=0" alt="">
        </div>
    </div>
</div>
```
*/
  /*
  ######   #######  ##     ## ##     ##  #######  ##    ##
 ##       ##     ## #### #### #### #### ##     ## ####  ##
 ##       ##     ## ## ### ## ## ### ## ##     ## ## ## ##
 ##       ##     ## ##     ## ##     ## ##     ## ##  ####
  ######   #######  ##     ## ##     ##  #######  ##    ##
*/
  /*
 ######## ##     ## ########     ###    ##    ## ########
 ##         ## ##   ##     ##  ##   ##  ####  ## ##     ##
 ######      ###    ########  ##     ## ## ## ## ##     ##
 ##         ## ##   ##        ######### ##  #### ##     ##
 ######## ##     ## ##        ##     ## ##    ## ########
*/
  /*
#styleguide
expand-x expand-y
伸縮アニメ
max-widthとmax-heightを変えているため、そのまま使うとレイアウトに影響がある。例でもボタンが動いてしまう。
absoluteにするなど工夫が必要。
またexpand-x内の画像は、画像にデフォルトで入っているmax-width:100%を解除する必要がある。
```
<div class="flex break ta-center">
    <div>
        <button style="position:relative;z-index:2;" onclick="this.nextElementSibling.classList.toggle('active')">expand-x</button>
        <div class="anime expand-x">
            <img style="max-width:300px" src="https://placehold.jp/300x300.jpg?text=" alt="">
        </div>
    </div>
    <div>
        <button style="position:relative;z-index:2;" onclick="this.nextElementSibling.classList.toggle('active')">expand-y</button>
        <div class="anime expand-y">
            <img src="https://placehold.jp/300x300.jpg?text=" alt="">
        </div>
    </div>

</div>
```
*/
  /*
             ########  ##       ##     ## ########
             ##     ## ##       ##     ## ##     ##
             ########  ##       ##     ## ########
             ##     ## ##       ##     ## ##    ##
             ########  ########  #######  ##     ##
*/
  /*
#styleguide
blur
ぼかしアニメ
IEは非対応。代わりにフェードアニメになる。
```
<div class="flex break ta-center">
    <div>
        <button style="position:relative;z-index:2;" onclick="this.nextElementSibling.classList.toggle('active')">blur</button>
        <div class="anime blur">
            <img style="max-width:none;" src="https://placehold.jp/300x300.jpg?text=" alt="">
        </div>
    </div>
</div>
```
*/
}

.anime:not(.key) {
  transition-duration: 0.5s;
}

.anime.quick {
  transition-duration: 0s;
  -webkit-animation-duration: 0s;
  animation-duration: 0s;
}

.anime.flip-x {
  transform: rotateX(90deg);
}

.anime.flip-y {
  transform: rotateY(90deg);
}

.anime.zoom-in {
  transform: scale(0);
}

.anime.top-in {
  transform: translateY(-50px);
  transform-origin: 0 0;
}

.anime.bottom-in {
  transform: translateY(50px);
}

.anime.left-in {
  transform: translateX(-50px);
}

.anime.right-in {
  transform: translateX(50px);
}

@-webkit-keyframes transform-purge {
  100% {
    opacity: 1;
    transform: none;
  }
}

@keyframes transform-purge {
  100% {
    opacity: 1;
    transform: none;
  }
}

.anime.fade-in,
.anime.flip-x,
.anime.flip-y,
.anime.zoom-in,
.anime.top-in,
.anime.bottom-in,
.anime.left-in,
.anime.right-in {
  opacity: 0;
}

.anime.fade-in.active:not(.key),
.anime.active .anime.fade-in.chain:not(.key),
.anime.fade-in.lock:not(.key),
.swiper-slide-active .anime.fade-in:not(.key),
.anime.flip-x.active:not(.key),
.anime.active .anime.flip-x.chain:not(.key),
.anime.flip-x.lock:not(.key),
.swiper-slide-active .anime.flip-x:not(.key),
.anime.flip-y.active:not(.key),
.anime.active .anime.flip-y.chain:not(.key),
.anime.flip-y.lock:not(.key),
.swiper-slide-active .anime.flip-y:not(.key),
.anime.zoom-in.active:not(.key),
.anime.active .anime.zoom-in.chain:not(.key),
.anime.zoom-in.lock:not(.key),
.swiper-slide-active .anime.zoom-in:not(.key),
.anime.top-in.active:not(.key),
.anime.active .anime.top-in.chain:not(.key),
.anime.top-in.lock:not(.key),
.swiper-slide-active .anime.top-in:not(.key),
.anime.bottom-in.active:not(.key),
.anime.active .anime.bottom-in.chain:not(.key),
.anime.bottom-in.lock:not(.key),
.swiper-slide-active .anime.bottom-in:not(.key),
.anime.left-in.active:not(.key),
.anime.active .anime.left-in.chain:not(.key),
.anime.left-in.lock:not(.key),
.swiper-slide-active .anime.left-in:not(.key),
.anime.right-in.active:not(.key),
.anime.active .anime.right-in.chain:not(.key),
.anime.right-in.lock:not(.key),
.swiper-slide-active .anime.right-in:not(.key) {
  opacity: 1;
  transform: none;
}

.anime.fade-in.active.key,
.anime.active .anime.fade-in.chain.key,
.anime.fade-in.lock.key,
.swiper-slide-active .anime.fade-in.key,
.anime.flip-x.active.key,
.anime.active .anime.flip-x.chain.key,
.anime.flip-x.lock.key,
.swiper-slide-active .anime.flip-x.key,
.anime.flip-y.active.key,
.anime.active .anime.flip-y.chain.key,
.anime.flip-y.lock.key,
.swiper-slide-active .anime.flip-y.key,
.anime.zoom-in.active.key,
.anime.active .anime.zoom-in.chain.key,
.anime.zoom-in.lock.key,
.swiper-slide-active .anime.zoom-in.key,
.anime.top-in.active.key,
.anime.active .anime.top-in.chain.key,
.anime.top-in.lock.key,
.swiper-slide-active .anime.top-in.key,
.anime.bottom-in.active.key,
.anime.active .anime.bottom-in.chain.key,
.anime.bottom-in.lock.key,
.swiper-slide-active .anime.bottom-in.key,
.anime.left-in.active.key,
.anime.active .anime.left-in.chain.key,
.anime.left-in.lock.key,
.swiper-slide-active .anime.left-in.key,
.anime.right-in.active.key,
.anime.active .anime.right-in.chain.key,
.anime.right-in.lock.key,
.swiper-slide-active .anime.right-in.key {
  -webkit-animation-name: transform-purge;
  animation-name: transform-purge;
}

@-webkit-keyframes expand-x {
  100% {
    max-width: 100%;
    white-space: normal;
    opacity: 1;
  }
}

@keyframes expand-x {
  100% {
    max-width: 100%;
    white-space: normal;
    opacity: 1;
  }
}

@-webkit-keyframes expand-y {
  100% {
    max-height: 100%;
    white-space: normal;
  }
}

@keyframes expand-y {
  100% {
    max-height: 100%;
    white-space: normal;
  }
}

.anime.expand-x {
  max-width: 0;
}

.anime.expand-x.active:not(.key),
.anime.active .anime.expand-x.chain:not(.key),
.anime.expand-x.lock:not(.key),
.swiper-slide-active .anime.expand-x:not(.key) {
  max-width: 100%;
  white-space: normal;
}

.anime.expand-x.active.key,
.anime.active .anime.expand-x.chain.key,
.anime.expand-x.lock.key,
.swiper-slide-active .anime.expand-x.key {
  -webkit-animation-name: expand-x;
  animation-name: expand-x;
}

.anime.expand-y {
  max-height: 0;
}

.anime.expand-y.active:not(.key),
.anime.active .anime.expand-y.chain:not(.key),
.anime.expand-y.lock:not(.key),
.swiper-slide-active .anime.expand-y:not(.key) {
  max-height: 100%;
  white-space: normal;
}

.anime.expand-y.active.key,
.anime.active .anime.expand-y.chain.key,
.anime.expand-y.lock.key,
.swiper-slide-active .anime.expand-y.key {
  -webkit-animation-name: expand-y;
  animation-name: expand-y;
}

.anime.expand-x,
.anime.expand-y {
  overflow: hidden;
  white-space: nowrap;
}

@-webkit-keyframes focus-in {
  100% {
    filter: blur(0);
    opacity: 1;
  }
}

@keyframes focus-in {
  100% {
    filter: blur(0);
    opacity: 1;
  }
}

.anime.blur {
  opacity: 0;
}

.anime.blur.active:not(.key),
.anime.active .anime.blur.chain:not(.key),
.anime.blur.lock:not(.key),
.swiper-slide-active .anime.blur:not(.key) {
  opacity: 1;
}

.anime.blur.active.key,
.anime.active .anime.blur.chain.key,
.anime.blur.lock.key,
.swiper-slide-active .anime.blur.key {
  -webkit-animation-name: transform-purge;
  animation-name: transform-purge;
}

@supports (filter: blur(12px)) {
  .anime.blur {
    filter: blur(12px);
  }
  .anime.blur.active:not(.key),
  .anime.active .anime.blur.chain:not(.key),
  .anime.blur.lock:not(.key),
  .swiper-slide-active .anime.blur:not(.key) {
    filter: blur(0);
  }
  .anime.blur.active.key,
  .anime.active .anime.blur.chain.key,
  .anime.blur.lock.key,
  .swiper-slide-active .anime.blur.key {
    -webkit-animation-name: focus-in;
    animation-name: focus-in;
  }
}

/*================================

各種Webフォント
@include addFontClassのコメントアウトを外すか、新規追加して適用
@include addFontClass('フォント名', '適用するセレクタ名', '代替表示するフォント: [sans-serif] もしくは [serif]');

//================================*/

body .poppins,
button.poppins,
input.poppins,
select.poppins,
textarea.poppins {
  font-family: "Noto Sans JP", -apple-system, Noto Sans CJK JP,
    Noto Sans Japanese, Noto Sans JP, 游ゴシック Medium, Yu Gothic Medium,
    游ゴシック体, YuGothic, Hiragino Kaku Gothic ProN, メイリオ, Meiryo,
    sans-serif;
}

/*
          ######  ######## ########  #### ########
         ##       ##       ##     ##  ##  ##
 #######  ######  ######   ########   ##  ######   #######
               ## ##       ##   ##    ##  ##
          ######  ######## ##     ## #### ##
*/

/*
#overview
General

やや込み入った挙動を取るが、特に調整せず汎用的に使えるクラス。
*/

/*
 ##       ####  ######  ########
 ##        ##  ##          ##
 ##        ##   ######     ##
 ##        ##        ##    ##
 ######## ####  ######     ##
*/

/*
#styleguide
プレーンリスト　ol.o-list ul.u-list

ol,ulをデフォルトに近い装飾に戻す。

```
<ul class="u-list">
  <li>u-list</li>
  <li>テキストテキストテキストテキスト</li>
  <li>テキストテキストテキスト<br>テキストテキストテキスト</li>
</ul>
<ol class="o-list">
  <li>o-list</li>
  <li>テキストテキストテキストテキスト</li>
  <li>テキストテキストテキスト<br>テキストテキストテキスト</li>
</ol>
```
*/

.u-list > li,
.o-list > li {
  margin: 0 0 0 2%;
  width: 98%;
}

.u-list > li {
  list-style-type: disc;
}

.o-list > li {
  list-style-type: decimal;
}

/*
#styleguide
Flex　.flex

対象をFlexにする。FlexもしくはFlexアイテム化に向かない要素（img等）を除き、何にでも使える。

以下のオプションクラスを重ねがけすることでほとんどの設定を押さえられる。
.flex含め、すべてのクラスは「.pc-」「.sp-」で対象デバイスを限定できる。

.bet  アイテムを均等に並べる（space-between）。両端にスペースは作らない。非常に使う
.aro  アイテムを均等に並べる（space-around）。両端にもスペースを作る。あまり使わない
.max  直下のアイテムを均等な幅に補正し、隙間なく並べる。PCのグローバルナビ等で使える

※3カラム、4カラムのspace-betweenとspace-aroundにて、数が半端だとラストが崩れる現象は以下の記述で抑止できる。
アイテムと同じ幅の疑似要素で補うため、CSS側で以下のようにアイテムと同じwidthを指定する必要がある。
::after {
  content: "";
  display: block;
  width: アイテムと同じ幅
}
4カラムの場合はこちらも追記。
::before {
  order: 1;
  content: "";
  display: block;
  width: アイテムと同じ幅
}

.vstart,.vcenter,.vend  縦の位置を定義（Vertical）。startは初期値なのでpcsp用
.hstart,.hcenter,.hend  横の位置を定義（Horizontal）。startは初期値なのでpcsp用
.str  高さを統一する。初期値なのでpcsp用

.break  幅が足りない場合折り返す。

.vert  縦並びにする。高さが可変の親要素の中で、一定の位置関係を保ちたいときに使う。単に横並びを解除したいだけならpc-flex等でFlex自体を切る

.pc-1,.pc-2,.pc-3 .sp-1,.sp-2,.sp-3  アイテム側に付けるクラス。指定デバイス幅の際、並び順を指定通りに変更する（3番まで）

Flexはオプションが多く、またベンダープレフィックスで記述量が倍以上に膨れるので、極力これらのクラスで済ませて手間とCSSサイズを削減する。
```
両端を開けずに等間隔整列（.bet）、縦中央揃え、SP幅で2-3-1に順番変更（.sp-1～3）。<br>
<ul class="flex bet vcenter">
  <li class="sp-2"><img src="https://placehold.jp/100x100.jpg?text=1" width="" height="" alt=""></li>
  <li class="sp-3"><img src="https://placehold.jp/100x150.jpg?text=2" width="" height="" alt=""></li>
  <li class="sp-1"><img src="https://placehold.jp/100x200.jpg?text=3" width="" height="" alt=""></li>
</ul>


複雑な配置も比較的簡単に実現させることができる。
<ul class="pc-flex hcenter">
  <li>
    <img src="https://unsplash.it/600/400?random&n01">
  </li>
  <li class="flex pc-vert bet">
    <div><img src="https://placehold.jp/100x50.jpg?text=Mini" width="" height="" alt=""></div>
    <div><img src="https://placehold.jp/100x50.jpg?text=Mini" width="" height="" alt=""></div>
    <div><img src="https://placehold.jp/100x50.jpg?text=Mini" width="" height="" alt=""></div>
  </li>
  <li>
    <img src="https://unsplash.it/600/400?random&n05">
  </li>
</ul>
```
*/

/*
 ######## ##       ######## ##     ##
 ##       ##       ##         ## ##
 ######   ##       ######      ###
 ##       ##       ##         ## ##
 ##       ######## ######## ##     ##
*/

.flex {
  display: -ms-flexbox;
  display: flex;
}

/*
          #######  ########
         ##     ## ##     ##
 ####### ##     ## ########
         ##     ## ##
          #######  ##
*/

.flex.bet,
.pc-flex.bet,
.sp-flex.bet {
  -ms-flex-pack: justify;
  justify-content: space-between;
}

.flex.aro,
.pc-flex.aro,
.sp-flex.aro {
  -ms-flex-pack: distribute;
  justify-content: space-around;
}

.flex.vstart,
.pc-flex.vstart,
.sp-flex.vstart {
  -ms-flex-align: start;
  align-items: flex-start;
}

.flex.vend,
.pc-flex.vend,
.sp-flex.vend {
  -ms-flex-align: end;
  align-items: flex-end;
}

.flex.vcenter,
.pc-flex.vcenter,
.sp-flex.vcenter {
  -ms-flex-align: center;
  align-items: center;
}

.flex.hstart,
.pc-flex.hstart,
.sp-flex.hstart {
  -ms-flex-pack: start;
  justify-content: flex-start;
}

.flex.hcenter,
.pc-flex.hcenter,
.sp-flex.hcenter {
  -ms-flex-pack: center;
  justify-content: center;
}

.flex.hend,
.pc-flex.hend,
.sp-flex.hend {
  -ms-flex-pack: end;
  justify-content: flex-end;
}

.flex.str,
.pc-flex.str,
.sp-flex.str {
  -ms-flex-align: stretch;
  align-items: stretch;
}

.flex.vert,
.pc-flex.vert,
.sp-flex.vert {
  -ms-flex-direction: column;
  flex-direction: column;
}

.flex.break,
.pc-flex.break,
.sp-flex.break {
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

/*
         ########   ######
         ##     ## ##
 ####### ########  ##
         ##        ##
         ##         ######
*/

/*
          ######  ########
         ##       ##     ##
 #######  ######  ########
               ## ##
          ######  ##
*/

/*
 ##     ##  #######  ##     ## ######## ########
 ##     ## ##     ## ##     ## ##       ##     ##
 ######### ##     ## ##     ## ######   ########
 ##     ## ##     ##  ##   ##  ##       ##   ##
 ##     ##  #######     ###    ######## ##     ##
*/

/*
#styleguide
ホバー透過　.op

マウスオーバーで不透明度を下げる。ホバー効果に拘る必要がない箇所向け。SP無効。

```
<a href="" class="op"><img src="https://unsplash.it/600/400?random&n06"></a>
```
*/

/*
 ########    ###    ########  ##       ########
    ##      ## ##   ##     ## ##       ##
    ##    ##     ## ########  ##       ######
    ##    ######### ##     ## ##       ##
    ##    ##     ## ########  ######## ########
*/

/*
#styleguide
SPテーブル　ブレーク　.sp-table-break

SP解像度時、2カラムのテーブルをカラム落ちさせる。
theadなし、2カラムのテーブル限定。

```
<div class="sp-table-break">
  <table>
    <tbody>
      <tr><th>氏名</th><td>ほげ 太郎</td></tr>
      <tr><th>Name</th><td>Hoge Taro</td></tr>
      <tr><th>年齢</th><td>22</td></tr>
      <tr><th>資格</th><td><ul class="u-list">
        <li>普通運転免許</li>
        <li>機械製図技能検定3級</li>
        <li>危険物取扱者乙4種</li>
      </ul></td></tr>
      <tr><th>趣味</th><td>天体観測</td></tr>
      <tr><th>特技</th><td>整理整頓</td></tr>
      <tr><th>志望動機</th><td>御社は、流通業界向けのシステム開発に特化していらっしゃいます。<br class="pc">実際に国内の大手運送会社などにも多く御社のサービスが導入されていますし、日本の物流・流通のIT化を牽引してきた企業だと感じています。<br class="pc">今後エンジニアとしてやっていく上で、一人ひとりが専門性や強みを持つことは重要です。<br class="pc">今までエンジニアとして幅広く開発に関わってきたノウハウを活かし、今後は1つの領域に特化して経験を積みたいと思っています。<br class="pc">御社で「誰にも負けない強み」を手に入れたいと思い、御社を志望いたしました。志望動機と写真は拾い物ですが、何卒ご承知おき願います。</td></tr>
      <tr><th>写真</th><td><img src="https://unsplash.it/600/400?random&n07"></td></tr>
    </tbody>
  </table>
</div>
```
*/

/*
#styleguide
SPテーブル　オーバー　.sp-table-over

SP解像度時、入り切らないテーブルは横スクロール化する。
Bootstrap等で見かける案。

```
<div class="sp-table-over">
<table>
  <thead><tr>
    <th>画像1ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ</th>
    <th>画像2ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ</th>
    <th>画像3</th>
    <th>画像4ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ</th>
    <th>画像5</th>
    <th>画像6</th>
    <th>画像7</th>
  </tr></thead>
  <tbody>
    <tr>
      <th><img src="https://unsplash.it/600/400?random&n08"></th>
      <td><img src="https://unsplash.it/600/400?random&n09"></td>
      <td><img src="https://unsplash.it/600/400?random&n10"></td>
      <td><img src="https://unsplash.it/600/400?random&n11"></td>
      <td><img src="https://unsplash.it/600/400?random&n12"></td>
      <td><img src="https://unsplash.it/600/400?random&n13"></td>
      <td><img src="https://unsplash.it/600/400?random&n14"></td>
    </tr>
  </tbody>
</table>
</div>
```
*/

/*
 ##    ##  #######  ##     ## ######## ##     ## ########  ########
  ##  ##  ##     ## ##     ##    ##    ##     ## ##     ## ##
    ##    ##     ## ##     ##    ##    ##     ## ########  ######
    ##    ##     ## ##     ##    ##    ##     ## ##     ## ##
    ##     #######   #######     ##     #######  ########  ########
*/

/*
#styleguide
レスポンシブYouTube　.youtube-wrap

埋め込みYouTubeをレスポンシブ化する。

```
<div class="youtube-wrap">
<iframe width="560" height="315" src="https://www.youtube.com/embed/5BIAdWNcr8Y" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
</div>
```
*/

.youtube-wrap {
  position: relative;
  padding-top: 56.25%;
  width: 100%;
}

.youtube-wrap iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important;
}

/*

  ######   ########     ###    ##    ##  ######   ######     ###    ##       ########
 ##        ##     ##  ##   ##    ####   ##       ##        ##   ##  ##       ##
 ##   #### ########  ##     ##    ##     ######  ##       ##     ## ##       ######
 ##    ##  ##   ##   #########    ##          ## ##       ######### ##       ##
  ######   ##     ## ##     ##    ##     ######   ######  ##     ## ######## ########

*/

.grayscale {
  filter: grayscale(100%);
}

/*
#styleguide
グレースケール .grayscale

内部要素をグレースケールにする。IEには効果なし
```

<p>通常</p>
<p style="color:red">テキストテキスト</p>
<img src="https://unsplash.it/600/400?random&gray..." width="20%">
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3242.1043551257094!2d140.03416711525796!3d35.64980048020159!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x602281f4fe8fadc9%3A0xcca485b949001501!2z5bmV5by144Oh44OD44K7IOWbvemam-WxleekuuWgtDktMTHjg5vjg7zjg6s!5e0!3m2!1sja!2sjp!4v1538103561889" width="100%" height="200" frameborder="0" style="border:0" allowfullscreen></iframe>

<p>grayscale</p>
<div class="grayscale">
<p style="color:red">テキストテキスト</p>
<img src="https://unsplash.it/600/400?random&gray..." width="20%">
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3242.1043551257094!2d140.03416711525796!3d35.64980048020159!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x602281f4fe8fadc9%3A0xcca485b949001501!2z5bmV5by144Oh44OD44K7IOWbvemam-WxleekuuWgtDktMTHjg5vjg7zjg6s!5e0!3m2!1sja!2sjp!4v1538103561889" width="100%" height="200" frameborder="0" style="border:0" allowfullscreen></iframe>
</div>
```
*/

/*
#overview
State

特定のワンポイントに作用させる目的のスタイル
*/

/*
######  ####### ##    ## ##  ###### #######
##   ## ##      ##    ## ## ##      ##
##   ## #####   ##    ## ## ##      #####
##   ## ##       ##  ##  ## ##      ##
######  #######   ####   ##  ###### #######
*/

/*
#styleguide
ロック .lock

body専用。スクロールを無効にする。iPhoneには効かない。
```
<a onclick="document.body.classList.toggle('lock')">テストロック</a>
```
*/

body.lock {
  overflow: hidden;
}

/*
#styleguide
セリフ .serif

適用範囲を明朝体にする。
```
<p>テキストテキストテキスト<span class="serif">テキストテキストテキストテキスト</span>テキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト</p>
```
*/

.serif {
  font-family: "Noto Serif JP", Yu Mincho, YuMincho, Hiragino Mincho ProN,
    "NotoSerifCJKjp", HGS明朝E, HG明朝E, serif;
}

/*
#styleguide
常に隠す要素 .is-none

display: none!important;をかける。
*/

.is-none {
  display: none !important;
}

/*
#styleguide
JSで出し入れする要素 .js-hide

JSの作用で出現する要素を表す。スタイルは普通のdisplay: none;のみ。
*/

.js-hide {
  display: none;
}

/*
#styleguide
テキスト配置 .ta-center,.ta-left,.ta-right

text-alignを変更する。頭に「pc-」「sp-」でデバイスを限定できる。
一箇所だけ中央揃えなど、少数派のバリエーションへの対処や、納品後の調整向け。
*/

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

.ta-right {
  text-align: right;
}

.ta-left {
  text-align: left;
}

/*
#styleguide
ボールド .fw-700,.fw-900

太字にする。少数派バリエーションへの対処や、納品後の調整向け。
*/

.fw-700 {
  font-weight: 700;
}

.fw-900 {
  font-weight: 900;
}

/*
#styleguide
フォントサイズ .fz-e7～,.fz-e9

文字サイズを0.7em～0.9emの範囲で変更。納品後の調整向け。
*/

.fz-e7 {
  font-size: 0.7em;
}

.fz-e8 {
  font-size: 0.8em;
}

.fz-e9 {
  font-size: 0.9em;
}

/*
#styleguide
クリックイベント無効化 is-false

ホバー効果、イベントトラッキング、aタグのページ遷移を無効化する。
　
IE,Edgeのaタグに使う場合、aタグをblockかinline-blockにする必要がある。
```
<a style="display:inline-block" class="is-false" onclick="document.body.classList.toggle('lock')">テストロック</a>
```
*/

.is-false {
  pointer-events: none;
}

@font-face {
  font-family: "swiper-icons";
  font-style: normal;
  font-weight: 400;
  src: url("data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA")
    format("woff");
}

:root {
  --swiper-theme-color: #007aff;
}

.swiper-container {
  position: relative;
  /* Fix of Webkit flickering */
  z-index: 1;
  margin-right: auto;
  margin-left: auto;
  padding: 0;
  overflow: hidden;
  list-style: none;
}

.swiper-container-vertical > .swiper-wrapper {
  -ms-flex-direction: column;
  flex-direction: column;
}

.swiper-wrapper {
  display: -ms-flexbox;
  display: flex;
  box-sizing: content-box;
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  transition-property: transform;
}

.swiper-container-android .swiper-slide,
.swiper-wrapper {
  transform: translate3d(0px, 0, 0);
}

.swiper-container-multirow > .swiper-wrapper {
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

.swiper-container-multirow-column > .swiper-wrapper {
  -ms-flex-direction: column;
  flex-direction: column;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

.swiper-container-free-mode > .swiper-wrapper {
  margin: 0 auto;
  transition-timing-function: ease-out;
}

.swiper-container-pointer-events {
  -ms-touch-action: pan-y;
  touch-action: pan-y;
}

.swiper-container-pointer-events.swiper-container-vertical {
  -ms-touch-action: pan-x;
  touch-action: pan-x;
}

.swiper-slide {
  flex-shrink: 0;
  position: relative;
  width: 100%;
  height: 100%;
  transition-property: transform;
  -ms-flex-negative: 0;
}

.swiper-slide-invisible-blank {
  visibility: hidden;
}

/* Auto Height */

.swiper-container-autoheight,
.swiper-container-autoheight .swiper-slide {
  height: auto;
}

.swiper-container-autoheight .swiper-wrapper {
  -ms-flex-align: start;
  align-items: flex-start;
  transition-property: transform, height;
}

/* 3D Effects */

.swiper-container-3d {
  perspective: 1200px;
}

.swiper-container-3d .swiper-wrapper,
.swiper-container-3d .swiper-slide,
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom,
.swiper-container-3d .swiper-cube-shadow {
  transform-style: preserve-3d;
}

.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
.swiper-container-3d .swiper-slide-shadow-bottom {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.swiper-container-3d .swiper-slide-shadow-left {
  background-image: linear-gradient(
    to left,
    rgba(0, 0, 0, 0.5),
    rgba(0, 0, 0, 0)
  );
}

.swiper-container-3d .swiper-slide-shadow-right {
  background-image: linear-gradient(
    to right,
    rgba(0, 0, 0, 0.5),
    rgba(0, 0, 0, 0)
  );
}

.swiper-container-3d .swiper-slide-shadow-top {
  background-image: linear-gradient(
    to top,
    rgba(0, 0, 0, 0.5),
    rgba(0, 0, 0, 0)
  );
}

.swiper-container-3d .swiper-slide-shadow-bottom {
  background-image: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.5),
    rgba(0, 0, 0, 0)
  );
}

/* CSS Mode */

.swiper-container-css-mode > .swiper-wrapper {
  overflow: auto;
  scrollbar-width: none;
  /* For Firefox */
  -ms-overflow-style: none;
  /* For Internet Explorer and Edge */
}

.swiper-container-css-mode > .swiper-wrapper::-webkit-scrollbar {
  display: none;
}

.swiper-container-css-mode > .swiper-wrapper > .swiper-slide {
  scroll-snap-align: start start;
}

.swiper-container-horizontal.swiper-container-css-mode > .swiper-wrapper {
  -ms-scroll-snap-type: x mandatory;
  scroll-snap-type: x mandatory;
}

.swiper-container-vertical.swiper-container-css-mode > .swiper-wrapper {
  -ms-scroll-snap-type: y mandatory;
  scroll-snap-type: y mandatory;
}

.swiper-container-fade.swiper-container-free-mode .swiper-slide {
  transition-timing-function: ease-out;
}

.swiper-container-fade .swiper-slide {
  transition-property: opacity;
  pointer-events: none;
}

.swiper-container-fade .swiper-slide .swiper-slide {
  pointer-events: none;
}

.swiper-container-fade .swiper-slide-active,
.swiper-container-fade .swiper-slide-active .swiper-slide-active {
  pointer-events: auto;
}

:root {
  --swiper-navigation-size: 44px;
  /*
  --swiper-navigation-color: var(--swiper-theme-color);
  */
}

.swiper-button-prev,
.swiper-button-next {
  display: -ms-flexbox;
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 50%;
  z-index: 10;
  margin-top: calc(0px - (var(--swiper-navigation-size) / 2));
  width: calc(var(--swiper-navigation-size) / 44 * 27);
  height: var(--swiper-navigation-size);
  color: var(--swiper-navigation-color, var(--swiper-theme-color));
  cursor: pointer;
  -ms-flex-align: center;
  -ms-flex-pack: center;
}

.swiper-button-prev.swiper-button-disabled,
.swiper-button-next.swiper-button-disabled {
  opacity: 0.35;
  pointer-events: none;
  cursor: auto;
}

.swiper-button-prev:after,
.swiper-button-next:after {
  font-family: swiper-icons;
  font-size: var(--swiper-navigation-size);
  font-variant: initial;
  line-height: 1;
  text-transform: none !important;
  text-transform: none;
  letter-spacing: 0;
}

.swiper-button-prev,
.swiper-container-rtl .swiper-button-next {
  right: auto;
  left: 10px;
}

.swiper-button-prev:after,
.swiper-container-rtl .swiper-button-next:after {
  content: "prev";
}

.swiper-button-next,
.swiper-container-rtl .swiper-button-prev {
  right: 10px;
  left: auto;
}

.swiper-button-next:after,
.swiper-container-rtl .swiper-button-prev:after {
  content: "next";
}

.swiper-button-prev.swiper-button-white,
.swiper-button-next.swiper-button-white {
  --swiper-navigation-color: #ffffff;
}

.swiper-button-prev.swiper-button-black,
.swiper-button-next.swiper-button-black {
  --swiper-navigation-color: #000000;
}

.swiper-button-lock {
  display: none;
}

:root {
  /*
  --swiper-pagination-color: var(--swiper-theme-color);
  */
}

.swiper-pagination {
  position: absolute;
  z-index: 10;
  text-align: center;
  transition: 300ms opacity;
  transform: translate3d(0, 0, 0);
}

.swiper-pagination.swiper-pagination-hidden {
  opacity: 0;
}

/* Common Styles */

.swiper-pagination-fraction,
.swiper-pagination-custom,
.swiper-container-horizontal > .swiper-pagination-bullets {
  bottom: 10px;
  left: 0;
  width: 100%;
}

/* Bullets */

.swiper-pagination-bullets-dynamic {
  overflow: hidden;
  font-size: 0;
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
  position: relative;
  transform: scale(0.33);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {
  transform: scale(1);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {
  transform: scale(1);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {
  transform: scale(0.66);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {
  transform: scale(0.33);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {
  transform: scale(0.66);
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {
  transform: scale(0.33);
}

.swiper-pagination-bullet {
  display: inline-block;
  border-radius: 50%;
  width: 8px;
  height: 8px;
  background: #000;
  opacity: 0.2;
}

button.swiper-pagination-bullet {
  margin: 0;
  padding: 0;
  border: none;
  box-shadow: none;
  -webkit-appearance: none;
  appearance: none;
}

.swiper-pagination-clickable .swiper-pagination-bullet {
  cursor: pointer;
}

.swiper-pagination-bullet-active {
  background: var(--swiper-pagination-color, var(--swiper-theme-color));
  opacity: 1;
}

.swiper-container-vertical > .swiper-pagination-bullets {
  top: 50%;
  right: 10px;
  transform: translate3d(0px, -50%, 0);
}

.swiper-container-vertical
  > .swiper-pagination-bullets
  .swiper-pagination-bullet {
  display: block;
  margin: 6px 0;
}

.swiper-container-vertical
  > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
  top: 50%;
  width: 8px;
  transform: translateY(-50%);
}

.swiper-container-vertical
  > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic
  .swiper-pagination-bullet {
  display: inline-block;
  transition: 200ms transform, 200ms top;
}

.swiper-container-horizontal
  > .swiper-pagination-bullets
  .swiper-pagination-bullet {
  margin: 0 4px;
}

.swiper-container-horizontal
  > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
  left: 50%;
  white-space: nowrap;
  transform: translateX(-50%);
}

.swiper-container-horizontal
  > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic
  .swiper-pagination-bullet {
  transition: 200ms transform, 200ms left;
}

.swiper-container-horizontal.swiper-container-rtl
  > .swiper-pagination-bullets-dynamic
  .swiper-pagination-bullet {
  transition: 200ms transform, 200ms right;
}

/* Progress */

.swiper-pagination-progressbar {
  position: absolute;
  background: rgba(0, 0, 0, 0.25);
}

.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--swiper-pagination-color, var(--swiper-theme-color));
  transform: scale(0);
  transform-origin: left top;
}

.swiper-container-rtl
  .swiper-pagination-progressbar
  .swiper-pagination-progressbar-fill {
  transform-origin: right top;
}

.swiper-container-horizontal > .swiper-pagination-progressbar,
.swiper-container-vertical
  > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite {
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
}

.swiper-container-vertical > .swiper-pagination-progressbar,
.swiper-container-horizontal
  > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite {
  top: 0;
  left: 0;
  width: 4px;
  height: 100%;
}

.swiper-pagination-white {
  --swiper-pagination-color: #ffffff;
}

.swiper-pagination-black {
  --swiper-pagination-color: #000000;
}

.swiper-pagination-lock {
  display: none;
}

/*
######## ########  ##     ## ##    ## ##    ##  #######
   ##    ##     ## ##     ## ####  ## ##  ##   ##     ##
   ##    ########  ##     ## ## ## ## #####     #######
   ##    ##   ##   ##     ## ##  #### ##  ##   ##     ##
   ##    ##     ##  #######  ##    ## ##    ##  #######

  IE以外のブラウザでは以下のline-clampで対応できるので通常必要ない
*/

/*
IEをJSで保管する場合は以下を記述する　（isBrowser.jsをインポートすること）

if (isBrowser === 'ie') {
  if (document.getElementsByClassName('js-t8')[0]) {
    // 要素を検出したら実行
    trunk8()
    $(window).on('load resize ', function () {
      trunk8()
    })
  }
}
function trunk8() {
  // 指定要素に行数制限をかける
  $('.js-t8.line2').trunk8({
    lines: 2,
    fill: '...',
  })
  $('.js-t8.line3').trunk8({
    lines: 3,
    fill: '...',
  })
}

*/

/*
##     ##    ###    ##       #### ########     ###    ######## ########
##     ##  ##   ##  ##        ##  ##     ##  ##   ##     ##    ##
##     ## ##     ## ##        ##  ##     ## ##     ##    ##    ######
 ##   ##  ######### ##        ##  ##     ## #########    ##    ##
   ###    ##     ## ######## #### ########  ##     ##    ##    ########
jQuery Validate-Engine
*/

/* モジュール*/

.md-uline {
  position: relative;
  text-decoration: none;
}

.md-uline::before {
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 5;
  width: 100%;
  height: 2px;
  background: #169894;
  transition-duration: 0.5s;
  transform: rotateY(90deg);
  transform-origin: 50%;
  content: "";
}

.md-uline.uline-block {
  display: block;
}

.md-uline.uline-left::before {
  transform-origin: 0%;
}

.md-uline.uline-right::before {
  transform-origin: 100%;
}

a.active .md-uline,
.md-uline.active,
a:hover .md-uline,
.md-uline:hover {
  text-decoration: none;
}

a.active .md-uline:before,
.md-uline.active:before,
a:hover .md-uline:before,
.md-uline:hover:before {
  transform: rotateY(0deg);
}

/*
#styleguide
アンダーライン .md-uline

アニメーションでアンダーラインを乗せる。Aタグのホバーか「.active」に反応する。
```
<a class="md-uline">テストテストテストテストテストテストテスト1</a>
<a class="md-uline uline-left">テストテストテストテストテストテストテスト2</a>
<a class="md-uline uline-right">テストテストテストテストテストテストテスト3</a>
<a class="md-uline uline-left uline-block">テストテストテストテストテストテストテスト4</a>

```
*/

.md-overlay {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 1000;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  background: url("../img/spMenu_bg.png") no-repeat center/cover;
  transition-duration: 0.5s;
  cursor: pointer;
}

.md-overlay:not(.active) {
  z-index: -1;
  opacity: 0;
  visibility: hidden;
}

.md-overlay--modal {
  z-index: 10000;
}

.md-overlay--ripple {
  border-radius: 50%;
  width: 300vh;
  height: 300vh;
  transform: translate(50%, -50%);
}

.md-overlay--ripple:not(.active) {
  width: 0;
  height: 0;
}

.md-overlay--shutter {
  height: 200vh;
  background-image: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0.5),
    rgba(0, 0, 0, 0.5) 50%,
    rgba(255, 255, 255, 0)
  );
}

.md-overlay--shutter:not(.active) {
  transform: translate(0, -100%);
}

/*
#styleguide
オーバーレイ .md-overlay

オーバーレイを被せる。「.active」の付与で出現する。
z-index: 1000;とbackground: rgba(#000, .5);は構成に応じて調整。
```
<div id="overlay" class="md-overlay"></div>

<div id="test-overlay" class="md-overlay" onclick="this.classList.toggle('active')"></div>
<a onclick="document.getElementById('test-overlay').classList.toggle('active')">テスト開閉</a>

<div id="test-overlay-ripple" class="md-overlay md-overlay--ripple" onclick="this.classList.toggle('active')"></div>
<a onclick="document.getElementById('test-overlay-ripple').classList.toggle('active')">テスト開閉（波紋）</a>

<div id="test-overlay-shutter" class="md-overlay md-overlay--shutter" onclick="this.classList.toggle('active')"></div>
<a onclick="document.getElementById('test-overlay-shutter').classList.toggle('active')">テスト開閉（シャッター）</a>
```
*/

.md-loading {
  position: relative;
  min-height: 9rem;
  max-height: 60vh;
}

.md-loading::before {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  margin: -2rem 0 0 -2rem;
  border: 3px solid #169894;
  border-bottom-color: rgba(22, 152, 148, 0.5);
  border-radius: 50%;
  width: 4rem;
  height: 4rem;
  -webkit-animation-name: mdLoading;
  animation-name: mdLoading;
  -webkit-animation-duration: 0.5s;
  animation-duration: 0.5s;
  -webkit-animation-timing-function: linear;
  animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  content: "";
}

.md-loading:not(.active) {
  opacity: 0;
  visibility: hidden;
}

@-webkit-keyframes mdLoading {
  100% {
    transform: rotate(360deg);
  }
}

@keyframes mdLoading {
  100% {
    transform: rotate(360deg);
  }
}

/*
#styleguide
ローディングアニメ .md-loading

円形のローディングアニメを出す。「.active」を消すと非表示になる。
```
<div class="md-loading active"></div>

```
*/

.md-lay {
  display: inline-block;
  position: relative;
  width: 100%;
  z-index: 1;
  vertical-align: middle;
  transition-duration: 0.5s;
  transform: perspective(0) translate3d(0, 0, 0);
}

.md-lay .lay-bg {
  position: relative;
  display: block;
  height: 300px;
  z-index: 2;
  text-align: center;
  transition-duration: 0.5s;
}

.md-lay .lay-bg img {
  font-family: "object-fit: cover;";
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  width: 100%;
}

.md-lay .lay-bg .on {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  transition-duration: 0.5s;
}

.md-lay .lay-bg .off {
  position: relative;
  transition-duration: 0.5s;
}

.md-lay::before,
.md-lay::after {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition-duration: 0.5s;
  transform: perspective(0) translate3d(0, 0, 0);
  content: "";
}

.md-lay::before {
  z-index: 3;
  background: rgba(0, 0, 0, 0.5);
}

.md-lay::after {
  z-index: 4;
}

.md-lay.zoom {
  overflow: hidden;
}

.md-lay.block {
  display: block;
}

.md-lay.over {
  display: block;
}

.md-lay.over .lay-bg img {
  margin-left: 50%;
  width: auto;
  max-width: none;
  transform: translate(-50%, 0);
}

.md-lay.through {
  display: inline-block;
  overflow: visible;
}

.md-lay.through .lay-bg img {
  width: auto;
  max-width: none;
}

.md-lay.no-cover::before,
.md-lay.no-cover::after {
  display: none;
}

.md-lay .lay-content {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 5;
  width: 100%;
  height: 100%;
}

a.active .md-lay .lay-bg .on {
  opacity: 1;
}

a.active .md-lay .lay-bg .off {
  opacity: 0;
}

a.active .md-lay.zoom .lay-bg {
  transform: scale(1.05);
}

a.active .md-lay.bright::before {
  opacity: 1;
}

a.active .md-lay.border::after {
  box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.5) inset;
  opacity: 1;
}

/* #styleguide
レイヤー .md-lay

画像に文字を載せたり、aタグの小要素にした時のホバーアニメを複数種類付与できる。
「lay-bg」内の要素をつっかえ棒にする仕組みなので画像かなにかが必須。bgの要素には他のパーツが重なるので、原則クリック対象にできない。

「lay-content」に文字などの要素を載せられる。「flex」系の位置指定用クラスで八方向に移動できる。
アニメはborder（枠線を出す）zoom（画像を拡大） bright（暗くする）hide（lay-contentを一旦隠し、ホバー時に出す）の4点。

使用機会の多さに対してマークアップ量が多いので、中央寄せをベースにしたスニペット登録推奨。
```
<div class="md-lay bright zoom border">
  <div class="lay-bg">
    <img src="https://placehold.jp/300x400.jpg?text=300x400" width="" height="" alt="">
  </div>
  <div class="lay-content flex vcenter hcenter"><div class="in">
    <span style="font-size:3em;color:#F00;">中央寄せ</span>
  </div></div>
</div>
<div class="md-lay bright zoom border">
  <div class="lay-bg">
    <iframe width="300" height="400" src="https://www.youtube.com/embed/U-pt_To6yZ8?rel=0&controls=0&showinfo=0&autoplay0=&loop=1" frameborder="0" allow=" encrypted-media" allowfullscreen></iframe>
  </div>
  <div class="lay-content flex vend hend"><div class="in">
    <span style="font-size:3em;color:#F00;">右下寄せ</span>
  </div></div>
</div>
<div class="md-lay bright zoom border">
  <div class="lay-bg">
  <p style="max-width:300px">
    テキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト
  </p>
  </div>
  <div class="lay-content flex vstart hstart"><div class="in">
    <span style="font-size:3em;color:#F00;">左上寄せ</span>
  </div></div>
</div>
<a href="" style="display:inline-block">
  <div class="md-lay bright zoom border">
    <div class="lay-bg">
      <img src="https://placehold.jp/300x400.jpg?text=300x400" width="" height="" alt="">
    </div>
    <div class="lay-content flex vcenter hcenter"><div class="in">
      <span style="font-size:3em;color:#F00;">リンク</span>
    </div></div>
  </div>
</a>


<p style="padding-top:2em;">
「over」を付けると画像本来の高さを保持し、はみ出す部分は自主的にカットする。MV向け。
「pc-over」「sp-over」で片方だけに適用可能。
</p>
<div class="md-lay over">
  <div class="lay-bg">
    <img src="https://placehold.jp/8000x300.jpg?text=8000x300" width="" height="" alt="">
  </div>
  <div class="lay-content flex vcenter hcenter"><div class="in">
    <span style="font-size:3em;color:#F00;">ページタイトル</span>
  </div></div>
</div><br>

<div class="md-lay">
  <div class="lay-bg">
    <img src="https://placehold.jp/8000x300.jpg?text=8000x300" width="" height="" alt="">
  </div>
  <div class="lay-content flex vcenter hend"><div class="in">
    <span style="font-size:3em;color:#F00;">普通に貼った場合</span>
  </div></div>
</div><br>

<p style="padding-top:2em;">
「through」を付けると完全オリジナルサイズで突き抜ける。画像だけwrapから飛び出しているような特殊レイアウト向け。<br>
通常の配置を貫通するためのオプションなので、親要素にoverflow:hidden;が必須。
「zoom」効果は拡大画像がはみ出すようになるので使用不可。「border」も線が切れるので向かない。
「pc-through」「sp-through」で片方だけに適用可能。
</p>



<div style="width:100%;overflow:hidden">
<div class="wrap">
<a href="" style="display:inline-block">
<ul class="flex vcenter">
  <li>
  <p>
    テキストテキストテキスト
  </p>
  <span class="md-btn b-line w300">
    続きを読む
  </span>
  </li>
  <li>
  <div class="md-lay through bright border hide">
    <div class="lay-bg">
      <img src="https://placehold.jp/2000x300.jpg?text=2000x300" width="" height="" alt="">
    </div>
    <div class="lay-content flex vcenter hcenter"><div class="in">
        <span style="font-size:3em;color:#F00;">詳細を見る</span>
    </div></div>
  </div>
  </li>
</ul>
</a>
</div>
</div>

``` */

/*
<i class="icon-checked"></i>
<i class="icon-down"></i>
<i class="icon-download"></i>
<i class="icon-facebook"></i>
<i class="icon-instagram"></i>
<i class="icon-left"></i>
<i class="icon-line"></i>
<i class="icon-login"></i>
<i class="icon-mail"></i>
<i class="icon-right"></i>
<i class="icon-twitter"></i>
<i class="icon-up"></i>
*/

/*
#overview
SVGアイコンフォント

「img/icon」ディレクトリ内のSVGファイルを元に生成されたアイコンフォント。
タスクランナーの処理で自動的にフォントファイル+SCSSの生成と本ガイドへの記載が行われる。
「i.icon-ファイル名」または「.iconfont（タグ内にファイル名と同じ文字列を入れる）」で呼び出すことができる（後者はIE非対応）。
サンプルコードではCSS追記のフック用に「.icon」クラスも付けている。
*/

@font-face {
  font-family: iconfont;
  src: url("font/icon/iconfont.eot?6c8b3880251c7601efaed7fc16eb9707?#iefix")
      format("embedded-opentype"),
    url("font/icon/iconfont.woff2?6c8b3880251c7601efaed7fc16eb9707")
      format("woff2"),
    url("font/icon/iconfont.woff?6c8b3880251c7601efaed7fc16eb9707")
      format("woff");
  font-display: swap;
}

.iconfont,
i[class*="icon-"]::before {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-family: iconfont !important;
  font-style: normal;
  font-weight: normal !important;
  font-variant: normal;
  text-decoration: none;
  text-transform: none;
}

i[class*="icon-"] {
  display: inline-block;
  line-height: 1;
  vertical-align: middle;
}

i[class*="icon-"]::before {
  display: inline-block;
  vertical-align: bottom;
}

/*
#styleguide
.icon-checked
```
<i class="icon-checked"></i>
<i class="icon-checked" style="margin-left:2rem;font-size:2rem"></i>
<i class="icon-checked" style="margin-left:2rem;font-size:5rem"></i>
<span class="iconfont" style="display: inline-block;line-height: 1;vertical-align: middle;margin-left:2rem;font-size:10rem">checked</span>
```
*/

.icon-checked::before {
  content: "\f101";
}

/*
#styleguide
.icon-down
```
<i class="icon-down"></i>
<i class="icon-down" style="margin-left:2rem;font-size:2rem"></i>
<i class="icon-down" style="margin-left:2rem;font-size:5rem"></i>
<span class="iconfont" style="display: inline-block;line-height: 1;vertical-align: middle;margin-left:2rem;font-size:10rem">down</span>
```
*/

.icon-down::before {
  content: "\f102";
}

/*
#styleguide
.icon-download
```
<i class="icon-download"></i>
<i class="icon-download" style="margin-left:2rem;font-size:2rem"></i>
<i class="icon-download" style="margin-left:2rem;font-size:5rem"></i>
<span class="iconfont" style="display: inline-block;line-height: 1;vertical-align: middle;margin-left:2rem;font-size:10rem">download</span>
```
*/

.icon-download::before {
  content: "\f103";
}

/*
#styleguide
.icon-facebook
```
<i class="icon-facebook"></i>
<i class="icon-facebook" style="margin-left:2rem;font-size:2rem"></i>
<i class="icon-facebook" style="margin-left:2rem;font-size:5rem"></i>
<span class="iconfont" style="display: inline-block;line-height: 1;vertical-align: middle;margin-left:2rem;font-size:10rem">facebook</span>
```
*/

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

/*
#styleguide
.icon-instagram
```
<i class="icon-instagram"></i>
<i class="icon-instagram" style="margin-left:2rem;font-size:2rem"></i>
<i class="icon-instagram" style="margin-left:2rem;font-size:5rem"></i>
<span class="iconfont" style="display: inline-block;line-height: 1;vertical-align: middle;margin-left:2rem;font-size:10rem">instagram</span>
```
*/

.icon-instagram::before {
  content: "\f105";
}

/*
#styleguide
.icon-left
```
<i class="icon-left"></i>
<i class="icon-left" style="margin-left:2rem;font-size:2rem"></i>
<i class="icon-left" style="margin-left:2rem;font-size:5rem"></i>
<span class="iconfont" style="display: inline-block;line-height: 1;vertical-align: middle;margin-left:2rem;font-size:10rem">left</span>
```
*/

.icon-left::before {
  content: "\f106";
}

/*
#styleguide
.icon-line
```
<i class="icon-line"></i>
<i class="icon-line" style="margin-left:2rem;font-size:2rem"></i>
<i class="icon-line" style="margin-left:2rem;font-size:5rem"></i>
<span class="iconfont" style="display: inline-block;line-height: 1;vertical-align: middle;margin-left:2rem;font-size:10rem">line</span>
```
*/

.icon-line::before {
  content: "\f107";
}

/*
#styleguide
.icon-login
```
<i class="icon-login"></i>
<i class="icon-login" style="margin-left:2rem;font-size:2rem"></i>
<i class="icon-login" style="margin-left:2rem;font-size:5rem"></i>
<span class="iconfont" style="display: inline-block;line-height: 1;vertical-align: middle;margin-left:2rem;font-size:10rem">login</span>
```
*/

.icon-login::before {
  content: "\f108";
}

/*
#styleguide
.icon-mail
```
<i class="icon-mail"></i>
<i class="icon-mail" style="margin-left:2rem;font-size:2rem"></i>
<i class="icon-mail" style="margin-left:2rem;font-size:5rem"></i>
<span class="iconfont" style="display: inline-block;line-height: 1;vertical-align: middle;margin-left:2rem;font-size:10rem">mail</span>
```
*/

.icon-mail::before {
  content: "\f109";
}

/*
#styleguide
.icon-right
```
<i class="icon-right"></i>
<i class="icon-right" style="margin-left:2rem;font-size:2rem"></i>
<i class="icon-right" style="margin-left:2rem;font-size:5rem"></i>
<span class="iconfont" style="display: inline-block;line-height: 1;vertical-align: middle;margin-left:2rem;font-size:10rem">right</span>
```
*/

.icon-right::before {
  content: "\f10a";
}

/*
#styleguide
.icon-twitter
```
<i class="icon-twitter"></i>
<i class="icon-twitter" style="margin-left:2rem;font-size:2rem"></i>
<i class="icon-twitter" style="margin-left:2rem;font-size:5rem"></i>
<span class="iconfont" style="display: inline-block;line-height: 1;vertical-align: middle;margin-left:2rem;font-size:10rem">twitter</span>
```
*/

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

/*
#styleguide
.icon-up
```
<i class="icon-up"></i>
<i class="icon-up" style="margin-left:2rem;font-size:2rem"></i>
<i class="icon-up" style="margin-left:2rem;font-size:5rem"></i>
<span class="iconfont" style="display: inline-block;line-height: 1;vertical-align: middle;margin-left:2rem;font-size:10rem">up</span>
```
*/

.icon-up::before {
  content: "\f10c";
}

.md-btn {
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-pack: center;
  justify-content: center;
  -ms-flex-align: center;
  align-items: center;
  position: relative;
  z-index: 1;
  border: 0;
  width: 100%;
  overflow: hidden;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  vertical-align: middle;
  transition-duration: 0.5s;
  cursor: pointer;
  /*
        ######   #######  ##        #######  ########
       ##       ##     ## ##       ##     ## ##     ##
       ##       ##     ## ##       ##     ## ########
       ##       ##     ## ##       ##     ## ##   ##
        ######   #######  ########  #######  ##     ##
*/
}

.md-btn.left-text {
  -ms-flex-pack: start;
  justify-content: flex-start;
  text-align: left;
}

.md-btn.mat {
  padding: 0;
}

.md-btn.mat a,
.md-btn.mat input[type="button"],
.md-btn.mat input[type="submit"],
.md-btn.mat button {
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-pack: center;
  justify-content: center;
  -ms-flex-align: center;
  align-items: center;
  border: 0;
  width: 100%;
  height: 100%;
  font-size: inherit;
  font-weight: inherit;
  line-height: 1;
  color: inherit;
  background: transparent;
  outline: none;
  transition: color 0s;
}

.md-btn::before {
  display: inline-block;
  position: absolute;
  top: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  background: none;
  transition-duration: 0.5s;
  pointer-events: none;
  content: "";
}

.md-btn:not(.reverse):before {
  left: -100%;
}

.md-btn.reverse:before {
  right: -100%;
}

.md-btn.stay:before {
  display: none;
}

.md-btn .head-icon {
  margin-right: 0.5em;
  margin-left: -1em;
}

.md-btn .left-icon,
.md-btn .right-icon {
  position: absolute;
  top: 50%;
  z-index: 10;
  transition: color 0s;
  transform: translate(0, -50%);
  pointer-events: none;
}

.md-btn .right-icon {
  right: 0.8em;
  transition: right 0.5s;
}

.md-btn .left-icon {
  left: 0.8em;
  transition: left 0.5s;
}

.md-btn:hover,
a:hover .md-btn {
  text-decoration: none;
}

.md-btn:hover:not(.reverse):before,
a:hover .md-btn:not(.reverse):before {
  left: 0;
}

.md-btn:hover.reverse:before,
a:hover .md-btn.reverse:before {
  right: 0;
}

.md-btn:hover .right-icon:not(.stay),
a:hover .md-btn .right-icon:not(.stay) {
  right: 0.5em;
}

.md-btn:hover .left-icon:not(.stay),
a:hover .md-btn .left-icon:not(.stay) {
  left: 0.5em;
}

.md-btn.white {
  border: solid 1px #fff;
  color: #000;
  background-color: #fff;
}

.md-btn.white:before,
.md-btn.white:hover,
a:hover .md-btn.white {
  color: #fff;
  background-color: #000;
}

.md-btn.black {
  border: solid 1px #fff;
  color: #fff;
}

.md-btn.black:before,
.md-btn.black:hover,
a:hover .md-btn.black {
  color: #169894;
  background-color: #fff;
}

.md-btn.green {
  border: solid 1px #169894;
  color: #fff;
  background-color: #169894;
}

.md-btn.green:before,
.md-btn.green:hover,
a:hover .md-btn.green {
  color: #169894;
  background-color: #fff;
}

.md-btn.green-line {
  border: solid 1px #169894;
  color: #169894;
  background-color: #fff;
}

.md-btn.green-line:before,
.md-btn.green-line:hover,
a:hover .md-btn.green-line {
  color: #fff;
  background-color: #169894;
}

.md-btn.orange {
  border: solid 1px #f16232;
  color: #fff;
  background-color: #f16232;
}

.md-btn.orange:before,
.md-btn.orange:hover,
a:hover .md-btn.orange {
  color: #f16232;
  background-color: #fff;
}

.md-btn.app {
  border: solid 1px #169894;
  color: #fff;
  background-color: #169894;
}

.md-btn.app:before,
.md-btn.app:hover,
a:hover .md-btn.app {
  color: #169894;
  background-color: #fff;
}

/*
#styleguide
ボタン .md-btn

指定したタグをボタン風にする。
マウスホバーもしくは「active」クラスでアニメーションする。aタグの小要素に使っている場合は、親aタグの状態にも反応する。
「mat」を付けることで、直下のボタン要素を装飾することもできる。
動く系のアニメは「stay」で止められる。
```
<a class="md-btn w300 black" href="#">
  次のページ
  <i class="icon fas fa-fw fa-chevron-right right-icon"></i>
</a>
<span class="md-btn b-line w300 mat stay">
  <i class="icon fas fa-fw fa-check left-icon stay"></i>
  <input type="submit" value="入力内容を確認する">
</span>

<a class="md-btn w300 black reverse" href="#">
  <i class="icon fas fa-fw fa-chevron-left left-icon"></i>
  戻る
</a>
<a class="md-btn w300 b-line left-text" href="#">
  テキストテキスト<br>テキスト
</a>
```
*/

.md-acc .acc-btn {
  cursor: pointer;
}

.md-acc .acc-check {
  display: none;
}

.md-acc .acc-body {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition-duration: 0.5s;
  transform-origin: 0 0;
}

.md-acc .acc-body .acc-body:not(.active) {
  transition-duration: 0s;
}

.md-acc .acc-body:not(.active) .acc-on,
.md-acc .acc-check:not(:checked) ~ .acc-body .acc-on,
.md-acc .acc-check:not(:checked) ~ .acc-btn .acc-on {
  display: none;
}

.md-acc .acc-body.active,
.md-acc .acc-check:checked ~ .acc-body,
.md-acc .acc-check:checked ~ .acc-btn,
.md-acc .acc-check:checked ~ .acc-btn .acc-body {
  max-height: none;
  opacity: 1;
}

.md-acc .acc-body.active .acc-off,
.md-acc .acc-check:checked ~ .acc-body .acc-off,
.md-acc .acc-check:checked ~ .acc-btn .acc-off,
.md-acc .acc-check:checked ~ .acc-btn .acc-body .acc-off {
  display: none;
}

/*

          ######  ########           #######  ##    ## ##       ##    ##
         ##    ## ##     ##         ##     ## ###   ## ##        ##  ##
         ##       ##     ##         ##     ## ####  ## ##         ####
 #######  ######  ########  ####### ##     ## ## ## ## ##          ##
               ## ##                ##     ## ##  #### ##          ##
         ##    ## ##                ##     ## ##   ### ##          ##
          ######  ##                 #######  ##    ## ########    ##

SP時のみアコーディオン化させる
*/

.sp-md-acc .acc-check {
  display: none;
}

/*
#styleguide
アコーディオン .md-acc

チェックボックスかJSを利用して開閉できるアコーディオン。
　
チェックボックスの場合は固有IDを付けた空のチェックボックス、それに紐付けたラベル、アコーディオンの中身を同じ階層の兄弟要素にすることが必須。
　
acc-bodyに「active」を付けることでも開けられるので、JSを使えばbtnとbodyを離せる。
　
acc-bodyはacc-btnの中に入れても良い。その場合acc-bodyをクリックしても閉じるアーコディオンになる。
　
「sp-md-acc」とするとSP時のみアコーディオン化し、PC時は常に展開状態になる。
```
<div class="md-acc" style="background:orange;">
  <input id="hogehoge" class="acc-check" type="checkbox" value="" />
  <label for="hogehoge" class="acc-btn">普通のアコーディオン</label>
  <div class="acc-body">
    <img src="https://unsplash.it/300/200?random&n1">
  </div>
</div>

<br><br><br>

<div class="md-acc" style="background:lightgreen;">
  <input id="hogehogeBody" class="acc-check" type="checkbox" value="" />
  <label for="hogehogeBody" class="acc-btn">
  開いた要素の部分をクリックしても閉じるアコーディオン<br>
  <div class="acc-body">
    <img src="https://unsplash.it/300/200?random&n2">
  </div>
  </label>
</div>

<br><br><br>

<div class="md-acc" style="background:pink;">
  <div id="test-acc-3" class="acc-body">
    JSで開かれたアコーディオン<br>
    <img src="https://unsplash.it/300/200?random&n3">
  </div>
</div>

<br><br><br>

<div class="sp-md-acc" style="background:aqua;">
  <input id="spacc" class="acc-check" type="checkbox" value="" />
  <label for="spacc" class="acc-btn">SPの時だけアコーディオンになる要素</label>
  <div class="acc-body">
    <img src="https://unsplash.it/300/200?random&n4">
  </div>
</div>

<br><br><br>

<a onclick="document.getElementById('test-acc-3').classList.toggle('active')" style="background:pink;"><i class="icon fas fa-bars fa-fw"></i>JSで開けるアコーディオン</a>

<br><br><br>


```
*/

/* 既存CSS*/

/* @import '_old';*/

/* 構築CSS*/

/*
 ##      ## ########     ###    ########
 ##  ##  ## ##     ##   ## ##   ##     ##
 ##  ##  ## ########  ##     ## ########
 ##  ##  ## ##   ##   ######### ##
  ###  ###  ##     ## ##     ## ##
*/

body {
  width: 100%;
}

/*
 ######## ######## ##     ## ########
    ##    ##         ## ##      ##
    ##    ######      ###       ##
    ##    ##         ## ##      ##
    ##    ######## ##     ##    ##
*/

body,
button,
input,
select,
textarea {
  font-family: "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ",
    Meiryo, "MS Pゴシック", "MS PGothic", sans-serif;
  font-size: 1.6rem;
  font-weight: 400;
  color: #444;
  word-wrap: break-word;
}

body {
  line-height: 1.8;
}

a {
  color: #169894;
  text-decoration: none;
}

p:not([class]):not(:last-child) {
  margin-bottom: 1em;
}

::selection {
  color: #fff;
  background-color: #13827e;
}

/*
########     ###    ########
##     ##   ## ##   ##     ##
########  ##     ## ##     ##
##        ######### ##     ##
##        ##     ## ########
*/

.headerPad {
  padding-top: 10rem;
}

/*
##     ## ########    ###    ########  ######## ########
##     ## ##        ##   ##  ##     ## ##       ##     ##
######### ######   ##     ## ##     ## ######   ########
##     ## ##       ######### ##     ## ##       ##   ##
##     ## ######## ##     ## ########  ######## ##     ##
*/

.header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  width: 100%;
  white-space: nowrap;
  background: #fff;
  transition: 0.5s;
  /*
               ######  ########
              ##       ##     ##
      #######  ######  ########
                    ## ##
               ######  ##
  */
}

.header.onTop {
  background: transparent;
}

.header.onTop.isHome .headerPulldown__head,
.header.onTop.isHome .headerNav__link {
  color: #fff;
}

.header.onTop.isHome .gNavBtn:not(.active) .gNavBtn__bar {
  background: #fff;
}

.header.onHover {
  background: #fff;
}

.header.onHover.isHome .headerPulldown__head,
.header.onHover.isHome .headerNav__link {
  color: #444;
}

.header__frame {
  padding: 0 0 0 2.4rem;
}

.header__base {
  height: 10rem;
}

/*
##        #######   ######    #######
##       ##     ## ##        ##     ##
##       ##     ## ##   #### ##     ##
##       ##     ## ##    ##  ##     ##
########  #######   ######    #######
*/

.headerLogo {
  padding-bottom: 1rem;
  height: 100%;
}

.headerLogo__img {
  display: block;
  max-width: 14rem;
  transition: 0.5s;
}

/*
  ##    ##    ###    ##     ##
  ####  ##  ##   ##  ##     ##
  ## ## ## ##     ## ##     ##
  ##  #### #########  ##   ##
  ##    ## ##     ##    ###
*/

.headerNav__link {
  padding: 0 2rem;
  font-size: 1.6rem;
  font-weight: 700;
  color: #444;
  letter-spacing: 0.02em;
}

.headerNav__btn {
  margin-left: 1.5rem;
  width: 20rem;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.headerNav__btn .icon {
  margin-right: 0.5rem;
}

/*
 ########  ##     ## ##       ##       ########   #######  ##      ## ##    ##
 ##     ## ##     ## ##       ##       ##     ## ##     ## ##  ##  ## ####  ##
 ########  ##     ## ##       ##       ##     ## ##     ## ##  ##  ## ## ## ##
 ##        ##     ## ##       ##       ##     ## ##     ## ##  ##  ## ##  ####
 ##         #######  ######## ######## ########   #######   ###  ###  ##    ##
*/

.headerPulldown {
  position: relative;
}

.headerPulldown__head {
  padding: 1rem 2.5rem;
  height: 100%;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1;
  color: #444;
  letter-spacing: 0.02em;
  transition-duration: 0.5s;
  cursor: pointer;
}

.headerPulldown__head .icon {
  margin-left: 1rem;
  font-size: 1.3rem;
}

.headerPulldown__body {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 2;
  padding: 2rem 2.5rem;
  background: #fff;
  opacity: 0;
  transition-duration: 0.5s;
  transform: rotateX(90deg);
  transform-origin: 0 0;
}

.headerPulldown__link {
  padding: 0.8rem 0;
  font-size: 1.5rem;
  font-weight: 700;
  color: #444;
  letter-spacing: 0.02em;
}

.headerPulldown__link .icon {
  margin-right: 1rem;
  font-size: 1.3rem;
  color: #169894;
}

.headerPulldown:hover .headerPulldown__head {
  color: #169894;
}

.headerPulldown:hover .headerPulldown__head::before {
  transform: none;
}

.headerPulldown:hover .headerPulldown__body {
  opacity: 1;
  transform: rotateX(0);
}

/*
 ######           ##    ##    ###    ##     ##
##                ####  ##  ##   ##  ##     ##
##   #### ####### ## ## ## ##     ## ##     ##
##    ##          ##  #### #########  ##   ##
 ######           ##    ## ##     ##    ###
*/

/*
        ########  ######## ##    ##
        ##     ##    ##    ####  ##
####### ########     ##    ## ## ##
        ##     ##    ##    ##  ####
        ########     ##    ##    ##
*/

.gNavBtn {
  display: inline-block;
  position: relative;
  margin: 0;
  border: 0;
  width: 6rem;
  height: 6rem;
  vertical-align: middle;
  cursor: pointer;
}

.gNavBtn__box {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
}

.gNavBtn__bar {
  display: block;
  position: absolute;
  left: 1.5rem;
  z-index: 2;
  border-radius: 0;
  width: calc(100% - 1.5rem * 2);
  height: 3px;
  background: #202024;
  transition-duration: 0.5s;
  transform-origin: 50% 50%;
}

.gNavBtn__bar:nth-of-type(1) {
  top: 1.75rem;
}

.gNavBtn__bar:nth-of-type(2) {
  top: 50%;
  margin-top: -1.5px;
}

.gNavBtn__bar:nth-of-type(3) {
  bottom: 1.75rem;
}

.gNavBtn.active .gNavBtn__bar {
  background: #202024;
}

.gNavBtn.active .gNavBtn__bar:nth-of-type(1) {
  top: 50%;
  margin-top: -1.5px;
  transition: top 0.5s, margin 0.5s, transform 0.5s ease 0.5s;
  transform: rotate(-45deg);
}

.gNavBtn.active .gNavBtn__bar:nth-of-type(2) {
  opacity: 0;
  transition-delay: 0.4s;
  transform: rotateY(90deg);
}

.gNavBtn.active .gNavBtn__bar:nth-of-type(3) {
  bottom: 50%;
  margin-bottom: -1.5px;
  transition: bottom 0.5s, margin 0.5s, transform 0.5s ease 0.5s;
  transform: rotate(45deg);
}

/*
        ##    ##    ###    ##     ##
        ####  ##  ##   ##  ##     ##
####### ## ## ## ##     ## ##     ##
        ##  #### #########  ##   ##
        ##    ## ##     ##    ###
*/

.gNav {
  position: fixed;
  top: 6rem;
  left: 0;
  z-index: 1000;
  width: 100%;
  max-height: calc(100% - 6rem);
  overflow-y: auto;
  transition-duration: 0.5s;
  transform-origin: 0 0;
}

.gNav::after {
  display: block;
  height: 0;
  content: "";
}

.gNav:not(.active) {
  transform: rotateX(90deg);
  visibility: hidden;
}

.gNav__menu {
  margin-top: 3rem;
}

.gNav__item {
  position: relative;
  padding: 1.5rem 2.5rem;
  font-size: 2rem;
  font-weight: 700;
  color: #444;
  letter-spacing: 0.02em;
}

.gNav__item--sub {
  font-size: 1.8rem;
  background: #fff;
}

.gNav__icon {
  position: absolute;
  top: 50%;
  right: 2rem;
  z-index: 2;
  font-size: 1rem;
  transition-duration: 0.3s;
  transform: translate(0%, -50%);
}

.acc-check:checked ~ .acc-btn .gNav__icon {
  transform: translate(0%, -50%) rotate(180deg);
}

.gNav__contact {
  padding: 3rem 3.125%;
}

.gNav__btn {
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.gNav__btn--mail {
  height: 6rem;
}

.gNav__btn--banner {
  display: block;
  margin: 5rem auto 0;
  max-width: 26rem;
  box-shadow: 0.5rem 0.5rem 4rem rgba(0, 0, 0, 0.16);
}

.gNav__btn--banner .gNavBanner {
  padding: 1.5rem 2.5rem;
  width: 100%;
  background: #ffbc17;
}

.gNav__btn--banner .gNavBanner__img {
  width: 35%;
}

.gNav__btn--banner .gNavBanner__text {
  padding-left: 1rem;
  width: 65%;
  color: #444;
}

.gNav__btn--banner .gNavBanner__text--ttl {
  margin-bottom: 0.5rem;
  font-size: 1.6rem;
  font-weight: bold;
  line-height: 1.5;
}

.gNav__btn--banner .gNavBanner__text--more {
  border-bottom: 2px solid #202024;
  font-size: 1.3rem;
  font-weight: 600;
}

.gNav__btn .icon {
  margin-right: 0.5rem;
}

/*
       ###    ########   ########
      ## ##   ##     ##  ##     ##
     ##   ##  ##     ##  ##     ##
    ##     ## ########   ########
    ######### ##         ##
    ##     ## ##         ##
    ##     ## ##         ##

*/

.appHeader {
  background: transparent;
  /*
##        #######   ######    #######
##       ##     ## ##        ##     ##
##       ##     ## ##   #### ##     ##
##       ##     ## ##    ##  ##     ##
########  #######   ######    #######
*/
  /*
  ##    ##    ###    ##     ##
  ####  ##  ##   ##  ##     ##
  ## ## ## ##     ## ##     ##
  ##  #### #########  ##   ##
  ##    ## ##     ##    ###
*/
  /*
   ########  ##     ## ##       ##       ########   #######  ##      ## ##    ##
   ##     ## ##     ## ##       ##       ##     ## ##     ## ##  ##  ## ####  ##
   ########  ##     ## ##       ##       ##     ## ##     ## ##  ##  ## ## ## ##
   ##        ##     ## ##       ##       ##     ## ##     ## ##  ##  ## ##  ####
   ##         #######  ######## ######## ########   #######   ###  ###  ##    ##
  */
  /*
   ######           ##    ##    ###    ##     ##
  ##                ####  ##  ##   ##  ##     ##
  ##   #### ####### ## ## ## ##     ## ##     ##
  ##    ##          ##  #### #########  ##   ##
   ######           ##    ## ##     ##    ###
*/
  /*
        ########  ######## ##    ##
        ##     ##    ##    ####  ##
####### ########     ##    ## ## ##
        ##     ##    ##    ##  ####
        ########     ##    ##    ##
*/
}

.appHeader__frame {
  background: #fff;
  box-shadow: 0 0 1rem rgba(0, 0, 0, 0.1);
}

.appHeader__base {
  height: 8rem;
}

.appHeader .headerLogo {
  padding-bottom: 0;
}

.appHeader .headerLogo__img {
  max-width: 6rem;
}

.appHeader .headerLogo__main {
  margin: 0 1.5rem 0 1rem;
  font-size: 3rem;
  font-weight: 700;
}

.appHeader .headerLogo__sub {
  font-size: 1.2rem;
}

.appHeader .headerNav {
  position: relative;
}

.appHeader .headerNav__btn {
  border-left: solid 1px #e6e6e6;
  width: 16rem;
  color: #444;
}

.appHeader .headerNav__btn .icon {
  margin-right: 1.5rem;
  color: #90909b;
}

.appHeader .headerPulldown__head {
  color: #444;
}

.appHeader .headerPulldown__head .icon {
  margin-left: 1rem;
  font-size: 1rem;
  color: #169894;
}

.appHeader .headerPulldown__body {
  padding: 0 1rem;
  width: auto;
  background: #fff;
}

.appHeader .headerPulldown__link {
  padding: 1.5rem 0;
}

.appHeader .gNavBtn {
  margin: 1rem 0;
  width: 6rem;
  height: 6rem;
}

.footerContact {
  padding: 8rem 0 12rem;
  background: #202024 url("../img/footer_contact_bg.png") no-repeat center/cover;
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.footerContact__head {
  line-height: 1.2;
  color: #fff;
}

.footerContact__head--img {
  max-width: 1.7rem;
}

.footerContact__head--en {
  margin-top: 1.5rem;
  font-size: 4.6rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.footerContact__head--ja {
  font-size: 1.8rem;
  font-weight: 700;
}

.footerContact__link {
  margin: 6rem auto 0;
  width: 40rem;
  height: 7.6rem;
}

.footerContact__btn {
  height: 100%;
  font-size: 1.6rem;
  font-weight: 700;
}
.footerNav__item .md-uline::before {
  bottom: -8px;
}

.footer {
  padding: 6rem 0 7.5rem;
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
  */
}

.footer__logo {
  max-width: 16rem;
}

.footer__copy {
  font-size: 1.2rem;
  text-align: right;
  letter-spacing: 0.02em;
}

.footerNav__item {
  margin: 0 1.5rem;
}

.footerNav__item:last-child {
  margin-right: 0;
}

.footerNav__link {
  font-size: 1.6rem;
  font-weight: 700;
  color: #444;
  letter-spacing: 0.02em;
}

.footerBottom {
  margin-top: 2rem;
  text-align: center;
}

.footerBottom__link {
  margin-right: 3rem;
  font-size: 1.2rem;
}

.footerBottom__link a {
  color: #444;
}
.sns {
  margin-top: 2rem ;
}
.sns ul {
  margin-right: -5px;
  justify-content: flex-end;
}

.sns_list {
  width: 40px;
  height: 40px;
  overflow: hidden;
  margin: 0 5px;
}
.sns_list a {
  width: 100%;
  height: 100%;
  display: block;
  overflow: hidden;
  line-height: 100px;
  transition: all 500ms ease;
}
.sns_list .fb {
  background: url(../img/fb_icon.svg) no-repeat;
  background-size: contain;
}
.sns_list .ins {
  background: url(../img/ins_icon.svg) no-repeat;
  background-size: contain;
}
.sns_list .twiter {
  background: url(../img/twiter_icon.svg) no-repeat;
  background-size: contain;
}
.sns_list .ytb {
  background: url(../img/youtube_icon.svg) no-repeat;
  background-size: contain;
}
.sns_list a:hover {
  transform: rotate(360deg);
}
.contents--top {
  padding: 0 0 14rem;
}

.topBanner {
  position: fixed;
  right: 5rem;
  bottom: 12rem;
  z-index: 999;
}

.topBanner__link {
  display: block;
  box-shadow: 0.5rem 0.5rem 4rem rgba(0, 0, 0, 0.16);
}

.topBanner__link .topBannerBox {
  padding: 1.5rem 2.5rem;
  width: 27.5rem;
  background: #ffbc17;
}

.topBanner__link .topBannerBox__text {
  color: #444;
}

.topBanner__link .topBannerBox__text--ttl {
  margin-bottom: 0.5rem;
  font-size: 1.8rem;
  font-weight: bold;
  line-height: 1.5;
}

.topBanner__link .topBannerBox__text--more {
  border-bottom: 2px solid #202024;
  font-size: 1.3rem;
  font-weight: 600;
}

.topBanner__close {
  position: absolute;
  top: -1rem;
  right: -1rem;
  z-index: 2;
  border-radius: 50%;
  width: 3rem;
  height: 3rem;
  background: #202024;
  transition: 0.5s;
  cursor: pointer;
}

.topBanner__close::before,
.topBanner__close::after {
  display: block;
  position: absolute;
  top: calc(50% - 1px);
  left: 0.5rem;
  width: 2rem;
  height: 2px;
  background: #fff;
  transform-origin: center;
  content: "";
}

.topBanner__close::before {
  transform: rotate(45deg);
}

.topBanner__close::after {
  transform: rotate(-45deg);
}

/*
    ##     ## ##     ##
    ###   ### ##     ##
    #### #### ##     ##
    ## ### ## ##     ##
    ##     ##  ##   ##
    ##     ##   ## ##
    ##     ##    ###
*/

.topMv {
  background: url("../img/top_mv_bg.png") no-repeat top left/50vw auto;
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.topMv .topMvSlide {
  position: relative;
  width: 100%;
}

.topMv .topMvSlide__bg {
  width: 100%;
  height: 46.875vw;
  background: #000;
}

.topMv .topMvSlide::after {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  background: #000;
  opacity: 0.42;
  content: "";
}

.topMv .topMvSlide__text {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 3;
  font-weight: 700;
  color: #fff;
  text-align: center;
  letter-spacing: 0.02em;
  white-space: nowrap;
  transform: translate(-50%, -50%);
}

.topMv .topMvSlide__text--main {
  font-size: 5.5rem;
}

.topMv .topMvSlide__text--sub {
  font-size: 2rem;
  color: #de7b16;
}

/*
    ##    ## ######## ##      ##  ######
    ###   ## ##       ##  ##  ## ##    ##
    ####  ## ##       ##  ##  ## ##
    ## ## ## ######   ##  ##  ##  ######
    ##  #### ##       ##  ##  ##       ##
    ##   ### ##       ##  ##  ## ##    ##
    ##    ## ########  ###  ###   ######
*/

.topNews {
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.topNews__container {
  position: relative;
  top: -6rem;
  z-index: 3;
  padding: 2rem 2.5rem;
  font-size: 1.6rem;
  letter-spacing: 0.02em;
  background: #fff;
  box-shadow: 0.5rem 0.5rem 4rem rgba(0, 0, 0, 0.16);
}

.topNews__head {
  flex-shrink: 0;
  font-size: 2.1rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.topNews__head--img {
  margin-right: 0.8rem;
  max-width: 1.7rem;
}

.topNews__list {
  width: 100%;
  flex: 1 0;
  padding: 0 2rem 0 4.5rem;
  max-height: 18rem;
  overflow-y: auto;
}

.topNews__list::-webkit-scrollbar {
  width: 0.6rem;
}

.topNews__list::-webkit-scrollbar-track {
  border-radius: 0.3rem;
  background-color: rgba(220, 227, 235, 0.3);
}

.topNews__list::-webkit-scrollbar-thumb {
  border-radius: 0.3rem;
  background-color: #169894;
}

.topNews__item:not(:last-child) {
  border-bottom: 1px solid #aeb1b0;
}

.topNews__link {
  display: flex;
  padding: 2rem 0;
  color: #444;
  transition: opacity 0.3s ease-in-out;
  /*text-decoration: underline;*/
}

.topNews__link:hover .topNews__ttl {
  color: #169894;
}

.topNews__date {
  margin-right: 2.2rem;
  flex-shrink: 0;
  color: #444;
  font-weight: 600;
}

.topNews__ttl {
  display: inline-block;
  flex: 1 0;
  width: 100%;
  font-weight: 400;
  line-height: 1.8;
  transition: color 0.3s ease-in-out;
}

.topNews__tag {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 1rem;
  min-width: 80px;
  height: 26px;
  padding: 0 5px;
  font-size: 1.4rem;
  font-weight: 200;
  color: #fff;
  background-color: #169894;
}

/*
     ######  ########  ######
    ##    ## ##       ##    ##
    ##       ##       ##
     ######  ######   ##
          ## ##       ##
    ##    ## ##       ##    ##
     ######  ########  ######
*/

.topSec {
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.topSec__head {
  line-height: 1.2;
}

.topSec__head--img {
  max-width: 1.7rem;
}

.topSec__head--en {
  margin-top: 1.5rem;
  font-size: 4.6rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.topSec__head--ja {
  font-size: 1.8rem;
  font-weight: 700;
  margin-top: 1rem;
}

.topSec__intro {
  margin-top: 4rem;
  font-size: 1.8rem;
  line-height: 2;
  text-align: center;
}

/*
     ######  ######## ########  ##     ## ####  ######  ########
    ##    ## ##       ##     ## ##     ##  ##  ##    ## ##
    ##       ##       ##     ## ##     ##  ##  ##       ##
     ######  ######   ########  ##     ##  ##  ##       ######
          ## ##       ##   ##    ##   ##   ##  ##       ##
    ##    ## ##       ##    ##    ## ##    ##  ##    ## ##
     ######  ######## ##     ##    ###    ####  ######  ########
*/

.topService {
  padding: 5.5rem 0 0;
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

/*
               ###    ########   ########
              ## ##   ##     ##  ##     ##
             ##   ##  ##     ##  ##     ##
    ####### ##     ## ########   ########
            ######### ##         ##
            ##     ## ##         ##
            ##     ## ##         ##
*/

.topApp {
  z-index: 9;
  margin-top: 4rem;
  padding: 4rem 0;
  min-width: 120rem;
  color: #fff;
  background: url(../img/top_app_bg.png) no-repeat center left/auto 100%,
    linear-gradient(
      to right,
      #169894 calc((100vw - 120rem) / 2 + 120rem),
      #169894 calc((100vw - 120rem) / 2 + 120.1rem),
      transparent calc((100vw - 120rem) / 2 + 120.1rem),
      transparent
    );
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.topApp__ttl {
  font-weight: 700;
}

.topApp__ttl--main {
  font-size: 5.1rem;
  letter-spacing: 0.065em;
}

.topApp__ttl--sub {
  margin-left: 3.4rem;
  font-size: 1.6rem;
}

.topApp__summary {
  margin-top: 5rem;
  font-size: 1.8rem;
  line-height: 2;
}

.topApp__link {
  margin-top: 4.5rem;
  width: 22rem;
}

.topApp__btn {
  height: 6.4rem;
  font-size: 1.6rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}
.topApp__btn:hover .icon {
  color: #169894;
}

.topApp__btn .icon {
  color: #fff;
}

.topApp__img {
  margin-left: 5rem;
  max-width: 65rem;
}

/*
            ##       ####  ######  ########
            ##        ##  ##    ##    ##
            ##        ##  ##          ##
    ####### ##        ##   ######     ##
            ##        ##        ##    ##
            ##        ##  ##    ##    ##
            ######## ####  ######     ##
*/

.topServiceList {
  position: relative;
  top: -9rem;
  z-index: -1;
  padding: 24rem 0 15.5rem;
  background: url("../img/top_servce_bg.png") no-repeat center/cover,
    linear-gradient(to right, #f8f6fe, #dce3eb);
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.topServiceList__item:not(:first-child) {
  margin-top: 4rem;
}

.topServiceList__text {
  width: calc(50% - 14rem);
}

.topServiceList__num {
  font-size: 1.8rem;
  font-weight: 600;
  color: #de7b16;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.topServiceList__num--img {
  margin-right: 1rem;
  max-width: 1.7rem;
}

.topServiceList__ttl {
  margin-top: 2rem;
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.4;
}

.topServiceList__dtl {
  margin-top: 3rem;
  font-size: 1.6rem;
  line-height: 2;
}

.topServiceList__img {
  width: 50%;
}

/*
    ##       #### ##    ## ##    ##  ######
    ##        ##  ###   ## ##   ##  ##    ##
    ##        ##  ####  ## ##  ##   ##
    ##        ##  ## ## ## #####     ######
    ##        ##  ##  #### ##  ##         ##
    ##        ##  ##   ### ##   ##  ##    ##
    ######## #### ##    ## ##    ##  ######
*/

.topLinks {
  padding: 12.4rem 0 15.6rem;
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.topLinks__item {
  width: calc((100% - 4rem) / 2);
}

.topLinks__item:not(:nth-child(2n + 1)) {
  margin-left: 4rem;
}

.topLinks__item:nth-child(n + 3) {
  margin-top: 6rem;
}

.topLinks__link {
  z-index: 1;
}

.topLinks__text {
  position: relative;
  top: -4rem;
  z-index: 1;
  color: #fff;
}

.topLinks__text--en {
  padding: 0 1rem;
  font-size: 4.6rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: #169894;
}

.topLinks__text--ja {
  padding: 0 1rem;
  font-size: 1.8rem;
  font-weight: 700;
  background: #169894;
}

/*
    ##      ##  #######  ########  ##    ##  ######
    ##  ##  ## ##     ## ##     ## ##   ##  ##    ##
    ##  ##  ## ##     ## ##     ## ##  ##   ##
    ##  ##  ## ##     ## ########  #####     ######
    ##  ##  ## ##     ## ##   ##   ##  ##         ##
    ##  ##  ## ##     ## ##    ##  ##   ##  ##    ##
     ###  ###   #######  ##     ## ##    ##  ######
*/

.topWorks {
  padding: 8rem 0 9.5rem;
  background: linear-gradient(
    to left,
    #169894 90vw,
    #169894 90.1vw,
    transparent 90.1vw,
    transparent
  );
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.topWorks__head {
  color: #fff;
}

.topWorks__more {
  text-align: center;
}

.topWorks__link {
  display: inline-block;
  position: relative;
  font-size: 2rem;
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.04em;
}

.topWorks__link::after {
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: #fff;
  content: "";
}

.topWorks .topWorksSlide {
  padding: 9rem 0;
}

.topWorks .topWorksSlide__item {
  width: 37.2rem;
  overflow: inherit;
}

.topWorks .topWorksSlide__item.swiper-slide {
  height: auto;
}

.topWorks .topWorksSlide__link {
  display: block;
  z-index: 1;
  height: 100%;
  background: #fff;
  box-shadow: 0.5rem 0.5rem 4rem rgba(0, 0, 0, 0.16);
}

.topWorks .topWorksSlide__num {
  position: absolute;
  top: -3.4rem;
  left: 3rem;
  z-index: 9;
  font-size: 3.6rem;
  font-weight: 700;
  color: #ffbc17;
  letter-spacing: 0.04em;
}

.topWorks .topWorksSlide__num .poppins {
  font-weight: 600;
}

.topWorks .topWorksSlide__img {
  z-index: 1;
}

.topWorks .topWorksSlide__text {
  padding: 3rem;
}

.topWorks .topWorksSlide__ttl {
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.7;
  color: #444;
}

.topWorks .topWorksSlide__name {
  font-size: 1.3rem;
  color: #de7b16;
}

.works__container {
  margin-top: 5rem;
}

/*
    #### ######## ######## ##     ##
     ##     ##    ##       ###   ###
     ##     ##    ##       #### ####
     ##     ##    ######   ## ### ##
     ##     ##    ##       ##     ##
     ##     ##    ##       ##     ##
    ####    ##    ######## ##     ##
*/

.worksItem {
  position: relative;
  margin-top: 4rem;
  padding: 5rem;
  background: #fff;
  box-shadow: 0.5rem 0.5rem 4rem rgba(0, 0, 0, 0.16);
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.worksItem__img {
  padding: 0 1.5rem 0 3.5rem;
  width: calc(100% - 36.6% - 5rem - 4rem);
}

.worksItem__img .worksItemImg {
  position: relative;
  z-index: 1;
}

.worksItem__img .worksItemImg__item img {
  border: solid 1px #ccc;
  width: calc(100% - 2px);
}

.worksItem__img .worksItemImg__btn {
  z-index: 2;
  width: 5rem;
  height: 5rem;
  font-size: 1.3rem;
  color: #fff;
  background: #169894;
}

.worksItem__img .worksItemImg__btn::after {
  content: none;
}

.worksItem__img .worksItemImg__btn.swiper-button-disabled {
  opacity: 1;
}

.worksItem__img .worksItemImg__btn.swiper-button-disabled::after {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.65);
  content: "";
}

.worksItem__img .worksItemImg__btn.swiper-button-prev {
  left: -6rem;
}

.worksItem__img .worksItemImg__btn.swiper-button-next {
  right: -6rem;
}

.worksItem__img .worksItemThumb {
  margin-top: 2rem;
}

.worksItem__img .worksItemThumb__item {
  position: relative;
  margin: 0 0.6rem;
  border: solid 3px transparent;
  width: 8rem;
  height: 5rem;
  cursor: pointer;
}

.worksItem__img .worksItemThumb__item::before {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  content: "";
}

.worksItem__img .worksItemThumb__item.swiper-slide-thumb-active {
  border: solid 3px #169894;
}

.worksItem__img .worksItemThumb__item.swiper-slide-thumb-active::before {
  content: none;
}

.worksItem__text {
  z-index: 1;
  margin: 0 0 0 5rem;
  width: 36.6%;
}

.worksItem__num {
  font-size: 2.4rem;
  font-weight: 700;
  color: #90909b;
  letter-spacing: 0.065em;
}

.worksItem__ttl {
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.7;
}

.worksItem__name {
  font-size: 1.6rem;
  font-weight: 700;
  color: #de7b16;
}

.worksItem__summary {
  margin: 2rem 0;
  font-size: 1.6rem;
  line-height: 2;
}

/*
     ######  ########    ###
    ##    ##    ##      ## ##
    ##          ##     ##   ##
    ##          ##    ##     ##
    ##          ##    #########
    ##    ##    ##    ##     ##
     ######     ##    ##     ##
*/

.worksCta {
  margin-top: 10rem;
  padding: 7rem 0 9rem;
  background: #169894 url("../img/works_cta_bg.png") no-repeat center/cover;
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.worksCta__text {
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.5;
  color: #fff;
  text-align: center;
  font-size: 2rem;
  font-weight: 400;
  /* line-height: 1.5; */
  color: #fff;
  text-align: center;
}

.worksCta__link {
  margin-top: 5rem;
}

.worksCta__btn {
  width: 40rem;
  height: 11rem;
  font-size: 2rem;
  font-weight: 700;
}

.worksCta__btn--text {
  position: relative;
  left: -2rem;
}

.worksCta__btn .em {
  margin-right: 3rem;
  padding: 0.3rem 1.5rem;
  border-radius: 2rem;
  font-size: 1.8rem;
  color: #169894;
  background: #fff;
  transition: 0.3s;
}

.worksCta__btn:hover .em {
  color: #fff;
  background: #169894;
}

.worksCta__btn:not(:first-child) {
  margin-left: 5rem;
}

.privacy_policy .inner {
  margin-right: auto;
  margin-left: auto;
  width: 80%;
}

.privacy_policy .inner h3 {
  margin-bottom: 0.5rem;
  font-weight: bold;
}

.privacy_policy .inner ul {
  margin-bottom: 3rem;
}

.privacy_policy .inner p {
  margin-bottom: 2rem;
  padding-left: 1em;
}

.privacy_policy .inner li {
  padding-left: 2em;
  text-indent: -1em;
}

/*
    ##    ##    ###    ##     ##
    ###   ##   ## ##   ##     ##
    ####  ##  ##   ##  ##     ##
    ## ## ## ##     ## ##     ##
    ##  #### #########  ##   ##
    ##   ### ##     ##   ## ##
    ##    ## ##     ##    ###
*/

.priceNav {
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.priceNav__item {
  width: 28rem;
}

.priceNav__item:not(:first-child) {
  margin-left: 2rem;
}

.priceNav__link {
  padding: 2rem 3rem;
  border: solid 2px #e4e4e9;
  font-size: 1.8rem;
  font-weight: 700;
  color: #444;
}

.priceNav__link--text {
  margin-left: 2rem;
}

.priceNav__link--icon {
  margin: 0 0 0 auto;
  font-size: 1rem;
  color: #90909b;
  transition: 0.5s;
}

.priceNav__link:hover .priceNav__link--icon {
  transform: translateY(0.5rem);
}

/*
    ########  ##          ###    ##    ##
    ##     ## ##         ## ##   ###   ##
    ##     ## ##        ##   ##  ####  ##
    ########  ##       ##     ## ## ## ##
    ##        ##       ######### ##  ####
    ##        ##       ##     ## ##   ###
    ##        ######## ##     ## ##    ##
*/

.pricePlan {
  padding: 7.7rem 0;
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
  */
}

.pricePlan--sensor {
  padding: 6rem 0 15rem;
  background: #f0f0f0;
  padding: 6rem 0 15rem;
  background: #f0f0f0;
}

.pricePlan--ex {
  padding: 6rem 0 15rem;
  background: #ecfaee;
  padding: 6rem 0 15rem;
  background: #e8f4f6;
}

.pricePlan__head {
  font-size: 2.4rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.065em;
}

.pricePlan__head .desc {
  font-size: 1.8rem;
  font-weight: 500;
}

.pricePlan__list {
  margin-top: 2.4rem;
}

.pricePlan__note {
  margin: 0.5rem 0 0;
  font-size: 1.4rem;
  line-height: 1.7;
  text-align: right;
  letter-spacing: 0.065em;
}

.pricePlan .pricePlanItemHead {
  width: 12.5rem;
  font-size: 1.6rem;
  color: #fff;
}

.pricePlan .pricePlanItemHead .pricePlanHead {
  border-right: solid 1px #a0a0a8;
  height: 20rem;
  background: transparent;
}

.pricePlan .pricePlanItemHead .pricePlanItem__ticket {
  border-right: solid 1px #202024;
  background: #202024;
}

.pricePlan .pricePlanItemHead .pricePlanItem__ticket i {
  font-style: normal;
  font-size: 1.2rem;
  margin-left: 4px;
}

.pricePlan .pricePlanItemHead .pricePlanItem__price {
  border-right: solid 1px #202024;
  height: calc(100% - 10rem - 6rem);
  color: #fff;
  background: #202024;
}
.table_ttl {
  font-size: 2rem;
  height: 4rem;
  color: #fff;
  background-color: #2F4858;
  margin-top: 60px;
  text-align: center;
  font-weight: 600;
}
.pricePlan .pricePlanItemHead--ex .pricePlanHead {
  height: 19rem;
}
.pricePlan .pricePlanItemHead--ex .pricePlanHead__ttl {
  background: #202024;
  border-bottom: solid 1px #a0a0a8;
  font-size: 1.6rem;
}
.pricePlan .pricePlanItemHead--ex .pricePlanHead__plan {
  height: 13rem; 
}
.pricePlan .pricePlanItemHead--ex .pricePlanHead__ttlfee {
  height: 52rem; 
}
.pricePlan .pricePlanItemHead--ex .pricePlanHead__sensor {
  height: 9rem; 
}

.pricePlan .pricePlanItem {
  width: calc((100% - 12.5rem) / 4);
  text-align: center;
  background: #fff;
}

.pricePlan .pricePlanItem .pricePlanHead {
  letter-spacing: 0.065em;
}

.pricePlan .pricePlanItem .pricePlanHead__ttl {
  height: 4rem;
  font-size: 2rem;
  font-weight: 700;
  color: #fff;
}

.pricePlan .pricePlanItem .number {
  font-size: 2.3rem;
}
.pricePlan .pricePlanItem .number i {
  font-style: normal;
  font-size: 1.2rem;
  margin-left: 4px;
  color: #f16232;
}
.pricePlan .pricePlanItem__fee {
  border-right: solid 1px #a0a0a8;
  border-bottom: solid 1px #a0a0a8;
  height: 4rem;
}
.pricePlan .pricePlanItem__fee.pricePlanitem__txtsensor {
  height: 9rem;
}
.pricePlan .pricePlanItem__fee.bg__grey {
  background: #90909b;
}
.pricePlan .pricePlanItem .bg__grey span {
  color: #fff;
  width: 100%;
}

.pricePlan .pricePlanItem .pricePlanHead__ttl--small {
  background: #cab9fc;
}
.pricePlan .pricePlanItem .pricePlanHead__ttl--forth {
  background: #346272;
}
.pricePlan .pricePlanItem .pricePlanHead__ttl--third {
  background: #3A7D88;
}
.pricePlan .pricePlanItem .pricePlanHead__ttl--sec {
  background: #47999A;
}
.pricePlan .pricePlanItem .pricePlanHead__ttl--first {
  background: #5EB5A6;
}
.pricePlan .pricePlanItem .pricePlanHead__ttl--basic {
  background: #b1b3f5;
}

.pricePlan .pricePlanItem .pricePlanHead__ttl--biz50 {
  background: #91aced;
}

.pricePlan .pricePlanItem .pricePlanHead__ttl--biz100 {
  background: #6da4e3;
}

.pricePlan .pricePlanItem .pricePlanHead__catch {
  padding: 1.5rem 0;
  border-right: solid 1px #a0a0a8;
  border-bottom: solid 1px #a0a0a8;
  height: 12rem;
  font-size: 1.4rem;
  line-height: 1.5;
}
.pricePlan .pricePlanItem .pricePlanHead__catch.pricePlanitem__txt{
  height: 9rem;
}
.pricePlan .pricePlanItem .pricePlanHead__btn {
  width: 14rem;
  height: 4rem;
}

.pricePlan .pricePlanItem__ticket {
  border-right: solid 1px #a0a0a8;
  border-bottom: solid 1px #a0a0a8;
  height: 6rem;
  font-size: 2rem;
}

.pricePlan .pricePlanItem__price {
  padding: 0 2rem;
  border-right: solid 1px #a0a0a8;
  border-bottom: solid 1px #a0a0a8;
  font-size: 1.8rem;
  font-weight: 700;
  color: #169894;
}

.pricePlan .pricePlanItem__price--month,
.pricePlan .pricePlanItem__price--year {
  padding: 1.5rem 0;
}

.pricePlan .pricePlanItem__price--month {
  border-bottom: solid 1px #eeeeee;
  height: 7rem;
}

.pricePlan .pricePlanItem__price--year {
  -ms-flex: auto;
  flex: auto;
}

.pricePlan .pricePlanItem__price .num {
  font-size: 2.8rem;
}

.pricePlan .pricePlanItem__price .per {
  color: #444;
  font-size: 1.6rem;
  font-weight: normal;
}

.pricePlan .pricePlanItem__price .note {
  margin-top: 0.5rem;
  font-size: 1.6rem;
  font-weight: 400;
  color: #444;
}

.pricePlan .pricePlanItem__price--bar {
  display: block;
  width: 4.2rem;
  height: 1px;
  background: #707070;
}

.pricePlan .pricePlanItem--ex {
  width: calc((100% - 12.5rem) / 3);
}

.pricePlan .pricePlanItem--ex .pricePlanHead__ttl--group200 {
  background: #f1b132;
}

.pricePlan .pricePlanItem--ex .pricePlanHead__ttl--service20 {
  background: #f18a32;
}

.pricePlan .pricePlanItem--ex .pricePlanHead__ttl--service50 {
  background: #f37145;
}

.pricePlan .pricePlanItem--ex .pricePlanHead__catch {
  height: 15rem;
}

.pricePlan .pricePlanItem--ex .pricePlanHead__btn {
  width: 14rem;
  height: 4rem;
}

.pricePlan .pricePlanPrice {
  border-bottom: solid 1px #a0a0a8;
  height: 8rem;
  background: #fff;
}

.pricePlan .pricePlanPrice__head {
  width: 12.5rem;
  font-size: 1.6rem;
  color: #fff;
  text-align: center;
  background: #202024;
}

.pricePlan .pricePlanPrice__item {
  border-right: solid 1px #a0a0a8;
  width: calc(100% - 12.5rem);
  letter-spacing: 0.065em;
}

.pricePlan .pricePlanFunc {
  background: #fff;
}

.pricePlan .pricePlanFunc__head {
  width: 12.5rem;
  font-size: 1.6rem;
  color: #fff;
  text-align: center;
  background: #202024;
}

.pricePlan .pricePlanFunc__item {
  border-right: solid 1px #a0a0a8;
  border-bottom: solid 1px #a0a0a8;
  width: calc(100% - 12.5rem);
  letter-spacing: 0.065em;
}

.pricePlan .pricePlanFunc__ttl {
  font-size: 1.6rem;
  color: #fff;
  background: #90909b;
}

.pricePlan .pricePlanFunc__dtl {
  padding: 1rem 0;
  border-bottom: solid 1px #a0a0a8;
  font-size: 1.4rem;
}

.pricePlan .pricePlanFunc .pricePlanFuncList {
  padding: 1rem 4.5rem;
}

.pricePlan .pricePlanFunc .pricePlanFuncList__item:not(:first-child) {
  margin-top: 1rem;
}

.pricePlan .pricePlanFunc .pricePlanFuncList__icon {
  font-size: 1.8rem;
  color: #169894;
}

.pricePlan .pricePlanFunc .pricePlanFuncList__ttl {
  margin-left: 1.8rem;
  width: 20rem;
}

.pricePlan .pricePlanFunc .pricePlanFuncList__ttl i {
  font-style: normal;
  font-size: 1.0rem;
  margin-left: 0px;
  color: #f16232;
}

.pricePlan .pricePlanFunc__size--item {
  padding: 1rem 0;
  width: calc(100% / 4);
}

.pricePlan .pricePlanFunc__size--item:not(:first-child) {
  border-left: solid 1px #a0a0a8;
}

.pricePlan .pricePlanFunc__size--ex .pricePlanFunc__size--item {
  width: calc(100% / 3);
}

.pricePlan .pricePlanExFunc {
  background: #fff;
}

.pricePlan .pricePlanExFunc__head {
  border-top: solid 1px #a0a0a8;
  width: 12.5rem;
  font-size: 1.6rem;
  color: #fff;
  text-align: center;
  background: #202024;
}

.pricePlan .pricePlanExFunc__item {
  border-right: solid 1px #a0a0a8;
  border-bottom: solid 1px #a0a0a8;
  width: calc(100% - 12.5rem);
  letter-spacing: 0.065em;
}

.pricePlan .pricePlanExFunc__dtl {
  padding: 1rem 0;
  border-bottom: solid 1px #a0a0a8;
  font-size: 1.4rem;
}

.pricePlan .pricePlanExFunc__icon {
  margin-right: 1.7rem;
  font-size: 1.8rem;
  color: #f16232;
}

.pricePlan .pricePlanExFunc .pricePlanExFuncList {
  padding: 1rem 4.5rem;
}

.pricePlan .pricePlanExFunc .pricePlanExFuncList__item:not(:first-child) {
  margin-top: 1rem;
}

.pricePlan .pricePlanExFunc .pricePlanExFuncDtl {
  font-size: 1.4rem;
  letter-spacing: 0.065em;
}

.pricePlan .pricePlanExFunc .pricePlanExFuncDtl__item {
  width: calc(100% / 3 * 2);
}

.pricePlan .pricePlanExFunc .pricePlanExFuncDtl__item:first-child {
  border-right: solid 1px #a0a0a8;
  width: calc(100% / 3);
}

.pricePlan .pricePlanExFunc .pricePlanExFuncDtl__bar {
  display: block;
  width: 4.2rem;
  height: 1px;
  background: #707070;
}

.pricePlan .pricePlanExFunc .pricePlanExFuncDtl__subitem {
  padding: 1.2rem 1.5rem;
}

.pricePlan .pricePlanExFunc .pricePlanExFuncDtl__subitem:not(:last-child) {
  border-bottom: solid 1px #a0a0a8;
}

.pricePlan .pricePlanExFunc .pricePlanExFuncDtl__subitem--wrapper {
  padding: 0;
}

.pricePlan .pricePlanExFunc .pricePlanExFuncDtl__subitem--item {
  padding: 1.2rem 1.5rem;
  width: 50%;
}

.pricePlan .pricePlanExFunc .pricePlanExFuncDtl__subitem--item:first-child {
  border-right: solid 1px #a0a0a8;
}

.pricePlan .pricePlanExFunc .pricePlanExFuncDtl__list--item {
  padding: 1.2rem 1.5rem;
}

.pricePlan .pricePlanCta {
  margin-top: 6rem;
  text-align: center;
}

.pricePlan .pricePlanCta__text {
  font-size: 2.3rem;
}

.pricePlan .pricePlanCta__btn {
  margin: 2.2rem auto 0;
  width: 65rem;
  height: 9rem;
  font-size: 2.7rem;
  font-weight: 700;
}

.pricePlan .pricePlanCta__btn .icon {
  font-size: 2rem;
}

/*
     ######   #######  ##     ## ########     ###    ########  ########
    ##    ## ##     ## ###   ### ##     ##   ## ##   ##     ## ##
    ##       ##     ## #### #### ##     ##  ##   ##  ##     ## ##
    ##       ##     ## ## ### ## ########  ##     ## ########  ######
    ##       ##     ## ##     ## ##        ######### ##   ##   ##
    ##    ## ##     ## ##     ## ##        ##     ## ##    ##  ##
     ######   #######  ##     ## ##        ##     ## ##     ## ########
*/

.priceCompare {
  padding: 4rem 0 8rem;
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
  */
}

.priceCompare__head {
  padding-bottom: 2rem;
  border-bottom: solid 1px #a0a0a8;
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.2;
}

.priceCompare .priceCompareTbl {
  margin-top: 5.5rem;
}

.priceCompare .priceCompareTbl .priceCompareTblHead {
  border-bottom: solid 1px #a0a0a8;
}

.priceCompare .priceCompareTbl .priceCompareTblHead__ttl {
  padding: 1rem 0;
  border-right: solid 1px #e2e2e2;
  font-size: 1.8rem;
  font-weight: 700;
}

.priceCompare .priceCompareTbl .priceCompareTblHead__ttl--name {
  border-top: solid 1px #e2e2e2;
  font-size: 1.6rem;
  text-align: center;
}

.priceCompare .priceCompareTbl .priceCompareTblHead__link {
  font-size: 1.4rem;
}

.priceCompare .priceCompareTbl .priceCompareTblBody {
  font-size: 1.6rem;
}

.priceCompare .priceCompareTbl .priceCompareTblBody__head {
  padding: 6.5rem 0 1.5rem;
  border-bottom: solid 1px #a0a0a8;
  font-size: 1.8rem;
  font-weight: 700;
}

.priceCompare .priceCompareTbl .priceCompareTblBody__ttl {
  padding: 2rem 0;
  border-right: solid 1px #e2e2e2;
  border-bottom: solid 1px #e2e2e2;
}

.priceCompare .priceCompareTbl .priceCompareTblBody__check {
  border-right: solid 1px #e2e2e2;
  border-bottom: solid 1px #e2e2e2;
  font-size: 1.4rem;
  color: #169894;
  text-align: center;
}

.priceCompare .priceCompareTbl .priceCompareTblBody .note {
  font-size: 1.4rem;
  color: #169894;
}

/*
    ########  #### ########
    ##     ##  ##       ##
    ##     ##  ##      ##
    ########   ##     ##
    ##     ##  ##    ##
    ##     ##  ##   ##
    ########  #### ########
*/

.priceBiz {
  padding: 8rem 0 12rem;
  background: #169894;
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
  */
}

.priceBiz__head {
  padding-bottom: 2rem;
  border-bottom: solid 1px #fff;
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.2;
  color: #fff;
}

.priceBiz__container {
  margin-top: 3rem;
  padding: 5rem;
  background: #fff;
}

.priceBiz__text {
  padding-right: 5rem;
  border-right: solid 1px #e2e2e2;
  width: calc(100% / 3);
}

.priceBiz__function {
  padding-left: 5rem;
  width: calc(100% / 3);
}

.priceBiz__ttl {
  font-size: 1.8rem;
  font-weight: 700;
}

.priceBiz__list {
  margin-top: 1rem;
}

.priceBiz__item {
  font-size: 1.6rem;
  line-height: 2;
  letter-spacing: 0.065em;
}

.priceBiz__item .icon {
  color: #169894;
}

.Nav__item {
  margin: 0 2rem 1.5rem 0;
  padding: 0 1rem;
  border-bottom: solid 1px #169894;
  font-size: 1.5rem;
}

.manualNav__item .icon {
  margin-left: 1rem;
  font-size: 1.2rem;
}

.manualTtl {
  margin-top: 4rem;
  padding-bottom: 1.6rem;
  font-size: 2rem;
  font-weight: 700;
}

tbody {
  border: 1px solid #a0a0a8;
}
.manualHead {
  border-bottom: solid 1px #a0a0a8;
  background: #767171;
  color: white;
}

.manualHead__item {
  font-size: 1.4rem;
  /* color: #444; */
  font-weight: bold;
  text-align: center;
}
.manualHead__item, .manualItem__item {
  border-right: solid 1px #a0a0a8;
}
.manualHead__item:last-child, .manualItem__item:last-child {
  border-right: 0;
}

.manualHead__item:first-child {
  padding-left: 2rem;
}

.manualHead__item:last-child {
  text-align: center;
}

.manualHead__ttl {
  width: 10rem;
  text-align: center;
}

.manualHead__html,
.manualHead__pdf,
.manualHead__url {
  text-align: center;
}

.manualHead__html {
  width: 6rem;
}

.manualHead__pdf {
  width: 6rem;
}

.manualHead__url {
  position: relative;
  width: 6rem;
}

.manualItem {
  border-bottom: solid 1px #a0a0a8;
  background: #fff;
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
  */
}

/* .manualItem:nth-of-type(2n) {
  background: rgba(220, 227, 235, 0.3);
} */

.manualItem__item {
  padding: 0.5rem 0.5rem;
  font-size: 1.4rem;
}

.manualItem__num {
  width: 4rem;
  text-align: right;
  font-weight: bold;
}

.manualItem__ttl {
  width: 14rem;
  font-weight: bold;
}
.manualItem__dtl {
  width: 50rem;
  font-size: 1.4rem;
}

.manualItem__html {
  width: 6rem;
  text-align: center;
}

.manualItem__pdf {
  /* width: 13rem; */
  text-align: center;
  font-size: 1.0rem;
}

.manualItem__pdf--icon {
  /* width: 2rem; */
}

.manualItem__url {
  position: relative;
  vertical-align: middle;
  font-size: 1.0rem;
}

.manualItem__url--btn {
  cursor: pointer;
  display: inline-block;
  font-size: 1.0rem;
}

.manualItem__url--icon {
  width: 2rem;
}

.manualItem__url--text {
  width: 0;
  height: 0;
  overflow: hidden;
}

@keyframes tooltips-horz {
  to {
    /* opacity: .9; */
    transform: translate(0, -50%);
  }
}
@keyframes tooltips-ver {
  to {
    transform: translateY(-4px);
  }
}
.manualItem__url--btn {
  position: absolute;
  top:5%;
  transform: translateX(-50%);
  left: 50%;
}
.manualItem__url--btn:before,
.manualItem__url--btn:after {
  text-transform: none;
  font-size: 0.9em;
  line-height: 1;
  user-select: none;
  pointer-events: none;
  position: absolute;
  visibility: hidden;
  backface-visibility: hidden;
  opacity: 0;
}
.manualItem__url--btn:before {
  content: "";
  border: 5px solid transparent; /* opinion 4 */
  z-index: 1001; /* absurdity 1 */
  width: 5px;
  height: 5px;
  /* border-bottom: 5px solid #169894;
  left: 0;
  top: 0; */
  border-left: 5px solid #169894;
  top: 50%;
  right: calc(100% + 1px);
  transform: translate(-0.5em, -50%);
}
.manualItem__url--btn:after {
  content: "Let's copy";
  text-align: center;
  min-width: 3em;
  max-width: 21em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding: 0.4em;
  background-color: #169894;
  color: #fff;
  z-index: 1000;
  border-radius: 0.4rem;
  top: 50%;
  right: calc(100% + 10px);
  transform: translate(-0.5em, -50%);
}
.manualItem__url--btn.active:before {
  border-left-color: rgba(22, 152, 148, 0.8);
}
.manualItem__url--btn.active:after {
  content: "リンクコピー!";
  background-color: rgba(22, 152, 148, 0.8);
}

.manualItem__url--btn:hover:before,
.manualItem__url--btn:hover:after {
  visibility: visible;
  backface-visibility: visible;
  opacity: 1;
  animation: tooltips-horz 0.4s ease-out forwards;
}

.manualItem__link {
  font-weight: 700;
}

.manualItem__link--construction {
  color: #999;
  pointer-events: none;
}

/*
    ##    ##    ###    ##     ##
    ###   ##   ## ##   ##     ##
    ####  ##  ##   ##  ##     ##
    ## ## ## ##     ## ##     ##
    ##  #### #########  ##   ##
    ##   ### ##     ##   ## ##
    ##    ## ##     ##    ###
*/

.faqNav {
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.faqNav__item {
  padding: 0 3.5rem;
  width: 30rem;
}

.faqNav__link {
  padding: 1rem 0;
  border-bottom: solid 2px #202024;
  font-size: 1.8rem;
  font-weight: 700;
  color: #444;
}

/*
    #### ######## ######## ##     ##
     ##     ##    ##       ###   ###
     ##     ##    ##       #### ####
     ##     ##    ######   ## ### ##
     ##     ##    ##       ##     ##
     ##     ##    ##       ##     ##
    ####    ##    ######## ##     ##
*/

.faqItem {
  margin-top: 3rem;
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.faqItem__head {
  padding-bottom: 2rem;
  border-bottom: solid 1px #202024;
  font-size: 3rem;
  font-weight: 700;
  margin-bottom: 2rem;
  margin-top: 5rem;
}

.faqItem__head--img {
  margin-left: 1rem;
  width: 1.7rem;
}
.faqItem dl {
  margin-top: 20px;
}
.faqItem dl dt {
  position: relative;
  padding: 20px 40px;
  font-size: 1.8rem;
  line-height: 1.44;
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  transition: all 0.3s;
  color: #fff;
  cursor: pointer;
  background-color: #169894;
}
.faqItem__url--btn {
  position: absolute;
    top: 18px;
    right: 18px;
}
.faqItem__url--btn:before {
  content: "";
  border: 5px solid transparent;
  z-index: 1001;
  width: 5px;
  height: 5px;
  border-left: 5px solid #169894;
  top: 50%;
  right: calc(100% + 1px);
  transform: translate(-0.5em, -50%);
}
.faqItem__url--btn:before, .faqItem__url--btn:after {
  text-transform: none;
  font-size: 0.9em;
  line-height: 1;
  user-select: none;
  pointer-events: none;
  position: absolute;
  visibility: hidden;
  backface-visibility: hidden;
  opacity: 0;
}
.faqItem__url--btn:after {
  content: "Let's copy";
  text-align: center;
  min-width: 3em;
  max-width: 21em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding: 0.4em;
  background-color: #169894;
  color: #fff;
  z-index: 1000;
  border-radius: 0.4rem;
  top: 50%;
  right: calc(100% + 10px);
  transform: translate(-0.5em, -50%);
}

.faqItem__url--btn:hover:after {
  visibility: visible;
  backface-visibility: visible;
  opacity: 1;
  animation: tooltips-horz 0.4s ease-out forwards;
}

.faqItem__url--btn.active:before {
  border-left-color: rgba(22, 152, 148, 0.8);
}
.faqItem__url--btn.active:after {
  content: "リンクコピー!";
  background-color: rgba(22, 152, 148, 0.8);
}

.faqItem__url--btn {
  cursor: pointer;
  display: inline-block;
}
.faqItem dl dt:before {
  display: block;
  position: absolute;
  content: "Q";
  top: 22px;
  left: 12px;
  color: #fff;
  font-size: 2rem;
  line-height: 1;
  font-family: "Noto Sans JP", serif;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}

.faqItem dl .acc-icon {
  position: absolute;
  right: 20px;
  top: 0;
  bottom: 0;
  margin: auto 0;
  width: 18px;
  height: 18px;
}
.faqItem dl .acc-icon:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  margin: auto 0;
  width: 18px;
  height: 2px;
  background-color: #fff;
}
.faqItem dl .acc-icon:after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  margin: 0 auto;
  width: 2px;
  height: 18px;
  background-color: #fff;
  -webkit-transition: transform 0.5s ease;
  -moz-transition: transform 0.5s ease;
  transition: transform 0.5s ease;
}
.faqItem input {
  position: absolute;
  z-index: -1;
  overflow: hidden;
  backface-visibility: hidden;
  opacity: 0;
}
.faqItem dl dt.open .acc-icon:after {
  transform: rotate(90deg);
}
.faqItem dl dd {
  position: relative;
  background-color: #e8f4f6;
  height: 0;
  overflow: hidden;
  -webkit-transition: all 0.5s ease;
  -moz-transition: all 0.5s ease;
  transition: all 0.5s ease;
}
.faqItem dl dd a {
  display: block;
  color: #169894;
}
.faqItem dl dd .txt {
  padding: 20px 60px 20px 40px;
  position: relative;
}
.faqItem dl dd .txt:before {
  display: block;
  position: absolute;
  content: "A";
  top: 22px;
  left: 12px;
  font-size: 2rem;
  line-height: 1;
  font-family: "Noto Sans JP", serif;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
.contactHead {
  height: 38rem;
  font-size: 2rem;
  font-weight: 700;
  background: url("../img/pageHead_bg.png") no-repeat center/cover;
}

.contactHead__img {
  margin-right: 3rem;
  width: 16rem;
}

.contactBody {
  padding: 4rem 0 10rem;
  background: url("../img/contact_bg.png") no-repeat center/cover;
}

#crmWebToEntityForm {
  text-align: left;
}

#crmWebToEntityForm.zcwf_lblLeft {
  box-sizing: border-box;
  margin: 0 auto;
  padding: 25px;
  width: 100%;
}

#crmWebToEntityForm.zcwf_lblLeft * {
  box-sizing: border-box;
}

#crmWebToEntityForm * {
  direction: ltr;
}

.zcwf_lblLeft .zcwf_title {
  margin: 0 0 5rem;
  font-size: 2rem;
  font-weight: 700;
  text-align: center;
}

.zcwf_lblLeft .zcwf_row {
  display: -ms-flexbox;
  display: flex;
  margin: 2rem auto;
  width: 64rem;
}

.zcwf_lblLeft .zcwf_row.submitRow {
  width: 100%;
}

.zcwf_lblLeft .zcwf_col_fld {
  position: relative;
  float: left;
  margin-top: 5px;
  padding: 0px 6px 0px;
  width: 68%;
}

.zcwf_lblLeft .zcwf_col_fld input[type="text"],
.zcwf_lblLeft .zcwf_col_fld select,
.zcwf_lblLeft .zcwf_col_fld textarea {
  float: left;
  padding: 0.5rem;
  border: 1px solid #a0a0a8 !important;
  border-radius: 0.4rem;
  width: 100%;
  background: #fff;
  resize: vertical;
}

.zcwf_lblLeft .zcwf_col_fld input[type="text"]:-ms-input-placeholder,
.zcwf_lblLeft .zcwf_col_fld select:-ms-input-placeholder,
.zcwf_lblLeft .zcwf_col_fld textarea:-ms-input-placeholder {
  color: #aaa;
}

.zcwf_lblLeft .zcwf_col_fld input[type="text"]::-ms-input-placeholder,
.zcwf_lblLeft .zcwf_col_fld select::-ms-input-placeholder,
.zcwf_lblLeft .zcwf_col_fld textarea::-ms-input-placeholder {
  color: #aaa;
}

.zcwf_lblLeft .zcwf_col_fld input[type="text"]::placeholder,
.zcwf_lblLeft .zcwf_col_fld select::placeholder,
.zcwf_lblLeft .zcwf_col_fld textarea::placeholder {
  color: #aaa;
}

.zcwf_lblLeft .zcwf_col_fld textarea {
  height: 18rem;
}

.zcwf_lblLeft .zcwf_col_lab {
  margin-top: 0.8rem;
  margin-right: 10px;
  padding: 0px 6px 0px;
  width: 30%;
  min-height: 1px;
  font-size: 1.8rem;
  letter-spacing: 0.065em;
  word-break: break-word;
}

.zcwf_lblLeft .zcwf_col_lab .required {
  color: #169894;
}

.zcwf_lblLeft .wfrm_fld_dpNn {
  display: none;
}

.zcwf_lblLeft .zcwf_col_fld_slt {
  float: left;
  border: 1px solid #ccc;
  border-radius: 4px;
  width: 60%;
  background: #fff;
  resize: vertical;
}

.zcwf_lblLeft .zcwf_row:after,
.zcwf_lblLeft .zcwf_col_fld:after {
  display: table;
  clear: both;
  content: "";
}

.zcwf_lblLeft .zcwf_col_help {
  float: left;
  margin-left: 7px;
  max-width: 35%;
  font-size: 12px;
  word-break: break-word;
}

.zcwf_lblLeft .zcwf_help_icon {
  display: inline-block;
  border: 1px solid #ccc;
  border-radius: 50%;
  width: 16px;
  height: 16px;
  font-size: 11px;
  font-weight: bold;
  line-height: 16px;
  color: #ccc;
  text-align: center;
  background: #fff;
  cursor: pointer;
}

.zcwf_lblLeft .zcwf_privacy {
  margin: 5.4rem auto 0;
  text-align: center;
}

.zcwf_lblLeft .zcwf_privacy_txt {
  display: inline-block;
  margin-left: 6px;
  font-size: 1.6rem;
  letter-spacing: 0.065em;
}

.zcwf_lblLeft .zcwf_button {
  width: 18rem;
  height: 7rem;
  cursor: pointer;
}

.zcwf_lblLeft .zcwf_button.formsubmit {
  margin-right: 4rem;
  width: 36rem;
}

.zcwf_lblLeft .zcwf_tooltip_over {
  position: relative;
}

.zcwf_lblLeft .zcwf_tooltip_ctn {
  position: absolute;
  top: 3px;
  padding: 3px 6px;
  border-radius: 4px;
  min-width: 50px;
  max-width: 150px;
  color: #333;
  word-break: break-all;
  background: #dedede;
}

.zcwf_lblLeft .zcwf_ckbox {
  float: left;
}

.zcwf_lblLeft .zcwf_file {
  box-sizing: border-box;
  float: left;
  width: 55%;
}

.dIB {
  display: inline-block;
}

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

.privacyCheckbox {
  position: relative;
  padding-left: 3rem;
}

.privacyCheckbox::before {
  display: block;
  position: absolute;
  top: calc(50% - 2.6rem / 2);
  left: 0;
  border: 1px solid #ccc;
  border-radius: 3px;
  width: 2.6rem;
  height: 2.6rem;
  background: #fff;
  content: "";
}

.privacyCheckbox.checked::before {
  background: #169894;
}

.privacyCheckbox.checked::after {
  display: block;
  position: absolute;
  top: calc(50% - 2.6rem / 2);
  left: calc(2.6rem / 4);
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  width: calc(2.6rem / 2);
  height: calc(2.6rem * 3 / 4);
  transform: rotate(45deg);
  content: "";
}

.privacyCheckbox input {
  display: none;
}

.privacyCheckbox__err {
  height: 0;
  transition: 0.5s;
  transform: scaleY(0);
}

.privacyCheckbox__err.show {
  height: auto;
  transform: scaleY(1);
}

/*
           ######  ########
          ##       ##     ##
  #######  ######  ########
                ## ##
           ######  ##
*/

/*
    ######## ##     ##    ###    ##    ## ##    ##  ######
       ##    ##     ##   ## ##   ###   ## ##   ##  ##    ##
       ##    ##     ##  ##   ##  ####  ## ##  ##   ##
       ##    ######### ##     ## ## ## ## #####     ######
       ##    ##     ## ######### ##  #### ##  ##         ##
       ##    ##     ## ##     ## ##   ### ##   ##  ##    ##
       ##    ##     ## ##     ## ##    ## ##    ##  ######
*/

.contactThanks {
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.contactThanks__head {
  font-size: 2.4rem;
  font-weight: 700;
  text-align: center;
}

.contactThanks__text {
  margin-top: 3rem;
  font-size: 1.6rem;
  line-height: 2;
  text-align: center;
}

.contactThanks__link {
  margin: 5rem auto 0;
  width: 40rem;
  font-weight: 700;
}

.contactThanks__btn {
  height: 7.6rem;
}

.contactThanks__btn .icon-download {
  margin-right: 1rem;
}

/*
     ######  ########  ######
    ##    ## ##       ##    ##
    ##       ##       ##
     ######  ######   ##
          ## ##       ##
    ##    ## ##       ##    ##
     ######  ########  ######
*/

.companySec {
  padding: 0 0 10rem;
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.companySec__head {
  padding-bottom: 2rem;
  border-bottom: solid 1px #202024;
  font-size: 3rem;
  font-weight: 700;
}

.companySec__head--img {
  margin-left: 1.7rem;
  width: 1.7rem;
}

.companySec__body {
  margin-top: 2rem;
}

/*
       ###    ########   #######  ##     ## ########
      ## ##   ##     ## ##     ## ##     ##    ##
     ##   ##  ##     ## ##     ## ##     ##    ##
    ##     ## ########  ##     ## ##     ##    ##
    ######### ##     ## ##     ## ##     ##    ##
    ##     ## ##     ## ##     ## ##     ##    ##
    ##     ## ########   #######   #######     ##
*/

.companyAbout {
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.companyAbout__ttl,
.companyAbout__dtl {
  padding: 3.5rem 0;
  border-bottom: solid 1px #a0a0a8;
  font-size: 1.6rem;
}

.companyAbout__ttl {
  padding-left: 2rem;
  width: 20.8%;
}

.companyAbout__dtl {
  width: 79.2%;
}

.contents--app {
  overflow: hidden;
}

/*
    ##     ## ##     ##
    ###   ### ##     ##
    #### #### ##     ##
    ## ### ## ##     ##
    ##     ##  ##   ##
    ##     ##   ## ##
    ##     ##    ###
*/

.appMv {
  padding: 9rem 0 7rem;
  background: url("../img/app_mv_bg.png") no-repeat top left;
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.appMv__text {
  width: 50%;
  color: #444;
}

.appMv__head {
  font-weight: 700;
  line-height: 1;
}

.appMv__head--main {
  font-size: 7.2rem;
  letter-spacing: 0.065em;
}

.appMv__head--sub {
  margin-left: 3.5rem;
  font-size: 1.8rem;
}

.appMv__summary {
  margin: 3.5rem 0;
  font-size: 1.8rem;
  line-height: 2;
}

.appMv__dl {
  margin-top: 1.5rem;
  width: 40rem;
}

.appMv__dl--btn:first-child {
  margin-right: 1.5rem;
}

.appMv__btn {
  margin-top: 1.5rem;
  border-radius: 1rem;
  width: 40rem;
  height: 6.4rem;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.04em;
}

.appMv__btn .icon {
  color: #169894;
}

.appMv__img {
  width: 50%;
}

/*
    #### ##    ## ######## ########   #######
     ##  ###   ##    ##    ##     ## ##     ##
     ##  ####  ##    ##    ##     ## ##     ##
     ##  ## ## ##    ##    ########  ##     ##
     ##  ##  ####    ##    ##   ##   ##     ##
     ##  ##   ###    ##    ##    ##  ##     ##
    #### ##    ##    ##    ##     ##  #######
*/

.appIntro {
  text-align: center;
  /* background: linear-gradient(-15deg, transparent, transparent 40%, #f16232 40.15%, #f16232); */
  background: #f6f7f7;
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.appIntro__container {
  padding: 6rem 0 7.5rem;
}

.appIntro__text {
  color: #444;
}

.appIntro__ttl {
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.7;
}

.appIntro__dtl {
  margin-top: 4rem;
  font-size: 1.8rem;
  line-height: 2;
}

.appIntro__img {
  margin-top: 5.8rem;
  border-radius: 0.8rem;
  background: #fff;
  box-shadow: 0.5rem 0.5rem 4rem rgba(0, 0, 0, 0.16);
}

/*
    ######## ##     ## ##    ##  ######  ######## ####  #######  ##    ##
    ##       ##     ## ###   ## ##    ##    ##     ##  ##     ## ###   ##
    ##       ##     ## ####  ## ##          ##     ##  ##     ## ####  ##
    ######   ##     ## ## ## ## ##          ##     ##  ##     ## ## ## ##
    ##       ##     ## ##  #### ##          ##     ##  ##     ## ##  ####
    ##       ##     ## ##   ### ##    ##    ##     ##  ##     ## ##   ###
    ##        #######  ##    ##  ######     ##    ####  #######  ##    ##
*/

.appFunction {
  padding: 4.5rem 0 0;
  background: url("../img/app_function_bg.png") no-repeat center bottom/100%
    auto;
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.appFunction__head {
  font-weight: 700;
  text-align: center;
}

.appFunction__head--main {
  font-size: 1.8rem;
  color: #169894;
  letter-spacing: 0.065em;
}

.appFunction__head--sub {
  font-size: 3rem;
  line-height: 1.7;
}

.appFunction .appFunctionNav {
  margin: 4rem 0 6.5rem;
}

.appFunction .appFunctionNav__item {
  width: calc((100% - 3rem * 2) / 3);
  height: 8rem;
}

.appFunction .appFunctionNav__item:not(:nth-child(3n + 1)) {
  margin-left: 3rem;
}

.appFunction .appFunctionNav__item:nth-child(n + 4) {
  margin-top: 3rem;
}

.appFunction .appFunctionNav__link {
  display: block;
  border-radius: 0.8rem;
  font-size: 2rem;
  text-align: center;
  line-height: 8rem;
}

.appFunction .appFunctionNav__link--num {
  margin-right: 3rem;
  color: #a6e2d6;
}

.appFunction .appFunctionNav__link .icon {
  font-size: 1.8rem;
  position: absolute;
  right: 2.3rem;
  top: 3rem;
}

.appFunction__item {
  padding: 7rem 0;
}

.appFunction__text {
  width: 40.7%;
}

.appFunction__ttl {
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.appFunction__ttl--num {
  font-size: 1.8rem;
  color: #0bab8c;
}

.appFunction__ttl--text {
  margin-top: 1.5rem;
}

.appFunction__ttl--sub {
  font-size: 1.6rem;
}

.appFunction__dtl {
  margin-top: 2rem;
  font-size: 1.6rem;
  line-height: 2;
}

.appFunction__subitem {
  margin-top: 2rem;
  padding: 2rem;
  border-radius: 0.8rem;
  background: #ebf9f6;
}

.appFunction__subttl {
  font-size: 1.8rem;
  font-weight: 700;
}

.appFunction__subttl--icon {
  margin-right: 1rem;
}

.appFunction__subdtl {
  margin-top: 1rem;
  font-size: 1.6rem;
  line-height: 1.75;
}

.appFunction__link {
  margin-top: 3.5rem;
}

.appFunction__btn {
  max-width: 34rem;
  height: 5rem;
  font-size: 1.6rem;
}

.appFunction__img {
  -ms-flex: none;
  flex: none;
  border-radius: 0.8rem;
  width: 53.7%;
  background: #ebf9f6;
}

/*
     ######  ######## ########  ##     ## ####  ######  ########
    ##    ## ##       ##     ## ##     ##  ##  ##    ## ##
    ##       ##       ##     ## ##     ##  ##  ##       ##
     ######  ######   ########  ##     ##  ##  ##       ######
          ## ##       ##   ##    ##   ##   ##  ##       ##
    ##    ## ##       ##    ##    ## ##    ##  ##    ## ##
     ######  ######## ##     ##    ###    ####  ######  ########
*/

.appService {
  position: relative;
  padding: 12rem 0 9rem;
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.appService__bg {
  position: absolute;
  top: -5rem;
  left: calc(50% - 60.5vw);
  z-index: -1;
  width: 120vw;
  height: 97rem;
  background: #fffed2 url("../img/app_service_bg.png") no-repeat left 10%
    center/auto;
  transform: rotate(15deg);
}

.appService__head {
  font-weight: 700;
  text-align: center;
}

.appService__head--main {
  font-size: 1.8rem;
  color: #de7b16;
  letter-spacing: 0.065em;
}

.appService__head--sub {
  font-size: 3rem;
  line-height: 1.7;
}

.appService__list {
  margin-top: 4rem;
}

.appService__item {
  position: relative;
  z-index: 1;
  padding-top: 6rem;
  width: calc((100% - 2rem * 3) / 4);
  height: auto;
}

.appService__item:not(:nth-child(4n + 1)) {
  margin-left: 2rem;
}

.appService__img {
  position: absolute;
  top: 0;
  left: calc(50% - 12rem / 2);
  margin: 0 auto;
  border-radius: 50%;
  width: 12rem;
  height: 12rem;
}

.appService__img--01 {
  background: #bad60f;
}

.appService__img--02 {
  background: #f85872;
}

.appService__img--03 {
  background: #f9d503;
}

.appService__img--04 {
  background: #00a594;
}

.appService__text {
  z-index: -1;
  padding: 8.4rem 2rem 3rem;
  border-radius: 0.8rem;
  height: 100%;
  background: #fff;
}

.appService__ttl {
  font-size: 2rem;
  font-weight: 700;
  text-align: center;
}

.appService__dtl {
  margin-top: 2rem;
  font-size: 1.4rem;
  line-height: 1.8;
}

.appServiceBanner {
  margin-top: 4rem;
  padding: 1.3rem 3rem;
  border-radius: 0.8rem;
  height: 20rem;
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.appServiceBanner__container {
  width: 100%;
}

.appServiceBanner__text {
  -ms-flex: auto;
  flex: auto;
  margin-left: 9rem;
}

.appServiceBanner__ttl {
  font-size: 2.4rem;
  font-weight: 700;
}

.appServiceBanner__ttl--sub {
  margin-right: 2rem;
  padding: 0.8rem 3rem;
  border: solid 2px #fff;
  border-radius: 2rem;
  font-size: 1.6rem;
  font-weight: 400;
  transition: 0.5s border;
}

.appServiceBanner__dtl {
  margin-top: 2rem;
  font-size: 1.6rem;
  line-height: 1.6;
}

.appServiceBanner:hover .appServiceBanner__ttl--sub {
  border: solid 2px #169894;
}

/*
    ########  ########  ####  ######  ########
    ##     ## ##     ##  ##  ##    ## ##
    ##     ## ##     ##  ##  ##       ##
    ########  ########   ##  ##       ######
    ##        ##   ##    ##  ##       ##
    ##        ##    ##   ##  ##    ## ##
    ##        ##     ## ####  ######  ########
*/

.appPrice {
  position: relative;
  padding: 12rem 0;
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.appPrice__bg {
  position: absolute;
  top: 30%;
  left: calc(50% - 60.5vw);
  z-index: -1;
  width: 120vw;
  height: 54rem;
  background: #ffeddf url("../img/app_price_bg.png") no-repeat left 10% center;
  transform: rotate(-15deg);
}

.appPrice__head {
  font-weight: 700;
  text-align: center;
}

.appPrice__head--main {
  font-size: 1.8rem;
  color: #de7b16;
  letter-spacing: 0.065em;
}

.appPrice__head--sub {
  font-size: 3rem;
  line-height: 1.7;
}

.appPrice__list {
  margin-top: 5rem;
}

.appPrice__item {
  padding: 3.3rem 0;
  border: solid 1px #a0a0a8;
  width: 50%;
  max-width: 36rem;
  background: #fff;
}

.appPrice__item:not(:first-child) {
  border-left: none;
}

.appPrice__link {
  margin: 5rem auto 0;
  width: 40rem;
  height: 7.6rem;
}

.appPrice__btn {
  height: 100%;
}

.appPrice .appPricePlan {
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.065em;
}

.appPrice .appPricePlan__ttl {
  font-size: 2.2rem;
}

.appPrice .appPricePlan__subttl {
  margin-top: 2.8rem;
  height: 5.4rem;
  color: #90909b;
}

.appPrice .appPricePlan__price {
  margin-top: 2rem;
  height: 6.5rem;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.2;
  color: #169894;
  text-align: center;
  letter-spacing: 0.065em;
}

.appPrice .appPricePlan__price .num {
  font-size: 3.4rem;
}

.appPrice .appPricePlan__price .per {
  color: #444;
}

.appPrice .appPricePlan__price .note {
  font-size: 1.4rem;
}

.appPrice .appPriceFunction {
  margin: 4.5rem 4rem 0;
  padding-top: 2.5rem;
  border-top: solid 1px #eeeeee;
}

.appPrice .appPriceFunction__ttl {
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.065em;
}

.appPrice .appPriceFunction__list {
  margin-top: 1.5rem;
}

.appPrice .appPriceFunction__item {
  font-size: 1.4rem;
  line-height: 2;
  letter-spacing: 0.065em;
}

.appPrice .appPriceFunction__item .icon {
  color: #169894;
}

/*
    ########  #######   #######  ######## ######## ########
    ##       ##     ## ##     ##    ##    ##       ##     ##
    ##       ##     ## ##     ##    ##    ##       ##     ##
    ######   ##     ## ##     ##    ##    ######   ########
    ##       ##     ## ##     ##    ##    ##       ##   ##
    ##       ##     ## ##     ##    ##    ##       ##    ##
    ##        #######   #######     ##    ######## ##     ##
*/

.appFooter {
  padding: 2.5rem 0;
  background: #169894 url("../img/app_footer_bg.png") no-repeat center left;
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.appFooter__head {
  font-weight: 700;
  color: #fff;
}

.appFooter__head--main {
  font-size: 5.1rem;
  letter-spacing: 0.065em;
}

.appFooter__head--sub {
  margin-left: 2rem;
  font-size: 1.6rem;
}

.appFooter__dl {
  margin-top: 1.5rem;
  width: 40rem;
}

.appFooter__item:first-child {
  margin-right: 1.5rem;
}

.appFooter__item--QR {
  margin-bottom: 1.5rem;
}

.appFooter__btn {
  margin-top: 1.5rem;
  border-radius: 1rem;
  height: 6.4rem;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.04em;
}

.appFooter__btn .icon {
  color: #169894;
}

.pageHead {
  padding-top: 5rem;
  height: 32rem;
  font-weight: 700;
  background: url("../img/pageHead_bg.png") no-repeat center/cover;
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.pageHead--app {
  color: #fff;
  background: url("../img/pageHead_app_bg.png") no-repeat center/cover;
}

.pageHead__main {
  font-size: 5.4rem;
  line-height: 1.4;
  letter-spacing: 0.065em;
}

.pageHead__main--small {
  font-size: 3rem;
  letter-spacing: 0.065em;
}

.pageHead__sub {
  font-size: 2rem;
}

.pageBody {
  padding: 8rem 0 10rem;
}

/*
    ##    ##    ###    ##     ##
    ###   ##   ## ##   ##     ##
    ####  ##  ##   ##  ##     ##
    ## ## ## ##     ## ##     ##
    ##  #### #########  ##   ##
    ##   ### ##     ##   ## ##
    ##    ## ##     ##    ###
*/

.pageNav {
  /*
             ######  ########
            ##       ##     ##
    #######  ######  ########
                  ## ##
             ######  ##
*/
}

.pageNav__text {
  font-size: 1.6rem;
  color: #90909b;
}

.pageNav__select {
  margin-left: 0.7rem;
  padding: 0 1.6rem;
  border: solid 1px #e4e4e9;
  border-radius: 0.4rem;
  width: 36rem;
  height: 4.5rem;
  font-size: 1.6rem;
  font-weight: 700;
  background: #f8f6fe;
}

.pageNav__btn {
  margin-left: 1rem;
  border-radius: 0.4rem;
  width: 12rem;
  height: 4.5rem;
}

.contents--faq .pageBody {
  padding-top: 5rem;
}

.contents--manual .pageBody {
  padding-top: 0rem;
}
.contents--manual h2{
  padding: 0 1.5rem;
}
.contents--works .pageBody {
  padding-top: 5rem;
}

@media screen and (min-width: 769px) {
  .pc-flex {
    display: -ms-flexbox;
    display: flex;
  }
  .flex.pc-bet,
  .pc-flex.pc-bet {
    -ms-flex-pack: justify;
    justify-content: space-between;
  }
  .flex.pc-aro,
  .pc-flex.pc-aro {
    -ms-flex-pack: distribute;
    justify-content: space-around;
  }
  .flex.aro,
  .pc-flex.aro {
    -ms-flex-pack: distribute;
    justify-content: space-around;
  }
  .flex.pc-vstart,
  .pc-flex.pc-vstart {
    -ms-flex-align: start;
    align-items: flex-start;
  }
  .flex.pc-vend,
  .pc-flex.pc-vend {
    -ms-flex-align: end;
    align-items: flex-end;
  }
  .flex.pc-vcenter,
  .pc-flex.pc-vcenter {
    -ms-flex-align: center;
    align-items: center;
  }
  .flex.pc-hstart,
  .pc-flex.pc-hstart {
    -ms-flex-pack: start;
    justify-content: flex-start;
  }
  .flex.pc-hcenter,
  .pc-flex.pc-hcenter {
    -ms-flex-pack: center;
    justify-content: center;
  }
  .flex.pc-hend,
  .pc-flex.pc-hend {
    -ms-flex-pack: end;
    justify-content: flex-end;
  }
  .flex.pc-str,
  .pc-flex.pc-str {
    -ms-flex-align: stretch;
    align-items: stretch;
  }
  .flex.pc-vert,
  .pc-flex.pc-vert {
    -ms-flex-direction: column;
    flex-direction: column;
  }
  .flex.pc-break,
  .pc-flex.pc-break {
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .flex > .pc-1,
  .pc-flex > .pc-1 {
    -ms-flex-order: 1;
    order: 1;
  }
  .flex > .pc-2,
  .pc-flex > .pc-2 {
    -ms-flex-order: 2;
    order: 2;
  }
  .flex > .pc-3,
  .pc-flex > .pc-3 {
    -ms-flex-order: 3;
    order: 3;
  }
  .op:hover {
    opacity: 0.7;
  }
  .sp {
    display: none !important;
  }
  .pc-hide {
    display: none;
  }
  .pc-ta-center {
    text-align: center;
  }
  .pc-ta-right {
    text-align: right;
  }
  .pc-ta-left {
    text-align: left;
  }
  .md-lay.pc-over {
    display: block;
  }
  .md-lay.pc-over .lay-bg img {
    margin-left: 50%;
    width: auto;
    max-width: none;
    transform: translate(-50%, 0);
  }
  .md-lay.pc-through {
    display: inline-block;
    overflow: visible;
  }
  .md-lay.pc-through .lay-bg img {
    width: auto;
    max-width: none;
  }
  a:hover .md-lay .lay-bg .on {
    opacity: 1;
  }
  a:hover .md-lay .lay-bg .off {
    opacity: 0;
  }
  a:hover .md-lay.zoom .lay-bg {
    transform: scale(1.05);
  }
  a:hover .md-lay.bright::before {
    opacity: 1;
  }
  a:hover .md-lay.border::after {
    box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.5) inset;
    opacity: 1;
  }
  a:not(:hover) .md-lay.hide .lay-content {
    opacity: 0;
  }
  .sp-md-acc .acc-btn {
    cursor: auto;
  }
  .wrap {
    margin: 0 auto;
    padding-right: 1rem;
    padding-left: 1rem;
  }
  .cover {
    background: #e8f4f6;
  }
  .w1200 {
    max-width: 122rem;
    margin: 0 auto;
  }
  .w60p {
    width: 60%
  }
  .wrap.w1080 {
    max-width: 110rem;
  }
  .wrap.w860 {
    max-width: 88rem;
  }
  .wrap.w600 {
    max-width: 60rem;
  }

  .header.onTop .headerLogo {
    padding-bottom: 0;
  }
  .header.onTop .headerLogo__img {
    max-width: 16rem;
  }
  .header.onHover .headerLogo {
    padding-bottom: 1rem;
  }
  .header.onHover .headerLogo__img {
    max-width: 14rem;
  }
  .gNav {
    top: 10rem;
  }
  .appHeader.onTop .headerLogo__img {
    max-width: 6rem;
  }
  .appHeader.onTop .headerLogo__img--sub {
    padding-left: 2rem;
    max-width: 13rem;
  }
  .appHeader .headerLogoSub {
    margin-left: 3rem;
  }
  .appHeader .headerLogoSub__img {
    max-width: 11rem;
  }
}

@media screen and (max-width: 1260px) {
  .topApp__container {
    padding-left: 3rem;
  }
  .topApp__img {
    margin-left: 3rem;
  }
}

@media screen and (max-width: 768px) {
  .sp-flex {
    display: -ms-flexbox;
    display: flex;
  }
  .flex.sp-bet,
  .sp-flex.sp-bet {
    -ms-flex-pack: justify;
    justify-content: space-between;
  }
  .flex.sp-aro,
  .sp-flex.sp-aro {
    -ms-flex-pack: distribute;
    justify-content: space-around;
  }
  .flex.aro,
  .sp-flex.aro {
    -ms-flex-pack: distribute;
    justify-content: space-around;
  }
  .flex.sp-vstart,
  .sp-flex.sp-vstart {
    -ms-flex-align: start;
    align-items: flex-start;
  }
  .flex.sp-vend,
  .sp-flex.sp-vend {
    -ms-flex-align: end;
    align-items: flex-end;
  }
  .flex.sp-vcenter,
  .sp-flex.sp-vcenter {
    -ms-flex-align: center;
    align-items: center;
  }
  .flex.sp-hstart,
  .sp-flex.sp-hstart {
    -ms-flex-pack: start;
    justify-content: flex-start;
  }
  .flex.sp-hcenter,
  .sp-flex.sp-hcenter {
    -ms-flex-pack: center;
    justify-content: center;
  }
  .flex.sp-hend,
  .sp-flex.sp-hend {
    -ms-flex-pack: end;
    justify-content: flex-end;
  }
  .flex.sp-str,
  .sp-flex.sp-str {
    -ms-flex-align: stretch;
    align-items: stretch;
  }
  .flex.sp-vert,
  .sp-flex.sp-vert {
    -ms-flex-direction: column;
    flex-direction: column;
  }
  .flex.sp-break,
  .sp-flex.sp-break {
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
  .flex > .sp-1,
  .sp-flex > .sp-1 {
    -ms-flex-order: 1;
    order: 1;
  }
  .flex > .sp-2,
  .sp-flex > .sp-2 {
    -ms-flex-order: 2;
    order: 2;
  }
  .flex > .sp-3,
  .sp-flex > .sp-3 {
    -ms-flex-order: 3;
    order: 3;
  }
  .sp-table-break td,
  .sp-table-break th,
  .sp-table-break tr {
    display: inline-block;
    width: 100%;
  }
  .sp-table-over {
    overflow-x: auto;
  }
  .sp-table-over th {
    white-space: nowrap;
  }
  .pc {
    display: none !important;
  }
  .sp-hide {
    display: none;
  }
  .sp-ta-center {
    text-align: center;
  }
  .sp-ta-right {
    text-align: right;
  }
  .sp-ta-left {
    text-align: left;
  }
  .md-lay.sp-over {
    display: block;
  }
  .md-lay.sp-over .lay-bg img {
    margin-left: 50%;
    width: auto;
    max-width: none;
    transform: translate(-50%, 0);
  }
  .md-lay.sp-through {
    display: inline-block;
    overflow: visible;
  }
  .md-lay.sp-through .lay-bg img {
    width: auto;
    max-width: none;
  }
  .sp-md-acc .acc-body {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition-duration: 0.5s;
    transform-origin: 0 0;
  }
  .sp-md-acc .acc-body .acc-body:not(.active) {
    transition-duration: 0s;
  }
  .sp-md-acc .acc-body:not(.active) .acc-on,
  .sp-md-acc .acc-check:not(:checked) ~ .acc-body .acc-on,
  .sp-md-acc .acc-check:not(:checked) ~ .acc-btn .acc-on {
    display: none;
  }
  .sp-md-acc .acc-body.active,
  .sp-md-acc .acc-check:checked ~ .acc-body,
  .sp-md-acc .acc-check:checked ~ .acc-btn {
    max-height: none;
    opacity: 1;
  }
  .sp-md-acc .acc-body.active .acc-off,
  .sp-md-acc .acc-check:checked ~ .acc-body .acc-off,
  .sp-md-acc .acc-check:checked ~ .acc-btn .acc-off {
    display: none;
  }
  .sp-wrap {
    padding-right: 1.5rem;
    padding-left: 1.5rem;
  }
  .headerPad {
    padding-top: 6rem;
  }
  .header {
    max-height: 100%;
    overflow: auto;
  }
  .header__frame {
    padding: 0 0 0 3.125%;
  }
  .header__base {
    height: 6rem;
  }
  .headerLogo {
    padding-bottom: 0;
    height: 6rem;
  }
  .headerLogo__img {
    max-width: 10rem;
  }
  .appHeader__frame {
    padding: 0 0 0 0.5rem;
  }
  .appHeader .headerLogoSub {
    margin-left: 3rem;
  }
  .appHeader .headerLogoSub__img {
    max-width: 10rem;
  }
  .appHeader .headerLogo__img {
    max-width: 4rem;
  }
  .appHeader .headerLogo__main {
    margin: 0 1rem 0 0.5rem;
    font-size: 2.2rem;
  }
  .footerContact {
    padding: 4rem 2rem 5rem;
    background: #202024 url("../img/footer_contact_bg_sp.png") no-repeat
      center/cover;
  }
  .footerContact__head--en {
    font-size: 3rem;
  }
  .footerContact__link {
    margin: 2.5rem 0 0;
    width: 100%;
  }
  .footer {
    padding: 2rem 0;
  }
  .footer__logo {
    max-width: 10rem;
  }
  .footer__copy {
    margin-top: 1rem;
    text-align: center;
  }
  .footerBottom__link {
    margin-right: 0rem;
  }
  .sns ul {
    justify-content: center;  
  }
  .sns_list {
    width: 30px;
    height: 30px;
  }
  .contents--top {
    padding: 0 0 5rem;
  }
  .topMv {
    background: url("../img/top_mv_bg.png") no-repeat top center/auto 50rem;
  }
  .topMv .topMvSlide {
    width: 100vw;
  }
  .topMv .topMvSlide__bg {
    height: 100vh;
  }
  .topMv .topMvSlide__text {
    width: 100%;
  }
  .topMv .topMvSlide__text--main {
    font-size: 2.2rem;
  }
  .topMv .topMvSlide__text--sub {
    font-size: 1.4rem;
    color: #de7b16;
  }
  .topNews {
    margin-top: 5rem;
  }
  .topNews__container {
    top: -3rem;
    padding: 2rem 1.5rem;
    height: auto;
  }
  .topNews__list {
    max-height: 16rem;
    padding: 0 1rem 0 0;
  }
  .topNews__item:first-child .topNews__link {
    position: relative;
  }
  .topNews__item:first-child .topNews__link .topNews__tag {
    position: absolute;
    left: 11rem;
    margin-right: 0;
    padding: 0;
  }
  .topNews__link {
    flex-direction: column;
  }
  .topNews__date {
    color: #444;
    font-weight: 600;
    margin-right: 1rem;
  }
  .topNews__ttl {
    font-size: 1.5rem;
    font-weight: 400;
  }
  .topSec__head--en {
    font-size: 3rem;
  }
  .topSec__intro {
    margin-top: 3rem;
    font-size: 1.5rem;
  }
  .topService__intro {
    text-align: left;
  }
  .topApp {
    margin-top: 3rem;
    padding: 3rem 0 5rem;
    min-width: auto;
    background: #169894 url(../img/top_app_bg.png) no-repeat center/cover;
  }
  .topApp__container {
    padding-left: 0;
  }
  .topApp__ttl {
    font-weight: 700;
  }
  .topApp__ttl--main {
    font-size: 4rem;
  }
  .topApp__ttl--sub {
    margin: 0.8rem 0 0;
    font-size: 1.6rem;
  }
  .topApp__summary {
    margin-top: 1rem;
    font-size: 1.5rem;
    text-align: center;
  }
  .topApp__link {
    margin: 2.5rem auto 0;
  }
  .topApp__img {
    margin-left: 0;
  }
  .topServiceList {
    top: auto;
    padding: 0;
    background: none;
  }
  .topServiceList__item:not(:first-child) {
    margin-top: 3rem;
  }
  .topServiceList__text {
    padding: 2rem 0;
    width: 100%;
  }
  .topServiceList__ttl {
    margin-top: 1rem;
    font-size: 2.4rem;
    line-height: 1.5;
  }
  .topServiceList__dtl {
    margin-top: 2rem;
    font-size: 1.5rem;
  }
  .topServiceList__img {
    width: 100%;
  }
  .topLinks {
    padding: 5rem 0 2.5rem;
  }
  .topLinks__item {
    width: 100%;
  }
  .topLinks__item:not(:nth-child(2n + 1)) {
    margin-left: 0;
  }
  .topLinks__item:not(:first-child),
  .topLinks__item:nth-child(n + 3) {
    margin-top: 1.5rem;
  }
  .topLinks__text {
    top: -4rem;
  }
  .topLinks__text--en {
    padding: 0 1rem;
    font-size: 3rem;
  }
  .topLinks__text--ja {
    padding: 0 1rem;
  }
  .topWorks {
    padding: 3rem 0 5rem;
    background: #169894;
  }
  .topWorks .topWorksSlide {
    padding: 5.5rem 0 3rem;
  }
  .topWorks .topWorksSlide__item {
    width: auto;
  }
  .topWorks .topWorksSlide__text {
    padding: 1.5rem;
  }
  .topWorks .topWorksSlide__ttl {
    font-size: inherit;
  }
  .topWorks .topWorksSlide__name {
    font-size: 72%;
  }
  .works__container {
    margin-top: 3rem;
  }
  .worksItem {
    position: relative;
    padding: 3rem 1.5rem 1.5rem;
  }
  .worksItem:not(:first-child) {
    margin-top: 4rem;
  }
  .worksItem__img {
    padding: 0 3.5rem;
    width: 100%;
  }
  .worksItem__img .worksItemImg__btn {
    width: 4rem;
    height: 4rem;
    font-size: 1.3rem;
  }
  .worksItem__img .worksItemImg__btn.swiper-button-prev {
    left: -4.5rem;
  }
  .worksItem__img .worksItemImg__btn.swiper-button-next {
    right: -4.5rem;
  }
  .worksItem__img .worksItemThumb {
    margin-top: 1rem;
  }
  .worksItem__img .worksItemThumb__item {
    border: solid 2px transparent;
    width: 6rem;
    height: 3.75rem;
  }
  .worksItem__img .worksItemThumb__item.swiper-slide-thumb-active {
    border: solid 2px #169894;
  }
  .worksItem__text {
    margin: 2rem 0 0;
    padding: 0;
    width: 100%;
    box-shadow: none;
  }
  .worksItem__head {
    text-align: center;
  }
  .worksItem__num {
    font-size: 2.6rem;
    line-height: 1.2;
  }
  .worksItem__ttl {
    font-size: 1.8rem;
  }
  .worksItem__name {
    font-size: 1.4rem;
  }
  .worksItem__summary {
    font-size: 1.5rem;
    line-height: 1.5;
  }
  .worksCta {
    margin-top: 6.5rem;
    padding: 4rem 0;
    background: #169894 url("../img/works_cta_bg.png") no-repeat top left/auto
      100%;
  }
  .worksCta__text {
    font-size: 1.6rem;
    text-align: left;
  }
  .worksCta__link {
    margin-top: 3rem;
  }
  .worksCta__btn {
    width: 100%;
    height: 8rem;
    font-size: 1.8rem;
  }
  .worksCta__btn .em {
    padding: 0.3rem 1.5rem;
  }
  .worksCta__btn:not(:first-child) {
    margin-top: 2rem;
    margin-left: 0;
  }
  .priceNav__item {
    width: calc((100% - 1rem) / 2);
  }
  .priceNav__item:not(:first-child) {
    margin-left: 1rem;
  }
  .priceNav__link {
    padding: 1rem 1.5rem;
    border: solid 1px #e4e4e9;
    font-size: 1.6rem;
  }
  .priceNav__link--img {
    width: 2.3rem;
  }
  .priceNav__link--text {
    margin-left: 1rem;
  }
  .priceNav__link--icon {
    font-size: 1rem;
  }
  .pricePlan {
    padding: 4rem 0;
  }
  .pricePlan--ex {
    padding: 5rem 0 9rem;
  }
  .pricePlan__head {
    font-size: 2.2rem;
  }
  .pricePlan__note {
    text-align: left;
  }
  .pricePlan .pricePlanItemHead {
    display: none;
  }
  .pricePlan .pricePlanItem {
    margin-top: 2rem;
    border-right: solid 1px #a0a0a8;
    border-bottom: solid 1px #a0a0a8;
    border-left: solid 1px #a0a0a8;
    width: 100%;
  }
  .pricePlan .pricePlanItem .pricePlanHead__ttl {
    height: auto;
    font-size: 2.2rem;
  }
  .pricePlan .pricePlanItem .pricePlanHead__catch {
    border: none;
    height: auto;
    font-size: 1.5rem;
  }
  .pricePlan .pricePlanItem .pricePlanHead__btn {
    margin-top: 1.5rem;
    width: 14rem;
    height: 4rem;
  }
  .pricePlan .pricePlanItem__ticket {
    margin-top: 0.8rem;
    padding: 0 1.2rem;
    border: none;
    height: auto;
    font-size: 2.4rem;
    line-height: 1.4;
  }
  .pricePlan .pricePlanItem__ticket--head {
    font-size: 1.6rem;
  }
  .pricePlan .pricePlanItem__price {
    padding: 0 1.2rem 1rem;
    border: none;
  }
  .pricePlan .pricePlanItem__price--month,
  .pricePlan .pricePlanItem__price--year {
    padding: 1.5rem 0;
  }
  .pricePlan .pricePlanItem__price--month {
    height: auto;
  }
  .pricePlan .pricePlanItem__price--year {
    -ms-flex: auto;
    flex: auto;
  }
  .pricePlan .pricePlanItem__price .num {
    font-size: 2.6rem;
  }
  .pricePlan .pricePlanItem__price .per {
    color: #444;
  }
  .pricePlan .pricePlanItem__price .note {
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 1.4;
    color: #444;
  }
  .pricePlan .pricePlanItem__price--bar {
    display: block;
    width: 4.2rem;
    height: 1px;
    background: #707070;
  }
  .pricePlan .pricePlanItemAcc__acc {
    padding: 1rem 0;
    font-size: 1.4rem;
    color: #0055ff;
  }
  .pricePlan .pricePlanItemAcc__acc .icon {
    margin-left: 2.5rem;
    transition: 0.5s;
  }
  .pricePlan .pricePlanItemAcc__acc .status {
    opacity: 0;
    transition: 0.5s;
  }
  .pricePlan .pricePlanItemAcc__acc.active .status {
    opacity: 1;
  }
  .pricePlan .pricePlanItemAcc__acc.active .icon {
    transform: rotate(-180deg);
  }
  .pricePlan .pricePlanItemAcc__body {
    display: none;
    margin-top: 2rem;
  }
  .pricePlan .pricePlanFunc__ttl {
    font-size: 1.5rem;
  }
  .pricePlan .pricePlanFunc__dtl {
    padding: 1rem 0;
    border-bottom: solid 1px #a0a0a8;
    font-size: 1.4rem;
  }
  .pricePlan .pricePlanFunc .pricePlanFuncList {
    padding: 1rem;
  }
  .pricePlan .pricePlanFunc .pricePlanFuncList__item:not(:first-child) {
    margin-top: 2rem;
  }
  .pricePlan .pricePlanFunc .pricePlanFuncList__icon {
    width: 2rem;
    font-size: 1.5rem;
  }
  .pricePlan .pricePlanFunc .pricePlanFuncList__ttl {
    margin-left: 1rem;
    width: calc(100% - 3rem);
    text-align: left;
  }
  .pricePlan .pricePlanFunc .pricePlanFuncList__dtl {
    margin-left: 4rem;
    text-align: left;
  }
  .pricePlan .pricePlanFunc__size--item {
    padding: 1rem 0;
    width: 100%;
  }
  .pricePlan .pricePlanFunc__size--item:not(:first-child) {
    border: none;
  }
  .pricePlan .pricePlanExFunc__dtl {
    padding: 1rem 0;
    border-bottom: solid 1px #a0a0a8;
    font-size: 1.4rem;
  }
  .pricePlan .pricePlanExFunc__icon {
    margin-right: 1rem;
    font-size: 1.5rem;
  }
  .pricePlan .pricePlanExFuncList {
    padding: 1rem;
  }
  .pricePlan .pricePlanExFuncList__item {
    text-align: left;
  }
  .pricePlan .pricePlanExFuncList__item:not(:first-child) {
    margin-top: 1rem;
  }
  .pricePlan .pricePlanCta {
    margin-top: 5rem;
  }
  .pricePlan .pricePlanCta__text {
    font-size: 1.6rem;
  }
  .pricePlan .pricePlanCta__btn {
    margin: 0.5rem auto 0;
    width: 100%;
    height: 6rem;
    font-size: 1.8rem;
  }
  .pricePlan .pricePlanCta__btn .icon {
    font-size: 1rem;
  }
  .priceCompare {
    padding: 4rem 0 8rem;
  }
  .priceCompare__head {
    padding-bottom: 1.5rem;
    font-size: 2.2rem;
  }
  .priceCompare .priceCompareTbl {
    margin-top: 3rem;
  }
  .priceCompare .priceCompareTbl .priceCompareTblHead__ttl {
    padding: 1rem 0;
    min-height: 10rem;
    font-size: 1.8rem;
  }
  .priceCompare .priceCompareTbl .priceCompareTblHead__ttl--name {
    font-size: 1.6rem;
    text-align: center;
  }
  .priceCompare .priceCompareTbl .priceCompareTblHead__ttl .vertical {
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
  }
  .priceCompare .priceCompareTbl .priceCompareTblHead__link {
    font-size: 1.4rem;
  }
  .priceCompare .priceCompareTbl .priceCompareTblBody {
    font-size: 1.6rem;
  }
  .priceCompare .priceCompareTbl .priceCompareTblBody__head {
    padding: 3.5rem 0 1rem;
    font-size: 1.8rem;
  }
  .priceCompare .priceCompareTbl .priceCompareTblBody__ttl {
    padding: 1rem 0;
  }
  .priceCompare .priceCompareTbl .priceCompareTblBody__check {
    font-size: 1.4rem;
  }
  .priceCompare .priceCompareTbl .priceCompareTblBody .note {
    font-size: 1.4rem;
  }
  .priceBiz {
    padding: 4rem 0 6rem;
  }
  .priceBiz__head {
    padding-bottom: 1.5rem;
    font-size: 2.4rem;
  }
  .priceBiz__container {
    margin-top: 2rem;
    padding: 2rem;
  }
  .priceBiz__text {
    padding: 0 0 2rem;
    border-right: none;
    border-bottom: solid 1px #e2e2e2;
    width: 100%;
  }
  .priceBiz__function {
    margin-top: 2rem;
    padding-left: 0;
    width: 100%;
  }
  .priceBiz__ttl {
    font-size: 1.8rem;
  }
  .priceBiz__list {
    margin-top: 0;
  }
  .priceBiz__item {
    font-size: 1.6rem;
  }
  table {
    min-width: 600px;
  }
  .inner_wrap {
    margin: 0 1.5rem;
    overflow-x: auto;
  }
  .manualTtl {
    margin-top: 2.5rem;
    padding-bottom: 0.5rem;
  }
  .manualTbl {
    margin-top: 1rem;
  }
  tr:last-of-type{
    border-bottom: 0 !important;
  }

  .manualItem__item {
    padding: 0.3rem;
    font-size: 1.2rem;
  }
  .manualHead__item:first-child {
    padding-left: 0rem;
}
.manualHead__item {

}

.manualHead__num {
  width: 2rem;
  font-size: 1.4rem;
  text-align: right;
}
.manualHead__ttl {
    width: 14rem;
    font-size: 1.4rem;
    text-align: center;
}
.manualHead__dtl {
    width: 40rem;
    font-size: 1.4rem;
    text-align: center;
}
.manualHead__html {
  width: 6rem !important;
}
.manualHead__pdf {
  width: 6rem !important;
}
.manualHead__url {
  width: 6rem !important;
}
.manualItem__html,.manualItem__pdf,.manualItem__url {
  text-align: center;
}
.manualHead__html, .manualHead__pdf, .manualHead__url {
  text-align: center;
}
  .contactHead {
    height: 20rem;
    font-size: 1.8rem;
    background: url("../img/pageHead_bg_sp.png") no-repeat center/cover;
  }
  .contactHead__img {
    margin-right: 1.5rem;
    width: 10rem;
  }
  .contactBody {
    padding: 2rem 0 5rem;
  }
  #crmWebToEntityForm {
    text-align: left;
  }
  #crmWebToEntityForm.zcwf_lblLeft {
    padding: 0;
  }
  .zcwf_lblLeft .zcwf_title {
    margin: 0 0 3rem;
    font-size: 1.6rem;
  }
  .zcwf_lblLeft .zcwf_row {
    display: block;
    margin: 1rem auto;
    width: 100%;
  }
  .zcwf_lblLeft .zcwf_row.submitRow {
    margin: 0;
  }
  .zcwf_lblLeft .zcwf_col_lab,
  .zcwf_lblLeft .zcwf_col_fld {
    float: none !important;
    margin: 0;
    width: auto;
    font-size: 1.6rem;
  }
  .zcwf_lblLeft .zcwf_col_help {
    width: 40%;
  }
  .zcwf_lblLeft .zcwf_privacy {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin-top: 0;
    text-align: left;
  }
  .zcwf_lblLeft .zcwf_privacy .zcwf_privacy_txt {
    font-size: 1.6rem;
  }
  .zcwf_lblLeft .zcwf_button {
    width: 100%;
  }
  .zcwf_lblLeft .zcwf_button.formsubmit {
    margin-right: 0;
    margin-bottom: 2rem;
    width: 100%;
  }
  .zcwf_lblLeft .zcwf_button[name="reset"] {
    height: 5rem;
  }
  .contactThanks__head {
    font-size: 2.4rem;
  }
  .contactThanks__text {
    margin-top: 3rem;
    font-size: 1.6rem;
  }
  .contactThanks__link {
    margin: 5rem auto 0;
    width: auto;
  }
  .contactThanks__btn {
    height: 7.6rem;
  }
  .companySec {
    padding: 0 0 3rem;
  }
  .companySec__head {
    padding-bottom: 1rem;
    font-size: 2.6rem;
  }
  .companySec__head--img {
    margin-left: 1.2rem;
    width: 1.2rem;
  }
  .companySec__body {
    margin-top: 0;
    width: 100%;
  }
  .companyAbout__ttl,
  .companyAbout__dtl {
    padding: 1rem 0;
    font-size: 1.5rem;
  }
  .companyAbout__ttl {
    padding-left: 1rem;
    width: 11.5rem;
  }
  .companyAbout__dtl {
    width: calc(100% - 11.5rem);
  }
  .appMv {
    padding: 9rem 0 3rem;
  }
  .appMv__text {
    width: 100%;
  }
  .appMv__head--main {
    font-size: 4.8rem;
  }
  .appMv__head--sub {
    margin: 1.5rem 0 0;
    font-size: 1.6rem;
  }
  .appMv__summary {
    margin-top: 1.5rem;
    font-size: 1.8rem;
    line-height: 2;
  }
  .appMv__dl {
    margin-top: 1.5rem;
    width: auto;
  }
  .appMv__btn {
    width: 100%;
    height: 6.4rem;
    font-size: 1.6rem;
  }
  .appMv__img {
    width: 100%;
  }
  .appIntro {
    background: linear-gradient(
      -15deg,
      transparent,
      transparent 30%,
      #f16232 30.05%,
      #f16232
    );
  }
  .appIntro__container {
    padding: 3rem 0 3.5rem;
  }
  .appIntro__ttl {
    font-size: 2rem;
  }
  .appIntro__dtl {
    margin-top: 3rem;
    font-size: 1.4rem;
    text-align: left;
  }
  .appIntro__img {
    margin-top: 3rem;
  }
  .appFunction {
    padding: 3rem 0;
  }
  .appFunction__head {
    text-align: center;
  }
  .appFunction__head--main {
    font-size: 1.6rem;
  }
  .appFunction__head--sub {
    font-size: 2.6rem;
  }
  .appFunction .appFunctionNav {
    margin: 2rem 0 3rem;
  }
  .appFunction .appFunctionNav__item {
    width: calc((100% - 0.8rem) / 2);
  }
  .appFunction .appFunctionNav__item:not(:nth-child(3n + 1)) {
    margin-left: 0;
  }
  .appFunction .appFunctionNav__item:not(:nth-child(2n + 1)) {
    margin-left: 0.8rem;
  }
  .appFunction .appFunctionNav__item:nth-child(n + 3),
  .appFunction .appFunctionNav__item:nth-child(n + 4) {
    margin-top: 0.8rem;
  }
  .appFunction .appFunctionNav__link {
    padding-right: 0.8rem;
    padding-left: 0.8rem;
    height: 5rem;
    font-size: 1.3rem;
  }
  .appFunction .appFunctionNav__link--num {
    margin-right: 0.5rem;
  }
  .appFunction .appFunctionNav__link .icon {
    font-size: 1rem;
  }
  .appFunction__item {
    padding: 3rem 0;
  }
  .appFunction__text {
    margin-right: 0;
    width: 100%;
  }
  .appFunction__ttl {
    font-size: 2.4rem;
  }
  .appFunction__ttl--num {
    font-size: 1.6rem;
  }
  .appFunction__ttl--text {
    line-height: 1.7;
  }
  .appFunction__dtl {
    margin-top: 1rem;
    font-size: 1.4rem;
  }
  .appFunction__subitem {
    margin-top: 2rem;
    padding: 1rem;
  }
  .appFunction__subttl {
    font-size: 1.6rem;
  }
  .appFunction__subttl--icon {
    margin-right: 1rem;
  }
  .appFunction__subdtl {
    margin-top: 1rem;
    font-size: 1.4rem;
  }
  .appFunction__link {
    margin-top: 2rem;
  }
  .appFunction__btn {
    max-width: 100%;
    font-size: 1.4rem;
  }
  .appFunction__img {
    margin-top: 2rem;
    width: 100%;
  }
  .appService {
    padding: 6rem 0 4.5rem;
  }
  .appService__bg {
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transform: none;
  }
  .appService__head {
    text-align: center;
  }
  .appService__head--main {
    font-size: 1.6rem;
  }
  .appService__head--sub {
    font-size: 2.6rem;
  }
  .appService__list {
    margin-top: 4rem;
  }
  .appService__item {
    z-index: 1;
    margin-bottom: 6rem;
    width: 100%;
  }
  .appService__item:not(:nth-child(4n + 1)) {
    margin-left: 0;
  }
  .appService__text {
    height: auto;
  }
  .appService__ttl {
    font-size: 2rem;
    font-weight: 700;
    text-align: center;
  }
  .appService__dtl {
    margin-top: 2rem;
    font-size: 1.4rem;
    line-height: 1.8;
  }
  .appServiceBanner {
    margin-top: 0;
    padding: 2rem 1.5rem;
    height: auto;
  }
  .appServiceBanner__text {
    margin-top: 2rem;
    margin-left: 0;
  }
  .appServiceBanner__ttl {
    font-size: 2.2rem;
  }
  .appServiceBanner__ttl--sub {
    margin-right: 0;
    margin-bottom: 1rem;
  }
  .appServiceBanner__dtl {
    margin-top: 2rem;
    font-size: 1.6rem;
    line-height: 1.6;
  }
  .appServiceBanner:hover .appServiceBanner__ttl--sub {
    border: solid 2px #169894;
  }
  .appPrice {
    padding: 6rem 0;
  }
  .appPrice__bg {
    top: 30%;
    left: calc(50% - 75.5vw);
    width: 150vw;
    height: 54rem;
  }
  .appPrice__head--main {
    font-size: 1.6rem;
  }
  .appPrice__head--sub {
    font-size: 2.6rem;
  }
  .appPrice__list {
    margin-top: 2.5rem;
  }
  .appPrice__item {
    padding: 2rem 0;
    border: solid 1px #a0a0a8;
    width: 100%;
    max-width: none;
  }
  .appPrice__item:not(:first-child) {
    margin-top: 2rem;
    border: solid 1px #a0a0a8;
  }
  .appPrice__link {
    margin: 3rem auto 0;
    width: 100%;
    height: 7.6rem;
  }
  .appPrice__btn {
    height: 100%;
  }
  .appPrice .appPricePlan {
    text-align: center;
  }
  .appPrice .appPricePlan__ttl {
    font-size: 2.2rem;
  }
  .appPrice .appPricePlan__subttl {
    margin-top: 1rem;
    height: auto;
  }
  .appPrice .appPricePlan__price {
    margin-top: 1rem;
    height: auto;
    font-size: 2.2rem;
    text-align: center;
  }
  .appPrice .appPricePlan__price .num {
    font-size: 3rem;
  }
  .appPrice .appPricePlan__price .note {
    font-size: 1.2rem;
  }
  .appPrice .appPriceFunction {
    margin: 3rem 2rem 0;
    padding-top: 1.5rem;
  }
  .appPrice .appPriceFunction__list {
    margin-top: 0.5rem;
  }
  .appFooter {
    padding: 2.5rem 0;
  }
  .appFooter__head {
    line-height: 1.4;
  }
  .appFooter__head--main {
    font-size: 4.6rem;
  }
  .appFooter__head--sub {
    margin-left: 0;
    font-size: 1.6rem;
  }
  .appFooter__dl {
    margin-top: 2.5rem;
    width: 100%;
  }
  .appFooter__btn {
    width: 100%;
    height: 6.4rem;
  }
  .pageHead {
    padding-top: 2rem;
    height: 20rem;
    background: url("../img/pageHead_bg_sp.png") no-repeat center/cover;
  }
  .pageHead--app {
    padding-top: 8rem;
    height: 28rem;
    background: url("../img/pageHead_app_bg.png") no-repeat center/cover;
  }
  .pageHead__main {
    font-size: 3.6rem;
  }
  .pageHead__main--small {
    font-size: 3rem;
  }
  .pageHead__sub {
    font-size: 1.5rem;
  }
  .pageBody {
    padding: 3rem 0 5rem;
  }
  .pageNav__text {
    width: 100%;
    font-size: 1.4rem;
  }
  .pageNav__select {
    margin: 0.8rem 0 0;
    padding: 0 1.4rem;
    width: calc(100% - 8.5rem);
    height: 4.5rem;
    font-size: 1.4rem;
  }
  .pageNav__btn {
    margin: 0.8rem 0 0 1rem;
    width: 7.5rem;
    height: 4rem;
    font-size: 1.4rem;
  }
  .contents--faq .pageBody {
    padding-top: 3rem;
  }
  .contents--manual .pageBody {
    padding-top: 3rem;
  }
  .contents--works .pageBody {
    padding: 3rem 0 0;
  }
  .faqItem .manualItem__url--btn {
    top: 25px;
    right: 0;
    text-align: center;
  }
}

@media screen and (orientation: landscape) {
  .md-overlay--ripple {
    width: 300vw;
    height: 300vw;
  }
}
