@charset "UTF-8";
/* CSS Document */
/* ------------------------------
テキスト
------------------------------ */
.txt_indent {
  display: block;
  text-indent: -1em;
  margin-left: 1em; }

.txt_ls_0 {
  letter-spacing: 0; }

.txt_ls_005 {
  letter-spacing: 0.05em; }

.txt_ls_01 {
  letter-spacing: 0.1em; }

.txt_ls_015 {
  letter-spacing: 0.15em; }

.txt_ls_018 {
  letter-spacing: 0.18em; }

.txt_ls_02 {
  letter-spacing: 0.2em; }

.txt_ls_03 {
  letter-spacing: 0.3em; }

.txt_ls_005 {
  letter-spacing: 0.05em; }

.txt_bold {
  font-weight: 700; }

.txt_normal {
  font-weight: 500; }

.txt_en {
  font-family: 'Josefin Sans', sans-serif;
  letter-spacing: 0.02em; }

.txt_center {
  text-align: center !important; }

.txt_right {
  text-align: right !important; }

.pcbr {
  display: block; }

.spbr {
  display: none; }

.sp_only {
  display: none; }

.fs_10 {
  font-size: 1.0rem; }

.fs_12 {
  font-size: 1.2rem; }

.fs_14 {
  font-size: 1.4rem; }

.fs_16 {
  font-size: 1.6rem; }

.fs_18 {
  font-size: 1.8rem; }

.fs_20 {
  font-size: 2.0rem; }

.fs_22 {
  font-size: 2.2rem; }

.fs_24 {
  font-size: 2.4rem; }

.fs_26 {
  font-size: 2.6rem; }

.fs_28 {
  font-size: 2.8rem; }

.fs_30 {
  font-size: 3.0rem; }

.fs_34 {
  font-size: 3.4rem; }

.fs_35 {
  font-size: 3.5rem; }

.fs_36 {
  font-size: 3.6rem; }

.fs_40 {
  font-size: 4.0rem; }

.fs_45 {
  font-size: 4.5rem; }

.fs_50 {
  font-size: 5.0rem; }

.fs_53 {
  font-size: 5.3rem; }

.fs_54 {
  font-size: 5.4rem; }

.fs_55 {
  font-size: 5.5rem; }

.fs_60 {
  font-size: 6.0rem; }

.fs_67 {
  font-size: 6.7rem; }

.fs_70 {
  font-size: 7.0rem; }

.fs_80 {
  font-size: 8.0rem; }

.fs_90 {
  font-size: 9.0rem; }

.fs_100 {
  font-size: 10.0rem; }

.fs_140 {
  font-size: 14.0rem; }

.fs_150 {
  font-size: 15.0rem; }

.fs_180 {
  font-size: 18.0rem; }

.fw_100 {
  font-weight: 100; }

.fw_200 {
  font-weight: 200; }

.fw_300 {
  font-weight: 300; }

.fw_400 {
  font-weight: 400; }

.fw_500 {
  font-weight: 500; }

.fw_700 {
  font-weight: 700; }

.lh_10 {
  line-height: 1.0em !important; }

.lh_12 {
  line-height: 1.2em !important; }

.lh_14 {
  line-height: 1.4em !important; }

.lh_15 {
  line-height: 1.5em !important; }

.lh_16 {
  line-height: 1.6em !important; }

.lh_17 {
  line-height: 1.7em !important; }

.lh_18 {
  line-height: 1.8em !important; }

.lh_20 {
  line-height: 2.0em !important; }

.lh_22 {
  line-height: 2.2em !important; }

.lh_25 {
  line-height: 2.5em !important; }

.lh_28 {
  line-height: 2.8em !important; }

.lh_30 {
  line-height: 3.0em !important; }

.lh_32 {
  line-height: 3.2em !important; }

.lh_35 {
  line-height: 3.5em !important; }

.lh_40 {
  line-height: 4.0em !important; }

.mrg__btm0 {
  margin-bottom: 0 !important; }

.mrg__btm02 {
  margin-bottom: .2em !important; }

.mrg__btm03 {
  margin-bottom: .3em !important; }

.mrg__btm05 {
  margin-bottom: .5em !important; }

.mrg__btm08 {
  margin-bottom: .8em !important; }

.mrg__btm1 {
  margin-bottom: 1em !important; }

.mrg__btm13 {
  margin-bottom: 1.3em !important; }

