@charset "UTF-8";
/*--------------------------------------------------
**************************************************
  基本
**************************************************
--------------------------------------------------*/
:root {
	--color-primary: #fe0174;
	--color-secondary: #19d3c7;
	--color-heading: #111;
	--color-text: #333;
	--color-white: #fff;
	--color-primary-light: #ff71b1;
	--color-secondary-light: #63a5e2;
	--color-accent-purple: #9700cf;
	--color-primary-bright: #ff0b78;
	--font-family-base: "Noto Sans JP", YuGothic, "Yu Gothic Medium", "Yu Gothic", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", Meiryo, "MS PGothic", sans-serif;
	--font-family-sirivennela: "Sirivennela", sans-serif;
}

html {
	scroll-behavior: smooth; /* スムーススクロール */
	font-size: 62.5%; /* ブラウザ標準16pxの62.5% → 1rem = 10px */
}
/* SP */
@media (max-width: 767px) {
	html {
		font-size: 2.6vw;
	}
}

body {
	margin: 0;
	padding: 0;
	background: none;
	overflow-x: hidden;
	font-family: var(--font-family-base);
	line-height: 1.6;
	letter-spacing: 0.08em;
	font-size: 1.6rem;
	font-weight: 400;
	color: var(--color-text);
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
	font-style: italic;
	background-repeat: no-repeat;
	background-size: cover;
	shape-margin: 0.75rem;
}

.pc_only {
	display: block;
}

.sp_only {
	display: none;
}

/* SP */
@media (max-width: 767px) {
	.pc_only {
		display: none;
	}

	.sp_only {
		display: block;
	}
}



/*--------------------------------------------------
**************************************************
  リンク
**************************************************
--------------------------------------------------*/
a {
	color: var(--color-text);
	text-decoration: none;
	transition: all 0.4s ease;
}

a:hover {
	color: #007dcc;
}

a img {
	transition: 0.5s;
}

a img:hover {
	opacity: 0.7;
	transition: 0.5s;
}

a[href^="tel:"] {
	pointer-events: none;
	color: var(--color-text);
}

/* SP */
@media (max-width: 767px) {
	a[href^="tel:"] {
		pointer-events: auto;
	}
}

/*--------------------------------------------------
**************************************************
  メインビジュアル
**************************************************
--------------------------------------------------*/
.main_visual {
	position: relative;
	overflow: visible;
	background: var(--color-white) url("../imgs/mv_bg.png") no-repeat center top / cover;
}

.main_visual__header,
.main_visual__inner {
	position: relative;
	z-index: 2;
}

.main_visual__header-inner,
.main_visual__inner {
	margin: 0 auto;
	padding-inline: 2.4rem;
}

.main_visual__header-inner {
	width: 100%;
}

.main_visual__inner {
	width: min(100%, 144rem);
}

.main_visual__header {
	padding-top: 2.8rem;
}

.main_visual__header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2.4rem;
}

.main_visual__header-menu {
	display: flex;
	align-items: center;
	gap: 2.4rem;
	margin-left: auto;
}

.main_visual__logo {
	flex: 0 0 auto;
	width: 28.4rem;
}

.main_visual__logo img {
	display: block;
	width: 100%;
}

.main_visual__nav {
	margin-left: 0;
}

.main_visual__nav-list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 1.2rem 4rem;
}

.main_visual__nav-item a {
	position: relative;
	display: inline-block;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.5;
	color: #000;
}

.main_visual__nav-item a::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -0.4rem;
	width: 100%;
	height: 0.1rem;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 0.24s ease;
}

@media (hover: hover) and (pointer: fine) {
	.main_visual__nav-item a:hover::after,
	.main_visual__nav-item a:focus-visible::after {
		transform: scaleX(1);
	}
}

.main_visual__header-cta {
	display: flex;
	align-items: center;
	gap: 1.2rem;
	flex: 0 0 auto;
}

.main_visual__menu-toggle {
	display: none;
	flex: 0 0 auto;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: 4.8rem;
	height: 4.8rem;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.92);
	box-shadow: 0 0.8rem 2rem rgba(17, 17, 17, 0.08);
}

.main_visual__menu-toggle-line {
	display: block;
	width: 2.2rem;
	height: 0.2rem;
	flex: 0 0 auto;
	border-radius: 999px;
	background: var(--color-heading);
	transition: transform 0.3s ease, opacity 0.3s ease;
}

.main_visual__menu-toggle-line + .main_visual__menu-toggle-line {
	margin-top: 0;
}

.main_visual__inner {
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	padding-block: 6.4rem 3.2rem;
}

.main_visual__content {
	position: relative;
	z-index: 2;
	flex: 0 0 67rem;
	max-width: 67rem;
}

.main_visual__headline {
	font-size: 10rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.04em;
	color: var(--color-heading);
}

.main_visual__subheadline {
	margin-top: 3.4rem;
	font-size: 3.2rem;
	font-weight: 400;
	line-height: 1.32;
	letter-spacing: 0.06em;
	color: var(--color-heading);
}

.main_visual__lead {
	margin-top: 2.4rem;
	font-size: 1.6rem;
	font-weight: 350;
	line-height: 1.9;
	letter-spacing: 0.08em;
	color: var(--color-heading);
}

.main_visual__campaign {
	margin-top: 3rem;
	max-width: 51.7rem;
}

.campaign-label {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.2rem;
	width: fit-content;
	border-radius: 999px;
	background: var(--color-primary);
	font-size: 1.8rem;
	font-weight: 400;
	color: var(--color-white);
}

.campaign-label::before,
.campaign-label::after {
	display: block;
	width: 1rem;
	height: 2.1rem;
	content: "";
	background-repeat: no-repeat;
	background-position: center;
	background-size: 100% 100%;
}

.campaign-label::before {
	background-image: url("../imgs/mv_campaign-label-icon-left.svg");
}

.campaign-label::after {
	background-image: url("../imgs/mv_campaign-label-icon-right.svg");
}

.main_visual__campaign-label {
	min-width: 30rem;
	margin: 0 auto -2.2rem;
	padding: 1rem 2.8rem;
	line-height: 1.3;
}

.main_visual__campaign-box {
	padding: 3.3rem 5.4rem 1.9rem;
	border: 0.2rem solid var(--color-primary);
	border-radius: 6rem;
	background: var(--color-white);
}

.main_visual__campaign-offer + .main_visual__campaign-offer,
.main_visual__campaign-divider + .main_visual__campaign-offer {
	margin-top: 1.1rem;
}

.main_visual__campaign-title {
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 1.2;
	color: var(--color-primary);
}

.main_visual__campaign-price {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	flex-wrap: nowrap;
}

.main_visual__campaign-price-text {
	display: inline-flex;
	align-items: baseline;
	flex-wrap: nowrap;
	white-space: nowrap;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.2;
	color: var(--color-heading);
}

.main_visual__campaign-price-yen {
	margin-left: 0.6rem;
	font-size: 1.6rem;
	font-weight: 500;
}

.main_visual__campaign-arrow {
	flex: 0 0 auto;
}

.main_visual__campaign-arrow img {
	display: block;
	width: 4.5rem;
}

.main_visual__campaign-price-to {
	display: flex;
	align-items: center;
	gap: 0.7rem;
}

.main_visual__campaign-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 8.2rem;
	min-height: 2.6rem;
	/* padding: 0.8rem 2rem; */
	border-radius: 999px;
	background: var(--color-primary);
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.2;
	color: var(--color-white);
}

.main_visual__campaign-price-current {
	position: relative;
	isolation: isolate;
	display: inline-flex;
	align-items: flex-end;
	font-size: 2.2rem;
	font-weight: 500;
	/* line-height: 1; */
	letter-spacing: 0.02em;
	color: var(--color-primary);
}

.main_visual__campaign-price-current span {
	position: relative;
	top: -0.5rem;
	z-index: 1;
	font-size: 3.9rem;
	font-weight: 700;
	line-height: 0.9;
}

.main_visual__campaign-price-current::after {
	content: "";
	position: absolute;
	left: 0;
	z-index: 0;
	background: url("../imgs/icon_underline_yellow_1.svg") no-repeat center / 100% 100%;
}

.main_visual__campaign-offer .main_visual__campaign-price-current::after {
	top: 50%;
	width: 11rem;
	height: 4rem;
}

.main_visual__campaign-offer--secondary .main_visual__campaign-price-current::after {
	top: 70%;
	width: 5rem;
	height: 2rem;
}

.main_visual__campaign-price-current--admission::after {
	width: 6.8rem;
}

.main_visual__campaign-divider {
	height: 0.1rem;
	margin-top: 1.5rem;
	background: var(--color-primary);
}

.main_visual__campaign-offer--secondary {
	display: flex;
	align-items: center;
	gap: 1.1rem;
	margin-bottom: 1.5rem;
}

.main_visual__campaign-circle {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 6.1rem;
	height: 6.1rem;
	border-radius: 50%;
	background: linear-gradient(143.58deg, var(--color-primary) 6.61%, #FFA7CF 95.48%);
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.2;
	color: var(--color-white);
}

.main_visual__campaign-offer-body {
	flex: 1 1 auto;
}

.main_visual__image {
	position: absolute;
	right: 0;
	bottom: -11rem;
	z-index: 1;
	pointer-events: none;
}

.main_visual__image img {
	display: block;
	width: 104.3rem;
	max-width: none;
}

.button-pill {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	font-weight: 400;
	color: var(--color-white);
	background-size: 200% 100%;
	background-position: 0% 50%;
	transition: background-position 0.3s ease, box-shadow 0.2s ease, opacity 0.2s ease;
	-webkit-tap-highlight-color: transparent;
}

.button-pill:hover,
.button-pill:focus-visible,
.button-pill:active {
	color: var(--color-white);
	background-position: 100% 50%;
}

.main_visual__button {
	min-height: 7.2rem;
	padding: 1.2rem 3.2rem;
	font-size: 2rem;
	line-height: 1.4;
	text-align: center;
}

.main_visual__button::before,
.cta__button::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 3.3rem;
	height: 3.3rem;
	border-radius: 50%;
	background: var(--color-white) url("../imgs/icon_arrow_2.svg") no-repeat center / 1.9rem;
	transform: translateY(-50%);
}

.main_visual__button::before {
	right: 2.3rem;
	z-index: 1;
}

.main_visual__button:hover {
	color: var(--color-white);
	opacity: 1;
}

