@charset "UTF-8";

/* ========================================
   PURPOSE PAGE
======================================== */

:root {
	--purpose-navy: #073f47;
	--purpose-deep: #052f36;
	--purpose-aqua: #28c9c5;
	--purpose-aqua-dark: #119a9b;

	/* 西海岸感 */
	--purpose-sand: #f4e7cf;
	--purpose-sun: #efb65f;

	--purpose-mist: #effafa;
	--purpose-white: #ffffff;
}

.purpose-page {
	overflow: hidden;
	color: var(--purpose-navy);
	background: #fff;
}

.purpose-container {
	width: min(1180px, calc(100% - 48px));
	margin-inline: auto;
}

.purpose-kicker {
	margin: 0 0 15px;
	color: var(--purpose-aqua-dark);
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .24em;
}

.purpose-heading {
	margin: 0;
	font-size: clamp(40px, 5vw, 68px);
	font-weight: 900;
	line-height: 1.2;
	letter-spacing: -.04em;
}

.purpose-lead {
	max-width: 700px;
	margin-top: 25px;
	color: #687b80;
	font-size: 16px;
	line-height: 2;
}


/* ========================================
   HERO
======================================== */

.purpose-hero {
	position: relative;
	min-height: 720px;
	display: flex;
	align-items: center;
	overflow: hidden;

	background:
		radial-gradient(circle at 90% 10%,
			rgba(239, 182, 95, .28),
			transparent 30%),
		linear-gradient(120deg,
			#063d45 0%,
			#074d54 60%,
			#0b6165 100%);

	color: #fff;
}

.purpose-hero__inner {
	position: relative;
	z-index: 2;
}

.purpose-hero .purpose-kicker {
	color: var(--purpose-aqua);
}

.purpose-hero h1 {
	margin: 0;
	font-size: clamp(54px, 7vw, 96px);
	font-weight: 900;
	line-height: 1.08;
	letter-spacing: -.06em;
}

.purpose-hero h1 em {
	color: var(--purpose-aqua);
	font-style: normal;
}

.purpose-hero__lead {
	max-width: 760px;
	margin-top: 35px;
	color: rgba(255, 255, 255, .75);
	font-size: 17px;
	line-height: 2;
}

.purpose-scroll {
	display: inline-flex;
	align-items: center;
	gap: 20px;
	margin-top: 45px;

	color: #fff;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .18em;
	text-decoration: none;
}

.purpose-scroll span {
	color: var(--purpose-aqua);
	font-size: 24px;
}


/* 大きな背景サメ */

.purpose-hero__shark {
	position: absolute;

	width: 800px;
	height: 480px;

	right: -150px;
	bottom: -50px;

	background:
		url("./img/shark-heading-icon.png") no-repeat center / contain;

	opacity: .08;
}


/* ========================================
   PURPOSE SELECT
======================================== */

.purpose-select {
	position: relative;
	padding: 120px 0;

	background:
		radial-gradient(circle at 95% 0,
			rgba(239, 182, 95, .20),
			transparent 25%),
		#f4fbfb;
}

.purpose-select__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin-top: 55px;
}

.purpose-select-card {
	position: relative;

	min-height: 190px;

	display: flex;
	flex-direction: column;
	justify-content: center;

	padding: 28px;

	color: var(--purpose-navy);
	text-decoration: none;

	border: 1px solid rgba(17, 154, 155, .17);
	background: rgba(255, 255, 255, .88);

	transition:
		transform .35s ease,
		background .35s ease,
		box-shadow .35s ease;
}

.purpose-select-card:hover {
	transform: translateY(-9px);
	background: #fff;

	box-shadow:
		0 25px 60px rgba(7, 63, 71, .12);
}

.purpose-select-card>span {
	position: absolute;
	right: 20px;
	bottom: 2px;

	color: rgba(7, 63, 71, .06);
	font-size: 70px;
	font-weight: 900;
	font-style: italic;
}

.purpose-select-card strong {
	font-size: 21px;
}

.purpose-select-card small {
	margin-top: 7px;
	color: var(--purpose-aqua-dark);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .17em;
}

.purpose-select-card i {
	position: absolute;
	right: 24px;
	top: 24px;

	color: var(--purpose-aqua);
	font-style: normal;
}


/* ========================================
   MENU 共通
======================================== */

.purpose-menu {
	position: relative;
	padding: 130px 0;
}

.purpose-menu__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 90px;
	align-items: center;
}

.purpose-menu--reverse .purpose-photo {
	order: 2;
}

.purpose-menu--reverse .purpose-menu__content {
	order: 1;
}


/* 写真準備中 */

.purpose-photo {
	position: relative;

	min-height: 570px;

	display: grid;
	place-items: center;

	overflow: hidden;

	border-radius:
		85px 4px 85px 4px;

	background:
		linear-gradient(145deg,
			#edfafa,
			#d8f3f1);

	box-shadow:
		22px 22px 0 rgba(37, 200, 196, .10);
}

.purpose-photo__coming {
	text-align: center;
}

.purpose-photo__coming span {
	display: block;
	color: var(--purpose-aqua-dark);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .22em;
}

.purpose-photo__coming strong {
	display: block;
	margin-top: 10px;

	color: var(--purpose-navy);
	font-size: 21px;
	letter-spacing: .14em;
}

.purpose-photo__coming small {
	display: block;
	margin-top: 10px;

	color: #718489;
}


/* テキスト */

.purpose-menu__number {
	margin: 0;

	color: rgba(17, 154, 155, .17);

	font-size: 80px;
	font-weight: 900;
	font-style: italic;
	line-height: 1;
}

.purpose-menu__en {
	margin: -12px 0 20px;

	color: var(--purpose-aqua-dark);

	font-size: 12px;
	font-weight: 800;
	letter-spacing: .22em;
}

.purpose-menu__content h2 {
	margin: 0;

	color: var(--purpose-navy);

	font-size: clamp(40px, 4.4vw, 66px);
	font-weight: 900;
	line-height: 1.22;
	letter-spacing: -.045em;
}

.purpose-menu__content h2 em {
	color: var(--purpose-aqua-dark);
	font-style: normal;
}

.purpose-menu__content>p:not(.purpose-menu__number):not(.purpose-menu__en) {
	margin-top: 30px;

	color: #617479;

	font-size: 16px;
	line-height: 2;
}


/* タグ */

.purpose-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;

	margin-top: 30px;
}

.purpose-tags span {
	padding: 10px 16px;

	color: var(--purpose-navy);

	border-radius: 999px;

	background: #e5f7f6;

	font-size: 12px;
	font-weight: 700;
}


/* ========================================
   西海岸系背景
======================================== */

.purpose-menu--sand {
	background:
		radial-gradient(circle at 5% 0,
			rgba(239, 182, 95, .26),
			transparent 32%),
		#fffaf2;
}

.purpose-menu--kids {
	background:
		radial-gradient(circle at 90% 15%,
			rgba(239, 182, 95, .25),
			transparent 26%),
		#f4fbfa;
}

.purpose-menu--health {
	background:
		linear-gradient(120deg,
			#edf9f8,
			#ffffff);
}


/* ========================================
   BOXING / KICKBOXING
======================================== */

.purpose-menu--dark {
	overflow: hidden;

	color: #fff;

	background:
		linear-gradient(135deg,
			#04363e,
			#062b32);
}

.purpose-menu--dark .purpose-menu__content h2 {
	color: #fff;
}

.purpose-menu--dark .purpose-menu__content>p {
	color: rgba(255, 255, 255, .68);
}

.purpose-menu--dark .purpose-tags span {
	color: #fff;

	border: 1px solid rgba(37, 200, 196, .32);

	background: rgba(37, 200, 196, .08);
}

.purpose-menu--dark .purpose-photo {
	border: 1px solid rgba(37, 200, 196, .20);

	background:
		linear-gradient(145deg,
			#06434b,
			#052f35);

	box-shadow:
		22px 22px 0 rgba(37, 200, 196, .07);
}

.purpose-menu--dark .purpose-photo__coming strong {
	color: #fff;
}

.purpose-menu--dark .purpose-photo__coming small {
	color: rgba(255, 255, 255, .55);
}


/* ========================================
   KIDS 親向け
======================================== */

.purpose-parent-note {
	padding: 20px 24px;

	border-left: 4px solid var(--purpose-sun);

	background: #fff;

	color: var(--purpose-navy) !important;

	font-weight: 700;
}


/* ========================================
   ONE GYM MESSAGE
   写真背景
======================================== */

.purpose-message {
	position: relative;
	overflow: hidden;

	min-height: 820px;
	padding: 150px 0;

	display: flex;
	align-items: center;

	text-align: center;
	color: #fff;

	background:
		linear-gradient(rgba(3, 48, 56, .80),
			rgba(3, 67, 74, .86)),
		url("../img/service-img5.jpg") center center / 100% auto no-repeat;

	background-color: #063f47;
}

.purpose-message::before {
	content: "";
	position: absolute;

	top: 0;
	left: 0;

	width: 100%;
	height: 6px;

	background: var(--purpose-aqua);

	z-index: 2;
}

.purpose-message .purpose-container {
	position: relative;
	z-index: 3;
}

.purpose-message h2 {
	margin: 0;

	font-size: clamp(43px, 5vw, 74px);
	font-weight: 900;
	line-height: 1.25;
}

.purpose-message h2 em {
	color: var(--purpose-aqua);
	font-style: normal;
}

.purpose-message p:last-child {
	margin-top: 30px;

	color: rgba(255, 255, 255, .7);

	line-height: 2;
}


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

.purpose-faq {
	padding: 120px 0;

	background:
		#f2fbfa;
}

.purpose-faq__list {
	max-width: 900px;
	margin-top: 50px;
}

.purpose-faq__item {
	border-bottom:
		1px solid rgba(7, 63, 71, .14);
}

.purpose-faq__item summary {
	display: flex;
	justify-content: space-between;
	align-items: center;

	padding: 25px 0;

	color: var(--purpose-navy);

	font-size: 17px;
	font-weight: 700;

	cursor: pointer;

	list-style: none;
}

.purpose-faq__item summary span {
	color: var(--purpose-aqua);
	font-size: 28px;
}

.purpose-faq__item p {
	padding: 0 0 30px;

	color: #687b80;

	line-height: 1.9;
}


/* ========================================
   FINAL CTA
======================================== */

.purpose-final {
	position: relative;
	overflow: hidden;

	padding: 130px 0;

	text-align: center;

	color: #fff;

	background:
		#052f36;
}

.purpose-final {
	position: relative;
	overflow: hidden;

	padding: 130px 0;

	text-align: center;
	color: #fff;

	background:
		linear-gradient(rgba(3, 48, 56, .78),
			rgba(3, 48, 56, .90)),
		url("../img/top-service-img2.jpg") center center / cover no-repeat;
}

.purpose-final .purpose-kicker {
	color: var(--purpose-aqua);
}

.purpose-final h2 {
	margin: 0;

	font-size: clamp(40px, 5vw, 66px);
	font-weight: 900;
	line-height: 1.28;
}

.purpose-final p {
	margin-top: 25px;

	color: rgba(255, 255, 255, .68);

	line-height: 1.9;
}

.purpose-buttons {
	display: flex;
	justify-content: center;
	gap: 14px;

	margin-top: 40px;
}

.purpose-btn {
	min-width: 260px;

	display: inline-flex;
	justify-content: space-between;
	align-items: center;

	padding: 20px 25px;

	text-decoration: none;

	border-radius: 999px;

	font-weight: 800;
}

.purpose-btn--primary {
	color: var(--purpose-navy);

	background:
		var(--purpose-aqua);
}

.purpose-btn--outline {
	color: #fff;

	border:
		1px solid rgba(255, 255, 255, .45);
}


/* ========================================
   SP
======================================== */

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

	.purpose-container {
		width:
			calc(100% - 30px);
	}

	.purpose-hero {
		min-height: 680px;
	}

	.purpose-hero h1 {
		font-size:
			clamp(44px, 13vw, 62px);
	}

	.purpose-hero__shark {
		width: 450px;
		right: -230px;
		opacity: .06;
	}

	.purpose-select {
		padding: 80px 0;
	}

	.purpose-select__grid {
		grid-template-columns:
			repeat(2, 1fr);
		gap: 10px;
	}

	.purpose-select-card {
		min-height: 145px;
		padding: 20px 15px;
	}

	.purpose-select-card strong {
		font-size: 16px;
	}

	.purpose-menu {
		padding: 85px 0;
	}

	.purpose-menu__grid {
		grid-template-columns: 1fr;
		gap: 55px;
	}

	.purpose-menu--reverse .purpose-photo,
	.purpose-menu--reverse .purpose-menu__content {
		order: initial;
	}

	.purpose-photo {
		min-height: 390px;

		border-radius:
			55px 4px 55px 4px;
	}

	.purpose-menu__number {
		font-size: 60px;
	}

	.purpose-menu__content h2 {
		font-size:
			clamp(37px, 11vw, 50px);
	}

	.purpose-message {
		padding: 95px 0;
	}

	.purpose-faq {
		padding: 85px 0;
	}

	.purpose-final {
		padding: 95px 0;
	}

	.purpose-buttons {
		flex-direction: column;
	}

	.purpose-btn {
		width: 100%;
	}

}

.purpose-hero {
	position: relative;
	min-height: 650px;
	display: flex;
	align-items: center;
	overflow: hidden;

	background:
		linear-gradient(90deg,
			rgba(3, 43, 51, 0.92) 0%,
			rgba(3, 43, 51, 0.78) 42%,
			rgba(3, 43, 51, 0.45) 68%,
			rgba(3, 43, 51, 0.18) 100%),
		url("../img/purose-01.png") 58% center / cover no-repeat;

	color: #fff;
}

/* ========================================
   PURPOSE PAGE
   旧下層タイトルを非表示
======================================== */

.purpose-page-title {
	display: none;
}

/* ========================================
   PURPOSE MENU 詳細情報
======================================== */

.purpose-detail {
	margin-top: 38px;
}

/* 各説明ボックス */
.purpose-detail__block {
	padding: 24px 26px;
	margin-top: 14px;

	border: 1px solid rgba(17, 154, 155, .14);
	background: rgba(255, 255, 255, .82);

	border-radius: 4px 28px 4px 28px;

	box-shadow:
		0 12px 35px rgba(7, 63, 71, .05);
}

/* SHARK STYLE GYMでできること */
.purpose-detail__block--accent {
	border-left: 4px solid var(--purpose-aqua);
	background: #f1fbfa;
}

/* 英字ラベル */
.purpose-detail__label {
	margin: 0 0 8px !important;

	color: var(--purpose-aqua-dark) !important;

	font-size: 10px !important;
	font-weight: 800;
	letter-spacing: .18em;
	line-height: 1.4 !important;
}

/* 小見出し */
.purpose-detail__block h3 {
	margin: 0 0 12px;

	color: var(--purpose-navy);

	font-size: 18px;
	font-weight: 800;
	line-height: 1.5;
}

/* 本文 */
.purpose-detail__block p {
	margin: 0 !important;

	color: #617479 !important;

	font-size: 14px !important;
	line-height: 1.9 !important;
}

/* チェックリスト */
.purpose-checks {
	margin: 0;
	padding: 0;

	list-style: none;
}

.purpose-checks li {
	position: relative;

	padding: 6px 0 6px 26px;

	color: #617479;

	font-size: 14px;
	line-height: 1.7;
}

.purpose-checks li::before {
	content: "✓";

	position: absolute;
	left: 0;
	top: 6px;

	color: var(--purpose-aqua-dark);

	font-weight: 900;
}

/* 下部のトレーニング内容 */
.purpose-training {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;

	margin-top: 18px;
}

.purpose-training span {
	padding: 9px 14px;

	color: #fff;
	background: var(--purpose-navy);

	border-radius: 999px;

	font-size: 11px;
	font-weight: 700;
	letter-spacing: .03em;
}

/* ========================================
   BODYMAKE
======================================== */

#bodymake .purpose-detail__block--accent {
	background:
		linear-gradient(135deg,
			rgba(229, 247, 246, .95),
			rgba(255, 255, 255, .95));

	border-left: 4px solid var(--purpose-aqua-dark);
}

#bodymake .purpose-training span {
	background: var(--purpose-navy);

	transition:
		transform .25s ease,
		background .25s ease;
}