.mrg__btm15 {
  margin-bottom: 1.5em !important; }

.mrg__btm2 {
  margin-bottom: 2em !important; }

.mrg__btm25 {
  margin-bottom: 2.5em !important; }

.mrg__btm3 {
  margin-bottom: 3em !important; }

.mrg__btm4 {
  margin-bottom: 4em !important; }

.mrg__btm5 {
  margin-bottom: 5em !important; }

.mrg__btm6 {
  margin-bottom: 6em !important; }

.mrg__btm7 {
  margin-bottom: 7em !important; }

.mrg__btm8 {
  margin-bottom: 8em !important; }

.mrg__btm9 {
  margin-bottom: 9em !important; }

.mrg__btm1-0 {
  margin-bottom: 10em !important; }

.mrg__btm1-2 {
  margin-bottom: 12em !important; }

.mrg__btm1-5 {
  margin-bottom: 15em !important; }

.mrg__btm2-0 {
  margin-bottom: 20em !important; }

.mrg__top-3 {
  margin-top: -3rem !important; }

.mrg__top-7 {
  margin-top: -7rem !important; }

.mrg__top0 {
  margin-top: 0 !important; }

.mrg__top05 {
  margin-top: .5em !important; }

.mrg__top1 {
  margin-top: 1em !important; }

.mrg__top2 {
  margin-top: 2em !important; }

.mrg__top3 {
  margin-top: 3em !important; }

.mrg__top4 {
  margin-top: 4em !important; }

.mrg__top5 {
  margin-top: 5em !important; }

.mrg__top6 {
  margin-top: 6em !important; }

.mrg__top7 {
  margin-top: 7em !important; }

.mrg__top8 {
  margin-top: 8em !important; }

.mrg__top9 {
  margin-top: 9em !important; }

.mrg__left0 {
  margin-left: 0 !important; }

.mrg__left1 {
  margin-left: 1em !important; }

.mrg__left2 {
  margin-left: 2em !important; }

.mrg__left3 {
  margin-left: 3em !important; }

.mrg__right0 {
  margin-right: 0 !important; }

.mrg__right1 {
  margin-right: 1em !important; }

.mrg__right2 {
  margin-right: 2em !important; }

.mrg__right3 {
  margin-right: 3em !important; }