.main_visual__button--primary {
	background-image: linear-gradient(92.26deg, #8B00B9 0%, #FF0073 50%, #8B00B9 100%);
}

.main_visual__button--header::before,
.main_visual__button--header::after {
	content: none;
}

.main_visual__button--line {
	background-image: linear-gradient(92.26deg, #02B463 0%, #0EE071 50%, #02B463 100%);
}

.main_visual__button--campaign {
	display: flex;
	width: 100%;
	margin: 0 auto;
	padding-inline: 2.8rem;
	font-size: 2.4rem;
}

.main_visual__button--secondary {
	display: flex;
	width: 100%;
	margin-top: 1.6rem;
	background-image: linear-gradient(92.26deg, #0093B4 0%, #00CFB7 50%, #0093B4 100%);
}

/* TB */
@media (max-width: 1200px) {
	.main_visual__header-inner {
		flex-wrap: wrap;
		justify-content: center;
	}

	.main_visual__header-menu {
		order: 3;
		display: flex;
		flex-direction: column;
		width: 100%;
		gap: 1.6rem;
		margin-left: 0;
	}

	.main_visual__nav {
		width: 100%;
		margin-left: 0;
	}

	.main_visual__inner {
		align-items: center;
		padding-bottom: 9rem;
	}

	.main_visual__content {
		flex: 0 1 54%;
		max-width: 67rem;
		padding-top: 4rem;
	}

	.main_visual__campaign-box {
		padding-inline: 3.2rem;
	}

	.main_visual__campaign-price {
		flex-wrap: wrap;
		gap: 1.8rem;
	}

	.main_visual__campaign-price-to {
		gap: 1.6rem;
	}

	.main_visual__campaign-offer--secondary {
		align-items: flex-start;
	}

	.main_visual__headline {
		font-size: 8rem;
	}

	.main_visual__subheadline {
		font-size: 2.8rem;
	}

	.main_visual__image {
		right: 0;
		bottom: -2rem;
	}

	.main_visual__image img {
		width: min(110rem, 100%);
		transform: translateX(14rem);
	}
}

/* SP */
@media (max-width: 767px) {
	body.main_visual-menu-open {
		overflow: hidden;
		height: 100vh;
	}

	.main_visual {
		background-position: center top;
	}

	.main_visual::before {
		right: -10rem;
		bottom: -10rem;
		width: 42rem;
		height: 18rem;
	}

	.main_visual__header {
		padding-top: 1.8rem;
		z-index: 20;
	}

	.main_visual__header.is-menu-open {
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		z-index: 1000;
	}

	.main_visual__header-inner,
	.main_visual__inner {
		padding-inline: 1.6rem;
	}

	.main_visual__header-inner {
		position: relative;
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		gap: 1.2rem;
		z-index: 2;
	}

	.main_visual__logo {
		width: min(28.4rem, 50vw);
		margin: 0;
	}

	.main_visual__menu-toggle {
		display: inline-flex;
		position: relative;
		z-index: 1002;
		transform: translate(-0.4rem, -0.4rem);
	}

	.main_visual__header-menu {
		position: fixed;
		inset: 0;
		z-index: -10;
		display: block;
		margin-left: 0;
		padding: 11rem 1.6rem 3.2rem;
		border-radius: 0;
		background: var(--color-white);
		box-shadow: none;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transform: translateY(-1rem);
		transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
		max-height: 100vh;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}

	.main_visual__header.is-menu-open .main_visual__header-menu {
		z-index: 1001;
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: translateY(0);
	}

	.main_visual__header.is-menu-open .main_visual__menu-toggle-line:nth-child(1) {
		transform: translateY(0.7rem) rotate(45deg);
	}

	.main_visual__header.is-menu-open .main_visual__menu-toggle-line:nth-child(2) {
		opacity: 0;
	}

	.main_visual__header.is-menu-open .main_visual__menu-toggle-line:nth-child(3) {
		transform: translateY(-0.7rem) rotate(-45deg);
	}

	.main_visual__nav {
		width: 100%;
	}

	.main_visual__nav-list {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}

	.main_visual__nav-item + .main_visual__nav-item {
		border-top: 1px solid rgba(17, 17, 17, 0.08);
	}

	.main_visual__nav-item a {
		display: block;
		padding: 1.4rem 0;
		font-size: 1.5rem;
	}

	.main_visual__header-cta {
		width: 100%;
		display: flex;
		flex-direction: column;
		margin-top: 4rem;
	}

	.main_visual__inner {
		flex-direction: column;
		gap: 2rem;
		padding-top: 3.2rem;
		padding-bottom: 0;
	}

	.main_visual__content {
		flex: 0 1 auto;
		max-width: none;
		padding-top: 0;
	}

	.main_visual__headline {
		font-size: 5.6rem;
	}

	.main_visual__subheadline {
		margin-top: 2.2rem;
		font-size: 2rem;
	}

	.main_visual__lead {
		margin-top: 1.6rem;
		font-size: 1.5rem;
		line-height: 1.8;
	}

	.main_visual__campaign {
		margin-top: 2.4rem;
		max-width: none;
	}

	.main_visual__campaign-label {
		min-width: 24rem;
		padding: 0.8rem 2rem;
		font-size: 1.6rem;
	}

	.main_visual__campaign-box {
		padding: 3.3rem 1.6rem 2rem;
		border-radius: 2.8rem;
	}

	.main_visual__campaign-offer + .main_visual__campaign-offer,
	.main_visual__campaign-divider + .main_visual__campaign-offer {
		margin-top: 2.2rem;
	}

	.main_visual__campaign-price {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		gap: 0.8rem;
		flex-wrap: nowrap;
	}

	.main_visual__campaign-price-to {
		width: auto;
		flex: 0 0 auto;
		justify-content: flex-start;
		flex-wrap: nowrap;
		gap: 0.4rem;
	}

	.main_visual__campaign-offer--secondary {
		align-items: center;
		gap: 0.8rem;
	}

	.main_visual__campaign-circle {
		width: 4.5rem;
		height: 4.5rem;
		font-size: 1.2rem;
	}

	.main_visual__campaign-price-from {
		flex: 0 1 auto;
		min-width: 0;
	}

	.main_visual__campaign-offer-body .main_visual__campaign-price {
		margin-top: 0;
	}

	.main_visual__campaign-arrow img {
		width: 2.8rem;
	}

	.main_visual__campaign-badge {
		min-width: 7rem;
		min-height: 2.6rem;
		padding: 0.2rem 0.9rem;
		font-size: 1.1rem;
	}

	.main_visual__campaign-price-current {
		font-size: 2rem;
	}

	.main_visual__campaign-price-current span {
		font-size: 2.6rem;
	}

	.main_visual__campaign-price-current::after {
		height: 0.8rem;
	}

	.main_visual__campaign-price-current--lesson::after {
		top: auto;
		bottom: 0.4rem;
		width: 11rem;
	}

	.main_visual__campaign-price-current--admission::after {
		top: auto;
		bottom: 0.2rem;
		width: 5.2rem;
	}

	.main_visual__button {
		width: 100%;
		min-height: 6rem;
		padding: 1rem 5.6rem 1rem 2rem;
		font-size: 1.8rem;
	}

	.main_visual__button::after {
		content: "";
		position: absolute;
		top: 50%;
		right: 1.6rem;
		width: 3.8rem;
		height: 3.8rem;
		margin-left: 0;
		border-radius: 50%;
		background: var(--color-white) url("../imgs/icon_arrow_2.svg") no-repeat center / 1.7rem;
		transform: translateY(-50%);
	}

	.main_visual__button::before {
		content: none;
	}

	.main_visual__button--campaign {
		max-width: none;
		font-size: 1.9rem;
	}

	.main_visual__image {
		opacity: 0.6;
		right: 0;
		bottom: 0;
		top: 10rem;
		width: 70%;
		margin-right: 0;
	}

	.main_visual__image img {
		width: 100%;
		max-width: 100%;
		transform: none;
	}
}


/*--------------------------------------------------
**************************************************
  悩み
**************************************************
--------------------------------------------------*/
.trouble {
	position: relative;
	overflow: hidden;
}

.trouble__inner--primary {
	padding-block: 9.7rem 8.4rem;
	background: linear-gradient(113.67deg, #FFFFFF -1.93%, #FFE8F2 99.98%);
}

.trouble__intro {
	text-align: center;
}

.trouble__title {
	margin: 0;
	font-size: 3.6rem;
	font-weight: 350;
	color: var(--color-heading);
}

.trouble__title span {
	position: relative;
	display: inline-block;
	padding-top: 1.4rem;
	color: var(--color-primary);
}

.trouble__title span::before {
	content: "";
	position: absolute;
	top: 1rem;
	left: 50%;
	width: 1rem;
	height: 1rem;
	border-radius: 50%;
	background: var(--color-primary);
	transform: translateX(-50%);
}

.trouble__board {
	position: relative;
	width: min(100%, 120rem);
	margin: 5rem auto 0;
	min-height: 67rem;
	padding: 12rem 5.4rem 6.8rem 5.4rem;
	border-radius: 4rem;
	background: var(--color-white) url("../imgs/trouble__board_bg.jpg") no-repeat center / cover;
}

.trouble__board::after {
	content: "";
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%) rotate(180deg);
	z-index: 1;
	width: 35.5rem;
	height: 15.7rem;
	margin: 0 auto;
	background: linear-gradient(0deg, #FFF2F8 -3.89%, var(--color-primary-light) 90.16%);
	clip-path: polygon(50% 0, 100% 100%, 0 100%);
}

.trouble__list {
	position: relative;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 2.2rem 4rem;
	width: 77rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.trouble__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2.2rem;
	width: 23rem;
	min-height: 23rem;
	/* padding: 2rem 1.8rem; */
	border-radius: 50%;
	background: var(--color-white);
	box-shadow: 0 0 20px 0 #FFC6E0;
	text-align: center;
}

.trouble__item-number {
	order: -1;
	margin: -3rem 0 0;
	font-size: 4.8rem;
	line-height: 1;
	color: var(--color-primary);
}

.trouble__item-text {
	margin: 0;
	font-size: 2.1rem;
	font-weight: 400;
	line-height: 1.2;
}

.trouble__item-text strong {
	color: var(--color-primary);
	font-weight: 700;
}

.trouble__board-copy {
	position: absolute;
	right: 13rem;
	bottom: 6.8rem;
	z-index: 1;
	width: 30rem;
	height: 15rem;
	margin: 0;
}

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

.trouble__inner--secondary {
	width: min(100%, 132rem);
	margin: 0 auto;
	padding-inline: 2.4rem;
	padding-top: 10.5rem;
}

.trouble__change {
	position: relative;
	text-align: center;
}

.trouble__change-label,
.trouble__case-label {
	display: inline-block;
	margin: 0;
	background: linear-gradient(96.1deg, var(--color-secondary-light) 4.2%, var(--color-primary-light) 100.23%);
	background-repeat: no-repeat;
	background-size: 100% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	font-family: var(--font-family-sirivennela);
	font-weight: 400;
	color: transparent;
}

.trouble__change-label {
	position: relative;
	z-index: 1;
	font-size: 6rem;
	line-height: 1;
}

.trouble__change-title {
	margin: 1rem 0 0;
	font-size: 4.8rem;
	font-weight: 700;
	line-height: 1;
	color: var(--color-heading);
}

.trouble__change-title span {
	color: var(--color-primary);
}

.trouble__change-lead {
	margin: 3rem 0 0;
	font-size: 1.8rem;
	line-height: 1;
	color: var(--color-heading);
}

.trouble__cases {
	display: flex;
	align-items: center;
	gap: 7rem;
	margin-top: 9.4rem;
}

.trouble__cases-visual {
	position: relative;
	flex: 0 0 64rem;
	width: 64rem;
	max-width: 100%;
	min-height: 67.8rem;
	overflow: visible;
}

.trouble__cases-visual::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 64rem;
	max-width: 100%;
	height: 67.8rem;
	background: linear-gradient(150.23deg, #569FE5 0%, var(--color-primary-light) 98.27%);
}

.trouble__cases-visual img {
	position: absolute;
	z-index: 1;
	top: -2.6rem;
	left: -1.8rem;
	width: 64rem;
	max-width: calc(100% + 1.8rem);
	height: auto;
}

.trouble__cases-body {
	flex: 1 1 auto;
}

.trouble__case + .trouble__case {
	margin-top: 14.1rem;
}

.trouble__case-label {
	font-size: 6rem;
	line-height: 1;
}

.trouble__case-label span {
	background: none;
	font-family: var(--font-family-base);
	font-style: normal;
	font-size: 4.8rem;
	font-weight: 400;
	-webkit-text-fill-color: currentColor;
	color: var(--color-primary);
}

.trouble__case-title {
	margin: 3rem 0 0;
	font-size: 2.8rem;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.5rem;
	color: var(--color-heading);
}

.trouble__case-text {
	margin: 2.8rem 0 0;
	font-size: 1.8rem;
	line-height: 1.6;
	color: var(--color-heading);
}

@media (max-width: 767px) {
	.trouble {
		padding: 0;
	}

	.trouble__inner {
		padding: 0 1.6rem;
	}

	.trouble__title {
		font-size: 2.8rem;
		line-height: 1.6;
	}

	.trouble__title span::before {
		top: 1rem;
		width: .5rem;
		height: .5rem;
	}

	.trouble__inner--primary {
		padding-block: 2.4rem 0;
	}

	.trouble__inner--secondary {
		width: auto;
		margin: 0;
		padding-inline: 1.6rem;
		padding-top: 6rem;
	}

	.trouble__triangle {
		width: 12rem;
		height: 5.4rem;
	}

	.trouble__board {
		margin-top: 2.8rem;
		padding: 2.8rem 1.6rem 16rem;
		border-radius: 2.4rem;
		background-position: 80% center;
		background-size: cover;
	}

	.trouble__board::after {
		width: 22rem;
		height: 9.8rem;
	}

	.trouble__list {
		width: 100%;
		flex-direction: row;
		flex-wrap: wrap;
		align-items: flex-start;
		gap: 1.6rem 1.2rem;
		max-width: 100%;
		justify-content: center;
	}

	.trouble__item {
		flex: 0 0 auto;
		width: min(100%, 15.2rem);
		flex-basis: calc((100% - 1.2rem) / 2);
		gap: 1rem;
		min-height: 0;
		aspect-ratio: 1 / 1;
		padding: 1.6rem 1.2rem 1.4rem;
		border-radius: 50%;
	}

	.trouble__item:nth-child(4) {
		margin-left: 0;
	}

	.trouble__item:nth-child(5) {
		margin-inline: auto;
	}

	.trouble__item-number {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		min-height: 3.6rem;
		margin: 0;
		font-size: 3.2rem;
		line-height: 1;
	}

	.trouble__item-text {
		width: 100%;
		font-size: 1.2rem;
		line-height: 1.45;
		letter-spacing: 0.02em;
	}

	.trouble__board-copy {
		right: 50%;
		bottom: 4rem;
		width: 20rem;
		height: 10rem;
		transform: translateX(50%);
	}

	.trouble__change-label {
		font-size: 3.4rem;
	}

	.trouble__change-title {
		margin-top: 1.8rem;
		font-size: 3.6rem;
		line-height: 1.45;
	}

	.trouble__change-lead {
		font-size: 1.7rem;
	}

	.trouble__cases {
		flex-direction: column;
		gap: 3rem;
		margin-top: 4.4rem;
	}

	.trouble__cases-visual {
		flex-basis: auto;
		width: 100%;
		max-width: 37.6rem;
		min-height: 0;
		margin: 0 auto;
		aspect-ratio: 39.2 / 41;
	}

	.trouble__cases-visual::after {
		top: auto;
		left: auto;
		right: 0;
		bottom: -0.8rem;
		width: calc(100% - 1.6rem);
		height: calc(100% - 1.6rem);
	}

	.trouble__cases-visual img {
		top: 0;
		left: 0;
		width: calc(100% - 1.6rem);
	}

	.trouble__cases-body {
		width: 100%;
	}

	.trouble__case + .trouble__case {
		margin-top: 5rem;
	}

	.trouble__case-label {
		font-size: 3.8rem;
	}

	.trouble__case-title {
		margin-top: 1.8rem;
		font-size: 2.4rem;
	}

	.trouble__case-text {
		margin-top: 1.6rem;
		font-size: 1.6rem;
		line-height: 1.8;
	}
}


/*--------------------------------------------------
**************************************************
  CTA
**************************************************
--------------------------------------------------*/
.cta {
	padding: 0 2.4rem;
}

.cta__inner {
	position: relative;
	width: min(100%, 120rem);
	min-height: 56rem;
	margin: 12rem auto 0;
	padding: 3.7rem 4rem 6.3rem;
	border-radius: 3rem;
	background: linear-gradient(96.4deg, #500545 -1.51%, #F568A7 100%);
	overflow: visible;
}

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

.cta__headline {
	margin: 0;
	font-size: 3.6rem;
	font-weight: 350;
	line-height: 1.4;
	letter-spacing: 0.5rem;
	text-align: center;
	color: var(--color-white);
	text-shadow: 0px 4px 4.2px rgba(120, 0, 86, 0.5);
}

.cta__lead {
	margin: 2.3rem 0 0;
	font-size: 1.8rem;
	font-weight: 350;
	line-height: 1.4;
	letter-spacing: 0.3rem;
	text-align: center;
	color: var(--color-white);
}

.cta__campaign {
	margin-top: 4rem;
	width: min(100%, 93rem);
}

.cta__campaign-label {
	min-width: 29.8rem;
	margin: 0 auto -2.4rem;
	padding: 1.15rem 2.8rem;
	line-height: 1.2;
}

.cta__campaign-box {
	display: flex;
	align-items: center;
	gap: 2.4rem;
	width: 100%;
	margin: 0;
	padding: 5rem 4.2rem 3rem;
	border-radius: 6rem;
	background: #fffef9;
}

.cta__campaign-offer {
	flex: 1 1 0;
}

.cta__campaign-offer + .cta__campaign-offer {
	margin-top: 0;
}

.cta__campaign-divider {
	display: none;
}

.cta__campaign-offer--secondary {
	display: flex;
	align-items: center;
	gap: 1.8rem;
}

.cta__campaign-offer-body {
	flex: 1 1 auto;
}

.cta__campaign-title {
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 1.2;
	color: var(--color-primary);
}

.cta__campaign-price {
	display: flex;
	align-items: center;
	gap: 1.4rem;
	margin-top: 0.8rem;
	white-space: nowrap;
}

.cta__campaign-price-text {
	display: inline-flex;
	align-items: baseline;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.2;
	white-space: nowrap;
	color: var(--color-heading);
}

.cta__campaign-price-yen {
	margin-left: 0.6rem;
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.2;
}

.cta__campaign-arrow {
	flex: 0 0 auto;
}

.cta__campaign-arrow img {
	display: block;
	width: 4.5rem;
}

.cta__campaign-price-to {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	white-space: nowrap;
}

.cta__campaign-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 8.2rem;
	min-height: 2.8rem;
	padding: 0.2rem 1.2rem;
	border-radius: 999px;
	background: var(--color-primary);
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.2;
	white-space: nowrap;
	color: var(--color-white);
}

.cta__campaign-price-current {
	position: relative;
	isolation: isolate;
	display: inline-flex;
	align-items: flex-end;
	font-size: 2.2rem;
	font-weight: 500;
	/* line-height: 1; */
	letter-spacing: 0.02em;
	color: var(--color-primary);
}

.cta__campaign-price-current span {
	position: relative;
	top: -0.5rem;
	z-index: 1;
	font-size: 3.9rem;
	font-weight: 700;
	line-height: 0.9;
}

.cta__campaign-price-current::after {
	content: "";
	position: absolute;
	left: 0;
	z-index: 0;
	background: url("../imgs/icon_underline_yellow_1.svg") no-repeat center / 100% 100%;
}

.cta__campaign-price-current--lesson::after {
	top: 50%;
	width: 14.7rem;
	height: 4.1rem;
}

.cta__campaign-price-current--admission::after {
	top: 70%;
	width: 6rem;
	height: 2rem;
}

.cta__campaign-offer--secondary .cta__campaign-circle {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 6rem;
	height: 6rem;
	border-radius: 50%;
	background: linear-gradient(143.58deg, var(--color-primary) 6.61%, #FFA7CF 95.48%);
	font-size: 1.6rem;
	font-weight: 500;
	line-height: 1.1;
	color: var(--color-white);
}

.cta__buttons {
	display: flex;
	gap: 2rem;
	width: min(100%, 93rem);
	margin-top: 4.5rem;
}

.cta__button {
	flex: 1 1 0;
	min-height: 7rem;
	padding: 1.2rem 7rem 1.2rem 3rem;
	font-size: 2.4rem;
	line-height: 1.2;
	box-shadow: 0 0.8rem 2rem rgba(0, 0, 0, 0.18);
}

.cta__button::after {
	right: 2rem;
}

.cta__button--primary {
	background-image: linear-gradient(90deg, var(--color-accent-purple) 0%, #ff0b78 50%, var(--color-accent-purple) 100%);
}

.cta__button--secondary {
	background-image: linear-gradient(90deg, #129ed0 0%, var(--color-secondary) 50%, #129ed0 100%);
}

.cta__visual {
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 0;
	width: 35rem;
}

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

@media (max-width: 1024px) {
	.cta__inner {
		padding-right: 42rem;
	}

	.cta__headline {
		font-size: 4.6rem;
	}

	.cta__campaign-box {
		padding-inline: 3rem;
	}

	.cta__buttons {
		flex-direction: column;
	}
}

@media (max-width: 767px) {
	.cta {
		padding: 0 1.4rem;
	}

	.cta__inner {
		min-height: 0;
		margin-top: 6.4rem;
		padding: 3.2rem 1.6rem;
		border-radius: 2.4rem;
		overflow: hidden;
	}

	.cta__headline {
		font-size: 2.1rem;
		font-weight: 400;
		line-height: 1.45;
		letter-spacing: 0.12em;
	}

	.cta__headline--sp + .cta__headline--sp {
		margin-top: 1rem;
	}

	.cta__lead {
		margin-top: 1.2rem;
		font-size: 1.4rem;
		line-height: 1.5;
		letter-spacing: 0.08em;
	}

	.cta__campaign {
		margin-top: 2.4rem;
		width: 100%;
	}

	.cta__campaign-label {
		min-width: 24.8rem;
		margin-bottom: -2rem;
		padding: 0.95rem 1.8rem;
		font-size: 1.35rem;
	}

	.cta__campaign-box {
		display: block;
		width: 100%;
		padding: 3.3rem 2rem 2rem;
		border-radius: 2.8rem;
	}

	.cta__campaign-offer + .cta__campaign-offer {
		margin-top: 2.2rem;
	}

	.cta__campaign-divider {
		display: block;
		height: 0.1rem;
		margin-top: 1.6rem;
		background: rgba(255, 11, 120, 0.28);
	}

	.cta__campaign-divider + .cta__campaign-offer {
		margin-top: 1.8rem;
	}

	.cta__campaign-offer--secondary {
		gap: 1rem;
		align-items: center;
	}

	.cta__campaign-offer-body {
		width: 100%;
	}

	.cta__campaign-price {
		align-items: center;
		gap: 0.5rem;
		flex-wrap: nowrap;
		margin-top: 0.8rem;
	}

	.cta__campaign-price-to {
		width: auto;
		margin-left: auto;
		justify-content: flex-start;
		gap: 0.4rem;
	}

	.cta__campaign-title {
		font-size: 1.55rem;
		line-height: 1.2;
	}

	.cta__campaign-price-text {
		font-size: 1.4rem;
		font-weight: 400;
		line-height: 1.2;
	}

	.cta__campaign-price-yen {
		margin-left: 0;
		font-size: 1.4rem;
		font-weight: 500;
		line-height: 1.2;
	}

	.cta__campaign-arrow {
		flex: 0 0 auto;
	}

	.cta__campaign-arrow img {
		width: 2.2rem;
	}

	.cta__campaign-price-current {
		font-size: 1.9rem;
		font-weight: 500;
		line-height: 1;
	}

	.cta__campaign-price-current span {
		top: -0.28rem;
		font-size: 2.4rem;
		line-height: 0.7;
	}

	.cta__campaign-price-current--lesson::after {
		top: auto;
		bottom: -2.2rem;
		left: -3rem;
		width: 16rem;
		height: 3rem;
	}

	.cta__campaign-price-current--admission::after {
		top: auto;
		bottom: -2.5rem;
		width: 4rem;
		height: 4rem;
	}

	.cta__campaign-offer--secondary .cta__campaign-circle {
		width: 4.4rem;
		height: 4.4rem;
		font-size: 1.2rem;
		font-weight: 500;
		line-height: 1.2;
	}

	.cta__campaign-badge {
		min-width: 5.4rem;
		min-height: 2rem;
		padding: 0.2rem 0.8rem;
		font-size: 1rem;
	}

	.cta__buttons {
		gap: 2rem;
		margin-top: 2rem;
	}

	.cta__button {
		min-height: 5.6rem;
		padding: 1rem 5.2rem 1rem 1.8rem;
		font-size: 1.6rem;
		font-weight: 400;
		line-height: 1.2;
		border-radius: 2.8rem;
	}

	.cta__button::after {
		right: 1.6rem;
		width: 2.8rem;
		height: 2.8rem;
	}

	.cta__visual {
		right: -4rem;
		bottom: 0;
		top: 6rem;
		width: 14rem;
		margin: 0 0 0 auto;
	}

	.cta__visual img {
		width: 100%;
	}
}


/*--------------------------------------------------
**************************************************
  Strength
**************************************************
--------------------------------------------------*/
.strength {
	padding: 9.2rem 0 10.5rem;
	background: var(--color-white);
}

.strength__inner {
	width: min(100%, 124.8rem);
	margin: 0 auto;
	padding-inline: 2.4rem;
}

.strength__heading,
.strength__message {
	text-align: center;
}

.strength__label {
	display: inline-block;
	margin: 0;
	background: linear-gradient(96.1deg, var(--color-secondary-light) 4.2%, var(--color-primary-light) 100.23%);
	background-repeat: no-repeat;
	background-size: 100% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	font-family: var(--font-family-sirivennela);
	font-size: 6rem;
	font-weight: 400;
	line-height: 1;
	color: transparent;
}

.strength__title {
	margin: 2rem 0 0;
	font-size: 4.8rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	color: var(--color-heading);
}

.strength__title-main--blue {
	color: #0193b4;
}

.strength__title-main--pink {
	color: var(--color-primary);
}

.strength__lead {
	margin: 3rem 0 0;
	font-size: 1.8rem;
	font-weight: 350;
	line-height: 1.6;
	letter-spacing: 0.17em;
	color: var(--color-heading);
}

.strength__hybrid {
	position: relative;
	margin-top: 8.3rem;
}

.strength__logo {
	position: absolute;
	top: 1rem;
	left: 50%;
	z-index: 3;
	width: min(100%, 28.5rem);
	transform: translate(-50%, -50%);
}

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

.strength__columns {
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2rem;
	align-items: start;
}

.strength__card {
	position: relative;
	overflow: hidden;
	border-radius: 5rem;
}

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

.strength__card-body {
	padding: 4.6rem 2rem 4.2rem;
}

.strength__card--pilates .strength__card-body {
	background: #0e9ec0;
}

.strength__card--bodymake .strength__card-body {
	background: var(--color-primary);
}

.strength__card-title {
	position: relative;
	margin: 0;
	padding-bottom: 2.3rem;
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.18em;
	text-align: center;
	color: var(--color-white);
}

.strength__card-title::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 8.9rem;
	height: 0.1rem;
	background: var(--color-white);
	transform: translateX(-50%);
}

.strength__features {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 3rem 2.3rem;
	margin: 4rem 0 0;
	padding: 0;
	list-style: none;
}

.strength__features li {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 7rem;
	padding: 1.2rem 0;
	border-radius: 999.9rem;
	background: var(--color-white);
	font-size: 1.8rem;
	font-weight: 350;
	line-height: 1.6;
	letter-spacing: 0.1em;
	text-align: center;
	color: var(--color-heading);
}

.strength__features-item--wide {
	grid-column: 1 / -1;
}

.strength__cross {
	position: absolute;
	top: 62%;
	left: 50%;
	z-index: 2;
	width: 13rem;
	height: 13rem;
	transform: translate(-50%, -50%);
	pointer-events: none;
}

.strength__cross::before,
.strength__cross::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 0.6rem;
	height: 100%;
	background: #DFDFDF;
	transform-origin: center;
}

.strength__cross::before {
	transform: translate(-50%, -50%) rotate(45deg);
}

.strength__cross::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}

.strength__message {
	margin-top: 6rem;
}

.strength__message-title {
	margin: 0;
	font-size: 4.8rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	color: var(--color-heading);
}

.strength__message-title-main--blue {
	color: #0193b4;
}

.strength__message-title-main--pink {
	color: var(--color-primary);
}

.strength__message-title strong {
	font-weight: 700;
	color: #ff4c00;
}

.strength__message-text {
	margin: 3rem 0 0;
	font-size: 1.8rem;
	font-weight: 350;
	line-height: 1.6;
	letter-spacing: 0.17em;
	color: var(--color-heading);
}

/* SP */
@media (max-width: 767px) {
	.strength {
		padding: 6rem 0 0;
	}

	.strength__label {
		font-size: 3.4rem;
	}

	.strength__title {
		margin-top: 1.8rem;
		font-size: 3.6rem;
		line-height: 1.35;
	}

	.strength__lead {
		margin-top: 2.4rem;
		font-size: 1.6rem;
		letter-spacing: 0.08em;
	}

	.strength__hybrid {
		margin-top: 5rem;
		padding-top: 4rem;
	}

	.strength__logo {
		width: min(100%, 24rem);
	}

	.strength__columns {
		grid-template-columns: 1fr;
		gap: 10rem;
	}

	.strength__card {
		border-radius: 3.6rem;
	}

	.strength__card-body {
		padding: 3.2rem 1.6rem 3rem;
	}

	.strength__card-title {
		font-size: 2.4rem;
		letter-spacing: 0.12em;
	}

	.strength__features {
		grid-template-columns: 1fr;
		gap: 1.6rem;
		margin-top: 3rem;
	}

	.strength__features li,
	.strength__features-item--wide {
		grid-column: auto;
		min-height: 6.2rem;
		padding: 1.2rem 1.6rem;
		font-size: 1.5rem;
		letter-spacing: 0.08em;
	}

	.strength__cross {
		top: 53%;
		width: 7rem;
		height: 7rem;
		transform: translate(-50%, -50%);
	}

	.strength__cross::before,
	.strength__cross::after {
		width: 0.4rem;
		background: rgba(160, 160, 160, 0.95);
	}

	.strength__message {
		margin-top: 4.8rem;
	}

	.strength__message-title {
		font-size: 3.4rem;
		line-height: 1.35;
	}

	.strength__message-text {
		margin-top: 2.4rem;
		font-size: 1.6rem;
		letter-spacing: 0.08em;
	}
}


/*--------------------------------------------------
**************************************************
  Method
**************************************************
--------------------------------------------------*/
.method {
	padding: 7.5rem 0 8rem;
	background: #fef7f4 url("../imgs/method_bg.png") center top / cover no-repeat;
}

.method__inner {
	width: min(100%, 125.9rem);
	margin: 0 auto;
	padding-inline: 2.4rem;
}

.method__heading {
	text-align: center;
}

.method__label,
.method__step-label {
	display: inline-block;
	margin: 0;
	background: linear-gradient(96.1deg, var(--color-secondary-light) 4.2%, var(--color-primary-light) 100.23%);
	background-repeat: no-repeat;
	background-size: 100% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	font-family: var(--font-family-sirivennela);
	font-weight: 400;
	line-height: 1;
	color: transparent;
}

.method__label {
	font-size: 6rem;
}

.method__title {
	margin: 2rem 0 0;
	font-size: 6rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0;
	text-align: center;
	color: var(--color-heading);
}

.method__lead {
	margin: 3.3rem 0 0;
	font-size: 1.8rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.17em;
	text-align: center;
	color: var(--color-heading);
}

.method__steps {
	margin-top: 10rem;
}

.method__step {
	display: grid;
	grid-template-columns: minmax(0, 64rem) minmax(0, 1fr);
	gap: 7.4rem;
	align-items: flex-start;
}

.method__step + .method__step {
	margin-top: 8.9rem;
}

.method__step--secondary {
	grid-template-columns: minmax(0, 1fr) minmax(0, 64rem);
}

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

.method__step-label {
	padding-left: 0.1rem;
	font-size: 6rem;
}

.method__step-label span {
	background: none;
	font-family: var(--font-family-base);
	font-style: normal;
	font-size: 4.8rem;
	font-weight: 400;
	color: var(--color-primary);
	-webkit-text-fill-color: currentColor;
}

.method__step-title {
	margin: 2.2rem 0 0;
	font-size: 2.8rem;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.18em;
	color: var(--color-heading);
}

.method__step-text {
	margin: 3rem 0 0;
	font-size: 1.8rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.17em;
	color: var(--color-heading);
}

.method__step-list {
	margin: 2.5rem 0 0;
	padding: 0;
	list-style: none;
}

.method__step-list li {
	position: relative;
	padding-left: 1.1em;
	font-size: 1.8rem;
	font-weight: 400;
	line-height: 2;
	letter-spacing: 0.17em;
	color: var(--color-text);
}

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

.method__message {
	margin-top: 10.2rem;
	padding: 3.2rem;
	border-radius: 8rem;
	background: var(--color-white);
}

.method__message-text {
	margin: 0;
	font-size: 3.6rem;
	font-weight: 350;
	line-height: 1.6;
	letter-spacing: 0;
	text-align: center;
	color: var(--color-heading);
}

@media (max-width: 767px) {
	.method {
		padding: 8rem 0 7rem;
		background-position: center center;
	}

	.method__inner {
		padding-inline: 1.6rem;
	}

	.method__label {
		font-size: 4.8rem;
	}

	.method__title {
		margin-top: 1.6rem;
		font-size: 3.8rem;
		line-height: 1.35;
	}

	.method__lead {
		margin-top: 2.4rem;
		font-size: 1.6rem;
		letter-spacing: 0.08em;
		line-height: 1.8;
	}

	.method__steps {
		margin-top: 3rem;
	}

	.method__step,
	.method__step--secondary {
		grid-template-columns: 1fr;
		gap: 3rem;
	}

	.method__step + .method__step {
		margin-top: 5rem;
	}

	.method__step--secondary .method__step-body {
		order: 2;
	}

	.method__step--secondary .method__step-visual {
		order: 1;
	}

	.method__step-label {
		font-size: 4.8rem;
	}

	.method__step-label span {
		font-size: 3.8rem;
	}

	.method__step-title {
		margin-top: 2rem;
		font-size: 2.6rem;
		line-height: 1.4;
		letter-spacing: 0.12em;
	}

	.method__step-visual {
		width: 70%;
		margin: 1.5rem auto 0;
	}

	.method__step-text,
	.method__step-list li {
		font-size: 1.6rem;
		letter-spacing: 0.08em;
	}

	.method__step-text {
		margin-top: 2rem;
	}

	.method__step-list {
		margin-top: 1.8rem;
	}

	.method__message {
		margin-top: 6rem;
		padding: 3.2rem 2rem;
		border-radius: 3rem;
	}

	.method__message-text {
		text-align: left;
		font-size: 2.2rem;
	}
}


/*--------------------------------------------------
**************************************************
  Reason
**************************************************
--------------------------------------------------*/
.reason {
	padding: 7.6rem 0 10rem;
	background: #fff6c9 url("../imgs/reason_bg.png") center top / cover no-repeat;
}

.reason__inner {
	width: min(100%, 124.8rem);
	margin: 0 auto;
	padding-inline: 2.4rem;
}

.reason__heading {
	text-align: center;
}

.reason__label {
	display: inline-block;
	margin: 0;
	background: linear-gradient(96.1deg, var(--color-secondary-light) 4.2%, var(--color-primary-light) 100.23%);
	background-repeat: no-repeat;
	background-size: 100% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	font-family: var(--font-family-sirivennela);
	font-size: 6rem;
	font-weight: 400;
	line-height: 1;
	color: transparent;
}

.reason__title {
	margin: 1rem 0 0;
	font-size: 4.8rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0;
	text-align: center;
	color: var(--color-heading);
}

.reason__lead {
	margin: 3rem 0 0;
	font-size: 1.8rem;
	font-weight: 350;
	line-height: 1.6;
	letter-spacing: 0.17em;
	text-align: center;
	color: var(--color-heading);
}

.reason__table-wrap {
	margin-top: 8.6rem;
}

.reason__table {
	display: grid;
	grid-template-columns: minmax(0, 35rem) minmax(0, 50rem) minmax(0, 35rem);
	align-items: start;
}

.reason__column {
	display: grid;
	grid-template-rows: 12rem repeat(6, minmax(10rem, auto));
}

.reason__column--featured {
	position: relative;
	z-index: 1;
	margin: -2rem 0;
	padding: 2rem;
	background: linear-gradient(180deg, var(--color-primary-light) 0%, var(--color-secondary-light) 100%);
	border-radius: 5rem 5rem 0 0;
}

.reason__cell {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem 2.4rem;
	background: rgba(255, 255, 255, 0.84);
	font-size: 1.8rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.17em;
	text-align: center;
	color: var(--color-heading);
}

.reason__column .reason__cell:nth-child(even):not(.reason__cell--head) {
	background: rgba(245, 233, 240, 0.88);
}

.reason__cell--head {
	background: var(--color-primary);
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.17em;
	color: var(--color-white);
}

.reason__column--item .reason__cell--head {
	border-radius: 3rem 0 0 0;
	margin-right: -2rem;
	padding-right: 4.4rem;
}

.reason__column--studio .reason__cell--head {
	border-radius: 0 3rem 0 0;
	margin-left: -2rem;
	padding-left: 4.4rem;
}

.reason__column--featured .reason__cell--head {
	border-radius: 3rem 3rem 0 0;
}

.reason__cell--accent {
	font-size: 2.1rem;
	font-weight: 700;
}

.reason__message {
	position: relative;
	margin-top: 11.6rem;
	padding: 7rem 6rem 4.9rem;
	background: rgba(255, 255, 255, 0.9);
	border-radius: 8rem;
}

.reason__message-logo {
	position: absolute;
	left: 50%;
	top: 1.5rem;
	transform: translate(-50%, -50%);
	width: min(100%, 30.2rem);
}

.reason__message-logo img {
	display: block;
	width: 20rem;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
}

.reason__message-text {
	margin: 0;
	font-size: 3.6rem;
	font-weight: 350;
	line-height: 1.6;
	letter-spacing: 0;
	text-align: center;
	color: var(--color-heading);
}

.reason__message-text strong {
	font-weight: 700;
	color: var(--color-primary);
}

@media (max-width: 1200px) {
	.reason__table {
		grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.35fr) minmax(0, 0.9fr);
	}

	.reason__cell {
		padding-inline: 1.8rem;
		font-size: 1.7rem;
	}

	.reason__cell--accent {
		font-size: 1.9rem;
	}

	.reason__message {
		padding-inline: 4rem;
	}

	.reason__message-text {
		font-size: 3.2rem;
	}
}

/* SP */
@media (max-width: 767px) {
	.reason {
		padding: 6rem 0 7rem;
	}

	.reason__inner {
		padding-inline: 1.6rem;
	}

	.reason__label {
		font-size: 4.2rem;
	}

	.reason__title {
		margin-top: 1.6rem;
		font-size: 2.9rem;
		line-height: 1.4;
	}

	.reason__lead {
		margin-top: 1.8rem;
		font-size: 1.5rem;
		letter-spacing: 0.1em;
	}

	.reason__table-wrap {
		margin-top: 4.5rem;
	}

	.reason__table {
		grid-template-columns: 1fr;
		gap: 1.6rem;
	}

	.reason__column {
		grid-template-rows: auto;
	}

	.reason__column--featured {
		margin: 0;
		padding: 0.8rem;
		border-radius: 2.4rem;
	}

	.reason__cell {
		min-height: 7.2rem;
		padding: 1.6rem 1.4rem;
		font-size: 1.5rem;
		letter-spacing: 0.08em;
	}

	.reason__cell--head {
		min-height: 6.4rem;
		font-size: 1.6rem;
	}

	.reason__column--item .reason__cell--head,
	.reason__column--studio .reason__cell--head,
	.reason__column--featured .reason__cell--head {
		border-radius: 2.4rem 2.4rem 0 0;
	}

	.reason__column--item .reason__cell--head,
	.reason__column--studio .reason__cell--head {
		margin-inline: 0;
		padding-inline: 1.4rem;
	}

	.reason__cell--accent {
		font-size: 1.7rem;
	}

	.reason__column--item .reason__cell:last-child,
	.reason__column--studio .reason__cell:last-child,
	.reason__column--featured .reason__cell--accent:last-child {
		border-radius: 0 0 2.4rem 2.4rem;
	}

	.reason__message {
		margin-top: 6.8rem;
		padding: 5.2rem 2rem 3.4rem;
		border-radius: 3.2rem;
	}

	.reason__message-logo {
		width: min(100%, 18rem);
	}

	.reason__message-text {
		text-align: left;
		font-size: 1.8rem;
		line-height: 1.7;
	}

	.reason__message-text br {
		display: none;
	}
}


/*--------------------------------------------------
**************************************************
  Price
**************************************************
--------------------------------------------------*/
.price {
	padding: 10rem 0 0;
	background: var(--color-white);
}

.price__inner {
	width: min(100%, 124.8rem);
	margin: 0 auto;
	padding-inline: 2.4rem;
}

.price__heading {
	text-align: center;
}

.price__label {
	display: inline-block;
	margin: 0;
	background: linear-gradient(96.1deg, var(--color-secondary-light) 4.2%, var(--color-primary-light) 100.23%);
	background-repeat: no-repeat;
	background-size: 100% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	font-family: var(--font-family-sirivennela);
	font-size: 6rem;
	font-weight: 400;
	line-height: 1;
	color: transparent;
}

.price__title {
	margin: 0.8rem 0 0;
	font-size: 4.8rem;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	color: var(--color-heading);
}

.price__lead {
	margin: 3.1rem 0 0;
	font-size: 1.8rem;
	font-weight: 350;
	line-height: 1.6;
	letter-spacing: 0.17em;
	text-align: center;
	color: var(--color-heading);
}

.price__trial {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 3.5rem;
	width: min(100%, 120rem);
	margin: 6rem auto 0;
	padding: 4rem 4rem 4.7rem 2rem;
	border-radius: 3rem;
	background: #f9f9f9;
}

.price__trial-visual {
	flex: 0 0 50.3rem;
}

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

.price__trial-body {
	flex: 1 1 auto;
}

.price__trial-recommend {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22.8rem;
	min-height: 4.8rem;
	padding: 0.8rem 2.4rem;
	border-radius: 999px;
	background: #ececec;
	font-size: 1.8rem;
	font-weight: 400;
	line-height: 1.6;
	color: var(--color-primary);
}

.price__trial-title {
	margin: 1.4rem 0 0;
	font-size: 3.6rem;
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: 0.08em;
	color: var(--color-heading);
}

.price__campaign {
	margin-top: 2.3rem;
}

.price__campaign-label {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.2rem;
	width: 100%;
	min-height: 4.8rem;
	padding: 1.15rem 2.8rem;
	border-radius: 999px;
	background: var(--color-primary);
	font-size: 1.8rem;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: 0.02em;
	text-align: center;
	color: var(--color-white);
}

.price__campaign-label::before,
.price__campaign-label::after {
	display: block;
	width: 1rem;
	height: 2.1rem;
	content: "";
	background-repeat: no-repeat;
	background-position: center;
	background-size: 100% 100%;
}

.price__campaign-label::before {
	background-image: url("../imgs/mv_campaign-label-icon-left.svg");
}

.price__campaign-label::after {
	background-image: url("../imgs/mv_campaign-label-icon-right.svg");
}

.price__campaign-price {
	display: flex;
	align-items: flex-end;
	gap: 1.9rem;
	margin-top: 1.3rem;
}

.price__campaign-price-from {
	display: flex;
	align-items: flex-end;
	gap: 1rem;
}

.price__campaign-price-text {
	margin: 0;
	padding-bottom: 0.4rem;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1;
	color: var(--color-heading);
}

.price__campaign-price-yen {
	margin: 0;
	font-size: 3.6rem;
	font-weight: 500;
	line-height: 1;
	color: var(--color-heading);
}

.price__campaign-arrow {
	flex: 0 0 auto;
}

.price__campaign-arrow img {
	display: block;
	width: 4.5rem;
	height: auto;
}

.price__campaign-price-to {
	display: flex;
	align-items: flex-end;
}

.price__campaign-price-current {
	display: inline-flex;
	align-items: flex-end;
	margin: 0;
	font-size: 4rem;
	font-weight: 500;
	line-height: 1;
	color: var(--color-primary);
}

.price__campaign-price-current span {
	font-size: 6rem;
	line-height: 1;
}

.price__campaign-price-tax {
	margin: 0;
	padding-bottom: 0.8rem;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1;
	color: var(--color-primary);
}

.price__trial-course {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 5.4rem;
	margin: 1.6rem 0 0;
	padding: 0.8rem 3rem;
	border-radius: 999px;
	background: var(--color-white);
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.17em;
	text-align: center;
	color: var(--color-heading);
}

.price__trial-checks {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 1.6rem 4.4rem;
	width: 83%;
	margin-top: 2rem;
}

.price__trial-checks li {
	display: inline-flex;
	align-items: center;
	gap: 0.8rem;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 2;
	letter-spacing: 0.17em;
	color: var(--color-text);
}

.price__trial-checks li::before {
	flex: 0 0 auto;
	width: 2rem;
	height: 2rem;
	content: "";
	background: url("../imgs/icon_check_1.svg") no-repeat center / 100% 100%;
}

.price__button {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: min(100%, 77rem);
	min-height: 8rem;
	margin: 0 auto;
	padding: 0;
	border-radius: 999px;
	background-image: linear-gradient(92.26deg, #8B00B9 0%, #FF0073 50%, #8B00B9 100%);
	background-size: 200% 100%;
	background-position: 0% 50%;
	font-size: 2.6rem;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: 0.04em;
	text-align: center;
	color: var(--color-white);
	box-shadow: 0 0.8rem 2rem rgba(0, 0, 0, 0.12);
	transition: background-position 0.3s ease, box-shadow 0.2s ease, opacity 0.2s ease;
	-webkit-tap-highlight-color: transparent;
}

.price__button::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 3rem;
	width: 3.3rem;
	height: 3.3rem;
	border-radius: 50%;
	background: var(--color-white) url("../imgs/icon_arrow_2.svg") no-repeat center / 1.9rem auto;
	transform: translateY(-50%);
}

.price__button:hover,
.price__button:focus-visible,
.price__button:active {
	color: var(--color-white);
	background-position: 100% 50%;
}

@media (max-width: 1200px) {
	.price__trial {
		gap: 4rem;
		padding-right: 4rem;
	}

	.price__trial-visual {
		flex-basis: 44rem;
	}

	.price__campaign-price {
		flex-wrap: wrap;
		row-gap: 1rem;
	}
}

@media (max-width: 1024px) {
	.price__trial {
		gap: 3rem;
		padding: 3rem;
	}

	.price__trial-visual {
		flex-basis: 38rem;
	}

	.price__trial-title {
		font-size: 3.2rem;
	}

	.price__campaign-price-yen {
		font-size: 3rem;
	}

	.price__campaign-price-current {
		font-size: 3.4rem;
	}

	.price__campaign-price-current span {
		font-size: 5rem;
	}

	.price__trial-course {
		padding-inline: 2rem;
		font-size: 1.6rem;
	}

	.price__button {
		font-size: 2.2rem;
	}
}

/* SP */
@media (max-width: 767px) {
	.price {
		overflow-x: hidden;
		padding: 5rem 0 6rem;
	}

	.price__inner {
		padding-inline: 1.6rem;
	}

	.price__label {
		font-size: 4.2rem;
	}

	.price__title {
		margin-top: 1.6rem;
		font-size: 3.2rem;
		line-height: 1.4;
	}

	.price__lead {
		margin-top: 1.8rem;
		font-size: 1.5rem;
		line-height: 1.8;
		letter-spacing: 0.08em;
	}

	.price__trial {
		flex-direction: column;
		gap: 2.2rem;
		margin-top: 4.8rem;
		padding: 2.4rem 1.8rem 2.8rem;
		border-radius: 2.4rem;
	}

	.price__trial-visual {
		flex-basis: auto;
		width: 70%;
		max-width: none;
		margin: 1.5rem auto 0;
	}

	.price__trial-body {
		width: 100%;
	}

	.price__trial-recommend {
		min-width: 100%;
		min-height: 4.2rem;
		padding-inline: 1.6rem;
		font-size: 1.6rem;
	}

	.price__trial-title {
		margin-top: 1.2rem;
		font-size: 2.8rem;
		line-height: 1.5;
		text-align: center;
	}

	.price__campaign {
		margin-top: 2.4rem;
		text-align: center;
	}

	.price__campaign-label {
		padding-inline: 0;
		font-size: 1.6rem;
	}

	.price__campaign-price {
		flex-direction: column;
		align-items: center;
		gap: 0.8rem;
		margin-top: 1.6rem;
	}

	.price__campaign-price-from,
	.price__campaign-price-to {
		justify-content: center;
	}

	.price__campaign-price-to {
		align-items: flex-end;
	}

	.price__campaign-price-text {
		padding-bottom: 0.1rem;
	}

	.price__campaign-price-yen {
		font-size: 2.8rem;
	}

	.price__campaign-arrow {
		padding-bottom: 0;
	}

	.price__campaign-arrow img {
		width: 3.2rem;
		transform: rotate(90deg);
	}

	.price__campaign-price-current {
		font-size: 3rem;
	}

	.price__campaign-price-current span {
		font-size: 4.4rem;
	}

	.price__campaign-price-tax {
		align-self: flex-end;
		margin-bottom: 0;
		padding-bottom: 0.45rem;
		line-height: 1;
	}

	.price__trial-course {
		display: flex;
		margin-top: 2rem;
		padding: 1.2rem 1.6rem;
		font-size: 1.5rem;
		line-height: 1.7;
		letter-spacing: 0.08em;
	}

	.price__trial-checks {
		flex-direction: column;
		gap: 0.8rem;
		margin-top: 1.8rem;
	}

	.price__trial-checks li {
		font-size: 1.5rem;
		line-height: 1.8;
		letter-spacing: 0.08em;
	}

	.price__button {
		width: 100%;
		min-height: 7.2rem;
		margin-top: 0;
		padding: 1.1rem 5.8rem 1.1rem 2rem;
		font-size: 1.75rem;
		letter-spacing: 0.02em;
	}

	.price__button::after {
		right: 2rem;
		width: 3rem;
		height: 3rem;
		background-size: 1.5rem auto;
	}
}

.price__plan {
	position: relative;
	margin-top: 10rem;
	padding: 5.1rem 0 8rem;
	overflow: visible;
}

.price__plan--monthly {
	background: linear-gradient(to bottom, #0193b4 0 36.6rem, #eaf8fc 36.6rem 100%);
}

.price__plan--ticket {
	margin-top: 0;
	padding-top: 6rem;
	background: linear-gradient(to bottom, #00b4b4 0 36.6rem, #bbf6f6 36.6rem 100%);
}

.price__plan-inner {
	position: relative;
	width: min(100%, 124.8rem);
	margin: 0 auto;
	padding-inline: 2.4rem;
}

.price__plan-heading {
	position: relative;
	z-index: 1;
	text-align: center;
}

.price__plan-title {
	margin: 0;
	font-size: 4rem;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	color: var(--color-white);
}

.price__plan-lead {
	margin: 2rem 0 0;
	font-size: 1.8rem;
	font-weight: 350;
	line-height: 1.6;
	letter-spacing: 0.17em;
	text-align: center;
	color: var(--color-white);
}

.price__cards {
	position: relative;
	z-index: 1;
	display: grid;
	width: min(100%, 120rem);
	margin: 11.6rem auto 0;
}

.price__cards--monthly {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 3rem;
}

.price__cards--ticket {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 2rem;
}

.price__card {
	position: relative;
	padding: 6rem 3rem 3.3rem;
	border-radius: 3rem;
	background: var(--color-white);
	box-shadow: 0 0 1.5rem 0 rgba(154, 154, 154, 0.25);
}

.price__card--monthly {
	min-height: 48.5rem;
}

.price__card--ticket {
	min-height: 53.2rem;
	padding-inline: 1rem;
}

.price__card-title {
	margin: 0;
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: 0.11em;
	text-align: center;
	color: var(--color-heading);
}

.price__card-title span {
	font-size: 3.2rem;
	font-weight: 500;
}

.price__card-title::after {
	display: block;
	width: 6.4rem;
	height: 0.2rem;
	margin: 1rem auto 0;
	content: "";
	background: #16c9d6;
}

.price__card-term {
	display: flex;
	align-items: center;
	justify-content: center;
	width: fit-content;
	min-width: 12.7rem;
	min-height: 3.6rem;
	margin: 2rem auto 0;
	padding: 0.4rem 1.6rem;
	border-radius: 999px;
	background: #f5f5f5;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 2;
	letter-spacing: 0.07em;
	text-align: center;
	color: var(--color-text);
}

.price__card-price {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	gap: 0.8rem;
	margin-top: 2rem;
}

.price__card-price--ticket {
	flex-wrap: nowrap;
	gap: 0.4rem;
	margin-top: 3.2rem;
}

.price__card-price--ticket .price__card-price-value {
	font-size: 4rem;
}

.price__card-price--ticket .price__card-price-tax {
	margin-bottom: 0.7rem;
	font-size: 1.2rem;
}

.price__card--ticket .price__card-list li {
	font-size: 1.5rem;
}

.price__card-price-label {
	margin-bottom: 1rem;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.2;
	color: var(--color-heading);
}

.price__card-price-value {
	font-size: 4.8rem;
	font-weight: 500;
	line-height: 1.2;
	color: var(--color-primary);
}

.price__card-price-tax {
	margin-bottom: 1rem;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.2;
	color: var(--color-heading);
}

.price__card-list {
	margin-top: 2.4rem;
}

.price__card-list li {
	position: relative;
	padding: 0.2rem 0 1.4rem 3rem;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 2;
	letter-spacing: 0.17em;
	color: var(--color-text);
}

.price__card-list li + li {
	margin-top: 1.2rem;
}

.price__card-list li::before {
	position: absolute;
	top: 0.9rem;
	left: 0;
	width: 2rem;
	height: 2rem;
	content: "";
	background: url("../imgs/icon_check_1.svg") no-repeat center / 100% 100%;
}

.price__card-list li::after {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 0.1rem;
	content: "";
	background-image: linear-gradient(to right, #9f9f9f 0 0.6rem, transparent 0.6rem 1.2rem);
	background-size: 1.2rem 0.1rem;
	background-repeat: repeat-x;
}

.price__card-list li:last-child::after {
	content: none;
}

.price__card-badge {
	position: absolute;
	top: -7rem;
	left: 50%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 12.9rem;
	height: 12.9rem;
	border-radius: 50%;
	background: linear-gradient(180deg, var(--color-accent-purple) 0%, var(--color-primary) 100%);
	transform: translateX(-50%);
	color: var(--color-white);
}

.price__card-badge span {
	font-size: 2.4rem;
	font-weight: 350;
	line-height: 1;
	letter-spacing: 0.12em;
	text-align: center;
}

.price__card-badge strong {
	margin-top: 0.5rem;
	font-size: 3.2rem;
	font-weight: 350;
	line-height: 1;
	letter-spacing: 0.12em;
	text-align: center;
}
/*
.price__card-badge--best {
	top: -8.4rem;
	left: 50%;
	width: 12.8rem;
	height: 12.8rem;
	transform: translateX(-50%);
}
*/
.price__card-badge--best span {
	font-size: 2rem;
}

.price__plan-visual {
	position: absolute;
	z-index: 0;
}

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

.price__plan--monthly .price__plan-visual--left {
	top: 0;
	left: -7.8rem;
	width: 35.1rem;
}

.price__plan--monthly .price__plan-visual--right {
	top: -10rem;
	right: -10.8rem;
	width: 44.4rem;
}

.price__plan--ticket .price__plan-visual--left {
	top: -5rem;
	left: -5rem;
	width: 42.8rem;
}

.price__plan--ticket .price__plan-visual--right {
	top: -9rem;
	right: -5.8rem;
	width: 35.1rem;
}

.price__admission {
	padding: 4rem 2.4rem 0;
}

.price__admission-inner {
	width: min(100%, 120rem);
	margin: 0 auto;
	padding: 3.6rem 4rem 3.9rem;
	border-radius: 3rem;
	background: #f9f9f9;
}

.price__admission-title {
	margin: 0;
	font-size: 1.8rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.17em;
	color: var(--color-heading);
}

.price__admission-text {
	margin-top: 1rem;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 2;
	letter-spacing: 0.17em;
	color: var(--color-text);
}

@media (max-width: 1200px) {
	.price__cards--ticket {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.price__plan-visual {
		opacity: 1;
	}
}

@media (max-width: 1024px) {
	.price__plan {
		margin-top: 8rem;
		padding: 4.8rem 0 6.4rem;
	}

	.price__plan--monthly,
	.price__plan--ticket {
		background-position: center top;
		background-size: 100% 100%;
	}

	.price__plan-title {
		font-size: 3.4rem;
	}

	.price__cards {
		margin-top: 5.6rem;
	}

	.price__cards--monthly {
		grid-template-columns: 1fr;
	}

	.price__card--monthly,
	.price__card--ticket {
		min-height: auto;
	}

	.price__plan-visual {
		display: none;
	}
}

@media (max-width: 767px) {
	.price__plan {
		margin-top: 6rem;
		padding: 4.6rem 0 5.6rem;
	}

	.price__plan--monthly {
		background: linear-gradient(to bottom, #0193b4 0 16rem, #eaf8fc 16rem 100%);
	}

	.price__plan--ticket {
		background: linear-gradient(to bottom, #00b4b4 0 16rem, #bbf6f6 16rem 100%);
	}

	.price__plan-inner {
		padding-inline: 1.6rem;
	}

	.price__plan--monthly .price__plan-visual--left,
	.price__plan--ticket .price__plan-visual--right {
		display: none;
	}

	.price__plan--monthly .price__plan-visual--right,
	.price__plan--ticket .price__plan-visual--left {
		display: block;
	}

	.price__plan--monthly .price__plan-visual--right {
		top: -11rem;
		right: -4rem;
		width: 19rem;
	}

	.price__plan--ticket .price__plan-visual--left {
		top: -12rem;
		left: -4rem;
		width: 19rem;
	}

	.price__plan-title {
		font-size: 3.2rem;
		line-height: 1.3;
	}

	.price__plan-lead {
		margin-top: 1.4rem;
		font-size: 1.5rem;
		letter-spacing: 0.08em;
	}

	.price__cards {
		margin-top: 7rem;
	}

	.price__cards--ticket {
		grid-template-columns: 1fr;
		gap: 7rem;
	}

	.price__cards--monthly {
		gap: 7rem;
	}

	.price__card {
		padding: 4.5rem 2rem 2.8rem;
		border-radius: 2.4rem;
	}

	.price__card-title {
		font-size: 2.4rem;
		letter-spacing: 0.08em;
	}

	.price__card-title span {
		font-size: 2.8rem;
	}

	.price__card-term {
		margin-top: 1.4rem;
	}

	.price__card-price,
	.price__card-price--ticket {
		margin-top: 2.4rem;
	}

	.price__card-price {
		flex-wrap: wrap;
		row-gap: 0.4rem;
	}

	.price__card-price--ticket {
		flex-wrap: nowrap;
		gap: 0.3rem;
	}

	.price__card-price-label,
	.price__card-price-tax {
		margin-bottom: 0.4rem;
	}

	.price__card-price-value {
		font-size: 4rem;
	}

	.price__card-price--ticket .price__card-price-value {
		font-size: 3.6rem;
	}

	.price__card-price--ticket .price__card-price-tax {
		margin-bottom: 0.3rem;
		font-size: 1.1rem;
	}

	.price__card-list {
		margin-top: 1.8rem;
	}

	.price__card-list li {
		padding-left: 2.8rem;
		font-size: 1.5rem;
		line-height: 1.9;
		letter-spacing: 0.08em;
	}

	.price__card-badge {
		top: -4.8rem;
		width: 9rem;
		height: 9rem;
	}

	.price__card-badge span {
		font-size: 1.8rem;
	}

	.price__card-badge strong {
		font-size: 2.5rem;
	}

	.price__card-badge--best {
		width: 9.8rem;
		height: 9.8rem;
	}

	.price__card-badge--best span {
		font-size: 1.5rem;
	}

	.price__admission {
		padding: 3.6rem 1.6rem 0;
	}

	.price__admission-inner {
		padding: 2.8rem 2rem 3rem;
		border-radius: 2.4rem;
	}

	.price__admission-title {
		font-size: 1.7rem;
		letter-spacing: 0.08em;
	}

	.price__admission-text {
		margin-top: 1.2rem;
		font-size: 1.5rem;
		line-height: 1.9;
		letter-spacing: 0.08em;
	}
}


/*--------------------------------------------------
**************************************************
  Flow
**************************************************
--------------------------------------------------*/
.flow {
	padding: 10rem 0 1rem;
	background: var(--color-white);
}

.flow__inner {
	width: min(100%, 124.8rem);
	margin: 0 auto;
	padding-inline: 2.4rem;
}

.flow__heading {
	text-align: center;
}

.flow__label {
	display: inline-block;
	margin: 0;
	background: linear-gradient(96.1deg, var(--color-secondary-light) 4.2%, var(--color-primary-light) 100.23%);
	background-repeat: no-repeat;
	background-size: 100% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	font-family: var(--font-family-sirivennela);
	font-size: 6rem;
	font-weight: 400;
	line-height: 1;
	color: transparent;
}

.flow__title {
	margin: 1.8rem 0 0;
	font-size: 4.8rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	text-align: center;
	color: var(--color-heading);
}

.flow__lead {
	margin: 4.1rem 0 0;
	font-size: 1.8rem;
	font-weight: 350;
	line-height: 1.6;
	letter-spacing: 0.17em;
	text-align: center;
	color: var(--color-heading);
}

.flow__steps {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 3rem;
	align-items: start;
	margin: 6rem 0 0;
	padding: 0;
	list-style: none;
}

.flow__step {
	position: relative;
	text-align: center;
}

.flow__step:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 21.4rem;
	right: -1.5rem;
	width: 3rem;
	height: 2.1rem;
	transform: translateX(50%) rotate(90deg);
	background: linear-gradient(0deg, #00B7FF -43.17%, var(--color-primary-light) 90.16%);
	clip-path: polygon(50% 0, 0 100%, 100% 100%);
}

.flow__step-number {
	margin: 0;
	background: linear-gradient(96.1deg, var(--color-secondary-light) 4.2%, var(--color-primary-light) 100.23%);
	background-repeat: no-repeat;
	background-size: 100% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	font-size: 2.1rem;
	font-weight: 400;
	line-height: 0.9;
	letter-spacing: 0.14em;
	color: transparent;
}

.flow__step-title {
	margin: 2.4rem 0 0;
	font-size: 3rem;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0;
	color: var(--color-heading);
}

.flow__step-image {
	margin-top: 3.6rem;
}

.flow__step-image img {
	width: 24rem;
	height: 24rem;
	border-radius: 50%;
	object-fit: cover;
}

.flow__step-text {
	margin: 3.2rem 0 0;
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.07em;
	color: var(--color-text);
}

.flow__notes {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 4rem;
	margin-top: 4rem;
	padding: 4rem 5.8rem 3.6rem;
	border-radius: 3.2rem;
	background: #f8f8f8;
}

.flow__note-title {
	margin: 0;
	font-size: 1.8rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.17em;
	color: var(--color-heading);
}

.flow__note-list {
	margin: 1.4rem 0 0;
	padding: 0;
	list-style: none;
}

.flow__note-list li {
	position: relative;
	padding-left: 1.2em;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 2;
	letter-spacing: 0.17em;
	color: var(--color-text);
}

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

@media (max-width: 1023px) {
	.flow__steps {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		row-gap: 6rem;
	}

	.flow__step:nth-child(2n)::after {
		display: none;
	}

	.flow__notes {
		padding-inline: 3.2rem;
	}
}

@media (max-width: 767px) {
	.flow {
		padding: 0;
	}

	.flow__inner {
		padding-inline: 1.6rem;
	}

	.flow__label {
		font-size: 4.2rem;
	}

	.flow__title {
		margin-top: 1.6rem;
		font-size: 3.2rem;
		line-height: 1.4;
	}

	.flow__lead {
		margin-top: 1.8rem;
		font-size: 1.5rem;
		line-height: 1.8;
		letter-spacing: 0.08em;
	}

	.flow__steps {
		grid-template-columns: 1fr;
		gap: 5.2rem;
		margin-top: 5.6rem;
	}

	.flow__step:not(:last-child)::after {
		display: block;
		top: auto;
		right: 50%;
		bottom: -3.7rem;
		transform: translateX(50%) rotate(180deg);
	}

	.flow__step-title {
		margin-top: 1.8rem;
		font-size: 2.6rem;
	}

	.flow__step-image {
		margin-top: 2.6rem;
	}

	.flow__step-image img {
		width: 22rem;
		height: 22rem;
	}

	.flow__step-text {
		margin-top: 2.2rem;
		font-size: 1.4rem;
		line-height: 1.8;
		letter-spacing: 0.05em;
	}

	.flow__notes {
		grid-template-columns: 1fr;
		gap: 2.8rem;
		margin-top: 5.6rem;
		padding: 3rem 2rem;
		border-radius: 2.4rem;
	}

	.flow__note-title {
		font-size: 1.7rem;
		letter-spacing: 0.08em;
	}

	.flow__note-list {
		margin-top: 1rem;
	}

	.flow__note-list li {
		font-size: 1.3rem;
		line-height: 1.9;
		letter-spacing: 0.08em;
	}
}


/*--------------------------------------------------
**************************************************
  Instructor
**************************************************
--------------------------------------------------*/
.instructor {
	margin-top: 10rem;
	padding: 8rem 0;
	background: var(--color-white) url("../imgs/instructor_bg.png") no-repeat center top / 100% auto;
}

.instructor__inner {
	width: min(100%, 124.8rem);
	margin: 0 auto;
	padding-inline: 2.4rem;
}

.instructor__heading {
	text-align: center;
}

.instructor__label {
	display: inline-block;
	margin: 0;
	background: linear-gradient(96.1deg, var(--color-secondary-light) 4.2%, var(--color-primary-light) 100.23%);
	background-repeat: no-repeat;
	background-size: 100% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	font-family: var(--font-family-sirivennela);
	font-size: 6rem;
	font-weight: 400;
	line-height: 1;
	color: transparent;
}

.instructor__title {
	margin: 1.7rem 0 0;
	font-size: 4.8rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	text-align: center;
	color: var(--color-heading);
}

.instructor__lead {
	margin: 4rem 0 0;
	font-size: 1.8rem;
	font-weight: 350;
	line-height: 1.6;
	letter-spacing: 0.17em;
	text-align: center;
	color: var(--color-heading);
}

.instructor__profile {
	display: flex;
	justify-content: center;
	margin-top: 6rem;
}

.instructor__profile-text {
	position: relative;
	/* padding-left: 19.6rem; */
	text-align: center;
}

.instructor__profile-text::before {
	content: "";
	position: absolute;
	top: 50%;
	left: -14rem;
	width: 13.6rem;
	height: 11.4rem;
	transform: translateY(-50%);
	background: url("../imgs/instructor_japica.png") no-repeat center / contain;
}

.instructor__profile-name {
	margin: 0;
	font-size: 2.8rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.18em;
	color: var(--color-heading);
}

.instructor__profile-role {
	margin: 1rem 0 0;
	font-size: 1.6rem;
	font-weight: 350;
	line-height: 1.6;
	letter-spacing: 0.19em;
	color: var(--color-heading);
}

.instructor__points {
	display: grid;
	grid-template-columns: 60.2rem minmax(0, 1fr);
	gap: 4rem;
	align-items: center;
	margin-top: 8rem;
}

.instructor__points-visual img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 4rem;
}

.instructor__points-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.instructor__point + .instructor__point {
	margin-top: 4.6rem;
}

.instructor__point-label {
	margin: 0;
	padding-left: .8rem;
	font-family: var(--font-family-sirivennela);
	font-size: 6rem;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0;
	background: linear-gradient(96.1deg, var(--color-secondary-light) 4.2%, var(--color-primary-light) 78%);
	background-repeat: no-repeat;
	background-size: 100% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}

.instructor__point-label span {
	font-family: var(--font-family-base);
	font-size: 4.8rem;
	font-weight: 400;
	color: var(--color-primary);
	-webkit-text-fill-color: currentColor;
}

.instructor__point-title {
	margin: 1.5rem 0 0;
	font-size: 2.8rem;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.18em;
	color: var(--color-heading);
}

.instructor__point-text {
	margin: 2rem 0 0;
	font-size: 1.8rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.17em;
	color: var(--color-heading);
}

.instructor__message {
	margin-top: 8rem;
	padding: 4.6rem 4rem 2.1rem;
	border-radius: 8rem;
	background: var(--color-white);
	text-align: center;
}

.instructor__message-text {
	margin: 0;
	font-size: 2.8rem;
	font-weight: 350;
	line-height: 1.6;
	letter-spacing: 0.18em;
	color: var(--color-heading);
}

.instructor__message-author {
	margin: 3rem 0 0;
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 1.6;
	letter-spacing: 0.31em;
	color: var(--color-heading);
}

@media (max-width: 1200px) {
	.instructor__points {
		grid-template-columns: minmax(0, 56rem) minmax(0, 1fr);
		gap: 4rem;
	}

	.instructor__point-label {
		font-size: 5.2rem;
	}

	.instructor__point-title {
		font-size: 2.4rem;
	}

	.instructor__message-text {
		font-size: 2.4rem;
	}
}

@media (max-width: 1023px) {
	.instructor {
		background-size: cover;
	}

	.instructor__profile-text {
		padding-top: 14rem;
		padding-left: 0;
	}

	.instructor__profile-text::before {
		top: 0;
		left: 50%;
		transform: translateX(-50%);
	}

	.instructor__points {
		grid-template-columns: 1fr;
		justify-items: center;
	}

	.instructor__points-list {
		width: min(100%, 58rem);
	}
}

@media (max-width: 767px) {
	.instructor {
		margin-top: 5rem;
		padding: 4rem 0 5rem;
	}

	.instructor__inner {
		padding-inline: 1.6rem;
	}

	.instructor__label {
		font-size: 4.2rem;
	}

	.instructor__title {
		margin-top: 1.4rem;
		font-size: 3.2rem;
		line-height: 1.35;
	}

	.instructor__lead {
		margin-top: 2.4rem;
		text-align: left;
		font-size: 1.5rem;
		line-height: 1.85;
		letter-spacing: 0.08em;
	}

	.instructor__profile {
		margin-top: 4rem;
	}

	.instructor__profile-text {
		width: 100%;
		padding-top: 12.6rem;
	}

	.instructor__profile-text::before {
		width: 11rem;
		height: 9.2rem;
	}

	.instructor__profile-name {
		font-size: 2.3rem;
		letter-spacing: 0.1em;
	}

	.instructor__profile-role {
		margin-top: 0.8rem;
		font-size: 1.4rem;
		letter-spacing: 0.12em;
	}

	.instructor__points {
		gap: 3.2rem;
		margin-top: 5rem;
	}

	.instructor__points-visual {
		width: min(100%, 42rem);
	}

	.instructor__points-visual img {
		border-radius: 2.8rem;
	}

	.instructor__point + .instructor__point {
		margin-top: 3.2rem;
	}

	.instructor__point-label {
		font-size: 4.4rem;
	}

	.instructor__point-label span {
		font-size: 3.6rem;
	}

	.instructor__point-title {
		margin-top: 1.8rem;
		font-size: 2.2rem;
		line-height: 1.4;
		letter-spacing: 0.08em;
	}

	.instructor__point-text {
		margin-top: 1.6rem;
		font-size: 1.5rem;
		line-height: 1.8;
		letter-spacing: 0.08em;
	}

	.instructor__message {
		margin-top: 6rem;
		padding: 3.4rem 2rem 2.4rem;
		border-radius: 3rem;
	}

	.instructor__message-text {
		text-align: left;
		font-size: 2rem;
		line-height: 1.7;
		letter-spacing: 0.08em;
	}

	.instructor__message-author {
		margin-top: 2.8rem;
		font-size: 1.3rem;
		letter-spacing: 0.1em;
	}
}


/*--------------------------------------------------
**************************************************
  Case
**************************************************
--------------------------------------------------*/
.case {
	position: relative;
	overflow: hidden;
}

.case__bg {
	position: relative;
	padding: 8rem 0 2.5rem;
	background: url("../imgs/case_bg.jpg") no-repeat right top / cover;
}

.case__inner {
	width: min(100%, 120rem);
	margin: 0 auto;
	padding: 0 2.4rem 0;
}

.case__heading {
	text-align: center;
}

.case__label,
.case__item-label {
	display: inline-block;
	margin: 0;
	background: linear-gradient(96.1deg, var(--color-secondary-light) 4.2%, var(--color-primary-light) 100.23%);
	background-repeat: no-repeat;
	background-size: 100% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	font-family: var(--font-family-sirivennela);
	font-weight: 400;
	line-height: 1;
	color: transparent;
}

.case__label {
	font-size: 6rem;
}

.case__title {
	margin: 1.4rem 0 0;
	font-size: 4.8rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	color: var(--color-heading);
}

.case__lead {
	margin: 3rem 0 0;
	font-size: 1.8rem;
	font-weight: 350;
	line-height: 1.6;
	letter-spacing: 0.3rem;
	color: var(--color-heading);
}

.case__list {
	margin-top: 2rem;
}

.case__item {
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 6rem;
}

.case__item + .case__item {
	margin-top: 4rem;
}

.case__content {
	flex: 0 0 36rem;
	width: 36rem;
}

.case__content-head {
	display: flex;
	align-items: baseline;
	gap: 2rem;
}

.case__item-label {
	font-size: 6rem;
}

.case__item-label span {
	font-family: var(--font-family-base);
	font-size: 4.8rem;
	font-weight: 500;
	-webkit-text-fill-color: currentColor;
	color: var(--color-primary);
}

.case__item-title {
	margin: 0;
	font-size: 2.8rem;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.5rem;
	color: var(--color-heading);
}

.case__flow {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	margin-top: 2.8rem;
}

.case__step-label {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 13rem;
	height: 3.4rem;
	margin: 0;
	padding: 0 1.6rem;
	border-radius: 999px;
	background: var(--color-white);
	font-size: 1.8rem;
	font-weight: 350;
	line-height: 1.6;
	letter-spacing: 0.1rem;
	color: var(--color-heading);
}

.case__step-label--after {
	background: linear-gradient(90deg, var(--color-primary) 0%, #F00085 100%);
	color: var(--color-white);
}

.case__step-text {
	margin: 1.2rem 0 0;
	font-size: 1.8rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.3rem;
	color: var(--color-heading);
}

.case__arrow {
	width: 4rem;
	margin: -0.8rem 0 -0.2rem 8.4rem;
}

.case__item--1 .case__arrow,
.case__item--2 .case__arrow {
	margin-top: -2rem;
	margin-left: 12rem;
}

.case__item--3 .case__arrow {
	margin-top: -2rem;
	margin-left: -2.5rem;
	transform: scaleX(-1);
	transform-origin: center;
}

.case__arrow img {
	display: block;
	width: 4rem;
	height: auto;
}

.case__step-head {
	display: flex;
	align-items: center;
	gap: 1.8rem;
}

.case__period {
	margin: 0;
	font-size: 1.8rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.1rem;
	color: var(--color-heading);
}

.case__image {
	flex: 0 0 30rem;
	width: 30rem;
}

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

.case__item--1 .case__image,
.case__item--3 .case__image {
	position: relative;
	top: 2rem;
	left: -9rem;
}

.case__note {
	margin: 3.6rem 0 0;
	font-size: 1.2rem;
	font-weight: 350;
	line-height: 1.6;
	letter-spacing: 0.1rem;
	color: var(--color-heading);
}

.case__triangle {
	position: relative;
	z-index: 1;
	width: min(100%, 120rem);
	height: 7rem;
	margin: 0 auto;
	background: linear-gradient(0deg, #FFFFFF -43.17%, #BFBCAE 90.16%);
	clip-path: polygon(50% 0, 100% 100%, 0 100%);
	transform: rotate(180deg);
}

.case__message {
	margin-top: 4rem;
	padding: 0 2.4rem;
	text-align: center;
}

.case__message p {
	margin: 0;
	font-size: 3.6rem;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.1rem;
	color: var(--color-heading);
}

@media (max-width: 1024px) {
	.case {
		overflow-x: hidden;
		padding-top: 7rem;
	}

	.case__inner {
		padding-inline: 2rem;
	}

	.case__item {
		gap: 3.2rem;
	}

	.case__content {
		flex: 0 1 28rem;
		width: auto;
	}

	.case__content-head {
		gap: 1.2rem;
	}

	.case__item-label {
		font-size: 5rem;
	}

	.case__item-label span {
		font-size: 4rem;
	}

	.case__item-title {
		font-size: 2.4rem;
		letter-spacing: 0.3rem;
	}

	.case__flow {
		margin-top: 2.2rem;
	}

	.case__step-label {
		min-width: 11rem;
	}

	.case__image {
		flex-basis: 26rem;
		width: 26rem;
	}

	.case__item--1 .case__image,
	.case__item--3 .case__image {
		left: 0;
	}

	.case__message {
		padding-top: 7rem;
		padding-bottom: 8rem;
	}

	.case__message p {
		font-size: 3rem;
	}
}

@media (max-width: 767px) {
	.case {
		padding-top: 0;
	}

	.case__bg {
		padding-block: 3rem;
		overflow: hidden;
		background-position: 86% top;
	}

	.case__bg::before {
		content: "";
		position: absolute;
		inset: 0;
		background: linear-gradient(180deg, rgba(255, 255, 255, 0.68) 0%, rgba(255, 255, 255, 0.42) 42%, rgba(255, 255, 255, 0.18) 100%);
	}

	.case__inner {
		position: relative;
		z-index: 1;
		padding-inline: 1.6rem;
	}

	.case__label {
		font-size: 4rem;
	}

	.case__title {
		margin-top: 1rem;
		font-size: 3.6rem;
	}

	.case__lead {
		margin-top: 2.4rem;
		font-size: 1.5rem;
		letter-spacing: 0.16rem;
		line-height: 1.8;
	}

	.case__list {
		margin-top: 4.8rem;
	}

	.case__item {
		flex-direction: column;
		align-items: center;
		gap: 1.2rem;
	}

	.case__list .case__item:nth-child(odd) {
		align-items: flex-start;
	}

	.case__list .case__item:nth-child(even) {
		align-items: flex-end;
	}

	.case__item + .case__item {
		margin-top: 5.6rem;
	}

	.case__content {
		order: 1;
		width: 100%;
		max-width: 28rem;
	}

	.case__image {
		order: 2;
		width: 100%;
		max-width: 26rem;
		margin-top: 0;
	}

	.case__content-head {
		justify-content: center;
		flex-wrap: wrap;
	}

	.case__item-label {
		font-size: 4.4rem;
	}

	.case__item-label span {
		font-size: 3.6rem;
	}

	.case__item-title {
		width: 100%;
		font-size: 2.4rem;
		text-align: center;
		letter-spacing: 0.2rem;
	}

	.case__flow {
		margin-top: 1.8rem;
		align-items: center;
	}

	.case__step,
	.case__step-head {
		text-align: center;
		justify-content: center;
	}

	.case__step-label {
		min-width: 12rem;
	}

	.case__step-text {
		margin-top: 0.8rem;
		font-size: 1.6rem;
		letter-spacing: 0.15rem;
		line-height: 1.75;
	}

	.case__arrow {
		margin: 0.2rem auto 0.4rem;
		transform: translateX(6rem);
	}

	.case__item--3 .case__arrow {
		margin-left: 0;
		transform: translateX(20rem);
	}

	.case__period {
		font-size: 1.5rem;
	}

	.case__note {
		max-width: 28rem;
		margin: 5rem auto 0;
		text-align: center;
		line-height: 1.8;
	}

	.case__triangle {
		height: 3.6rem;
	}

	.case__message {
		margin-top: 2rem;
		padding: 0;
	}

	.case__message p {
		/* max-width: 30rem; */
		margin: 0 auto;
		font-size: 2.2rem;
		line-height: 1.8;
		letter-spacing: 0.04rem;
	}
}


/*--------------------------------------------------
**************************************************
  School
**************************************************
--------------------------------------------------*/
.school {
	margin-top: 10rem;
	background: url("../imgs/school_bg.png") no-repeat center bottom / 100% 90%;
}

.school__inner {
	width: min(100%, 120rem);
	margin: 0 auto;
	padding: 0 2.4rem;
}

.school__heading {
	text-align: center;
}

.school__label,
.school__point-label,
.school__voice-label {
	display: inline-block;
	margin: 0;
	background: linear-gradient(96.1deg, var(--color-secondary-light) 4.2%, var(--color-primary-light) 100.23%);
	background-repeat: no-repeat;
	background-size: 100% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}

.school__label,
.school__voice-label {
	font-family: var(--font-family-sirivennela);
	font-weight: 400;
	line-height: 1;
}

.school__label {
	font-size: 6rem;
}

.school__title {
	margin: 1rem 0 0;
	font-size: 4.8rem;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	color: var(--color-heading);
}

.school__copy {
	margin: 3rem 0 0;
	font-size: 2.4rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.125em;
	text-align: center;
	color: var(--color-heading);
}

.school__lead {
	margin: 3rem 0 0;
	font-size: 1.8rem;
	font-weight: 350;
	line-height: 1.6;
	letter-spacing: 0.167em;
	text-align: center;
	color: var(--color-heading);
}

.school__body {
	margin-top: 6rem;
	padding: 2rem 0 9rem;
}

.school__points {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	column-gap: 3rem;
	row-gap: 4rem;
	align-items: start;
}

.school__point,
.school__career-item {
	text-align: center;
}

.school__point-label {
	font-size: 2.1rem;
	font-weight: 500;
	line-height: 0.9;
	letter-spacing: 0.143em;
}

.school__point-title {
	margin: 1.5rem 0 0;
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: 0.107em;
	text-align: center;
	color: var(--color-heading);
}

.school__career-item .school__point-title {
	margin-top: 3rem;
}

.school__point-image {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 24rem;
	margin-top: 3rem;
}

.school__point-image img,
.school__career-image img,
.school__voice-image img {
	display: block;
	max-width: 100%;
	height: auto;
}

.school__point-image--logos {
	flex-direction: column;
	gap: 1.8rem;
}

.school__point-image--logos img:first-child {
	width: 15.7rem;
}

.school__point-image--logos img:last-child {
	width: 23rem;
	max-width: 100%;
}

.school__point-text,
.school__career-text {
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.067em;
	text-align: center;
	color: var(--color-text);
}

.school__point-text {
	margin: 3rem 0 0;
}

.school__career-text {
	margin: 2rem 0 0;
}

.school__career {
	margin-top: 6rem;
}

.school__copy--career {
	margin-top: 0;
}

.school__career-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 4rem 3rem;
	margin-top: 6rem;
}

.school__career-image {
	margin-top: 3.8rem;
}

.school__voices {
	display: grid;
	gap: 4rem;
	margin-top: 9rem;
}

.school__voice {
	position: relative;
	display: grid;
	grid-template-columns: 16rem minmax(0, 1fr);
	gap: 4.2rem;
	align-items: start;
	padding: 4rem 5rem 4rem 3.2rem;
	border-radius: 4rem;
	background: var(--color-white);
}

.school__voice-label {
	position: absolute;
	top: -1.6rem;
	left: 3.8rem;
	font-size: 6rem;
	transform: rotate(-12.91deg);
	transform-origin: left center;
}

.school__voice-image {
	margin-top: 0.8rem;
}

.school__voice-image img {
	width: 16rem;
	border-radius: 50%;
}

.school__voice-body {
	padding-top: 0.8rem;
}

.school__voice-head {
	display: block;
}

.school__voice-meta {
	margin: 0;
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 1.2;
	letter-spacing: 0.063em;
	color: var(--color-heading);
}

.school__voice-name {
	margin: 0.8rem 0 0;
	font-size: 2.1rem;
	font-weight: 300;
	line-height: 1.2;
	letter-spacing: 0.238em;
	color: var(--color-heading);
}

.school__voice-text {
	margin: 2rem 0 0;
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 1.6;
	letter-spacing: 0.313em;
	color: var(--color-heading);
}

@media (max-width: 1200px) {
	.school__points {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.school__career-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		justify-items: center;
	}

	.school__career-item:last-child {
		grid-column: 1 / -1;
	}

	.school__voice {
		padding-right: 3.2rem;
		padding-left: 2.4rem;
	}
}

@media (max-width: 1024px) {
	.school__title {
		line-height: 1.25;
	}

	.school__body {
		background-size: cover;
	}

	.school__points,
	.school__career-grid {
		column-gap: 2.4rem;
	}

	.school__voice {
		grid-template-columns: 13rem minmax(0, 1fr);
		gap: 2.8rem;
	}

	.school__voice-image img {
		width: 13rem;
	}
}

@media (max-width: 767px) {
	.school {
		margin-top: 6rem;
	}

	.school__inner {
		padding-inline: 1.6rem;
	}

	.school__label,
	.school__voice-label {
		font-size: 4.2rem;
	}

	.school__title {
		margin-top: 1.6rem;
		font-size: 3.2rem;
		line-height: 1.4;
	}

	.school__copy {
		margin-top: 2.4rem;
		font-size: 1.6rem;
		line-height: 1.6;
		letter-spacing: 0.04em;
		white-space: normal;
	}

	.school__lead {
		margin-top: 2.4rem;
		font-size: 1.5rem;
		line-height: 1.85;
		letter-spacing: 0.08em;
	}

	.school__body {
		margin-top: 4rem;
		padding: 1.2rem 0 6rem;
		background-size: cover;
	}

	.school__points,
	.school__career-grid {
		grid-template-columns: 1fr;
		gap: 4rem;
	}

	.school__career {
		margin-top: 6rem;
	}

	.school__career-grid {
		margin-top: 3rem;
	}

	.school__career-image {
		margin-top: 2rem;
		width: 24rem;
		margin-inline: auto;
	}

	.school__career-item:last-child {
		grid-column: auto;
	}

	.school__point-label {
		font-size: 1.9rem;
	}

	.school__point-title {
		margin-top: 1rem;
		font-size: 2.4rem;
		line-height: 1.5;
		letter-spacing: 0.08em;
	}

	.school__career-item .school__point-title {
		margin-top: 1.5rem;
	}

	.school__point-image {
		min-height: auto;
		margin-top: 1.8rem;
	}

	.school__point-image--logos {
		gap: 1.4rem;
	}

	.school__point-image--logos img:first-child {
		width: 12rem;
	}

	.school__point-image--logos img:last-child {
		width: 20rem;
	}

	.school__point-text,
	.school__career-text {
		margin-top: 2rem;
		font-size: 1.4rem;
		line-height: 1.8;
		letter-spacing: 0.08em;
	}

	.school__point-text {
		margin-top: 1.5rem;
	}

	.school__career-text {
		margin-top: 1rem;
	}

	.school__voices {
		gap: 3.2rem;
		margin-top: 6rem;
	}

	.school__voice {
		grid-template-columns: 1fr;
		gap: 2rem;
		padding: 4.6rem 2rem 2.4rem;
		border-radius: 3rem;
	}

	.school__voice-label {
		top: -1rem;
		left: 2.4rem;
	}

	.school__voice-image {
		margin-top: 0;
	}

	.school__voice-image img {
		width: 12rem;
		margin: 0 auto;
	}

	.school__voice-body {
		padding-top: 0;
		text-align: left;
	}

	.school__voice-head {
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 2.5rem;
	}

	.school__voice-heading {
		display: flex;
		flex-direction: column;
		justify-content: center;
		min-height: 12rem;
	}

	.school__voice-name {
		margin-top: 0.6rem;
		letter-spacing: 0.12em;
	}

	.school__voice-text {
		margin-top: 1.6rem;
		font-size: 1.4rem;
		line-height: 1.8;
		letter-spacing: 0.12em;
		text-align: left;
	}
}


/*--------------------------------------------------
**************************************************
  Price（養成スクール料金プラン）
**************************************************
--------------------------------------------------*/
.school_price {
	margin-top: 10rem;
	background: var(--color-white);
}

.school_price__inner {
	width: min(100%, 124.8rem);
	margin: 0 auto;
	padding-inline: 2.4rem;
}

.school_price__heading {
	text-align: center;
}

.school_price__title {
	margin: 1rem 0 0;
	font-size: 4.8rem;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	color: var(--color-heading);
}

.school_price__lead {
	margin: 4rem 0 0;
	font-size: 1.8rem;
	font-weight: 350;
	line-height: 1.6;
	letter-spacing: 0.167em;
	text-align: center;
	color: var(--color-heading);
}

.school_price__cards {
	position: relative;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 2rem;
	margin-top: 17.5rem;
}

.school_price__cards::before {
	content: "";
	position: absolute;
	top: -50rem;
	left: -30rem;
	width: 57rem;
	aspect-ratio: 570 / 375;
	background: url("../imgs/school_price_woman_01.png") no-repeat center / contain;
	pointer-events: none;
}

.school_price__card {
	position: relative;
	min-height: 48rem;
	padding: 4rem 0 5.3rem;
	border-radius: 3rem;
	background: var(--color-white);
	box-shadow: 0 0 15px 0 #9A9A9A40;
}

.school_price__badge {
	position: absolute;
	top: -9.8rem;
	left: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 13rem;
	height: 13rem;
	margin: 0;
	border-radius: 50%;
	background: linear-gradient(145.11deg, #8B00B9 7.83%, #FF0073 92.76%);
	transform: translateX(-50%);
	font-size: 1.4rem;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.214em;
	text-align: center;
	color: var(--color-white);
}

.school_price__course-title {
	margin: 0;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.15em;
	text-align: center;
	color: var(--color-heading);
}

.school_price__divider {
	width: 6rem;
	height: 0.2rem;
	margin: 1.4rem auto 0;
	background: #00B4B4;
}

.school_price__meta {
	width: 200px;
	margin: 2rem auto 0;
	padding: .8rem 0;
	border-radius: 3rem;
	background: #F4F4F4;
	text-align: center;
}

.school_price__meta-label {
	margin: 0;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.071em;
	color: var(--color-text);
}

.school_price__meta-text {
	display: inline-block;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.071em;
	color: var(--color-text);
}

.school_price__price {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	margin: 2rem 0 0;
	padding-left: 1rem;
}

.school_price__price-amount {
	font-size: 4.2rem;
	font-weight: 400;
	line-height: 1.2;
	color: var(--color-primary);
	white-space: nowrap;
}

.school_price__price-tax {
	margin-bottom: 0.6rem;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.2;
	color: var(--color-heading);
	white-space: nowrap;
}

.school_price__description {
	margin: 2.8rem 0 0;
	padding-inline: 2.8rem;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.214em;
	color: var(--color-text);
}

.school_price__notes {
	margin-top: 7rem;
	padding: 2rem 5rem;
	border-radius: 3rem;
	background: #F8F8F8;
}

.school_price__notes-title {
	margin: 0;
	font-size: 1.8rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.167em;
	color: var(--color-heading);
}

.school_price__notes-text {
	margin: 1.3rem 0 0;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 2;
	letter-spacing: 0.188em;
	color: var(--color-text);
}

.school_price__triangle {
	width: min(100%, 75rem);
	height: 8.2rem;
	margin: 4rem auto 0;
	background: linear-gradient(0deg, #FEFEE6 0.42%, #9FE0F0 90.16%);
	clip-path: polygon(50% 0, 100% 100%, 0 100%);
	transform: rotate(180deg);
}

.school_price_cta {
	display: grid;
	grid-template-columns: minmax(0, 56.7rem) minmax(0, 1fr);
	gap: 8rem 0;
	align-items: center;
	width: min(100%, 120rem);
	margin: 6rem auto 0;
	padding: 5rem 0 5.9rem 2.5rem;
	border-radius: 3rem;
	background: #F9F9F9;
}

.school_price_cta__visual {
	position: relative;
	left: -30px;
}

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

.school_price_cta__content {
	padding-right: .5rem;
}

.school_price_cta__label {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42.6rem;
	min-height: 4.1rem;
	margin: 0;
	padding: 0.6rem 2.4rem;
	border-radius: 999px;
	background: var(--color-primary);
	font-size: 1.8rem;
	font-weight: 400;
	line-height: 1.6;
	text-align: center;
	color: var(--color-white);
}

.school_price_cta__title {
	margin: 2rem 0 0;
	font-size: 3.6rem;
	font-weight: 700;
	line-height: 1.6;
	letter-spacing: 0.083em;
	color: var(--color-heading);
}

.school_price_cta__price {
	margin: 0.8rem 0 0;
	font-size: 6rem;
	font-weight: 500;
	line-height: 1.6;
	color: var(--color-primary);
}

.school_price_cta__summary {
	display: inline-block;
	margin: 0.5rem 0 0;
	padding: 1rem 2rem;
	border-radius: 3rem;
	background: var(--color-white);
	font-size: 1.8rem;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.167em;
	text-align: center;
	color: var(--color-heading);
}

.school_price_cta__list {
	display: grid;
	gap: 1.5rem;
	margin: 2rem 0 0;
	padding: 0;
	list-style: none;
}

.school_price_cta__item {
	position: relative;
	margin: 0;
	padding-left: 3.2rem;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.188em;
	color: var(--color-text);
}

.school_price_cta__item::before {
	content: "";
	position: absolute;
	top: 0.35rem;
	left: 0;
	width: 2rem;
	height: 2rem;
	background: url("../imgs/icon_check_1.svg") no-repeat center / 100% 100%;
}

.school_price_cta__buttons {
	grid-column: 1 / -1;
	display: flex;
	justify-content: center;
	gap: 5.4rem;
	padding-right: 2.5rem;
}

.school_price_cta__button {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: min(100%, 44rem);
	min-height: 9rem;
	padding: 1.6rem 6.4rem 1.6rem 3rem;
	border-radius: 6rem;
	background-size: 200% 100%;
	background-position: 0% 50%;
	font-size: 2.1rem;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.143em;
	text-align: center;
	color: var(--color-white);
	transition: background-position 0.3s ease, box-shadow 0.2s ease, opacity 0.2s ease;
	-webkit-tap-highlight-color: transparent;
}

.school_price_cta__button::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 2.9rem;
	width: 3.2rem;
	height: 3.2rem;
	border-radius: 50%;
	background: var(--color-white) url("../imgs/icon_arrow_2.svg") no-repeat center / 1.9rem auto;
	transform: translateY(-50%);
}

.school_price_cta__button--primary {
	background-image: linear-gradient(92.26deg, #8B00B9 0%, #FF0073 50%, #8B00B9 100%);
}

.school_price_cta__button--secondary {
	background-image: linear-gradient(92.26deg, #0093B4 0%, #00CFB7 50%, #0093B4 100%);
}

.school_price_cta__button:hover,
.school_price_cta__button:focus-visible,
.school_price_cta__button:active {
	color: var(--color-white);
	background-position: 100% 50%;
}



@media (max-width: 1300px) {
	.school_price__cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		padding-left: 14rem;
	}

	.school_price__cards::before {
		top: -11rem;
		left: -7rem;
		width: 36rem;
	}

	.school_price_cta {
		grid-template-columns: minmax(0, 48rem) minmax(0, 1fr);
		gap: 2.4rem 3.2rem;
		padding-right: 2.5rem;
	}

	.school_price_cta__content {
		padding-right: 0;
	}

	.school_price_cta__label {
		min-width: 100%;
	}

	.school_price_cta__buttons {
		gap: 2.4rem;
	}
}

@media (max-width: 1024px) {
	.school_price__title {
		line-height: 1.25;
	}

	.school_price__cards {
		gap: 7rem 2rem;
		margin-top: 8rem;
		padding-top: 7rem;
		padding-left: 0;
	}

	.school_price__cards::before {
		top: -22rem;
		left: 50%;
		width: min(100%, 34rem);
		transform: translateX(-50%);
	}

	.school_price__card {
		min-height: auto;
	}

	.school_price_cta {
		grid-template-columns: 1fr;
		gap: 3rem;
		padding: 4rem 2.4rem;
	}

	.school_price_cta__visual {
		max-width: 56.7rem;
		margin: 0 auto;
	}

	.school_price_cta__content {
		text-align: center;
	}

	.school_price_cta__summary {
		display: inline-block;
	}

	.school_price_cta__list {
		justify-items: start;
		width: fit-content;
		margin-inline: auto;
	}

	.school_price_cta__buttons {
		flex-direction: column;
		align-items: center;
		padding-right: 0;
	}
}

@media (max-width: 767px) {
	.school_price {
		margin-top: 4rem;
		padding-bottom: 6rem;
	}

	.school_price__inner {
		padding-inline: 1.6rem;
	}

	.school_price__title {
		margin-top: 1.6rem;
		font-size: 2.8rem;
		line-height: 1.4;
	}

	.school_price__lead {
		margin-top: 2.4rem;
		font-size: 1.5rem;
		line-height: 1.85;
		letter-spacing: 0.08em;
	}

	.school_price__cards {
		grid-template-columns: 1fr;
		gap: 10rem;
		margin-top: 3rem;
		padding-top: 16rem;
	}

	.school_price__cards::before {
		top: -3rem;
		left: -10rem;
		width: min(100%, 28rem);
		transform: none;
	}

	.school_price__card {
		padding: 4.8rem 2rem 2.4rem;
		border-radius: 2.8rem;
	}

	.school_price__badge {
		top: -6.5rem;
		width: 11rem;
		height: 11rem;
		font-size: 1.3rem;
		letter-spacing: 0.12em;
	}

	.school_price__course-title {
		font-size: 2.4rem;
		line-height: 1.45;
		letter-spacing: 0.08em;
	}

	.school_price__meta {
		margin-top: 3.6rem;
	}

	.school_price__meta-text {
		display: block;
	}

	.school_price__price {
		flex-wrap: wrap;
		gap: 0 0.4rem;
		margin-top: 1.8rem;
	}

	.school_price__price-amount {
		font-size: 3.8rem;
	}

	.school_price__price-tax {
		margin-bottom: 0.4rem;
	}

	.school_price__description {
		margin-top: 2.2rem;
		padding-inline: 0;
		font-size: 1.4rem;
		line-height: 1.8;
		letter-spacing: 0.08em;
	}

	.school_price__notes {
		margin-top: 4.8rem;
		padding: 2.8rem 2rem 3rem;
		border-radius: 2.4rem;
	}

	.school_price__notes-title {
		font-size: 1.7rem;
		letter-spacing: 0.08em;
	}

	.school_price__notes-text {
		font-size: 1.4rem;
		line-height: 1.9;
		letter-spacing: 0.08em;
	}

	.school_price__triangle {
		height: 5rem;
		margin-top: 2.4rem;
	}

	.school_price_cta {
		gap: 2.4rem;
		margin-top: 4rem;
		padding: 2.8rem 1.6rem 3rem;
		border-radius: 2.4rem;
	}

	.school_price_cta__visual {
		left: 0;
		width: 70%;
		margin: 1.5rem auto 0;
	}

	.school_price_cta__label {
		min-width: 0;
		width: 100%;
		min-height: 3.8rem;
		padding-inline: 1.6rem;
		font-size: 1.4rem;
		line-height: 1.5;
	}

	.school_price_cta__title {
		margin-top: 1.6rem;
		font-size: 2.2rem;
		line-height: 1.4;
		letter-spacing: 0.08em;
	}

	.school_price_cta__price {
		font-size: 5rem;
		line-height: 1.3;
	}

	.school_price_cta__summary {
		margin-top: 0.8rem;
		padding: 1.2rem 2rem 1.5rem;
		font-size: 1.4rem;
		line-height: 1.6;
		letter-spacing: 0.08em;
	}

	.school_price_cta__list {
		gap: 1.2rem;
		width: 100%;
	}

	.school_price_cta__item {
		padding-left: 2.8rem;
		font-size: 1.4rem;
		line-height: 1.8;
		letter-spacing: 0.08em;
		text-align: left;
	}

	.school_price_cta__item::before {
		top: 0.4rem;
		width: 1.8rem;
		height: 1.8rem;
	}

	.school_price_cta__button {
		width: 100%;
		min-height: 7.2rem;
		padding: 1.4rem 5.6rem 1.4rem 2.4rem;
		font-size: 1.8rem;
		line-height: 1.4;
		letter-spacing: 0.08em;
	}

	.school_price_cta__button::after {
		right: 2rem;
	}
}


/*--------------------------------------------------
**************************************************
  Studio
**************************************************
--------------------------------------------------*/
.studio {
	margin-top: 10rem;
}

.studio__inner {
	width: min(100%, 124.8rem);
	margin: 0 auto;
	padding-inline: 2.4rem;
}

.studio__heading {
	text-align: center;
}

.studio__label {
	display: inline-block;
	margin: 0;
	padding-left: 0.1rem;
	background: linear-gradient(96.1deg, var(--color-secondary-light) 4.2%, var(--color-primary-light) 100.23%);
	background-repeat: no-repeat;
	background-size: 100% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	font-family: var(--font-family-sirivennela);
	font-size: 6rem;
	font-weight: 400;
	line-height: 1;
	color: transparent;
}

.studio__title {
	margin: 0.7rem 0 0;
	font-size: 4.8rem;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	color: var(--color-heading);
}

.studio__lead {
	margin: 3rem 0 0;
	font-size: 2.4rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.125em;
	text-align: center;
	color: var(--color-heading);
}

.studio__hero {
	margin-top: 6rem;
	border-radius: 5rem;
	overflow: hidden;
}

.studio__hero img,
.studio__machine-visual img {
	display: block;
	width: 100%;
}

.studio__machines {
	display: flex;
	flex-wrap: wrap;
	gap: 5rem 4rem;
	margin-top: 6rem;
}

.studio__machine {
	width: calc((100% - 4rem) / 2);
	text-align: center;
}

.studio__machine-visual {
	border-radius: 4rem;
	overflow: hidden;
}

.studio__machine-title {
	margin: 3rem 0 0;
	font-size: 2.8rem;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0.22em;
	text-align: center;
	color: var(--color-heading);
}

.studio__machine-text {
	margin: 2rem 0 0;
	font-size: 1.8rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.167em;
	text-align: center;
	color: var(--color-heading);
}

.studio__access {
	margin-top: 6rem;
	text-align: center;
}

.studio__access-title {
	margin: 0;
	font-size: 2.8rem;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.18em;
	text-align: center;
	color: var(--color-heading);
}

.studio__access-text {
	margin: 3rem 0 0;
	font-size: 1.8rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.167em;
	text-align: center;
	color: var(--color-heading);
}

.studio__map-wrap {
	margin-top: 4rem;
}

.studio__map {
	width: 100%;
	margin: 0 auto;
	border: 2rem solid #B6CBCF;
	box-sizing: border-box;
	aspect-ratio: 1440 / 547;
}

.studio__map iframe {
	display: block;
	width: 100%;
	height: 100%;
}

.studio__inner--access-note {
	margin-top: 3rem;
}

.studio__access-note {
	margin: 0;
	font-size: 1.4rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.071em;
	text-align: left;
	color: var(--color-text);
}

/* SP */
@media (max-width: 767px) {
	.studio {
		margin-top: 0;
	}

	.studio__inner {
		padding-inline: 1.6rem;
	}

	.studio__label {
		font-size: 4.2rem;
	}

	.studio__title {
		margin-top: 1.6rem;
		font-size: 3.2rem;
		line-height: 1.4;
	}

	.studio__lead {
		margin-top: 1.8rem;
		font-size: 1.7rem;
		letter-spacing: 0.08em;
	}

	.studio__hero {
		margin-top: 3rem;
		border-radius: 2.8rem;
	}

	.studio__machines {
		flex-direction: column;
		gap: 3.6rem;
		margin-top: 5rem;
	}

	.studio__machine {
		width: 100%;
	}

	.studio__machine-visual {
		width: min(100%, 30.8rem);
		margin: 0 auto;
		border-radius: 2.8rem;
	}

	.studio__machine-title {
		margin-top: 1.6rem;
		font-size: 2rem;
		letter-spacing: 0.12em;
	}

	.studio__machine-text {
		margin-top: 0.8rem;
		font-size: 1.6rem;
		letter-spacing: 0.08em;
	}

	.studio__access {
		margin-top: 5rem;
	}

	.studio__access-title {
		font-size: 2.6rem;
		letter-spacing: 0.08em;
	}

	.studio__access-text {
		margin-top: 2rem;
		font-size: 1.6rem;
		letter-spacing: 0.08em;
	}

	.studio__map-wrap {
		margin-top: 3.2rem;
	}

	.studio__map {
		aspect-ratio: 4 / 3;
		border-width: 1rem;
	}

	.studio__inner--access-note {
		margin-top: 2rem;
	}

	.studio__access-note {
		font-size: 1.3rem;
		letter-spacing: 0.04em;
	}
}


/*--------------------------------------------------
**************************************************
  FAQ
**************************************************
--------------------------------------------------*/
.faq {
	margin-top: 10rem;
}

.faq__inner {
	width: min(100%, 120rem);
	margin: 0 auto;
	padding-inline: 2.4rem;
}

.faq__heading {
	text-align: center;
}

.faq__label {
	display: inline-block;
	margin: 0;
	background: linear-gradient(96.1deg, var(--color-secondary-light) 4.2%, var(--color-primary-light) 100.23%);
	background-repeat: no-repeat;
	background-size: 100% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	font-family: var(--font-family-sirivennela);
	font-size: 6rem;
	font-weight: 400;
	line-height: 1;
	color: transparent;
}

.faq__title {
	margin-top: 1.8rem;
	font-size: 4.8rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	text-align: center;
	color: var(--color-heading);
}

.faq__list {
	margin-top: 8rem;
	border-bottom: 1px solid #e6e6e6;
}

.faq__item {
	border-top: 1px solid #e6e6e6;
}

.faq__question {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	padding: 3.8rem 9rem 3.8rem 0;
	border: 0;
	background: transparent;
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.faq__question::before,
.faq__question::after {
	position: absolute;
	top: 50%;
	right: 0;
	content: "";
	transform: translateY(-50%);
}

.faq__question::before {
	width: 5rem;
	height: 5rem;
	border-radius: 50%;
	background:
		linear-gradient(#111, #111) center / 1.8rem 2px no-repeat,
		#e6e6e6;
}

.faq__question::after {
	width: 2px;
	height: 1.8rem;
	right: 2.4rem;
	background: #111;
	transform: translateY(-50%) scaleY(1);
	transform-origin: center;
	transition: transform 0.5s ease, opacity 0.5s ease;
}

.faq__question.is-open::after {
	opacity: 0;
	transform: translateY(-50%) scaleY(0);
}

.faq__question-text {
	display: block;
	font-size: 2.1rem;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.14em;
	color: var(--color-heading);
}

.faq__answer {
	display: none;
	padding: 0 9rem 3.2rem 0;
}

.faq__answer p {
	margin: 0;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.19em;
	color: var(--color-heading);
}

@media (max-width: 767px) {
	.faq {
		margin-top: 6rem;
		padding-bottom: 6rem;
	}

	.faq__inner {
		padding-inline: 1.6rem;
	}

	.faq__label {
		font-size: 4.2rem;
	}

	.faq__title {
		margin-top: 1.4rem;
		font-size: 3.2rem;
		line-height: 1.4;
	}

	.faq__list {
		margin-top: 4.2rem;
	}

	.faq__question {
		padding: 2.4rem 6.4rem 2.4rem 0;
	}

	.faq__question::before {
		width: 4rem;
		height: 4rem;
	}

	.faq__question::after {
		width: 2px;
		height: 1.8rem;
		right: 1.9rem;
	}

	.faq__question-text {
		font-size: 1.8rem;
		letter-spacing: 0.1em;
	}

	.faq__answer {
		padding: 0 0 2.4rem;
	}

	.faq__answer p {
		font-size: 1.5rem;
		letter-spacing: 0.12em;
	}
}


/*--------------------------------------------------
**************************************************
  Reserve
**************************************************
--------------------------------------------------*/
.reserve {
	width: 100%;
	margin-top: 10rem;
	padding: 8rem 0;
	background: #F9F9F9;
}

.reserve_inner {
	width: min(100%, 120rem);
	margin: 0 auto;
	padding: 0 2.4rem;
}

.reserve__heading {
	text-align: center;
}

.reserve__label {
	display: inline-block;
	margin: 0;
	background: linear-gradient(96.1deg, var(--color-secondary-light) 4.2%, var(--color-primary-light) 100.23%);
	background-repeat: no-repeat;
	background-size: 100% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	font-family: var(--font-family-sirivennela);
	font-size: 6rem;
	font-weight: 400;
	line-height: 1;
	color: transparent;
}

.reserve__title {
	margin: 1.6rem 0 0;
	font-size: 4.8rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	text-align: center;
	color: var(--color-heading);
}

.reserve__lead {
	margin: 3.1rem 0 0;
	font-size: 2.4rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.125em;
	text-align: center;
	color: var(--color-heading);
}

.reserve__body {
	margin-top: 5.9rem;
	padding: 4.4rem 8rem 7rem;
	background: var(--color-white);
	border-radius: 5rem;
}

.reserve__intro {
	margin: 0;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 1.75;
	letter-spacing: 0.0625em;
	text-align: center;
	color: var(--color-heading);
}

.reserve #main_form {
	margin-top: 5.4rem;
}

.error {
	margin-top: 2rem;
	font-size: 1.4rem;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.05em;
	color: #C94A57;
}

#ui-datepicker-div {
	width: 32.6rem;
	max-width: calc(100vw - 3.2rem);
	padding: 0.4rem;
	border: 1px solid #d9d4df;
	border-radius: 0.4rem;
	background: var(--color-white);
	box-shadow: 0 0.4rem 1.6rem rgba(59, 31, 58, 0.12);
	font-family: "Noto Sans JP", sans-serif;
}

#ui-datepicker-div.ui-widget-content {
	border-color: #d9d4df;
	background: var(--color-white);
	background-image: none;
	color: #222;
}

#ui-datepicker-div .ui-datepicker-header {
	padding: 1rem 0;
	border: 0;
	border-radius: 0.2rem;
	background: #d39ac4;
	background-image: none;
	color: var(--color-white);
}

#ui-datepicker-div .ui-datepicker-title {
	margin: 0 3.2rem;
	font-size: 1.8rem;
	font-weight: 700;
	line-height: 1.4;
}

#ui-datepicker-div .ui-datepicker-prev,
#ui-datepicker-div .ui-datepicker-next {
	top: 50%;
	width: 1.8rem;
	height: 1.8rem;
	border: 0;
	border-radius: 0.2rem;
	background: var(--color-white);
	transform: translateY(-50%);
}

#ui-datepicker-div .ui-datepicker-prev {
	left: 0.8rem;
}

#ui-datepicker-div .ui-datepicker-next {
	right: 0.8rem;
}

#ui-datepicker-div .ui-datepicker-prev-hover,
#ui-datepicker-div .ui-datepicker-next-hover {
	top: 50%;
	border: 0;
	background: #fff3f9;
}

#ui-datepicker-div .ui-datepicker-prev-hover {
	left: 0.8rem;
}

#ui-datepicker-div .ui-datepicker-next-hover {
	right: 0.8rem;
}

#ui-datepicker-div .ui-datepicker-prev .ui-icon,
#ui-datepicker-div .ui-datepicker-next .ui-icon {
	display: none;
}

#ui-datepicker-div .ui-datepicker-prev::before,
#ui-datepicker-div .ui-datepicker-next::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 0;
	height: 0;
	transform: translate(-50%, -50%);
}

