@charset "UTF-8";

:root {
	--font-base: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", 'メイリオ', Meiryo, sans-serif;
	--font-barlow: "Barlow", sans-serif;
	--font-oleo_script: "Oleo Script", system-ui;

	--color-white: #fff;
	--color-black01: #323232;
	--color-gray01: #808080;
	--color-blue01: #4463E5;
	--color-deep_blue01: #324D97;
	--color-red01: #F05D4F;
	--color-yellow01: #FEF382;

	--color-gradient01: ;
}

@media screen and (max-width:769px) {
	:root {}
}

*, *::before, *::after {
	box-sizing: border-box;
}

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
}

html {
	font-size: 62.5%;
	overflow: inherit !important;
	font-size: clamp(5px, 0.80vw, 10px);
}

body {
	width: 100%;
	height: auto;
	position: relative;
	left: 0;
	top: 0;
	background: var(--color-ivory);
	color: var(--color-black01);
	font-size: 1.5rem;
	font-family: var(--font-base);
	font-weight: 400;
	line-height: 1.8;
	letter-spacing: 0;
	overflow: auto;
}

h2 {
	font-size: 3.28rem;
	font-weight: 700;
	line-height: 1.6;
}

h3 {
	font-size: 2.1rem;
	font-weight: 700;
	line-height: 1.62;
}

p {
	font-size: 1em;
	font-weight: 400;
	line-height: 1.87;
}

ul, ol, li {
	list-style: none;
}

a {
	outline: none;
}

button {
	background-color: transparent;
	border: none;
	cursor: pointer;
	outline: none;
	padding: 0;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

a, button {
	text-decoration: none;
	transition: opacity .32s ease, color .25s ease, background-color .25s ease;
	color: #333;
}

a:hover, button:hover {
	opacity: 0.56;
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

caption, th, td {
	text-align: left;
	font-weight: normal;
	vertical-align: middle;
}

select {
	color: var(--color-black02);
}

strong {
	font-weight: 700;
}

@media screen and (max-width:769px) {
	html {
		font-size: 10px;
		font-size: clamp(8px, 2.59vw, 25px);
	}

	body {
		font-size: 1.5rem;
	}

	h2 {
		font-size: 2.1rem;
		margin-bottom: 1rem;
	}

	h3 {
		font-size: 2.1rem;
		margin-bottom: 1rem;
	}

	img {
		width: 100%;
	}
}


/********************

   common

*********************/
/*****   class   *****/
#body_inner {
	width: 100%;
	margin: 0 auto;
	overflow: hidden;
}

.main_section {
	padding: 7.3rem 0 8.0rem;
}

.contents_wrapper {
	position: relative;
	display: block;
	max-width: 110rem;
	width: 96.2%;
	padding: 0;
	margin-right: auto;
	margin-left: auto;
	z-index: 10;
}


@media screen and (min-width:769.02px) {
	.sp_only {
		display: none !important;
	}
}

@media screen and (max-width:769px) {
	#body_inner {
		width: 100%;
		min-width: 0px;
	}

	.pc_only {
		display: none !important;
	}

	.contents_wrapper {
		width: calc(100% - 5.0rem);
		padding: 0;
	}

	.main_section {
		padding: 4rem 0 4.4rem;
	}
}


/********************
   parts
*********************/
.color-yellow01 {
	color: var(--color-yellow01);
}

.color-blue01 {
	color: var(--color-blue01);
}

.attention_text {
	font-size: 1.3rem;
	letter-spacing: 0.04em;
	line-height: 1.44;
}

.attention_mark {
	position: relative;
	top: -0.39em;
	left: -0.04em;
	font-size: 0.76em;
	letter-spacing: 0.1em;
}

.underline01 {
	--underline_color: rgba(171, 205, 3, 0.44);
	position: relative;
	display: inline;
	font-size: 1.02em;
	background: linear-gradient(transparent 0%, transparent 19%, var(--underline_color) 19%, var(--underline_color) 92%, transparent 92%);
}


/***   heading_block   ***/
.heading_block {
	--color: var(--color-black01);
	display: block;
	margin: 0 auto 5rem;
	color: var(--color);
	text-align: center;
}

.heading_block__en {
	display: block;
	width: fit-content;
	min-width: 15rem;
	margin: 0 auto 1.55em;
	padding: 0.86em 0.96em;
	border-bottom: 1.1px solid var(--color);
	font-size: 2.0rem;
	font-family: var(--font-barlow);
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.055em;
}

.heading_block__lead {
	margin: 0 0 0.86em;
	font-size: 2.4rem;
	font-weight: 700;
	line-height: 1.5;
}

.heading_block__heading {
	font-size: 3.2rem;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0;
}

@media screen and (max-width:769px) {
	.heading_block {
		margin-bottom: 2rem;
	}

	.heading_block__en {
			min-width: 13rem;
		font-size: 2.0rem;
		padding: 0.62em 1.1em;
		margin-bottom: 1.2em;
	}

	.heading_block__lead {
		font-size: 2.04rem;
		margin-bottom: 1.15em;
	}

	.heading_block__heading {
		font-size: 2.4rem;
		line-height: 1.4;
	}
}



/***   btn01   ***/
.btn01 {
	--bg_color: var(--color-red01);
	--color: #fff;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	-moz-column-gap: 0.82em;
	column-gap: 0.82em;
	width: -webkit-fit-content;
	width: -moz-fit-content;
	width: fit-content;
	height: auto;
	min-width: 44rem;
	max-width: 100%;
	min-height: 10rem;
	padding: 1rem 2.5em 1.1rem;
	margin: 2.8rem auto 0;
	border-radius: 1.0rem;
	border: 0.15rem solid var(--bg_color);
	background: var(--bg_color);
	color: var(--color);
	font-size: 2.4rem;
	line-height: 1.4;
	transition: all 0.1s ease;
}

.btn01::after {
	content: "";
	position: absolute;
	top: 0.062em;
	display: block;
	width: auto;
}

.btn01:hover {
	opacity: 1;
	background: var(--color);
	color: var(--bg_color);
}

.btn01:hover::after {
	background: var(--bg_color);
}

@media screen and (max-width:769px) {
	.btn01 {
		min-width: 30rem;
		min-height: 8.0rem;
		padding: 1rem 2.2em 1.1rem;
		font-size: 1.8rem;
	}
}



.bnr01 {
	position: relative;
	display: block;
	width: fit-content;
	margin: 0 auto;
}

.bnr01__text {
	margin: 0 0 1.3rem;
	text-align: center;
	font-size: 2.6rem;
	font-weight: 700;
}

.bnr01__text::before {
	content: "＼";
	position: relative;
	display: inline-block;
}

.bnr01__text::after {
	content: "／";
	position: relative;
	display: inline-block;
}

.bnr01__block {
	--border-w: 0.55rem;
	position: relative;
	display: block;
	background: linear-gradient(150deg, rgba(218, 151, 56, 1.00) 0%, rgba(251, 211, 114, 1.00) 0%, rgba(251, 213, 126, 1.00) 28%, rgba(251, 221, 160, 1.00) 43%, rgba(252, 227, 183, 1.00) 52%, rgba(251, 224, 170, 1.00) 59%, rgba(251, 216, 136, 1.00) 72%, rgba(251, 211, 114, 1.00) 80%, rgba(243, 198, 101, 1.00) 100%, rgba(225, 164, 68, 1.00) 98%, rgba(221, 157, 61, 1.00) 100%);
	background-position: center center;
	color: var(--color-black01);
	border-radius: 2.2rem;
	width: fit-content;
	padding: 2.9rem 3.5rem 3.2rem 4.17rem;
	box-shadow: 0.32rem 0.4rem 0.4rem rgba(0, 0, 0, 0.2);
	z-index: 10;
	cursor: pointer;
}
.bnr01__block:hover {
	opacity: 1;
	filter: brightness(1.1);
	box-shadow: 0.44rem 0.55rem 0.55rem rgba(0, 0, 0, 0.25);
}