@media all and (max-width: 768px) {
  .txt__sp_ls_0 {
    letter-spacing: 0; }

  .txt__sp_ls_01 {
    letter-spacing: 0.1em; }

  .txt__sp_ls_02 {
    letter-spacing: 0.2em; }

  .txt__sp_s_005 {
    letter-spacing: 0.05em; }

  .pcbr {
    display: none; }

  .spbr {
    display: block; }

  .sp_only {
    display: block; }

  .txt__sp_center {
    display: block;
    text-align: center !important; }

  .txt__sp_right {
    display: block;
    text-align: right !important; }

  .txt__sp_left {
    display: block;
    text-align: left !important; }

  .fs__sp_06 {
    font-size: 0.6rem; }

  .fs__sp_08 {
    font-size: 0.8rem; }

  .fs__sp_10 {
    font-size: 1.0rem; }

  .fs__sp_12 {
    font-size: 1.2rem !important; }

  .fs__sp_14 {
    font-size: 1.4rem !important; }

  .fs__sp_16 {
    font-size: 1.6rem; }

  .fs__sp_18 {
    font-size: 1.8rem; }

  .fs__sp_20 {
    font-size: 2.0rem; }

  .fs__sp_24 {
    font-size: 2.4rem; }

  .fs__sp_30 {
    font-size: 3.0rem; }

  .fs__sp_35 {
    font-size: 3.5rem; }

  .fs__sp_40 {
    font-size: 4.0rem; }

  .fs__sp_50 {
    font-size: 5.0rem; }

  .fs__sp_70 {
    font-size: 7.0rem; }

  .lh__sp_10 {
    line-height: 1.0em !important; }

  .lh__sp_12 {
    line-height: 1.2em !important; }

  .lh__sp_14 {
    line-height: 1.4em !important; }

  .lh__sp_15 {
    line-height: 1.5em !important; }

  .lh__sp_16 {
    line-height: 1.6em !important; }

  .lh___sp_18 {
    line-height: 1.8em !important; }

  .lh__sp_20 {
    line-height: 2.0em !important; }

  .lh__sp_26 {
    line-height: 2.6em !important; }

  .lh__sp_30 {
    line-height: 3.0em !important; }

  .lh__sp_36 {
    line-height: 3.6em !important; }

  .lh__sp_40 {
    line-height: 4.0em !important; }

  .mrg__sp_btm0 {
    margin-bottom: 0 !important; }

  .mrg__sp_btm02 {
    margin-bottom: .2em !important; }

  .mrg__sp_btm05 {
    margin-bottom: .5em !important; }

  .mrg__sp_btm08 {
    margin-bottom: .8em !important; }

  .mrg__sp_btm1 {
    margin-bottom: 1em !important; }

  .mrg__sp_btm15 {
    margin-bottom: 1.5em !important; }

  .mrg__sp_btm2 {
    margin-bottom: 2em !important; }

  .mrg__sp_btm3 {
    margin-bottom: 3em !important; }

  .mrg__sp_btm4 {
    margin-bottom: 4em !important; }

  .mrg__sp_btm5 {
    margin-bottom: 5em !important; }

  .mrg__sp_btm6 {
    margin-bottom: 6em !important; }

  .mrg__sp_btm7 {
    margin-bottom: 7em !important; }

  .mrg__sp_btm8 {
    margin-bottom: 8em !important; }

  .mrg__sp_btm9 {
    margin-bottom: 9em !important; }

  .mrg__sp_btm1-0 {
    margin-bottom: 10em !important; }

  .mrg__sp_btm1-5 {
    margin-bottom: 15em !important; }

  .mrg__sp_btm1-7 {
    margin-bottom: 17em !important; }

  .mrg__sp_top-02 {
    margin-top: -0.2em !important; }

  .mrg__sp_top-1 {
    margin-top: -1em !important; }

  .mrg__sp_top-2 {
    margin-top: -2em !important; }

  .mrg__sp_top-6 {
    margin-top: -6rem !important; }

  .mrg__sp_top0 {
    margin-top: 0 !important; }

  .mrg__sp_top05 {
    margin-top: .5em !important; }

  .mrg__sp_top1 {
    margin-top: 1em !important; }

  .mrg__sp_top2 {
    margin-top: 2em !important; }

  .mrg__sp_top3 {
    margin-top: 3em !important; }

  .mrg__sp_top4 {
    margin-top: 4em !important; }

  .mrg__sp_top5 {
    margin-top: 5em !important; }

  .mrg__sp_top6 {
    margin-top: 6em !important; }

  .mrg__sp_top7 {
    margin-top: 7em !important; }

  .mrg__sp_top8 {
    margin-top: 8em !important; }

  .mrg__sp_top9 {
    margin-top: 9em !important; } }
/*---------------------------------------------
	FontSize Initialization
  ---------------------------------------------*/
html {
  font: 62.5%/1.231 "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", Meiryo,sans-serif;
  width: 100%;
  height: 100%; }

body {
  width: 100%;
  height: 100%;
  font-size: 1.6rem;
  font-weight: 400;
  color: #000;
  background-color: #F5F7F7;
  -webkit-text-size-adjust: 100%;
  position: relative;
  overflow-y: scroll;
  overflow-x: hidden; }
  @media all and (max-width: 768px) {
    body {
      font-size: 1.4rem; } }

body.open {
  overflow-y: hidden; }

p {
  line-height: 2.2em; }

/*スマートフォンのブレイクポイント*/
@media screen and (max-width: 768px) {
  body {
    /*初期化*/
    min-width: initial; } }
* {
  letter-spacing: 0.05em;
  box-sizing: border-box; }

@media all and (-ms-high-contrast: none) {
  html {
    font-family: "メイリオ", Meiryo, sans-serif; } }
img {
  width: 100%;
  vertical-align: top;
  -ms-interpolation-mode: bicubic; }

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

.clearfix:before {
  content: "";
  display: block;
  clear: both; }

.clearfix {
  display: block; }

::-moz-selection {
  background-color: #D7E0E0; }

::selection {
  background-color: #D7E0E0; }

/*---------------------------------------------
　　共通
  ---------------------------------------------*/
#wrap {
  position: relative;
  width: 100%;
  min-width: 1080px;
  height: 100%;
  opacity: 0;
  animation: pageAnim 1s ease-in-out;
  animation-fill-mode: forwards; }
  @media all and (max-width: 768px) {
    #wrap {
      min-width: 100%; } }

