:root {
	font-size: 10px;
}
* {
	position: relative;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
html,
body {
	height: 100dvh;
	margin: 0;
	padding: 0;
	overflow: hidden;
	overflow-y: auto;
	font-family: "Lexend", "Noto Sans JP", sans-serif;
	/* 本文の標準色（色を指定していない文字）。真っ黒ではなく、トップの文字と同じ紺がかったダークグレー */
	color: var(--color-medium-blue);
	background-color: var(--color-white);
	overscroll-behavior-y: none;
}
body * {
	margin: 0;
	padding: 0;
}
.pc-only {
	display: block;
}
.sp-only {
	display: none;
}
/* アイコン: Font Awesome Free 6.2.0 の SVG をページ内に直接埋め込んでいる（https://fontawesome.com/license/free, CC BY 4.0）
   以前の Webフォント版と同じ大きさ・位置になるよう、高さ 1em で文字のベースラインから 0.125em 下げる */
.fa-solid {
	display: inline-block;
	line-height: 1;
	font-style: normal;
}
.fa-solid svg {
	height: 1em;
	width: auto;
	vertical-align: -.125em;
	fill: currentColor;
	overflow: visible;
}
p {
	line-height: 1.75;
	font-size: 1.6rem;
}
a {
	color: inherit;
	text-decoration: none;
}
ol li,
ul li {
	font-size: 1.6rem;
	list-style-position: outside;
}
main {
	width: 100%;
	min-width: 370px;
	z-index: 1;
}
main * {
	position: relative;
}
main > section {
	padding: 0 var(--right-space) 0 var(--left-space);
}
.title {
	margin-bottom: .5em;
	font-size: var(--font-size-ttl);
	font-family: var(--font-family-en);
	font-weight: 700;
	color: var(--color-blue);
}
.subtitle {
	margin-bottom: .5em;
	font-size: var(--font-size-subttl);
	font-family: var(--font-family-en);
	font-weight: 700;
	color: var(--color-blue);
}
.color-1 {
	color: var(--color-blue) !important;
}
.color-2 {
	color: var(--color-dark-yellow) !important;
}
.color-3 {
	color: var(--color-light-blue) !important;
}

/* ページ内リンク（#web-projects など）で移動したとき、固定ヘッダーに見出しが隠れないようにずらす
   （このサイトは body がスクロールするため body にも指定） */
html,
body {
	scroll-padding-top: calc(var(--header-height) + 2rem);
}

/* header */
header {
	position: fixed;
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	height: var(--header-height);
	top: 0;
	left: 0;
	padding: 0 calc(var(--right-space) - 6vw) 0 calc(var(--left-space) - 6vw);
	z-index: 100;
	pointer-events: none;
}
header .logo {
	display: block;
	width: calc(80px + 2vw);
	margin-top: 1em;
	aspect-ratio: 10 / 1.6;
	pointer-events: initial;
}
header .logo svg {
	width: 100%;
}
header .logo svg path {
	fill: #000000;
}
header .hamburger {
	display: block;
	width: calc(40px + 1vw);
	height: calc(40px + 1vw);
	margin-top: 1em;
	border-radius: 50%;
	border: none;
	outline: none;
	background-color: transparent;
	cursor: pointer;
	pointer-events: initial;
}
header .hamburger svg {
	width: 90%;
}
header .hamburger svg path {
	fill: #000000;
}

/* footer */
footer * {
	position: relative;
}
footer .inner {
	padding: 5vw 9vw;
	border-radius: 10vw 0;
	color: var(--color-white);
}
footer .link {
	padding: 1em 0 2em 1em;
	font-size: var(--font-size-footer);
	font-weight: 700;
	border-bottom: 1px solid var(--color-white);
}
footer .link a svg {
	width: 1.5em;
	vertical-align: middle;
}
footer .link a svg polyline {
	stroke: var(--color-white);
}
footer .copy {
	display: flex;
	flex-wrap: nowrap;
	padding-top: 4vw;
	font-size: var(--font-size-ftcopy);
}
footer .copy .copyright {
	padding-left: 1em;
	margin-right: 5em;
}
footer .copy .to-policy {
	position: relative;
}
footer .copy .to-policy a {
	display: inline-block;
}
footer .copy .to-policy a::after {
	content: '';
	position: absolute;
	display: block;
	width: 100%;
	height: 2px;
	background-color: var(--color-yellow);
	bottom: -.4em;
	left: 0;
}
footer .copy .copyright::first-letter {
	font-size: var(--font-size-ftcopy-first);
	vertical-align: -.1em;
}

/* navigation */
.nav {
	position: fixed;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	width: 100%;
	height: 100dvh;
	top: -100dvh;
	left: 0;
	background-color: var(--color-medium-gray);
	font-family: "Lexend", sans-serif;
	z-index: 10;
	transition-property: opacity;
	transition-duration: .3s;
	transition-delay: 0s;
	pointer-events: none;
	opacity: 0;
	overflow: hidden;
	overflow-y: auto;
}
.nav.open {
	top: 0;
	opacity: 1;
	pointer-events: initial;
}
.nav li {
	list-style-type: none;
	font-weight: 700;
}
.nav .body {
	display: flex;
	flex-wrap: nowrap;
}
.nav .body .menu {
	padding: calc(160px + 2vw) calc(var(--right-space) - 6vw) 0 calc(var(--left-space) - 6vw);
	filter: blur(1.5rem);
	transition-property: filter;
	transition-duration: 1s;
	transition-delay: .5s;
}
.nav.open .body .menu {
	filter: blur(0);
}
.nav .body .main-menu {
	width: 40%;
}
.nav .body .main-menu ul li {
	margin-bottom: 1em;
	font-size: var(--font-size-menu);
	color: var(--color-dark-gray);
}
.nav .body .main-menu > ul > li {
	margin-top: -5vw;
	opacity: 0;
	transition-property: margin-top, opacity;
	transition-duration: .9s, .8s;
	transition-timing-function: cubic-bezier(0.68, -1.55, 0.265, 1.55);
}
.nav.open .main-menu > ul > li {
	margin-top: 0;
	opacity: 1;
}
.nav .body .main-menu ul li a:active,
.nav .body .main-menu ul li.current a {
	color: var(--color-black);
}
.nav .body .main-menu {
	left: 0;
	transition-property: left;
	transition-duration: .5s;
}
.nav .body .sub-menu {
	width: 60%;
}
.nav .body .sub-menu .back-main {
	position: absolute;
	width: 3em;
	height: 2em;
	top: 90px;
	left: var(--left-space);
	border: none;
	background-color: transparent;
	cursor: pointer;
	outline: none;
	display: none;
}
.nav .body .sub-menu .back-main svg {
	width: 100%;
}
.nav .body .sub-menu .back-main svg polyline {
	stroke: var(--color-dark-gray);
}
/* メニューの日本語表記（main.js で作成）: マウスを乗せると英語が上に抜け、日本語が下から出る
   幅は英語のままにして、切り替え時にメニューの並びがずれないようにする */
.nav .menuLabel {
	position: relative;
	display: inline-block;
}
.nav .menuLabel-en,
.nav .menuLabel-ja {
	display: block;
	transition: opacity .25s ease, transform .25s ease;
}
.nav .menuLabel-ja {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	display: flex;
	align-items: center; /* 英語の文字の高さの中で上下中央に */
	font-size: .8em; /* 日本語は英語より 20% 小さく */
	white-space: nowrap;
	opacity: 0;
	transform: translateY(.4em);
	pointer-events: none;
}
/* 中央そろえのボタン（Contact us）は日本語も中央に */
.nav .foot li.contact .menuLabel-ja {
	left: 50%;
	translate: -50% 0;
}
@media (hover: hover) {
	.nav a:hover .menuLabel-en {
		opacity: 0;
		transform: translateY(-.4em);
	}
	.nav a:hover .menuLabel-ja {
		opacity: 1;
		transform: none;
	}
}
.nav a:focus-visible .menuLabel-en {
	opacity: 0;
	transform: translateY(-.4em);
}
.nav a:focus-visible .menuLabel-ja {
	opacity: 1;
	transform: none;
}
/* スマホのサブメニュー: 戻るボタンの横に今開いているメニュー名（main.js で作成。PC では非表示） */
.nav .body .sub-menu .subMenuLabel {
	position: absolute;
	top: 78px; /* 戻るボタンと同じ高さ（90px）に文字がくるよう、押せる範囲を上下に 12px ずつ広げる */
	left: calc(var(--left-space) + 30px); /* 戻るボタン（幅 30px）の右隣 */
	padding: 12px 16px 12px 12px;
	height: 44px;
	line-height: 20px;
	font-family: inherit;
	font-size: 16px;
	font-weight: 700;
	color: var(--color-dark-gray);
	white-space: nowrap;
	background: none;
	border: none;
	cursor: pointer;
	display: none;
}
.nav .body .sub-menu ul li h3 {
	margin-bottom: 1em;
	color: var(--color-dark-gray);
}
.nav .body .sub-menu ul li {
	font-size: var(--font-size-submenu);
}
.nav .body .sub-menu > ul {
	position: relative;
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-start;
	counter-reset: index;
}
.nav .body .sub-menu > ul > li {
	width: 0;
	height: 0;
	opacity: 0;
	pointer-events: none;
}
.nav .body .sub-menu > ul > li.on {
	width: 100%;
	height: auto;
	opacity: 1;
	pointer-events: initial;
}
.nav .body .sub-menu ul li ul li {
	opacity: 0;
	filter: blur(1.5rem);
	margin-left: -5rem;
	margin-bottom: 1em;
	transition-property: margin-left, opacity, filter;
	transition-duration: .5s, .3s, .3s;
	transition-delay: calc(0.1s * var(--delay));
}
.nav .body .sub-menu ul li.on ul li {
	opacity: 1;
	filter: blur(0);
	margin-left: 0;
}
.nav .body .sub-menu > ul > li:nth-child(1) ul li a,
.nav .body .sub-menu > ul > li:nth-child(3) ul li a {
	color: var(--color-blue);
}
.nav .body .sub-menu > ul > li:nth-child(2) ul li a {
	color: var(--color-light-brown);
}
.nav .foot {
	margin-bottom: -5rem;
	transition-property: margin-bottom;
	transition-duration: .7s;
	transition-timing-function: cubic-bezier(0.68, -1.55, 0.265, 1.55);
}
.nav.open .foot {
	margin-bottom: 5rem;
}
.nav .foot ul {
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-end;
	width: 100%;
}
.nav .foot ul li {
	padding-left: calc(var(--left-space) - 6vw);
}
.nav .foot ul li.contact {
	width: 40%;
}
.nav .foot ul li.contact a {
	display: block;
	width: 8em;
	padding: 1em 0;
	border-radius: 4em;
	text-align: center;
	font-size: var(--font-size-contact);
	background-color: var(--color-yellow);
}
.nav .foot ul li.privacy {
	width: 60%;
}
.nav .foot ul li.privacy a {
	font-size: var(--font-size-privacy);
}

/* Fade in */
.fade {
	opacity: 0;
	transform: translateY(20px);
	transition-property: opacity, transform;
	transition-duration: .5s;
	transition-timing-function: ease-in-out;
}
.fade.in {
	opacity: 1;
	transform: translateY(0);
}

/* TOP */
#top {
	background-color: var(--color-white);
	font-family: "Lexend", sans-serif;
}
#top.dark {
	background-color: var(--color-medium-blue);
}
#top header .logo svg path {
	transition-property: fill;
	transition-duration: .5s;
}
#top.dark header .logo svg path {
	fill: var(--color-white);
}
#top.dark header.open .logo svg path {
	fill: #000000;
}
#top header .hamburger svg path {
	transition-property: fill;
	transition-duration: .5s;
}
#top header .hamburger svg path {
	fill: #000000;
}
#top.dark header .hamburger svg path {
	fill: var(--color-white);
}
#top header.open .hamburger svg path {
	fill: #000000 !important;
}
#top > main {
	margin-top: var(--header-height);
	padding: 0;
	font-weight: 700;
}
#top main > section {
	padding: 0;
}
#top > main .swiper {
	width: 100%;
	overflow: hidden;
	position: relative;
	transition-timing-function: linear;
	--scroll-time: 45s
}
@keyframes scroll {
	to {
		transform: translate(calc(-50% - 0.5rem));
	}
}
#top .swiper:hover .swiper-wrapper {
	animation-play-state: paused;
}

