@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; } }

/*---------------------------------------------
	TOPページ　css
  ---------------------------------------------*/
body {
  width: 100%;
  height: 100%;
  font-size: 1.6rem;
  font-weight: 400;
  color: #000;
  -webkit-text-size-adjust: 100%;
  position: relative;
  overflow-y: scroll;
  overflow-x: hidden;
  -webkit-transition: 0.5s;
  -o-transition: 0.5s;
  transition: 0.5s; }
  @media all and (max-width: 768px) {
    body {
      font-size: 1.4rem; } }

body.bg_black {
  background-color: #2C2E2E; }

#wrap.top .header, #wrap.top .btn_area {
  opacity: 0;
  -webkit-animation: firstAnim 1s 1s ease-in-out;
  animation: firstAnim 1s 1s ease-in-out;
  -webkit-animation-fill-mode: forwards;
  animation-fill-mode: forwards; }

#wrap.top .header:before {
  display: none; }

.fv {
  width: 100%;
  margin: 0 auto;
  min-width: 1080px;
  max-width: 1380px;
  height: 100vh;
  min-height: 600px;
  position: relative;
  -webkit-transition: 0.5s cubic-bezier(0, 0.63, 0.32, 1.01);
  -o-transition: 0.5s cubic-bezier(0, 0.63, 0.32, 1.01);
  transition: 0.5s cubic-bezier(0, 0.63, 0.32, 1.01);
  /*↓ipad用縦css*/
  /*↓ipad用横css*/ }
  @media all and (max-width: 768px) {
    .fv {
      min-width: 100%;
      max-width: 100%;
      min-height: 100vh;
      overflow: hidden; } }
  @media screen and (min-device-width: 744px) and (max-device-width: 1133px) and (orientation: portrait) {
    .fv {
      min-width: 100%;
      max-width: 100%;
      height: 62vh;
      min-height: 62vh;
      overflow: hidden; } }
  @media screen and (min-device-width: 744px) and (max-device-width: 1181px) and (orientation: landscape) {
    .fv {
      min-width: 100%;
      max-width: 100%;
      height: 100vh;
      min-height: 100vh;
      overflow: hidden; } }
  .fv:before {
    content: '';
    width: 200%;
    height: 100%;
    position: absolute;
    top: 0;
    left: -50%;
    background-color: rgba(0, 0, 0, 0.1);
    -webkit-transition: 0.5s cubic-bezier(0, 0.63, 0.32, 1.01);
    -o-transition: 0.5s cubic-bezier(0, 0.63, 0.32, 1.01);
    transition: 0.5s cubic-bezier(0, 0.63, 0.32, 1.01);
    opacity: 0;
    visibility: hidden; }
    @media all and (max-width: 768px) {
      .fv:before {
        width: 100%;
        left: 0; } }
  .fv h2 {
    -webkit-writing-mode: vertical-rl;
    writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    font-size: clamp(30px, 2.5vw, 40px);
    height: 100%;
    padding-top: 25%;
    line-height: 2.3em;
    letter-spacing: 0.2em;
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    opacity: 0;
    -webkit-animation: firstAnim 2s 0s ease-in-out,firstAnim2 0.5s 2s ease-in-out;
    animation: firstAnim 2s 0s ease-in-out,firstAnim2 0.5s 2s ease-in-out;
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards; }
    @media all and (max-width: 768px) {
      .fv h2 {
        -webkit-writing-mode: horizontal-tb;
        writing-mode: horizontal-tb;
        -ms-writing-mode: lr-tb;
        font-size: clamp(24px, 2vw, 30px);
        padding-top: 0;
        width: 100%;
        top: 45%;
        height: auto;
        line-height: 1.8em;
        text-align: center;
        -webkit-animation: firstAnim 2s 0s ease-in-out,firstAnim2sp 0.5s 2s ease-in-out;
        animation: firstAnim 2s 0s ease-in-out,firstAnim2sp 0.5s 2s ease-in-out;
        -webkit-animation-fill-mode: forwards;
        animation-fill-mode: forwards; } }
    .fv h2 .kakko {
      display: inline-block;
      padding-bottom: -23px;
      height: 20px; }
      @media all and (max-width: 768px) {
        .fv h2 .kakko {
          padding-bottom: 0;
          height: auto; } }
    .fv h2 .two_line {
      display: block;
      padding-top: 18px;
      letter-spacing: 0.2em; }
      @media all and (max-width: 768px) {
        .fv h2 .two_line {
          display: block;
          padding-top: 0;
          height: auto; } }
  .fv .web_illust {
    display: block;
    height: auto;
    width: 40vw;
    max-width: 600px;
    min-width: 450px;
    position: absolute;
    top: 18%;
    left: -5%;
    opacity: 0;
    -webkit-transform: skew(10deg);
    -ms-transform: skew(10deg);
    transform: skew(10deg);
    -webkit-animation: boxAnim1 0.5s 2s cubic-bezier(0, 0.63, 0.32, 1.01);
    animation: boxAnim1 0.5s 2s cubic-bezier(0, 0.63, 0.32, 1.01);
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
    /*↓ipad用縦css*/ }
    @media screen and (min-device-width: 744px) and (max-device-width: 1133px) and (orientation: portrait) {
      .fv .web_illust {
        max-width: 40vw;
        min-width: 40vw; } }
    @media all and (max-width: 768px) {
      .fv .web_illust {
        width: 65vw;
        max-width: 65vw;
        min-width: 65vw;
        top: 16%;
        left: -7%; } }
    .fv .web_illust:after {
      content: '';
      width: 40vw;
      height: 30vw;
      max-width: 600px;
      min-width: 450px;
      min-height: 450px;
      background: url("../img/top/web_illust4.svg") no-repeat;
      background-size: contain;
      position: absolute;
      z-index: -1;
      top: -15px;
      left: -23px;
      opacity: 0;
      -webkit-transform: translatex(-10px);
      -ms-transform: translatex(-10px);
      transform: translatex(-10px);
      -webkit-transform: translateY(-10px);
      -ms-transform: translateY(-10px);
      transform: translateY(-10px);
      -webkit-animation: boxAnim2 0.8s 2s cubic-bezier(0, 0.63, 0.32, 1.01);
      animation: boxAnim2 0.8s 2s cubic-bezier(0, 0.63, 0.32, 1.01);
      -webkit-animation-fill-mode: forwards;
      animation-fill-mode: forwards;
      /*↓ipad用縦css*/ }
      @media screen and (min-device-width: 744px) and (max-device-width: 1133px) and (orientation: portrait) {
        .fv .web_illust:after {
          max-width: 40vw;
          min-width: 40vw; } }
      @media all and (max-width: 768px) {
        .fv .web_illust:after {
          width: 65vw;
          max-width: 65vw;
          min-width: 65vw;
          top: -10px;
          left: -13px; } }
    .fv .web_illust .illust {
      position: absolute;
      bottom: 32px;
      left: 2px;
      width: 90%;
      z-index: 2;
      opacity: 0;
      -webkit-transform: translateY(-5px);
      -ms-transform: translateY(-5px);
      transform: translateY(-5px);
      -webkit-animation: illustAnim 0.3s 2.5s ease-in-out;
      animation: illustAnim 0.3s 2.5s ease-in-out;
      -webkit-animation-fill-mode: forwards;
      animation-fill-mode: forwards; }
      @media all and (max-width: 768px) {
        .fv .web_illust .illust {
          bottom: 28px; } }
    .fv .web_illust .color {
      position: absolute;
      bottom: 32px;
      left: 2px;
      width: 90%;
      opacity: 0;
      -webkit-transform: scale(0.9) skew(10deg);
      -ms-transform: scale(0.9) skew(10deg);
      transform: scale(0.9) skew(10deg);
      -webkit-animation: colorAnim 0.5s 3s ease-in-out;
      animation: colorAnim 0.5s 3s ease-in-out;
      -webkit-animation-fill-mode: forwards;
      animation-fill-mode: forwards; }
      @media all and (max-width: 768px) {
        .fv .web_illust .color {
          bottom: 28px; } }
  .fv .photo_illust {
    display: block;
    height: auto;
    width: 28vw;
    max-width: 400px;
    min-width: 300px;
    position: absolute;
    top: 58%;
    left: 10%;
    opacity: 0;
    -webkit-transform: skew(10deg);
    -ms-transform: skew(10deg);
    transform: skew(10deg);
    -webkit-animation: boxAnim1 0.5s 2s cubic-bezier(0, 0.63, 0.32, 1.01);
    animation: boxAnim1 0.5s 2s cubic-bezier(0, 0.63, 0.32, 1.01);
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
    /*↓ipad用縦css*/ }
    @media screen and (min-device-width: 744px) and (max-device-width: 1133px) and (orientation: portrait) {
      .fv .photo_illust {
        top: 48%;
        max-width: 28vw;
        min-width: 28vw; } }
    @media all and (max-width: 768px) {
      .fv .photo_illust {
        left: 3%;
        width: 45vw;
        max-width: 45vw;
        min-width: 45vw; } }
    .fv .photo_illust:after {
      content: '';
      width: 28vw;
      height: 30vw;
      max-width: 400px;
      min-width: 300px;
      background: url("../img/top/photo_illust4.svg") no-repeat;
      background-size: contain;
      position: absolute;
      z-index: -1;
      top: 25px;
      left: 0px;
      opacity: 0;
      -webkit-transform: translatex(-10px);
      -ms-transform: translatex(-10px);
      transform: translatex(-10px);
      -webkit-transform: translateY(-10px);
      -ms-transform: translateY(-10px);
      transform: translateY(-10px);
      -webkit-animation: boxAnim2 0.8s 2s cubic-bezier(0, 0.63, 0.32, 1.01);
      animation: boxAnim2 0.8s 2s cubic-bezier(0, 0.63, 0.32, 1.01);
      -webkit-animation-fill-mode: forwards;
      animation-fill-mode: forwards;
      /*↓ipad用縦css*/ }
      @media screen and (min-device-width: 744px) and (max-device-width: 1133px) and (orientation: portrait) {
        .fv .photo_illust:after {
          max-width: 28vw;
          min-width: 28vw; } }
      @media all and (max-width: 768px) {
        .fv .photo_illust:after {
          width: 45vw;
          height: 48vw;
          max-width: 45vw;
          min-width: 45vw;
          top: 15px; } }
    .fv .photo_illust .illust {
      position: absolute;
      bottom: 52px;
      right: 65px;
      width: 45%;
      z-index: 2;
      opacity: 0;
      -webkit-transform: translateY(-5px);
      -ms-transform: translateY(-5px);
      transform: translateY(-5px);
      -webkit-animation: illustAnim 0.3s 2.5s ease-in-out;
      animation: illustAnim 0.3s 2.5s ease-in-out;
      -webkit-animation-fill-mode: forwards;
      animation-fill-mode: forwards;
      /*↓ipad用縦css*/ }
      @media screen and (min-device-width: 744px) and (max-device-width: 1133px) and (orientation: portrait) {
        .fv .photo_illust .illust {
          right: 5vw; } }
      @media all and (max-width: 768px) {
        .fv .photo_illust .illust {
          bottom: 32px;
          right: 5vw;
          width: 55%; } }
    .fv .photo_illust .color {
      position: absolute;
      bottom: 52px;
      right: 65px;
      width: 45%;
      opacity: 0;
      -webkit-transform: scale(0.9) skew(10deg);
      -ms-transform: scale(0.9) skew(10deg);
      transform: scale(0.9) skew(10deg);
      -webkit-animation: colorAnim 0.5s 3s ease-in-out;
      animation: colorAnim 0.5s 3s ease-in-out;
      -webkit-animation-fill-mode: forwards;
      animation-fill-mode: forwards;
      /*↓ipad用縦css*/ }
      @media screen and (min-device-width: 744px) and (max-device-width: 1133px) and (orientation: portrait) {
        .fv .photo_illust .color {
          right: 5vw; } }
      @media all and (max-width: 768px) {
        .fv .photo_illust .color {
          bottom: 32px;
          right: 5vw;
          width: 55%; } }
  .fv .hearing_illust {
    display: block;
    height: auto;
    width: 28vw;
    max-width: 400px;
    min-width: 300px;
    position: absolute;
    top: 18%;
    right: 10%;
    opacity: 0;
    -webkit-transform: skew(10deg);
    -ms-transform: skew(10deg);
    transform: skew(10deg);
    -webkit-animation: boxAnim1 0.5s 2s cubic-bezier(0, 0.63, 0.32, 1.01);
    animation: boxAnim1 0.5s 2s cubic-bezier(0, 0.63, 0.32, 1.01);
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
    /*↓ipad用縦css*/ }
    @media screen and (min-device-width: 744px) and (max-device-width: 1133px) and (orientation: portrait) {
      .fv .hearing_illust {
        max-width: 28vw;
        min-width: 28vw; } }
    @media all and (max-width: 768px) {
      .fv .hearing_illust {
        width: 50vw;
        max-width: 50vw;
        min-width: 50vw;
        top: 20%;
        right: -8%; } }
    .fv .hearing_illust:after {
      content: '';
      width: 27vw;
      height: 30vw;
      max-width: 390px;
      min-width: 290px;
      background: url("../img/top/hearing_illust4.svg") no-repeat;
      background-size: contain;
      position: absolute;
      z-index: -1;
      top: 20px;
      left: 25px;
      opacity: 0;
      -webkit-transform: translatex(-10px);
      -ms-transform: translatex(-10px);
      transform: translatex(-10px);
      -webkit-transform: translateY(-10px);
      -ms-transform: translateY(-10px);
      transform: translateY(-10px);
      -webkit-animation: boxAnim2 0.8s 2s cubic-bezier(0, 0.63, 0.32, 1.01);
      animation: boxAnim2 0.8s 2s cubic-bezier(0, 0.63, 0.32, 1.01);
      -webkit-animation-fill-mode: forwards;
      animation-fill-mode: forwards;
      /*↓ipad用縦css*/ }
      @media screen and (min-device-width: 744px) and (max-device-width: 1133px) and (orientation: portrait) {
        .fv .hearing_illust:after {
          max-width: 28vw;
          min-width: 28vw;
          top: 15px;
          left: 15px; } }
      @media all and (max-width: 768px) {
        .fv .hearing_illust:after {
          width: 50vw;
          max-width: 50vw;
          min-width: 50vw;
          top: 10px;
          left: 15px; } }
    .fv .hearing_illust .illust {
      position: absolute;
      bottom: 32px;
      right: 25px;
      width: 70%;
      z-index: 2;
      opacity: 0;
      -webkit-transform: translateY(-5px);
      -ms-transform: translateY(-5px);
      transform: translateY(-5px);
      -webkit-animation: illustAnim 0.3s 2.5s ease-in-out;
      animation: illustAnim 0.3s 2.5s ease-in-out;
      -webkit-animation-fill-mode: forwards;
      animation-fill-mode: forwards; }
      @media all and (max-width: 768px) {
        .fv .hearing_illust .illust {
          bottom: 25px;
          right: 15px; } }
    .fv .hearing_illust .color {
      position: absolute;
      bottom: 32px;
      right: 25px;
      width: 70%;
      z-index: 1;
      opacity: 0;
      -webkit-transform: scale(0.9) skew(10deg);
      -ms-transform: scale(0.9) skew(10deg);
      transform: scale(0.9) skew(10deg);
      -webkit-animation: colorAnim 0.5s 3s ease-in-out;
      animation: colorAnim 0.5s 3s ease-in-out;
      -webkit-animation-fill-mode: forwards;
      animation-fill-mode: forwards; }
      @media all and (max-width: 768px) {
        .fv .hearing_illust .color {
          bottom: 25px;
          right: 15px; } }
  .fv .graphic_illust {
    display: block;
    height: auto;
    width: 35vw;
    max-width: 500px;
    min-width: 300px;
    position: absolute;
    top: 55%;
    right: 2%;
    opacity: 0;
    -webkit-transform: skew(10deg);
    -ms-transform: skew(10deg);
    transform: skew(10deg);
    -webkit-animation: boxAnim1 0.5s 2s cubic-bezier(0, 0.63, 0.32, 1.01);
    animation: boxAnim1 0.5s 2s cubic-bezier(0, 0.63, 0.32, 1.01);
    -webkit-animation-fill-mode: forwards;
    animation-fill-mode: forwards;
    /*↓ipad用縦css*/ }
    @media screen and (min-device-width: 744px) and (max-device-width: 1133px) and (orientation: portrait) {
      .fv .graphic_illust {
        max-width: 35vw;
        min-width: 35vw; } }
    @media all and (max-width: 768px) {
      .fv .graphic_illust {
        width: 50vw;
        max-width: 50vw;
        min-width: 50vw;
        right: -2%; } }
    .fv .graphic_illust:after {
      content: '';
      width: 35vw;
      height: 30vw;
      max-width: 500px;
      min-width: 300px;
      min-height: 200px;
      background: url("../img/top/graphic_illust4.svg") no-repeat;
      background-size: contain;
      position: absolute;
      z-index: -1;
      top: -20px;
      left: -10px;
      opacity: 0;
      -webkit-transform: translatex(-10px);
      -ms-transform: translatex(-10px);
      transform: translatex(-10px);
      -webkit-transform: translateY(-10px);
      -ms-transform: translateY(-10px);
      transform: translateY(-10px);
      -webkit-animation: boxAnim2 0.8s 2s cubic-bezier(0, 0.63, 0.32, 1.01);
      animation: boxAnim2 0.8s 2s cubic-bezier(0, 0.63, 0.32, 1.01);
      -webkit-animation-fill-mode: forwards;
      animation-fill-mode: forwards;
      /*↓ipad用縦css*/ }
      @media screen and (min-device-width: 744px) and (max-device-width: 1133px) and (orientation: portrait) {
        .fv .graphic_illust:after {
          max-width: 35vw;
          min-width: 35vw; } }
      @media all and (max-width: 768px) {
        .fv .graphic_illust:after {
          width: 50vw;
          max-width: 50vw;
          min-width: 50vw;
          top: -10px;
          left: -5px; } }
    .fv .graphic_illust .illust {
      position: absolute;
      bottom: 80px;
      right: 105px;
      width: 73%;
      z-index: 2;
      opacity: 0;
      -webkit-transform: translateY(-5px);
      -ms-transform: translateY(-5px);
      transform: translateY(-5px);
      -webkit-animation: illustAnim 0.3s 2.5s ease-in-out;
      animation: illustAnim 0.3s 2.5s ease-in-out;
      -webkit-animation-fill-mode: forwards;
      animation-fill-mode: forwards;
      /*↓ipad用縦css*/ }
      @media screen and (min-device-width: 744px) and (max-device-width: 1133px) and (orientation: portrait) {
        .fv .graphic_illust .illust {
          bottom: 50px;
          right: 55px; } }
      @media all and (max-width: 768px) {
        .fv .graphic_illust .illust {
          bottom: 40px;
          right: 35px; } }
    .fv .graphic_illust .color {
      position: absolute;
      bottom: 80px;
      right: 105px;
      width: 73%;
      z-index: 1;
      opacity: 0;
      -webkit-transform: scale(0.9) skew(10deg);
      -ms-transform: scale(0.9) skew(10deg);
      transform: scale(0.9) skew(10deg);
      -webkit-animation: colorAnim 0.5s 3s ease-in-out;
      animation: colorAnim 0.5s 3s ease-in-out;
      -webkit-animation-fill-mode: forwards;
      animation-fill-mode: forwards;
      /*↓ipad用縦css*/ }
      @media screen and (min-device-width: 744px) and (max-device-width: 1133px) and (orientation: portrait) {
        .fv .graphic_illust .color {
          bottom: 50px;
          right: 55px; } }
      @media all and (max-width: 768px) {
        .fv .graphic_illust .color {
          bottom: 40px;
          right: 35px; } }
  .fv .scroll {
    text-align: center;
    position: absolute;
    bottom: 15px;
    left: 0;
    right: 0;
    margin: 0 auto; }
    .fv .scroll:after {
      content: '';
      width: 2px;
      height: 200px;
      background-color: #000;
      position: absolute;
      left: 0;
      right: 0;
      top: 86px;
      margin: 0 auto;
      z-index: -2;
      opacity: 0;
      -webkit-clip-path: inset(0 100% 0 0);
      clip-path: inset(0 100% 0 0);
      -webkit-animation: messageAnim 0.5s 4.5s ease-in-out;
      animation: messageAnim 0.5s 4.5s ease-in-out;
      -webkit-animation-fill-mode: forwards;
      animation-fill-mode: forwards; }
      @media all and (max-width: 768px) {
        .fv .scroll:after {
          height: 100px;
          -webkit-animation: messageAnim 1s 4.5s ease-in-out;
          animation: messageAnim 1s 4.5s ease-in-out;
          -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards; } }
    .fv .scroll:before {
      content: '';
      width: 2px;
      height: 200px;
      background-color: #F5F7F7;
      position: absolute;
      left: 0;
      right: 0;
      top: -113px;
      margin: 0 auto;
      z-index: -1;
      -webkit-animation: lineAnim 2s 4.5s ease-in-out infinite;
      animation: lineAnim 2s 4.5s ease-in-out infinite; }
      @media all and (max-width: 768px) {
        .fv .scroll:before {
          height: 100px;
          -webkit-animation: lineAnim 4s 4.5s ease-in-out infinite;
          animation: lineAnim 4s 4.5s ease-in-out infinite; } }
    .fv .scroll p {
      letter-spacing: 0.2em;
      line-height: 2.5em; }
      .fv .scroll p span {
        letter-spacing: 0.2em;
        display: inline-block;
        position: relative;
        opacity: 0;
        -webkit-clip-path: inset(0 100% 0 0);
        clip-path: inset(0 100% 0 0);
        -webkit-animation: messageAnim 0.5s 4.5s ease-in-out;
        animation: messageAnim 0.5s 4.5s ease-in-out;
        -webkit-animation-fill-mode: forwards;
        animation-fill-mode: forwards; }
        .fv .scroll p span:after {
          content: '';
          width: 100%;
          height: 2px;
          background-color: #000;
          position: absolute;
          left: 0;
          bottom: 2px; }

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

