@charset "utf-8";
@import "setting-custom.css";

/* === CSS変数は setting-custom.cssを読み込み === */

/* ====== 1rem = 10px ====== */

/* =====================
    Common Elements
=============================================== */
.center_txt{
    text-align: center;
}
.flex-center {
    @media (max-width: 1210px) {
        padding: 0 20px;
    }
}
/* 見出し */
h2.title{
    font-weight: 700;
    font-size: 4.5rem;
    line-height: 1.4;
    font-family: var(--hiragino-font);
    @media (max-width: 1024px) {
        font-size: 4rem;
    }
    &.white{
        color: var(--fontcolor-white);
    }
    &.blue{
        color: var(--bgcolor-darkblue);
    }
}

h3.title{
    font-size: 3.2rem;
    text-decoration: underline;
    font-family: var(--mplus1-font);
    font-weight: 500;
    color: var(--fontcolor-white);
    line-height: 2em;
    margin: 0;
}

/* 共通ボタン（テキスト） */
.common_btn{
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    position: relative;
    font-size: clamp(1.8rem, 3.769rem - 1.026vw, 3.0rem);
    padding: 1em 6em;
    font-weight: bold;

    @media (max-width:1023px){
        max-width: calc(100% - 32px);
        padding: 1em 0;
        font-size: 2.0rem;
    }

    &.blue{
        color: var(--fontcolor-white);
        background-color: var(--bgcolor-blue);
    }
    &.white{
        color: var(--fontcolor-darkblue2);
        background-color: var(--bgcolor-white);
    }
}

/* 共通 白抜き文字 */
.outline{
    color: transparent;
    font-family: var(--notoserif-jp-font);
    -webkit-text-stroke: 3.9px var(--fontcolor-white);
    text-stroke: 3.9px var(--fontcolor-white);
    paint-order: stroke fill;
}

/* =====================
    共通 アニメーション関係
=============================================== */

html {
    overflow-y: scroll;
}

/* マウスオーバーで文字がクルッと下から回転 */
/* aタグに .rotateクラス付与 → 内包のspanに対して動作 */
.rotate{
    text-decoration: none;
}

.rotate{
    --rotate-line-height: 1.2em;

    /* クリップ担当（推奨: .rotate_clip） */
    > .rotate_clip,
    > span:not(.rotate_clip){
        display: inline-block;
        overflow: hidden;
        line-height: var(--rotate-line-height);
        height: var(--rotate-line-height);
        white-space: nowrap;
    }

    /* 移動担当（文字本体） */
    > .rotate_clip > span,
    > span:not(.rotate_clip){
        display: block;
        position: relative;
        transition: transform 0.3s ease;
        text-shadow: 0 var(--rotate-line-height) 0 currentColor;
    }

    &:hover{
        > .rotate_clip > span,
        > span:not(.rotate_clip){
            transform: translateY(calc(-1 * var(--rotate-line-height)));
        }
    }
}


/* =====================
    パンくず
=============================================== */
.breadcrumbs {
    font-size: 1.5rem;
    padding: 10px 0;
    @media (max-width: 767px)  {
        font-size: 1.3rem;
        padding: 5px 0;
    }
}
/* =====================
    Layout
=============================================== */

/* --- レイアウト共通 --- */
.column{
    width: 100%;
    padding: 0;
    .row{
        /* 
            最小値: 670px
            推奨値: 45.3vw + 330.3px (計算値)
            最大値: 1200px
        */
        width: clamp(670px, 45.3vw + 330.3px, 1200px);
        margin-inline: auto;

        @media (max-width:1023px){
            width: calc(100% - 32px); /* 左右16px余白 */
        }

        /* フルワイド */
        &.fullwidth{
            width: 100%;
        }

        /* 左右分割 共通flexbox */
        .flex{
            width: 100%;
            display: flex;
            flex-wrap: wrap;
            justify-content:space-between;
            gap: 0;

            @media (max-width:1023px){
                flex-direction: column;
            }

            &.flex-center{
                align-items: center;
            }
            > div{
                width: calc(100% / 2);
                @media (max-width:1023px){
                    width: 100%;
                }
            }
        }
    }
}
/* =====================
  Header
=============================================== */

#header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  width: 100%;
  transition: transform .3s ease, background .3s ease;
}

/* body #header {
  position: absolute;
}
body #header.is-fixed {
  position: fixed;
  .header_inner {
    padding: 13px 20px 13px 38px;
    @media (max-width: 767px)  {
      padding: 15px 20px 0;
    }
  }
} */

.head_belt {
  width: 100%;
}

.header_inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 20px 0 38px;
}

.logo_area {
  display: block;
  width: 350px;
  @media (max-width: 1250px) {
    width: 180px;
  }
  @media (max-width: 767px) {
    width: 130px;
  }

  img {
    display: block;
    width: 100%;
    height: auto;
  }
  .sp_over_hide_logo {
    display: none;
  }
    @media (max-width: 1250px) {
  .sp_over_hide_logo {
    display: block;
  }
  .sp_hide_logo {
    display: none;
  }
    }
    h1 {
        display: none;
    }
}
    .lower-logo {
        max-width: 65px;
    }
.head_r {
  display: flex;
  align-items: center;
}

.header_entry {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 153px;
  height: 49px;
  background: rgba(255,255,255, 0.6);
  color: #151936 !important;
  font-size: 22px;
  font-weight: 700;
  font-style: italic;
  text-decoration: none;
  letter-spacing: .02em;
  backdrop-filter: blur(10px);
}

.hamburger {
  position: relative;
  width: 50px;
  height: 49px;
  border: none;
  background: #171a3c;
  cursor: pointer;
  padding: 0;
}

.hamburger_line {
  position: absolute;
  left: 18px;
  width: 17px;
  height: 1px;
  background: #fff;
  transition: .3s;
}

.line01 {
  top: 17px;
}

.line02 {
  top: 24px;
}

.line03 {
  top: 31px;
}

/* =====================
  Menu
=============================================== */

.global_menu {
  position: fixed;
  inset: 0;
  z-index: 2000;
  width: 100vw;
  height: 100dvh;
  background: #171a3cc9;
  color: #fff;

  opacity: 0;
  visibility: hidden;
  pointer-events: none;

  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;

  transition: opacity .35s ease, visibility .35s ease;

  &.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
}


