:root {
	--bg-base: #E9F7FB;
	--bg-blue: #61CEDE;
	--bg-pale-blue: #DCEEF1;
	--bg-white: #FFFFFF;
	--bg-dark-gray: #5B5B5B;
	--text-black: #3C3C3C;
	--text-white: #FFFFFF;
	--text-gray: #B8B8B8;
	--accent-yellow: #FFD400;
	--accent-gray: #B8B8B8;
	--accent-pale-blue: #DCEEF1;
}

*,
*:before,
*:after {
	box-sizing: border-box;
}

html {
	font-size: 16px;
	height: 100%;
	scroll-behavior: smooth;
}

body {
	background-color: #E9F7FB;
	color: #3C3C3C;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 500;
	line-height: 1.5;
}

img,
video,
object {
	border: none;
	display: block;
	height: auto;
	max-width: 100%;
}

a {
	text-decoration: none;
}

/*===================================================================
# ヘッダー
===================================================================*/

.header {
	background-color: #E9F7FB;
	height: 100px;
	left: 0;
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 100;
}

.header__inner {
	align-items: center;
	display: flex;
	height: 100%;
	justify-content: space-between;
	margin-inline: auto;
	max-width: 1100px;
	padding-inline: 10px;
}

.header__logo span {
	display: block;
	font-family: "Monomaniac One", sans-serif;
	line-height: 1.2;
}

.header__logo-main {
	font-size: 48px;
	letter-spacing: 2.88px;
}

.header__logo-sub {
	font-size: 24px;
	letter-spacing: 1.44px;
}

.header__nav {
	align-items: center;
	display: flex;
	height: 60px;
	justify-content: space-between;
	width: 460px;
	-moz-column-gap: 6px;
	background: #FFF;
	border: 1px solid #3C3C3C;
	border-radius: 30px;
	column-gap: 6px;
	padding-inline: 21px 17px;
}

.header__list {
	align-items: center;
	display: flex;
	-moz-column-gap: 7px;
	column-gap: 7px;
}

.header__list li a {
	font-family: "Barlow", sans-serif;
	font-weight: 700;
	letter-spacing: 1.6px;
	padding: 10px 9px;
	position: relative;
}

.header__list li a::after {
	background-color: #61CEDE;
	bottom: 0px;
	content: "";
	height: 2px;
	left: 0;
	position: absolute;
	transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	width: 0;
}

.header__btn {
	align-items: center;
	background-color: #FFD400;
	border: 1px solid #fff;
	border-radius: 100vmax;
	display: flex;
	font-family: "Barlow", sans-serif;
	font-weight: 700;
	height: 30px;
	justify-content: center;
	letter-spacing: 1.6px;
	position: relative;
	transition: all 0.3s ease;
	width: 90px;
}

.header__btn::after {
	border: 2px solid #FFD400;
	border-radius: 100vmax;
	box-sizing: border-box;
	content: "";
	height: 100%;
	left: 0;
	opacity: 0;
	position: absolute;
	top: 0;
	transform: scale(1.2);
	transition: transform ease 0.3s, opacity 0.3s;
	width: 100%;
	z-index: 0;
}

/*===================================================================
# フッター
===================================================================*/

.footer__inner {
	background-color: #FFFFFF;
	margin-inline: auto;
	max-width: 1280px;
}

.footer__upper-wrapper {
	margin-inline: 20px;
}

.footer__upper {
	background-color: #5B5B5B;
	border-radius: 30px;
	margin-block-end: 35px;
	margin-inline: auto;
	max-width: 1080px;
	padding-block: 30px 70px;
	position: relative;
}

.footer__logo-wrapper {
	text-align: center;
}

.footer__logo-link {
	display: inline-block;
	text-align: center;
}

.footer__logo {
	color: #FFFFFF;
	font-family: "Monomaniac One", sans-serif;
	line-height: 1.15;
	transition: color 0.3s ease;
}

.footer__logo--jp {
	font-size: 48px;
	letter-spacing: 2.88px;
}

.footer__logo--en {
	font-size: 24px;
	letter-spacing: 1.44px;
}

.footer__sns {
	display: flex;
	justify-content: center;
	margin-block: 35px 33px;
}

.footer__sns-link {
	transition: opacity 0.3s ease;
	width: 20px;
}

.footer__sns-link img {
	height: auto;
	width: 100%;
}

.footer__lists {
	display: flex;
	justify-content: center;
	-moz-column-gap: 27px;
	column-gap: 27px;
}

.footer__link {
	color: #FFFFFF;
	font-family: "Barlow", sans-serif;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 1.4px;
	padding: 10px;
	position: relative;
}

.footer__link::after {
	background-color: #61CEDE;
	bottom: 0px;
	content: "";
	height: 2px;
	left: 0;
	position: absolute;
	transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	width: 0;
}

.footer__to-top-wrapper {
	position: absolute;
	right: 53px;
	top: 54px;
}

.footer__to-top {
	border: 2px solid #fff;
	border-radius: 50%;
	color: #FFFFFF;
	display: flex;
	font-family: "Barlow", sans-serif;
	font-size: 13px;
	font-weight: 700;
	height: 70px;
	justify-content: center;
	letter-spacing: 4.55px;
	line-height: 14px; /* 107.692% */
	padding-block-start: 30px;
	text-align: center;
	transition: color 0.3s ease, border 0.3s ease;
	width: 70px;
}

.footer__rocket {
	color: #FFFFFF;
	left: 50%;
	pointer-events: none;
	position: absolute;
	top: -6px;
	transition: color 0.3s ease;
	translate: -50%;
}

.footer__lower {
	background-color: #61CEDE;
}

.footer__copyright {
	color: #FFFFFF;
	display: block;
	font-size: 11px;
	letter-spacing: 1.1px;
	padding-block: 15px;
	text-align: center;
}

/*===================================================================
# ボタン
===================================================================*/

/*===================================================================
# ドロワー
===================================================================*/

.drawer {
	background-color: #3c3c3c;
	height: 100vh; /* svhに対応しないスマホ用 */
	height: 100svh; /* 画面下のメニューを考慮する */
	overflow-y: scroll;
	position: fixed;
	right: 0;
	top: 0;
	transition: translate 0.5s ease;
	translate: 101%;
	width: 100%;
	z-index: 101;
}

.drawer.js-show {
	translate: 0%;
}

.drawer__body {
	height: -moz-fit-content;
	height: fit-content;
	padding-block: 90px 40px;
	width: 100%;
}

.drawer__list {
	align-items: center;
	display: flex;
	flex-direction: column;
	margin-block-end: 50px;
	row-gap: 50px;
}

.drawer__list li a {
	color: #fff;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 2px;
}

.drawer__list li a.drawer__btn {
	align-items: center;
	background-color: #FFD400;
	border-radius: 100vmax;
	color: #3C3C3C;
	display: flex;
	font-family: "Barlow", sans-serif;
	height: 40px;
	justify-content: center;
	padding-block-end: 4px;
	width: 110px;
}

