@charset "utf-8";
/**********************************************
*
* Title
*
***********************************************/
.Title {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 17px;
}

.Title_en {
	display: inline-flex;
	align-items: center;
	gap: 11px;
	font-family: var(--font-en);
	font-size: 2rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.12em;
	color: var(--color-black);
	text-transform: uppercase;
}

.Title_en::before {
	content: "";
	display: block;
	width: 12px;
	height: 13px;
	background: url("../images/icon-arrow_triangle.svg") center / contain no-repeat;
}

.Title_jp {
	font-family: var(--font-jp);
	font-size: 5.6rem;
	font-weight: 900;
	line-height: 1.2;
	letter-spacing: 0.06em;
	color: var(--color-black);
}

.Title_accent {
	color: var(--color-primary);
}

/* -center */
.Title.-center {
	align-items: center;
}

.Title.-center .Title_en {
	padding-left: 4px;
}

/* -about */
.Title.-about .Title_en {
	padding-left: 9px;
}

/* -light */
.Title.-light .Title_en,
.Title.-light .Title_jp {
	color: var(--color-white);
}

.Title.-light .Title_accent {
	color: var(--color-secondary);
}

/* -vertical */
.Title.-vertical {
	flex-direction: row-reverse;
	gap: 13px;
}

.Title.-vertical .Title_jp {
	writing-mode: vertical-rl;
	letter-spacing: 0.288em;
}

.Title.-vertical .Title_en {
	writing-mode: vertical-rl;
}

.Title.-vertical .Title_en::before {
	transform: rotate(90deg);
}

@media (max-width: 767px) {
	.Title {
		gap: 10px;
	}

	.Title_en {
		font-size: 1.6rem;
		gap: 6px;
	}

	.Title_en::before {
		width: 9px;
		height: 10px;
	}

	.Title_jp {
		font-size: 3rem;
		line-height: 1.4;
	}

	/* -about */
	.Title.-about .Title_en {
		padding-left: 4px;
	}

	/* -center */
	.Title.-center .Title_en {
		padding-left: 0;
	}

	/* -vertical */
	.Title.-vertical {
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: 13px;
	}
	
	.Title.-vertical .Title_jp {
		writing-mode: horizontal-tb;
		letter-spacing: 0.05em;
	}
	
	.Title.-vertical .Title_en {
		writing-mode: horizontal-tb;
	}
	
	.Title.-vertical .Title_en::before {
		transform: rotate(0);
	}
	
}

/**********************************************
*
* ImgSlider
*
***********************************************/
.ImgSlider {
	overflow: hidden;
}

.ImgSlider_track {
	display: flex;
	width: max-content;
}

.ImgSlider_track.is-ready {
	animation: imgSlider 70s linear infinite;
}

.ImgSlider_item {
	flex-shrink: 0;
	width: 420px;
}

.ImgSlider_img {
	display: block;
	width: 100%;
	height: auto;
}

@keyframes imgSlider {
	to {
		transform: translateX(-50%);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ImgSlider_track.is-ready {
		animation: none;
	}
}

@media (max-width: 767px) {
	.ImgSlider_item {
		width: 200px;
	}

	.ImgSlider_track.is-ready {
		animation-duration: 28s;
	}
}

/**********************************************
*
* MainVis
*
***********************************************/
.MainVis {
	position: relative;
	width: 100%;
	height: auto;
	aspect-ratio: 1366 / 768;
	overflow: hidden;
	background-color: var(--color-primary);
	background-image: radial-gradient(
		circle,
		rgba(255, 255, 255, 0.08) 4px,
		transparent 4px
	);
	background-size: 28px 28px;
	background-position: -10px -10px;
	background-repeat: repeat;
	display: flex;
	align-items: center;
	justify-content: center;
}

.MainVis_bg {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
}

.MainVis_part {
	position: absolute;
	display: block;
	height: auto;
	max-width: none;
}

.MainVis_bg picture {
	display: contents;
}

.MainVis_part-circle-l {
	left: -9.5168%;
	top: 56.6406%;
	width: 33.7482%;
}

.MainVis_part-circle-r {
	left: 75.8419%;
	top: 56.6406%;
	width: 33.7482%;
}

.MainVis_part-men {
	left: 74.1528%;
	top: 47.0622%;
	width: 33.9791%;
}

.MainVis_part-women {
	left: -6.6667%;
	top: 50.2604%;
	width: 30.9029%;
}

.MainVis_part-symbol-01 {
	left: -1.9361%;
	top: 20.7682%;
	width: 10.7209%;
}

.MainVis_part-symbol-02 {
	left: 71.4048%;
	top: 78.6113%;
	width: 6.0894%;
}

.MainVis_part-symbol-03 {
	left: 92.7160%;
	top: 49.3737%;
	width: 5.3637%;
}

.MainVis_part-symbol-04 {
	left: 33.0101%;
	top: 82.2679%;
	width: 5.4339%;
}

.MainVis_part-symbol-05 {
	left: 6.6404%;
	top: 42.2418%;
	width: 5.5332%;
}

.MainVis_part-symbol-06 {
	left: 80.4512%;
	top: 17.4896%;
	width: 7.2645%;
}

.MainVis_part-symbol-07 {
	left: 17.2160%;
	top: 15.9989%;
	width: 5.0937%;
}

.MainVis_part-symbol-08 {
	left: 92.3665%;
	top: 21.4169%;
	width: 8.8753%;
}

.MainVis_part-symbol-09 {
	left: 20.4319%;
	top: 88.5286%;
	width: 9.5175%;
}

.MainVis_part-symbol-10 {
	left: 61.1272%;
	top: 87.9027%;
	width: 9.2447%;
}

.MainVis_bg .MainVis_part,
.MainVis_copy,
.MainVis_scroll {
	opacity: 0;
}

.MainVis_copy {
	position: relative;
	z-index: 1;
	text-align: center;
	margin-top: calc(16 / 1366 * 100vw);
}

.MainVis_copySubImg {
	display: block;
	width: calc(773 / 1366 * 100vw);
	height: auto;
	margin-inline: auto;
}

.MainVis_copyStrong {
	font-size: calc(110 / 1366 * 100vw);
	font-family: var(--font-ads);
	line-height: 1.3;
	letter-spacing: 0;
	color: var(--color-white);
	display: block;
	margin-top: calc(3 / 1366 * 100vw);
}

.MainVis_copyStrongSpace {
	margin-left: 0.26em;
}

.MainVis_scroll {
	position: absolute;
	z-index: 1;
	bottom: calc(31 / 1366 * 100vw);
	left: 0;
	right: 0;
	margin: auto;
	font-size: calc(22 / 1366 * 100vw);
	font-weight: 700;
	font-family: var(--font-en);
	letter-spacing: 0.06em;
	color: var(--color-white);
	text-align: center;
}

.MainVis_scroll::before {
	content: "";
	position: absolute;
	top: calc(-71 / 1366 * 100vw);
	left: 0;
	right: 0;
	margin: auto;
	width: 1px;
	height: calc(64 / 1366 * 100vw);
	background-color: var(--color-white);
	transform: scaleY(0);
	transform-origin: top center;
	animation: mainVisScrollLine 1.5s ease-out 0.6s infinite;
}

.MainVis_marquee {
	height: 72px;
	overflow: hidden;
	background-color: var(--color-secondary);
	background-image: url(../images/p-mainvis_suguro_recruit.svg);
	background-repeat: repeat-x;
	background-position: 0 center;
	background-size: auto 51px;
	animation: mainVisMarquee 20s linear infinite;
}

@keyframes mainVisMarquee {
	to {
		background-position: -670px center;
	}
}

@keyframes mainVisScrollLine {
	0% {
		transform: scaleY(0);
		opacity: 1;
	}
	70% {
		transform: scaleY(1);
		opacity: 1;
	}
	100% {
		transform: scaleY(1);
		opacity: 0;
	}
}

@media (max-width: 767px) {
	.MainVis {
		flex-direction: column;
		height: auto;
		aspect-ratio: 375 / 640;
		min-height: unset;
		padding-bottom: calc(122 / 375 * 100vw);
		background-image: radial-gradient(
			circle,
			rgba(255, 255, 255, 0.08) 4px,
			transparent 4px
		);
		background-size: 28px 28px;
		background-position: -10px -10px;
		background-repeat: repeat;
	}

	.MainVis_bg {
		display: block;
	}

	.MainVis_part-circle-l {
		left: -24.5333%;
		top: 71.7188%;
		width: 64%;
	}

	.MainVis_part-circle-r {
		left: 60.8%;
		top: 71.7188%;
		width: 64%;
	}

	.MainVis_part-men {
		left: 56.8%;
		top: 65.7344%;
		width: 65.1984%;
	}

	.MainVis_part-women {
		left: -19.6757%;
		top: 65.7344%;
		width: 62.2848%;
	}

	.MainVis_part-symbol-01 {
		left: -4.9776%;
		top: 31.9339%;
		width: 20.6221%;
	}

	.MainVis_part-symbol-02 {
		left: 89.332%;
		top: 64.4914%;
		width: 8.3184%;
	}

	.MainVis_part-symbol-03,
	.MainVis_part-symbol-10 {
		display: none;
	}

	.MainVis_part-symbol-04 {
		left: 55.4979%;
		top: 84.0472%;
		width: 8.4648%;
	}

	.MainVis_part-symbol-05 {
		left: 0;
		top: 52.9906%;
		width: 7.9165%;
	}

	.MainVis_part-symbol-06 {
		left: 91.9581%;
		top: 13.3368%;
		width: 11.3624%;
	}

	.MainVis_part-symbol-07 {
		left: 5.3333%;
		top: 12.4971%;
		width: 7.788%;
	}

	.MainVis_part-symbol-08 {
		left: 86.1333%;
		top: 36.9594%;
		width: 19.5899%;
	}

	.MainVis_part-symbol-09 {
		left: 30.2291%;
		top: 88.5288%;
		width: 18.4749%;
	}

	.MainVis_copy {
		margin-top: calc(16 / 375 * 100vw);
	}

	.MainVis_copyStrong {
		font-size: calc(50 / 375 * 100vw);
		line-height: 1.24;
		margin-top: 0;
	}

	.MainVis_copySubImg {
		width: calc(294 / 375 * 100vw);
	}

	.MainVis_scroll {
		position: absolute;
		bottom: calc(130 / 375 * 100vw);
		margin: 0;
		font-size: calc(18 / 375 * 100vw);
	}

	.MainVis_scroll::before {
		top: calc(-42 / 375 * 100vw);
		height: calc(40 / 375 * 100vw);
	}

	.MainVis_marquee {
		height: calc(56 / 375 * 100vw);
		background-size: auto calc(32 / 375 * 100vw);
	}
}

/**********************************************
*
* Intro
*
***********************************************/
.Intro {
	position: relative;
	padding: 100px 56px;
	overflow: hidden;
	background-color: var(--color-primary);
}

.Intro::before,
.Intro::after {
	content: "";
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
	z-index: 0;
}

.Intro::before {
	top: -365px;
	left: -391px;
	width: 756px;
	height: 756px;
	background-color: var(--color-tertiary);
}

.Intro::after {
	right: -137px;
	bottom: -132px;
	width: 500px;
	height: 500px;
	background-color: var(--color-secondary);
}

.Intro_inner {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 56px;
	max-width: 1254px;
	margin-inline: auto;
	padding: 72px 73px 76px 80px;
	border-radius: 20px;
	background-color: var(--color-white);
	background-image:
		url("../images/icon-nut.svg"),
		url("../images/icon-nut.svg"),
		url("../images/icon-nut.svg"),
		url("../images/icon-nut.svg");
	background-repeat: no-repeat;
	background-size: 30px 26px;
	background-position:
		16px 16px,
		calc(100% - 16px) 16px,
		16px calc(100% - 16px),
		calc(100% - 16px) calc(100% - 16px);
}

.Intro_visual {
	width: 34.84%;
	margin-top: 4px;
}

.Intro_image {
	display: block;
	width: 100%;
	height: auto;
}

.Intro_content {
	flex: 1;
	min-width: 0;
	padding-top: 8px;
}

.Intro_title {
	margin-bottom: 37px;
	font-family: var(--font-jp);
	font-size: 4.4rem;
	font-weight: 900;
	line-height: 1.45;
	letter-spacing: 0.06em;
	color: var(--color-primary);
}

.Intro_text {
	font-family: var(--font-jp);
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 1.78;
	letter-spacing: 0.05em;
	color: var(--color-black);
}

.Intro_textEm {
	line-height: 2.2;
    margin-top: 7px;
    display: inline-block;
}

.Intro_textEm + .Intro_textEm {
	margin-top: 0;
	margin-bottom: 5px;
}

@media (max-width: 1023px) {
	.Intro_inner {
		flex-direction: column;
		align-items: stretch;
		gap: 31px;
		padding: 36px 30px 56px;
		border-radius: 15px;
		background-size: 20px 17px;
		background-position:
			7px 12px,
			calc(100% - 7px) 12px,
			7px calc(100% - 12px),
			calc(100% - 7px) calc(100% - 12px);
	}

	.Intro_visual {
		width: 259px;
		margin-inline: auto;
	}

}

@media (max-width: 767px) {
	.Intro {
		padding: 64px 25px;
	}

	.Intro::before {
		top: -124px;
		left: -133px;
		width: 337px;
		height: 337px;
	}

	.Intro::after {
		top: auto;
		right: -109px;
		bottom: -35px;
		width: 314px;
		height: 314px;
	}

	.Intro_inner {
		flex-direction: column;
		align-items: stretch;
		gap: 31px;
		padding: 36px 30px 56px;
		border-radius: 15px;
		background-size: 20px 17px;
		background-position:
			7px 12px,
			calc(100% - 7px) 12px,
			7px calc(100% - 12px),
			calc(100% - 7px) calc(100% - 12px);
	}

	.Intro_title {
		font-size: 2.6rem;
		line-height: 1.54;
		margin-bottom: 25px;
	}

	.Intro_visual {
		width: 259px;
		margin-inline: auto;
	}

	.Intro_content {
		padding-top: 0;
	}

	.Intro_text {
		font-size: 1.7rem;
		line-height: 1.7;
	}

	.Intro_textEm {
		line-height: 1.76;
		margin-top: 16px;
	}

	.Intro_textEm + .Intro_textEm {
		margin-top: 12px;
		margin-bottom: 12px;
	}
}

/**********************************************
*
* About
*
***********************************************/
.About {
	position: relative;
	padding: 88px 32px 320px;
	overflow: hidden;
	background-image:
		linear-gradient(to right, rgba(112, 112, 112, 0.08) 1px, transparent 1px),
		linear-gradient(to bottom, rgba(112, 112, 112, 0.08) 1px, transparent 1px);
	background-size: 41px 41px;
	background-position: -1px -23px;
}

.About::before,
.About::after {
	content: "";
	position: absolute;
	top: 0;
	width: 32px;
	height: 100%;
	background-color: var(--color-secondary);
	background-image: url(../images/p-about_marquee.svg);
	background-repeat: repeat-y;
	background-position: center 0;
	background-size: 10.08px 162px;
	pointer-events: none;
	animation: aboutMarquee 5s linear infinite;
}

.About::before {
	left: 0;
	transform: rotate(180deg);
}

.About::after {
	right: 0;
}

.About_inner {
	display: flex;
	column-gap: 40px;
	align-items: center;
}

.About_title {
	grid-area: title;
	margin-bottom: 40px;
}

.About_textArea {
	flex: 1;
}

.About_text {
	font-family: var(--font-jp);
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 2;
	letter-spacing: 0.05em;
	color: var(--color-black);
	margin-top: 66px;
}

.About_text + .About_text {
	margin-top: 16px;
}

.About_visual {
	width: 42%;
	margin-top: 30px;
}

.About_visualImg {
	display: block;
	width: 100%;
	height: auto;
}

.About_strong {
	position: relative;
	display: flex;
	align-items: center;
	flex-direction: row-reverse;
	gap: 54px;
	max-width: clamp(580px, -321px + 117.3vw, 1000px);
	margin: clamp(88px, 188.65px - 8.94vw, 120px) auto 0;
	padding: 41px clamp(40px, -45.8px + 11.17vw, 80px) 45px;
	background-color: var(--color-white);
	border: 1px solid var(--color-black);
	border-radius: 20px;
	box-shadow: 10px 10px 0 var(--color-primary);
}

.About_strongBubble {
	position: absolute;
	top: -91px;
    left: -54px;
	z-index: 2;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	flex-direction: column;
	width: 342px;
    height: 180px;
	padding: 0 24px 16px 58px;
	background: url("../images/p-about_strong_bubble.svg") center / contain no-repeat;
	font-family: var(--font-ads);
	line-height: 1.2;
	transform: rotate(-8deg);
	font-size: 2rem;
	letter-spacing: 0.06em;
	color: var(--color-white);
}

.About_strongBubbleInner {
	transform: rotate(-2deg);
}

.About_strongBubbleEm {
	display: block;
	font-size: 3.4rem;
	letter-spacing: 0.06em;
	color: var(--color-secondary);
	margin-left: -3px;
}

.About_strongVisual {
	width: clamp(180px, 51.3px + 16.76vw, 240px);
	height: clamp(180px, 51.3px + 16.76vw, 240px);
	overflow: hidden;
	border-radius: 50%;
}

.About_strongVisualImg {
	display: block;
	width: 100%;
	height: auto;
}

.About_strongTextArea {
	flex: 1;
	min-width: 0;
}

.About_strongTitle {
	margin-bottom: 21px;
	font-family: var(--font-jp);
	font-size: 3.2rem;
	font-weight: 900;
	line-height: 1.4;
	letter-spacing: 0.06em;
	color: var(--color-primary);
}

.About_strongText {
	font-family: var(--font-jp);
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 2;
	letter-spacing: 0.05em;
	color: var(--color-black);
}

@keyframes aboutMarquee {
	to {
		background-position: center -162px;
	}
}

@keyframes aboutMarqueeSp {
	to {
		background-position: center -128.5714px;
	}
}

@media (max-width: 767px) {
	.About {
		padding: 59px 0 155px;
		background-size: 25px 25px;
		background-position: -8px -5px;
	}

	.About::before, .About::after {
		width: 16px;
		background-size: 8px 128.5714px;
		animation-name: aboutMarqueeSp;
		animation: aboutMarquee 6s linear infinite;
	}

	.About_inner {
		flex-direction: column;
	}

	.About_textArea {
		display: contents;
	}

	.About_header {
		order: 1;
		width: 100%;
		padding: 0 13px;
	}

	.About_visual {
		order: 2;
	}

	.About_textWrap {
		order: 3;
		padding: 0 15px;
	}

	.About_title {
		margin-bottom: 0;
	}

	.About_visual {
		width: 89%;
        margin-top: 32px;
	}

	.About_textArea {
		max-width: none;
	}

	.About_text {
		font-size: 1.7rem;
		line-height: 1.7058823529411764;
		margin-top: 27px;
	}

	.About_text + .About_text {
		margin-top: 16px;
	}

	.About_strong {
		flex-direction: column-reverse;
		gap: 19px;
		width: 91%;
		margin: 54px auto 0;
		padding: 40px 19px 31px;
	}

	.About_strongBubble {
		top: -34px;
        left: -18px;
		width: 198px;
		height: 115px;
		padding: 0 12px 10px;
		background: url("../images/p-about_strong_bubble_sp.svg") center / contain no-repeat;
		font-size: 1.4rem;
		letter-spacing: 0.02em;
		padding-left: 32px;
	}

	.About_strongBubbleLine {
		font-size: 1.4rem;
		letter-spacing: 0.02em;
	}

	.About_strongBubbleEm {
		margin-top: 1px;
		font-size: 2.1rem;
		letter-spacing: 0;
		padding-left: 3px;
	}

	.About_strongVisual {
		width: 180px;
		height: 180px;
		margin-top: -11px;
	}

	.About_strongTextArea {
		padding-top: 0;
	}

	.About_strongTitle {
		margin-bottom: 14px;
		font-size: 2.4rem;
		line-height: 1.5;
		text-align: center;
	}

	.About_strongText {
		font-size: 1.6rem;
		line-height: 1.75;
		letter-spacing: 0.02em;
		text-align: left;
	}
}

/**********************************************
*
* Number
*
***********************************************/
.Number {
	position: relative;
	background-image: linear-gradient(
		transparent 202px,
		#e5f1ff 202px,
		#e5f1ff calc(100% - 202px),
		transparent calc(100% - 202px)
	);
	margin: -202px 0;
    padding: 122px 0 161px;
}

.Number::before,
.Number::after {
	position: absolute;
	content: "";
	left: 0;
	width: 100%;
	height: 202px;
	background: url(../images/p-number_curve.svg) center / max(100%, 2020px) 100% no-repeat;
}

.Number::before {
	top: 0;
}

.Number::after {
	bottom: 0;
	transform: scaleY(-1);
}

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

.Number_header {
	margin-bottom: 107px;
}

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

.Number_block + .Number_block {
	margin-top: 100px;
}

.Number_heading {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	width: 100%;
	margin-inline: auto;
	padding: 24px 48px 23px 50px;
	border-radius: 44px;
	background-color: var(--color-primary);
	color: var(--color-white);
}

.Number_heading::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -24px;
	width: 29.182px;
	height: 24.795px;
	background-color: var(--color-primary);
	clip-path: path("M12.831 23.745a2 2 0 0 0 3.519 0L29.182 0H0Z");
	transform: translateX(-50%);
}