.bnr01__block::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateY(-50%) translateX(-50%);
	width: calc(100% - 2 * var(--border-w));
	height: calc(100% - 2 * var(--border-w));
	border-radius: 2.0rem;
	background: linear-gradient(360deg, rgba(250, 135, 78, 1.00) 0%, rgba(255, 230, 103, 1.00) 78%, rgba(250, 255, 117, 1.00) 100%);
	z-index: -15;
}

.bnr01__block .ribbon01 {
	position: absolute;
	top: 0;
	left: 0;
	transform: translateX(-12.5%) translateY(-8.6%);
	width: 17.6rem;
	z-index: -1;
}

.bnr01__block .ribbon02 {
	position: absolute;
	bottom: 0;
	right: 0;
	z-index: -10;
}

.bnr01__block .ribbon03 {
	position: absolute;
	top: 0;
	left: 0;
	z-index: -10;
}


.bnr01__block_inner {
	display: flex;
	align-items: center;
	justify-content: center;
	column-gap: 1.4rem;
}


.bnr01__block_lead {
	width: fit-content;
	text-align: center;
	width: calc(100% - 12.5rem);
	margin-left: 12.5rem;
	padding: 0.1em 0.1em 0.18em;
	border-radius: 100rem;
	background: #FF5350;
	color: #fff;
	font-size: 2.0rem;
	font-weight: 900;
	line-height: 1.5;
}

.bnr01__block_heading {
	margin-top: -0.092em;
	margin-bottom: 1.3rem;
	text-align: right;
	font-size: 4.17rem;
	font-weight: 900;
	line-height: 1.32;
}

.bnr01__block_heading_smaller {
	font-size: 3.1rem;
}

.bnr01__block_heading_strong {
	position: relative;
	display: inline-block;
	color: #FF5350;
}

.bnr01__block_heading_strong::after {
	content: "";
	position: absolute;
	top: 100%;
	left: 0;
	width: 100%;
	height: 0.62rem;
	background-image: url(../img/design/wavy_line01.svg);
	background-repeat: repeat-x;
	background-size: contain;
}

.bnr01__block_heading img {
	display: inline-block;
	width: 29rem;
	margin-right: 0.4rem;
}

.bnr01__block_btn {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 19rem;
	height: auto;
	aspect-ratio: 1/1;
	text-align: center;
	color: #fff;
	font-size: 2.6rem;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.25;
	z-index: 10;
	transition: filter 0.15s ease;
	text-shadow: 0 0.1em 0.1em rgba(0, 0, 0, 0.15);
}

.bnr01__block_btn>span {
	--border-w: 0.55rem;
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: linear-gradient(200deg, rgba(247, 90, 0, 1.00) 0%, rgba(255, 165, 0, 1.00) 49%, rgba(242, 254, 8, 1.00) 98%);
	border-radius: 100rem;
	box-shadow: 0.4rem 0.4rem 0.4rem rgba(0, 0, 0, 0.2);
	z-index: -1;
	transition: transform 0.15s ease;
}

.bnr01__block_btn>span::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateX(-50%) translateY(-50%) rotate(-180deg);
	background-image: linear-gradient(200deg, rgba(247, 90, 0, 1.00) 0%, rgba(255, 165, 0, 1.00) 49%, rgba(242, 254, 8, 1.00) 98%);
	width: calc(100% - 2 * var(--border-w));
	height: calc(100% - 2 * var(--border-w));
	border-radius: 100rem;
	transition: transform 0.22s ease;
}

.bnr01__block_btn>span::after {
	content: "";
	position: absolute;
	top: 0.62rem;
	left: 50%;
	transform: translateX(-50%);
	width: 9.2rem;
	height: 6.2rem;
	background: linear-gradient(180deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 62%);
	border-radius: 100%;
	opacity: 1;
	filter: brightness(1.1);
	transition: opacity 0.1s ease;
}

.bnr01__block:hover .bnr01__block_btn {
	opacity: 1;
	filter: brightness(0.92);
}

.bnr01__block:hover .bnr01__block_btn>span {
	box-shadow: 0.25rem 0.25rem 0.25rem rgba(0, 0, 0, 0.2);
}

.bnr01__block:hover .bnr01__block_btn>span::before {
	transform: translateX(-50%) translateY(-50%) rotate(0deg);
}

.bnr01__block:hover .bnr01__block_btn>span::after {
	opacity: 0;
}

.bnr01__block_text {
	font-weight: 500;
}


@media screen and (max-width:769px) {
	.bnr01 {
		position: relative;
		width: fit-content;
		margin: 0 auto;
	}

	.bnr01__text {
		position: relative;
		width: fit-content;
		margin: 0 auto 1.3rem;
		text-align: center;
		font-size: 1.76rem;
		line-height: 1.5;
	}

	.bnr01__text::before,
	.bnr01__text::after {
		content: "";
		position: absolute;
		width: 2px;
		height: 100%;
		background: #000;
		font-weight: 900;
	}
	.problem .bnr01__text::before,
	.problem .bnr01__text::after {
		background: var(--color-white);
	}

	.bnr01__text::before {
		top: 0;
		left: -1.3rem;
		transform: rotate(-28deg);
	}

	.bnr01__text::after {
		top: 0;
		right: -1.3rem;
		transform: rotate(28deg);
	}

	.bnr01__block {
		--border-w: 0.4rem;
		padding: 3.2rem 2.5rem 3.5rem 2.5rem;
	}


	.bnr01__block .ribbon01 {
		transform: translateX(-13.9%) translateY(-7.6%);
		width: 15.4rem;
		z-index: 10;
	}

	.bnr01__block .ribbon02 {
		width: 8.7rem;
	}

	.bnr01__block .ribbon03 {
		width: 10rem;
	}


	.bnr01__block_inner {
		flex-direction: column;
	}


	.bnr01__block_lead {
		text-align: right;
		width: calc(100% + 5.0rem);
		margin: 0 0 0 -2.5rem;
		padding: 0.15em 1.4em 0.2em;
		border-radius: 0;
	}

	.bnr01__block_heading {
		margin: -0.56rem 0 1.5rem;
		text-align: right;
		font-size: 3.2rem;
		font-weight: 900;
		line-height: 1.32;
		white-space: nowrap;
	}

	.bnr01__block_heading_smaller {
		font-size: 1.55rem;
		letter-spacing: -0.025em;
	}

	.bnr01__block_heading_strong::after {
		height: 0.5rem;
	}

	.bnr01__block_heading img {
		display: block;
		width: 24.4rem;
		margin: 0.4rem auto 0.15rem;
	}

	.bnr01__block_btn {
		width: 100%;
		height: 5.4rem;
		color: #fff;
		font-size: 2.0rem;
		letter-spacing: -0;
		transition: filter 0s ease;
		text-shadow: 0 0.1em 0.1em rgba(0, 0, 0, 0.1);
		margin-top: 1.5rem;
	}

	.bnr01__block_btn>span {
		--border-w: 0.32rem;
		background-image: linear-gradient(182deg, rgba(247, 90, 0, 1.00) 0%, rgba(255, 165, 0, 1.00) 49%, rgba(242, 254, 8, 1.00) 98%);
		transition: transform 0s ease;
	}

	.bnr01__block_btn>span::before {
		transform: translateX(-50%) translateY(-50%) rotate(-180deg);
		background-image: linear-gradient(182deg, rgba(247, 90, 0, 1.00) 0%, rgba(255, 165, 0, 1.00) 49%, rgba(242, 254, 8, 1.00) 98%);
	}

	.bnr01__block_btn>span::after {
		content: "";
		position: absolute;
		top: 0.51rem;
		width: 100%;
		height: 2.5rem;
		background: linear-gradient(180deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 62%);
		border-radius: 100rem;
		border-bottom-left-radius: 0;
		border-bottom-right-radius: 0;
		filter: brightness(1.1);
	}

	.bnr01__block:hover .bnr01__block_btn>span {
		box-shadow: 0.25rem 0.25rem 0.25rem rgba(0, 0, 0, 0.2);
	}

	.bnr01__block:hover .bnr01__block_btn>span::before {
		transform: translateX(-50%) translateY(-50%) rotate(-180deg);
	}

	.bnr01__block:hover .bnr01__block_btn>span::after {
		opacity: 1;
	}

	.bnr01__block_text {
		font-size: 1.4rem;
	}

}