#bodymake .purpose-training span:hover {
	transform: translateY(-3px);
	background: var(--purpose-aqua-dark);
}

/* ========================================
   KIDS
======================================== */

#kids .purpose-parent-note {
	position: relative;

	margin-top: 20px;

	/* 少しコンパクトに */
	padding: 16px 20px 16px 22px;

	border-left: 4px solid var(--purpose-sun);

	background:
		linear-gradient(135deg,
			rgba(255, 255, 255, .96),
			rgba(255, 248, 237, .96));

	box-shadow:
		0 10px 28px rgba(7, 63, 71, .05);
}

#kids .purpose-parent-note::before {
	content: "FOR PARENTS";

	display: block;

	margin-bottom: 8px;

	color: var(--purpose-sun);

	font-size: 10px;
	font-weight: 900;
	letter-spacing: .18em;
}

/* キックボクシング見出しを2行に固定 */
.purpose-title--kick span {
	display: block;
	white-space: nowrap;
}

.purpose-title--kick {
	font-size: clamp(48px, 5.2vw, 88px);
	line-height: 1.18;
	letter-spacing: -0.04em;
}

@media (max-width: 767px) {
	.purpose-title--kick {
		font-size: clamp(36px, 11vw, 54px);
		line-height: 1.15;
	}

	.purpose-title--kick span {
		white-space: nowrap;
	}
}

/* 女性向け見出しを2行に固定 */
.purpose-title--women span {
	display: block;
	white-space: nowrap;
}

.purpose-title--women {
	font-size: clamp(48px, 5vw, 82px);
	line-height: 1.18;
	letter-spacing: -0.04em;
}

@media (max-width: 767px) {

	.purpose-title--women {
		font-size: clamp(32px, 9.5vw, 46px);
		line-height: 1.2;
		letter-spacing: -0.04em;
	}

	.purpose-title--women span {
		white-space: nowrap;
	}

}

/* キッズ見出しを2行に固定 */
.purpose-title--kids span {
	display: block;
	white-space: nowrap;
}

.purpose-title--kids {
	font-size: clamp(46px, 4.7vw, 78px);
	line-height: 1.18;
	letter-spacing: -0.04em;
}

@media (max-width: 767px) {

	.purpose-title--kids {
		font-size: clamp(29px, 8.5vw, 42px);
		line-height: 1.22;
		letter-spacing: -0.05em;
	}

	.purpose-title--kids span {
		white-space: nowrap;
	}
}

/* ========================================
   KIDS 写真エリア調整
======================================== */

#kids .purpose-photo {
	min-height: 680px;
}

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

	#kids .purpose-photo {
		min-height: 420px;
	}

}

#students .student-title-line {
	display: block;
	white-space: nowrap;
}

#students h2 em {
	display: block;
}

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

	.purpose-message {
		padding: 110px 0;

		background:
			linear-gradient(rgba(3, 48, 56, .84),
				rgba(3, 67, 74, .90)),
			url("../img/service-img5.jpg") 48% center / cover no-repeat;
	}

}

.purpose-cta {
	position: relative;
	overflow: hidden;

	padding: 130px 20px;

	text-align: center;
	color: #fff;

	background:
		linear-gradient(rgba(3, 48, 56, .76),
			rgba(3, 48, 56, .86)),
		url("../img/top-service-img2.jpg") center center / cover no-repeat;
}

.purpose-cta::before {
	content: "";
	position: absolute;
	inset: 0;

	background:
		linear-gradient(90deg,
			rgba(0, 197, 202, .08),
			transparent 35%,
			transparent 65%,
			rgba(0, 197, 202, .06));

	pointer-events: none;
}

.purpose-cta .purpose-container {
	position: relative;
	z-index: 2;
}

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

	.purpose-cta {
		padding: 90px 20px;

		background:
			linear-gradient(rgba(3, 48, 56, .82),
				rgba(3, 48, 56, .92)),
			url("../img/top-service-img2.jpg") center center / cover no-repeat;
	}

}

/* ========================================
   PURPOSE 実写真
======================================== */

.purpose-photo__img {
	width: 100%;
	height: 100%;

	position: absolute;
	inset: 0;

	object-fit: cover;
	object-position: center;

	display: block;
}

/* ========================================
   PURPOSE 写真
======================================== */

.purpose-photo__img {
	position: absolute;
	inset: 0;

	width: 100%;
	height: 100%;

	display: block;

	object-fit: cover;
	object-position: center;
}

/* ========================================
   DIET 実写真
======================================== */
#diet .purpose-photo--diet {
	background-image: url("../img/purpose-diet1.png") !important;
	background-repeat: no-repeat !important;
	background-size: cover !important;
	background-position: 45% center !important;
}

#diet .purpose-photo--diet {
	overflow: hidden;
}

#diet .purpose-photo__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 42% center;
	display: block;
}

.purpose-menu {
	position: relative;
	overflow: hidden;

	background:
		radial-gradient(circle at 88% 12%,
			rgba(247, 199, 105, 0.16) 0%,
			rgba(247, 199, 105, 0.07) 18%,
			transparent 38%),
		radial-gradient(circle at 8% 82%,
			rgba(42, 201, 196, 0.14) 0%,
			rgba(42, 201, 196, 0.06) 25%,
			transparent 45%),
		linear-gradient(135deg,
			#ffffff 0%,
			#f5fbfa 55%,
			#fffaf0 100%);
}

.purpose-photo__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* ========================================
   KIDS 実写真
======================================== */

#kids .purpose-photo--kids {
	position: relative;
	overflow: hidden;
}

#kids .purpose-photo--kids .purpose-photo__img {
	position: absolute;
	inset: 0;

	width: 100%;
	height: 100%;

	object-fit: cover;
	object-position: center 35%;

	display: block;
	opacity: 1;
}

/* ========================================
   KIDS 写真を主役っぽく見せる
======================================== */

#kids .purpose-photo--kids {
	position: relative;
	overflow: hidden;

	min-height: 720px;

	border-radius: 90px 6px 90px 6px;

	background: #dff7f5;

	box-shadow:
		24px 24px 0 rgba(40, 201, 197, .10);
}

/* 写真本体 */
#kids .purpose-photo--kids .purpose-photo__img {
	position: absolute;
	inset: 0;

	width: 100%;
	height: 100%;

	object-fit: cover;

	/* 今より少し上を見せる */
	object-position: center 28%;

	transform: scale(1.04);

	display: block;
}

#kids .purpose-photo--kids::after {
	content: "";
	position: absolute;
	inset: 0;

	background:
		linear-gradient(180deg,
			rgba(255, 255, 255, .03) 0%,
			transparent 55%,
			rgba(7, 63, 71, .10) 100%);

	pointer-events: none;
}

/* ========================================
   BODYMAKE 実写真
======================================== */

#bodymake .purpose-photo--bodymake {
	position: relative;
	overflow: hidden;
}

#bodymake .purpose-photo--bodymake .purpose-photo__img {
	position: absolute;
	inset: 0;

	width: 100%;
	height: 100%;

	object-fit: cover;
	object-position: center 35%;

	display: block;
}

/* ========================================
   BOXING 実写真
======================================== */

#boxing .purpose-photo--boxing {
	position: relative;
	overflow: hidden;

	min-height: 520px;

	border-radius: 85px 4px 85px 4px;

	background: #052f36;

	box-shadow:
		22px 22px 0 rgba(40, 201, 197, .10);
}

#boxing .purpose-photo--boxing .purpose-photo__img {
	position: absolute;
	inset: 0;

	width: 100%;
	height: 100%;

	object-fit: cover;
	object-position: center center;

	display: block;
}

/* ========================================
   BOXING 背景
======================================== */

#boxing {
	position: relative;
	overflow: hidden;

	background:
		radial-gradient(circle at 82% 15%,
			rgba(40, 201, 197, .18),
			transparent 28%),
		radial-gradient(circle at 8% 88%,
			rgba(239, 182, 95, .08),
			transparent 32%),
		linear-gradient(135deg,
			#052f36 0%,
			#07434b 48%,
			#05282f 100%);
}

#boxing::before {
	content: "";
	position: absolute;
	inset: 0;

	background-image:
		linear-gradient(45deg,
			rgba(255, 255, 255, .025) 25%,
			transparent 25%,
			transparent 75%,
			rgba(255, 255, 255, .025) 75%),
		linear-gradient(-45deg,
			rgba(255, 255, 255, .025) 25%,
			transparent 25%,
			transparent 75%,
			rgba(255, 255, 255, .025) 75%);

	background-size: 36px 36px;

	pointer-events: none;
}

#boxing .purpose-container {
	position: relative;
	z-index: 2;
}

#boxing .purpose-menu__number {
	margin-bottom: 4px;

	color: rgba(40, 201, 197, .20);
}

#boxing .purpose-menu__en {
	margin-top: 0;
	margin-bottom: 28px;

	color: rgba(40, 201, 197, .75);
}

#boxing .purpose-menu__content h2 {
	margin-top: 0;
}

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

	#boxing .purpose-photo--boxing {
		min-height: 420px;
	}

	#boxing .purpose-photo--boxing .purpose-photo__img {
		object-position: center center;
	}

}

/* ========================================
   BOXING 写真を横長で見せる
======================================== */

#boxing .purpose-menu__grid {
	grid-template-columns: 1.08fr .92fr;
	align-items: center;
}

#boxing .purpose-photo--boxing {
	min-height: 0;
	aspect-ratio: 4 / 3;

	position: relative;
	overflow: hidden;

	border-radius: 85px 4px 85px 4px;
}

#boxing .purpose-photo--boxing .purpose-photo__img {
	position: absolute;
	inset: 0;

	width: 100%;
	height: 100%;

	object-fit: cover;
	object-position: 50% 50%;

	display: block;
}

#boxing .purpose-tags span {
	position: relative;
	overflow: hidden;

	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(40, 201, 197, .34);

	color: #fff;

	box-shadow:
		inset 0 0 0 1px rgba(255, 255, 255, .02),
		0 8px 20px rgba(0, 0, 0, .08);

	transition:
		transform .25s ease,
		background .25s ease,
		border-color .25s ease,
		box-shadow .25s ease;
}

#boxing .purpose-tags span:hover {
	transform: translateY(-4px);

	background: rgba(40, 201, 197, .16);
	border-color: rgba(40, 201, 197, .70);

	box-shadow:
		0 10px 24px rgba(0, 0, 0, .16),
		0 0 18px rgba(40, 201, 197, .16);
}

#boxing .purpose-training span {
	position: relative;

	background: rgba(255, 255, 255, .92);
	color: var(--purpose-navy);

	border: 1px solid rgba(40, 201, 197, .20);

	box-shadow:
		0 8px 20px rgba(0, 0, 0, .10);

	transition:
		transform .25s ease,
		background .25s ease,
		color .25s ease,
		box-shadow .25s ease;
}

#boxing .purpose-training span:hover {
	transform: translateY(-5px) scale(1.03);

	background: var(--purpose-aqua);
	color: var(--purpose-navy);

	box-shadow:
		0 12px 26px rgba(0, 0, 0, .16),
		0 0 22px rgba(40, 201, 197, .24);
}

#boxing .purpose-training span:hover {
	transform: translateY(-4px) translateX(3px);
}


/* ========================================
   KICKBOXING 背景
======================================== */

#kickboxing {
	position: relative;
	overflow: hidden;

	background:
		radial-gradient(circle at 12% 18%,
			rgba(40, 201, 197, .22),
			transparent 30%),
		radial-gradient(circle at 88% 82%,
			rgba(239, 182, 95, .10),
			transparent 32%),
		linear-gradient(135deg,
			#084c55 0%,
			#0a6268 48%,
			#063e47 100%);
}

#kickboxing::before {
	content: "";
	position: absolute;
	inset: 0;

	background:
		linear-gradient(115deg,
			transparent 0%,
			transparent 38%,
			rgba(255, 255, 255, .035) 50%,
			transparent 62%,
			transparent 100%);

	pointer-events: none;
}