.drawer__sns {
	color: #3C3C3C;
	display: flex;
	justify-content: center;
}

.drawer__sns img {
	height: auto;
	width: 100%;
}

.drawer__icon {
	display: none;
	flex-direction: column;
	height: 20px;
	justify-content: space-between;
	position: fixed;
	right: 13px;
	top: 15px;
	width: 30px;
	z-index: 102;
}

.drawer__icon--bar {
	background-color: #3c3c3c;
	border-radius: 3px;
	height: 3px;
	transition: all 0.5s ease;
	width: 100%;
}

.drawer__logo {
	color: #FFFFFF;
	display: flex;
	font-family: "Monomaniac One", sans-serif;
	font-size: 15px;
	letter-spacing: 0.3px;
	-moz-column-gap: 16px;
	column-gap: 16px;
	left: -112px;
	position: fixed;
	top: 210px;
	transform: rotate(90deg);
}

.drawer__logo span {
	display: inline-block;
}

.drawer__logo-rocket {
	margin-block-end: 10px;
	padding-inline-start: 0px;
	transform: rotate(-90deg);
}

.drawer__logo-jp {
	padding-block-start: 0.8px;
}

.drawer__line {
	background-color: #fff;
	height: 100%;
	left: 23px;
	overflow: hidden;
	position: fixed;
	top: 375px;
	width: 1.5px;
}

/* メニューが開いている時 */

.drawer__icon.js-show .drawer__icon--bar:nth-of-type(1) {
	background-color: #fff;
	rotate: 45deg;
	translate: 0 8.5px;
}

.drawer__icon.js-show .drawer__icon--bar:nth-of-type(2) {
	display: none;
}

.drawer__icon.js-show .drawer__icon--bar:nth-of-type(3) {
	background-color: #fff;
	rotate: -45deg;
	translate: 0 -8.5px;
}

/*===================================================================
# インナー幅
===================================================================*/

.inner {
	margin-inline: auto;
	max-width: 1280px; /* インナー幅は1280px */
	padding-inline: 20px;
}

.inner__color {
	background-color: #61CEDE;
}

/*===================================================================
# セクション
===================================================================*/

.section__title {
	font-weight: 700;
	text-align: left; /* セクションタイトル */
}

.section__title-en,
.section__title-jp {
	display: block;
}

.section__title-en {
	font-family: "Barlow", sans-serif;
	font-size: 64px;
	letter-spacing: 6.4px;
}

.section__title-en--policy {
	font-size: 55px;
}

.section__title-en--modal-policy {
	font-size: 55px;
}

.section__title-jp {
	font-size: 20px;
	letter-spacing: 2px;
	margin-inline-start: 55px;
	position: relative;
}

.section__title-jp::before {
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	height: 40px;
	left: -55px;
	position: absolute;
	top: 46%;
	translate: 0 -50%;
	width: 40px;
}

.section__title-jp--policy::before {
	height: 35px;
	width: 35px;
}

.section__title-antenna::before {
	background-image: url(../../assets/img/antenna.svg);
}

.section__title-antenna--blue::before {
	background-image: url(../../assets/img/antenna_blue.svg);
}

.section__title--service {
	position: sticky;
	top: 100px;
}

.section__title--service.is-unstuck {
	position: relative;
}

.section__title-wrapper {
	display: flex;
	justify-content: center;
}

.js-fadein {
	opacity: 1;
	transform: translateY(20px);
	transition: all 0.6s ease;
}

.js-fadein.is-visible {
	opacity: 1;
	transform: translateY(0px);
}

/*===================================================================
# FV
===================================================================*/

.fv {
	padding-block-start: 100px; /* loading */ /* ローディングが終わった時 */
}

.fv #loading {
	background-color: #DCEEF1;
	display: grid;
	inset: 0;
	place-items: center;
	position: fixed;
	transition: opacity 1s ease, visibility 1s ease;
	will-change: opacity, visibility;
	z-index: 9999;
}

.fv__stage {
	height: 100px;
	position: relative;
	width: 100px; /* 軌道の直径 */
}

.fv__blue-dot {
	background-color: #61CEDE;
	border-radius: 50%;
	height: 50px;
	left: 50%;
	position: absolute;
	top: 50%;
	translate: -50% -50%;
	width: 50px;
}

.fv__orbit {
	animation: orbit 2s linear infinite;
	inset: 0;
	position: absolute;
	transform-origin: 50% 50%;
}

.fv__rocket--loading {
	height: 25px;
	left: 100%;
	position: absolute;
	top: 50%;
	translate: -50% -50%;
	width: 25px;
}

.fv .loaded {
	opacity: 0;
	visibility: hidden;
}

.fv__inner {
	height: 600px;
	overflow: hidden;
	padding-inline: 0;
	position: relative;
}

.fv__title {
	color: #FFFFFF;
	font-family: "Barlow", sans-serif;
	font-size: 130px;
	font-weight: 700;
	letter-spacing: 22.1px;
	line-height: 130px; /* 100% */
	padding-block-start: 300px;
	padding-inline-start: 100px;
	position: relative;
	text-shadow: -2px -2px 0 #B8B8B8, 2px -2px 0 #B8B8B8, -2px 2px 0 #B8B8B8, 2px 2px 0 #B8B8B8, 0px 4px 4px rgba(0, 0, 0, 0.25);
	z-index: 4;
}

.fv__title .char {
	display: inline-block;
	opacity: 0;
	transform: translateY(0.6em);
	will-change: transform, opacity, transform;
}

.fv__bg {
	position: absolute;
}

.fv__bg--left,
.fv__bg--right {
	opacity: 0;
	transition: transform 3s cubic-bezier(0.2, 0.8, 0.2, 1), opacity 1.2s ease;
	will-change: transform, opacity;
}

.fv__bg--left {
	bottom: 112px;
	left: 0;
	transform: translateX(-120%);
	z-index: 1;
}

.fv__bg--center {
	bottom: 0;
	left: 0;
	z-index: 1;
}

.fv__bg--right {
	bottom: 112px;
	right: 0;
	transform: translateX(120%);
	z-index: 3;
}

.fv__slide-container {
	background: #D7D7D7;
	border-radius: 20px;
	bottom: 112px;
	height: auto;
	left: 300px;
	overflow: hidden;
	position: absolute;
	width: 670px;
	z-index: 2;
}

.fv__slide-container .swiper,
.fv__slide-container .swiper-wrapper,
.fv__slide-container .swiper-slide {
	height: 100%;
	width: 100%;
}