@-webkit-keyframes lineAnim {
  0% {
    top: -113px; }
  50% {
    top: -113px; }
  100% {
    top: 289px; } }

@keyframes lineAnim {
  0% {
    top: -113px; }
  50% {
    top: -113px; }
  100% {
    top: 289px; } }

@-webkit-keyframes messageAnim {
  0% {
    opacity: 0;
    -webkit-clip-path: inset(0 100% 0 0);
    clip-path: inset(0 100% 0 0); }
  100% {
    opacity: 1;
    -webkit-clip-path: inset(0);
    clip-path: inset(0); } }

@keyframes messageAnim {
  0% {
    opacity: 0;
    -webkit-clip-path: inset(0 100% 0 0);
    clip-path: inset(0 100% 0 0); }
  100% {
    opacity: 1;
    -webkit-clip-path: inset(0);
    clip-path: inset(0); } }

@-webkit-keyframes firstAnim {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@keyframes firstAnim {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }

@-webkit-keyframes firstAnim2 {
  0% {
    padding-top: 25%; }
  100% {
    padding-top: 18%; } }

@keyframes firstAnim2 {
  0% {
    padding-top: 25%; }
  100% {
    padding-top: 18%; } }

@-webkit-keyframes firstAnim2sp {
  0% {
    padding-top: 0; }
  100% {
    padding-top: 0; } }

@keyframes firstAnim2sp {
  0% {
    padding-top: 0; }
  100% {
    padding-top: 0; } }

@-webkit-keyframes boxAnim1 {
  0% {
    opacity: 0;
    -webkit-transform: skew(10deg);
    transform: skew(10deg); }
  100% {
    opacity: 1;
    -webkit-transform: skew(0);
    transform: skew(0); } }

@keyframes boxAnim1 {
  0% {
    opacity: 0;
    -webkit-transform: skew(10deg);
    transform: skew(10deg); }
  100% {
    opacity: 1;
    -webkit-transform: skew(0);
    transform: skew(0); } }

@-webkit-keyframes boxAnim2 {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-10px);
    transform: translateX(-10px);
    -webkit-transform: translateY(-10px);
    transform: translateY(-10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0);
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

@keyframes boxAnim2 {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-10px);
    transform: translateX(-10px);
    -webkit-transform: translateY(-10px);
    transform: translateY(-10px); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0);
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

