@charset "UTF-8";
/* ---------- setting ---------- ---------- */
@media print, screen and (min-width: 810px) and (min-width: 1201px) {
  .block-about-intro {
    position: relative;
    background: url(/images/about-tiifa/bg.jpg?2) center bottom no-repeat;
    background-size: 100% auto;
    padding-top: 1.5625vw;
    padding-bottom: 26.875vw;
  }
  .block-about-intro ._row-header {
    position: relative;
  }
  .block-about-intro ._row-header ._t1 {
    font-size: 50px;
    text-align: center;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: -0.02em;
  }
  .block-about-intro ._row-header ._t2 {
    margin-top: -5px;
    font-size: 18px;
    text-align: center;
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: 0.02em;
  }
  .block-about-intro ._row-body {
    position: relative;
    margin-top: 45px;
  }
  .block-about-intro ._row-body p {
    font-size: 18px;
    text-align: center;
    line-height: 2.11;
    letter-spacing: 0.1em;
    color: #14497c;
    margin-bottom: 20px;
  }
  .block-about-intro ._row-body2 {
    margin-top: 50px;
  }
  .block-about-intro ._row-body2 ._t1 {
    margin-top: -5px;
    font-size: 18px;
    text-align: center;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 0.05em;
  }
  .block-about-intro ._row-body2 ._t2 {
    margin-top: 10px;
    font-size: 32px;
    text-align: center;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.1em;
  }
  .block-about-concept {
    margin-top: -1px;
    position: relative;
    background: url(/images/about-tiifa/bg2.jpg?2) center top no-repeat;
    background-size: 100% auto;
    padding-top: 5.625vw;
    padding-bottom: 28.75vw;
  }
  .mod-about-concept-items {
    display: flex;
    gap: 30px;
    flex-direction: column;
  }
  .mod-about-concept-item {
    display: flex;
    position: relative;
    border-radius: 40px;
    background: #fff;
    padding: 70px;
    box-shadow: 0 0 30px rgba(35, 207, 197, 0.15);
  }
  .mod-about-concept-item ._item-title {
    width: 330px;
  }
  .mod-about-concept-item ._item-title ._label {
    display: inline-block;
    padding: 0 10px;
    border-radius: 14px;
    background: #14497c;
    font-size: 20px;
    letter-spacing: 0.06em;
    line-height: 28px;
    text-align: left;
    font-weight: 900;
    color: #fff;
  }
  .mod-about-concept-item ._item-title ._copy {
    margin-top: 10px;
    font-size: 26px;
    letter-spacing: 0.06em;
    line-height: 1.62;
    text-align: left;
    font-weight: bold;
  }
  .mod-about-concept-item ._item-texts {
    flex: 1;
    padding: 40px 0 0 0;
  }
  .mod-about-concept-item ._item-texts p {
    font-size: 16px;
    letter-spacing: 0.06em;
    line-height: 2;
    text-align: left;
  }
  /* ----------------------------------------------------------
    block--product-main
    ---------------------------------------------------------- */
  .block-product-main {
    padding-top: 5vw;
    padding-bottom: 28.125vw;
  }
  .block-product-main img {
    width: 100%;
  }
  .block-product-main .block-inner {
    display: flex;
    gap: 120px;
    flex-direction: column;
  }
  .block-product-main ._notes {
    margin-top: 50px;
  }
  .mod-product-main-box {
    background: url(/images/product/bg1.png) right bottom no-repeat;
    background-size: 700px auto;
    position: relative;
    border-radius: 40px;
    padding: 70px 70px 90px 70px;
    color: #fff;
  }
  .mod-product-main-box.is-A {
    background-color: #3FA2DC;
  }
  .mod-product-main-box.is-B {
    background-color: #63D4CC;
    background-image: url(/images/product/bg2.png?);
    background-position: left bottom;
  }
  .mod-product-main-box.is-C {
    background-color: #F89BAF;
    background-image: url(/images/product/bg3.png);
  }
  .mod-product-main-box ._deco3 {
    position: absolute;
    top: -44px;
    left: 103px;
    width: 177px;
    height: 115px;
  }
  .mod-product-main-box ._clowd2 {
    position: absolute;
    bottom: 32px;
    left: -141px;
    width: 203px;
    height: 51px;
  }
  .mod-product-main-box ._clowd1 {
    position: absolute;
    top: 388px;
    right: -62px;
    width: 141px;
    height: 40px;
  }
  .mod-product-main-box ._deco1 {
    position: absolute;
    top: -77px;
    right: 100px;
    width: 253px;
    height: 167px;
    z-index: 10;
  }
  .mod-product-main-box ._clowd3 {
    position: absolute;
    bottom: -30px;
    right: -40px;
    width: 192px;
    height: 96px;
  }
  .mod-product-main-box ._deco2 {
    position: absolute;
    top: -61px;
    left: 120px;
    width: 207px;
    height: 134px;
  }
  .mod-product-main-box ._clowd4 {
    position: absolute;
    bottom: 52px;
    left: -85px;
    width: 145px;
    height: 43px;
  }
  .mod-product-main-cols {
    display: flex;
    justify-content: space-between;
    gap: 60px;
  }
  .mod-product-main-cols.is-rev {
    flex-direction: row-reverse;
  }
  .mod-product-main-cols ._col-image {
    width: 500px;
  }
  .mod-product-main-cols ._col-image img {
    border-radius: 40px;
  }
  .mod-product-main-cols ._col-texts {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: d 20px;
  }
  .mod-product-main-cols ._title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
  }
  .mod-product-main-cols ._title ._icon {
    width: 129px;
  }
  .mod-product-main-cols ._title ._ti {
    flex: 1;
  }
  .mod-product-main-cols h2 {
    font-size: 32px;
    line-height: 1.4;
    letter-spacing: 0.06em;
    font-weight: bold;
    color: #fff;
  }
  .mod-product-main-cols p {
    margin-top: 15px;
    font-size: 16px;
    line-height: 2;
    letter-spacing: 0.06em;
    color: #fff;
  }
  .mod-product-main-cols ._btns {
    margin-top: 20px;
  }
  .block-recruit-bg {
    background: url(/images/staff-recruit/bg.jpg) center bottom no-repeat;
    background-size: 100% auto;
  }
  /* ----------------------------------------------------------
    block--recruit-main
    ---------------------------------------------------------- */
  .block-recruit-main {
    padding-top: 0.9375vw;
    padding-bottom: 9.375vw;
  }
  .block-recruit-main img {
    width: 100%;
  }
  .block-recruit-main ._inner {
    position: relative;
    width: 900px;
    margin: 0 auto;
  }
  .block-recruit-main ._inner ._clowd1 {
    position: absolute;
    top: 200px;
    left: -350px;
    width: 270px;
    height: 72px;
  }
  .block-recruit-main ._inner ._deco2 {
    position: absolute;
    top: 225px;
    right: -280px;
    width: 251px;
    height: 321px;
  }
  .block-recruit-main ._inner ._clowd2 {
    position: absolute;
    top: 580px;
    right: -280px;
    width: 225px;
    height: 97px;
  }
  .block-recruit-main ._inner ._deco1 {
    position: absolute;
    top: 535px;
    left: -239px;
    width: 176px;
    height: 208px;
  }
  .block-recruit-main ._inner ._clowd3 {
    position: absolute;
    bottom: 180px;
    left: -270px;
    width: 141px;
    height: 40px;
  }
  .block-recruit-main ._inner ._clowd4 {
    position: absolute;
    bottom: -162px;
    right: -340px;
    width: 324px;
    height: 143px;
  }
  .block-recruit-main ._inner ._row-head {
    text-align: center;
  }
  .block-recruit-main ._inner ._row-head h2 {
    font-size: 45px;
    line-height: 1.8;
    letter-spacing: 0.06em;
    font-weight: 800;
  }
  .block-recruit-main ._inner ._row-body {
    margin-top: 30px;
  }
  .block-recruit-main ._inner ._row-body p {
    font-size: 16px;
    line-height: 2.2;
    letter-spacing: 0.1em;
  }
  .block-recruit-main ._inner ._row-body ._name {
    margin-top: 20px;
    font-size: 15px;
    line-height: 2.1;
    letter-spacing: 0.1em;
    font-weight: bold;
    text-align: right;
  }
  .block-recruit-main ._inner ._row-body ._name b {
    font-size: 20px;
  }
  .block-recruit-main ._inner ._row-body img {
    margin-top: 100px;
  }
  /* ----------------------------------------------------------
    block--recruit-recruit
    ---------------------------------------------------------- */
  .block-recruit-recruit {
    padding-top: 0.9375vw;
    padding-bottom: 28.125vw;
  }
  .block-recruit-recruit img {
    width: 100%;
  }
  .block-recruit-recruit ._box {
    position: relative;
    width: 900px;
    margin: 0 auto;
    background: #fff;
    padding: 50px 70px 70px 70px;
    border-radius: 40px;
  }
  .block-recruit-recruit ._box ._deco3 {
    position: absolute;
    bottom: -30px;
    right: 60px;
    width: 174px;
    height: 240px;
  }
  .block-recruit-recruit ._box h2 {
    font-size: 28px;
    line-height: 1.6;
    letter-spacing: 0.06em;
    font-weight: bold;
  }
  .block-recruit-recruit ._box p {
    margin-top: 20px;
    font-size: 16px;
    line-height: 2;
    letter-spacing: 0.06em;
  }
  .block-recruit-recruit ._box ._btns {
    margin-top: 30px;
  }
  .block-recruit-recruit ._box .mod-btn-A {
    font-size: 16px;
  }
  .block-privacy-main {
    padding-top: 9.375vw;
    padding-bottom: 21.875vw;
  }
  .block-privacy-main .block-inner {
    display: flex;
    gap: 100px;
    flex-direction: column;
  }
  .block-privacy-main ._set {
    display: flex;
    gap: 20px;
    flex-direction: column;
  }
  .block-privacy-main h2 {
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: 0.06em;
    font-weight: bold;
  }
  .block-privacy-main p {
    font-size: 16px;
    line-height: 2;
    letter-spacing: 0.1em;
  }
  .block-privacy-main a {
    color: #14497c;
    text-decoration: underline;
  }
  .block-privacy-main ._box {
    border-radius: 40px;
    padding: 40px 60px;
    background: #f1f8ff;
  }
  .mod-pagelink-target {
    position: absolute;
    top: -120px;
    left: 0px;
    width: 120px;
    height: 120px;
  }
  .mod-btn-A {
    width: 300px;
    height: 70px;
    border-radius: 35px;
    border: 2px solid #14497c;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 20px;
    letter-spacing: 0.06em;
    line-height: 1.75;
    text-align: center;
    color: #14497c;
    font-weight: bold;
    position: relative;
    cursor: pointer;
    transition-duration: 0.2s;
  }
  .mod-btn-A:after {
    content: "";
    display: block;
    position: absolute;
    top: calc(50% - 10px);
    right: 20px;
    background: url(/common/images/icon/arrow.svg) left top no-repeat;
    background-size: contain;
    width: 20px;
    height: 20px;
  }
  .mod-btn-A:hover {
    color: #fff;
    background-color: #14497c;
  }
  .mod-btn-A:hover:after {
    background-image: url(/common/images/icon/arrow_wh.svg);
  }
  .mod-btn-A-wh {
    width: 300px;
    height: 70px;
    border-radius: 35px;
    border: 2px solid #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 20px;
    letter-spacing: 0.06em;
    line-height: 1.75;
    text-align: center;
    color: #fff;
    font-weight: bold;
    position: relative;
    cursor: pointer;
    transition-duration: 0.2s;
  }
  .mod-btn-A-wh.is-M {
    font-size: 16px;
  }
  .mod-btn-A-wh:after {
    content: "";
    display: block;
    position: absolute;
    top: calc(50% - 10px);
    right: 20px;
    background: url(/common/images/icon/arrow.svg) left top no-repeat;
    background-size: contain;
    width: 20px;
    height: 20px;
  }
  .mod-btn-A-wh:hover {
    background-color: rgba(255, 255, 255, 0.1);
  }
  .mod-btn-A-wh[target=_blank]:after {
    top: calc(50% - 8px);
    background-image: url(/common/images/icon/arrow_blank_wh.png);
    width: 16px;
    height: 16px;
  }
  .mod-common-bg-grad {
    position: relative;
  }
  .mod-common-bg-grad:before {
    content: "";
    display: block;
    position: absolute;
    top: 0px;
    left: 0px;
    right: 0;
    background: #eee;
    height: 10vw;
    background: linear-gradient(white 0%, rgba(255, 255, 255, 0) 100%);
  }
  .block-common-title {
    position: relative;
    background: url(/common/images/bg.jpg) center top no-repeat;
    background-size: contain;
    height: 41.5vw;
  }
  .block-common-title ._texts {
    position: absolute;
    top: 9.375vw;
    left: 0;
    right: 0;
  }
  .block-common-title ._texts h1 {
    font-size: 70px;
    text-align: center;
    font-weight: 900;
    line-height: 1.75;
    letter-spacing: 0.06em;
    color: #14497c;
  }
  .block-common-title ._texts p {
    margin-top: -15px;
    letter-spacing: 0.06em;
    font-weight: bold;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    font-size: 24px;
    line-height: 1;
  }
  .block-common-title ._texts p:before, .block-common-title ._texts p:after {
    content: "";
    display: inline-block;
    width: 27px;
    height: 3px;
    background: #14497c;
    margin-top: 3px;
  }
  .block-common-title2 {
    position: relative;
    background: url(/common/images/bg2.jpg?) center top no-repeat;
    background-size: cover;
    height: 405px;
  }
  .block-common-title2 ._texts {
    position: absolute;
    inset: 0;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .block-common-title2 ._texts h1 {
    font-size: 70px;
    text-align: center;
    font-weight: 900;
    line-height: 1.75;
    letter-spacing: 0.06em;
    color: #14497c;
  }
  .block-common-title2:after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    transition-duration: 0.2s;
    transform: translate(-50%, -50%);
    background: url(/common/images/bg2_clowd.png?) left top no-repeat;
    background-size: contain;
    width: 1388px;
    height: 245px;
  }
  .block-common {
    padding-top: 8.75vw;
    padding-bottom: 9.375vw;
  }
  .block-common ._lead {
    text-align: center;
  }
  .block-common ._lead p {
    font-size: 16px;
    line-height: 1.75;
    letter-spacing: 0.06em;
  }
  .block-common ._lead b {
    color: #d93025;
  }
  .block-common ._form {
    margin-top: 40px;
  }
  .mod-common-notes {
    letter-spacing: 0.06em;
    line-height: 2;
    text-align: left;
    font-size: 12px;
  }
  .mod-common-notes.is-wh {
    color: #fff;
  }
  .mod-common-notes li {
    letter-spacing: 0.05em;
    position: relative;
    padding-left: 1.5em;
  }
  .mod-common-notes li::before {
    content: "●";
    position: absolute;
    transform: scale(0.7);
    left: 3px;
    top: 0;
  }
  .mod-common-list {
    letter-spacing: 0.06em;
    line-height: 1.625;
    text-align: left;
    font-size: 16px;
    display: flex;
    gap: 10px;
    flex-direction: column;
  }
  .mod-common-list li {
    letter-spacing: 0.05em;
    position: relative;
    padding-left: 1.2em;
  }
  .mod-common-list li::before {
    content: "●";
    transform: scale(0.4);
    position: absolute;
    left: 1px;
    top: 1px;
  }
  .block-index-loading {
    visibility: hidden;
    opacity: 0;
    z-index: -1;
    position: fixed;
    inset: 0;
    transition-duration: 0.4s;
    background: url(/images/index/loading/bg.jpg) center center no-repeat;
    background-size: cover;
  }
  /* ----------------------------------------------------------
  block-index-about
  ---------------------------------------------------------- */
  /* ----------------------------------------------------------
  block-index-product
  ---------------------------------------------------------- */
  /* ----------------------------------------------------------
  block-index-recruit
  ---------------------------------------------------------- */
}
@media screen and (min-width: 810px) and (min-width: 1201px) and (orientation: portrait) {
  .block-index-loading {
    background-position: center 100%;
    background-size: 120vh auto;
  }
}
@media print, screen and (min-width: 810px) and (min-width: 1201px) {
  body.js-loading-start .block-index-loading {
    transition-duration: 0.4s;
    visibility: visible;
    opacity: 1;
    z-index: 20000;
  }
  body.js-loading-1 .block-index-loading ._copy:after {
    width: 50%;
  }
  body.js-loading-1.js-loading-finished .block-index-loading ._copy:after {
    width: 100%;
    transition-duration: 0.4s;
  }
  body.js-loading-finished2 .block-index-loading {
    visibility: hidden;
    opacity: 0;
    z-index: -1;
  }
  .block-index-loading ._texts {
    position: absolute;
    top: calc(50vh - 4.5vw);
    left: 0;
    right: 0;
    text-align: center;
  }
  .block-index-loading ._texts ._copy {
    display: inline-block;
    position: relative;
    width: 35.9375vw;
    height: 4.9375vw;
  }
  .block-index-loading ._texts ._copy:before {
    opacity: 0.2;
    content: "";
    display: block;
    position: absolute;
    top: 0px;
    left: 0px;
    height: 100%;
    width: 100%;
    background: url(/images/index/loading/copy.svg) left top no-repeat;
    background-size: auto 100%;
  }
  .block-index-loading ._texts ._copy:after {
    content: "";
    display: block;
    position: absolute;
    top: 0px;
    left: 0px;
    background: url(/images/index/loading/copy.svg) left top no-repeat;
    background-size: auto 100%;
    width: 0%;
    height: 100%;
    transition-duration: 6s;
  }
  .block-index-loading ._chara {
    position: absolute;
    left: 45vw;
    top: calc(50vh + 24vw);
  }
  .block-index-loading ._chara img {
    width: 100%;
  }
  .block-index-loading ._chara ._p1,
  .block-index-loading ._chara ._p2 {
    position: absolute;
    bottom: 0px;
    left: 0px;
    width: 9.375vw;
    height: 19.375vw;
  }
  .block-index-loading ._chara ._p1 {
    animation: keyf_opening_girl1 1.5s ease-in-out 0s infinite;
  }
  .block-index-loading ._chara ._p2 {
    animation: keyf_opening_girl2 1.5s ease-in-out 0s infinite;
  }
  .block-index-cover {
    position: fixed;
    inset: 0;
    z-index: 10000;
  }
  html.env-ipad .block-index-cover {
    height: 100vh;
    min-height: 64vw;
  }
  .block-index-cover ._core {
    position: absolute;
    inset: 0;
    background: #fff;
  }
  .block-index-cover.is-step1 {
    opacity: 0;
    transition-duration: 2s;
  }
  .block-index-cover.is-step1 ._core {
    transition-duration: 1s;
    background: radial-gradient(circle, rgba(255, 255, 255, 0) 10%, rgb(255, 255, 255) 50%);
  }
  .block-index-wrap {
    position: fixed;
    visibility: hidden;
    z-index: -1;
  }
  body.js-index-main-start .block-index-wrap {
    position: relative;
    visibility: visible;
    z-index: auto;
  }
  .block-index-bg-wrap {
    position: relative;
  }
  .block-index-bg-wrap:before {
    content: "";
    display: block;
    position: absolute;
    top: 30vw;
    left: 0px;
    right: 0px;
    bottom: 0;
    background: #fff;
  }
  .block-index-mv {
    position: relative;
    height: 100vh;
    background-color: #82ccff;
  }
  html.env-ipad .block-index-mv {
    min-height: 64vw;
  }
}
@media screen and (min-width: 810px) and (min-width: 1201px) and (orientation: landscape) {
  .block-index-mv ._stage {
    position: fixed;
    inset: 0 0 0 0;
  }
  html.env-ipad .block-index-mv ._stage {
    height: 100vh;
    min-height: 64vw;
  }
}
@media print, screen and (min-width: 810px) and (min-width: 1201px) {
  .block-index-mv ._bg1 {
    position: absolute;
    inset: 0 0 0 0;
    background: url(/images/index/mv/bg1.jpg) center center no-repeat;
    background-size: 100% auto;
  }
  .block-index-mv ._bg2 {
    position: absolute;
    inset: 0 0 0 0;
    background: url(/images/index/mv/bg2.webp?2) center center no-repeat;
    background-size: 100% auto;
  }
  .block-index-mv ._cir {
    position: absolute;
    top: calc(50vh + 4.45vw);
    left: 0px;
    right: 0px;
    height: 100vw;
  }
  .block-index-mv ._cir ._cir-core {
    position: absolute;
    inset: -28.15vw -28.15vw -28.15vw -28.15vw;
    background: url(/images/index/mv/cir.webp?) center center no-repeat;
    background-size: 100% auto;
    animation: keyf_index_town 300s linear 0s infinite;
  }
  .block-index-mv ._charas {
    position: absolute;
    inset: 0 0 0 0;
    top: calc(50vh + 2vw);
  }
  .block-index-mv ._texts {
    position: relative;
  }
  .block-index-mv ._texts ._copy {
    position: absolute;
    top: calc(50vh + 2vw);
    transform: translate(0, -73%);
    left: 0;
    right: 0;
    text-align: center;
  }
  .block-index-mv ._texts ._copy ._t1 {
    font-size: 4.5vw;
    line-height: 1.4;
    letter-spacing: -0.02em;
    font-weight: 900;
    color: #fff;
  }
  .block-index-mv ._texts ._copy ._t2 {
    margin-top: -10px;
    font-size: 1.75vw;
    line-height: 1.5;
    letter-spacing: 0.05em;
    font-weight: bold;
    color: #fff;
  }
  .block-index-mv ._clowds {
    position: absolute;
    top: calc(50vh + 4.4vw);
    left: 0px;
    right: 0px;
  }
  .block-index-mv ._clowds ._clowd1 {
    display: block;
    position: absolute;
    top: -22.5vw;
    left: 13vw;
    background: url(/images/index/mv/clowd1.png) left top no-repeat;
    background-size: contain;
    width: 5.875vw;
    height: 1.625vw;
    animation: keyf_index_clowd 5s ease-in-out 1s infinite;
  }
  .block-index-mv ._clowds ._clowd2 {
    display: block;
    position: absolute;
    top: -22.4vw;
    left: 77.6vw;
    background: url(/images/index/mv/clowd2.png) left top no-repeat;
    background-size: contain;
    width: 7.3125vw;
    height: 1.8125vw;
    animation: keyf_index_clowd 5s ease-in-out 0.2s infinite;
  }
  .block-index-mv ._clowds ._clowd3 {
    display: block;
    position: absolute;
    top: -19.5vw;
    left: 84.6vw;
    background: url(/images/index/mv/clowd3.png) left top no-repeat;
    background-size: contain;
    width: 5.625vw;
    height: 1.6875vw;
    animation: keyf_index_clowd 5s ease-in-out 0s infinite;
  }
  .mod-index-mv-charas img {
    width: 100%;
  }
  .mod-index-mv-charas ._p2 {
    position: absolute;
    top: 1.03vw;
    left: 61.13vw;
    width: 16.03vw;
    height: 37.06vw;
  }
  .mod-index-mv-charas ._p10 {
    position: absolute;
    top: -3.34vw;
    left: 83.63vw;
    width: 12vw;
    height: 16.81vw;
  }
  .mod-index-mv-charas ._p9 {
    position: absolute;
    top: -8.69vw;
    left: 77.84vw;
    width: 5.88vw;
    height: 8.72vw;
  }
  .mod-index-mv-charas ._p1 {
    position: absolute;
    top: 0.53vw;
    left: 20.06vw;
    width: 17.06vw;
    height: 49.13vw;
  }
  .mod-index-mv-charas ._p8 {
    position: absolute;
    top: -14vw;
    left: 66.59vw;
    width: 3.44vw;
    height: 9.41vw;
  }
  .mod-index-mv-charas ._p6 {
    position: absolute;
    top: -14.47vw;
    left: 27.44vw;
    width: 6.5vw;
    height: 9.22vw;
  }
  .mod-index-mv-charas ._p7 {
    position: absolute;
    top: -14.69vw;
    left: 40.28vw;
    width: 3.22vw;
    height: 8.84vw;
  }
  .mod-index-mv-charas ._p5 {
    position: absolute;
    top: -8.94vw;
    left: 16.53vw;
    width: 5.25vw;
    height: 8vw;
  }
  .mod-index-mv-charas ._p4 {
    position: absolute;
    top: -5.25vw;
    left: 10.13vw;
    width: 5.69vw;
    height: 8.25vw;
  }
  .mod-index-mv-charas ._p3 {
    position: absolute;
    top: 0.06vw;
    left: 3.34vw;
    width: 8.66vw;
    height: 13.75vw;
  }
  body {
    height: 100%;
  }
  .area-opening-wapper {
    position: absolute;
    top: 0px;
    left: 0px;
    right: 0px;
    height: 100vh;
    overflow: hidden;
  }
  body.js-index-opening-start .area-opening-wapper {
    overflow: visible;
  }
  body.js-index-opening-finished .area-opening-wapper {
    display: none;
  }
  .area-opening-page {
    height: 500vw;
  }
  .block-opening-stage {
    transition-duration: 0.2s;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 100vh;
    overflow: hidden;
    background: url(/images/index/main/bg.png) left top no-repeat;
    background-size: cover;
    background-position: center;
  }
  body.js-index-opening-finished .block-opening-stage {
    opacity: 0;
    visibility: hidden;
    z-index: -1;
  }
  .block-opening-stage img {
    width: 100%;
  }
  .block-opening-stage ._stage {
    position: absolute;
    top: calc(50% - 2vw);
    left: 50%;
    width: 2px;
    height: 2px;
  }
  .block-opening-stage ._stage-light {
    position: absolute;
    inset: 0 0 0 0;
    background: url(/images/index/main/bg2.png) left top no-repeat;
    background-size: cover;
    background-position: center;
    opacity: 0;
  }
  .block-opening-stage ._plane {
    position: absolute;
    top: -28vw;
    left: -34vw;
    width: 8.668vw;
  }
  .block-opening-stage ._clowd1 {
    position: absolute;
    top: -24vw;
    left: -17vw;
    width: 20.9vw;
  }
  .block-opening-stage ._clowd2 {
    position: absolute;
    top: -22vw;
    left: 16vw;
    width: 10.7vw;
  }
  .block-opening-stage ._clowd3 {
    position: absolute;
    top: -19vw;
    left: 28vw;
    width: 7.1vw;
  }
  .block-opening-stage ._plane {
    position: absolute;
    top: -28vw;
    left: -34vw;
    width: 8.668vw;
  }
  .block-opening-stage ._plane {
    opacity: 0;
    animation: keyf_opening_plane 20s linear 0s;
  }
  .block-opening-stage ._clowd1 {
    animation: keyf_opening_clowd 5s ease-in-out 0s infinite;
  }
  .block-opening-stage ._clowd2 {
    animation: keyf_opening_clowd 3.3s ease-in-out 0.4s infinite;
  }
  .block-opening-stage ._clowd3 {
    animation: keyf_opening_clowd 4s ease-in-out 1.2s infinite;
  }
  .block-opening-stage ._main-chara {
    position: absolute;
    top: 0;
    left: 0;
    transform: translate(-47%, -10%);
    width: 40vw;
  }
  .block-opening-stage ._main-chara img {
    width: 100%;
  }
  .block-opening-stage ._main-chara ._f1 {
    position: absolute;
    top: 0px;
    left: 0px;
  }
  .block-opening-stage ._main-chara ._f2 {
    position: absolute;
    top: 0px;
    left: 0px;
    animatin: keyf_opening_girl2 1.5s ease-in-out 0s infinite;
  }
  .block-opening-stage ._main-chara ._f1 {
    animation: keyf_opening_girl1 1.5s ease-in-out 0s infinite;
  }
  .block-opening-stage ._main-chara ._f2 {
    animation: keyf_opening_girl2 1.5s ease-in-out 0s infinite;
  }
  .block-opening-stage ._grad {
    position: absolute;
    top: -20vw;
    left: 0px;
    right: 0px;
    bottom: 0px;
    pointer-events: none;
  }
  @keyframes keyf_opening_clowd {
    0% {
      transform: translate3d(0, 0, 0);
    }
    50% {
      transform: translate3d(0, 50%, 0);
    }
    100% {
      transform: translate3d(0, 0, 0);
    }
  }
  @keyframes keyf_opening_plane {
    0% {
      transform: translate3d(-32vw, 11vw, 0);
      opacity: 0;
    }
    5% {
      transform: translate3d(-30vw, 10vw, 0);
      opacity: 1;
    }
    95% {
      transform: translate3d(30vw, -3vw, 0);
      opacity: 1;
    }
    100% {
      transform: translate3d(33vw, -5vw, 0);
      opacity: 0;
    }
  }
  @keyframes keyf_opening_girl1 {
    0% {
      opacity: 0;
    }
    50% {
      opacity: 0;
    }
    50.1% {
      opacity: 1;
    }
    100% {
      opacity: 1;
    }
  }
  @keyframes keyf_opening_girl2 {
    0% {
      opacity: 1;
    }
    50% {
      opacity: 1;
    }
    50.1% {
      opacity: 0;
    }
    100% {
      opacity: 0;
    }
  }
  .mod-index-anim-shape {
    position: absolute;
    top: 0px;
    left: 0;
    opacity: 0;
  }
  .mod-index-anim-shape img {
    transform: translate(-50%, 0);
  }
  .area-opening-skip {
    position: fixed;
    right: 40px;
    top: 40px;
    z-index: 10;
  }
  .area-opening-skip ._btn {
    border: 2px solid #fff;
    padding: 16px 65px;
    font-size: 20px;
    line-height: 1.2;
    font-weight: bold;
    border-radius: 50px;
    color: #fff;
    position: relative;
    cursor: pointer;
    transition-duration: 0.2s;
  }
  .area-opening-skip ._btn:after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translate(0, -50%);
    background: url(/common/images/icon/arrow_wh.svg) left top no-repeat;
    background-size: contain;
    width: 20px;
    height: 20px;
  }
  .area-opening-skip ._btn:hover {
    background-color: rgba(255, 255, 255, 0.2);
    opacity: 0.8;
  }
  .block-index-about {
    background: url(/images/index/about/bg1.webp) left top no-repeat;
    background-size: 100% auto;
    position: relative;
    padding: 10.3vw 0 28.5vw 0;
  }
  .block-index-about:before {
    content: "";
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 37.5vw;
    background: url(/images/index/about/bg2.webp?4) center top no-repeat;
    background-size: 100% auto;
  }
  .block-index-about ._title {
    text-align: center;
  }
  .block-index-about ._title h2 {
    font-size: 60px;
    line-height: 1.8;
    letter-spacing: 0.06em;
    font-weight: 800;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 15px;
  }
  .block-index-about ._title h2 img {
    width: 156px;
  }
  .block-index-about ._title p {
    margin-top: -5px;
    letter-spacing: 0.06em;
    font-weight: bold;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    font-size: 17.5px;
    line-height: 1.2;
  }
  .block-index-about ._title p:before, .block-index-about ._title p:after {
    content: "";
    display: inline-block;
    width: 18px;
    height: 2px;
    background: #14497c;
  }
  .block-index-about ._lead {
    text-align: center;
  }
  .block-index-about ._lead p {
    margin-top: 45px;
    font-size: 18px;
    line-height: 2.1;
    letter-spacing: 0.06em;
  }
  .block-index-about ._lead ._copy {
    margin-top: 20px;
    font-size: 26px;
    line-height: 1.5;
    letter-spacing: 0.09em;
    font-weight: bold;
  }
  .block-index-about ._btns {
    margin-top: 55px;
    text-align: center;
    display: flex;
    justify-content: center;
    gap: 20px;
  }
  .block-index-about ._clowd1 {
    content: "";
    display: block;
    position: absolute;
    top: 9.3vw;
    left: calc(50vw - 660px);
    background: url(/images/index/about/cloud1.png) left top no-repeat;
    background-size: contain;
    width: 1331px;
    height: 253px;
  }
  .block-index-product {
    margin-top: -8.4vw;
    background: url(/images/index/product/bg1.webp) left top no-repeat;
    background-size: 100% auto;
    position: relative;
    padding: 8.4vw 0 16vw 0;
  }
  .block-index-product ._row-header ._title {
    text-align: center;
  }
  .block-index-product ._row-header ._title h2 {
    font-size: 60px;
    line-height: 1.8;
    letter-spacing: 0.06em;
    font-weight: 800;
  }
  .block-index-product ._row-body {
    margin-top: 30px;
  }
  .block-index-product ._btns {
    margin-top: 60px;
    text-align: center;
    display: flex;
    justify-content: center;
    gap: 20px;
  }
  .block-index-product ._clowd1 {
    content: "";
    display: block;
    position: absolute;
    top: 6.8vw;
    left: calc(50vw - 700px);
    background: url(/images/index/product/cloud1.png) left top no-repeat;
    background-size: contain;
    width: 1302px;
    height: 147px;
  }
  .block-index-product ._clowd2 {
    content: "";
    display: block;
    position: absolute;
    top: calc(50vw - 80px);
    left: calc(50vw - 810px);
    background: url(/images/index/product/cloud2.png) left top no-repeat;
    background-size: contain;
    width: 1537px;
    height: 232px;
  }
  .mod-index-product-items {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
  }
  .mod-index-product-items > li {
    position: relative;
    min-height: 50px;
    height: 100%;
    width: calc(33.33% - 20px);
  }
  .mod-index-product-item {
    display: block;
    border-radius: 40px;
    height: 580px;
    padding: 20px 40px;
    background: #3ca2dc;
    cursor: pointer;
    transition-duration: 0.2s;
    position: relative;
  }
  .mod-index-product-item.is-B {
    background: #63d4cc;
  }
  .mod-index-product-item.is-C {
    background: #f89baf;
  }
  .mod-index-product-item:hover {
    opacity: 0.8;
  }
  .mod-index-product-item:after {
    content: "";
    display: block;
    position: absolute;
    bottom: 40px;
    left: calc(50% - 25px);
    background: url(/common/images/icon/arrow2_wh.svg) left top no-repeat;
    background-size: contain;
    width: 50px;
    height: 50px;
  }
  .mod-index-product-item ._item-image {
    width: 220px;
    margin: 0 auto;
  }
  .mod-index-product-item ._item-image img {
    width: 100%;
  }
  .mod-index-product-item ._item-texts {
    margin-top: 20px;
    color: #fff;
  }
  .mod-index-product-item ._item-texts h3 {
    font-weight: bold;
    font-size: 24px;
    letter-spacing: 0.06em;
    line-height: 1.42;
    text-align: center;
  }
  .mod-index-product-item ._item-texts p {
    margin-top: 10px;
    font-size: 16px;
    letter-spacing: 0.06em;
    line-height: 2;
    text-align: left;
  }
  .block-index-recruit {
    margin-top: -10vw;
    background: url(/images/index/recruit/bg1.webp) left top no-repeat;
    background-size: 100% auto;
    position: relative;
    padding: 18.4vw 0 20vw 0;
  }
  .block-index-recruit ._cols {
    display: flex;
    width: 900px;
    margin: 0 auto;
    gap: 50px;
    position: relative;
  }
  .block-index-recruit ._cols ._col-header {
    width: 250px;
  }
  .block-index-recruit ._cols ._col-body {
    flex: 1;
    padding-top: 50px;
  }
  .block-index-recruit ._cols:after {
    content: "";
    display: block;
    position: absolute;
    top: 15px;
    right: -200px;
    background: url(/images/index/recruit/p1.png) left top no-repeat;
    background-size: contain;
    width: 180px;
    height: 290px;
  }
  .block-index-recruit ._title h2 {
    font-size: 60px;
    line-height: 1.8;
    letter-spacing: 0.06em;
    font-weight: 800;
  }
  .block-index-recruit ._btns {
    margin-top: 20px;
  }
  .block-index-recruit ._btns .mod-btn-A {
    width: 100%;
  }
  .block-index-recruit h3 {
    font-size: 28px;
    letter-spacing: 0.06em;
    line-height: 1.61;
    text-align: left;
    font-weight: bold;
  }
  .block-index-recruit p {
    margin-top: 10px;
    font-size: 16px;
    letter-spacing: 0.06em;
    line-height: 2;
    text-align: left;
  }
  @keyframes keyf_index_clowd {
    0% {
      transform: translate3d(0, 0.5vw, 0);
    }
    50% {
      transform: translate3d(0, -0.5vw, 0);
    }
    100% {
      transform: translate3d(0, 0.5vw, 0);
    }
  }
  @keyframes keyf_index_town {
    0% {
      transform: rotate(0);
    }
    100% {
      transform: rotate(360deg);
    }
  }
}
@media screen and (min-width: 810px) and (max-width: 1200px) {
  .block-about-intro {
    position: relative;
    background: url(/images/about-tiifa/bg.jpg?2) center bottom no-repeat;
    background-size: 100% auto;
    padding-top: 1.5625vw;
    padding-bottom: 26.875vw;
  }
  .block-about-intro ._row-header {
    position: relative;
  }
  .block-about-intro ._row-header ._t1 {
    font-size: 4.1666666667vw;
    text-align: center;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: -0.02em;
  }
  .block-about-intro ._row-header ._t2 {
    margin-top: -0.4166666667vw;
    font-size: 1.5vw;
    text-align: center;
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: 0.02em;
  }
  .block-about-intro ._row-body {
    position: relative;
    margin-top: 3.75vw;
  }
  .block-about-intro ._row-body p {
    font-size: 1.5vw;
    text-align: center;
    line-height: 2.11;
    letter-spacing: 0.1em;
    color: #14497c;
    margin-bottom: 1.6666666667vw;
  }
  .block-about-intro ._row-body2 {
    margin-top: 4.1666666667vw;
  }
  .block-about-intro ._row-body2 ._t1 {
    margin-top: -0.4166666667vw;
    font-size: 1.5vw;
    text-align: center;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 0.05em;
  }
  .block-about-intro ._row-body2 ._t2 {
    margin-top: 0.8333333333vw;
    font-size: 2.6666666667vw;
    text-align: center;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: 0.1em;
  }
  .block-about-concept {
    margin-top: -1px;
    position: relative;
    background: url(/images/about-tiifa/bg2.jpg?2) center top no-repeat;
    background-size: 100% auto;
    padding-top: 5.625vw;
    padding-bottom: 28.75vw;
  }
  .mod-about-concept-items {
    display: flex;
    gap: 2.5vw;
    flex-direction: column;
  }
  .mod-about-concept-item {
    display: flex;
    position: relative;
    border-radius: 3.3333333333vw;
    background: #fff;
    padding: 5.8333333333vw;
    box-shadow: 0 0 2.5vw rgba(35, 207, 197, 0.15);
  }
  .mod-about-concept-item ._item-title {
    width: 27.5vw;
  }
  .mod-about-concept-item ._item-title ._label {
    display: inline-block;
    padding: 0 0.8333333333vw;
    border-radius: 1.1666666667vw;
    background: #14497c;
    font-size: 1.6666666667vw;
    letter-spacing: 0.06em;
    line-height: 2.3333333333vw;
    text-align: left;
    font-weight: 900;
    color: #fff;
  }
  .mod-about-concept-item ._item-title ._copy {
    margin-top: 0.8333333333vw;
    font-size: 2.1666666667vw;
    letter-spacing: 0.06em;
    line-height: 1.62;
    text-align: left;
    font-weight: bold;
  }
  .mod-about-concept-item ._item-texts {
    flex: 1;
    padding: 3.3333333333vw 0 0 0;
  }
  .mod-about-concept-item ._item-texts p {
    font-size: 1.3333333333vw;
    letter-spacing: 0.06em;
    line-height: 2;
    text-align: left;
  }
  /* ----------------------------------------------------------
    block--product-main
    ---------------------------------------------------------- */
  .block-product-main {
    padding-top: 5vw;
    padding-bottom: 28.125vw;
  }
  .block-product-main img {
    width: 100%;
  }
  .block-product-main .block-inner {
    display: flex;
    gap: 10vw;
    flex-direction: column;
  }
  .block-product-main ._notes {
    margin-top: 4.1666666667vw;
  }
  .mod-product-main-box {
    background: url(/images/product/bg1.png) right bottom no-repeat;
    background-size: 58.3333333333vw auto;
    position: relative;
    border-radius: 3.3333333333vw;
    padding: 5.8333333333vw 5.8333333333vw 7.5vw 5.8333333333vw;
    color: #fff;
  }
  .mod-product-main-box.is-A {
    background-color: #3FA2DC;
  }
  .mod-product-main-box.is-B {
    background-color: #63D4CC;
    background-image: url(/images/product/bg2.png?);
    background-position: left bottom;
  }
  .mod-product-main-box.is-C {
    background-color: #F89BAF;
    background-image: url(/images/product/bg3.png);
  }
  .mod-product-main-box ._deco3 {
    position: absolute;
    top: -3.6666666667vw;
    left: 8.5833333333vw;
    width: 14.75vw;
    height: 9.5833333333vw;
  }
  .mod-product-main-box ._clowd2 {
    position: absolute;
    bottom: 2.6666666667vw;
    left: -11.75vw;
    width: 16.9166666667vw;
    height: 4.25vw;
  }
  .mod-product-main-box ._clowd1 {
    position: absolute;
    top: 32.3333333333vw;
    right: -5.1666666667vw;
    width: 11.75vw;
    height: 3.3333333333vw;
  }
  .mod-product-main-box ._deco1 {
    position: absolute;
    top: -6.4166666667vw;
    right: 8.3333333333vw;
    width: 21.0833333333vw;
    height: 13.9166666667vw;
    z-index: 10;
  }
  .mod-product-main-box ._clowd3 {
    position: absolute;
    bottom: -2.5vw;
    right: -3.3333333333vw;
    width: 16vw;
    height: 8vw;
  }
  .mod-product-main-box ._deco2 {
    position: absolute;
    top: -5.0833333333vw;
    left: 10vw;
    width: 17.25vw;
    height: 11.1666666667vw;
  }
  .mod-product-main-box ._clowd4 {
    position: absolute;
    bottom: 4.3333333333vw;
    left: -7.0833333333vw;
    width: 12.0833333333vw;
    height: 3.5833333333vw;
  }
  .mod-product-main-cols {
    display: flex;
    justify-content: space-between;
    gap: 5vw;
  }
  .mod-product-main-cols.is-rev {
    flex-direction: row-reverse;
  }
  .mod-product-main-cols ._col-image {
    width: 41.6666666667vw;
  }
  .mod-product-main-cols ._col-image img {
    border-radius: 3.3333333333vw;
  }
  .mod-product-main-cols ._col-texts {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.8333333333vw;
    padding: d 1.6666666667vw;
  }
  .mod-product-main-cols ._title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 2.5vw;
  }
  .mod-product-main-cols ._title ._icon {
    width: 10.75vw;
  }
  .mod-product-main-cols ._title ._ti {
    flex: 1;
  }
  .mod-product-main-cols h2 {
    font-size: 2.6666666667vw;
    line-height: 1.4;
    letter-spacing: 0.06em;
    font-weight: bold;
    color: #fff;
  }
  .mod-product-main-cols p {
    margin-top: 1.25vw;
    font-size: 1.3333333333vw;
    line-height: 2;
    letter-spacing: 0.06em;
    color: #fff;
  }
  .mod-product-main-cols ._btns {
    margin-top: 1.6666666667vw;
  }
  .block-recruit-bg {
    background: url(/images/staff-recruit/bg.jpg) center bottom no-repeat;
    background-size: 100% auto;
  }
  /* ----------------------------------------------------------
    block--recruit-main
    ---------------------------------------------------------- */
  .block-recruit-main {
    padding-top: 0.9375vw;
    padding-bottom: 9.375vw;
  }
  .block-recruit-main img {
    width: 100%;
  }
  .block-recruit-main ._inner {
    position: relative;
    width: 75vw;
    margin: 0 auto;
  }
  .block-recruit-main ._inner ._clowd1 {
    position: absolute;
    top: 16.6666666667vw;
    left: -29.1666666667vw;
    width: 22.5vw;
    height: 6vw;
  }
  .block-recruit-main ._inner ._deco2 {
    position: absolute;
    top: 18.75vw;
    right: -23.3333333333vw;
    width: 20.9166666667vw;
    height: 26.75vw;
  }
  .block-recruit-main ._inner ._clowd2 {
    position: absolute;
    top: 48.3333333333vw;
    right: -23.3333333333vw;
    width: 18.75vw;
    height: 8.0833333333vw;
  }
  .block-recruit-main ._inner ._deco1 {
    position: absolute;
    top: 44.5833333333vw;
    left: -19.9166666667vw;
    width: 14.6666666667vw;
    height: 17.3333333333vw;
  }
  .block-recruit-main ._inner ._clowd3 {
    position: absolute;
    bottom: 15vw;
    left: -22.5vw;
    width: 11.75vw;
    height: 3.3333333333vw;
  }
  .block-recruit-main ._inner ._clowd4 {
    position: absolute;
    bottom: -13.5vw;
    right: -28.3333333333vw;
    width: 27vw;
    height: 11.9166666667vw;
  }
  .block-recruit-main ._inner ._row-head {
    text-align: center;
  }
  .block-recruit-main ._inner ._row-head h2 {
    font-size: 3.75vw;
    line-height: 1.8;
    letter-spacing: 0.06em;
    font-weight: 800;
  }
  .block-recruit-main ._inner ._row-body {
    margin-top: 2.5vw;
  }
  .block-recruit-main ._inner ._row-body p {
    font-size: 1.3333333333vw;
    line-height: 2.2;
    letter-spacing: 0.1em;
  }
  .block-recruit-main ._inner ._row-body ._name {
    margin-top: 1.6666666667vw;
    font-size: 1.25vw;
    line-height: 2.1;
    letter-spacing: 0.1em;
    font-weight: bold;
    text-align: right;
  }
  .block-recruit-main ._inner ._row-body ._name b {
    font-size: 1.6666666667vw;
  }
  .block-recruit-main ._inner ._row-body img {
    margin-top: 8.3333333333vw;
  }
  /* ----------------------------------------------------------
    block--recruit-recruit
    ---------------------------------------------------------- */
  .block-recruit-recruit {
    padding-top: 0.9375vw;
    padding-bottom: 28.125vw;
  }
  .block-recruit-recruit img {
    width: 100%;
  }
  .block-recruit-recruit ._box {
    position: relative;
    width: 75vw;
    margin: 0 auto;
    background: #fff;
    padding: 4.1666666667vw 5.8333333333vw 5.8333333333vw 5.8333333333vw;
    border-radius: 3.3333333333vw;
  }
  .block-recruit-recruit ._box ._deco3 {
    position: absolute;
    bottom: -2.5vw;
    right: 5vw;
    width: 14.5vw;
    height: 20vw;
  }
  .block-recruit-recruit ._box h2 {
    font-size: 2.3333333333vw;
    line-height: 1.6;
    letter-spacing: 0.06em;
    font-weight: bold;
  }
  .block-recruit-recruit ._box p {
    margin-top: 1.6666666667vw;
    font-size: 1.3333333333vw;
    line-height: 2;
    letter-spacing: 0.06em;
  }
  .block-recruit-recruit ._box ._btns {
    margin-top: 2.5vw;
  }
  .block-recruit-recruit ._box .mod-btn-A {
    font-size: 1.3333333333vw;
  }
  .block-privacy-main {
    padding-top: 9.375vw;
    padding-bottom: 21.875vw;
  }
  .block-privacy-main .block-inner {
    display: flex;
    gap: 8.3333333333vw;
    flex-direction: column;
  }
  .block-privacy-main ._set {
    display: flex;
    gap: 1.6666666667vw;
    flex-direction: column;
  }
  .block-privacy-main h2 {
    font-size: 2.3333333333vw;
    line-height: 1.1;
    letter-spacing: 0.06em;
    font-weight: bold;
  }
  .block-privacy-main p {
    font-size: 1.3333333333vw;
    line-height: 2;
    letter-spacing: 0.1em;
  }
  .block-privacy-main a {
    color: #14497c;
    text-decoration: underline;
  }
  .block-privacy-main ._box {
    border-radius: 3.3333333333vw;
    padding: 3.3333333333vw 5vw;
    background: #f1f8ff;
  }
  .mod-pagelink-target {
    position: absolute;
    top: -120px;
    left: 0px;
    width: 120px;
    height: 120px;
  }
  .mod-btn-A {
    width: 25vw;
    height: 5.8333333333vw;
    border-radius: 2.9166666667vw;
    border: 0.1666666667vw solid #14497c;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.6666666667vw;
    letter-spacing: 0.06em;
    line-height: 1.75;
    text-align: center;
    color: #14497c;
    font-weight: bold;
    position: relative;
    cursor: pointer;
    transition-duration: 0.2s;
  }
  .mod-btn-A:after {
    content: "";
    display: block;
    position: absolute;
    top: calc(50% - 0.8333333333vw);
    right: 1.6666666667vw;
    background: url(/common/images/icon/arrow.svg) left top no-repeat;
    background-size: contain;
    width: 1.6666666667vw;
    height: 1.6666666667vw;
  }
  .mod-btn-A:hover {
    color: #fff;
    background-color: #14497c;
  }
  .mod-btn-A:hover:after {
    background-image: url(/common/images/icon/arrow_wh.svg);
  }
  .mod-btn-A-wh {
    width: 25vw;
    height: 5.8333333333vw;
    border-radius: 2.9166666667vw;
    border: 0.1666666667vw solid #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.6666666667vw;
    letter-spacing: 0.06em;
    line-height: 1.75;
    text-align: center;
    color: #fff;
    font-weight: bold;
    position: relative;
    cursor: pointer;
    transition-duration: 0.2s;
  }
  .mod-btn-A-wh.is-M {
    font-size: 1.3333333333vw;
  }
  .mod-btn-A-wh:after {
    content: "";
    display: block;
    position: absolute;
    top: calc(50% - 0.8333333333vw);
    right: 1.6666666667vw;
    background: url(/common/images/icon/arrow.svg) left top no-repeat;
    background-size: contain;
    width: 1.6666666667vw;
    height: 1.6666666667vw;
  }
  .mod-btn-A-wh:hover {
    background-color: rgba(255, 255, 255, 0.1);
  }
  .mod-btn-A-wh[target=_blank]:after {
    top: calc(50% - 0.6666666667vw);
    background-image: url(/common/images/icon/arrow_blank_wh.png);
    width: 1.3333333333vw;
    height: 1.3333333333vw;
  }
  .mod-common-bg-grad {
    position: relative;
  }
  .mod-common-bg-grad:before {
    content: "";
    display: block;
    position: absolute;
    top: 0px;
    left: 0px;
    right: 0;
    background: #eee;
    height: 10vw;
    background: linear-gradient(white 0%, rgba(255, 255, 255, 0) 100%);
  }
  .block-common-title {
    position: relative;
    background: url(/common/images/bg.jpg) center top no-repeat;
    background-size: contain;
    height: 41.5vw;
  }
  .block-common-title ._texts {
    position: absolute;
    top: 9.375vw;
    left: 0;
    right: 0;
  }
  .block-common-title ._texts h1 {
    font-size: 5.8333333333vw;
    text-align: center;
    font-weight: 900;
    line-height: 1.75;
    letter-spacing: 0.06em;
    color: #14497c;
  }
  .block-common-title ._texts p {
    margin-top: -1.25vw;
    letter-spacing: 0.06em;
    font-weight: bold;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.8333333333vw;
    font-size: 2vw;
    line-height: 1;
  }
  .block-common-title ._texts p:before, .block-common-title ._texts p:after {
    content: "";
    display: inline-block;
    width: 2.25vw;
    height: 0.25vw;
    background: #14497c;
    margin-top: 0.25vw;
  }
  .block-common-title2 {
    position: relative;
    background: url(/common/images/bg2.jpg?) center top no-repeat;
    background-size: cover;
    height: 33.75vw;
  }
  .block-common-title2 ._texts {
    position: absolute;
    inset: 0;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .block-common-title2 ._texts h1 {
    font-size: 5.8333333333vw;
    text-align: center;
    font-weight: 900;
    line-height: 1.75;
    letter-spacing: 0.06em;
    color: #14497c;
  }
  .block-common-title2:after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    transition-duration: 0.2s;
    transform: translate(-50%, -50%);
    background: url(/common/images/bg2_clowd.png?) left top no-repeat;
    background-size: contain;
    width: 1388px;
    height: 245px;
  }
  .block-common {
    padding-top: 8.75vw;
    padding-bottom: 9.375vw;
  }
  .block-common ._lead {
    text-align: center;
  }
  .block-common ._lead p {
    font-size: 16px;
    line-height: 1.75;
    letter-spacing: 0.06em;
  }
  .block-common ._lead b {
    color: #d93025;
  }
  .block-common ._form {
    margin-top: 40px;
  }
  .mod-common-notes {
    letter-spacing: 0.06em;
    line-height: 2;
    text-align: left;
    font-size: 1vw;
  }
  .mod-common-notes.is-wh {
    color: #fff;
  }
  .mod-common-notes li {
    letter-spacing: 0.05em;
    position: relative;
    padding-left: 1.5em;
  }
  .mod-common-notes li::before {
    content: "●";
    position: absolute;
    transform: scale(0.7);
    left: 0.25vw;
    top: 0;
  }
  .mod-common-list {
    letter-spacing: 0.06em;
    line-height: 1.625;
    text-align: left;
    font-size: 1.3333333333vw;
    display: flex;
    gap: 0.8333333333vw;
    flex-direction: column;
  }
  .mod-common-list li {
    letter-spacing: 0.05em;
    position: relative;
    padding-left: 1.2em;
  }
  .mod-common-list li::before {
    content: "●";
    transform: scale(0.4);
    position: absolute;
    left: 0.0833333333vw;
    top: 0.0833333333vw;
  }
  .block-index-loading {
    visibility: hidden;
    opacity: 0;
    z-index: -1;
    position: fixed;
    inset: 0;
    transition-duration: 0.4s;
    background: url(/images/index/loading/bg.jpg) center center no-repeat;
    background-size: cover;
  }
  /* ----------------------------------------------------------
  block-index-about
  ---------------------------------------------------------- */
  /* ----------------------------------------------------------
  block-index-product
  ---------------------------------------------------------- */
  /* ----------------------------------------------------------
  block-index-recruit
  ---------------------------------------------------------- */
}
@media screen and (min-width: 810px) and (max-width: 1200px) and (orientation: portrait) {
  .block-index-loading {
    background-position: center 100%;
    background-size: 120vh auto;
  }
}
@media screen and (min-width: 810px) and (max-width: 1200px) {
  body.js-loading-start .block-index-loading {
    transition-duration: 0.4s;
    visibility: visible;
    opacity: 1;
    z-index: 20000;
  }
  body.js-loading-1 .block-index-loading ._copy:after {
    width: 50%;
  }
  body.js-loading-1.js-loading-finished .block-index-loading ._copy:after {
    width: 100%;
    transition-duration: 0.4s;
  }
  body.js-loading-finished2 .block-index-loading {
    visibility: hidden;
    opacity: 0;
    z-index: -1;
  }
  .block-index-loading ._texts {
    position: absolute;
    top: calc(50vh - 4.5vw);
    left: 0;
    right: 0;
    text-align: center;
  }
  .block-index-loading ._texts ._copy {
    display: inline-block;
    position: relative;
    width: 35.9375vw;
    height: 4.9375vw;
  }
  .block-index-loading ._texts ._copy:before {
    opacity: 0.2;
    content: "";
    display: block;
    position: absolute;
    top: 0px;
    left: 0px;
    height: 100%;
    width: 100%;
    background: url(/images/index/loading/copy.svg) left top no-repeat;
    background-size: auto 100%;
  }
  .block-index-loading ._texts ._copy:after {
    content: "";
    display: block;
    position: absolute;
    top: 0px;
    left: 0px;
    background: url(/images/index/loading/copy.svg) left top no-repeat;
    background-size: auto 100%;
    width: 0%;
    height: 100%;
    transition-duration: 6s;
  }
  .block-index-loading ._chara {
    position: absolute;
    left: 45vw;
    top: calc(50vh + 24vw);
  }
  .block-index-loading ._chara img {
    width: 100%;
  }
  .block-index-loading ._chara ._p1,
  .block-index-loading ._chara ._p2 {
    position: absolute;
    bottom: 0px;
    left: 0px;
    width: 9.375vw;
    height: 19.375vw;
  }
  .block-index-loading ._chara ._p1 {
    animation: keyf_opening_girl1 1.5s ease-in-out 0s infinite;
  }
  .block-index-loading ._chara ._p2 {
    animation: keyf_opening_girl2 1.5s ease-in-out 0s infinite;
  }
  .block-index-cover {
    position: fixed;
    inset: 0;
    z-index: 10000;
  }
  html.env-ipad .block-index-cover {
    height: 100vh;
    min-height: 64vw;
  }
  .block-index-cover ._core {
    position: absolute;
    inset: 0;
    background: #fff;
  }
  .block-index-cover.is-step1 {
    opacity: 0;
    transition-duration: 2s;
  }
  .block-index-cover.is-step1 ._core {
    transition-duration: 1s;
    background: radial-gradient(circle, rgba(255, 255, 255, 0) 10%, rgb(255, 255, 255) 50%);
  }
  .block-index-wrap {
    position: fixed;
    visibility: hidden;
    z-index: -1;
  }
  body.js-index-main-start .block-index-wrap {
    position: relative;
    visibility: visible;
    z-index: auto;
  }
  .block-index-bg-wrap {
    position: relative;
  }
  .block-index-bg-wrap:before {
    content: "";
    display: block;
    position: absolute;
    top: 30vw;
    left: 0px;
    right: 0px;
    bottom: 0;
    background: #fff;
  }
  .block-index-mv {
    position: relative;
    height: 100vh;
    background-color: #82ccff;
  }
  html.env-ipad .block-index-mv {
    min-height: 64vw;
  }
}
@media screen and (min-width: 810px) and (max-width: 1200px) and (orientation: landscape) {
  .block-index-mv ._stage {
    position: fixed;
    inset: 0 0 0 0;
  }
  html.env-ipad .block-index-mv ._stage {
    height: 100vh;
    min-height: 64vw;
  }
}
@media screen and (min-width: 810px) and (max-width: 1200px) {
  .block-index-mv ._bg1 {
    position: absolute;
    inset: 0 0 0 0;
    background: url(/images/index/mv/bg1.jpg) center center no-repeat;
    background-size: 100% auto;
  }
  .block-index-mv ._bg2 {
    position: absolute;
    inset: 0 0 0 0;
    background: url(/images/index/mv/bg2.webp?2) center center no-repeat;
    background-size: 100% auto;
  }
  .block-index-mv ._cir {
    position: absolute;
    top: calc(50vh + 4.45vw);
    left: 0px;
    right: 0px;
    height: 100vw;
  }
  .block-index-mv ._cir ._cir-core {
    position: absolute;
    inset: -28.15vw -28.15vw -28.15vw -28.15vw;
    background: url(/images/index/mv/cir.webp?) center center no-repeat;
    background-size: 100% auto;
    animation: keyf_index_town 300s linear 0s infinite;
  }
  .block-index-mv ._charas {
    position: absolute;
    inset: 0 0 0 0;
    top: calc(50vh + 2vw);
  }
  .block-index-mv ._texts {
    position: relative;
  }
  .block-index-mv ._texts ._copy {
    position: absolute;
    top: calc(50vh + 2vw);
    transform: translate(0, -73%);
    left: 0;
    right: 0;
    text-align: center;
  }
  .block-index-mv ._texts ._copy ._t1 {
    font-size: 4.5vw;
    line-height: 1.4;
    letter-spacing: -0.02em;
    font-weight: 900;
    color: #fff;
  }
  .block-index-mv ._texts ._copy ._t2 {
    margin-top: -0.8333333333vw;
    font-size: 1.75vw;
    line-height: 1.5;
    letter-spacing: 0.05em;
    font-weight: bold;
    color: #fff;
  }
  .block-index-mv ._clowds {
    position: absolute;
    top: calc(50vh + 4.4vw);
    left: 0px;
    right: 0px;
  }
  .block-index-mv ._clowds ._clowd1 {
    display: block;
    position: absolute;
    top: -22.5vw;
    left: 13vw;
    background: url(/images/index/mv/clowd1.png) left top no-repeat;
    background-size: contain;
    width: 5.875vw;
    height: 1.625vw;
    animation: keyf_index_clowd 5s ease-in-out 1s infinite;
  }
  .block-index-mv ._clowds ._clowd2 {
    display: block;
    position: absolute;
    top: -22.4vw;
    left: 77.6vw;
    background: url(/images/index/mv/clowd2.png) left top no-repeat;
    background-size: contain;
    width: 7.3125vw;
    height: 1.8125vw;
    animation: keyf_index_clowd 5s ease-in-out 0.2s infinite;
  }
  .block-index-mv ._clowds ._clowd3 {
    display: block;
    position: absolute;
    top: -19.5vw;
    left: 84.6vw;
    background: url(/images/index/mv/clowd3.png) left top no-repeat;
    background-size: contain;
    width: 5.625vw;
    height: 1.6875vw;
    animation: keyf_index_clowd 5s ease-in-out 0s infinite;
  }
  .mod-index-mv-charas img {
    width: 100%;
  }
  .mod-index-mv-charas ._p2 {
    position: absolute;
    top: 1.03vw;
    left: 61.13vw;
    width: 16.03vw;
    height: 37.06vw;
  }
  .mod-index-mv-charas ._p10 {
    position: absolute;
    top: -3.34vw;
    left: 83.63vw;
    width: 12vw;
    height: 16.81vw;
  }
  .mod-index-mv-charas ._p9 {
    position: absolute;
    top: -8.69vw;
    left: 77.84vw;
    width: 5.88vw;
    height: 8.72vw;
  }
  .mod-index-mv-charas ._p1 {
    position: absolute;
    top: 0.53vw;
    left: 20.06vw;
    width: 17.06vw;
    height: 49.13vw;
  }
  .mod-index-mv-charas ._p8 {
    position: absolute;
    top: -14vw;
    left: 66.59vw;
    width: 3.44vw;
    height: 9.41vw;
  }
  .mod-index-mv-charas ._p6 {
    position: absolute;
    top: -14.47vw;
    left: 27.44vw;
    width: 6.5vw;
    height: 9.22vw;
  }
  .mod-index-mv-charas ._p7 {
    position: absolute;
    top: -14.69vw;
    left: 40.28vw;
    width: 3.22vw;
    height: 8.84vw;
  }
  .mod-index-mv-charas ._p5 {
    position: absolute;
    top: -8.94vw;
    left: 16.53vw;
    width: 5.25vw;
    height: 8vw;
  }
  .mod-index-mv-charas ._p4 {
    position: absolute;
    top: -5.25vw;
    left: 10.13vw;
    width: 5.69vw;
    height: 8.25vw;
  }
  .mod-index-mv-charas ._p3 {
    position: absolute;
    top: 0.06vw;
    left: 3.34vw;
    width: 8.66vw;
    height: 13.75vw;
  }
  body {
    height: 100%;
  }
  .area-opening-wapper {
    position: absolute;
    top: 0px;
    left: 0px;
    right: 0px;
    height: 100vh;
    overflow: hidden;
  }
  body.js-index-opening-start .area-opening-wapper {
    overflow: visible;
  }
  body.js-index-opening-finished .area-opening-wapper {
    display: none;
  }
  .area-opening-page {
    height: 500vw;
  }
  .block-opening-stage {
    transition-duration: 0.2s;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 100vh;
    overflow: hidden;
    background: url(/images/index/main/bg.png) left top no-repeat;
    background-size: cover;
    background-position: center;
  }
  body.js-index-opening-finished .block-opening-stage {
    opacity: 0;
    visibility: hidden;
    z-index: -1;
  }
  .block-opening-stage img {
    width: 100%;
  }
  .block-opening-stage ._stage {
    position: absolute;
    top: calc(50% - 2vw);
    left: 50%;
    width: 2px;
    height: 2px;
  }
  .block-opening-stage ._stage-light {
    position: absolute;
    inset: 0 0 0 0;
    background: url(/images/index/main/bg2.png) left top no-repeat;
    background-size: cover;
    background-position: center;
    opacity: 0;
  }
  .block-opening-stage ._plane {
    position: absolute;
    top: -28vw;
    left: -34vw;
    width: 8.668vw;
  }
  .block-opening-stage ._clowd1 {
    position: absolute;
    top: -24vw;
    left: -17vw;
    width: 20.9vw;
  }
  .block-opening-stage ._clowd2 {
    position: absolute;
    top: -22vw;
    left: 16vw;
    width: 10.7vw;
  }
  .block-opening-stage ._clowd3 {
    position: absolute;
    top: -19vw;
    left: 28vw;
    width: 7.1vw;
  }
  .block-opening-stage ._plane {
    position: absolute;
    top: -28vw;
    left: -34vw;
    width: 8.668vw;
  }
  .block-opening-stage ._plane {
    opacity: 0;
    animation: keyf_opening_plane 20s linear 0s;
  }
  .block-opening-stage ._clowd1 {
    animation: keyf_opening_clowd 5s ease-in-out 0s infinite;
  }
  .block-opening-stage ._clowd2 {
    animation: keyf_opening_clowd 3.3s ease-in-out 0.4s infinite;
  }
  .block-opening-stage ._clowd3 {
    animation: keyf_opening_clowd 4s ease-in-out 1.2s infinite;
  }
  .block-opening-stage ._main-chara {
    position: absolute;
    top: 0;
    left: 0;
    transform: translate(-47%, -10%);
    width: 40vw;
  }
  .block-opening-stage ._main-chara img {
    width: 100%;
  }
  .block-opening-stage ._main-chara ._f1 {
    position: absolute;
    top: 0px;
    left: 0px;
  }
  .block-opening-stage ._main-chara ._f2 {
    position: absolute;
    top: 0px;
    left: 0px;
    animatin: keyf_opening_girl2 1.5s ease-in-out 0s infinite;
  }
  .block-opening-stage ._main-chara ._f1 {
    animation: keyf_opening_girl1 1.5s ease-in-out 0s infinite;
  }
  .block-opening-stage ._main-chara ._f2 {
    animation: keyf_opening_girl2 1.5s ease-in-out 0s infinite;
  }
  .block-opening-stage ._grad {
    position: absolute;
    top: -20vw;
    left: 0px;
    right: 0px;
    bottom: 0px;
    pointer-events: none;
  }
  @keyframes keyf_opening_clowd {
    0% {
      transform: translate3d(0, 0, 0);
    }
    50% {
      transform: translate3d(0, 50%, 0);
    }
    100% {
      transform: translate3d(0, 0, 0);
    }
  }
  @keyframes keyf_opening_plane {
    0% {
      transform: translate3d(-32vw, 11vw, 0);
      opacity: 0;
    }
    5% {
      transform: translate3d(-30vw, 10vw, 0);
      opacity: 1;
    }
    95% {
      transform: translate3d(30vw, -3vw, 0);
      opacity: 1;
    }
    100% {
      transform: translate3d(33vw, -5vw, 0);
      opacity: 0;
    }
  }
  @keyframes keyf_opening_girl1 {
    0% {
      opacity: 0;
    }
    50% {
      opacity: 0;
    }
    50.1% {
      opacity: 1;
    }
    100% {
      opacity: 1;
    }
  }
  @keyframes keyf_opening_girl2 {
    0% {
      opacity: 1;
    }
    50% {
      opacity: 1;
    }
    50.1% {
      opacity: 0;
    }
    100% {
      opacity: 0;
    }
  }
  .mod-index-anim-shape {
    position: absolute;
    top: 0px;
    left: 0;
    opacity: 0;
  }
  .mod-index-anim-shape img {
    transform: translate(-50%, 0);
  }
  .area-opening-skip {
    position: fixed;
    right: 3.3333333333vw;
    top: 3.3333333333vw;
    z-index: 10;
  }
  .area-opening-skip ._btn {
    border: 0.1666666667vw solid #fff;
    padding: 1.3333333333vw 5.4166666667vw;
    font-size: 1.6666666667vw;
    line-height: 1.2;
    font-weight: bold;
    border-radius: 4.1666666667vw;
    color: #fff;
    position: relative;
    cursor: pointer;
    transition-duration: 0.2s;
  }
  .area-opening-skip ._btn:after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    right: 1.6666666667vw;
    transform: translate(0, -50%);
    background: url(/common/images/icon/arrow_wh.svg) left top no-repeat;
    background-size: contain;
    width: 1.6666666667vw;
    height: 1.6666666667vw;
  }
  .area-opening-skip ._btn:hover {
    background-color: rgba(255, 255, 255, 0.2);
    opacity: 0.8;
  }
  .block-index-about {
    background: url(/images/index/about/bg1.webp) left top no-repeat;
    background-size: 100% auto;
    position: relative;
    padding: 10.3vw 0 28.5vw 0;
  }
  .block-index-about:before {
    content: "";
    display: block;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 37.5vw;
    background: url(/images/index/about/bg2.webp?4) center top no-repeat;
    background-size: 100% auto;
  }
  .block-index-about ._title {
    text-align: center;
  }
  .block-index-about ._title h2 {
    font-size: 5vw;
    line-height: 1.8;
    letter-spacing: 0.06em;
    font-weight: 800;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 1.25vw;
  }
  .block-index-about ._title h2 img {
    width: 13vw;
  }
  .block-index-about ._title p {
    margin-top: -0.4166666667vw;
    letter-spacing: 0.06em;
    font-weight: bold;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.8333333333vw;
    font-size: 1.4583333333vw;
    line-height: 1.2;
  }
  .block-index-about ._title p:before, .block-index-about ._title p:after {
    content: "";
    display: inline-block;
    width: 1.5vw;
    height: 0.1666666667vw;
    background: #14497c;
  }
  .block-index-about ._lead {
    text-align: center;
  }
  .block-index-about ._lead p {
    margin-top: 3.75vw;
    font-size: 1.5vw;
    line-height: 2.1;
    letter-spacing: 0.06em;
  }
  .block-index-about ._lead ._copy {
    margin-top: 1.6666666667vw;
    font-size: 2.1666666667vw;
    line-height: 1.5;
    letter-spacing: 0.09em;
    font-weight: bold;
  }
  .block-index-about ._btns {
    margin-top: 4.5833333333vw;
    text-align: center;
    display: flex;
    justify-content: center;
    gap: 1.6666666667vw;
  }
  .block-index-about ._clowd1 {
    content: "";
    display: block;
    position: absolute;
    top: 9.3vw;
    left: calc(50vw - 660px);
    background: url(/images/index/about/cloud1.png) left top no-repeat;
    background-size: contain;
    width: 1331px;
    height: 253px;
  }
  .block-index-product {
    margin-top: -8.4vw;
    background: url(/images/index/product/bg1.webp) left top no-repeat;
    background-size: 100% auto;
    position: relative;
    padding: 8.4vw 0 16vw 0;
  }
  .block-index-product ._row-header ._title {
    text-align: center;
  }
  .block-index-product ._row-header ._title h2 {
    font-size: 5vw;
    line-height: 1.8;
    letter-spacing: 0.06em;
    font-weight: 800;
  }
  .block-index-product ._row-body {
    margin-top: 2.5vw;
  }
  .block-index-product ._btns {
    margin-top: 5vw;
    text-align: center;
    display: flex;
    justify-content: center;
    gap: 1.6666666667vw;
  }
  .block-index-product ._clowd1 {
    content: "";
    display: block;
    position: absolute;
    top: 6.8vw;
    left: calc(50vw - 700px);
    background: url(/images/index/product/cloud1.png) left top no-repeat;
    background-size: contain;
    width: 1302px;
    height: 147px;
  }
  .block-index-product ._clowd2 {
    content: "";
    display: block;
    position: absolute;
    top: calc(50vw - 80px);
    left: calc(50vw - 810px);
    background: url(/images/index/product/cloud2.png) left top no-repeat;
    background-size: contain;
    width: 1537px;
    height: 232px;
  }
  .mod-index-product-items {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    gap: 2.5vw;
  }
  .mod-index-product-items > li {
    position: relative;
    min-height: 4.1666666667vw;
    height: 100%;
    width: calc(33.33% - 1.6666666667vw);
  }
  .mod-index-product-item {
    display: block;
    border-radius: 3.3333333333vw;
    height: 48.3333333333vw;
    padding: 1.6666666667vw 3.3333333333vw;
    background: #3ca2dc;
    cursor: pointer;
    transition-duration: 0.2s;
    position: relative;
  }
  .mod-index-product-item.is-B {
    background: #63d4cc;
  }
  .mod-index-product-item.is-C {
    background: #f89baf;
  }
  .mod-index-product-item:hover {
    opacity: 0.8;
  }
  .mod-index-product-item:after {
    content: "";
    display: block;
    position: absolute;
    bottom: 3.3333333333vw;
    left: calc(50% - 2.0833333333vw);
    background: url(/common/images/icon/arrow2_wh.svg) left top no-repeat;
    background-size: contain;
    width: 4.1666666667vw;
    height: 4.1666666667vw;
  }
  .mod-index-product-item ._item-image {
    width: 18.3333333333vw;
    margin: 0 auto;
  }
  .mod-index-product-item ._item-image img {
    width: 100%;
  }
  .mod-index-product-item ._item-texts {
    margin-top: 1.6666666667vw;
    color: #fff;
  }
  .mod-index-product-item ._item-texts h3 {
    font-weight: bold;
    font-size: 2vw;
    letter-spacing: 0.06em;
    line-height: 1.42;
    text-align: center;
  }
  .mod-index-product-item ._item-texts p {
    margin-top: 0.8333333333vw;
    font-size: 1.3333333333vw;
    letter-spacing: 0.06em;
    line-height: 2;
    text-align: left;
  }
  .block-index-recruit {
    margin-top: -10vw;
    background: url(/images/index/recruit/bg1.webp) left top no-repeat;
    background-size: 100% auto;
    position: relative;
    padding: 18.4vw 0 20vw 0;
  }
  .block-index-recruit ._cols {
    display: flex;
    width: 75vw;
    margin: 0 auto;
    gap: 4.1666666667vw;
    position: relative;
  }
  .block-index-recruit ._cols ._col-header {
    width: 20.8333333333vw;
  }
  .block-index-recruit ._cols ._col-body {
    flex: 1;
    padding-top: 4.1666666667vw;
  }
  .block-index-recruit ._cols:after {
    content: "";
    display: block;
    position: absolute;
    top: 1.25vw;
    right: -16.6666666667vw;
    background: url(/images/index/recruit/p1.png) left top no-repeat;
    background-size: contain;
    width: 15vw;
    height: 24.1666666667vw;
  }
  .block-index-recruit ._title h2 {
    font-size: 5vw;
    line-height: 1.8;
    letter-spacing: 0.06em;
    font-weight: 800;
  }
  .block-index-recruit ._btns {
    margin-top: 1.6666666667vw;
  }
  .block-index-recruit ._btns .mod-btn-A {
    width: 100%;
  }
  .block-index-recruit h3 {
    font-size: 2.3333333333vw;
    letter-spacing: 0.06em;
    line-height: 1.61;
    text-align: left;
    font-weight: bold;
  }
  .block-index-recruit p {
    margin-top: 0.8333333333vw;
    font-size: 1.3333333333vw;
    letter-spacing: 0.06em;
    line-height: 2;
    text-align: left;
  }
  @keyframes keyf_index_clowd {
    0% {
      transform: translate3d(0, 0.5vw, 0);
    }
    50% {
      transform: translate3d(0, -0.5vw, 0);
    }
    100% {
      transform: translate3d(0, 0.5vw, 0);
    }
  }
  @keyframes keyf_index_town {
    0% {
      transform: rotate(0);
    }
    100% {
      transform: rotate(360deg);
    }
  }
}
@media screen and (max-width: 809px) {
  .block-about-intro {
    position: relative;
    background: url(/images/about-tiifa/sp/bg.jpg?2) center bottom no-repeat;
    background-size: 100% auto;
    padding: 7.6923076923vw 0 46.1538461538vw 0;
  }
  .block-about-intro ._row-header {
    position: relative;
  }
  .block-about-intro ._row-header ._t1 {
    font-size: 7.4358974359vw;
    text-align: center;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: -0.02em;
  }
  .block-about-intro ._row-header ._t2 {
    font-size: 3.8461538462vw;
    text-align: center;
    font-weight: bold;
    line-height: 1.5;
    letter-spacing: 0.05em;
  }
  .block-about-intro ._row-body {
    position: relative;
    margin-top: 6.4102564103vw;
  }
  .block-about-intro ._row-body p {
    font-size: 3.5897435897vw;
    text-align: center;
    line-height: 2.11;
    letter-spacing: 0.1em;
    color: #14497c;
    margin-bottom: 4.358974359vw;
  }
  .block-about-intro ._row-body2 {
    margin-top: 5.641025641vw;
  }
  .block-about-intro ._row-body2 ._t1 {
    margin-top: -1.2820512821vw;
    font-size: 3.5897435897vw;
    text-align: center;
    font-weight: bold;
    line-height: 1.75;
    letter-spacing: 0.05em;
  }
  .block-about-intro ._row-body2 ._t2 {
    margin-top: 1.2820512821vw;
    font-size: 5.3846153846vw;
    text-align: center;
    font-weight: 900;
    line-height: 1.3;
    letter-spacing: 0.1em;
  }
  .block-about-concept {
    margin-top: -1px;
    position: relative;
    background: url(/images/about-tiifa/sp/bg2.jpg?2) center top no-repeat;
    background-size: 100% auto;
    padding: 10.2564102564vw 6.4102564103vw 51.2820512821vw 6.4102564103vw;
  }
  .mod-about-concept-items {
    display: flex;
    gap: 5.1282051282vw;
    flex-direction: column;
  }
  .mod-about-concept-item {
    position: relative;
    border-radius: 5.1282051282vw;
    background: #fff;
    padding: 7.6923076923vw 7.6923076923vw 6.6666666667vw 7.6923076923vw;
    box-shadow: 0 0 7.6923076923vw rgba(35, 207, 197, 0.15);
  }
  .mod-about-concept-item ._item-title {
    text-align: center;
  }
  .mod-about-concept-item ._item-title ._label {
    display: inline-block;
    padding: 0 2.5641025641vw;
    border-radius: 3.5897435897vw;
    background: #14497c;
    font-size: 3.8461538462vw;
    letter-spacing: 0.06em;
    line-height: 5.641025641vw;
    text-align: left;
    font-weight: 900;
    color: #fff;
  }
  .mod-about-concept-item ._item-title ._copy {
    margin-top: 3.3333333333vw;
    font-size: 4.6153846154vw;
    letter-spacing: 0.06em;
    line-height: 1.62;
    font-weight: bold;
  }
  .mod-about-concept-item ._item-texts {
    margin-top: 2.5641025641vw;
  }
  .mod-about-concept-item ._item-texts p {
    font-size: 3.3333333333vw;
    letter-spacing: 0.06em;
    line-height: 2;
    text-align: left;
  }
  /* ----------------------------------------------------------
    block--product-main
    ---------------------------------------------------------- */
  .block-product-main {
    padding: 10.2564102564vw 6.4102564103vw 56.4102564103vw 6.4102564103vw;
  }
  .block-product-main img {
    width: 100%;
  }
  .block-product-main .block-inner {
    display: flex;
    gap: 15.3846153846vw;
    flex-direction: column;
  }
  .block-product-main ._notes {
    margin-top: 5.1282051282vw;
  }
  .mod-product-main-box {
    background: url(/images/product/sp/bg1.png) right bottom no-repeat;
    background-size: 100% auto;
    position: relative;
    border-radius: 5.1282051282vw;
    padding: 11.2820512821vw 7.6923076923vw 17.9487179487vw 7.6923076923vw;
    color: #fff;
  }
  .mod-product-main-box.is-A {
    background-color: #3FA2DC;
  }
  .mod-product-main-box.is-B {
    background-color: #63D4CC;
    background-image: url(/images/product/sp/bg2.png?);
  }
  .mod-product-main-box.is-C {
    background-color: #F89BAF;
    background-image: url(/images/product/sp/bg3.png);
  }
  .mod-product-main-box ._deco3 {
    position: absolute;
    top: 123.0769230769vw;
    left: 11.2820512821vw;
    width: 36.6666666667vw;
    height: 19.7435897436vw;
  }
  .mod-product-main-box ._clowd2 {
    position: absolute;
    top: 125.641025641vw;
    right: 4.1025641026vw;
    width: 22.8205128205vw;
    height: 5.8974358974vw;
  }
  .mod-product-main-box ._clowd1 {
    position: absolute;
    top: 135.3846153846vw;
    right: -10.2564102564vw;
    width: 19.7435897436vw;
    height: 5.641025641vw;
  }
  .mod-product-main-box ._deco1 {
    position: absolute;
    top: 120.5128205128vw;
    right: -2.8205128205vw;
    width: 47.4358974359vw;
    height: 31.2820512821vw;
    z-index: 10;
  }
  .mod-product-main-box ._clowd3 {
    position: absolute;
    top: 124.358974359vw;
    left: -3.0769230769vw;
    width: 21.7948717949vw;
    height: 10.7692307692vw;
  }
  .mod-product-main-box ._deco2 {
    position: absolute;
    top: 121.7948717949vw;
    left: 12.8205128205vw;
    width: 38.9743589744vw;
    height: 25.1282051282vw;
  }
  .mod-product-main-box ._clowd4 {
    position: absolute;
    top: 134.6153846154vw;
    right: -2.5641025641vw;
    width: 22.3076923077vw;
    height: 6.6666666667vw;
  }
  .mod-product-main-cols {
    display: flex;
    justify-content: space-between;
    flex-direction: column-reverse;
    gap: 5.1282051282vw;
  }
  .mod-product-main-cols img {
    width: 100%;
  }
  .mod-product-main-cols ._col-image {
    margin-top: 28.2051282051vw;
  }
  .mod-product-main-cols ._col-image img {
    border-radius: 5.1282051282vw;
  }
  .mod-product-main-cols ._title {
    display: flex;
    gap: 3.8461538462vw;
    flex-direction: column;
    align-items: center;
  }
  .mod-product-main-cols ._title ._icon {
    width: 25.641025641vw;
  }
  .mod-product-main-cols ._title ._ti {
    flex: 1;
  }
  .mod-product-main-cols h2 {
    font-size: 5.3846153846vw;
    line-height: 1.4;
    letter-spacing: 0.06em;
    font-weight: bold;
    color: #fff;
    text-align: center;
  }
  .mod-product-main-cols p {
    margin-top: 3.8461538462vw;
    font-size: 3.3333333333vw;
    line-height: 2;
    letter-spacing: 0.06em;
    color: #fff;
  }
  .mod-product-main-cols ._btns {
    margin-top: 6.4102564103vw;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .block-recruit-bg {
    background: url(/images/staff-recruit/sp/bg.jpg?2) center bottom no-repeat;
    background-size: 100% auto;
  }
  /* ----------------------------------------------------------
    block--recruit-main
    ---------------------------------------------------------- */
  .block-recruit-main {
    padding: 6.4102564103vw 6.4102564103vw 30.7692307692vw 6.4102564103vw;
  }
  .block-recruit-main img {
    width: 100%;
  }
  .block-recruit-main ._inner ._clowd1 {
    display: none;
  }
  .block-recruit-main ._inner ._deco2 {
    display: none;
  }
  .block-recruit-main ._inner ._clowd2 {
    display: none;
  }
  .block-recruit-main ._inner ._deco1 {
    display: none;
  }
  .block-recruit-main ._inner ._clowd3 {
    display: none;
  }
  .block-recruit-main ._inner ._clowd4 {
    display: none;
  }
  .block-recruit-main ._inner ._row-head {
    text-align: center;
  }
  .block-recruit-main ._inner ._row-head h2 {
    font-size: 7.1794871795vw;
    line-height: 1.8;
    letter-spacing: 0.06em;
    font-weight: 800;
  }
  .block-recruit-main ._inner ._row-body {
    margin-top: 3.8461538462vw;
  }
  .block-recruit-main ._inner ._row-body p {
    font-size: 3.3333333333vw;
    line-height: 2.15;
    letter-spacing: 0.1em;
  }
  .block-recruit-main ._inner ._row-body ._name {
    margin-top: 5.1282051282vw;
    font-size: 3.3333333333vw;
    line-height: 2.1;
    letter-spacing: 0.1em;
    font-weight: bold;
    text-align: right;
  }
  .block-recruit-main ._inner ._row-body ._name b {
    font-size: 4.1025641026vw;
  }
  .block-recruit-main ._inner ._row-body img {
    margin-top: 7.6923076923vw;
  }
  /* ----------------------------------------------------------
    block--recruit-recruit
    ---------------------------------------------------------- */
  .block-recruit-recruit {
    padding: 12.8205128205vw 6.4102564103vw 51.2820512821vw 6.4102564103vw;
  }
  .block-recruit-recruit img {
    width: 100%;
  }
  .block-recruit-recruit ._box {
    position: relative;
    background: #fff;
    padding: 7.6923076923vw 7.6923076923vw 35.8974358974vw 7.6923076923vw;
    border-radius: 5.1282051282vw;
  }
  .block-recruit-recruit ._box ._deco3 {
    position: absolute;
    left: 50%;
    bottom: -7.6923076923vw;
    width: 28.2051282051vw;
    transform: translate(-50%, 0);
  }
  .block-recruit-recruit ._box h2 {
    font-size: 4.8717948718vw;
    line-height: 1.6;
    letter-spacing: 0.06em;
    font-weight: bold;
    text-align: center;
  }
  .block-recruit-recruit ._box p {
    margin-top: 2.5641025641vw;
    font-size: 3.3333333333vw;
    line-height: 1.95;
    letter-spacing: 0.06em;
  }
  .block-recruit-recruit ._box ._btns {
    margin-top: 5.1282051282vw;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .block-privacy-main {
    padding: 19.2307692308vw 6.4102564103vw 51.2820512821vw 6.4102564103vw;
  }
  .block-privacy-main .block-inner {
    display: flex;
    gap: 12.8205128205vw;
    flex-direction: column;
  }
  .block-privacy-main ._set {
    display: flex;
    gap: 3.8461538462vw;
    flex-direction: column;
  }
  .block-privacy-main h2 {
    font-size: 4.8717948718vw;
    line-height: 1.1;
    letter-spacing: 0.06em;
    font-weight: bold;
  }
  .block-privacy-main p {
    font-size: 3.3333333333vw;
    line-height: 2;
    letter-spacing: 0.1em;
  }
  .block-privacy-main a {
    color: #14497c;
    text-decoration: underline;
  }
  .block-privacy-main ._box {
    border-radius: 5.1282051282vw;
    padding: 6.4102564103vw 6.4102564103vw 6.4102564103vw 6.4102564103vw;
    background: #f1f8ff;
  }
  .mod-pagelink-target {
    position: absolute;
    top: -80px;
    left: 0px;
    width: 80px;
    height: 80px;
  }
  .mod-btn-A {
    width: 58.9743589744vw;
    height: 14.358974359vw;
    border-radius: 8.9743589744vw;
    border: 0.5128205128vw solid #14497c;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 3.8461538462vw;
    letter-spacing: 0.06em;
    line-height: 1.75;
    text-align: center;
    color: #14497c;
    font-weight: bold;
    position: relative;
    cursor: pointer;
    transition-duration: 0.2s;
  }
  .mod-btn-A:after {
    content: "";
    display: block;
    position: absolute;
    top: calc(50% - 2.0512820513vw);
    right: 3.8461538462vw;
    background: url(/common/images/icon/arrow.svg) left top no-repeat;
    background-size: contain;
    width: 3.8461538462vw;
    height: 3.8461538462vw;
  }
  .mod-btn-A-wh {
    width: 58.9743589744vw;
    height: 14.358974359vw;
    border-radius: 8.9743589744vw;
    border: 0.5128205128vw solid #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 3.8461538462vw;
    letter-spacing: 0.06em;
    line-height: 1.75;
    text-align: center;
    color: #fff;
    font-weight: bold;
    position: relative;
    cursor: pointer;
    transition-duration: 0.2s;
  }
  .mod-btn-A-wh:after {
    content: "";
    display: block;
    position: absolute;
    top: calc(50% - 2.0512820513vw);
    right: 3.8461538462vw;
    background: url(/common/images/icon/arrow.svg) left top no-repeat;
    background-size: contain;
    width: 3.8461538462vw;
    height: 3.8461538462vw;
  }
  .mod-btn-A-wh:hover {
    background-color: rgba(255, 255, 255, 0.1);
  }
  .mod-btn-A-wh[target=_blank]:after {
    top: calc(50% - 2.0512820513vw);
    background-image: url(/common/images/icon/arrow_blank_wh.png);
    width: 4.1025641026vw;
    height: 4.1025641026vw;
  }
  .mod-common-bg-grad {
    position: relative;
  }
  .mod-common-bg-grad:before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    background: #eee;
    height: 10vw;
    background: linear-gradient(white 0%, rgba(255, 255, 255, 0) 100%);
  }
  .block-common-title {
    position: relative;
    background: url(/common/images/sp/bg.jpg) center top no-repeat;
    background-size: contain;
    height: 104.4871794872vw;
  }
  .block-common-title ._texts {
    position: absolute;
    top: 36.5384615385vw;
    left: 0;
    right: 0;
  }
  .block-common-title ._texts h1 {
    font-size: 10.7692307692vw;
    text-align: center;
    font-weight: 900;
    line-height: 1.75;
    letter-spacing: 0.06em;
    color: #14497c;
  }
  .block-common-title ._texts p {
    margin-top: -2.5641025641vw;
    letter-spacing: 0.06em;
    font-weight: bold;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2.5641025641vw;
    font-size: 4.358974359vw;
    line-height: 1.2;
  }
  .block-common-title ._texts p:before, .block-common-title ._texts p:after {
    content: "";
    display: inline-block;
    width: 4.6153846154vw;
    height: 0.5128205128vw;
    background: #14497c;
  }
  .block-common-title2 {
    position: relative;
    background: url(/common/images/sp/bg2.jpg?) center top no-repeat;
    background-size: 100% auto;
    height: 79.2307692308vw;
  }
  .block-common-title2 ._texts {
    position: absolute;
    inset: 0;
    top: 10.2564102564vw;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .block-common-title2 ._texts h1 {
    font-size: 10.7692307692vw;
    text-align: center;
    font-weight: 900;
    line-height: 1.75;
    letter-spacing: 0.06em;
    color: #14497c;
  }
  .block-common {
    padding: 17.9487179487vw 6.4102564103vw 51.2820512821vw 6.4102564103vw;
  }
  .block-common ._lead {
    text-align: center;
  }
  .block-common p {
    font-size: 3.3333333333vw;
    line-height: 1.75;
    letter-spacing: 0.06em;
  }
  .block-common b {
    color: #d93025;
  }
  .mod-common-notes {
    letter-spacing: 0.06em;
    line-height: 2;
    text-align: left;
    font-size: 3.0769230769vw;
  }
  .mod-common-notes.is-wh {
    color: #fff;
  }
  .mod-common-notes li {
    letter-spacing: 0.05em;
    position: relative;
    padding-left: 1.5em;
  }
  .mod-common-notes li::before {
    content: "●";
    transform: scale(0.7);
    position: absolute;
    left: 0.7692307692vw;
    top: 0;
  }
  .mod-common-list {
    letter-spacing: 0.06em;
    line-height: 1.625;
    text-align: left;
    font-size: 3.3333333333vw;
    display: flex;
    gap: 2.5641025641vw;
    flex-direction: column;
  }
  .mod-common-list li {
    letter-spacing: 0.05em;
    position: relative;
    padding-left: 1.2em;
  }
  .mod-common-list li::before {
    content: "●";
    transform: scale(0.4);
    position: absolute;
    left: 0.2564102564vw;
    top: 0.2564102564vw;
  }
  .block-index-loading {
    visibility: hidden;
    opacity: 0;
    z-index: -1;
    position: fixed;
    top: 0px;
    left: 0px;
    width: 100vw;
    height: 100vh;
    transition-duration: 0.4s;
    background: url(/images/index/loading/sp/bg.jpg?) center center no-repeat;
    background-size: cover;
  }
  body.js-loading-start .block-index-loading {
    transition-duration: 0.4s;
    visibility: visible;
    opacity: 1;
    z-index: 20000;
  }
  body.js-loading-1 .block-index-loading ._copy:after {
    width: 50%;
  }
  body.js-loading-1.js-loading-finished .block-index-loading ._copy:after {
    width: 100%;
    transition-duration: 0.4s;
  }
  body.js-loading-finished2 .block-index-loading {
    visibility: hidden;
    opacity: 0;
    z-index: -1;
  }
  .block-index-loading ._texts {
    position: absolute;
    top: calc(50vh - 25.5vw);
    left: 0;
    right: 0;
    text-align: center;
  }
  .block-index-loading ._texts ._copy {
    display: inline-block;
    position: relative;
    width: 85.3333333333vw;
    height: 11.7333333333vw;
  }
  .block-index-loading ._texts ._copy:before {
    opacity: 0.2;
    content: "";
    display: block;
    position: absolute;
    top: 0px;
    left: 0px;
    height: 100%;
    width: 100%;
    background: url(/images/index/loading/copy.svg) left top no-repeat;
    background-size: auto 100%;
  }
  .block-index-loading ._texts ._copy:after {
    content: "";
    display: block;
    position: absolute;
    top: 0px;
    left: 0px;
    background: url(/images/index/loading/copy.svg) left top no-repeat;
    background-size: auto 100%;
    width: 0%;
    height: 100%;
    transition-duration: 6s;
  }
  .block-index-loading ._chara {
    position: absolute;
    left: 50vw;
    top: calc(50vh - 20vw);
  }
  .block-index-loading ._chara img {
    width: 100%;
  }
  .block-index-loading ._chara ._p1,
  .block-index-loading ._chara ._p2 {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 28.8vw;
    height: 55.92vw;
    transform: translate(-50%, 14vw);
  }
  .block-index-loading ._chara ._p1 {
    animation: keyf_opening_girl1 1.5s ease-in-out 0s infinite;
  }
  .block-index-loading ._chara ._p2 {
    animation: keyf_opening_girl2 1.5s ease-in-out 0s infinite;
  }
  :root {
    --hieght: 100vmax;
  }
  .block-index-cover {
    position: fixed;
    inset: 0;
    z-index: 10000;
  }
  .block-index-cover ._core {
    position: absolute;
    inset: 0;
    background: #fff;
  }
  .block-index-cover.is-step1 {
    opacity: 0;
    transition-duration: 2s;
  }
  .block-index-cover.is-step1 ._core {
    transition-duration: 1s;
    background: radial-gradient(circle, rgba(255, 255, 255, 0) 10%, rgb(255, 255, 255) 50%);
  }
  .block-index-wrap {
    position: fixed;
    visibility: hidden;
    z-index: -1;
  }
  body.js-index-main-start .block-index-wrap {
    position: relative;
    visibility: visible;
    z-index: auto;
  }
  .block-index-bg-wrap {
    position: relative;
  }
  .block-index-bg-wrap:before {
    content: "";
    display: block;
    position: absolute;
    top: 30vw;
    left: 0px;
    right: 0px;
    bottom: 0;
    background: #fff;
  }
  .block-index-mv {
    position: relative;
    height: 136vw;
    background-color: #AEDFFD;
  }
  .block-index-mv ._stage {
    height: var(--hieght);
  }
  .block-index-mv ._bg1 {
    position: absolute;
    inset: 0 0 0 0;
    background: url(/images/index/mv/sp/bg1.jpg?3) center top no-repeat;
    background-size: 100% auto;
  }
  .block-index-mv ._bg2 {
    position: absolute;
    inset: 0 0 0 0;
    background: url(/images/index/mv/sp/bg2.png?3) center top no-repeat;
    background-size: 100% auto;
  }
  .block-index-mv ._cir {
    position: absolute;
    top: 72.35vw;
    left: 0px;
    right: 0px;
    height: 100vw;
  }
  .block-index-mv ._cir ._cir-core {
    position: absolute;
    inset: 0;
    inset: -45.5vw;
    background: url(/images/index/mv/cir.webp?) center center no-repeat;
    background-size: 100% auto;
    animation: keyf_index_town 300s linear 0s infinite;
  }
  .block-index-mv ._charas {
    position: absolute;
    inset: 0 0 0 0;
    top: 72.2vw;
  }
  .block-index-mv ._texts {
    position: relative;
  }
  .block-index-mv ._texts ._copy {
    position: absolute;
    top: 71vw;
    transform: translate(0, -80%);
    left: 0;
    right: 0;
    text-align: center;
  }
  .block-index-mv ._texts ._copy ._t1 {
    font-size: 8.4615384615vw;
    line-height: 1.4;
    letter-spacing: -0.02em;
    font-weight: 900;
    color: #fff;
  }
  .block-index-mv ._texts ._copy ._t2 {
    margin-top: -2.5641025641vw;
    font-size: 4.1025641026vw;
    line-height: 1.5;
    letter-spacing: 0.05em;
    font-weight: bold;
    color: #fff;
  }
  .block-index-mv ._clowds {
    position: absolute;
    top: calc(50% + 0.5vw);
    left: 0px;
    right: 0px;
  }
  .block-index-mv ._clowds ._clowd1 {
    display: block;
    background: url(/images/index/mv/clowd1.png) left top no-repeat;
    background-size: contain;
    animation: keyf_index_clowd 5s ease-in-out 1s infinite;
  }
  .block-index-mv ._clowds ._clowd2 {
    display: block;
    background: url(/images/index/mv/clowd2.png) left top no-repeat;
    background-size: contain;
    animation: keyf_index_clowd 5s ease-in-out 0.2s infinite;
  }
  .block-index-mv ._clowds ._clowd3 {
    display: block;
    background: url(/images/index/mv/clowd3.png) left top no-repeat;
    background-size: contain;
    animation: keyf_index_clowd 5s ease-in-out 0s infinite;
  }
  .block-index-mv ._clowds ._clowd2 {
    position: absolute;
    top: -46.33vw;
    left: 76.15vw;
    width: 15.13vw;
    height: 3.85vw;
  }
  .block-index-mv ._clowds ._clowd1 {
    position: absolute;
    top: -48.13vw;
    left: -3.08vw;
    width: 12.05vw;
    height: 3.59vw;
  }
  .block-index-mv ._clowds ._clowd3 {
    position: absolute;
    top: -37.87vw;
    left: 89.74vw;
    width: 11.54vw;
    height: 3.59vw;
  }
  .mod-index-mv-charas img {
    width: 100%;
  }
  .mod-index-mv-charas ._p3,
  .mod-index-mv-charas ._p4,
  .mod-index-mv-charas ._p5,
  .mod-index-mv-charas ._p9 {
    display: none;
  }
  .mod-index-mv-charas ._p1 {
    position: absolute;
    top: 6vw;
    left: 12.31vw;
    width: 35.13vw;
    height: 100.77vw;
  }
  .mod-index-mv-charas ._p2 {
    position: absolute;
    top: 14.87vw;
    left: 68.21vw;
    width: 33.08vw;
    height: 76.15vw;
  }
  .mod-index-mv-charas ._p6 {
    position: absolute;
    top: -31.33vw;
    left: 9.74vw;
    width: 13.33vw;
    height: 18.97vw;
  }
  .mod-index-mv-charas ._p7 {
    position: absolute;
    top: -32.56vw;
    left: 34.36vw;
    width: 6.67vw;
    height: 18.21vw;
  }
  .mod-index-mv-charas ._p8 {
    position: absolute;
    top: -32.79vw;
    left: 67.95vw;
    width: 5.9vw;
    height: 16.15vw;
  }
  .mod-index-mv-charas ._p10 {
    position: absolute;
    top: -28.21vw;
    left: 74.1vw;
    width: 25vw;
    height: 34.62vw;
  }
  .mod-index-mv-charas ._p10 img {
    transform: rotate(-8deg);
  }
  body {
    height: 100%;
  }
  .area-opening-wapper {
    position: absolute;
    top: 0px;
    left: 0px;
    right: 0px;
    height: var(--hieght);
    overflow: hidden;
  }
  body.js-index-opening-start .area-opening-wapper {
    overflow: visible;
  }
  body.js-index-opening-finished .area-opening-wapper {
    display: none;
  }
  .area-opening-page {
    height: 1500vw;
  }
  .block-opening-stage {
    transition-duration: 0.2s;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: var(--hieght);
    max-height: 200vh;
    overflow: hidden;
    background: url(/images/index/main/sp/bg.jpg?) left top no-repeat;
    background-size: cover;
    background-position: center;
  }
  body.js-index-opening-finished .block-opening-stage {
    opacity: 0;
    visibility: hidden;
    z-index: -1;
  }
  .block-opening-stage img {
    width: 100%;
  }
  .block-opening-stage ._stage {
    position: absolute;
    top: calc(50% - 29vw);
    left: 50%;
    width: 2px;
    height: 2px;
  }
  .block-opening-stage ._stage-light {
    position: absolute;
    inset: 0 0 0 0;
    background: url(/images/index/main/sp/bg2.png) center top no-repeat;
    background-size: cover;
    background-position: center;
    opacity: 0;
  }
  .block-opening-stage ._plane {
    position: absolute;
    top: -38vw;
    left: -34vw;
    width: 13.002vw;
  }
  .block-opening-stage ._clowd1 {
    position: absolute;
    top: -36vw;
    left: -12vw;
    width: 31.35vw;
  }
  .block-opening-stage ._clowd2 {
    position: absolute;
    top: -45vw;
    left: 18vw;
    width: 21.4vw;
  }
  .block-opening-stage ._clowd3 {
    position: absolute;
    top: -35vw;
    left: 38vw;
    width: 14.2vw;
  }
  .block-opening-stage ._plane {
    position: absolute;
    top: -45vw;
    left: -30vw;
    width: 26.004vw;
  }
  .block-opening-stage ._plane {
    opacity: 0;
    animation: keyf_opening_plane 15s linear 0s;
  }
  .block-opening-stage ._clowd1 {
    animation: keyf_opening_clowd 5s ease-in-out 0s infinite;
  }
  .block-opening-stage ._clowd2 {
    animation: keyf_opening_clowd 3.3s ease-in-out 0.4s infinite;
  }
  .block-opening-stage ._clowd3 {
    animation: keyf_opening_clowd 4s ease-in-out 1.2s infinite;
  }
  .block-opening-stage ._main-chara {
    position: absolute;
    top: 50vw;
    left: 0;
    transform: translate(-47%, -10%);
    width: 120vw;
  }
  .block-opening-stage ._main-chara img {
    width: 100%;
  }
  .block-opening-stage ._main-chara ._f1 {
    position: absolute;
    top: 0px;
    left: 0px;
    animation: keyf_opening_girl1 1.5s ease-in-out 0s infinite;
  }
  .block-opening-stage ._main-chara ._f2 {
    position: absolute;
    top: 0px;
    left: 0px;
    animation: keyf_opening_girl2 1.5s ease-in-out 0s infinite;
  }
  .block-opening-stage ._grad {
    position: absolute;
    top: -20vw;
    left: 0px;
    right: 0px;
    bottom: 0px;
    pointer-events: none;
  }
  @keyframes keyf_opening_clowd {
    0% {
      transform: translate3d(0, 0, 0);
    }
    50% {
      transform: translate3d(0, 50%, 0);
    }
    100% {
      transform: translate3d(0, 0, 0);
    }
  }
  @keyframes keyf_opening_plane {
    0% {
      transform: translate3d(-30vw, 10vw, 0);
      opacity: 0;
    }
    5% {
      transform: translate3d(-30vw, 10vw, 0);
      opacity: 1;
    }
    95% {
      transform: translate3d(20vw, -10vw, 0);
      opacity: 1;
    }
    100% {
      transform: translate3d(20vw, -10vw, 0);
      opacity: 0;
    }
  }
  @keyframes keyf_opening_girl1 {
    0% {
      opacity: 0;
    }
    50% {
      opacity: 0;
    }
    50.1% {
      opacity: 1;
    }
    100% {
      opacity: 1;
    }
  }
  @keyframes keyf_opening_girl2 {
    0% {
      opacity: 1;
    }
    50% {
      opacity: 1;
    }
    50.1% {
      opacity: 0;
    }
    100% {
      opacity: 0;
    }
  }
  .mod-index-anim-shape {
    position: absolute;
    top: 0px;
    left: 0;
    opacity: 0;
  }
  .mod-index-anim-shape img {
    transform: translate(-50%, 0);
  }
  .area-opening-skip {
    position: fixed;
    right: 3.8461538462vw;
    top: 3.8461538462vw;
    z-index: 10;
  }
  .area-opening-skip ._btn {
    border: 2px solid #fff;
    padding: 2.8205128205vw 7.6923076923vw;
    font-size: 3.8461538462vw;
    line-height: 1.2;
    font-weight: bold;
    border-radius: 8.4615384615vw;
    color: #fff;
    position: relative;
    cursor: pointer;
    transition-duration: 0.2s;
  }
  .area-opening-skip ._btn:after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    right: 3.3333333333vw;
    transform: translate(0, -50%);
    background: url(/common/images/icon/arrow_wh.svg) left top no-repeat;
    background-size: contain;
    width: 3.3333333333vw;
    height: 3.3333333333vw;
  }
  .area-opening-skip ._btn:hover {
    background-color: rgba(255, 255, 255, 0.2);
    opacity: 0.8;
  }
  /* ----------------------------------------------------------
  block-index-about
  ---------------------------------------------------------- */
  .block-index-about {
    margin-top: -5.1282051282vw;
    background: url(/images/index/about/sp/bg1.png?) left top no-repeat;
    background-size: 100% auto;
    position: relative;
    padding: 17.9487179487vw 0 61.5384615385vw 0;
  }
  .block-index-about ._title {
    text-align: center;
  }
  .block-index-about ._title h2 {
    font-size: 8.9743589744vw;
    line-height: 1.8;
    letter-spacing: 0.06em;
    font-weight: 800;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 1.2820512821vw;
  }
  .block-index-about ._title h2 img {
    width: 23.0769230769vw;
  }
  .block-index-about ._title p {
    margin-top: -1.2820512821vw;
    letter-spacing: 0.06em;
    font-weight: bold;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2.5641025641vw;
    font-size: 3.8461538462vw;
    line-height: 1.2;
  }
  .block-index-about ._title p:before, .block-index-about ._title p:after {
    content: "";
    display: inline-block;
    width: 4.6153846154vw;
    height: 0.5128205128vw;
    background: #14497c;
  }
  .block-index-about ._lead {
    text-align: center;
  }
  .block-index-about ._lead p {
    margin-top: 11.5384615385vw;
    font-size: 3.5897435897vw;
    line-height: 2.1;
    letter-spacing: 0.06em;
  }
  .block-index-about ._lead ._copy {
    margin-top: 5.1282051282vw;
    font-size: 4.6153846154vw;
    line-height: 1.5;
    letter-spacing: 0.09em;
    font-weight: bold;
  }
  .block-index-about ._btns {
    margin-top: 8.2051282051vw;
    text-align: center;
    display: flex;
    justify-content: center;
    gap: 5.1282051282vw;
  }
  /* ----------------------------------------------------------
  block-index-product
  ---------------------------------------------------------- */
  .block-index-product {
    margin-top: -10vw;
    background: url(/images/index/product/sp/bg1.png) left top no-repeat;
    background-size: 100% auto;
    position: relative;
    padding: 16.6666666667vw 6.4102564103vw 19.2307692308vw 6.4102564103vw;
  }
  .block-index-product ._row-header ._title {
    text-align: center;
  }
  .block-index-product ._row-header ._title h2 {
    font-size: 8.9743589744vw;
    line-height: 1.8;
    letter-spacing: 0.06em;
    font-weight: 800;
  }
  .block-index-product ._row-body {
    margin-top: 8.9743589744vw;
  }
  .block-index-product ._btns {
    margin-top: 10.2564102564vw;
    text-align: center;
    display: flex;
    justify-content: center;
  }
  .block-index-product ._clowd1 {
    display: none;
  }
  .block-index-product ._clowd2 {
    display: none;
  }
  .mod-index-product-items {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 5.1282051282vw;
  }
  .mod-index-product-item {
    display: block;
    border-radius: 5.1282051282vw;
    padding: 5.1282051282vw 7.6923076923vw 28.2051282051vw 7.6923076923vw;
    background: #3ca2dc;
    position: relative;
  }
  .mod-index-product-item.is-B {
    background: #63d4cc;
  }
  .mod-index-product-item.is-C {
    background: #f89baf;
  }
  .mod-index-product-item:after {
    content: "";
    display: block;
    position: absolute;
    bottom: 10.2564102564vw;
    left: 50%;
    transform: translate(-50%, 0);
    background: url(/common/images/icon/arrow2_wh.svg) left top no-repeat;
    background-size: contain;
    width: 11.5384615385vw;
    height: 11.5384615385vw;
  }
  .mod-index-product-item ._item-image {
    width: 41.0256410256vw;
    margin: 0 auto;
  }
  .mod-index-product-item ._item-image img {
    width: 100%;
  }
  .mod-index-product-item ._item-texts {
    color: #fff;
  }
  .mod-index-product-item ._item-texts h3 {
    font-weight: bold;
    font-size: 4.358974359vw;
    letter-spacing: 0.06em;
    line-height: 1.42;
    text-align: center;
  }
  .mod-index-product-item ._item-texts p {
    margin-top: 2.5641025641vw;
    font-size: 3.3333333333vw;
    letter-spacing: 0.06em;
    line-height: 2;
    text-align: left;
  }
  /* ----------------------------------------------------------
  block-index-recruit
  ---------------------------------------------------------- */
  .block-index-recruit {
    background: #fff url(/images/index/recruit/sp/bg1.jpg) left top no-repeat;
    background-size: 100% auto;
    position: relative;
    padding: 28.2051282051vw 6.4102564103vw 51.2820512821vw 6.4102564103vw;
  }
  .block-index-recruit:after {
    display: block;
    content: "";
    background: url(/images/index/recruit/p1.png) left top no-repeat;
    background-size: contain;
    width: 23.0769230769vw;
    height: 37.1794871795vw;
    margin: 10.2564102564vw auto 0 auto;
  }
  .block-index-recruit ._cols ._col-body {
    margin-top: 6.4102564103vw;
  }
  .block-index-recruit ._title {
    text-align: center;
  }
  .block-index-recruit ._title h2 {
    font-size: 8.9743589744vw;
    line-height: 1.8;
    letter-spacing: 0.06em;
    font-weight: 800;
  }
  .block-index-recruit h3 {
    font-size: 4.8717948718vw;
    letter-spacing: 0.06em;
    line-height: 1.4;
    text-align: center;
    font-weight: bold;
  }
  .block-index-recruit p {
    margin-top: 3.8461538462vw;
    font-size: 3.3333333333vw;
    letter-spacing: 0.06em;
    line-height: 2;
    text-align: center;
  }
  .block-index-recruit ._btns {
    margin-top: 7.6923076923vw;
    display: flex;
    justify-content: center;
  }
  @keyframes keyf_index_clowd {
    0% {
      transform: translate3d(0, 1.5vw, 0);
    }
    50% {
      transform: translate3d(0, -1.5vw, 0);
    }
    100% {
      transform: translate3d(0, 1.5vw, 0);
    }
  }
  @keyframes keyf_index_town {
    0% {
      transform: rotate(0);
    }
    100% {
      transform: rotate(360deg);
    }
  }
}