@keyframes pageAnim {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
/* ----------- ヘッダー ----------- */
.header {
  position: fixed;
  top: 0;
  left: 0;
  transition: 0.5s cubic-bezier(0, 0.63, 0.32, 1.01);
  width: auto;
  height: 90px;
  padding: 15px 40px 0;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  z-index: 4000;
  pointer-events: none; }
  @media all and (max-width: 768px) {
    .header {
      padding: 15px; } }
  .header .logo_area {
    width: 180px;
    height: auto;
    pointer-events: auto; }
    @media all and (max-width: 768px) {
      .header .logo_area {
        width: 150px; } }
    .header .logo_area a {
      display: block; }
    .header .logo_area h1 {
      display: flex;
      align-items: center; }
      .header .logo_area h1 img:nth-of-type(1) {
        width: 48px;
        height: 21px;
        margin-right: 15px; }
        @media all and (max-width: 768px) {
          .header .logo_area h1 img:nth-of-type(1) {
            width: 38px;
            height: 17px;
            margin-right: 10px; } }
      .header .logo_area h1 img:nth-of-type(2) {
        width: 117px;
        height: 14px; }
        @media all and (max-width: 768px) {
          .header .logo_area h1 img:nth-of-type(2) {
            width: 100px;
            height: 12px; } }
    .header .logo_area p {
      letter-spacing: 0.1em; }
      @media all and (max-width: 768px) {
        .header .logo_area p {
          line-height: 1.4em; } }

.header.active {
  transform: translateX(-20px);
  filter: blur(1px); }

/* ----------- ↑ヘッダーここまで ----------- */
/* ----------- ツイッター、ハンバーガーボタン ----------- */
.btn_area {
  background-color: #F5F7F7;
  padding: 15px 25px 13px 15px;
  border-radius: 50px;
  position: fixed;
  top: 20px;
  right: 20px;
  width: 145px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 9999; }
  @media all and (max-width: 768px) {
    .btn_area {
      top: 10px;
      right: 10px;
      width: 125px;
      padding: 10px 20px 10px 10px; } }
  .btn_area .fb_btn a {
    display: block;
    width: 35px;
    height: 35px;
    transition: 0.3s;
    position: relative;
    z-index: 9999;
    opacity: 0;
    transform: scale(1.1);
    animation: btnAnim 0.5s 1.0s;
    animation-fill-mode: forwards; }
    @media all and (max-width: 768px) {
      .btn_area .fb_btn a {
        width: 30px;
        height: 30px; } }
    .btn_area .fb_btn a:hover {
      transform: scale(0.9); }
  .btn_area .hum_btn {
    width: 45px;
    height: 35px;
    margin-top: 3px;
    position: relative;
    cursor: pointer;
    z-index: 9999;
    height: 32px;
    opacity: 0;
    transform: scale(1.1);
    animation: btnAnim 0.5s 1.3s;
    animation-fill-mode: forwards; }
    .btn_area .hum_btn span {
      display: block;
      margin: 0 auto;
      width: 100%;
      height: 2px;
      background-color: #000;
      position: absolute;
      transition: 0.3s; }
    .btn_area .hum_btn span:nth-last-of-type(1) {
      top: 0;
      left: 0;
      transition: 0.3s; }
    .btn_area .hum_btn span:nth-last-of-type(2) {
      top: 9px;
      left: 0;
      transition: 0.3s; }
    .btn_area .hum_btn p {
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      margin: 0 auto; }
    .btn_area .hum_btn:after {
      content: 'メニュー';
      font-size: 10px;
      font-weight: 700;
      position: absolute;
      bottom: 0;
      left: 0;
      right: 0;
      margin: 0 auto;
      text-align: center; }
    .btn_area .hum_btn:hover span {
      transform: scale(0.9); }
    .btn_area .hum_btn:hover span:nth-last-of-type(1) {
      top: 1px; }
    .btn_area .hum_btn:hover span:nth-last-of-type(2) {
      top: 8px; }
    .btn_area .hum_btn.active span:nth-last-of-type(1) {
      top: 5px;
      transform: rotate(25deg); }
      @media all and (max-width: 768px) {
        .btn_area .hum_btn.active span:nth-last-of-type(1) {
          transform: rotate(20deg); } }
    .btn_area .hum_btn.active span:nth-last-of-type(2) {
      top: 5px;
      transform: rotate(-25deg); }
      @media all and (max-width: 768px) {
        .btn_area .hum_btn.active span:nth-last-of-type(2) {
          transform: rotate(-20deg); } }
    .btn_area .hum_btn.active:after {
      content: 'とじる'; }

@keyframes btnAnim {
  0% {
    opacity: 0;
    transform: scale(1.1); }
  100% {
    opacity: 1;
    transform: scale(1); } }
/* ----------- ↑ツイッター、ハンバーガーボタンここまで ----------- */
/* -----------　↓グローバルナビ ----------- */
.g_nav {
  position: fixed;
  width: 400px;
  background-color: #F5F7F7;
  height: 100vh;
  top: 0;
  right: 0;
  clip-path: inset(0 0 0 100%);
  transition: 0.5s cubic-bezier(0, 0.63, 0.32, 1.01);
  z-index: 5000; }
  @media screen and (min-device-width: 744px) and (max-device-width: 1133px) and (orientation: portrait) {
    .g_nav {
      height: 100%; } }
  @media all and (max-width: 768px) {
    .g_nav {
      width: 100%; } }
  .g_nav .nav_inner {
    width: 220px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); }
    @media all and (max-width: 768px) {
      .g_nav .nav_inner {
        width: 60%; } }
    .g_nav .nav_inner nav {
      transform: translateX(30px);
      transition: 0.5s 0s cubic-bezier(0, 0.63, 0.32, 1.01); }
      .g_nav .nav_inner nav ul li a {
        display: inline-block;
        letter-spacing: 0.1em;
        position: relative;
        transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01);
        overflow: hidden;
        padding-bottom: 2px; }
        .g_nav .nav_inner nav ul li a:after {
          content: '';
          display: block;
          width: 100%;
          height: 2px;
          background-color: #000000;
          position: absolute;
          bottom: 0;
          left: -100%;
          transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01); }
        .g_nav .nav_inner nav ul li a:hover {
          transform: translateX(7px); }
          .g_nav .nav_inner nav ul li a:hover:after {
            left: 0; }
  .g_nav .bunner_area {
    transform: translateX(30px);
    transition: 0.5s 0s cubic-bezier(0, 0.63, 0.32, 1.01); }
    .g_nav .bunner_area .bunner_btn {
      width: 100%;
      height: 50px;
      border: 2px solid #000000;
      position: relative;
      transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01); }
      .g_nav .bunner_area .bunner_btn:after {
        content: '';
        display: block;
        z-index: -1;
        width: 100%;
        height: 45px;
        border: 2px solid #000000;
        position: absolute;
        top: 5px;
        left: 4px;
        transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01); }
      .g_nav .bunner_area .bunner_btn:hover {
        transform: translateY(5px) translateX(5px); }
        .g_nav .bunner_area .bunner_btn:hover:after {
          top: -1px;
          left: -1px; }
    .g_nav .bunner_area .bunner_btn a {
      background-color: #fff;
      position: relative;
      display: block;
      width: 100%;
      height: 100%;
      text-align: center;
      padding-top: 10px;
      transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01);
      z-index: 2; }
      .g_nav .bunner_area .bunner_btn a:hover {
        background-color: #000000;
        color: #fff; }
  .g_nav.active {
    clip-path: inset(0); }
    .g_nav.active .nav_inner nav {
      transform: translateX(0); }
    .g_nav.active .bunner_area {
      transform: translateX(0); }

/* ----------- ↑グローバルナビここまで ----------- */
/* ----------- フッター ----------- */
.footer {
  width: 100%;
  position: relative;
  transition: 0.5s cubic-bezier(0, 0.63, 0.32, 1.01);
  overflow: hidden; }
  .footer:before {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-color: rgba(0, 0, 0, 0.1);
    transition: 0.5s cubic-bezier(0, 0.63, 0.32, 1.01);
    opacity: 0;
    visibility: hidden; }
  .footer .mail_btn {
    margin: 0 auto;
    width: 570px;
    height: 330px;
    border: 2px solid #000000;
    position: relative;
    transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01); }
    @media all and (max-width: 768px) {
      .footer .mail_btn {
        width: 280px;
        height: 160px; } }
    .footer .mail_btn:after {
      content: '';
      display: block;
      z-index: -1;
      width: 100%;
      height: 100%;
      border: 2px solid #000000;
      position: absolute;
      top: 10px;
      left: 9px;
      transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01); }
    .footer .mail_btn:hover {
      transform: translateY(5px) translateX(5px); }
      .footer .mail_btn:hover:after {
        top: -2px;
        left: -2px; }
  .footer .mail_btn a {
    position: relative;
    padding-top: 150px;
    width: 100%;
    height: 100%;
    letter-spacing: 0.1em;
    display: block;
    background-color: #fff;
    text-align: center; }
    @media all and (max-width: 768px) {
      .footer .mail_btn a {
        padding-top: 70px; } }
    .footer .mail_btn a:before {
      content: '';
      width: 100%;
      height: 128px;
      background: url("../img/common/mail_triangle.svg") no-repeat;
      background-size: contain;
      position: absolute;
      top: -1px;
      left: 0;
      right: 0;
      margin: 0 auto;
      transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01);
      z-index: 2; }
    .footer .mail_btn a:after {
      content: '';
      width: 0;
      height: 0;
      border-style: solid;
      border-width: 120px 284px 0 284px;
      border-color: #E7EBEB transparent transparent transparent;
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      margin: 0 auto;
      z-index: 1; }
      @media all and (max-width: 768px) {
        .footer .mail_btn a:after {
          display: none; } }
    .footer .mail_btn a:hover:before {
      top: -7px;
      transform: scale(1, 0.9); }
    .footer .mail_btn a .airplane {
      width: 154px;
      height: 84px;
      position: absolute;
      bottom: 60px;
      left: -100px;
      opacity: 0;
      transition: 2s cubic-bezier(0, 0.63, 0.32, 1.01); }
      @media all and (max-width: 768px) {
        .footer .mail_btn a .airplane {
          width: 90px;
          height: 46px;
          left: -60px;
          bottom: 10px; } }
    .footer .mail_btn a .airplane.isAnimate {
      opacity: 1; }
  .footer .foot_inner {
    width: 1000px;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    position: relative; }
    @media all and (max-width: 768px) {
      .footer .foot_inner {
        width: 90%;
        display: block;
        padding-top: 180px;
        text-align: center; } }
    .footer .foot_inner:before {
      content: '';
      width: 315px;
      height: 320px;
      background: url("../img/common/footer_illust.png") no-repeat;
      background-size: contain;
      position: absolute;
      bottom: -40px;
      right: 0;
      left: 0;
      margin: 0 auto; }
      @media all and (max-width: 768px) {
        .footer .foot_inner:before {
          bottom: auto;
          top: 0;
          width: 157px;
          height: 160px; } }
    .footer .foot_inner h1 {
      letter-spacing: 0.15em; }
    .footer .foot_inner .shop_link {
      display: inline-block;
      padding-right: 10px;
      line-height: 1em;
      position: relative; }
      .footer .foot_inner .shop_link:before {
        content: '';
        width: 5px;
        height: 5px;
        border-top: 1px solid #000;
        border-right: 1px solid #000;
        position: absolute;
        top: 4px;
        right: 0;
        transform: rotate(45deg); }
    .footer .foot_inner .foot_nav ul li {
      position: relative; }
      .footer .foot_inner .foot_nav ul li:before {
        content: '';
        width: 10px;
        height: 2px;
        background-color: #000000;
        position: absolute;
        top: 10px;
        left: -20px;
        transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01);
        clip-path: inset(0); }
        @media all and (max-width: 768px) {
          .footer .foot_inner .foot_nav ul li:before {
            display: none; } }
      .footer .foot_inner .foot_nav ul li:hover:before {
        left: -15px;
        clip-path: inset(0 0 0 100%); }
    .footer .foot_inner .foot_nav ul li a {
      display: inline-block;
      position: relative;
      transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01);
      padding-bottom: 2px;
      overflow: hidden; }
      .footer .foot_inner .foot_nav ul li a:after {
        content: '';
        display: block;
        width: 100%;
        height: 2px;
        background-color: #000000;
        position: absolute;
        bottom: 0;
        left: -100%;
        transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01); }
      .footer .foot_inner .foot_nav ul li a:hover {
        transform: translateX(5px); }
        .footer .foot_inner .foot_nav ul li a:hover:after {
          left: 0; }
  .footer 　
  .fv_wrapper {
    position: absolute;
    left: 0;
    bottom: 140px;
    width: 100%;
    height: 290px;
    margin: 0 auto;
    overflow: hidden;
    z-index: -3;
    clip-path: inset(0 0 0 100%);
    animation: firstAnim 0.3s 1s linear;
    animation-fill-mode: forwards;
    background-color: red; }
    @media screen and (min-device-width: 744px) and (max-device-width: 1133px) and (orientation: portrait) {
      .footer 　
      .fv_wrapper {
        height: 2330px; } }
    @media all and (max-width: 768px) {
      .footer 　
      .fv_wrapper {
        height: 150px; } }
  .footer .marquee-anim {
    animation: fvAnim 40s linear infinite;
    position: absolute;
    bottom: 80px;
    left: 50%;
    display: flex;
    transform: translate(-50%, 0%);
    white-space: nowrap;
    transition: all .3s; }
    @media all and (max-width: 768px) {
      .footer .marquee-anim {
        bottom: 60px; } }