#top .swiper.paused .swiper-wrapper {
	animation-play-state: paused;
}
#top > main .swiper .swiper-wrapper {
	transition-timing-function: linear;
	display: flex;
	flex-wrap: nowrap;
	gap: 1rem;
	will-change: transform;
	backface-visibility: hidden;
	width: fit-content;
	animation: scroll var(--scroll-time) linear infinite;
}
#top > main:hover .swiper .swiper-slide a {
	transition: .5s opacity 0s;
	opacity: .5;
}
#top > main:hover .swiper .swiper-slide:hover a {
	opacity: 1;
}
/* タッチ端末では、タップ後に :hover が残って文字が薄いままにならないように */
@media (hover: none) {
	#top > main:hover .swiper .swiper-slide a {
		opacity: 1;
	}
}
/* スマホ: 文字を少し小さくし、単語の間を広げて隣の単語を押し間違えにくく */
@media (max-width: 768px) {
	/* 文字を 85% に。行の高さは変えず、小さくした分を行の下の余白に回す（7 行で画面を埋める配置はそのまま） */
	#top > main .swiper .swiper-wrapper .swiper-slide a {
		font-size: calc(var(--font-size-swiper) * .85);
		padding-bottom: calc(3dvh + var(--font-size-swiper) * .15);
	}
	/* 単語の間（PC は 1rem）。以前の「・」区切りと同じくらいの広さ */
	#top > main .swiper .swiper-wrapper {
		gap: calc(var(--font-size-swiper) * .72);
	}
}
#top > main .swiper .swiper-slide {
	display: flex;
	justify-content: center;
	align-items: center;
	width: auto;
	filter: blur(1.5rem);
	/* 0 ではなく 0.01: 最初に描かれた時点で完全に透明だと、Chrome が「最大の表示内容（LCP）」として扱わず、
	   PageSpeed Insights のパフォーマンスが NO_LCP（測定不能）になるため。ぼかしと合わせて見た目は透明と変わらない */
	opacity: .01;
	transition-property: filter, opacity;
	transition-duration: 1s, 1s;
	transition-delay: 0s, 0s;
	transform: translateZ(0);
    backface-visibility: hidden;
	height: 100%;
}
#top > main .swiper .swiper-slide.focus {
	filter: blur(0rem);
	opacity: 1;
}
#top > main .swiper .swiper-slide a {
	display: block;
	white-space: nowrap;
	padding: 0 .3em 3dvh;
	font-size: var(--font-size-swiper);
	line-height: 1;
	letter-spacing: -.025em;
	text-decoration: none;
	box-sizing: border-box;
}
#top > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="0"] a,
#top > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="3"] a,
#top > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="6"] a,
#top > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="1"] a,
#top > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="4"] a,
#top > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="7"] a,
#top > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="2"] a,
#top > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="5"] a,
#top > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="8"] a {
	color: var(--color-gray);
}
#top > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="1"] a,
#top > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="4"] a,
#top > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="7"] a,
#top > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="2"] a,
#top > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="5"] a,
#top > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="8"] a,
#top > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="0"] a,
#top > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="3"] a,
#top > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="6"] a {
	color: var(--color-dark-blue);
}
#top.dark > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="1"] a,
#top.dark > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="4"] a,
#top.dark > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="7"] a,
#top.dark > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="2"] a,
#top.dark > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="5"] a,
#top.dark > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="8"] a,
#top.dark > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="0"] a,
#top.dark > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="3"] a,
#top.dark > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="6"] a {
	color: var(--color-medium-gray);
}
#top > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="2"] a,
#top > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="5"] a,
#top > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="8"] a,
#top > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="0"] a,
#top > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="3"] a,
#top > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="6"] a,
#top > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="1"] a,
#top > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="4"] a,
#top > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="7"] a {
	color: var(--color-yellow);
}
#top > main .swiper .swiper-slide.box a {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 9dvh;
	margin: .4em .6em 0;
	padding: .2em 1em;
	border-radius: 5dvh;
	font-size: var(--font-size-swiper-box);
	letter-spacing: 0;
	color: var(--color-white) !important;
}
/* スマホ: ボタン型の項目（Contact us など）も、流れる文字と同じく 85% に */
@media (max-width: 768px) {
	#top > main .swiper .swiper-slide.box a {
		height: calc(9dvh * .85);
		font-size: calc(var(--font-size-swiper-box) * .85);
	}
}
#top.dark > main .swiper .swiper-slide.box a {
	color: var(--color-medium-blue) !important;
}
#top > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="0"].box a,
#top > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="3"].box a,
#top > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="6"].box a,
#top > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="1"].box a,
#top > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="4"].box a,
#top > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="7"].box a,
#top > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="2"].box a,
#top > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="5"].box a,
#top > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="8"].box a {
	background-color: var(--color-gray);
}
#top > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="1"].box a,
#top > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="4"].box a,
#top > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="7"].box a,
#top > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="2"].box a,
#top > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="5"].box a,
#top > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="8"].box a,
#top > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="0"].box a,
#top > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="3"].box a,
#top > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="6"].box a {
	background-color: var(--color-dark-blue);
}
#top.dark > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="1"].box a,
#top.dark > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="4"].box a,
#top.dark > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="7"].box a,
#top.dark > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="2"].box a,
#top.dark > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="5"].box a,
#top.dark > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="8"].box a,
#top.dark > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="0"].box a,
#top.dark > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="3"].box a,
#top.dark > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="6"].box a {
	background-color: var(--color-medium-gray);
}
#top > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="2"].box a,
#top > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="5"].box a,
#top > main .swiper:nth-of-type(3n + 1) .swiper-slide[data-swiper-slide-index="8"].box a,
#top > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="0"].box a,
#top > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="3"].box a,
#top > main .swiper:nth-of-type(3n + 2) .swiper-slide[data-swiper-slide-index="6"].box a,
#top > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="1"].box a,
#top > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="4"].box a,
#top > main .swiper:nth-of-type(3n + 3) .swiper-slide[data-swiper-slide-index="7"].box a {
	background-color: var(--color-yellow);
}
#top > main .swiper .swiper-slide a i {
	margin: 0 .4em 0 -.2em;
	font-size: .8em;
}
#top .swiper-button {
	position: fixed;
	display: block;
	width: calc(36px + 2dvh);
	height: calc(36px + 2dvh);
	border: none;
	outline: none;
	border-radius: 50%;
	background-color: var(--color-medium-blue);
	bottom: 4dvh;
	right: 4dvh;
	cursor: pointer;
	text-align: center;
	font-size: 2dvh;
	color: var(--color-white);
	z-index: 5;
}
#top.dark .swiper-button {
	background-color: var(--color-white);
	color: var(--color-medium-blue);
}
#top.paused .swiper-pause,
#top .swiper-play {
	display: none;
}
#top .swiper-pause,
#top.paused .swiper-play {
	display: block;
}

