@charset "UTF-8";

html {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 62.5%;
  scroll-behavior: smooth;
  background: #f8f8fe;
}

body {
  font-size: 1.4rem;
  overflow-x: hidden;
}
body.fixed {
  overflow: hidden; /* 背景のスクロール禁止 */
}
*,
*::before,
*::after {
  box-sizing: border-box;
}
ul {
  list-style: none;
}
a {
  text-decoration: none;
  color: unset;
}
img {
  width: 100%;
}
.avenir {
  font-family: "avenir-lt-pro";
}
.seravek {
  font-family: "seravek-web";
}
.ib {
  display: inline-block;
}
.yellow01 {
  color: #ff9501;
}
.blue01 {
  color: #0c43b7;
}
.red01 {
  color: #cc0033;
}
.red02 {
  color: #f44143;
}
.grey01 {
  color: #f8f8fe;
}
.h2-top {
  width: fit-content;
  padding: 5px 10px;
}
.h2-top.jp {
  font-size: 14px;
  font-weight: bold;
  margin-bottom: 1em;
  padding: 5px 10px;
}
.h2-top.en {
  font-size: 50px;
  font-weight: 800;
  padding: 0 10px;
}
@media (max-width: 560px) {
  .h2-top.en {
    font-size: 35px;
    font-weight: 600;
  }
}
.btn {
  position: relative;
  width: fit-content;
  font-size: clamp(14px, 3vw, 15px);
  font-weight: bold;
  background: #000;
  color: #fff;
  border-radius: 50px;
  padding: 0.8em 3.5em 0.8em 1.5em;
  margin: 0 auto;
}
.arrow {
  position: absolute;
  right: 1em;
  display: inline-block;
  text-align: right;
  width: 1em;
}
@media (max-width: 700px) {
  .btn {
    padding: 1em 3em 1em 1.5em;
  }
}
/*---------------
header
----------------*/
header {
  position: fixed;
  background: #f8f8fe;
  right: 50%;
  left: 50%;
  transform: translateX(-50%);
  border-radius: 0 0 10px 10px;
  border-width: 0px 3px 3px 3px;
  border-style: solid;
  border-color: #000000;
  width: 95%;
  max-width: 1000px;
  height: 58px;
  z-index: 1000;
}

#header-nav {
  display: flex;
  justify-content: space-between;
  position: absolute;
  top: 50%;
  width: 100%;
  transform: translateY(-50%);
  padding: 0 2%;
}
.header-logo-wrap {
  display: flex;
  align-self: center;
}
#header-logo {
  width: 180px;
  height: auto;
  align-self: center;
  z-index: 1000;
}
.header-right {
  display: flex;
}
.menu-button-container {
  order: 2;
}
.header-btn-outer {
  z-index: 1000;
  order: 1;
  margin: 0 1em;
  align-content: center;
  height: 100%;
}
#header-list {
  display: flex;
  align-items: center;
}
.menu-inner {
  display: flex;
}
#header-list li {
  font-size: 12px;
  font-weight: bold;
  padding: 0 1em;
  line-height: 1.2;
  overflow: hidden;
  margin: 0.5em 0;
}
.header-btn {
  font-weight: bold;
  background: #000;
  color: #fff;
  border-radius: 50px;
  padding: 0.7em 1.5em;
  line-height: 1;
}
.header-btn:hover {
  background: linear-gradient(
    90deg,
    #15a5ee 3.25%,
    #ffd919 51.62%,
    #f44143 100%
  );
}
.hover-menu-wrap {
  position: relative;
}
.hover-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  height: 100%;
  background: #f8f8fe;
  border-radius: 10px;
  border: 2px solid #000000;
  padding: 0.5em;
  width: 100%;
  display: none;
  opacity: 0;
  text-wrap: nowrap;
  transform: translateX(-50%);
  text-align: center;
}
.hover-menu-wrap:hover .hover-menu {
  display: inline-table;
  transition: opacity 0.3s, display 0.3s allow-discrete;
  opacity: 1;
  @starting-style {
    opacity: 0;
  }
}
@media screen and (max-width: 700px) {
  /*ハンバーガーメニュー有りの時*/
  header {
    height: 45px;
  }
  #header-nav {
    padding: 0 20px;
  }
  .header-btn-outer {
    margin-right: 0.5em;
  }
  .header-btn {
    padding: 0.8em 1em;
  }
}
@media (max-width: 1000px) {
  /*ハンバーガーメニュー有りの時*/
  .hover-menu {
    display: block;
    position: unset;
    border: none;
    transform: unset;
    text-align: left;
    opacity: 1;
    padding: 0;
  }
}
@media screen and (max-width: 1050px) {
  #header-logo {
    width: 141px;
  }
}
@media screen and (max-width: 360px) {
  #header-logo {
    width: 121px;
  }
}
@media (min-width: 1000px) {
  /*お問い合わせの↓*/
  #header-list .arrow-down {
    position: relative;
    padding-right: 1.5em;
  }
  .arrow-down::after {
    content: "";
    position: absolute;
    top: 40%;
    right: 0.2em;
    width: 0.7em;
    height: 0.7em;
    border-right: 2px solid #333;
    border-bottom: 2px solid #333;
    transform: translateY(-50%) rotate(45deg);
  }
}
/*----現在ページに色をつける----*/
#header-list .active-menu {
  text-shadow: 0 0 0 #909090, 0 1.5em 0 #909090;
}
/*---------------
ホバーで回転
----------------*/
@media (hover: hover) and (pointer: fine) {
  a.rotate {
    overflow: hidden; /* 1つ目の影を隠す */
    color: transparent; /* テキスト本体は透明にする */
    text-shadow: 0 -1.5em 0 #000, 0 0 0 #000;
    transition: text-shadow 0.3s;
    line-height: 1;
  }
  .rotate:hover {
    text-shadow: 0 0 0 #000, 0 1.5em 0 #000; /* 2つの影の位置を上方向に1.5emずつずらす */
  }
  .rotate2 {
    overflow: hidden; /* 1つ目の影を隠す */
    color: transparent !important; /* テキスト本体は透明にする */
    text-shadow: 0 -2.5em 0 #fff, 0 0 0 #fff;
    transition: text-shadow 0.2s;
    line-height: 1;
  }
  .jobs-btn:hover .rotate2,
  .rotate2:hover {
    text-shadow: 0 0 0 #fff, 0 2em 0 #fff; /* 2つの影の位置を上方向に1.5emずつずらす */
  }
  .service-flexbox2-wrap:hover .rotate2 {
    text-shadow: 0 0 0 #fff, 0 2em 0 #fff;
  }
  .rotate-arrow {
    display: inline-block;
    width: 24px;
    height: 24px;
    transition: transform 0.3s ease;
  }
}
/* ホバーで右に転がるように */
.jobs-btn:hover .btn-3d-flip-box-face--front2,
.company-btn:hover .btn-3d-flip-box-face--front2 {
  -webkit-transform: translateX(50%) rotateY(90deg);
  transform: translateX(50%) rotateY(90deg);
}
.jobs-btn:hover .btn-3d-flip-box-face--back2,
.company-btn:hover .btn-3d-flip-box-face--back2 {
  -webkit-transform: translateX(42%) rotateY(0deg);
  transform: translateX(42%) rotateY(0deg);
}

.btn-3d-flip-box-face {
  display: block;
  position: relative;
  width: 100%;
  padding: 1.5rem 0;
  -webkit-transition: all 0.2s;
  transition: all 0.2s;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.btn-3d-flip-box-face--back2 {
  position: absolute;
  top: 0;
  left: 0;
  -webkit-transform: translateX(-1px) rotateY(90deg);
  transform: translateX(-1px) rotateY(90deg);
  -webkit-transform-origin: 0 0;
  transform-origin: 0 0;
}
/*---------------
フェードイン
----------------*/
.feed-in-up {
  transform: translate(0, 30%);
  opacity: 0;
  transition: all 0.5s ease-in-out;
}
.feed-in-up.is-animated {
  transform: translate(0, 0);
  opacity: 1;
}
/*---------------
左から右に伸びて出現
----------------*/
.anime-to-right-outer {
  position: relative;
  overflow: hidden;
  z-index: 1;
}
.p-obi {
  padding: 0.5em;
}
.anime-to-right {
  transform: translate(-100%, 0);
  transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 0.5s;
}

.anime-to-right.is-animated,
.anime-to-right.is-animated .anime-to-right-content {
  transform: translate(0, 0);
}
.anime-to-right.just {
  animation: anime-to-right-just 0.5s forwards;
}
@keyframes anime-to-right-just {
  0% {
    transform: translate(-100%, 0);
  }
  100% {
    transform: translate(0, 0);
  }
}
/*---------------
回転する文字
----------------*/
.img-rotate-text {
  height: auto;
  width: 100%;
  animation: rotate 15s linear infinite;
}

@keyframes rotate {
  0% {
    transform: rotate(0);
  }
  100% {
    transform: rotate(360deg);
  }
}
/*---------------
hamburger-menu
----------------*/

#menu-toggle {
  display: none;
}
.menu-hr.sp {
  display: none;
}
.menu-btn.sp {
  display: none;
}
@media (max-width: 1000px) {
  #header-list a.rotate {
    text-shadow: unset;
    color: #000;
  }
  #header-list li {
    padding: 0.5em 1em;
    align-content: center;
  }
  .menu {
    display: flex;
    flex-direction: row;
    list-style-type: none;
    margin: 0;
    padding: 0;
  }
  .menu-inner {
    display: block;
  }
  .menu > li {
    margin: 0 1rem;
    overflow: hidden;
  }

  .menu-button-container {
    display: none;
    width: 30px;
    cursor: pointer;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }
  .menu-button,
  .menu-button::before,
  .menu-button::after {
    display: block;
    background-color: #cc0033;
    position: absolute;
    height: 2px;
    width: 20px;
    transition: transform 400ms cubic-bezier(0.23, 1, 0.32, 1);
    z-index: 1000;
  }

  .menu-button::before {
    content: "";
    margin-top: -7px;
    background: #0c43b7;
  }

  .menu-button::after {
    content: "";
    margin-top: 7px;
    background: #ff9501;
  }

  #menu-toggle:checked + .menu-button-container .menu-button::before {
    margin-top: 0px;
    transform: rotate(405deg);
  }

  #menu-toggle:checked + .menu-button-container .menu-button {
    background: rgba(255, 255, 255, 0);
  }

  #menu-toggle:checked + .menu-button-container .menu-button::after {
    margin-top: 0px;
    transform: rotate(-405deg);
  }
  .menu-button-container {
    display: flex;
  }
  .menu {
    position: absolute;
    top: -100%;
    margin-top: 0px;
    left: 0;
    flex-direction: column;
    width: 100%;
    justify-content: center;
    align-items: center;
    background: #f8f8fe;
  }
  .menu-inner {
    width: 100%;
    border-radius: 0 0 10px 10px;
    border-width: 0px 3px 3px 3px;
    border-style: solid;
    border-color: #000000;
    box-sizing: content-box;
    padding: 2em 0;
  }
  #menu-toggle ~ .menu {
    transform: translateY(-120%);
    top: 90%;
    transition: 0.2s;
  }
  #menu-toggle:checked ~ .menu {
    transform: translateY(0);
    top: 90%;
    transition: 0.5s;
  }
  #menu-toggle ~ .menu li {
    height: 0;
    transition: height 300ms cubic-bezier(0.23, 1, 0.32, 1);
  }
  #menu-toggle:checked ~ .menu li {
    height: 2em;
  }
  .menu > li {
    display: flex;
    justify-content: center;
    width: 100%;
  }
  .menu > li:first-child {
    margin-top: 10px;
  }
  .menu-hr.sp {
    display: block;
    border: solid #000 1px;
    width: 90%;
    margin: 5px auto;
  }
  #header-list li {
    position: relative;
    width: 90%;
    margin: 0 auto;
    font-size: 16px;
  }
  #header-list .hover-menu li {
    font-size: 14px;
  }
  .menu-btn.sp {
    position: absolute;
    display: flex;
    width: 25px;
    right: 5%;
    top: 50%;
    transform: translateY(-50%);
  }
  .hover-menu .menu-btn.sp {
    width: 21px;
  }
}
/*---------------
footer
----------------*/
footer {
  overflow: hidden;
}
.footer-top {
  position: relative;
  background: url(../img/footer_bk.webp);
  background-size: cover;
}
.footer-top::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 100%;
  z-index: -1;
  background: #6f6f6f;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.05),
    rgba(255, 255, 255, 0.05) 2px,
    transparent 2px,
    transparent 35px
  );
}
.footer-top-inner {
  padding: 10% 0 30%;
  width: 90%;
  max-width: 900px;
  margin: 0 auto;
}
.footer-top-flexbox {
  position: relative;
  display: flex;
  justify-content: space-between;
  z-index: 10;
  cursor: pointer;
}
.h2-foot {
  background: #f8f8fe;
  color: #4b4b4b;
  filter: drop-shadow(4px 4px 4px rgba(0, 0, 0, 0.5));
}
.footer-right-arrow {
  aspect-ratio: 1 / 1;
  height: 100%;
  width: 95px;

  filter: drop-shadow(4px 4px 4px rgba(0, 0, 0, 0.5));
}
.footer-top-flexbox .btn2 {
  display: none;
}
.footer-top-flexbox:hover .btn2 {
  display: block;
}
.footer-top-flexbox:hover .btn1 {
  display: none;
}
.footer-top-flexbox:hover .footer-right-arrow {
  transition: all 0.2s ease; /* アニメーション */
  transform: translateY(2px);
  filter: drop-shadow(2px 2px 2px rgba(0, 0, 0, 0.4));
}
.footer-top-flexbox:hover .h2-foot {
  transition: all 0.2s ease; /* アニメーション */
  background: #15a5ee;
  color: #f8f8fe;
  transform: translateY(2px);
  filter: drop-shadow(2px 2px 2px rgba(0, 0, 0, 0.4));
}
.footer-right-arrow svg {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
@media (max-width: 560px) {
  .footer-right-arrow {
    position: absolute;
    top: 50%;
    right: 0;
    margin: 0;
    width: 65px;
    transform: translateY(-50%);
    height: 80%;
  }
  .footer-top-flexbox:hover .footer-right-arrow {
    transform: translateY(-45%);
  }
}

.footer-bottom {
  position: relative;
  background: #eeeef4;
}

.footer-circle {
  position: absolute;
  left: 50%;
  top: -20%;
  width: 300vw;
  transform: translateX(-50%) scale(1);
  z-index: 0;
  margin-top: -40%;
  font-size: 60%;
}

.footer-circle svg {
  overflow: visible;
  width: 100%;
  height: 100%;
}
@media (max-width: 700px) {
  .footer-circle {
    top: -10%;
  }
}

@media (max-width: 600px) {
  .footer-circle {
    top: -5%;
  }
}

.footer-bottom-content {
  position: relative;
  z-index: 2;
  width: 90%;
  max-width: 900px;
  margin: 0 auto;
  padding: 30px 0;
}
.footer-bottom-flexbox {
  display: flex;
  justify-content: space-between;
  gap: 1em;
}
.footer-text {
  font-size: clamp(18px, 5vw, 25px);
  font-weight: bold;
  text-wrap: nowrap;
}
.footer-menu {
  display: flex;
  width: 50%;
  justify-content: end;
  gap: 8%;
  row-gap: 20%;
  font-size: 12px;
  font-weight: bold;
}
.footer-menu-list {
  width: 50%;
}
.footer-menu a {
  width: 100%;
  height: fit-content;
  margin: 0.7em 0;
}
.footer-menu .contact-link1 {
  margin: 0.3em 0;
}
.footer-menu .contact-link2 a {
  margin: 0.3em 0;
  font-size: 10px;
}
.footer-menu-list li {
  display: flex;
}
.footer-arrow {
  display: inline-block;
  width: 10px;
  height: 100%;

  align-self: center;
}
.footer-arrow2 {
  background-image: none;
  color: #fff;
}
.footer-btn {
  background: #000;
  border-radius: 50px;
  padding: 0.3em 1em;
  width: fit-content;
  margin: 0.5em 0 0 auto;
}
.footer-bottom-flexbox2 {
  display: flex;
  justify-content: space-between;
  margin-bottom: 5%;
}
.copyright {
  font-size: 14px;
  text-align: center;
}

.page_top_btn {
  display: flex;
  align-items: end;
}

.page_top_btn:hover {
  opacity: 0.8;
}

.footer-logo.sp {
  display: none;
}
.footer-logo.pc {
  display: block;
  max-width: 300px;
}
@media (max-width: 700px) {
  .footer-bottom-flexbox {
    display: block;
  }
  .footer-text {
    text-align: center;
    padding-bottom: 10px;
  }

  .footer-menu {
    margin: 0 auto;
    width: 100%;
    max-width: 500px;
  }
  .footer-bottom-flexbox2 {
    display: block;
  }
  .page_top_btn {
    justify-content: end;
  }
  .footer-logo.pc {
    display: none;
  }
  .footer-logo.sp {
    display: block;
    margin: 0 auto;
    padding-bottom: 10px;
    width: 100%;
    max-width: 400px;
  }
}

/*---------------
幕があがるアニメ
----------------*/

.shutter {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100vh;
  background: #ebebf2;
  animation: 1s shutter ease-in-out forwards;
  animation-delay: 1s;
  z-index: 100000;
}

@keyframes shutter {
  0% {
    transform: translate(0, 0);
  }

  100% {
    transform: translate(0, -100%);
  }
}
.shutter-logo {
  position: absolute;
  width: 20%;
  min-width: 250px;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) scale(1);
  animation: 1s shutter-logo ease-in-out forwards;
  transform-origin: center;
  animation-delay: 0.5s;
  padding-right: 1em;
}
@keyframes shutter-logo {
  0% {
    transform: translate(-50%, -50%) scale(1);
  }

  100% {
    transform: translate(-50%, -50%) scale(1.3);
  }
}