#ui-datepicker-div .ui-datepicker-prev::before {
	border-top: 0.5rem solid transparent;
	border-right: 0.7rem solid #d39ac4;
	border-bottom: 0.5rem solid transparent;
	margin-left: -0.1rem;
}

#ui-datepicker-div .ui-datepicker-next::before {
	border-top: 0.5rem solid transparent;
	border-left: 0.7rem solid #d39ac4;
	border-bottom: 0.5rem solid transparent;
	margin-left: 0.1rem;
}

#ui-datepicker-div table {
	margin: 1rem 0 0.4rem;
}

#ui-datepicker-div th {
	padding: 1rem 0.2rem;
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--color-heading);
}

#ui-datepicker-div td {
	padding: 1px;
}

#ui-datepicker-div td span,
#ui-datepicker-div td a {
	padding: 1.1rem 0.7rem;
	border: 1px solid #cfcfcf;
	background: var(--color-white);
	background-image: none;
	font-size: 1.2rem;
	font-weight: 400;
	line-height: 1;
	text-align: right;
	color: var(--color-text);
}

#ui-datepicker-div .ui-state-default,
#ui-datepicker-div .ui-widget-content .ui-state-default {
	border: 1px solid #cfcfcf;
	background: var(--color-white);
	background-image: none;
	font-weight: 400;
	color: var(--color-text);
}