/* Who we are */
#who-we-are {
	background-color: var(--color-light-gray);
}
#who-we-are .catch {
	margin-bottom: .5em;
	font-size: 2rem;
}
#who-we-are #craft45 {
	position: relative;
	padding: calc(var(--header-height) + 10vw) var(--right-space) 55vw var(--left-space);
}
#who-we-are #craft45 .logomark {
	position: absolute;
	top: -30vw;
	left: 42vw;
	width: 48vw;
	min-width: 260px;
}
#who-we-are #craft45 .subtitle {
	font-size: var(--font-size-subtitle);
}
#who-we-are #craft45 .catch-ja {
	width: 100%;
	margin-bottom: 1.5em;
	font-size: var(--font-size-catch-ja);
	line-height: 2;
}
#who-we-are #craft45 .catch-en {
	font-size: var(--font-size-catch-en);
	font-family: var(--font-family-en);
	line-height: 1.65;
}
#who-we-are #craft45 .pic {
	width: 60vw;
	height: 50vw;
	position: absolute;
	right: 0;
	bottom: 0;
	border-radius: 25vw 0 0 25vw;
	min-width: 330px;
	background: url(/img/whoweare/vision.jpg) no-repeat center center;
	background-size: cover;
}
#who-we-are #vision {
	position: relative;
	padding-top: 12rem;
	padding-bottom: 10vw;
}
#who-we-are #vision .subtitle {
	font-size: var(--font-size-subtitle2);
}
#who-we-are #vision .catch-ja {
	max-width: 1500px;
	padding: 2em 0;
	font-size: var(--font-size-catch-ja);
	line-height: 2;
}
#who-we-are #vision .catch-en {
	padding: 0 0 0 6vw;
	font-size: var(--font-size-catch-en);
	font-family: var(--font-family-en);
}
/* Vision の背景アクセント「点と線」（js/main.js の drawVisionNetwork で追加） */
#who-we-are #vision > h2,
#who-we-are #vision > p {
	position: relative;
	z-index: 1;
}
#who-we-are #vision .vision-network {
	position: absolute;
	/* 日本語の文章の右側の空きに置く（位置・高さは JS で文章に合わせる） */
	top: var(--network-top, 240px);
	left: var(--network-left, 60%);
	right: var(--right-space);
	height: var(--network-height, 300px);
	pointer-events: none;
}
#who-we-are #vision .vision-network svg {
	display: block;
	width: 100%;
	height: 100%;
}
#who-we-are #vision .vision-network line {
	stroke: var(--color-light-blue);
	stroke-width: 1.5;
	stroke-dasharray: 1;
	stroke-dashoffset: 1;
	transition: stroke-dashoffset 1.2s ease;
}
#who-we-are #vision .vision-network circle {
	fill: var(--color-blue);
	opacity: 0;
	transform-box: fill-box;
	transform-origin: center;
	transform: scale(.3);
	transition: opacity .5s ease, transform .5s cubic-bezier(.2, .8, .2, 1.4);
}
#who-we-are #vision .vision-network circle.yellow {
	fill: var(--color-yellow);
}
#who-we-are #vision .vision-network.is-in line {
	stroke-dashoffset: 0;
}
#who-we-are #vision .vision-network.is-in circle {
	opacity: 1;
	transform: none;
}
@media (max-width: 768px) {
	/* スマホは文章が横幅いっぱいのため、日本語の文章の後ろに薄く置く（高さ・位置は JS で文章に合わせる） */
	#who-we-are #vision .vision-network {
		left: var(--left-space);
		opacity: .35;
	}
}
@media (prefers-reduced-motion: reduce) {
	#who-we-are #vision .vision-network line,
	#who-we-are #vision .vision-network circle {
		transition: none;
	}
}
#who-we-are #what-we-believe-in {
	position: relative;
	padding-top: 12rem;
	padding-bottom: 30vw;
}
#who-we-are #what-we-believe-in .subtitle {
	font-size: var(--font-size-subtitle2);
}
#who-we-are #what-we-believe-in .catch-ja {
	max-width: 1500px;
	padding: 2em 0 2em 18vw;
	font-size: var(--font-size-catch-ja);
	line-height: 2;
}
#who-we-are #what-we-believe-in .catch-en {
	padding: 0 0 0 18vw;
	font-size: var(--font-size-catch-en);
	font-family: var(--font-family-en);
}
#who-we-are #what-we-believe-in .circle {
	position: absolute;
	width: 50vw;
    height: 70%;
    top: 50%;
    right: 65vw;
    overflow: visible;
    transform: translateY(-50%);
}
#who-we-are #what-we-believe-in .circle ul,
#who-we-are #what-we-believe-in .circle ul li {
	display: block;
	overflow: visible;
}
#who-we-are #what-we-believe-in .circle ul {
	width: 100%;
	height: 100%;
}
#who-we-are #what-we-believe-in .circle ul li {
	position: absolute;
	width: 75%;
	height: 65%;
}
#who-we-are #what-we-believe-in .circle ul li.blue {
	top: 0;
	left: 0;
	z-index: 1;
	animation: rotate-animation-blue 13s linear infinite;
	mix-blend-mode: multiply;
}
#who-we-are #what-we-believe-in .circle ul li.yellow {
	bottom: 0;
	right: 0;
	animation: rotate-animation-yellow 14s linear infinite;
}
@keyframes rotate-animation-blue {
	0% {
		transform: rotate(0deg);
	}
	50% {
		transform: rotate(-190deg);
	}
	100% {
		transform: rotate(-360deg);
	}
}
@keyframes rotate-animation-yellow {
	0% {
		transform: rotate(0deg);
	}
	50% {
		transform: rotate(160deg);
	}
	100% {
		transform: rotate(360deg);
	}
}
#who-we-are #what-we-believe-in .circle ul li span {
	display: block;
	width: 35vw;
	min-width: 320px;
	height: 35vw;
	min-height: 320px;
	top: 50%;
	left: 50%;
	border-radius: 50%;
}
#who-we-are #what-we-believe-in .circle ul li.blue span {
	background-color: var(--color-blue);
	animation: circle-animation-blue 12s ease-in-out infinite;
	mix-blend-mode: hue;
	opacity: .9;
}
#who-we-are #what-we-believe-in .circle ul li.yellow span {
	background-color: var(--color-yellow);
	animation: circle-animation-yellow 11s ease-in-out infinite;
}
@keyframes circle-animation-blue {
	0% {
		transform: translate(-65%, -50%) scale(100%);
	}
	25% {
		transform: translate(-70%, -40%) scale(106%);
	}
	50% {
		transform: translate(-55%, -50%) scale(103%);
	}
	75% {
		transform: translate(-60%, -55%) scale(98%);
	}
	100% {
		transform: translate(-65%, -50%) scale(100%);
	}
}
@keyframes circle-animation-yellow {
	0% {
		transform: translate(-45%, -50%) scale(100%);
	}
	25% {
		transform: translate(-35%, -55%) scale(98%);
	}
	50% {
		transform: translate(-40%, -50%) scale(102%);
	}
	75% {
		transform: translate(-30%, -45%) scale(104%);
	}
	100% {
		transform: translate(-45%, -50%) scale(100%);
	}
}
#who-we-are #company .pics {
	position: absolute;
	width: 60vw;
	max-width: 1000px;
	min-width: 300px;
	height: 60vw;
	max-height: 1000px;
	min-height: 300px;
	top: -10vw;
	left: 70%;
	transform: translateX(-50%);
}
#who-we-are #company .pics .pics-inner {
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: 50%;
}
#who-we-are #company .pics .switch-pic {
	position: absolute;
	width: 20vw;
	min-width: 60px;
	bottom: 0;
	right: 4%;
	display: block;
	background-color: transparent;
	border: none;
	color: var(--color-yellow);
	font-weight: 700;
	font-size: var(--font-size-switch);
	white-space: nowrap;
	text-align: right;
}
#who-we-are #company .pics .switch-pic::before {
	content: 'Map';
}
#who-we-are #company .pics.map .switch-pic::before {
	content: 'Photo';
}
#who-we-are #company .pics .switch-pic i {
	margin-left: .25em;
	font-size: .8em;
	transition: transform .5s ease-in-out;
	transform: scale(-1, 1) rotate(0deg);
	vertical-align: .075em;
}
#who-we-are #company .pics.map .switch-pic i {
	transform: scale(-1, 1) rotate(180deg);
}
#who-we-are #company .pics .photo,
#who-we-are #company .pics .map {
	position: absolute;
	width: 100vw;
	height: 100%;
	border-radius: 9999px;
}
#who-we-are #company .pics .photo img {
	width: 60vw;
	max-width: 1000px;
	min-width: 300px;
	height: 60vw;
	max-height: 1000px;
	min-height: 300px;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	object-fit: cover;
	object-position: center center;
}
#who-we-are #company .pics .map {
	width: 200%;
	transform-origin: right bottom;
	transition: transform .5s ease-in-out;
	transform: rotate(180deg);
}
#who-we-are #company .pics.map .map {
	transform: rotate(0deg);
}
#who-we-are #company .pics .map iframe {
	position: relative;
	width: 60vw;
	max-width: 1000px;
	min-width: 300px;
	height: 60vw;
	max-height: 1000px;
	min-height: 300px;
	border-radius: 50%;
	aspect-ratio: 1 / 1;
	border: 0;
	overflow: hidden;
}
#who-we-are #company {
	position: relative;
	padding-top: calc(22rem + 1vw);
	padding-bottom: 6vw;
	background-color: var(--color-light-blue);
	color: var(--color-white);
}
#who-we-are #company .subtitle {
	font-size: var(--font-size-subtitle3);
	margin-bottom: .75em;
}
#who-we-are #company .info {
	padding-bottom: 5vw;
	font-size: var(--font-size-info);
	font-family: sans-serif;
}
#who-we-are #company .info dt {
	font-size: var(--font-size-info-dt);
	font-weight: 400;
	padding-bottom: .5em;
	font-family: var(--font-family-en);
}
#who-we-are #company .info dd {
	padding-bottom: 1em;
}
#who-we-are #office {
	padding: var(--header-height) var(--right-space) 0 var(--left-space);
	background-color: var(--color-light-blue);
	color: var(--color-white);
}
#who-we-are #office .catch-ja {
	padding-bottom: 3em;
	font-size: var(--font-size-catch-ja2);
}
#who-we-are #office .park-swiper {
	width: 100vw;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
}
#who-we-are #office .park-swiper ul li {
	width: 100vw;
	height: 30vw;
	min-height: 260px;
	aspect-ratio: 10 / 3;
	overflow: hidden;
}
#who-we-are #office .park-swiper ul li img {
	width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 50%;
}
#who-we-are #history {
	background-color: var(--color-light-blue);
	color: var(--color-white);
	padding: 0;
	width: 100%;
	overflow-x: hidden;
}
#who-we-are #history .company-container {
	display: flex;
	align-items: end;
	min-height: 100vw; /* 横幅と同じ高さを基本に、内容が収まらないときは下に伸ばす（上が切れないように） */
	padding-bottom: 15%;
	overflow: hidden;
}
#who-we-are #history .company-container h3 {
	font-size: var(--font-size-subtitle3);
	font-family: var(--font-family-en);
}
/* 見出しの日本語は、白の小さな文字で添える */
#who-we-are #history .company-container h3 span {
	font-size: max(.3em, 13px);
	font-family: sans-serif;
	color: var(--color-white);
	display: block;
}
#who-we-are #history .company-history {
	width: 90%;
	padding: var(--left-space);
}
#who-we-are #history .company-history::before {
	content:"";
	width: 120%;
	max-width: 1600px;
	aspect-ratio: 1;
	position: absolute;
	top: 50%;
	left: 50%;
	translate: calc(-50% + -15%) -50%;
	background-color: rgba(37, 89, 144, .28); /* サイトの青（--color-blue）の半透明 */
	mask:url(#hexMask);
	-webkit-mask:url(#hexMask);
	mask-size:100% 100%;
	-webkit-mask-size:100% 100%;
	mask-repeat:no-repeat;
	-webkit-mask-repeat:no-repeat;
	animation:
		squareAni 4s linear infinite;
	transform-origin: center;
	animation-duration: 120s; /* ほとんど止まって見えるくらい、ごくゆっくり回す */
}
@keyframes squareAni {
	0% { rotate:70deg; }
	50% { rotate:250deg; }
	100% { rotate: 430deg; }
}
#who-we-are #history .company-history h3 {
	margin-top: 80px;
	margin-bottom: 40px;
	color: var(--color-blue);
	font-weight: bold;
}
#who-we-are #history .company-history h3 span {
	margin-top: 8px;
	font-weight: normal;
}
#who-we-are #history .company-history ul {
	z-index: 1;
}
#who-we-are #history .company-history li + li {
	margin-top: .45em;
}
#who-we-are #history .company-history li p {
	font-size: var(--font-size-info);
	display: grid;
	grid-template-columns: 3.4em 1fr;
	gap: 1.2em;
	line-height: 1.7;
	letter-spacing: .03em;
}
#who-we-are #history .company-history li p span {
	display: block;
	font-family: var(--font-family-en);
	font-weight: 500;
	color: var(--color-blue);
}
#who-we-are #history .company-keyclients {
	width: 38%;
	margin-left: -28%;
	position: relative;
	padding: 50px;
}
#who-we-are #history .company-keyclients::before {
	content:"";
	width: 140%;
	max-width: 800px;
	aspect-ratio: 1;
	position: absolute;
	top:50%;
	left: 50%;
	translate: -50% -50%;
	background-color: rgba(255, 255, 255, .22);
	mask:url(#hexMask);
	-webkit-mask:url(#hexMask);
	mask-size:100% 100%;
	-webkit-mask-size:100% 100%;
	mask-repeat:no-repeat;
	-webkit-mask-repeat:no-repeat;
	animation:
		squareAni 4s linear infinite;
	transform-origin: center;
	animation-duration: 180s;
	animation-delay: -1s;
}
#who-we-are #history .company-keyclients h3 {
	margin-top: 20px;
	margin-bottom: 40px;
	color: var(--color-blue);
	font-weight: bold;
}
#who-we-are #history .company-keyclients h3 span {
	margin-top: 8px;
	font-weight: normal;
}
#who-we-are #history .company-keyclients li {
	font-size: var(--font-size-info);
	color: var(--color-white);
	margin-bottom: .35em;
	line-height: 1.7;
	letter-spacing: .03em;
}



#who-we-are #gallery {
	background-color: var(--color-light-blue);
}
#who-we-are #gallery .subtitle {
	margin-bottom: 1.5em;
	font-size: var(--font-size-subtitle4);
}




/* =========================================
GALLERY
========================================= */
#who-we-are #gallery {
	padding: 8vw 0 calc(2rem + 5vw) 0;
}
#who-we-are #gallery .subtitle {
	margin-bottom: 1.5em;
	font-size: var(--font-size-subtitle4);
	padding: 0 var(--right-space) 0 var(--left-space);
}
#who-we-are #who-we-are .gallery{
  position:relative;
  width:100%;
  margin:auto;
}

/* =========================================
VIEW
========================================= */

#who-we-are .galleryArea{
  width:100%;
  overflow-x:hidden;
}