#kickboxing .purpose-container {
	position: relative;
	z-index: 2;
}

#kickboxing .purpose-tags span {
	background: rgba(255, 255, 255, .10);
	border: 1px solid rgba(255, 255, 255, .20);
	color: #fff;

	transition:
		transform .25s ease,
		background .25s ease;
}

#kickboxing .purpose-tags span:hover {
	transform: translateY(-4px);
	background: rgba(40, 201, 197, .20);
}

#kickboxing .purpose-training span {
	background: rgba(255, 255, 255, .92);
	color: var(--purpose-navy);

	transition:
		transform .25s ease,
		background .25s ease;
}

#kickboxing .purpose-training span:hover {
	transform: translateY(-4px);
	background: var(--purpose-aqua);
}

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

	#kickboxing .purpose-photo--kickboxing {
		min-height: 420px;
	}

	#kickboxing .purpose-photo--kickboxing .purpose-photo__img {
		object-position: center center;
	}

}

/* ========================================
   KICKBOXING PHOTO 確定版
======================================== */

#kickboxing .purpose-menu__grid {
	grid-template-columns: 1fr .72fr;
	gap: 70px;
	align-items: center;
}


/* 写真枠 */
#kickboxing .purpose-photo--kickboxing {
	position: relative;
	overflow: hidden;

	width: 100%;
	max-width: 500px;

	min-height: 0 !important;
	aspect-ratio: 2 / 3;

	margin-left: auto;

	border-radius: 90px 4px 90px 4px;

	background: #063f47;

	box-shadow:
		24px 24px 0 rgba(40, 201, 197, .13);
}


/* 写真 */
#kickboxing .purpose-photo--kickboxing .purpose-photo__img {
	position: absolute !important;
	inset: 0 !important;

	width: 100% !important;
	height: 100% !important;

	object-fit: contain !important;
	object-position: center center !important;

	display: block;

	transform: none !important;
}

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

	#kickboxing .purpose-menu__grid {
		grid-template-columns: 1fr;
		gap: 45px;
	}

	#kickboxing .purpose-photo--kickboxing {
		width: min(100%, 430px);
		max-width: none;

		aspect-ratio: 2 / 3;

		margin-inline: auto;
	}

}

#women {
	position: relative;
	overflow: hidden;

	background:
		radial-gradient(circle at 8% 12%,
			rgba(244, 185, 112, .20) 0,
			rgba(244, 185, 112, .08) 15%,
			transparent 32%),
		radial-gradient(circle at 92% 82%,
			rgba(40, 201, 197, .10) 0,
			transparent 32%),
		linear-gradient(135deg,
			#fffdf8 0%,
			#f8fbf8 52%,
			#fff7e9 100%);
}

#women::before {
	content: "";
	position: absolute;

	width: 520px;
	height: 520px;

	right: -260px;
	top: -120px;

	border: 1px solid rgba(40, 201, 197, .18);
	border-radius: 50%;

	pointer-events: none;
}

#women::after {
	content: "";
	position: absolute;

	width: 150px;
	height: 150px;

	left: 4%;
	bottom: 8%;

	border-radius: 50%;

	background: rgba(239, 182, 95, .12);

	pointer-events: none;
}

/* ========================================
   WOMEN PHOTO
======================================== */

#women .purpose-photo--women {
	position: relative;
	overflow: hidden;

	width: 100%;
	min-height: 0 !important;
	aspect-ratio: 4 / 5;

	border-radius: 85px 8px 85px 8px;

	background: #eaf8f7;

	box-shadow:
		18px 18px 0 rgba(243, 196, 134, .30);

	isolation: isolate;
}

#women .purpose-photo--women .purpose-photo__img {
	position: absolute !important;
	inset: 0 !important;

	width: 100% !important;
	height: 100% !important;

	display: block !important;

	object-fit: cover !important;

	/* 女性の顔・ダンベル・腕を見せる */
	object-position: 50% 45% !important;

	border-radius: inherit;
}


/* ==============================
   SP
============================== */

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

	#women .purpose-photo--women {
		aspect-ratio: 4 / 5;
		border-radius: 55px 6px 55px 6px;
	}

	#women .purpose-photo--women .purpose-photo__img {
		object-position: 50% 45% !important;
	}

}

/* ========================================
   WOMEN subtle motion
======================================== */

/* 背景の大きな円をゆっくり漂わせる */
#women::before {
	animation: womenFloat 9s ease-in-out infinite;
}

@keyframes womenFloat {

	0%,
	100% {
		transform: translate(0, 0);
	}

	50% {
		transform: translate(-18px, 14px);
	}
}


/* タグ */
#women .purpose-tags span {
	position: relative;
	overflow: hidden;

	transition:
		transform .28s ease,
		box-shadow .28s ease,
		background .28s ease,
		border-color .28s ease;
}

#women .purpose-tags span:hover {
	transform: translateY(-5px);

	background: #fff;

	border-color: rgba(40, 201, 197, .35);

	box-shadow:
		0 12px 25px rgba(7, 63, 71, .08);
}


/* タグに光が流れる */
#women .purpose-tags span::before {
	content: "";

	position: absolute;
	top: 0;
	left: -130%;

	width: 80%;
	height: 100%;

	background:
		linear-gradient(110deg,
			transparent,
			rgba(255, 255, 255, .75),
			transparent);

	transform: skewX(-20deg);

	transition: left .55s ease;
}

#women .purpose-tags span:hover::before {
	left: 140%;
}

#women .purpose-training span {
	position: relative;

	transition:
		transform .28s ease,
		background .28s ease,
		color .28s ease,
		box-shadow .28s ease;
}

#women .purpose-training span:hover {
	transform: translateY(-5px) rotate(-1deg);

	background: var(--purpose-aqua);
	color: var(--purpose-navy);

	box-shadow:
		0 12px 26px rgba(7, 63, 71, .12);
}

#women .purpose-detail__block {
	transition:
		transform .35s ease,
		box-shadow .35s ease;
}

#women .purpose-detail__block:hover {
	transform: translateY(-7px);

	box-shadow:
		0 20px 45px rgba(7, 63, 71, .09);
}

#women .purpose-detail__block--accent {
	position: relative;
	overflow: hidden;
}

#women .purpose-detail__block--accent::after {
	content: "";

	position: absolute;

	width: 150px;
	height: 150px;

	right: -75px;
	bottom: -75px;

	border-radius: 50%;

	background:
		rgba(40, 201, 197, .08);

	transition:
		transform .5s ease;
}

#women .purpose-detail__block--accent:hover::after {
	transform: scale(1.5);
}

#women .purpose-photo--women .purpose-photo__img {
	transition:
		transform .7s cubic-bezier(.2, .8, .2, 1);
}

#women .purpose-photo--women:hover .purpose-photo__img {
	transform: scale(1.035);
}

/* ========================================
   KIDS MOTION
======================================== */

/* 写真：少しだけズーム */
#kids .purpose-photo--kids .purpose-photo__img {
	transition: transform .65s cubic-bezier(.2, .8, .2, 1);
}

#kids .purpose-photo--kids:hover .purpose-photo__img {
	transform: scale(1.035);
}


/* 上のタグ：ポンっと浮く */
#kids .purpose-tags span {
	transition:
		transform .25s ease,
		background .25s ease,
		box-shadow .25s ease;
}

#kids .purpose-tags span:hover {
	transform: translateY(-5px) rotate(-1deg);

	background: #fff;

	box-shadow:
		0 12px 26px rgba(7, 63, 71, .08);
}


/* 親御さま向けカード */
#kids .purpose-parent-note {
	transition:
		transform .35s ease,
		box-shadow .35s ease;
}

#kids .purpose-parent-note:hover {
	transform: translateY(-6px);

	box-shadow:
		0 18px 38px rgba(7, 63, 71, .09);
}


/* RECOMMENDED / WHAT WE DO */
#kids .purpose-detail__block {
	transition:
		transform .35s ease,
		box-shadow .35s ease;
}

#kids .purpose-detail__block:hover {
	transform: translateY(-7px);

	box-shadow:
		0 20px 45px rgba(7, 63, 71, .09);
}


/* 下のトレーニング項目 */
#kids .purpose-training span {
	transition:
		transform .25s ease,
		background .25s ease,
		color .25s ease,
		box-shadow .25s ease;
}

#kids .purpose-training span:hover {
	transform: translateY(-5px) rotate(-1.5deg);

	background: var(--purpose-sun);
	color: var(--purpose-navy);

	box-shadow:
		0 12px 24px rgba(7, 63, 71, .12);
}

#kids::before {
	animation: kidsFloat 8s ease-in-out infinite;
}

@keyframes kidsFloat {

	0%,
	100% {
		transform: translate(0, 0);
	}

	50% {
		transform: translate(-14px, 12px);
	}
}

/* ========================================
   KIDS SHARK SWIM
======================================== */

#kids .kids-shark-swim {
	position: relative;

	width: 100%;
	height: 110px;

	margin-top: 28px;

	overflow: hidden;

	border-top: 1px solid rgba(40, 201, 197, .18);
}


/* サメ */
#kids .kids-shark-swim__img {
	position: absolute;

	width: 140px;
	/* 65px → 140px */
	height: auto;

	top: 18px;
	left: -160px;

	display: block;

	opacity: .7;

	animation:
		kidsSharkSwim 12s linear infinite,
		kidsSharkFloat 2.4s ease-in-out infinite;
}


/* 左から右へ */
@keyframes kidsSharkSwim {

	0% {
		left: -160px;
	}

	100% {
		left: calc(100% + 160px);
	}
}


/* 泳いでいる感じ */
@keyframes kidsSharkFloat {

	0%,
	100% {
		transform: translateY(0) rotate(-3deg);
	}

	50% {
		transform: translateY(-8px) rotate(3deg);
	}
}


/* SP */
@media screen and (max-width: 768px) {

	#kids .kids-shark-swim {
		height: 85px;
		margin-top: 22px;
	}

	#kids .kids-shark-swim__img {
		width: 90px;
		top: 15px;

		animation:
			kidsSharkSwim 9s linear infinite,
			kidsSharkFloat 2.2s ease-in-out infinite;
	}

}

/* ========================================
   KIDS セクション下余白 最終調整
======================================== */

#kids {
	padding-bottom: 35px !important;
	margin-bottom: 0 !important;
}

#kids .kids-shark-swim {
	height: 105px !important;
	margin-top: 18px !important;
	margin-bottom: 0 !important;
}

#kids .kids-shark-swim__img {
	top: 27px;
}

/* KIDSの次のセクション */
#kids+section {
	margin-top: 0 !important;
	padding-top: 55px !important;
}

/* ========================================
   HEALTH & FITNESS
   WEST COAST SUMMER EVENING
======================================== */

#health {
	position: relative;
	overflow: hidden;

	background:
		radial-gradient(circle at 88% 12%,
			rgba(244, 184, 105, .24) 0%,
			rgba(244, 184, 105, .10) 18%,
			transparent 38%),
		radial-gradient(circle at 8% 88%,
			rgba(40, 201, 197, .15) 0%,
			transparent 35%),
		linear-gradient(135deg,
			#fffdf8 0%,
			#f8fbf7 48%,
			#fff4df 100%);
}

#health::before {
	content: "";

	position: absolute;

	width: 560px;
	height: 560px;

	right: -230px;
	top: -180px;

	border: 1px solid rgba(239, 182, 95, .22);
	border-radius: 50%;

	pointer-events: none;
}

#health .purpose-photo--health {
	position: relative;
	overflow: hidden;

	width: 100%;
	min-height: 0 !important;

	aspect-ratio: 4 / 5;

	border-radius: 95px 8px 95px 8px;

	background: #e9f7f4;

	box-shadow:
		20px 20px 0 rgba(239, 182, 95, .20);
}

#health .purpose-photo--health .purpose-photo__img {
	position: absolute;
	inset: 0;

	width: 100%;
	height: 100%;

	object-fit: cover;
	object-position: 50% 48%;

	display: block;

	transition: transform .7s cubic-bezier(.2, .8, .2, 1);
}

#health .purpose-photo--health:hover .purpose-photo__img {
	transform: scale(1.035);
}

/* ========================================
   HEALTH & FITNESS MOTION
======================================== */

/* 上のタグ */
#health .purpose-tags span {
	transition:
		transform .25s ease,
		background .25s ease,
		box-shadow .25s ease,
		border-color .25s ease;
}

#health .purpose-tags span:hover {
	transform: translateY(-4px);

	background: #fff;

	border-color: rgba(40, 201, 197, .35);

	box-shadow:
		0 12px 26px rgba(7, 63, 71, .08);
}


/* RECOMMENDED / WHAT WE DO カード */
#health .purpose-detail__block {
	transition:
		transform .35s ease,
		box-shadow .35s ease;
}

#health .purpose-detail__block:hover {
	transform: translateY(-6px);

	box-shadow:
		0 20px 42px rgba(7, 63, 71, .09);
}


/* WHAT WE DO のアクセントカード */
#health .purpose-detail__block--accent {
	position: relative;
	overflow: hidden;
}

#health .purpose-detail__block--accent::after {
	content: "";

	position: absolute;

	width: 160px;
	height: 160px;

	right: -80px;
	bottom: -80px;

	border-radius: 50%;

	background: rgba(40, 201, 197, .07);

	transition: transform .55s ease;

	pointer-events: none;
}

#health .purpose-detail__block--accent:hover::after {
	transform: scale(1.55);
}


/* 下のトレーニングタグ */
#health .purpose-training span {
	transition:
		transform .25s ease,
		background .25s ease,
		color .25s ease,
		box-shadow .25s ease;
}

#health .purpose-training span:hover {
	transform: translateY(-5px);

	background: #28c9c5;
	color: #073f47;

	box-shadow:
		0 12px 26px rgba(7, 63, 71, .12);
}

/* ========================================
   01 DIET - spacing
======================================== */

#diet {
	padding-top: 80px !important;
	padding-bottom: 90px !important;
}

/* 01に入る直前の余白を詰める */
.purpose-select {
	padding-bottom: 65px !important;
}

/* 左右を上揃え */
#diet .purpose-menu__grid {
	align-items: start;
}