#ui-datepicker-div .ui-state-hover,
#ui-datepicker-div .ui-widget-content .ui-state-hover,
#ui-datepicker-div .ui-state-focus,
#ui-datepicker-div .ui-widget-content .ui-state-focus {
	border: 1px solid #e3b2d5;
	background: #fff3f9;
	background-image: none;
	color: var(--color-text);
}

#ui-datepicker-div .ui-state-highlight,
#ui-datepicker-div .ui-widget-content .ui-state-highlight {
	border: 1px solid #e4d86a;
	background: #fff58a;
	background-image: none;
	color: var(--color-text);
}

#ui-datepicker-div .ui-state-active,
#ui-datepicker-div .ui-widget-content .ui-state-active {
	border: 1px solid #d39ac4;
	background: #f8d7ee;
	background-image: none;
	color: var(--color-text);
}

.reserve__field-group + .reserve__field-group {
	margin-top: 4.8rem;
}

.reserve__field-head {
	display: flex;
	align-items: center;
	gap: 1.9rem;
}

.reserve__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 6.7rem;
	padding: 0.8rem 2rem;
	border-radius: 3rem;
	font-size: 1.4rem;
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0.071em;
	text-align: center;
	color: var(--color-white);
}

.reserve__badge--required {
	background: var(--color-primary);
}

