@charset "UTF-8";
/*_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

BaseLayout CSS

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/*/
/* CSS Import */
@import url("//fonts.googleapis.com/css?family=Noto+Sans+JP:900|Oswald:300,400&display=swap");
@import url("//fonts.googleapis.com/css2?family=Oswald&display=swap");
@import url("//fonts.googleapis.com/css2?family=Oswald:wght@200&display=swap");
@import url("//fonts.googleapis.com/css2?family=Playfair+Display&display=swap");
/* Settings */
/*_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

Variables CSS

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/*/
/* variables
-------------------------------------------- */
/*_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

SVG CSS

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/*/
/**
 * SVG画像をアイコンに使いたい的ないろいろ
 *
 *  [Html] SVG塗りつぶしの色をBackground-Imageとして扱うときに変更する
 * https://code.i-harness.com/ja/q/cbfa3c
 */
/*_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

FUNCTIONS CSS function & mixin

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/*/
/* Responsive
-------------------------------------------- */
/*_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

Reset CSS

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/*/
:root {
  font-size: 10px; }

html {
  width: 100%;
  color: #000;
  overflow: auto; }

body {
  font-family: -apple-system, BlinkMacSystemFont, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN W3", HiraKakuProN-W3, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "游ゴシック体", YuGothic, "Yu Gothic M", "游ゴシック Medium", "Yu Gothic Medium", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "Helvetica Neue", HelveticaNeue, "Segoe UI", sans-serif;
  font-size: 1.4rem;
  line-height: 1.8;
  letter-spacing: .05em;
  font-feature-settings: "palt";
  -webkit-text-size-adjust: none;
  width: 100%;
  background: #FFF;
  overflow: hidden; }

.preload {
  height: 100%; }
  .preload body {
    height: 100%; }

/*スクロールバー全体*/
::-webkit-scrollbar {
  width: 8px; }

/*スクロールバーの軌道*/
::-webkit-scrollbar-track {
  box-shadow: inset 0 0 4px rgba(0, 0, 0, 0.1); }

/*スクロールバーの動く部分*/
::-webkit-scrollbar-thumb {
  background: #000;
  border-radius: 8px; }

body > img,
body > noscript > img,
body > iframe {
  display: none; }

body, div, dl, dt, dd, ul, ol, li, h1, h2,
h3, h4, h5, h6, pre, code, form, fieldset,
legend, input, textarea, p, blockquote, th, td,
figure, address, label {
  margin: 0;
  padding: 0;
  word-break: break-word;
  -webkit-overflow-scrolling: touch; }

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

table br {
  display: none !important; }

table th br,
table td br {
  display: inline !important; }

fieldset,
img {
  border: 0; }

*,
::before,
::after {
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-overflow-scrolling: touch; }

/*
	TODO think about hanlding inheritence differently, maybe letting IE6 fail a bit...
*/
address, caption, cite, code, dfn, em, th, var, i {
  font-style: normal;
  font-weight: normal; }

ul {
  list-style: none; }

caption,
th {
  text-align: left; }

h1, h2, h3, h4, h5, h6 {
  font-size: 100%;
  font-weight: normal; }

q:before,
q:after {
  content: ''; }

abbr,
acronym {
  border: 0;
  font-variant: normal; }

input[type=tel],
input[type=text],
input[type=file],
input[type=email],
input[type=reset],
input[type=image],
input[type=button],
input[type=submit],
input[type=number],
input[type=password],
textarea, select {
  font-family: -apple-system, BlinkMacSystemFont, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN W3", HiraKakuProN-W3, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "游ゴシック体", YuGothic, "Yu Gothic M", "游ゴシック Medium", "Yu Gothic Medium", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "Helvetica Neue", HelveticaNeue, "Segoe UI", sans-serif;
  font-size: 1.3rem;
  font-weight: inherit;
  border: none;
  border-radius: 0;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  -ms-appearance: none;
  appearance: none; }

input {
  font-family: -apple-system, BlinkMacSystemFont, "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN W3", HiraKakuProN-W3, "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "游ゴシック体", YuGothic, "Yu Gothic M", "游ゴシック Medium", "Yu Gothic Medium", "メイリオ", Meiryo, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", "Helvetica Neue", HelveticaNeue, "Segoe UI", sans-serif;
  font-size: 1.3rem;
  font-weight: inherit;
  border: none;
  border-radius: 0;
  outline: none; }

