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

/* スクロール固定の開始・解除で横幅を変えない。 */
html {
	scrollbar-gutter: stable;
}

html.is-fv-locked {
	overflow: hidden;
	overscroll-behavior: none;
}

html.is-fv-locked body.is-show-content {
	overflow: visible;
}

/* FVと写真の場所はOP中から確保し、展開完了後も総高を変えない。 */
.fv-scroll-area[data-fv-state] {
	position: relative;
	height: calc(var(--fv-height, 100vh) * 2);
	overflow-anchor: none;
}

.fv-scroll-area[data-fv-state] .fv-sticky-wrap {
	position: sticky;
	top: 0;
	width: 100%;
	height: var(--fv-height, 100vh);
	overflow: hidden;
}

.fv-scroll-area[data-fv-state] .l-fv,
.fv-scroll-area[data-fv-state] .l-fv-sub {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: var(--fv-height, 100vh);
	box-sizing: border-box;
}

.fv-scroll-area[data-fv-state] .l-fv-sub {
	display: block;
	z-index: 3;
	overflow: hidden;
	scrollbar-gutter: stable;
	pointer-events: none;
	--clip-size: 0px;
	-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-scroll-area[data-fv-state="pending"] .l-fv-sub {
	visibility: hidden;
}

.fv-scroll-area[data-fv-state]:not([data-fv-state="complete"]) .l-fv {
	/* 初回入力は展開に使い、FV内部も動かさない。リンクのクリックは許可する。 */
	overflow: clip;
	touch-action: pan-x pinch-zoom;
}

.fv-scroll-area.is-fv-compact:not([data-fv-state="complete"]) .fv-txt {
	padding-top: 16px;
	padding-bottom: 16px;
	transform: scale(var(--fv-title-scale, 1));
	transform-origin: left top;
	/* 変形後の見出しの高さでCTAの場所を確保する。完了後は内部スクロールに戻す。 */
	margin-bottom: calc(var(--fv-title-height, 0px) * (var(--fv-title-scale, 1) - 1));
}

.fv-scroll-area[data-fv-state] .fv-sub-content {
	display: flex;
	flex-direction: column;
	justify-content: center;
	height: auto;
	min-height: 100%;
	opacity: 0;
	transition: opacity 1.2s ease;
}

.fv-scroll-area[data-fv-state] .fv-sub-content > * {
	flex-shrink: 0;
}

.fv-scroll-area[data-fv-state] .fv-sub-content.is-active {
	opacity: 1;
}

.fv-scroll-area[data-fv-state="complete"] .fv-sticky-wrap {
	position: relative;
	height: auto;
	overflow: visible;
}

.fv-scroll-area[data-fv-state="complete"] .l-fv,
.fv-scroll-area[data-fv-state="complete"] .l-fv-sub {
	position: relative;
	top: auto;
	left: auto;
}

.fv-scroll-area[data-fv-state="complete"] .l-fv-sub {
	-webkit-mask-image: none;
	mask-image: none;
	pointer-events: auto;
	overflow-x: hidden;
	overflow-y: auto;
}

@media screen and (min-width: 1025px) {
	.fv-scroll-area[data-fv-state] .fv-sub-content {
		margin-left: 5%;
		width: 90%;
	}
}


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

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

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


	.l-fv {
		display: flex;
		flex-direction: column;
		width: 100%;
		height: var(--fv-height, 100vh);
		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: 2.778vw;
		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 {
		width: 100%;
		height: var(--fv-height, 100vh);
		background-image: url(../../images/bg_fv_sp.jpg);
		background-repeat: no-repeat;
		background-position: 50% 0;
		background-size: cover;
		background-color: aliceblue;
	}

	.fv-sub-content {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		width: 100%;
		height: 100%;
		box-sizing: border-box;
	}

	.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;
		border-radius: 4px;
	}

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

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

	/* ============================================================================== */
	/* 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 {
		min-height: 340vw;
		/* 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: 8vw -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;
		margin-bottom: 14vw;
	}

	/* SP/タブレットでは top-interview-swiper-area の下に表示するため、voice-content 内の元ボタンは非表示にする */
	.voice-content .btn-more-voice {
		display: none;
	}

	.btn-more-voice--sp {
		margin: 25vw auto;
	}

	.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: linear-gradient(90deg, #A6FFCC 0.01%, #A6FFF9 99.99%);
		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.3s ease;
	}

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

	/* ============ TOP インタビューカードSwiper (SP/タブレット) ============ */
	.top-interview-swiper-area {
		margin-top: 8vw;
	}

	.top-interview-swiper {
		overflow: hidden;
	}

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

	.top-interview-card {
		position: relative;
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100%;
		text-decoration: none;
		overflow: hidden;
	}

	.top-interview-card-img {
		position: relative;
		width: 70vw;
		max-width: 70vw;
		aspect-ratio: 1 / 1;
		margin-right: 40vw;
	}

	.top-interview-card-img-wrapper {
		position: relative;
		z-index: 1;
		width: 130%;
		height: 130%;
		overflow: hidden;
		clip-path: url(index.css%3Fv=6.css);
	}

	.top-interview-card-img-wrapper img {
		position: absolute;
		inset: 0;
		width: 110%;
		height: 110%;
		object-fit: cover;
		transition: transform 0.3s ease;
	}

	/* ここから インタビューカードデザイン修正に伴う記述（SP） */

	.top-interview-card-img {
		position: relative;
		}

		.top-interview-card-img::after {
		content: "";
		position: absolute;
		z-index: 1;

		width: 45%;
		aspect-ratio: 1;
		right: -44%;
		bottom: -38%;

		border-radius: 16%;
		background: linear-gradient(
			to right,
			#99ffc7 0%,
			#99fff5 100%
		);

		transform: rotate(45deg);
		pointer-events: none;
		}

		.top-interview-card-img-wrapper {
		position: relative;
		z-index: 2;
		}

		/* ここまで インタビューカードデザイン修正に伴う記述（SP） */

	.swiper-slide-active .top-interview-card:hover .top-interview-card-img-wrapper img,
	.top-interview-card:focus-visible .top-interview-card-img-wrapper img {
		transform: scale(1.1);
	}

	.top-interview-card-txt {
		width: 100%;
		margin-top: 24vw;
		text-align: center;
		z-index: 2;
	}

	.top-interview-card-title-group {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 2.4vw;
		margin: 0 0 2.917vw;
	}

	.top-interview-card-title-line {
		display: inline-flex;
		padding: 1.667vw;
		align-items: center;
		justify-content: center;
		text-align: center;
		letter-spacing: 0px;
		line-height: 130%;
		font-size: 7.2vw;
		font-family: "ZenKakuGothicNew";
		font-weight: 700;
		border-radius: 0.833vw;
		color: #081A00;
		background: #fff;
	}

	.top-interview-card-tags {
		position: absolute;
		top: 5vw;
        left: 60vw;
        z-index: 2;
		display: flex;
		flex-direction: column;
		flex-wrap: wrap;
		align-items: flex-start; 
		margin-top: 8vw;
		justify-content: center;
		gap: 2.083vw;
	}

	.top-interview-card-tag {
		display: inline-flex;
		padding: 0.5vw 2.917vw;
		align-items: center;
		font-size: 3.333vw;
		font-weight: 500;
		border-radius: 9999px;
		background: #081A00;
		color: #FFF;
	}

	.top-interview-card-more {
		position: relative;
		display: flex;
		justify-content: center;
		align-items: center;
		margin-top: 9.375vw;
		padding-bottom: 16.667vw;
	}

	/* .top-interview-card-more::after {
		content: "";
		position: absolute;
		bottom: 0;
		left: 50%;
		width: 90vw;
		height: 0.417vw;
		background-color: #D9D9D9;
		transform: translateX(-50%);
	} */

	.top-interview-card-more-txt {
		margin-right: 3.125vw;
		text-align: center;
		line-height: 100%;
		letter-spacing: 0.113vw;
		font-size: 4.167vw;
		font-weight: 600;
		color: #081A00;
	}

	.top-interview-card-more-icon {
		width: 3.333vw;
	}

	.swiper-slide-active .top-interview-card:hover .top-interview-card-more-icon {
		animation: flyInFromLeft 0.4s ease forwards;
	}

	/* --- TOP インタビューカードSwiper コントロール (SP) --- */
	.top-interview-swiper-ctrl {
		position: relative;
		display: flex;
		justify-content: space-between;
		align-items: center;
		margin: 4.167vw 5vw 0;
		position: relative;
		z-index: 10;
	}

	.top-interview-swiper-ctrl::after {
		content: "";
		position: absolute;
		bottom: 0;
		left: 50%;
		width: 90vw;
		height: 0.417vw;
		background-color: #D9D9D9;
		margin-bottom: 14vw;
		transform: translateX(-50%);
	}

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

	.top-interview-swiper-pagination .swiper-pagination-bullet {
		width: 1.667vw;
		height: 1.667vw;
		background-color: #D9D9D9;
		opacity: 1;
		border-radius: 50%;
		cursor: pointer;
		transition: background-color 0.3s ease, width 0.3s ease, height 0.3s ease;
	}

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

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

	.top-interview-swiper-prev,
	.top-interview-swiper-next {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 9vw;
		height: 9vw;
		border-radius: 4px;
		background: #081A00;
		border: none;
		cursor: pointer;
		transition: background 0.3s ease;
	}

	.top-interview-swiper-prev svg,
	.top-interview-swiper-next svg {
		width: 3.6vw;
		height: 3.6vw;
		fill: #fff;
	}

	.top-interview-swiper-prev svg {
		transform: rotate(180deg);
	}

	.top-interview-swiper-prev:hover,
	.top-interview-swiper-next:hover,
	.top-interview-swiper-prev:focus-visible,
	.top-interview-swiper-next:focus-visible {
		background: #00FF6A;
	}

	.top-interview-swiper-prev:hover svg,
	.top-interview-swiper-next:hover svg,
	.top-interview-swiper-prev:focus-visible svg,
	.top-interview-swiper-next:focus-visible svg {
		fill: #081A00;
	}

	/* ============================================================================== */
	/* career: recruit/common/css/parts.css へ移行 */

}


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



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


	.l-fv {
		position: relative;
		padding: 80px 0 0 0;
		box-sizing: border-box;
		height: var(--fv-height, 100vh);
		overflow-x: hidden;
		overflow-y: auto;
		display: flex;
		flex-direction: column;
	}

	.fv-txt {
		margin-top: auto;
		flex-shrink: 0;
		padding-top: 9vh;
		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: 3.75vw;
	}

}