.reserve__badge--optional {
	background: #0193B4;
}

.reserve__field-label {
	font-size: 2.1rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.143em;
	color: var(--color-heading);
}

.reserve__field {
	margin-top: 2rem;
}

.reserve__field--datetime {
	display: flex;
	gap: 2.4rem;
}

.reserve__field--datetime > * {
	flex: 1 1 0;
}

.reserve__input,
.reserve__select,
.reserve__textarea {
	width: 100%;
	border: 0;
	background: #F8F8F8;
	color: var(--color-heading);
}

.reserve__input,
.reserve__select {
	height: 7.2rem;
	padding: 0 3.2rem;
	border-radius: 1.8rem;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 1.6;
	letter-spacing: 0.08em;
}

.reserve__input::placeholder,
.reserve__textarea::placeholder {
	color: #B7B7B7;
}

.reserve__input--date {
	cursor: pointer;
}

.reserve__select-wrap {
	position: relative;
}

.reserve__select {
	appearance: none;
	padding-right: 6.4rem;
	color: #B7B7B7;
}

.reserve__select-wrap::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 3.2rem;
	width: 1rem;
	height: 1rem;
	border-right: 2px solid var(--color-heading);
	border-bottom: 2px solid var(--color-heading);
	transform: translateY(-65%) rotate(45deg);
	pointer-events: none;
}