/* ========================================
   01 DIET - sticky photo
======================================== */

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

	#diet .purpose-photo {
		position: sticky;
		top: 110px;
	}

}

#diet .purpose-tags span {
	transition:
		transform .25s ease,
		background .25s ease,
		box-shadow .25s ease;
}

#diet .purpose-tags span:hover {
	transform: translateY(-5px);

	background: #fff;

	box-shadow:
		0 12px 26px rgba(7, 63, 71, .08);
}

#diet .purpose-detail__block {
	transition:
		transform .35s ease,
		box-shadow .35s ease;
}

#diet .purpose-detail__block:hover {
	transform: translateY(-7px);

	box-shadow:
		0 20px 45px rgba(7, 63, 71, .09);
}

#diet .purpose-training span {
	transition:
		transform .25s ease,
		background .25s ease,
		color .25s ease,
		box-shadow .25s ease;
}

#diet .purpose-training span:hover {
	transform: translateY(-5px);

	background: #28c9c5;
	color: #073f47;

	box-shadow:
		0 12px 26px rgba(7, 63, 71, .12);
}

#diet .purpose-photo__img {
	transition:
		transform .7s cubic-bezier(.2, .8, .2, 1);
}

#diet .purpose-photo:hover .purpose-photo__img {
	transform: scale(1.035);
}

/* ========================================
   PURPOSE SELECT 泳ぐサメ
======================================== */

.purpose-select {
	position: relative;
	overflow: hidden;

	/* サメが泳ぐスペースを少し確保 */
	padding-bottom: 170px;
}

.purpose-select .purpose-container {
	position: relative;
	z-index: 2;
}

.purpose-select__shark {
	position: absolute;
	left: 0;
	bottom: 25px;

	width: 100%;
	height: 90px;

	pointer-events: none;
	overflow: hidden;
	z-index: 2;
}

.purpose-select__shark img {
	position: absolute;

	width: 90px;
	/* 48px → 90px */
	height: auto;

	top: 0;

	animation: purposeSharkSwim 14s linear infinite;
}

@keyframes purposeSharkSwim {
	0% {
		left: -60px;
		transform: translateY(4px) rotate(-3deg);
	}

	25% {
		transform: translateY(-3px) rotate(2deg);
	}

	50% {
		transform: translateY(5px) rotate(-2deg);
	}

	75% {
		transform: translateY(-2px) rotate(2deg);
	}

	100% {
		left: calc(100% + 20px);
		transform: translateY(4px) rotate(-3deg);
	}
}




/* ========================================
   PURPOSE SELECT 泳ぐサメ 最終版
======================================== */

.purpose-select {
	position: relative;
	overflow: hidden;

	/* 01セクションとの間にサメ用スペース */
	padding-bottom: 145px !important;
}


/* カード類はサメより前面 */
.purpose-select .purpose-container {
	position: relative;
	z-index: 2;
}


/* サメが泳ぐレーン */
.purpose-select__shark {
	position: absolute;

	left: 0;
	bottom: 28px;

	width: 100%;
	height: 85px;

	overflow: hidden;
	pointer-events: none;

	z-index: 1;
}


/* サメ本体 */
.purpose-select__shark img {
	position: absolute;

	width: 140px;
	height: auto;

	top: 50%;
	left: -160px;

	display: block;

	opacity: .62;

	animation:
		purposeSharkSwim 15s linear infinite,
		purposeSharkFloat 2.8s ease-in-out infinite;
}


/* 左 → 右 */
@keyframes purposeSharkSwim {

	0% {
		left: -160px;
	}

	100% {
		left: calc(100% + 160px);
	}
}


/* 少し上下して泳ぐ */
@keyframes purposeSharkFloat {

	0%,
	100% {
		transform:
			translateY(-50%) rotate(-3deg);
	}

	50% {
		transform:
			translateY(calc(-50% - 7px)) rotate(2deg);
	}
}


/* ========================================
   SP
======================================== */

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

	.purpose-select {
		padding-bottom: 110px !important;
	}

	.purpose-select__shark {
		width: 100%;
		/* ここ重要 */
		height: 65px;

		bottom: 22px;
	}

	.purpose-select__shark img {
		width: 72px;

		left: -90px;

		animation:
			purposeSharkSwim 11s linear infinite,
			purposeSharkFloat 2.5s ease-in-out infinite;
	}

}

/* ========================================
   07 FOR STUDENTS MOTION
======================================== */

/* 上の目的タグ */
#students .purpose-tags span {
	transition:
		transform .25s ease,
		background .25s ease,
		box-shadow .25s ease;
}

#students .purpose-tags span:hover {
	transform: translateY(-5px);

	background: #fff;

	box-shadow:
		0 12px 28px rgba(7, 63, 71, .08);
}


/* RECOMMENDED / WHAT WE DO */
#students .purpose-detail__block {
	transition:
		transform .35s ease,
		box-shadow .35s ease,
		border-color .35s ease;
}

#students .purpose-detail__block:hover {
	transform: translateY(-7px);

	box-shadow:
		0 20px 44px rgba(7, 63, 71, .09);
}


/* WHAT WE DO に少し動き */
#students .purpose-detail__block--accent {
	position: relative;
	overflow: hidden;
}

#students .purpose-detail__block--accent::after {
	content: "";

	position: absolute;

	width: 180px;
	height: 180px;

	right: -100px;
	bottom: -100px;

	border-radius: 50%;

	background: rgba(40, 201, 197, .08);

	transition: transform .55s ease;

	pointer-events: none;
}

#students .purpose-detail__block--accent:hover::after {
	transform: scale(1.7);
}


/* 下の濃紺タグ */
#students .purpose-training span {
	transition:
		transform .25s ease,
		background .25s ease,
		color .25s ease,
		box-shadow .25s ease;
}

#students .purpose-training span:hover {
	transform: translateY(-5px);

	background: #28c9c5;
	color: #073f47;

	box-shadow:
		0 12px 26px rgba(7, 63, 71, .12);
}

#students .purpose-title {
	transition:
		transform .4s ease;
}

#students .purpose-title:hover {
	transform: translateX(8px);
}

#students {
	position: relative;
	overflow: hidden;
}

#students::before {
	content: "";

	position: absolute;

	width: 520px;
	height: 520px;

	right: -220px;
	top: -170px;

	border: 1px solid rgba(40, 201, 197, .14);
	border-radius: 50%;

	animation: studentsCircleFloat 9s ease-in-out infinite;

	pointer-events: none;
}

@keyframes studentsCircleFloat {

	0%,
	100% {
		transform: translate(0, 0);
	}

	50% {
		transform: translate(-14px, 10px);
	}
}

/* =========================================================
   PURPOSE PAGE
   SP FINAL OVERRIDE
   ★ purpose.css の本当に一番最後に入れる
========================================================= */

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

	/* =====================================
       基本
    ===================================== */

	.purpose-page {
		overflow-x: hidden !important;
	}

	.purpose-container {
		width: calc(100% - 32px) !important;
		max-width: none !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}


	/* =====================================
       HERO
    ===================================== */

	.purpose-hero {
		min-height: 540px !important;
		padding: 65px 0 55px !important;

		background-position: 55% center !important;
	}

	.purpose-hero__inner {
		width: calc(100% - 32px) !important;
	}

	.purpose-hero .purpose-kicker {
		font-size: 10px !important;
		letter-spacing: .20em !important;
		margin-bottom: 15px !important;
	}

	.purpose-hero h1 {
		font-size: clamp(39px, 11.2vw, 46px) !important;
		line-height: 1.12 !important;
		letter-spacing: -.055em !important;
	}

	.purpose-hero__lead {
		max-width: 100% !important;
		margin-top: 26px !important;

		font-size: 13px !important;
		line-height: 1.9 !important;
	}


	/* =====================================
       01〜08 共通
    ===================================== */

	.purpose-menu {
		padding: 65px 0 !important;
	}

	/*
       PC用の個別grid指定を全部リセット
       boxing / kickboxing含む
    */
	.purpose-menu .purpose-menu__grid,
	#diet .purpose-menu__grid,
	#bodymake .purpose-menu__grid,
	#boxing .purpose-menu__grid,
	#kickboxing .purpose-menu__grid,
	#women .purpose-menu__grid,
	#kids .purpose-menu__grid,
	#students .purpose-menu__grid,
	#health .purpose-menu__grid {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 34px !important;

		width: 100% !important;
		min-width: 0 !important;
	}


	/* reverseもSPでは写真→文章 */
	.purpose-menu--reverse .purpose-photo {
		order: 1 !important;
	}

	.purpose-menu--reverse .purpose-menu__content {
		order: 2 !important;
	}

	.purpose-menu:not(.purpose-menu--reverse) .purpose-photo {
		order: 1 !important;
	}

	.purpose-menu:not(.purpose-menu--reverse) .purpose-menu__content {
		order: 2 !important;
	}


	/* =====================================
       写真共通
    ===================================== */

	.purpose-photo,
	#boxing .purpose-photo--boxing,
	#kickboxing .purpose-photo--kickboxing,
	#women .purpose-photo--women,
	#kids .purpose-photo--kids {
		width: 100% !important;
		max-width: 100% !important;

		min-width: 0 !important;
		min-height: 0 !important;

		margin: 0 auto !important;

		box-sizing: border-box !important;
	}


	/* 通常写真 */
	.purpose-photo:not(.purpose-photo--women):not(.purpose-photo--kids):not(.purpose-photo--kickboxing) {
		aspect-ratio: 4 / 3 !important;
		border-radius: 44px 4px 44px 4px !important;
	}


	.purpose-photo__img {
		width: 100% !important;
		height: 100% !important;

		display: block !important;

		object-fit: cover !important;
	}


	/* BOXING */
	#boxing .purpose-photo--boxing {
		aspect-ratio: 4 / 3 !important;
		border-radius: 44px 4px 44px 4px !important;
	}


	/* KICKBOXING */
	#kickboxing .purpose-photo--kickboxing {
		aspect-ratio: 4 / 5 !important;
		border-radius: 44px 4px 44px 4px !important;
	}

	#kickboxing .purpose-photo--kickboxing .purpose-photo__img {
		object-fit: cover !important;
	}


	/* WOMEN */
	#women .purpose-photo--women {
		aspect-ratio: 4 / 5 !important;
		border-radius: 44px 5px 44px 5px !important;
	}


	/* KIDS */
	#kids .purpose-photo--kids {
		aspect-ratio: 4 / 4.5 !important;
		border-radius: 44px 5px 44px 5px !important;
	}


	/* =====================================
       テキスト側
    ===================================== */

	.purpose-menu__content {
		width: 100% !important;
		max-width: 100% !important;

		min-width: 0 !important;

		padding: 0 !important;

		box-sizing: border-box !important;
	}


	.purpose-menu__number {
		margin: 0 0 2px !important;

		font-size: 48px !important;
		line-height: 1 !important;
	}

	.purpose-menu__en {
		margin: -7px 0 15px !important;

		font-size: 10px !important;
		line-height: 1.3 !important;
	}


	/* =====================================
       見出し
    ===================================== */

	.purpose-menu__content h2,
	.purpose-title,
	.purpose-title--kick,
	.purpose-title--women,
	.purpose-title--kids {
		width: 100% !important;
		max-width: 100% !important;

		margin: 0 !important;

		font-size: clamp(28px, 8.3vw, 34px) !important;
		line-height: 1.28 !important;
		letter-spacing: -.045em !important;

		word-break: normal !important;
		overflow-wrap: normal !important;
	}


	/*
       PCで入れていた nowrap をSPでは解除
       これが現在の横切れの大きな原因
    */
	.purpose-title span,
	.purpose-title--kick span,
	.purpose-title--women span,
	.purpose-title--kids span,
	#students .student-title-line {
		display: block !important;

		white-space: normal !important;
		max-width: 100% !important;
	}


	/* 女性だけ少し小さく */
	.purpose-title--women {
		font-size: 29px !important;
	}


	/* キッズも長いので少し抑える */
	.purpose-title--kids {
		font-size: 28px !important;
	}


	/* STUDENTS */
	#students .purpose-title,
	#students h2 {
		font-size: 29px !important;
		line-height: 1.3 !important;
	}


	/* HEALTH */
	#health .purpose-title,
	#health h2 {
		font-size: 30px !important;
		line-height: 1.3 !important;
	}


	/* =====================================
       メイン説明文
    ===================================== */

	.purpose-menu__content>p:not(.purpose-menu__number):not(.purpose-menu__en) {
		width: 100% !important;
		max-width: 100% !important;

		margin-top: 20px !important;

		font-size: 13px !important;
		line-height: 1.9 !important;

		letter-spacing: 0 !important;

		word-break: normal !important;
	}


	/* =====================================
       上部タグ
    ===================================== */

	.purpose-tags {
		display: flex !important;
		flex-wrap: wrap !important;

		gap: 7px !important;

		margin-top: 22px !important;
	}

	.purpose-tags span {
		padding: 8px 11px !important;

		font-size: 10px !important;
		line-height: 1.3 !important;

		white-space: nowrap !important;
	}


	/* =====================================
       RECOMMENDED / WHAT WE DO
    ===================================== */

	.purpose-detail {
		width: 100% !important;

		display: block !important;

		margin-top: 26px !important;
	}

	.purpose-detail__block {
		width: 100% !important;

		margin: 10px 0 0 !important;
		padding: 20px 18px !important;

		box-sizing: border-box !important;

		border-radius: 4px 22px 4px 22px !important;
	}

	.purpose-detail__block h3 {
		margin-bottom: 10px !important;

		font-size: 17px !important;
		line-height: 1.5 !important;

		word-break: normal !important;
	}

	.purpose-detail__block p {
		font-size: 12px !important;
		line-height: 1.8 !important;
	}


	/* チェック */
	.purpose-checks li {
		padding: 5px 0 5px 22px !important;

		font-size: 12px !important;
		line-height: 1.7 !important;

		word-break: normal !important;
	}


	/* =====================================
       下部タグ
    ===================================== */

	.purpose-training {
		display: flex !important;
		flex-wrap: wrap !important;

		gap: 6px !important;

		margin-top: 15px !important;
	}

	.purpose-training span {
		padding: 7px 10px !important;

		font-size: 9px !important;
		line-height: 1.3 !important;

		white-space: nowrap !important;
	}


	/* =====================================
       hoverはSPでは無効
    ===================================== */

	.purpose-tags span:hover,
	.purpose-training span:hover,
	.purpose-detail__block:hover,
	.purpose-title:hover {
		transform: none !important;
	}


	/* =====================================
       ONE GYM MESSAGE
    ===================================== */

	.purpose-message {
		min-height: 520px !important;

		padding: 75px 0 !important;

		background-size: cover !important;
		background-position: center center !important;
	}

	.purpose-message .purpose-container {
		width: calc(100% - 38px) !important;
	}

	.purpose-message h2 {
		font-size: 34px !important;
		line-height: 1.3 !important;
		letter-spacing: -.04em !important;
	}

	.purpose-message p:last-child {
		margin-top: 22px !important;

		font-size: 12px !important;
		line-height: 1.9 !important;
	}

}