/* タブレット: 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: 5vh 0 0 2.778vw;
		box-sizing: border-box;
		height: var(--fv-height, 100vh);
		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: 2.778vw;
		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: var(--fv-height, 100vh);
		color: #FFF;
		background: url(../../images/bg_fv.jpg) no-repeat 50% 0 / cover;
	}

	.fv-sub-txt {
		width: 54.861vw;
		font-size: 2.3vw;
		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;
	}

	/* 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;
		border-radius: 8px;
	}

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

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


	/* voice */

	.l-voice {
		position: relative;
		padding: 0 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;
	}

	/* PC では voice-content 内の元ボタンをそのまま使うため、SP用の複製は非表示にする */
	.btn-more-voice--sp {
		display: none;
	}

	.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;
		padding: 0.41vw 0.83vw 0.76vw;
		font-size: 3.33vw;
		font-family: "ZenKakuGothicNew";
		font-weight: 700;
		line-height: 1;
		border-radius: 0.139vw;
		color: #081A00;
		background: linear-gradient(90deg, #A6FFCC 0.01%, #A6FFF9 99.99%);
		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;
	}

	.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.97vw 0.694vw;
		margin: 0 1.042vw 0px 0px;
		height: 2.292vw;
		align-items: center;
		font-size: 1.25vw;
		font-weight: 500;
		border-radius: 9999px;
		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: 20.6vw;
		left: 50%;
		transform: translateX(-50%);
	}

	/* ============ Voice Swiper カルーセル (PC) ============ */
	.voice-swiper-area {
		margin-top: 7.22vw;
		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.83vw;
		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: 6.11vw 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;
	}

	/* ============ TOP インタビューカードSwiper (PC) ============ */
	.top-interview-swiper-area {
		margin-top: 7.22vw;
		position: relative;
	}

	.top-interview-swiper {
		overflow: hidden;
		padding: 0;
	}

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

	.top-interview-slide {
		display: flex;
		flex-direction: row;
		align-items: center;
		justify-content: center;
		width: 100%;
	}

	.top-interview-card {
		display: flex;
		flex-direction: row;
		align-items: center;
		text-decoration: none;
	}

	.top-interview-card-img {
		position: relative;
		width: 33.75vw;
		max-width: 33.75vw;
		aspect-ratio: 1 / 1;
		flex-shrink: 0;
		margin: 0;
	}

	.top-interview-card-img-wrapper {
		position: relative;
		z-index: 1;
		width: 110%;
		height: 110%;
		overflow: hidden;
		clip-path: url(index.css%3Fv=6.css);
		border-radius: 1.111vw;
	}

	.top-interview-card-img-wrapper img {
		position: absolute;
		inset: 0;
		width: 110%;
		height: 110%;
		object-fit: cover;
		transition: transform 0.3s ease;
	}

	.swiper-slide-active .top-interview-card:hover .top-interview-card-img-wrapper img,
	.top-interview-card:focus-visible .top-interview-card-img-wrapper img {
		transform: scale(1.1);
	}

	.top-interview-card-txt {
		flex: 1;
		padding-left: 2.778vw;
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		text-align: left;
		z-index: 1;
		margin-left: 2.77vw;
	}

	.top-interview-card-title-group {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 0.55vw;
		margin-bottom: 0.694vw;
	}

	.top-interview-card-title-line {
		display: inline-flex;
		width: fit-content;
		padding: 0.2vw 0.8vw 0.4vw;
		font-size: 3.33vw;
		font-family: "ZenKakuGothicNew";
		font-weight: 700;
		line-height: 1.3;
		border-radius: 0.139vw;
		color: #081A00;
		background: #fff;
	}

	.top-interview-card-tags {
		display: flex;
		flex-wrap: wrap;
		justify-content: flex-start;
		gap: 0.694vw;
		margin-top: 1.389vw;
		margin-bottom: 1.94vw;
	}

	.top-interview-card-tag {
		display: inline-flex;
		justify-content: center;
		align-items: center;
		padding: 0.694vw 0.97vw;
		height: 2.292vw;
		font-size: 1.25vw;
		font-weight: 500;
		border-radius: 9999px;
		background: #081A00;
		color: #FFF;
	}

	.top-interview-card-more {
		position: relative;
		display: flex;
		align-items: center;
		margin-top: 2.083vw;
		margin-left: 0.83vw;
	}

	.top-interview-card-more-txt {
		font-family: "PlusJakartaSans";
		font-size: 1.111vw;
		font-weight: 600;
		line-height: 100%;
		letter-spacing: 0.033vw;
		color: #081A00;
	}

	.top-interview-card-more-icon {
		width: 0.833vw;
		margin-left: 0.694vw;
	}

	.swiper-slide-active .top-interview-card:hover .top-interview-card-more-icon {
		animation: flyInFromLeft 0.4s ease forwards;
	}

	/* --- TOP インタビューカードSwiper コントロール (PC) --- */
	.top-interview-swiper-ctrl {
		display: flex;
		justify-content: space-between;
		align-items: center;
		margin: 6.11vw 8.333vw 0;
		position: relative;
		z-index: 10;
	}

	.top-interview-swiper-pagination {
		display: flex;
		align-items: center;
		gap: 0.694vw;
	}

	.top-interview-swiper-pagination .swiper-pagination-bullet {
		width: 0.556vw;
		height: 0.556vw;
		border-radius: 50%;
		opacity: 1;
		background-color: #D9D9D9;
		cursor: pointer;
		transition: background-color 0.3s ease, width 0.3s ease, height 0.3s ease;
	}

	.top-interview-swiper-pagination .swiper-pagination-bullet-active {
		width: 0.833vw;
		height: 0.833vw;
		background-color: #081A00;
	}

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

	.top-interview-swiper-prev,
	.top-interview-swiper-next {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 2.9vw;
		height: 2.9vw;
		border-radius: 4px;
		background: #081A00;
		border: none;
		cursor: pointer;
		flex-shrink: 0;
		transition: background 0.3s ease;
	}

	.top-interview-swiper-prev svg,
	.top-interview-swiper-next svg {
		width: 1.15vw;
		height: 1.15vw;
		fill: #fff;
	}

	.top-interview-swiper-prev svg {
		transform: rotate(180deg);
	}

	.top-interview-swiper-prev:hover,
	.top-interview-swiper-next:hover,
	.top-interview-swiper-prev:focus-visible,
	.top-interview-swiper-next:focus-visible {
		background: #00FF6A;
	}

	.top-interview-swiper-prev:hover svg,
	.top-interview-swiper-next:hover svg,
	.top-interview-swiper-prev:focus-visible svg,
	.top-interview-swiper-next:focus-visible svg {
		fill: #081A00;
	}

	/* --- ここから　TOP インタビューカードSwiper　デザイン修正にあたっての記述 (PC) --- */

	.top-interview-card-img {
		position: relative;
		}

		.top-interview-card-img::after {
		content: "";
		position: absolute;
		z-index: 1;

		width: 34%;
		aspect-ratio: 1;
		right: -31%;
		bottom: 11%;

		border-radius: 16%;
		background: linear-gradient(
			to right,
			#99ffc7 0%,
			#99fff5 100%
		);

		transform: rotate(45deg);
		pointer-events: none;
		}

		.top-interview-card-img-wrapper {
		position: relative;
		z-index: 2;
		}

	/* --- ここまで　TOP インタビューカードSwiper　デザイン修正にあたっての記述 (PC) --- */

	.interview-visual {
	display: block;
	width: min(100%, 800px);
	height: auto;
	overflow: visible;
	}

	.interview-decoration {
	opacity: 0.95;
	}

	/* careers: recruit/common/css/parts.css へ移行 */

}

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

/* TOP インタビューカードSwiper: フォーカス可視化とモーション低減対応（幅に依存しない共通ルール） */
.top-interview-card:focus-visible {
	outline: 3px solid #00FF6A;
	outline-offset: 4px;
	border-radius: 12px;
}

.top-interview-card:focus-visible .top-interview-card-more-icon {
	animation: flyInFromLeft 0.4s ease forwards;
}

/* btn-more-voice: キーボードフォーカス時もホバーと同じ矢印モーションを再生する */
.btn-more-voice:focus-within .btn-basic-voice {
	animation: flyInFromLeft 0.4s ease forwards;
}

@media (prefers-reduced-motion: reduce) {
	.btn-basic-voice {
		transition: none !important;
		animation: none !important;
	}
}