/*---------------
main
----------------*/
#main-visual {
  position: relative;
  width: 100%;
  height: 100%;
  aspect-ratio: 1.54/1;
  overflow: hidden;
}

.main-visual-bk {
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: -1;
  opacity: 0;
  animation: anime-main 12s infinite;
}

.main-visual-bk.bk1 {
  background: url(../img/mv1.webp);
  background-size: cover;
  background-position: center;
  animation-delay: 0s;
}
.main-visual-bk.bk2 {
  background: url(../img/mv2.webp);
  background-size: cover;
  background-position: center;
  animation-delay: 4s;
}
.main-visual-bk.bk3 {
  background: url(../img/mv3.webp);
  background-size: cover;
  background-position: center;
  animation-delay: 8s;
}

@keyframes anime-main {
  0% {
    opacity: 0;
  }
  5% {
    opacity: 1;
  } /* フェードイン */
  33% {
    opacity: 1;
  } /* しっかり表示 */
  38% {
    opacity: 0;
  } /* 素早くフェードアウト */
  100% {
    opacity: 0;
  }
}
@media (max-width: 900px) {
  #main-visual {
    height: 100vh;
  }
  .main-visual-bk.bk1 {
    background: url(../img/sp_mv1.webp);
    background-size: cover;
    background-position: center;
  }
  .main-visual-bk.bk2 {
    background: url(../img/sp_mv2.webp);
    background-size: cover;
    background-position: center;
  }
  .main-visual-bk.bk3 {
    background: url(../img/sp_mv3.webp);
    background-size: cover;
    background-position: center;
  }
}
.main-visual-text {
  transform: translate(-100%, 75%);
}
.main-visual-text.text1 {
  position: absolute;
  width: 309px;
  bottom: calc(10vw + 210px);
  animation: 0.5s mv-text ease-in-out forwards;
  animation-delay: 2s;
}

.main-visual-text.text2 {
  position: absolute;
  width: 549px;
  bottom: calc(10vw + 103px);
  animation: 0.5s mv-text ease-in-out forwards;
  animation-delay: 2.5s;
}
.main-visual-text.text3 {
  position: absolute;
  width: 429px;
  bottom: 10vw;
  animation: 0.5s mv-text ease-in-out forwards;
  animation-delay: 3s;
}
@keyframes mv-text {
  0% {
    transform: translate(-100%, 75%);
  }

  100% {
    transform: translate(0, 0);
  }
}
@media (max-width: 1500px) {
  .main-visual-text.text1 {
    width: 309px;
    bottom: calc(1vw + 210px);
  }

  .main-visual-text.text2 {
    position: absolute;
    width: 549px;
    bottom: calc(1vw + 100px);
  }
  .main-visual-text.text3 {
    position: absolute;
    width: 429px;
    bottom: 1vw;
  }
}
@media (max-width: 700px) {
  .main-visual-text {
    font-size: 26px;
  }
  .main-visual-text.text1 {
    width: 206px;
    bottom: 230px;
  }

  .main-visual-text.text2 {
    width: 361px;
    bottom: 163px;
  }
  .main-visual-text.text3 {
    width: 283px;
    bottom: 100px;
  }
}
/*---------------
main-bottom
----------------*/
#main-bottom {
  background: url(../img/main-bottom-bk.webp);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: bottom;
}
.main-bottom-text-box {
  width: fit-content;
  font-size: clamp(23px, 5vw, 35px);
  font-weight: bold;
  margin: 0 auto;
  padding: 15vw 2.5% 30vw;
  transition: 1s;
}
.main-bottom-text {
  overflow: hidden;
}
.main-bottom-text-inner {
  display: block;
  transform: translateY(100%);
  transition: 0.5s;
}
.main-bottom-text-inner.is-animated {
  transform: translateY(0);
}
@media (max-width: 700px) {
  #main-bottom {
    background: url(../img/sp_main-bottom-bk.webp);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: bottom;
  }
  .main-bottom-text-box {
    padding-bottom: 75vw;
  }
}
/*---------------
THREE RINGSが流れるアニメーション
----------------*/
.loop-container {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  overflow: hidden;
}
.loop-wrapper {
  display: flex;
  animation: loop-text 20s linear infinite;
}
.loop-content {
  display: inline-block;
  font-size: clamp(40px, 8vw, 80px);
  font-weight: 900;
  white-space: nowrap;
  line-height: 1;
}
.loop-content span {
  vertical-align: text-bottom;
  line-height: 0.6;
}
@keyframes loop-text {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(-50%);
  }
}
.grad-red {
  background: linear-gradient(
    90deg,
    #f44143 -2.75%,
    #d7272d 60.13%,
    #c61720 97.39%
  );
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.grad-blue {
  background: linear-gradient(270deg, #0c43b7 -4.2%, #15a5ee 95.65%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.grad-yellow {
  background: linear-gradient(90deg, #ffd919 -6.95%, #ff9501 99.25%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
/*---------------
service
----------------*/
#service {
  position: relative;
  background: url(../img/service-bk.webp);
  background-size: cover;
  padding: 10% 0;
  overflow: hidden;
}
.service-wrap {
  width: 90%;
  max-width: 1000px;
  margin: 0 auto;
  border: 3px solid #000;
  border-radius: 20px;
  background: #f8f8fe;
  padding: 5% 5% 20%;
}
.h2-service.en {
  padding-left: 0;
}
.h2-service.jp {
  margin-bottom: 0;
  padding-left: 0;
}
@media (max-width: 700px) {
  #service {
    padding: 20% 0 10%;
  }
  .h2-service.en {
    font-size: 40px;
  }
  .service-wrap {
    padding-bottom: 30%;
    border-radius: 15px;
  }
}
.service-text {
  font-size: clamp(22px, 3.5vw, 35px);
  font-weight: bold;
  margin: 5vw 0 20vw;
}
@media (max-width: 370px) {
  .service-text {
    font-size: 20px;
  }
}
.service-img {
  position: absolute;
  border: 3px solid #000000;
  box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.25);
  border-radius: 20px;
  transform: translate(100%, 0);
  transition: ease-in-out 0.3s;
}
.service-img.is-animated {
  transform: translate(0, 0);
}
.service-img.img1 {
  width: 45%;
  top: 9%;
  right: -5%;
}
.service-img.img2 {
  width: 19%;
  top: 40vw;
  left: 55%;
}
.service-img.img3 {
  width: 18%;
  top: 38vw;
  left: 77%;
}
@media (max-width: 960px) {
  .service-img.img3 {
    display: none;
  }
}
@media (max-width: 700px) {
  .service-text {
    margin-bottom: 5vw;
  }
  .service-box {
    position: relative;
    width: 100%;
    height: auto;
    aspect-ratio: 3/4;
  }
  .service-img {
    border-radius: 15px;
  }
  .service-img.img1 {
    width: 83%;
    top: 20%;
    right: -20%;
    z-index: 2;
  }
  .service-img.img2 {
    width: 45%;
    top: 0;
    left: 8%;
    z-index: 1;
  }
  .service-img.img3 {
    display: block;
    width: 35%;
    top: 50%;
    left: 18%;
    z-index: 3;
  }
}

.service-inner-wrap {
  width: 90%;
  margin: 0 auto;
}
@media (max-width: 700px) {
  .service-inner-wrap {
    width: 100%;
  }
}
.h3-top {
  display: flex;
  align-items: end;
  position: relative;
  width: fit-content;
  line-height: 1.3;
  font-size: clamp(28px, 3vw, 35px);
  font-weight: bold;
  height: 100%;
  color: #fff;
  padding: 0 0.5em 0.5em 0.2em;
  z-index: 1;
  background: linear-gradient(
    90deg,
    #15a5ee 3.25%,
    #ffd919 51.62%,
    #f44143 100%
  );
  text-wrap: nowrap;
}
.avenir.h3-top {
  padding: 0 0.5em 0.2em 0.2em;
}
.grad-bk {
  position: absolute;
  content: "";
  left: -4px;
  top: -4px;
  width: 100%;
  height: 100%;
  background: #000;
  z-index: -1;
}

.service-flexbox {
  display: flex;
  gap: 4%;
  margin: 10% 0 20%;
}

.service-flexbox-left {
  width: 50%;
}
.service-circle-outer {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 1/1;
}
.service-flexbox-right {
  width: 46%;
  align-content: center;
}
.grad-circle {
  position: absolute;
  width: 55%;
}
.grad-circle.yellow {
  left: 0;
}
.grad-circle.blue {
  right: 0;
}
.grad-circle.red {
  left: 50%;
  bottom: 5%;
  transform: translateX(-50%);
}
.grad-circle-inner {
  position: relative;
  aspect-ratio: 1/1;
  border-radius: 50%;
  text-align: center;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  align-content: center;
  mix-blend-mode: multiply;
  z-index: 1;
}
.yellow .grad-circle-inner {
  background: linear-gradient(90deg, #ffd919 -6.95%, #ff9501 99.25%);
}
.blue .grad-circle-inner {
  background: linear-gradient(270deg, #0c43b7 -4.2%, #15a5ee 95.65%);
}
.red .grad-circle-inner {
  background: linear-gradient(
    90deg,
    #f44143 -2.75%,
    #d7272d 60.13%,
    #c61720 97.39%
  );
}
.grad-circle-inner::before {
  position: absolute;
  content: "";
  left: 50%;
  bottom: -42%;
  width: 92%;
  height: auto;
  aspect-ratio: 1/1;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: #fff;
  z-index: -1;
}
.circle-text {
  width: 100%;
  text-align: center;
}
.circle-text.text1 {
  font-size: clamp(12px, 3vw, 13px);
  font-weight: 900;
}
.circle-text.text2 {
  font-size: clamp(32px, 5vw, 46px);
  font-weight: bold;
}
@media (max-width: 700px) {
  .service-flexbox {
    display: block;
  }
  .service-flexbox-left,
  .service-flexbox-right {
    width: 100%;
  }
}
.h4-top {
  font-weight: bold;
  font-size: clamp(18px, 3vw, 20px);
  margin-bottom: 1em;
}
.h4-top p {
  width: fit-content;
  color: #f8f8fe;
  background: #ff9501;
  padding: 0.3em 0.5em;
  margin-bottom: 0.3em;
}
.service-textbox {
  font-size: 14px;
  font-weight: 500;
  line-height: 179%;
  margin-bottom: 1em;
}
@media (max-width: 700px) {
  .h4-top p {
    margin: 0 auto 0.3em;
  }
  .service-textbox {
    text-align: center;
  }
}
.service-textbox br.pc {
  display: block;
}
.service-textbox br.sp {
  display: none;
}
@media (max-width: 700px) {
  .service-textbox br.pc {
    display: none;
  }
  .service-textbox br.sp {
    display: block;
  }
}
/*Three ringsの開発*/
.service-flexbox2 {
  display: flex;
  gap: 5%;
  margin-top: 15%;
}
.service-flexbox2-left {
  width: 35%;
}
.service-left-img {
  border-radius: 50%;
  border: solid 3px #ff9501;
  transition: 0.1s ease-in-out;
}
.service-flexbox2-wrap {
  position: relative;
  z-index: 1;
}
.service-flexbox2-wrap:hover .service-left-img {
  border: solid 10px #ff9501;
}
.service-flexbox2-right {
  width: 60%;
  align-content: center;
}

#service .btn {
  margin-right: 0;
}
@media (max-width: 700px) {
  .service-flexbox2 {
    display: block;
  }
  .service-flexbox2-left {
    width: 70%;
    margin: 0 auto 5%;
  }

  .service-flexbox2-right {
    width: 100%;
  }
  .service-flexbox2-wrap {
    margin-bottom: 10%;
  }
  #service .btn {
    margin-right: auto;
  }
}
/*できないをできる”に変える技術力がThree Ringsにはあります。*/
.frame {
  position: relative;
  margin: -30% 0;
}
.frame img {
  position: relative;
  z-index: 10;
}
.frame-inner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: #f8f8fe;
  width: 100%;
  height: 90%;
  border-radius: 50% 50% 50% 30%;
  z-index: 3;
}
.frame-text {
  position: absolute;
  font-size: clamp(30px, 3vw, 35px);
  font-weight: bold;
  width: 90%;
  top: 50%;
  left: 50%;
  text-align: center;
  transform: translate(-50%, 20%);
  opacity: 0;
  transition: all 0.5s ease-in-out;
}
.frame-text.is-animated {
  transform: translate(-50%, -50%);
  opacity: 1;
}
.frame .pc {
  display: block;
}
.frame .sp {
  display: none;
}
@media (max-width: 650px) {
  .frame {
    margin: -45% 0 -50%;
  }
  .frame .pc {
    display: none;
  }
  .frame .sp {
    display: block;
  }
  .frame-inner {
    height: 85%;
    border-radius: 20% 50% 28% 30%;
  }
}
/*開発実績*/
#work {
  position: relative;
  padding-top: 30%;
  background: #15a5ee;
}
.work-wrap {
  position: relative;
  width: 90%;
  max-width: 1000px;
  margin: -20% auto 0;
  border-right: 3px solid #000;
  border-left: 3px solid #000;
  background: #f8f8fe;
  padding: 25% 5% 10%;
  z-index: 1;
}
#work .h2-top {
  color: #fff;
  background: #15a5ee;
}
@media (max-width: 650px) {
  .work-wrap {
    padding-top: 30%;
  }
}
.work-flexbox {
  display: flex;
  gap: 4%;
  margin: 15% 0;
}
.work-flex-item {
  position: relative;
  z-index: 1;
  width: 30%;
}
.work-img-wrap {
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 1/1;
  border: 2px solid #000;
  border-radius: 10px;
  background: #eeeef4;
}
.work-flex-item:hover .work-img-wrap {
  border: 15px #15a5ee solid;
  transition: 0.2s;
}
.work-img {
  position: absolute;

  padding: 5%;
}
.work-flex-item:hover .work-img {
  scale: 1.4;
  transform-origin: center center;
  transition: 0.2s;
}
.work-title {
  position: relative;
  display: flex;
  align-items: center;
  font-weight: bold;
  font-size: clamp(12px, 2vw, 20px);
  width: 80%;
  margin: 1em 0;
  line-height: 128%;
  height: calc(1.28 * 3em);
}
.plus-btn {
  position: absolute;
  width: 29px;
  right: -25%;
  top: 50%;
  transform: translateY(-50%);
  display: inline-block;
}
.work-hr {
  border: 1px solid #000;
}
#work .btn {
  font-size: clamp(14px, 3vw, 25px);
}
.game {
  position: absolute;
  bottom: 15px;
  right: 2%;
  width: 10vw;
  transform: translate(0, 100%);
  transition: all ease-in-out 0.5s;
}
.game.is-animated {
  transform: translate(0, 0);
}
#work .rotate-text {
  position: absolute;
  top: 40%;
  left: 0;
  width: 25%;
}