.fv__slide-container .swiper-slide img {
	-o-object-fit: cover;
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.fv__rocket {
	height: auto;
	overflow: visible;
	position: absolute;
	right: 95px;
	top: 52px;
	width: 96px;
	z-index: 2; /* スタート位置を top からさらに 200px 下げるオフセット */
	--startY: 200px;
	opacity: 0; /* デフォルトは非表示 */
	transform: translate(0, var(--startY)) scale(1);
	will-change: transform, opacity;
}

.has-js .fv__title {
	visibility: hidden;
}

/* SplitType前は隠す */

/* 見える“待機”状態（常時残すためのクラス） */

.fv__rocket.rocket-idle {
	opacity: 1;
	transform: translate(0, 0) scale(1);
}

/* 1回だけ左上へ飛ぶ */

.fv__rocket.rocket-go {
	animation: rocket-fly 2s ease-in-out 0s 1 both;
}

/* 瞬間的に初期位置へ戻す（アニメ無し） */

.fv__rocket.rocket-reset {
	animation: none;
	opacity: 0; /* 透明で待機 */
	transform: translate(0, var(--startY)) scale(1);
}

/* ふわっと再表示(終わったら .rocket-idle を付ける）*/

.fv__rocket.rocket-reappear {
	animation: rocket-reappear 3s ease-out 0s 1 both;
}

/* ロケットが左斜め上へ飛ぶアニメーション */

/* ふわっと再表示（位置は初期に戻した状態でフェードインだけ） */

/* 動きを減らすユーザー配慮 */

/* 周回アニメーション */

/* 発火クラスが付いたら左右のもくもくが入ってくる */

.fv.is-in .fv__bg--left,
.fv.is-in .fv__bg--right {
	opacity: 1;
	transform: translateX(0);
}

.fv.is-in .fv__bg--right {
	transition-delay: 0.8s;
}

/*===================================================================
# Works
===================================================================*/

.works__outer {
	background-color: #61CEDE;
	padding-block: 100px;
}

.works__inner {
	margin-inline: auto;
	max-width: 1100px;
	padding-inline: 10px;
}

.works__items {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(3, 1fr);
	margin-block-start: 33px; /* 500～767px：2列 */ /* ～499px：1列 */
}

.works__item {
	position: relative;
}

.works__item img {
	border-radius: 10px;
	box-shadow: 5px 5px 4px 0px rgba(0, 0, 0, 0.25);
}

.works__btn {
	align-items: center;
	background-color: #FFD400;
	border: 1px solid #3C3C3C;
	border-radius: 13px;
	bottom: 30px;
	box-shadow: 0 5px 0 0 #3c3c3c;
	color: #3C3C3C;
	display: flex;
	font-size: 14px;
	font-weight: 700;
	height: 29px;
	justify-content: center;
	left: 50%;
	margin-inline: auto;
	position: absolute;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	translate: -50%;
	width: 60%;
}

.works__modal-item-container {
	background-color: rgba(0, 0, 0, 0.8);
	cursor: pointer;
	height: 80vh;
	left: 0;
	opacity: 0;
	pointer-events: none;
	position: fixed;
	top: 30px;
	transition: opacity 0.5s ease, visibility 0.5s ease;
	visibility: hidden;
	width: 100%;
	z-index: 1000;
}

.works__modal-item-container.is-active {
	opacity: 1;
	pointer-events: auto;
	visibility: visible;
}

.works__modal-item {
	border: 2px solid #3C3C3C;
	border-radius: 40px;
	cursor: default;
	left: 50%;
	margin-block-start: 50px;
	overflow: hidden;
	position: absolute;
	top: 50%;
	translate: -50% -50%;
	width: 90%;
}

.works__modal-head {
	align-items: center;
	background-color: #3C3C3C;
	display: flex;
	height: 83px;
	justify-content: space-between;
	padding-inline: 40px;
	width: 100%;
}

.works__modal-content {
	background-color: #DCEEF1;
	max-height: 80vh;
	overflow-y: scroll;
	padding: 35px 40px 80px;
}

.works__modal-close {
	height: 40px;
	width: 40px;
}

.works__modal-title {
	color: #FFFFFF;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 2px;
}

.works__modal-summary {
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 1.5px;
}

.works__modal-items {
	margin-block-start: 30px;
}

.works__modal-items li {
	align-items: flex-start;
	display: flex;
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 1.5px;
	margin-block-end: 20px;
	position: relative;
}

.works__modal-items li:last-child {
	margin-block-end: 0;
}

.works__modal-item-title {
	flex-shrink: 0;
	font-weight: 700;
	padding-inline-start: 20px;
	position: relative;
	width: 150px;
}

.works__modal-item-title::before {
	background-color: #61CEDE;
	border-radius: 50%;
	content: "";
	height: 13px;
	left: 0;
	position: absolute;
	top: 50%;
	translate: 0 -50%;
	width: 13px;
}

.works__modal-item-text {
	display: inline-block;
	line-height: 1.8;
}

.works__modal-pc-container {
	margin-block: 40px;
}

.works__modal-sub-title {
	align-items: center;
	background-color: #3C3C3C;
	color: #FFFFFF;
	display: flex;
	font-size: 15px;
	font-weight: 500;
	height: 35px;
	justify-content: center;
	letter-spacing: 1.5px;
	width: 98px;
}

.works__modal-sub-title--sp {
	width: 165px;
}

.works__modal-movie-pc {
	margin-block: 15px;
	width: 80%;
}

.works__modal-movie-sp {
	aspect-ratio: 9/16;
	margin-block: 15px;
	width: 375px;
}

.works__modal-link-wrapper {
	display: flex;
	justify-content: center;
	margin-block-start: 50px;
}

.works__modal-link {
	align-items: center;
	background: rgba(255, 255, 255, 0.7);
	border: 1px solid #B8B8B8;
	border-radius: 10px;
	display: flex;
	font-size: 20px;
	font-weight: 700;
	gap: 25px;
	height: 80px;
	justify-content: center;
	text-align: center;
	width: 400px;
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
	transition: color 0.3s ease;
}

.works__modal-arrow {
	height: auto;
	width: 30px;
}

/*===================================================================
# Service
===================================================================*/

.service__outer {
	background-color: #61CEDE;
	padding-block-end: 100px;
}

.service__inner {
	background: #FFFFFF;
	border-radius: 50px;
	margin-inline: auto;
	max-width: 1000px;
	padding: 36px 97px 60px 48px;
}

.service__content {
	display: flex;
	justify-content: space-between;
}

.service__images {
	align-items: center;
	display: flex;
	height: 100vh;
	margin-block: calc(-50vh + 215px) calc(-50vh + 206px);
	pointer-events: none;
	position: sticky;
	top: -206px;
	width: 300px;
}

.service__img {
	opacity: 0;
	position: absolute;
	transform: scale(0.9);
	transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.service__img.is-active {
	opacity: 1;
	transform: scale(1);
}

.service__items {
	display: flex;
	flex-direction: column;
	gap: 60px;
	margin-block-start: 151px;
	width: 385px;
}

.service__item-title {
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 2.4px;
	position: relative;
}

.service__item-title::before {
	background-color: #61CEDE;
	border-radius: 50%;
	content: "";
	height: 12px;
	left: -30px;
	opacity: 0;
	position: absolute;
	top: 50%;
	translate: 0 -50%;
	width: 12px;
}

.service__item-title.is-highlighted::before {
	opacity: 1;
}

.service__item-img {
	display: none;
}

.service__item-text {
	font-weight: 500;
	letter-spacing: 1.6px;
	line-height: 35px; /* 218.75% */
	margin-block-start: 25px;
	margin-inline-start: 29px;
}

/*===================================================================
# About
===================================================================*/

.about__outer {
	background: linear-gradient(180deg, #61CEDE 0%, #95E8F5 100%);
	padding-block: 100px 50px;
	position: relative;
}

.about__inner {
	padding-inline-start: 230px;
}

.about__profile {
	border: 1px solid #FFF;
	margin-block: 55px 115px;
	max-width: 700px;
	padding: 50px;
	position: relative;
}

.about__name-container {
	align-items: center;
	display: flex;
	-moz-column-gap: 20px;
	column-gap: 20px;
}

.about__name {
	align-items: center;
	display: flex;
	-moz-column-gap: 20px;
	column-gap: 20px;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 4px;
}

.about__name-jp {
	align-items: center;
	background-color: #FFFFFF;
	display: inline-flex;
	height: 45px;
	justify-content: center;
	width: 140px;
}

.about__name-en {
	font-family: "Barlow", sans-serif;
}

.about__sns {
	margin-inline-start: 25px;
}

.about__profile-message-wrapper {
	margin-block-start: 30px;
	width: 395px;
}

.about__profile-message {
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 2.8px;
	line-height: 25px; /* 178.571% */
}

.about__profile-message:last-child {
	margin-block-start: 24px;
}

.about__profile-img {
	position: absolute;
	right: -113px;
	top: -44px;
}

.about__feature-wrapper {
	display: flex;
	flex-direction: column;
	gap: 55px;
	margin-inline-start: 32px;
	max-width: 712px;
	position: relative;
}

.about__feature {
	background-color: rgba(255, 255, 255, 0.6);
	padding: 41px 20px 21px 20px;
	position: relative;
	width: 450px;
}

.about__feature--upper::before {
	background: url(../../assets/img/about_dot.svg) center center/cover no-repeat;
	bottom: -33px;
	content: "";
	height: 114px;
	left: -40px;
	position: absolute;
	transform: rotate(180deg);
	width: 110px;
}

.about__feature-title {
	align-items: flex-start;
	bottom: calc(100% - 20px);
	display: flex;
	flex-direction: column;
	left: 20px;
	position: absolute;
	row-gap: 5px;
}

.about__feature-title span {
	align-items: center;
	background-color: #FFFFFF;
	display: flex;
	font-size: 20px;
	font-weight: 700;
	height: 40px;
	justify-content: center;
	letter-spacing: 4px;
}

.about__feature-title--1 {
	width: 342px;
}

.about__feature-title--2 {
	width: 180px;
}

.about__feature-title--3 {
	width: 286px;
}

.about__feature-title-margin {
	margin-inline-end: -1em;
}

.about__feature-message {
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 2.8px;
	line-height: 25px; /* 178.571% */
}

.about__feature--lower {
	margin-inline: auto 0;
	padding-block-start: 29px;
	position: relative;
	z-index: 1;
}

.about__feature--lower::after {
	background: url(../../assets/img/about_dot.svg) center center/cover no-repeat;
	content: "";
	height: 114px;
	position: absolute;
	right: -22px;
	top: -22px;
	width: 110px;
}

.about__feature-img {
	bottom: 0;
	position: absolute;
	right: 100%;
}

.about__bg-bottom {
	background: url(../../assets/img/about_bg_bottom.svg) center center/cover no-repeat;
	bottom: 0;
	height: clamp(125px, -100.8823529412px + 29.4117647059vw, 200px);
	left: 50%;
	position: absolute;
	translate: -50%;
	width: 100%;
}

/*===================================================================
# FAQ
===================================================================*/

.faq__outer {
	background-color: #61CEDE;
	margin-block-start: -20px;
	padding-block: 120px 300px;
	position: relative;
	z-index: 1;
}

.faq__inner {
	margin-inline: auto;
	max-width: 920px;
	padding-inline: 10px;
}

.faq__items {
	margin: 100px auto 0;
}

.faq__item {
	background-color: #FFFFFF;
	border: 2px solid #3C3C3C;
	border-radius: 20px;
	box-sizing: border-box;
	height: auto;
	margin-block-end: 34px;
	position: relative;
	width: 100%;
}

.faq__item:last-child {
	margin-block-end: 0;
}

.faq__question {
	align-items: center;
	display: flex;
	font-size: 24px;
	font-weight: 700;
	gap: 30px;
	height: 100px;
	letter-spacing: 2.4px;
	list-style: none; /* デフォルトの三角マークを非表示 */
	padding-inline: 30px 100px;
	position: relative;
	width: 100%;
}

.faq__question-label {
	color: #61CEDE;
	font-family: "Convergence", sans-serif;
	font-size: 32px;
}

.faq__question::before,
.faq__question::after {
	background-color: #fff;
	content: "";
	position: absolute;
	top: 50%;
	translate: 0 -50%;
}

.faq__question::before {
	height: 3px;
	right: 49px;
	width: 22px;
	z-index: 1;
}

.faq__question::after {
	height: 22px;
	right: 58.5px;
	transition: transform 0.3s ease;
	width: 3px;
}

.faq__question-mark {
	background-color: #61CEDE;
	border-radius: 50%;
	height: 40px;
	position: absolute;
	right: 40px;
	top: 50%;
	translate: 0 -50%;
	width: 40px;
}

.faq__answer {
	background-color: #DCEEF1;
	border-radius: 0px 0px 20px 20px;
	display: grid;
	grid-template-rows: 0fr;
	opacity: 0;
	overflow: hidden;
	padding-inline: 20px 100px;
	transition: grid-template-rows 0.32s ease, opacity 0.2s ease;
}

.faq__answer-inner {
	align-items: center;
	display: flex;
	gap: 30px;
	min-height: 0;
	padding-block: 0;
}

.faq__answer-label {
	color: #61CEDE;
	font-family: "Convergence", sans-serif;
	font-size: 32px;
}

.faq__answer-text {
	font-size: 20px;
	letter-spacing: 2px;
}

.faq__bg-bottom {
	background: url(../../assets/img/faq_bg_bottom.png) center center/cover no-repeat;
	bottom: 0;
	height: clamp(125px, -100.8823529412px + 29.4117647059vw, 200px);
	left: 50%;
	position: absolute;
	translate: -50%;
	width: 100%;
	z-index: 2;
}

.is-opened .faq__question::after {
	transform: rotate(90deg);
}

.is-opened .faq__answer {
	grid-template-rows: 1fr;
	opacity: 1;
}

.faq__item.is-opened .faq__answer-inner {
	padding-block: 20px;
}

/*===================================================================
# Contact
===================================================================*/

.contact__inner {
	background-color: #FFFFFF;
	margin-block-start: -20px;
	overflow: hidden;
	padding-block: 20px 65px;
	padding-inline: 0;
	position: relative;
}

.contact__message {
	font-weight: 500;
	letter-spacing: 1.6px;
	line-height: 30px; /* 187.5% */
	margin: 50px auto;
	max-width: 500px;
}

.contact__form {
	display: flex;
	flex-direction: column;
	margin-inline: auto;
	max-width: 500px;
}

.contact__row {
	display: grid; /* 各入力項目 */
	grid-template-columns: 1fr;
	margin-block-end: 15px;
}

.contact__row--type {
	margin-block: 5px 20px; /* ご相談内容 */
}

.contact__row--message {
	margin-block-end: 0; /* お問い合わせ内容 */
}

.contact__head {
	font-weight: 700; /* 項目名 */
	letter-spacing: 1.6px;
	line-height: 30px; /* 187.5% */
	padding-inline-start: 60px;
}

.contact__head-label {
	display: inline-flex;
	position: relative; /* 必須・任意 */
}

.contact__head-label::after {
	align-items: center;
	color: #FFFFFF;
	display: flex;
	font-size: 14px;
	font-weight: 500;
	height: 22px;
	justify-content: center;
	left: -60px;
	letter-spacing: 1.4px;
	position: absolute;
	top: 50%;
	translate: 0 -50%;
	width: 50px;
}

.contact__head-label--must { /* 必須 */
}

.contact__head-label--must::after {
	background-color: #61CEDE;
	content: "必須";
}

.contact__head-label--optional { /* 任意 */
}

.contact__head-label--optional::after {
	background-color: #B8B8B8;
	content: "任意";
}

input[type=text],
input[type=email],
input[type=tel],
textarea {
	border: 1px solid #3C3C3C;
	border-radius: 0;
	border-radius: 5px;
	font-size: 14px;
	font-weight: 500;
	height: 45px;
	letter-spacing: 1.4px;
	line-height: 30px; /* 214.286% */
	padding: 7px 18px 7px 10px;
	width: 100%;
}

input[type=text]::-moz-placeholder,
input[type=email]::-moz-placeholder,
input[type=tel]::-moz-placeholder,
textarea::-moz-placeholder {
	color: #B8B8B8;
}

input[type=text]::placeholder,
input[type=email]::placeholder,
input[type=tel]::placeholder,
textarea::placeholder {
	color: #B8B8B8;
}

textarea {
	font-weight: 400;
	height: 300px;
	letter-spacing: 0.7px;
	line-height: 160%; /* 22.4px */
	padding: 10px 7px;
	resize: vertical;
}

/* フォーカス時 */

input[type=text]:focus,
input[type=email]:focus,
textarea:focus {
	outline: 1px solid #61CEDE;
}

input[type=radio] {
	opacity: 0;
	pointer-events: none;
	position: absolute; /* デフォルトのものを消す */
}

/* チェックされた時の挙動 */

input[type=radio]:checked + span::after {
	opacity: 1;
}

.contact__inquiry-type {
	display: grid;
	gap: 15px 25px;
	grid-template-columns: 270px auto;
}

.contact__inquiry-type .wpcf7-list-item {
	align-items: center;
	display: inline-flex;
	font-size: 14px;
	line-height: 1.6;
	position: relative;
}

.contact__inquiry-type .wpcf7-list-item label {
	align-items: center;
	cursor: pointer;
	display: inline-flex;
	line-height: 1.6;
	padding-left: 26px;
	position: relative;
}

.contact__inquiry-type .wpcf7-list-item label::before {
	border: 1px solid #3C3C3C;
	border-radius: 3px;
	content: ""; /* チェックボックス */
	height: 20px;
	left: 0;
	position: absolute;
	top: 50%;
	translate: 0 -50%;
	width: 20px;
}

.contact__inquiry-type .wpcf7-list-item label:focus-within::before {
	border: 1px solid #61CEDE; /* フォーカス時 */
}

/* チェックマーク */

.contact__inquiry-type input[type=radio]:checked + .wpcf7-list-item-label::after {
	border-bottom: 2px solid #61CEDE;
	border-right: 2px solid #61CEDE;
	content: "";
	height: 12px;
	left: 7px;
	position: absolute;
	rotate: 45deg;
	top: 50%;
	transition: opacity 0.3s ease;
	translate: 0 -50%;
	width: 6px;
}

.contact__acceptance {
	border: 15px solid #DCEEF1;
	grid-template-columns: 1fr;
	letter-spacing: 0.8px;
	line-height: 35px; /* 175% */
	margin-block: 25px;
}

.contact__acceptance span {
	cursor: pointer;
	display: inline-block;
	font-size: 14px;
	letter-spacing: 0.8px;
	line-height: 35px;
	line-height: 160%; /* 22.4px */
	padding-left: 30px;
	position: relative;
}

.contact__acceptance span::before {
	border: 1px solid #3C3C3C;
	border-radius: 3px;
	content: ""; /* ボックス */
	height: 20px;
	left: 0;
	position: absolute;
	top: 50%;
	translate: 0 -50%;
	width: 20px;
}

.contact__acceptance span::after {
	border-bottom: 2px solid #61CEDE;
	border-right: 2px solid #61CEDE;
	content: ""; /* チェックマーク */
	height: 12px;
	left: 7px;
	opacity: 0;
	position: absolute;
	rotate: 45deg;
	top: 50%;
	transition: opacity 0.3s ease;
	translate: 0 -50%;
	width: 6px;
}

.contact__acceptance a {
	border-bottom: 1px solid #61CEDE;
	color: #61CEDE;
	font-weight: 700;
	transition: border-color 0.3s ease 0.3s, opacity 0.3s ease;
}

input[type=checkbox] {
	height: 1px;
	position: absolute;
	width: 1px; /* デフォルトのものを消す */
	clip: rect(0, 0, 0, 0);
}

/* フォーカス時 */

input[type=checkbox]:focus + span::before {
	border: 1px solid #61CEDE;
}

/* チェックされた時の挙動 */

input[type=checkbox]:checked + span::after {
	opacity: 1;
}

input[type=submit],
input[type=button] {
	border-radius: 0px;
	-webkit-box-sizing: content-box;
	-webkit-appearance: button;
	-moz-appearance: button;
	appearance: button;
	background: transparent;
	border: none;
	box-sizing: border-box;
	cursor: pointer;
}

input[type=submit]::-webkit-search-decoration,
input[type=button]::-webkit-search-decoration {
	display: none;
}

.contact__btn-link {
	align-items: center;
	background-color: #61CEDE;
	border: 1px solid #3C3C3C;
	border-radius: 13px;
	box-shadow: 0 5px 0 0 #3c3c3c;
	color: #FFFFFF;
	display: flex;
	font-size: 14px;
	font-weight: 700;
	height: 29px;
	justify-content: center;
	margin-inline: auto;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
	width: 162px;
}

.contact__btn-link--no-active {
	background-color: #FFFFFF;
	color: #B8B8B8;
	cursor: default;
	pointer-events: none;
}

.contact__btn-link:focus {
	box-shadow: none;
	outline: none;
	transform: translateY(5px);
}

.wpcf7-form-control-wrap {
	width: 100%;
}

#privacyModal {
	display: none; /* プライバシーポリシーのモーダル制御 */
	opacity: 0;
	transition: opacity 0.3s ease;
}

#privacyModal.is-active {
	display: block;
	opacity: 1;
}

.contact__modal-container {
	background-color: rgba(0, 0, 0, 0.8);
	cursor: pointer;
	height: 100dvh;
	left: 0;
	opacity: 0;
	pointer-events: none;
	position: fixed;
	top: 0;
	transition: opacity 0.5s ease, visibility 0.5s ease;
	visibility: hidden;
	width: 100%;
	z-index: 1000;
}

.contact__modal-container.is-active {
	opacity: 1;
	pointer-events: auto;
	visibility: visible;
}

.contact__modal-content {
	background-color: #FFFFFF;
	border-radius: 20px;
	cursor: default;
	display: flex;
	flex-direction: column;
	left: 50%;
	max-height: min(90dvh, 900px);
	overflow: hidden;
	position: absolute;
	top: 50%;
	translate: -50% -50%;
	width: min(90%, 1100px);
}

.contact__modal-head {
	align-items: center;
	background-color: #61CEDE;
	display: flex;
	flex: 0 0 auto;
	height: 135px;
	justify-content: space-between;
	padding-block-end: 20px;
	padding-inline: 40px;
	width: 100%;
}

.contact__modal-body {
	flex: 1 1 auto;
	min-height: 0;
	overflow: auto;
	-webkit-overflow-scrolling: touch;
	padding: 60px 40px;
}

.contact__modal-lead {
	font-size: 14px;
	letter-spacing: 1.4px;
	line-height: 30px; /* 214.286% */
}

.contact__modal-items {
	display: flex;
	flex-direction: column;
	gap: 40px;
	margin-block-start: 40px;
}

.contact__modal-item-title {
	letter-spacing: 1.6px;
	margin-block-end: 10px;
}

.contact__modal-item-text {
	font-size: 14px;
	letter-spacing: 1.4px;
	line-height: 30px; /* 214.286% */
	margin-inline-start: 20px;
}

.contact__modal-item-btn,
.contact__modal-item-link {
	color: #61CEDE;
	margin-block-start: 5px;
	position: relative;
}

.contact__modal-item-btn::after,
.contact__modal-item-link::after {
	background-color: #61CEDE;
	bottom: -2px;
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	width: 0;
}

.contact-page .confirmation {
	display: block;
	margin-inline: auto;
	max-width: 584px;
}

.contact-page .confirmation--hidden {
	display: none; /* 確認画面のデフォルトは非表示 */
}

.contact-page .confirmation .form__items {
	margin-top: 101px;
	text-align: left;
}

.contact-page .confirmation .form__item {
	display: block;
	margin-bottom: 32px;
}

.contact-page .confirmation .form__item:last-of-type {
	margin-bottom: 0;
}

.contact-page .confirmation .form__item--hidden {
	display: none; /* 確認用メールアドレスのデフォルトは非表示 */
}

.contact-page .confirmation .form__item-title {
	font-weight: 500;
	letter-spacing: 1.6px;
	line-height: 2;
}

.contact-page .confirmation .form__item-value {
	font-weight: 700;
	letter-spacing: 1.6px;
	line-height: 1.8;
}

.contact-page .confirmation .form__btn-wrapper {
	display: flex;
	flex-direction: column;
	gap: 24px;
	margin-top: 62px;
}

.contact-page .confirmation .form__btn-wrapper .btn button {
	width: 100%;
}

.wpcf7-not-valid-tip {
	color: red;
	display: block !important;
	font-size: 14px;
	margin-block-start: 4px;
}

#thanks {
	display: none;
	text-align: center;
}