.Number_headingNum {
	font-family: var(--font-en);
	font-size: 2.6rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.08em;
	color: var(--color-secondary);
	margin-top: 7px;
}

.Number_headingText {
	font-family: var(--font-jp);
	font-size: 3.4rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.06em;
}

.Number_lead {
	max-width: 920px;
	margin: 61px auto 34px;
	font-family: var(--font-jp);
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 2;
	letter-spacing: 0.05em;
	text-align: center;
	color: var(--color-black);
}

.Number_grid {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.Number_row {
	display: flex;
	gap: 20px;
}

.Number_card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 13px;
	min-height: clamp(123px, 0.8px + 15.92vw, 180px);
	padding: 25px 20px 28px;
	border-radius: 20px;
	background-color: var(--color-white);
	text-align: center;
	min-width: 0;
}

.Number_cardLabel {
	font-family: var(--font-jp);
	font-size: clamp(2rem, 0.713rem + 1.676vw, 2.6rem);
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.05em;
	color: var(--color-black);
}

.Number_cardValue {
	display: inline-flex;
	align-items: baseline;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0 2px;
	line-height: 1;
}

.Number_cardNum {
	font-family: var(--font-en);
	font-size: clamp(4rem, -1.15rem + 6.7vw, 6.4rem);
	font-weight: 700;
	letter-spacing: 0.05em;
	color: var(--color-tertiary);
}

.Number_cardNum.-narrow {
	letter-spacing: 0;
}

.Number_cardUnit {
	font-family: var(--font-jp);
	font-size: clamp(2.4rem, 0.68rem + 2.23vw, 3.2rem);
	font-weight: 700;
	letter-spacing: 0.05em;
	color: var(--color-black);
	transform: translateY(-0.08em);
	margin-left: clamp(3px, -5.58px + 1.117vw, 7px);
}

/* 01 会社について */
.Number_card.-founded {
	flex: 373 1 373px;
}

.Number_card.-sales {
	flex: 733 1 733px;
	padding-left: 26.8%;
	align-items: flex-start;
}

.Number_card.-sales::before {
	position: absolute;
	content: "";
	top: 0;
	bottom: 0;
	left: clamp(40px, -0.8px + 5.31vw, 59px);
	margin: auto;
	width: clamp(144px, 0.2px + 18.72vw, 211px);
	height: clamp(72px, -1px + 9.5vw, 106px);
	background: url(../images/p-number_sales.svg) center / contain no-repeat;
}

.Number_cardUnit.-sales01 {
	margin-left: 2px;
	margin-right: 12px;
}

.Number_cardUnit.-sales02 {
	margin-left: 4px;
}

.Number_card.-deals {
	flex: 640 1 640px;
	padding-left: 21%;
}

.Number_card.-deals::before {
	position: absolute;
	content: "";
	bottom: 0;
	left: clamp(14%, 6.49% + 0.978vw, 17.5%);
	width: clamp(116px, 1px + 15.08vw, 170px);
	height: clamp(132px, -0.6px + 17.32vw, 194px);
	background: url(../images/p-number_deals.svg) center / contain no-repeat;
}

.Number_card.-deals .Number_cardLabel {
	padding-left: 10px;
}

.Number_card.-deals .Number_cardUnit {
	margin-left: 4px;
}

.Number_card.-bases {
	flex: 466 1 466px;
	padding-left: 5.7%;
	align-items: flex-start;
}

.Number_card.-bases::before {
	position: absolute;
	content: "";
	bottom: 0;
	top: 0;
	right: clamp(10%, 22.58% - 1.117vw, 14%);
	margin: auto;
	width: clamp(104px, -11.9px + 15.08vw, 158px);
	height: clamp(80px, -1.49px + 10.61vw, 118px);
	background: url(../images/p-number_bases.svg) center / contain no-repeat;
}

/* 02 働く人について */
.Number_grid.-people {
	display: grid;
	grid-template-columns: 446fr 320fr 320fr;
	grid-template-rows: clamp(123px, 0.8px + 15.92vw, 180px) clamp(123px, 0.8px + 15.92vw, 180px) auto;
	gap: 20px;
}

:where(.Number_grid.-people) .Number_card {
	padding: 20px 10px 20px;
}

.Number_card.-employees {
	grid-column: 1;
	grid-row: 1 / 3;
	min-height: 0;
	justify-content: flex-start;
	padding-top: 33px;
}

.Number_card.-employees::after {
	position: absolute;
	content: "";
	bottom: -1px;
	right: clamp(-10px, -0.6px - 0.838vw, -7px);
	left: 0;
	margin: auto;
	width: clamp(200px, -38.1px + 30.73vw, 347px);
	height: clamp(119px, -23.4px + 18.44vw, 207px);
	background: url(../images/p-number_employees.svg) center / contain no-repeat;
}

.Number_card.-ratio {
	grid-column: 2;
	grid-row: 1;
	min-height: 0;
}

.Number_card.-age {
	grid-column: 3;
	grid-row: 1;
	min-height: 0;
}

.Number_card.-leaderAge {
	grid-column: 2 / 4;
	grid-row: 2;
	min-height: 0;
}

.Number_card.-jobs {
	grid-column: 1 / 4;
	grid-row: 3;
	align-items: stretch;
	padding: 32px clamp(25px, -41.47px + 8.66vw, 56px) 48px;
	gap: 18px;
	overflow: hidden;
}

.Number_card.-jobs::before {
	position: absolute;
	content: "";
	bottom: 0;
	right: clamp(2.4%, 0.255% + 0.279vw, 3.4%);
	margin: auto;
	width: clamp(141px, -0.6px + 18.44vw, 207px);
	height: clamp(191px, 0.1px + 24.86vw, 280px);
	background: url(../images/p-number_jobs.svg) center / contain no-repeat;
}

.Number_cardValue.-ratio {
	align-items: center;
	gap: 8px;
}

/* 03 働き方について */
:where(.Number_grid.-work) .Number_card {
	min-height: clamp(137px, 0.7px + 17.4vw, 200px);
	padding: 14px 10px 20px;
}

.Number_card.-holiday {
	flex: 486 1 486px;
	padding-left: 20.4%;
    align-items: self-start;
}

.Number_card.-holiday::before {
	position: absolute;
	content: "";
	bottom: 0;
	top: clamp(-2px, 1.15px - 0.279vw, -1px);
	left: clamp(21.2%, 25.49% - 0.38vw, 22.74%);
	margin: auto;
	width: clamp(46px, -1.2px + 6.15vw, 68px);
	height: clamp(74px, 0px + 9.65vw, 108px);
	background: url(../images/p-number_holiday.svg) center / contain no-repeat;
}

.Number_card.-tenure {
	flex: 300 1 300px;
}

.Number_card.-bonus {
	flex: 300 1 300px;
}

.Number_card.-overtime {
	flex: 383 1 383px;
}

.Number_card.-paidLeave {
	flex: 723 1 723px;
	align-items: flex-start;
    padding-left: 5.8%;
}

.Number_card.-paidLeave::before {
	position: absolute;
	content: "";
	bottom: 0;
	right: clamp(3.5%, 0.28% + 0.419vw, 5%);
	margin: auto;
	width: clamp(150px, -0.2px + 19.56vw, 220px);
	height: clamp(145px, -0.7px + 18.97vw, 213px);
	background: url(../images/p-number_paidLeave.svg) center / contain no-repeat;
}

.Number_card.-paidLeave .Number_cardLabel {
	padding-left: 7px;
}

.Number_card.-paidLeave .Number_cardNum.-paidLeave01 {
	padding-left: clamp(2px, -15.16px + 2.23vw, 10px);
}

.Number_card.-paidLeave .Number_cardUnit.-paidLeave03 {
	margin-left: -5px;
}

.Number_card.-paidLeave .Number_cardNum.-paidLeave04 {
	margin-left: -5px;
}


.Number_ratioItem {
	display: inline-flex;
	align-items: baseline;
	gap: 4px;
}

.Number_ratioItem.-male .Number_ratioLabel,
.Number_ratioItem.-male .Number_cardNum {
	color: var(--color-primary);
}

.Number_ratioItem.-female .Number_ratioLabel,
.Number_ratioItem.-female .Number_cardNum {
	color: var(--color-tertiary);
}

.Number_ratioItem.-male .Number_ratioLabel,
.Number_ratioItem.-female .Number_ratioLabel {
	transform: translateY(-0.15em);
	margin-right: clamp(2px, 14.58px - 1.117vw, 6px);
}

.Number_ratioLabel {
	font-family: var(--font-jp);
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-align: center;
}

.Number_ratioColon {
	font-family: var(--font-jp);
	font-size: clamp(2.6rem, 0.46rem + 0.279vw, 3.6rem);
	font-weight: 700;
	line-height: 1;
	color: var(--color-black);
}

.Number_card.-jobs .Number_cardLabel {
	margin-bottom: 1px;
	text-align: center;
}

.Number_chart {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 0;
	margin: 0;
	padding: 12px 0 0 0;
	list-style: none;
}

.Number_chartItem {
	display: flex;
	align-items: center;
	gap: clamp(20px, 2.85px + 2.23vw, 28px);
	padding-left: clamp(0px, -120.1px + 15.64vw, 56px);
}

.Number_chartLabel {
	flex: 0 0 clamp(105px, -30.2px + 17.63vw, 168px);
	font-family: var(--font-jp);
	font-size: clamp(1.6rem, -0.545rem + 2.793vw, 2.6rem);
	font-weight: 700;
	letter-spacing: 0.05em;
	color: var(--color-black);
	text-align: left;
}