@media (max-width: 1350px) {
  .game {
    display: none;
  }
}
@media (max-width: 700px) {
  .work-flexbox {
    display: block;
  }
  .work-flex-item {
    text-align: center;
    width: 100%;
  }
  .work-img {
    position: relative;
  }
  .work-img-wrap {
    width: 80%;
    text-align: center;
    margin: 0 auto;
  }
  .work-title {
    width: 80%;
    margin: 0.5em auto 2em;
    text-align: left;
    font-size: clamp(12px, 3vw, 20px);
  }
  .plus-btn {
    right: 0;
    width: 30px;
  }
  .work-hr {
    display: none;
  }
  #work .rotate-text {
    display: none;
  }
}
/*Three Ringsで働く仲間たち*/
#party {
  position: relative;
  background: #f44143;
  border-top: 3px solid #000;
}
.party-wrap {
  width: 90%;
  max-width: 1000px;
  margin: -6px auto 0;
  border-right: 3px solid #000;
  border-left: 3px solid #000;
  background: #f8f8fe;
  padding: 10% 5%;
}
#party a {
  position: relative;
  z-index: 1;
}
#party .h2-top {
  color: #fff;
  background: #f44143;
}
.party-text {
  font-size: clamp(22px, 3.5vw, 35px);
  font-weight: bold;
  margin: 5vw 0;
}
.party-flexbox {
  display: flex;
  gap: 4%;
  margin: 10vw 0 5vw;
}
.party-flex-item {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-content: end;
  width: 100%;
  height: 100%;
  aspect-ratio: 1/1;
  border-radius: 10px;
  border: 3px #000 solid;
  padding: 0.5em 0;
  background: #fff;
}
.party-flex-item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(../img/party-bk1.webp);
  background-size: contain;
  z-index: 1;
  opacity: 0;
}
.party-flex-item::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(../img/party-bk2.webp);
  background-size: contain;
  z-index: 3;
  opacity: 0;
}
.party-flex-item:hover::before,
.party-flex-item:hover::after {
  opacity: 1;
}
.party-flex-item:hover .party-img {
  scale: 1.1;
  transform-origin: bottom;
  transition: 0.1s ease-in-out;
}
.party-img {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}

.serious,
.skill {
  position: relative;
  font-size: 14px;
  font-weight: bold;
  background: #0c43b7;
  color: #f8f8fe;
  padding: 0.2em 1em;
  width: fit-content;
  z-index: 5;
}
.serious {
  border-top: #000 solid 3px;
  border-right: #000 solid 3px;
}
.skill {
  border-top: #000 solid 3px;
  border-right: #000 solid 3px;
  border-bottom: #000 solid 3px;
}
.serious span,
.skill span {
  font-size: 18px;
}
#party .btn {
  display: block;
  font-size: clamp(14px, 3vw, 25px);
}

@media (max-width: 850px) {
  .party-flexbox {
    display: block;
  }
  .party-flex-item {
    width: 90%;
    max-width: 400px;
    margin: 0 auto 10%;
  }
}

#party .sword {
  position: absolute;
  bottom: 0;
  left: 2%;
  width: 10vw;
  transform: translate(0, 100%);
  transition: all ease-in-out 0.5s;
}
#party .sword.is-animated {
  transform: translate(0, 25%);
}
@media (max-width: 1350px) {
  #party .sword {
    display: none;
  }
}
/*会社情報*/
#company {
  position: relative;
  background: #ffd919;
  border-top: 3px solid #000;
  padding-bottom: 10%;

  overflow: hidden;
}
.company-wrap {
  position: relative;
  width: 90%;
  max-width: 1000px;
  margin: -6px auto 0;
  border-right: 3px solid #000;
  border-left: 3px solid #000;
  border-bottom: 3px solid #000;
  border-radius: 0 0 20px 20px;
  background: #f8f8fe;
  padding: 10% 5%;
  z-index: 2;
}
#company .h2-top {
  background: #ffd919;
}
.company-btn-wrap {
  display: block;
  max-width: 400px;
  margin: 0 auto;
}

.company-btn {
  position: relative;
  width: 100%;
  padding: 1em 3em;
  margin: 3em auto;
  z-index: 10;
}
.company-btn .rotate2 {
  line-height: 1.5;
}
.btn-bk {
  text-align: center;
  aspect-ratio: 1/1;
  border-radius: 10px;
  align-content: center;
}
.btn-bk img {
  width: 60%;
  margin: 0 auto;
}
.btn-bk.yellow {
  background: #ffd919;
}
.btn-bk.red {
  background: #cc0033;
}
.btn-bk.blue {
  background: #15a5ee;
}
.btn-bk.grey {
  background: #f8f8fe;
}
.company-btn .jp {
  font-size: 14px;
}
.company-btn .en {
  font-size: clamp(30px, 3vw, 35px);
  font-weight: 900;
}
.company-btn span {
  position: absolute;
  display: inline-block;
  right: 10%;
  width: 50px;
  top: 50%;
  transform: translateY(-50%);
}
#company .rotate-text {
  position: absolute;
  bottom: 2%;
  right: 5%;
  width: 30%;
  max-width: 370px;
}
@media (max-width: 700px) {
  #company {
    padding-bottom: 100px;
  }
  #company .rotate-text {
    right: -10%;
    width: 40%;
  }
}
@media (max-width: 380px) {
  .company-btn {
    padding: 1em 2em;
  }
  .company-btn span {
    width: 40px;
  }
}
/*スクロールで画像を切り替える*/
#sticky {
  background: #ffd919;
  border-bottom: 3px solid #000;
}
.sticky-img {
  position: sticky;
  top: 10%;
  left: 50%;
  width: 100%;
  height: auto;
  line-height: 0;
  border-top: 3px solid #000;
  z-index: 1;
}
.sticky-img img {
  height: 100%;
}
@media (max-width: 700px) {
  #sticky {
    overflow: hidden;
  }
  .slider {
    display: flex;
    width: 100%; /* スライド数 × 100% */
    animation: slide 9s infinite; /* 9秒でループ */
  }
  .slide {
    width: 100%;
    flex-shrink: 0;
  }
  @keyframes slide {
    0%,
    30% {
      transform: translateX(0);
    }
    33%,
    63% {
      transform: translateX(-100%);
    }
    66%,
    96% {
      transform: translateX(-200%);
    }
    100% {
      transform: translateX(0);
    }
  }
}
/*---------------
子ページ
philosophy
----------------*/
#c-philosophy h1 {
  color: #f8f8fe;
}
.red-bk {
  background: #cc0033;
}
#c-philosophy .stripe {
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 35px
  );
}

.h3-top .small {
  font-size: clamp(14px, 3vw, 20px);
  padding-bottom: 0.2em;
}
.h3-top .sp {
  display: none;
}
@media (max-width: 600px) {
  .h3-top.line2 {
    display: block;
    text-wrap: wrap;
  }
  .h3-top .sp {
    display: block;
  }
}
/*core mind*/
#core-mind {
  position: relative;
  padding: 6vw 0;
  background: #f6f6ff;
  overflow: hidden;
  border-bottom: 3px solid #000000;
}
.philosophy-wrap {
  width: 90%;
  max-width: 700px;
  margin: 0 auto;
}
#core-mind .c-philosophy-border-box {
  background: #cc0033;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 35px
  );
}
.c-philosophy-border-box {
  position: relative;
  border: solid 3px #000;
  border-radius: 10px;
  padding: 6%;
  background: #f8f8fe;
  margin-top: 5%;
  z-index: 1;
}
h4.philosophy {
  font-weight: bold;
  font-size: clamp(24px, 4vw, 35px);
  margin-bottom: 5%;
  line-height: 171%;
}
.philosophy-flexbox {
  display: flex;
  justify-content: space-between;
}
.philosophy-left {
  line-height: 179%;
  font-weight: bold;
}
.philosophy-right {
  align-content: end;
}
.philosophy-right img {
  width: 100%;
  transform: scale(0);
  transform-origin: right bottom;
  transition: 0.3s;
}
.philosophy-right img.is-animated {
  transform: scale(1);
}
#core-mind .philosophy-right img {
  max-width: 170px;
}