@keyframes firstAnim {
  0% {
    clip-path: inset(0 0 0 100%); }
  100% {
    clip-path: inset(0); } }
@keyframes fvAnim {
  0% {
    transform: translate(-40%, 0%); }
  100% {
    transform: translate(-60%, 0%); } }
  .footer .marquee-inline {
    display: block;
    padding-right: 0.3em;
    font-size: 12rem;
    line-height: 1em;
    white-space: nowrap;
    text-align: center;
    white-space: nowrap;
    color: #fff; }
    @media screen and (min-device-width: 744px) and (max-device-width: 1133px) and (orientation: portrait) {
      .footer .marquee-inline {
        font-size: 10rem; } }
    @media all and (max-width: 768px) {
      .footer .marquee-inline {
        font-size: 6rem; } }
    .footer .marquee-inline span {
      color: #BBB; }
  .footer .copylight {
    width: 100%;
    text-align: center;
    padding: 0 0 50px; }
    @media all and (max-width: 768px) {
      .footer .copylight {
        padding-bottom: 20px; } }

.footer.active {
  transform: translateX(-20px);
  filter: blur(1px); }
  .footer.active:before {
    opacity: 1;
    visibility: visible;
    z-index: 100; }

/* ----------- ↑フッター ここまで ----------- */
.contents {
  transition: 0.5s cubic-bezier(0, 0.63, 0.32, 1.01);
  position: relative; }
  .contents:before {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-color: rgba(0, 0, 0, 0.1);
    transition: 0.5s cubic-bezier(0, 0.63, 0.32, 1.01);
    opacity: 0;
    visibility: hidden; }

.contents.active {
  transform: translateX(-20px);
  filter: blur(1px); }
  .contents.active:before {
    opacity: 1;
    visibility: visible;
    z-index: 100; }

/* ----------- リンクボタン ----------- */
.page_link {
  display: inline-block; }
  .page_link a {
    letter-spacing: 0.2em;
    display: inline-block;
    position: relative;
    padding-right: 80px;
    transition: 0.3s; }
    .page_link a:after {
      content: '';
      width: 50px;
      height: 2px;
      background-color: #fff;
      position: absolute;
      right: 20px;
      top: 14px;
      z-index: 2;
      mix-blend-mode: difference;
      clip-path: inset(0);
      transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01); }
    .page_link a:before {
      content: '';
      width: 5px;
      height: 5px;
      border-right: 2px solid #fff;
      border-bottom: 2px solid #fff;
      transform: rotateZ(-45deg);
      position: absolute;
      right: 19px;
      top: 12px;
      z-index: 3;
      transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01); }
    .page_link a p {
      letter-spacing: 0.2em;
      display: inline-block;
      transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01); }
    .page_link a span {
      position: absolute;
      display: block;
      width: 45px;
      height: 45px;
      border-radius: 50px;
      background-color: #000;
      right: 0;
      top: -7px;
      transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01); }
    .page_link a:hover:after {
      clip-path: inset(0 0 0 100%); }
    .page_link a:hover p {
      transform: translateX(15px);
      letter-spacing: 0.3em; }
    .page_link a:hover span {
      transform: scale(1.2); }

.page_link.white a {
  color: #fff; }
  .page_link.white a:before {
    border-color: #000; }
  .page_link.white a span {
    background-color: #fff; }