@-webkit-keyframes illustAnim {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-5px);
    transform: translateY(-5px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

@keyframes illustAnim {
  0% {
    opacity: 0;
    -webkit-transform: translateY(-5px);
    transform: translateY(-5px); }
  100% {
    opacity: 1;
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

@-webkit-keyframes colorAnim {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.9) skew(10deg);
    transform: scale(0.9) skew(10deg); }
  50% {
    opacity: 1;
    -webkit-transform: scale(1.02) skew(2deg);
    transform: scale(1.02) skew(2deg); }
  100% {
    opacity: 1;
    -webkit-transform: scale(1) skew(0);
    transform: scale(1) skew(0); } }

@keyframes colorAnim {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.9) skew(10deg);
    transform: scale(0.9) skew(10deg); }
  50% {
    opacity: 1;
    -webkit-transform: scale(1.02) skew(2deg);
    transform: scale(1.02) skew(2deg); }
  100% {
    opacity: 1;
    -webkit-transform: scale(1) skew(0);
    transform: scale(1) skew(0); } }

.contents {
  padding-bottom: 150px; }
  @media all and (max-width: 768px) {
    .contents {
      padding-bottom: 30px; } }

.read_copy {
  padding-top: 220px; }
  @media all and (max-width: 768px) {
    .read_copy {
      display: none; } }
  .read_copy p {
    text-align: center;
    line-height: 3em; }
    @media all and (max-width: 768px) {
      .read_copy p {
        width: 90%;
        margin: 0 auto;
        text-align: left; } }