/******************   
	animation   
*******************/
/*****   アコーディオン   *****/
.js-acc_switch {
	position: relative;
	cursor: pointer;
}

.js-acc_switch::after {
	content: "";
	position: absolute;
	top: 50%;
	transform: translateY(-25%) rotate(135deg);
	right: 2.0rem;
	border: 0.32rem solid #fff;
	border-left: 0;
	border-bottom: 0;
	width: 1.7rem;
	height: auto;
	aspect-ratio: 1/1;
	transform-origin: 69% 32%;
	transition: transform 0.39s ease;
}

.js-acc_wrapper.active .js-acc_switch::after {
	transform: translateY(-25%) rotate(-45deg);
}

.js-acc_block {
	display: none;
}

@media screen and (max-width:769px) {
	.js-acc_switch::after {
		right: 1.8rem;
		border-width: 0.28rem;
		width: 1.4rem;
	}
}


/***   slider    ***/
.slider {
	display: none;
	opacity: 0;
}

.slider.slick-initialized {
	display: block;
	opacity: 1;
}

.slick-arrow {
	z-index: 10;
}

body .slick-track {
	display: flex;
	align-items: stretch;
}

.slick-track .slick-slide {
	height: auto;
}

.slick-track .slick-slide>div {
	height: 100%;
}


/* swiper */
body .swiper-pagination {
	position: relative;
	margin-top: 2.8rem;
}

body .swiper-pagination-bullet {
	width: 1.4rem;
	height: auto;
	margin: 0 0.55em !important;
	aspect-ratio: 1/1;
}

body .swiper-pagination-bullet-active {
	background: var(--color-blue01);
}


/* arrow */
body .swiper-button-next,
body .swiper-button-prev {
	--swiper-navigation-size: 6.2rem;
	top: 35rem;
	color: var(--color-blue01);
	transform: rotateX(25deg);
}

body .swiper-button-next:hover,
body .swiper-button-prev:hover {
	filter: brightness(1.5);
}

body .swiper-button-next {
	right: auto;
	left: calc(50% + 56rem);
}

body .swiper-button-prev {
	left: auto;
	right: calc(50% + 56rem);
}

@media screen and (max-width:769px) {

	body .swiper-button-next,
	body .swiper-button-prev {
		--swiper-navigation-size: 4.4rem;
		top: 17rem;
	}

	body .swiper-button-next {
		right: auto;
		left: calc(50% + 15rem);
	}

	body .swiper-button-prev {
		left: auto;
		right: calc(50% + 15rem);
	}
}


/********************

   header

*********************/
.header {
	position: absolute;
	width: 100%;
	color: #fff;
	z-index: 1000;
}

.header__inner {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	width: 89.6%;
	margin: 0 auto;
}

.header__logo {
	margin-top: 2.0rem;
}

.header__logo img {
	height: 5.5rem;
	width: auto;
}

.header__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 18rem;
	height: 6rem;
	padding-bottom: 0.2em;
	background: #ffff;
	color: var(--color-deep_blue01);
	border: 0.32rem solid var(--color-blue01);
	border-radius: 1.0rem;
	border-top-left-radius: 0;
	border-top-right-radius: 0;
	border-top: 0;
	font-size: 1.8rem;
	font-weight: 700;
	transition: 0s;
}

.header__btn:hover {
	opacity: 1;
	background: var(--color-blue01);
	color: #fff;
	filter: brightness(1.1);
}


@media screen and (max-width:769px) {
	.header {}

	.header__logo {
		margin-top: 0.82rem;
	}

	.header__logo img {
		height: 3.4rem;
	}

	.header__btn {
		width: 11rem;
		height: 4.4rem;
		font-size: 1.5rem;
	}
}

/********************

   footer

*********************/
.footer {
	position: relative;
	width: 100%;
	padding: 6.2rem 0 7.6rem;
	background: var(--color-white);
	text-align: center;
	color: var(--color-black01);
}

.footer__tels_list {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	margin: 0 auto 1.4rem;
}

.footer__tels_list_item {
	position: relative;
	padding: 0.4em 1.82em;
}

.footer__tels_list_item:nth-of-type(n+2)::before {
	content: "｜";
	position: absolute;
	top: 50%;
	transform: translateY(-50%) translateX(-50%);
	left: 0;
}

.footer__copyright {
	font-size: 1.4rem;
	text-align: center;
}

@media screen and (max-width:769px) {
	.footer {
		padding: 4.4rem 0 8.7rem;
	}

	.footer__wrapper {
		width: 96.9%;
	}

	.footer__tels_list {
		margin-bottom: 1.5rem;
	}

	.footer__tels_list_item {
		max-width: 50%;
		font-size: 1.25rem;
		padding: 0.2em 0.76em;
	}

	.footer__tels_list_item:nth-of-type(2n+1)::before {
		display: none;
	}

	.footer__copyright {
		font-size: 1.2rem;
		text-align: center;
	}
}



/********************

  fixed_block

*********************/
.fixed_contact {
	position: fixed;
	bottom: 2.5rem;
	right: 2.5rem;
	font-size: 1.8rem;
	z-index: 1000;
	pointer-events: all;
}

.fixed_contact.active {
	pointer-events: all;
}

.fixed_contact.active::after {
	opacity: 1;
	transform: translateX(-50%);
	transition: opacity 0.5s 0.44s ease, transform 0.44s 0.44s ease;
}

.fixed_contact__btn {
	display: block;
	padding: 2.2rem 3.9rem;
	padding-right: 11rem;
	box-shadow: 0 0.62rem 0.62rem rgba(0, 0, 0, 0.2);
	border-radius: 100rem;
	background-image: linear-gradient(180deg, rgba(255, 230, 103, 1.00) 0%, rgba(250, 184, 50, 1.00) 100%);
	background-position: center center;
	color: var(--color-black01);
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.34;
	letter-spacing: 0;
	text-align: center;
	transition: background 0.28s ease, opacity 0.47s ease-in-out, transform 0.50s ease-in-out;
	opacity: 1;
}

.fixed_contact.active .fixed_contact__btn {
	opacity: 1;
	transform: translateX(0);
}

.fixed_contact__btn:hover {
	opacity: 1;
	background-position: 0 -4%;
	-webkit-filter: brightness(1.1);
	filter: brightness(1.1);
}

.fixed_contact__btn::after {
	content: "";
	position: absolute;
	top: -1.4rem;
	right: 3.5rem;
	display: block;
	width: 6.2rem;
	aspect-ratio: 65/92;
	background-image: url(../img/fixed_contact_btn_img@2x.png);
	background-repeat: no-repeat;
	background-size: contain;
	filter: drop-shadow(0 0.2rem 0.2rem rgba(0, 0, 0, 0.2));
}