.contact-page .message__main-text {
	font-family: "Shippori Mincho B1", sans-serif;
	font-size: 36px;
	font-weight: 600;
	letter-spacing: 2.88px;
	line-height: 180%; /* 64.8px */
	margin-block: 80px 31px;
}

.contact-page .message__sub-text {
	letter-spacing: 0.8px;
	line-height: 2;
	margin-bottom: 76px;
}

/*===================================================================
# Privacy Policy
===================================================================*/

.policy__inner {
	background-color: #61CEDE;
	padding-block: 150px 100px;
}

.policy__body {
	background-color: #FFFFFF;
	border-radius: 20px;
	margin: 60px auto 0;
	max-width: 900px;
	padding: 60px 40px;
}

.policy__lead {
	font-size: 16px;
	letter-spacing: 1.4px;
	line-height: 1.8;
}

.policy__items {
	display: flex;
	flex-direction: column;
	gap: 40px;
	margin-block-start: 40px;
}

.policy__item-title {
	font-size: 18px;
	letter-spacing: 1.8px;
	margin-block-end: 10px;
}

.policy__item-text {
	font-size: 16px;
	letter-spacing: 1.6px;
	line-height: 30px; /* 214.286% */
	margin-inline-start: 20px;
}

.policy__item-btn,
.policy__item-link {
	color: #61CEDE;
	margin-block-start: 5px;
	position: relative;
}