#mission .philosophy-right img {
  max-width: 330px;
}
#vision .philosophy-right img {
  max-width: 215px;
}
@media (max-width: 600px) {
  #core-mind {
    padding: 50px 0;
  }
  .philosophy-flexbox {
    display: block;
  }
  .c-philosophy-border-box {
    padding: 50px 20px 35px;
  }
  .philosophy-left {
    width: 100%;
  }
  .philosophy-right {
    text-align: center;
    padding-top: 10%;
  }
  .philosophy-right img {
    width: 50%;
  }
  #mission .philosophy-right img {
    width: 80%;
  }
}
.deco-bk {
  position: absolute;
  top: -1vw;
  font-size: clamp(50px, 10vw, 128px);
  font-weight: 900;
  writing-mode: vertical-rl;
  text-wrap: nowrap;
  line-height: 1;
  overflow: hidden;
  z-index: 0;
}

#core-mind .deco-bk {
  right: -1.5vw;
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke: 1px #cc0033;
}
@media (max-width: 600px) {
  #core-mind .deco-bk {
    right: unset;
    left: -1.5vw;
  }
}
/*mission*/
#mission {
  position: relative;
  padding: 6vw 0;
  background: #cc0033;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 35px
  );
  overflow: hidden;
  border-bottom: 3px solid #000000;
}
#mission .deco-bk {
  left: -1.5vw;
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke: 1px #eeeef4;
}
@media (max-width: 600px) {
  #mission {
    padding: 50px 0;
  }
  #mission .deco-bk {
    right: -1.5vw;
    left: unset;
  }
}
#mission .c-philosophy-border-box {
  background: #f8f8fe;
}

/*vision*/
#vision {
  position: relative;
  padding: 6vw 0;
  background: #f6f6ff;
  overflow: hidden;
  border-bottom: 3px solid #000000;
}
#vision .deco-bk {
  right: -1.5vw;
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke: 1px #cc0033;
}
@media (max-width: 600px) {
  #vision {
    padding: 50px 0;
  }
  #vision .deco-bk {
    right: unset;
    left: -1.5vw;
  }
}
#vision .c-philosophy-border-box {
  background: #cc0033;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 35px
  );
}
/*value*/
#value {
  position: relative;
  padding: 6vw 0;
  background: #cc0033;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 35px
  );
  border-bottom: 3px solid #000000;
  overflow: hidden;
}
.value-title {
  font-weight: bold;
  font-size: clamp(28px, 5vw, 35px);
  margin: 1em 0 2em;
}
.value-flexbox {
  position: relative;
  display: flex;
  gap: 2%;
  row-gap: 1.5vw;
  flex-wrap: wrap;
  max-width: 1000px;
  width: 90%;
  margin: 0 auto;
  z-index: 1;
}
.value-flex-item {
  width: 32%;
}
.value-flex-item .text1 {
  background: #cc0033;
  font-size: clamp(22px, 3vw, 25px);
  font-weight: bold;
  padding: 0.5em;
  border: 3px solid #f8f8fe;
  border-radius: 10px 10px 0 0;
}
.value-flex-item .text2 {
  background: #f8f8fe;
  line-height: 183%;
  font-size: clamp(12px, 3vw, 14px);
  min-height: calc(2.6 * 3em);
  padding: 1em;
  border-radius: 0 0 10px 10px;
}
@media (max-width: 950px) {
  .value-flex-item {
    width: 49%;
    margin-bottom: 1%;
  }
}
@media (max-width: 600px) {
  #value {
    padding: 50px 0;
  }
  .value-title {
    margin: 20px 0;
  }
  .value-flexbox {
    display: block;
  }
  .value-flex-item {
    width: 100%;
    margin-bottom: 5%;
  }
  .value-flex-item .text2 {
    min-height: unset;
  }
}
#value .deco-bk {
  left: -1.5vw;
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke: 1px #f8f8fe;
}
@media (max-width: 600px) {
  #value .deco-bk {
    right: -1.5vw;
    left: unset;
  }
}
/*vision-map*/
#vision-map {
  position: relative;
  padding: 6vw 0;
  background: #f6f6ff;
  overflow: hidden;
  margin-bottom: 500px;
}
#vision-map .deco-bk {
  right: -1.5vw;
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke: 1px #cc0033;
}
@media (max-width: 600px) {
  #vision-map .deco-bk {
    right: unset;
    left: -1.5vw;
  }
  #vision-map {
    padding: 40px 0 0 0;
  }
}
.vision-map {
  position: relative;
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
  margin-top: 5%;
  z-index: 1;
}
/*message*/
#message {
  padding: 6vw 0 0;
  background: #cc0033;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 35px
  );
}
.file2 {
  position: relative;
  border-top: 3px solid #000000;
  overflow-x: clip;
  margin-top: -5%;
}
.file2::before {
  content: "";
  position: absolute;
  top: -425px;
  right: 23px;
  width: 100%;
  height: 425px;
  background: #cc0033;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 35px
  );
  border-right: 3px solid #000000;
  border-top: 3px solid #000000;
  border-radius: 0 20px 0 0;
}

.message-wrap {
  position: relative;
  width: 90%;
  max-width: 700px;
  margin: -425px auto 0;
}
.h2-message .jp {
  font-size: 14px;
  font-weight: bold;
}
.h2-message .en {
  font-size: 50px;
}
.message-flexbox {
  display: flex;
  gap: 5%;
  margin: 5% 0 30%;
}
.message-left {
  position: relative;
  width: 30%;
}
.message-left .border {
  border-radius: 20px;
  border: solid 2px #000;
}
.message-right {
  width: 60%;
  max-width: 380px;
  font-size: clamp(14px, 3vw, 18px);
  font-weight: bold;
  line-height: 200%;
}
#message .rotate-text {
  position: absolute;
  width: 200px;
  top: 180px;
  left: -100px;
}
#message .file3 {
  width: unset;
}
@media (max-width: 600px) {
  #message {
    padding-top: 50px;
  }
  .message-flexbox {
    display: block;
  }
  .message-left {
    width: 60%;
    margin: 0 auto;
  }
  .message-right {
    width: 90%;
    margin: 15vw auto 0;
  }
  #message .rotate-text {
    position: absolute;
    width: 140px;
    top: unset;
    bottom: -40px;
    left: -70px;
  }
}
.file3 {
  position: relative;
  width: 90%;
  margin-left: 5%;
  border-left: 3px solid #000000;
  border-top: 3px solid #000000;
  border-radius: 20px 0 0 0;
  overflow-x: clip;
  padding: 3% 0;
  z-index: 1;
}
#message .company-btn {
  width: 90%;
}
#message .sword-wrap {
  position: relative;
}
#message .sword {
  position: absolute;
  top: 0;
  right: 2%;
  width: 10vw;
  transform: scale(-1, 1);
  transition: all ease-in-out 0.5s;
  z-index: 0;
}
#message .sword.is-animated {
  transform: scale(-1, 1) translateY(-75%);
}
@media (max-width: 1350px) {
  #message .sword {
    right: 5%;
    width: 15vw;
  }
}
/*---------------
子ページ
company
----------------*/
.filter {
  position: relative;
  width: 100%;
  height: 100%;
}
.filter::after {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url(../img/filter.webp);
  mix-blend-mode: color-burn;
  background-size: cover;
}
.h1-bk {
  border-bottom: 3px solid #000000;
}
.yellow-bk {
  background: #ffd919;
}
.stripe {
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.5),
    rgba(255, 255, 255, 0.5) 2px,
    transparent 2px,
    transparent 35px
  );
}

.h1-child1 {
  display: flex;
  justify-content: space-between;
  width: 90%;
  max-width: 1000px;
  height: 100%;
  align-items: center;
  margin: 0 auto;
  padding-top: 50px;
  animation: 1s h1-anime;
}
@keyframes h1-anime {
  from {
    opacity: 0;
    transform: translateY(20%);
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
.h1-child1-left {
  margin: 100px 0;
}
.h1-child1-right {
  margin: 100px 0;
}
.h1-child1 .jp {
  font-size: clamp(16px, 4vw, 20px);
  font-weight: bold;
}
.h1-child1 .en {
  font-size: clamp(50px, 10vw, 60px);
  font-weight: 900;
}
.h1-child1-right {
  font-size: 18px;
  font-weight: bold;
  text-align: right;
}
@media (max-width: 700px) {
  .h1-child1 {
    display: block;
    align-content: center;
    height: 100%;
  }
  .h1-child1 .en {
    margin-bottom: 0.5em;
  }

  .h1-child1-left {
    margin: 50px 0 0;
  }
  .h1-child1-right {
    margin: 0 0 50px;
    text-align: left;
  }
}

.c-company-bk {
  background: url(../img/bk-img.webp);
  background-size: cover;
  background-position-x: center;
  background-color: rgba(238, 238, 244, 0.7);
  background-blend-mode: lighten;
  padding: 10% 0 20%;
  font-weight: bold;
}
.c-company-border-box {
  width: 90%;
  max-width: 1000px;
  margin: 0 auto;
  opacity: 1;
  border: solid 3px #000;
  border-radius: 10px;
  padding: 10%;
  background: #f8f8fe;
}
.table-company {
  border-collapse: collapse;
  text-align: left;
  margin: 5% 0 30%;
  font-size: 14px;
}
.table-company tr {
  border-bottom: solid 1px #747474;
}
.table-company th {
  width: 20%;
  color: #747474;
  text-wrap: nowrap;
  padding: 1em 0;
  align-content: baseline;
}

.table-company td {
  padding: 1em 0;
  word-break: break-word;
  overflow-wrap: break-word;
  white-space: normal;
}
@media (max-width: 750px) {
  .c-company-bk {
    padding: 10% 0 40%;
  }
  .table-company th {
    padding: 0;
  }
  .table-company td {
    padding: 0.5em 0 1em;
  }
  .table-company tr {
    display: grid;
    padding-top: 1em;
  }
  .c-company-border-box {
    padding: 10% 5%;
  }
}
.table-history {
  border-collapse: collapse;
  text-align: left;
  margin: 5% 0;
  font-size: 14px;
}
.table-history th {
  width: 15%;
  font-weight: 500;
  align-content: baseline;
  padding: 1em 1em 1em 0;
}

.table-history td {
  padding: 1em 0;
  word-break: break-word;
  overflow-wrap: break-word;
  white-space: normal;
}
@media (max-width: 750px) {
  .table-history th {
    padding: 0.8em 1em 0.8em 0;
  }
  .table-history td {
    padding: 0.8em 0;
  }
}
/*横浜オフィス*/
#office {
  overflow: hidden;
  margin-top: -20%;
}
#office .file {
  margin-top: 15%;
  padding: 10% 0;
}
.file {
  position: relative;

  border-left: 3px solid #000000;
  border-top: 3px solid #000000;
  border-radius: 20px 0 0 0;
  overflow: visible;
  margin-top: -5%;
}
.file::before {
  content: "";
  position: absolute;
  bottom: 100%;
  left: 44px;
  width: 100%;
  height: 50px;
  background: #ffd919;
  border-radius: 20px 0 0 0;
  border-left: 3px solid #000000;
  border-top: 3px solid #000000;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.5),
    rgba(255, 255, 255, 0.5) 2px,
    transparent 2px,
    transparent 35px
  );
}
.office-wrap {
  width: 90%;
  max-width: 1000px;
  margin: 0 auto;
}
/*画像自動スクロール*/
.scroll-infinity__wrap {
  display: flex;
  overflow: hidden;
  position: relative;
  z-index: 1;
}
.scroll-infinity__list {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 5% 0 10%;
}
.scroll-infinity__list--left {
  animation: infinity-scroll-left 30s infinite linear 0.5s both;
}
.scroll-infinity__item {
  width: calc(100vw / 3);
  margin: 2em;
}
.scroll-infinity__item > img {
  width: 100%;
  border-radius: 20px;
  border: 2px solid #000;
}
@keyframes infinity-scroll-left {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}
@media (max-width: 1200px) {
  .scroll-infinity__item {
    width: calc(100vw / 2);
    margin: 1em;
  }
}
@media (max-width: 600px) {
  .scroll-infinity__item {
    width: 90vw;
    margin: 1em;
  }
}

/*---------------
子ページ
service
----------------*/
.yellow01-bk {
  background: #ff9501;
}
#c-service h1 {
  color: #f8f8fe;
}