.global_menu__inner {
  position: relative;
  min-height: 100dvh;
  padding: 35px 38px 80px;
  overflow: visible;

  &::after {
    content: "";
    position: absolute;
    right: -110px;
    bottom: -70px;
    width: 820px;
    height: 520px;
    background: url("../img/common/xceed-bg-img.png") center / contain no-repeat;
    opacity: .23;
    pointer-events: none;
  }
}

.global_menu__head {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}

.global_menu__logo {
  display: block;
  width: 375px;

  img {
    display: block;
    width: 100%;
    height: auto;
  }
}

.global_menu__close {
  position: relative;
  width: 31px;
  height: 31px;
  border: none;
  background: transparent;
  cursor: pointer;
  padding: 0;

  span {
    position: absolute;
    top: 13px;
    left: 23px;
    width: 29px;
    height: 2px;
    background: #fff;
    @media (max-width: 767px) {
      left: -5px;
    }
  }

  span:first-child {
    transform: rotate(45deg);
  }

  span:last-child {
    transform: rotate(-45deg);
  }
}

.global_menu__body {
  position: relative;
  z-index: 2;
  max-width: 587px;
  width: 100%;
  margin: 80px auto 0;

}

.global_menu__list {
  list-style: none;
  padding: 0;
  margin: 0;

  li + li {
    margin-top: 35px;
  }

  a {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 20px;

    color: #fff;
    font-family: var(--poppins-font);
    font-size: 3rem;
    font-weight: 500;
    letter-spacing: .11em;
    line-height: 1;
    text-decoration: none;

    &::after {
      content: "";
      width: 12px;
      height: 20px;
      flex-shrink: 0;

      background: url('../img/common/menu-arrow.png') center / contain no-repeat;

      transition: transform .3s ease;
      @media (max-width: 1024px) {
        width: 10px;
        height: 17px;
      }
      @media (max-width: 767px) {
        width: 8px;
        height: 11px;
      }
    }

    &:hover {
      &::after {
        transform: translateX(6px);
      }
    }
  }
}

.global_menu__entry {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 486px;
  height: 95px;
  margin-top: 54px;
  background: #fff;
  color: #171a3c !important;
  font-size: 30px;
  font-weight: 700;
  font-style: italic;
  text-decoration: none;
}

/* =====================
  SP
=============================================== */

@media screen and (max-width: 1024px) {
    .global_menu__entry {
    display: flex !important;
    justify-content: center;
    margin: 45px auto 0;
    }
}
@media screen and (max-width: 820px) {
   .global_menu__list {
    a {
      font-size: 2.9rem;
    }
  }
}
@media screen and (max-width: 767px) {
  .header_inner {
    padding: 15px 20px 0;
  }

  .header_entry {
    width: 100px;
    height: 43px;
    font-size: 1.7rem;
  }

  .hamburger {
    width: 43px;
    height: 43px;
  }

  .hamburger_line {
    left: 14px;
  }

  .line01 {
    top: 14px;
  }

  .line02 {
    top: 21px;
  }

  .line03 {
    top: 28px;
  }

  .global_menu__inner {
  position: relative;
  height: 100vh;
  min-height: 100vh;
  padding: 30px 20px;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  backdrop-filter: blur(10px);

    &::after {
        right: -60px;
        bottom: 0;
        width: 450px;
        height: 330px;
    }
  }

  .global_menu__logo {
            width: 140px;
  }

  .global_menu__close {
    width: 32px;
    height: 32px;

    span {
      top: 15px;
      width: 32px;
      height: 2px;
    }
  }

  .global_menu__body {
    width: 100%;
    margin: 70px auto 0;
  }

  .global_menu__list {
    li + li {
      margin-top: 15px;
    }

    a {
      font-size: 1.5rem;
      letter-spacing: .14em;
      gap: 14px;


    }
  }

  .global_menu__entry {
    width: 90%;
    height: 60px;
    font-size: 2.1rem;
  }
}

/* =====================
    メインビジュアル
=============================================== */

.sec_mainvisual{
    width: 100%;
    height: 100svh;
  height: 100svh;
  position: sticky;
  top: 0;
  display: grid;
  place-items: center;
    /* position: relative; */
    overflow: hidden;
    background-color: var(--bgcolor-black);
/* @media (max-width: 767px) {
    height: 65svh;
} */
    .bg-video{
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 100%;
        height: 100%;
        object-fit: cover;
        z-index: 1;
    }
}

/* =====================
    各セクション
=============================================== */

/* === 現状に満足している人に、XCEEDは向いていません。 === */
.sec_your_limits {
  position: relative;
  overflow: hidden;
  background-color: var(--bgcolor-darkblue);


  /* =========================
  背景文字
  ========================= */
  .big_text_bg {
    position: absolute;
    top: 41%;
    left: 0px;
    transform: translateY(-50%);
    z-index: 2;
    pointer-events: none;

    span {
      display: block;
      font-family: var(--hiragino-font);
      font-size: clamp(12rem, 13.5vw, 30rem);
      line-height: 0.95;
      font-weight: 800;
      letter-spacing: 0;
      color: rgba(255, 255, 255, .28);
    }
  }

  /* =========================
  レイアウト
  ========================= */
  .row {
    position: relative;
    z-index: 4;
    padding-top: 30px;
    padding-bottom: 180px;

    p {
      color: var(--fontcolor-white);
    }
  }

  .flex-center {
    display: flex;
    align-items: center;
    max-width: 1200px;
    width: 100%;
    margin-inline: auto;
  }

  .leftBox {
    position: relative;
    z-index: 4;
    width: 50%;
    p {
      font-size: 4.5rem;
      font-weight: 600;
      white-space: nowrap;
    }
  }

  .rightBox {
    position: relative;
    z-index: 5;
    width: 50%;
    p {
      font-size: 2.2rem;
      line-height: 1.7;
      letter-spacing: 0.2rem;
      text-wrap: pretty;
      word-break: auto-phrase;
      line-break: strict;
      font-weight: 600;
    }
  }

  .inner_division {
    display: flex;

    > div:first-child {
      width: 600px;
    }

    > div:last-child {
      flex: 1;
    }
  }

  .title {
    margin-bottom: 30px;
  }

}