.Number_chartBar {
	position: relative;
	display: block;
	flex: 0 0 auto;
	width: 0;
	height: 28px;
	background-color: var(--color-tertiary);
}

.Number_chartBar::before {
	position: absolute;
	content: "";
	top: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	width: 2px;
	height: 260%;
	background: var(--color-black);
	border-left: 2px solid var(--color-black);
}

.Number_chartValue {
	display: inline-flex;
	align-items: baseline;
	flex-shrink: 0;
	white-space: nowrap;
	margin-left: -7px;
}

.Number_chartValue .Number_cardNum {
	font-size: clamp(4rem, -1.15rem + 6.7vw, 6.4rem);
	line-height: 0.71;
	transform: translateY(0.07em);
}

.Number_chartValue .Number_cardUnit {
	font-size: clamp(1.8rem, -1.114rem + 3.799vw, 3.2rem);
	transform: translateY(0.1em);
}

@media (max-width: 1023px) {
	.Number_grid.-people {
		grid-template-columns: 4fr 3.5fr 3.5fr;
	}
}

@media (max-width: 767px) {
	.Number {
		padding: 65px 0 100px;
		margin: -80px 0;
		background-image: linear-gradient(
			transparent 80px,
			#e5f1ff 80px,
			#e5f1ff calc(100% - 80px),
			transparent calc(100% - 80px)
		);
	}

	.Number::before,
	.Number::after {
		height: 80px;
		background-image: url(../images/p-number_curve_sp.svg);
		background-size: max(100%, 578px) 100%;
	}

	.Number_block + .Number_block {
		margin-top: 52px;
	}

	.Number_heading {
		width: fit-content;
		max-width: none;
		margin-inline: 0;
		padding: 16px 20px 14px 11px;
		border-radius: 28px;
		gap: 10px;
		width: 100%;
	}

	.Number_header {
		margin-bottom: 49px;
	}

	.Number_heading::after {
		bottom: -10px;
		width: 14.051px;
		height: 10.794px;
		clip-path: path("M5.266 9.745a2 2 0 0 0 3.519 0L14.051 0H0Z");
	}

	.Number_headingNum {
		font-size: 1.6rem;
		margin-top: 3px;
	}

	.Number_headingText {
		font-size: 2.2rem;
	}

	.Number_lead {
		margin: 33px 0 30px;
		font-size: 1.7rem;
		line-height: 1.7;
		text-align: left;
	}

	.Number_grid,
	.Number_row {
		gap: 12px;
	}

	.Number_row {
		flex-wrap: wrap;
	}

	.Number_card {
		flex: 1 1 100%;
		min-height: 0;
		padding: 21px 16px 25px;
		border-radius: 10px;
		gap: 8px;
	}

	.Number_cardLabel {
		font-size: 2rem;
		line-height: 1.3;
	}

	.Number_cardNum {
		font-size: 4rem;
	}

	.Number_cardUnit {
		font-size: 2.4rem;
		margin-left: 3px;
	}

	/* 01 SP: 縦並び */
	.Number_grid.-company .Number_row {
		flex-direction: column;
	}

	.Number_grid.-company .Number_card.-founded,
	.Number_grid.-company .Number_card.-sales,
	.Number_grid.-company .Number_card.-deals,
	.Number_grid.-company .Number_card.-bases {
		flex: 1 1 auto;
		width: 100%;
	}

	.Number_card.-sales {
		padding-left: 13px;
        padding-top: 16px;
		padding-bottom: 60px;
		align-items: center;
	}

	.Number_card.-deals {
		padding-top: 23px;
		padding-left: 31%;
		padding-bottom: 14px;
	}

	.Number_card.-deals .Number_cardLabel {
		padding-left: 27px;
	}

	.Number_card.-sales::before {
		width: 87px;
		height: 44px;
		left: 0;
		right: 0;
		bottom: 0;
		top: auto;
	}

	.Number_card.-deals::before {
		width: 83px;
		height: 96px;
		left: 10.5%;
	}
	

	.Number_card.-bases {
		padding-left: 54px;
	}

	.Number_card.-bases::before {
		width: 99px;
		height: 76px;
		right: 18%;
	}

	.Number_cardUnit.-sales01 {
		margin-left: -1px;
		margin-right: 6px;
	}

	.Number_cardUnit.-sales02 {
		margin-left: -1px;
	}

	/* 02 SP */
	.Number_grid.-people {
		display: flex;
		flex-direction: column;
		gap: 12px;
	}

	.Number_grid.-people .Number_card.-employees,
	.Number_grid.-people .Number_card.-ratio,
	.Number_grid.-people .Number_card.-age,
	.Number_grid.-people .Number_card.-leaderAge,
	.Number_grid.-people .Number_card.-jobs {
		grid-column: auto;
		grid-row: auto;
		width: 100%;
	}

	.Number_grid.-people {
		display: grid;
		grid-template-columns: 1fr 1fr;
		grid-template-rows: auto;
		gap: 12px;
	}

	.Number_grid.-people .Number_card.-employees,
	.Number_grid.-people .Number_card.-leaderAge,
	.Number_grid.-people .Number_card.-jobs {
		grid-column: 1 / -1;
	}

	.Number_card.-employees {
		padding-left: 51%;
		padding-top: 24px;
		padding-bottom: 20px;
	}

	.Number_card.-employees::after {
		width: 160px;
		height: 96px;
		left: 1.6%;
        right: auto;
	}

	.Number_grid.-people .Number_card.-ratio {
		padding: 22px 5px 9px;
        gap: 25px;
	}

	.Number_grid.-people .Number_card.-age {
		padding: 20px 10px;
	}

	.Number_grid.-people .Number_card.-jobs {
        padding: 22px 11px 37px;
	}

	.Number_card.-jobs::before {
		right: 2.4%;
		width: 58px;
		height: 73px;
		background: url(../images/p-number_jobs_sp.svg) center / contain no-repeat;
	}

	.Number_ratioLabel {
		font-size: 1.6rem;
		line-height: 1.15;
	}

	.Number_ratioColon {
		font-size: 2.6rem;
		padding-bottom: 8px;
	}

	.Number_ratioItem {
		align-items: center;
	}

	.Number_cardValue.-ratio {
		gap: 8px;
	}

	.Number_ratioItem.-male .Number_ratioLabel,
	.Number_ratioItem.-female .Number_ratioLabel {
		margin-right: 0;
	}

	.Number_card.-jobs .Number_cardLabel {
		margin-bottom: 16px;
	}

	.Number_chart {
		gap: 4px;
		padding-top: 0;
	}

	.Number_chartItem {
		gap: 10px;
		padding-left: 16px;
	}

	.Number_chartLabel {
		flex-basis: 105px;
		font-size: 1.6rem;
	}

	.Number_chartBar {
		height: 20px;
	}

	.Number_chartBar::before {
		height: 320%;
	}

	.Number_chartValue .Number_cardNum {
		font-size: 3.4rem;
	}

	.Number_chartValue .Number_cardUnit {
		font-size: 1.8rem;
	}

	/* 03 SP */
	.Number_grid.-work .Number_row:first-child {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 12px;
	}

	.Number_grid.-work .Number_row:first-child .Number_card.-holiday {
		grid-column: 1 / -1;
	}

	.Number_grid.-work .Number_card.-holiday,
	.Number_grid.-work .Number_card.-tenure,
	.Number_grid.-work .Number_card.-bonus,
	.Number_grid.-work .Number_card.-overtime,
	.Number_grid.-work .Number_card.-paidLeave {
		flex: 1 1 auto;
	}

	.Number_grid.-work .Number_row:last-child {
		flex-direction: column;
	}

	.Number_card.-holiday {
		padding-left: 45.5%;
	}

	.Number_card.-holiday .Number_cardLabel {
		padding-left: 3px;
	}

	.Number_card.-holiday::before {
		width: 46px;
		height: 74px;
	}

	.Number_card.-paidLeave::before {
		width: 86px;
        height: 83px;
        bottom: -10px;
        top: auto;
        right: 0%;
	}

	.Number_card.-tenure,
	.Number_card.-bonus {
		padding: 21px 10px 24px;
	}

	.Number_card.-paidLeave {
		padding: 22px 105px 24px 13px;
		overflow: hidden;
		align-items: center;
	}

	.Number_card.-paidLeave .Number_cardLabel {
		padding-right: 25px;
	}

	.Number_card.-paidLeave .Number_cardUnit {
		font-size: 1.6rem;
	}

	.Number_card.-paidLeave .Number_cardValue {
		padding-left: 4px;
	}

	.Number_card.-paidLeave .Number_cardNum.-paidLeave01 {
		padding-left: 2px;
	}
}

/**********************************************
* 
* Work
*
***********************************************/
.Work {
	padding: 318px 0 278px;
	background-image: radial-gradient(
		circle, 
		rgba(48, 100, 191, 0.05) 4px, 
		transparent 4px);
	background-size: 28px 28px;
	background-position: -10px 2px;
	background-repeat: repeat;
	scroll-margin-top: -250px;
	overflow: hidden;
}

.Work_header {
	text-align: center;
	margin-bottom: 70px;
}

.Work_headerInner {
	position: relative;
	display: inline-block;
}

.Work_headerInner::before {
	content: "";
	position: absolute;
	display: block;
	top: clamp(20px, 82.91px - 5.59vw, 40px);
	left: clamp(-119px, 66.57px - 16.48vw, -60px);
	width: clamp(36px, 1.55px + 4.58vw, 53px);
	height: clamp(63px, 2.26px + 7.95vw, 92px);
	background: url(../images/p-worls_illust_01.svg) center / contain no-repeat;
	transform: rotate(-17deg);
}

.Work_headerInner::after {
	content: "";
	position: absolute;
	display: block;
	top: clamp(12px, 100.06px - 7.82vw, 40px);
	right: clamp(-114px, 87.32px - 17.88vw, -50px);
	width: clamp(32px, 1.37px + 4.06vw, 47px);
	height: clamp(74px, 2.68px + 9.43vw, 109px);
	background: url(../images/p-worls_illust_02.svg) center / contain no-repeat;
	transform: rotate(21deg);
}

.Work_swiperWrapper {
	position: relative;
}

.Work_swiperWrapper::after {
	position: absolute;
	content: "";
	bottom: -23px;
    left: clamp(25px, 0.3px + 3.24vw, 37px);
    width: clamp(44px, 0.7px + 5.73vw, 65px);
    height: clamp(51px, 0.7px + 6.61vw, 75px);
    background: url(../images/p-worls_illust_03.svg) center / contain no-repeat;
    z-index: 1;
    transform: rotate(28deg);
}

.Work_swiper {
	overflow: visible;
}

.Work_pagination {
	display: none;
}

.Work_nav {
	display: none;
}

.Work_tabs {
	position: relative;
	display: flex;
	justify-content: flex-start;
	align-items: stretch;
	gap: 20px;
	width: 100%;
	margin: 0;
	transform: none;
	z-index: 2;
	bottom: 0!important;
	width: 94.7%!important;
    margin: 0 auto;
}

.Work_tabs .swiper-pagination-bullet {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 1 1 0;
	width: auto;
	height: 70px;
	margin: 0 !important;
	padding: 0 16px;
	border-radius: 20px 20px 0 0;
	border: 2px solid #aaa;
	border-bottom: none;
	background: var(--color-white);
	opacity: 1;
	appearance: none;
	font-family: var(--font-jp);
	font-size: 2.2rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1.2;
	color: #aaa;
	cursor: pointer;
	transition:
		background-color 0.25s ease,
		color 0.25s ease,
		border-color 0.25s ease;
}

.Work_tabs .swiper-pagination-bullet-active {
	position: relative;
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-secondary);
}

.Work_panel {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, min(350px, 36.5%));
	align-items: center;
	gap: 40px clamp(24px, -27.47px + 6.7vw, 48px);
	padding: 46px clamp(40px, -41.47px + 10.61vw, 78px) 54px;
	border: 2px solid var(--color-primary);
	border-radius: 20px;
	background: var(--color-white);
}

.Work_body {
	min-width: 0;
	margin-top: 2px;
}

.Work_heading {
	margin-bottom: 22px;
	font-family: var(--font-jp);
	font-size: 3.2rem;
	font-weight: 900;
	letter-spacing: 0.06em;
	line-height: 1.3;
	color: var(--color-primary);
}

.Work_text {
	margin-bottom: 28px;
	font-family: var(--font-jp);
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 2;
	color: var(--color-black);
}

.Work_examples {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 32px;
}

.Work_examplesLabel {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 132px;
	height: 53px;
	padding: 0 20px;
	border-radius: 10px;
	background: #e5f1ff;
	font-family: var(--font-jp);
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1;
	color: var(--color-primary);
}

.Work_examplesList {
	display: grid;
    grid-template-columns: max-content max-content;
	gap: 7px 23px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.Work_examplesItem {
	position: relative;
	padding-left: 16px;
	font-family: var(--font-jp);
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.4;
	color: var(--color-black);
}

.Work_examplesItem::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--color-tertiary);
	transform: translateY(-50%);
}

.Work_visual {
	width: 100%;
	aspect-ratio: 1;
	border-radius: 50%;
	overflow: hidden;
}