/* =========================================
LIST
========================================= */

#who-we-are .gallery_list{
  display:flex;
  gap:20px;
  margin:0;
  padding:0;
	padding-left: 9vw;
  list-style:none;
  transition:transform .6s cubic-bezier(.22,1,.36,1);
  will-change:transform;
}

/* =========================================
ITEM
========================================= */

#who-we-are .gallery_item{
  flex:0 0 calc((100% - 40px) / 3.5);
	aspect-ratio: 1;
  border-radius:22.5%;
  overflow:hidden;
  position:relative;
}
#who-we-are .gallery_list li:nth-of-type(3).gallery_item{
  border-radius:50%;
}

/* =========================================
CARD
========================================= */

#who-we-are .gallery_card{
  width:100%;
	aspect-ratio: 1;
	object-fit: cover;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:
    transform .5s ease,
    opacity .5s ease;
}

/* =========================================
BUTTON
========================================= */

#who-we-are .gallery_button{
  position:absolute;
  top:50%;
	translate: 0 calc(-50% + 0.4rem);
  width:calc(2em + 1vw);
	aspect-ratio: 1;
  border:none;
  border-radius:50%;
  background:var(--color-yellow);
  color:var(--color-blue);
  font-size:2rem;
  cursor:pointer;
	text-align: center;
  z-index:10;
  transition:
    opacity .3s ease,
    visibility .3s ease,
    transform .3s ease;
}

#who-we-are .gallery_button:hover{
  transform:
    scale(1.08);
}

#who-we-are .gallery_button.is-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

#who-we-are .gallery_button.-prev{
  left:2vw;
}

#who-we-are .gallery_button.-next{
  right:2vw;
}

/* =========================================
LEFT ANIMATION
========================================= */

#who-we-are .gallery_item.is-left .gallery_card{
  animation:leftAnim 1s cubic-bezier(.22,1,.36,1);
}

@keyframes leftAnim{
	0% {
		transform: rotate(0deg);
		transform-origin: right top;
	}
	36% {
		transform: rotate(4deg);
	}
	52% {
		transform: rotate(-3deg);
	}
	68% {
		transform: rotate(2deg);
	}
	84% {
		transform: rotate(-1deg);
	}
	92% {
		transform: rotate(.5deg);
	}
	100% {
		transform: rotate(0deg);
	}
}

/* =========================================
RIGHT ANIMATION
========================================= */

#who-we-are .gallery_item.is-right {
  animation:rightAnim 1s cubic-bezier(.22,1,.36,1);
}

@keyframes rightAnim{
	0% {
		transform: rotate(0deg);
		transform-origin: left top;
	}
	36% {
		transform: rotate(-4deg);
	}
	52% {
		transform: rotate(3deg);
	}
	68% {
		transform: rotate(-2deg);
	}
	84% {
		transform: rotate(1deg);
	}
	92% {
		transform: rotate(-.5deg);
	}
	100% {
		transform: rotate(0deg);
	}
}

/* =========================================
RESPONSIVE
========================================= */

@media (max-width:900px){
  #who-we-are .gallery_item{
    flex:0 0 calc((100% - 20px) / 2.5);
  }

}

@media (max-width:600px){
  #who-we-are .gallery_item{
    flex:0 0 calc((100% - 20px) / 1.5);
  }

}







/*#who-we-are #gallery .gallery-swiper {
	width: 100vw;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	overflow: visible;
}
#who-we-are #gallery .gallery-swiper button {
	display: block;
	position: absolute;
	width: calc(2em + 1vw);
	height: calc(2em + 1vw);
	border: none;
	background-color: var(--color-yellow);
	border-radius: 50%;
	z-index: 1;
	text-align: center;
	font-size: 2rem;
	color: var(--color-blue);
	cursor: pointer;
}
#who-we-are #gallery .gallery-swiper button::after {
	display: none;
}
#who-we-are #gallery .gallery-swiper .prev {
	left: 2vw;
}
#who-we-are #gallery .gallery-swiper .next {
	right: 2vw;
}
#who-we-are #gallery .gallery-swiper .next.swiper-button-disabled,
#who-we-are #gallery .gallery-swiper .prev.swiper-button-disabled {
	display: none;
}
#who-we-are #gallery .gallery-swiper ul {
	will-change: transform;
	overscroll-behavior: none;
}
#who-we-are #gallery .gallery-swiper ul li {
	width: 25vw;
	min-width: 220px;
	min-height: 220px;
	aspect-ratio: 1 / 1;
	margin: 2vw 1.5vw;
	border-radius: 22.5%;
	overflow: hidden;
	transform-origin: center top;
	transition: transform .6s ease-in-out;
}
#who-we-are #gallery .gallery-swiper ul li:first-child {
	margin-left: 9vw;
}
#who-we-are #gallery .gallery-swiper ul li.circle {
	border-radius: 50%;
}
#who-we-are #gallery .gallery-swiper ul li img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}*/






#who-we-are footer {
	background-color: var(--color-light-blue);
}
#who-we-are footer .inner {
	background-color: var(--color-yellow);
	color: var(--color-dark-gray);
}
#who-we-are footer .copy .to-policy a::after {
	background-color: var(--color-blue);
}
#who-we-are footer .link a svg polyline {
	stroke: var(--color-dark-gray);
}
#who-we-are footer .link {
	border-bottom: 2px solid var(--color-dark-gray);
}

/* What we do */
#what-we-do #commitment {
	position: relative;
	padding: calc(var(--header-height) + 10vw) var(--right-space) 10vw var(--left-space);
}
#what-we-do #commitment .title {
	font-size: var(--font-size-subtitle);
}
#what-we-do {
	background-color: var(--color-light-gray);
}
#what-we-do main > section {
	padding: 0;
}
#what-we-do #commitment .checkmark {
	position: absolute;
	left: 50%;
	width: 150vw;
	max-width: 2000px;
	transform: translate(-40%, -55%);
}
#what-we-do #commitment .checkmark line {
	stroke-width: 14%;
	stroke-dasharray: 370;
	stroke-dashoffset: 370;
	animation: line-animation .2s linear forwards .8s;
}
#what-we-do #commitment .checkmark line.line-1 {
	animation: line-animation .2s linear forwards 1s;
}
@keyframes line-animation {
	0% {
		stroke-dashoffset: 360;
	}
	100% {
		stroke-dashoffset: 0;
	}
}
#what-we-do #commitment .catch-ja {
	width: 100%;
	margin-bottom: 1.5em;
	font-size: var(--font-size-catch-ja);
	line-height: 2;
}
#what-we-do #commitment .catch-en {
	font-size: var(--font-size-catch-en);
	font-family: var(--font-family-en);
	line-height: 1.65;
}
#what-we-do #commitment .clients-logo {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	margin-top: 5em;
}
#what-we-do #commitment .clients-logo li {
	margin-bottom: 2em;
	opacity: 0;
	translate: 0 20px;
	transition: .2s;
}
#what-we-do #commitment .clients-logo.in li {
	animation: logoFade 1s forwards;
}
@keyframes logoFade {
	0% { opacity: 0;
	translate: 0 20px;}
	100% { opacity: 1;
	translate: 0 0; }
}
#what-we-do #commitment .clients-logo li img {
	width: 100%;
}
#what-we-do #commitment .clients-logo li:first-of-type {
	width: 13%;
	margin-right: 5%;
	margin-top: 10px;
}
#what-we-do #commitment .clients-logo li:nth-of-type(2) {
	width: 12%;
	margin-right: 5%;
	animation-delay: .2s;
}
#what-we-do #commitment .clients-logo li:nth-of-type(3) {
	width: 11%;
	margin-right: 5%;
	animation-delay: .4s;
}
#what-we-do #commitment .clients-logo li:nth-of-type(4) {
	width: 11%;
	margin-right: 5%;
	animation-delay: .5s;
}
#what-we-do #commitment .clients-logo li:nth-of-type(5) {
	width: 18%;
	animation-delay: .55s;
}
#what-we-do #commitment .clients-logo li:nth-of-type(6) {
	width: 20%;
	margin-right: 5%;
	animation-delay: .6s;
}
#what-we-do #commitment .clients-logo li:nth-of-type(7) {
	width: 28%;
	margin-right: 5%;
	animation-delay: .65s;
}
#what-we-do #commitment .clients-logo li:nth-of-type(8) {
	width: 38%;
	animation-delay: .7s;
}
/* ロゴは各行とも中央揃え。間隔は column-gap で指定 */
#what-we-do #commitment .clients-logo {
	justify-content: center;
	column-gap: 5%;
}
#what-we-do #commitment .clients-logo li:nth-of-type(n) {
	margin-right: 0;
}
/* PC ではロゴ全体を一回り小さくして中央に配置し、間隔を広めに（並び・比率はそのまま） */
@media screen and (min-width: 769px) {
	#what-we-do #commitment .clients-logo {
		width: 80%;
		margin-left: auto;
		margin-right: auto;
		column-gap: 6%; /* 2行目（3社で幅86%）が1行に収まる上限は 7% */
	}
}


