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

html {
	font-size: 16px;
}

html {
	height: 100%;
	scroll-behavior: smooth;
}

body {
	color: #333333;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 400;
	line-height: 1.5;
}

/* bodyにこのクラスがついている間はスクロール不可 */

body.is-fixed {
	overflow: hidden;
}

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

a {
	cursor: pointer;
	text-decoration: none;
}

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

.header {
	height: 5rem;
	left: 0;
	position: fixed;
	top: 0;
	transition: background-color 0.4s ease, height 0.4s ease, box-shadow 0.4s ease;
	width: 100%;
	z-index: 100;
}

.header__inner {
	align-items: center;
	display: grid;
	grid-template-columns: 8.125rem 1fr;
	height: 100%;
	margin-inline: auto;
	max-width: 62.5rem;
}

.header__logo {
	aspect-ratio: 130/59;
	height: auto;
	width: 8.125rem;
}

.header__logo img {
	height: 100%;
	width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.header__nav {
	align-items: center;
	display: flex;
	justify-content: end;
	-moz-column-gap: 1.875rem;
	column-gap: 1.875rem;
}

.header__list {
	display: flex;
	-moz-column-gap: 1.875rem;
	column-gap: 1.875rem;
}

.header__list li a {
	font-size: 0.9375rem;
	font-weight: 700;
	letter-spacing: 0.046875rem;
}

.header__btn {
	align-items: center;
	background-color: transparent;
	border-radius: 62.4375rem;
	color: #FFF;
	display: flex;
	height: 2.625rem;
	justify-content: center;
	margin-block-start: -0.125rem;
	padding-block-end: 0.0625rem;
	position: relative;
	transition: all 0.3s ease;
	width: 14.125rem;
	z-index: 3;
}

.header__btn span {
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.05625rem;
	position: relative;
	transition: transform 0.2s ease;
	z-index: 3;
}

.header__btn::before {
	background: #830800;
	border-radius: 62.4375rem;
	content: "";
	inset: 0;
	position: absolute;
	transform: translateY(0.25rem);
	z-index: 1;
}

.header__btn::after {
	background: linear-gradient(90deg, #FF5900 0%, #E82114 41.22%, #E82114 100%);
	border-radius: 62.4375rem;
	content: "";
	inset: 0;
	position: absolute;
	transition: transform 0.2s ease;
	z-index: 2;
}

.header.is-open {
	backdrop-filter: none !important;
	background-color: #fff !important;
}

.header.is-scrolled {
	backdrop-filter: blur(0.625rem);
	background: rgba(255, 255, 255, 0.6);
	box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.05);
	height: 3.75rem;
}

.header.is-scrolled .header__logo {
	width: 6.875rem;
}

.header.is-scrolled .header__inner {
	grid-template-columns: 6.875rem 1fr;
}

.header.is-scrolled .header__nav {
	margin-inline-start: 3.1875rem;
}

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

.footer {
	background-color: #333333;
	padding-block: 3rem;
}

.footer__logo {
	display: flex;
	justify-content: center;
	margin-bottom: 1.3125rem;
}

.footer__logo a {
	display: block;
}

.footer__logo a img {
	aspect-ratio: 116/52;
	height: auto;
	width: 7.25rem;
}

.footer__copyright {
	color: #FFF;
	display: block;
	font-size: 0.6875rem;
	letter-spacing: 0.034375rem;
	line-height: 140%;
	text-align: center;
}

/*===================================================================
# Button
===================================================================*/

.button__wrapper {
	display: flex;
	justify-content: center;
}

.button {
	align-items: center;
	display: flex !important;
	height: 4.8125rem;
	justify-content: center;
	max-width: 35.75rem;
	width: 100%;
	-moz-column-gap: 1rem;
	background-color: transparent;
	column-gap: 1rem;
	position: relative;
	transition: transform 0.2s ease;
}

.button span {
	font-size: 1.5625rem;
	font-weight: 700;
	letter-spacing: 0.078125rem;
	position: relative;
	transition: transform 0.2s ease;
	z-index: 3;
}

.button svg {
	height: 1.8125rem;
	position: relative;
	transition: transform 0.2s ease;
	width: 1.8125rem;
	z-index: 3;
}

.button::before {
	background: #830800;
	border-radius: 3.125rem;
	content: "";
	inset: 0;
	position: absolute;
	transform: translateY(0.5rem);
	z-index: 1;
}

.button::after {
	background: #FFF04F;
	border-radius: 3.125rem;
	content: "";
	inset: 0;
	position: absolute;
	transition: transform 0.2s ease;
	z-index: 2;
}

/*===================================================================
# Drawer
===================================================================*/

.drawer {
	background-color: #fff;
	height: calc(100dvh - 3.75rem);
	inset: 3.75rem 0 0 0;
	overflow-y: scroll;
	position: fixed;
	transition: translate 0.5s ease;
	translate: 101%;
	width: 100%;
	z-index: 101;
}

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

.drawer { /* --- スクロール時の追従設定 --- */
}

.header.is-scrolled ~ .drawer {
	height: calc(100dvh - 3.125rem);
	top: 3.125rem;
}

.drawer__body {
	height: -moz-fit-content;
	height: fit-content;
	padding-inline: 1.25rem;
	width: 100%;
}

.drawer__list {
	display: flex;
	flex-direction: column;
	padding-block-start: 1.9375rem;
	row-gap: 1.5625rem;
}

.drawer__list li a {
	border-bottom: 0.0625rem solid #D6D6D6;
	display: block;
	font-size: 0.9375rem;
	font-weight: 700;
	letter-spacing: 0.046875rem;
	padding-block-end: 1.5rem;
}

.drawer__btn-wrapper {
	display: flex;
	justify-content: center;
	margin-block-start: 2.5rem;
}

.drawer__btn {
	align-items: center;
	background-color: transparent;
	border-radius: 62.4375rem;
	color: #FFF;
	display: flex;
	height: 2.625rem;
	justify-content: center;
	margin-block-start: -0.125rem;
	padding-block-end: 0.0625rem;
	position: relative;
	transition: all 0.3s ease;
	width: 14.125rem;
	z-index: 3;
}

.drawer__btn span {
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.05625rem;
	position: relative;
	transition: transform 0.2s ease;
	z-index: 3;
}

.drawer__btn::before {
	background: #830800;
	border-radius: 62.4375rem;
	content: "";
	inset: 0;
	position: absolute;
	transform: translateY(0.25rem);
	z-index: 1;
}

.drawer__btn::after {
	background: linear-gradient(90deg, #FF5900 0%, #E82114 41.22%, #E82114 100%);
	border-radius: 62.4375rem;
	content: "";
	inset: 0;
	position: absolute;
	transition: transform 0.2s ease;
	z-index: 2;
}

.drawer__icon {
	display: none;
	flex-direction: column;
	height: 0.875rem;
	justify-content: space-between;
	width: 2.25rem;
	z-index: 102;
}

.drawer__icon--bar {
	background-color: #333333;
	height: 0.125rem;
	transition: all 0.5s ease;
	width: 100%;
}

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

.drawer__icon.js-show .drawer__icon--bar:nth-of-type(1) {
	rotate: 25deg;
	translate: 0 0.375rem;
}

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

.drawer__icon.js-show .drawer__icon--bar:nth-of-type(3) {
	rotate: -25deg;
	translate: 0 -0.375rem;
}

/*===================================================================
# Inner
===================================================================*/

.inner {
	margin-inline: auto;
	max-width: 75rem;
	width: 100%;
}

.inner--1100 {
	max-width: 68.75rem;
}

.inner--1000 {
	max-width: 62.5rem;
}

/*===================================================================
# Section
===================================================================*/

.section__title-wrapper {
	display: grid;
	place-items: center;
	position: relative;
	text-align: center;
}

.section__title-wrapper > * {
	grid-column: 1/-1;
	grid-row: 1/-1;
}

.section__title-en {
	color: #F5F5F5;
	font-size: 12.5rem;
	font-weight: 900;
	letter-spacing: -0.5rem;
	line-height: 100%;
	z-index: 1;
}

.section__title-en--white {
	color: #FBFBFB;
}

.section__title-en--red {
	color: #EA4237;
}

.section__title-jp {
	color: #333333;
	font-feature-settings: "palt";
	font-size: 2.8125rem;
	font-weight: 700;
	letter-spacing: 0.140625rem;
	line-height: 100%;
	z-index: 2;
}

.section__title-jp--red {
	color: #E82114;
}

.section__title-jp--white {
	color: #fff;
}

.section__title-jp--yellow {
	color: #F2FF00;
}

.section__title-jp--small {
	font-size: 2.1875rem;
	letter-spacing: 0.109375rem;
}

.section__title-jp--strong {
	font-size: 3.125rem;
	font-weight: 900;
	letter-spacing: 0.15625rem;
}

.section__title-jp--problems,
.section__title-jp--solution {
	line-height: 1.4;
	margin-block-start: 1.0625rem;
}

.section__title-jp--service {
	line-height: 1.4;
	margin-block-start: 0.8125rem;
}

.section__title-jp--contact {
	margin-block-start: 1.875rem;
}

/*===================================================================
# Animation
===================================================================*/

/* 出現アニメーション：ふわっと表示 */

.js-fadein {
	opacity: 0;
	transform: translateY(0.625rem);
	transition: opacity 0.5s ease, transform 0.5s ease;
	will-change: opacity, transform;
}

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

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

.fv {
	padding-block: 7.375rem 2.5rem;
	position: relative;
}

.fv__contents-container {
	display: flex;
	justify-content: space-between;
	-moz-column-gap: 0.625rem;
	column-gap: 0.625rem;
	position: relative;
	z-index: 1;
}

.fv__content-texts {
	flex: 0;
	margin-block-start: 4.25rem;
}

.fv__badge {
	align-items: baseline;
	background-color: #333333;
	border-radius: 1.8125rem;
	color: #FFF;
	display: flex;
	font-size: 1.375rem;
	font-style: normal;
	font-weight: 700;
	height: 2.8125rem;
	justify-content: center;
	letter-spacing: 0.04375rem;
	line-height: 2.5625rem;
	position: relative;
	width: 27.6875rem;
}

.fv__badge--small {
	font-size: 1rem;
	letter-spacing: 0.03125rem;
	line-height: 2.5625rem;
	vertical-align: bottom;
}

.fv__badge::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='23' viewBox='0 0 20 23' fill='none'%3E%3Cpath d='M0 23L20 0H2.5L0 23Z' fill='%23333333'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: contain;
	bottom: -1.1875rem;
	content: "";
	height: 1.4375rem;
	left: 3.25rem;
	position: absolute; /* SVGを背景画像として指定 */
	width: 1.25rem;
}

.fv__catch-copy {
	display: flex;
	flex-direction: column;
	margin-block-start: 0.4375rem;
	white-space: nowrap;
}

.fv__catch-main {
	color: #E82114;
	font-size: 4.6875rem;
	font-weight: 900;
	letter-spacing: 0.375rem;
	line-height: 174%;
	text-align: center;
}

.fv__catch-small {
	color: #333333;
	font-size: 3.125rem;
	font-weight: 700;
	letter-spacing: 0.21875rem;
	line-height: 174%;
}

.fv__catch-sub {
	align-items: center;
	background-color: #E82114;
	color: #FFF;
	display: block;
	display: flex;
	font-size: 2.0625rem;
	font-weight: 700;
	height: 2.75rem;
	justify-content: center;
	letter-spacing: -0.020625rem;
	margin-block-start: -0.625rem;
	width: 27.6875rem;
}

.fv__features-list {
	display: flex;
	justify-content: space-between;
	margin-block-start: 3.1875rem;
}

.fv__features-list .fv__features-item:nth-child(1) .fv__features-text-wrapper {
	top: -0.625rem;
}

.fv__features-list .fv__features-item:nth-child(2) .fv__features-text-wrapper,
.fv__features-list .fv__features-item:nth-child(3) .fv__features-text-wrapper {
	top: -1.5rem;
}

.fv__features-item {
	position: relative;
}

.fv__features-text-wrapper {
	align-items: center;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	left: 50%;
	position: absolute;
	row-gap: 0.46875rem;
	translate: -50%;
	white-space: nowrap;
}

.fv__features-text {
	color: #E82114;
	font-feature-settings: "vpal" on;
	font-size: 1.125rem;
	font-weight: 900;
	line-height: 100%;
	text-align: center;
}

.fv__features-text--num {
	font-family: Outfit, sans-serif;
	font-size: 1.5rem;
	font-weight: 600;
}

.fv__features-text--small {
	color: #E82114;
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: -0.015rem;
	line-height: 100%;
}

.fv__features-deco {
	height: 4.03125rem;
	width: 8.5rem;
}

.fv__content-img {
	flex: 1;
}

.fv__img {
	aspect-ratio: 548.5/468;
	display: block;
	height: auto;
	max-width: 34.28125rem;
	width: 100%;
}

.fv__img img {
	height: 100%;
	width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.fv__message {
	color: #FFF;
	font-feature-settings: "palt";
	font-size: 1.75rem;
	font-weight: 700;
	letter-spacing: 0.0875rem;
	line-height: 150%;
	margin-block-start: 6rem;
	position: relative;
	text-align: center;
	z-index: 1;
}

.fv__message-strong {
	font-size: 2.125rem;
	font-weight: 900;
	letter-spacing: 0.10625rem;
	line-height: 150%;
}

.fv__button-wrapper {
	margin-block-start: 1.9375rem;
}

.fv__bg {
	aspect-ratio: 1440/621;
	bottom: 0;
	display: block;
	height: auto;
	left: 0;
	position: absolute;
	width: 100%;
	z-index: 0;
}

.fv__bg img {
	height: 100%;
	width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

/*===================================================================
# Problems
===================================================================*/

.problems {
	background-color: #F5F5F5;
	padding-block: 5.0625rem 0;
	position: relative;
}

.problems__inner {
	position: relative;
	width: 100%;
	z-index: 3;
}

.problems__item {
	align-items: center;
	background-color: #E82114;
	color: #FFF;
	display: flex;
	filter: drop-shadow(0 0 0.5125rem rgba(255, 0, 0, 0.8));
	font-size: 1.0625rem;
	font-weight: 500;
	height: 4.375rem;
	justify-content: center;
	letter-spacing: 0.053125rem;
	line-height: 150%;
	position: absolute;
}

.problems__item::before {
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	height: 0.8125rem;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 1.125rem;
}

.problems__item:nth-child(-n+3)::before {
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="13" viewBox="0 0 18 13" fill="none"><path d="M7.22773e-09 7.54251L16.5419 -4.01675e-05L17.5914 12.0782L7.22773e-09 7.54251Z" fill="%23E82114"/></svg>');
	left: auto;
	right: -1rem;
	transform: translateY(-50%) scaleX(-1);
}

.problems__item:nth-child(n+4)::before {
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="13" viewBox="0 0 18 13" fill="none"><path d="M7.22773e-09 7.54251L16.5419 -4.01675e-05L17.5914 12.0782L7.22773e-09 7.54251Z" fill="%23E82114"/></svg>');
	left: -1rem;
	right: auto;
}

.problems__item:nth-child(1) {
	left: calc(50% - 19.8125rem - 10.625rem);
	top: 16rem;
	transform: rotate(5deg);
	width: 19.8125rem;
}

.problems__item:nth-child(2) {
	left: calc(50% - 18.5rem - 12.0625rem);
	top: 23rem;
	width: 18.5rem;
}

.problems__item:nth-child(3) {
	left: calc(50% - 18.6875rem - 11.625rem);
	top: 30.9375rem;
	transform: rotate(-5deg);
	width: 18.6875rem;
}

.problems__item:nth-child(4) {
	left: calc(50% + 10.8125rem);
	top: 16rem;
	transform: rotate(-5deg);
	width: 19.6875rem;
}

.problems__item:nth-child(5) {
	left: calc(50% + 12.1875rem);
	top: 23rem;
	width: 18.5rem;
}

.problems__item:nth-child(6) {
	left: calc(50% + 12.1875rem);
	top: 30.9375rem;
	transform: rotate(5deg);
	width: 18.5625rem;
}

.problems__item:nth-child(2)::before,
.problems__item:nth-child(3)::before,
.problems__item:nth-child(5)::before,
.problems__item:nth-child(6)::before {
	top: 30%;
	translate: 0 0;
}

.problems__img {
	aspect-ratio: 377/272.5;
	display: block;
	height: auto;
	margin-block-start: 6.5625rem;
	margin-inline: auto;
	position: relative;
	width: 23.5625rem;
}

.problems__img img {
	height: auto;
	width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.problems__triangle {
	background-color: #F5F5F5;
	bottom: -6.375rem; /* 左上(0 0), 右上(100% 0), 真ん中下(50% 100%) を結ぶ形に切り抜き */
	clip-path: polygon(0 0, 100% 0, 50% 100%);
	height: 6.375rem;
	left: 50%;
	position: absolute;
	translate: -50%;
	width: 100vw;
	z-index: 2;
}

/*===================================================================
# Solution
===================================================================*/

.solution {
	padding-block: 11.8125rem 7.125rem;
}

.solution__list {
	display: flex;
	-moz-column-gap: 2.46875rem;
	column-gap: 2.46875rem;
	margin-block-start: 21.5rem;
}

.solution__item {
	position: relative;
	width: 19.1875rem;
}

.solution__item-img {
	aspect-ratio: 380/297.5;
	display: block;
	height: auto;
	left: 50%;
	max-height: none;
	max-width: none;
	position: absolute;
	top: -18.1875rem;
	translate: -50%;
	width: 23.75rem;
}

.solution__item-img img {
	height: 100%;
	width: 100%;
	-o-object-fit: contain;
	object-fit: contain;
}

.solution__item-title {
	color: #E82114;
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: 0.075rem;
	line-height: 150%;
}

.solution__item-text {
	font-weight: 500;
	letter-spacing: 0.05rem;
	line-height: 150%;
	margin-block-start: 1rem;
}

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

.service {
	background-color: #E82114;
	padding-block: 5.5rem 6.0625rem;
	padding-block: 2.5625rem 4.4375rem;
	position: relative;
}

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

.service__card-title {
	color: #FFF;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 130%;
	margin-block-start: 2.5625rem;
	text-align: center;
}

.service__card-title--strong {
	color: #F2FF00;
	font-size: 1.75rem;
	font-weight: 900;
}

.service__card-title--marketing {
	margin-block-start: 3.5625rem;
}

.service__card-list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	-moz-column-gap: 1.5rem;
	column-gap: 1.5rem;
	margin-block-start: 1.6875rem;
}

.service__card-item {
	align-items: center;
	align-self: stretch;
	background-color: #FFF;
	border-radius: 1.25rem;
	display: flex;
	flex-direction: column;
	height: auto;
	padding: 2rem 1.4375rem 1.6875rem;
	width: 100%;
}

.service__card-img {
	height: auto;
}

.service__card-img--1 {
	aspect-ratio: 46/79;
	width: 2.875rem;
}

.service__card-img--2 {
	aspect-ratio: 52/79;
	width: 3.25rem;
}

.service__card-img--3 {
	aspect-ratio: 57/79;
	width: 3.5625rem;
}

.service__card-img--4 {
	aspect-ratio: 49/79;
	width: 3.0625rem;
}

.service__card-img--5 {
	aspect-ratio: 53/79;
	width: 3.3125rem;
}

.service__card-img--6 {
	aspect-ratio: 72/79;
	width: 4.5rem;
}

.service__card-img--7 {
	aspect-ratio: 51/79;
	width: 3.1875rem;
}

.service__card-img--8 {
	aspect-ratio: 59/79;
	width: 3.6875rem;
}

.service__card-item-title {
	color: #E82114;
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.0625rem;
	line-height: 120%;
	margin-block-start: 1.125rem;
	text-align: center;
}

.service__card-item-text {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
	line-height: 150%;
	margin-block-start: 0.4375rem;
}

.service__image-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.125rem;
	margin-block-start: 4rem;
	width: 62.5rem;
}

.service__image-item {
	flex: 0 0 auto;
}

.service__image-item:nth-child(1) {
	width: 25.875rem;
}

.service__image-item:nth-child(2) {
	width: 10.5rem;
}

.service__image-item:nth-child(3) {
	width: 25.875rem;
}

.service__image-item:nth-child(4) {
	width: 16.5625rem;
}

.service__image-item:nth-child(5) {
	width: 29.125rem;
}

.service__image-item:nth-child(6) {
	width: 16.5625rem;
}

.service__img {
	height: 12.8125rem;
	width: 100%;
}

.service__image-item:nth-child(n+4) .service__img {
	height: 16.25rem;
}

.service__img img {
	height: 100%;
	width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
	-o-object-position: center;
	object-position: center;
}

.service__message {
	color: #FFF;
	font-size: 1.75rem;
	font-weight: 700;
	letter-spacing: 0.0875rem;
	line-height: 150%;
	margin-block-start: 5.3125rem;
	text-align: center;
}

.service__message--strong {
	font-size: 2.125rem;
	font-weight: 900;
	letter-spacing: 0.10625rem;
}

.service__button-wrapper {
	margin-block-start: 1.9375rem;
}

.service__bg {
	aspect-ratio: 1440/753;
	bottom: 0;
	display: block;
	height: auto;
	left: 0;
	position: absolute;
	width: 100%;
	z-index: 0;
}

.service__bg img {
	height: 100%;
	width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

/*===================================================================
# Reasons
===================================================================*/

.reasons {
	padding-block: 5rem 7.5rem;
}

.reasons__list {
	display: flex;
	flex-direction: column;
	margin: 2.6875rem auto;
	max-width: 46rem;
	row-gap: 2.5rem;
	width: 100%;
}

.reasons__item {
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
	border-radius: 1.875rem;
	box-shadow: 0 0 0.5125rem 0 rgba(255, 0, 0, 0.8);
	padding: 0.75rem 2.5rem 2.125rem;
}

.reasons__item:nth-child(1) {
	background-image: url("../img/reasons_bg01.webp");
}

.reasons__item:nth-child(2) {
	background-image: url("../img/reasons_bg02.webp");
}

.reasons__item:nth-child(3) {
	background-image: url("../img/reasons_bg03.webp");
}

.reasons__num-wrapper {
	align-items: center;
	display: flex;
	-moz-column-gap: 0.5rem;
	column-gap: 0.5rem;
}

.reasons__num-text {
	color: #FFF;
	font-family: "Oswald", sans-serif;
	font-size: 1.5625rem;
	font-style: italic;
	font-weight: 600;
	letter-spacing: 0.078125rem;
	line-height: 150%;
}

.reasons__num {
	color: #FFF;
	font-family: "Oswald", sans-serif;
	font-size: 3.4375rem;
	font-style: italic;
	font-weight: 600;
	letter-spacing: 0.171875rem;
	line-height: 150%;
}

.reasons__item-title {
	color: #FFF;
	font-feature-settings: "palt";
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: 0.075rem;
	line-height: 150%;
	margin-block-start: 0.3125rem;
}

.reasons__item-text {
	color: #FFF;
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
	line-height: 150%;
	margin-block-start: 0.625rem;
}

/*===================================================================
# Case
===================================================================*/

.case {
	background-color: #F5F5F5;
	overflow: hidden;
	padding-block: 3.4375rem 6.5rem;
	position: relative;
}

.case__list {
	display: flex;
	margin-inline: auto;
	max-width: 62.5rem;
	-moz-column-gap: 1.5rem;
	column-gap: 1.5rem;
	margin-block-start: 2.875rem;
	position: relative;
	z-index: 2;
}

.case__item {
	background-color: #fff;
	border-radius: 1.25rem;
	padding: 2.5rem 2.5rem 2.1875rem;
}

.case__img {
	aspect-ratio: 408/200;
	border-radius: 1.25rem;
	box-shadow: 0 0.625rem 0.76875rem rgba(0, 0, 0, 0.15);
	display: block;
	height: auto;
	overflow: hidden;
	width: 100%;
}

.case__img img {
	height: 100%;
	width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.case__item-company {
	font-size: 1.125rem;
	font-weight: 700;
	letter-spacing: 0.05625rem;
	line-height: 150%;
	margin-block-start: 2.0625rem;
}

.case__item-name {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
	line-height: 150%;
	margin-block-start: 0.0625rem;
}

.case__content {
	margin-block-start: 0.875rem;
}

.case__info-group:not(:first-child) {
	margin-block-start: 0.8125rem;
}

.case__info-title {
	border-bottom: 0.0625rem solid #E82114;
	color: #E82114;
	display: block;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.05rem;
	line-height: 150%;
	padding-bottom: 0;
}

.case__info-list {
	list-style: none;
	margin-block-start: 0.6875rem;
	padding-left: 0;
}

.case__info-list li {
	font-size: 0.875rem;
	letter-spacing: 0.04375rem;
	line-height: 150%;
	padding-left: 1em;
	position: relative;
}

.case__info-list li::before {
	content: "・";
	left: 0;
	position: absolute;
}

.case__info-list li:not(:first-child) {
	margin-block-start: 0.3125rem;
}

.case__message {
	color: #FFF;
	font-size: 1.75rem;
	font-weight: 700;
	letter-spacing: 0.0875rem;
	line-height: 150%;
	margin-block-start: 5.25rem;
	position: relative;
	text-align: center;
	z-index: 2;
}

.case__message--strong {
	font-size: 2.125rem;
	font-weight: 900;
	letter-spacing: 0.10625rem;
}

.case__button-wrapper {
	margin-block-start: 1.875rem;
	position: relative;
	z-index: 2;
}

.case__bg {
	aspect-ratio: 1440/1304;
	bottom: 0;
	display: block;
	height: auto;
	left: 0;
	position: absolute;
	width: 100%;
	z-index: 0;
}

.case__bg img {
	height: 100%;
	width: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

/*===================================================================
# Faq
===================================================================*/

.faq {
	background: #fff;
	padding-block: 5.625rem 7.5rem;
}

.faq__items {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(2, 1fr);
	margin-block-start: 4.5625rem;
	width: 100%;
}

.faq__item {
	border: 0.0625rem solid #E5E5E5;
	border-radius: 1.25rem;
	height: auto;
	padding-block-end: 1.5rem;
	width: 100%;
}

.faq__summary {
	align-items: center;
	display: flex;
	justify-content: space-between;
	list-style: none; /* デフォルトの三角マークを非表示 */
	position: relative;
	-moz-column-gap: 0.5rem;
	column-gap: 0.5rem;
	padding: 1.5rem 1.5rem 0 1rem;
}

.faq__summary-icon {
	align-items: center;
	background-color: #E82114;
	border-radius: 50%;
	color: #FFF;
	display: flex;
	filter: drop-shadow(0 0 rm(8.2) rgba(255, 0, 0, 0.24));
	flex-shrink: 0;
	font-size: 1.25rem;
	font-weight: 700;
	height: 2.3125rem;
	justify-content: center;
	width: 2.3125rem;
}

.faq__summary-icon--answer {
	background-color: transparent;
	border: 0.0625rem solid #333333;
	color: #333333;
	filter: none;
}

.faq__summary-text {
	flex: 1;
	font-weight: 700; /* 質問テキスト */
	letter-spacing: 0.05rem;
	line-height: 150%;
}

.faq__item-arrow {
	flex-shrink: 0;
	height: 1.875rem;
	transform: rotate(0deg); /* 閉：0° */
	transition: transform 0.32s ease;
	width: 1.875rem;
}

.faq__content {
	display: grid;
	grid-template-rows: 0fr;
	opacity: 0;
	overflow: hidden;
	transition: grid-template-rows 0.32s ease, opacity 0.2s ease;
}

.faq__content-inner {
	min-height: 0;
	padding-inline: 1rem 4.375rem;
}

.faq__answer-wrapper {
	align-items: center;
	display: flex;
	-moz-column-gap: 0.5rem;
	column-gap: 0.5rem;
	padding-block-start: 1.5rem;
}

.faq__answer {
	font-size: 0.9375rem; /* 回答テキスト */
	letter-spacing: 0.046875rem;
	line-height: 150%;
}

/* --- 開閉時の挙動 --- */

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

.faq__item.is-opened .faq__item-arrow {
	transform: rotate(180deg);
}

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

.contact {
	background-color: #F5F5F5;
	padding-block: 3.625rem 6rem;
}

.contact__title {
	font-size: 2.5rem;
	font-weight: 700;
	line-height: 140%;
	text-align: center;
	text-transform: uppercase; /* 全ての文字を大文字に変換 アクセシビリティにおいて、単語として読み上げられる */
}

.contact__form {
	display: flex;
	flex-direction: column;
	margin: 2.6875rem auto 0;
	max-width: 46rem;
	row-gap: 1.3125rem;
	width: 100%;
}

.contact__head {
	font-size: 1rem; /* 項目名 */
	font-weight: 700;
	letter-spacing: 0.05rem;
	line-height: 140%;
}

.contact__head--must {
	display: inline-flex;
	position: relative; /* 必須 */
}

.contact__head--must::after {
	align-items: center;
	background-color: #E82114;
	border-radius: 0.25rem;
	color: #fff;
	content: "必須";
	display: flex;
	font-size: 0.75rem;
	font-weight: 700;
	height: 1.375rem;
	justify-content: center;
	left: calc(100% + 0.5rem);
	position: absolute;
	top: 50%;
	translate: 0 -50%;
	white-space: nowrap;
	width: 2.5rem;
}

.contact__head--note {
	display: block;
	font-size: 0.8125rem;
	font-weight: 400;
	letter-spacing: 0.040625rem;
	line-height: 140%;
}

.contact__data {
	margin-block-start: 0.3125rem;
}

.contact__data--name {
	display: flex;
	gap: 1rem;
}

.contact__name-wrapper {
	flex: 1;
}

input[type=text],
input[type=email],
input[type=tel],
select,
textarea {
	background-color: #fff;
	border: none;
	border: 0.0625rem solid #BDBDBD;
	border-radius: 0.25rem;
	font-size: 1rem;
	padding: 0.53125rem 1rem;
	width: 100%;
}

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

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

/* フォーカス時 */

input[type=text]:focus,
input[type=email]:focus,
input[type=tel]:focus,
select:focus,
textarea:focus {
	outline: 0.0625rem solid #E82114;
}

textarea {
	height: 10rem;
	resize: vertical;
}

select {
	-moz-appearance: none;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
}

.contact__select-wrap {
	position: relative;
}

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

.contact__select-wrap svg {
	height: 0.5rem;
	pointer-events: none;
	position: absolute;
	right: 1rem;
	top: 50%;
	translate: 0 -50%;
	width: 0.875rem;
	z-index: 2;
}

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

/* フォーカス時 */

input[type=checkbox]:focus + span::before {
	border: 0.0625rem solid #E82114;
}

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

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

.contact__data-checkbox span {
	color: #333333;
	cursor: pointer;
	display: inline-block;
	font-size: 1rem;
	font-weight: 700;
	line-height: 140%;
	margin-block-start: 0.9375rem;
	padding-left: 1.5rem;
	position: relative;
}

.contact__data-checkbox span::before {
	background-color: #fff;
	border: 0.0625rem solid #000;
	border-radius: 0.25rem;
	content: ""; /* ボックス */
	height: 1rem;
	left: 0;
	position: absolute;
	top: 0.225rem;
	width: 1rem;
}

.contact__data-checkbox span::after {
	border-bottom: 0.09375rem solid #000;
	border-right: 0.09375rem solid #000;
	content: ""; /* チェックマーク */
	height: 0.625rem;
	left: 0.375rem;
	opacity: 0;
	position: absolute;
	rotate: 45deg;
	top: 0.375rem;
	transition: opacity 0.3s ease;
	width: 0.3125rem;
}

.contact__acceptance {
	text-align: center;
}

.contact__acceptance-text {
	font-size: 0.875rem;
	letter-spacing: 0.04375rem;
	line-height: 140%;
	margin-block-start: 1.5rem;
}

.contact__acceptance a {
	text-decoration: underline;
	text-underline-offset: 0.3em;
	transition: opacity 0.3s ease, text-underline-offset 0.3s ease;
}

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

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

/* フォーカス時 */

input[type=submit]:focus {
	border: none;
	outline: none;
}

.contact__submit-btn-wrapper {
	height: 4.375rem;
	isolation: isolate;
	margin-block-start: 0.1875rem;
	margin-inline: auto;
	position: relative;
	width: 23.25rem;
}

.contact__submit-btn-wrapper { /* 1. 下の影（エンジ色部分） */
}

.contact__submit-btn-wrapper::before {
	background: #830800;
	border-radius: 62.4375rem;
	content: "";
	inset: 0;
	position: absolute;
	transform: translateY(0.5rem);
	transition: background-color 0.2s ease;
	z-index: 1;
}

.contact__submit-btn-wrapper { /* 2. 上の面（グラデーション部分） */
}

.contact__submit-btn-wrapper::after {
	background: linear-gradient(90deg, #FF5900 0%, #E82114 41.22%, #E82114 100%);
	border-radius: 62.4375rem;
	content: "";
	inset: 0;
	pointer-events: none; /* マウスを透過させてinputに届ける */
	position: absolute;
	transition: transform 0.2s ease, background 0.2s ease;
	z-index: 2;
}

.contact__submit-btn-wrapper { /* 3. ボタン本体 */
}

.contact__submit-btn-wrapper .contact__submit-btn {
	-moz-appearance: none;
	appearance: none;
	-webkit-appearance: none;
	background: transparent;
	border: none;
	color: #FFF;
	cursor: pointer;
	font-size: 1.125rem;
	font-weight: 700;
	height: 100%;
	letter-spacing: 0.05625rem;
	line-height: 4.375rem;
	pointer-events: auto;
	position: relative;
	text-align: center;
	transition: transform 0.2s ease;
	width: 100%;
	z-index: 10;
}

.contact__submit-btn-wrapper .contact__submit-btn { /* --- 非活性(disabled)時のスタイル --- */
}

.contact__submit-btn-wrapper .contact__submit-btn:disabled {
	cursor: not-allowed; /* inputがdisabledの間は、親のhoverイベントも無効化したいので pointer-events を切る */
	pointer-events: auto; /* cursorを表示させるために必要 */
}

.contact__submit-btn-wrapper { /* ★ 非活性時に背景をグレーにするロジック ★ */ /* 「disabledなinputを持つラッパー」の状態を定義 */
}

.contact__submit-btn-wrapper:has(.contact__submit-btn:disabled)::after {
	background: #c9c9c9; /* グレーに変更 */
}

.contact__submit-btn-wrapper:has(.contact__submit-btn:disabled)::before {
	background: #999; /* 影も薄いグレーに */
}

.contact__submit-btn-wrapper:has(.contact__submit-btn:disabled) { /* アニメーションを無効化（hoverしても動かさない） */
	cursor: not-allowed; /* 親要素ごと禁止マークにする */
}

.contact__submit-btn-wrapper:has(.contact__submit-btn:disabled) .contact__submit-btn {
	pointer-events: auto;
}

.contact__submit-btn-wrapper { /* --- ホバー時のアニメーション（活性時のみ有効） --- */ /* 非活性時（has:disabled）ではない時だけhoverを有効にする */
}

.contact__submit-btn-wrapper:not(:has(:disabled)):hover .contact__submit-btn,
.contact__submit-btn-wrapper:not(:has(:disabled)):hover::after {
	transform: translateY(0.5rem);
}

.contact__submit-btn-wrapper:has(.contact__submit-btn:focus-visible) .contact__submit-btn,
.contact__submit-btn-wrapper:has(.contact__submit-btn:focus-visible)::after {
	transform: translateY(0.5rem);
}

/* CF7特有の「スピンアイコン」が横に並んでレイアウトを壊すのを防ぐ */

.wpcf7-form-control-wrap {
	display: block;
}

/* CF7が自動挿入するスピンアイコンを非表示にする（レイアウト崩れ防止） */

.wpcf7-spinner {
	display: none;
}

.page-layout {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.page {
	flex: 1 0 auto;
}

.footer {
	flex: 0 0 auto;
}

.page__inner {
	margin-inline: auto;
	max-width: 46.875rem;
	padding-block-start: 9.375rem;
	width: 100%;
}

.page__title {
	font-size: 2rem;
	font-weight: 700;
	text-align: center;
}

.page__contents {
	margin-block-start: 1.75rem;
}

.page__contents p {
	font-size: 1.125rem;
	line-height: 2;
}

.text--warning {
	color: #ca1c10;
}

.buttonList--vertical {
	display: flex;
	flex-direction: column;
	margin-block-start: 3.75rem;
	row-gap: 1.875rem;
}

.buttonList--vertical .button {
	margin-inline: auto;
}

.cal-modal {
	display: none;
	inset: 0;
	position: fixed;
	z-index: 9000;
}

.cal-modal.is-open {
	display: block;
}

.cal-modal__overlay {
	background-color: rgba(0, 0, 0, 0.6);
	cursor: pointer;
	inset: 0;
	position: absolute;
}

.cal-modal__inner {
	background-color: #fff;
	border-radius: 0.5rem;
	display: flex;
	flex-direction: column;
	height: calc(100svh - 2.5rem);
	left: 50%;
	overflow: hidden;
	position: absolute;
	top: 50%;
	translate: -50% -50%;
	width: min(62.5rem, 100vw - 2rem);
}

.cal-modal__close {
	align-items: center;
	background-color: #fff;
	border: none;
	border-radius: 50%;
	box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.2);
	cursor: pointer;
	display: flex;
	height: 2.25rem;
	justify-content: center;
	position: absolute;
	right: 0.75rem;
	top: 0.75rem;
	transition: opacity 0.2s ease;
	width: 2.25rem;
	z-index: 1;
}

.cal-modal__close span {
	background-color: #333;
	border-radius: 0.0625rem;
	height: 0.125rem;
	position: absolute;
	width: 1rem;
}

.cal-modal__close span:first-child {
	rotate: 45deg;
}

.cal-modal__close span:last-child {
	rotate: -45deg;
}

.cal-modal__header {
	background-color: #fff;
	border-bottom: 0.0625rem solid #e0e0e0;
	flex-shrink: 0;
	padding: 1.25rem 3.5rem 1.875rem 1.5rem;
}

.cal-modal__header-text {
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.6;
	text-align: center;
}

.cal-modal__iframe {
	border: none;
	display: block;
	flex: 1;
	min-height: 0;
	width: 100%;
}

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

.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__btn:hover::after,
.header__btn:hover span {
	transform: translateY(0.25rem);
}

.button:hover::after,
.button:hover span,
.button:hover svg {
	transform: translateY(0.5rem);
}

.faq__summary:hover {
	cursor: pointer;
}

.contact__acceptance a:hover {
	opacity: 0.7;
	text-decoration: none;
}

.cal-modal__close:hover {
	opacity: 0.7;
}

}

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

html {
	font-size: calc(16 / 1440 * 100vw);
}

.show__tab {
	display: block;
}

.show__medium-pc {
	display: none;
}

.show__sp-medium {
	display: block;
}

.show__sp-medium {
	display: block;
}

}

@media (min-width: 768px) {

.header.is-scrolled .header__btn {
	height: 2.25rem;
	margin-block-start: -0.09375rem;
	width: 12.5rem;
}

.header.is-scrolled .header__btn span {
	font-size: 1rem;
}

.header.is-scrolled .header__btn::before {
	transform: translateY(0.1875rem);
}

}

@media (min-width: 768px) and (any-hover: hover) {

.header.is-scrolled .header__btn:hover::after,
.header.is-scrolled .header__btn:hover span {
	transform: translateY(0.1875rem);
}

}

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

html {
	font-size: 16px;
}

}

@media (min-width: 1441px) {

.fv__bg {
	max-height: 42.0625rem;
}

.fv__bg img {
	-o-object-position: top;
	object-position: top;
}

.case__bg {
	aspect-ratio: auto;
	height: 1304px;
	width: 100%;
}

.case__bg img {
	-o-object-position: top;
	object-position: top;
}

}

@media (min-width: 1800px) {

.fv__message {
	color: #333333;
}

}

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

html {
	font-size: calc(16 / 375 * 100vw);
}

.header {
	height: 3.75rem;
}

.header__inner {
	display: flex;
	margin-inline: 1.25rem;
}

.header__logo {
	width: 6.25rem;
}

.header__nav {
	margin-inline: 1.9375rem 1.25rem;
}

.header__nav .header__list {
	display: none;
}

.header__btn {
	height: 2.0625rem;
	margin-block-start: -0.09375rem;
	width: 9.25rem;
}

.header__btn span {
	font-size: 0.75rem;
	letter-spacing: 0.0375rem;
}

.header__btn::before {
	transform: translateY(0.1875rem);
}

.header.is-scrolled {
	height: 3.125rem;
}

.header.is-scrolled .header__logo {
	width: 5rem;
}

.footer {
	padding-block: 2rem;
}

.footer__logo a img {
	width: 6.25rem;
}

.button__wrapper {
	margin-block-start: 1.375rem;
}

.button {
	height: 2.8125rem;
	max-width: 20.9375rem;
	-moz-column-gap: 0.54375rem;
	column-gap: 0.54375rem;
}

.button span {
	font-size: 1rem;
	letter-spacing: 0.05rem;
}

.button svg {
	height: 1.375rem;
	width: 1.375rem;
}

.button::before {
	transform: translateY(0.29375rem);
}

.drawer__icon {
	display: flex;
}

.inner {
	padding-inline: 1.25rem;
}

.section__title-en {
	font-size: 4rem;
	letter-spacing: -0.16rem;
	white-space: nowrap;
}

.section__title-jp {
	font-size: 1.75rem;
	letter-spacing: 0.0875rem;
}

.section__title-jp--small {
	font-size: 1.25rem;
	letter-spacing: 0.0625rem;
}

.section__title-jp--strong {
	font-size: 1.875rem;
	letter-spacing: 0.09375rem;
}

.section__title-jp--problems,
.section__title-jp--solution {
	font-size: 1.5625rem;
	letter-spacing: 0.078125rem;
	margin-block-start: 0.5rem;
}

.section__title-jp--solution {
	line-height: 1.3;
	margin-block-start: 1.5625rem;
}

.section__title-jp--sp-20 {
	font-size: 1.25rem;
	letter-spacing: 0.0625rem;
}

.section__title-jp--service {
	font-size: 1.5625rem;
	letter-spacing: 0.078125rem;
	line-height: 1.38;
}

.section__title-jp--contact {
	margin-block-start: 0.3125rem;
}

.fv {
	padding-block: 4.75rem 2.5rem;
}

.fv__contents-container {
	flex-direction: column;
	row-gap: 0.9375rem;
}

.fv__content-texts {
	margin-block-start: 0;
}

.fv__badge {
	font-size: 1.0625rem;
	height: 2.1875rem;
	letter-spacing: 0.031875rem;
	line-height: 1.9375rem;
	width: 20.9375rem;
}

.fv__badge--small {
	font-size: 0.75rem;
	letter-spacing: 0.0225rem;
	line-height: 1.9375rem;
}

.fv__badge::before {
	bottom: -0.9375rem;
	left: 2.3125rem;
}

.fv__catch-copy {
	margin-block-start: 0.1875rem;
}

.fv__catch-main {
	font-size: 3.5rem;
	letter-spacing: 0.28125rem;
}

.fv__catch-small {
	font-size: 2.375rem;
	letter-spacing: 0.16625rem;
	line-height: 181%;
}

.fv__catch-sub {
	font-size: 1.5rem;
	height: 2.0625rem;
	letter-spacing: 0.00625rem;
	margin-block-start: -0.3125rem;
	width: 20.9375rem;
}

.fv__features-list {
	margin-block-start: 2.5rem;
}

.fv__features-list .fv__features-item:nth-child(1) .fv__features-text-wrapper {
	top: -0.5rem;
}

.fv__features-list .fv__features-item:nth-child(2) .fv__features-text-wrapper,
.fv__features-list .fv__features-item:nth-child(3) .fv__features-text-wrapper {
	top: -1.1875rem;
}

.fv__features-text-wrapper {
	row-gap: 0.34375rem;
}

.fv__features-text {
	font-size: 0.84375rem;
}

.fv__features-text--num {
	font-size: 1.125rem;
}

.fv__features-text--small {
	font-size: 0.5625rem;
	letter-spacing: -0.01125rem;
}

.fv__features-deco {
	height: 3rem;
	width: 6.375rem;
}

.fv__img {
	aspect-ratio: 310/265;
	margin-inline: auto;
	max-width: 19.375rem;
}

.fv__message {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
	margin-block-start: 2.3125rem;
}

.fv__message-strong {
	font-size: 1.1875rem;
	letter-spacing: 0.059375rem;
}

.fv__button-wrapper {
	margin-block-start: 1.125rem;
}

.fv__bg {
	aspect-ratio: 375/318;
}

.problems {
	padding-block-start: 3.0625rem;
}

.problems__list {
	display: flex;
	flex-direction: column;
	margin-block-start: 1.5rem;
	row-gap: 0.75rem;
}

.problems__item {
	filter: drop-shadow(0 0 0.25rem rgba(255, 0, 0, 0.6));
	font-size: 1rem;
	height: 4.25rem;
	letter-spacing: 0.05rem;
	position: static !important;
	transform: none !important;
}

.problems__item:nth-child(1) {
	left: auto !important;
	top: auto !important;
	width: 100% !important;
}

.problems__item:nth-child(2) {
	left: auto !important;
	top: auto !important;
	width: 100% !important;
}

.problems__item:nth-child(3) {
	left: auto !important;
	top: auto !important;
	width: 100% !important;
}

.problems__item:nth-child(4) {
	left: auto !important;
	top: auto !important;
	width: 100% !important;
}

.problems__item:nth-child(5) {
	left: auto !important;
	top: auto !important;
	width: 100% !important;
}

.problems__item:nth-child(6) {
	left: auto !important;
	top: auto !important;
	width: 100% !important;
}

.problems__item {
	left: auto !important;
	max-width: 20.9375rem;
	position: relative;
	right: auto !important;
	top: auto !important;
	transform: none !important;
	width: 100%;
}

.problems__item::before {
	display: none;
}

.problems__img {
	margin-block-start: 2rem;
	width: 18.75rem;
}

.problems__triangle {
	bottom: -2.5rem;
	height: 2.5rem;
}

.solution {
	padding-block: 2.6875rem 3.625rem;
}

.solution__list {
	flex-direction: column;
	margin-block-start: 2.625rem;
	row-gap: 3.0625rem;
}

.solution__item {
	width: 100%;
}

.solution__item-img {
	aspect-ratio: 323/249;
	left: auto;
	margin-inline: auto;
	position: static;
	top: auto;
	translate: none;
	width: 20.1875rem;
}

.solution__item-title {
	font-size: 1.25rem;
	letter-spacing: 0.0625rem;
	text-align: center;
}

.solution__item-text {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
	line-height: 180%;
}

.service__card-title {
	font-size: 1.125rem;
	margin-block-start: 2.1875rem;
}

.service__card-title--strong {
	font-size: 1.25rem;
}

.service__card-title--marketing {
	margin-block-start: 2.25rem;
}

.service__card-list {
	grid-template-columns: 1fr;
	margin-block-start: 1.1875rem;
	row-gap: 1rem;
}

.service__card-item {
	flex-direction: row;
	-moz-column-gap: 1.5rem;
	column-gap: 1.5rem;
	padding: 1.3125rem 1.5rem 1.1875rem;
}

.service__card-item-title {
	font-size: 1.125rem;
	letter-spacing: 0.05625rem;
	margin-block-start: 0;
	text-align: left;
}

.service__image-list {
	margin-block-start: 3rem;
	width: 100%;
}

.service__image-item:nth-child(1) {
	width: 14.8125rem;
}

.service__image-item:nth-child(2) {
	width: 6rem;
}

.service__image-item:nth-child(3) {
	width: 13.875rem;
}

.service__image-item:nth-child(4) {
	width: 6.9375rem;
}

.service__image-item:nth-child(5) {
	width: 13.3125rem;
}

.service__image-item:nth-child(6) {
	width: 7.5rem;
}

.service__image-item:nth-child(1) .service__img,
.service__image-item:nth-child(2) .service__img {
	height: 7.4375rem;
}

.service__image-item:nth-child(3) .service__img,
.service__image-item:nth-child(4) .service__img {
	height: 6.875rem;
}

.service__image-item:nth-child(5) .service__img,
.service__image-item:nth-child(6) .service__img {
	height: 7.4375rem;
}

.service__message {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
	margin-block-start: 2.125rem;
}

.service__message--strong {
	font-size: 1.1875rem;
	letter-spacing: 0.059375rem;
}

.service__button-wrapper {
	margin-block-start: 1.1875rem;
}

.service__bg {
	aspect-ratio: 375/318;
}

.reasons {
	padding-block: 3.5rem 4rem;
}

.reasons__list {
	margin-block-end: 0;
	margin-block-start: 2.25rem;
	row-gap: 1.5rem;
}

.reasons__item {
	padding: 0.25rem 1.5rem 1.125rem;
}

.reasons__item:nth-child(1) {
	background-image: url("../img/reasons_bg01_sp.webp");
}

.reasons__item:nth-child(2) {
	background-image: url("../img/reasons_bg02_sp.webp");
}

.reasons__item:nth-child(3) {
	background-image: url("../img/reasons_bg03_sp.webp");
}

.reasons__num-wrapper {
	justify-content: center;
}

.reasons__num-text {
	font-size: 1.5rem;
	letter-spacing: 0.075rem;
}

.reasons__num {
	font-size: 2.5rem;
	letter-spacing: 0.125rem;
}

.reasons__item-title {
	font-size: 1.125rem;
	letter-spacing: 0.05625rem;
	margin-block-start: 0.75rem;
}

.reasons__item-text {
	margin-block-start: 0.75rem;
}

.case {
	padding-block: 3.375rem 2.8125rem;
}

.case__list {
	flex-direction: column;
	margin-block-start: 1.75rem;
	row-gap: 1.5rem;
}

.case__item {
	padding: 1.5rem 1.5rem 1.25rem;
}

.case__img {
	aspect-ratio: 287/130;
}

.case__item-company {
	font-size: 1rem;
	letter-spacing: 0.05rem;
	margin-block-start: 1.0625rem;
}

.case__item-name {
	font-size: 0.875rem;
	letter-spacing: 0.04375rem;
	margin-block-start: 0.1875rem;
}

.case__content {
	margin-block-start: 1rem;
}

.case__info-group:not(:first-child) {
	margin-block-start: 1rem;
}

.case__info-title {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
}

.case__message {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
	margin-block-start: 2.375rem;
}

.case__message--strong {
	font-size: 1.1875rem;
	letter-spacing: 0.059375rem;
}

.case__button-wrapper {
	margin-block-start: 1.375rem;
}

.case__bg {
	aspect-ratio: 375/655;
}

.faq {
	padding-block: 3.375rem 4rem;
}

.faq__items {
	grid-template-columns: 1fr;
	margin-block-start: 1.75rem;
	row-gap: 1rem;
}

.faq__item {
	padding-block-end: 1rem;
}

.faq__summary {
	padding: 1rem 1rem 0 1rem;
}

.faq__summary-icon {
	font-size: 0.8125rem;
	height: 1.5rem;
	width: 1.5rem;
}

.faq__summary-text {
	font-size: 0.9375rem;
	letter-spacing: 0.046875rem;
}

.faq__content-inner {
	padding-inline: 1rem 3.875rem;
}

.faq__answer-wrapper {
	padding-block-start: 0.875rem;
}

.contact {
	padding-block: 3.25rem 4rem;
}

.contact__form {
	margin-block-start: 1.875rem;
}

.contact__head--note {
	font-size: 0.75rem;
}

.contact__submit-btn-wrapper {
	height: 3.375rem;
	width: 20.9375rem;
}

.contact__submit-btn-wrapper::before {
	transform: translateY(0.3125rem);
}

.contact__submit-btn-wrapper .contact__submit-btn {
	line-height: 3.375rem;
}

.contact__submit-btn-wrapper:not(:has(:disabled)):hover .contact__submit-btn,
.contact__submit-btn-wrapper:not(:has(:disabled)):hover::after {
	transform: translateY(0.29375rem);
}

.contact__submit-btn-wrapper:has(.contact__submit-btn:focus-visible) .contact__submit-btn,
.contact__submit-btn-wrapper:has(.contact__submit-btn:focus-visible)::after {
	transform: translateY(0.29375rem);
}

.page__inner {
	padding-block-start: 6.25rem;
}

.page__title {
	font-size: 1.25rem;
}

.page__contents p {
	font-size: 0.9375rem;
}

.cal-modal__header-text {
	font-size: 0.875rem;
}

.show__sp {
	display: block;
}

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

.show__tab-pc {
	display: none;
}

.show__medium-pc {
	display: none;
}

}

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

.header__btn:hover::after,
.header__btn:hover span {
	transform: translateY(0.1875rem);
}

}