.Work_visualImg {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (hover: hover) {
	.Work_tabs .swiper-pagination-bullet:not(.swiper-pagination-bullet-active):hover {
		color: var(--color-primary);
		background-color: #d1dff8;
		border-color: var(--color-primary);
	}
}

@media (max-width: 767px) {
	.Work {
		padding: 139px 0 170px;
		overflow-x: clip;
		background-image: radial-gradient(circle, rgba(48, 100, 191, 0.05) 3.5px, transparent 3.5px);
		background-size: 23px 23px;
		background-position: -8px 21px;
		scroll-margin-top: -100px;
	}

	.Work_header {
		text-align: center;
		gap: 10px;
		margin-bottom: 42px;
	}

	.Work_header::before {
		top: 9px;
        left: -19px;
		width: 25px;
		height: 43px;
		transform: rotate(-17deg);
	}
	
	.Work_header::after {
		top: 8px;
        right: -16px;
		width: 20px;
		height: 47px;
		transform: rotate(21deg);
	}

	.Work_swiperWrapper {
		margin: 0 calc(var(--gutter) * -1);
	}

	.Work_swiperWrapper::after {
		width: 42px;
		height: 48px;
		bottom: -3px;
		left: 29px;
	}

	.Work_swiper {
		overflow: hidden;
	}

	.Work_swiper .swiper-wrapper {
		align-items: stretch;
	}
	
	.Work_swiper .swiper-slide {
		height: auto;
	}

	.Work_tabs {
		display: none;
	}

	.Work_nav {
		position: absolute;
		top: 50%;
		z-index: 3;
		display: block;
		width: 40px;
		height: 40px;
		padding: 0;
		border: none;
		border-radius: 50%;
		background: url(../images/icon-work_nav.svg) center / contain no-repeat;
		appearance: none;
		cursor: pointer;
	}

	.Work_nav-prev {
		left: calc((100% - (100% - 4px) / 1.25) / 2);
		transform: translate(-50%, -50%);
	}

	.Work_nav-next {
		right: calc((100% - (100% - 4px) / 1.25) / 2);
		transform: translate(50%, -50%) rotate(180deg);
	}

	.Work_nav.swiper-button-disabled {
		opacity: 0.4;
		cursor: default;
		pointer-events: none;
	}

	.Work_pagination {
		position: relative;
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 12px;
		width: 100%;
		margin-top: 20px;
		transform: none;
		bottom: 50px!important;
	}

	.Work_pagination .swiper-pagination-bullet {
		width: 8px;
		height: 8px;
		margin: 0 !important;
		background: #A4BDE8;
		opacity: 1;
	}

	.Work_pagination .swiper-pagination-bullet-active {
		background: var(--color-primary);
	}

	.Work_panel {
		grid-template-columns: 1fr;
		gap: 24px;
		min-height: 0;
		padding: 28px 20px 50px;
		border-radius: 20px;
		height: 100%;
		align-items: start;
		align-content: start;
	}

	.Work_heading {
		margin-bottom: 19px;
		font-size: 2.4rem;
		text-align: center;
	}

	.Work_text {
		margin-bottom: 22px;
		font-size: 1.6rem;
		line-height: 1.75;
		letter-spacing: 0.02em;
		padding: 0 10px;
	}

	.Work_examples {
		gap: 8px 16px;
		padding: 0 8px;
	}

	.Work_examplesLabel {
		min-width: 0;
		width: 100%;
		height: auto;
		padding: 7px 16px 8px;
		font-size: 1.4rem;
		border-radius: 5px;
		letter-spacing: 0.06em;
	}

	.Work_examplesList {
		width: fit-content;
		margin-inline: auto;
		gap: 8px 15px;
	}

	.Work_examplesItem {
		font-size: 1.5rem;
	}

	.Work_visual {
		width: 160px;
		height: 160px;
		margin-inline: auto;
		order: -1;
	}
}

/* WorksOther
***********************************************/
.WorksOther {
	margin-top: 80px;
}

.WorksOther_heading {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-end;
	column-gap: 0;
	row-gap: 8px;
	margin-bottom: 40px;
	font-family: var(--font-jp);
	font-size: 3.2rem;
	font-weight: 900;
	line-height: 1.4;
	letter-spacing: 0.08em;
	color: var(--color-black);
	text-align: center;
}

.WorksOther_headingChar {
	position: relative;
	display: inline-block;
	padding-top: 9px;
	color: var(--color-primary);
}

.WorksOther_headingChar::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	display: block;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--color-tertiary);
	transform: translateX(-50%);
}

.WorksOther_list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 40px;
}

.WorksOther_card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	min-height: 364px;
	padding: 44px 40px clamp(48px, 242.1px - 17.4vw, 100px);
	border-radius: 20px;
	background: #e5f1ff;
}

.WorksOther_card::after {
	content: "";
	position: absolute;
	right: 0;
	left: 0;
	margin: auto;
}

.WorksOther_card.-sales::after {
	background: url(../images/p-worls_other_sales.svg) center / contain no-repeat;
	width: 153px;
	height: 136px;
	bottom: -34px;
}

.WorksOther_card.-administration::after {
	background: url(../images/p-worls_other_administration.svg) center / contain no-repeat;
	width: 129px;
	height: 112px;
	bottom: -9px;
    left: 18px;
}

.WorksOther_cardTitle {
	margin-bottom: 24px;
	font-family: var(--font-jp);
	font-size: 3.2rem;
	font-weight: 900;
	line-height: 1.2;
	letter-spacing: 0.06em;
	color: var(--color-primary);
	text-align: center;
}

.WorksOther_cardText {
	font-family: var(--font-jp);
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 2;
	letter-spacing: 0.05em;
	color: var(--color-black);
	text-align: left;
}

@media (max-width: 767px) {
	.WorksOther {
		margin-top: 19px;
	}

	.WorksOther_heading {
		display: block;
		margin-bottom: 21px;
		font-size: 2.4rem;
		letter-spacing: 0.08em;
		line-height: 2.3;
	}

	.WorksOther_headingChar {
		padding-top: 0;
	}

	.WorksOther_headingChar::before {
		width: 7px;
		height: 7px;
		top: 2px;
	}

	.WorksOther_list {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.WorksOther_card {
		min-height: 0;
		padding: 34px 30px 88px;
	}

	.WorksOther_cardTitle {
		margin-bottom: 12px;
		font-size: 2rem;
	}

	.WorksOther_cardText {
		line-height: 1.75;
		letter-spacing: 0.02em;
	}

	.WorksOther_card.-sales::after {
		width: 90px;
		height: 80px;
		bottom: -21px;
	}
	
	.WorksOther_card.-administration::after {
		width: 76px;
		height: 66px;
		bottom: -5px;
		left: 2px;
	}
}

/**********************************************
* 
* WorkPlace
*
***********************************************/
.WorkPlace {
	position: relative;
}

.WorkPlace_sticky {
	position: relative;
	background-color: var(--color-primary);
	padding-bottom: 40px;
	container-type: inline-size;
}

.WorkPlace_sticky::before {
	content: "";
	position: absolute;
	top: -143px;
	left: 0;
	width: 100%;
	height: 144px;
	background-image: url(../images/p-workplace_bg.svg);
	background-repeat: repeat-x;
	background-position: top center;
	background-size: max(100%, 1366px) auto;
}

.WorkPlace_sticky::after {
	content: "";
	position: absolute;
	bottom: -143px;
	left: 0;
	width: 100%;
	height: 144px;
	background-image: url(../images/p-workplace_bg.svg);
	background-repeat: repeat-x;
	background-position: top center;
	background-size: max(100%, 1366px) auto;
	transform: rotate(180deg);
}

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

.WorkPlace_inner::before {
	content: "";
	position: absolute;
	top: clamp(-144px, calc(-126px + (100vw - 768px) * -18 / 598), -126px);
	right: clamp(-42px, calc(10px + (100vw - 768px) * -52 / 598), 10px);
	width: clamp(258px, calc(258px + (100vw - 768px) * 120 / 598), 378px);
	height: clamp(103px, calc(103px + (100vw - 768px) * 48 / 598), 151px);
	background: url(../images/p-workplace_illust_01.svg) center / contain no-repeat;
}

.WorkPlace_inner::after {
	content: "";
	position: absolute;
	bottom: clamp(-132px, calc(-130px + (100vw - 768px) * -2 / 598), -130px);
	left: clamp(-98px, calc(-48px + (100vw - 768px) * -50 / 598), -48px);
	width: clamp(135px, calc(150px + (100vw - 768px) * -15 / 598), 150px);
	height: clamp(170px, calc(170px + (100vw - 768px) * 159 / 598), 329px);
	background: url(../images/p-workplace_illust_02.svg) center / contain no-repeat;
	z-index: 1;
}

.WorkPlace_header {
	margin-bottom: 95px;
}

.WorkPlace_viewport {
	/* 左右フルブリード。過ぎたカードは左の余白内で見える（画面外は clip） */
	overflow: hidden;
	width: 100cqi;
	margin-left: calc((100% - 100cqi) / 2);
	padding-left: max(var(--gutter), calc((100cqi - var(--contents-width)) / 2));
}

.WorkPlace_list {
	display: flex;
	gap: 40px;
	width: max-content;
	will-change: transform;
	padding-top: 40px;
}

@media (min-width: 1850px) {
	.WorkPlace_inner::before {
		top: -130px;
	}
}

@media (min-width: 768px) {
	.WorkPlace_track {
		position: relative;
		background-color: var(--color-white);
	}

	.WorkPlace_sticky {
		position: sticky;
		top: -50px;
		z-index: 1;
	}
}

.WorkPlace_card {
	display: flex;
	flex-direction: column;
	align-items: center;
	flex: 0 0 calc((min(var(--contents-width), 100vw - var(--gutter) * 2) - 40px) / 2);
	width: calc((min(var(--contents-width), 100vw - var(--gutter) * 2) - 40px) / 2);
	min-height: 480px;
	padding: 40px clamp(30px, -14.47px + 6.7vw, 55px) clamp(50px, 35.9px + 0.279vw, 55px);
	border-radius: 30px;
	background: var(--color-white);
}

.WorkPlace_number {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 81px;
	height: 80px;
	margin-bottom: 19px;
	background: url("../images/p-workplace_number.svg") center / contain no-repeat;
	font-family: var(--font-en);
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.06em;
	color: var(--color-primary);
	margin-top: -80px;
}

.WorkPlace_cardTitle {
	margin-bottom: 22px;
	font-family: var(--font-jp);
	font-size: 3rem;
	font-weight: 900;
	line-height: 1.45;
	letter-spacing: 0.06em;
	color: var(--color-black);
	text-align: center;
}

.WorkPlace_cardTitleAccent {
	color: var(--color-primary);
}

.WorkPlace_cardText {
	font-family: var(--font-jp);
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 2;
	letter-spacing: 0.05em;
	color: var(--color-black);
	text-align: left;
}

@media (max-width: 767px) {
	.WorkPlace_sticky {
		padding: 0 0 20px;
	}

	.WorkPlace_sticky::before {
		top: -83px;
		height: 95px;
		background-size: 100% auto;
		background-image: url(../images/p-workplace_bg_sp.svg);
	}

	.WorkPlace_sticky::after {
		bottom: -60px;
		height: 95px;
		background-size: 100% auto;
		background-image: url(../images/p-workplace_bg_sp.svg);
		z-index: 0;
	}

	.WorkPlace_inner::before {
		top: -93px;
        right: 6px;
		width: 128px;
		height: 58px;
		background: url(../images/p-workplace_illust_01.svg) center / contain no-repeat;
	}

	.WorkPlace_inner::after {
		bottom: -72px;
        left: -17px;
		width: 51px;
		height: 125px;
	}

	.WorkPlace_header {
		margin-bottom: 5px;
		transform: translateY(-10px);
	}

	.WorkPlace_viewport {
		overflow: visible;
		width: auto;
		margin-left: 0;
		padding-left: 0;
	}

	.WorkPlace_list {
		gap: 16px;
		width: auto;
		margin-right: calc(var(--gutter) * -1);
		margin-left: calc(var(--gutter) * -1);
		padding-right: calc(var(--gutter) + 15px);
		padding-left: calc(var(--gutter) + 15px);
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		will-change: auto;
		padding-top: 48px;
	}

	.WorkPlace_list::-webkit-scrollbar {
		display: none;
	}

	.WorkPlace_card {
		flex: 0 0 295px;
		width: 295px;
		min-height: 548px;
		padding: 30px 24px 40px;
		border-radius: 20px;
		scroll-snap-align: start;
		scroll-margin-inline-start: calc(var(--gutter) + 15px);
	}

	.WorkPlace_number {
		width: 60px;
		height: 59px;
		margin-bottom: 20px;
		font-size: 2rem;
		margin-top: -60px;
	}

	.WorkPlace_cardTitle {
		margin-bottom: 15px;
		font-size: 2rem;
		line-height: 1.7;
	}

	.WorkPlace_cardText {
		line-height: 1.75;
		letter-spacing: 0.02em;
		padding: 0 6px;
	}
}


/**********************************************
* 
* Career
*
***********************************************/
.Career {
	padding: 244px 0 0;
	background: var(--color-white);
	scroll-margin-top: -250px;
}

.Career_inner {
	position: relative;
	display: flex;
	gap: 100px;
}

.Career_inner::before {
	content: "";
	position: absolute;
	bottom: 78px;
	left: 0;
	width: 496px;
	height: 224px;
	background: url(../images/p-career-illust.svg) center / contain no-repeat;
}

.Career_header {
	flex-shrink: 0;
	padding-top: 28px;
}

.Career_list {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.Career_item {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 25px;
	padding-bottom: 45px;
	z-index: 1;
}

.Career_item:not(:last-child)::after {
	content: "";
	position: absolute;
	left: 48px;
	bottom: 0;
	width: 1px;
	height: 80%;
	background: var(--color-primary);
	z-index: -1;
}

.Career_year {
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 96px;
	height: 96px;
	border-radius: 50%;
	background: var(--color-primary);
	color: var(--color-white);
}

.Career_yearLabel {
	font-family: var(--font-jp);
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.06em;
}

.Career_yearRange {
	display: inline-flex;
	align-items: center;
	margin: 7px 0 3px;
	font-family: var(--font-en);
	font-size: 2.2rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.01em;
	color: var(--color-secondary);
}

.Career_yearRange.-first {
	gap: 8px;
}

.Career_yearRange.-second {
	gap: 7px;
}

.Career_yearRange.-third {
	gap: 7px;
	margin-left: 5px;
}

.Career_yearArrow {
	width: 6px;
	height: 10px;
	background: url("../images/icon-arrow_year.svg") center / contain no-repeat;
}

.Career_heading {
	margin-bottom: 9px;
	font-family: var(--font-jp);
	font-size: 2.8rem;
	font-weight: 900;
	line-height: 1.4;
	letter-spacing: 0.06em;
	color: var(--color-primary);
}

.Career_text {
	font-family: var(--font-jp);
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.875;
	letter-spacing: 0.05em;
	color: var(--color-black);
}

@media (max-width: 1023px) {
	.Career {
		padding-bottom: 50px;
	}

	.Career_header {
		margin-bottom: 40px;
	}

	.Career_inner {
		display: block;
		padding-bottom: 210px;
	}

	.Career_inner::before {
		bottom: 0;
		right: 0;
		margin: auto;
	}
}

@media (max-width: 767px) {
	.Career {
		padding: 62px 0 18px;
		scroll-margin-top: -100px;
	}

	.Career_inner {
		padding-bottom: 190px;
	}

	.Career_inner::before {
		width: 295px;
        right: 0;
        bottom: 0;
        margin: auto;
	}

	.Career_item {
		gap: 16px;
		padding-bottom: 17px;
	}

	.Career_item:not(:last-child)::after {
		left: 36px;
	}

	.Career_year {
		width: 72px;
		height: 72px;
	}

	.Career_yearLabel {
		font-size: 1.2rem;
	}

	.Career_yearRange {
		gap: 3px;
		margin: 5px 0 3px;
		font-size: 1.8rem;
	}

	.Career_yearRange.-first {
		gap: 6px;
	}

	.Career_yearRange.-second {
		gap: 5px;
	}

	.Career_yearRange.-third {
		gap: 5px;
		margin-left: 1px;
	}

	.Career_yearArrow {
		width: 5px;
		height: 8px;
	}

	.Career_heading {
		margin-bottom: 10px;
		font-size: 2rem;
		margin-top: 21px;
	}

	.Career_text {
		font-size: 1.6rem;
		line-height: 1.75;
		letter-spacing: 0.02em;
	}
}

/**********************************************
* 
* Interview
*
***********************************************/
.Interview {
	position: relative;
	padding: 283px 0 493px;
	background-image: linear-gradient(to right, rgba(48, 100, 191, 0.08) 1px, transparent 1px), linear-gradient(to bottom, rgba(48, 100, 191, 0.08) 1px, transparent 1px);
	background-size: 41px 41px;
	background-color: #E5F1FF;
	background-position: -1px -6px;
	scroll-margin-top: -200px;
	margin-top: -49px;
	overflow: hidden;
}

.Interview::before {
	position: absolute;
	content: "";
	top: 0;
	left: 0;
	width: 100%;
	height: 200px;
	background-image: url(../images/p-interview_cloud.svg);
	background-repeat: repeat-x;
	background-position: top center;
	background-size: 2216.5px auto;
	transform: rotate(180deg);
}

.Interview::after {
	position: absolute;
	content: "";
	bottom: 0;
	left: 0;
	width: 100%;
	height: 341px;
	background-image:
		url(../images/p-interview_cloud.svg),
		url(../images/p-interview_illust_04.svg);
	background-repeat:
		repeat-x,
		no-repeat;
	background-position:
		center bottom,
		right max(0px, calc((100% - 1366px) / 2)) bottom 72px;
	background-size:
		2216.5px 200px,
		246px auto;
	pointer-events: none;
}

.Interview_header {
	position: relative;
	margin-bottom: 92px;
}

.Interview_header::before {
	content: "";
	position: absolute;
	top: clamp(-28px, -0.3px - 2.42vw, -19px);
    left: clamp(34px, 1.65px + 4.29vw, 50px);
	width: clamp(93px, -0.4px + 12.04vw, 137px);
	height: clamp(80px, -0.3px + 10.32vw, 117px);
	background: url(../images/p-interview_illust_01.svg) center / contain no-repeat;
}

.Interview_ticker {
	margin: -87px 0 -35px;
	overflow: hidden;
	position: absolute;
	top: 50%;
	left: 0;
}

.Interview_tickerText {
	display: flex;
	gap: 88px;
	white-space: nowrap;
	width: max-content;
	font-size: 18rem;
	font-family: var(--font-en);
	letter-spacing: 0.08em;
	font-weight: 600;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--color-primary) 15%, transparent);
}