.sec_your_limits {
  @media (max-width: 820px) {
    min-height: initial !important;
    height: 100%;
    overflow: hidden;
    border-bottom: 4px solid #1f66d1;


    .big_text_bg {
      top: 35px;
      left: -1px;
      transform: none;
      z-index: 2;

      span {
        font-size: 16rem;
        line-height: 1;
        font-weight: 800;
        letter-spacing: -0.04em;
        color: rgba(255, 255, 255, .28);
      }
    }

    .row {
      min-height: 100vh;
      padding: 0 20px 70px;
      display: block;
    }

    .flex-center {
      display: block;
      max-width: none;
      width: 100%;
    }

    .leftBox {
      width: 100%;
      min-height: 310px;
      display: flex;
      align-items: center;
      justify-content: flex-end;


      p {
        position: relative;
        z-index: 5;
        font-size: clamp(2.8rem, 8vw, 4rem);
        font-weight: 700;
        line-height: 1;
        letter-spacing: .08em;
        text-align: right;
        white-space: nowrap;
      }
    }

    .rightBox {
      width: 100%;
      position: relative;
      z-index: 5;

      .inner_division {
        display: block;

        > div:first-child {
          width: 100%;
        }
      }

      .title {
        display: none;
      }

      p {
        font-size: 1.6rem;
        line-height: 2;
        letter-spacing: .08em;
        font-weight: 700;
      }
    }
  }
  @media (max-width: 767px) {
    .big_text_bg {

      span {
        font-size: 9rem;

      }
    }
  }
}

/* =========================
アニメーション
========================= */
@keyframes paintSplash {
  0% {
    opacity: 0;
    transform: translateY(-180px) scale(1.25) rotate(-4deg);
    clip-path: inset(0 0 100% 0);
  }

  40% {
    opacity: 1;
    transform: translateY(20px) scale(1.08) rotate(2deg);
    clip-path: inset(0 0 28% 0);
  }

  62% {
    opacity: 1;
    transform: translateY(0) scale(1.16) rotate(-1deg);
    clip-path: inset(0 0 0 0);
  }

  78% {
    transform: translateY(0) scale(.96) rotate(1deg);
  }

  100% {
    opacity: 1;
    transform: translateY(0) scale(1) rotate(0deg);
    clip-path: inset(0 0 0 0);
  }
}