.reserve__select:valid {
	color: var(--color-heading);
}

.reserve__field--tel {
	display: flex;
	align-items: center;
	gap: 1rem;
}

.reserve__input--tel {
	flex: 1 1 0;
	text-align: center;
}

.reserve__tel-separator {
	flex: 0 0 auto;
	font-size: 3rem;
	line-height: 1;
	color: var(--color-heading);
}

.reserve__textarea {
	min-height: 23.2rem;
	padding: 2.4rem 3.2rem;
	border-radius: 1.8rem;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 1.8;
	letter-spacing: 0.08em;
	resize: vertical;
}

.reserve__privacy {
	margin: 4.3rem 0 0;
	font-size: 1.6rem;
	font-weight: 400;
	line-height: 1.8;
	letter-spacing: 0.0625em;
	text-align: center;
	color: var(--color-heading);
}

.reserve__privacy a {
	color: var(--color-primary);
	text-decoration: none;
}

.reserve__privacy a:hover {
	text-decoration: underline;
}

.reserve__submit {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: min(100%, 77rem);
	min-height: 8rem;
	margin: 4rem auto 0;
	padding: 1.2rem 0;
	border: 0;
	border-radius: 6rem;
	background-image: linear-gradient(92.26deg, #8B00B9 0%, #FF0073 50%, #8B00B9 100%);
	background-size: 200% 100%;
	background-position: 0% 50%;
	cursor: pointer;
	transition: background-position 0.3s ease, box-shadow 0.2s ease, opacity 0.2s ease;
	-webkit-tap-highlight-color: transparent;
}

.reserve__submit:hover {
	opacity: 1;
}

.reserve__submit:hover,
.reserve__submit:focus-visible,
.reserve__submit:active {
	background-position: 100% 50%;
}

.reserve__submit:disabled {
	cursor: default;
	opacity: 0.7;
	transform: none;
}

.reserve__submit-text {
	font-size: 2.6rem;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.038em;
	text-align: center;
	color: var(--color-white);
}

.reserve__submit-icon {
	position: relative;
	display: inline-block;
	position: absolute;
	top: 50%;
	right: 4.6rem;
	flex: 0 0 auto;
	width: 3.2rem;
	height: 3.2rem;
	border-radius: 50%;
	background: var(--color-white);
	transform: translateY(-50%);
}

.reserve__submit-icon::before {
	content: "";
	position: absolute;
	inset: 0;
	background: url("../imgs/icon_arrow_2.svg") center / 1.4rem 1.4rem no-repeat;
}

@media (max-width: 1024px) {
	.reserve {
		padding-bottom: 8rem;
	}

	.reserve__body {
		padding: 4rem 4rem 6rem;
	}
}

/* SP */
@media (max-width: 767px) {
	#ui-datepicker-div {
		width: min(32.6rem, calc(100vw - 3.2rem));
	}

	.reserve {
		margin-top: 0;
		padding-block: 4rem 6rem;
	}

	.reserve_inner {
		padding: 0 1.6rem;
	}

	.reserve__label {
		font-size: 4.2rem;
	}

	.reserve__title {
		margin-top: 1.6rem;
		font-size: 3.2rem;
		line-height: 1.3;
	}

	.reserve__lead {
		margin-top: 1.8rem;
		font-size: 1.55rem;
		letter-spacing: 0.02em;
	}

	.reserve__body {
		margin-top: 4rem;
		padding: 3.2rem 2rem 4.8rem;
		border-radius: 3rem;
	}

	.reserve__intro {
		font-size: 1.55rem;
	}

	.reserve #main_form {
		margin-top: 4rem;
	}

	.reserve__field-group + .reserve__field-group {
		margin-top: 3.6rem;
	}

	.reserve__field-head {
		align-items: center;
		gap: 1.2rem;
	}

	.reserve__badge {
		padding: 0.5rem 1.8rem;
		line-height: 1.4;
	}

	.reserve__field-label {
		font-size: 1.8rem;
		line-height: 1.4;
		letter-spacing: 0.08em;
	}

	.reserve__field {
		margin-top: 1.6rem;
	}

	.reserve__field--datetime {
		flex-direction: column;
		align-items: stretch;
		gap: 2.4rem;
	}

	.reserve__field--tel {
		flex-direction: row;
		align-items: center;
		gap: 0.6rem;
	}

	.reserve__input,
	.reserve__select {
		height: 6.4rem;
		padding: 0 2rem;
		font-size: 1.5rem;
	}

	.reserve__input.reserve__input--date {
		height: 6.4rem !important;
		min-height: 6.4rem;
		padding: 0 2rem;
		line-height: 6.4rem;
		box-sizing: border-box;
		appearance: none;
		-webkit-appearance: none;
	}

	.reserve__select {
		padding-right: 5rem;
	}

	.reserve__select-wrap::after {
		right: 2.2rem;
	}

	.reserve__input--tel {
		min-width: 0;
		padding-inline: 0.8rem;
		text-align: center;
	}

	.reserve__tel-separator {
		display: block;
		font-size: 2.2rem;
	}

	.reserve__textarea {
		min-height: 18rem;
		padding: 2rem;
		font-size: 1.5rem;
	}

	.reserve__privacy {
		margin-top: 3.2rem;
		font-size: 1.4rem;
		line-height: 1.7;
	}

	.reserve__submit {
		min-height: 7rem;
		margin-top: 3.2rem;
		padding: 1.2rem 4.8rem 1.2rem 1.8rem;
	}

	.reserve__submit-text {
		font-size: 1.55rem;
		line-height: 1.2;
		letter-spacing: 0.02em;
	}

	.reserve__submit-icon {
		right: 2rem;
	}
}


