@charset "UTF-8";

@media only screen and (max-width : 768px) {
	/*-----------------------
スマホ・タブレット用レイアウト（768px以下スクリーン）
----------------------*/

	/*------------------
共通設定(スマホ)
-------------------*/

	/* はみ出した領域は非表示にする*/
	html {
		overflow-y: scroll;
		overflow-x: hidden;
	}

	html,
	body {
		width: 100%;
		-webkit-text-size-adjust: 100%;
		-ms-text-size-adjust: 100%;
	}

	/*画像サイズの調整*/
	img {
		height: auto;
		max-width: 100%;
	}

	/*H2タグ*/
	h2 {
		margin: 0.5em 0 0.5em;
		font-size: clamp(1.3em, 2.5vw, 1.6em);
		font-weight: bold;
		text-align: center;
	}

	/*H3タグ*/
	h3 {
		margin: 0 0 0.5em;
		padding: 0.3em 0em;
		font-size: 1.6em;
		font-weight: bold;
	}


	/*--------------------------------------------------------
全体レイアウト/背景設定(スマホ・タブレット)
--------------------------------------------------------*/

	/*全体エリア(全体背景の設定はここ)*/
	.main {
		background-color: #fff;
	}

	/*記事(ボディ)エリア*/
	.article {
		background-color: #fff;
		/*スマホの場合はカラムの線を消す*/
		border-left: none;
		border-right: none;
	}

	/*記事(ボディ)エリアの行間*/
	.article p {
		line-height: 1.8em;
	}

	/*記事(ボディ)エリアのフォントサイズ*/
	.article {
		font-size: 1.6em;
	}

	/*カラム全体の幅はスマホの場合固定*/
	.header_inr,
	.article,
	.atcl_inr,
	.top_image_in {
		width: 100%;
		margin: 0 auto
	}

	/*PC画面とスマホ画面の切り替え*/

	.gamen_pc {
		display: none;
	}

	.gamen_rps {
		display: block;
	}

	/*--------------------------------------------------------
上部固定ヘッダー設定
--------------------------------------------------------*/

	/*上部固定ヘッダー全体*/
	.header {
		border-bottom: 1px;
		overflow: auto;
	}

	/*ヘッダーロゴ*/
	.header_logo {
		float: left;
		width: 30%;
		margin-top: 6px;
		margin-left: 0px;
	}

	/*ヘッダー内の画像はエリア幅に合わせる*/
	.header_logo img {
		width: 100%;
	}

	.header_text {
		float: right;
		font-size: 1em;
		color: #fff;
		margin: 1.2em 0em 0em;
	}

	/*-----------------------------------------------------------------------------------------------------
ファーストビュー設定
-----------------------------------------------------------------------------------------------------*/


	/* FV全体は画面の上半分だけ使う */
	.fv {
		position: relative;
		width: 100%;
		height: 70vh;
		/* ← ここで「画面の1/2」に固定 */
		max-height: none;
		overflow: hidden;
	}

	/* 動画はFVをいっぱいに埋める */
	.fv_video {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	/* 白フィルターはそのまま全面にかぶせる */
	.fv::before {
		content: "";
		position: absolute;
		inset: 0;
		background: rgba(255, 255, 255, 0.3);
		z-index: 2;
	}

	/* テキスト画像を、動画の下側にかぶせる */
	.top_image_in {
		width: 100%;
		margin: 0 auto;
		position: relative;
		z-index: 3;
		padding: 0 16px;
	}

	.fv_content {
		position: absolute;
		left: 60%;
		bottom: 1%;
		transform: translateX(-50%);
		text-align: center;
		z-index: 3;
	}

	.fv_content img {
		width: 100%;
		max-width: 380px;
		height: auto;
		display: block;
		margin: 0 auto;
	}

	/*--------------------------
CV設定
-------------------------*/
	.cv_area {
		background: url(../images/haikei_SW_CV_area.png) left no-repeat #fff;
		text-align: center;
		padding-bottom: .5em;
		background-size: cover;
	}

	.cv_area_inr,
	.cv_area_inr02 {
		margin: 0 auto;
		padding: 0em 0.5em .5em;
		margin-top: .5em;
	}

	.cv_area_inr02 {
		margin-top: 0.5em;

	}

	.cv_mds {
		color: #333;
		font-weight: bold;
		font-size: 1.4em;
	}

	.cv_area_inr img {
		width: 100%;
	}

	.cv_area p {
		font-size: 1em;
	}


	/* --------------------------
フローチャートエリア設定
----------------------------*/

	.sec_sw_flowchart {
		background-color: #fff;
	}

	.sw_flowchar_inr {
		background: none !important;
		/* 背景画像を無効化 */
		height: auto;
		padding: 0em 0em;
		background-size: cover;
	}

	.sec_sw_flowchart img {
		width: 100%;
		margin: 0 !important;
	}

	.sw_flowchar_inr {
		height: auto;
		padding: .5em 0em 0em;
		background-size: cover;
	}


	/* --------------------------
ジム紹介エリア設定
----------------------------*/



	.SW_GYMtrainers_cntnr {
		display: flex;
		max-width: 300px;
		width: 100%;
		border: 2px solid #10223e;
		margin: 0 auto;
		margin-top: 1em;
		flex-direction: column;
		gap: 0em;
	}

	.GYM_reverse {
		flex-direction: column;
	}

	.GYMtrainers_text {
		padding: 0.8em .4em 0em;
	}

	.GYMtrainers_text img {
		max-width: auto;
		width: 100%;
	}

	.GYMtrainers_img.gamen_rps {
		display: flex;
		justify-content: flex-end;
	}

	.GYMtrainers_img img {
		height: 160px;
		margin-left: 0px;
		margin-right: -5px;
		margin-bottom: 0px;
	}

	.GYM_reverse.GYMtrainers_img {
		justify-content: flex-start;
	}

	.GYM_reverse .GYMtrainers_img img {
		margin-left: -15px;
		margin-right: 0;
	}

	/* ===== トレーナー紹介（小） ===== */
	.SW_GYMtrainers_area {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		margin-top: 1em;
		justify-content: center;
		padding: 0.5em;
	}

	/* 初期状態は非表示 */
	.trainer-text {
		display: none;
		font-size: 0.7em;
	}




	.SW_GYM_cntnr {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		/* 横4つ */
		gap: 40px 4px;
		justify-content: center;
		padding-top: 0.5em;
	}

	.GYM_fighter {
		display: flex;
		align-items: center;
		gap: 2px;
		flex-direction: column;
		justify-content: center;
	}


	.GYM_fighter img {
		width: 90px;
	}

	.fighter_sns img {
		width: 24px;
	}




	/* -------
文字背景設定
--------*/

	.text_decoration p {
		position: absolute;
		top: 0.8em;
		left: 0;
		font-size: 2em;
		font-weight: 700;
		color: #a7a7a7;
		opacity: 0.9;
		z-index: 0;
		pointer-events: none;
	}

	/* 本文の文字は前面に */
	.SW_GYM_text h2,
	.SW_GYM_text p {
		position: relative;
		z-index: 2;
	}




	/* --------------------------
シェイプアップエリア設定
----------------------------*/
	/* --- レーダーチャートエリア設定 --- */

	.radar_chart_cntnr {
		background-color: #fff;
		max-width: 960px;
		border: 3px solid #ffd301;
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 30px;
		margin: 0 auto;
		padding: 1.5em 1em;
		margin-top: 2em;
		flex-direction: column;
	}

	.radar_chart_cntnr img {
		max-width: auto;
		width: 100%;

	}

	/* --------------------------
おすすめエリア設定
----------------------------*/
	.sec_SW_osusume {
		background: url(../images/haikei_silverwolf_GYM.png) center no-repeat #fff;
		height: auto;
		background-size: cover;
		padding: 1em 0.5em;
	}

	/* 中身を2カラムに */
	.SW_osusume_inr {
		margin: 0 auto;
		padding: 1.5em 0em;
		display: grid;
		grid-template-columns: repeat(1, minmax(0, 1fr));
		gap: 30px 40px;
	}

	.osusume_cntnr p {
		font-size: .9em;
	}

	.osusume_cntnr {
		padding: .6em .2em;

	}

	/* --------------------------
理由エリア設定
----------------------------*/
	.sec_sw_reason {
		background: url(../images/haikei_SW_reason.png) center top no-repeat #000;
		height: auto;
		padding: 1em 0em;
	}


	.SW_reason_title img {
		max-width: 100%;
		padding: 0em 0.5em;
	}

	.SW_reason_cntnr,
	.SW_reason_cntnr02 {
		background-color: #ffd301;
		display: flex;
		margin: 0 auto;
		align-items: stretch;
		flex-direction: column;
		padding: 0;
		margin-top: 0.8em;
		margin-bottom: 1.4em;
	}



	.reason_text {
		flex: 1 1 50%;
		padding: 0.3em 1em;

	}

	.reason_mds {
		display: flex;
		align-items: center;
		flex-direction: column;
	}

	/* --------------------------
トレーニング設定
----------------------------*/
	.sec_SW_training {
		padding: 1.5em 0em;
		overflow: hidden;
	}

	.SW_training_inr {
		display: grid;
		grid-template-columns: repeat(1, 1fr);
		padding-bottom: 1.5em;
	}

	/* -------
文字背景設定
--------*/
	.text_decoration02 {
		position: relative;
		text-align: center;
	}

	.text_decoration02 p {
		position: absolute;
		top: -1.5em;
		/* ← 好きに調整 */
		left: 50%;
		transform: translateX(-50%);
		/* 完全中央揃え */
		font-size: 1.5em;
		font-weight: 700;
		color: #333;
		opacity: 0.2;
		/* 透明度 */
		z-index: 0;
		pointer-events: none;
		/* クリック邪魔しない */
	}

	/* ------- */


	.SW_training_cntnr img {
		max-width: 300px;
	}

	.suparuta_img {
		background-color: #fadb49;
		text-align: center;
		height: 100px;
		position: relative;
		overflow: visible;
	}

	.suparuta_img img {
		position: absolute;
		bottom: 0;
		left: 50%;
		transform: translateX(-50%);
		height: auto;
	}


	/* --------------------------
お客様の声エリア設定
----------------------------*/

	.sec_SW_voice {
		background-color: #fff;
		padding: 2em 0em;
	}

	.SW_voice_cntnr {
		display: grid;
		grid-template-columns: repeat(1, 1fr);
		gap: 20px;
	}

	.SW_voice_cntnr img {
		width: 100%;
		padding: 0em 0.5em;
	}

	/* --------------------------
料金エリア設定
----------------------------*/


	.SW_Price_inr {
		padding-top: 2em;
	}

	.SW_Price_inr h2 {
		padding-bottom: 0.5em;
	}





	/* -----------
料金表設定
------------*/
	.SW_Price_inr {
		padding: 2em 0.5em;
		text-align: center;
		margin: 0 auto;

	}

	.price_box {
		width: 100%;
		max-width: 620px;
		margin: 0 auto 2em;
		border: 2px solid #000;
		border-radius: 4px;
		overflow: hidden;
		background: #fff;
	}

	.price_row {
		display: flex;
		align-items: stretch;
	}

	.price_left {
		flex: 2;
		font-size: 1em;
		padding: 0.6em 0.2em;

	}

	.box_left {
		border-bottom: 1px solid #fff;

	}


	.price_right {
		flex: 3;
		font-size: 1.2rem;
		padding: 0.6em 0em;
		border-bottom: 1px solid #08244b;
	}

	.SW_price_servise_mds {
		background-color: #fff;
		display: inline-block;
		font-size: 1.2em;
		padding: 0.6em 1em;
	}


	.SW_price_program_cntnr {
		display: flex;
		gap: 20px;
		padding: 0.6em 0.2em 2em;
		justify-content: center;
		flex-wrap: wrap;
	}

	.SW_price_program_cntnr img {
		width: 100%;
	}


	.SW_price_service_cntnr {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 5px;
		max-width: 900px;
		margin: 0 auto;
		padding: 1.5em .6em;
	}


	/* --------------------------
流れエリア設定
----------------------------*/
	/* ---- セクション全体 ---- */
	.sec_SW_nagare {
		padding: 1em 0.5em;
		text-align: center;

	}

	/* ---- 上部見出し（黄色枠） ---- */
	.sec_SW_nagare h2 {
		margin-bottom: 1em;
	}

	/* ---- 白いボックス（画像＋テキスト） ---- */
	.Sw_nogare_cntnr {
		background-color: #fff;
		display: flex;
		flex-direction: column;
		justify-content: flex-end;
		align-items: center;
		gap: 10px;
		width: 100%;
		padding: 0em 0.5em;
		margin: 0 auto 1.5em;
		box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
	}



	/* ---- 画像側 ---- */
	.nagare_img img {
		width: 260px;
		height: 100%;
		display: block;
	}

	/* --------------------------
アクセスエリア設定
----------------------------*/

	/* セクション全体（濃紺背景） */
	.sec_SW_address {
		background: #08244b;
		padding: 1.5em 0;
	}

	/* 白いカード部分 */
	.SW_address_inr {
		max-width: 1000px;
		margin: 0 auto;
		background: #fff;
		padding: 2em .5em;
		margin-top: .5em;
	}

	.SW_address_cntnr {
		display: flex;
		gap: 1em;
		align-items: center;
		flex-direction: column;

	}

	.SW_address_map iframe {
		width: 100%;
		height: 300px;
		border: 0;
		display: block;
	}







	/*--------------------------
フッター部分
-------------------------------*/

	.footer {
		padding: 2em 0em 10em;
		font-size: 1em;
	}

	/*スマホ用下部固定メニュー*/

	.fix_menu_smartphone {
		display: block;
		width: 100%;
		position: fixed;
		bottom: 0px;
		left: 0px;
		z-index: 10000;
	}

	.fix_menu_smartphone img {
		width: 100%;
	}

	/*スマホ用下部固定メニュー*/

	.fix_menu_smartphone {
		display: block;
		width: 100%;
		position: fixed;
		bottom: 0px;
		left: 0%;
		z-index: 10000;
		max-width: auto;
		width: 100%;
	}

	.fix_menu_smartphone_inr img {
		width: 45%;
	}

	.fix_menu_smartphone_inr {
		max-width: auto;
		text-align: right;
		margin: 0 auto;
		padding: 0em .5em .5em;
		margin-top: 0em;
	}

	/* 共通どこでもいいので追加 */
	.is-hidden {
		display: none !important;
	}


}