/* === XCEEDを知る === */
.sec_know {
  position: relative;
  overflow: hidden;
  background: url(../img/common/sec_bg01.jpg) left top / cover no-repeat;

  .row {
    min-height: 640px;
    padding-block: 0;
    display: flex;
    align-items: center;
  }

  .flex {
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
    display: flex;
    align-items: center;
  }

  .leftBox {
    width: 41%;
    position: relative;
    z-index: 2;
    order: 1;

    .inner_division {
      display: flex;

      > div:first-child {
        flex: 1;
      }

      > div:last-child {
        width: 340px;
      }
    }

    .title {
      margin-bottom: 28px;
      font-size: 4.5rem;
      font-family: var(--hiragino-font);
      font-weight: 800;
      line-height: 1;
      letter-spacing: -0.01em;

        background: linear-gradient(180deg, #184078 0%, #00265a 100%);
        color: transparent;
        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: transparent;
        text-fill-color: transparent;
    }

    p {
      max-width: 90%;
      font-size: 1.5rem;
      font-weight: 600;
      line-height: 2.1;
      letter-spacing: 0.08em;
      margin: 0 0 32px;
    }

    .common_btn {
      max-width: 367px;
      width: 100%;
      height: 70px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.8rem;
      font-weight: 700;
      padding: 0;
      letter-spacing: 0.1em;
      font-family: var(--hiragino-font);
background: #173E76;
background: linear-gradient(167deg, rgba(23, 62, 118, 1) 0%, rgba(24, 27, 57, 1) 100%);
    }
  }

  .rightBox {
    flex: 1;
     order: 2;
    margin-right: calc(50% - 50vw);
    position: relative;
    z-index: 1;
    overflow: hidden;
  }
}

.sec_know__copy {
  width: 100%;
  transform: translateX(10px);
  h2 {
    font-size: 11rem;
    letter-spacing: 0;
    @media (max-width: 1750px)  {
        font-size: 9rem;
    }
    @media (max-width: 1457px)  {
        font-size: 8.3rem;
    }
    @media (max-width: 1290px)  {
        font-size: 7.6rem;
    }
    @media (max-width: 1150px)  {
        font-size: 7rem;
    }
    @media (max-width: 1024px)  {
        font-size: 6.4rem;
    }
      span {
    background-image: inherit;
    background-size: inherit;
    background-repeat: inherit;
    background-position: inherit;

    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    line-height: 1;
  }
  }
  .js-blur-text {
  span {
    display: inline-block;
    opacity: 0;
    filter: blur(12px);
    transform: scale(1.05);
  }

  &.is-active {
    span {
      animation: blurInText .8s cubic-bezier(.165, .84, .44, 1) forwards;
    }
  }
}
}

.mask-text {
  margin: 0;
  font-weight: 900;
  font-family: var(--helvetica-neue-font);
  line-height: 1;
  letter-spacing: -0.01em;

        text-transform: uppercase;
    letter-spacing: -0.04em;
    /* ▼ お好きな画像のURLに変更してください */
    background-image: url('../img/common/txt-anime-move.png');
    
    /* 1. 画像を要素の「3倍」の大きさにする（超巨大化） */
    background-size: 300% 300%;
    
    /* 念のためリピートもオン（保険） */
    background-repeat: repeat;
    
    /* テキストで切り抜き */
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;

    /* 8秒かけてゆっくり動き、反転ループ */
    animation: safeMove 4s ease-in-out infinite alternate;
}


@media screen and (max-width: 820px) {
  .sec_know {
    overflow: hidden;
    background: url(../img/common/sec_bg01-sp.png) left top / cover no-repeat;

    .row {
      min-height: auto;
      padding: 62px 0 64px;
      display: block;
    }

    .flex {
      display: flex;
      flex-direction: column;
      max-width: none;
      width: 100%;
    }

    .rightBox {
      order: 1;
      width: 100%;
      flex: none;
      margin-right: 0;
      overflow: visible;
    }

    .leftBox {
      order: 2;
      width: 100%;
      margin-top: 38px;

      .inner_division {
        display: block;

        > div:first-child {
          width: 100%;
        }
      }

      .title {
        margin-bottom: 26px;
        font-size: 2.9rem;
        line-height: 1;
      }

      p {
        max-width: 100%;
        margin: 0 0 38px;
        font-size: 1.65rem;
        line-height: 1.9;
        letter-spacing: .12em;
        font-weight: 700;
      }

      .common_btn {
        max-width: none;
        width: calc(100% - 35px);
        height: 70px;
        margin: 0 auto;
        font-size: 2.2rem;
      }
    }
  }

  .sec_know__copy {
    width: 100%;
    margin-top: 0;
    transform: none;

    h2 {
      font-size: 7rem;
    }
  }

  .mask-text {
    line-height: .86;
    letter-spacing: -0.045em;
  }
}
@media screen and (max-width: 767px) {
    .sec_know__copy {
    h2 {
      font-size: 4.2rem;
    }
  }
}

/* === スクロールすると要素が固定され後続の要素が重なるアニメーション === */
.sticky_wrap {
  position: relative;
  @media (max-width: 767px) {
    overflow: hidden;
  }
}
.sec_your_limits {
  position: sticky;
  top: 0;
  min-height: 100vh;
  z-index: 1;
  @media (min-width: 1500px) {
    min-height: 130vh;
  }
  @media (max-width: 1024px) {
    min-height: 70vh;
  }
  @media (max-width: 767px)  {
    min-height: initial;
    height: auto;
    position: initial;
    padding-bottom: 50px;
  }
}

.sec_know {
  position: relative;
  z-index: 2;
  margin-top: -20vh;
  @media (max-width: 767px) {
    margin-top: 0;
  }
}

.sec_your_limits .row {
  min-height: 100vh;
  padding-top: 0;
  padding-bottom: 0;
  display: flex;
  align-items: center;
  @media (max-width: 1024px) {
    min-height: 70vh;
  }
  @media (max-width: 767px)  {
    min-height: initial;
    height: auto;
  }
}

.sec_know {
  position: relative;
  z-index: 3;
  min-height: 100vh;
  margin-top: -10vh;
  background-image: url(../img/common/sec_bg01.jpg);
  background-position: left top;
  background-repeat: no-repeat;
  background-size: cover;
  @media (max-width: 1024px) {
    min-height: 70vh;
  }
  @media (max-width: 767px)  {
    min-height: initial;
    height: auto;
            margin-top: -5px;
  }
}

.sec_know .row {
  min-height: 100vh;
  padding-block: 80px;
  display: flex;
  align-items: center;
  @media (max-width: 1024px) {
    min-height: 70vh;
  }
    @media (max-width: 767px)  {
    min-height: initial;
    height: auto;
  }
}

/* === データで見るXCEED === */
.sec_data {
  position: relative;
  overflow: hidden;
  background-image: url(../img/common/sec_data_bg.jpg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;

  .row {
    padding-block: clamp(70px, 9vw, 120px);

    p {
      color: var(--fontcolor-white);
    }
  }

  .flex {
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
    display: flex;
    align-items: center;
  }

  .leftBox {
    flex: 1;
    margin-left: calc(50% - 50vw);
    margin-right: 4%;
  }

  .rightBox {
    width: 42%;
    position: relative;
    z-index: 2;
        .title {
        font-size: 4.5rem;
        font-weight: 700;
    }

    p {
      margin: 30px 0;
      font-weight: 600;
    }
    .common_btn {
        max-width: 367px;
        width: 100%;
        height: 70px;
        padding: 0;
        font-family: var(--hiragino-font);
        font-weight: 700;
        font-size: 1.8rem;
    }
  }

  .sec_data__en {
    margin: 0;
    font-family: var(--helvetica-neue-font);
    font-size: 12rem;
    font-weight: 900;
    line-height: 0.84;
    letter-spacing: -0.04em;
    @media (max-width: 1560px)  {
        font-size: 8.5rem;
    }
    @media (max-width: 1390px)  {
        font-size: 8rem;
    }
    @media (max-width: 1290px)  {
        font-size: 7.1rem;
    }
    @media (max-width: 1150px)  {
        font-size: 6.7rem;
    }
    @media (max-width: 1024px)  {
        font-size: 6.1rem;
    }
    @media (max-width: 820px)  {
        font-size: 8rem;
    }
  }
  @media screen and (max-width: 820px) {
    .rightBox {
        margin-top: 40px;
    }
  }
  @media screen and (max-width: 768px) {
    .row {
      padding: 70px 0;
    }

    .flex {
      display: block;
    }

    .leftBox {
      margin-left: 0;
      margin-right: 0;
      overflow: visible;
    }

    .rightBox {
      width: 100%;
      .title {
        font-size: 2.9rem;
      }
      p {
        margin-bottom: 70px;
      }
    }

    .sec_data__en {
      font-size: 4.3rem;
      white-space: normal;
      line-height: 0.9;
    }
  }
}

/* === 人と仕事を知る === */
.sec_getting_to_know{
    background-image: url(../img/common/sec_bg01.jpg);
    background-position: left top;
    background-repeat: no-repeat;
    background-size: cover;
    .row{
        padding-top: clamp(55px, 0.43rem + 6.41vw, 130px);
        padding-bottom: clamp(0px, 5.64rem + -4.7vw, 55px);
        text-align: center;
        max-width: 1200px;
        width: 100%;
        margin: 0 auto;
        .title {
            @media (max-width: 1210px) {
                padding: 0 20px;
            }
        }
        > p{
            font-size: 1.8rem;
            font-weight: 600;
            margin: 30px auto 0 auto;
            @media (max-width: 1210px) {
                padding: 0 20px;
            }
        }
.splide_getting {
  position: relative;
  width: 100%;
  margin: 30px auto 50px;

  .splide__track {
    overflow: hidden;
  }

  .getting-card {
    position: relative;
    display: block;
    width: 100%;
    height: 500px;
    background: #16183d;
    overflow: hidden;
    text-decoration: none;
  }

.getting-card__body {
  position: relative;
  z-index: 3;
  width: 60%;
  height: 100%;
  padding: 70px 20px 60px 40px;
  color: #fff;

  /* ここを変更 */
  background: transparent;
  clip-path: none;

  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.getting-card__body--l,
.getting-card__body--r {
    padding-right: 60px;
}

/* 斜め背景だけ疑似要素で作る */
.getting-card__body::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #16183d;
  clip-path: polygon(0 0, 100% 0, 84% 100%, 0 100%);
  z-index: -1;
}

  .getting-card__copy {
    margin: 0 0 21px;
    color: #fff;
    font-size: 2.1rem;
    font-weight: 600;
    line-height: 1.65;
    letter-spacing: 0.16em;
    text-align: left;

  }

  .getting-card__label {
    width: fit-content;
    margin-left: auto;
    padding: 10px 15px;
    background: #fff;
    color: var(--bgcolor-darkblue);
    font-size: 1.6rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    position: relative;
    z-index: 5;
     white-space: nowrap;
  overflow: visible;
  }

  .getting-card__position {
   margin-bottom: 5px;
    color: #fff;
    font-size: 3rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-align: left;
  }

  .getting-card__name {
    margin: 0;
    color: #fff;
    font-family: var(--poppins-font);
    font-size: 5.3rem;
    font-weight: 700;
    font-style: italic;
    line-height: 1;
    letter-spacing: -0.01em;
    text-transform: uppercase;
    text-align: left;
  }

  .getting-card__img {
    position: absolute;
    top: 0;
    right: 0;
    width: 65%;
    height: 100%;
    z-index: 1;
    clip-path: polygon(17% 0, 100% 0, 100% 100%, 0 100%);

    img {
        max-width: 600px;
        margin-left: auto;
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: top center;
    }
  }

  .splide__arrow {
    width: 54px;
    height: 54px;
    border: 3px solid #fff;
    background: transparent;
    opacity: 1;
    z-index: 5;
    @media (max-width: 767px) {
        width: 34px;
        height: 34px;
    }

    svg {
      fill: #fff;
    }
  }

  .splide__arrow--prev {
    left: 35px;
    @media (max-width: 767px) {
        left: 13px;
    }
  }

  .splide__arrow--next {
    right: 35px;
    @media (max-width: 767px) {
        right: 13px;
    }
  }

}

    }

}

.getting-card-sp {
  display: none;
}
@media screen and (min-width: 768px) {
  .getting-card--pc {
    display: block !important;
  }

  .getting-card-sp {
    display: none !important;
  }
}
@media screen and (max-width: 767px) {
  .getting-card--pc {
    display: none !important;
  }
    .getting-card-sp {
    display: block !important;
    &:hover{
        opacity: 1;
    }
  }
  .sec_getting_to_know {
    .row {
        padding-bottom: 0;
    }
    p,
    .title {
        text-align: left;
    }
    p {
        margin-top: 10px !important;
    }
    .title {
        font-size: 2.9rem;
    }
  }

  .getting-card-sp {
    display: block;
    background: #16183d;
    color: #fff;
    text-decoration: none;
    overflow: hidden;
  }

  .getting-card-sp__head {
    padding: 34px 20px 0;
  }

  .getting-card-sp__copy {
    margin: 0 0 30px;
    color: #fff;
    font-size: 2.2rem;
    text-align: left;
    line-height: 1.3;
  }

  .getting-card-sp__label {
    display: inline-block;
    margin: 0;
    padding: 7px 10px !important;
    background: #fff;
    color: var(--bgcolor-darkblue);
    font-weight: 700;
    font-size: 1.5rem;
    line-height: 1.3;
  }

  .getting-card-sp__img {
    width: calc(100% - 42px);
    height: 420px;
    margin: 52px 0 0 auto;
    clip-path: polygon(18% 0, 100% 0, 100% 100%, 0 100%);
  }

  .getting-card-sp__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .getting-card-sp__foot {
    padding: 30px 20px 90px;
  }

  .getting-card-sp__position {
    margin: 0 0 5px;
    color: #fff;
    font-size: 2rem;
    font-weight: 600;
    letter-spacing: .12em;
  }

  .getting-card-sp__name {
    margin: 0;
    color: #fff;
    font-family: var(--poppins-font);
    font-size: 4.2rem;
    font-weight: 700;
    font-style: italic;
    line-height: 1;
    letter-spacing: -0.02em;
    text-transform: uppercase;
  }

  .splide_getting {
    padding: 0;

    .splide__arrow {
      width: 54px;
      height: 54px;
      border: 2px solid #fff;
      background: transparent;
      top: 52%;
      transform: translateY(-50%);
      z-index: 10;
    }

    .splide__arrow--prev {
      left: 42px;
    }

    .splide__arrow--next {
      right: 42px;
    }
  }
}


.under_message {
  padding-bottom: 20px;
  overflow: hidden;
  @media (max-width: 1210px) {
    padding-left: 20px;
    padding-right: 20px;
  }

  .rightBox {
    max-width: 1200px;
    width: 100%;
    margin: 0 auto 30px;
    display: flex;
    justify-content: flex-end;
  }

  .leftBox {
    width: 100%;
  }

  .under_message__en {
    margin: 0;
    color: #fff;
    font-family: var(--helvetica-neue-font);
    font-size: clamp(4.3rem, 4.9vw, 8rem);
    font-weight: 900;
    line-height: 1.02;
    letter-spacing: -0.03em;
    text-transform: uppercase;

    /* コンテンツ幅いっぱい */
    width: 100%;

  }

  .common_btn.white {
    width: 367px;
    height: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: #0b173d;
    font-size: 1.8rem;
    font-weight: 700;
    letter-spacing: 0.1em;
  }

  @media screen and (max-width: 1023px) {
    .rightBox {
      padding-inline: 20px;
      margin-bottom: 24px;
    }

    .under_message__en {
      font-size: clamp(3.6rem, 9vw, 5.8rem);
      line-height: 1.08;
    }

    .common_btn.white {
      width: 100%;
      max-width: 367px;
    }
  }

}
@media screen and (max-width: 767px) {
  .under_message {
    display: flex;
    flex-direction: column;
    padding-bottom: 70px;

    .rightBox {
      order: 2;
      max-width: none;
      width: 100%;
      margin: 46px 0 0;
      padding: 0 20px;
      justify-content: center;
    }

    .leftBox {
      order: 1;
      width: 100%;
    }

    .under_message__en {
      font-size: 4.1rem;
      word-break: keep-all;

    }

    .common_btn.white {
      width: 100%;
      max-width: none;
      height: 88px;
      font-size: 2.2rem;
      font-weight: 700;
    }
  }
}


/* 人と仕事を知るコーナー */
.getting_under {
  padding-bottom: 10px;
  overflow: hidden;
  @media (max-width: 1210px) {
    padding-left: 20px;
    padding-right: 20px;
  }

  .rightBox {
    max-width: 1200px;
    width: 100%;
    margin: 0 auto 30px;
    display: flex;
    justify-content: flex-end;
  }

  .leftBox {
    width: 100%;
  }

  .under_message__en {
    margin: 0;
    color: #fff;
    font-family: var(--helvetica-neue-font);
    font-size: clamp(4.3rem, 5.4vw, 8rem);
    font-weight: 900;
    line-height: 1.02;
    letter-spacing: -0.03em;
    text-transform: uppercase;

    /* コンテンツ幅いっぱい */
    width: 100%;
  }
  .mask-text {
   background-image: url('../img/common/txt-anime-move2.png');
    
    /* 1. 画像を要素の「3倍」の大きさにする（超巨大化） */
    background-size: 300% 300%;
    
    /* 念のためリピートもオン（保険） */
    background-repeat: repeat;
    
    /* テキストで切り抜き */
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;

    /* 8秒かけてゆっくり動き、反転ループ */
    animation: safeMove 4s ease-in-out infinite alternate;
  .fadeup-char {
    background-image: inherit;
    background-size: inherit;
    background-repeat: inherit;
    background-position: inherit;

    -webkit-background-clip: text;
    background-clip: text;

    color: transparent;
    -webkit-text-fill-color: transparent;
  }
  }

  .common_btn {
    max-width: 367px;
    width: 100%;
    height: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bgcolor-blue);
    color: #fff;
    font-size: 1.8rem;
    font-weight: 700;
    letter-spacing: 0.1em;
  }

  @media screen and (max-width: 1023px) {
    .leftBox {
      padding-inline: 20px;
      margin-bottom: 24px;
    }

    .under_message__en {
      font-size: clamp(3.6rem, 9vw, 5.8rem);
      line-height: 1.08;
    }

    .common_btn.white {
      width: 100%;
      max-width: 367px;
    }
  }
}
@media screen and (max-width: 767px) {
  .getting_under {
    display: flex;
    flex-direction: column;
    padding-bottom: 70px;

    .rightBox {
      order: 2;
      max-width: none;
      width: 100%;
      margin: 44px 0 0;
      justify-content: center;
    }

    .leftBox {
      order: 1;
      width: 100%;
      padding: 0;
      margin-bottom: 0;
    }

    .under_message__en {
font-size: 4.1rem;
            line-height: 1;
            letter-spacing: 0;
    }

    .common_btn {
      max-width: none;
      width: 100%;
      height: 88px;
      font-size: 2.2rem;
    }
  }
}

/* === 働き方と制度 === */
.sec_workstyle{
    background-image: url(../img/common/sec_workstyle_bg.jpg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    .row{
        width: 100% !important;
        padding-top: clamp(120px, 7.88rem + -0.43vw, 125px);
        padding-bottom: clamp(0px, 7.69rem + -6.41vw, 75px);
        text-align: center;
        @media (max-width: 1210px)  {
            padding-right: 20px;
            padding-left: 20px;
        }
        h2{
            margin-bottom: 30px;
            @media (max-width: 767px) {
                font-size: 2.9rem;
            }
        }
        > p{
            font-size: 1.8rem;
            color: var(--fontcolor-white);
            @media (max-width: 767px) {
                font-size: 1.6rem;
                text-align: left;
            }
        }

        .flex-workstyle{
            max-width: 1200px;
            width: 100%;
            margin: 30px auto 60px;
            justify-content: space-between;
            gap: 20px;
            @media (max-width:1023px){
                column-gap: 0;
                flex-direction: column;
            }
            @media (max-width:767px){
                margin-bottom: 10px;
            }
            > div{
                width: calc(100% / 2 - 15px);
                @media (max-width:1023px){
                    width: 100%;
                    margin-bottom: 20px;
                }
            }
            a{
                display: block;
                width: 100%;
                height: 100%;
                color: var(--fontcolor-white);
                border: 1px solid var(--bgcolor-white);
                padding: 20px;
                @media (max-width: 767px) {
                    padding: 15px 10px;
                }
                .inner{
                    display: block;
                    width: 100%;
                    height: 100%;
                    border: 1px solid var(--bgcolor-white);
                    padding: 80px 20px;
                    position: relative;
                    @media (max-width: 767px) {
                        padding: 50px 20px;
                    }
                }

                h3{
                    font-size: 4.8rem;
                    font-weight: 700;
                    text-align: left;
                    letter-spacing: 0;
                    line-height: 1;
                    margin-bottom: 40px;
                        @media (max-width: 767px) {
                            font-size: 3rem;
                        }
                }
                .workstyle-ttl-l {
                    font-family: var(--helvetica-neue-font);
                }
                .workstyle-ttl-r {
                    font-family: var(--hiragino-font);
                }

                p{
                    text-align: left;
                    font-size: 1.6rem;
                    font-weight: 600;
                }

                /* 要素内右下の矢印arrow */
                .work_arrow {
                    display: flex;
                    justify-content: center;
                    align-items: center;

                    position: absolute;
                    right: 35px;
                    bottom: 25px;
                    @media (max-width: 767px) {
                        right: 0;
                    }
                    &::before,
                    &::after{
                        position: absolute;
                        top: 50%;
                        right: 22px;
                        height: 1px;
                        background: var(--fontcolor-white);
                        content: '';
                    }
                    &::before{
                        width: 120px;
                        transform: translateY(-50%);
                    }
                    &::after{
                        width: 45px;
                        transform: translateY(-50%) rotate(20deg);
                        transform-origin: right center;
                    }
                }

                &:hover{
                    background-color: var(--bgcolor-white);
                    border: 1px solid var(--bgcolor-darkblue);
                    transition: 0.5s;
                    color: var(--fontcolor-darkblue2);
                    .inner{
                        border: 1px solid var(--bgcolor-darkblue);
                        .work_arrow{
                            &::before,
                            &::after{
                                background: var(--bgcolor-darkblue);
                            }
                        }
                    }
                }
            }
        }
    }
}

/* =====================
    Footer
=============================================== */
#footer {
  width: 100%;
  padding: 150px 0 50px;
  background: var(--bgcolor-white);
  overflow: hidden;
   @media (max-width: 767px) {
    padding: 50px 0 20px;
   }

  .row {
    width: 100%;
  }

  .footer_contact_area {
    padding-bottom: 155px;
    @media (max-width: 767px) {
        padding-bottom: 30px;
    }
  }

  .text_area {
    width: 100%;
  }

  .footer_contact_en {
    margin-bottom: 100px;
    color: var(--bgcolor-darkblue);
    font-family: var(--helvetica-neue-font);
    font-size: clamp(8rem, 8.7vw, 16.8rem);
    font-weight: 900;
    line-height: 1;
    letter-spacing: -0.055em;
    text-transform: uppercase;
    white-space: nowrap;
    transform: translateX(-12px);
  }

  .footer_entry_area {
    max-width: 670px;
    margin: 0 auto;
    text-align: center;
  }

  .footer_entry_lead {
    margin-bottom: 15px;
    font-size: 1.8rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    @media (max-width: 767px) {
        display: none;
    }
  }

  .footer_entry_btn {
    max-width: 670px;
    width: 100%;
    height: 160px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
background: #184078;
background: linear-gradient(180deg, rgba(24, 64, 120, 1) 0%, rgba(0, 38, 90, 1) 100%);
    color: #fff;
    font-family: var(--helvetica-neue-font);
    font-size: 6rem;
    font-style: italic;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    @media (max-width: 767px) {
        width: 90%;
        height: 90px;
        font-size: 3rem;
    }
  }
  .mask-text {
        text-transform: uppercase;
    letter-spacing: -0.04em;
    /* ▼ お好きな画像のURLに変更してください */
    background-image: url('../img/common/txt-anime-move.png');
    
    /* 1. 画像を要素の「3倍」の大きさにする（超巨大化） */
    background-size: 300% 300%;
    
    /* 念のためリピートもオン（保険） */
    background-repeat: repeat;
    
    /* テキストで切り抜き */
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;

    /* 8秒かけてゆっくり動き、反転ループ */
    animation: safeMove 4s ease-in-out infinite alternate;
    @media (max-width: 767px) {
        font-size: 7rem;
        margin-bottom: 30px;
    }
  }

  .footer_contents {
    max-width: 1440px;
    width: 100%;
    margin: 0 auto;
    @media screen and (max-width: 1440px) {
        padding: 0 20px;
    }
    .footer-inner {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
     @media (max-width: 1024px) {
        flex-direction: column-reverse;
        align-items: center;
        gap: 30px;
    }
     @media (max-width: 820px) {
        align-items: flex-start;
    }
    }
  }

  .logo_area {
    @media (max-width: 767px) {
        max-width: 235px;
        width: 100%;
    }
    a.fot-logo {
      display: block;
      img {
        max-width: 440px;
        width: 100%;
      }
    }
  }

  .footer_menu {
    display: flex;
    align-items: center;
    gap: 34px;

  }


  .footer_nav_entry {
    width: 158px;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
background: #184078;
background: linear-gradient(180deg, rgba(24, 64, 120, 1) 0%, rgba(0, 38, 90, 1) 100%);
    color: #fff;
    font-family: var(--helvetica-neue-font);
    font-size: 2rem;
    font-style: italic;
    font-weight: 700;
    text-decoration: none;
     @media (max-width: 820px) {
       display: none;
    }
  }
    .logo_area-hp-link {
        display: flex;
        align-items: center;
        justify-content: start;
        gap: 3px;
        margin-top: 10px;
        @media (max-width: 1024px) {
            justify-content: center;
        }
        @media (max-width: 820px) {
            margin-top: 5px;
            justify-content: start;
        }
        span {
            font-family: var(--poppins-font);
            font-weight: 600;
            font-size: 1.7rem;
        }
        img {
            width: 15px;
            height: 12px;
        }
    }

}


.nav_link {
  display: flex;
  align-items: center;
  gap: 28px;
     @media (max-width: 820px) {
        flex-direction: column;
        align-items: flex-start;
        gap: 17px;
    }
  li {

    a {
      position: relative;
      display: block;
      overflow: hidden;
      text-decoration: none;
      line-height: 1;
    }

    .text-wrap {
      position: relative;
      display: block;
    }

    .en,
    .jp {
      display: block;
      transition: transform .35s cubic-bezier(.22, 1, .36, 1);
      white-space: nowrap;
    }

    .en {
      font-family: var(--poppins-font);
      font-size: 1.5rem;
      font-weight: 500;
      letter-spacing: 0.07em;

      transform: translateY(0);
    }

    .jp {
      position: absolute;
      left: 0;
      top: 0;

      font-family: var(--hiragino-font);
      font-size: 1.4rem;
      font-weight: 700;
      letter-spacing: 0.04em;

      transform: translateY(120%);
    }
    .top-link {
        width: 38px;
    }

    a:hover {
      .en {
        transform: translateY(-120%);
      }

      .jp {
        transform: translateY(0);
      }
    }
  }
}

.head_r {
    .nav_link {
        margin-right: 15px;
        gap: 15px;
        @media (max-width: 1250px) {
            gap: 10px;
        }
        @media (max-width: 1024px) {
            display: none;
        }

    }
}
.home_header_r {
    .nav_link {
        li {
            a {
                color: #ffffff;
            }
        }
    }
}
  @keyframes safeMove {
    0% {
      /* スタート地点を画像の内側に設定 */
      background-position: 10% 10%;
    }
    100% {
      /* ゴール地点も画像の中央付近でストップさせる */
      background-position: 50% 50%;
    }
  }



 /* =========================================
     Speed Glitch (スピード残像)
  ========================================= */
  .btn-glitch {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    text-decoration: none;
    border: none;
    cursor: pointer;
    overflow: hidden; /* はみ出た要素を隠す */
    &:hover{
        opacity: 1;
    }
  }
  .btn-glitch {
    transition: transform 0.2s ease, background-color 0.3s ease;
  }
  .btn-glitch span {
    transition: text-shadow 0.3s cubic-bezier(0.165, 0.84, 0.44, 1);
  }
  .btn-glitch:hover {
    background-color: #15243b;
    transform: scale(1.02); /* ボタン全体がわずかに前に出る */
  }
  .btn-glitch:hover span {
    /* 左右に青と白の残像を鋭く飛ばす */
    text-shadow: 
      -4px 0px 0px rgba(255, 255, 255, 0.5),
      4px 0px 0px rgba(0, 200, 255, 0.5);
  }
 /* =========================================
     Kinetic Push (上下スライド)
  ========================================= */
  .btn-kinetic {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    text-decoration: none;
    border: none;
    cursor: pointer;
    overflow: hidden; /* はみ出た要素を隠す */
  }
  .btn-kinetic span {
    display: block;

    transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
  }
  /* もう一つのENTRY文字を、見えない下部に配置 */
  .btn-kinetic::after {
    position: absolute;
    top: 100%; /* ボタンのすぐ下 */
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #15243b; /* ホバー時は少し暗いネイビーに */
    transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
  }
  .btn-kinetic_know::after {
    content: 'XCEEDを知るへ';
  }
  .btn-kinetic_data::after {
    content: 'データで見るXCEEDへ';
    color: #fff;
  }
  .btn-kinetic_getting::after {
    content: '人と仕事を知る';
  }
  .btn-kinetic_workstyle::after {
    content: '働き方と制度';
    color: #fff;
  }
  .btn-kinetic:hover {
    opacity: 1;
  }
  .btn-kinetic:hover span {
    transform: translateY(-100%); /* 元の文字を上へ追い出す */
  }
  .btn-kinetic:hover::after {
    transform: translateY(-100%); /* 下から新しい文字を引き上げる */
  }


/* ========================================
Blur In 共通アニメーション
======================================== */

.js-blur-text {
  .blur-word{
    display: inline-block;
    opacity: 0;
    filter: blur(12px);
    transform: scale(1.05);
  }

  &.is-active {
    .blur-word {
      animation: blurInText .8s cubic-bezier(.165, .84, .44, 1) forwards;
    }
  }
}

@keyframes blurInText {
  to {
    opacity: 1;
    filter: blur(0);
    transform: scale(1);
  }
}


/* ========================================
Pattern 1 : Slide Reveal 共通
======================================== */

.js-reveal-text {
  overflow: hidden;

  .reveal-line {
    overflow: hidden;
    display: block;
    padding-bottom: .08em;
  }

  .reveal-line-inner {
    display: inline-block;
    transform: translateY(110%);
    opacity: 0;
  }

  &.is-active {
    .reveal-line-inner {
      animation: slideReveal .8s cubic-bezier(.16, 1, .3, 1) forwards;
    }
  }
}

@keyframes slideReveal {
  0% {
    transform: translateY(110%);
    opacity: 0;
  }

  100% {
    transform: translateY(0);
    opacity: 1;
  }
}

/* ========================================
Pattern 2 : Stagger Fade Up 共通
======================================== */

.js-fadeup-text {
  .fadeup-char {
    display: inline-block;
    opacity: 0;
    transform: translateY(24px);
  }

  &.is-active {
    .fadeup-char {
      animation: fadeUpText .6s cubic-bezier(.215, .61, .355, 1) forwards;
    }
  }
}

@keyframes fadeUpText {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}


@media screen and (max-width: 767px) {
    .common_btn {
        max-width: none !important;
        width: calc(100% - 35px) !important;
        height: 70px !important;
        margin: 0 auto !important;
        font-size: 2.1rem !important;
        display: flex;
        justify-content: center;
      }
}

/* =========================
ペンキアニメーション
========================= */

.sec_your_limits .paint-drop,
.sec_your_limits .paint-splash {
  animation: none;
}

.paint {
  position: absolute;
  top: -70px;
  right: -70px;
  width: 430px;
  height: 430px;
  z-index: 1;
  pointer-events: none;

  @media (max-width: 820px) {
    opacity: .4;
  }

  @media (max-width: 767px) {
    top: -50px;
    right: -70px;
    width: 280px;
    height: 280px;
    z-index: 0;
    overflow: hidden;
  }
}

.paint-area {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: visible;
}

/* 落下するペンキ玉 */
.paint-drop {
  position: absolute;
  left: 50%;
  top: -80px;
  width: 42px;
  height: 42px;
  background: #6b6c8d;
  border-radius: 50%;
  transform: translateX(-50%);
  transform-origin: center bottom;
  filter: blur(.4px);
  z-index: 5;
  opacity: 0;
}

.sec_your_limits.is-active .paint-drop {
  animation: paintDropFast .13s cubic-bezier(.25, .7, .25, 1) forwards;
  animation-delay: .35s;
}

/* 最後のペンキ画像 */
.paint-splash {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 430px;
  max-width: none;
  opacity: 0;
  visibility: hidden;
  transform: translate(-50%, -50%) scale(.08) rotate(-2deg);
  transform-origin: center center;
  filter: blur(7px);
  z-index: 1;

  @media (max-width: 767px) {
    width: 260px;
    max-width: 100%;
  }
}

.sec_your_limits.is-active .paint-splash {
  animation: splashFast .11s cubic-bezier(.2, 1.25, .3, 1) forwards;
 animation-delay: .46s;
}

/* 一瞬落下 */
@keyframes paintDropFast {
  0% {
    opacity: 1;
    top: -80px;
    transform: translateX(-50%) scaleX(.78) scaleY(1.35);
  }

  70% {
    opacity: 1;
    top: 180px;
    transform: translateX(-50%) scaleX(.82) scaleY(1.25);
  }

  100% {
    opacity: 0;
    top: 205px;
    transform: translateX(-50%) scaleX(1.55) scaleY(.22);
  }
}

/* 一瞬ビチャッ */
@keyframes splashFast {
  0% {
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, -50%) scale(.08) rotate(-2deg);
    filter: blur(7px);
  }

  1% {
    visibility: visible;
  }

  65% {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, -50%) scale(1.12) rotate(.6deg);
    filter: blur(.8px);
  }

  100% {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, -50%) scale(1) rotate(0);
    filter: blur(0);
  }
}

.fadeup-text {
  opacity: 0;
  transform: translateY(20px);
  filter: blur(10px);

  transition:
    opacity 2.5s cubic-bezier(.22, 1, .36, 1),
    transform 2.5s cubic-bezier(.22, 1, .36, 1),
    filter 2.5s cubic-bezier(.22, 1, .36, 1);
}

.fadeup-text.is-show {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}