/*

#what-we-do .projects {
	padding-top: 12rem;
	padding-bottom: 12rem;
}
#what-we-do .projects .wrapper {
	display: flex;
	flex-wrap: nowrap;
	flex-direction: row-reverse;
}
#what-we-do .projects .title {
	padding: 0 9vw .5em;
}
#what-we-do .projects .subtitle {
	margin-bottom: 0;
    padding: 0 var(--right-space) 0 var(--left-space);
}
#what-we-do .projects .subtitle {
	font-size:var(--font-size-subtitle2);
}
#what-we-do .projects .catch-ja {
	width: 100%;
	margin-bottom: 1.5em;
	font-size: var(--font-size-catch-ja3);
	line-height: 2;
	white-space: nowrap;
}
#what-we-do .projects .catch-en {
	font-size: var(--font-size-catch-en);
	font-family: var(--font-family-en);
	line-height: 1.65;
}
#what-we-do .projects .works {
	width: 55%;
	height: 50vw;
}
#what-we-do .projects .works img {
	width: 100%;
}
#what-we-do .projects .works button {
	position: absolute;
	top: 50vw;
	left: 40px;
	display: block;
	width: 36px;
	height: 36px;
	border: none;
	outline: none;
	border-radius: 50%;
	background-color: transparent;
	cursor: pointer;
	text-align: center;
	font-size: 30px;
	color: var(--color-dark-gray);
	z-index: 1;
}
#what-we-do .projects .works button.play-button,
#what-we-do .projects .works.on button.pause-button {
	display: block;
}
#what-we-do .projects .works.on button.play-button,
#what-we-do .projects .works button.pause-button {
	display: none;
}
#what-we-do .projects .works figure figcaption {
	width: 100%;
	font-size: var(--font-size-ftcopy);
	color: var(--color-dark-gray);
	line-height: 1.5;
}
#what-we-do .projects .content {
	width: 45%;
}
#what-we-do .projects .content .catch-ja {
	padding-top: 2em;
}
#what-we-do #creative-projects {
	min-height: calc(60vw + 24rem);
}
#what-we-do #creative-projects .subtitle {
	text-align: right;
}
#what-we-do #creative-projects .content {
	width: 50%;
	padding-left: 1vw;
	padding-right: var(--right-space);
}
#what-we-do #creative-projects .works {
	padding: 1vw 2vw 0 0;
	overflow: visible;
	margin-top: 7em;
}
#what-we-do #creative-projects .works figure {
	position: absolute;
	width: 45vw;
	top: 0;
	left: 10%;
	max-width: 1200px;
	min-width: 360px;
	height: 45vw;
	max-height: 1200px;
	min-height: 360px;
	border: none;
	overflow: visible;
}
#what-we-do #creative-projects .works figure img {
	position: absolute;
	width: 100%;
	height: 100%;
	transform: rotate(90deg) scale(0);
	transition: transform .8s ease-in-out;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	overflow: hidden;
	object-fit: cover;
}
#what-we-do #creative-projects .works figure.active img {
	transform: rotate(0deg) scale(1);
}
#what-we-do #creative-projects .works figure figcaption {
	position: absolute;
	width: 100%;
	bottom: -1em;
	left: calc(100% - var(--right-space));
	filter: blur(1.5rem);
	opacity: 0;
	transition-property: filter, opacity;
	transition-duration: .8s, .8s;
	transition-delay: .5s, .5s;
}
#what-we-do #creative-projects .works figure.active figcaption {
	opacity: 1;
	filter: blur(0rem);
}
#what-we-do #web-projects {
	min-height: calc(60vw + 24rem);
}
#what-we-do #web-projects .content {
	padding-left: var(--left-space);
}
#what-we-do #web-projects .wrapper {
	flex-direction: row;
}
#what-we-do #web-projects .works {
	position: relative;
	overflow: visible;
}
#what-we-do #web-projects .works figure {
	position: absolute;
	width: 50vw;
	height: 45vw;
	top: 0;
	right: -1vw;
	min-width: 330px;
	perspective: 1000px;
	transform-style: preserve-3d;
	overflow: visible;
	opacity: 0;
}
#what-we-do #web-projects .works figure.active {
	opacity: 1;
}
#what-we-do #web-projects .works figure img {
	position: absolute;
	width: 100%;
	height: 100%;
	margin-right: -5vw;
	margin-top: 6em;
	transition: transform .6s ease-in-out;
	backface-visibility: hidden;
	transform-origin: right center;
	border-radius: 9999px 0 0 9999px;
	overflow: hidden;
	object-fit: cover;
	vertical-align: bottom;
}
#what-we-do #web-projects .works figure img:first-of-type {
	transform: none;
}
#what-we-do #web-projects .works figure img:last-of-type {
	transform: scaleX(0) rotateY(180deg);
}
#what-we-do #web-projects .works figure.active img:first-of-type {
	transform: scaleX(0) rotateY(180deg);
}
#what-we-do #web-projects .works figure.active img:last-of-type {
	transform: scaleX(1) rotateY(360deg);
}
#what-we-do #web-projects .works figure figcaption {
	position: absolute;
	bottom: 0;
	right: 82%;
	filter: blur(1.5rem);
	opacity: 0;
	transition-property: filter, opacity;
	transition-duration: .8s, .8s;
	transition-delay: .5s, .5s;
}
#what-we-do #web-projects .works figure.active figcaption {
	opacity: 1;
	filter: blur(0rem);
}
#what-we-do #web-projects .works button {
	top: calc(50vw + 30px);
	left: auto;
	right: 40px;
}
#what-we-do #development-projects {
	min-height: calc(60vw + 24rem);
}
#what-we-do #development-projects .subtitle {
	text-align: right;
}
#what-we-do #development-projects .subtitle {
	margin-bottom: .5em !important;
}
#what-we-do #development-projects .content {
	padding-left: 1vw;
	padding-right: var(--right-space);
}
#what-we-do #development-projects .works {
	position: relative;
	overflow: visible;
	margin-top: 8em;
}
#what-we-do #development-projects .works figure {
	position: absolute;
	width: 56vw;
	height: 40.8vw;
	min-width: 330px;
	min-height: 370px;
	perspective: 1000px;
	transform-style: preserve-3d;
	transform: translateX(-10%);
	overflow: visible;
	opacity: 0;
}
#what-we-do #development-projects .works figure.active {
	opacity: 1;
}
#what-we-do #development-projects .works figure img {
	position: absolute;
	width: 100%;
	transition: transform 1s ease-in-out;
	backface-visibility: hidden;
	transform-origin: left top;
	border-radius: 0 8vw 8vw 0;
	overflow: hidden;
	object-fit: cover;
	vertical-align: bottom;
}
#what-we-do #development-projects .works figure img:first-of-type {
	transform: none;
}
#what-we-do #development-projects .works figure img:last-of-type {
	transform: rotateX(-180deg);
}
#what-we-do #development-projects .works figure.active img:first-of-type {
	transform: rotateX(-180deg);
}
#what-we-do #development-projects .works figure.active img:last-of-type {
	transform: rotateX(0deg);
}
#what-we-do #development-projects .works figure figcaption {
	position: absolute;
	width: 69%;
	bottom: 0;
	left: 104%;
	padding-right: var(--right-space);
	filter: blur(1.5rem);
	opacity: 0;
	transition-property: filter, opacity;
	transition-duration: .8s, .8s;
	transition-delay: .5s, .5s;
}
*/
#what-we-do #development-projects .works figure.active figcaption {
	opacity: 1;
	filter: blur(0rem);
}
#what-we-do footer .inner {
	background-color: var(--color-blue);
}