#c-service .stripe {
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.3),
    rgba(255, 255, 255, 0.3) 2px,
    transparent 2px,
    transparent 35px
  );
}
.c-service-wrap {
  width: 90%;
  max-width: 1000px;
  margin: 0 auto;
}
/*企画・開発・運用*/
#c-service .h4-top p {
  background: unset;
  color: #000;
  padding: unset;
}
.service-horizon {
  position: relative;
  height: auto;
  aspect-ratio: 1/1;
  border-radius: 50%;
  border: 3px solid #000000;
  margin: 100px;
}
.service-horizon.planning {
  background: linear-gradient(135.01deg, #ffd919 0.06%, #ff7801 99.95%);
}
.service-horizon.development {
  background: linear-gradient(135deg, #f44143 0.06%, #c61720 99.06%);
}
.service-horizon.management {
  background: linear-gradient(315deg, #0c43b7 -0.06%, #15a5ee 99.94%);
}
.service-horizon-flexbox {
  position: absolute;
  display: flex;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
}
.service-horizon-img {
  width: 40%;
}
.service-horizon-textbox {
  width: 60%;
  padding: 0 8% 0 5%;
}
.service-horizon-text1 {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(28px, 5vw, 35px);
  font-weight: bold;
  text-wrap: nowrap;
  line-height: 1;
  padding-bottom: 0.5em;
}
.service-horizon-text1::after {
  border-bottom: 3px solid #f8f8fe;
  content: "";
  width: 100%;
  margin-left: 0.5em;
}
.service-horizon-text2 {
  font-weight: bold;
  line-height: 179%;
  font-size: clamp(12px, 2vw, 14px);
}
.service-horizon-bk-text {
  position: absolute;
  bottom: 22%;
  left: 50%;
  transform: translateX(-50%);
  opacity: 0.6;
  font-size: clamp(30px, 5vw, 76px);
  font-weight: 900;
}

/*水平スクロール*/

.scroll__wrapper {
  height: 300vh;
  overflow: clip;
}

.scroll__wrapper__list {
  display: flex; /* 横並び */
  width: auto;
  height: 100vh;
  position: sticky;
  top: 0;
  will-change: transform;
}

.scroll__wrapper__list__item {
  height: 100%;
  width: 100%;
  display: flex;
  flex: 0 0 auto;
  justify-content: center;
  font-size: 5vw;
}
@media (max-width: 800px) {
  .service-horizon {
    width: 95%;
    margin: auto;
  }
  .scroll__wrapper__list {
    /*height: unset;*/
  }
  .service-horizon-flexbox {
    display: block;
    width: 85%;
    left: 50%;
    top: 25%;
    transform: translate(-50%, -50%);
  }
  .service-horizon-img {
    width: 50%;
    margin: 0 auto;
  }
  .service-horizon-textbox {
    width: 100%;
    padding: 0 8%;
  }
  .service-horizon-bk-text {
    bottom: 10%;
    right: unset;
    left: 50%;
    transform: translateX(-50%);
  }
}
@media (min-width: 1100px) {
  .service-horizon {
    margin: 50px;
  }
}
/*文字ループ部分*/
.c-service-loop .loop-content span {
  line-height: 1;
}
.c-service-loop {
  background: #eeeef4;
  border-top: 3px solid #000;
  border-bottom: 3px solid #000;
  padding: 2em 0;
}

/*コンシューマー開発*/
#consumer {
  position: relative;
  background: #f8f8fe;
  overflow: hidden;
}
.c-dev-wrap1 {
  width: 90%;
  max-width: 1100px;
  margin: 10vw auto 20vw;
}
.c-dev-flexbox {
  display: flex;
}
.c-dev-flex-left {
  width: 70%;
}
.c-dev-flex-right {
  width: 25%;
  align-content: center;
}
.c-dev-number {
  font-weight: 900;
  font-size: 20px;
}
.c-dev-text1 {
  font-size: clamp(34px, 5vw, 50px);
  font-weight: bold;
  margin: 0.5em 0;
  transform: translateY(20%);
  opacity: 0;
  transition: 1s;
}
.c-dev-text1.is-animated {
  transform: translateY(0);
  opacity: 1;
}
.c-dev-text2 {
  font-weight: bold;
}
@media (max-width: 700px) {
  .c-dev-flexbox {
    flex-wrap: wrap;
  }
  .c-dev-flex-left {
    width: 100%;
    order: 2;
  }
  .c-dev-flex-right {
    width: 70%;
    max-width: 300px;
    order: 1;
    margin: 0 auto;
  }
}
/*ファイル部分*/
#consumer .dev-file.file {
  padding-bottom: 5vw;
}
.dev-file.file {
  position: relative;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.3),
    rgba(255, 255, 255, 0.3) 2px,
    transparent 2px,
    transparent 35px
  );
  margin: 0;
  border-bottom: unset;
  overflow: visible;
}
.dev-file.file::before {
  bottom: 100%;
  left: 74px;
  width: 100%;
  height: 80px;
  background: #ff9501;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.3),
    rgba(255, 255, 255, 0.3) 2px,
    transparent 2px,
    transparent 35px
  );
}
@media (max-width: 700px) {
  .dev-file.file::before {
    top: -40px;
    left: 34px;
    height: 40px;
  }
}
.dev2.rotate-text {
  position: absolute;
  right: -5%;
  top: 40%;
  width: 40%;
}
@media (max-width: 700px) {
  .dev2.rotate-text {
    right: -20%;
    top: 60%;
    width: 50%;
  }
}
.c-dev-wrap2 {
  width: 90%;
  max-width: 683px;
  margin: 0 auto;
}
.c-dev-wrap2 h3 {
  margin-top: 10%;
}
.c-dev-border-box {
  position: relative;
  background: #fff;
  padding: 7%;
  border-radius: 20px;
  border: 3px solid #000;
  margin: 7% 0;
  z-index: 1;
}
.c-dev-box-number {
  position: absolute;
  top: 0.7em;
  left: 0.7em;
  font-size: clamp(14px, 3vw, 20px);
  color: #ff9501;
}
.c-dev-border-box-text1 {
  width: fit-content;
  color: #fff;
  background: #ff9501;
  padding: 0.1em 0.3em;
  font-weight: bold;
  font-size: clamp(22px, 3vw, 25px);
}
.c-dev-border-box-text2 {
  font-size: clamp(14px, 3vw, 16px);
  padding-top: 5%;
  color: #4b4b4b;
}
/*アコーディオン*/
.accordion-btn {
  display: none;
}
@media (max-width: 700px) {
  .c-dev-border-box {
    border-radius: 10px;
  }
  .c-dev-box-number {
    color: #000;
  }
  .c-dev-border-box-text1 {
    color: #ff9501;
    background: unset;
    padding: unset;
    width: 100%;
  }
  .c-dev-border-box-text2 {
    font-weight: bold;
  }

  .accordion_header {
    position: relative;
    padding-right: 15%;
  }
  .accordion-btn {
    position: absolute;
    display: block;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    line-height: 0;
  }

  .accordion .minus {
    display: none;
  }
  .accordion.open .plus {
    display: none;
  }
  .accordion.open .minus {
    display: inline;
  }
}
.file4 {
  position: relative;
  width: 90%;
  margin-top: 10vw;
  margin-right: 5%;
  border-right: 3px solid #000000;
  border-top: 3px solid #000000;
  border-radius: 0 20px 0 0;
  overflow-x: clip;
  padding: 3% 0;
  z-index: 1;
}
#app {
  position: relative;
  overflow: hidden;
}
#app .company-btn {
  width: 90%;
}
/*---------------
子ページ
works
----------------*/

#c-work .h1-bk {
  background: #15a5ee;
}
#c-work .h1-bk {
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 35px
  );
}
.c-work-border-box {
  position: relative;
  width: 90%;
  max-width: 1000px;
  margin: 0 auto;
  border: 3px solid #000;
  border-radius: 10px;
  padding: 5% 8%;
  background: #f8f8fe;
}
#c-work .work-flexbox {
  flex-wrap: wrap;
  margin: 0;
  row-gap: 40px;
}
#c-work .work-flex-item {
  position: relative;
  width: 48%;
  z-index: 1;
}
#c-work .work-flex-item:hover .work-img {
  scale: 1.3;
}
@media (max-width: 700px) {
  .c-work-border-box {
    padding: 8% 3%;
  }
  #c-work .work-flexbox {
    display: flex;
  }
  #c-work .work-img-wrap {
    width: 100%;
  }
  #c-work .work-title {
    width: 100%;
    margin-top: 1em;
    padding-right: 3em;
  }
}
/*モーダル*/

.modal_open {
  cursor: pointer;
}
.modal_box {
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 7777;
  display: none;
  width: 90%;
  max-height: 80vh;
  max-width: 1200px;
  margin: auto;
  padding: 100px 50px;
  border: 3px solid #000;
  border-radius: 10px;
  text-align: center;
  background: #f8f8fe;
  max-height: 90vh; /* 画面の高さを超えたらスクロール */
  overflow-y: auto; /* モーダル内でスクロールできる */
  font-weight: bold;
}

.modal_close {
  position: absolute;
  top: 2em;
  right: 3em;
  display: block;
  text-align: center;
  cursor: pointer;
}

.modal_bg {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 6666;
  display: none;
  width: 100%;
  height: 120%;
  background-color: rgba(0, 0, 0, 0.7);
}
.modal_link {
  position: absolute;
  bottom: 2em;
  left: 50%;
  transform: translateX(-50%);
}
.modal_link li {
  display: inline;
}
.modal_link a {
  display: inline-block;
  cursor: pointer;
  margin: 0 20px;
}
.inc {
  font-weight: 100;
  font-size: 10px;
}
.inc-link {
  font-weight: 100;
  font-size: 12px;
  text-decoration: underline;
}
@media screen and (max-width: 800px) {
  .modal_box {
    padding: 15% 5%;
  }
  .modal_close {
    width: 30px;
    top: 1em;
    right: 1em;
  }
  .modal_link {
    width: 100%;
    bottom: unset;
  }
  .modal_link a {
    width: 30px;
  }
}
/*モーダル中身*/
.modal-flexbox {
  display: flex;
  gap: 5%;
  text-align: left;
}
.modal-left {
  width: 40%;
}
.modal-title {
  font-size: 25px;
  margin: 1em 0;
}
#table-work td {
  padding: 0.5em 0 0.5em 1em;
}
.modal-hr {
  border-top: 3px solid #000;
}
@media screen and (max-width: 800px) {
  .modal-flexbox {
    display: block;
  }
  .modal-left {
    width: 100%;
    max-width: 400px;
    margin: 0 auto;
    text-align: right;
  }
  #table-work th,
  #table-work td {
    display: block;
  }
  #table-work td {
    padding: 0;
    margin-bottom: 0.5em;
  }
}
/*---------------
子ページ
party
----------------*/
#c-party .h1-bk {
  background: #f44143;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 35px
  );
}
.c-party-border-box {
  position: relative;
  width: 90%;
  max-width: 1000px;
  margin: 0 auto;
  border: 3px solid #000;
  border-radius: 10px;
  background: #f8f8fe;
  z-index: 1;
}
.c-party-flexbox {
  display: flex;
  margin: 10% 5% 10% 0;
}
@media screen and (max-width: 700px) {
  .c-party-flexbox {
    display: block;
    margin: 10% 5%;
  }
}
.c-party-label-box {
  text-wrap: nowrap;
  width: fit-content;
  text-align: center;
}
.c-party-label {
  margin-bottom: 1em;
}
.c-party-label span {
  font-size: clamp(12px, 3vw, 14px);
}
.c-party-label [class^="label"] {
  border-radius: 0 50px 50px 0;
  border-top: solid #000 3px;
  border-right: solid #000 3px;
  border-bottom: solid #000 3px;
  padding: 0.5em 3em;
  cursor: pointer;
}
.c-party-label .label1 {
  background: #000;
}
.c-party-label .label2 {
  background: #0366fb;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 20px
  );
}
.c-party-section3 {
  color: #15a5ee;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 20px
  );
}
.c-party-label .label3 {
  background: #15a5ee;
  margin-bottom: 0.5em;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 20px
  );
}
.c-party-section4 {
  color: #f44143;
}
.c-party-label .label4 {
  background: #f44143;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 20px
  );
}
.c-party-section5 {
  color: #ff9501;
}
.c-party-label .label5 {
  background: #ff9501;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 20px
  );
}
.c-party-label .label6 {
  background: #ffd919;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 20px
  );
}
@media screen and (max-width: 700px) {
  .c-party-label-box {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-bottom: 3em;
  }
  .c-party-label {
    width: 48%;
    align-content: end;
    height: 100%;
    margin: auto 0 0;
  }
  .c-party-label [class^="label"] {
    border-radius: 50px;
    border: solid #000 3px;
    padding: 0.5em 0;
  }
}
.c-party-member {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 4%;
  row-gap: 30px;
  margin-left: 5%;
}
.c-party-member-box {
  width: 48%;
  cursor: pointer;
}
.c-party-member-img img {
  border: solid 3px #000;
  border-radius: 15px;
  transition: 0.1s ease-out;
}
.c-party-member-box:hover .c-party-member-img img {
  border-radius: 50%;
}
.c-party-text-box {
  position: relative;
  margin: 1em 0;
}
.c-party-member-pos {
  font-weight: 500;
  line-height: 17px;
  font-size: clamp(12px, 3vw, 14px);
}
.c-party-member-name {
  font-size: clamp(20px, 3vw, 35px);
  line-height: 42px;
}
.c-party-btn {
  position: absolute;
  right: 0;
  top: 0;
  height: 100%;
}
.white-btn {
  display: block;
}
.c-party-member-box:hover .white-btn {
  display: none;
}
.black-btn {
  display: none;
}
.c-party-member-box:hover .black-btn {
  display: block;
}
@media screen and (max-width: 700px) {
  .c-party-member {
    margin: 0;
  }
  .c-party-member-name {
    line-height: 1.4;
  }
  .c-party-btn {
    align-content: end;
  }
  .c-party-btn .white-btn,
  .c-party-btn .black-btn {
    width: 2em;
  }
}
/*---------------
子ページ
party 個人ページ
----------------*/
#c-party-child .h1-bk {
  position: relative;
  height: fit-content;
}

#c-party-child .h1-bk {
  background: #f44143;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 35px
  );
}
.c-party-top-img-box {
  position: relative;
  width: 90%;
  max-width: 1000px;
  height: fit-content;
  margin: 0 auto;
  z-index: 1;
}
.c-party-top-img-box img {
  width: 60%;
  height: auto;
  aspect-ratio: 1/1;
  border-top: solid 3px #000;
  border-right: solid 3px #000;
  border-left: solid 3px #000;
  border-radius: 15px 15px 0 0;
  vertical-align: bottom;
}
.c-party-top-text-box {
  position: absolute;
  bottom: 15%;
  left: 55%;
}