.read_copy_sp {
  display: none; }
  @media all and (max-width: 768px) {
    .read_copy_sp {
      display: block;
      padding-top: 50px;
      width: 90%;
      margin: 0 auto; } }

.scroll_copy {
  display: inline-block;
  letter-spacing: 0.15em;
  margin: 0 auto;
  background: url("../img/common/text_anim_element.png") no-repeat;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  background-color: #000000;
  opacity: 0;
  -webkit-clip-path: inset(0 100% 0 0);
  clip-path: inset(0 100% 0 0);
  -webkit-transform: translateX(-10px);
  -ms-transform: translateX(-10px);
  transform: translateX(-10px);
  background-position: 900% 50%; }
  @media all and (max-width: 768px) {
    .scroll_copy {
      top: 25vw;
      letter-spacing: 0.08em;
      line-height: 2.5em; } }

.scroll_copy.isAnimate {
  -webkit-animation: copyAnim 0.5s 0s linear, aitf 1.5s 0.1s cubic-bezier(0, 0.63, 0.32, 1.01);
  animation: copyAnim 0.5s 0s linear, aitf 1.5s 0.1s cubic-bezier(0, 0.63, 0.32, 1.01);
  -webkit-animation-fill-mode: forwards,forwards;
  animation-fill-mode: forwards,forwards; }

.scroll_copy.long.isAnimate {
  -webkit-animation: copyAnim 0.5s 0s linear, aitf_long 1.5s 0.1s cubic-bezier(0, 0.63, 0.32, 1.01);
  animation: copyAnim 0.5s 0s linear, aitf_long 1.5s 0.1s cubic-bezier(0, 0.63, 0.32, 1.01);
  -webkit-animation-fill-mode: forwards,forwards;
  animation-fill-mode: forwards,forwards; }

.scroll_copy.short.isAnimate {
  -webkit-animation: copyAnim 0.5s 0s linear, aitf 4.5s 0s cubic-bezier(0, 0.63, 0.32, 1.01);
  animation: copyAnim 0.5s 0s linear, aitf 4.5s 0s cubic-bezier(0, 0.63, 0.32, 1.01);
  -webkit-animation-fill-mode: forwards,forwards;
  animation-fill-mode: forwards,forwards; }

@-webkit-keyframes copyAnim {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-10px);
    transform: translateX(-10px);
    -webkit-clip-path: inset(0 100% 0 0);
    clip-path: inset(0 100% 0 0); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0);
    -webkit-clip-path: inset(0);
    clip-path: inset(0); } }

@keyframes copyAnim {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-10px);
    transform: translateX(-10px);
    -webkit-clip-path: inset(0 100% 0 0);
    clip-path: inset(0 100% 0 0); }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0);
    -webkit-clip-path: inset(0);
    clip-path: inset(0); } }

@-webkit-keyframes aitf {
  0% {
    opacity: 0;
    background-position: 900% 50%; }
  100% {
    opacity: 1;
    background-position: -750% 50%; } }

@keyframes aitf {
  0% {
    opacity: 0;
    background-position: 900% 50%; }
  100% {
    opacity: 1;
    background-position: -750% 50%; } }

@-webkit-keyframes aitf_long {
  0% {
    opacity: 0;
    background-position: 900% 50%; }
  100% {
    opacity: 1;
    background-position: -4000% 50%; } }

@keyframes aitf_long {
  0% {
    opacity: 0;
    background-position: 900% 50%; }
  100% {
    opacity: 1;
    background-position: -4000% 50%; } }

@-webkit-keyframes aitf_short {
  0% {
    opacity: 0;
    background-position: 1% 50%; }
  100% {
    opacity: 1;
    background-position: -100% 50%; } }