.policy__item-btn::after,
.policy__item-link::after {
	background-color: #61CEDE;
	bottom: -2px;
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	width: 0;
}

.policy__inner-low {
	background-color: #FFFFFF;
	height: 60px;
}

/*===================================================================
# Service
===================================================================*/

.error-404 {
	padding-block: 250px;
}

.error-404__title {
	color: #61CEDE;
	font-size: 40px;
	font-weight: 700;
	text-align: center;
}

.error-404__title-en {
	margin-inline-start: 30px;
}

.error-404__message {
	font-size: 24px;
	margin-block: 10px 60px;
	text-align: center;
}

.error-404__link-wrapper {
	display: flex;
	justify-content: center;
}

.error-404__link {
	align-items: center;
	background-color: #FFFFFF;
	border: 3px solid #61CEDE;
	border-radius: 999px;
	box-shadow: 4px 4px 8px 0 rgba(0, 0, 0, 0.4);
	display: inline-flex;
	font-size: 20px;
	gap: 10px;
	height: 60px;
	justify-content: center;
	transition: opacity 0.3s ease;
	width: 200px;
}

.error-404__link-icon path {
	fill: #61CEDE;
}

/*===================================================================
# ブレークポイントによる表示 / 非表示
===================================================================*/

.show__sp {
	display: none; /* spのみ表示 */
}