/* =====================================================
   FINAL CTA SP 見出し調整
===================================================== */

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

	.purpose-final {
		padding: 80px 0 !important;
	}

	.purpose-final .purpose-container {
		width: calc(100% - 32px) !important;
		max-width: none !important;
		margin-inline: auto !important;
	}

	.purpose-final .purpose-kicker {
		margin-bottom: 18px !important;

		font-size: 10px !important;
		letter-spacing: .18em !important;
	}

	.purpose-final h2 {
		width: 100% !important;
		max-width: none !important;

		margin: 0 auto !important;

		font-size: 28px !important;
		line-height: 1.38 !important;
		letter-spacing: -0.04em !important;

		white-space: normal !important;
		word-break: keep-all !important;
		overflow-wrap: normal !important;
	}

	/* HTMLで指定しているbrだけで改行 */
	.purpose-final h2 br {
		display: block !important;
	}

	.purpose-final>.purpose-container>p:not(.purpose-kicker) {
		margin-top: 22px !important;

		font-size: 12px !important;
		line-height: 1.9 !important;
	}

	.purpose-buttons {
		width: 100% !important;

		margin-top: 30px !important;

		flex-direction: column !important;
		gap: 10px !important;
	}

	.purpose-btn {
		width: 100% !important;
		min-width: 0 !important;

		box-sizing: border-box !important;

		padding: 17px 20px !important;
	}
}

/* =========================================
   PURPOSE HERO SP 見出し最終調整
========================================= */

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

	.purpose-hero__inner {
		width: calc(100% - 28px) !important;
		max-width: none !important;
		margin: 0 auto !important;
	}

	.purpose-hero h1 {
		width: 100% !important;
		max-width: none !important;

		font-size: 38px !important;
		line-height: 1.16 !important;
		letter-spacing: -0.055em !important;

		word-break: keep-all !important;
		overflow-wrap: normal !important;
	}

	.purpose-hero h1 em {
		display: block !important;
		white-space: nowrap !important;
	}

}

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

	.purpose-hero__title {
		width: 100% !important;
		font-size: 38px !important;
		line-height: 1.16 !important;
		letter-spacing: -0.055em !important;
	}

	.purpose-hero__title span,
	.purpose-hero__title em {
		display: block !important;
		white-space: nowrap !important;
	}

}

/* =========================================================
   03 BOXING SP FINAL FIX
========================================================= */

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

	/* セクション */
	#boxing {
		padding: 65px 0 70px !important;
		overflow: hidden !important;
	}

	/* ★最重要：SPでは完全に1列 */
	#boxing .purpose-menu__grid {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 32px !important;

		width: 100% !important;
		min-width: 0 !important;

		align-items: stretch !important;
	}

	/* 写真を先に */
	#boxing .purpose-photo--boxing {
		order: 1 !important;

		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		min-height: 0 !important;

		aspect-ratio: 4 / 3 !important;

		margin: 0 !important;

		border-radius: 42px 4px 42px 4px !important;
	}

	#boxing .purpose-photo--boxing .purpose-photo__img {
		width: 100% !important;
		height: 100% !important;

		object-fit: cover !important;
		object-position: center center !important;
	}

	/* 文章を写真の下へ */
	#boxing .purpose-menu__content {
		order: 2 !important;

		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;

		padding: 0 !important;
		margin: 0 !important;
	}

	/* 03 */
	#boxing .purpose-menu__number {
		margin: 0 0 2px !important;

		font-size: 52px !important;
		line-height: 1 !important;

		text-align: left !important;
	}

	/* BOXING */
	#boxing .purpose-menu__en {
		margin: 0 0 16px !important;

		font-size: 10px !important;
		line-height: 1.3 !important;
		letter-spacing: .18em !important;

		text-align: left !important;
	}

	/* =========================
       見出し
    ========================= */

	#boxing .purpose-menu__content h2 {
		width: 100% !important;
		max-width: none !important;

		margin: 0 !important;

		font-size: 34px !important;
		line-height: 1.2 !important;
		letter-spacing: -.045em !important;

		text-align: left !important;

		word-break: keep-all !important;
		overflow-wrap: normal !important;
	}

	/* HTMLにあるbrだけで2行 */
	#boxing .purpose-menu__content h2 br {
		display: block !important;
	}

	#boxing .purpose-menu__content h2 em {
		display: inline !important;

		white-space: nowrap !important;

		font-style: normal !important;
	}

	/* 本文 */
	#boxing .purpose-menu__content>p:not(.purpose-menu__number):not(.purpose-menu__en) {
		width: 100% !important;

		margin: 20px 0 0 !important;

		font-size: 13px !important;
		line-height: 1.9 !important;

		text-align: left !important;

		word-break: normal !important;
	}

	/* PC用brは本文では解除 */
	#boxing .purpose-menu__content>p br {
		display: none !important;
	}

	/* タグ */
	#boxing .purpose-tags {
		display: flex !important;
		flex-wrap: wrap !important;

		gap: 7px !important;

		margin-top: 22px !important;
	}

	#boxing .purpose-tags span {
		padding: 8px 11px !important;

		font-size: 10px !important;

		white-space: nowrap !important;
	}

	/* 詳細カード */
	#boxing .purpose-detail {
		width: 100% !important;
		margin-top: 25px !important;
	}

	#boxing .purpose-detail__block {
		width: 100% !important;

		margin: 10px 0 0 !important;
		padding: 20px 18px !important;

		box-sizing: border-box !important;
	}
}



/* =========================================================
   05 FOR WOMEN SP FINAL FIX
========================================================= */

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

	/* セクション */
	#women {
		padding: 65px 0 70px !important;
		overflow: hidden !important;
	}

	/* SPでは完全1列 */
	#women .purpose-menu__grid {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 32px !important;

		width: 100% !important;
		min-width: 0 !important;
	}

	/* =========================
       写真
    ========================= */

	#women .purpose-photo--women {
		order: 1 !important;

		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		min-height: 0 !important;

		/* 今の縦長すぎる写真を少し短く */
		aspect-ratio: 4 / 3 !important;

		margin: 0 !important;

		border-radius: 42px 4px 42px 4px !important;
		overflow: hidden !important;
	}

	#women .purpose-photo--women .purpose-photo__img {
		width: 100% !important;
		height: 100% !important;

		object-fit: cover !important;

		/* 女性の顔・トレーニング姿を残す */
		object-position: center 45% !important;
	}

	/* =========================
       テキスト
    ========================= */

	#women .purpose-menu__content {
		order: 2 !important;

		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;

		padding: 0 !important;
		margin: 0 !important;
	}

	/* 05 */
	#women .purpose-menu__number {
		margin: 0 0 2px !important;

		font-size: 50px !important;
		line-height: 1 !important;

		text-align: left !important;
	}

	/* FOR WOMEN */
	#women .purpose-menu__en {
		margin: 0 0 15px !important;

		font-size: 10px !important;
		line-height: 1.3 !important;
		letter-spacing: .18em !important;

		text-align: left !important;
	}

	/* =========================
       見出し
    ========================= */

	#women .purpose-title--women,
	#women .purpose-menu__content h2 {
		width: 100% !important;
		max-width: 100% !important;

		margin: 0 !important;

		font-size: 28px !important;
		line-height: 1.32 !important;
		letter-spacing: -.045em !important;

		text-align: left !important;

		white-space: normal !important;
		word-break: keep-all !important;
		overflow-wrap: normal !important;
	}

	/* ★PC側のnowrapをSPでは解除 */
	#women .purpose-title--women span,
	#women .purpose-title--women em {
		display: block !important;
		max-width: 100% !important;

		white-space: normal !important;
	}

	/* 本文 */
	#women .purpose-menu__content>p:not(.purpose-menu__number):not(.purpose-menu__en) {
		width: 100% !important;
		max-width: 100% !important;

		margin: 20px 0 0 !important;

		font-size: 13px !important;
		line-height: 1.9 !important;

		text-align: left !important;
	}

	/* PC用改行はSPでは自然改行 */
	#women .purpose-menu__content>p br {
		display: none !important;
	}

	/* タグ */
	#women .purpose-tags {
		display: flex !important;
		flex-wrap: wrap !important;

		gap: 7px !important;

		margin-top: 22px !important;
	}

	#women .purpose-tags span {
		padding: 8px 11px !important;

		font-size: 10px !important;

		white-space: nowrap !important;
	}
}

/* =========================================================
   PURPOSE 06 / 07 / MESSAGE
   SP FINAL RESPONSIVE FIX
========================================================= */

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

	/* -----------------------------------------
       共通
    ----------------------------------------- */
	#kids,
	#students,
	.purpose-message {
		overflow: hidden !important;
	}

	#kids .purpose-container,
	#students .purpose-container,
	.purpose-message .purpose-container {
		width: calc(100% - 32px) !important;
		max-width: none !important;
		margin-inline: auto !important;
	}


	/* =====================================================
       06 KIDS
    ===================================================== */

	#kids {
		padding: 65px 0 70px !important;
	}

	#kids .purpose-menu__grid {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 32px !important;
		width: 100% !important;
	}

	/* 写真をSP用に正常化 */
	#kids .purpose-photo--kids {
		order: 1 !important;

		width: 100% !important;
		max-width: 100% !important;

		min-height: 0 !important;
		height: auto !important;

		aspect-ratio: 4 / 3 !important;

		margin: 0 !important;

		border-radius: 42px 4px 42px 4px !important;
		overflow: hidden !important;
	}

	#kids .purpose-photo--kids img {
		display: block !important;

		width: 100% !important;
		height: 100% !important;

		object-fit: cover !important;
		object-position: center 42% !important;
	}

	#kids .purpose-menu__content {
		order: 2 !important;

		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;

		padding: 0 !important;
	}

	#kids .purpose-menu__number {
		font-size: 50px !important;
		line-height: 1 !important;
	}

	#kids .purpose-menu__en {
		margin-bottom: 15px !important;

		font-size: 10px !important;
		letter-spacing: .18em !important;
	}

	/* ★見出し */
	#kids .purpose-title--kids {
		width: 100% !important;
		max-width: 100% !important;

		margin: 0 !important;

		font-size: 28px !important;
		line-height: 1.35 !important;
		letter-spacing: -.045em !important;

		text-align: left !important;

		word-break: keep-all !important;
		overflow-wrap: normal !important;
	}

	#kids .purpose-title--kids span {
		display: block !important;

		/* nowrapを解除 */
		white-space: normal !important;
	}

	/* できればこの2行で見せる */
	#kids .purpose-title--kids span:first-child {
		white-space: nowrap !important;
	}

	#kids .purpose-title--kids span.accent {
		white-space: nowrap !important;
		font-size: 26px !important;
	}

	#kids .purpose-menu__content>p:not(.purpose-menu__number):not(.purpose-menu__en) {
		width: 100% !important;

		margin-top: 20px !important;

		font-size: 13px !important;
		line-height: 1.9 !important;
	}

	#kids .purpose-menu__content>p br {
		display: none !important;
	}


	/* =====================================================
       07 STUDENTS
    ===================================================== */

	#students {
		padding: 65px 0 70px !important;
	}

	#students .purpose-menu__grid {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 32px !important;

		width: 100% !important;
	}

	/* COMING SOON写真枠 */
	#students .purpose-photo {
		order: 1 !important;

		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;

		min-height: 0 !important;
		height: auto !important;

		aspect-ratio: 4 / 3 !important;

		margin: 0 !important;

		border-radius: 42px 4px 42px 4px !important;
		overflow: hidden !important;
	}

	#students .purpose-photo__coming {
		width: 100% !important;
		height: 100% !important;
		min-height: 0 !important;

		display: flex !important;
		flex-direction: column !important;
		justify-content: center !important;
		align-items: center !important;
	}

	#students .purpose-menu__content {
		order: 2 !important;

		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;

		padding: 0 !important;
	}

	#students .purpose-menu__number {
		font-size: 50px !important;
		line-height: 1 !important;
	}

	#students .purpose-menu__en {
		margin-bottom: 15px !important;

		font-size: 10px !important;
		letter-spacing: .18em !important;
	}

	/* ★STUDENTS見出し */
	#students h2 {
		width: 100% !important;
		max-width: 100% !important;

		margin: 0 !important;

		font-size: 28px !important;
		line-height: 1.32 !important;
		letter-spacing: -.045em !important;

		text-align: left !important;

		word-break: keep-all !important;
		overflow-wrap: normal !important;
	}

	/* PCのnowrapを解除 */
	#students .student-title-line {
		display: block !important;
		white-space: nowrap !important;
	}

	#students h2 em {
		display: block !important;
		white-space: nowrap !important;

		font-style: normal !important;
	}

	#students .purpose-menu__content>p:not(.purpose-menu__number):not(.purpose-menu__en) {
		width: 100% !important;

		margin-top: 20px !important;

		font-size: 13px !important;
		line-height: 1.9 !important;
	}

	#students .purpose-menu__content>p br {
		display: none !important;
	}


	/* =====================================================
       ONE GYM. YOUR STYLE.
    ===================================================== */

	.purpose-message {
		min-height: 0 !important;

		padding: 80px 0 85px !important;

		background:
			linear-gradient(rgba(3, 48, 56, .80),
				rgba(3, 67, 74, .88)),
			url("../img/service-img5.jpg") center center / cover no-repeat !important;
	}

	.purpose-message .purpose-container {
		text-align: left !important;
	}

	.purpose-message .purpose-kicker {
		margin-bottom: 18px !important;

		font-size: 10px !important;
		letter-spacing: .20em !important;

		text-align: left !important;
	}

	.purpose-message h2 {
		width: 100% !important;
		max-width: 100% !important;

		margin: 0 !important;

		font-size: 31px !important;
		line-height: 1.3 !important;
		letter-spacing: -.045em !important;

		text-align: left !important;

		word-break: keep-all !important;
	}

	/* HTMLのbr位置だけで2行にする */
	.purpose-message h2 br {
		display: block !important;
	}

	.purpose-message h2 em {
		display: inline !important;

		font-style: normal !important;
		white-space: nowrap !important;
	}

	.purpose-message .purpose-container>p:last-child {
		width: 100% !important;
		max-width: 100% !important;

		margin-top: 25px !important;

		font-size: 13px !important;
		line-height: 1.9 !important;

		text-align: left !important;
	}

	.purpose-message .purpose-container>p:last-child br {
		display: none !important;
	}
}