@media screen and (max-width:769px) {
	.fixed_contact {
		bottom: 0;
		right: auto;
		left: 0;
		width: 100%;
	}

	.fixed_contact__btn {
		width: 100%;
		font-size: 1.7rem;
		padding: 1.3rem 1.0rem 1.55rem 7.3rem;
		border-radius: 0;
	}

	.fixed_contact__btn::after {
		top: -1.7rem;
		right: auto;
		left: 3.2rem;
		width: 4.4rem;
		transform: rotate(-8.0deg);
	}
}


/********************

  home

*********************/
body.home {
	margin-top: 0;
}

/********************

   main
   
*********************/
/*******************
	.fv
********************/
.fv {
	position: relative;
	margin-bottom: 0rem;
	height: clamp(70rem, 59vw, 76rem);
	z-index: 1;
}

.fv__wrapper {
	position: relative;
	max-width: 125rem;
	width: 96%;
	margin: 0 auto;
	padding-top: 13.9rem;
}

.fv__bg_img {
	position: absolute;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 82%;
	z-index: -1;
}

.fv__character {
	position: absolute;
	top: 8.0rem;
	right: 0;
	width: min(54rem, 40vw);
	transform: translateX(7.6rem);
	z-index: -1;
}


.fv__inner {
	width: 89.6rem;
}

.fv__lead {
	position: relative;
	padding: 0.25em 0.47em 0 0;
	margin-bottom: 6.9rem;
	color: #fff;
	font-size: 3.55rem;
	font-weight: 700;
	line-height: 1.25;
	text-align: center;
	z-index: 1;
}

.fv__lead::before {
	--position01: 6.2rem;
	--position02: 2.8rem;
	--position03: 8.2rem;
	--position04: 6.9rem;
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 96%;
	height: 11rem;
	background-image: linear-gradient(90deg, rgba(47, 63, 147, 1.00) 0%, rgba(92, 60, 145, 1.00) 45%, rgba(132, 58, 143, 1.00) 84%, rgba(175, 57, 142, 1.00) 100%);
	background-position: center center;
	clip-path: polygon(0 0, 100% 0, 100% var(--position01), calc(50% + var(--position02)) var(--position01), calc(50% + var(--position02)) var(--position03), calc(50% + var(--position04)) calc(var(--position03) - 0.34rem), 50% 100%, calc(50% - var(--position04)) calc(var(--position03) - 0.34rem), calc(50% - var(--position02)) var(--position03), calc(50% - var(--position02)) var(--position01), 0 var(--position01));
	z-index: -1;
}

.fv__tit {
	margin: 0 0 4.4rem;
}

.fv__tit img {
	width: 100%;
}

.fv__img_block {
	position: relative;
	left: 1.5rem;
	width: 45rem;
	margin: 0 auto;
	z-index: 1;
}

.fv__label {
	position: absolute;
	top: -0.4rem;
	left: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 8.76em;
	height: auto;
	aspect-ratio: 1/1;
	padding-top: 0.35em;
	transform: translateX(-76%) rotate(-8.2deg);
	border-radius: 100rem;
	background-image: linear-gradient(180deg, rgba(247, 90, 0, 1.00) 0%, rgba(255, 165, 0, 1.00) 73%, rgba(242, 254, 8, 1.00) 98%);
	background-position: center center;
	color: #fff;
	text-align: center;
	font-size: 2.6rem;
	font-weight: 900;
	line-height: 1.25;
	letter-spacing: -0.01em;
	z-index: -1;
}


@media screen and (min-width:769.02px) {}

@media screen and (max-width:769px) {
	.fv {
		height: 70.4rem;
	}

	.fv__wrapper {
		width: 100%;
		padding-top: 6.9rem;
	}

	.fv__bg_img {
		object-position: 50% 82%;
	}

	.fv__character {
		position: absolute;
		top: 27.6rem;
		width: 22.8rem;
		transform: translateX(2.8rem);
		z-index: -1;
	}


	.fv__inner {
		width: 100%;
	}

	.fv__lead {
		position: relative;
		padding: 0.28em 0.2em 0 0;
		margin-bottom: 5.1rem;
		color: #fff;
		font-size: 2.0rem;
		font-weight: 700;
		line-height: 1.15;
		text-align: center;
		z-index: 1;
	}

	.fv__lead::before {
		--position01: 5.9rem;
		--position02: 2.5rem;
		--position03: 7.6rem;
		--position04: 6.2rem;
		width: 100%;
		height: 10rem;
	}

	.fv__tit {
		margin: 0 auto 18rem;
		text-align: center;
	}

	.fv__tit img {
		width: 34rem;
	}

	.fv__img_block {
		left: 1.5rem;
		width: 25rem;
		margin-left: 0;
	}

	.fv__label {
		font-size: 1.9rem;
		transform: translateX(1.5%) translateY(-93.2%) rotate(-8.2deg);
	}
}



/********************
	.problem
********************/
.problem {
	position: relative;
	margin-top: min(-11rem, -8.0vw);
	padding: max(17rem, 11vw) 0 0;
	color: #fff;
	z-index: 10;
}

.problem .bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 96.9%;
	min-height: 173rem;
	max-height: 96.9%;
	z-index: -1;
	object-fit: cover;
	object-position: top center;
	clip-path: polygon(0 0, 100% 0, 100% 90.4%, 0 100%);
}

.problem .heading_block {
	--color: #fff;
	text-align: center;
	margin-bottom: 3.5rem;
}

.problem .heading_block ruby rt {
	color: #fff;
	padding-bottom: 0.14em;
	font-size: 0.47em;
	letter-spacing: 0.04em;
	font-weight: 400;
	ruby-align: center;
}


.problem__text {
	margin: 0 0 2.2rem;
	text-align: center;
	font-weight: 500;
}

.problem__tit {
	margin: 0 0 2.2rem;
	text-align: center;
	font-size: 2.4rem;
	line-height: 1.5;
}

.problem__support_list {
	position: relative;
	display: block;
	width: fit-content;
	max-width: 70rem;
	padding: 2.5rem 3.2rem;
	margin: 4.4rem auto 11rem;
	background: rgba(255, 255, 255, 0.9);
	color: var(--color-black01);
	font-size: 1.5rem;
}