.show__tab {
	display: none; /* tabのみ表示 */
}

.show__tab-pc {
	display: block; /* tab～pc間で表示 */
}

.show__tab-pc--inline {
	display: inline-block;
}

.show__medium-pc {
	display: block; /* medium～pc間で表示 */
}

.show__sp-medium {
	display: none; /* sp～medium間で表示 */
}

@media (any-hover: hover) {

.header__list li a:hover::after {
	width: 100%;
}

.header__btn:hover {
	background: transparent;
	color: #FFD400;
}

.header__btn:hover::after {
	opacity: 1;
	transform: scale(1);
}

.footer__logo-link:hover .footer__logo {
	color: #61CEDE;
}

.footer__sns-link:hover {
	opacity: 0.7;
}

.footer__link:hover::after {
	width: 100%;
}

.footer__to-top:hover {
	border: 2px solid #61CEDE;
	color: #61CEDE;
}

.footer__to-top:hover ~ .footer__rocket {
	color: #61CEDE;
}

.works__btn:hover {
	box-shadow: none;
	transform: translateY(5px);
}

.works__modal-link:hover {
	background-color: #FFD400;
}

.faq__question:hover {
	cursor: pointer;
}

.contact__acceptance a:hover {
	border-color: transparent;
	opacity: 0.7;
}

.contact__btn-link:hover {
	box-shadow: none;
	transform: translateY(5px);
}

.contact__modal-item-btn:hover::after,
.contact__modal-item-link:hover::after {
	width: 100%;
}

.policy__item-btn:hover::after,
.policy__item-link:hover::after {
	width: 100%;
}

.error-404__link:hover {
	opacity: 0.7;
}

}