/*-------what-we-do調整-------*/

  /* =========================================
  SECTION
  ========================================= */
	#what-we-do main section.pj {
		padding: 4rem 0 12rem;
	}
  #what-we-do .sliderSection{
    width:min(1800px, 100%);
    /* ブロック間の余白: スマホ 96px 〜 PC 最大 192px（画面幅に合わせて変化） */
    margin:0 auto clamp(9.6rem, 13.2vw, 19.2rem);
  }
  #what-we-do .sliderSection:last-of-type{
		margin-bottom: 0;
  }
  /* =========================================
  GRID
  ========================================= */
  #what-we-do .sliderWrap{
    display:grid;
    grid-template-columns:
      minmax(300px, 55%)
      minmax(280px, 45%);
    column-gap:2%;
    align-items:start;
  }
	#what-we-do .sectionTitle {
		grid-area: ttl;
	}
	#what-we-do .sectionText {
		grid-area: txt;
	}
	#what-we-do .slider {
		grid-area: img;
		align-items: center;
	}
	#what-we-do .textArea {
		grid-area: imgtxt;
		margin-top: auto;
	}
	.toggleButton {
		grid-area: btn;
	}

	#what-we-do .creative-pj .sliderWrap{
    grid-template-columns:
      minmax(300px, 55%)
      minmax(280px, 45%);
		grid-template-areas: 
			"ttl ttl"
			"img txt"
			"img imgtxt"
			"btn btn";
  }

	#what-we-do .web-pj .sliderWrap{
    grid-template-columns:
      minmax(280px, 45%)
      minmax(300px, 55%);
		grid-template-areas: 
			"ttl ttl"
			"txt img"
			"imgtxt img"
			"btn btn";
  }

	#what-we-do .dev-pj .sliderWrap{
    grid-template-columns:
      minmax(300px, 55%)
      minmax(280px, 45%);
		grid-template-areas: 
			"ttl ttl"
			"img txt"
			"img imgtxt"
			"btn btn";
  }
  /* =========================================
  SLIDER
  ========================================= */
  #what-we-do .slider{
    position:relative;
    width:100%;
    aspect-ratio:7 / 4.5;
    overflow:hidden;
  }
  #what-we-do .slide{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    opacity:0;
    pointer-events:none;
  }
  #what-we-do .slide.active{
    opacity:1;
  }

	#what-we-do .creative-pj .slider{
		width: auto;
		min-width: 50vw;
		max-width: 700px;
		height: 100%;
    aspect-ratio:1;
		border-radius: 50%;
		justify-self: end;
		background: radial-gradient(#fff 0%,#fff 1%,#000 5%);
  }

	#what-we-do .web-pj .slider{
		width: auto;
		min-width: 50vw;
		max-width: 700px;
		height: 100%;
		overflow:hidden;
  }

	#what-we-do .dev-pj .slider{
		width: auto;
		min-width: 50vw;
		max-width: 700px;
		height: 100%;
		overflow:hidden;
		justify-self: end;
		border-radius: 0 50%;
		aspect-ratio: 4/3;
  }

  /* =========================================
  FIXED TITLE
  ========================================= */
  #what-we-do .sectionTitle{
		padding: 0 var(--right-space) 0 var(--left-space);
  }
  #what-we-do .sectionTitle .subtitle{
		margin-bottom: 0;
		font-size: var(--font-size-subtitle2);
  }
	#what-we-do .creative-pj .sectionTitle {
		text-align: right;
	}
	#what-we-do .web-pj .sectionTitle {
		margin-bottom: 15px;
	}
	#what-we-do .dev-pj .sectionTitle {
		text-align: right;
		margin-bottom: 15px;
	}
  /* =========================================
  FIXED TEXT
  ========================================= */

	#what-we-do .creative-pj .sectionText {
		padding-right: var(--right-space);
	}
	#what-we-do .web-pj .sectionText {
		padding-left: var(--left-space);
	}
	#what-we-do .dev-pj .sectionText {
		padding-right: var(--right-space);
	}

	#what-we-do .sectionText .catch-ja{
	margin-top: 1.5em;
	margin-bottom: 1.5em;
	font-size: var(--font-size-catch-ja3);
	line-height: 2;
  }
	#what-we-do .sectionText .catch-en{
	font-size: var(--font-size-catch-en);
	font-family: var(--font-family-en);
	line-height: 1.65;
	margin-bottom: 1.5em;
  }

  /* =========================================
  TEXT AREA
  ========================================= */
	#what-we-do .creative-pj .textArea {
		padding-right: var(--right-space);
		margin-left: -20%;
	}
	#what-we-do .web-pj .textArea {
		padding-left: var(--left-space);
	}
	#what-we-do .dev-pj .textArea {
		padding-right: var(--right-space);
	}

  #what-we-do .textArea{
    transition:opacity .4s;
		min-height: 8rem;
		align-content: flex-end;
  }
  #what-we-do .description{
    line-height:2;
		font-size: var(--font-size-ftcopy);
		color: var(--color-dark-gray);
		line-height: 1.5;
  }
  #what-we-do .description a{
    display:inline-block;
    margin-top:20px;
    text-decoration:underline;
  }
  /* =========================================
  BUTTON
  ========================================= */
  #what-we-do .toggleButton{
    position:relative;
    width:50px;
		aspect-ratio: 1;
    border:none;
    cursor:pointer;
    overflow:hidden;
    display:flex;
    justify-content:center;
    align-items:center;
  }
	#what-we-do .creative-pj .toggleButton {
		margin-top: -50px;
		margin-left: 2%;
	}
	#what-we-do .web-pj .toggleButton {
		margin-top: 15px;
		margin-left: auto;
		margin-right: 2%;
	}
	#what-we-do .dev-pj .toggleButton {
		margin-top: 15px;
		margin-right: auto;
		margin-left: 2%;
	}
  /* =========================================
  PROGRESS
  ========================================= */
  #what-we-do .progressSvg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
		rotate: -90deg;
		opacity: .6;
  }
  #what-we-do .progressBar{
    fill:none;
    stroke:var(--color-dark-gray);
    stroke-width:6;
		stroke-linecap:round;
    stroke-dasharray:380;
    stroke-dashoffset:380;
  }
  /* =========================================
  ICON
  ========================================= */
  #what-we-do .iconWrap{
    position:relative;
    width:24px;
    height:24px;
    z-index:2;
  }
  #what-we-do .icon{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    fill:var(--color-dark-gray);
		color: var(--color-dark-gray);
    opacity:0;
    transform:scale(.8);
    transition:
      opacity .3s,
      transform .3s;
  }
  #what-we-do .icon.active{
    opacity:1;
    transform:scale(1);
  }
  /* =========================================
  shutter
  ========================================= */
  #what-we-do .shutter.enter{
    animation:shutterIn .4s linear forwards;
  }
  #what-we-do .shutter.leave{
    animation:shutterOut .4s linear forwards;
  }
  @keyframes shutterIn{
    0%{
			clip-path: polygon(50% 50%, 50% 50%,50% 50%,50% 50%,50% 50%,50% 50%);
			scale:0.6;
			transform: rotate(-60deg);
    }
    10%{
			clip-path: polygon(50% 50%, 50% 50%,50% 50%,50% 50%,50% 50%,50% 50%);
			scale:0.6;
			transform: rotate(-60deg);
    }
    100%{
			scale:1;
			transform: rotate(0);
			clip-path:polygon(
				93.3% 25%,
				93.3% 75%,
				50% 100%,
				6.7% 75%,
				6.7% 25%,
				50% 0%
			);
    }
  }
  @keyframes shutterOut{

		0% {filter: brightness(5);}
    5%{
			scale:1;
			transform: rotate(0);
			clip-path:polygon(
				93.3% 25%,
				93.3% 75%,
				50% 100%,
				6.7% 75%,
				6.7% 25%,
				50% 0%
			);
    }
    90%{
			scale:0.6;
			transform: rotate(60deg);
			clip-path: polygon(50% 50%, 50% 50%,50% 50%,50% 50%,50% 50%,50% 50%);
    }
    100%{
			scale:0.6;
			transform: rotate(60deg);
			clip-path: polygon(50% 50%, 50% 50%,50% 50%,50% 50%,50% 50%,50% 50%);
    }
  }
  /* =========================================
  throw-in
  ========================================= */
  #what-we-do .throw-in.enter{
    animation:throwIn 2s ease-in-out forwards;
  }
  #what-we-do .throw-in.leave{
    animation:throwOut 0.5s linear forwards;
  }

  @keyframes throwIn{
    0%{
      transform: rotateY('180deg');
			scale: .4;
			translate: -20% -30%;
			opacity: 0;
			clip-path:polygon(
				0 50%,
				10% 45%,
				10% 55%,
				0 50%
			);
    }
		1% {
			opacity: 1;
		}
		10% {
      transform: rotateY('90deg');
			scale: .2;
			clip-path:polygon(
				20% 30%,
				20% 30%,
				20% 60%,
				20% 60%
			);
		}
		11% {
      transform: rotateY('120deg');
			scale: .2;
			clip-path:polygon(
				20% 30%,
				20% 40%,
				20% 50%,
				20% 60%
			);
		}
		20% {
			filter: brightness(0.5);
			translate: 0 0;
			scale: 1;
			clip-path:polygon(
				30% 40%,
				70% 40%,
				70% 60%,
				30% 60%
			);
		}
		45% {
			filter: brightness(0.5);
			translate: 0 0;
			scale: 1;
			clip-path:polygon(
				0% 40%,
				100% 40%,
				100% 60%,
				0% 60%
			);
		}
		80% {
      transform: rotateY(0);
			scale: 1;
			translate: 0 0;
			filter: brightness(1);
			clip-path:polygon(
				0 0,
				100% 0,
				100% 100%,
				0% 100%
			);
		}
  }
  @keyframes throwOut{
		0% {
      transform: rotateY(0);
			scale: 1;
			translate: 0 0;
			clip-path:polygon(
				2% 0,
				100% 3%,
				96% 100%,
				0% 96%
			);
		}
		10% {
			filter: brightness(1) blur(0);
			transform-origin: right center;
		}
		80% {
      transform: rotateY(90deg);
			scale: .5;
			translate: 0 0;
			opacity: 1;
			clip-path:polygon(
				90% 60%,
				90% 0,
				80% 100%,
				80% 70%
			);
		}
		81% {
      transform: rotateY(90deg);
			scale: .5;
			translate: 200% 30%;
			opacity: 1;
			clip-path:polygon(
				60% 0,
				60% 60%,
				65% 70%,
				65% 100%
			);
		}
		100% {
      transform: rotateY(180deg);
			scale: .5;
			translate: 50% 30%;
			filter: brightness(3) blur(1);
			opacity: 0;
			clip-path:polygon(
				66% 0,
				100% 50%,
				100% 80%,
				55% 100%
			);
		}
  }
  /* =========================================
  rotate-img
  ========================================= */
  #what-we-do .rotate-img.enter{
    animation:rotateImgIn .5s ease-out forwards;
  }
  #what-we-do .rotate-img.leave{
    animation:rotateImgOut .5s ease-in-out forwards;
  }
  @keyframes rotateImgIn{
    from{
      scale: 2;
			transform: rotateX(-90deg) rotateZ(20deg);
			filter: brightness(3);
			clip-path:polygon(
				20% 50%,
				40% 50%,
				60% 50%,
				80% 50%
			);
    }
    to{
      scale: 1;
			transform: rotateX(0) rotateZ(0);
			filter: brightness(1);
			clip-path:polygon(
				0 100%,
				0 0,
				100% 0,
				100% 100%
			);
    }
  }
  @keyframes rotateImgOut{
    from{
			scale: 1;
			transform: rotateX(0) rotateZ(0);;
			filter: brightness(1);
			clip-path:polygon(
				0 100%,
				0 0,
				100% 0,
				100% 100%
			);
    }
    to{
      scale: 2;
			transform: rotateX(-90deg) rotateZ(-20deg);;
			filter: brightness(3);
			clip-path:polygon(
				20% 50%,
				40% 50%,
				60% 50%,
				80% 50%
			);
    }
  }
  /* =========================================
  SP
  ========================================= */
  @media (max-width:768px){
		#what-we-do .dev-pj .sectionTitle, #what-we-do .web-pj .sectionTitle {
			margin-bottom: 0;
		}
		#what-we-do .sectionText .catch-ja {
			margin: .8em auto 1em;
		}
		#what-we-do .sectionText .catch-en {
			padding-left: calc(var(--left-space) * 1.5);
		}
    .sliderWrap{
			row-gap:10px;
    }

		#what-we-do .creative-pj .sliderWrap, #what-we-do .web-pj .sliderWrap, #what-we-do .dev-pj .sliderWrap{
			grid-template-columns:50px 1fr;
			grid-template-areas: 
				"ttl ttl" "txt txt" "img img" "btn imgtxt";
		}
		#what-we-do .creative-pj .slider {
			width: 90%;
			height: auto;
			justify-self: center;
		}
		#what-we-do .web-pj .slider {
			width: 90%;
			height: auto;
			justify-self: center;
		}

		#what-we-do .dev-pj .slider {
			width: 90%;
			height: auto;
			justify-self: center;
		}
		#what-we-do .creative-pj .sectionTitle, #what-we-do .dev-pj .sectionTitle {
			text-align: left;
		}
		#what-we-do .creative-pj .sectionText, #what-we-do .web-pj .sectionText, #what-we-do .dev-pj .sectionText{
			padding: 0 var(--right-space) 0 var(--left-space);
		}
		#what-we-do .creative-pj .textArea, #what-we-do .web-pj .textArea, #what-we-do .dev-pj .textArea  {
			padding: 5px var(--right-space) 0 var(--left-space);
			margin-left: auto;
			align-content: start;
		}

		#what-we-do .creative-pj .toggleButton, #what-we-do .web-pj .toggleButton, #what-we-do .dev-pj .toggleButton {
			margin: 0 auto 0 20px;
		}
  }
  /* =========================================
  REDUCED MOTION
  ========================================= */
  @media (prefers-reduced-motion: reduce){
    #what-we-do .slide{
      animation:none !important;
      transition:none !important;
    }
  }
  /* =========================================
  CONTROLS（再生・停止 ＋ ‹ 2 / 6 ›）
  ※ .sliderControls は main.js で作成し、.toggleButton をこの中に移す
  ========================================= */
  #what-we-do .sliderControls{
    grid-area:btn;
    display:flex;
    align-items:center;
    gap:8px;
    width:fit-content;
  }
  #what-we-do .sliderControls .toggleButton{
    margin:0;
  }
	#what-we-do .creative-pj .sliderControls {
		margin-top: -20px;
		margin-left: 2%;
	}
	/* Creative の説明文は画像に重ねすぎないよう、少し右上に（PC のみ） */
	@media (min-width:769px){
		#what-we-do .creative-pj .textArea {
			margin-left: -12%;
			margin-bottom: 40px;
		}
	}
	#what-we-do .web-pj .sliderControls {
		margin-top: 15px;
		margin-right: 2%;
		justify-self: end;
	}
	#what-we-do .dev-pj .sliderControls {
		margin-top: 15px;
		margin-left: 2%;
	}
  #what-we-do .navButton{
    width:40px;
    aspect-ratio:1;
    padding:0;
    border:none;
    border-radius:50%;
    background:none;
    color:var(--color-dark-gray);
    font-size:18px;
    cursor:pointer;
    display:flex;
    justify-content:center;
    align-items:center;
    transition:background-color .2s;
  }
  #what-we-do .navButton:hover{
    background-color:var(--color-medium-gray);
  }
  #what-we-do .navButton:focus-visible,
  #what-we-do .slider:focus-visible{
    outline:2px solid var(--color-blue);
    outline-offset:2px;
  }
  #what-we-do .slideCounter{
    min-width:3.5em;
    text-align:center;
    font-size:var(--font-size-ftcopy);
    color:var(--color-dark-gray);
    font-variant-numeric:tabular-nums;
  }
  #what-we-do .slider{
    touch-action:pan-y; /* 縦スクロールはそのまま、横スワイプで切り替え */
  }
  @media (max-width:768px){
		#what-we-do .creative-pj .sliderWrap, #what-we-do .web-pj .sliderWrap, #what-we-do .dev-pj .sliderWrap{
			grid-template-columns:1fr;
			grid-template-areas:
				"ttl" "txt" "img" "btn" "imgtxt";
		}
		#what-we-do .creative-pj .sliderControls, #what-we-do .web-pj .sliderControls, #what-we-do .dev-pj .sliderControls {
			margin: 0 auto 0 20px;
			justify-self: start;
		}
  }



/*-------what-we-do調整 end-------*/







/*-------project-details-------*/




/*-------project-details end-------*/