.c-party-top-text-box p {
  background: #fff;
  width: fit-content;
  margin-bottom: 0.5em;
  padding: 5px 10px;
  font-weight: bold;
}
.c-party-top-text.name {
  font-size: clamp(22px, 3vw, 25px);
}

.c-party-top-text {
  font-weight: bold;
  font-size: clamp(16px, 3vw, 25px);
}
.c-party-top-small-text {
  font-size: clamp(10px, 2vw, 15px);
}
#c-party-child .deco-bk {
  top: unset;
  bottom: 0;
  left: -1.5vw;
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke: 1px #eeeef4;
  font-size: clamp(39px, 10vw, 110px);
}
#c-party-child .h1-child1-right.sp {
  display: none;
}
@media screen and (min-width: 1200px) {
  .c-party-top-text-box p {
    text-wrap: nowrap;
  }
}
@media screen and (max-width: 700px) {
  .c-party-top-text-box p {
    padding: 2px 5px;
  }
  #c-party-child .h1-child1-right.sp {
    display: inline-block;
    margin-left: 1em;
  }
  #c-party-child .h1-child1-right.pc {
    display: none;
  }

  .c-party-top-img-box img {
    width: 50%;
  }
  .c-party-top-text-box {
    bottom: 0%;
    left: 45%;
  }
  #c-party-child .deco-bk {
    left: unset;
    right: -1.5vw;
  }
}

/*c-party-content*/
#c-party-child .c-company-bk {
  padding-top: 0;
  padding: 0 0 10%;
}
#c-party-content {
  width: 90%;
  max-width: 1000px;
  margin: 0 auto;
  border-right: solid 3px #000;
  border-left: solid 3px #000;
  border-bottom: solid 3px #000;
  border-radius: 0 0 10px 10px;
  background: #f8f8fe;
  padding: 5%;
}
.c-party-content-block {
  margin-bottom: 5%;
}
#c-party-content h3 {
  font-size: 20px;
  text-wrap: wrap;
}
.c-party-content-text {
  margin-top: 2%;
}
.c-party-content-img-box {
  text-align: center;
  margin: 5% 0;
}
.c-party-content-img-box .img1 {
  width: 80%;
  border-radius: 15px;
  border: 3px solid #000;
}
.c-party-content-img-box .img2 {
  border-radius: 15px;
  border: 3px solid #000;
}
@media screen and (max-width: 700px) {
  .c-party-content-img-box .img1 {
    width: 90%;
  }
}
/*party 自動スクロール*/
#c-party-child .scroll-infinity__item {
  width: calc(100vw / 5);
}
#c-party-child .scroll-infinity__list a {
  display: flex;
}
#c-party-child .scroll-infinity__item:hover {
  transform: scale(1.1);
  transition: 0.1s ease-in-out;
}
#c-party-child .scroll-infinity__list {
  margin: 5% 0 3%;
}
#c-party-child .scroll-infinity__list--left {
  animation: infinity-scroll-left 50s infinite linear 0.5s both;
}
@media screen and (max-width: 900px) {
  #c-party-child .scroll-infinity__item {
    width: calc(100vw / 3);
  }
}

@media screen and (max-width: 600px) {
  #c-party-child .scroll-infinity__item {
    width: calc(100vw / 2);
  }
}
/*---------------
子ページ
数字で見るThee Rings
----------------*/
#su-zi .h1-bk {
  background: #0c43b7;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 35px
  );
  font-size: clamp(22px, 6vw, 25px);
}
.h1-bottom-comment {
  text-align: right;
  font-size: 11px;
  padding: 1em 2em;
  font-weight: bold;
}
.su-zi-wrap {
  max-width: 700px;
  width: 90%;
  margin: 0 auto;
}
.su-zi-border-box {
  border-radius: 10px;
  border: 3px solid #000;
  background: #f8f8fe;
  padding: 3%;
  margin-top: -3px;
}
.su-zi-flexbox {
  display: flex;
}
.su-zi-title {
  font-weight: bold;
  font-size: clamp(20px, 5vw, 30px);
  color: #0c43b7;
  text-align: center;
  text-wrap: nowrap;
}

.su-zi-number {
  font-size: clamp(70px, 5vw, 85px);
}
.su-zi-number.letter-spacing {
  letter-spacing: -0.05em;
}
.su-zi-number span {
  font-size: clamp(28px, 4vw, 40px);
}
.su-zi-comment {
  font-size: 10px;
  font-weight: bold;
  text-align: right;
  color: #c8c8c8;
}
.su-zi-flexbox.flex1 .su-zi-left {
  width: 25%;
}
.su-zi-right {
  text-align: center;
}
.su-zi-flexbox.flex1 .su-zi-right {
  margin-top: 1em;
  width: 75%;
}
.su-zi-img.img1 {
  width: 250px;
}
.su-zi-flexbox-outer {
  display: flex;
}
.su-zi-flexbox-outer .su-zi-border-box {
  width: 50%;
  text-align: center;
}
.su-zi-flexbox-outer .su-zi-border-box:first-child {
  margin-right: -3px;
  width: calc(50% + 3px);
}
.su-zi-img.img2 {
  width: 120px;
  margin: 1em 0;
}
.su-zi-img.img4 {
  width: 400px;
}
.su-zi-flexbox.flex2 .su-zi-right {
  text-align: right;
}
.su-zi-img.img5 {
  width: 500px;
  margin-top: 1em;
}
.su-zi-title.text-left {
  text-align: left;
}
.su-zi-flexbox.flex3 .su-zi-left {
  width: 50%;
  text-align: center;
}
.su-zi-flexbox.flex3 .su-zi-right {
  width: 45%;
  margin-top: 1em;
}
.su-zi-text {
  margin: 2em 0;
}
.su-zi-img.img11 {
  width: 90%;
  text-align: center;
  margin-top: 1em;
}
.su-zi-border-box.center {
  text-align: center;
}
.su-zi-border-box .sp {
  display: none;
}
.su-zi-graph {
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 800px) {
  .su-zi-flexbox {
    display: block;
  }
  .su-zi-flexbox.flex1 .su-zi-left,
  .su-zi-flexbox.flex1 .su-zi-right {
    width: 100%;
    text-align: center;
  }
  .su-zi-img.img1 {
    width: 50%;
  }
  .su-zi-flexbox-outer {
    display: block;
  }
  .su-zi-flexbox-outer .su-zi-border-box:first-child,
  .su-zi-flexbox-outer .su-zi-border-box:last-child {
    width: 100%;
  }
  .su-zi-sp-flexbox {
    display: flex;
  }
  .su-zi-flexbox-outer .su-zi-border-box .su-zi-left {
    width: 65%;
  }
  .su-zi-flexbox-outer .su-zi-border-box .su-zi-right {
    width: 35%;
    align-content: center;
  }
  .su-zi-img.img2 {
    width: 100%;
  }
  .su-zi-img.img4 {
    width: 100%;
    margin-bottom: 1em;
  }
  .su-zi-border-box .pc {
    display: none;
  }
  .su-zi-border-box .sp {
    display: block;
  }
  .su-zi-img.img5 {
    width: 100%;
    margin-bottom: 1em;
  }
  .su-zi-number.letter-spacing {
    font-size: clamp(50px, 15vw, 60px);
  }
  .su-zi-number.v-center {
    height: 80%;
    align-content: center;
  }
  .su-zi-title.text-left {
    text-align: center;
  }
  .su-zi-flexbox.flex3 .su-zi-left {
    width: 100%;
  }
  .su-zi-flexbox.flex3 .su-zi-right {
    width: 100%;
  }
  .su-zi-img.mt-2em {
    margin-top: 2em;
  }
  .su-zi-img.img11 {
    width: 100%;
    margin-bottom: 1em;
  }
}
@media screen and (max-width: 700px) {
  .h1-bottom-comment {
    padding-top: 50px;
  }
}
/*---------------
子ページ
次のゲームはあなたの熱意から
----------------*/
#recruit-top {
  width: 100%;
  height: 100vh;
  background: url(../img/recruit/top.webp);
  background-size: cover;
  background-position: center;
  animation: recruit 1s;
}
@keyframes recruit {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@media screen and (max-width: 700px) {
  #recruit-top {
    background: url(../img/recruit/top-sp.webp);
    background-size: cover;
    background-position: center;
  }
}
.grey-bk {
  background: #ededf3;
}
#recruit {
  position: relative;
  padding: 5% 0;
  font-weight: bold;
  overflow: hidden;
}
.recruit-wrap {
  position: relative;
  width: 90%;
  max-width: 1000px;
  margin: 0 auto;
  background: #fff;
  padding: 6% 10%;
  border-radius: 10px;
}
.h2-recruit {
  transform: translateX(-20%);
}
.h2-recruit.is-animated {
  transform: translateX(0);
  transition: 0.3s ease-in-out;
}
.h2-recruit .jp {
  font-size: clamp(14px, 5vw, 20px);
}
.h2-recruit .en {
  font-size: clamp(40px, 6vw, 60px);
  font-weight: 900;
  margin-bottom: 1em;
}
.recruit-text1 {
  font-size: clamp(30px, 5vw, 40px);
  margin-bottom: 1em;
}
.recruit-text2 {
  font-size: clamp(14px, 3vw, 18px);
  line-height: 167%;
}

@media screen and (max-width: 800px) {
  .recruit-wrap {
    padding: 40px 20px;
  }
  .h2-recruit .en {
    margin-bottom: 30px;
  }
  .recruit-text1 {
    margin-bottom: 50px;
  }
}
/*画像自動スクロール*/
.recruit-img-box {
  position: absolute;
  width: 20%;
  height: 100%;
  top: 0;
  left: 70%;
}
.recruit-img-box .scroll-infinity__wrap {
  flex-direction: column;
  height: 100%;
}
.recruit-img-box .scroll-infinity__list {
  display: flex;
  flex-direction: column;
  list-style: none;
  padding: 0;
  margin: unset;
}

.recruit-img-box .scroll-infinity__item {
  width: 100%; /* 横幅いっぱい */
  margin: 5% 0; /* 上下余白 */
}
.recruit-img-box .scroll-infinity__item > img {
  width: 100%;
  height: auto;
  border-radius: unset;
  border: unset;
}
.recruit-img-box .scroll-infinity__list--left {
  animation: infinity-scroll-top 20s linear infinite;
}
@keyframes infinity-scroll-top {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(-100%); /* リストの半分の高さ分上に移動 */
  }
}
.recruit-img-box .img1 {
  padding-right: 10%;
}
.recruit-img-box .img2 {
  padding-left: 40%;
}
.recruit-img-box .img3 {
  padding-left: 50%;
}
.recruit-img-box .img4 {
  padding-right: 20%;
}
.recruit-img-box .img6 {
  padding-left: 10%;
}
@media screen and (max-width: 800px) {
  .recruit-text2 {
    margin-bottom: 50vw;
  }
  .recruit-img-box {
    width: 100%;
    left: unset;
    bottom: 0;
    top: unset;
    height: auto;
    overflow: hidden;
  }
  .recruit-img-box .scroll-infinity__wrap {
    flex-direction: row;
  }
  .recruit-img-box .scroll-infinity__list {
    flex-direction: row;
  }
  .recruit-img-box .scroll-infinity__item {
    width: calc(100vw / 3);
    margin: unset;
    padding: 0 1em;
  }
  .recruit-img-box .scroll-infinity__list--left {
    animation: infinity-scroll-left 30s infinite linear 0.5s both;
  }

  .recruit-img-box .img1,
  .recruit-img-box .img2,
  .recruit-img-box .img3,
  .recruit-img-box .img4,
  .recruit-img-box .img6 {
    padding-left: unset;
  }
}
@media screen and (max-width: 450px) {
  .recruit-text2 {
    margin-bottom: 70vw;
  }
  .recruit-img-box .scroll-infinity__item {
    width: calc(100vw / 2);
  }
}
/*wanted*/
#wanted {
  position: relative;
  overflow-x: clip;
}
.wanted-bk {
  position: relative;
  background-image: url(../img/recruit/wanted-bk.webp);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  z-index: 1;
}
.wanted-wrap {
  width: 90%;
  max-width: 1000px;
  margin: 0 auto;
}
.wanted-content {
  position: relative;
  height: auto;
  aspect-ratio: 1/1;
  font-size: clamp(28px, 3vw, 35px);
  font-weight: bold;
}
.wanted-text {
  position: absolute;
  top: 45%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
}
.wanted-img {
  position: absolute;
}

.wanted-img.img1 {
  width: 33%;
  top: 0;
  left: 51.5%;
  transform: translateX(-50%);
  transform-origin: bottom;
}

.wanted-img.img2 {
  width: 33%;
  top: 15%;
  left: 0;
  transform-origin: right bottom;
}
.wanted-img.img3 {
  width: 28%;
  top: 10%;
  right: 2%;
  transform-origin: left bottom;
}
.wanted-img.img4 {
  width: 28%;
  bottom: 12%;
  left: 2%;
  transform-origin: right top;
}
.wanted-img.img5 {
  width: 33%;
  bottom: 17%;
  right: 0;
  transform-origin: left top;
}
.wanted-img.img6 {
  width: 33%;
  bottom: 0;
  left: 49%;
  transform: translateX(-50%);
  transform-origin: top;
}
.wanted-img.pc {
  transition: 0.3s ease-in-out;
  scale: 0;
}
.wanted-img.is-animated {
  scale: 1;
}