@media (prefers-reduced-motion: reduce) {

.fv__rocket,
.fv__rocket.rocket-go,
.fv__rocket.rocket-reset,
.fv__rocket.rocket-reappear {
	animation: none !important;
	opacity: 1 !important;
	transform: translate(0, var(--startY)) !important;
}

}

@media screen and (min-width: 500px) and (max-width: 767px) {

.works__items {
	grid-template-columns: repeat(2, 1fr);
}

}

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

.fv__title {
	font-size: clamp(90px, -30.4705882353px + 15.6862745098vw, 130px);
	line-height: clamp(90px, -30.4705882353px + 15.6862745098vw, 130px); /* 100% */
	padding-block-start: 330px;
}

.fv__slide-container {
	left: clamp(70px, -622.7058823529px + 90.1960784314vw, 300px);
}

.fv__rocket {
	top: clamp(0px, -156.6117647059px + 20.3921568627vw, 52px);
}

.service__inner {
	padding-inline: clamp(20px, -160.7058823529px + 23.5294117647vw, 80px);
}

.service__img {
	width: clamp(255px, 119.4705882353px + 17.6470588235vw, 300px);
}

.about__inner {
	padding-inline: clamp(20px, -130.5882352941px + 19.6078431373vw, 70px);
}

.about__profile {
	max-width: clamp(450px, -107.1764705882px + 72.5490196078vw, 635px);
}

.about__profile-message-wrapper {
	width: 100%;
}

.about__profile-img {
	height: auto;
	left: calc(100% - 50px);
	right: auto;
	width: 300px;
}

.show__tab {
	display: block;
}

.show__medium-pc {
	display: none;
}

.show__sp-medium {
	display: block;
}

}

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

.about__inner {
	padding-inline-start: clamp(70px, -692.0465116279px + 74.4186046512vw, 230px);
}

.show__sp-medium {
	display: block;
}

}

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

.header {
	height: 50px;
}

.header__inner {
	padding-inline-start: 16px;
}

.header__logo {
	padding-block-end: 4px;
}

.header__logo span {
	line-height: 1;
}

.header__logo-main {
	font-size: 28px;
	letter-spacing: 1.68px;
}

.header__logo-sub {
	font-size: 15px;
	letter-spacing: 0.9px;
}

.header__nav {
	display: none;
}

.footer__upper-wrapper {
	margin-inline: 0;
}

.footer__upper {
	margin: 0 auto 12px;
	max-width: calc(100% - 24px);
	padding: 50px 50px 125px 50px;
}

.footer__logo-wrapper {
	text-align: left;
}

.footer__logo--jp {
	font-size: 32px;
	letter-spacing: 1.92px;
}

.footer__logo--en {
	font-size: 16px;
	letter-spacing: 0.96px;
}

.footer__sns {
	justify-content: flex-start;
	margin-block: 40px;
}

.footer__lists {
	flex-direction: column;
	row-gap: 20px;
}

.footer__link {
	padding: 0;
}

.footer__to-top-wrapper {
	bottom: 27px;
	right: 20px;
	top: auto;
}

.drawer__icon {
	display: flex;
}

.inner {
	padding-inline: 12px;
}

.section__title-en {
	font-size: 40px;
	letter-spacing: 4px;
}

.section__title-en--policy {
	font-size: 33px;
}

.section__title-en--modal-policy {
	font-size: 28px;
}

.section__title-jp {
	font-size: 15px;
	letter-spacing: 1.5px;
	margin-inline-start: 34px;
}

.section__title-jp::before {
	height: 22px;
	left: -34px;
	width: 21px;
}

.section__title--service {
	position: relative;
	top: 0;
}

.fv {
	padding-block-start: 50px;
}

.fv__inner {
	height: clamp(390px, 189.1071428571px + 53.5714285714vw, 600px);
	overflow: hidden;
	width: 100%;
}

.fv__title {
	font-size: clamp(48px, 7.8214285714px + 10.7142857143vw, 90px);
	left: 3.5%;
	letter-spacing: 8.16px; /* 17% */
	line-height: clamp(48px, 7.8214285714px + 10.7142857143vw, 90px);
	padding-block-start: clamp(242px, 90.8520408163px + 40.306122449vw, 400px);
	padding-inline-start: 0;
	position: absolute;
}

.fv__bg--left {
	bottom: 145px;
	height: auto;
	left: -15px;
	width: 38.5%;
}

.fv__bg--center {
	height: 148px;
	width: 100%;
}

.fv__bg--right {
	bottom: 110px;
	height: auto;
	width: 52%;
}

.fv__slide-container {
	aspect-ratio: 16/9;
	bottom: 126px;
	height: auto;
	left: 14.4%;
	width: 66.6666666667%;
}

.fv__rocket {
	right: clamp(28px, -54.2704081633px + 21.9387755102vw, 114px);
	top: clamp(91px, 46.0382653061px + 11.9897959184vw, 138px);
	width: 34px;
	--startY: 50px;
}

.works__outer {
	padding-block: 30px 100px;
}

.works__inner {
	padding-inline: 0;
}

.works__items {
	margin-block-start: 22px;
}

.works__item img {
	height: auto;
	width: 100%;
}

.works__modal-head {
	padding-inline: 20px;
}

.works__modal-content {
	padding: 20px 15px 100px;
}

.works__modal-title {
	font-size: 16px;
	letter-spacing: 1.5px;
}

.works__modal-items li {
	flex-direction: column;
}

.works__modal-item-title {
	margin-block-end: 7px;
}

.works__modal-movie-pc {
	width: 100%;
}

.works__modal-movie-sp {
	width: 100%;
}

.works__modal-link {
	height: 60px;
	width: 100%;
}

.service__inner {
	border-radius: 30px;
	padding: 20px 20px 59px;
}

.service__images {
	display: none;
}

.service__items {
	gap: 100px;
	margin-block-start: clamp(42px, 15.2142857143px + 7.1428571429vw, 70px);
	margin-inline: auto;
	width: clamp(270px, 193.4693877551px + 20.4081632653vw, 350px);
}