@keyframes aitf_short {
  0% {
    opacity: 0;
    background-position: 1% 50%; }
  100% {
    opacity: 1;
    background-position: -100% 50%; } }

.thought_area {
  width: 1000px;
  margin: 0 auto;
  -webkit-transition: 0.5s;
  -o-transition: 0.5s;
  transition: 0.5s;
  position: relative;
  -webkit-transform: translateX(20px) translateY(20px);
  -ms-transform: translateX(20px) translateY(20px);
  transform: translateX(20px) translateY(20px);
  -webkit-transition: 0.5s cubic-bezier(0, 0.63, 0.32, 1.01);
  -o-transition: 0.5s cubic-bezier(0, 0.63, 0.32, 1.01);
  transition: 0.5s cubic-bezier(0, 0.63, 0.32, 1.01); }
  @media all and (max-width: 768px) {
    .thought_area {
      width: 90%; } }
  .thought_area:after {
    content: '';
    width: 100%;
    height: 100%;
    border: 2px solid #000;
    position: absolute;
    top: 0px;
    left: 0px;
    opacity: 0;
    z-index: -1;
    -webkit-transition: 0.5s cubic-bezier(0, 0.63, 0.32, 1.01);
    -o-transition: 0.5s cubic-bezier(0, 0.63, 0.32, 1.01);
    transition: 0.5s cubic-bezier(0, 0.63, 0.32, 1.01); }
  .thought_area .inner {
    width: 100%;
    border: 2px solid #000;
    background-color: #fff;
    padding: 60px 0 60px 60px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    position: relative;
    -webkit-transition: 0.5s cubic-bezier(0, 0.63, 0.32, 1.01);
    -o-transition: 0.5s cubic-bezier(0, 0.63, 0.32, 1.01);
    transition: 0.5s cubic-bezier(0, 0.63, 0.32, 1.01); }
    @media all and (max-width: 768px) {
      .thought_area .inner {
        padding: 30px 20px 20px; } }
  .thought_area .text {
    width: 475px; }
    @media all and (max-width: 768px) {
      .thought_area .text {
        width: 100%; } }
  .thought_area .illust {
    width: 400px;
    position: relative; }
    @media all and (max-width: 768px) {
      .thought_area .illust {
        width: 100%;
        height: 50vw; } }
    .thought_area .illust .sub01 {
      display: block;
      width: 255px;
      position: absolute;
      top: -20px;
      left: -50px;
      opacity: 0;
      -webkit-transition: 0.5s 0.5s;
      -o-transition: 0.5s 0.5s;
      transition: 0.5s 0.5s; }
      @media all and (max-width: 768px) {
        .thought_area .illust .sub01 {
          top: 0;
          width: 50vw;
          left: -20px; } }
    .thought_area .illust .sub02 {
      display: block;
      width: 174px;
      position: absolute;
      bottom: -70px;
      right: 40px;
      opacity: 0;
      -webkit-transition: 0.5s 0.7s;
      -o-transition: 0.5s 0.7s;
      transition: 0.5s 0.7s; }
      @media all and (max-width: 768px) {
        .thought_area .illust .sub02 {
          width: 35vw;
          bottom: 0;
          right: 0; } }

.thought_area.isAnimate {
  -webkit-transform: translateX(0) translateY(0);
  -ms-transform: translateX(0) translateY(0);
  transform: translateX(0) translateY(0); }
  .thought_area.isAnimate:after {
    top: 20px;
    left: 20px;
    opacity: 1; }
    @media all and (max-width: 768px) {
      .thought_area.isAnimate:after {
        top: 7px;
        left: 7px; } }
  .thought_area.isAnimate .illust .sub01 {
    top: -40px;
    opacity: 1; }
    @media all and (max-width: 768px) {
      .thought_area.isAnimate .illust .sub01 {
        top: -40px; } }
  .thought_area.isAnimate .illust .sub02 {
    bottom: -60px;
    opacity: 1; }
    @media all and (max-width: 768px) {
      .thought_area.isAnimate .illust .sub02 {
        bottom: 0; } }

body.bg_black .thought_area .inner {
  border: 2px solid #fff; }

body.bg_black .thought_area:after {
  border: 2px solid #fff; }

.works_area {
  width: 100%; }
  .works_area h3 {
    width: 1000px;
    margin: 0 auto;
    -webkit-transition: 0.5s;
    -o-transition: 0.5s;
    transition: 0.5s; }
    @media all and (max-width: 768px) {
      .works_area h3 {
        width: 90%;
        text-align: center; } }
  .works_area .cursor-pointer {
    visibility: hidden;
    opacity: 0;
    position: fixed;
    z-index: 10;
    -webkit-transform: scale(0.7);
    -ms-transform: scale(0.7);
    transform: scale(0.7);
    width: 106px;
    height: 106px;
    margin: -80px 0 0 -80px;
    -webkit-transition: opacity .3s,visibility .3s,-webkit-transform .3s;
    transition: opacity .3s,visibility .3s,-webkit-transform .3s;
    -o-transition: transform .3s,opacity .3s,visibility .3s;
    transition: transform .3s,opacity .3s,visibility .3s;
    transition: transform .3s,opacity .3s,visibility .3s,-webkit-transform .3s;
    pointer-events: none; }
    @media all and (max-width: 768px) {
      .works_area .cursor-pointer {
        display: none; } }
  .works_area .cursor-pointer.is-active {
    opacity: 1;
    visibility: visible;
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    transform: scale(1); }
    @media all and (max-width: 768px) {
      .works_area .cursor-pointer.is-active {
        display: none; } }
  .works_area .drag_wrap {
    width: 100%;
    min-width: 1000px;
    margin: auto;
    overflow-x: auto;
    white-space: nowrap;
    padding-top: 22px;
    overflow: hidden;
    /*↓ipad用縦css*/ }
    @media screen and (min-device-width: 744px) and (max-device-width: 1133px) and (orientation: portrait) {
      .works_area .drag_wrap {
        width: 90%;
        min-width: 90%;
        margin: 0 auto;
        overflow-x: hidden;
        white-space: normal;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between; } }
    @media all and (max-width: 768px) {
      .works_area .drag_wrap {
        width: 90%;
        min-width: 90%;
        margin: 0 auto;
        overflow-x: hidden;
        white-space: normal; } }
    .works_area .drag_wrap .box {
      opacity: 0;
      -webkit-transform: translateX(40px);
      -ms-transform: translateX(40px);
      transform: translateX(40px);
      -webkit-transition: 1s cubic-bezier(0, 0.63, 0.32, 1.01);
      -o-transition: 1s cubic-bezier(0, 0.63, 0.32, 1.01);
      transition: 1s cubic-bezier(0, 0.63, 0.32, 1.01);
      display: inline-block;
      width: 40vw;
      min-width: 480px;
      margin: 0 25px;
      /*↓ipad用縦css*/ }
      @media screen and (min-device-width: 744px) and (max-device-width: 1133px) and (orientation: portrait) {
        .works_area .drag_wrap .box {
          display: block;
          width: 48%;
          min-width: 48%;
          margin: 0 0 80px 0; } }
      @media all and (max-width: 768px) {
        .works_area .drag_wrap .box {
          width: 100%;
          min-width: 100%;
          margin: 0;
          -webkit-transform: translateX(0);
          -ms-transform: translateX(0);
          transform: translateX(0);
          -webkit-transition: 1s ease-in-out;
          -o-transition: 1s ease-in-out;
          transition: 1s ease-in-out; } }
      .works_area .drag_wrap .box:first-of-type {
        margin-left: 5vw; }
        @media screen and (min-device-width: 744px) and (max-device-width: 1133px) and (orientation: portrait) {
          .works_area .drag_wrap .box:first-of-type {
            margin-left: 0; } }
        @media all and (max-width: 768px) {
          .works_area .drag_wrap .box:first-of-type {
            margin: 0; } }
      .works_area .drag_wrap .box:nth-of-type(2) {
        -webkit-transition-delay: 0.3s;
        -o-transition-delay: 0.3s;
        transition-delay: 0.3s; }
      .works_area .drag_wrap .box:nth-of-type(3) {
        -webkit-transition-delay: 0.6s;
        -o-transition-delay: 0.6s;
        transition-delay: 0.6s; }
      .works_area .drag_wrap .box:nth-of-type(4) {
        -webkit-transition-delay: 0.9s;
        -o-transition-delay: 0.9s;
        transition-delay: 0.9s; }
      .works_area .drag_wrap .box:last-of-type {
        -webkit-transition-delay: 1.2s;
        -o-transition-delay: 1.2s;
        transition-delay: 1.2s;
        margin-right: 5vw; }
        @media screen and (min-device-width: 744px) and (max-device-width: 1133px) and (orientation: portrait) {
          .works_area .drag_wrap .box:last-of-type {
            margin-right: 0; } }
      .works_area .drag_wrap .box .link_image a {
        display: block;
        cursor: none;
        -webkit-transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01);
        -o-transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01);
        transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01);
        border: 2px solid #fff;
        position: relative; }
        .works_area .drag_wrap .box .link_image a:after {
          content: '';
          width: 100%;
          height: 100%;
          border: 2px solid #fff;
          position: absolute;
          top: -2px;
          left: -2px;
          z-index: -1;
          -webkit-transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01);
          -o-transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01);
          transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01); }
        .works_area .drag_wrap .box .link_image a:hover {
          -webkit-transform: translateX(-20px) translateY(-20px);
          -ms-transform: translateX(-20px) translateY(-20px);
          transform: translateX(-20px) translateY(-20px); }
          .works_area .drag_wrap .box .link_image a:hover:after {
            top: 22px;
            left: 22px; }
      .works_area .drag_wrap .box dl {
        -webkit-transition: 0.5s;
        -o-transition: 0.5s;
        transition: 0.5s; }
    .works_area .drag_wrap .box.isAnimate {
      opacity: 1;
      -webkit-transform: translateX(0);
      -ms-transform: translateX(0);
      transform: translateX(0); }
  .works_area .cursor-none {
    cursor: none; }
  .works_area .works_btn {
    width: 1000px;
    margin: 0 auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end; }
    @media all and (max-width: 768px) {
      .works_area .works_btn {
        width: 90%;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center; } }
    .works_area .works_btn .page_link {
      position: relative; }
      .works_area .works_btn .page_link:before {
        content: '';
        width: 30px;
        height: 2px;
        background-color: #fff;
        position: absolute;
        top: 14px;
        left: 106px;
        -webkit-transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01);
        -o-transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01);
        transition: 0.3s cubic-bezier(0, 0.63, 0.32, 1.01); }
      .works_area .works_btn .page_link:hover:before {
        left: 136px; }