/* Privacy Policy */
#privacy-policy {
	color: var(--color-light-black);
}
#privacy-policy main {
	padding-bottom: 10vw;
}
#privacy-policy main > section {
	padding: calc(var(--header-height) + 10vw) var(--right-space) 8vw var(--left-space);
}
#privacy-policy main p {
	margin-top: .5em;
}
#privacy-policy main p,
#privacy-policy main li {
	font-size: var(--font-size-privacy-li);
	line-height: 1.75;
}
#privacy-policy .catch {
	line-height: 2;
}
#privacy-policy .footnote {
	text-align: right;
}
#privacy-policy #policy {
    padding: calc(var(--header-height) + 10vw) var(--right-space) 15vw var(--left-space);
}
#privacy-policy #policy .title {
	font-size: var(--font-size-subtitle);
}
#privacy-policy #policy .lock {
	position: absolute;
	width: 90vw;
	top: 0;
	right: 30vw;
	min-width: 280px;
	transform: translateY(-40%) rotate(10deg);
}
#privacy-policy #policy .catch-ja {
	width: 100%;
	margin-bottom: 1.5em;
	padding-right: 6em;
	background: url(/img/privacypolicy/10830561_05_EN.png) no-repeat right center;
	background-size: 5em auto;
	font-size: var(--font-size-catch-ja);
	line-height: 2;
}
#privacy-policy #personal-information {
	padding-top: 12rem;
}
#privacy-policy #personal-information .subtitle {
	margin-bottom: 0;
	font-size: var(--font-size-subtitle2);
}
#privacy-policy #personal-information .catch-ja {
	font-size: var(--font-size-catch-ja4);
}
#privacy-policy footer .inner {
	background-color: var(--color-light-blue);
}
#privacy-policy ol {
	list-style-type: decimal;
	margin-top: .5em;
	padding-left: 2em;
}
#privacy-policy section > ol {
	margin: 5em 0;
}
#privacy-policy section > ol > li {
	margin-top: 2em;
}
#privacy-policy ol ul {
	margin-top: .5em;
	list-style-position: outside;
	padding-left: 1em;
	text-indent: 0;
}
#privacy-policy ol ol {
	list-style: none;
	margin-bottom: .5em;
	padding-left: 1em;
	text-indent: -1.5em;
	counter-reset: list2;
}
#privacy-policy ol > li > ol > li {
	counter-increment: list2;
	margin-top: 1em;
}
#privacy-policy ol > li > ol > li::before {
	content: "(" counter(list2) ") ";
}
#privacy-policy ol ol ol {
	list-style: none;
	text-indent: 0;
	counter-reset: list3;
	margin-top: 0;
}
#privacy-policy ol ol ol > li {
	counter-increment: list3;
	margin-top: 0;
}
#privacy-policy ol ol ol > li::before {
	content: counter(list3);
	display: inline-block;
	width: 1em;
	height: 1em;
	border: 1px solid var(--color-dark-gray);
	border-radius: 50%;
	margin-right: .2em;
	font-size: .8em;
	text-align: center;
	line-height: 1em;
}
#privacy-policy ul {
	list-style-type: disc;
}

/* join our team */
#join-our-team .top_shapes_01 {
	fill: url(#shapes_gradation_01);
}
#join-our-team .top_shapes_02 {
	fill: url(#shapes_gradation_02);
}
#join-our-team .top_shapes_03 {
	fill: url(#shapes_gradation_03);
}
#join-our-team #recruit {
	position: relative;
	padding: calc(var(--header-height) + 10vw) var(--right-space) 10vw var(--left-space);
}
#join-our-team #recruit .title {
	font-size: var(--font-size-subtitle);
}
#join-our-team {
	background-color: var(--color-light-gray);
}
#join-our-team #recruit .top_shapes {
	position: absolute;
	left: 5%;
	width: 70vw;
	max-width: 2000px;
	transform: translate(50%, -35%);
}
#join-our-team #recruit .top_shapes {
	animation: shapes-animation 2s ease-in-out infinite;
}
@keyframes shapes-animation {
	0% {
		transform: translate(50%, -35%);
		opacity: 100%;
	}
	50% {
		transform: translate(50.2%, -35.8%);
		opacity: 75%;
	}
	100% {
		transform: translate(50%, -35%);
		opacity: 100%;
	}
}
#join-our-team #recruit .catch-ja {
	width: 100%;
	margin-bottom: 1.5em;
	font-size: var(--font-size-catch-ja);
	line-height: 2;
}
#join-our-team #recruit .catch-en {
	font-size: var(--font-size-catch-en);
	font-family: var(--font-family-en);
	line-height: 1.65;
}
#join-our-team .recruit_section,
#job_description .recruit_section {
	margin-bottom: 18rem;
}
#join-our-team .recruit_section .subtitle,
#job_description .recruit_section .subtitle {
	font-size: var(--font-size-subtitle2);
}
#join-our-team .recruit_section .subtitle_jp,
#job_description .recruit_section .subtitle_jp {
	font-size: var(--font-size-catch-ja6);
}

#join-our-team .how-we-work-together {
	padding-top: var(--header-height);
}
#join-our-team .work_wrapper {
	padding-top: 10rem;
}
#join-our-team .work_wrapper .work_box {
	display: grid;
	grid-template-columns: repeat(8, 1fr);
	column-gap: 40px;
	align-items: center;
	margin-bottom: 10rem;
}
#join-our-team .work_wrapper .work_box .work_animation-area {
	grid-column: 1 / span 3;
	background-color: #F4F4F4;
	border-radius: 50px 0px 50px 0px;
}
#join-our-team .work_wrapper .work_box .work_animation-area .lottie {
	padding: 4rem;
}
#join-our-team .work_wrapper .work_box .work_text-area {
	grid-column: 4 / span 6;
}
#join-our-team .work_wrapper .work_box .work_text-area .work_text-area_title {
	font-size: var(--font-size-catch-ja6);
	margin-bottom: 2rem;
	display: inline-block;
}
#join-our-team .work_wrapper .work_box .work_text-area .work_text-area_title::after {
	content: "";
	position: absolute;
	width: 100%;
	height: 12px;
	background-color: var(--color-yellow);
	left: 0;
	top: 65%;
	z-index: -1;
}
#join-our-team .work_wrapper .work_box .work_text-area .work_text-area_text {
	font-size: var(--font-size-catch-ja6);
}
#join-our-team .work_wrapper .work_box_reverse .work_animation-area {
	grid-column: 6 / span 3;
}
#join-our-team .work_wrapper .work_box_reverse .work_text-area {
	grid-column: 1 / span 5;
}
#join-our-team .work_wrapper .work_box_reverse .work_animation-area {
	order: 2;
}
#join-our-team .work_wrapper .work_box_reverse .work_text-area {
	order: 1;
}

#join-our-team #environment .comment {
	text-align: end;
}
#join-our-team .infographic_wrapper {
	display: grid;
	grid-template-columns: repeat(14, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 24px;
	padding: 10rem 0 1.6rem 0;
}
#join-our-team .infographic_wrapper .infographic_box {
	background-color: #F4F4F4;
	border-radius: 20px;
	display: flex;
	justify-content: center;
	align-items: center;
}
#join-our-team .infographic_wrapper .infographic_box1 {
	grid-column: 1 / span 4;
}
#join-our-team .infographic_wrapper .infographic_box2 {
	grid-column: 5 / span 4;
}
#join-our-team .infographic_wrapper .infographic_box3 {
	grid-column: 9 / span 6;
	grid-row: span 2;
}
#join-our-team .infographic_wrapper .infographic_box4 {
	grid-column: 1 / span 4;
	grid-row: 2;
}
#join-our-team .infographic_wrapper .infographic_box5 {
	grid-column: 5 / span 4;
	grid-row: 2;
}
#join-our-team .infographic_wrapper .infographic_box .infographic_box_inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 2rem;
}
#join-our-team .infographic_wrapper .infographic_box .info_text_small {
	color: var(--color-blue);
	font-weight: bold;
}
#join-our-team .infographic_wrapper .infographic_box .info_text_big {
	font-size: clamp(24px, 0.243rem + 5.44vw, 80px);
	line-height: 1;
	color: var(--color-blue);
	z-index: 1;
}
#join-our-team .infographic_wrapper .infographic_box4 .info_text_big {
	letter-spacing: .2em;
}
#join-our-team .infographic_wrapper .infographic_box .info_text_area .info_text_big span {
	font-size: 18px;
	font-weight: bold;
}
#join-our-team .infographic_wrapper .infographic_box3 {
	display: flex;
}
#join-our-team .infographic_wrapper .infographic_box3 .infographic_box_text {
	position: absolute;
	width: 100%;
	height: 100%;
	/* display: grid;
	grid-template-columns: repeat(6, 1fr);
  grid-template-rows: repeat(8, 1fr); */
	z-index: 1;
	/* padding: 10px; */
}
#join-our-team .infographic_wrapper .infographic_box3 .info_text_small_center {
	/* z-index: 1;
	grid-area: 4 / 3 / 6 / 5;
	display: flex;
	justify-content: center;
	align-items: center; */
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
#join-our-team .infographic_wrapper .infographic_box3 .chart_info1 {
	position: absolute;
	top: 5%;
	left: 40%;
}
#join-our-team .infographic_wrapper .infographic_box3 .chart_info2 {
	position: absolute;
	top: 20%;
	right: 5%;
}
#join-our-team .infographic_wrapper .infographic_box3 .chart_info3 {
	position: absolute;
	bottom: 10%;
	right: 30%;
}
#join-our-team .infographic_wrapper .infographic_box3 .chart_info4 {
	position: absolute;
	bottom: 40%;
	left: 8%;
}
#join-our-team .infographic_wrapper .infographic_box3 .chart_info .chart_info_inner .info_text_small {
	line-height: 1.2;
}
#join-our-team .infographic_wrapper .infographic_box3 .chart_info .info_text_big span {
	font-size: 18px;
	font-weight: bold;
}
#join-our-team .infographic_wrapper .infographic_box3 .chart_info .info_text_big_outter {
	max-width: 110px;
}
#join-our-team .infographic_wrapper .infographic_box .info_text_area .info_text_big::after,
#join-our-team .infographic_wrapper .infographic_box3 .chart_info .info_text_big_outter::after {
	content: "";
	position: absolute;
	width: 100%;
	height: 14px;
	background-color: var(--color-yellow);
	left: 0;
	top: 82%;
	z-index: -1;
}
#join-our-team .infographic_wrapper .infographic_box .infographic_box_inner svg {
	width: 90px;
	height: 90px;
	margin-top: 16px;
}
#join-our-team .infographic_wrapper .infographic_box3 svg {
	max-width: 90%;
	margin: 0 40px;
	padding: 40px;
}
/* environment svgカラー */
.office-1 {
	fill: url(#office_icon_1);
}
.office-2 {
	fill: url(#office_icon_2);
}
.office-3 {
	fill: url(#office_icon_3);
}
.dayoff-1 {
	fill: url(#dayoff_icon_2);
}
.dayoff-2 {
	fill: url(#dayoff_icon_1);
}
.chart-1 {
	fill: url(#chart_icon_1);
}
.gender-1 {
	fill: url(#gender_icon_4);
}
.gender-2 {
	fill: url(#gender_icon_3);
}
.gender-3 {
	fill: url(#gender_icon_2);
}
.gender-4 {
	fill: url(#gender_icon);
}
.vacation_1 {
	fill: url(#vacation_icon_1);
}

#join-our-team #environment_office {
	padding: 0;
}


#join-our-team .sliderImg_wrapper {
  overflow: hidden;
  width: 100%;
  position: relative;
	height: 440px;
}
#join-our-team .sliderImg_wrapper .sliderImg {
  display: flex;
  height: 100%;
  align-items: center;
	position: absolute;
  top: 0;
  left: 0;
}
#join-our-team .sliderImg_wrapper .sliderImg .slide {
  flex-shrink: 0;
  height: 100%;
	margin-right: 24px;
}
#join-our-team .sliderImg_wrapper .sliderImg .slide img {
  height: 100%;
  width: auto;
  display: block;
  border-radius: 20px;
}



#join-our-team .accordion_area {
	padding-top: 10rem;
}
#join-our-team .accordion_area .details_mamber {
	padding: 4rem 0;
	border-top: solid 1px var(--color-light-blue);
}
#join-our-team .accordion_area .details_mamber:last-child {
	border-bottom: solid 1px var(--color-light-blue);
}
#join-our-team .accordion_area .details_mamber summary {
	display: block;
	cursor: pointer;
}
#join-our-team .accordion_area .details_mamber summary::-webkit-details-marker {
  display: none;
}
#join-our-team .accordion_area .details_mamber .summary_member .member_info {
	display: grid;
	align-items: center;
	grid-template-columns: repeat(14, 1fr);
	column-gap: 24px;
}
#join-our-team .accordion_area .details_mamber .summary_member .member_info .member_icon {
	grid-column: 1 / span 2;
	width: 100%;
}
#join-our-team .accordion_area .details_mamber .summary_member .member_info .member_type {
	grid-column: 3 / span 10;
	font-size: var(--font-size-catch-ja6);
}
#join-our-team .accordion_area .details_mamber .summary_member .member_info .member_type .member_team {
	font-size: 1.6rem;
}
#join-our-team .accordion_area .details_mamber .summary_member .member_info .toggle_icon_wrapper {
	grid-column: 13 / span 2;
	display: flex;
	justify-content: flex-end;
	min-width: 29px;
}
#join-our-team .accordion_area .details_mamber .summary_member .member_info .toggle_icon {
  display: block;
  position: relative;
  width: 40px;
  transform-origin: center 43%;
  transition: transform 0.4s;
}
#join-our-team .accordion_area .details_mamber .summary_member .member_info .toggle_icon::before {
	content: "";
    position: absolute;
    display: block;
    width: 24px;
    height: 3px;
    background-color: var(--color-light-blue);
		border-radius: 10px;
		left: 0;
    transform: rotate(45deg);
}
#join-our-team .accordion_area .details_mamber .summary_member .member_info .toggle_icon::after {
	content: "";
    position: absolute;
    display: block;
    width: 24px;
    height: 3px;
    background-color: var(--color-light-blue);
		border-radius: 10px;
		right: 0;
    transform: rotate(-45deg);
}
details[open] .toggle_icon {
  transform: rotate(180deg);
}
#join-our-team .accordion_area .details_mamber .content {
	overflow: hidden;
}
#join-our-team .accordion_area .details_mamber .accordion_box {
	padding-top: 2rem;
}
#join-our-team .accordion_area .details_mamber .accordion_box:first-child {
	padding-top: 4rem;
}
#join-our-team .accordion_area .details_mamber .accordion_box .acoordion_wrapper {
	background-color: #F4F4F4;
	border-radius: 10px;
}
#join-our-team .accordion_area .details_mamber .accordion_box .acoordion_wrapper .details_inner {
	padding: 20px 40px;
}
#join-our-team .accordion_area .details_mamber .accordion_box .acoordion_wrapper .details_inner .summary_question {
	display: grid;
	align-items: center;
	grid-template-columns: 48px 1fr;
}
#join-our-team .accordion_area .details_mamber .accordion_box .acoordion_wrapper .details_inner .summary_question .question_icon {
	font-size: clamp(20px, calc(1.5rem + 1.5vw), 36px);
	color: var(--color-dark-yellow);
	font-weight: bold;
}
#join-our-team .accordion_area .details_mamber .accordion_box .acoordion_wrapper .details_inner .summary_question .question_text {
	font-size: clamp(16px, calc(0.5rem + 1.5vw), 20px);
}
#join-our-team .accordion_area .details_mamber .accordion_box .acoordion_wrapper .details_inner .answer_inner {
	padding: 0.8rem 4.8rem;
}
#join-our-team .accordion_area .details_mamber .accordion_box .acoordion_wrapper .details_inner .answer_inner .answer {
	line-height: 2;

}
.man_hair {
	fill: #5b5b5b;
}
.man_Tshirt-1 {
	fill: var(--color-blue);
}
.man_Tshirt-2 {
	fill: #fff;
}
.man_Tshirt-3 {
	fill: #fff39a;
}
.man_Tshirt-4 {
	fill: var(--color-blue);
}
.woman_hair {
	fill: #5b5b5b;
}
.woman_Tshirt-1 {
	fill: #fff39a;
}
.woman_Tshirt-2 {
	fill: #fff;
}
.bg_circle {
	fill: #f2f2f2;
}
.face {
	fill: #ffd2d5;
}