.problem__support_list::after {
	content: "";
	position: absolute;
	top: calc(100% + 1.7rem);
	left: 50%;
	transform: translateX(-50%);
	width: 18.7rem;
	height: auto;
	aspect-ratio: 187/59;
	background: linear-gradient(180deg, #fff0 0%, #fff 100%);
	clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.problem__support_list_item {
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	margin-bottom: 0.1em;
	line-height: 2.0;
}

.problem__support_list_item>span:nth-of-type(1) {
	position: relative;
	width: fit-content;
	display: flex;
	align-items: center;
	width: 35rem;
	font-weight: 700;
}

.problem__support_list_item>span:nth-of-type(1)::before {
	content: "●";
	display: inline-block;
	margin-right: 0.25em;
	color: var(--color-blue01);
}

.problem__support_list_item>span:nth-of-type(1)::after {
	content: "";
	position: relative;
	transform: translateY(0.02em);
	display: block;
	background: var(--color-black01);
	flex: 1;
	min-width: 1em;
	height: 1px;
	margin: 0 0.55em;
}

.problem__support_list_item>span:nth-of-type(2) {
	flex: 1;
	color: var(--color-red01);
	font-weight: 500;
}

.problem__achievement_list {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	column-gap: 2.8rem;
	margin: 4.7rem auto 9.6rem;
}

.problem__achievement_list_item img {
	width: 30rem;
}

@media screen and (max-width:769px) {
	.problem {
		padding: 6.2rem 0 0;
	}

	.problem .bg {
		height: 91.7%;
		clip-path: polygon(0 0, 100% 0, 100% 96.4%, 0 100%);
	}

	.problem .heading_block {
		margin-bottom: 2rem;
	}

	.problem .heading_block__heading {
		font-size: 2.32rem;
		letter-spacing: -0.02em;
	}

	.problem .heading_block__heading_smaller {
		font-size: 1.96rem;
		letter-spacing: -0.02em;
	}

	.problem__text {
		margin: 0 0 1.4rem;
		text-align: left;
		font-weight: 500;
	}

	.problem__tit {
		margin: 0 0 2.2rem;
		text-align: center;
		font-size: 1.96rem;
		line-height: 1.5;
	}

	.problem .heading_block ruby {
		position: relative;
	}

	.problem__support_list {
		padding: 2.25rem 1.9rem;
		margin: 4.0rem auto 10rem;
		border-radius: 1.0rem;
	}

	.problem__support_list::after {
		top: calc(100% + 2.0rem);
		width: 16.2rem;
	}

	.problem__support_list_item {
		flex-direction: column;
		margin-bottom: 0.5em;
		line-height: 2.0;
		font-size: 0.96em;
		line-height: 1.62;
	}

	.problem__support_list_item>span:nth-of-type(1) {
		width: fit-content;
		width: 100%;
		letter-spacing: -0.02em;
	}

	.problem__support_list_item>span:nth-of-type(1)::before {
		font-size: 0.82em;
	}

	.problem__support_list_item>span:nth-of-type(1)::after {
		display: none;
	}

	.problem__support_list_item>span:nth-of-type(2) {
		position: relative;
		padding-left: 5.4em;
		font-size: 0.96em;
	}

	.problem__support_list_item>span:nth-of-type(2)::before {
		content: "";
		position: absolute;
		top: 50%;
		left: 1.0em;
		width: 4em;
		height: 1px;
		background: var(--color-black01);
	}

	.problem__achievement_list {
		column-gap: 1.62rem;
		row-gap: 1.55rem;
		flex-wrap: wrap;
		margin: 3.2rem auto 4.76rem;
	}

	.problem__achievement_list_item {
		width: calc((100% - 1.7rem) / 2);
	}

	.problem__achievement_list_item img {
		width: 100%;
	}
}

@supports (-webkit-touch-callout: none) and (max-width:769px) {
}



/********************
	.overview
********************/
.overview {
	position: relative;
	padding: 4rem 0 14.7rem;
	z-index: 1;
}

.overview::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 140rem;
	background: linear-gradient(180deg, #FFFFFFFF 0%, #EBF0FB 17%);
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - 15rem), 0 100%);
}

.overview::after {
	content: "";
	position: absolute;
	bottom: -2rem;
	left: 0;
	background-image: linear-gradient(90deg, rgba(105, 204, 240, 1.00) 0%, rgba(77, 97, 242, 1.00) 50%, rgba(151, 46, 231, 1.00) 100%);
	background-position: center center;
	width: 59rem;
	height: 1.87rem;
	opacity: 0.2;
	transform: rotate(-6.2deg);
}

.overview .contents_wrapper::after {
	content: "";
	position: absolute;
}

.overview__block {
	display: flex;
	align-items: flex-start;
	column-gap: 7.6rem;
	margin: 20rem 0 5.5rem;
}

.overview__img_block .logo {
	display: block;
	width: 76%;
	margin: 1.1rem auto 0;
}

.overview__functions {
	display: flex;
	align-items: stretch;
	justify-content: center;
	column-gap: 0.82rem;
	margin: 0 auto 6.9rem;
}

.overview__functions_block {
	position: relative;
	height: auto;
	background: rgba(255, 2552, 255, 0.5);
}

.overview__functions_block:last-of-type {
	position: relative;
	background: #F6E3F4;
}

.overview__functions_block_inner {
	height: auto;
	padding: 2.2rem 4.4rem 2.2rem;
}

.overview__functions_block_tit {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 3.5em;
	padding-bottom: 0.1em;
	background-image: linear-gradient(180deg, rgba(50, 77, 151, 1.00) 0%, rgba(68, 99, 229, 1.00) 75%, rgba(68, 129, 229, 1.00) 100%);
	background-position: center center;
	color: #fff;
	font-size: 2.2rem;
	line-height: 1.25;
	text-align: center;
}

.overview__functions_block:first-of-type .overview__functions_block_tit::after {
	content: "";
	position: absolute;
	top: -1.0rem;
	right: -0.4rem;
	transform: translateX(50%);
	background-image: url(../img/design/plus_mark01.svg);
	background-repeat: no-repeat;
	background-size: contain;
	width: 9.6rem;
	height: auto;
	aspect-ratio: 1/1;
	z-index: 10;
}


.overview__list {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	column-gap: 4.0rem;
	row-gap: 3.4rem;
}

.overview__list_item {
	flex: 1;
}

.overview__list_item_tit {
	margin: 0 0 1.1rem;
	padding: 0.5em 1em 0.62em;
	background-image: linear-gradient(180deg, rgba(50, 77, 151, 1.00) 0%, rgba(68, 99, 229, 1.00) 75%, rgba(68, 129, 229, 1.00) 100%);
	background-position: center center;
	color: #fff;
	font-size: 2.0rem;
	line-height: 1.4;
}



@media screen and (min-width:769.02px) {
	.overview .heading_block {
		text-align: left;
		margin-bottom: 2.5rem;
	}

	.overview .heading_block__en {
		margin-left: 0;
	}

	.overview__contents {
		flex: 1;
	}

	.overview__img_block {
		width: 35rem;
		margin-top: 5rem;
	}

	.overview__functions_block:first-of-type {
		width: 59.6rem;
	}

	.overview__functions_block:last-of-type::before {
		content: "";
		position: absolute;
		top: 50%;
		right: calc(100% - 0.1rem);
		transform: translateY(-7%);
		width: 4.17rem;
		height: auto;
		aspect-ratio: 41/73;
		background: #F6E3F4;
		clip-path: polygon(0 50%, 100% 0, 100% 100%);
	}

	.overview__list_item:nth-of-type(1) {
		margin-top: 5.6rem;
	}

	.overview__list_item:nth-of-type(2) {
		margin-top: 2.8rem;
	}
}

@media screen and (max-width:769px) {
	.overview {
		position: relative;
		padding-bottom: 8.7rem;
	}

	.overview::before {
		height: 280rem;
		clip-path: polygon(0 0, 100% 0, 100% calc(100% - 4.7rem), 0 100%);
	}

	.overview::after {
		bottom: -6.2rem;
		left: -47rem;
	}

	.overview__block {
		flex-direction: column;
		row-gap: 2.5rem;
		margin: 5rem 0 5.5rem;
	}

	.overview__img_block {
		width: 27rem;
		margin: 0 auto;
	}


	.overview__functions {
		flex-direction: column;
		row-gap: 5.5rem;
		margin-bottom: 5.5rem;
	}

	.overview__functions_block_inner {
		height: auto;
		padding: 1.1rem 1.7rem 1.76rem;
	}

	.overview__functions_block_tit {
		font-size: 1.8rem;
	}

	.overview__functions_block:first-of-type .overview__functions_block_tit {
		position: static;
	}

	.overview__functions_block:first-of-type .overview__functions_block_tit::after {
		top: 100%;
		right: auto;
		left: 50%;
		transform: translateX(-50%) translateY(-1.1rem);
		width: 5.0rem;
	}

	.overview__list {
		flex-direction: column;
	}

	.overview__list_item {
		flex: 1;
	}

	.overview__list_item_tit {
		margin: 0 0 1.0rem;
		text-align: center;
	}
}