body.bg_black .works_area h3 {
  color: #fff; }

body.bg_black .works_area .drag_wrap .box dl {
  color: #fff; }

body.bg_black .works_area .works_btn .page_link:before {
  display: none; }

.service_area {
  width: 100%;
  min-width: 1080px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap; }
  @media all and (max-width: 768px) {
    .service_area {
      min-width: 100%;
      display: block; } }
  .service_area h3 {
    width: 100%;
    text-align: center;
    position: relative;
    -webkit-transition: 0.5s;
    -o-transition: 0.5s;
    transition: 0.5s; }
    .service_area h3:before {
      content: '';
      width: 240px;
      height: 2px;
      background-color: #000;
      position: absolute;
      top: -15px;
      left: 0;
      right: 0;
      margin: 0 auto;
      -webkit-transition: 0.5s;
      -o-transition: 0.5s;
      transition: 0.5s; }
  .service_area .service_wrap {
    width: 50%;
    height: 650px;
    overflow: hidden; }
    @media all and (max-width: 768px) {
      .service_area .service_wrap {
        width: 100%;
        height: auto;
        padding-bottom: 90px; } }
    .service_area .service_wrap .inner {
      width: 480px;
      height: 100%;
      margin: 0 auto;
      padding-top: 140px;
      position: relative; }
      @media all and (max-width: 768px) {
        .service_area .service_wrap .inner {
          padding-top: 60px;
          width: 90%;
          height: auto; } }
      .service_area .service_wrap .inner h4 p + p {
        display: inline-block;
        position: relative; }
        .service_area .service_wrap .inner h4 p + p:after {
          content: '';
          width: 100%;
          height: 2px;
          background-color: #000;
          position: absolute;
          bottom: 0px;
          left: 0;
          right: 0;
          margin: 0 auto; }
    .service_area .service_wrap.studio {
      background-color: #fff;
      position: relative; }
      @media all and (max-width: 768px) {
        .service_area .service_wrap.studio {
          padding-top: 60px; } }
      .service_area .service_wrap.studio .partner {
        position: absolute;
        z-index: 5;
        top: 25px;
        left: 25px;
        display: inline-block; }
        @media all and (max-width: 768px) {
          .service_area .service_wrap.studio .partner {
            left: 0;
            width: 100%;
            display: block; } }
        .service_area .service_wrap.studio .partner p {
          padding-left: 10px; }
          @media all and (max-width: 768px) {
            .service_area .service_wrap.studio .partner p {
              padding-left: 0;
              text-align: center; } }
        .service_area .service_wrap.studio .partner a {
          display: block;
          width: 220px; }
          @media all and (max-width: 768px) {
            .service_area .service_wrap.studio .partner a {
              margin: 0 auto; } }
          .service_area .service_wrap.studio .partner a img {
            width: 100%; }
      .service_area .service_wrap.studio .inner:after {
        content: '';
        width: 241px;
        height: 346px;
        background: none;
        background-size: contain;
        position: absolute;
        bottom: 0;
        right: -35px; }
        @media all and (max-width: 768px) {
          .service_area .service_wrap.studio .inner:after {
            width: 120px;
            height: 173px;
            right: 5%;
            bottom: -105px; } }
      .service_area .service_wrap.studio .short_w {
        width: 280px; }
        @media all and (max-width: 768px) {
          .service_area .service_wrap.studio .short_w {
            width: 100%; } }
    .service_area .service_wrap.photo {
      color: #fff;
      background: url("../img/top/photo_bg.jpg") center no-repeat;
      background-size: cover; }
      .service_area .service_wrap.photo .inner:after {
        content: '';
        width: 230px;
        height: 209px;
        background: url("../img/top/camera_illust.svg") no-repeat;
        background-size: contain;
        position: absolute;
        bottom: 30px;
        right: -20px; }
        @media all and (max-width: 768px) {
          .service_area .service_wrap.photo .inner:after {
            width: 161px;
            height: 146px;
            right: 1%;
            bottom: -60px; } }
      .service_area .service_wrap.photo h4 p + p:after {
        background-color: #fff; }

body.bg_black .service_area h3 {
  color: #fff; }

body.bg_black .service_area h3:before {
  background-color: #fff; }

.under_contents {
  width: 1000px;
  margin: 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap; }
  @media all and (max-width: 768px) {
    .under_contents {
      width: 90%; } }
  .under_contents .link_btn {
    width: 470px; }
    @media all and (max-width: 768px) {
      .under_contents .link_btn {
        width: 100%; } }
    .under_contents .link_btn:last-of-type {
      width: 100%; }
      .under_contents .link_btn:last-of-type .page_link {
        height: 170px; }
        .under_contents .link_btn:last-of-type .page_link a:before {
          top: 85px; }
        .under_contents .link_btn:last-of-type .page_link a:after {
          top: 88px; }
        .under_contents .link_btn:last-of-type .page_link span {
          top: 65px;
          right: 30px; }
  .under_contents .page_link {
    width: 100%;
    height: 130px;
    position: relative; }
    @media all and (max-width: 768px) {
      .under_contents .page_link {
        height: 100px; } }
    .under_contents .page_link:before {
      content: '';
      width: 110px;
      height: 2px;
      background-color: #000;
      position: absolute;
      top: 0;
      left: 0;
      z-index: 2;
      -webkit-transition: 0.2s cubic-bezier(0, 0.63, 0.32, 1.01);
      -o-transition: 0.2s cubic-bezier(0, 0.63, 0.32, 1.01);
      transition: 0.2s cubic-bezier(0, 0.63, 0.32, 1.01); }
    .under_contents .page_link:hover:before {
      width: 100%; }
  .under_contents .page_link a {
    display: block;
    width: 100%;
    height: 100%;
    padding: 40px 0 0 100px;
    background-color: #E7EBEB; }
    @media all and (max-width: 768px) {
      .under_contents .page_link a {
        padding: 30px 0 0 50px; } }
    .under_contents .page_link a:before {
      top: 65px;
      right: 48px; }
      @media all and (max-width: 768px) {
        .under_contents .page_link a:before {
          top: 50px;
          right: 33px; } }
    .under_contents .page_link a:after {
      top: 67px;
      right: 48px; }
      @media all and (max-width: 768px) {
        .under_contents .page_link a:after {
          top: 52px;
          right: 33px; } }
    .under_contents .page_link a p {
      position: relative; }
    .under_contents .page_link a span {
      top: 45px;
      right: 30px; }
      @media all and (max-width: 768px) {
        .under_contents .page_link a span {
          top: 30px;
          right: 15px; } }
    .under_contents .page_link a:hover p {
      -webkit-transform: translateX(5px);
      -ms-transform: translateX(5px);
      transform: translateX(5px);
      letter-spacing: 0.21em; }
  .under_contents .link_btn.company .page_link a p:before {
    content: '';
    position: absolute;
    top: 15px;
    left: -70px;
    width: 55px;
    height: 24px;
    background: url("../img/top/enone_ico.svg") no-repeat;
    background-size: contain; }
    @media all and (max-width: 768px) {
      .under_contents .link_btn.company .page_link a p:before {
        width: 27px;
        height: 12px;
        top: 18px;
        left: -35px; } }
  .under_contents .link_btn.qa .page_link a {
    padding-left: 70px; }
    @media all and (max-width: 768px) {
      .under_contents .link_btn.qa .page_link a {
        padding-left: 50px; } }
  .under_contents .link_btn.qa .page_link a p:before {
    content: '';
    position: absolute;
    top: 12px;
    left: -30px;
    width: 14px;
    height: 34px;
    background: url("../img/top/qa_ico.svg") no-repeat;
    background-size: contain; }
    @media all and (max-width: 768px) {
      .under_contents .link_btn.qa .page_link a p:before {
        width: 10px;
        height: 24px;
        left: -25px; } }
  @media all and (max-width: 768px) {
    .under_contents .link_btn.sns .page_link a {
      padding-left: 25px;
      padding-top: 60px; } }
  @media all and (max-width: 768px) {
    .under_contents .link_btn.sns .page_link a:before {
      display: none; } }
  @media all and (max-width: 768px) {
    .under_contents .link_btn.sns .page_link a:after {
      display: none; } }
  @media all and (max-width: 768px) {
    .under_contents .link_btn.sns .page_link a span {
      display: none; } }
  @media all and (max-width: 768px) {
    .under_contents .link_btn.sns .page_link a p {
      width: 95%;
      margin: 0 auto;
      line-height: 1.5em;
      letter-spacing: 0.08em; } }
  @media all and (max-width: 768px) {
    .under_contents .link_btn.sns .page_link a p br {
      display: none; } }
  .under_contents .link_btn.sns .page_link a p:before {
    content: '';
    position: absolute;
    top: 25px;
    left: -67px;
    width: 45px;
    height: 45px;
    background: url("../img/common/fb_icon.svg") no-repeat;
    background-size: contain; }
    @media all and (max-width: 768px) {
      .under_contents .link_btn.sns .page_link a p:before {
        width: 30px;
        height: 30px;
        top: -40px;
        left: 0;
        right: 0;
        margin: 0 auto; } }

/* === MORE SLOWLY hero recompose（案B / 2026-05-30）======================
   参考元の「中央縦書き見出し＋四隅イラスト」構図を解消するための再配置。
   見出しを左端へ、人物4枚を中央〜右へ寄せる。位置(left/right/top)のみ変更し
   アニメーション(firstAnim=opacity / boxAnim1=skew 等)は一切書き換えない。
   モバイル(≤480px)は原状維持のため min-width:481px に限定して上書きする。   */
@media all and (min-width: 769px) {
  .fv h2 {
    left: 6%;
    right: auto;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%); }
  .fv .web_illust {
    left: auto;
    right: 40%;
    top: 11%;
    width: 30vw;
    max-width: 440px;
    min-width: 320px; }
  .fv .photo_illust {
    left: auto;
    right: 44%;
    top: 62%;
    width: 23vw;
    max-width: 320px;
    min-width: 230px; }
  .fv .hearing_illust {
    right: 6%;
    top: 13%;
    width: 29vw;
    max-width: 410px;
    min-width: 300px; }
  .fv .graphic_illust {
    right: 2%;
    top: 54%;
    width: 33vw;
    max-width: 480px;
    min-width: 320px; }
  /* スクロール誘導コピー＋ガイド線を、中央(人物と衝突)から左下の余白へ。
     見出し縦書きテキストは y620 付近で終わるため左下が空く。位置のみ。 */
  .fv .scroll {
    left: 2%;
    right: auto;
    width: 240px; }
}
/* === /MORE SLOWLY hero recompose ====================================== */

/* === MORE SLOWLY hero illustrations: 透過PNGに差し替え（2026-05-30）=========
   4枚の透過イラストをカード枠なしで配置。skew は図が歪むため不使用。
   入場 = 既存タイミング(2s起点)を踏襲しつつ「テキスト表示後に下からふわっと上がる」。 */
.fv .web_illust > .hero_pic,
.fv .photo_illust > .hero_pic,
.fv .hearing_illust > .hero_pic,
.fv .graphic_illust > .hero_pic {
  display: block;
  width: 100%;
  height: auto; }
/* 旧SVGの背景(illust4)等の名残を無効化 */
.fv .web_illust:after,
.fv .photo_illust:after,
.fv .hearing_illust:after,
.fv .graphic_illust:after {
  content: none !important;
  background: none !important; }
@-webkit-keyframes msRiseUp {
  0% { opacity: 0; -webkit-transform: translateY(54px); transform: translateY(54px); }
  100% { opacity: 1; -webkit-transform: translateY(0); transform: translateY(0); } }
@keyframes msRiseUp {
  0% { opacity: 0; transform: translateY(54px); }
  100% { opacity: 1; transform: translateY(0); } }
.fv .web_illust,
.fv .photo_illust,
.fv .hearing_illust,
.fv .graphic_illust {
  opacity: 0;
  -webkit-transform: translateY(54px);
  -ms-transform: translateY(54px);
  transform: translateY(54px);
  -webkit-animation: msRiseUp 0.8s cubic-bezier(0, 0.63, 0.32, 1.01) forwards;
  animation: msRiseUp 0.8s cubic-bezier(0, 0.63, 0.32, 1.01) forwards; }
.fv .web_illust { -webkit-animation-delay: 2s; animation-delay: 2s; }
.fv .hearing_illust { -webkit-animation-delay: 2.15s; animation-delay: 2.15s; }
.fv .photo_illust { -webkit-animation-delay: 2.3s; animation-delay: 2.3s; }
.fv .graphic_illust { -webkit-animation-delay: 2.45s; animation-delay: 2.45s; }
/* === /MORE SLOWLY hero illustrations ================================== */

/* === MORE SLOWLY: under_contents の長いブランド名リンクが矢印に重なる問題の修正（2026-05-31）
   原本(enone)は「会社のこと」等の短い日本語ラベル前提のレイアウト。
   "MORE SLOWLYについて" はワイドトラッキングのラテン文字で横に伸び、
   右側の絶対配置の矢印（線＋丸）に重なる（"について" が矢印の下に潜る）。
   company / qa の見出しラベルを矢印の手前で収まるよう微調整する。
   位置・アニメJS・矢印そのものは一切変更しない。 */
.under_contents .link_btn.company .page_link a p,
.under_contents .link_btn.qa .page_link a p {
  font-size: 20px;
  letter-spacing: 0.02em;
  padding-right: 62px; }
.under_contents .link_btn.company .page_link a:hover p,
.under_contents .link_btn.qa .page_link a:hover p {
  letter-spacing: 0.05em; }
@media all and (max-width: 768px) {
  .under_contents .link_btn.company .page_link a p,
  .under_contents .link_btn.qa .page_link a p {
    font-size: 16px;
    padding-right: 44px; } }
/* sns CTA の Facebook アイコンを除去（原本enoneのFB誘導の名残。リンク先はcontactで、FBは存在しない） */
.under_contents .link_btn.sns .page_link a p:before {
  content: none;
  background: none; }
/* === /MORE SLOWLY under_contents link fix ============================= */

/* enone由来の社名マークを撤去（会社情報リンク横の小マーク）。位置・矢印・他は不変。 */
.under_contents .link_btn.company .page_link a p:before { content: none; }


/* === MORE SLOWLY: トップ レイアウト組み替え（2026-05-31 / 位置替え再構成）
   enone基盤CSSは不変更。index.html の並べ替えに対応する配置オーバーライドのみ。
   A:ミッション文を左寄せ＋右に画像 / C:制作実績を4枚グリッド / D:料金とサービスを文章下へ再配置。 */

/* A. read_copy: 中央→左寄せ＋右画像（PCのみ。SPは read_copy_sp を使用） */
.ms_intro_img img { width: 100%; height: auto; display: block; }
@media all and (min-width: 769px) {
  .ms_intro_row {
    display: -webkit-box; display: -ms-flexbox; display: flex;
    -webkit-box-align: center; -ms-flex-align: center; align-items: center;
    -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between;
    max-width: 1040px; margin: 0 auto; padding-top: 220px; }
  .ms_intro_row .read_copy { width: 58%; padding-top: 0; }
  .ms_intro_row .read_copy p { text-align: left; }
  .ms_intro_img { width: 34%; }
}
@media all and (max-width: 768px) {
  .ms_intro_img { display: none; }
  .ms_intro_row { display: block; }
}

/* C. 制作実績: 横スクロール→4枚グリッド */
.works_area {
  padding-left: 48px;
  padding-right: 48px; }
.works_area .work_title {
  max-width: 1120px;
  margin-left: auto;
  margin-right: auto; }
.works_area .work_title h3 {
  width: 100%; }
.ms_works_grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
  max-width: 1120px; margin-left: auto; margin-right: auto; }
.ms_works_grid .box { width: auto; margin: 0; }
.ms_works_grid .box .link_image { width: auto; }
.ms_works_grid .box .link_image img { width: 100%; height: auto; display: block; }
.ms_works_cta {
  display: -webkit-box; display: -ms-flexbox; display: flex;
  -webkit-box-align: center; -ms-flex-align: center; align-items: center;
  -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center;
  border: 1px solid #c7ccc7; border-radius: 6px; background: #eef1ee;
  text-align: center; min-height: 120px;
  -webkit-transition: .2s; -o-transition: .2s; transition: .2s; }
.ms_works_cta:hover { background: #e4e8e4; }
.ms_works_cta .ms_cta_in { font-weight: 700; line-height: 1.7; letter-spacing: .06em; }
.ms_works_cta .ms_cta_arrow { display: block; margin-top: 10px; font-size: 22px; }
@media all and (max-width: 900px) {
  .ms_works_grid { grid-template-columns: repeat(2, 1fr); } }
@media all and (max-width: 768px) {
  .works_area { padding-left: 5%; padding-right: 5%; }
  .ms_works_grid { grid-template-columns: 1fr; gap: 18px; } }

/* D. 料金とサービス: 文章下へ移動済み。セクション見出しを左寄せ＋本文カラム(1000px中央)に揃えて左に余白を作る */
.service_area > h3 { text-align: left; max-width: 1000px; margin-left: auto; margin-right: auto; }
@media all and (max-width: 768px) {
  .service_area > h3 { max-width: 90%; } }

/* ヒーロー直下の CTA 導線（無料相談 / 料金） */
.ms_hero_cta {
  display: -webkit-box; display: -ms-flexbox; display: flex;
  -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center;
  -ms-flex-wrap: wrap; flex-wrap: wrap;
  gap: 16px; max-width: 1000px; margin: 0 auto; padding-top: 30px; }
.ms_btn {
  display: inline-block; font-weight: 700; font-size: 15px; letter-spacing: .1em;
  padding: 17px 40px; border-radius: 4px; text-align: center;
  -webkit-transition: .2s; -o-transition: .2s; transition: .2s; }
.ms_btn_primary { background: #22221f; color: #fff; }
.ms_btn_primary:hover { background: #4a4a44; }
.ms_btn_ghost { border: 1px solid #22221f; color: #22221f; }
.ms_btn_ghost:hover { background: #22221f; color: #fff; }
@media all and (max-width: 768px) {
  .ms_hero_cta { gap: 10px; padding: 20px 5% 0; }
  .ms_btn { -webkit-box-flex: 1; -ms-flex: 1; flex: 1; padding: 14px 8px; font-size: 13px; letter-spacing: .04em; } }
/* === /MORE SLOWLY トップ組み替え === */

/* === モバイル微調整（2026-06-01）: ヒーロー画像と見出しの被り解消 / 制作サンプルの余白 === */
@media all and (max-width: 768px) {
  /* 左上ノートPCイラストが見出し帯(約45%)に食い込むのを解消（縮小＋上方へ） */
  .fv .web_illust {
    width: 52vw; max-width: 210px; min-width: 0;
    top: 11%; left: -6%; }
  .fv .web_illust:after {
    width: 52vw; max-width: 210px; min-width: 0; }
  /* 制作サンプル: カード間ギャップと左右ガターでギチギチ解消 */
  .ms_works_grid {
    gap: 40px;
    padding-left: 0; padding-right: 0; }
  .works_area .work_title { margin-bottom: 1.4em; }
}