/*--------------------------------------------------
**************************************************
  Company
**************************************************
--------------------------------------------------*/
.company {
	width: 100%;
	margin-top: 10rem;
}

.company_inner {
	width: min(100%, 120rem);
	margin: 0 auto;
	padding: 0 2.4rem;
}

.company__heading {
	text-align: center;
}

.company__label {
	display: inline-block;
	margin: 0;
	background: linear-gradient(96.1deg, var(--color-secondary-light) 4.2%, var(--color-primary-light) 100.23%);
	background-repeat: no-repeat;
	background-size: 100% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	font-family: var(--font-family-sirivennela);
	font-size: 6rem;
	font-weight: 400;
	line-height: 1;
	color: transparent;
}

.company__title {
	margin: 1.6rem 0 0;
	font-size: 4.8rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
	text-align: center;
	color: var(--color-heading);
}

.company__inner,
.company_inner {
	width: min(100%, 120rem);
	margin: 0 auto;
	padding: 0 2.4rem;
}

.company__info {
	margin-top: 6rem;
}

.company__info-row {
	display: flex;
	align-items: stretch;
}

.company__info-heading,
.company__info-detail {
	margin: 0;
	font-size: 16px;
	font-weight: 350;
	font-style: normal;
	line-height: 160%;
	letter-spacing: 5px;
	color: var(--color-heading);
}

