/* リキッドレイアウト対応 */

body {
	color: #2E2E2E;
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 500;
	letter-spacing: 0.05em;
}

body strong {
	color: #33B495;
	font-weight: 500;
}

.pc-only {
	display: none;
}

html {
	font-size: 16px;
	font-size: 2.1333333333vw;
}

/* ヘッダー固定した場合、ページ内リンクの遷移先がズレる問題解消 */

html {
	scroll-padding-top: 6.25rem;
}

/* 画面の高さに合わせてフッターを下に広げる */

body {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

footer {
	margin-top: auto;
}

/* ドロワー表示時、 背景を固定してスクロールできないようにする */

body.is-fixed {
	height: 100%;
	overflow: hidden;
	width: 100%;
}

/* pcの電話番号発信対応 */

/* ホバー */

a,
button {
	-webkit-text-decoration: none;
	color: inherit;
	text-decoration: none;
	transition: opacity 0.3s;
}

/* 非表示設定（視覚的に隠しつつスクリーンリーダーでは読み上げられる） */

/* https://gist.github.com/roatnek/c24d5257c4f6d5b1ef0f2328609a0221 */

.visually-hidden {
	clip: rect(1px, 1px, 1px, 1px) !important;
	height: 1px !important;
	overflow: hidden !important;
	position: absolute !important;
	width: 1px !important;
}

.wbr {
	display: inline-block;
}

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

/* Remove default padding */

ul,
ol {
	padding: 0;
}

/* Remove default margin */

body,
h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
figure,
blockquote,
dl,
dd {
	margin: 0;
}

/* Set core root defaults */

html {
	scroll-behavior: smooth;
}

/* Set core body defaults */

body {
	-moz-text-size-adjust: 100%;
	text-size-adjust: 100%; /* 実機端末を横向きにした際のブラウザの自動拡大をオフ */
	-webkit-text-size-adjust: 100%;
	line-height: 1;
	min-height: 100vh;
	text-rendering: optimizeSpeed; /* 上記のSafari用 */
}

/* Remove list styles on ul, ol elements with a class attribute */

ul,
ol {
	list-style: none;
}

/* A elements that don't have a class get default styles */

a:not([class]) {
	-webkit-text-decoration-skip: ink;
	text-decoration-skip-ink: auto;
}

/* Make images easier to work with */

img {
	display: inline-block;
	max-width: 100%;
	vertical-align: bottom;
	width: 100%;
}

/* Natural flow and rhythm in articles by default */

article > * + * {
	margin-top: 1em;
}

/* Inherit fonts for inputs and buttons */

input,
button,
textarea,
select {
	font: inherit;
}

/* Blur images when they have no alt attribute */

img:not([alt]) {
	filter: blur(10px);
}

/* フォームリセット */

input,
button,
select,
textarea {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: transparent;
	border: none;
	border-radius: 0;
	font: inherit;
	outline: none;
}

textarea {
	resize: vertical;
}

input[type=checkbox],
input[type=radio] {
	display: none;
}

input[type=submit],
input[type=button],
label,
button,
select {
	cursor: pointer;
}

select::-ms-expand {
	display: none;
}

hr {
	border: 0;
	height: 0;
	margin: 0;
	padding: 0;
}

address {
	font-style: normal;
}

summary {
	cursor: pointer;
	list-style: none;
}

summary::-webkit-details-marker {
	display: none;
}

summary::marker {
	display: none;
}

fieldset {
	border: none;
	margin: 0;
	padding: 0;
}

/* js-triggerと一緒に使う */

/* =========================================== */

/*                 inview                      */

/* =========================================== */

.inview {
	opacity: 0;
	transform: translateY(30px);
	transition: transform 2s, opacity 2s;
}

.inview.show {
	opacity: 1;
	transform: translateY(0);
}

/* =========================================== */

/*                slide-up                     */

/* =========================================== */

.slide-up {
	display: inline-block;
	overflow: hidden;
}

.slide-up * {
	display: inline-block;
	opacity: 0;
	transform: translateY(100%);
}

.slide-up.show * {
	animation-duration: 1s;
	animation-fill-mode: forwards;
	animation-name: slideInFromBottom;
}

/* =========================================== */

/*               anime-zoom                    */

/* =========================================== */

.anime-zoom__img {
	overflow: hidden;
}

.anime-zoom:hover .anime-zoom__img img {
	transform: scale(1.2, 1.2);
}

/* =========================================== */

/*                Blog Article                 */

/* =========================================== */

.blog-article {
	--bg-color: #F2FAF8;
	height: 100%;
}

.blog-article.-white {
	--bg-color: #fff;
}

.blog-article__link {
	background-color: var(--bg-color);
	border-radius: 0.625rem;
	display: block;
	height: inherit;
	overflow: hidden;
	transition: all 0.3s ease;
}

.blog-article__thumbnail {
	height: 26.5rem;
	overflow: hidden;
	width: 100%;
}

.blog-article__thumbnail img {
	-o-object-fit: cover;
	height: 100%;
	object-fit: cover;
	transition: opacity 0.3s ease;
	width: 100%;
}

.blog-article__body {
	padding: 2.1875rem 2.5rem 2.6875rem;
}

.blog-article__meta {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin-bottom: 1.75rem;
}

.blog-article__category {
	align-items: center;
	background-color: #33B495;
	border-radius: 1.6875rem;
	color: #fff;
	display: inline-flex;
	font-size: 1.25rem;
	height: 2.9375rem;
	justify-content: center;
	letter-spacing: 0.05em;
	line-height: 3.55;
	min-width: 9.625rem;
	padding-bottom: 0.125rem;
}

.blog-article__date {
	color: #9B9B9B;
	font-family: "Montserrat", sans-serif;
	font-size: 1.5rem;
	font-weight: 600;
	letter-spacing: 0.05em;
}

.blog-article__title {
	font-size: 1.875rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.6666666667;
	margin-bottom: 1.625rem;
}

.blog-article__excerpt {
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	display: -webkit-box;
	font-size: 1.625rem;
	letter-spacing: 0.05em;
	line-height: 1.9230769231;
	overflow: hidden;
}

/* =========================================== */

/*                   c-btn-1                   */

/* =========================================== */

.c-btn-1 {
	width: 100%;
}

.c-btn-1 a {
	align-items: center;
	background-color: #33B495;
	border: 0.1875rem solid #33B495;
	border-radius: 62.4375rem;
	display: flex;
	gap: 0.875rem;
	height: 7.3125rem;
	justify-content: center;
	padding-left: 2.5rem;
	padding-right: 2.5rem;
	position: relative;
	transition: all 0.3s ease;
}

.c-btn-1 a .c-btn-1__icon {
	align-items: center;
	display: flex;
	flex-shrink: 0;
	height: 4.75rem;
	justify-content: center;
	width: 4.75rem;
}

.c-btn-1 a .c-btn-1__icon img {
	-o-object-fit: contain;
	aspect-ratio: 1/1;
	object-fit: contain;
}

.c-btn-1 a .c-btn-1__text {
	color: #fff;
	font-size: 1.9375rem;
	letter-spacing: 0.05em;
	line-height: 1.2258064516;
	padding-bottom: 0.1875rem;
	text-align: center;
	transition: inherit;
}

.c-btn-1 a .c-btn-1__text span.-dot {
	display: inline-block;
	position: relative;
}

.c-btn-1 a .c-btn-1__text span.-dot::before {
	background-color: currentColor;
	border-radius: 50%;
	content: "";
	display: inline-block;
	height: 0.3125rem;
	left: 50%;
	position: absolute;
	top: -0.4375rem;
	transform: translateX(-50%);
	width: 0.3125rem;
}

.c-btn-1 a .c-btn-1__arrow {
	align-items: center;
	background-color: #1D8B70;
	border-radius: 50%;
	display: flex;
	height: 4.4375rem;
	justify-content: center;
	position: absolute;
	right: 1.25rem;
	top: 50%;
	transform: translateY(-50%);
	transition: inherit;
	width: 4.4375rem;
}

.c-btn-1 a .c-btn-1__arrow::before {
	-webkit-mask-image: url("../img/common/icon-arrow-1.svg");
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
	-webkit-mask-size: contain;
	background-color: #fff;
	content: "";
	display: inline-block;
	height: 0.75rem;
	mask-image: url("../img/common/icon-arrow-1.svg");
	mask-position: center;
	mask-repeat: no-repeat;
	mask-size: contain;
	transition: inherit;
	width: 1.75rem;
}

.c-btn-1.-has-icon a {
	justify-content: flex-start;
	padding-left: 4.375rem;
}

.c-btn-1.-has-icon-sm a {
	height: 6.375rem;
	justify-content: flex-start;
	padding-left: 2.5rem;
}

.c-btn-1.-has-icon-sm a .c-btn-1__icon {
	width: 3.5rem;
}

.c-btn-1.-has-icon-sm a .c-btn-1__text {
	font-size: 1.75rem;
}

.c-btn-1.-white a {
	background-color: transparent;
	border-color: #fff;
}

.c-btn-1.-white a .c-btn-1__arrow {
	background-color: #fff;
}

.c-btn-1.-white a .c-btn-1__arrow::before {
	background-color: #33B495;
}

.c-btn-1.-border-primary a {
	background-color: transparent;
}

.c-btn-1.-border-primary a .c-btn-1__text {
	color: #33B495;
}

.c-btn-1.-border-primary a .c-btn-1__arrow {
	background-color: #33B495;
}

.c-btn-1.-border-primary a .c-btn-1__arrow::before {
	background-color: #fff;
}

/* =========================================== */

/*                   c-heading                 */

/* =========================================== */

.c-heading {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 0.8125rem;
	justify-content: center;
	margin-left: auto;
	margin-right: auto;
	position: relative;
	width: -moz-fit-content;
	width: fit-content;
}

.c-heading:before,
.c-heading:after {
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	display: inline-block;
	position: absolute;
}

.c-heading::before {
	height: 2.75rem;
	left: -3.5rem;
	top: 0;
	width: 1.625rem;
}

.c-heading::after {
	height: 1.3125rem;
	right: -2.875rem;
	top: 4.6875rem;
	width: 1.625rem;
}

.c-heading.-white .c-heading__en,
.c-heading.-white .c-heading__ja {
	color: #fff;
}

.c-heading.-dots-left-1::before {
	background-image: url("../img/common/icon-dots-left-1.svg");
}

.c-heading.-dots-right-1::after {
	background-image: url("../img/common/icon-dots-right-1.svg");
}

.c-heading.-dots-left-2::before {
	background-image: url("../img/common/icon-dots-left-2.svg");
}

.c-heading.-dots-right-2::after {
	background-image: url("../img/common/icon-dots-right-2.svg");
}

.c-heading.-dots-left-3::before {
	background-image: url("../img/common/icon-dots-left-3.svg");
}

.c-heading.-dots-right-3::after {
	background-image: url("../img/common/icon-dots-right-3.svg");
}

.c-heading.-dots-left-4::before {
	background-image: url("../img/common/icon-dots-left-4.svg");
}

.c-heading.-dots-right-4::after {
	background-image: url("../img/common/icon-dots-right-4.svg");
}

.c-heading.-policy::before {
	left: -3.125rem;
	top: -1.0625rem;
}

.c-heading.-policy::after {
	right: -2.4375rem;
	top: 3.8125rem;
}

.c-heading.-policy .c-heading__en {
	font-size: 3.4375rem;
	line-height: 1.2181818182;
}

.c-heading__en {
	color: #33B495;
	font-family: "Montserrat", sans-serif;
	font-size: 5.3125rem;
	font-weight: 600;
	letter-spacing: 0.265625rem;
	line-height: 1;
	position: relative;
	text-transform: uppercase;
}

.c-heading__ja {
	font-size: 1.625rem;
	font-weight: 500;
	letter-spacing: 0.08125rem;
	line-height: 1;
	text-align: center;
}

/* =========================================== */

/*                   c-modal                   */

/* =========================================== */

.c-modal {
	background-color: transparent;
	border: none;
	max-width: 37.5rem;
	padding: 0;
	width: 90%; /* オーバーレイのスタイリング */
}

.c-modal::backdrop {
	background-color: rgba(0, 0, 0, 0.5);
}

.c-modal__content {
	background-color: #fff;
	border-radius: 1.25rem;
	padding: 3.75rem 2.5rem 2.5rem;
	position: relative;
	width: 100%;
}

.c-modal__close {
	align-items: center;
	background-color: transparent;
	border: none;
	color: #2E2E2E;
	cursor: pointer;
	display: flex;
	font-size: 2rem;
	height: 2.5rem;
	justify-content: center;
	line-height: 1;
	position: absolute;
	right: 1.25rem;
	top: 1.25rem;
	transition: opacity 0.3s ease;
	width: 2.5rem;
}

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

.c-modal__body {
	width: 100%;
}

.c-modal__title {
	color: #2E2E2E;
	font-size: 1.75rem;
	line-height: 1.4285714286;
	margin-bottom: 1.875rem;
	text-align: center;
}

.c-modal__tel {
	margin: 0;
	text-align: center;
}

.c-modal__tel a,
.c-modal__tel span {
	-webkit-text-decoration: none;
	color: #33B495;
	display: inline-block;
	font-size: 2.25rem;
	font-weight: 700;
	line-height: 1.3888888889;
	text-decoration: none;
}

.c-modal__tel a {
	transition: opacity 0.3s ease;
}

.c-modal__tel a:hover {
	opacity: 0.7;
}

/* =========================================== */

/*                   cta                       */

/* =========================================== */

.cta {
	background-color: #E2F4EF;
	padding-bottom: 6.25rem;
	padding-top: 6.25rem;
}

.cta__heading {
	margin-bottom: 3.75rem;
}

.cta__inner {
	text-align: center;
}

.cta__lead {
	display: inline-block;
	font-size: 1.625rem;
	letter-spacing: 0.08125rem;
	line-height: 1.9230769231;
	margin-bottom: 3.625rem;
	position: relative;
}

.cta__lead:before,
.cta__lead:after {
	background-image: url("../img/common/icon-fukidashi-1.svg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	bottom: 0.4375rem;
	content: "";
	display: inline-block;
	height: 4.25rem;
	position: absolute;
	width: 2.375rem;
}

.cta__lead:before {
	left: -3rem;
}

.cta__lead:after {
	right: -2.6875rem;
	scale: -1 1;
}

.cta__list {
	grid-gap: 1.375rem;
	display: grid;
	gap: 1.375rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.cta__item {
	width: 100%;
}

/* =========================================== */

/*                   footer                    */

/* =========================================== */

.footer {
	background-color: #E2F4EF;
	overflow-y: clip;
	position: relative;
}

.footer::before {
	bottom: 0;
	box-shadow: 0 0.1875rem 1.25rem 0 rgba(0, 0, 0, 0.16);
	content: "";
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 0;
}

.footer.-white-bg {
	background-color: #fff;
}

.footer--layout {
	margin-top: auto;
}

.footer__bg {
	background-color: #1D8B70;
	border-radius: 8.4375rem 8.4375rem 0 0;
	overflow: hidden;
	padding-bottom: 1.875rem;
	padding-top: 5.25rem;
	position: relative;
}

.footer__bg::before {
	background-image: url("../img/common/grid-bg.svg");
	background-position: top center;
	background-repeat: no-repeat;
	background-size: cover;
	bottom: 0;
	content: "";
	left: 0;
	opacity: 1;
	pointer-events: none;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 0;
}

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

.footer__content {
	display: grid;
	justify-items: center;
	padding-left: 2.5rem;
	padding-right: 2.5rem;
}

.footer__logo {
	height: 5.375rem;
	margin-bottom: 3.875rem;
	width: 21.9375rem;
}

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

.footer__nav {
	width: 100%;
}

.footer__nav-items {
	align-items: center;
	display: flex;
	gap: 3.5rem;
	justify-content: center;
	list-style: none;
	margin-bottom: 1.5625rem;
	padding: 0;
}

.footer__nav-item a {
	-webkit-text-decoration: none;
	color: #fff;
	font-family: "Montserrat", sans-serif;
	font-size: 1.625rem;
	font-weight: 600;
	letter-spacing: 0.08125rem;
	line-height: 1.9230769231;
	text-decoration: none;
	transition: opacity 0.3s;
}

.footer__separator {
	background-color: #fff;
	height: 0.1875rem;
	margin-bottom: 1.4375rem;
	width: 100%;
}

.footer__bottom {
	grid-gap: 0.625rem;
	display: grid;
	gap: 0.625rem;
	justify-items: center;
}

.footer__privacy {
	margin: 0;
}

.footer__privacy a {
	-webkit-text-decoration: none;
	color: #fff;
	font-size: 1.25rem;
	letter-spacing: 0.0625rem;
	line-height: 2.5;
	text-decoration: none;
	transition: opacity 0.3s;
}

.footer__copyright {
	color: #fff;
	font-family: "Montserrat", sans-serif;
	font-size: 1.25rem;
	font-weight: 600;
	letter-spacing: 0.0625rem;
	line-height: 2.5;
	margin: 0;
}

.grecaptcha-badge {
	z-index: 100;
}

/* =========================================== */

/*                   Header                    */

/* =========================================== */

.header {
	background-color: #fff;
	color: #E2F4EF;
	height: 6.25rem;
	left: 0;
	position: fixed;
	top: 0;
	transform: translateY(0);
	transition: transform 0.3s ease-out;
	width: 100%;
	z-index: 200;
}

.header__inner {
	grid-gap: 1.25rem;
	align-items: center;
	display: grid;
	gap: 1.25rem;
	grid-template-columns: max-content 1fr;
	height: inherit;
	position: relative;
}

.header__logo {
	align-items: center;
	display: flex;
	height: inherit;
	justify-items: center;
	place-items: center;
}

.header__logo-link {
	align-items: center;
	display: flex;
	width: 10.1875rem;
}

.header__logo-link img {
	-o-object-fit: contain;
	aspect-ratio: 332/81;
	object-fit: contain;
	width: 100%;
}

/* =========================================== */

/*              Contact Button                 */

/* =========================================== */

.header__contact-btn {
	align-items: center;
	background-color: #33B495;
	border-radius: 3.1875rem;
	display: flex;
	height: 4.0625rem;
	left: 22.125rem;
	padding-left: 2.3125rem;
	position: absolute;
	top: 1.125rem;
	width: 17.25rem;
}

.header__contact-text {
	color: #fff;
	font-family: "Montserrat", sans-serif;
	font-size: 1.625rem;
	font-weight: 600;
	letter-spacing: 0.08125rem;
	line-height: normal;
	white-space: nowrap;
}

.header__contact-arrow {
	align-items: center;
	background-color: #1D8B70;
	border-radius: 50%;
	display: flex;
	height: 2.8125rem;
	justify-content: center;
	position: absolute;
	right: 0.875rem;
	top: 50%;
	transform: translateY(-50%);
	width: 2.75rem;
}

.header__contact-arrow::before {
	-webkit-mask-image: url("../img/common/icon-arrow-1.svg");
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
	-webkit-mask-size: contain;
	background-color: #fff;
	content: "";
	display: inline-block;
	height: 0.5rem;
	mask-image: url("../img/common/icon-arrow-1.svg");
	mask-position: center;
	mask-repeat: no-repeat;
	mask-size: contain;
	width: 1.125rem;
}

/* =========================================== */

/*                 Hamburger                   */

/* =========================================== */

.header__hamburger {
	background-color: #E2F4EF;
	border-radius: 50%;
	color: #33B495;
	display: block;
	height: 4.0625rem;
	margin-left: auto;
	position: relative;
	width: 100%;
	width: 4.0625rem;
	z-index: 50;
}

.header__hamburger span {
	background-color: currentColor;
	border-radius: 0.125rem;
	display: block;
	height: 0.125rem;
	margin-left: auto;
	margin-right: auto;
	position: relative;
	transition: 0.5s;
	width: 1.40625rem;
}

.header__hamburger span:nth-of-type(2) {
	top: -0.4375rem;
}

.header__hamburger span:nth-of-type(3) {
	top: 0;
}

.header__hamburger span:nth-of-type(4) {
	top: 0.4375rem;
}

.header__hamburger.is-open span:nth-of-type(2) {
	top: 0.0625rem;
	transform: rotate(45deg);
}

.header__hamburger.is-open span:nth-of-type(3) {
	top: 0rem;
	transform: rotate(-45deg);
}

.header__hamburger.is-open span:nth-of-type(4) {
	opacity: 0;
}

/* =========================================== */

/*                  SP Header                  */

/* =========================================== */

.header__drawer {
	background-color: #fff;
	display: block;
	height: 100vh;
	height: 100dvh;
	overflow-y: auto;
	padding-bottom: 7.1875rem;
	padding-top: 7.1875rem;
	pointer-events: none;
	position: absolute;
	right: 0;
	top: 0;
	transform: translateX(100%);
	transition: transform 0.3s ease-out, visibility 0s 0.3s;
	visibility: hidden;
	width: 75.4%;
}

.header__drawer.is-open {
	pointer-events: auto;
	transform: translateX(0);
	transition: transform 0.3s ease-out;
	visibility: visible;
}

.header__sp-nav-items {
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin-left: 5rem;
	margin-right: 5rem;
}

.header__sp-nav-item a {
	grid-gap: 0.9375rem;
	align-items: center;
	color: #2E2E2E;
	display: grid;
	font-size: 1.875rem;
	gap: 0.9375rem;
	grid-template-columns: auto 1fr;
	padding-bottom: 1.4375rem;
	padding-top: 1.4375rem;
}

.header__sp-nav-item a::before {
	background-color: #33B495;
	content: "";
	display: inline-block;
	height: 0.625rem;
	width: 0.625rem;
}

.header__drawer-contact-list {
	grid-gap: 0.625rem;
	display: grid;
	gap: 0.625rem;
	margin-left: 5rem;
	margin-top: 12.5rem;
	max-width: 26.25rem;
}

.inner {
	margin-left: auto;
	margin-right: auto;
	padding-left: 2.5rem;
	padding-right: 2.5rem;
	width: 100%;
}

.page-fv {
	height: 19.5625rem;
}

.page-fv--layout {
	margin-bottom: 3.75rem;
}

.page-fv__inner {
	height: inherit;
	position: relative;
}

.page-fv__img {
	height: inherit;
	position: relative;
}

.page-fv__img img {
	-o-object-fit: cover;
	-o-object-position: center;
	aspect-ratio: 750/313;
	object-fit: cover;
	object-position: center;
}

.page-fv__img::before {
	background: #03291F;
	content: "";
	height: 100%;
	left: 0;
	opacity: 0.4497;
	position: absolute;
	top: 0;
	width: 100%;
}

.page-fv__title-wrap {
	left: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
}

/* =========================================== */

/*              PC固定レイアウト（汎用）         */

/* =========================================== */

/* PC固定レイアウト（768px以上） */

.pc-layout {
	display: none;
	height: 100vh;
	height: 100dvh;
	left: 0;
	overflow: hidden;
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 1;
}

.pc-layout__bg {
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: -1;
}

/* =========================================== */

/*                   left                    */

/* =========================================== */

.pc-layout__left {
	grid-gap: 5rem;
	display: grid;
	gap: 5rem;
	grid-template-rows: auto 1fr;
	left: 7.125rem;
	position: fixed;
	top: 7.1875rem;
	width: 20.75rem;
	z-index: 1;
}

.pc-layout__logo {
	width: 100%;
}

.pc-layout__logo-link {
	display: block;
	width: 20.125rem;
}

.pc-layout__logo-link img {
	-o-object-fit: contain;
	aspect-ratio: 332/81;
	object-fit: contain;
	width: 100%;
}

.pc-layout__nav {
	width: 100%;
}

.pc-layout__nav-items {
	display: flex;
	flex-direction: column;
	gap: 2.75rem;
}

.pc-layout__nav-item a {
	color: #2E2E2E;
	display: block;
	font-size: 1.625rem;
	letter-spacing: 0.05em;
	line-height: 1.1923076923;
	padding-left: 1.5625rem;
	position: relative;
	transition: all 0.3s;
}

.pc-layout__nav-item a::before {
	background-color: #33B495;
	content: "";
	height: 0.625rem;
	left: 0;
	opacity: 0;
	position: absolute;
	top: 60%;
	transform: translateY(-50%);
	transition: inherit;
	width: 0.625rem;
}

.pc-layout__nav-item a.is-active {
	color: #33B495;
}

.pc-layout__nav-item a.is-active::before {
	opacity: 1;
}

/* =========================================== */

/*                   right                    */

/* =========================================== */

.pc-layout__right {
	bottom: 3.8125rem;
	position: fixed;
	right: 5.875rem;
	width: 25rem;
	z-index: 1;
}

.pc-layout__cta-list {
	grid-gap: 0.625rem;
	display: grid;
	gap: 0.625rem;
}

.pc-layout__cta-item {
	position: relative;
}

.pc-layout__cta-item[data-fukidashi-text]::before {
	background-color: #fff;
	border: 0.125rem solid #33B495;
	border-radius: 62.4375rem;
	color: #33B495;
	content: attr(data-fukidashi-text);
	font-size: 1rem;
	line-height: 1.1875;
	padding: 0.625rem 1.375rem;
	position: absolute;
	right: 0;
	top: -2.125rem;
	white-space: nowrap;
	z-index: 1;
}

.pc-layout__cta-item[data-fukidashi-text]::after {
	background-image: url("../img/common/icon-triangle-2.svg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	display: inline-block;
	height: 0.75rem;
	position: absolute;
	right: 1.6875rem;
	top: 0.25rem;
	width: 0.75rem;
	z-index: 1;
}

/* =========================================== */

/*                   center                    */

/* =========================================== */

.pc-layout-center {
	display: block;
}

.pc-layout-center__content {
	background-color: #fff;
	margin-top: 6.25rem;
	overflow: hidden;
}

.blog-detail {
	background-color: #F2FAF8;
	padding-top: 2.5rem;
}

.blog-detail--layout {
	padding-bottom: 7.5rem;
}

/* =========================================== */

/*                   header                    */

/* =========================================== */

.blog-detail__header {
	background-color: #fff;
	border-radius: 0.625rem;
	margin-bottom: 0.8125rem;
	padding: 2.5rem;
}

.blog-detail__meta {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin-bottom: 1.5625rem;
}

.blog-detail__category {
	align-items: center;
	background-color: #33B495;
	border-radius: 1.6875rem;
	color: #fff;
	display: inline-flex;
	font-size: 1.25rem;
	height: 2.9375rem;
	justify-content: center;
	letter-spacing: 0.05em;
	line-height: 3.55;
	min-width: 9.625rem;
	padding-bottom: 0.125rem;
}

.blog-detail__date {
	color: #9B9B9B;
	font-family: "Montserrat", sans-serif;
	font-size: 1.5rem;
	font-weight: 600;
	letter-spacing: 0.05em;
}

.blog-detail__title {
	border-bottom: 0.125rem solid #33B495;
	font-size: 2.125rem;
	font-weight: 500;
	line-height: 1.5294117647;
	padding-bottom: 1.875rem;
}

.blog-detail__thumbnail {
	border-radius: 0.625rem;
	height: 23.375rem;
	margin-top: 2.6875rem;
	overflow: hidden;
	width: 100%;
}

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

/* =========================================== */

/*                    toc                      */

/* =========================================== */

.blog-detail__toc {
	background-color: #fff;
	border-radius: 0.625rem;
	margin-bottom: 0.8125rem;
	padding: 1.25rem 2.5rem 1.875rem;
}

.blog-detail__toc-title {
	border-bottom: 0.125rem solid currentColor;
	color: #33B495;
	font-size: 2.125rem;
	font-weight: 500;
	line-height: 2.1470588235;
	margin-bottom: 1.875rem;
}

.blog-detail__toc-list {
	grid-gap: 0.75rem;
	display: grid;
	gap: 0.75rem;
}

.blog-detail__toc-item {
	margin: 0;
}

.blog-detail__toc-link {
	font-size: 1.625rem;
	line-height: 1.6;
	transition: color 0.3s ease;
}

/* =========================================== */

/*                   content                   */

/* =========================================== */

.blog-detail__content {
	background-color: #fff;
	border-radius: 0.625rem;
	padding: 3.125rem 2.5rem;
}

.blog-detail__content .c-content__inner {
	grid-gap: 3.625rem;
	display: grid;
	gap: 3.625rem;
}

.blog-detail__content h2 {
	background-color: #E2F4EF;
	font-size: 1.875rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.5666666667;
	padding: 1.625rem 2.5rem 1.6875rem;
	position: relative;
}

.blog-detail__content h2::before,
.blog-detail__content h2::after {
	background-color: #33B495;
	content: "";
	height: 0.8125rem;
	position: absolute;
	width: 0.8125rem;
}

.blog-detail__content h2::before {
	left: 0;
	top: 0;
}

.blog-detail__content h2::after {
	bottom: 0;
	right: 0;
}

.blog-detail__content h3 {
	border-bottom: 0.125rem solid #33B495;
	border-top: 0.125rem solid #33B495;
	font-size: 1.875rem;
	font-weight: 500;
	line-height: 1.5666666667;
	padding: 1.625rem 2.5rem 1.6875rem;
}

.blog-detail__content h4 {
	background-color: #F2FAF8;
	font-size: 1.75rem;
	font-weight: 500;
	line-height: 1.4666666667;
	padding: 1.25rem 2.5rem 1.3125rem;
	position: relative;
}

.blog-detail__content h4::before {
	background-color: #33B495;
	content: "";
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 0.5rem;
}

.blog-detail__content h5 {
	color: #1D8B70;
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1.4666666667;
}

.blog-detail__content h6 {
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1.4666666667;
}

.blog-detail__content p {
	font-size: 1.625rem;
	line-height: 2.1153846154;
}

.blog-detail__content a:not(.blog-detail__back-btn *) {
	-webkit-text-decoration: underline;
	color: #0089FF;
	text-decoration: underline;
	text-underline-offset: 0.3ex;
	transition: opacity 0.3s ease;
}

.blog-detail__content img {
	border-radius: 0.625rem;
	height: auto;
	width: 100%;
}

.blog-detail__content strong {
	color: #33B495;
	font-weight: 500;
}

.blog-detail__content hr {
	border-top: 0.125rem solid #33B495;
}

.blog-detail__content blockquote {
	background-color: #F8F8F8;
	border-radius: 0.625rem;
	font-style: italic;
	padding: 2.5rem 2.5rem 1.25rem;
	position: relative;
}

.blog-detail__content blockquote::before {
	color: #33B495;
	content: "“";
	font-size: 10rem;
	left: 1.125rem;
	position: absolute;
	top: -3.125rem;
}

.blog-detail__content blockquote p:last-child {
	color: #C6C6C6;
	text-align: right;
}

.blog-detail__content blockquote p + p:not(:last-child) {
	margin-top: 1.125rem;
}

.blog-detail__content ul li,
.blog-detail__content ol li {
	font-size: 1.625rem;
	letter-spacing: 0.05em;
	line-height: 1.6;
	margin-bottom: 0.625rem;
	position: relative;
}

.blog-detail__content ul li {
	padding-left: 1.75rem;
}

.blog-detail__content ul li::before {
	background-color: #33B495;
	border-radius: 50%;
	content: "";
	display: inline-block;
	height: 0.625rem;
	left: 0;
	position: absolute;
	top: 0.85em;
	transform: translateY(-50%);
	width: 0.625rem;
}

.blog-detail__content ol {
	counter-reset: num;
}

.blog-detail__content ol li {
	padding-left: 2.125rem;
}

.blog-detail__content ol li::before {
	color: #33B495;
	content: counter(num) ".";
	counter-increment: num;
	font-size: 1.625rem;
	font-weight: 700;
	left: 0;
	position: absolute;
	text-align: right;
	top: 0;
	width: 1.5rem;
}

.blog-detail__content ul ul,
.blog-detail__content ol ul,
.blog-detail__content ul ol,
.blog-detail__content ol ol {
	margin: 0.625rem 0 0.625rem 1.125rem;
}

/* =========================================== */

/*                recommended                  */

/* =========================================== */

.blog-detail__recommended {
	margin-top: 7.5rem;
}

.blog-detail__recommended-heading {
	margin-bottom: 5rem;
}

.blog-detail__recommended-slider {
	margin-bottom: 7.3125rem;
}

.splide__track {
	border-radius: 0.625rem;
	box-shadow: 0 0.1875rem 0.75rem 0 rgba(0, 0, 0, 0.16);
	overflow: hidden;
}

.blog-detail__recommended-slider {
	position: relative;
}

.blog-detail__recommended-slider .splide__pagination {
	align-items: center;
	bottom: -3.75rem;
	display: flex;
	filter: none;
	gap: 0.8125rem;
	justify-content: center;
}

.blog-detail__recommended-slider .splide__pagination__page {
	background-color: #E2F4EF;
	border-radius: 50%;
	height: 0.8125rem;
	margin: 0;
	opacity: 1;
	transition: background-color 0.3s;
	width: 0.8125rem;
}

.blog-detail__recommended-slider .splide__pagination__page.is-active {
	background-color: #33B495;
	transform: none;
}

.blog-detail__recommended-slider .splide__arrow {
	background: none;
	border: 0.0625rem solid currentColor;
	border-radius: 50%;
	bottom: -4.875rem;
	height: 3.1875rem;
	left: 64%;
	opacity: 1;
	position: absolute;
	top: auto;
	transform: translateX(-50%);
	transition: all 0.3s ease;
	width: 3.1875rem;
	z-index: 1;
}

.blog-detail__recommended-slider .splide__arrow:hover {
	background-color: #E2F4EF;
}

.blog-detail__recommended-slider .splide__arrow::before {
	-webkit-mask-image: url("../img/common/icon-arrow-1.svg");
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
	-webkit-mask-size: contain;
	background-color: #2E2E2E;
	content: "";
	height: 0.5625rem;
	left: 50%;
	mask-image: url("../img/common/icon-arrow-1.svg");
	mask-position: center;
	mask-repeat: no-repeat;
	mask-size: contain;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 1.25rem;
}

.blog-detail__recommended-slider .splide__arrow--prev {
	left: 36%;
}

.blog-detail__recommended-slider .splide__arrow--prev::before {
	transform: translate(-50%, -50%) rotate(180deg);
}

.blog-detail__recommended-slider .splide__arrow--next {
	right: 0;
}

.blog-detail__recommended-slider .splide__arrow svg {
	display: none;
}

.blog--layout {
	margin-bottom: 7.5rem;
}

.blog__lead {
	font-size: 1.625rem;
	line-height: 2;
	margin-bottom: 0.875rem;
	text-align: center;
}

.blog__separator {
	background-color: #33B495;
	border-radius: 0.125rem;
	height: 2.9375rem;
	margin-bottom: 1.625rem;
	margin-left: auto;
	margin-right: auto;
	width: 0.125rem;
}

/* =========================================== */

/*                    Tabs                     */

/* =========================================== */

.blog__tabs {
	grid-gap: 1.25rem;
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(3, 1fr);
	margin-bottom: 4.625rem;
}

.blog__tab {
	-webkit-text-decoration: none;
	align-items: center;
	background-color: #C6C6C6;
	border: none;
	border-radius: 2.3125rem;
	color: #fff;
	display: inline-flex;
	font-size: 1.625rem;
	font-weight: 500;
	height: 4.625rem;
	justify-content: center;
	letter-spacing: 0.05em;
	line-height: 2;
	padding-bottom: 0.1875rem;
	text-decoration: none;
	transition: all 0.5s ease;
	width: 13.125rem;
}

.blog__tab.-active {
	background-color: #33B495;
	cursor: default;
	pointer-events: none;
}

.blog__tab:not(.-active) {
	cursor: pointer;
}

/* =========================================== */

/*                  Articles                   */

/* =========================================== */

.blog__articles {
	grid-gap: 2.8125rem;
	display: grid;
	gap: 2.8125rem;
	margin-bottom: 6.5rem;
}

.blog__no-results {
	color: #2E2E2E;
	font-size: 1.625rem;
	letter-spacing: 0.05em;
	line-height: 2;
	text-align: center;
}

/* =========================================== */

/*                  Pagination                 */

/* =========================================== */

.blog__pagination {
	align-items: center;
	display: flex;
	justify-content: center;
}

.blog__pagination .nav-links {
	align-items: center;
	display: flex;
	gap: 1.125rem;
	justify-content: center;
}

.blog__pagination .nav-links > * {
	margin: 0;
}

.blog__pagination .page-numbers {
	-webkit-text-decoration: none;
	align-items: center;
	border-radius: 50%;
	display: flex;
	font-family: "Montserrat", sans-serif;
	font-size: 1.625rem;
	font-weight: 600;
	height: 4.9375rem;
	justify-content: center;
	letter-spacing: 0.05em;
	text-decoration: none;
	transition: all 0.3s ease;
	width: 4.9375rem;
}

.blog__pagination .page-numbers.current {
	background-color: #33B495;
	color: #fff;
}

.blog__pagination .page-numbers.dots {
	padding-bottom: 1rem;
	width: 1.75rem;
}

.blog__pagination .page-numbers:not(.current):not(.blog__pagination .page-numbers.dots) {
	border: 0.125rem solid currentColor;
}

.blog__pagination .page-numbers.prev,
.blog__pagination .page-numbers.next {
	border-radius: 50%;
	font-size: 0;
	height: 3.1875rem;
	position: relative;
	width: 3.1875rem;
}

.blog__pagination .page-numbers.prev::before,
.blog__pagination .page-numbers.next::before {
	-webkit-mask-image: url("../img/common/icon-arrow-1.svg");
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
	-webkit-mask-size: contain;
	background-color: #2E2E2E;
	content: "";
	height: 0.5625rem;
	mask-image: url("../img/common/icon-arrow-1.svg");
	mask-position: center;
	mask-repeat: no-repeat;
	mask-size: contain;
	position: absolute;
	width: 1.25rem;
}

.blog__pagination .page-numbers.prev::before {
	transform: rotate(180deg);
}

.contact-thanks--layout {
	margin-bottom: 7.5rem;
}

.contact-thanks__message {
	font-size: 1.625rem;
	line-height: 2;
	margin-bottom: 1.875rem;
	text-align: center;
}

.contact-thanks__separator {
	background-color: #33B495;
	border-radius: 0.125rem;
	height: 2.9375rem;
	margin-bottom: 2.6875rem;
	margin-left: auto;
	margin-right: auto;
	width: 0.125rem;
}

.contact--layout {
	margin-bottom: 7.5rem;
}

.contact__lead {
	font-size: 1.625rem;
	line-height: 2;
	margin-bottom: 2.375rem;
	text-align: center;
}

.contact__separator {
	background-color: #33B495;
	border-radius: 0.125rem;
	height: 2.9375rem;
	margin-bottom: 1.6875rem;
	margin-left: auto;
	margin-right: auto;
	width: 0.125rem;
}

.contact__form .wpcf7-form {
	grid-gap: 1.9375rem;
	display: grid;
	gap: 1.9375rem;
}

.contact__form .contact-form__field {
	grid-gap: 1.25rem;
	display: grid;
	gap: 1.25rem;
	padding-left: 2.5rem;
	padding-right: 2.5rem;
}

.contact__form .contact-form__label,
.contact__form legend {
	align-items: center;
	display: flex;
	font-size: 1.625rem;
	gap: 1rem;
}

.contact__form .contact-form__require {
	align-items: center;
	background-color: #33B495;
	border-radius: 1.625rem;
	color: #fff;
	display: inline-flex;
	font-size: 1.5rem;
	height: 3rem;
	justify-content: center;
	padding-bottom: 0.1875rem;
	width: 5.75rem;
}

.contact__form .contact-form__input {
	display: block;
}

.contact__form input[type=text],
.contact__form input[type=email],
.contact__form input[type=tel],
.contact__form input[type=number],
.contact__form textarea,
.contact__form select {
	background-color: #E2F4EF;
	border-radius: 0.625rem;
	font-size: 1.625rem;
	height: 7.75rem;
	line-height: 2.1153846154;
	padding: 1.25rem 1.875rem;
	width: 100%;
}

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

.contact__form input[type=text]::placeholder,
.contact__form input[type=email]::placeholder,
.contact__form input[type=tel]::placeholder,
.contact__form input[type=number]::placeholder,
.contact__form textarea::placeholder,
.contact__form select::placeholder {
	color: #B4B4B4;
}

.contact__form input[type=text]:focus,
.contact__form input[type=email]:focus,
.contact__form input[type=tel]:focus,
.contact__form input[type=number]:focus,
.contact__form textarea:focus,
.contact__form select:focus {
	outline: 0.125rem solid #33B495;
	outline-offset: 0.125rem;
}

.contact__form input[type=checkbox] {
	height: 0;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	width: 0;
}

.contact__form textarea {
	height: 23.4375rem;
	resize: vertical;
}

.contact__form .contact-form__date-fieldset legend {
	margin-bottom: 1.25rem;
}

.contact__form .contact-form__date-group {
	grid-gap: 0.625rem;
	align-items: end;
	display: grid;
	gap: 0.625rem;
	grid-template-columns: repeat(3, 1fr);
}

.contact__form .contact-form__date-group .contact-form__input {
	grid-gap: 0.625rem;
	align-items: flex-end;
	display: grid;
	gap: 0.625rem;
	grid-template-columns: 1fr auto;
}

.contact__form .contact-form__date-group .contact-form__input > .contact-form__label {
	font-size: 1.625rem;
	line-height: 1;
	order: 1;
}

.contact__form .contact-form__date-group .wpcf7-form-control-wrap > .wpcf7-not-valid-tip {
	display: none !important;
}

.contact__form .contact-form__date-error {
	color: #dc3232;
	display: block;
	font-size: 1.25rem;
	margin-top: 0.625rem;
}

.contact__form .contact-form__checkboxes {
	grid-gap: 3.75rem;
	display: grid;
	gap: 3.75rem;
}

.contact__form .contact-form__checkboxes .wpcf7-list-item {
	margin-left: 0;
	position: relative;
}

.contact__form .contact-form__checkboxes label {
	align-items: center;
	cursor: pointer;
	display: flex;
	font-size: 1.625rem;
	gap: 1.25rem;
	letter-spacing: 0.05em;
	line-height: 2.1153846154;
	padding-left: 3.75rem;
	position: relative;
}

.contact__form .contact-form__checkboxes label::before {
	background-color: #E2F4EF;
	border-radius: 0.5rem;
	content: "";
	height: 2.5rem;
	left: 0;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	transition: all 0.3s ease;
	width: 2.5rem;
}

.contact__form .contact-form__checkboxes label::after {
	background-color: #33B495;
	border-radius: 0.25rem;
	content: "";
	height: 1.5rem;
	left: 0.5rem;
	position: absolute;
	top: 50%;
	transform: translateY(-50%) scale(0);
	transition: transform 0.3s ease;
	width: 1.5rem;
}

.contact__form .contact-form__checkboxes label:has(input[type=checkbox]:checked)::after {
	transform: translateY(-50%) scale(1);
}

.contact__form .contact-form__checkboxes .wpcf7-list-item.-checked label::after {
	transform: translateY(-50%) scale(1);
}

.contact__form .contact-form__field.-privacy {
	margin-top: 1.875rem;
}

.contact__form .contact-form__field.-privacy .wpcf7-acceptance {
	font-size: 1.625rem;
	letter-spacing: 0.05em;
	line-height: 1.7307692308;
}

.contact__form .contact-form__field.-privacy .wpcf7-acceptance .wpcf7-list-item {
	margin-left: 0;
	position: relative;
}

.contact__form .contact-form__field.-privacy .wpcf7-acceptance label {
	display: block;
	padding-left: 4.0625rem;
	position: relative;
	width: 31.875rem;
}

.contact__form .contact-form__field.-privacy .wpcf7-acceptance label::before {
	background-color: #E2F4EF;
	border-radius: 0.5rem;
	content: "";
	height: 2.5rem;
	left: 0;
	position: absolute;
	top: 0.5rem;
	transition: all 0.3s ease;
	width: 2.5rem;
}

.contact__form .contact-form__field.-privacy .wpcf7-acceptance label::after {
	background-color: #33B495;
	border-radius: 0.25rem;
	content: "";
	height: 1.5rem;
	left: 0.5rem;
	position: absolute;
	top: 1.75rem;
	transform: translateY(-50%) scale(0);
	transition: transform 0.3s ease;
	width: 1.5rem;
}

.contact__form .contact-form__field.-privacy .wpcf7-acceptance label:has(input[type=checkbox]:checked)::after {
	transform: translateY(-50%) scale(1);
}

.contact__form .contact-form__field.-privacy .wpcf7-acceptance .wpcf7-list-item.-checked label::after {
	transform: translateY(-50%) scale(1);
}

.contact__form .contact-form__field.-privacy .wpcf7-acceptance a {
	-webkit-text-decoration: underline;
	color: #0089FF;
	text-decoration: underline;
	text-underline-offset: 0.3ex;
}

.contact__form .contact-form__submit {
	margin-top: 2.5rem;
	position: relative;
}

.contact__form .contact-form__submit .wpcf7-submit {
	background-color: #33B495;
	border: 0.1875rem solid #33B495;
	border-radius: 5.4375rem;
	color: #fff;
	font-size: 1.9375rem;
	font-weight: 500;
	height: 7.3125rem;
	letter-spacing: 0.05em;
	line-height: 1.2258064516;
	width: 100%;
}

.contact__form .contact-form__submit .contact-form__submit-arrow {
	align-items: center;
	background-color: #1D8B70;
	border-radius: 50%;
	display: flex;
	height: 4.4375rem;
	justify-content: center;
	position: absolute;
	right: 1.25rem;
	top: 50%;
	transform: translateY(-50%);
	transition: all 0.3s ease;
	width: 4.4375rem;
}

.contact__form .contact-form__submit .contact-form__submit-arrow::before {
	-webkit-mask-image: url("../img/common/icon-arrow-1.svg");
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
	-webkit-mask-size: contain;
	background-color: #fff;
	content: "";
	display: inline-block;
	height: 0.75rem;
	mask-image: url("../img/common/icon-arrow-1.svg");
	mask-position: center;
	mask-repeat: no-repeat;
	mask-size: contain;
	transition: inherit;
	width: 1.75rem;
}

.contact__form .contact-form__submit .wpcf7-spinner {
	background-color: #1D8B70;
	height: 4.4375rem;
	margin: 0;
	opacity: 1;
	position: absolute;
	right: 1.25rem;
	top: 50%;
	transform: translateY(-50%);
	transition: all 0.3s ease;
	width: 4.4375rem;
	z-index: 1;
}

.contact__form .contact-form__submit .wpcf7-spinner::before {
	height: 1.75rem;
	left: 43%;
	top: 40%;
	width: 1.75rem;
}

.contact__form .wpcf7-not-valid-tip {
	font-size: 1.25rem;
	margin-top: 0.625rem;
}

.contact__form .wpcf7-form-control-wrap > .wpcf7-not-valid-tip {
	display: none;
	margin-top: 0.625rem;
}

.contact__form .wpcf7-form-control-wrap.is-show > .wpcf7-not-valid-tip {
	color: #dc3232;
	display: block;
}

.contact__form .wpcf7-form-control-wrap.is-show > .wpcf7-not-valid:not(.wpcf7-checkbox) {
	border: 0.125rem solid #dc3232 !important;
}

.contact__form .wpcf7-form.invalid .wpcf7-response-output {
	display: none;
}

.contact__form .wpcf7-form.sent .wpcf7-response-output {
	display: none;
}

.error--layout {
	margin-bottom: 6.25rem;
}

.error__inner {
	text-align: center;
}

.error__heading {
	color: #33B495;
	font-size: 2.25rem;
	font-weight: 500;
	margin-bottom: 2.5rem;
}

.error__text {
	font-size: 1.625rem;
	line-height: 2;
	margin-bottom: 4.75rem;
}

/* =========================================== */

/*                   plan                       */

/* =========================================== */

.plan--layout {
	margin-bottom: 6.25rem;
}

.plan__text {
	font-size: 1.75rem;
	line-height: 1.8571428571;
	margin-bottom: 3.125rem;
	text-align: center;
}

.plan__scroll {
	grid-gap: 1.125rem;
	color: #33B495;
	display: grid;
	gap: 1.125rem;
	justify-content: center;
	margin-bottom: -4.625rem;
	position: relative;
	z-index: 1;
}

.plan__scroll::after {
	background-color: currentColor;
	border-radius: 0.125rem;
	content: "";
	display: inline-block;
	height: 6.125rem;
	margin-left: auto;
	margin-right: auto;
	width: 0.125rem;
}

.plan__scroll-text {
	font-size: 1.125rem;
	line-height: 1.2222222222;
}

.plan__list {
	grid-gap: 2.5rem;
	display: grid;
	gap: 2.5rem;
}

.plan__item {
	position: relative;
}

.plan__item::before {
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	display: inline-block;
	height: 6.875rem;
	position: absolute;
	width: 6.875rem;
}

.plan__item.-green {
	--plan-main-color: #33B495;
	padding-left: 2.5rem;
}

.plan__item.-green::before {
	background-image: url("../img/plan/plan-item-decor-1.svg");
	right: 1.0625rem;
	top: -4.6875rem;
}

.plan__item.-green .plan__item-content {
	background-color: #E2F4EF;
	border-radius: 1.875rem 0 0 1.875rem;
	padding-left: inherit;
}

.plan__item.-green .plan__item-img {
	border-radius: 0.625rem 0 0 0.625rem;
}

.plan__item.-green .plan__item-body {
	padding-right: 2.5rem;
}

.plan__item.-green .plan__desc-text {
	color: var(--plan-main-color);
}

.plan__item.-green .plan__item-price-label {
	background: linear-gradient(to left, #1D8B70 0%, #139d7b 50%, #2adbb0 100%);
}

.plan__item.-gold {
	--plan-main-color: #d9c364;
	padding-right: 2.5rem;
}

.plan__item.-gold::before {
	background-image: url("../img/plan/plan-item-decor-2.svg");
	left: 2.5rem;
	top: -4.875rem;
}

.plan__item.-gold .plan__item-content {
	background-color: #F7F3DF;
	border-radius: 0 1.875rem 1.875rem 0;
	padding-right: inherit;
}

.plan__item.-gold .plan__item-title {
	align-items: flex-end;
}

.plan__item.-gold .plan__item-img {
	border-radius: 0 0.625rem 0.625rem 0;
}

.plan__item.-gold .plan__item-recommend-title::before {
	background-image: url("../img/common/icon-triangle-y-1.svg");
}

.plan__item.-gold .plan__item-body {
	padding-left: 2.5rem;
}

.plan__item.-gold .plan__desc-text {
	color: #9F8415;
}

.plan__item.-gold .plan__item-price-label {
	background: linear-gradient(to left, #d9c364 0%, #e8d686 50%, #fff7d3 100%);
}

.plan__item:first-of-type .plan__item-content {
	padding-top: 7.625rem;
}

.plan__item-content {
	padding-bottom: 7.5rem;
	padding-top: 6.25rem;
}

.plan__item-img {
	margin-bottom: 3.125rem;
	overflow: hidden;
	width: 100%;
}

.plan__item-img img {
	-o-object-fit: cover;
	aspect-ratio: 671/413;
	object-fit: cover;
}

.plan__item-title {
	display: flex;
	flex-direction: column;
	gap: 0.375rem;
	margin-bottom: -2.5rem;
}

.plan__item-title-number {
	align-items: center;
	background-color: var(--plan-main-color);
	color: #fff;
	display: inline-flex;
	font-family: "Montserrat", sans-serif;
	font-size: 1.5rem;
	font-weight: 600;
	height: 2.9375rem;
	justify-content: center;
	line-height: 1.5;
	width: 9rem;
}

.plan__item-title-name {
	background-color: #fff;
	font-size: 2.75rem;
	line-height: 1.5227272727;
	padding: 0.3125rem 1.8125rem 0.375rem;
	position: relative;
	width: -moz-fit-content;
	width: fit-content;
}

.plan__item-title-name::before,
.plan__item-title-name::after {
	background-color: var(--plan-main-color);
	content: "";
	height: 1rem;
	position: absolute;
	width: 1rem;
}

.plan__item-title-name::before {
	left: 0;
	top: 0;
}

.plan__item-title-name::after {
	bottom: 0;
	right: 0;
}

.plan__item-recommend {
	margin-bottom: 2.375rem;
}

.plan__item-recommend-title {
	background-color: #fff;
	border: 0.1875rem solid currentColor;
	border-radius: 62.4375rem;
	box-shadow: 0 0.1875rem 0.375rem 0 rgba(0, 0, 0, 0.16);
	color: var(--plan-main-color);
	font-size: 1.4375rem;
	line-height: 1;
	margin-bottom: -0.125rem;
	margin-left: auto;
	margin-right: auto;
	padding: 1.03125rem 1.875rem 1.21875rem;
	position: relative;
	text-align: center;
	width: -moz-fit-content;
	width: fit-content;
	z-index: 1;
}

.plan__item-recommend-title::before {
	background-image: url("../img/common/icon-triangle-1.svg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	bottom: -0.875rem;
	content: "";
	display: inline-block;
	height: 1rem;
	left: 50%;
	position: absolute;
	transform: translateX(-50%);
	width: 1.4375rem;
}

.plan__item-recommend-text {
	align-items: center;
	background-color: #fff;
	border-radius: 0.625rem;
	display: flex;
	flex-direction: column;
	font-size: 1.5rem;
	height: 5.3125rem;
	justify-content: center;
	line-height: 2.125;
	text-align: center;
}

.plan__item-description {
	font-size: 1.625rem;
	line-height: 2.1153846154;
	margin-bottom: 4.375rem;
	position: relative;
	z-index: 1;
}

.plan__item-description::before {
	background-image: url("../img/common/logo-icon.svg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	bottom: 0.75rem;
	content: "";
	display: inline-block;
	height: 16.0625rem;
	position: absolute;
	right: 0;
	width: 19.0625rem;
	z-index: -1;
}

.plan__item-price {
	border-radius: 1rem;
	box-shadow: 0 0.1875rem 0.375rem 0 rgba(0, 0, 0, 0.16);
	overflow: hidden;
}

.plan__item-price-label {
	align-items: center;
	color: #fff;
	display: flex;
	font-family: "Montserrat", sans-serif;
	font-size: 1.375rem;
	font-weight: 600;
	height: 3.8125rem;
	justify-content: center;
	line-height: 1.5;
}

.plan__item-price-body {
	align-items: baseline;
	background-color: #fff;
	display: flex;
	gap: 0.625rem;
	justify-content: center;
	padding: 2rem 1.25rem;
}

.plan__item-price-time {
	font-family: "Hiragino Sans", sans-serif;
	font-size: 2.5rem;
	line-height: 2.1;
}

.plan__item-price-separator {
	font-size: 2.5625rem;
	letter-spacing: 0.128125rem;
	line-height: 2.1219512195;
}

.plan__item-price-amount {
	color: var(--plan-main-color);
	font-family: "Hiragino Sans", sans-serif;
	font-size: 4.4375rem;
	font-weight: 700;
	line-height: 1.2253521127;
}

.plan__item-price-amount span {
	letter-spacing: -0.2em;
}

.plan__item-price-unit {
	color: var(--plan-main-color);
	font-family: "Hiragino Sans", sans-serif;
	font-size: 2.5rem;
	font-weight: 700;
	line-height: 2.1;
}

/* =========================================== */

/*              plan-trial-promotion           */

/* =========================================== */

.plan-trial-promotion {
	align-items: center;
	background-image: url("../img/plan/plan-cta-bg.webp");
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	display: flex;
	flex-direction: column;
	height: 39.75rem;
	justify-content: center;
	overflow: hidden;
	position: relative;
}

.plan-trial-promotion--layout {
	margin-bottom: 7.5rem;
}

.plan-trial-promotion__inner {
	color: #fff;
	position: relative;
	text-align: center;
}

.plan-trial-promotion__title {
	display: inline-block;
	font-size: 1.875rem;
	line-height: 1.7333333333;
	margin-bottom: 1.875rem;
	position: relative;
}

.plan-trial-promotion__title:before,
.plan-trial-promotion__title:after {
	background-image: url("../img/common/icon-fukidashi-1.svg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	bottom: 0.4375rem;
	content: "";
	display: inline-block;
	height: 4.25rem;
	position: absolute;
	width: 2.375rem;
}

.plan-trial-promotion__title:before {
	left: -3.625rem;
}

.plan-trial-promotion__title:after {
	right: -3.125rem;
	scale: -1 1;
}

.plan-trial-promotion__text {
	font-size: 1.625rem;
	line-height: 2;
	margin-bottom: 2.0625rem;
}

/* =========================================== */

/*              plan-trial-flow                 */

/* =========================================== */

.plan-trial-flow {
	position: relative;
}

.plan-trial-flow--layout {
	margin-bottom: 7.5rem;
}

.plan-trial-flow__inner {
	position: relative;
}

.plan-trial-flow__heading {
	margin-bottom: 5.1875rem;
}

.plan-trial-flow__list {
	grid-gap: 1.875rem;
	display: grid;
	gap: 1.875rem;
	list-style: none;
	margin-bottom: 5.625rem;
	padding: 0;
}

.plan-trial-flow__item {
	grid-gap: 2.1875rem;
	background-color: #fff;
	border: 0.1875rem solid #33B495;
	border-radius: 0.625rem;
	display: grid;
	gap: 2.1875rem;
	overflow: hidden;
	padding: 2.5rem;
	position: relative;
}

.plan-trial-flow__item:before {
	align-items: end;
	background-color: #33B495;
	border-radius: 50%;
	color: #fff;
	content: attr(data-number);
	display: flex;
	font-family: "Montserrat", sans-serif;
	font-size: 1.875rem;
	font-weight: 600;
	height: 7.1875rem;
	justify-content: center;
	left: 50%;
	letter-spacing: 0.12em;
	line-height: 1.5333333333;
	padding-bottom: 0.625rem;
	position: absolute;
	top: -3.5625rem;
	transform: translateX(-50%);
	width: 7.1875rem;
	z-index: 1;
}

.plan-trial-flow__number {
	color: #fff;
	font-family: "Montserrat", sans-serif;
	font-size: 1.875rem;
	font-weight: 400;
	letter-spacing: 0.09375rem;
	line-height: 1.5333333333;
	position: relative;
	z-index: 1;
}

.plan-trial-flow__img {
	border-radius: 0.625rem;
	height: 24.125rem;
	overflow: hidden;
	width: 100%;
}

.plan-trial-flow__image {
	-o-object-fit: cover;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.plan-trial-flow__title-wrapper {
	align-items: center;
	background-color: #E2F4EF;
	display: flex;
	gap: 0.625rem;
	justify-content: center;
	margin-bottom: 1.25rem;
	padding-bottom: 0.375rem;
	padding-top: 0.375rem;
}

.plan-trial-flow__title {
	color: #33B495;
	font-size: 2rem;
	font-weight: 500;
	line-height: 1.71875;
	padding-bottom: 0.0625rem;
}

.plan-trial-flow__time {
	align-items: center;
	background-color: #33B495;
	border-radius: 1.4375rem;
	color: #fff;
	display: flex;
	font-size: 1.5rem;
	height: 2.8125rem;
	justify-content: center;
	line-height: 1.875;
	min-width: -moz-fit-content;
	min-width: fit-content;
	padding: 0 1.25rem 0.25rem;
}

.plan-trial-flow__description {
	font-size: 1.625rem;
	line-height: 2.1153846154;
}

.plan-trial-flow__notes {
	grid-gap: 0.625rem;
	display: grid;
	gap: 0.625rem;
	margin-bottom: 5.625rem;
}

.plan-trial-flow__notes-item {
	color: #2E2E2E;
	font-size: 1.5rem;
	letter-spacing: 0.075rem;
	line-height: 1.875;
}

.policy--layout {
	margin-bottom: 7.5rem;
	position: relative;
}

.policy__content {
	grid-gap: 4.0625rem;
	display: grid;
	gap: 4.0625rem;
}

.policy__btn {
	margin-top: 4.125rem;
}

/* =========================================== */

/*                   自由記述                    */

/* =========================================== */

.policy__content h2 {
	background-color: #E2F4EF;
	font-size: 1.875rem;
	font-weight: 500;
	line-height: 1.5666666667;
	padding: 1.625rem 2.5rem 1.6875rem;
	position: relative;
}

.policy__content h2::before,
.policy__content h2::after {
	background-color: #33B495;
	content: "";
	height: 0.8125rem;
	position: absolute;
	width: 0.8125rem;
}

.policy__content h2::before {
	left: 0;
	top: 0;
}

.policy__content h2::after {
	bottom: 0;
	right: 0;
}

.policy__content p {
	font-size: 1.625rem;
	line-height: 2.1153846154;
}

.top-fv {
	height: 74.625rem;
	overflow: hidden;
	padding-top: 3.5625rem;
	position: relative;
	width: 100%;
}

.top-fv__bg {
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
	z-index: 0;
}

.top-fv__bg-item {
	-o-object-fit: cover;
	-o-object-position: center;
	animation: topFvFadeInOut 8s infinite;
	height: 100%;
	left: 0;
	object-fit: cover;
	object-position: center;
	opacity: 0;
	position: absolute;
	top: 0;
	width: 100%;
}

.top-fv__bg-item:nth-child(1) {
	animation-delay: 0s;
}

.top-fv__bg-item:nth-child(2) {
	animation-delay: 4s;
}

.top-fv__inner {
	height: 100%;
	position: relative;
	z-index: 1;
}

.top-fv__location {
	color: #fff;
	font-size: 1.375rem;
	line-height: 1;
	margin-bottom: 1.5625rem;
}

.top-fv__catch-copy span {
	font-feature-settings: "palt";
	background-color: #fff;
	color: #2E2E2E;
	font-size: 2.75rem;
	font-weight: 500;
	line-height: 1.91;
	padding: 0.375rem 1.8125rem 0.375rem 1.875rem;
	position: relative;
}

.top-fv__catch-copy span::before {
	background-color: #33B495;
	content: "";
	height: 0.8125rem;
	left: 0;
	position: absolute;
	top: 0;
	width: 0.8125rem;
	z-index: 2;
}

.top-fv__catch-copy span:nth-of-type(2)::before {
	bottom: 0;
	left: auto;
	right: 0;
	top: auto;
}

.top-fv__catch-copy span:not(:nth-of-type(2)) {
	padding-right: 0.5625rem;
}

.top-fv__catch-text--accent {
	color: #33B495;
}

.top-fv__scroll {
	align-items: center;
	bottom: 5.46875rem;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	left: 50%;
	position: absolute;
	transform: translateX(-50%);
}

.top-fv__scroll-text {
	color: #fff;
	font-size: 1.125rem;
}

.top-fv__scroll-line {
	background-color: #fff;
	height: 10.125rem;
	overflow: hidden;
	position: relative;
	width: 0.125rem;
}

.top-fv__scroll-line-border {
	animation: scrollLine 1.5s cubic-bezier(1, 0, 0, 1) infinite;
	background-color: #33B495;
	height: 7.6875rem;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
}

/* =========================================== */

/*                   top-about                     */

/* =========================================== */

.top-about {
	position: relative;
}

.top-about::before,
.top-about::after {
	background-image: url("../img/top/about-img-1.svg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	display: inline-block;
	height: 6.875rem;
	position: absolute;
	width: 6.875rem;
}

.top-about::before {
	left: 0;
	top: 0;
}

.top-about::after {
	right: 0;
	scale: -1 1;
	top: 8.625rem;
}

.top-about--layout {
	margin-bottom: 7.5rem;
	margin-top: -2.0625rem;
}

.top-about__lead {
	grid-gap: 1.375rem;
	display: grid;
	gap: 1.375rem;
	justify-items: center;
	margin-bottom: 5rem;
	text-align: center;
}

.top-about__logo {
	height: 4.9375rem;
	width: 20.125rem;
}

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

.top-about__text {
	font-size: 1.625rem;
	line-height: 2;
}

.top-about__recommend {
	margin-bottom: 5rem;
}

.top-about__recommend-title {
	background-color: #fff;
	border: 0.1875rem solid currentColor;
	border-radius: 62.4375rem;
	box-shadow: 0 0.1875rem 0.375rem 0 rgba(0, 0, 0, 0.16);
	color: #33B495;
	font-size: 1.75rem;
	line-height: 1;
	margin-bottom: -0.125rem;
	margin-left: auto;
	margin-right: auto;
	padding: 1rem 1.875rem;
	position: relative;
	text-align: center;
	width: -moz-fit-content;
	width: fit-content;
	z-index: 1;
}

.top-about__recommend-title::before {
	background-image: url("../img/common/icon-triangle-1.svg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	bottom: -0.875rem;
	content: "";
	display: inline-block;
	height: 1rem;
	left: 50%;
	position: absolute;
	transform: translateX(-50%);
	width: 1.4375rem;
}

.top-about__recommend-list {
	grid-gap: 0.625rem;
	display: grid;
	gap: 0.625rem;
	list-style: none;
}

.top-about__recommend-item {
	grid-gap: 1.25rem;
	align-items: center;
	background-color: #F8F8F8;
	border-radius: 0.75rem;
	display: grid;
	gap: 1.25rem;
	grid-template-columns: auto 1fr;
	min-height: 4.9375rem;
	padding-left: 1.3125rem;
	position: relative;
}

.top-about__recommend-icon {
	align-items: center;
	display: flex;
	flex-shrink: 0;
	height: 1.75rem;
	justify-content: center;
	width: 1.75rem;
}

.top-about__recommend-icon img {
	-o-object-fit: contain;
	height: 100%;
	object-fit: contain;
	width: 100%;
}

.top-about__recommend-text {
	font-feature-settings: "palt";
	font-size: 1.5rem;
	line-height: 2.2916666667;
}

.top-about__cta {
	display: flex;
	justify-content: center;
}

/* =========================================== */

/*                   top-strength              */

/* =========================================== */

.top-strength {
	overflow: hidden;
	padding-bottom: 5.25rem;
	position: relative;
	z-index: 1;
}

.top-strength::before {
	background-color: #E2F4EF;
	border-radius: 8.625rem 8.625rem 0 0;
	content: "";
	height: 100%;
	left: 0;
	position: absolute;
	top: 3.0625rem;
	width: 100%;
}

.top-strength__heading {
	margin-bottom: 6.75rem;
}

.top-strength__list {
	grid-gap: 2.6875rem;
	display: grid;
	gap: 2.6875rem;
}

.top-strength__item {
	grid-gap: 3.75rem;
	display: grid;
	gap: 3.75rem;
	padding-bottom: 2.5625rem;
	position: relative;
}

.top-strength__item::before {
	background-image: url("../img/common/logo-icon.svg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	content: "";
	display: inline-block;
	height: 16.0625rem;
	position: absolute;
	width: 19.0625rem;
}

.top-strength__item:nth-of-type(1)::before {
	bottom: 0;
	right: 0;
}

.top-strength__item:nth-of-type(2)::before {
	bottom: 0;
	left: 0;
}

.top-strength__item:nth-of-type(3)::before {
	bottom: 11.25rem;
	right: 0;
}

.top-strength__img-wrapper {
	border-radius: 0.625rem;
	height: 25.8125rem;
	overflow: hidden;
	position: relative;
	width: 100%;
}

.top-strength__img {
	border-radius: 0.625rem;
	overflow: hidden;
}

.top-strength__img img {
	-o-object-fit: cover;
	aspect-ratio: 671/413;
	object-fit: cover;
}

.top-strength__img:before {
	align-items: end;
	background-color: #33B495;
	border-radius: 50%;
	color: #fff;
	content: attr(data-number);
	display: flex;
	font-family: "Montserrat", sans-serif;
	font-size: 1.875rem;
	font-weight: 600;
	height: 7.1875rem;
	justify-content: center;
	left: 50%;
	letter-spacing: 0.12em;
	line-height: 1.5333333333;
	padding-bottom: 0.625rem;
	position: absolute;
	top: -3.5625rem;
	transform: translateX(-50%);
	width: 7.1875rem;
}

.top-strength__content {
	grid-gap: 2.5rem;
	display: grid;
	gap: 2.5rem;
	padding-left: 2.5rem;
	padding-right: 2.5rem;
	position: relative;
}

.top-strength__title {
	grid-gap: 0.625rem;
	display: grid;
	gap: 0.625rem;
}

.top-strength__title-line {
	align-items: center;
	background-color: #fff;
	display: inline-flex;
	font-size: 2.25rem;
	font-weight: 500;
	line-height: 1.5277777778;
	min-height: 4rem;
	padding: 0 1.5rem 0.1875rem;
	position: relative;
	width: -moz-fit-content;
	width: fit-content;
}

.top-strength__title-line:last-of-type::before {
	bottom: 0;
	left: auto;
	right: 0;
	top: auto;
}

.top-strength__title-line::before {
	background-color: #33B495;
	content: "";
	height: 0.8125rem;
	left: 0;
	position: absolute;
	top: 0;
	width: 0.8125rem;
}

.top-strength__description {
	color: #2E2E2E;
	font-size: 1.625rem;
	line-height: 2.1153846154;
	margin: 0;
}

.top-strength__description strong {
	color: #33B495;
}

.top-strength__logo {
	opacity: 0.469;
	pointer-events: none;
	position: absolute;
	z-index: -1;
}

.top-strength__item:nth-child(1) .top-strength__logo {
	right: 22.875rem;
	top: 51.875rem;
}

.top-strength__item:nth-child(2) .top-strength__logo {
	right: 39.0625rem;
	top: 92.0625rem;
}

.top-strength__item:nth-child(3) .top-strength__logo {
	right: 39.0625rem;
	top: 140.8125rem;
}

.top-strength__logo-img {
	-o-object-fit: contain;
	height: 16.0625rem;
	object-fit: contain;
	width: 19.0625rem;
}

/* =========================================== */

/*                   top-plan                  */

/* =========================================== */

.top-plan {
	background-color: #33B495;
	overflow: hidden;
	padding-bottom: 6.25rem;
	padding-top: 6.875rem;
	position: relative;
}

.top-plan::before {
	background-image: url("../img/common/grid-bg.svg");
	background-position: top center;
	background-repeat: repeat-y;
	background-size: 100% auto;
	bottom: 0;
	content: "";
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 0;
}

.top-plan--layout {
	margin-bottom: 6.25rem;
}

.top-plan__inner {
	position: relative;
	z-index: 1;
}

.top-plan__heading {
	margin-bottom: 6.25rem;
}

.top-plan__list {
	grid-gap: 1.25rem;
	display: grid;
	gap: 1.25rem;
	margin-bottom: 5.125rem;
}

.top-plan__item {
	background-color: #fff;
	border-radius: 1rem;
	box-shadow: 0 0.1875rem 0.375rem 0 rgba(0, 0, 0, 0.16);
	overflow: hidden;
	position: relative;
}

.top-plan__item.-green .top-plan__header {
	background: linear-gradient(to left, #1D8B70 0%, #139d7b 50%, #2adbb0 100%);
}

.top-plan__item.-green .top-plan__name {
	color: #33B495;
}

.top-plan__item.-green .top-plan__desc-text {
	color: #33B495;
}

.top-plan__item.-gold .top-plan__header {
	background: linear-gradient(to left, #d9c364 0%, #e8d686 50%, #fff7d3 100%);
}

.top-plan__item.-gold .top-plan__name {
	color: #d9c364;
}

.top-plan__item.-gold .top-plan__desc-text {
	color: #d9c364;
	position: relative;
}

.top-plan__item.-gold .top-plan__desc-text::before,
.top-plan__item.-gold .top-plan__desc-text::after {
	background-image: url("../img/common/icon-sparkle.svg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	display: inline-block;
	height: 1.1875rem;
	position: absolute;
	width: 1.1875rem;
}

.top-plan__item.-gold .top-plan__desc-text::before {
	bottom: -0.5625rem;
	left: -0.9375rem;
}

.top-plan__item.-gold .top-plan__desc-text::after {
	right: -0.9375rem;
	top: 0;
}

.top-plan__header {
	align-items: center;
	border-radius: 1rem 1rem 0 0;
	display: flex;
	height: 3.8125rem;
	padding-left: 18.0625rem;
	position: relative;
}

.top-plan__number {
	color: #fff;
	font-family: "Montserrat", sans-serif;
	font-size: 1.375rem;
	font-weight: 600;
	line-height: 1.5;
}

.top-plan__body {
	padding: 2rem 1.25rem;
	text-align: center;
}

.top-plan__name {
	font-size: 2.8125rem;
	font-weight: 900;
	line-height: 1.2222222222;
	margin: 0.1875rem;
}

.top-plan__description {
	font-size: 1.625rem;
	line-height: 2.1153846154;
}

/* =========================================== */

/*                   top-voice                 */

/* =========================================== */

.top-voice--layout {
	margin-bottom: 7.9375rem;
}

.top-voice__inner {
	position: relative;
	z-index: 1;
}

.top-voice__heading {
	margin-bottom: 4.375rem;
}

.top-voice__list {
	grid-gap: 1.6875rem;
	display: grid;
	gap: 1.6875rem;
	margin-bottom: 4.75rem;
}

.top-voice__card {
	background-color: #fff;
	border: 0.1875rem solid #33B495;
	border-radius: 0.625rem;
	overflow: hidden;
	padding: 2.5rem;
	position: relative;
}

.top-voice__card:before {
	align-items: end;
	background-color: #33B495;
	border-radius: 50%;
	color: #fff;
	content: attr(data-number);
	display: flex;
	font-family: "Montserrat", sans-serif;
	font-size: 1.875rem;
	font-weight: 600;
	height: 7.1875rem;
	justify-content: center;
	left: 50%;
	letter-spacing: 0.12em;
	line-height: 1.5333333333;
	padding-bottom: 0.625rem;
	position: absolute;
	top: -3.5625rem;
	transform: translateX(-50%);
	width: 7.1875rem;
	z-index: 1;
}

.top-voice__img-wrapper {
	border-radius: 0.625rem;
	margin-bottom: 2.375rem;
	overflow: hidden;
	position: relative;
	width: 100%;
}

.top-voice__img {
	height: 100%;
	position: relative;
	width: 100%;
}

.top-voice__img img {
	-o-object-fit: cover;
	aspect-ratio: 886/886;
	object-fit: cover;
}

.top-voice__img::before {
	align-items: center;
	color: #fff;
	content: attr(data-number);
	display: flex;
	font-family: "Montserrat", sans-serif;
	font-size: 1.875rem;
	font-weight: 600;
	height: 3.6345625rem;
	justify-content: center;
	letter-spacing: 0.09375rem;
	line-height: 1.5333333333;
	position: absolute;
	right: 17.359375rem;
	top: 0;
	width: 7.156125rem;
	z-index: 1;
}

.top-voice__catch {
	font-size: 2rem;
	font-weight: 500;
	line-height: 1.71875;
	margin-bottom: 1.5rem;
}

.top-voice__description-wrapper {
	min-height: 8.1875rem;
	position: relative;
}

.top-voice__description {
	color: #2E2E2E;
	font-size: 1.625rem;
	letter-spacing: 0.08125rem;
	line-height: 2.1153846154;
	margin-bottom: 5.625rem;
	max-height: 11.9375rem;
	overflow: hidden;
	transition: max-height 0.3s ease;
}

.top-voice__card.is-open .top-voice__description {
	max-height: 125rem;
}

.top-voice__description span.-disclaimer {
	font-size: 1.375rem;
	line-height: 2.5;
}

.top-voice__info {
	align-items: center;
	display: flex;
	font-size: 1.5rem;
	gap: 0;
	line-height: 100%;
	margin-bottom: 2.8125rem;
}

.top-voice__info-item {
	padding: 0 1rem;
	position: relative;
}

.top-voice__info-item:first-child {
	padding-left: 0;
}

.top-voice__info-item:not(:first-child) {
	border-left: 0.0625rem solid #33B495;
}

.top-voice__plan {
	align-items: center;
	background-color: #E2F4EF;
	color: #2E2E2E;
	display: flex;
	font-size: 1.375rem;
	gap: 0.8125rem;
	height: 3.5rem;
	justify-content: center;
	line-height: 2.1363636364;
	margin-bottom: 2.3125rem;
	padding: 0 2.5rem 0.125rem;
	position: relative;
	width: 100%;
}

.top-voice__plan::before,
.top-voice__plan::after {
	background-color: #33B495;
	content: "";
	display: inline-block;
	height: 0.8125rem;
	position: absolute;
	width: 0.8125rem;
}

.top-voice__plan::before {
	left: 0;
	top: 0;
}

.top-voice__plan::after {
	bottom: 0;
	right: 0;
}

.top-voice__toggle {
	grid-gap: 0.9375rem;
	align-items: flex-end;
	background: linear-gradient(to top, #FFF 0%, #FFF 40%, rgba(255, 255, 255, 0.83) 80%, rgba(255, 255, 255, 0.46) 100%);
	border-radius: 0 0 0.625rem 0.625rem;
	bottom: 0;
	cursor: pointer;
	display: grid;
	gap: 0.9375rem;
	grid-template-columns: repeat(2, auto);
	height: 13.75rem;
	justify-content: center;
	left: 50%;
	padding-bottom: 3.75rem;
	pointer-events: auto;
	position: absolute;
	transform: translateX(-50%);
	transition: opacity 0.3s;
	width: 100%;
	z-index: 2;
}

.top-voice__toggle-text {
	color: #0c0d21;
	font-size: 1.375rem;
	letter-spacing: 0.1375rem;
	line-height: 1.4545454545;
}

.top-voice__toggle-arrow {
	align-items: center;
	background-color: #fff;
	border: 0.125rem solid #33B495;
	border-radius: 50%;
	display: flex;
	height: 2.3780625rem;
	justify-content: center;
	position: relative;
	transition: transform 0.3s ease;
	width: 2.3780625rem;
}

.top-voice__toggle-arrow::before,
.top-voice__toggle-arrow::after {
	background-color: #33B495;
	border-radius: 0.125rem;
	content: "";
	position: absolute;
	transition: transform 0.3s ease, opacity 0.3s ease;
}

.top-voice__toggle-arrow::before {
	height: 1.125rem;
	width: 0.125rem;
}

.top-voice__toggle-arrow::after {
	height: 0.125rem;
	width: 1.125rem;
}

.top-voice__card.is-open .top-voice__toggle-arrow::before {
	opacity: 0;
	transform: rotate(90deg);
}

.top-voice__card.is-open .top-voice__toggle {
	background: transparent;
}

.top-voice__cta {
	display: flex;
	justify-content: center;
}

/* =========================================== */

/*                   top-trainer                */

/* =========================================== */

.top-trainer {
	overflow: hidden;
}

.top-trainer--layout {
	margin-bottom: 6.875rem;
}

.top-trainer__heading {
	margin-bottom: 6.25rem;
}

.top-trainer__img {
	height: 32.3125rem;
	width: 100%;
}

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

.top-trainer__wrapper {
	grid-gap: 3.3125rem;
	background-color: #33B495;
	border-radius: 0.625rem 0 0 0.625rem;
	display: grid;
	gap: 3.3125rem;
	margin-left: 2.5rem;
	margin-top: -2.625rem;
	overflow: hidden;
	padding: 5.3125rem 2.5rem 2.5rem;
	position: relative;
}

.top-trainer__wrapper::before {
	background-image: url("../img/common/grid-bg.svg");
	background-position: top center;
	background-repeat: repeat-y;
	background-size: 100% auto;
	bottom: 0;
	content: "";
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
	z-index: 0;
}

.top-trainer__info {
	margin-left: auto;
	margin-right: auto;
	max-width: 35rem;
}

.top-trainer__title {
	color: #fff;
	font-size: 1.375rem;
	letter-spacing: 0.06875rem;
	line-height: 2.3636363636;
	margin-bottom: 0.0625rem;
}

.top-trainer__name {
	color: #fff;
	font-size: 2.5rem;
	font-weight: 500;
	letter-spacing: 0.125rem;
	line-height: 1.7;
	margin-bottom: 2.5rem;
}

.top-trainer__description {
	color: #fff;
	font-size: 1.625rem;
	letter-spacing: 0.08125rem;
	line-height: 2.1153846154;
	margin: 0;
}

.top-trainer__profile {
	background-color: #fff;
	border-radius: 0.625rem;
	padding: 1.75rem 2.5rem 2.8125rem;
	position: relative;
}

.top-trainer__profile::before {
	background-color: #17604F;
	border-radius: 0 0 0.3125rem 0.3125rem;
	content: "";
	display: inline-block;
	height: 0.5rem;
	left: 50%;
	position: absolute;
	top: 0;
	transform: translateX(-50%);
	width: 7.125rem;
}

.top-trainer__profile-title {
	color: #33B495;
	font-family: "Montserrat", sans-serif;
	font-size: 2.75rem;
	font-weight: 600;
	letter-spacing: 0.1375rem;
	line-height: 1.7045454545;
	margin-bottom: 0.75rem;
	text-align: center;
}

.top-trainer__profile-body {
	color: #2E2E2E;
	font-size: 1.625rem;
	letter-spacing: 0.08125rem;
	line-height: 2.1153846154;
	padding: 0;
	position: relative;
}

/* =========================================== */

/*                   top-blog                  */

/* =========================================== */

.top-blog {
	padding-bottom: 6.25rem;
}

.top-blog__heading {
	margin-bottom: 6.25rem;
}

.top-blog__slider {
	margin-bottom: 7.3125rem;
}

.splide__track {
	border-radius: 0.625rem;
	box-shadow: 0 0.1875rem 0.75rem 0 rgba(0, 0, 0, 0.16);
	overflow: hidden;
}

.top-blog__article {
	background-color: #E2F4EF;
	display: block;
	height: 100%;
}

.top-blog__img {
	height: 26.5rem;
	overflow: hidden;
	transition: opacity 0.3s;
	width: 100%;
}

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

.top-blog__content {
	margin-top: 0;
	padding: 2.1875rem 2.5rem 2.6875rem;
}

.top-blog__meta {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin-bottom: 1.75rem;
}

.top-blog__category {
	align-items: center;
	background-color: #33B495;
	border-radius: 1.6875rem;
	color: #fff;
	display: inline-flex;
	font-size: 1.25rem;
	height: 2.9375rem;
	justify-content: center;
	letter-spacing: 0.0625rem;
	line-height: 3.55;
	min-width: 9.625rem;
	padding-bottom: 0.125rem;
}

.top-blog__date {
	color: #9b9b9b;
	font-family: "Montserrat", sans-serif;
	font-size: 1.5rem;
	font-weight: 600;
	letter-spacing: 0.075rem;
}

.top-blog__title {
	color: #2E2E2E;
	font-size: 1.875rem;
	font-weight: 500;
	letter-spacing: 0.09375rem;
	line-height: 1.6666666667;
	margin: 0 0 1.25rem 0;
}

.top-blog__excerpt {
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2; /* 何行表示させるかを指定 */
	color: #2E2E2E;
	display: -webkit-box;
	font-size: 1.625rem;
	letter-spacing: 0.08125rem;
	line-height: 1.9230769231;
	margin: 0;
	overflow: hidden;
}

.top-blog__cta {
	display: flex;
	justify-content: center;
}

.top-blog__slider {
	position: relative;
}

.top-blog__slider .splide__pagination {
	align-items: center;
	bottom: -3.75rem;
	display: flex;
	filter: none;
	gap: 0.8125rem;
	justify-content: center;
}

.top-blog__slider .splide__pagination__page {
	background-color: #E2F4EF;
	border-radius: 50%;
	height: 0.8125rem;
	margin: 0;
	opacity: 1;
	transition: background-color 0.3s;
	width: 0.8125rem;
}

.top-blog__slider .splide__pagination__page.is-active {
	background-color: #33B495;
	transform: none;
}

.top-blog__slider .splide__arrow {
	background: none;
	border: 0.0625rem solid currentColor;
	border-radius: 50%;
	bottom: -4.875rem;
	height: 3.1875rem;
	left: 64%;
	opacity: 1;
	position: absolute;
	top: auto;
	transform: translateX(-50%);
	transition: all 0.3s ease;
	width: 3.1875rem;
	z-index: 1;
}

.top-blog__slider .splide__arrow:hover {
	background-color: #E2F4EF;
}

.top-blog__slider .splide__arrow::before {
	-webkit-mask-image: url("../img/common/icon-arrow-1.svg");
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
	-webkit-mask-size: contain;
	background-color: #2E2E2E;
	content: "";
	height: 0.5625rem;
	left: 50%;
	mask-image: url("../img/common/icon-arrow-1.svg");
	mask-position: center;
	mask-repeat: no-repeat;
	mask-size: contain;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 1.25rem;
}

.top-blog__slider .splide__arrow--prev {
	left: 36%;
}

.top-blog__slider .splide__arrow--prev::before {
	transform: translate(-50%, -50%) rotate(180deg);
}

.top-blog__slider .splide__arrow--next {
	right: 0;
}

.top-blog__slider .splide__arrow svg {
	display: none;
}

/* =========================================== */

/*                   top-cta                   */

/* =========================================== */

.top-cta--layout {
	margin-bottom: 6.25rem;
}

/* =========================================== */

/*                   top-news                  */

/* =========================================== */

.top-news--layout {
	margin-bottom: 6.25rem;
}

.top-news__heading {
	margin-bottom: 4.375rem;
}

.top-news__list {
	display: grid;
}

.top-news__item {
	border-bottom: 0.0625rem solid #33B495;
}

.top-news__link {
	display: block;
	padding-bottom: 1.125rem;
	padding-top: 1.6875rem;
	transition: opacity 0.3s;
}

.top-news__date {
	color: #B4B4B4;
	display: block;
	font-family: "Montserrat", sans-serif;
	font-size: 1.5rem;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.875;
	margin-bottom: 0.125rem;
	transition: color 0.3s;
}

.top-news__title {
	font-size: 1.625rem;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.7307692308;
	transition: color 0.3s;
}

/* =========================================== */

/*                   top-access                */

/* =========================================== */

.top-access--layout {
	margin-bottom: 6.25rem;
}

.top-access__heading {
	margin-bottom: 6.25rem;
}

.top-access__map {
	border-radius: 0.625rem;
	height: 26.5rem;
	margin-bottom: 3.625rem;
	overflow: hidden;
	width: 100%;
}

.top-access__map iframe {
	border: none;
	height: 100%;
	width: 100%;
}

.top-access__info {
	grid-gap: 1.375rem;
	display: grid;
	gap: 1.375rem;
	margin-left: 2.5rem;
	margin-right: 2.5rem;
}

.top-access__name {
	font-size: 2.3125rem;
	font-weight: 500;
	letter-spacing: 0.115625rem;
	line-height: 1.6756756757;
	margin-bottom: -0.5625rem;
}

.top-access__address {
	color: #2E2E2E;
	font-size: 1.625rem;
	font-style: normal;
	letter-spacing: 0.08125rem;
	line-height: 1.9230769231;
	margin: 0;
}

.top-access__address p {
	margin: 0;
}

.top-access__detail {
	grid-gap: 1.375rem;
	display: grid;
	gap: 1.375rem;
	margin: 0;
}

.top-access__detail-item {
	grid-gap: 0;
	display: grid;
	gap: 0;
}

.top-access__detail-label {
	color: #33B495;
	font-size: 1.875rem;
	letter-spacing: 0.09375rem;
	line-height: 1.6666666667;
	margin: 0;
}

.top-access__detail-value {
	color: #2E2E2E;
	font-size: 1.625rem;
	letter-spacing: 0.08125rem;
	line-height: 1.9230769231;
	margin: 0;
}

.top-access__detail-value p {
	margin: 0;
}

.top-access__detail-value a {
	-webkit-text-decoration: none;
	color: #2E2E2E;
	text-decoration: none;
	transition: opacity 0.3s;
}

@media (hover: hover) and (pointer: fine) {

.blog-article__link:hover .blog-article__thumbnail-img {
	opacity: 0.67;
}

.c-btn-1:hover .c-btn-1__arrow {
	background-color: #fff;
}

.c-btn-1:hover .c-btn-1__arrow::before {
	background-color: #1D8B70;
}

.c-btn-1.-white a:hover {
	background-color: #fff;
}

.c-btn-1.-white a:hover .c-btn-1__text {
	color: #33B495;
}

.c-btn-1.-white a:hover .c-btn-1__arrow {
	background-color: #33B495;
}

.c-btn-1.-white a:hover .c-btn-1__arrow::before {
	background-color: #fff;
}

.c-btn-1.-border-primary a:hover {
	background-color: #33B495;
}

.c-btn-1.-border-primary a:hover .c-btn-1__text {
	color: #fff;
}

.c-btn-1.-border-primary a:hover .c-btn-1__arrow {
	background-color: #fff;
}

.c-btn-1.-border-primary a:hover .c-btn-1__arrow::before {
	background-color: #33B495;
}

.footer__nav-item a:hover {
	opacity: 0.8;
}

.footer__privacy a:hover {
	opacity: 0.8;
}

.pc-layout__nav-item a:hover {
	opacity: 0.7;
}

.blog-detail__toc-link:hover {
	color: #33B495;
}

.blog-detail__content a:not(.blog-detail__back-btn *):hover {
	opacity: 0.8;
}

.blog__tab:not(.-active):hover {
	background-color: #B4B4B4;
}

.blog__pagination .page-numbers:not(.current):not(.blog__pagination .page-numbers.dots):hover {
	background-color: #E2F4EF;
}

.contact__form .contact-form__submit:has(.wpcf7-submit:not(:disabled)):hover .contact-form__submit-arrow {
	background-color: #fff;
}

.contact__form .contact-form__submit:has(.wpcf7-submit:not(:disabled)):hover .contact-form__submit-arrow::before {
	background-color: #1D8B70;
}

.top-voice__toggle:hover {
	opacity: 0.92;
}

.top-blog__article:hover .top-blog__img {
	opacity: 0.67;
}

.top-news__link:hover {
	opacity: 0.8;
}

.top-news__link:hover .top-news__title {
	color: #33B495;
}

.top-access__detail-value a:hover {
	opacity: 0.8;
}

}

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

.pc-only {
	display: block;
}

.sp-only {
	display: none;
}

html {
	font-size: 0.8333333333vw;
}

body.is-fixed {
	position: static;
	position: initial;
}

a[href^="tel:"] {
	pointer-events: none;
}

a:not([href]):hover {
	opacity: 1;
}

.anime-zoom__img img {
	transition: 0.8s all;
}

.c-modal__title {
	font-size: 2rem;
	line-height: 1.5;
	margin-bottom: 2.5rem;
}

.c-modal__tel a,
.c-modal__tel span {
	font-size: 3rem;
	line-height: 1.25;
}

.header {
	display: none;
}

.header__hamburger {
	display: none;
}

.header__drawer {
	display: none;
}

.pc-layout {
	display: block;
}

.pc-layout-center {
	display: block;
	height: 100vh;
	height: 100dvh;
	left: 50%;
	position: absolute;
	top: 0;
	transform: translateX(-50%);
	width: 46.875rem;
	z-index: 1;
}

.pc-layout-center__content {
	border-radius: 3.125rem 3.125rem 0 0;
	box-shadow: 0 0.1875rem 1.25rem 0 rgba(0, 0, 0, 0.16);
	margin-top: 3.375rem;
}

}

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

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

}

@keyframes slideInFromBottom {

to {
	opacity: 1;
	transform: translateY(0);
}

}

@keyframes topFvFadeInOut {

0% {
	opacity: 0;
}

12.5% {
	opacity: 1;
}

50% {
	opacity: 1;
}

62.5% {
	opacity: 0;
}

100% {
	opacity: 0;
}

}

@keyframes scrollLine {

0% {
	transform: scale(1, 0);
	transform-origin: 0 0;
}

50% {
	transform: scale(1, 1);
	transform-origin: 0 0;
}

50.1% {
	transform: scale(1, 1);
	transform-origin: 0 100%;
}

100% {
	transform: scale(1, 0);
	transform-origin: 0 100%;
}

}


/*# sourceMappingURL=style.css.map */