.Interview_list {
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 537px));
	justify-content: center;
	column-gap: 28px;
	row-gap: 79px;
}

.Interview_list::before {
	content: "";
	position: absolute;
	top: clamp(-114px, -1.1px - 9.94vw, -78px);
    right: clamp(59px, 2.84px + 7.34vw, 86px);
	width: clamp(113px, -0.4px + 14.64vw, 166px);
	height: clamp(108px, -0.5px + 14.03vw, 159px);
	background: url(../images/p-interview_illust_02.svg) center / contain no-repeat;
}

.Interview_list::after {
	content: "";
	position: absolute;
	bottom: clamp(-222px, -2.2px - 19.36vw, -152px);
	left: 0;
	width: clamp(140px, -0.5px + 18.08vw, 205px);
	height: clamp(102px, -0.4px + 13.12vw, 149px);
	background: url(../images/p-interview_illust_03.svg) center / contain no-repeat;
	z-index: 1;
}

.Interview_item {
	width: 100%;
	max-width: 520px;
}

.Interview_item.-second {
	transform: translateY(107px);
}

.Interview_item.-fourth {
	transform: translateY(100px);
}

.Interview_card {
	position: relative;
	width: 100%;
	cursor: pointer;
	transition: transform 0.35s ease;
}

.Interview_card::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 30px;
	background: var(--color-secondary);
	transform: translate(10px, 10px);
	z-index: 0;
}

.Interview_card.-left {
	transform: rotate(-5deg);
}

.Interview_card.-right {
	transform: rotate(5deg);
}

.Interview_card.-left::before {
	transform: translate(-10px, 10px);
}

.Interview_cardInner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: clamp(30px, 2.86px + 3.35vw, 40px) clamp(20px, -28.58px + 6.7vw, 40px) clamp(30px, 2.72px + 3.35vw, 39px);
	border: 1px solid var(--color-black);
	border-radius: 30px;
	background: var(--color-white);
}

.Interview_profile {
	display: flex;
	align-items: flex-start;
	gap: clamp(26px, 2.4px + 3.07vw, 37px);
}

.Interview_photo {
	flex-shrink: 0;
	width: clamp(120px, 28.58px + 8.38vw, 150px);
	height: clamp(120px, 28.58px + 8.38vw, 150px);
	border-radius: 50%;
	background: #eff5fd;
	transition: background-color 0.35s ease;
}

.Interview_photoImg {
	width: 100%;
	height: auto;
}

.Interview_meta {
	padding-top: 24px;
}

.Interview_metaTop {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 6px 22px;
}

.Interview_name {
	font-family: var(--font-en);
	font-size: clamp(3.4rem, -0.99rem + 5.59vw, 5.4rem);
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.06em;
	color: var(--color-primary);
}

.Interview_joined {
	font-family: var(--font-jp);
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.06em;
	color: var(--color-black);
	transform: translateY(-1px);
}

.Interview_role {
	margin-top: 14px;
	font-family: var(--font-jp);
	font-size: clamp(2rem, 0.286rem + 2.23vw, 2.6rem);
	font-weight: 900;
	line-height: 1.4;
	letter-spacing: 0.06em;
	color: var(--color-primary);
}

.Interview_btn {
	position: static;
	display: block;
	width: auto;
	height: auto;
	margin: 0;
	padding: 0;
	border: none;
	background: transparent;
	cursor: pointer;
}

/* カード全体をヒットエリアに広げる */
.Interview_btn::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: 30px;
	cursor: pointer;
}

.Interview_btnInner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	width: 270px;
	height: 48px;
	margin: clamp(20px, 4.85px + 2.51vw, 37px) auto 0;
	border-radius: 24px;
	background: var(--color-primary);
	pointer-events: none;
	transition: background-color 0.35s ease;
}

.Interview_btnText {
	font-family: var(--font-en);
	font-size: 1.8rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.06em;
	color: var(--color-white);
}

.Interview_btnIcon {
	position: absolute;
	top: 0;
	bottom: 0;
	right: 19px;
	margin: auto;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--color-white);
}

.Interview_btnIcon::before,
.Interview_btnIcon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	background: var(--color-primary);
	border-radius: 1px;
	transform: translate(-50%, -50%);
	transition: background-color 0.35s ease;
}

.Interview_btnIcon::before {
	width: 12px;
	height: 2px;
}

.Interview_btnIcon::after {
	width: 2px;
	height: 12px;
}

@media (hover: hover) {
	.Interview_card.-left:hover {
		transform: rotate(-5deg) translateY(-10px);
	}

	.Interview_card.-right:hover {
		transform: rotate(5deg) translateY(-10px);
	}

	.Interview_card:hover .Interview_photo {
		background-color: var(--color-tertiary);
	}

	.Interview_card:hover .Interview_btnInner {
		background-color: var(--color-tertiary);
	}

	.Interview_card:hover .Interview_btnIcon::before,
	.Interview_card:hover .Interview_btnIcon::after {
		background-color: var(--color-tertiary);
	}
}

@media (max-width: 767px) {
	.Interview {
		padding: 136px 0 188px;
	}

	.Interview::before {
		height: 80px;
		background-image: url(../images/p-interview_cloud_sp.svg);
		background-size: 525px 80px;
		transform: rotate(180deg) scaleX(-1);
	}

	.Interview::after {
		height: 180px;
		background-image:
			url(../images/p-interview_cloud_sp.svg),
			url(../images/p-interview_illust_04.svg);
		background-repeat:
			repeat-x,
			no-repeat;
		background-position: center bottom, right -1px bottom 34px;
		background-size: 525px 80px, 105px auto;
	}

	.Interview_header {
		margin-bottom: 51px;
	}

	.Interview_list {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 50px;
		grid-template-columns: none;
	}

	.Interview_header::before {
		top: -41px;
        right: auto;
        left: -14px;
        height: 53px;
        width: 54px;
		background: url(../images/p-interview_illust_01_sp.svg) center / contain no-repeat;
	}

	.Interview_ticker {
		margin: -57px 0 -35px;
		top: 52%;
		left: 0;
	}
	
	.Interview_tickerText {
		font-size: 8.8rem;
	}

	.Interview_list::before {
		bottom: auto;
        top: 168px;
        left: auto;
        right: -20px;
        width: 56px;
        height: 58px;
		background: url(../images/p-interview_illust_02_sp.svg) center / contain no-repeat;
		z-index: 1;
	}

	.Interview_list::after {
		top: auto;
        bottom: 31px;
        right: auto;
        left: -15px;
        width: 40px;
        height: 38px;
		background: url(../images/p-interview_illust_03_sp.svg) center / contain no-repeat;
		z-index: 1;
	}

	.Interview_item {
		max-width: 280px;
	}

	.Interview_item.-second {
		transform: translateY(0) translateX(20px);
	}
	
	.Interview_item.-fourth {
		transform: translateY(0) translateX(20px);
	}

	.Interview_card::before {
		border-radius: 20px;
	}

	.Interview_cardInner {
		min-height: 175px;
		padding: 18px 20px 20px;
		border-radius: 20px;
	}

	.Interview_card.-left {
		transform: rotate(-5deg) translateX(-10px);
	}

	.Interview_profile {
		gap: 15px;
	}

	.Interview_photo {
		width: 80px;
		height: 80px;
	}

	.Interview_photoImg {
		width: 100%;
		height: auto;
	}

	.Interview_meta {
		padding-top: 12px;
	}

	.Interview_metaTop {
		gap: 4px 8px;
	}

	.Interview_name {
		font-size: 3rem;
	}

	.Interview_joined {
		font-size: 1.4rem;
	}

	.Interview_role {
		margin-top: 6px;
		font-size: 1.8rem;
	}

	.Interview_btn::after {
		border-radius: 20px;
	}

	.Interview_btnInner {
		gap: 12px;
		width: 200px;
		height: 36px;
		margin-top: 10px;
		border-radius: 18px;
	}

	.Interview_btnText {
		font-size: 1.4rem;
	}

	.Interview_btnIcon {
		width: 20px;
		height: 20px;
		right: 7px;
	}

	.Interview_btnIcon::before {
		width: 10px;
	}

	.Interview_btnIcon::after {
		height: 10px;
	}
}

/* InterviewModal
***********************************************/
.InterviewModal {
	position: fixed;
	inset: 0;
	width: 100%;
	max-width: 100%;
	height: 100%;
	max-height: 100%;
	margin: 0;
	padding: 24px 20px;
	border: none;
	background: transparent;
	overflow: auto;
	opacity: 0;
	transition: opacity 0.3s ease;
}

.InterviewModal.is-open {
	opacity: 1;
}

.InterviewModal.is-closing {
	opacity: 0;
	pointer-events: none;
}

.InterviewModal::backdrop {
	background-color: color-mix(in srgb, var(--color-primary) 75%, transparent);
	opacity: 0;
	transition: opacity 0.3s ease;
}

.InterviewModal.is-open::backdrop {
	opacity: 1;
}

.InterviewModal.is-closing::backdrop {
	opacity: 0;
}

.InterviewModal_panel {
	position: relative;
	max-width: 1126px;
	max-height: none;
	margin: 0 auto;
	padding: 0 0 20px 22px;
	transform: translateY(16px) scale(0.98);
	transition: transform 0.3s ease;
}

.InterviewModal.is-open .InterviewModal_panel {
	transform: translateY(0) scale(1);
}

.InterviewModal.is-closing .InterviewModal_panel {
	transform: translateY(16px) scale(0.98);
}

html.is-modal-open {
	overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
	.InterviewModal,
	.InterviewModal::backdrop,
	.InterviewModal_panel {
		transition: none;
	}
}

.InterviewModal_panel::before {
	content: "";
	position: absolute;
	inset: 20px 22px 0 0;
	border-radius: 40px;
	background: var(--color-secondary);
	z-index: 0;
}

.InterviewModal_inner {
	position: relative;
	z-index: 1;
	padding: 62px clamp(40px, -41.47px + 10.61vw, 79px) 48px;
	border: 1px solid var(--color-black);
	border-radius: 40px;
	background: var(--color-white);
}

.InterviewModal_closeIcon {
	position: absolute;
	top: 30px;
	right: 30px;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	border: 1px solid var(--color-black);
	border-radius: 50%;
	background: var(--color-secondary);
	cursor: pointer;
}

.InterviewModal_closeIcon::before,
.InterviewModal_closeIcon::after {
	content: "";
	position: absolute;
	width: 28px;
	height: 2px;
	border-radius: 1px;
	background: var(--color-black);
}

.InterviewModal_closeIcon::before {
	transform: rotate(45deg);
}

.InterviewModal_closeIcon::after {
	transform: rotate(-45deg);
}

.InterviewModal_profile {
	position: relative;
	display: flex;
	align-items: center;
    justify-content: flex-start;
	gap: 64px;
	padding: 0 20px 40px;
}

.InterviewModal_profile::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 1px;
	background-image: repeating-linear-gradient(
		to right,
		#2b2b2b 0,
		#2b2b2b 6px,    /* 線の長さ */
		transparent 6px,
		transparent 12px /* 空間の長さ（6px + 6px） */
	);
}

.InterviewModal_photo {
	flex-shrink: 0;
	width: clamp(180px, -9.14px + 19.56vw, 250px);
	height: clamp(180px, -9.14px + 19.56vw, 250px);
	border-radius: 50%;
	background: var(--color-tertiary);
}

.InterviewModal_photoImg {
	width: 100%;
	height: auto;
}

.InterviewModal_meta {
	min-width: 0;
	margin-top: 6px;
}

.InterviewModal_metaInner {
	display: flex;
	align-items: baseline;
	gap: 27px;
}

.InterviewModal_name {
	font-family: var(--font-en);
	font-size: 6.2rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.06em;
	color: var(--color-primary);
}

.InterviewModal_joined {
	font-family: var(--font-jp);
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.06em;
	color: var(--color-black);
}

.InterviewModal_role {
	margin-top: 19px;
	font-family: var(--font-jp);
	font-size: 3rem;
	font-weight: 900;
	line-height: 1.4;
	letter-spacing: 0.06em;
	color: var(--color-primary);
}

.InterviewModal_body {
	display: flex;
	flex-direction: column;
	gap: 60px;
	padding: 48px 0 77px;
}

.InterviewModal_block {
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.InterviewModal_question {
	position: relative;
	align-self: flex-start;
	max-width: 100%;
	padding: 9px 15px 10px 24px;
	border: 2px solid var(--color-primary);
	border-radius: 10px;
	background: var(--color-white);
	font-family: var(--font-jp);
	font-size: 2.4rem;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.06em;
	color: var(--color-black);
}

.InterviewModal_question::before {
	content: "";
	position: absolute;
	left: 39px;
    bottom: -22px;
    width: 43px;
    height: 47px;
	background: url(../images/icon-bubble_outer.svg) no-repeat center / contain;
	z-index: -1;
}

.InterviewModal_question::after {
	content: "";
	position: absolute;
    left: 41px;
    bottom: -20px;
    width: 39px;
    height: 43px;
	background: url(../images/icon-bubble_inner.svg) no-repeat center / contain;
	z-index: 0;
}

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

.InterviewModal_questionEm {
	color: var(--color-primary);
}

.InterviewModal_answer {
	position: relative;
	align-self: flex-end;
	width: min(820px, 100%);
	padding: 33px 62px 34px 62px;
	border: 2px solid var(--color-primary);
	border-radius: 15px;
	background: #e5f1ff;
	font-family: var(--font-jp);
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 2;
	letter-spacing: 0.05em;
	color: var(--color-black);
}

.InterviewModal_answer.-wide {
	letter-spacing: 0.06em;
}

.InterviewModal_answer::before {
	content: "";
	position: absolute;
	right: 24px;
    bottom: -30px;
    width: 43px;
    height: 47px;
	background: url(../images/icon-bubble_outer.svg) no-repeat center / contain;
	z-index: -1;
	transform: scaleX(-1);
}

.InterviewModal_answer::after {
	content: "";
	position: absolute;
	right: 26px;
    bottom: -28px;
    width: 39px;
    height: 43px;
	background: #e5f1ff;
	-webkit-mask: url(../images/icon-bubble_inner.svg) no-repeat center / contain;
	mask: url(../images/icon-bubble_inner.svg) no-repeat center / contain;
	z-index: 0;
	transform: scaleX(-1);
}

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

.InterviewModal_em {
	font-style: normal;
	background-image: linear-gradient(rgba(255, 133, 26, 0.3), rgba(255, 133, 26, 0.3));
	background-repeat: no-repeat;
	background-position: left bottom 0.1em;
    background-size: 100% 6px;
}

.InterviewModal_closeBtn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	width: 386px;
	max-width: 100%;
	height: 70px;
	margin: 0 auto;
	border: 1px solid #707070;
	border-radius: 35px;
	background: var(--color-secondary);
	font-family: var(--font-jp);
	font-size: 2.8rem;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.06em;
	color: var(--color-black);
	cursor: pointer;
}