.service__item-title {
	font-size: clamp(16px, 8.3469387755px + 2.0408163265vw, 24px);
	letter-spacing: 1.6px;
}

.service__item-title::before {
	left: -22px;
	opacity: 1;
}

.service__item-img {
	display: block;
	height: auto;
	width: 100%;
}

.service__item-text {
	font-size: clamp(12px, 8.1734693878px + 1.0204081633vw, 16px);
	letter-spacing: 1.2px;
	line-height: 20px; /* 166.667% */
	margin-block-start: 0;
	margin-inline-start: 0;
}

.about__outer {
	padding-block-end: clamp(65px, -40.2295918367px + 28.0612244898vw, 175px);
	padding-block-start: 0px;
}

.about__inner {
	padding-inline-start: 0;
}

.about__profile {
	margin: 43px 18px 133px;
	padding: 65px 11px 30px;
}

.about__name-container {
	align-items: flex-start;
	flex-direction: column;
	gap: 27px;
}

.about__name {
	align-items: flex-start;
	flex-direction: column;
	row-gap: 9px;
}

.about__name-jp {
	font-size: 14px;
	height: 30px;
	letter-spacing: 2.8px;
	width: 100px;
}

.about__name-en {
	font-size: 12px;
	line-height: 2.4px;
}

.about__profile-message-wrapper {
	margin-block-start: 40px;
	width: 100%;
}

.about__profile-message {
	font-size: 12px;
	letter-spacing: 2.4px;
}

.about__profile-img {
	height: auto;
	right: -20px;
	top: -32px;
	width: 177px;
}

.about__feature-wrapper {
	gap: 82px;
	margin-inline-start: 0;
}

.about__feature {
	padding: 50px 20px 20px;
	width: 100%;
}

.about__feature--upper {
	padding-block-start: 30px;
	width: calc(100% - 20px);
}

.about__feature--upper::before {
	bottom: -38px;
	height: 75px;
	left: -10px;
	width: 77px;
}

.about__feature-title {
	left: 28px;
}

.about__feature-title span {
	font-size: 15px;
	letter-spacing: 3px;
}

.about__feature-title--1 {
	width: 260px;
}

.about__feature-title--2 {
	width: 143px;
}

.about__feature-title--3 {
	width: 215px;
}

.about__feature-message {
	font-size: 12px;
	letter-spacing: 2.4px;
}

.about__feature--lower {
	margin-inline: auto 0;
	padding-block: 40px 50px;
	width: calc(100% - 20px);
}

.about__feature--lower::after {
	height: 73px;
	right: -10px;
	top: -10px;
	width: 75px;
}

.about__feature-img {
	bottom: -65px;
	height: auto;
	right: -10px;
	width: 132.5px;
}

.about__bg-bottom {
	height: clamp(59px, -16.5739795918px + 20.1530612245vw, 138px);
}

.faq__outer {
	padding-block-end: clamp(89px, 32.5586734694px + 15.0510204082vw, 148px);
	padding-block-start: 30px;
}

.faq__inner {
	padding-inline: 0;
}

.faq__items {
	margin-block-start: 30px;
}

.faq__item {
	margin-block-end: 20px;
}

.faq__question {
	font-size: 14px;
	gap: 10px;
	height: 66px;
	letter-spacing: 1.4px;
	padding-inline: 20px 39px;
}

.faq__question-label {
	font-size: 20px;
}

.faq__question::before {
	right: 20px;
	width: 12px;
}

.faq__question::after {
	height: 12px;
	right: 24.5px;
}

.faq__question-mark {
	height: 20px;
	right: 16px;
	width: 20px;
}

.faq__answer {
	padding-inline: 20px;
}

.faq__answer-inner {
	gap: 10px;
}

.faq__answer-label {
	font-size: 20px;
}

.faq__answer-text {
	font-size: 14px;
	letter-spacing: 1.4px;
}

.faq__bg-bottom {
	background: url(../../assets/img/faq_bg_bottom_sp.png) center center/cover no-repeat;
	height: clamp(59px, 2.5586734694px + 15.0510204082vw, 118px);
}

.faq__item.is-opened .faq__answer-inner {
	padding-block: 12.5px;
}

.contact__message {
	font-size: 14px;
	letter-spacing: 1.4px;
	margin: 34px auto 30px;
}

.contact__inquiry-type {
	grid-template-columns: 1fr;
	margin-block-start: 10px;
	row-gap: 14px;
}

.contact__acceptance span {
	font-size: 12px;
	margin-inline-start: 10px;
	padding-block: 5px;
}

.contact__modal-head {
	height: 100px;
	padding-block-end: 10px;
	padding-inline: 20px;
}

.contact__modal-body {
	padding: 40px 20px;
}

.contact-page .confirmation .form__items {
	margin-top: 70px;
}

.contact-page .confirmation .form__item {
	margin-bottom: 41px;
}

.contact-page .confirmation .form__item-title {
	font-size: 18px;
	letter-spacing: 0.72px;
	line-height: 35px; /* 194.444% */
}

.contact-page .confirmation .form__item-value {
	font-size: 18px;
	letter-spacing: 0.72px;
	line-height: 28px; /* 155.556% */
	margin-top: 2px;
}

.contact-page .confirmation .form__btn-wrapper {
	margin-top: 66px;
}

.contact-page .message__main-text {
	font-size: 28px;
	letter-spacing: 1.12px;
	line-height: 45px; /* 160.714% */
	margin-block: 61px 20px;
}

.contact-page .message__sub-text {
	font-size: 18px;
	letter-spacing: 0.72px;
	line-height: 1.95;
	margin-bottom: 54px;
}

.policy__inner {
	padding-block: 80px 60px;
}

.policy__body {
	padding: 40px 20px;
}

.policy__inner-low {
	height: 40px;
}

.show__sp {
	display: block;
}

.show__tab-pc--inline {
	display: none;
}

.show__tab-pc {
	display: none;
}

.show__medium-pc {
	display: none;
}

}

@media (max-width: 499px) {

.works__items {
	grid-template-columns: 1fr;
}

}

@keyframes rocket-fly {

0% {
	opacity: 1;
	transform: translate(0, var(--startY)) scale(1);
}

70% {
	opacity: 0.9; /* var(--startY) からさらに上へ150px */
	transform: translate(-100px, calc(var(--startY) - 150px)) scale(0.7);
}

100% {
	opacity: 0; /* さらに上へ300px、左へ200px、消える */
	transform: translate(-200px, calc(var(--startY) - 300px)) scale(0.5);
}

}

@keyframes rocket-reappear {

from {
	opacity: 0;
	transform: translate(0, 0) scale(1); /* ← TOP位置のまま */
}

to {
	opacity: 1;
	transform: translate(0, 0) scale(1); /* ← TOP位置のまま */
}

}

@keyframes orbit {

from {
	transform: rotate(0deg);
}

to {
	transform: rotate(-360deg);
}

}