#wanted .img-rotate-text.red {
  position: absolute;
  width: 300px;
  top: 0;
  right: -10%;
}
#wanted .img-rotate-text.red {
  position: absolute;
  width: 350px;
  top: 0;
  right: -175px;
}
#wanted .img-rotate-text.blue {
  position: absolute;
  width: 150px;
  bottom: 0;
  left: 5%;
}
#wanted .sp {
  display: none;
}
#wanted .figure-blue1 {
  display: none;
}
@media screen and (max-width: 800px) {
  #wanted {
    margin-top: 50px;
  }
  .wanted-bk {
    background-size: 130%;
    background-position: center 60%;
  }
  .wanted-content {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-bottom: 100px;
    row-gap: 3%;
  }
  #wanted .wanted-text {
    position: unset;
    transform: unset;
    width: 100%;
    margin: 30px 0;
  }
  #wanted .wanted-img {
    position: unset;
    width: 49%;
    transform: unset;
    height: auto;
  }
  #wanted .pc {
    display: none;
  }
  #wanted .sp {
    display: block;
  }
  #wanted .img-rotate-text.red {
    width: 50%;
    top: -15%;
    right: -25%;
  }
  #wanted .figure-blue1 {
    display: block;
    position: absolute;
    width: 20%;
    top: -4%;
    left: 0;
  }
  #wanted .img-rotate-text.blue {
    width: 40%;
    bottom: 15%;
    left: -20%;
  }
}
/*jobs*/
#jobs {
  position: relative;
  margin: 5% 0 20%;
}
.jobs-wrap {
  width: 90%;
  max-width: 680px;
  margin: 0 auto;
}
.recruit-text {
  position: relative;
  font-size: clamp(28px, 3vw, 35px);
  font-weight: bold;
  margin-bottom: 10%;
  z-index: 5;
}
.jobs-btn {
  position: relative;
  display: flex;
  justify-content: space-between;

  border-radius: 50px;
  border: solid 3px #000;
  margin-bottom: 7%;
  z-index: 2;
}
.jobs-btn.btn1 {
  background: #ff9501;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 35px
  );
}
.jobs-btn.btn2 {
  background: #f44143;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 35px
  );
}
.jobs-btn.btn3 {
  background: #15a5ee;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 35px
  );
}
.jobs-btn-text .en {
  font-weight: 900;
  font-size: 18px;
}
.jobs-btn-text .jp {
  font-weight: bold;
  font-size: clamp(20px, 3vw, 35px);
}
.jobs-btn-img {
  display: inline-block;
  width: 60px;
}
.jobs-btn span {
  right: 5%;
}
#jobs .figure-orange1 {
  position: absolute;
  width: 250px;
  top: -300px;
  right: 0;
}
#jobs .figure-red1 {
  position: absolute;
  width: 200px;
  top: 0;
  left: -130px;
}
#jobs .figure-blue2 {
  position: absolute;
  width: 310px;
  top: 40%;
  right: 0;
}
#jobs .img-rotate-text.orange {
  position: absolute;
  width: 500px;
  left: -250px;
  bottom: -250px;
  z-index: 1;
}
@media screen and (max-width: 800px) {
  #jobs {
    margin-bottom: 30%;
  }
  #jobs .figure-orange1 {
    width: 15%;
    top: -20%;
  }
  #jobs .figure-red1 {
    width: 15%;
    top: -15%;
    left: 2%;
  }

  #jobs .figure-blue2 {
    width: 25%;
    top: 23%;
  }
  #jobs .img-rotate-text.orange {
    width: 70%;
    left: -35%;
    bottom: -30%;
  }
}
/*interview*/
#interview {
  position: relative;
}
.interview-wrap {
  position: relative;
  width: 90%;
  max-width: 680px;
  margin: 0 auto;
  z-index: 3;
}
.interview-text {
  position: relative;
  font-size: clamp(28px, 3vw, 35px);
  font-weight: bold;
  margin-bottom: 5%;
  z-index: 2;
}
.interview-wrap2 {
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
}
#interview .party-flexbox {
  position: relative;
  margin: 5% 0;
  z-index: 3;
}

.interview-btn {
  font-size: clamp(18px, 3vw, 25px);
}
#interview .figure-orange2 {
  position: absolute;
  width: 250px;
  left: 0;
  top: -150px;
}
#interview .figure-red2 {
  position: absolute;
  width: 350px;
  right: 0;
  top: -150px;
}

@media screen and (max-width: 800px) {
  #interview .figure-red2 {
    width: 25%;

    top: -5%;
  }
  #interview .figure-orange2 {
    width: 20%;
    top: 100%;
  }
}
#interview .deco-bk {
  position: absolute;
  z-index: 1;
  left: -1.5vw;
  top: unset;
  bottom: 0;
  -webkit-text-fill-color: transparent;
  -webkit-text-stroke: 1px #f44143;
  font-size: clamp(80px, 10vw, 120px);
}
@media screen and (max-width: 800px) {
  #interview .deco-bk {
    left: -1.5vw;
    top: unset;
    bottom: 40%;
    font-size: clamp(80px, 10vw, 120px);
  }
}
#interview .party-flexbox {
  gap: 4%;
}
#interview .party-flex-item {
  width: 22%;
}
#interview .serious,
.skill {
  font-size: clamp(12px, 1vw, 14px);
  padding: 0.2em 1em;
  text-wrap: nowrap;
}
#interview .skill span {
  font-size: clamp(14px, 2vw, 18px);
}
@media screen and (max-width: 960px) {
  #interview .party-flexbox {
    display: flex;
    flex-wrap: wrap;
    gap: 2%;
  }
  #interview .party-flex-item {
    width: 49%;
    margin-bottom: 10px;
  }
}
@media screen and (max-width: 560px) {
  #interview .serious,
  .skill {
    padding: 0 0.1em;
  }
}
/*date*/
#date {
  position: relative;
  background: #0c43b7;
  margin: 10% 0 5% 5%;
  border-radius: 10px 0 0 10px;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 35px
  );
  border-top: solid #000 3px;
  border-left: solid #000 3px;
  border-bottom: solid #000 3px;
  padding: 5% 0;
}
.date-wrap {
  width: 90%;
  max-width: 680px;
  margin: 0 auto;
}

.date-box {
  position: relative;
  cursor: pointer;
}
.date-box .date-bk {
  border: #000 solid 3px;
  border-radius: 15px;
}
.date-text-box {
  position: absolute;
  top: 10%;
  left: 0;
  font-size: clamp(28px, 3vw, 35px);
  font-weight: bold;
}
.date-text {
  width: fit-content;
  border: #000 solid 3px;
  background: #f8f8fe;
  color: #0c43b7;
  padding: 0.2em 0.5em 0.2em 1.5em;
}
.date-box:hover .date-text {
  color: #f8f8fe;
  background: #0c43b7;
}
.date-text.text2 {
  margin-top: -3px;
}

.date-btn {
  position: absolute;
  width: 70px;
  right: 5%;
  bottom: 10%;
}
.date-box:hover .date-btn.btn1 {
  opacity: 0;
}
@media screen and (max-width: 700px) {
  #date {
    margin-top: 20%;
  }
  .date-text {
    padding: 0.2em 0.5em;
  }
  .date-btn {
    width: 50px;
  }
}
/*office*/
#yokohama-office .recruit-text {
  margin-bottom: 5%;
}
#yokohama-office .scroll-infinity__list {
  margin: 0 0 10%;
}
/*description*/
#description {
  margin-bottom: 10%;
  overflow: hidden;
}
.description-wrap {
  width: 90%;
  max-width: 680px;
  margin: 0 auto;
}
.description-flexbox {
  display: flex;
  margin: 1em 0;
}
#description .recruit-text {
  margin-bottom: 0;
}
.recruit-btn {
  position: relative;
  display: inline-block;
  background: #fff;
  border-radius: 50px;
  padding: 2em;
  height: fit-content;
  margin-right: 2em;
  width: 100%;
}
.recruit-btn-nav {
  width: 160px;
}
.recruit-btn-img {
  position: absolute;
  width: 57px;
  right: 2em;
  top: 50%;
  transform: translateY(-50%);
}
.description-title {
  background: #fff;
  font-size: clamp(24px, 5vw, 35px);
  border-top: solid #000 3px;
  border-left: solid #000 3px;
  border-bottom: solid #000 3px;
  border-radius: 10px 0 0 10px;
  margin-left: 5%;
  padding-left: 0.5em;
  margin-top: 3%;
  margin-bottom: 3%;
}
@media screen and (max-width: 700px) {
  .description-flexbox {
    display: block;
  }
  .recruit-btn {
    margin: 1em 0;
    width: 100%;
    max-width: 334px;
    padding: 1.5em 10em 1.5em 2em;
  }
  .recruit-btn-nav {
    width: 145px;
  }
  .recruit-btn-img {
    width: 42px;
  }
}
@media screen and (min-width: 760px) {
  .description-title {
    margin-left: calc((100vw - 700px) / 2);
  }
}
.white-grad {
  font-size: clamp(18px, 3vw, 25px);
  color: #000;
  border-radius: 50px;
  padding: 0.4em 2em 0.6em 1em;
}
.white-grad small {
  font-size: 14px;
}
.white-grad .grad-bk {
  background: #fff;
  border-radius: 50px;
}
.job-btn {
  position: relative;
}
.job-arrow {
  position: absolute;
  right: 1em;
  top: 8px;
  display: inline-block;
  margin-left: 1em;
}
#description .p-obi {
  display: inline-block;
  margin: 1em 0.5em 1em 0;
}

@media screen and (max-width: 700px) {
  #description br.pc {
    display: none;
  }
}
/*recruit-company*/
#recruit-company .file3 {
  width: unset;
}
.recruit-company-wrap {
  width: 90%;
  max-width: 680px;
  margin: 0 auto;
}
#recruit-company .company-btn-wrap {
  width: 90%;
}
/*---------------
子ページ
採用情報の下層
----------------*/
#recruit-child {
  position: relative;
  background: #eeeef4;
  mix-blend-mode: multiply;
  padding-bottom: 2%;
}
#recruit-child::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, #f8f8fe 25%, rgba(248, 248, 254, 0) 75%);
}
.recruit-child-bk1 {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 300vh;
  background-image: url(../img/recruit-child/recruit-child-bk1.webp);
  background-size: 69%;
  background-position: top left;
  background-repeat: no-repeat;
  z-index: -2;
}
.recruit-child-bk1::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 300vh;
  background: #eeeef4;
  opacity: 0.6;
}
.recruit-child-bk2 {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 300vh;
  background: url(../img/recruit-child/recruit-child-bk2.webp);
  background-size: 89%;
  background-position: top left;
  background-repeat: no-repeat;
  z-index: -3;
}
.recruit-child-bk2::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 300vh;
  background: #eeeef4;
  opacity: 0.6;
}
.recruit-child-bk3 {
  position: relative;
}
.recruit-child-top {
  position: absolute;
  height: 100vh;
  width: 100%;
  z-index: 10;
}
.recruit-child-top-textbox {
  height: 100%;
  width: fit-content;
  margin: 0 auto;
  align-content: center;
}
.recruit-child-top-textbox .text1 {
  font-size: 20px;
  font-weight: 900;
}
.recruit-child-top-textbox .text1 small {
  font-size: 14px;
  font-weight: bold;
  margin-left: 2em;
}
.recruit-child-top-textbox .text2 {
  font-size: clamp(50px, 10vw, 60px);
  font-weight: 500;
}
.recruit-child-top-textbox .text3 {
  font-size: 18px;
  font-weight: bold;
}
.recruit-child-top hr {
  position: absolute;
  border-right: #000 3px solid;
  width: 3px;
  height: 30vh;
  left: 50%;
  bottom: 0;
  margin-bottom: 5%;
}
.recruit-child-left-img-box {
  position: sticky;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  align-content: center;
  z-index: 1;
}
.recruit-child-left-img {
  width: auto;
  height: 600px;
}
@media screen and (max-width: 900px) {
  .recruit-child-left-img {
    width: auto;
    height: 460px;
  }
  .recruit-child-top hr {
    height: 20vh;
    bottom: 5%;
  }
}
@media screen and (max-width: 700px) {
  .recruit-child-left-img {
    width: auto;
    height: 220px;
  }
  .recruit-child-top-textbox {
    margin: 30% auto auto 10%;
    align-content: unset;
  }
}
/*top下*/
.recruit-child-flexbox {
  position: relative;
  display: flex;
  justify-content: space-between;
  margin-bottom: 500px;
  z-index: 2;
}
.recruit-child-flexbox.first {
  margin-top: calc(100vh - 690px);
}
.recruit-child-img-box {
  position: relative;
  width: 360px;
  height: 360px;
  align-content: center;
  text-align: center;
  align-self: center;
}
.recruit-child-img {
  width: auto;
  height: 55%;
  opacity: 0;

  transition: all 0.3s ease;
}
.recruit-child-img.is-visible {
  opacity: 1;
}
.recruit-child-text-box {
  position: relative;
  background: #f8f8fe;
  border-radius: 10px 0px 0px 10px;
  border-top: solid 3px #000;
  border-left: solid 3px #000;
  border-bottom: solid 3px #000;
  height: fit-content;
  padding: 30px 50px;
  margin-left: 10%;
  align-self: center;
  width: calc(100vw - 360px);
}
.recruit-child-number {
  position: absolute;
  top: 6%;
  left: 1.5%;
  font-size: clamp(18px, 2vw, 20px);
}
.recruit-child-text1 {
  font-size: clamp(18px, 3vw, 35px);
  font-weight: bold;
  margin-bottom: 30px;
}
@media screen and (max-width: 900px) {
  .recruit-child-flexbox.first {
    margin-top: calc(100vh - 460px);
  }
  .recruit-child-img-box {
    width: 240px;
    height: 240px;
  }
  .recruit-child-text-box {
    padding: 30px;
  }
  .recruit-child-text1 {
    margin-bottom: 20px;
  }
  .recruit-child-flexbox {
    margin-bottom: 350px;
  }
  .recruit-child-flexbox.last {
    margin-bottom: 350px;
  }
}
@media screen and (max-width: 700px) {
  .recruit-child-flexbox.first {
    margin-top: calc(100vh - 230px);
  }
  .recruit-child-img-box {
    width: 120px;
    height: 120px;
  }
  .recruit-child-text-box {
    width: calc(100vw - 120px);
    margin-left: 0;
    padding: 20px 15px;
  }
  .recruit-child-number {
    position: relative;
  }
  .recruit-child-flexbox {
    margin-bottom: 150px;
  }
  .recruit-child-flexbox.last {
    margin-bottom: 390px;
  }
}
/*文字ループ*/
.recruit-loop {
  background: #f8f8fe;
  border-top: 3px solid #000;
  border-bottom: 3px solid #000;
  padding: 4em 0;
}
.recruit-loop .loop-content span {
  line-height: 1;
}
/*○○さんの1日*/
#planner {
  color: #ff9501;
}
#programmer {
  color: #f44143;
}
#modeler {
  color: #15a5ee;
}
.days {
  background: #eeeef4;
  padding: 8% 0;
  border-bottom: 3px solid #000;
}
.days-wrap {
  width: 90%;
  max-width: 900px;
  margin: 0 auto;
}
.days-wrap2 {
  position: relative;
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
}
.days-img {
  position: absolute;
  bottom: calc(100% - 20px);
  right: 0;
  width: 20%;
  max-width: 240px;
  transform: translate(0, 100%);
  transition: all ease-in-out 0.3s;
}
.days-img.is-animated {
  transform: translate(0);
}
.days-border-box {
  position: relative;
  border-radius: 10px;
  border: 3px solid #000;

  margin-top: 5%;
}
#planner .days-border-box {
  background: #ff9501;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 35px
  );
}
#programmer .days-border-box {
  background: #f44143;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 35px
  );
}
#modeler .days-border-box {
  background: #15a5ee;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.2),
    rgba(255, 255, 255, 0.2) 2px,
    transparent 2px,
    transparent 35px
  );
}
.days-flexbox {
  display: flex;
  gap: 5%;
  margin: 8em 0;
}