select {
  outline: none;
  color: #000;
  text-overflow: '';
  font-size: inherit;
  text-indent: .01rem;
  vertical-align: middle;
  background: #FFF;
  padding: 10px;
  padding-right: 31px !important;
  border: #DDD 1px solid;
  background: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2211%22%20height%3D%226%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M0%2C0V1H1V0ZM1%2C1V2H2V1ZM2%2C2V3H3V2ZM3%2C3V4H4V3ZM4%2C4V5H5V4Zm6-4V1h1V0ZM9%2C2h1V1H9ZM8%2C3H9V2H8ZM7%2C4H8V3H7ZM6%2C5H7V4H6ZM5%2C6H6V5H5Z%22%2F%3E%3C%2Fsvg%3E") no-repeat center right 10px; }
  select option {
    color: #000; }
  select::-ms-expand {
    display: none; }
  select:-moz-focusring {
    color: transparent;
    text-shadow: 0 0 0 #000; }

textarea {
  resize: vertical; }

/*because legend doesn't inherit in IE */
legend {
  color: #333; }

img, svg {
  display: block;
  vertical-align: bottom;
  width: 100%;
  height: auto; }

/* clearfix */
.clearfix {
  min-height: 1px; }

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

a {
  background-color: transparent;
  -webkit-text-decoration-skip: objects;
  text-decoration: none;
  cursor: pointer;
  color: inherit;
  transition: all 0.6s; }

a:active,
a:hover {
  outline-width: 0; }

.btn:active,
.btn:hover {
  outline-width: 0;
  /* Remove the outline when hovering in all browsers */
  opacity: 0.6; }

a, area, button, [role="button"], input:not([type="range"]), label, select, summary, textarea {
  -ms-touch-action: manipulation;
  touch-action: manipulation; }

/*_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

Animation CSS

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/*/
/* Loading
-------------------------------------------- */
.loading {
  position: fixed;
  top: 50%;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 999;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-50%);
  transition: opacity 0.8s cubic-bezier(0.77, 0, 0.175, 1);
  background: #FFF url(../img/common/loading.gif) no-repeat center center/100px auto; }
  .preload .loading {
    opacity: 1;
    pointer-events: auto; }

/* アニメーション用
-------------------------------------------- */
/* ------------------------------------
【オプション】
data-tp-offset="画面下からのpx数で指定"
data-tp-delay="ミリ秒で指定"
------------------------------------ */
.animation-video-cover {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: #fff;
  transform-origin: top right;
  transform: scaleX(1);
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 0.8s; }

.animation-video-cover.active {
  transform: scaleX(0); }

.animation-fadein {
  position: relative;
  transition: all cubic-bezier(0.65, 0, 0.2, 1) 1s;
  opacity: 0; }

.animation-fadein.active {
  opacity: 1; }

.animation-fade-slidein {
  position: relative;
  transform: translateY(100px);
  transition: all cubic-bezier(0.65, 0, 0.2, 1) 1s;
  opacity: 0; }

.animation-fade-slidein.active {
  transform: translateY(0px);
  opacity: 1; }

.animation-fade-slidein-02 {
  position: relative;
  transform: translateY(20px);
  transition: all cubic-bezier(0.65, 0, 0.2, 1) 1s;
  opacity: 0; }

.animation-fade-slidein-02.active {
  transform: translateY(0px);
  opacity: 1; }

.animation-txt-cover {
  display: inline-block;
  position: relative;
  color: transparent;
  transition: color 0s .5s; }

.animation-txt-cover .t1a,
.animation-txt-cover .t2a {
  color: transparent;
  transition: color 0s .5s;
  font-size: 42px; }

.animation-txt-cover .t1b,
.animation-txt-cover .t2b {
  color: transparent;
  transition: color 0s .5s;
  font-size: 24px; }

.animation-txt-cover.active {
  color: #fff; }

.animation-txt-cover.active.txt-gray {
  color: #AAA; }

.animation-txt-cover.active.txt-black {
  color: #000; }

.animation-txt-cover.active .txt-yellow {
  transition: color 0s .5s;
  color: #FF6 !important; }

.animation-txt-cover.active .t1a,
.animation-txt-cover.active .t1b {
  color: #ff7373; }

.animation-txt-cover.active .t2a,
.animation-txt-cover.active .t2b {
  color: #77ddff; }

@media only screen and (max-width: 768px) {
  .animation-txt-cover .t1a,
  .animation-txt-cover .t2a {
    font-size: 20px; }

  .animation-txt-cover .t1b,
  .animation-txt-cover .t2b {
    font-size: 16px; } }
.animation-txt-cover::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  background: #fff;
  transform: scaleX(0);
  transform-origin: left top; }

.animation-txt-cover.active::before {
  animation: txt_cover cubic-bezier(0.65, 0, 0.2, 1) 1s forwards; }

@keyframes txt_cover {
  0% {
    transform: scaleX(0);
    transform-origin: left top; }
  49% {
    transform: scaleX(1);
    transform-origin: left top; }
  51% {
    transform: scaleX(1);
    transform-origin: right top; }
  100% {
    transform: scaleX(0);
    transform-origin: right top; } }
.animation-txt-cover-02 {
  display: inline-block;
  position: relative;
  color: transparent;
  transition: color 0s .6s;
  padding: 1px; }

.animation-txt-cover-02 .t1,
.animation-txt-cover-02 .t2,
.animation-txt-cover-02 .t3,
.animation-txt-cover-02 .t4,
.animation-txt-cover-02 .t5,
.animation-txt-cover-02 .t6,
.animation-txt-cover-02 .t7,
.animation-txt-cover-02 .t8,
.animation-txt-cover-02 .t9 {
  color: transparent;
  transition: color 0s .6s; }

.animation-txt-cover-02.active {
  color: #fff; }

.animation-txt-cover-02.active .t1 {
  color: #e7796c; }

.animation-txt-cover-02.active .t2 {
  color: #73d4e5; }

.animation-txt-cover-02.active .t3 {
  color: #35cabb; }

.animation-txt-cover-02.active .t4 {
  color: #3eb679; }

.animation-txt-cover-02.active .t5 {
  color: #f8df00; }

.animation-txt-cover-02.active .t6 {
  color: #e15d4c; }

.animation-txt-cover-02.active .t7 {
  color: #e581a1; }

.animation-txt-cover-02.active .t8 {
  color: #7ac5d1; }

.animation-txt-cover-02.active .t9 {
  color: #92b024; }

.animation-txt-cover-02::before,
.animation-txt-cover-02::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 50%;
  z-index: 2;
  background: #fff;
  transform: scaleX(0);
  transform-origin: left top; }

.animation-txt-cover-02::after {
  top: 50%; }

.animation-txt-cover-02.active::before {
  animation: txt_cover cubic-bezier(0.65, 0, 0.2, 1) 1s forwards; }

.animation-txt-cover-02.active::after {
  animation: txt_cover cubic-bezier(0.65, 0, 0.2, 1) 1s 0.15s forwards; }

.animation-txt-cover-03 {
  display: inline-block;
  position: relative; }

.animation-txt-cover-03::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100.5%;
  height: 100.5%;
  z-index: 2;
  background: #FFF;
  transform-origin: right top;
  transform: scaleX(1);
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 0.5s 0.5s; }

.animation-txt-cover-03.active::before {
  transform: scaleX(0); }

.animation-txt-cover-04 {
  display: inline-block;
  position: relative; }

.animation-txt-cover-04::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100.5%;
  height: 100%;
  z-index: 2;
  background: #fff;
  transform-origin: right top;
  transform: scaleX(1);
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 0.8s; }

.animation-txt-cover-04.active::before {
  transform: scaleX(0); }

.animation-txt-cover-05 {
  display: inline-block;
  position: relative; }

.animation-txt-cover-05::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100.5%;
  height: 103%;
  z-index: 2;
  background: #fff;
  transform-origin: right top;
  transform: scaleX(1);
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 0.5s 0.2s; }

.animation-txt-cover-05.active::before {
  transform: scaleX(0); }

.text-color-02.active {
  color: #decabb; }

.text-color-03.active {
  color: #111; }

.animation-txt-01 {
  display: inline-block;
  white-space: nowrap;
  position: relative;
  overflow: hidden;
  opacity: 1;
  width: 0 !important; }

.animation-txt-01.active {
  opacity: 1;
  width: 100% !important;
  transition: all cubic-bezier(0.65, 0, 0.2, 1) 2s; }

.animation-bg-01 {
  transform-origin: top left;
  transform: scaleX(0);
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 1s; }

.animation-bg-01.active {
  transform: scaleX(1); }

.animation-bg-02 {
  transform-origin: top right;
  transform: scaleX(0);
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 1s; }

.animation-bg-02.active {
  transform: scaleX(1); }

.animation-bg-03 {
  transform-origin: top right;
  transform: scaleY(0);
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 0.5s 0.8s; }

.animation-bg-03.active {
  transform: scaleY(1); }

.animation-bg-04 {
  transform-origin: top right;
  transform: scaleY(0);
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 1s; }

.animation-bg-04.active {
  transform: scaleY(1); }

.animation-bg-05 {
  transform-origin: top right;
  transform: scaleY(0);
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 0.7s; }

.animation-bg-05.active {
  transform: scaleY(1); }

.animation-bg-06 {
  transform-origin: top left;
  transform: scaleX(0) skewX(-30deg);
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 1s 0.8s; }

.animation-bg-06.active {
  transform: scaleX(1) skewX(-30deg); }

.animation-bg-07 {
  transform-origin: top left;
  transform: scaleX(0);
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 1s 0.8s; }

.animation-bg-07.active {
  transform: scaleX(1); }

.animation-img-cover-01 {
  position: relative;
  overflow: hidden;
  opacity: 0; }

.animation-img-cover-01.active {
  opacity: 1; }

.animation-img-cover-01::before {
  content: "";
  display: block;
  width: 160%;
  height: 160%;
  position: absolute;
  top: 80%;
  left: 160%;
  background: #f6f6f6;
  z-index: 3;
  transform-origin: top left;
  transform: rotate(-210deg) scaleY(1);
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 1s; }

.animation-img-cover-01.active::before {
  transform: rotate(-210deg) scaleY(0); }

.animation-img-cover-02 {
  position: relative;
  overflow: hidden;
  opacity: 0; }

.animation-img-cover-02.active {
  opacity: 1; }

.animation-img-cover-02::before {
  content: "";
  display: block;
  width: 160%;
  height: 160%;
  position: absolute;
  top: 80%;
  left: 160%;
  background: #f6f6f6;
  z-index: 3;
  transform-origin: top left;
  transform: rotate(-210deg) scaleY(1);
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 1.3s; }

.animation-img-cover-02.active::before {
  transform: rotate(-210deg) scaleY(0); }

.animation-img-cover-02b {
  position: relative;
  overflow: hidden;
  opacity: 0; }

.animation-img-cover-02b.active {
  opacity: 1; }

.animation-img-cover-02b::before {
  content: "";
  display: block;
  width: 160%;
  height: 160%;
  position: absolute;
  top: 80%;
  left: 160%;
  background: #fff;
  z-index: 3;
  transform-origin: top left;
  transform: rotate(-210deg) scaleY(1);
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 1.3s; }

.animation-img-cover-02b.active::before {
  transform: rotate(-210deg) scaleY(0); }

.animation-img-cover-03 {
  position: relative;
  overflow: hidden;
  opacity: 0; }

.animation-img-cover-03.active {
  opacity: 1; }

.animation-img-cover-03::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: #f6f6f6;
  z-index: 3;
  transform-origin: top right;
  transform: scaleX(1);
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 1.5s; }

.animation-img-cover-03.active::before {
  transform: scaleX(0); }

.animation-img-cover-04 {
  position: relative;
  overflow: hidden;
  opacity: 0; }

.animation-img-cover-04.active {
  opacity: 1; }

.animation-img-cover-04::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: #f6f6f6;
  z-index: 3;
  transform-origin: top right;
  transform: scaleY(1);
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 1s; }

.animation-img-cover-04.active::before {
  transform: scaleY(0); }

.animation-img-cover-05 {
  position: relative;
  opacity: 0; }

.animation-img-cover-05.active {
  opacity: 1; }

.animation-img-cover-05::before,
.animation-img-cover-05::after {
  content: "";
  display: block;
  width: 50%;
  height: 101%;
  padding: 2px 0;
  position: absolute;
  top: 0;
  left: 0;
  background: #f6f6f6;
  z-index: 3;
  transform-origin: bottom left;
  transform: scaleY(1);
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 1s; }

.animation-img-cover-05::after {
  left: 50%;
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 1s 0.2s; }

.animation-img-cover-05.active::before,
.animation-img-cover-05.active::after {
  transform: scaleY(0); }

.animation-img-cover-06 {
  position: relative;
  overflow: hidden; }

.animation-img-cover-06::before {
  content: "";
  display: block;
  width: 180%;
  height: 180%;
  position: absolute;
  top: 80%;
  left: 160%;
  background: #f6f6f6;
  z-index: 3;
  transform-origin: top left;
  transform: rotate(-210deg) scaleY(1);
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 1.5s; }

.animation-img-cover-06.active::before {
  transform: rotate(-210deg) scaleY(0); }

.animation-img-cover-06b {
  position: relative;
  overflow: hidden; }

.animation-img-cover-06b::before {
  content: "";
  display: block;
  width: 150%;
  height: 200%;
  position: absolute;
  top: 80%;
  left: 160%;
  background: #f6f6f6;
  z-index: 3;
  transform-origin: top left;
  transform: rotate(-210deg) scaleY(1);
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 1s; }

.animation-img-cover-06b.active::before {
  transform: rotate(-210deg) scaleY(0); }

.animation-img-cover-07 {
  position: relative;
  opacity: 0; }

.animation-img-cover-07.active {
  opacity: 1; }

.animation-img-cover-07::before,
.animation-img-cover-07::after {
  content: "";
  display: block;
  width: 100%;
  height: 50.5%;
  padding: 2px 0;
  position: absolute;
  top: 0;
  left: 0;
  background: #fff;
  z-index: 3;
  transform-origin: top left;
  transform: scaleY(1);
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 1s; }

.animation-img-cover-07::after {
  top: 50%;
  transform-origin: bottom left;
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 1s; }

.animation-img-cover-07.active::before,
.animation-img-cover-07.active::after {
  transform: scaleY(0); }

.animation-img-cover-08 {
  position: relative;
  opacity: 0; }

.animation-img-cover-08.active {
  opacity: 1; }

.animation-img-cover-08::before,
.animation-img-cover-08::after {
  content: "";
  display: block;
  width: 100%;
  height: 51%;
  padding: 2px 0;
  position: absolute;
  top: 0;
  left: 0;
  background: #fff;
  z-index: 3;
  transform-origin: top left;
  transform: scaleY(1);
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 1s 0.7s; }

.animation-img-cover-08::after {
  top: 50%;
  transform-origin: bottom left;
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 1s 0.7s; }

.animation-img-cover-08.active::before,
.animation-img-cover-08.active::after {
  transform: scaleY(0); }

.animation-img-cover-09 {
  position: relative;
  overflow: hidden;
  opacity: 0; }

.animation-img-cover-09.active {
  opacity: 1;
  pointer-events: none; }

.animation-img-cover-09::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: #fff;
  z-index: 3;
  transform-origin: top right;
  transform: scaleX(1);
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 1s; }

.animation-img-cover-09.active::before {
  transform: scaleX(0); }

.animation-img-cover-10 {
  position: relative;
  opacity: 0; }

.animation-img-cover-10.active {
  opacity: 1; }

.animation-img-cover-10::before,
.animation-img-cover-10::after {
  content: "";
  display: block;
  width: 100%;
  height: 50%;
  padding: 0;
  position: absolute;
  top: 0;
  left: 0;
  background: #fff;
  z-index: 3;
  transform-origin: top left;
  transform: scaleY(1);
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 1s; }

.animation-img-cover-10::after {
  top: 50%;
  transform-origin: bottom left;
  transition: transform cubic-bezier(0.65, 0, 0.2, 1) 1s; }

.animation-img-cover-10.active::before,
.animation-img-cover-10.active::after {
  transform: scaleY(0); }

.animation-img-slide-01 {
  position: relative;
  overflow: hidden;
  width: 0 !important;
  transition: all cubic-bezier(0.65, 0, 0.2, 1) 1s; }

.animation-img-slide-01.active {
  width: 100% !important; }

.animation-img-cover-11 {
  position: relative;
  overflow: hidden; }

.animation-img-cover-11::before, .animation-img-cover-11::after {
  content: "";
  display: block;
  width: 180%;
  height: 200%;
  position: absolute;
  top: 17%;
  right: -62%;
  background: #ddd;
  z-index: 3;
  transform-origin: top right;
  transform: rotate(30deg) scaleY(1);
  transition: transform cubic-bezier(0.77, 0, 0.175, 1) 1s 0.5s; }

.animation-img-cover-11::after {
  background: #FFF;
  transition: transform cubic-bezier(0.77, 0, 0.175, 1) 1.5s; }

.animation-img-cover-11.active::before, .animation-img-cover-11.active::after {
  transform: rotate(30deg) scaleY(0); }

.animation-btn-01 {
  position: relative;
  overflow: hidden;
  opacity: 1;
  width: 0 !important;
  margin: 0 auto; }

.animation-btn-01.active {
  opacity: 1;
  width: 100% !important;
  transition: all cubic-bezier(0.65, 0, 0.2, 1) 1s 0.5s; }

@media only screen and (max-width: 768px) {
  .animation-btn-01.active {
    opacity: 1;
    width: 100% !important;
    transition: all cubic-bezier(0.65, 0, 0.2, 1) 1s 0.5s; } }
/*_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

Common CSS

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/*/
html {
  background: #FFF; }

body {
  background: #FFF !important; }

#container {
  padding-top: 69px; }
  @media (max-width: 900px) {
    #container {
      padding-top: 60px; } }
  @media (max-width: 480px) {
    #container {
      padding-top: 50px; } }
  #container--home {
    padding-top: 0; }
    @media (max-width: 900px) {
      #container--home {
        padding-top: 0; } }
    @media (max-width: 480px) {
      #container--home {
        padding-top: 0; } }

.inner {
  max-width: 800px;
  margin: 0 auto;
  padding: 70px 20px; }
  @media (max-width: 900px) {
    .inner {
      padding: 50px 20px; } }
  @media (max-width: 480px) {
    .inner {
      padding: 30px 10px; } }

.icon-scroll {
  position: fixed;
  display: flex;
  justify-content: center;
  align-items: center;
  right: 0;
  bottom: 0;
  width: 40px;
  height: 40px;
  font-size: 1.1rem;
  color: #FFF;
  background: #000;
  z-index: 100; }
  .icon-scroll__link {
    display: block;
    width: 100%;
    height: 100%;
    background: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2211%22%20height%3D%226%22%3E%3Cpath%20fill%3D%22%23FFF%22%20d%3D%22M1%2C6V5H0V6ZM2%2C5V4H1V5ZM3%2C4V3H2V4ZM4%2C3V2H3V3ZM5%2C2V1H4V2Zm6%2C4V5H10V6ZM9%2C5h1V4H9ZM8%2C4H9V3H8ZM7%2C3H8V2H7ZM6%2C2H7V1H6ZM5%2C1H6V0H5Z%22%2F%3E%3C%2Fsvg%3E") no-repeat center center; }

@keyframes home-ttl-cover-anim {
  0% {
    left: 0;
    width: 0;
    transform: scaleX(1);
    transform-origin: right; }
  49% {
    left: 0;
    width: 100%;
    transform: scaleX(1);
    transform-origin: right; }
  51% {
    left: 0;
    width: 100%;
    transform: scaleX(1);
    transform-origin: right; }
  100% {
    left: 0;
    width: 100%;
    transform: scaleX(0);
    transform-origin: right; } }
.tp-icon_arrow.black {
  fill: #000; }
.tp-icon_arrow.white {
  fill: #FFF; }

.pc_disp {
  display: block; }

.tb_disp, .sp_disp {
  display: none !important; }

@media (max-width: 900px) {
  .pc_disp.tb {
    display: none !important; }

  .tb_disp {
    display: block !important; } }
@media (max-width: 480px) {
  .pc_disp {
    display: none !important; }

  .sp_disp {
    display: block !important; } }
/* Pages */
/*_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

header CSS

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/*/
.header {
  width: 100%;
  height: 70px;
  position: fixed;
  top: 0;
  z-index: 100;
  transition: top 0.5s cubic-bezier(0.77, 0, 0.175, 1);
  border-bottom: 1px solid #DDD; }
  @media (max-width: 900px) {
    .header {
      height: 60px;
      top: 0;
      left: 0; } }
  @media (max-width: 480px) {
    .header {
      height: 50px; } }
  .js-header-hide .header {
    top: -70px; }
    @media (max-width: 900px) {
      .js-header-hide .header {
        top: -60px; } }
  .js-header-fix .header {
    top: 0; }
  .header__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 100%;
    padding: 0;
    background: #FFF;
        /*&--bg_w {
            display: flex;
            justify-content: space-between;
            align-items: center;
            height: 100%;
            padding: 0;
            background: #FFF;
        }
		&.bgcolor {
			background: #FFF;
			transition: background 1s,color 1s;
		}*/ }
  .header__logo-box {
    width: 248px;
    position: absolute;
    left: 30px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 150; }
    @media (max-width: 900px) {
      .header__logo-box {
        width: 150px; } }
    @media (max-width: 480px) {
      .header__logo-box {
        width: 40%;
        left: 20px; } }
  .header__logo-link {
    display: block;
    width: 100%;
    font-family: 'Playfair Display', serif;
    font-size: 2.6rem; }

/*_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

g-nav CSS

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/*/
.g-nav__list-item, .g-nav__list-item-contact {
  display: flex;
  align-items: center;
  height: 100%;
  margin-right: 24px;
  font-weight: bold; }
  .g-nav__list-item:last-child, .g-nav__list-item-contact:last-child {
    margin-right: 0; }

.g-nav {
  width: 100%;
  height: 100%;
  z-index: 100;
  transition: height 0.5s cubic-bezier(0.77, 0, 0.175, 1);
  -webkit-overflow-scrolling: touch; }
  @media (max-width: 1180px) {
    .g-nav {
      position: fixed;
      width: 100%;
      height: calc(100vh - 70px);
      max-width: 480px;
      padding: 70px 20px 10px 10px;
      top: 70px;
      right: -100%;
      background: #FFF;
      transition: right 0.5s cubic-bezier(0.77, 0, 0.175, 1);
      overflow: auto;
      border-left: 1px solid #DDD; } }
  @media (max-width: 900px) {
    .g-nav {
      height: calc(100vh - 60px);
      top: 60px;
      padding: 70px 10px 10px 10px; } }
  @media (max-width: 480px) {
    .g-nav {
      border-left: none;
      top: 50px; } }
  .g-nav__inner {
    height: 100%;
    transition: background 1s,color 1s;
    background: none; }
    @media (max-width: 1180px) {
      .g-nav__inner {
        height: auto; } }
  .g-nav__content {
    height: 100%; }
    @media (max-width: 1180px) {
      .g-nav__content {
        height: inherit; } }
  .g-nav__list {
    display: flex;
    justify-content: center;
    height: 100%; }
    @media (max-width: 1180px) {
      .g-nav__list {
        display: block;
        width: 100%;
        height: auto; } }
  @media (max-width: 1180px) {
    .g-nav__list-item.pulldown {
      position: relative;
      display: block; } }
  @media (max-width: 1180px) {
    .g-nav__list-item {
      margin: -1px 0 0;
      border: 1px solid #DDD; } }
  .g-nav__list-item-contact {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%); }
    @media (max-width: 1180px) {
      .g-nav__list-item-contact {
        position: relative;
        display: inline-block;
        left: 50%;
        transform: translate(-50%, 20px); } }
  .g-nav__list-link {
    position: relative;
    color: #000;
    /*.g-nav__list-item.pulldown & {
    	padding-right: 20px;
    	
    	&::before {
    		position: absolute;
    		content: "";
    		right: 8px;
    		top: calc(50% - 6px);
    		width: 6px;
    		height: 6px;
    		border-top: 1px solid #333;
    		border-right: 1px solid #333;
    		-webkit-transform: rotate(135deg) translateY(-50%);
    		transform: rotate(135deg) translateY(-50%);
    		@include pc {
    			right: 20px;
    			top: calc(50% - 10px);
    			width: 10px;
    			height: 10px;
    			border-top: 2px solid #333;
    			border-right: 2px solid #333;
    		}
    	}
    }:*/ }
    @media (max-width: 1280px) {
      .g-nav__list-link {
        font-size: 1.3rem; } }
    @media (max-width: 1180px) {
      .g-nav__list-link {
        display: block;
        width: 100%;
        padding: 10px 40px 10px 10px;
        color: #000; } }
    @media (max-width: 480px) {
      .g-nav__list-link {
        color: #000; } }
    .g-nav__list-link--fb {
      position: relative;
      color: #000; }
      @media (max-width: 1280px) {
        .g-nav__list-link--fb {
          font-size: 1.3rem; } }
      @media (max-width: 1180px) {
        .g-nav__list-link--fb {
          display: block;
          width: 100%;
          padding: 10px 40px 10px 10px; } }
      @media (max-width: 480px) {
        .g-nav__list-link--fb {
          color: #000; } }
    .g-nav__list-link::after {
      position: absolute;
      content: "";
      width: 0;
      height: 1px;
      left: 0;
      top: calc(50% + 20px);
      background: #000;
      transition: width 0.4s; }
      @media (max-width: 1180px) {
        .g-nav__list-link::after {
          display: none; } }
    .g-nav__list-link:hover::after {
      width: 100%; }
  .g-nav__list-link-contact {
    padding: 4px 30px;
    color: #000;
    border: 2px solid #000;
    border-radius: 40px; }
    @media (max-width: 1180px) {
      .g-nav__list-link-contact {
        padding: 10px 30px; } }
  .g-nav__sublist {
    position: absolute;
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    top: 70px;
    left: 0px;
    padding: 30px 250px 60px;
    background: #EEE; }
    @media (max-width: 1500px) {
      .g-nav__sublist {
        padding: 30px calc((100vw - 900px) / 2) 60px; } }
    @media (max-width: 1180px) {
      .g-nav__sublist {
        position: relative;
        display: block;
        width: calc(100% + 2px);
        top: 0;
        padding: 0;
        margin: 1px -1px -1px -1px;
        background: #FFF; } }
  .g-nav__sublist-ttl {
    position: relative;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    width: 900px;
    margin: 0 auto;
    font-family: "Roboto", sans-serif;
    font-size: 2.0rem;
    font-weight: lighter; }
    @media (max-width: 1180px) {
      .g-nav__sublist-ttl {
        display: none; } }
  .g-nav__sublist-ttl-sub {
    padding-left: 20px;
    font-size: 1.4rem; }
  .g-nav__sublist-item {
    width: 33.33%;
    border-left: 1px solid #CCC; }
    @media (max-width: 1180px) {
      .g-nav__sublist-item {
        width: 100%;
        color: #000;
        border: none; } }
  .g-nav__sublist-link {
    padding: 10px 10px 10px 20px; }
    @media (max-width: 1180px) {
      .g-nav__sublist-link {
        display: block;
        margin: -1px 0 0;
        padding: 10px 40px 10px 10px;
        border: 1px solid #DDD;
        background: #F8F8F8; } }
  .g-nav__other {
    height: 100%;
    display: flex;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%); }
    @media (max-width: 1180px) {
      .g-nav__other {
        position: static;
        transform: none;
        flex-flow: wrap;
        margin: 10px 0 0;
        justify-content: center; } }
  .g-nav__other-item {
    display: flex;
    justify-content: center;
    align-items: center;
    padding-right: 30px;
    /*&:last-child {
        padding: 0;
        width: 70px;
        position: relative;
        border-left: #FFF solid 1px;
        @include tb {
            width: 100%;
            margin: 10px;
            position: static;
            transform: none;
        }
    }*/ }
    @media (max-width: 900px) {
      .g-nav__other-item {
        padding: 0 10px; } }
    .g-nav__other-item--fb {
      display: flex;
      justify-content: center;
      align-items: center;
      padding-right: 30px;
      /*&:last-child {
          padding: 0;
          width: 70px;
          position: relative;
          border-left: #DDD solid 1px;
          @include tb {
              width: 100%;
              margin: 10px;
              position: static;
              transform: none;
          }
      }*/ }
      @media (max-width: 900px) {
        .g-nav__other-item--fb {
          padding: 0 10px; } }
  .g-nav__other-item-icon {
    font-size: 17px;
    color: #000; }
    @media (max-width: 900px) {
      .g-nav__other-item-icon {
        color: #000; } }
    .g-nav__other-item-icon--fb {
      font-size: 17px;
      color: #000; }
      @media (max-width: 900px) {
        .g-nav__other-item-icon--fb {
          color: #000; } }
  .g-nav__other-item-link-img {
    width: 20px;
    fill: #000; }
    @media (max-width: 900px) {
      .g-nav__other-item-link-img {
        fill: #000; } }
    .g-nav__other-item-link-img--fb {
      width: 20px;
      fill: #000; }
      @media (max-width: 900px) {
        .g-nav__other-item-link-img--fb {
          fill: #000; } }
  @media (max-width: 900px) {
    .g-nav__search[type=button] {
      display: block;
      width: calc(100% + 10px);
      margin-right: 10px;
      padding: 5px;
      border: #DDD solid 1px;
      background: #FFF;
      border-radius: 5px; } }

.g-nav_trigger {
  display: none;
  position: absolute;
  right: 53px;
  left: auto;
  top: 20px;
  margin: 0 0 0 auto;
  cursor: pointer;
  z-index: 100; }
  @media (max-width: 1180px) {
    .g-nav_trigger {
      display: block;
      width: 40px;
      height: 40px;
      top: 15px;
      right: 10px; } }
  @media (max-width: 900px) {
    .g-nav_trigger {
      width: 60px;
      height: 60px;
      right: 0;
      top: 0; } }
  @media (max-width: 480px) {
    .g-nav_trigger {
      width: 50px;
      height: 50px; } }
  .g-nav_trigger__hamburger-menuspan {
    display: block;
    position: absolute;
    top: 29px;
    left: 10px;
    width: 26px;
    height: 2px;
    background: #000;
    transform: rotate(0);
    transition: all 0.3s cubic-bezier(0.77, 0, 0.175, 1); }
    .g-nav_trigger__hamburger-menuspan::before {
      content: "";
      display: block;
      position: absolute;
      top: -9px;
      left: 0;
      width: 100%;
      height: 2px;
      background: #000;
      transition: all 0.3s cubic-bezier(0.77, 0, 0.175, 1); }
    @media (max-width: 900px) {
      .g-nav_trigger__hamburger-menuspan {
        top: 34px;
        left: 17px; } }
    @media (max-width: 480px) {
      .g-nav_trigger__hamburger-menuspan {
        top: 29px;
        left: 10px; } }
    .g-nav_trigger__hamburger-menuspan--color-bg {
      display: block;
      position: absolute;
      top: 29px;
      left: 10px;
      width: 26px;
      height: 2px;
      background: #000;
      transform: rotate(0);
      transition: all 0.3s cubic-bezier(0.77, 0, 0.175, 1); }
      .g-nav_trigger__hamburger-menuspan--color-bg::before {
        content: "";
        display: block;
        position: absolute;
        top: -9px;
        left: 0;
        width: 100%;
        height: 2px;
        background: #000;
        transition: all 0.3s cubic-bezier(0.77, 0, 0.175, 1); }
      @media (max-width: 900px) {
        .g-nav_trigger__hamburger-menuspan--color-bg {
          top: 34px;
          left: 17px; } }
      @media (max-width: 480px) {
        .g-nav_trigger__hamburger-menuspan--color-bg {
          top: 29px;
          left: 10px; } }

.header__inner.bgcolor .g-nav__list-link,
.header__inner.bgcolor .g-nav__other-item-icon {
  color: #000; }

.header__inner .header__logo-link-img {
  display: block;
  opacity: 1;
  transition: all 0.6s; }

.header__inner .header__logo-link-img-bk {
  display: none;
  opacity: 0;
  transition: all 0.6s; }

.header__inner.bgcolor .header__logo-link-img {
  display: none;
  opacity: 0;
  transition: all 0.6s; }

.header__inner.bgcolor .header__logo-link-img-bk {
  display: block;
  opacity: 1;
  transition: all 0.6s; }

.header__inner.bgcolor .g-nav_trigger__hamburger-menuspan {
  display: block;
  position: absolute;
  top: 29px;
  left: 10px;
  width: 26px;
  height: 2px;
  background: #000;
  transform: rotate(0);
  transition: all 0.3s cubic-bezier(0.77, 0, 0.175, 1); }
  .header__inner.bgcolor .g-nav_trigger__hamburger-menuspan::before {
    content: "";
    display: block;
    position: absolute;
    top: -9px;
    left: 0;
    width: 100%;
    height: 2px;
    background: #000;
    transition: all 0.3s cubic-bezier(0.77, 0, 0.175, 1); }

.g-nav_toggle, .g-nav_cover {
  display: none; }

.g-nav_toggle:checked + .g-nav_cover {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.2);
  z-index: 99; }

.g-nav_toggle:checked ~ .header .g-nav {
  right: 0; }

.g-nav_toggle:checked ~ .header .g-nav_trigger span {
  transform: rotate(45deg);
  top: 20px;
  left: 8px; }
  @media (max-width: 900px) {
    .g-nav_toggle:checked ~ .header .g-nav_trigger span {
      top: 30px;
      left: 17px; } }
  @media (max-width: 480px) {
    .g-nav_toggle:checked ~ .header .g-nav_trigger span {
      top: 25px;
      left: 12px; } }

.g-nav_toggle:checked ~ .header .g-nav_trigger span::before {
  top: 0;
  transform: rotate(-90deg); }

/*_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

footer CSS

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/*/
.footer {
  width: 100%;
  max-width: 100%;
  border-top: 1px solid #EEE; }
  .footer__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px 0; }
    @media (max-width: 480px) {
      .footer__inner {
        padding: 2vw 0 2vw; } }
  .footer__copy {
    font-size: 1.2rem;
    color: #878787; }
    @media (max-width: 480px) {
      .footer__copy {
        font-size: 1.0rem; } }