/* =========================================================
   PURPOSE CTA SP FINAL FIX
========================================================= */

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

	.purpose-cta {
		padding: 78px 16px 82px !important;
		min-height: 0 !important;

		background:
			linear-gradient(rgba(3, 48, 56, .82),
				rgba(3, 48, 56, .92)),
			url("../img/top-service-img2.jpg") center center / cover no-repeat !important;
	}

	.purpose-cta .purpose-container {
		width: 100% !important;
		max-width: 100% !important;

		padding: 0 !important;
		margin: 0 auto !important;

		text-align: center !important;
	}

	/* START YOUR TRAINING */
	.purpose-cta .purpose-kicker {
		margin: 0 0 18px !important;

		font-size: 10px !important;
		line-height: 1.4 !important;
		letter-spacing: .18em !important;

		text-align: center !important;
	}

	/* =========================
       メイン見出し
    ========================= */

	.purpose-cta h2 {
		width: 100% !important;
		max-width: 100% !important;

		margin: 0 auto !important;

		font-size: clamp(28px, 7.6vw, 34px) !important;
		line-height: 1.32 !important;
		letter-spacing: -.035em !important;

		text-align: center !important;

		word-break: keep-all !important;
		overflow-wrap: normal !important;
		white-space: normal !important;
	}

	/* HTMLにbrがある場合はその位置だけ改行 */
	.purpose-cta h2 br {
		display: block !important;
	}

	/* Shark Style Gymから。を途中で割らせない */
	.purpose-cta h2 em,
	.purpose-cta h2 span {
		display: inline !important;
		white-space: nowrap !important;
	}

	/* 本文 */
	.purpose-cta .purpose-lead,
	.purpose-cta .purpose-container>p:not(.purpose-kicker) {
		width: 100% !important;
		max-width: 320px !important;

		margin: 24px auto 0 !important;

		font-size: 13px !important;
		line-height: 1.9 !important;

		text-align: center !important;

		word-break: normal !important;
	}

	.purpose-cta .purpose-lead br,
	.purpose-cta .purpose-container>p:not(.purpose-kicker) br {
		display: none !important;
	}

	/* =========================
       CTAボタン
    ========================= */

	.purpose-cta__buttons,
	.purpose-cta__btns,
	.purpose-cta .purpose-buttons {
		display: flex !important;
		flex-direction: column !important;

		width: 100% !important;
		max-width: 100% !important;

		gap: 12px !important;

		margin: 30px auto 0 !important;
	}

	.purpose-cta__buttons a,
	.purpose-cta__btns a,
	.purpose-cta .purpose-buttons a {
		width: 100% !important;
		max-width: 100% !important;
		min-height: 54px !important;

		padding: 0 20px !important;

		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;

		box-sizing: border-box !important;

		font-size: 14px !important;
		white-space: nowrap !important;
	}
}

/* =========================================================
   04 KICKBOXING / SP COMPLETE OVERRIDE
   ※CSSの一番最後に置く
========================================================= */

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

	/* -----------------------------------------
       セクション
    ----------------------------------------- */
	body #kickboxing {
		padding: 56px 0 64px !important;
		overflow: hidden !important;
	}


	/* -----------------------------------------
       1カラム化
    ----------------------------------------- */
	body #kickboxing .purpose-menu__grid {
		display: flex !important;
		flex-direction: column !important;

		grid-template-columns: none !important;

		width: 100% !important;
		max-width: 100% !important;

		gap: 28px !important;
	}


	/* -----------------------------------------
       写真
    ----------------------------------------- */
	body #kickboxing .purpose-photo--kickboxing {
		order: 1 !important;

		position: relative !important;

		width: calc(100% - 32px) !important;
		max-width: 520px !important;

		/* 写真が縦なので縦長にする */
		aspect-ratio: 3 / 4 !important;

		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;

		margin:
			0 auto 8px !important;

		padding: 0 !important;

		overflow: hidden !important;

		border-radius:
			46px 5px 46px 5px !important;

		background: #06444c !important;

		box-shadow:
			14px 14px 0 rgba(40, 201, 197, .12) !important;
	}


	/* -----------------------------------------
       写真そのもの

       ★ coverを完全に無効化
       ★ 元写真全体を見せる
    ----------------------------------------- */
	body #kickboxing .purpose-photo--kickboxing .purpose-photo__img {

		position: absolute !important;
		inset: 0 !important;

		width: 100% !important;
		height: 100% !important;

		max-width: none !important;
		max-height: none !important;

		object-fit: contain !important;
		object-position: 50% 50% !important;

		transform: none !important;
		scale: 1 !important;

		margin: 0 !important;
		padding: 0 !important;

		display: block !important;

		border-radius: inherit !important;
	}


	/* -----------------------------------------
       テキスト部分
    ----------------------------------------- */
	body #kickboxing .purpose-menu__content {
		order: 2 !important;

		width: 100% !important;
		max-width: 100% !important;

		margin: 0 !important;
		padding:
			0 20px !important;

		box-sizing: border-box !important;
	}


	/* 04 */
	body #kickboxing .purpose-menu__number {
		margin:
			0 0 2px !important;

		font-size: 54px !important;
		line-height: 1 !important;
	}


	/* KICKBOXING */
	body #kickboxing .purpose-menu__en {
		margin:
			0 0 15px !important;
	}


	/* 見出し */
	body #kickboxing .purpose-title {
		margin:
			0 0 20px !important;

		font-size:
			clamp(37px, 10vw, 48px) !important;

		line-height: 1.28 !important;
	}


	/* 説明文 */
	body #kickboxing .purpose-menu__content>p:not(.purpose-menu__number):not(.purpose-menu__en) {

		line-height: 1.9 !important;
	}


	/* -----------------------------------------
       上のタグ
    ----------------------------------------- */
	body #kickboxing .purpose-tags {
		display: flex !important;
		flex-wrap: wrap !important;

		gap: 8px !important;

		margin-top: 20px !important;
	}

	body #kickboxing .purpose-tags span {
		margin: 0 !important;
	}


	/* -----------------------------------------
       RECOMMENDED / WHAT WE DO
    ----------------------------------------- */
	body #kickboxing .purpose-detail {
		width: 100% !important;

		margin-top: 30px !important;
	}

	body #kickboxing .purpose-detail__block {
		width: 100% !important;

		margin:
			0 0 16px !important;

		padding:
			24px 20px !important;

		box-sizing: border-box !important;
	}


	/* -----------------------------------------
       下部タグ
    ----------------------------------------- */
	body #kickboxing .purpose-training {
		display: flex !important;
		flex-wrap: wrap !important;

		gap: 8px !important;

		margin-top: 16px !important;
	}

}

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

	#kickboxing .purpose-photo--kickboxing {
		order: 1 !important;

		position: relative !important;

		width: 100% !important;
		max-width: none !important;

		aspect-ratio: 3 / 4 !important;

		margin: 0 !important;
		padding: 0 !important;

		overflow: hidden !important;

		border-radius: 0 0 46px 0 !important;

		background: #06444c !important;

		box-shadow:
			10px 14px 0 rgba(40, 201, 197, .12) !important;
	}

	#kickboxing .purpose-photo--kickboxing .purpose-photo__img {
		position: absolute !important;
		inset: 0 !important;

		width: 100% !important;
		height: 100% !important;

		object-fit: contain !important;
		object-position: center center !important;

		display: block !important;
		transform: none !important;
	}

	#kickboxing .purpose-menu__grid {
		gap: 20px !important;
	}
}

.student-photo {
	width: 100%;
	height: 100%;
	min-height: 620px;
	overflow: hidden;
	border-radius: 90px 8px 90px 8px;
	position: relative;

	box-shadow:
		28px 28px 0 rgba(46, 201, 198, .10);
}

.student-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}


/* =========================
   SP
========================= */
@media screen and (max-width: 768px) {

	.student-photo {
		min-height: 0;
		height: auto;
		aspect-ratio: 4 / 3;

		border-radius: 45px 6px 45px 6px;
		margin-bottom: 30px;
	}

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

}

/* =========================================================
   PURPOSE PAGE / SP MASTER
   これ以降にSP上書きを追加しない
========================================================= */

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

	html,
	body,
	.purpose-page {
		width: 100%;
		max-width: 100%;
		overflow-x: hidden;
	}

	.purpose-container {
		width: calc(100% - 32px) !important;
		max-width: 100% !important;
		margin-inline: auto !important;
	}

	.purpose-menu {
		padding: 64px 0 72px !important;
	}

	.purpose-menu__grid {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 30px !important;

		width: 100% !important;
		max-width: 100% !important;
	}

	.purpose-menu__content {
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;

		padding: 0 !important;
		margin: 0 !important;
	}

	.purpose-menu__content h2,
	.purpose-title {
		width: 100% !important;
		max-width: 100% !important;

		font-size: 28px !important;
		line-height: 1.32 !important;
		letter-spacing: -.04em !important;

		white-space: normal !important;
		word-break: normal !important;
		overflow-wrap: break-word !important;
	}

	.purpose-title span,
	.purpose-title em,
	.student-title-line {
		max-width: 100% !important;
		white-space: normal !important;
	}

	.purpose-menu__content>p:not(.purpose-menu__number):not(.purpose-menu__en) {
		width: 100% !important;
		max-width: 100% !important;

		font-size: 13px !important;
		line-height: 1.9 !important;

		overflow-wrap: break-word !important;
	}

	.purpose-tags,
	.purpose-training {
		display: flex !important;
		flex-wrap: wrap !important;
		max-width: 100% !important;
		gap: 7px !important;
	}

	.purpose-detail,
	.purpose-detail__block {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box !important;
	}
}

/* =========================================================
   PURPOSE HERO TITLE
   PC / SP 改行完全分離
========================================================= */


/* =========================
   PC
========================= */
@media screen and (min-width: 769px) {

	.purpose-hero__title {
		width: 100% !important;
		max-width: none !important;

		font-size: clamp(64px, 6.2vw, 112px) !important;
		line-height: 1.08 !important;
		letter-spacing: -0.055em !important;

		white-space: nowrap !important;
	}

	.purpose-hero__title span,
	.purpose-hero__title em {
		display: inline !important;
		white-space: nowrap !important;
	}

	.purpose-hero__title em {
		margin-left: 0.12em;
	}
}


/* =========================
   SP
========================= */
@media screen and (max-width: 768px) {

	.purpose-hero__title {
		width: 100% !important;

		font-size: 38px !important;
		line-height: 1.16 !important;
		letter-spacing: -0.055em !important;

		white-space: normal !important;
	}

	.purpose-hero__title span,
	.purpose-hero__title em {
		display: block !important;
		white-space: nowrap !important;
	}

	.purpose-hero__title em {
		margin-left: 0 !important;
	}
}

/* =========================================
   PURPOSE HERO 見出し PC / SP 最終調整
========================================= */

/* PC */
@media screen and (min-width: 769px) {

	.purpose-hero__title {
		width: 100% !important;
		max-width: 1200px !important;

		font-size: clamp(72px, 6vw, 104px) !important;
		line-height: 1.02 !important;
		letter-spacing: -0.055em !important;

		white-space: normal !important;
	}

	.purpose-hero__title span,
	.purpose-hero__title em {
		display: block !important;
		white-space: nowrap !important;
	}

	.purpose-hero__title em {
		margin-top: 6px !important;
		margin-left: 0 !important;
	}
}


/* SP */
@media screen and (max-width: 768px) {

	.purpose-hero__title {
		width: 100% !important;

		font-size: 38px !important;
		line-height: 1.15 !important;
		letter-spacing: -0.05em !important;
	}

	.purpose-hero__title span,
	.purpose-hero__title em {
		display: block !important;
		white-space: nowrap !important;
	}

	.purpose-hero__title em {
		margin-top: 4px !important;
		margin-left: 0 !important;
	}
}