.days-left {
  position: relative;
  width: 30%;
  background: #eeeef4;
  border-radius: 0 10px 10px 0;
  border-top: #000 solid 3px;
  border-right: #000 solid 3px;
  border-bottom: #000 solid 3px;
  margin-left: -3px;
  padding: 0.1em 1em;
  height: fit-content;
  text-align: right;
  font-size: clamp(28px, 5vw, 35px);
  font-weight: 900;
  z-index: 1;
}

.days-right {
  width: 63%;
}
.days-text1 {
  font-size: clamp(31px, 5vw, 35px);
  font-weight: bold;
  margin-bottom: 0.5em;
}
.days-text2 {
  font-size: clamp(14px, 3vw, 18px);
  font-weight: bold;
}
/*interview*/
.recruit-child-interview {
  padding: 5% 0;
}
#interview.recruit-child-interview .deco-bk {
  -webkit-text-fill-color: unset;
  -webkit-text-stroke: unset;
  color: #eeeef4;
  top: 0;
  bottom: unset;
}
@media screen and (max-width: 600px) {
  .days-flexbox {
    display: block;
    margin: 5em 0;
  }
  .days-border-box {
    margin-top: 20%;
  }
  .days-left {
    width: 95%;
    border-radius: 10px 0 0 10px;
    border-right: unset;
    border-left: #000 solid 3px;
    margin-left: auto;
    margin-right: -3px;
    text-align: left;
    padding: 0.5em;
  }
  .days-left br {
    display: none;
  }
  .days-right {
    width: 90%;
    margin: 0 auto;
  }
  .days-text1 {
    margin: 1em 0 0.5em;
  }
}
/*---------------
foot-recruit
----------------*/
#foot-recruit {
  width: 100%;
  height: 500px;
  overflow: hidden;
  border-top: #000 solid 3px;
  border-bottom: #000 solid 3px;
  background: #f8f8fe;
}
.foot-recruit-flex {
  display: flex;
  height: 100%;
  width: 100%;
}
.foot-recruit-text-wrap {
  height: 100%;
  max-width: 900px;
  margin: 0 auto;
  align-content: center;
}
.foot-recruit-img-box1 {
  width: 20%;
}
.foot-recruit-img-box2 {
  width: 50%;
  text-align: right;
}
.foot-recruit-img {
  height: 100%;
  width: auto;
}
.foot-recruit-text1 {
  font-weight: bold;
}
.foot-recruit-text2 {
  font-size: clamp(35px, 3vw, 50px);
  margin-bottom: 0.5em;
}
.foot-recruit-text3 {
  font-size: 12px;
  font-weight: 500;
  line-height: 208%;
  margin-bottom: 4em;
}
.foot-recruit-btn {
  position: relative;
  border: solid 3px #000;
  border-radius: 50px;
  background: linear-gradient(
    96.16deg,
    #15a5ee 0.19%,
    #ffd919 50.05%,
    #f44143 99.92%
  );
  padding: 1em 4em 1em 3em;
  font-size: clamp(14px, 2vw, 25px);
  font-weight: bold;
  color: #f8f8fe;
  width: fit-content;
}
#foot-recruit .sp {
  display: none;
}
@media screen and (max-width: 1200px) {
  .foot-recruit-img-box1 {
    display: none;
  }
}
@media screen and (max-width: 700px) {
  #foot-recruit {
    height: 350px;
  }
  .foot-recruit-flex {
    position: relative;
  }
  .foot-recruit-img-box1 {
    display: none;
  }
  .foot-recruit-text-wrap {
    width: 60%;
    margin: 0 auto 0 5%;
  }
  .foot-recruit-img-box2 {
    position: absolute;
    right: 0;
    top: 0;
    height: 100%;
    width: unset;
    max-width: 45%;
  }
  .foot-recruit-text3 {
    margin-bottom: 2em;
  }
  #foot-recruit .pc {
    display: none;
  }
  #foot-recruit .sp {
    display: block;
  }
}
/*---------------
contact
----------------*/
#contact {
  padding-top: 200px;
}
#contact.c-company-bk {
  background-size: auto;
}
.contact-wrap {
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
}
.contact-box {
  position: relative;
  color: #282828;
  background: #e2e2e2;
  border-radius: 0 30px 30px 30px;
  z-index: 1;
  padding: 100px;
  font-size: clamp(16px, 3vw, 20px);
  font-weight: 500;
}
input,
textarea,
select {
  display: block;
  width: 100%;
  background: #fff;
  border-radius: 5px;
  padding: 0.5em;
  border: 1px solid #000;
  line-height: 1.5;
}
textarea {
  height: 8em;
}
.form-flexbox p {
  display: flex;
  gap: 4%;
}
.form-flexbox label {
  width: 48%;
}
.form-check label {
  display: flex;
  margin-top: 1em;
}
input[type="checkbox"] {
  position: relative;
  width: 1.5em;
  height: 1.5em;
  margin: 0 1em 0 0;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  -o-appearance: none;
}
#contact .wpcf7-list-item {
  margin: 0;
}

input[type="checkbox"]::before {
  content: "";
  display: block;
  width: 6px;
  height: 12px;
  position: absolute;
  top: 50%;
  left: 20%;
  transform: rotate(35deg) skewY(16deg) translateY(-50%);
  transform-origin: center right;
  border-right: 3px solid #000;
  border-bottom: 3px solid #000;
  opacity: 0; /* 透明 */
}
input[type="checkbox"]:checked::before {
  opacity: 1;
}

.form-submit input {
  background: #000;
  color: #fff;
  border-radius: 50px;
  width: fit-content;
  padding: 1em 2em;
  margin: 2em auto 0;
}
::placeholder {
  color: #b0b0b0;
}
select.placeholder {
  color: #b0b0b0;
}
.label-wrap {
  margin-bottom: 2em;
}
.select-wrap select {
  padding-right: 2em; /* 矢印用スペースを確保 */
}

.select-wrap .wpcf7-form-control-wrap {
  position: relative;
  display: block;
  min-width: 80px;
}
.select-wrap .wpcf7-form-control-wrap::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1em;
  width: 0.5em;
  height: 0.5em;
  border-right: 2px solid #333;
  border-bottom: 2px solid #333;
  transform: translateY(-50%) rotate(45deg);
}
.select-wrap:nth-child(1) .wpcf7-form-control-wrap {
  width: 200px;
}

.birth p {
  display: flex;
  gap: 10px;
}
.birth label {
  display: inline-flex;
  align-items: end;
  gap: 5px;
}
.birth select {
  text-align: center;
  text-align-last: center;
  padding: 0.5em 2em 0.5em 0.5em;
}
.form-text {
  line-height: 3em;
}
.wpcf7-not-valid-tip {
  position: absolute;
  left: 0;
  bottom: -1.4em;
  font-size: 0.5em !important;
  color: #d00;
  white-space: nowrap;
  pointer-events: none;
}

@media screen and (max-width: 700px) {
  #contact {
    padding-top: 100px;
  }
  .contact-box {
    padding: 5%;
    border-radius: 0 10px 10px 10px;
  }
  .birth p {
    display: block;
  }
  .birth .wpcf7-not-valid-tip {
    left: calc(100% + 4em);
    bottom: 0;
  }
}
/*タブ*/
.tab-wrap {
  margin-top: 80px;
}
.tab-group {
  position: relative;
  display: flex;
  justify-content: left;
  flex-wrap: wrap;
  align-items: flex-end;
  z-index: 1;
}

.tab {
  width: fit-content;
  background: #c4c4c4;
  border-radius: 30px 30px 0 0;
  color: #454545;
  cursor: pointer;
  display: inline-block;
  font-size: clamp(14px, 3vw, 22px);
  margin-right: 5px;
  padding: 20px 30px;
  text-align: center;
  vertical-align: bottom;
}
.panel-group {
  min-height: 100px;
}
.panel {
  display: none;
}
.tab.is-active {
  background: #e2e2e2;
  font-size: clamp(16px, 3vw, 30px);
  color: #000;
}
.panel.is-show {
  display: block;
}
@media screen and (max-width: 700px) {
  .tab {
    padding: 0.5em 1em;
    border-radius: 10px 10px 0 0;
  }
}
/*---------------
privacy policy
----------------*/
#privacy {
  padding-top: 200px;
}
.privacy-wrap {
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
}
.privacy-box {
  position: relative;
  background: #f8f8fe;
  border-radius: 30px;
  z-index: 1;
  padding: 100px;
  margin-top: 80px;
  border: 3px solid #000000;
  border-radius: 30px;
}

.privacy-text {
  font-size: clamp(16px, 3vw, 20px);
  margin-bottom: 2em;
  font-weight: 500;
}
.privacy-box ol {
  font-size: clamp(20px, 3vw, 26px);
  margin-left: 10%;
}
.privacy-list {
  margin-bottom: 2em;
}
.privacy-list-text1 {
  font-weight: bold;
}
.privacy-list-text2 {
  font-size: clamp(14px, 2vw, 16px);
  font-weight: 500;
}
.underline {
  border-bottom: 1px solid #000;
}
@media screen and (max-width: 800px) {
  #privacy {
    padding-top: 100px;
  }
  .privacy-box {
    padding: 10% 5%;
    border-radius: 10px;
  }
}

/*---------------
採用下層
----------------*/
#job {
  padding-top: 200px;
}
#job.c-company-bk {
  padding: 10% 0;
}
.job-wrap {
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.job-border-box {
  border: 3px solid #000;
  border-radius: 30px;
  background: #f8f8fe;
  padding: 100px;
  margin: 50px 0;
  font-weight: 500;
}
.job-table.table1 {
  margin-bottom: 100px;
}
.job-table {
  width: 100%;
  border-top: solid 2px #000;
  border-bottom: solid 2px #000;
  font-size: 16px;
}
.job-small-text {
  font-size: 12px;
}
.job-table th,
.job-table td {
  border-bottom: dashed 1px #000;
  padding: 40px 0;
}
.job-table .last th,
.job-table .last td {
  border: none;
}
.job-table th {
  width: 20%;
  text-align: left;
  padding: 0 2%;
}
.triangle {
  display: inline-block;
  border-top: 0.5em solid transparent;
  border-left: 0.8em solid black;
  border-bottom: 0.5em solid transparent;
  vertical-align: middle;
  margin-bottom: 0.2em;
}
.triangle2 {
  display: inline-block;
  border-right: 0.5em solid transparent;
  border-top: 0.8em solid black;
  border-left: 0.5em solid transparent;
  vertical-align: middle;
  margin-bottom: 0.2em;
}

@media screen and (max-width: 800px) {
  #job.c-company-bk {
    padding: 25% 0 10%;
  }
  .job-border-box {
    padding: 50px 20px;
    border-radius: 10px;
    margin: 25px 0;
  }
  .job-table {
    display: grid;
  }
  .job-table th,
  .job-table td {
    display: block;
  }
  .job-table th {
    border: none;
    width: 100%;
    padding: 1.5em 0 0 0;
  }
  .job-table td {
    padding: 1em 0 1.5em;
  }
}
#job .sp {
  display: none;
}
#job .h3-top {
  font-size: clamp(20px, 3vw, 35px);
}
@media screen and (max-width: 800px) {
  #job .pc {
    display: none;
  }
  #job .sp {
    display: block;
  }
}