.InterviewModal_closeBtnIcon {
	position: relative;
	width: 28px;
	height: 28px;
}

.InterviewModal_closeBtnIcon::before,
.InterviewModal_closeBtnIcon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 28px;
	height: 2px;
	border-radius: 1px;
	background: var(--color-black);
}

.InterviewModal_closeBtnIcon::before {
	transform: translate(-50%, -50%) rotate(45deg);
}

.InterviewModal_closeBtnIcon::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}

@media (hover: hover) {
	.InterviewModal_closeIcon:hover,
	.InterviewModal_closeBtn:hover {
		opacity: 0.88;
	}
}

@media (max-width: 767px) {
	.InterviewModal {
		padding: 25px;
	}

	.InterviewModal_panel {
		padding: 0 0 12px 10px;
	}

	.InterviewModal_panel::before {
		inset: 12px 10px 0 0;
		border-radius: 24px;
	}

	.InterviewModal_inner {
		padding: 33px 20px 28px;
		border-radius: 24px;
	}

	.InterviewModal_closeIcon {
		width: 28px;
		height: 28px;
		right: 12px;
		top: 12px;
	}

	.InterviewModal_closeIcon::before,
	.InterviewModal_closeIcon::after {
		width: 18px;
	}

	.InterviewModal_profile {
		gap: 20px;
		padding: 0 0px 24px 10px;
	}

	.InterviewModal_profile::after {
		background-image: repeating-linear-gradient(
			to right,
			#2b2b2b 0,
			#2b2b2b 4px,    /* 線の長さ */
			transparent 4px,
			transparent 8px /* 空間の長さ（6px + 6px） */
		);
	}

	.InterviewModal_photo {
		width: 80px;
		height: 80px;
	}

	.InterviewModal_name {
		font-size: 3rem;
	}

	.InterviewModal_meta {
		margin-top: 0;
	}

	.InterviewModal_metaInner {
		gap: 10px;
	}

	.InterviewModal_joined {
		font-size: 1.4rem;
	}

	.InterviewModal_role {
		margin-top: 4px;
		font-size: 1.8rem;
	}

	.InterviewModal_body {
		gap: 50px;
		padding: 32px 0 38px;
	}

	.InterviewModal_block {
		gap: 30px;
	}

	.InterviewModal_question {
		padding: 10px 20px;
		border-radius: 14px;
		font-size: 1.6rem;
		line-height: 1.625;
	}

	.InterviewModal_question::before {
		left: 35px;
		bottom: -16px;
	}

	.InterviewModal_question::after {
		left: 37px;
		bottom: -14px;
	}

	.InterviewModal_answer {
		padding: 18px 16px;
		border-radius: 14px;
		font-size: 1.4rem;
		line-height: 1.85;
		letter-spacing: 0.02em;
	}

	.InterviewModal_answer::before {
		right: 35px;
		bottom: -16px;
	}

	.InterviewModal_answer::after {
		right: 37px;
		bottom: -14px;
	}

	.InterviewModal_em {
		background-size: 100% 4px;
	}

	.InterviewModal_closeBtn {
		width: 240px;
		height: 56px;
		border-radius: 26px;
		font-size: 1.8rem;
		gap: 10px;
	}

	.InterviewModal_closeBtnIcon {
		width: 18px;
		height: 18px;
	}

	.InterviewModal_closeBtnIcon::before,
	.InterviewModal_closeBtnIcon::after {
		width: 18px;
	}
}

/**********************************************
* 
* Recruit
*
***********************************************/
.Recruit_wrap {
	background: 
    linear-gradient(to bottom, rgba(255, 255, 255, 1) 0px, rgba(255, 255, 255, 0) 160px),
    radial-gradient(circle, rgba(48, 100, 191, 0.05) 4px, transparent 4px) 0 0 / 28px 28px,
    var(--color-white);
	background-position: -11px 8px;
	position: relative;
    z-index: 0;
}

.Recruit {
	position: relative;
	padding: 88px 0 140px;
	overflow: hidden;
}

.Recruit::before {
	content: "";
	position: absolute;
	bottom: clamp(72px, 3.1px + 9.15vw, 106px);
    right: clamp(-797px, -24.5px - 68.4vw, -580px);
    left: 0;
    margin: auto;
	width: clamp(183px, 0.6px + 23.6vw, 268px);
	height: clamp(143px, 0.5px + 18.41vw, 209px);
	background: url(../images/p-recruit_illust.svg) no-repeat center / contain;
}

.Recruit_inner {
	display: flex;
	flex-direction: row-reverse;
	gap: clamp(40px, -37.17px + 10.05vw, 74px);
	padding: 0 27px 0 25px;
}

.Recruit_header {
	width: 100px;
}

.Recruit_body {
	width: 100%;
}

.Recruit_tabs {
	display: flex;
	align-items: stretch;
	gap: 20px;
	margin-bottom: 33px;
}

.Recruit_tab {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	flex: 1 1 0;
	min-height: 70px;
	padding: 12px 16px;
	border: 2px solid var(--color-primary);
	border-radius: 35px;
	background: var(--color-white);
	appearance: none;
	font-family: var(--font-jp);
	font-size: 2.2rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.05em;
	color: var(--color-primary);
	cursor: pointer;
	transition:
		background-color 0.25s ease,
		color 0.25s ease,
		border-color 0.25s ease;
}

.Recruit_tab:focus-visible {
	outline: 2px solid var(--color-tertiary);
	outline-offset: 3px;
}

@media (hover: hover) {
	.Recruit_tab:hover:not(:disabled):not(.is-disabled):not(.is-active) {
		background-color: #d1dff8;
		color: var(--color-primary);
	}
}

.Recruit_tab.is-active {
	background: var(--color-primary);
	color: var(--color-white);
	cursor: default;
}

.Recruit_tab.is-active::before {
	content: "";
	position: absolute;
	bottom: -10px;
	left: 50%;
	width: 30px;
	height: 9px;
	background: url("../images/icon-recruit_tab.svg") no-repeat center / contain;
	transform: translateX(-50%);
}

.Recruit_tab.is-disabled,
.Recruit_tab:disabled {
	border-color: #707070;
	background: #e5e5e5;
	color: #707070;
	pointer-events: none;
}

.Recruit_tabLabel {
	display: block;
}

.Recruit_tabNote {
	display: block;
	margin-top: 2px;
	font-size: 1.2rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.3;
}

.Recruit_panel[hidden] {
	display: none;
}

.Recruit_table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border: 2px solid var(--color-primary);
	border-radius: 20px;
	overflow: hidden;
	background: var(--color-white);
	table-layout: fixed;
}

.Recruit_tableCol.-label {
	width: clamp(159px, 0.3px + 20.65vw, 233px);
}

.Recruit_table th,
.Recruit_table td {
	padding: 22px 32px;
	border-bottom: 2px solid var(--color-primary);
	vertical-align: middle;
	font-family: var(--font-jp);
	font-weight: 500;
	letter-spacing: 0.05em;
	color: var(--color-black);
	text-align: left;
}

.Recruit_table tr:last-child th,
.Recruit_table tr:last-child td {
	border-bottom: none;
}

.Recruit_table th {
	padding-right: 16px;
	padding-left: 16px;
	background: #d1dff8;
	font-size: 2rem;
	line-height: 1.4;
	text-align: center;
	white-space: nowrap;
}

.Recruit_table td {
	padding-left: clamp(30px, -48.8px + 11.17vw, 62px);
	font-size: 1.8rem;
	line-height: 1.6;
	height: 77px;
}

:where(.Recruit_table th, .Recruit_table td).-large,
:where(.Recruit_table th, .Recruit_table td).-large {
	padding-top: 32px;
    padding-bottom: 24px;
}

:where(.Recruit_table tr):last-of-type th,
:where(.Recruit_table tr):last-of-type td {
	padding-bottom: 30px;
}

.Recruit_list {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.Recruit_list + .Recruit_list,
.Recruit_note + .Recruit_list {
	margin-top: 12px;
}

.Recruit_list li {
	position: relative;
	padding-left: 16px;
	line-height: 1.56;
}

.Recruit_list li::before {
	content: "";
	position: absolute;
	top: 0.85em;
	left: 0;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--color-tertiary);
	transform: translateY(-50%);
}

.Recruit_note {
	margin: 1px 0 0;
	font-size: 1.4rem;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.05em;
	color: var(--color-black);
}

.Recruit_note.-small {
	font-size: 1.3rem;
}

.Recruit_note::before {
	content: "※";
	margin-right: 5px;
}

.Recruit_list + .Recruit_note {
	margin-top: 6px;
}

.Recruit_noteList.-number {
	counter-reset: recruit-note;
}

.Recruit_noteList.-number .Recruit_note::before {
	counter-increment: recruit-note;
	content: "※" counter(recruit-note);
	margin-right: 13px;
}

.Recruit_hours {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 2px;
    margin-bottom: 16px;
}

.Recruit_hoursItem {
	display: flex;
	align-items: flex-start;
	gap: 10px;
}

.Recruit_hoursBadge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 24px;
	height: 24px;
	margin-top: 1px;
	border-radius: 4px;
	background: var(--color-primary);
	font-family: var(--font-en);
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.05em;
	color: var(--color-white);
}

.Recruit_hoursText {
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.05em;
}

.Recruit_hoursRef {
	margin-left: 12px;
	font-size: 1.4rem;
}

@media (max-width: 767px) {
	.Recruit {
		padding: 0 0 0;
	}

	.Recruit::before {
		width: 125px;
		height: 98px;
		left: 0;
		right: 0;
		bottom: -3px;
		margin: 0 auto;
	}

	.Recruit_inner {
		flex-direction: column;
		align-items: stretch;
		gap: 39px;
		padding: 0;
	}

	.Recruit_header {
		width: 100%;
	}

	.Recruit_title {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
		margin-top: 0;
	}

	.Recruit_titleEn {
		flex-direction: row;
		writing-mode: horizontal-tb;
		font-size: 1.6rem;
		gap: 6px;
	}

	.Recruit_titleEn::before {
		width: 9px;
		height: 10px;
		transform: none;
	}

	.Recruit_titleJp {
		writing-mode: horizontal-tb;
		font-size: 3rem;
		line-height: 1.2;
	}

	.Recruit_body {
		max-width: none;
	}

	.Recruit_tabs {
		gap: 11px;
		margin-bottom: 24px;
	}

	.Recruit_tab {
		flex: 1 1 0;
		min-width: 0;
		min-height: 64px;
		padding: 8px 4px;
		border-radius: 5px;
		font-size: 1.4rem;
		letter-spacing: 0.01em;
	}

	.Recruit_tab.is-active::before {
		bottom: -7px;
		width: 22px;
		height: 6px;
	}

	.Recruit_tab.is-disabled,
	.Recruit_tab:disabled {
		border-radius: 8px;
	}

	.Recruit_tabNote {
		margin-top: 2px;
		font-size: 1rem;
		letter-spacing: 0;
		line-height: 1.25;
		text-align: center;
	}

	.Recruit_table {
		border-radius: 20px;
	}

	.Recruit_table,
	.Recruit_table tbody,
	.Recruit_table tr,
	.Recruit_table th,
	.Recruit_table td {
		display: block;
		width: 100%;
	}

	.Recruit_table th,
	.Recruit_table td {
		padding: 0;
		border-bottom: none;
	}

	.Recruit_table th {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		min-height: 54px;
		padding: 16px 12px;
		font-size: 1.6rem;
		text-align: center;
	}

	.Recruit_table tr:first-child th {
		border-radius: 18px 18px 0 0;
	}

	.Recruit_table td {
		padding: 15px 20px 14px 23px;
		font-size: 1.5rem;
		height: auto;
	}

	.Recruit_table tr:last-child td {
		padding-bottom: 118px;
	}

	.Recruit_list {
		gap: 3px;
	}

	.Recruit_list li {
		padding-left: 16px;
	}

	.Recruit_note {
		font-size: 1.2rem;
		margin-top: 0;
	}

	.Recruit_note.-indent {
		text-indent: -2.4em;
        padding-left: 2.4em;
	}

	.Recruit_note.-small {
		margin-top: 0px !important;
		font-size: 1.2rem;
		text-indent: -1.4em;
		padding-left: 1.4em;
	}

	.Recruit_note.-minusIndent {
		margin-left: -17px;
	}

	.Recruit_noteList.-number .Recruit_note::before {
		margin-right: 9px;
	}

	.Recruit_list + .Recruit_note {
		margin-top: 2px;
	}

	.Recruit_list + .Recruit_list,
	.Recruit_note + .Recruit_list {
		margin-top: 7px;
	}

	.Recruit_hours {
		gap: 6px;
		margin-bottom: 11px;
	}

	.Recruit_hoursItem {
		align-items: center;
	}

	.Recruit_hoursBadge {
		width: 20px;
		height: 20px;
		font-size: 1.2rem;
	}

	.Recruit_hoursText {
		font-size: 1.5rem;
		line-height: 1.45;
	}

	.Recruit_hoursRef {
		font-size: 1.2rem;
		margin-left: 9px;
	}
}

/**********************************************
* 
* Flow
*
***********************************************/
.Flow {
	padding: 1px 0 100px;
}

.Flow .Title {
	margin-bottom: 60px;
}

.Flow_board {
	position: relative;
	width: 100%;
	container-type: inline-size;
	container-name: flow;
}

.Flow_list {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}

.Flow_item {
	width: clamp(
		calc(300px * 768 / 1126),
		calc(300 / 1126 * 100cqi),
		300px
	);
	height: clamp(
		calc(300px * 768 / 1126),
		calc(300 / 1126 * 100cqi),
		300px
	);
	z-index: 1;
}

:where(.Flow_item:not(:first-child)) {
	margin-left: clamp(
		-40px,
		calc(-25px + (100cqi - 1126px) * 15 / 358),
		-25px
	);
}

.Flow_item.-step2,
.Flow_item.-step4 {
	margin-top: clamp(
		calc(215px * 768 / 1126),
		calc(215 / 1126 * 100cqi),
		215px
	);
}

.Flow_circle {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	aspect-ratio: 1;
	border-radius: 50%;
	text-align: center;
	box-sizing: border-box;
	padding: 33px clamp(10px, -32.87px + 5.59vw, 30px) 21px;
}

.Flow_item.-step1 .Flow_circle {
	background-color: #e5f0fc;
}

.Flow_item.-step2 .Flow_circle {
	background-color: #c3defd;
}

.Flow_item.-step3 .Flow_circle {
	background-color: var(--color-primary);
}

.Flow_item.-step4 .Flow_circle {
	border-radius: 0;
	background: url("../images/p-flow_bg.svg") center / contain no-repeat;
	padding: 25px clamp(5px, -25.03px + 3.91vw, 19px) 22px clamp(10px, -28.61px + 5.03vw, 28px);
}