/* =========================================================
   04 KICKBOXING SP CLEAN FINAL
========================================================= */

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

	/* セクション */
	#kickboxing {
		padding: 65px 0 70px !important;
		overflow: hidden !important;
	}

	/* 1列 */
	#kickboxing .purpose-menu__grid {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 34px !important;

		width: 100% !important;
		min-width: 0 !important;

		align-items: stretch !important;
	}

	/* 写真 */
	#kickboxing .purpose-photo--kickboxing {
		order: 1 !important;

		width: 100% !important;
		max-width: 100% !important;

		min-width: 0 !important;
		min-height: 0 !important;

		aspect-ratio: 4 / 3 !important;

		margin: 0 !important;

		border-radius: 42px 4px 42px 4px !important;
		overflow: hidden !important;
	}

	#kickboxing .purpose-photo--kickboxing .purpose-photo__img {
		position: absolute !important;
		inset: 0 !important;

		width: 100% !important;
		height: 100% !important;

		object-fit: cover !important;
		object-position: center center !important;

		transform: none !important;
	}

	/* テキスト */
	#kickboxing .purpose-menu__content {
		order: 2 !important;

		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;

		padding: 0 !important;
		margin: 0 !important;
	}

	/* 04 */
	#kickboxing .purpose-menu__number {
		margin: 0 0 3px !important;

		font-size: 52px !important;
		line-height: 1 !important;
	}

	/* KICKBOXING */
	#kickboxing .purpose-menu__en {
		margin: 0 0 18px !important;

		font-size: 10px !important;
		line-height: 1.3 !important;
		letter-spacing: .18em !important;
	}

	/* 見出し */
	#kickboxing .purpose-title--kick {
		width: 100% !important;
		max-width: 100% !important;

		margin: 0 !important;

		font-size: 31px !important;
		line-height: 1.25 !important;
		letter-spacing: -0.045em !important;

		word-break: keep-all !important;
		overflow-wrap: normal !important;
	}

	/* HTMLの2つのspanで2行固定 */
	#kickboxing .purpose-title--kick span {
		display: block !important;
		white-space: nowrap !important;
	}

	/* 本文 */
	#kickboxing .purpose-menu__content>p:not(.purpose-menu__number):not(.purpose-menu__en) {
		margin: 20px 0 0 !important;

		font-size: 13px !important;
		line-height: 1.9 !important;
	}

	#kickboxing .purpose-menu__content>p br {
		display: none !important;
	}

	/* タグ */
	#kickboxing .purpose-tags {
		display: flex !important;
		flex-wrap: wrap !important;

		gap: 7px !important;
		margin-top: 22px !important;
	}

	#kickboxing .purpose-tags span {
		padding: 8px 11px !important;

		font-size: 10px !important;
		white-space: nowrap !important;
	}
}

/* ========================================
   KICKBOXING 見出し SP 最終上書き
======================================== */

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

	#kickboxing h2.purpose-title--kick {
		font-size: 26px !important;
		line-height: 1.35 !important;
		letter-spacing: -0.04em !important;
		width: 100% !important;
		max-width: 100% !important;
	}

	#kickboxing h2.purpose-title--kick span {
		display: block !important;
		font-size: inherit !important;
		line-height: inherit !important;
		white-space: nowrap !important;
	}
}

/* =========================================================
   QUICK CONTACT FINAL
========================================================= */

/* ---------- PC ---------- */
@media screen and (min-width: 769px) {

	.quick-contact {
		position: fixed;
		top: 50%;
		right: 0;
		z-index: 9999;

		display: flex;
		flex-direction: column;

		width: 50px;

		transform: translateY(-50%);
		overflow: visible;
	}

	.quick-contact__item {
		position: relative;

		display: block;

		width: 50px;
		height: 58px;

		margin: 0;
		padding: 0;

		overflow: visible;

		color: #fff;
		text-decoration: none;

		border: 0;
		border-radius: 0;
	}

	/* 背景 */
	.quick-contact__item::before {
		content: "";

		position: absolute;
		top: 0;
		right: 0;

		width: 50px;
		height: 58px;

		z-index: -1;

		transition: width .25s ease;
	}

	.quick-contact__tel::before {
		background: #075865;
	}

	.quick-contact__access::before {
		background: #15958f;
	}

	.quick-contact__mail::before {
		background: #2fc4be;
	}

	/* hoverで左へ展開 */
	.quick-contact__item:hover::before {
		width: 185px;
	}

	/* アイコン */
	.quick-contact__icon {
		position: absolute;
		top: 0;
		right: 0;

		display: flex;
		align-items: center;
		justify-content: center;

		width: 50px;
		height: 58px;

		margin: 0;
		padding: 0;

		background: transparent;

		color: #fff;
	}

	.quick-contact__icon i {
		color: #fff;
		font-size: 17px;
	}

	/* 電話だけ少し小さく */
	.quick-contact__tel .quick-contact__icon i {
		font-size: 15px;
	}

	/* 文字 */
	.quick-contact__text {
		position: absolute;
		top: 0;
		right: 50px;

		display: flex;
		align-items: center;
		justify-content: center;

		width: 135px;
		height: 58px;

		gap: 7px;

		padding: 0 10px;

		opacity: 0;
		visibility: hidden;

		transform: translateX(10px);

		transition:
			opacity .18s ease,
			transform .18s ease,
			visibility .18s ease;
	}

	.quick-contact__item:hover .quick-contact__text {
		opacity: 1;
		visibility: visible;

		transform: translateX(0);
	}

	.quick-contact__text strong {
		color: #fff;

		font-size: 13px;
		font-weight: 700;

		white-space: nowrap;
	}

	.quick-contact__text small {
		color: rgba(255, 255, 255, .7);

		font-size: 8px;
		font-weight: 700;

		white-space: nowrap;
	}
}


/* ---------- SP ---------- */
@media screen and (max-width: 768px) {

	.quick-contact {
		position: fixed;

		top: auto;
		right: 0;
		bottom: 0;
		left: 0;

		z-index: 9999;

		display: grid;
		grid-template-columns: repeat(3, 1fr);

		width: 100%;
		height: 64px;

		transform: none;
	}

	.quick-contact__item {
		display: flex;

		align-items: center;
		justify-content: center;

		width: 100%;
		height: 64px;

		color: #fff;
		text-decoration: none;
	}

	.quick-contact__tel {
		background: #075865;
	}

	.quick-contact__access {
		background: #15958f;
	}

	.quick-contact__mail {
		background: #2fc4be;
	}

	.quick-contact__icon {
		position: static;

		display: flex;
		align-items: center;
		justify-content: center;

		width: 30px;
		height: 30px;

		margin-right: 7px;

		border-radius: 50%;

		background: #fff;

		color: #063e47;
	}

	.quick-contact__icon i {
		color: #063e47;
		font-size: 13px;
	}

	.quick-contact__text {
		position: static;

		display: flex;
		flex-direction: column;

		width: auto;
		height: auto;

		opacity: 1;
		visibility: visible;

		transform: none;
	}

	.quick-contact__text strong {
		color: #fff;
		font-size: 11px;
		font-weight: 700;
	}

	.quick-contact__text small {
		display: none;
	}

	body {
		padding-bottom: 64px;
	}
}

/* =========================================================
   PURPOSE PAGE
   SP 横幅・余白 最終修正
   ★ purpose.css の一番最後
========================================================= */

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

	/* -----------------------------------------
       01〜08 セクション共通
    ----------------------------------------- */

	.purpose-menu .purpose-container,
	#diet .purpose-container,
	#bodymake .purpose-container,
	#boxing .purpose-container,
	#kickboxing .purpose-container,
	#women .purpose-container,
	#kids .purpose-container,
	#students .purpose-container,
	#health .purpose-container {

		width: calc(100% - 36px) !important;
		max-width: none !important;

		margin-left: auto !important;
		margin-right: auto !important;

		padding-left: 0 !important;
		padding-right: 0 !important;

		box-sizing: border-box !important;
	}


	/* -----------------------------------------
       Gridを親幅からはみ出させない
    ----------------------------------------- */

	.purpose-menu .purpose-menu__grid,
	#diet .purpose-menu__grid,
	#bodymake .purpose-menu__grid,
	#boxing .purpose-menu__grid,
	#kickboxing .purpose-menu__grid,
	#women .purpose-menu__grid,
	#kids .purpose-menu__grid,
	#students .purpose-menu__grid,
	#health .purpose-menu__grid {

		width: 100% !important;
		max-width: 100% !important;

		margin-left: 0 !important;
		margin-right: 0 !important;

		padding-left: 0 !important;
		padding-right: 0 !important;

		box-sizing: border-box !important;
	}


	/* -----------------------------------------
       テキストエリア
    ----------------------------------------- */

	.purpose-menu__content,
	#diet .purpose-menu__content,
	#bodymake .purpose-menu__content,
	#boxing .purpose-menu__content,
	#kickboxing .purpose-menu__content,
	#women .purpose-menu__content,
	#kids .purpose-menu__content,
	#students .purpose-menu__content,
	#health .purpose-menu__content {

		width: 100% !important;
		max-width: 100% !important;

		margin-left: 0 !important;
		margin-right: 0 !important;

		padding-left: 0 !important;
		padding-right: 0 !important;

		box-sizing: border-box !important;

		transform: none !important;
	}


	/* -----------------------------------------
       写真
    ----------------------------------------- */

	.purpose-photo,
	#diet .purpose-photo,
	#bodymake .purpose-photo,
	#boxing .purpose-photo,
	#kickboxing .purpose-photo,
	#women .purpose-photo,
	#kids .purpose-photo,
	#students .purpose-photo,
	#health .purpose-photo {

		width: 100% !important;
		max-width: 100% !important;

		margin-left: auto !important;
		margin-right: auto !important;

		box-sizing: border-box !important;
	}


	.purpose-photo__img {

		display: block !important;

		width: 100% !important;
		max-width: 100% !important;

		box-sizing: border-box !important;
	}


	/* -----------------------------------------
       本文が横にはみ出さない
    ----------------------------------------- */

	.purpose-menu__content h2,
	.purpose-menu__content p,
	.purpose-tags,
	.purpose-detail,
	.purpose-detail__block,
	.purpose-parent-note {

		max-width: 100% !important;

		box-sizing: border-box !important;
	}

}

/* =========================================================
   PURPOSE 01〜08 SP
   TEXT AREA FINAL FIX
   ★ この下には何も追加しない
========================================================= */
@media screen and (max-width: 768px) {

	/* =====================================================
	   01〜08：写真は広く表示
	===================================================== */

	#diet .purpose-container,
	#bodymake .purpose-container,
	#boxing .purpose-container,
	#kickboxing .purpose-container,
	#women .purpose-container,
	#kids .purpose-container,
	#students .purpose-container,
	#health .purpose-container {
		width: 100% !important;
		max-width: 100% !important;

		margin: 0 !important;
		padding: 0 !important;

		box-sizing: border-box !important;
	}


	/* =====================================================
	   Grid
	===================================================== */

	#diet .purpose-menu__grid,
	#bodymake .purpose-menu__grid,
	#boxing .purpose-menu__grid,
	#kickboxing .purpose-menu__grid,
	#women .purpose-menu__grid,
	#kids .purpose-menu__grid,
	#students .purpose-menu__grid,
	#health .purpose-menu__grid {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;

		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;

		gap: 30px !important;

		margin: 0 !important;
		padding: 0 !important;

		box-sizing: border-box !important;
	}


	/* =====================================================
	   写真
	   左右はほぼ画面いっぱい
	===================================================== */

	#diet .purpose-photo,
	#bodymake .purpose-photo,
	#boxing .purpose-photo,
	#women .purpose-photo,
	#kids .purpose-photo,
	#students .purpose-photo,
	#health .purpose-photo {
		width: calc(100% - 20px) !important;
		max-width: calc(100% - 20px) !important;

		margin-left: 0 !important;
		margin-right: 20px !important;

		box-sizing: border-box !important;
	}


	/* 04は今の表示が良いので写真を触りすぎない */
	#kickboxing .purpose-photo {
		max-width: calc(100% - 40px) !important;
		margin-left: 20px !important;
		margin-right: 20px !important;
	}


	/* =====================================================
	   ★テキストエリア
	   今回の本命
	===================================================== */

	#diet .purpose-menu__content,
	#bodymake .purpose-menu__content,
	#boxing .purpose-menu__content,
	#kickboxing .purpose-menu__content,
	#women .purpose-menu__content,
	#kids .purpose-menu__content,
	#students .purpose-menu__content,
	#health .purpose-menu__content {
		position: static !important;

		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;

		margin: 0 !important;

		/* ★左右の安全余白 */
		padding-left: 20px !important;
		padding-right: 20px !important;

		transform: none !important;

		box-sizing: border-box !important;
	}


	/* =====================================================
	   番号・英字
	===================================================== */

	.purpose-menu__number {
		margin: 0 0 2px !important;

		font-size: 48px !important;
		line-height: 1 !important;
	}

	.purpose-menu__en {
		margin: -5px 0 16px !important;

		font-size: 10px !important;
		line-height: 1.3 !important;
		letter-spacing: .16em !important;
	}


	/* =====================================================
	   メイン見出し
	===================================================== */

	#diet .purpose-menu__content h2,
	#bodymake .purpose-menu__content h2,
	#boxing .purpose-menu__content h2,
	#kickboxing .purpose-menu__content h2,
	#women .purpose-menu__content h2,
	#kids .purpose-menu__content h2,
	#students .purpose-menu__content h2,
	#health .purpose-menu__content h2 {
		width: 100% !important;
		max-width: 100% !important;

		margin: 0 !important;

		font-size: 28px !important;
		line-height: 1.35 !important;
		letter-spacing: -0.045em !important;

		text-align: left !important;

		white-space: normal !important;
		word-break: normal !important;
		overflow-wrap: normal !important;

		box-sizing: border-box !important;
	}


	/* 色付き2行目 */
	.purpose-menu__content h2 em,
	.purpose-title span,
	#students .student-title-line {
		max-width: 100% !important;

		white-space: normal !important;
		word-break: normal !important;
		overflow-wrap: normal !important;
	}


	/* =====================================================
	   01・02・03・07・08はHTMLのbrで2行維持
	===================================================== */

	#diet h2 br,
	#bodymake h2 br,
	#boxing h2 br,
	#students h2 br,
	#health h2 br {
		display: block !important;
	}


	/* =====================================================
	   説明文
	===================================================== */

	.purpose-menu__content>p:not(.purpose-menu__number):not(.purpose-menu__en) {
		width: 100% !important;
		max-width: 100% !important;

		margin: 20px 0 0 !important;

		font-size: 13px !important;
		line-height: 1.9 !important;
		letter-spacing: 0 !important;

		white-space: normal !important;
		word-break: normal !important;
		overflow-wrap: break-word !important;

		box-sizing: border-box !important;
	}


	/* 説明文のPC用brはSPでは解除 */
	.purpose-menu__content>p:not(.purpose-menu__number):not(.purpose-menu__en) br {
		display: none !important;
	}


	/* =====================================================
	   上部タグ
	===================================================== */

	.purpose-tags {
		display: flex !important;
		flex-wrap: wrap !important;

		width: 100% !important;

		gap: 7px !important;

		margin: 22px 0 0 !important;
		padding: 0 !important;
	}

	.purpose-tags span {
		padding: 7px 10px !important;

		font-size: 10px !important;

		white-space: nowrap !important;
	}


	/* =====================================================
	   RECOMMENDED / WHAT WE DO
	===================================================== */

	.purpose-detail {
		width: 100% !important;

		margin: 26px 0 0 !important;
		padding: 0 !important;

		box-sizing: border-box !important;
	}

	.purpose-detail__block {
		width: 100% !important;
		max-width: 100% !important;

		margin: 10px 0 0 !important;
		padding: 20px 18px !important;

		box-sizing: border-box !important;

		border-radius: 4px 22px 4px 22px !important;
	}


	/* =====================================================
	   06 FOR PARENTS
	===================================================== */

	#kids .purpose-parent-note {
		width: 100% !important;
		max-width: 100% !important;

		margin: 22px 0 0 !important;

		box-sizing: border-box !important;
	}


	/* =====================================================
	   下部タグ
	===================================================== */

	.purpose-training {
		display: flex !important;
		flex-wrap: wrap !important;

		width: 100% !important;

		gap: 6px !important;

		margin: 16px 0 0 !important;
		padding: 0 !important;
	}
}