/********************
	.reason
********************/
.reason {
	position: relative;
	padding: 4rem 0 0;
	margin-bottom: -2.5rem;
}

.reason::before {
	content: "";
	position: absolute;
	top: 11.5rem;
	right: 0;
	background-image: url(../img/design/reason__deco01.svg);
	background-size: contain;
	width: 22rem;
	aspect-ratio: 254/96;
}

.reason__block {
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	column-gap: 5.4rem;
	row-gap: 4.7rem;
	z-index: 10;
}

.reason__block_contents {
	width: fit-content;
}

.reason__block_number_block {
	width: fit-content;
	margin: 0 0 1.4rem;
}

.reason__block_number_sub {
	display: block;
	text-align: center;
	margin: 0 auto 0.40em;
	padding-left: 0.39em;
	color: #8C8C8C;
	font-size: 1.62rem;
	font-family: var(--font-barlow);
	line-height: 1.1;
}

.reason__block_number {
	display: block;
	color: var(--color-blue01);
	text-align: center;
	font-size: 7.3rem;
	font-family: var(--font-oleo_script);
	line-height: 1;
}

.reason__block_tit {
	margin: 0 0 2.0rem;
	font-size: 2.8rem;
	line-height: 1.62;
	white-space: nowrap;
}

.reason__block_text {
	max-width: 47rem;
}

.reason__block_img_block {
	margin-top: 3.4rem;
	max-width: 56.9rem;
}

.reason__block:nth-of-type(1)::before,
.reason__block:nth-of-type(3)::before,
.reason__block:nth-of-type(5)::before {
	content: "";
	position: absolute;
	background-image: linear-gradient(168deg, rgba(47, 63, 147, 1.00) 0%, rgba(175, 57, 142, 1.00) 100%);
	background-position: center center;
	opacity: 0.1;
	z-index: -1;
}


.reason__block:nth-of-type(1)::after,
.reason__block:nth-of-type(2)::before,
.reason__block:nth-of-type(2)::after,
.reason__block:nth-of-type(3)::after,
.reason__block:nth-of-type(4)::before,
.reason__block:nth-of-type(4)::after,
.reason__block:nth-of-type(5)::after {
	content: "";
	position: absolute;
	background-repeat: no-repeat;
	background-size: contain;
	height: auto;
	z-index: -1;
}

.reason__block:nth-of-type(1)::after {
	background-image: url(../img/design/reason__deco02.svg);
	width: 23.8rem;
	aspect-ratio: 238/120;
	top: 44rem;
	left: -17rem;
}

.reason__block:nth-of-type(2)::before {
	background-image: url(../img/design/reason__deco03.svg);
	width: 22.8rem;
	aspect-ratio: 226/181;
	top: -8.7rem;
	right: -11rem;
}

.reason__block:nth-of-type(2)::after {
	background-image: url(../img/design/reason__deco04.svg);
	width: 30rem;
	aspect-ratio: 301/333;
	bottom: -4.7rem;
	left: -26rem;
}

.reason__block:nth-of-type(3)::after {
	background-image: url(../img/design/reason__deco05.svg);
	width: 28rem;
	aspect-ratio: 280/227;
	top: -5.5rem;
	right: -15rem;
}

.reason__block:nth-of-type(4)::before {
	background-image: url(../img/design/reason__deco06.svg);
	width: 35rem;
	aspect-ratio: 351/258;
	top: -6.9rem;
	left: -25rem;
}

.reason__block:nth-of-type(4)::after {
	background-image: url(../img/design/reason__deco07.svg);
	width: 11.8rem;
	aspect-ratio: 134/104;
	bottom: -18.2rem;
	left: -10rem;
}

.reason__block:nth-of-type(5)::after {
	background-image: url(../img/design/reason__deco08.svg);
	width: 29rem;
	aspect-ratio: 264/343;
	bottom: -4.4rem;
	right: -24.4rem;
}


@media screen and (min-width:769.02px) {
	.reason__block:nth-of-type(2n) {
		flex-direction: row-reverse;
	}

	.reason__block:nth-of-type(1) {
		margin-top: 7.6rem;
		margin-bottom: 4.4rem;
	}

	.reason__block:nth-of-type(1) .reason__block_img_block {
		margin-top: 8.2rem;
	}

	.reason__block:nth-of-type(2) {
		margin-bottom: 15rem;
	}

	.reason__block:nth-of-type(3) {
		margin-bottom: 11.7rem;
		column-gap: 7.0rem;
	}

	.reason__block:nth-of-type(4) {
		margin-bottom: 18.7rem;
	}

	.reason__block:nth-of-type(5) {
		column-gap: 7.0rem;
	}



	.reason__block:nth-of-type(1)::before {
		top: -6.2rem;
		left: -10rem;
		width: 100vw;
		height: 100rem;
		clip-path: polygon(0 13rem, 100% 0, 100% calc(100% - 13rem), 0 100%);
	}

	.reason__block:nth-of-type(3)::before {
		top: -2.8rem;
		right: -10rem;
		width: 100vw;
		height: 117rem;
		clip-path: polygon(0 13rem, 100% 0, 100% calc(100% - 13rem), 0 100%);
	}

	.reason__block:nth-of-type(5)::before {
		top: 5.4rem;
		left: -10rem;
		width: 100vw;
		height: 100rem;
		clip-path: polygon(0 13rem, 100% 0, 100% calc(100% - 13rem), 0 100%);
	}
}

@media screen and (max-width:769px) {
	.reason {
		padding-bottom: 5.5rem;
	}

	.reason__wrapper {
		margin-top: 5.4rem;
	}

	.reason__block {
		flex-direction: column;
		row-gap: 3.2rem;
	}

	.reason__block:nth-of-type(n+2) {
		margin-top: 7.3rem;
	}

	.reason__block_contents {
		width: fit-content;
	}

	.reason__block_number_block {
		width: fit-content;
		margin: 0 auto 1.1rem;
	}

	.reason__block_number_sub {}

	.reason__block_number {}

	.reason__block_tit {
		margin-bottom: 1.7rem;
		text-align: center;
		font-size: 2.28rem;
	}

	.reason__block_text {
		max-width: 47rem;
	}

	.reason__block_img_block {
		margin: 0 auto;
	}

	.reason__block:nth-of-type(1)::before {
		top: 4.7rem;
		left: 50%;
		transform: translateX(-50%);
		width: 100vw;
		height: 170rem;
		clip-path: polygon(0 4rem, 100% 0, 100% calc(100% - 4rem), 0 100%);
	}

	.reason__block:nth-of-type(3)::before {
		top: 4.0rem;
		left: 50%;
		transform: translateX(-50%);
		width: 100vw;
		height: 166.9rem;
		clip-path: polygon(0 4rem, 100% 0, 100% calc(100% - 4rem), 0 100%);
	}

	.reason__block:nth-of-type(5)::before {
		top: 14.4rem;
		left: 50%;
		transform: translateX(-50%);
		width: 100vw;
		height: 166.9rem;
		clip-path: polygon(0 4rem, 100% 0, 100% calc(100% - 4rem), 0 100%);
	}


	.reason__block:nth-of-type(1)::after {
		top: 59rem;
		left: -3.9rem;
		filter: brightness(1.3);
	}

	.reason__block:nth-of-type(2)::before {
		display: none;
	}

	.reason__block:nth-of-type(2)::after {
		width: 28rem;
		bottom: -11rem;
		left: -6.2rem;
	}

	.reason__block:nth-of-type(3)::after {
		display: none;
	}

	.reason__block:nth-of-type(4)::before {
		display: none;
	}

	.reason__block:nth-of-type(4)::after {
		width: 11.7rem;
		bottom: -7.3rem;
		left: -0.4rem;
		filter: brightness(1.1);
	}

	.reason__block:nth-of-type(5)::after {
		display: none;
	}
}