.Flow_step {
	margin: 0 0 0.35em;
	font-family: var(--font-en);
	font-size: clamp(1.4rem, 1.78vw, 2rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.06em;
	color: var(--color-black);
}

.Flow_item.-step3 .Flow_step {
	color: var(--color-white);
}

.Flow_heading {
	margin: 0 0 clamp(5px, -27.16px + 4.19vw, 20px);
	font-family: var(--font-jp);
	font-size: clamp(1.8rem, 2.3vw, 2.6rem);
	font-weight: 900;
	line-height: 1.2;
	letter-spacing: 0.06em;
	color: var(--color-primary);
}

.Flow_item.-step3 .Flow_heading {
	color: var(--color-secondary);
}

.Flow_heading.-offer {
	margin-bottom: 0.3em;
	font-family: var(--font-ads);
	font-size: clamp(2.8rem, 4.1vw, 4.6rem);
	font-weight: 400;
	letter-spacing: 0.06em;
	color: var(--color-primary);
}

.Flow_text {
	margin: 0;
	font-family: var(--font-jp);
	font-size: clamp(1.3rem, 1.42vw, 1.6rem);
	font-weight: 500;
	line-height: 1.75;
	letter-spacing: 0.05em;
	color: var(--color-black);
}

.Flow_item.-step3 .Flow_text {
	color: var(--color-white);
}

.Flow_welcome {
	position: absolute;
	top: -30px;
    right: 5px;
    display: inline-flex;
    align-items: center;
    gap: 18px;
	margin: 0;
	font-family: var(--font-en);
	font-size: clamp(1.2rem, 1.42vw, 1.6rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.08em;
	color: var(--color-tertiary);
	transform: rotate(25deg);
	white-space: nowrap;
	z-index: 2;
}

.Flow_welcomeBar {
	display: block;
	width: 4px;
	height: 28px;
	border-radius: 2px;
	background-color: var(--color-tertiary);
	flex-shrink: 0;
}

.Flow_welcomeBar:first-child {
	transform: rotate(-30deg);
}

.Flow_welcomeBar:last-child {
	transform: rotate(30deg);
}

.Flow_connectors {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
}

.Flow_dots {
	position: absolute;
	display: block;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	width: clamp(
		calc(110px * 768 / 1126),
		calc(110 / 1126 * 100cqi),
		110px
	);
	height: clamp(
		calc(122px * 768 / 1126),
		calc(122 / 1126 * 100cqi),
		122px
	);
	background-image: url("../images/p-flow_dots.svg");
}

.Flow_dots.-conn1 {
	top: calc(321 / 513 * 100%);
	left: calc(140 / 1126 * 100%);
}

.Flow_dots.-conn2 {
	top: calc(66 / 513 * 100%);
	left: calc(412 / 1126 * 100%);
	transform: scaleY(-1);
}

.Flow_dots.-conn3 {
	top: calc(321 / 513 * 100%);
	left: calc(701 / 1126 * 100%);
}

@media (max-width: 767px) {
	.Flow {
		padding: 60px 0 48px;
	}

	.Flow .Title {
		margin-bottom: 40px;
	}

	.Flow_board {
		aspect-ratio: auto;
		margin: 0 -5px;
        width: calc(100% + 10px);
	}

	.Flow_list {
		flex-direction: column;
		align-items: center;
	}

	.Flow_item {
		width: 240px;
		height: 240px;
		margin-left: 0;
	}

	.Flow_item.-step1,
	.Flow_item.-step3 {
		margin-right: 95px;
	}

	.Flow_item.-step2,
	.Flow_item.-step4 {
		margin-left: 95px;
	}

	.Flow_item.-step2,
	.Flow_item.-step3 {
		margin-top: 13px;
	}

	.Flow_item.-step4 {
		margin-top: 40px;
	}

	.Flow_circle {
		padding: 13px 5px 10px;
	}

	.Flow_item.-step4 .Flow_circle {
		padding: 13px 5px 10px;
	}

	.Flow_step {
		font-size: 1.4rem;
		margin-bottom: 9px;
	}

	.Flow_heading {
		font-size: 2.2rem;
		margin-bottom: 12px;
	}

	.Flow_heading.-offer {
		font-size: 3.2rem;
	}

	.Flow_text {
		font-size: 1.5rem;
		letter-spacing: 0.02em;
		line-height: 1.73;
	}

	.Flow_welcome {
		top: -11%;
        right: 3%;
		bottom: auto;
		left: auto;
		font-size: 1.2rem;
		transform: rotate(25deg);
		gap: 14px;
	}

	.Flow_welcomeBar {
		height: 27pxs;
	}

	.Flow_dots {
		width: 39px;
        height: 133px;
		left: 0;
		right: 0;
		margin: auto;
		background-image: url("../images/p-flow_dots_sp.svg");
	}

	.Flow_dots.-conn1 {
		top: 240px;
        left: -229px;
	}

	.Flow_dots.-conn2 {
		top: 492px;
        right: -94px;
		transform: scaleX(-1);
	}

	.Flow_dots.-conn3 {
		width: 42px;
        height: 160px;
		top: 751px;
		left: -227px;
		background-image: url("../images/p-flow_dots_last_sp.svg");
	}
}

/**********************************************
* 
* Contact
*
***********************************************/
.Contact {
	position: relative;
	padding: 63px var(--gutter) 217px;
	max-width: calc(1178px + var(--gutter) * 2);
	margin: 0 auto;
	overflow: hidden;
}

.Contact::after {
	content: "";
	position: absolute;
	bottom: 0;
	right: clamp(-129px, -0.06px - 11.45vw, -88px);
	left: 50%;
	margin: auto;
	width: clamp(286px, -1.5px + 37.43vw, 420px);
	height: clamp(276px, 1.4px + 35.75vw, 404px);
	background: url("../images/p-contact_call.svg") center / contain no-repeat;
}

.Contact_board {
	position: relative;
	max-width: 992px;
	width: 100%;
	margin-right: auto;
}

.Contact_board::before {
	content: "";
	position: absolute;
	top: clamp(-23px, -0.98px - 1.96vw, -16px);
	right: clamp(-152px, -1.03px - 13.41vw, -104px);
	width: clamp(128px, 1.4px + 16.48vw, 187px);
	height: clamp(101px, 0.2px + 13.13vw, 148px);
	background: url("../images/p-contact_illust_01.svg") center / contain no-repeat;
	z-index: 1;
}

.Contact_board::after {
	content: "";
	position: absolute;
	bottom: clamp(-65px, 1.05px - 5.87vw, -44px);
	left: clamp(3px, -1.29px + 0.56vw, 5px);
	width: clamp(63px, -1.4px + 8.38vw, 93px);
	height: clamp(95px, -1.5px + 12.57vw, 140px);
	background: url("../images/p-contact_illust_02.svg") center / contain no-repeat;
}

.Contact_inner {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	height: 100%;
	padding: 45px 50px 66px 86px;
	background: #D1E6FF;
	border-radius: 60px;
	box-shadow: -10px 8px 0 var(--color-tertiary);
}

.Contact_inner::after {
	content: "";
	position: absolute;
	bottom: -57px;
    right: 227px;
	width: 106px;
	height: 115px;
	background: url("../images/p-contact_bubble.svg") center / contain no-repeat;
}

.Contact_inner::before {
	content: "";
	position: absolute;
	bottom: -65px;
	right: 231px;
	width: 106px;
	height: 115px;
	mask: url("../images/p-contact_bubble.svg") center / contain no-repeat;
	background-color: var(--color-tertiary);
	z-index: -1;
}

.Contact_title {
	margin-bottom: 17px;
	font-family: var(--font-ads);
	font-size: 5.2rem;
	line-height: 1.375;
	letter-spacing: 0;
	color: var(--color-primary);
}

.Contact_text {
	margin-bottom: 35px;
	font-family: var(--font-jp);
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 2;
	letter-spacing: 0.05em;
	color: var(--color-black);
}

.Contact_btn {
	position: relative;
	display: block;
	gap: 16px;
	width: 411px;
	padding: 24px 31px 24px 31px;
	border: 1px solid var(--color-primary);
	border-radius: 100px;
	background: var(--color-primary);
	font-family: var(--font-jp);
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.05em;
	color: var(--color-white);
	transition:
		background-color 0.3s ease,
		color 0.3s ease;
}

.Contact_btnIcon {
	position: absolute;
	top: 0;
	bottom: 0;
	right: 19px;
	margin: auto;
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--color-white);
	transition: background-color 0.3s ease;
}

.Contact_btnIcon::after {
	position: absolute;
	top: 0;
	right: -4px;
	bottom: 0;
	left: 0;
	margin: auto;
	width: 12px;
	height: 20px;
	background-color: var(--color-primary);
	mask: url("../images/icon-arrow_contact.svg") center / contain no-repeat;
	content: "";
	transition: background-color 0.3s ease;
}

@media (hover: hover) {
	.Contact_btn:hover {
		background-color: var(--color-white);
		color: var(--color-primary);
	}

	.Contact_btn:hover .Contact_btnIcon {
		background-color: var(--color-primary);
	}

	.Contact_btn:hover .Contact_btnIcon::after {
		background-color: var(--color-white);
	}
}

@media (max-width: 767px) {
	.Contact {
		padding: 30px 0 149px;
	}

	.Contact::after {
		width: 187px;
		height: 180px;
		right: 0;
	}

	.Contact_board {
		max-width: 100%;
		padding-right: 20px;
        padding-left: 20px;
	}

	.Contact_board::before {
		width: 83px;
        height: 70px;
        top: -41px;
        right: 15px;
		background-image: url("../images/p-contact_illust_01_sp.svg");
	}

	.Contact_board::after {
		width: 76px;
        height: 110px;
        bottom: -76px;
        left: 21px;
		background-image: url("../images/p-contact_illust_02_sp.svg");
	}

	.Contact_inner {
		padding: 34px 33px 56px;
		border-radius: 30px;
		box-shadow: -8px 8px 0 var(--color-tertiary);
	}

	.Contact_inner::before {
		bottom: -27px;
		left: 0;
        right: 155px;
        margin: 0 auto;
        width: 93px;
        height: 91px;
		mask: url("../images/p-contact_bubble_sp.svg") center / contain no-repeat;
	}

	.Contact_inner::after {
		bottom: -19px;
		left: 0;
        right: 139px;
        margin: 0 auto;
		width: 93px;
		height: 91px;
		background: url("../images/p-contact_bubble_sp.svg") center / contain no-repeat;
	}

	.Contact_title {
		margin-bottom: 16px;
		font-size: 3.2rem;
		line-height: 1.375;
		letter-spacing: 0;
		margin-left: 9px;
	}

	.Contact_text {
		margin-bottom: 30px;
		font-size: 1.6rem;
		line-height: 1.75;
		letter-spacing: 0.02em;
	}

	.Contact_btn {
		width: 100%;
		max-width: 275px;
		min-width: 0;
		gap: 12px;
		padding: 14px 16px 16px 19px;
		font-size: 1.6rem;
		letter-spacing: 0;
		position: relative;
        z-index: 1;
	}

	.Contact_btnIcon {
		width: 32px;
		height: 32px;
		right: 11px;
	}

	.Contact_btnIcon::after {
		right: -2px;
		width: 10px;
		height: 16px;
	}
}

/**********************************************
* 
* Header
*
***********************************************/
.Header {
	position: static;
	z-index: 100;
	width: 100%;
	padding: 29px clamp(16px, -14.82px + 4.013vw, 40px) 24px;
	transition:
		transform 0.4s ease,
		opacity 0.4s ease,
		visibility 0.4s ease;
}

.Header_inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	border-radius: 100px;
}

.Header_heading {
	align-self: flex-start;
}

.Header_headingTitle {
	font-size: 1rem;
	font-family: var(--font-jp);
	font-weight: 500;
	letter-spacing: 0.02em;
	color: var(--color-white);
	margin-bottom: 3px;
}

.Header_logoLink {
	display: block;
}

.Header_logoImg {
	filter: brightness(0) invert(1);
	width: clamp(160px, 82.94px + 10.033vw, 220px);
	height: auto;
}

/* is-header-hidden */
.is-header-hidden .Header {
	position: fixed;
	top: calc(var(--header-height) * -1);
	left: 0;
	right: 0;
	margin: auto;
}

/* is-header-fixed */
.is-header-fixed .Header_inner {
	background-color: var(--color-white);
	border: 1px solid var(--color-black);
	padding-left: 32px;
}

.is-header-fixed .Header_logoImg {
	filter: none;
	width: clamp(146px, 50px + 10.71vw, 201px);
}

.is-header-fixed .Header_headingTitle {
	position: absolute;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	width: 1px;
	height: 1px;
	white-space: nowrap;
	margin: -1px;
	padding: 0;
	border: 0;
}

.is-header-fixed .Header_heading {
	align-self: center;
}

/* is-header-show */
.is-header-show .Header {
	position: fixed;
	transform: translateY(var(--header-height));
}

/* is-header-active */
.is-header-active .Header_logoImg {
	filter: brightness(0) invert(1);
}

@media (hover: hover) {
	.Header_telLink:hover {
		border: 1px solid var(--color-primary);
		color: var(--color-primary);
	}

	.Header_inquiryLink:hover {
		border: 1px solid #313a43;
		color: #313a43;
	}
}

@media (max-width: 1023px) {
	.Header {
		position: relative;
		align-items: center;
		padding: 14px 15px;
	}

	.Header_inner,
	.is-header-fixed .Header_inner {
		padding: 6px 9px 6px 19px;
	}

	.Header_heading {
		align-self: center;
	}

	.Header_headingTitle {
		position: absolute;
		overflow: hidden;
		clip: rect(1px, 1px, 1px, 1px);
		clip-path: inset(50%);
		width: 1px;
		height: 1px;
		white-space: nowrap;
		margin: -1px;
		padding: 0;
		border: 0;
	}

	.Header_logoLink {
		position: relative;
		z-index: 1000;
		margin-top: 0;
	}

	.Header_logoImg,
	.is-header-fixed .Header_logoImg {
		width: 150px;
		height: auto;
		display: block;
	}

	.Header_navWrap {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: auto;
		padding-bottom: 100px;
		padding: 105px 25px 48px 25px;
		background: var(--color-primary);
		z-index: 999;
		overflow-y: auto;
		visibility: hidden;
		opacity: 0;
		margin-top: 0;
		pointer-events: none;
	}

	.Header_navWrap[aria-hidden="true"],
	.Header_navWrap[aria-hidden="false"] {
		transition:
			opacity 0.4s,
			visibility 0.4s;
	}

	.Header_navWrap[aria-hidden="false"] {
		visibility: visible;
		opacity: 1;
		pointer-events: auto;
	}
}

/* .HeaderSpButton
***********************************************/
.HeaderSpButton {
	display: none;
}