.company__info-heading {
	flex: 0 0 25%;
	padding-block: 2rem;
	border-bottom: 1px solid var(--color-text);
	text-align: center;
}

.company__info-detail {
	flex: 0 0 75%;
	padding: 2rem 6.5rem;
	border-bottom: 1px solid #AEAEAE;
	text-align: left;
}

.company__info-detail p {
	margin: 0;
}

.company__info-detail p + p {
	margin-top: 0.4rem;
}

@media (max-width: 767px) {
	.company {
		margin-top: 5rem;
	}

	.company__label {
		font-size: 4.8rem;
	}

	.company__title {
		margin-top: 1.2rem;
		font-size: 3.6rem;
		line-height: 1.2;
	}

	.company__info {
		margin-top: 2rem;
	}

	.company__info-row {
		display: block;
		padding: 1.6rem 0;
		border-bottom: 1px solid #AEAEAE;
	}

	.company__info-heading {
		padding: 0;
		border-bottom: 0;
		font-size: 1.5rem;
		letter-spacing: 0.12em;
		text-align: left;
	}

	.company__info-detail {
		padding: 0.8rem 0 0;
		border-bottom: 0;
		font-size: 1.4rem;
		line-height: 1.8;
		letter-spacing: 0.08em;
		word-break: break-word;
		overflow-wrap: anywhere;
	}

	.company__info-detail p + p {
		margin-top: 0.6rem;
	}

	footer {
		margin-top: 4.8rem;
		padding-bottom: 4rem;
	}

	.footer__copyright {
		font-size: 1.2rem;
		letter-spacing: 0.08em;
	}
}



/*--------------------------------------------------
**************************************************
  フッター
**************************************************
--------------------------------------------------*/
footer {
	margin-top: 6rem;
	padding-bottom: 5rem;
}

@media (max-width: 767px) {
	footer {
		padding-bottom: 12rem;
	}
}

.footer__copyright {
	margin: 0;
	font-size: 12px;
	font-weight: 300;
	font-style: normal;
	line-height: 160%;
	letter-spacing: 1px;
	text-align: center;
	color: var(--color-heading);
}


/*--------------------------------------------------
**************************************************
  その他
**************************************************
--------------------------------------------------*/
/* スマホ LINEで予約する */
@media (max-width: 767px) {
	.sp_fixed_bottom_box {
		position: fixed;
		left: 50%;
		/*bottom: 1.5rem;*/
		bottom: 0rem;
		z-index: 100;
		/*width: 90%;*/
		width: 100%;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition: opacity 0.3s ease, visibility 0.3s ease;
		transform: translateX(-50%);
	}

	.sp_fixed_bottom_box.is-visible {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}

	.sp_fixed_bottom_box__link {
		display: flex;
		width: 100%;
		min-height: 5.5rem;
		padding: 1.2rem 2.4rem;
		border-radius: 0px !important; 
	}
}


/* スパム対策用 */
/*
#company_website {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
}
*/