/********************
	.recommended_contents
********************/
.recommended_contents {
	position: relative;
	padding: 19rem 0 24.4rem;
	color: #fff;
}

.recommended_contents::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 100%;
	height: 100%;
	background-image: url(../img/design/recommended_contents__bg.png);
	background-size: 100% 100%;
	object-position: bottom right;
}

.recommended_contents .heading_block {
	--color: #fff;
}

.recommended_contents__list {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 5.0rem;
	row-gap: 6.2rem;
	max-width: 91.7rem;
	margin: 0 auto;
}

.recommended_contents__list_item {}

.recommended_contents__list_item_img_block {
	margin: 0 auto 1.7rem;
}

.recommended_contents__list_item_img_block img {
	width: 100%;
}

.recommended_contents__list_item_tit {
	margin: 0 auto 0.47em;
	text-align: center;
	font-size: 2.15rem;
	line-height: 1.35;
}

.recommended_contents__list_item_text {
	margin: 0 0 1.4rem;
	letter-spacing: 0.02em;
	line-height: 1.92;
}

.recommended_contents__list_item_btn {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 96%;
	max-width: 32rem;
	height: 5.5rem;
	margin: 0 auto;
	background-image: linear-gradient(180deg, rgba(255, 230, 103, 1.00) 0%, rgba(250, 184, 50, 1.00) 100%);
	background-position: center center;
	border-radius: 100rem;
	box-shadow: 0 0.4rem 0.4rem rgba(0, 0, 0, 0.15);
	font-size: 1.9rem;
	font-weight: 700;
}

.recommended_contents__list_item_btn::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 2.5rem;
	transform: translateX(0%) translateY(-50%) rotate(-45deg);
	width: 0.76em;
	height: auto;
	aspect-ratio: 1/1;
	border: 0.18em solid var(--color-black01);
	border-top: 0;
	border-left: 0;
}

.recommended_contents__list_item_btn:hover {
	opacity: 1;
	filter: brightness(1.17);
}

.recommended_contents__list_item_btn:hover::after {
	right: 2rem;
}

@media screen and (min-width:769.02px) {
	.recommended_contents::before {
		min-width: 1600px;
	}

	.recommended_contents__list_item_text {
		min-height: 6.0em;
	}
}

@media screen and (max-width:769px) {
	.recommended_contents {
		padding: 7.6rem 0 11.5rem;
	}

	.recommended_contents::before {
		background-image: url(../img/design/recommended_contents__bg-sp.png);
	}

	.recommended_contents__list {
		grid-template-columns: 1fr;
		row-gap: 5.4rem;
	}

	.recommended_contents__list_item_btn {
		margin-top: 1.7rem;
		height: 5.9rem;
		font-size: 1.8rem;
	}
}


/********************
	.cases
********************/
.cases {
	position: relative;
	padding-top: 11.5rem;
}

.cases::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: calc(50% + 39rem);
	width: 21.5rem;
	height: auto;
	aspect-ratio: 210/244;
	background-image: url(../img/case__illust01.svg);
	background-repeat: no-repeat;
	background-size: contain;
	z-index: 10;
}

.cases__outer {
	position: relative;
}

.cases__outer::before,
.cases__outer::after {
	content: "";
	position: absolute;
	background-repeat: no-repeat;
	background-size: contain;
	height: auto;
}

.cases__outer::before {
	background-image: url(../img/design/cases__deco01.svg);
	width: 19.6rem;
	aspect-ratio: 1/1;
	top: -15.5rem;
	right: 13.2rem;
}

.cases__outer::after {
	background-image: url(../img/design/cases__deco02.svg);
	width: 35rem;
	aspect-ratio: 379/382;
	bottom: -18.7rem;
	left: 0;
}

.case__block {
	position: relative;
	display: flex !important;
	align-items: flex-start;
	justify-content: center;
	column-gap: 5.0rem;
	max-width: 130rem;
	padding: 11rem 14rem 12.5rem;
	margin: 0 auto;
	z-index: 10;
}

.case__block::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: linear-gradient(88deg, rgba(46, 156, 224, 1.00) 0%, rgba(49, 77, 225, 1.00) 100%);
	background-position: center center;
	opacity: 0.1;
	clip-path: polygon(0 13.2rem, 100% 0, 100% calc(100% - 13.2rem), 0 100%);
	z-index: -10;
}

.case__block .number {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 23.2rem;
	z-index: -1;
}

.case__block_contents {
	flex: 1;
}

.case__block_img_block {
	position: relative;
	margin-top: 10.6rem;
	width: 44rem;
}

.case__block_img_block .label {
	position: absolute;
	top: 0;
	left: 0;
	width: 14rem;
	transform: translateX(-30%) translateY(-80%);
}

.case__block_tit {
	margin: 0 0 0.93em;
	font-size: 2.2rem;
	line-height: 1.44;
	text-align: center;
}

.case__block_address {
	margin: 0 0 1.25em;
	font-size: 1.7rem;
	font-weight: 700;
	line-height: 1.44;
	text-align: center;
}

.case__block_text {}

@media screen and (max-width:769px) {
	.cases {
		padding-top: 5.9rem;
	}

	.cases::after {
		bottom: 6.9rem;
		left: auto;
		right: 1.7rem;
		width: 10rem;
	}

	.cases__outer::before {
		width: 13rem;
		top: -9.2rem;
		right: -5.9rem;
	}

	.cases__outer::after {
		width: 25rem;
		bottom: -11.7rem;
		left: -14.4rem;
	}

	.case__block {
		flex-direction: column;
		padding: 7.3rem 2.5rem 10rem;
	}

	.case__block::before {
		clip-path: polygon(0 4.5rem, 100% 0, 100% calc(100% - 4.5rem), 0 100%);
	}

	.case__block .number {
		width: 18.7rem;
		opacity: 0.92;
	}

	.case__block_contents {
		flex: 1;
	}

	.case__block_img_block {
		margin: 0 auto 1.8rem;
		width: 26.9rem;
	}

	.case__block_img_block .label {
		left: auto;
		right: 0;
		width: 12.5rem;
		transform: translateX(32%) translateY(-62%);
	}

	.case__block_tit {
		margin: 0 auto 0.82em;
		font-size: 2.0rem;
	}

	.case__block_address {
		margin: 0 0 1.25em;
		font-size: 1.7rem;
		font-weight: 700;
		line-height: 1.44;
		text-align: center;
	}

	.case__block_text {}
}



/*******************
	.faq
********************/
.faq {
	position: relative;
	padding: 7.3rem 0 4.4rem;
}

.faq .contents_wrapper {
	max-width: 89.6rem;
}

.faq_block dl {
	width: 100%;
}

.faq__block .acc_wrapper {
	margin: 0;
}


.faq__contents {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	-moz-column-gap: 0.4em;
	column-gap: 0.4em;
	padding: 0.5em 3.4em 0.62em 2.5rem;
	font-size: 1.5rem;
	margin-bottom: 0.73em;
}

.faq__question {
	position: relative;
	cursor: pointer;
	background-image: linear-gradient(90deg, rgba(47, 63, 147, 1.00) 0%, rgba(68, 99, 229, 1.00) 100%);
	background-position: center center;
	color: #fff;
	font-size: 2.0rem;
}