/* =========================================================
   PURPOSE 04 / 05 / 06
   LARGE DESKTOP PHOTO BALANCE
   SPには影響しない
========================================================= */
@media screen and (min-width: 1200px) {

	/* =====================================================
	   04 KICKBOXING
	   写真が細すぎるので少し横幅を出す
	===================================================== */

	#kickboxing .purpose-menu__grid {
		grid-template-columns: minmax(0, 1.15fr) minmax(400px, .85fr) !important;
		gap: clamp(60px, 5vw, 100px) !important;
		align-items: center !important;
	}

	#kickboxing .purpose-photo--kickboxing {
		width: 100% !important;
		max-width: 560px !important;

		min-height: 0 !important;
		aspect-ratio: 4 / 5 !important;

		margin-left: auto !important;
		margin-right: 0 !important;

		border-radius: 70px 4px 70px 4px !important;
	}

	#kickboxing .purpose-photo--kickboxing .purpose-photo__img {
		width: 100% !important;
		height: 100% !important;

		object-fit: cover !important;
		object-position: center 48% !important;
	}


	/* =====================================================
	   05 WOMEN
	   現状やや写真が小さいので少し大きく
	===================================================== */

	#women .purpose-menu__grid {
		grid-template-columns: minmax(420px, .9fr) minmax(0, 1.25fr) !important;
		gap: clamp(65px, 5vw, 105px) !important;
		align-items: center !important;
	}

	#women .purpose-photo--women {
		width: 100% !important;
		max-width: 560px !important;

		min-height: 0 !important;
		aspect-ratio: 4 / 5 !important;

		margin-left: 0 !important;
		margin-right: auto !important;

		border-radius: 70px 6px 70px 6px !important;
	}

	#women .purpose-photo--women .purpose-photo__img {
		width: 100% !important;
		height: 100% !important;

		object-fit: cover !important;
		object-position: 50% 45% !important;
	}


	/* =====================================================
	   06 KIDS
	   現状縦長すぎるので横幅を出し、高さを抑える
	===================================================== */

	#kids .purpose-menu__grid {
		grid-template-columns: minmax(0, 1.25fr) minmax(380px, .82fr) !important;
		gap: clamp(70px, 5vw, 110px) !important;
		align-items: center !important;
	}

	#kids .purpose-photo--kids {
		width: 100% !important;
		max-width: 520px !important;

		min-height: 0 !important;
		height: auto !important;
		aspect-ratio: 4 / 5 !important;

		margin-left: auto !important;
		margin-right: 0 !important;

		border-radius: 70px 6px 70px 6px !important;
	}

	#kids .purpose-photo--kids .purpose-photo__img {
		width: 100% !important;
		height: 100% !important;

		object-fit: cover !important;
		object-position: 50% 40% !important;

		transform: none !important;
	}
}

/* =========================================================
   06 KIDS PHOTO SLIDER
========================================================= */

#kids .kids-photo-slider {
	position: relative;
	overflow: hidden;
}


/* 各写真 */
#kids .kids-photo-slide {
	position: absolute;
	inset: 0;

	width: 100%;
	height: 100%;

	opacity: 0;
	visibility: hidden;

	transform: scale(1.04);

	transition:
		opacity 1s ease,
		transform 5s ease,
		visibility 1s ease;
}


/* 現在表示している写真 */
#kids .kids-photo-slide.is-active {
	opacity: 1;
	visibility: visible;
	transform: scale(1);
	z-index: 2;
}


/* 写真 */
#kids .kids-photo-slide img {
	display: block;

	width: 100%;
	height: 100%;

	object-fit: cover;
	object-position: center;

	border-radius: inherit;
}


/* =========================================================
   DOTS
========================================================= */

#kids .kids-photo-dots {
	position: absolute;

	left: 50%;
	bottom: 18px;

	transform: translateX(-50%);

	z-index: 20;

	display: flex;
	align-items: center;
	justify-content: center;

	gap: 6px;
}


/* 通常のドット */
#kids .kids-photo-dots button {
	display: block;

	width: 7px;
	height: 7px;

	padding: 0;
	margin: 0;

	border: 0;
	border-radius: 50%;

	background: rgba(255, 255, 255, 0.55);

	cursor: pointer;

	transition:
		width 0.3s ease,
		background 0.3s ease;
}


/* 現在表示中 */
#kids .kids-photo-dots button.is-active {
	width: 22px;

	border-radius: 20px;

	background: #fff;
}


/* =========================================================
   SP
========================================================= */

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

	#kids .kids-photo-dots {
		bottom: 12px;
		gap: 5px;
	}

	#kids .kids-photo-dots button {
		width: 5px;
		height: 5px;
	}

	#kids .kids-photo-dots button.is-active {
		width: 16px;
	}

}

/* ========================================
   PURPOSE HERO SP 改行調整
======================================== */

.purpose-hero__lead-line {
	display: block;
}

.purpose-hero__lead-space {
	display: block;
	height: 1em;
}

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

	.purpose-hero__lead {
		font-size: 16px !important;
		line-height: 1.8 !important;
		letter-spacing: -0.035em !important;
	}

	.purpose-hero__lead-line {
		display: block;
		white-space: nowrap;
	}

	.purpose-hero__lead-space {
		height: 1.15em;
	}
}

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

	.purpose-detail__text span {
		display: block;
		white-space: nowrap;
	}

	.purpose-detail__text {
		font-size: 14px !important;
		line-height: 1.9 !important;
		letter-spacing: -0.03em !important;
	}
}

/* ========================================
   PURPOSE SELECT 説明文 SP改行調整
======================================== */
@media screen and (max-width: 768px) {

	.purpose-select .purpose-lead span {
		display: block;
		white-space: nowrap;
	}

	.purpose-select .purpose-lead {
		font-size: 15px !important;
		line-height: 1.9 !important;
		letter-spacing: -0.03em !important;
	}
}

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

	.purpose-detail__text span {
		display: block;
		white-space: nowrap;
	}

	.purpose-detail__text {
		font-size: 14px !important;
		line-height: 1.9 !important;
		letter-spacing: -0.03em !important;
	}
}

/* ========================================
   DIET 説明文 PC改行調整
======================================== */
@media screen and (min-width: 769px) {

	#diet .purpose-detail__text span:first-child {
		display: block;
	}

	#diet .purpose-detail__text span:nth-child(2),
	#diet .purpose-detail__text span:nth-child(3) {
		display: inline;
	}

	#diet .purpose-detail__text span:nth-child(2)::after {
		content: "";
	}
}

/* ========================================
   BODY MAKE 説明文
   PC / SP 改行を分ける
======================================== */

/* PC */
.bodymake-lead__pc {
	display: inline;
}

.bodymake-lead__sp {
	display: none;
}


/* SP */
@media screen and (max-width: 768px) {

	.bodymake-lead__pc {
		display: none !important;
	}

	.bodymake-lead__sp {
		display: block !important;
		font-size: 14px;
		line-height: 1.9;
		letter-spacing: -0.04em;
	}
}

/* ========================================
   BODY MAKE 説明文
   PC / SP 改行調整
======================================== */

/* PC */
.bodymake-lead__pc {
	display: inline;
}

.bodymake-lead__sp {
	display: none;
}


/* SP */
@media screen and (max-width: 768px) {

	.bodymake-lead__pc {
		display: none !important;
	}

	.bodymake-lead__sp {
		display: block !important;
		font-size: 14px !important;
		line-height: 2 !important;
		letter-spacing: -0.04em !important;
	}

}

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

	#boxing .purpose-detail__block--accent h3 {
		font-size: 17px !important;
		line-height: 1.5 !important;
		letter-spacing: -0.06em !important;
		white-space: nowrap !important;
	}

}

/* PC */
.whatwedo-text .pc-only {
	display: inline;
}

.whatwedo-text .sp-only {
	display: none;
}


/* SPのみ */
@media screen and (max-width: 768px) {

	.whatwedo-text .pc-only {
		display: none !important;
	}

	.whatwedo-text .sp-only {
		display: block !important;
		font-size: 13px;
		line-height: 1.9;
		letter-spacing: -0.03em;
	}
}

/* ========================================
   FOR WOMEN 説明文 PC / SP
======================================== */

/* PC */
#women .forwomen-lead--pc {
	display: block;
}

#women .forwomen-lead--sp {
	display: none;
}


/* SP */
@media screen and (max-width: 768px) {

	#women .forwomen-lead--pc {
		display: none !important;
	}

	#women .forwomen-lead--sp {
		display: block !important;

		width: 100% !important;
		max-width: 100% !important;

		margin: 20px 0 0 !important;

		font-size: 13px !important;
		line-height: 1.9 !important;
		letter-spacing: -0.03em !important;

		white-space: normal !important;
		word-break: normal !important;
		overflow-wrap: normal !important;
	}

}

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

	#women .purpose-menu__content>p.forwomen-lead--pc {
		display: none !important;
	}

	#women .purpose-menu__content>p.forwomen-lead--sp {
		display: block !important;

		width: 100% !important;
		max-width: 100% !important;
		margin: 20px 0 0 !important;

		font-size: 13px !important;
		line-height: 1.9 !important;
		letter-spacing: -0.03em !important;

		white-space: normal !important;
		word-break: normal !important;
		overflow-wrap: normal !important;
	}

	/* ★ここが今回の決定版 */
	#women .purpose-menu__content>p.forwomen-lead--sp br {
		display: inline !important;
	}

}

/* =========================================================
   KIDS PC / SP 改行 最終設定
========================================================= */

.kids-pc {
	display: inline;
}

.kids-sp {
	display: none;
}

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

	#kids .kids-pc {
		display: none !important;
	}

	#kids .kids-sp {
		display: inline !important;
	}

	#kids .kids-intro-text br,
	#kids .purpose-parent-note br {
		display: block !important;
		content: "";
	}
}

/* =========================================================
   06 KIDS SP FINAL
   ※ purpose.css 最下部
========================================================= */

.kids-pc {
	display: inline;
}

.kids-sp {
	display: none;
}

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

	/* PC文章を消す */
	#kids .kids-pc {
		display: none !important;
	}

	/* SP文章を表示 */
	#kids .kids-sp {
		display: block !important;
	}

	/* SP用に指定したbrだけ有効化 */
	#kids .kids-sp br {
		display: block !important;
	}

	/* 見出し */
	#kids .purpose-title--kids {
		font-size: 28px !important;
		line-height: 1.35 !important;
		letter-spacing: -0.045em !important;
	}

	#kids .purpose-title--kids span {
		display: block !important;
		white-space: nowrap !important;
	}

	/* 通常説明文 */
	#kids .kids-intro-text {
		margin-top: 22px !important;
		font-size: 13px !important;
		line-height: 1.9 !important;
	}

	/* FOR PARENTS */
	#kids .purpose-parent-note {
		width: 100% !important;
		margin: 22px 0 0 !important;
		padding: 18px 20px 18px 22px !important;
		box-sizing: border-box !important;
		font-size: 13px !important;
		line-height: 1.9 !important;
	}

	#kids .purpose-parent-note .kids-sp {
		white-space: normal !important;
	}
}

/* =========================================================
   STUDENTS 説明文 PC / SP
========================================================= */

/* PC */
#students .students-lead--pc {
	display: block;
}

#students .students-lead--sp {
	display: none;
}


/* SP */
@media screen and (max-width: 768px) {

	#students .students-lead--pc {
		display: none !important;
	}

	#students .students-lead--sp {
		display: block !important;

		width: 100% !important;
		max-width: 100% !important;

		margin-top: 20px !important;

		font-size: 13px !important;
		line-height: 1.9 !important;
		letter-spacing: -0.035em !important;

		word-break: normal !important;
		overflow-wrap: normal !important;
	}

	/* 既存の display:none !important を打ち消す */
	#students .purpose-menu__content>p.students-lead--sp br {
		display: block !important;
	}
}

/* ========================================
   STUDENTS WHAT WE DO 見出し SP1行固定
======================================== */
@media screen and (max-width: 768px) {

	#students .purpose-detail__block--accent h3 {
		font-size: 13px !important;
		line-height: 1.5 !important;
		letter-spacing: -0.045em !important;

		white-space: nowrap !important;
		word-break: keep-all !important;
		overflow-wrap: normal !important;
	}

}

/* ========================================
   ONE GYM MESSAGE SP 実機対策
======================================== */
@media screen and (max-width: 768px) {

	.purpose-message h2 {
		font-size: 27px !important;
		line-height: 1.28 !important;
		letter-spacing: -0.05em !important;
	}

	.purpose-message h2 em {
		display: block !important;
		font-size: 22px !important;
		line-height: 1.35 !important;
		letter-spacing: -0.055em !important;
		white-space: nowrap !important;
	}
}

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

	.purpose-message .purpose-container>p:last-child {
		font-size: 12px !important;
		line-height: 1.9 !important;
		letter-spacing: -0.025em !important;

		word-break: normal !important;
		overflow-wrap: break-word !important;
	}
}

/* ========================================
   ONE GYM MESSAGE
   PC / SP 共通でHTMLのbrを有効化
======================================== */

.purpose-message .purpose-container>p:last-child br {
	display: block !important;
}