@charset "utf-8";

@keyframes infiniteScroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

@keyframes flyInFromLeft {
  0% {
    opacity: 0;                   
    transform: translateX(-15px); 
  }
  100% {
    opacity: 1;                   
    transform: translateX(0);     
  }
}

@keyframes flyInFromRight {
  0% {
    opacity: 0;
    transform: translateX(15px); 
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

/* ============================================================================== */
/* 共通設定*/

body {
  overflow-x: hidden; 
	margin: 0;
  width: 100%;
  font-family: "NotoSansJP";
}

.original-gradient {
  position: fixed;
	z-index: 0;
	top: 0;
  left: 0;
  right: 0;
	bottom: 0;
  background-image: radial-gradient(rgba(255, 255, 255, 0), rgba(0, 0, 0, 0.1));
  pointer-events: none;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

canvas { 
	position: fixed;
	z-index: -1;        
	top: 0;
	left: 0;
	width: 100vw !important;
	height: 100vh !important;
	pointer-events: none; 
	opacity: 0.3;        
}

.fv-center-overlay {
	position: fixed;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.5s ease;
	background: radial-gradient(
		circle var(--ov-size, 45vmin) at var(--ov-x, 50%) var(--ov-y, 50%),
		rgba(255, 255, 255, 1) 0%,
		rgba(255, 255, 255, 0.6) 30%,
		rgba(255, 255, 255, 0.2) 60%,
		rgba(255, 255, 255, 0) 90%
	);
}
.fv-center-overlay.is-visible { opacity: 1; }

.content-wrapper {
	position: relative;
	z-index: 1; 
}

body {
  overflow: hidden;
}

body.is-show-content {
  overflow: auto;
}

/* =========================================================
   ローディング画面
   ========================================================= */

.loading-screen {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: #FFFFFF;
  z-index: 999999;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: opacity 0.8s ease, visibility 0.8s ease;
}

.loading-screen::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: radial-gradient(rgba(255, 255, 255, 0), rgba(0, 0, 0, 0.1));
  pointer-events: none;
}

/* JSで付与：ローディング完了時に背景全体をフワッと消すクラス */
.loading-screen.is-loaded {
  opacity: 0;
  visibility: hidden;
  pointer-events: none; /* クリックの邪魔にならないようにする */
}

/* --- ロゴの動き --- */
.loading-logo {
  width: 15vw;
  opacity: 0;
  transition: opacity 1.0s ease;
}

@media screen and (max-width: 767px) {
  .loading-logo {
    width: 40vw;
  }
}

.loading-logo.is-show {
  opacity: 1;
}

.loading-logo.is-hide {
  opacity: 0;
}

/* =========================================================
   ヘッダーフェードイン用装飾
   ========================================================= */

.l-header {
  opacity: 0; 
  transition: transform 0.3s ease, opacity 0.8s ease !important; 
}

.l-header.is-show-header {
  opacity: 1;
}

/* index ページ固有：ヘッダーテキストを黒に */
.header-list-txt {
  color: #081A00;
}

.content-wrapper {
  opacity: 0; 
  transition: opacity 1.2s ease;
}

canvas {
  opacity: 0 !important; 
  transition: opacity 1.2s ease;
}

body.is-show-content .content-wrapper {
  opacity: 1;
}
body.is-show-content canvas {
  opacity: 0.3 !important;  
}


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

@media screen and (max-width: 1024px) {

/* ============================================================================== */
/* fv */

/* ▼ 菱形アニメーション一時無効化のためコメントアウト（復活時はブロックコメントを外す） */
/*
.fv-scroll-area {
  position: relative;
  height: 100vh;
  z-index: 2;
}
.fv-sticky-wrap {
  position: sticky;
  top: 0;
  height: 100vh;
  width: 100%;
  overflow: hidden;
}
*/

.l-fv {
	display: flex;
	flex-direction: column;
  /* ▼ 菱形アニメーション一時無効化のためコメントアウト（復活時は次の3行のコメントを外す） */
  /* position: absolute; */
  /* top: 0; */
  /* left: 0; */
  width: 100%;
  height: 100vh !important;
  padding: 50px 0 0 0;
  box-sizing: border-box;
  overflow-x: hidden;
  overflow-y: auto;
}

.fv-txt {
  margin-top: auto;
  flex-shrink: 0;
  padding-top: 100px;
  padding-bottom: 50px;
}

.fv-txt-1{
	padding: 0 0 0 3.75vw;
	width: 81.25vw; 
}

.fv-txt-2-bg {
  overflow: hidden; 
  display: flex;
  margin-top: 5.417vw;
  margin-left: 0.667vw;
  width: 170vw; 
  height: 35.625vw; 
  align-items: center; 
  background-image: url(../../images/bg_scroll.png);
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: contain; 
  -webkit-mask-image: url(../../images/bg_scroll.png);
  mask-image: url(../../images/bg_scroll.png);
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-position: 50% 50%;
  mask-position: 50% 50%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

.fv-txt-2-scroll {
  display: flex;
  width: max-content; 
  animation: infiniteScroll 90s linear infinite; 
	animation-play-state: paused;
  mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><polygon points="15,0 85,0 100,35 100,65 85,100 15,100 0,65 0,35" fill="black"/></svg>');
  -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><polygon points="15,0 85,0 100,35 100,65 85,100 15,100 0,65 0,35" fill="black"/></svg>');
  mask-size: cover;
  -webkit-mask-size: cover;
  mask-position: center center;
  -webkit-mask-position: center center;
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
}

.fv-txt-2-scroll.is-start {
  animation-play-state: running;
}

.fv-txt-2-scroll picture {
  display: flex; 
  flex-shrink: 0; 
  margin-right: 10vw; 
  align-items: center;
}

.fv-txt-2 {
  flex-shrink: 0; 
  height: 35vw;
  width: auto !important;
  max-width: none !important;
}

.fv-txt-3{
	padding-left: 26.25vw;
	margin-top: 4.467vw;
	line-height: 148%; 
	letter-spacing: 1vw;
	font-family: "PlusJakartaSans";
	font-size: 5vw;
	font-weight: 700;
	color: #081A00;
}

.fv-txt-3-A{
	line-height: 148%;
	letter-spacing: 1vw;
	font-family: "PlusJakartaSans";
	font-size: 5vw;
	font-weight: 700;
	color: #00ff6a;
}

/* SP: .fv-cta と .fv-scroll を下端で横並びにするラッパ */
.fv-bottom {
	margin-top: auto;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	flex-shrink: 0;
	width: 100%;
	box-sizing: border-box;
	padding-left: 3.75vw;
	padding-right: 3.125vw;
}

/* SP: Figma enventバナー。480 基準の vw（480px 時 239×101×8） */
.fv-cta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	box-sizing: border-box;
	gap: 1.667vw;
	margin-bottom: 5.833vw;
	flex-shrink: 0;
	width: min(49.792vw, 100%);
	min-height: 21.042vw;
	height: auto;
	padding: 5vw 4.16vw;
	text-decoration: none;
	border: none;
	border-radius: 1.667vw;
	background: #081a00;
	background-image: none;
	color: #fff;
	transition: background-color 0.3s ease;
}

.fv-cta-pc-txt {
	margin: 0;
	font-family: "ZenKakuGothicNew", "Zen Kaku Gothic New", sans-serif;
	font-size: 3.75vw;
	font-weight: 700;
	line-height: 1.42;
	letter-spacing: 0.113vw;
	text-align: left;
}

.fv-cta-pc-line1 {
	color: #fff;
}

.fv-cta-pc-line2 {
	color: #00ff6a;
}

.fv-cta-pc-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 2.708vw;
	height: 2.708vw;
}

.fv-cta-pc-btn-arrow {
	width: 2.708vw;
	height: 2.708vw;
	fill: #00ff6a;
	transition: fill 0.3s ease;
}

@media (hover: hover) and (pointer: fine) {
	.fv-cta:hover {
		background: #0f2a0f;
	}

	.fv-cta:hover .fv-cta-pc-btn-arrow {
		fill: #00ff6a;
		animation: flyInFromLeft 0.4s ease forwards;
	}
}

.fv-cta:active {
	background: #0f2a0f;
}

/* FV 右下の SCROLL 画像（Figma SP 1849:300 基準、480 で 16×131） */
.fv-scroll {
	display: block;
	width: 3.333vw;
	height: 27.292vw;
	object-fit: contain;
	pointer-events: none;
}

/* ============================================================================== */
/* fv-sub */

.l-fv-sub {
  /* ▼ 菱形アニメーション一時無効化のためコメントアウト（復活時は下記コメントアウト群を外す） */
  /* position: absolute; */
  /* z-index: 3; */
  /* pointer-events: none; */
  /* top: 0; */
  /* left: 0; */
  width: 100%;
	/* height: 187.5vw; */
  height: 100vh !important;
  background-image: url(../../images/bg_fv_sp.png);
  background-repeat: no-repeat;
  background-position: 50% 0;
  background-size: cover;
  background-color: aliceblue;
  /* --clip-size: 0vmax; */

  /* PCと同じ角丸菱形SVGマスク（一時無効化） */
  /* -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Crect x='15' y='15' width='70' height='70' rx='8' fill='black' transform='rotate(45 50 50)'/%3E%3C/svg%3E"); */
  /* mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Crect x='15' y='15' width='70' height='70' rx='8' fill='black' transform='rotate(45 50 50)'/%3E%3C/svg%3E"); */
  /* -webkit-mask-size: var(--clip-size) var(--clip-size); */
  /* mask-size: var(--clip-size) var(--clip-size); */
  /* -webkit-mask-position: center; */
  /* mask-position: center; */
  /* -webkit-mask-repeat: no-repeat; */
  /* mask-repeat: no-repeat; */
}

.fv-sub-content {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	/* ▼ 菱形アニメーション一時無効化のためコメントアウト（復活時は下記コメントアウトを外す） */
	/* pointer-events: none; */
	width: 100%;
	height: 100%;
	box-sizing: border-box;
	/* opacity: 0; */
	/* transition: opacity 1.2s ease; */
}

/* ▼ 菱形アニメーション一時無効化のためコメントアウト（復活時はブロックコメントを外す） */
/*
.fv-sub-content.is-active {
	opacity: 1;
	pointer-events: auto;
}
*/

.fv-sub-txt{
	width: 81.667vw;
	text-align: justify;
	letter-spacing: 0.125vw;
	line-height: 180%; 
	font-family: "ZenKakuGothicNew";
	font-size: 4.167vw;
	font-weight: 700;
	color: #FFF;
}

.fv-sub-txt-message{
	margin: 10vw 0 0 1.042vw;
	width: 78.125vw;
	line-height: 130%; 
	letter-spacing: 0.313vw;
	font-family: "ZenKakuGothicNew";
	font-size: 10.417vw;
	font-style: normal;
	font-weight: 750;
	color: #FFF;
}


/* ============================================================================== */
/* news */


.scroll-container {
  position: relative;
  width: 100vw;
  margin-left: -5.417vw;
  margin-right: -5vw;
}

.news-slide {
  --scroll-offset-x: 0px; 
  background-image: url(../../images/txt_gamechanger.png), url(../../images/txt_solebrainrecruit.png);
	background-size: auto 20%, auto 20%;
  background-repeat: no-repeat, no-repeat;
  background-position: 
    calc(50% - var(--scroll-offset-x)) 30%, 
    calc(50% + var(--scroll-offset-x)) 85%;   
}

.news-slide-pic{
	margin-left: auto;
	margin-right: auto;
	width: 100vw;
}

.l-news{
	padding: 18.125vw 5vw 0 5.417vw;
	height: 166.667vw;
}

.ttl-news{
	line-height: 128%; 
	letter-spacing: 0.375vw;
	font-family: "PlusJakartaSans";
	font-size: 5.833vw;
	font-weight: 500;
	color: #081A00;
}

.news-list-title-topic{
	display: flex;
	flex-wrap: wrap;
	width: 90vw;
}

.news-list-title{
	margin-top: 5.625vw;
}

.news-date{
	display: flex;
	padding-left: 0.625vw;
	width: 20.833vw;
	margin-bottom: 1.875vw;
	align-items: center;
	letter-spacing: 0.104vw;
	line-height: 3.333vw; 
	font-family: "PlusJakartaSans";
	font-size: 2.917vw;
	font-weight: 500;
	color: #959595;
}

.news-type{
	display: flex;
	justify-content: center;
	gap: 2.083vw;
	margin-bottom: 1.875vw;
	width: 10vw;
	height: 4.167vw;
	align-items: center;
	text-align: center;
	font-size: 2.917vw;
	letter-spacing: 0.1vw;
	font-weight: 400;
	border-radius: 0.417vw;
	border: 1px solid #081A00;
	background: #FFF;
	color: #081A00;
}

.news-txt{
	padding-left: 0.625vw;
	line-height: 150%;
	letter-spacing: 0.083vw;
	font-size: 3.333vw;
	font-weight: 500;
	color: #081A00;
}

.news-content-more{
	display: flex;
	justify-content: flex-end;
	margin-top: 4.167vw;
  align-items: stretch;
}

.news-content-more-btn{
	text-align: center;
	letter-spacing: 0.1vw;
	font-family: "PlusJakartaSans";
	font-size: 3.75vw;
	font-weight: 500;
	color: #081A00;
}

.btn-basic-news{
	display: flex;
	width: 1.875vw;
}

.pc-news-list{
	display: none;
}

.news-pic-wrapper {
  position: relative;
  margin: 14.583vw auto 0;
  width: 90.417vw;
  overflow: hidden;
  border-radius: 3.333vw;
}

.news-slide-pic {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover; 
  transform: scale(0); 
  transform-origin: center center;
  opacity: 0;
}

.news-slide-pic:first-child {
  position: relative; 
  transform: scale(1);
  opacity: 1;
}

.news-slide-pic.is-active {
  z-index: 2;
  opacity: 1;
}

/* ============================================================================== */
/* aboutus */

.ttl-section{
	display: flex;
	padding: 0;
	margin: 0 0 6.25vw 0;
	align-items: center;
	line-height: 148%; 
	letter-spacing: 0.3vw;
	font-family: "PlusJakartaSans";
	font-size: 2.917vw;
	font-weight: 700;
	color: #081A00;
}

.l-aboutus .ttl-section::before{
	content: "";
	display: inline-block;
	margin-right: 1.729vw;
	width: 1.869vw;
	height: 1.869vw;
	border-radius: 0.417vw;
	background-color: #00FF6A;
	transform: rotate(-45deg);
}

.l-aboutus{
	position: relative;
	padding-top: 9.167vw;
	height: 215.833vw;
}

.aboutus-main{
	padding: 10.833vw 5vw 0 5.625vw;
}

.ttl-section-sub{
	width: 81.667vw;
}

.txt-section{
	margin: 10.417vw 0 0 -0.625vw;
	width: 90vw;
	letter-spacing: 0.113vw;
	line-height: 200%;
	font-size: 3.333vw;
	font-weight: 500;
	color: #081A00;
}

.btn-more{
	display: flex;
	justify-content: space-between;
	padding: 0 2.083vw 0 1.042vw;
	margin: 18.333vw 0 0 auto;
	width: 63.333vw;
	height: 8.75vw;
	align-items: flex-start;
	text-align: right;
	font-size: 4.167vw;
	font-weight: bold;
	border-bottom: 2px solid #081A00;
}

.btn-more-txt{
	line-height: 100%; /* 18px */
	letter-spacing: 0.113vw;
	font-family: "NotoSansJP", "Noto Sans JP", sans-serif;
	font-size: 3.75vw;
	font-style: normal;
	font-weight: 700;
	color: #081A00;
}

 
.pic-aboutus-work{
	position: absolute;
	left: 0px;
	bottom: -59.792vw;
	width: 100vw; 
} 

/* ============================================================================== */
/* business */

.ttl-section-business{
	display: flex;
	padding: 0;
	margin: 0 0 7.083vw 0;
	align-items: center;
	line-height: 148%; 
	letter-spacing: 0.3vw;
	font-family: "PlusJakartaSans";
	font-size: 2.917vw;
	font-weight: 600;
	color:#FFF;
}

.ttl-section-business::before{
	content: "";
	display: inline-block;
	margin-right: 1.729vw;
	width: 1.869vw;
	height: 1.869vw;
	transform: rotate(-45deg);
	border-radius: 0.417vw;
	background-color: #00FF6A;
}

.l-business{
	padding-top: 60vw;
	height: 333.333vw;
}

.business-main{
	padding: 11.667vw 6.667vw 0 5.417vw;
}

.ttl-section-sub-business{
	width: 82.292vw;
}

.business-content-txt{
	margin: 10vw 0 0 -0.625vw;
}

.txt-section-business{
	width: 90vw;
	text-align: justify;
	letter-spacing: 0.113vw;
	line-height: 200%; 
	font-family: "ZenKakuGothicNew";
	font-size: 3.333vw;
	font-style: normal;
	font-weight: 500;
	color: #FFF;
}

.business-content-img{
	margin-left: -38.542vw;
	margin-top: 18.75vw;
}

.business-content-img-ttl{
	width: 111.667vw;
}

/* 回転するオブジェクト */

.l-orbit-section {
	--orbit-size: 80vw;
  --item-size: 18vw; 
  background-color: transparent; 
  padding: 10vw 0;
  overflow: hidden;
	margin-top: 2.083vw;
	width: 123.125vw; 
	margin-left: -47.917vw;

}

.orbit-area {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-height: 100vw;
  font-family: "ZenKakuGothicNew", sans-serif;
}

.orbit-center {
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  width: calc(var(--orbit-size) * 0.55);
  height: calc(var(--orbit-size) * 0.55);
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 50%;
  text-align: center;
  color: #fff;
  font-size: 3.5vw;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.1em;
  z-index: 2;
}

.orbit-system {
  position: absolute;
  width: var(--orbit-size);
  height: var(--orbit-size);
  transform: rotate(var(--current-rotation, 0deg));
  transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.orbit-path {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 50%;
}

.orbit-wrapper {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  transform: rotate(var(--angle));
}

.orbit-item {
  position: absolute;
  top: calc(var(--item-size) * -0.5);
  left: calc(var(--item-size) * -0.5);
  width: var(--item-size);
  height: var(--item-size);
  display: flex;
  justify-content: center;
  align-items: center;
  background: #fff;
  color: #081A00;
  border-radius: 50%;
  font-size: 3vw;
  font-weight: 700;
  text-align: center;
  line-height: 1.3;
  transform: translateX(calc(var(--orbit-size) / 2)) 
             rotate(calc((var(--current-rotation, 0deg) + var(--angle)) * -1))
             scale(var(--item-scale, 1));
  transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1), 
              background-color 0.4s ease, 
              color 0.4s ease,
              box-shadow 0.4s ease;
}

.orbit-item.is-highlight {
  background: #00FF6A;
  --item-scale: 1.25; 
}

.btn-more-business{
	display: flex;
	justify-content: space-between;
	padding-right: 3.125vw;
	margin: 93px -10px 0 auto;
	width: 63.333vw;
	height: 8.75vw;
	align-items: flex-start;
	text-align: right;
	font-size: 4.167vw;
	font-weight: bold;
	border-bottom: 2px solid #fff;
}

.btn-more-txt-business{
	padding-left: 1.042vw;
	line-height: 100%; 
	letter-spacing: 0.113vw;
	font-size: 3.75vw;
	font-weight: 700;
	text-decoration: none;
	color: #fff;
}

.btn-basic{
	width: 3.333vw;
}

/* ============================================================================== */
/* environment */

.ttl-section-environment{
	display: flex;
	padding: 0;
	margin: 0 0 6.875vw 0;
	align-items: center;
	line-height: 148%; 
	letter-spacing: 0.3vw;
	font-family: "PlusJakartaSans";
	font-size: 2.917vw;
	font-weight: 600;
	color: #081A00;
}

.ttl-section-environment::before{
	content: "";
	display: inline-block;
	margin-right: 1.729vw;
	width: 1.869vw;
	height: 1.869vw;
	transform: rotate(-45deg);
	border-radius: 0.417vw;
	background-color: #00FF6A;;
}

.l-environment{
	position: relative;
	padding-top: 21.875vw;
	height: 279.792vw;
  margin-bottom: 115vw;
}

.environment-main{
	padding: 11.25vw 6.667vw 0 5vw;
}

.ttl-section-sub-environment{
	width: 70.208vw ;
}

.environment-txt-section{
	margin: 9.792vw 0 3.75vw 1.458vw;
	text-align: justify;
	line-height: 200%;
	letter-spacing: 0.104vw;
	font-size: 3.333vw;
	font-style: normal;
	font-weight: 500;
	color: #081A00;
}

.environment-slide{
	display: flex;
	flex-direction: column;
}

.environment-box{
	display: flex;
	flex-shrink: 0;
	justify-content: space-between;
	padding: 5.833vw 7.708vw 10.833vw 5vw;
	margin: 4.583vw 3.333vw 0 0;
	width: 90vw;
	height: 30vw;
	border-radius: 1.667vw;
	background: #FFF;
}

.environment-box-pic img{
	width: 13.333vw;
	height: 13.333vw;
}

.environment-box-txt{
	width: 60vw;
	text-align: justify;
	font-size: 2.917vw;
	font-weight: 500;
	line-height: 156%;
	letter-spacing: 0.083vw;
	color: #081A00;
}

.environment-box-name{
	margin-top: -9.375vw;
	text-align: center;
	font-family: "PlusJakartaSans";
	font-size: 2.917vw;
	font-weight: 400;
	line-height: 168%; 
	letter-spacing: 0.088vw;
	color: #081A00;
}

.environment-box-join{
	width: 60vw;
	line-height: 168%; 
	letter-spacing: 0.088vw;
	font-size: 2.917vw;
	font-style: normal;
	font-weight: 500;
	color: #C4C4C4;
}

.environment-btn-more{
	display: flex;
	justify-content: space-between;
	padding-right: 3.125vw;
	margin: 64px -10px 0 auto;
	width: 63.333vw;
	height: 8.75vw;
	align-items: flex-start;
	text-align: right;
	font-size: 4.167vw;
	font-weight: bold;
	border-bottom: 2px solid #081A00;
}

.btn-more-txt{
	padding-left: 1.042vw;
	text-decoration: none;
	color: #081A00;
}

.pic-environment-office{
	position: absolute;
	bottom: -84.792vw;
	left: 41.875vw;
	width: 53.125vw;
}

.pic-environment-mtg{
	position: absolute;
	bottom: 0px;
	left: 5.208vw;
	width: 89.792vw;
}

.pic-environment-lecture{
	position: absolute;
	bottom: -48.333vw;
	left: 5.208vw;
	width: 31.458vw;
}

/* ============================================================================== */
/* voice */

.voice-ttl-section{
	display: flex;
	padding: 0;
	margin: 0 0 6.25vw 0.417vw;
	align-items: center;
	line-height: 148%; /* 47.36px */
	letter-spacing: 0.229vw;
	font-family: "PlusJakartaSans";
	font-size: 2.917vw;
	font-weight: 700;
	color: #081A00;
}

.voice-ttl-section::before{
	content: "";
	display: inline-block;
	margin-right: 1.729vw;
	width: 1.869vw;
	height: 1.869vw;
	transform: rotate(-45deg);
	border-radius: 0.417vw;
	background-color: #00FF6A;;
}

.l-voice{
	padding-top: 104.167vw;
	min-height: 437.5vw;
	/* background: radial-gradient(64.34% 64.34% at 50% 50%, rgba(255, 255, 255, 0.00) 0%, rgba(0, 0, 0, 0.09) 100%); */
}

.voice-main{
	padding: 10.833vw 6.667vw 0px 5.417vw;
}

.voice-ttl-section-sub{
	width: 53.125vw;
}

.voice-content-txt{
	margin-top: 10vw;
	width: 88.125vw;
}

.txt-section-voice{
	margin-left: 1.042vw;
	text-align: justify;
	line-height: 200%; 
	letter-spacing: 0.09vw;
	font-size: 3.333vw;
	font-weight: 500;
	color: #081A00;
}

.btn-more-voice{
	display: flex;
	justify-content: space-between;
	padding: 0 3.125vw 0 0;
	margin: 14.583vw -1.667vw 0 auto;
	width: 63.333vw;
	height: 8.75vw;
	align-items: flex-start ;
	text-align: right;
	font-size: 4.167vw;
	font-weight: bold;
	border-bottom: 2px solid #081A00;
}

.btn-more-txt-voice{
	padding-left: 2.083vw;
	line-height: 100%;
	letter-spacing: 0.113vw;
	font-size: 3.75vw;
	font-weight: 700;
	text-decoration: none;
	color: #081A00;
}

.btn-basic-voice{
	width: 3.333vw;
}

.voice-ex{
	padding-top: 18.75vw;
	text-align: center;
}

.voice-ex-pic{
	width: 93.125vw;
}

.voice-ex-content{
	display: flex;
	flex-direction: column;
	margin-top: 5.417vw;
	align-items: center;
}

.voice-ex-content-name{
	display: flex;
	padding:0 2.5vw 0px 0px;
  align-items: center;
	letter-spacing: 0px;
	font-family: "PlusJakartaSans";
	font-size: 6.667vw;
	font-weight: 700;	
	color: #081A00;
}

.voice-ex-content-txt{
	display: flex;
	padding: 1.667vw;
	margin-bottom: 1.667vw;
	height: 9.583vw;
  align-items: center;
	letter-spacing: 0px;
	line-height: 130%; 
	font-size: 6.667vw;
	font-family: "ZenKakuGothicNew";
	font-weight: 700;
	border-radius: 0.833vw;
	color: #081A00;
	background: #fff;
	transition: background 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.swiper-slide-active .voice-slide:hover .voice-ex-content-txt {
	background: linear-gradient(90deg, #00FF6A 0.01%, #0FE 99.99%);
}

.voice-ex-attribute{
	display: flex;
	align-items: center;
	justify-content: center;
	margin-top: 2.917vw;
}

.voice-ex-attribute-txt{
	display: inline-flex;
	padding: 2.083vw 2.917vw 2.083vw 2.917vw;
	margin: 0 0 0 2.917vw;
	height: 5.625vw;
	align-items: center;
	font-size: 3.333vw;
	font-weight: 500;
	border-radius: 0.833vw;
	background: #081A00;
	color: #FFF;
	transition: background 0.4s cubic-bezier(0.33, 1, 0.68, 1), color 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.swiper-slide-active .voice-slide:hover .voice-ex-attribute-txt {
	background: linear-gradient(90deg, #00FF6A 0.01%, #0FE 99.99%);
	color: #081A00;
}

.voice-ex-content-arrow{
	position: relative;
	display: flex;
	justify-content: center;
	margin-top: 9.375vw;
	padding-bottom: 16.667vw;
	align-items: center;
}

.voice-ex-content-arrow::after {
  content: "";     
  position: absolute;
  bottom: 0;    
  left: 50%;  
  width: 90vw; 
  height: 0.417vw;  
  background-color: #D9D9D9; 
  transform: translateX(-50%); 
}

.voice-ex-content-more{
	margin-right: 3.125vw;
	text-align: center;
	line-height: 100%; 
	letter-spacing: 0.113vw;
	font-family: "PlusJakartaSans";
	font-size: 4.167vw;
	font-weight: 600;
	color: #081A00;
}

/* ============ Voice Swiper カルーセル (SP) ============ */
.voice-swiper-area {
  margin-top: 8vw;
}

.voice-swiper {
  overflow: hidden;
}

.voice-slide {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.voice-slide-img {
  position: relative;
  width: 70vw;
  max-width: 70vw;
  margin: 0 auto;
}

.voice-slide-img::after {
  content: "";
  position: absolute;
  inset: -1vw;
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
  background: #081A00;
  z-index: 0;
  transition: background 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.voice-slide-img .voice-ex-pic-wrapper {
  position: relative;
  z-index: 1;
  width: 100%;
  padding-bottom: 100%;
  overflow: hidden;
  clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
  border-radius: 2.5vw;
}

.voice-slide-img .voice-ex-pic-wrapper img {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 142%;
  height: 142%;
  transform: translate(-50%, -50%);
  object-fit: cover;
}

.voice-slide-img .voice-ex-pic {
  display: block;
  transition: transform 0.5s cubic-bezier(0.33, 1, 0.68, 1);
}

.swiper-slide-active .voice-slide:hover .voice-slide-img::after {
  background: linear-gradient(135deg, #00FF6A, #0FE);
}

.swiper-slide-active .voice-slide:hover .voice-ex-pic {
  transform: translate(-50%, -50%) scale(1.1);
}

.voice-slide-txt {
  width: 100%;
  margin-top: 5vw;
  text-align: center;
  opacity: 0;
  transition: opacity 0.5s cubic-bezier(0.33, 1, 0.68, 1);
  pointer-events: none;
}

.swiper-slide-active .voice-slide-txt {
  opacity: 1;
  pointer-events: auto;
}

/* --- Voice Swiper コントロール (SP) --- */
.voice-swiper-ctrl {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 4.167vw 5vw 0;
  position: relative;
  z-index: 10;
}

.voice-swiper-pagination {
  display: flex;
  gap: 2.5vw;
  align-items: center;
}

.voice-swiper-pagination .swiper-pagination-bullet {
  width: 1.667vw;
  height: 1.667vw;
  background-color: #D9D9D9;
  transform: rotate(45deg);
  border-radius: 0;
  opacity: 1;
  cursor: pointer;
  transition: background-color 0.3s ease, width 0.3s ease, height 0.3s ease;
}

.voice-swiper-pagination .swiper-pagination-bullet-active {
  width: 2.5vw;
  height: 2.5vw;
  background-color: #081A00;
}

.voice-swiper-btns {
  display: flex;
  gap: 2vw;
}

.voice-swiper-prev,
.voice-swiper-next {
  display: flex !important;
  justify-content: center;
  align-items: center;
  width: 7.917vw;
  height: 7.917vw;
  border-radius: 0.833vw;
  background: #FFF;
  cursor: pointer;
  pointer-events: auto;
  transition: background-color 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.voice-swiper-prev svg,
.voice-swiper-next svg {
  width: 16px;
  height: 16px;
  fill: #959595;
}

.voice-swiper-prev:hover,
.voice-swiper-next:hover {
  background: #081A00;
}

.voice-swiper-prev:hover svg {
  fill: #00FF6A;
}

.voice-swiper-next:hover svg {
  fill: #00FF6A;
}

/* ============================================================================== */
/* career */

.careers-ttl-section{
	display: flex;
	justify-content: center;
	padding: 0;
	align-items: center;
	letter-spacing: 0.258vw;
	line-height: 4.167vw;
	font-family: "PlusJakartaSans";
	font-size: 2.917vw;
	font-weight: 600;
	color: #fff;
}

.careers-ttl-section::before{
	content: "";
	display: inline-block;
	margin: 0 2.083vw 0 0.625vw;
	width: 1.856vw;
	height: 1.856vw;
	transform: rotate(-45deg);
	border-radius: 0.417vw ;
	background-color: #00FF6A;
}

.l-careers{
	padding-top: 33.333vw;
	height: 227.708vw;
	background-image: url(../../images/bg_careers_sp.png);
	background-repeat:no-repeat;
  background-position: 50% 0;
	background-size:cover;
}

.careers-main{
	text-align: center;
}

.ttl-section-sub-careers{
	margin-top: 7.292vw;
	width: 67.083vw;
}

.careers-main-txt{
	text-align: center;
	margin: 11.042vw auto 0 auto;
	width: 86.667vw;
	line-height: 200%; 
	letter-spacing: 0.1vw;
	font-size: 2.91vw;
	font-weight: 500;
	color: #FFF;
}

.careers-box{
	margin-top: 8.333vw;
}

.careers-box-content{
	position: relative;
	display: flex;
  justify-content: space-between;
  overflow: hidden;
	padding-left: 5vw;
	margin: 0 auto 5.833vw auto;
	width: 90vw;
	height: 36.042vw;
	align-items: center;
	text-decoration: none;
	border-radius: 1.667vw;
}

.careers-box-content::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, #00ff6a 0.01%, #0ff 99.99%);
}

.careers-box-content::after {
	content: "";
	position: absolute;
	inset: 0;
	background: #fff;
	z-index: 1;
	opacity: 0;
}

.careers-box-accent {
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 1.667vw;
	background: #00ff6a;
	border-radius: 1.667vw 0 0 1.667vw;
	z-index: 2;
}

.careers-box-content .careers-box-content-ttl{
	color: #fff;
}

.careers-box-content-left{
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
  justify-content: space-between;
	margin-bottom: 1.042vw;
	width: 33.542vw;
	height: 11.042vw;
	text-align: left;
}

.careers-box-content-ttl{
	line-height: 110%;
	letter-spacing: 0.208vw;
	font-family: "PlusJakartaSans";
	font-size: 2.917vw;
	font-style: normal;
	font-weight: 600;
	color: #00FF6A;
}

.careers-box-content-main-txt{
	line-height: 100%;
	letter-spacing: 0.479vw;
	font-family: "ZenKakuGothicNew";
	font-size: 6.25vw;
	font-weight: 700;
	color: #081A00;
}

.careers-box-content-center-txt{
	position: relative;
	z-index: 2;
	display: flex;
	margin: 0 0 0.625vw 1.042vw;
	letter-spacing: 0.px;
}

.careers-box-content-sub-txt{
	flex-shrink: 0;
	margin: 1.667vw 0 0 7.5vw;
	font-size: 3.333vw;
	font-weight: 500;
	color: #081A00;
}

.careers-btn{
	position: relative;
	z-index: 2;
	display: flex;
	justify-content: center;
	align-items: center;
	margin-top: 27.083vw;
	width: 9.167vw;
	height: 9.167vw;
	border-radius: 2.083vw 0 1.667vw 0;
	background: #081A00;
}

.careers-btn svg{
  width: 3.13vw;
  height: 3.13vw;
}


}


/* ============================================================================== */
/* 以下タブレット */
/* ============================================================================== */



@media screen and (min-width: 768px) and (max-width: 1024px) {


.l-fv{
	position: relative;
	padding: 80px 0 0 0;
	box-sizing: border-box;
	height: 133.333vw;
	overflow-x: hidden;
	overflow-y: auto;
	display: flex;
	flex-direction: column;
}

.fv-txt{
	margin-top: auto;
	flex-shrink: 0;
	padding-top: 100px;
	padding-bottom: 100px;
}


.fv-txt-1{
	width: 64.193vw;
	height: 28.385vw;
}

.fv-txt-2-bg {
  margin-left: 24.74vw;
	margin-top: 2.604vw;
  width: 75.521vw;  
  height: 29.427vw;
  background-image: url(../../images/bg_scroll.png);
  background-repeat: no-repeat;
  background-position: left 50%;
	background-size: auto 100%;
  -webkit-mask-image: url(../../images/bg_scroll.png);
  mask-image: url(../../images/bg_scroll.png);
  -webkit-mask-size: auto 100%; 
  mask-size: auto 100%;
  -webkit-mask-position: left 50%;
  mask-position: left 50%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  overflow: hidden; 
  display: flex;
  align-items: center;
}

.fv-txt-2-scroll {
  display: flex;
  width: max-content; 
  animation: infiniteScroll 80s linear infinite; 
	animation-play-state: paused;
  mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><polygon points="15,0 85,0 100,35 100,65 85,100 15,100 0,65 0,35" fill="black"/></svg>');
  -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><polygon points="15,0 85,0 100,35 100,65 85,100 15,100 0,65 0,35" fill="black"/></svg>');
  mask-size: cover;
  -webkit-mask-size: cover;
  mask-position: center center;
  -webkit-mask-position: center center;
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
}

.fv-txt-2-scroll.is-start {
  animation-play-state: running;
}

.fv-txt-2-scroll picture {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  margin-right: 5vw; /* PCでの隙間 */
}

.fv-txt-2 {
  height: 29.297vw; /* ★文字の大きさをここで調整 */
  width: auto !important; /* 横幅は自動で決まるようにする */
  max-width: none !important; /* 共通設定を打ち消す */
  flex-shrink: 0; /* 画像が潰れるのを防ぐ */
}

/*  */

.fv-txt-3{
	/* position: absolute;
	top: 35.069vw;
	left: 5.903vw; */
	text-align: end;
	margin-left: 4vw;
	margin-top: 2.604vw;
	color: #081A00;
	font-family: "PlusJakartaSans";
	font-size: 4.167vw;
	font-weight: 700;
	line-height: 148%; /* 41.44px */
	letter-spacing: 0.486vw;
}

.fv-txt-3-A{
	color: #00ff6a;
	font-family: "PlusJakartaSans";
	font-size: 4.167vw;
	font-weight: 700;
	line-height: 148%;
	letter-spacing: 0.486vw;
}

.fv-cta {
	margin-bottom: 3vw;
}

}

/* タブレット: l-business / l-environment 境界の余白（vw がピクセル換算で大きくなりすぎるのを抑える） */
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .l-business {
    height: auto;
    min-height: 0;
  }

  .l-environment {
    padding-top: calc(21.875vw / 2);
  }
}

/* ============================================================================== */
/* 以下PC */
/* ============================================================================== */


@media screen and (min-width: 1025px) {


body {
	overflow-x: hidden;
	margin: 0;
	width: 100%;
	font-family: "NotoSansJP";
}

.content-wrapper {
	position: relative;
	margin: 0 auto !important; 
	width: 100%;
	max-width: 100vw;
  }

.content{
	position: relative;
	z-index: 1;
}


/* タイトル-共通 */

/* fv */

.l-fv{
	position: relative;
	padding: 100px 0 0 2.778vw;
	box-sizing: border-box;
	height: 62.5vw;
	overflow-x: hidden;
	overflow-y: auto;
	display: flex;
	flex-direction: column;
}

.fv-txt{
	margin-top: auto;
	flex-shrink: 0;
	padding-top: 100px;
	padding-bottom: 100px;
}


.fv-txt-1{
	width: 40.069vw;
	height: 17.708vw;
}

.fv-txt-2-bg {
  margin-left: 34.5vw;
	margin-top: -5vw;
  width: 70vw;  
  height: 17.708vw;
  
  /* 2. 背景画像の設定 */
  background-image: url(../../images/bg_scroll.png);
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: contain; /* ★coverよりcontainの方が形が崩れにくい場合があります */
  
  /* 3. マスク（切り抜き）の設定 */
  -webkit-mask-image: url(../../images/bg_scroll.png);
  mask-image: url(../../images/bg_scroll.png);
  -webkit-mask-size: contain; /* ★上のbackground-sizeと合わせる */
  mask-size: contain;
  -webkit-mask-position: 50% 50%;
  mask-position: 50% 50%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  
  /* 4. その他の設定 */
  overflow: hidden; 
  display: flex;
  align-items: center;
}

/* ▼ ★重要修正：SVGマスクを追加 ▼ */
.fv-txt-2-scroll {
  display: flex;
  width: max-content; /* はみ出しても文字の長さを維持する */
  animation: infiniteScroll 80s linear infinite; 
	animation-play-state: paused;
  
  /* ========================================================= */
  /* SVGマスクの設定：テキストを緑の六角形の内部に収める */
  /* ========================================================= */
  
  /* 正確な六角形の形状を定義するSVGデータをCSSに直接埋め込む */
  mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><polygon points="15,0 85,0 100,35 100,65 85,100 15,100 0,65 0,35" fill="black"/></svg>');
  -webkit-mask-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><polygon points="15,0 85,0 100,35 100,65 85,100 15,100 0,65 0,35" fill="black"/></svg>');
  
  /* マスクを要素全体に広げる */
  mask-size: cover;
  -webkit-mask-size: cover;
  
  /* マスクを中央に配置 */
  mask-position: center center;
  -webkit-mask-position: center center;
  
  /* マスクを繰り返さない */
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;

}

.fv-txt-2-scroll.is-start {
  animation-play-state: running;
}

.fv-txt-2-scroll picture {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  margin-right: 5vw; /* PCでの隙間 */
}

.fv-txt-2 {
  height: 17vw; /* ★文字の大きさをここで調整 */
  width: auto !important; /* 横幅は自動で決まるようにする */
  max-width: none !important; /* 共通設定を打ち消す */
  flex-shrink: 0; /* 画像が潰れるのを防ぐ */
}

/*  */

.fv-txt-3{
	/* position: absolute;
	top: 35.069vw;
	left: 5.903vw; */
	margin-left: 4vw;
	margin-top: -8vw;
	color: #081A00;
	font-family: "PlusJakartaSans";
	font-size: 1.806vw;
	font-weight: 700;
	line-height: 148%; /* 41.44px */
	letter-spacing: 0.486vw;
}

.fv-txt-3-A{
	color: #00ff6a;
	font-family: "PlusJakartaSans";
	font-size: 1.806vw;
	font-weight: 700;
	line-height: 148%;
	letter-spacing: 0.486vw;
}

.fv-bottom {
	margin-top: auto;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	flex-shrink: 0;
	width: 100%;
	box-sizing: border-box;
	padding-right: 3.819vw;
}

.fv-cta {
	margin-bottom: 3vw;
	padding: 1.94vw;
	box-sizing: border-box;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.833vw;
	/* 1440px 時: 327px × 122px、角丸 8px */
	width: calc(327 * 100vw / 1440);
	height: calc(122 * 100vw / 1440);
	min-height: 0;
  text-decoration: none;
	border-radius: calc(8 * 100vw / 1440);
	background: #081a00;
	background-image: none;
	color: #fff;
	transition: background-color 0.3s ease;
}

.fv-cta-pc-txt{
	margin: 0;
	font-family: "ZenKakuGothicNew", "Zen Kaku Gothic New", sans-serif;
	/* 1440px 時: 24px、tracking 0.72px */
	font-size: calc(24 * 100vw / 1440);
	font-weight: 700;
	line-height: 1.36;
	letter-spacing: calc(0.72 * 100vw / 1440);
	text-align: left;
}

.fv-cta-pc-line1{
	color: #fff;
}

.fv-cta-pc-line2{
	color: #00ff6a;
}

.fv-cta-pc-btn{
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	/* 1440px 時: 14px */
	width: calc(14 * 100vw / 1440);
	height: calc(14 * 100vw / 1440);
}

.fv-cta-pc-btn-arrow{
	width: calc(14 * 100vw / 1440);
	height: calc(14 * 100vw / 1440);
	fill: #00ff6a;
	transition: fill 0.3s ease;
}

.fv-cta:hover {
	background: #0f2a0f;
}

.fv-cta:hover .fv-cta-pc-btn-arrow {
	fill: #00ff6a;
	animation: flyInFromLeft 0.4s ease forwards;
}

/* FV 右下の SCROLL 画像（Figma PC 1849:580 基準、1440 で 16×160） */
.fv-scroll {
	display: block;
	width: 1.111vw;
	height: 11.111vw;
	object-fit: contain;
	pointer-events: none;
}

/* fv-sub */

.l-fv-sub{
	/* padding: 7.5vw 0 0 6.042vw; */
	display: flex;
	justify-content: flex-start;
	align-items: center;
	padding-left: 6.25vw; /* 1440px 時に 90px */
	height: 62.5vw;
	color: #FFF;
	background: url(../../images/bg_fv.png) no-repeat 50% 0 / cover;
}

.fv-sub-txt{
	width: 54.861vw;
	font-size: 2.5vw;
	font-weight: bold;
	font-family: "ZenKakuGothicNew";
	line-height: 161%;
	letter-spacing: 0.118vw;
}

.fv-sub-txt-message{
	margin-left: 0.139vw;
	margin-top: 1.597vw;
	width: 52.222vw;
	font-size: 4.167vw;
	font-weight: bold;
	font-family: "ZenKakuGothicNew";
	letter-spacing: 0.118vw;
}

.fv-sub-txt-message br{
	display: none;
}

/* fvスクロールアニメーション */

/* ▼ 菱形アニメーションを一時的に無効化（後日復活させる場合は、この @media not all { ... } のラッパーを外す） */
@media not all {

/* =========================================================
   菱形拡大＆スクロールアニメーション用のCSS
   ========================================================= */
/* スクロールする「距離（高さ）」を作る箱 */
.fv-scroll-area {
  position: relative;
  height: 100vh;
  z-index: 2;
}

/* 画面にピタッと張り付く箱 */
.fv-sticky-wrap {
  position: sticky;
  top: 0;
  height: 100vh;
  width: 100%;
  overflow: hidden;
}

/* l-fv と l-fv-sub をピッタリ重ねる */
.l-fv {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh !important; /* ※画面全体を覆うために強制的に100vhにします */
}

.l-fv-sub {
  position: absolute;
	pointer-events: none;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh !important; 
  z-index: 11; /* l-fvより手前 */
  
	display: flex;
	justify-content: center;
	align-items: center;

  /* ▼ 菱形の切り抜き（最初は 0vmax なので何も見えない） */
  --clip-size: 0vmax;
  /* clip-path: polygon(
    50% calc(50% - var(--clip-size)),
    calc(50% + var(--clip-size)) 50%,
    50% calc(50% + var(--clip-size)),
    calc(50% - var(--clip-size)) 50%
  ); */

  /* ▼ 追加：角丸の菱形SVGをマスク（型抜き）として設定 ▼ */
  -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Crect x='15' y='15' width='70' height='70' rx='8' fill='black' transform='rotate(45 50 50)'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Crect x='15' y='15' width='70' height='70' rx='8' fill='black' transform='rotate(45 50 50)'/%3E%3C/svg%3E");
  
  /* 型抜きのサイズをJSの変数（--clip-size）と連動させる */
  -webkit-mask-size: var(--clip-size) var(--clip-size);
  mask-size: var(--clip-size) var(--clip-size);
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

.fv-sub-content {
	pointer-events: none;
	margin-left: 10%;
	width: 100%;
	box-sizing: border-box;
	opacity: 0;
	transition: opacity 1.2s ease; /* ここも秒数を合わせておくと綺麗です */
}

/* JSでこのクラスが付与されたら、テキストが出現する */
.fv-sub-content.is-active {
	opacity: 1;
	pointer-events: auto;
}

} /* end @media not all */


/* news */

.l-news{
	padding: 14.444vw 0 0 0 ;
	height: 84.028vw;
}

.news-list{
	padding: 0 17.222vw 7.639vw 17.5vw;
}

.ttl-news{
	margin-bottom: 4.167vw;
	font-size: 2.778vw;
	letter-spacing: 0.278vw;
	font-weight: 600;
	font-family: "PlusJakartaSans";
}
.news-list-title{
	padding-bottom: 1.389vw;
}

.news-list-title-topic{
	display: flex;
	align-items: center;
	margin-bottom: 2.222vw;
	margin-left: 1.25vw;
}

.news-date{
	width: 8.889vw;
	color: #959595;
	font-family: "PlusJakartaSans";
	font-size: 1.25vw;
	font-weight: 600;
	line-height: 1.111vw; /* 88.889% */
	letter-spacing: 0.035vw;
}

.news-type{
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.694vw;
	margin-right: 1.736vw;
	width: 3.889vw;
	height: 1.667vw;
	color: #081A00;
	text-align: center;
	font-size: 1.111vw;
	font-weight: 400;
	letter-spacing: 0.033vw;
	border-radius: 0.139vw;
	border: 1px solid #081A00;
}

.news-txt{
	color: #081A00;
	font-size: 1.111vw;
	font-weight: 500;
	line-height: 150%; /* 30px */
	letter-spacing: 0.042vw;
}

.news-content-more{
	padding-right: 0.069vw;
	height: 1.111vw;
	text-align: right;
	font-family: "PlusJakartaSans";
	font-size: 1.111vw;
	font-weight: 600;
	line-height: 100%; /* 16px */
	letter-spacing: 0.033vw;
}

.news-content-more-btn{
	color: #081A00;
}

.btn-basic-news{
	margin: 0px 0.625vw 0.139vw 0.417vw;
	width: 0.833vw;
	height: 0.833vw;
}

.news-content-more:hover .btn-basic-news{
	animation: flyInFromLeft 0.4s ease forwards;
}

/* .news-slide{
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	top: 0;
	background-image: url(../../images/txt_gamechanger.png),url(../../images/txt_gamechanger.png);
	background-repeat: no-repeat, no-repeat;
	background-position: center 30%, center 70%;
	background-size: auto 20%, auto 20%;
} */

/* ▼ 既存の .news-slide を以下に上書きします */
.news-slide {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  top: 0;
  
  /* スクロール移動量の初期値 */
  --scroll-offset-x: 0px;
  
  background-image: url(../../images/txt_gamechanger.png), url(../../images/txt_solebrainrecruit.png);
  background-repeat: no-repeat, no-repeat;
  /* ▼ X座標を、変数を使って動かせるように変更 */
  background-position: 
    calc(50% - var(--scroll-offset-x)) 30%, /* 上の画像：左へ動く */
    calc(50% + var(--scroll-offset-x)) 70%; /* 下の画像：右へ動く */
    
  background-size: auto 20%, auto 20%;
}

.news-pic-wrapper {
  position: relative;
  width: 36.111vw;
  aspect-ratio: 437 / 440;
  overflow: hidden;
  border-radius: 1.111vw;
}

.news-slide-pic {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(0);
  transform-origin: center center;
  opacity: 0;
}

.news-slide-pic:first-child {
  position: relative; 
  transform: scale(1);
  opacity: 1;
}

.news-slide-pic.is-active {
  opacity: 1;
  z-index: 2;
}

/* aboutus */

.l-aboutus{
	padding-top: 2.083vw;
	padding-bottom: 30.903vw;
	position: relative;
	height: 69.444vw;
}

.ttl-section{
	padding: 0;
	margin: 0 0 2.778vw 0;
	color: #081A00;
	font-family: "PlusJakartaSans";
	font-size: 1.111vw;
	font-weight: 600;
	line-height: 148%; /* 47.36px */
	letter-spacing: 0.104vw;
}

.l-aboutus .ttl-section::before{
	content: "";
	display: inline-block;
	margin-right: 0.576vw;
	width: 0.833vw;
	height: 0.833vw;
	transform: rotate(-45deg);
	border-radius: 0.139vw;
	background-color: #00FF6A;
}

.ttl-section-sub{
	width: 49.653vw;
	margin-left: 0.139vw;
	margin-top: -0.069vw;
}

.aboutus-main{
	padding: 8.333vw 7.222vw 0 8.333vw;
}

.aboutus-main-txt{
	display: flex;
	padding: 3.819vw 0 0 0;
	justify-content: space-between;
	align-items: end;
}

.txt-section{
	text-align: justify;
	width: 50vw;
	font-size: 1.111vw;
	font-weight: 500;
	line-height: 180%; 
	letter-spacing: 0.021vw;
}

.btn-more{
	display: flex;
	justify-content: space-between;
	padding-right: 0.347vw;
	margin-right: 1.042vw; 
	margin-top: -1.389vw;
	margin-bottom: -0.139vw;
	width: 23.472vw;
	height: 3.889vw;
	align-items: center;
	text-align: right;
	font-size: 1.389vw;
	font-weight: bold;
	border-bottom: 2px solid #081A00;
}

.btn-more:hover .btn-basic{
	animation: flyInFromLeft 0.4s ease forwards;
}

.btn-more-txt{
	padding-left: 0.347vw;
	text-decoration: none;
	color: #081A00;
}

.btn-basic{
	width: 0.972vw;
	margin-top: 0.208vw;
	margin-right: 0.972vw;
}

.pic-aboutus-work{
	position: absolute;
	left: 18.056vw;
	bottom: -16.806vw;
	z-index: 1;
	width: 63.958vw;
}

/* business */

.l-business{
	position: relative;
	padding-top: 19.097vw;
	padding-bottom: 21.528vw;
	color: #FFF;
	/* background-color: #3A3A3A;    */
	height: 94.028vw;
}

.business-main{
	padding: 8.681vw 7.986vw 0 8.333vw;
	/* margin-left: 8.056vw; */
}

.ttl-section-business{
	padding: 0;
	margin: 0 0 2.361vw 0px;
	color: #FFF;
	font-family: "PlusJakartaSans";
	font-size: 1.111vw;
	font-weight: 600;
	line-height: 148%; /* 47.36px */
	letter-spacing: 0.118vw;
}

.ttl-section-business::before{
	content: "";
	display: inline-block;
	margin-right: 0.576vw;
	margin-left: 0.139vw;
	width: 0.833vw;
	height: 0.833vw;
	transform: rotate(-45deg);
	border-radius: 0.139vw;
	background-color: #00FF6A;
	letter-spacing: 0px;
}


.ttl-section-sub-business{
	width: 60.417vw;
}

.business-content{
	position: relative;
	display: flex;
	flex-shrink: 0;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: start;
	padding: 3.125vw 0.347vw 0 0;

}

.business-content-txt{
	padding: 3.472vw 0 0 0px;
	width: 32.847vw;
}

.txt-section-business{
	text-align: justify;
	line-height: 180%; /* 39.6px */
	font-size: 1.111vw;
	font-weight: 500;
	color: #FFF;
	letter-spacing: 0px;
}

/* .business-content-img-ttl{
	margin-top: -3.472vw;
	width: 41.111vw;
} */

/* ▼ 変数をこのセクション専用に指定し、確実に読み込ませる！ */
.l-orbit-section {
  --orbit-size: 31.458vw; /* PCでの軌道の直径 */
  --item-size: 6.944vw;  /* PCでの丸の大きさ */
  
  background-color: transparent; /* 背景色 */
  padding: 10vw 0;
  overflow: hidden;

	margin-top: -17.361vw;
	width: 41.042vw; 
	margin-right: 2.083vw;

}

/* スマホ用のサイズ調整 */
@media screen and (max-width: 767px) {
  .l-orbit-section {
    --orbit-size: 80vw;
    --item-size: 18vw;
  }
}

/* 全体のエリア */
.orbit-area {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-height: 41.667vw;
  font-family: "ZenKakuGothicNew", sans-serif;
}
@media screen and (max-width: 767px) {
  .orbit-area { min-height: 100vw; }
}

/* 中央のテキストエリア（内側の線） */
.orbit-center {
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  width: calc(var(--orbit-size) * 0.55);
  height: calc(var(--orbit-size) * 0.55);
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 50%;
  text-align: center;
  color: #fff;
  font-size: 1.25vw;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.1em;
  z-index: 2;
}
@media screen and (max-width: 767px) {
  .orbit-center { font-size: 3.5vw; }
}

/* 軌道システム全体 */
.orbit-system {
  position: absolute;
  width: var(--orbit-size);
  height: var(--orbit-size);
  
  /* JSで角度（--current-rotation）を書き換えて回す */
  transform: rotate(var(--current-rotation, 0deg));
  /* カチッと回る、メリハリのある動きを設定 */
  transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

/* 軌道の線（外側の白い線） */
.orbit-path {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 50%;
}

/* アイテムを放射状に配置するための見えない箱 */
.orbit-wrapper {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  /* HTMLで指定した角度（--angle）に回転させて放射状に配置 */
  transform: rotate(var(--angle));
}

/* 周りを回る文字の丸 */
.orbit-item {
  position: absolute;
  top: calc(var(--item-size) * -0.5);
  left: calc(var(--item-size) * -0.5);
  width: var(--item-size);
  height: var(--item-size);
  
  display: flex;
  justify-content: center;
  align-items: center;
  background: #fff;
  color: #081A00;
  border-radius: 50%;
  font-size: 1.1vw;
  font-weight: 700;
  text-align: center;
  line-height: 1.3;
  
  /* ★修正：最後に scale(var(--item-scale, 1)) を追加し、拡大縮小できるようにする */
  transform: translateX(calc(var(--orbit-size) / 2)) 
             rotate(calc((var(--current-rotation, 0deg) + var(--angle)) * -1))
             scale(var(--item-scale, 1));
             
  /* ★修正：影（box-shadow）も滑らかにアニメーションさせるように追加 */
  transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1), 
              background-color 0.4s ease, 
              color 0.4s ease,
              box-shadow 0.4s ease;
}
@media screen and (max-width: 767px) {
  .orbit-item { font-size: 3vw; }
}

/* 3時の位置に来たときの色と大きさ */
.orbit-item.is-highlight {
  background: #00FF6A;
  
  /* ★追加：1.25倍に大きくする */
  --item-scale: 1.25; 
  
  /* ★おまけ：少し緑の光（影）をつけるとさらに強調されて美しくなります */
  /* box-shadow: 0 0 20px rgba(0, 255, 106, 0.4); */
}


.btn-more-business{
	position: absolute;
	display: flex;
	justify-content: space-between;
	/* margin-top: -13.889vw; */
	bottom: 22.847vw;
	width: 23.472vw;
	height: 3.889vw;
	align-items: center;
	text-align: right;
	font-size: 1.389vw;
	font-weight: bold;
	border-bottom: 2px solid #fff;
}

.btn-more-business:hover .btn-basic{
	animation: flyInFromLeft 0.4s ease forwards;
}

.btn-more-txt-business{
	padding-left: 0.347vw;
	text-decoration: none;
	color: #fff;
}

/* environment */

.l-environment{
	position: relative;
	padding-top: 7.986vw;
	/* background: radial-gradient(64.34% 64.34% at 50% 50%, rgba(255, 255, 255, 0.00) 0%, rgba(0, 0, 0, 0.10) 100%); */
	height: 106.875vw;
  margin-bottom: 35.764vw;
}

.ttl-section-environment{
	padding: 0;
	margin: 0 0 2.361vw 0px;
	color: #081A00;
	font-family: "PlusJakartaSans";
	font-size: 1.111vw;
	font-weight: 600;
	line-height: 148%; /* 47.36px */
	letter-spacing: 0.104vw;
}

.ttl-section-environment::before{
	content: "";
	display: inline-block;
	margin-right: 0.576vw;
	width: 0.833vw;
	height: 0.833vw;
	transform: rotate(-45deg);
	border-radius: 0.139vw;
	background-color: #00FF6A;
}

.ttl-section-sub-environment{
	width: 50vw;
}

.environment-main{
	padding: 8.403vw 5.833vw 0 8.472vw;
}

.environment-txt-section{
	text-align: justify;
	padding: 4.167vw 0 0 0;
	width: 42.569vw;
	font-size: 1.111vw;
	font-weight: 500;
	line-height: 180%; 
	letter-spacing: 0.111vw;
}

.environment-slide{
  display: flex;
}

.environment-slide::-webkit-scrollbar {
  display: none;
}

.environment-box{
	display: flex;
	flex-shrink: 0;
	padding: 2.778vw 2.778vw 0px 2.778vw;
	margin: 6.111vw 3.264vw 7.292vw 0;
	width: 40.069vw;
	height: 14.444vw;
	border-radius: 0.556vw;
	background: #FFF;
}

.environment-box-pic img{
	width: 8.611vw;
	height: 8.611vw;
}

.environment-box-txt{
	margin-left: 1.944vw;
	color: #081A00;
	font-size: 1.111vw;
	font-weight: 500;
	line-height: 170%; /* 34px */
	letter-spacing: 0.111vw;
}

.environment-box-txt-color{
	background: #00FF6A;}

.environment-box-pic img{
	width: 8.611vw;
	height: 8.611vw;
}

.environment-box-name{
	margin-top: 0.347vw;
	width: 7.778vw;
	text-align: center;
	font-family: "PlusJakartaSans";
	font-size: 1.389vw;
	font-weight: 400;
	line-height: 168%; /* 33.6px */
	letter-spacing: 0.042vw;
	color: #081A00;
}

.environment-box-join{
	margin-left: 1.944vw;
	color: #C4C4C4;
	font-family: "NotoSansJP";
	font-size: 1.111vw;
	font-weight: 500;
	line-height: 168%; /* 33.6px */
	letter-spacing: 0.042vw;
}

.environment-box-l-1{
	width: 8.611vw;
  flex-shrink: 0;
}

.environment-box-l-2{
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	width: 100%;
	height: 8.611vw;
}

.environment-btn-more{
	display: flex;
	justify-content: space-between;
	margin-right: 2.5vw;
	margin-left: auto;
	width: 23.472vw;
	height: 3.889vw;
	align-items: center;
	text-align: right;
	font-size: 1.389vw;
	font-weight: bold;
	border-bottom: 2px solid #081A00;
}

.environment-btn-more:hover .btn-basic{
	animation: flyInFromLeft 0.4s ease forwards;
}

.pic-environment-office{
	position: absolute;
	bottom: 0px;
	left: 2.778vw;
	width: 15.972vw;
}

.pic-environment-mtg{
	position: absolute;
	width: 55.556vw;
	left: 22.222vw;
	bottom: -16.181vw;
}

.pic-environment-lecture{
	position: absolute;
	/* left: 83.056vw; */
	right: 2.778vw;
	bottom: -21.944vw;
	width: 15.972vw;
}


/* voice */

.l-voice{
	position: relative;
	padding: 27.431vw 0px 16.319vw 0;
	min-height: 55vw;
}
.voice-main{
	padding: 8.333vw 7.639vw 0 8.472vw;
}

.voice-ttl-section{
	padding: 0;
	margin: 0 0 2.5vw 0px;
	color: #081A00;
	font-family: "PlusJakartaSans";
	font-size: 1.111vw;
	font-weight: 600;
	line-height: 148%; /* 47.36px */
	letter-spacing: 0.069vw;
}

.voice-ttl-section::before{
	content: "";
	display: inline-block;
	margin-right: 0.646vw;
	width: 0.833vw;
	height: 0.833vw;
	transform: rotate(-45deg);
	border-radius: 0.139vw ;
	background-color: #00FF6A;
}

.voice-ttl-section-sub{
	width: 49.861vw;
}


.voice-content{
	display: flex;
	justify-content: space-between;
	padding-top: 3.819vw;
	align-items: end;
}

.voice-content-txt{
	align-items: center;
}

.txt-section-voice{
	width: 44.861vw;
	font-size: 1.111vw;
	font-style: normal;
	font-weight: 500;
	line-height: 180%; /* 39.6px */
	letter-spacing: 0.028vw;
	color: #081A00;
}

.btn-more-voice{
	display: flex;
	justify-content: space-between;
	margin-right: 0.972vw;
	margin-top: -4.167vw;
	width: 23.472vw;
	height: 3.611vw;
	align-items: center;
	text-align: right;
	font-size: 1.389vw;
	font-weight: bold;
	border-bottom: 2px solid #081A00;
}

.btn-more-voice:hover .btn-basic-voice{
	animation: flyInFromLeft 0.4s ease forwards;
}


.btn-more-txt-voice{
	padding-left: 0.694vw;
	text-decoration: none;
	color: #081A00;
}

.btn-basic-voice{
	margin-right: 0.972vw;
	width: 0.972vw;
	height: 0.972vw;
}

/* voice-スライドブロック */

.voice-ex-content{
	display: flex;
	flex-direction: column;
	padding: 1.389vw 0 0.833vw 0;
}

.voice-ex-content-txt{
	width: fit-content;
	margin-bottom: 0.694vw;
	margin-left: 0.347vw;
	font-size: 3.333vw;
	font-family: "ZenKakuGothicNew";
	font-weight: 700;
	line-height: 130%;
	border-radius: 0.278vw;
	color: #081A00;
	background: #fff;
	letter-spacing: 0px;
	transition: background 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.swiper-slide-active .voice-slide:hover .voice-ex-content-txt {
	background: linear-gradient(90deg, #00FF6A 0.01%, #0FE 99.99%);
}

.voice-ex-attribute{
	display: flex;
	align-items: center;
	margin-left: 1.389vw;
}

.voice-ex-content-name{
	padding:0 1.389vw 0 0;
	font-family: "PlusJakartaSans";
	font-size: 2.222vw;
	font-weight: 700;	
	color: #081A00;
}

.voice-ex-attribute-txt{
	display: flex;
	justify-content: center;
	gap: 0.694vw;
	padding: 0.694vw 0.833vw 0.694vw 0.833vw;
	margin: 0 1.042vw 0px 0px;
	height: 2.292vw;
	align-items: center;
	font-size: 1.25vw;
	font-weight: 500;
	border-radius: 0.278vw;
	background: #081A00;
	color: #FFF;
	transition: background 0.4s cubic-bezier(0.33, 1, 0.68, 1), color 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.swiper-slide-active .voice-slide:hover .voice-ex-attribute-txt {
	background: linear-gradient(90deg, #00FF6A 0.01%, #0FE 99.99%);
	color: #081A00;
}

.voice-ex-content-arrow{
	position: relative;
	display: flex;
	align-items: center;
	margin-top: 2.083vw;
	margin-left: 1.389vw;
	padding-bottom: 11.111vw;
}

.voice-ex-content-arrow:hover .btn-basic-exvoice{
	animation: flyInFromLeft 0.4s ease forwards;
}

.voice-ex-content-more{
	font-family: "PlusJakartaSans";
	font-size: 1.111vw;
	font-weight: 600;
	line-height: 100%; /* 16px */
	letter-spacing: 0.033vw;
	color: #081A00;
}

.btn-basic-exvoice{
	width: 0.833vw;
	margin-left: 0.694vw;
}

.l-voice::after {
	content: "";
  position: absolute;
  width: 83.333vw;
  height: 0.139vw;
  background-color: #D9D9D9;
  bottom: 19.444vw;
  left: 50%;
  transform: translateX(-50%);
}

/* ============ Voice Swiper カルーセル (PC) ============ */
.voice-swiper-area {
  margin-top: 2.778vw;
  position: relative;
}

.voice-swiper {
  overflow: hidden;
  padding: 0;
}

.voice-swiper .swiper-slide {
  display: flex;
  align-items: center;
}

.voice-slide {
  display: flex;
  flex-direction: row;
  align-items: center;
  transition: transform 0.6s cubic-bezier(0.33, 1, 0.68, 1),
              opacity 0.6s cubic-bezier(0.33, 1, 0.68, 1),
              filter 0.6s cubic-bezier(0.33, 1, 0.68, 1);
}

.swiper-slide:not(.swiper-slide-active) .voice-slide {
  transform: scale(0.38);
  filter: grayscale(1);
}

.swiper-slide-active .voice-slide {
  transform: scale(1);
  filter: grayscale(0);
}

.voice-slide-img {
  width: 33.75vw;
  max-width: 33.75vw;
  flex-shrink: 0;
  margin: 0;
}

.voice-slide-img .voice-ex-pic-wrapper {
  border-radius: 1.111vw;
}

.voice-slide-img::after {
  inset: -0.35vw;
}

.swiper-slide-active .voice-slide:hover .voice-slide-img::after {
  background: linear-gradient(135deg, #00FF6A, #0FE);
}

.swiper-slide-active .voice-slide:hover .voice-ex-pic {
  transform: translate(-50%, -50%) scale(1.1);
}

.swiper-slide:not(.swiper-slide-active) .voice-slide-txt {
  opacity: 0;
  pointer-events: none;
}

.voice-slide-txt {
  flex: 1;
  margin-top: 0;
  padding-left: 2.778vw;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  text-align: left;
  opacity: 1;
  pointer-events: auto;
  transition: opacity 0.5s cubic-bezier(0.33, 1, 0.68, 1);
}

.voice-slide-txt .voice-ex-content {
  align-items: flex-start;
}

.voice-slide-txt .voice-ex-attribute {
  justify-content: flex-start;
  margin-top: 1.389vw;
}

.voice-slide-txt .voice-ex-content-arrow {
  margin-top: 2.083vw;
  margin-left: 0;
  padding-bottom: 0;
}

.voice-slide-txt .voice-ex-content-arrow::after {
  display: none;
}

.voice-swiper-ctrl {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 2.778vw 8.333vw 0;
  position: relative;
  z-index: 10;
}

.voice-swiper-pagination {
  gap: 0.694vw;
}

.voice-swiper-pagination .swiper-pagination-bullet {
  width: 0.556vw;
  height: 0.556vw;
}

.voice-swiper-pagination .swiper-pagination-bullet-active {
  width: 0.833vw;
  height: 0.833vw;
}

.voice-swiper-btns {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.694vw;
}

.voice-swiper-prev,
.voice-swiper-next {
  width: 2.708vw;
  height: 2.708vw;
  border-radius: 0.278vw;
  flex-shrink: 0;
  cursor: pointer;
}

.voice-swiper-prev svg,
.voice-swiper-next svg {
  width: 1.111vw;
  height: 1.111vw;
}

.voice-swiper-prev {
  background: transparent;
}

.voice-swiper-prev svg {
  fill: #959595;
}

.voice-swiper-next {
  background: #081A00;
}

.voice-swiper-next svg {
  fill: #00FF6A;
}

.voice-swiper-prev:hover svg {
  animation: flyInFromRight 0.4s ease forwards;
}

.voice-swiper-next:hover svg {
  animation: flyInFromLeft 0.4s ease forwards;
}

/* careers */

.l-careers{
	position: relative;
	padding-top: 13.542vw;
	height: 76.389vw;
	background-color: #c0bdbd;
	background-image: url(../../images/bg_careers.png);
	background-repeat:no-repeat;
  background-position: 50% 0;
	background-size:cover;
}

.careers-ttl-section{
	padding: 0;
	margin: 0 0 0 0px;
	font-family: "PlusJakartaSans";
	font-size: 1.111vw;
	font-weight: 600;
	line-height: 148%; /* 47.36px */
	letter-spacing: 0.178vw;
	color: #fff;
}

.careers-ttl-section::before{
	content: "";
	display: inline-block;
	margin-right: 0.576vw;
	width: 0.833vw;
	height: 0.833vw;
	transform: rotate(-45deg);
	border-radius: 0.139vw ;
	background-color: #00FF6A;
}

.ttl-section-sub-careers{
	padding-top: 2.778vw;
	margin-left: auto;
	margin-right: auto;
	width: 49.306vw;
}

.careers-main{
	text-align: center;
}

.careers-main-txt{
	margin: 3.819vw 0 6.597vw 0;
	font-size: 1.111vw;
	color: #FFF;
	font-weight: 500;
	line-height: 180%; 
	letter-spacing: 0.153vw;
}

.careers-box{
	display: flex;
	justify-content: space-between;
	width: 88.889vw;
	margin-left: auto;
	margin-right: auto;
}

.careers-box-content{
	position: relative;
  display: flex;
	align-items: center;
  overflow: hidden;
	padding-left: 3.333vw;
	width: 43.056vw;
	height: 17.222vw;
	text-decoration: none;
	border-radius: 0.694vw;
	background: #FFF;
}

.careers-box-content::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, #00ff6a 0.01%, #0ff 99.99%);
}

.careers-box-content::after {
	content: "";
	position: absolute;
	inset: 0;
	background: #fff;
	z-index: 1;
	opacity: 1;
	transition: opacity 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.careers-box-content:hover::after { opacity: 0; }

.careers-box-accent {
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 0.556vw;
	background: #00ff6a;
	border-radius: 0.694vw 0 0 0.694vw;
	z-index: 2;
}

.careers-box-content .careers-box-content-ttl{
	color: #00FF6A;
}

.careers-box-content:hover .careers-box-content-ttl{
	color: #fff;
}

.careers-box-content:hover .careers-box-content-fin{
	color: #fff;
}

.careers-box-content-left{
	position: relative;
	z-index: 2;
	display: flex;
  justify-content: space-between;
	flex-direction: column;
	margin-bottom: 0.694vw;
  text-align: left;
	height: 5.694vw;
	width: 12.361vw;
	flex-shrink: 0;
}

.careers-box-content-ttl{
	margin:0 0 0 0px;
	color: #00FF6A;
	font-family: "PlusJakartaSans";
	font-size: 1.25vw;
	font-weight: 600;
	letter-spacing: 0.125vw;
}

.careers-box-content-main-txt{
	color: #081A00;
	font-family: "ZenKakuGothicNew";
	font-size: 2.986vw;
	font-weight: 700;
	line-height: 100%; /* 56px */
}

.careers-box-content-sub-txt{
	position: relative;
	z-index: 2;
	flex-shrink: 0;
	margin-left: 6.944vw;
	width: 16.181vw;
	color: #081A00;
	font-size: 1.25vw;
	font-weight: 500;
	letter-spacing: 0px;
}

.careers-btn{
	position: relative;
	z-index: 2;
	/* padding: 1.25vw 0 0 1.25vw; */
	display: flex;
	justify-content: center;
	align-items: center;
	margin-top: 12.847vw;
	margin-left: 0px;
	width: 4.444vw;
	height: 4.444vw;
	border-radius: 0.694vw 0;
	background: #081A00;
		transition: fill 0.3s ease;
}

.careers-btn svg{
	flex-shrink: 0;
	width: 1.53vw;
	height: 1.53vw;
}

.careers-box-content:hover .careers-btn svg{
	animation: flyInFromLeft 0.4s ease forwards;
}



} 

/* JavaScriptで生成される1文字ごとの設定 */
.reveal-char {
  color: #ffffff;
}