@media (max-width: 1023px) {
	.HeaderSpButton {
		position: relative;
		display: block;
		flex-shrink: 0;
		width: 50px;
		height: 50px;
		border-radius: 50%;
		margin-left: auto;
		background-color: var(--color-white);
		cursor: pointer;
		z-index: 1000;
		border: 0;
	}

	.HeaderSpButton_icon {
		position: absolute;
		inset: 0;
		margin: auto;
		width: 22px;
		height: 2px;
		border-radius: 10px;
		background-color: var(--color-black);
		visibility: visible;
		transition:
			transform 0.4s,
			top 0.4s,
			bottom 0.4s;
	}

	.HeaderSpButton_icon.-top {
		top: -9px;
	}

	.HeaderSpButton_icon.-bottom {
		bottom: -9px;
	}

	.HeaderSpButton[aria-expanded="false"] .text-close,
	.HeaderSpButton[aria-expanded="true"] .text-open {
		display: none;
	}

	.HeaderSpButton[aria-expanded="true"] .HeaderSpButton_icon.-top {
		transform: rotate(45deg);
		top: 0;
	}

	.HeaderSpButton[aria-expanded="true"] .HeaderSpButton_icon.-bottom {
		transform: rotate(-45deg);
		bottom: 0;
	}

	.is-header-fixed .HeaderSpButton {
		background-color: var(--color-primary);
	}

	.is-header-fixed .HeaderSpButton_icon {
		background-color: var(--color-white);
	}

	.is-header-active .HeaderSpButton {
		background-color: var(--color-white);
	}

	.is-header-active .HeaderSpButton_icon {
		background-color: var(--color-black);
	}
}

/* HeaderNav
***********************************************/
.HeaderNav {
	background: var(--color-white);
	padding: 25px clamp(20px, 7.16px + 1.672vw, 30px) 24px;
	border-radius: 100px;
}

.HeaderNav_list {
	display: flex;
	align-items: center;
	gap: clamp(12px, 1.73px + 1.338vw, 20px);
	width: max-content;
}

.HeaderNav_item {
	position: relative;
}

.HeaderNav_item.-sp {
	display: none;
}

.HeaderNav_link {
	position: relative;
	display: block;
	font-family: var(--font-jp);
	font-size: clamp(1.2rem, 0.686rem + 0.669vw, 1.6rem);
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.02em;
	color: inherit;
	transition: color 0.3s ease;
}

.HeaderNav_link.-button {
	border: 0;
	background: none;
	appearance: none;
	-webkit-appearance: none;
	padding: 0 30px 0 0;
}

.HeaderNav_link.-button::before {
	position: absolute;
	content: "";
	top: 0;
	bottom: 0;
	right: 0;
	margin: auto;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--color-primary);
}

.HeaderNav_link.-button::after {
	position: absolute;
	content: "";
	top: 0;
	bottom: 0;
	right: 6px;
	margin: auto;
	width: 8px;
	height: 5px;
	background: url(../images/icon-arrow.svg) no-repeat center center / contain;
	transition: transform 0.4s ease;
}

.HeaderNav_link.-blank::after {
	position: relative;
	content: "";
	mask: url(../images/icon-blank.svg) no-repeat center center / contain;
	background-color: currentColor;
	width: 13px;
	height: 13px;
	margin: auto;
	display: inline-block;
	margin-left: 7px;
}

.HeaderNav_secondWrapper {
	position: absolute;
	top: 60px;
	left: 50%;
	transform: translateX(-50%);
	width: auto;
	display: grid;
	grid-template-rows: 0fr;
	transition:
		grid-template-rows 0.4s ease-out,
		opacity 0.4s ease-out,
		visibility 0.4s ease-out;
	visibility: hidden;
	opacity: 0;
	width: max-content;
	background: var(--color-white);
	border-radius: 10px;
	padding: 22px 30px;
	border: 2px solid #E5F1FF;
}

.HeaderNav_link[aria-expanded="true"] .HeaderNav_linkIcon::after {
	transform: rotate(0);
}

.HeaderNav_link[aria-expanded="true"]::after {
	opacity: 1;
	visibility: visible;
}

.HeaderNav_link[aria-expanded="true"] + .HeaderNav_secondWrapper {
	grid-template-rows: 1fr;
	opacity: 1;
	visibility: visible;
}

@media (min-width: 1024px) {
	.HeaderNav_secondWrapper::before {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 100%;
		height: 36px;
	}
}

@media (hover: hover) and (min-width: 1024px) {
	.HeaderNav_link:hover,
	.HeaderNav_link[aria-expanded="true"],
	.HeaderNav_item:hover > .HeaderNav_link {
		color: var(--color-tertiary);
	}

	.HeaderNav_link.-button:hover::after,
	.HeaderNav_link.-button[aria-expanded="true"]::after,
	.HeaderNav_item:hover > .HeaderNav_link.-button::after {
		transform: scaleY(-1);
	}
	
}
@media (hover: hover) and (max-width: 1023px) {
	.HeaderNav_link.-blank:hover {
		color: var(--color-primary);
		background-color: var(--color-white);
	}
}

@media (max-width: 1023px) {
	.HeaderNav {
		padding: 10px;
		background: none;
		border-radius: 0;
	}

	.HeaderNav_list {
		flex-direction: column;
		width: 100%;
	}

	.HeaderNav_item {
		width: 100%;
	}

	.HeaderNav_item.-sp {
		display: block;
	}

	.HeaderNav_item.-pc {
		display: none;
	}

	.HeaderNav_link {
		font-size: 1.8rem;
		color: var(--color-white);
	}

	.HeaderNav_link.-button {
		pointer-events: none;
	}

	.HeaderNav_link.-button::before,
	.HeaderNav_link.-button::after {
		display: none;
	}

	.HeaderNav_link.-blank {
		padding: 14px;
		border-radius: 10px;
		border: 1px solid var(--color-white);
		text-align: center;
		margin-top: 27px;
		transition: background-color 0.4s ease,
		color 0.4s ease;
	}

	.HeaderNav_secondWrapper {
		position: static;
		transform: none;
		border-radius: 10px;
		padding: 0;
		border: 0;
		background: none;
		width: 100%;
	}
}

/* HeaderLocalNav
***********************************************/
.HeaderLocalNav_list {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.HeaderLocalNav_item.-sp {
	display: none;
}

.HeaderLocalNav_link {
	position: relative;
	color: var(--color-black);
	font-family: var(--font-jp);
	font-size: 1.6rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.75;
	transition: color 0.4s ease;
	padding-left: 20px;
}

.HeaderLocalNav_link::before {
	position: absolute;
	content: "";
	top: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	width: 11px;
	height: 3px;
	background: var(--color-secondary);
	border-radius: 100px;
}

@media (hover: hover) {
	.HeaderLocalNav_link:hover {
		color: var(--color-tertiary);
	}
}

@media (max-width: 1023px) {
	.HeaderLocalNav_list {
		margin-top: 10px;
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 3px 7px;
	}

	.HeaderLocalNav_item.-sp {
		display: block;
	}

	.HeaderLocalNav_link {
		color: var(--color-white);
		font-size: 1.4rem;
		display: inline-block;
		line-height: 1.4285;
	}

	.HeaderLocalNav_link::before {
		top: 10px;
		bottom: auto;
	}
}

/**********************************************
* 
* Footer
*
***********************************************/
.Footer {
	position: relative;
	padding: 80px 0 125px;
	background-color: var(--color-primary);
	color: var(--color-white);
	margin-top: -1px;
}

.Footer_main {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	padding-left: clamp(0px, -135.13px + 17.6vw, 63px);
	padding-right: clamp(0px, -53.63px + 6.98vw, 25px);
	margin: 0 auto;
}

.Footer_info {
	flex-shrink: 0;
}

.Footer_brand {
	display: flex;
	align-items: center;
	gap: 23px;
	margin-bottom: 23px;
}

.Footer_logoLink {
	display: block;
}

.Footer_logoImg {
	display: block;
	width: clamp(200px, 71.17px + 16.76vw, 260px);
	height: auto;
	filter: brightness(0) invert(1);
}

.Footer_siteBtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 140px;
	height: 40px;
	border: 1px solid var(--color-white);
	border-radius: 8px;
	font-family: var(--font-jp);
	font-size: 1.4rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.02em;
	color: var(--color-white);
	transition:
		background-color 0.3s ease,
		color 0.3s ease;
}

.Footer_siteBtnIcon {
	display: block;
	width: 13px;
	height: 13px;
	background-color: currentColor;
	mask: url("../images/icon-blank.svg") center / contain no-repeat;
}

.Footer_company {
	margin-bottom: 15px;
	font-family: var(--font-jp);
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.05em;
}

.Footer_address {
	margin-bottom: 27px;
	font-family: var(--font-jp);
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.625;
	letter-spacing: 0.05em;
}

.Footer_contact {
	width: 100%;
	max-width: 380px;
	padding: 22px 20px 23px;
	border-radius: 20px;
	background: var(--color-white);
	text-align: center;
}

.Footer_tel {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	color: var(--color-primary);
	transition: color 0.3s ease;
}

.Footer_telIcon {
	display: block;
	width: 21px;
	height: 28px;
	background-color: currentColor;
	mask: url("../images/icon-tel.svg") center / contain no-repeat;
}

.Footer_telNum {
	font-family: var(--font-en);
	font-size: 3.2rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.05em;
}

.Footer_staff {
	margin-top: 10px;
    padding-top: 15px;
	border-top: 1px solid rgba(48, 100, 191, 0.2);
	font-family: var(--font-jp);
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.05em;
	color: var(--color-primary);
}

.Footer_nav {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 47px;
	max-width: 465px;
}

.Footer_navGroup {
	width: 100%;
}

.Footer_navTitle {
	margin-bottom: 10px;
	font-family: var(--font-jp);
	font-size: 2.2rem;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.05em;
}

.Footer_navList {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 6px 20px;
}

.Footer_navLink {
	position: relative;
	display: inline-block;
	padding-left: 18px;
	font-family: var(--font-jp);
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.05em;
	color: var(--color-white);
	transition: color 0.3s ease;
}

.Footer_navLink::before {
	position: absolute;
	top: 11px;
    left: -2px;
    width: 11px;
    height: 3px;
	border-radius: 100px;
	background: var(--color-secondary);
	content: "";
}

.Footer_copy {
	padding-left: clamp(0px, -135.13px + 17.6vw, 63px);
    margin: 7px auto 0;
    pointer-events: none;
}

.Footer_copySmall {
	font-family: var(--font-jp);
	font-size: 1.4rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	color: var(--color-white);
}

@media (hover: hover) {
	.Footer_siteBtn:hover {
		background-color: var(--color-white);
		color: var(--color-primary);
	}

	.Footer_navLink:hover {
		color: var(--color-tertiary);
	}

	.Footer_tel:hover {
		color: var(--color-tertiary);
	}
}

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

	.Footer_info {
		width: 100%;
		max-width: 433px;
		margin: 0 auto;
	}

	.Footer_nav {
		max-width: none;
	}

	.Footer_copy {
		margin-top: 50px;
        padding-left: 0;
	}
}

@media (max-width: 767px) {
	.Footer {
		padding: 56px 0 140px;
	}

	.Footer_main {
		gap: 40px;
		padding-left: 0;
	}

	.Footer_info {
		max-width: 325px;
		text-align: center;
	}

	.Footer_brand {
		flex-direction: column;
		gap: 17px;
		margin-bottom: 31px;
	}

	.Footer_company {
		margin-bottom: 7px;
		font-size: 1.7rem;
	}

	.Footer_address {
		margin-bottom: 23px;
		font-size: 1.6rem;
		line-height: 1.625;
	}

	.Footer_contact {
		max-width: 325px;
		padding: 22px 29px 20px;
	}

	.Footer_telIcon {
		width: 15px;
		height: 20px;
	}

	.Footer_telNum {
		font-size: 2.6rem;
	}

	.Footer_staff {
		margin-top: 7px;
        padding-top: 11px;
		font-size: 1.6rem;
	}

	.Footer_nav {
		gap: 16px;
		padding-top: 0;
	}

	.Footer_navTitle {
		margin-bottom: 10px;
		font-size: 1.8rem;
	}

	.Footer_navList {
		gap: 3px 7px;
	}

	.Footer_navLink::before {
		top: 10px;
	}

	.Footer_navLink {
		font-size: 1.4rem;
		letter-spacing: 0.02em;
	}
}

/**********************************************
*
* FixedEntry
*
***********************************************/
.FixedEntry {
	position: fixed;
	right: 40px;
	bottom: 30px;
	z-index: 90;
	display: block;
	width: 254px;
	height: 84px;
	padding: 2px;
	border-radius: 10px;
	border: 2px solid #fac99f;
	text-decoration: none;
	transition: background-color 0.3s ease;
	display: flex;
	align-items: center;
	gap: 15px;
	padding: 0 20px 0 25px;
	background: var(--color-tertiary);
	transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
	color: var(--color-white);
}

.FixedEntry_mail {
	position: relative;
	flex-shrink: 0;
	width: 38px;
	height: 38px;
}

.FixedEntry_mail::before,
.FixedEntry_mail::after {
	content: "";
	position: absolute;
	bottom: 2px;
    left: 0px;
	width: 38px;
	height: 38px;
	background: bottom center / contain no-repeat;
	transition: opacity 0.3s ease;
}

.FixedEntry_mail::before {
	background-image: url("../images/icon-entry_mail.svg");
	opacity: 1;
}

.FixedEntry_mail::after {
	background-image: url("../images/icon-entry_mail_open.svg");
	opacity: 0;
}

.FixedEntry_text {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	min-width: 0;
	line-height: 1;
}

.FixedEntry_en {
	font-family: var(--font-en);
	font-size: 3rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	color: var(--color-white);
	transition: color 0.3s ease;
}

.FixedEntry_jp {
	margin-top: 4px;
	font-family: var(--font-jp);
	font-size: 1.4rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--color-white);
	transition: color 0.3s ease;
}

.FixedEntry_arrow {
	position: relative;
	flex-shrink: 0;
	width: 28px;
	height: 28px;
	border-radius: 5px;
	background: var(--color-white);
	transition: background-color 0.3s ease;
	overflow: hidden;
}

.FixedEntry_arrow::before,
.FixedEntry_arrow::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	margin: auto;
	width: 8px;
	height: 16px;
	background-color: var(--color-tertiary);
	mask: url("../images/icon-entry_arrow.svg") center / contain no-repeat;
	transition: transform 0.2s ease-out;
}

.FixedEntry_arrow::before {
	transform: translateX(0);
}

.FixedEntry_arrow::after {
	transform: translateX(-300%);
	background-color: var(--color-white);
}

@media (hover: hover) {
	.FixedEntry:hover {
		border-color: var(--color-tertiary);
		background: var(--color-white);
		color: var(--color-tertiary);
	}

	.FixedEntry:hover .FixedEntry_en,
	.FixedEntry:hover .FixedEntry_jp {
		color: var(--color-tertiary);
	}

	.FixedEntry:hover .FixedEntry_mail::before {
		opacity: 0;
	}

	.FixedEntry:hover .FixedEntry_mail::after {
		opacity: 1;
	}

	.FixedEntry:hover .FixedEntry_arrow {
		background: var(--color-tertiary);
	}

	.FixedEntry:hover .FixedEntry_arrow::before {
		transform: translateX(300%);
	}

	.FixedEntry:hover .FixedEntry_arrow::after {
		transform: translateX(0);
	}
}

@media (max-width: 767px) {
	.FixedEntry {
		right: 0;
        left: 0;
        margin: auto;
        bottom: 16px;
        width: 295px;
		height: 84px;
		gap: 17px;
		padding: 0 20px 0 32px;
	}

	.FixedEntry_mail::before,
	.FixedEntry_mail::after {
		bottom: 5px;
		left: -2px;
		width: 40px;
		height: 40px;
	}

	.FixedEntry_en {
		font-size: 2.8rem;
	}

	.FixedEntry_jp {
		margin-top: 2px;
		font-size: 1.2rem;
	}

	.FixedEntry_arrow {
		border-radius: 4px;
	}
}