#join-our-team .hiring_box {
	padding-top: 10rem;
}
#join-our-team .hiring_box .hiring_wrapper {
	border-top: 1px solid var(--color-gray);
}
#join-our-team .hiring_box:last-child {
	border-bottom: 1px solid var(--color-gray);
}
#join-our-team .hiring_box .hiring_wrapper:first-child:hover {
	background-color: var(--color-yellow);
	transition: all .3s ease;
}
#join-our-team .hiring_box .hiring_wrapper .hiring_inner {
	padding: 4rem;
	display: grid;
	grid-template-columns: repeat(8, 1fr);
}
#join-our-team .hiring_box .hiring_wrapper .hiring_inner .hiring_inner_left {
	grid-column: 1 / span 5;
}
#join-our-team .hiring_box .hiring_wrapper .hiring_inner .hiring_inner_left .job_name {
	font-size: var(--font-size-catch-ja6);
}
#join-our-team .hiring_box .hiring_wrapper .hiring_inner .hiring_inner_right {
	grid-column: 6 / span 3;
	display: flex;
	align-items: center;
	justify-content: flex-end;
}
#join-our-team .hiring_box .hiring_wrapper .no_position p {
	color: var(--color-dark-gray);
}
#join-our-team .hiring_box .hiring_wrapper .hiring_inner .hiring_inner_right .arrowB {
	width: 32px;
	margin-left: 16px;
}
.arrowB_01 {
	fill: var(--color-light-black);
}

#join-our-team .process_box,
#job_description .process_box {
	padding-top: 10rem;
	display: flex;
}
#join-our-team .process_box .process_wrapper,
#job_description .process_box .process_wrapper {
	position: relative;
	background-color: var(--color-medium-gray);
	width: 230px;
	height: 200px;
	display: flex;
	align-items: center;
	justify-content: center;
	clip-path: polygon(0% 0%, 75% 0%, 100% 50%, 75% 100%, 0% 100%);
	margin-right: 8px;
}
#join-our-team .process_box .process_wrapper:last-child,
#job_description .process_box .process_wrapper:last-child {
	margin-right: 0;
}
#join-our-team .process_box .process_wrapper p,
#job_description .process_box .process_wrapper p {
	font-size: var(--font-size-catch-ja3);
}
#join-our-team .process_box .process_wrapper .process_number,
#job_description .process_box .process_wrapper .process_number {
	position: absolute;
	top: 5%;
	left: 5%;
}
#join-our-team .process_box .process_wrapper .process_ttl,
#job_description .process_box .process_wrapper .process_ttl {
	padding-right: 1.5rem;
}

#join-our-team .cta_link_box,
#job_description .cta_link_box {
	display: grid;
	grid-template-columns: repeat(14 , 1fr);
	gap: 4rem;
}

#join-our-team .link_wrapper_A,
#job_description .link_wrapper_A {
	grid-column: 1 / span 7;
	background-image: url(/img/joinourteam/link_bg_01.png);
	background-repeat: no-repeat;
	background-position: 200% 50%;
	background-size: 90%;
}
#join-our-team .link_wrapper_B,
#job_description .link_wrapper_B {
	grid-column: 8 / span 7;
	background-image: url(/img/joinourteam/link_bg_02.png);
	background-repeat: no-repeat;
	background-position: 110% 50%;
	background-size: 60%;
}
#join-our-team .link_wrapper,
#job_description .link_wrapper {
	min-height: 240px;
	border: solid 4px var(--color-blue);
	border-radius: 20px;
	overflow: hidden;
	position: relative;
}
#join-our-team .link_wrapper:hover,
#job_description .link_wrapper:hover {
	opacity: .8;
	transition: all .3s ease;
}
#join-our-team .link_wrapper .link_inner,
#job_description .link_wrapper .link_inner {
	padding: 32px;
}
#join-our-team .link_wrapper .link_inner p,
#job_description .link_wrapper .link_inner p {
	color: var(--color-blue);
}
#join-our-team .link_wrapper .link_inner .link_ttl_en,
#job_description .link_wrapper .link_inner .link_ttl_en {
	font-size: clamp(30px, calc(2.5rem + 1.5vw), 40px);
	font-weight: bold;
}
#join-our-team .link_wrapper .link_inner .link_ttl_jp,
#job_description .link_wrapper .link_inner .link_ttl_jp {
	font-size: var(--font-size-catch-ja7);
}

#join-our-team footer .inner,
#job_description footer .inner {
	background-color: var(--color-blue);
}

/* job_description */
#job_description .top_shapes_01 {
	fill: url(#shapes_gradation_01);
}
#job_description .top_shapes_02 {
	fill: url(#shapes_gradation_02);
}
#job_description .top_shapes_03 {
	fill: url(#shapes_gradation_03);
}
#job_description #recruit .top_shapes {
	position: absolute;
	left: 5%;
	width: 70vw;
	max-width: 2000px;
	transform: translate(50%, -35%);
	opacity: .4;
}
#job_description #recruit .top_shapes {
	animation: shapes-animation_2 2s ease-in-out infinite;
}
@keyframes shapes-animation_2 {
	0% {
		transform: translate(50%, -35%);
		opacity: 40%;
	}
	50% {
		transform: translate(50%, -35.8%);
		opacity: 60%;
	}
	100% {
		transform: translate(50%, -35%);
		opacity: 40%;
	}
}
#job_description {
	background-color: var(--color-light-gray);
}
#job_description #recruit {
	position: relative;
	padding: calc(var(--header-height) + 10vw) var(--right-space) 10vw var(--left-space);
}
#job_description #recruit .page_ttl {
	font-size: var(--font-size-catch-ja5);
	margin-bottom: 4rem;
	font-weight: bold;
}
#job_description #recruit .title {
	font-size: var(--font-size-subtitle2);
	margin-bottom: 2rem;
}
#job_description #recruit .h1_sub {
	font-size: var(--font-size-catch-ja5);
	margin-bottom: 8rem;
}
#job_description #recruit .catch-ja {
	font-size: var(--font-size-catch-ja6);
}

#job_description .job_details {
	margin-bottom: 24rem;
}
#job_description .job_details .subtitle {
	font-size: var(--font-size-catch-ja5);
	margin-bottom: 4rem;
	display: inline-block;
}
#job_description .job_details .subtitle::after {
	content: "";
	position: absolute;
	width: 100%;
	height: 12px;
	background-color: var(--color-yellow);
	left: 0;
	top: 65%;
	z-index: -1;
}
#job_description .job_details .table_wrapper table {
	width: 100%;
}
#job_description .job_details .table_wrapper table tbody tr {
	border-top: solid 1.5px var(--color-light-blue);
	border-bottom: solid 1.5px var(--color-light-blue);
}
#job_description .job_details .table_wrapper table tbody tr th,
#job_description .job_details .table_wrapper table tbody tr td {
	padding: 4rem 0;
	font-size: var(--font-size-catch-ja8);
}
#job_description .job_details .table_wrapper table tbody tr th {
	font-weight: normal;
	padding-right: 10rem;
	color: var(--color-light-blue);
}
#job_description .job_details .table_wrapper table tbody tr td ul li {
	font-size: var(--font-size-catch-ja8);
	margin-bottom: 2.4rem;
}
#job_description .job_details .table_wrapper table tbody tr td ul li:last-child {
	margin-bottom: 0;
}
/* 画面には表示せず、検索エンジン・読み上げソフト向けに残す（トップ・会社概要の h1 など） */
.visually-hidden {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}