.faq__question:hover {
	filter: brightness(1.25);
}

.faq__question::before {
	content: "Q.";
	position: relative;
	top: -0.04em;
	display: block;
	height: auto;
	font-weight: 700;
}

.faq__question .faq__contents_inner p {
	font-weight: 700;
	line-height: 1.44;
}

.faq__answer {
	-moz-column-gap: 0.73em;
	column-gap: 0.73em;
	border-radius: 0;
	border: 0;
	padding: 0 0 3.28rem;
	margin: 0;
}

.faq__answer {}


.faq__btn_block {
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	flex-wrap: wrap;
	column-gap: 2.0rem;
}

.faq__btn_block a {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32.8rem;
	height: 5.9rem;
	padding-bottom: 0.2em;
	border-radius: 100rem;
	box-shadow: 0 0.32rem 0.32rem rgba(0, 0, 0, 0.15);
	margin: 2rem 0 0.2rem;
	background-image: linear-gradient(90deg, rgba(46, 156, 224, 0.25) 0%, rgba(68, 99, 229, 0.25) 100%);
	background-position: center center;
	color: var(--color-blue01);
	font-size: 1.8rem;
	font-weight: 700;
	transition: filter 0s ease;
}

.faq__btn_block a::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 2.5rem;
	transform: translateX(0%) translateY(-47%) rotate(-45deg);
	width: 0.76em;
	height: auto;
	aspect-ratio: 1/1;
	border: 0.18em solid var(--color-blue01);
	border-top: 0;
	border-left: 0;
}

.faq__btn_block a:hover {
	opacity: 1;
	filter: brightness(1.32);
}
.faq__btn_block a:hover::after {
	right: 2.2rem;
}


@media screen and (min-width:769.02px) {
	.faq__answer {
		align-items: flex-start;
	}

	.faq__answer::before {
		content: "A.";
		position: relative;
		top: -0.25em;
		display: block;
		height: auto;
		padding-left: 2.5rem;
		font-size: 2.0rem;
		font-weight: 700;
	}

}


@media screen and (max-width:769px) {
	.faq {
		padding: 2.5rem 0 2.8rem;
	}

	.faq__contents_inner {}

	.faq__question {
		padding: 0.96rem 5.4rem 1.1rem 1.4rem;
		font-size: 1.56rem;
		letter-spacing: -0.01em;
	}

	.faq__btn_block a {
		width: 100%;
		height: 5.0rem;
		padding-bottom: 0.15em;
		font-size: 1.7rem;
	}
}


/*******************
	.contact_sec
********************/
.contact_sec {
	position: relative;
	padding: 15rem 0 7.6rem;
}

.contact_sec::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 87rem;
	background-image: linear-gradient(180deg, rgba(50, 77, 151, 1.00) 0%, rgba(68, 99, 229, 1.00) 75%, rgba(68, 129, 229, 1.00) 100%);
	background-position: center center;
	clip-path: polygon(0 17.6rem, 100% 0, 100% 100%, 0 100%);
	z-index: -1;
}

.contact_sec::after {
	content: "";
	position: absolute;
	bottom: 56rem;
	left: 0;
	width: 100%;
	height: 50rem;
	background-image: url(../img/design/contact_sec__deco01.svg);
	background-repeat: no-repeat;
	background-size: contain;
	z-index: -10;
}


.contact_box {
	--border-w: 0.70rem;
	position: relative;
	display: grid;
	grid-template-columns: auto 39.2rem;
	justify-content: center;
	column-gap: 6.9rem;
	width: fit-content;
	padding: 6.2rem 10.6rem 5.9rem 8.7rem;
	background-image: linear-gradient(26deg, rgba(218, 151, 56, 1.00) 0%, rgba(251, 211, 114, 1.00) 0%, rgba(251, 213, 126, 1.00) 34%, rgba(251, 221, 160, 1.00) 43%, rgba(252, 227, 183, 1.00) 52%, rgba(251, 224, 170, 1.00) 59%, rgba(251, 216, 136, 1.00) 72%, rgba(251, 211, 114, 1.00) 80%, rgba(243, 198, 101, 1.00) 100%, rgba(225, 164, 68, 1.00) 98%, rgba(221, 157, 61, 1.00) 100%);
	background-position: center center;
	z-index: 10;
	border-radius: 1.4rem;
	margin: 8.2rem auto;
}

.contact_box::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateY(-50%) translateX(-50%);
	width: calc(100% - 2 * var(--border-w));
	height: calc(100% - 2 * var(--border-w));
	border-radius: 1.1rem;
	background: #fff;
	z-index: -15;
}

.contact_box__img_block {
	position: relative;
	width: 35.5rem;
}

.contact_box__img_block .logo {
	display: block;
	width: 86%;
	margin: 1.0rem auto 0;
}

.contact_box__heading {
	margin: 0 0 1.3rem;
	color: var(--color-blue01);
	font-size: 3.28rem;
	line-height: 1.32;
}

.contact_box p {
	font-size: 1.6rem;
	margin-bottom: 0.62em;
}

.contact_box strong {
	font-size: 1.9rem;
	letter-spacing: -0.02em;
	line-height: 1.62;
}

.contact_box__btn {
	--color: #fff;
	--bg_color: var(--color-red01);
	--border_color: var(--color-red01);
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 6.6rem;
	padding-bottom: 0.1em;
	margin-top: 2.0rem;
	background: var(--bg_color);
	border: 3.2px solid var(--border_color);
	border-radius: 100rem;
	box-shadow: 0 0.4rem 0.4rem rgba(0, 0, 0, 0.15);
	color: var(--color);
	font-size: 1.9rem;
	font-weight: 700;
	transition: 0s ease;
}

.contact_box__btn::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 2.5rem;
	transform: translateX(0%) translateY(-76%) rotate(45deg);
	width: 0.76em;
	height: auto;
	aspect-ratio: 1/1;
	border: 0.18em solid var(--color);
	border-top: 0;
	border-left: 0;
}

.contact_box__btn:hover {
	opacity: 1;
	--color: var(--color-red01);
	--bg_color: #fff;
}


@media screen and (min-width:769.02px) {
	.contact_box__img_block {
		grid-column: 1/2;
		grid-row: 1/5;
	}
}

@media screen and (max-width:769px) {
	.contact_sec {
		padding: 5.5rem 0 2.2rem;
	}

	.contact_box {
		--border-w: 0.55rem;
		grid-template-columns: 1fr;
		width: 100%;
		padding: 3.2rem 3.0rem 4.5rem;
		margin: 4.0rem auto;
	}

	.contact_sec::before {
		width: 100%;
		height: 106.2rem;
		clip-path: polygon(0 4.7rem, 100% 0, 100% 100%, 0 100%);
		z-index: -1;
	}

	.contact_sec::after {
		content: "";
		position: absolute;
		bottom: 98.2rem;
		left: 62%;
		transform: translateX(-50%);
		width: 244vw;
		height: 34rem;
		z-index: -10;
	}

	.contact_box strong {
		font-size: 1.55rem;
	}

	.contact_box__heading {
		font-size: 2.62rem;
		text-align: center;
	}

	.contact_box__img_block {
		grid-row: 3;
		width: 100%;
		margin: 1.8rem 0 2.2rem;
	}

	.contact_box__btn {
		height: 5.0rem;
		margin-top: 1.1rem;
		font-size: 1.8rem;
	}

	.contact_box__btn::after {
		right: 1.8rem;
		width: 0.69em;
		border-width: 0.14em;
	}
}