/*--------------------------------------------------------------
# カスタムプロパティ
--------------------------------------------------------------*/
:root {
	/* 色 */
	--color-primary: #ED5200;
	/* --color-secondary: #FF6600; */
	/* --color-tertiary: #58CCFF; */
	/* --color-quaternary: #e3e5ef; */
	--color-highlight: #FF420E;
	--color-danger: #ff2020;
	/* --color-light: #666; */
	--color-grey: #ddd;
	--color-grey-dark: #999;
	--color-white: #fff;
	/* コンテナーの幅 */
	--container-width: 90%;
	/* コンテナーの幅(上書き用) */
	--container-width-narrow: 90%;
	/* コンテナーの最大幅 */
	--container-max-width: 1600px;
	/* コンテナーの最大幅 */
	--container-max-width-narrow: 1070px;
	/* 余白 */
	--footer-padding: 4rem;/* フッター */
	--main-area-padding: 6rem;/* メイン領域の上下 */
	--section-padding: 5rem;/* セクションの上下 */
	/* Fontawesome */
	--fontawesome: "Font Awesome 6 Pro";
	--fontawesome-sharp: "Font Awesome 6 sharp";
	--fontawesome-brands: "Font Awesome 6 Brands";
	/* font-family */
	--font-main: "noto-sans-cjk-jp", "Hiragino Sans W3", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	--font-accent: "biz-udpgothic", "noto-sans-cjk-jp", "Hiragino Sans W3", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	--font-eng: "unbounded", "noto-sans-cjk-jp", "Hiragino Sans W3", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	/* フォントサイズ */
	--font-size-small: .75rem;
	/* ヘッダーの高さ */
	--header-height: 80px;
	/* CTAボタン(SP)の高さ */
	--cta-sp-height: 80px;
	/* TOTOPボタンの直径 */
	--btn-totop-width: 5rem;
	/* ボーダー */
	--border-dashed-primary: 1px solid var(--border-color);
}

@media (min-width: 992px) {
	:root {
		/* ヘッダーの高さ */
		--header-height: 80px;
		/* コンテナーの幅(上書き用) */
		--container-width-narrow: 80%;
		/* コンテナーの最大幅 */
		--container-max-width-narrow: 1070px;
		/* 余白 */
		--main-area-padding: 8rem;/* メイン領域の上下 */
		/* TOTOPボタンの直径 */
		--btn-totop-width: 5rem;
		/* 余白 */
		--footer-padding: 8rem;/* フッター */
		--section-padding: 10rem;/* セクションの上下 */
	}
}

/* 色の割り当て
--------------------------------------------- */
:root {
	/* 文字色 */
	--color-text-primary: #0F0F0F;
	--color-text-alt: var(--color-background);
	/* 背景色 */
	--color-background: #fff;
	--color-background-sub: #ddd;
	--color-background-alt: var(--color-text-primary);
	/* SNS */
	--color-line: #06c755;
	--color-instagram: linear-gradient(45deg, #7638fa, #d300c5, #ff0069,#ff7a00,#ffd600);
	--color-youtube: #FF0000;
	/* ボーダー */
	--border-color: var(--color-primary);
	/* グラデーション */
	--gradient-primary-horizonal: linear-gradient(to right, var(--color-primary) 0%, var(--color-primary) 75%, #FF7600 100%);
	--gradient-primary-vertical: linear-gradient(to bottom, var(--color-primary) 0%, var(--color-primary) 75%, #FF7600 100%);
	--gradient-black-vertical: linear-gradient(to bottom, #0F0F0F 0%, #333 75%, #4d4d4d 100%);
}

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

a:hover, a:focus, a:active {
	color: inherit;
}

a {
	cursor: pointer;
}

a,
a:visited {
	display: inline-block;
	color: inherit;
	text-decoration: none;
}

a:hover {
	color: inherit;
	text-decoration: none;
}

a:focus {
	outline: none;
}

li a,
li a:visited {
	display: inline;
}

.post,
.page {
	margin: 0;
}

summary {
	list-style: none;
}

dl,
dt,
dd {
	display: block;
	margin: 0;
	padding: 0;
}

/* コンテンツの幅
--------------------------------------------- */
.container {
	width: var(--container-width);
	max-width: var(--container-max-width);
	margin-right: auto;
	margin-left: auto;
}

.container__narrow {
	width: var(--container-width-narrow);
}

/* 投稿 */
.section__post__list {
	display: grid;
	gap: 2rem;
}

.section__post__list:has(>.news__item) {
	grid-template-columns: 1fr;
	gap: 0;
}

@media (min-width: 768px) {
	.section__post__list {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 992px) {
	.grid__sidebar {
		position: relative;
		display: grid;
		grid-template-columns: 3fr 1fr;
		gap: 3rem;
	}
}

@media (min-width: 1200px) {
	.section__post__list {
		grid-template-columns: repeat(3, 1fr);
	}
}

/*--------------------------------------------------------------
# レイアウト崩れ防止
--------------------------------------------------------------*/
/* footerが常に画面最下部にいるように固定
--------------------------------------------- */
#page {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.site__footer {
	margin-top: auto;
}

/*--------------------------------------------------------------
# 汎用
--------------------------------------------------------------*/
html {
	font-size: 16px;
}

body {
	font-family: var(--font-main);
	font-weight: 500;
	background: var(--color-background);
	color: var(--color-text-primary);
	line-height: 2em;
	overflow-y: scroll;
}

p {
	line-height: 2em;
}

p:not(:last-child) {
	margin-bottom: .75em;
}

img {
	display: block;
}

.page h1,
.page h2,
.page h3,
.page h4,
.page h5,
.page h6,
.home h1,
.home h2,
.home h3,
.home h4,
.home h5,
.home h6,
.archive h1,
.sub-header h1,
p {
	margin: 0;
}

ul,
ol {
	margin: 0;
	padding-left: 1.25em;
}

ul:not(:last-child),
ol:not(:last-child) {
	margin-bottom: 1.5rem;
}

ul li::marker {
	color: var(--color-primary);
}

/* 改行調整 */
span.br {
	display: inline-block;
}

/* 横並びスラッシュ区切りリスト */
.list__horizontal {
	list-style: none;
	padding: 1.25rem;
	border: 1px solid var(--color-text-alt);
}

.list__horizontal > li {
	display: inline;
}

.list__horizontal > li:not(:last-child)::after {
	content: '/';
	display: inline-block;
	color: var(--color-grey-dark);
	font-weight: 200;
	padding: 0 .5em;
}

/* 下線リンク */
a.link__underline {
	text-decoration: underline;
}

a.button__primary {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 1.5rem;
	color: var(--color-text-alt);
	background: var(--color-primary);
	font-size: 1.1rem;
	font-weight: 200;
	width: 400px;
	max-width: 100%;
	margin: calc(var(--section-padding) / 2) auto 0;
	padding: 1rem;
	letter-spacing: .25em;
}

a.button__back::before {
	content: '\f053';
	font-family: var(--fontawesome-sharp);
	font-weight: 200;
}

@media (max-width: 767px) {
	a.button__primary {
		width: 100%;
	}
}

/*--------------------------------------------------------------
# 文字体裁
--------------------------------------------------------------*/
.common__text {
	font-size: .9rem;
	font-weight: 200;
	line-height: 2em;
}

.text__color {
	color: var(--color-primary);
	font-weight: 500;
}

.text__small {
	font-size: .75em;
}

.text__has__arrow {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: .25em;
	font-style: italic;
	background: var(--color-danger);
	color: var(--color-background);
	width: fit-content;
	margin: .5rem auto 0;
	padding: .5em;
	line-height: 1em;
}

.text__has__arrow::before {
	content: '\f061';
	font-family: var(--fontawesome-sharp);
	font-weight: 400;
}

.text__taxin {
	display: inline-block;
	font-size: .75em;
	padding-left: .5em;
}

.title__has__arrow {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	gap: .5em;
	width: fit-content;
}

.title__has__arrow::before {
	content: '\f04b';
	font-family: var(--fontawesome-sharp);
	font-size: .75em;
	font-weight: 700;
	color: var(--color-primary);
}


/*--------------------------------------------------------------
# 画像
--------------------------------------------------------------*/
.image__cover {
	position: relative;
	overflow: hidden;
	width: 100%;
	height: auto;
}

.image__cover > img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}

/*--------------------------------------------------------------
# リンク
--------------------------------------------------------------*/
.button__arrow {
	display: flex;
	gap: .75rem;
	align-items: center;
	width: fit-content;
}

.section__front .button__arrow {
	font-size: .9rem;
	margin-left: auto;
}

.button__arrow::before {
	content: '\f0da';
	display: inline-flex;
	justify-content: center;
	align-items: center;
	font-family: var(--fontawesome-sharp);
	font-weight: 700;
	color: var(--color-primary);
}

/*--------------------------------------------------------------
# セクション
--------------------------------------------------------------*/
section.page_section:not(:last-child) {
	margin-bottom: var(--section-padding);
}

/*--------------------------------------------------------------
# シングル
--------------------------------------------------------------*/
.site__main__post .entry__header {
	margin-bottom: calc(var(--section-padding) / 3);
}
/* 投稿日時
--------------------------------------------- */
.site__main__post .entry__header .posted__on {
	display: flex;
	gap: 1rem;
	color: #505050;
}

.site__main__post .entry__header [class^=date_]::before {
	font-family: var(--fontawesome);
	padding-right: .25em;
}

.site__main__post .entry__header .date__posted::before {
	content: '\f017';
}

.site__main__post .entry__header .date__update::before {
	content: '\f2f9';
}

/*--------------------------------------------------------------
# サムネイル
--------------------------------------------------------------*/
.post__thumbnail {
	display: flex;
	justify-content: center;
	align-items: center;
	aspect-ratio: 16 / 9;
	width: 100%;
	height: auto;
	overflow: hidden;
}

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

.site__main__post  .post__thumbnail {
	margin-bottom: calc(var(--section-padding) / 3);
}

.post__thumbnail__none.post__thumbnail > img {
	object-fit: contain;
	padding: 3rem;
}

.article__post .post__thumbnail__none.post__thumbnail {
	background: var(--color-grey-dark);
}

/*--------------------------------------------------------------
# アーカイブ 投稿
--------------------------------------------------------------*/
.article__post a {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	width: 100%;
}

.article__post .post__thumbnail {
	background: var(--color-primary);
}

.article__post .post__thumbnail img {
	transition: width .25s, height .25s;
}

.article__post a:hover .post__thumbnail img {
	width: calc(100% - .75rem);
	height: calc(100% - .75rem);
}

h2.entry__title {
	font-size: .9rem;
	font-weight: 500;
	margin: 0;
	line-height: 1.75em;
	transition: color .25s;
}

.article__post a:hover h2.entry__title {
	color: var(--color-primary);
}

.article__post .posted__on {
	font-size: .9rem;
	font-weight: 500;
	color: var(--color-grey-dark);
	line-height: 1em;
}

.article__post .posted__on {
	margin-bottom: .5rem;
}

/*--------------------------------------------------------------
# ページネーション
--------------------------------------------------------------*/
nav.pagination {
	margin: calc(var(--section-padding) / 2) auto;
}

nav.pagination ul.page-numbers {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 1rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

li > .page-numbers {
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 1rem;
	font-weight: 200;
	width: 2.5rem;	
	height: 2.5rem;
	border: 1px solid var(--color-text-primary);
}

li > .page-numbers.current,
li > a.page-numbers:hover {
	background: var(--color-text-primary);
	color: var(--color-text-alt);
}

li > .page-numbers.dots {
	background: var(--color-grey);
	border: none;
}

@media (max-width: 767px) {
	nav.pagination ul.page-numbers {
		gap: .25rem;
	}

	li > .page-numbers {
		width: 2rem;	
		height: 2rem;
	}

	nav.pagination {
		margin: var(--section-padding) auto;
	}
}

/*--------------------------------------------------------------
# アコーディオン
--------------------------------------------------------------*/
input[type=checkbox].accordion__checkbox {
	display: none;
}

.accordion__label {
	cursor: pointer;
}

.accordion__area {
	display: grid;
	grid-template-rows: 0fr;
	overflow: hidden;
	transition: grid-template-rows .25s;
}

.accordion__checkbox:checked~.accordion__area {
	grid-template-rows: 1fr;
}

.accordion__area > * {
	overflow: hidden;
}

.accordion__area__inner {
	padding: 2rem;
}

/*--------------------------------------------------------------
# サイドバー
--------------------------------------------------------------*/
.siderbar {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	background: var(--color-background-alt);
	color: var(--color-text-alt);
	height: fit-content;
	padding: 1rem;
}

.list__recent-posts {
	list-style: none;
	padding: 0;
}

.siderbar .post-meta {
	font-size: .75rem;
	line-height: 2em;
}

.siderbar .recent-post-item a:not(:has(>.post__thumbnail)) .post-meta {
	grid-column: span 2;
}

.siderbar .post-meta .post-date {
	display: inline-block;
	padding-right: .5em;
}

.siderbar .post-meta::before {
	content: '\f0da';
	display: inline-block;
	font-family: var(--fontawesome-sharp);
	font-weight: 700;
	color: var(--color-primary);
	margin-right: .25rem;
	}

.siderbar .article__post > a {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: .5rem;
}

.siderbar .list__recent-posts {
	display: grid;
	gap: 1rem;
}

.siderbar .article__post .post__thumbnail {
	aspect-ratio: 1 / 1;
	width: 100%;
	height: auto;
}

.siderbar .article__post a:hover .post__thumbnail img {
	width: 100%;
	height: 100%;
}

.siderbar h2 {
	font-size: 1rem;
	margin: 0 0 1em;
	padding-bottom: .5em;
	border-bottom: 1px solid var(--color-primary);
}

/*--------------------------------------------------------------
# サイドバー 投稿
--------------------------------------------------------------*/
.list__taxonomy {
	display: flex;
	gap: .5rem;
	flex-wrap: wrap;
	list-style: none;
	margin: 0;
	padding: 0;
}

.list__taxonomy__tag {
	display: inline-flex;
}

.list__taxonomy__tag a {
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: .75rem;
	font-weight: 500;
	width: fit-content;
	line-height: 1em;
	padding: .5em;
	border: 1px solid;
}

#archive-dropdown-select {
	width: 100%;
	padding: .5em 0;
}

/*--------------------------------------------------------------
# 投稿フッター
--------------------------------------------------------------*/
.single__entry__footer {
	background: var(--color-background-alt);
	font-size: .9rem;
	color: var(--color-text-alt);
	margin-top: calc(var(--section-padding) / 3);
	padding: 1.5rem;
}

.single__entry__footer img {
	width: 160px;
	height: auto;
	margin-bottom: .5rem;
}

.profile__icon__list {
	display: flex;
	gap: 1rem;
	margin-top: 1rem;
}

.profile__icon__list > a {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
}

.icon__hp {
	font-size: 1.25rem;
	background: var(--color-primary);
}

.icon__instagram {
	font-size: 1.5rem;
	font-weight: 400;
	background: var(--color-instagram);
}

.icon__youtube {
	font-size: 1.5rem;
	font-weight: 400;
	background: var(--color-youtube);
}

.icon__youtube {
	font-size: 1.5rem;
	font-weight: 400;
	background: var(--color-youtube);
}

.icon__line {
	font-size: 1.5rem;
	font-weight: 400;
	background: var(--color-line);
}

.icon__mail {
	font-size: 1.5rem;
	font-weight: 400;
	background: #808080;
}

.post__tag__wrapper {
	margin-top: calc(var(--section-padding) / 3);
}

h3.post__tag__title {
	display: flex;
	align-items: center;
	gap: .5rem;
	font-family: var(--font-eng);
	font-size: .75rem;
	margin: 0 0 1rem;
}

h3.post__tag__title::after {
	content: '';
	flex: 1;
	background: var(--color-grey-dark);
	width: 100%;
	height: 1px;
}

@media (max-width: 991px) {
	.single__entry__footer {
		margin-bottom: calc(var(--section-padding) / 3);
	}
}

/*--------------------------------------------------------------
# ヘッダー
--------------------------------------------------------------*/
.site__header {
	position: fixed;
	width: 100%;
	height: var(--header-height);
	top: 0;
	left: 0;
	transition: background-color .25s, height .25s, filter .25s;
	z-index: 11;
}

body:not(.home) .site__header {
	background: var(--color-background);
}

.scrolled .site__header::before {
	content: '';
	position: absolute;
	display: block;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	box-shadow: 0px 0px 16px #00000045;
	z-index: 1;
}

.scrolled .site__header {
	background: var(--color-background);
}

.scrolled .site__header {
	height: calc((var(--header-height) * .75));
}

.header__inner {
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	height: 100%;
	padding-left: 5%;
	z-index: 2;
}

@media (max-width: 991px) {
	.header__inner {
		padding-right: 1.5rem;
	}
}

/* ロゴ */
a.site__title {
	display: block;
	aspect-ratio: 33 / 5;
	width: auto;
	max-width: 120px;
	height: 80%;
}

a.site__title > img {
	display: block;
	object-fit: contain;
	width: 100%;
	height: 100%;
}

/*--------------------------------------------------------------
# パンくずリスト
--------------------------------------------------------------*/
.breadcrumb {
	font-size: .75rem;
	font-weight: 200;
	list-style: none;
	margin: 1rem 0 0;
	padding: 0;
	line-height: 2em;
}

.breadcrumb > li {
	display: inline;
}

.breadcrumb > li:not(:last-child)::after {
	content: '>';
	display: inline-block;
	margin: 0 .75em;
}

/*--------------------------------------------------------------
# INSTAGRAM
--------------------------------------------------------------*/
.header__instagram,
.navigation__instagram .link__navigation__parent {
	color: var(--color-instagram);
	line-height: 1em;
}

.header__instagram {
	display: inline-block;
	font-size: 2.75rem;
}

.navigation__instagram .link__navigation__parent {
	gap: .25rem;
	padding: 1.25em;
	text-align: center;
}

.header__instagram::before,
.navigation__instagram .link__navigation__parent::before {
	content: '\f16d';
	font-family: var(--fontawesome-brands);
}

@media (max-width: 991px) {
	.header__instagram,
	.navigation__instagram .link__navigation__parent {
		background: linear-gradient(45deg, #7638fa, #d300c5, #ff0069,#ff7a00,#ffd600);
		-webkit-background-clip: text;
		-webkit-text-fill-color: transparent;
	}

	.header__instagram {
		margin-left: auto;
		margin-right: 1rem;
	}

	.header__instagram > span {
		display: none;
	}
}

@media (min-width: 992px) {
	a.header__instagram {
		position: fixed;
		color: var(--color-text-alt);
		background: linear-gradient(45deg, #7638fa, #d300c5, #ff0069,#ff7a00,#ffd600);
		font-size: 1rem;
		font-weight: 500;
		padding: .75rem;
		right: 0;
		bottom: 3rem;
		writing-mode: vertical-rl;
	}

	.header__instagram::before {
		margin-bottom: .25rem;
	}

	.navigation__instagram {
		display: none;
	}
}

/*--------------------------------------------------------------
# PCグローバルナビゲーション
--------------------------------------------------------------*/
ul.navigation__parent {
	list-style: none;
	margin: 0;
	padding: 0;
}

ul.navigation__parent__block {
	gap: 0;
}

.navigation__parent__item > a {
	display: flex;
	justify-content: center;
	align-items: center;
	font-family: var(--font-eng);
	font-size: .75rem;
	height: 100%;
	line-height: 1.75em;
	transition: color .25s;
}

ul:not(.navigation__parent__block) .navigation__parent__item > a:hover {
	color: var(--color-primary);
}

.navigation__language > a {
	background: var(--gradient-black-vertical);
	font-family: var(--font-eng);
	color: var(--color-text-alt);
	padding: 1.25em;
}

.navigation__trial > a {
	justify-content: flex-start;
	color: var(--color-background);
	background: var(--gradient-primary-vertical);
	padding: 1.25em;
}

@media (max-width: 991px) {
	.navigation__drawer {
		display: flex;
		flex-direction: column;
		height: 100%;
	}

	ul.navigation__parent__block {
		margin-top: auto;
	}

	.navigation__global__pc {
		display: none;
	}

	.navigation__parent:not(.navigation__parent__block) .navigation__parent__item > a {
		font-size: 1rem;
		justify-content: flex-start;
		padding: .25rem 1.5rem;
	}

	.navigation__trial > a {
		justify-content: center;
		text-align: center;
	}

	.navigation__language > a {
		background: var(--color-text-primary);
	}

	.navigation__trial > a {
		background: var(--color-primary);
	}
}

@media (min-width: 992px) {
	.navigation__global__pc {
		display: flex;
		gap: 1.25rem;
		height: 100%;
	}

	.navigation__parent {
		display: flex;
		gap: 1rem;
	}

	.navigation__parent__item > a {
		filter: drop-shadow(0px 0px 4px #fff);
	}

	.navigation__language > a {
		filter: none;
	}

	.navigation__trial > a {
		filter: none;
	}

	.navigation__parent__item__top {
		display: none;
	}
}

/*--------------------------------------------------------------
# SPグローバルナビゲーション
--------------------------------------------------------------*/
@media (max-width: 767px) {
	.drawer__body {
		width: 50vw;
		right: -50vw;
	}
}

@media (min-width: 768px) and (max-width: 991px) {
	.drawer__body {
		width: 30vw;
		right: -30vw;
	}
}

@media (max-width: 991px) {
	.drawer__body {
		position: fixed;
		grid-template-rows: 1fr;
		height: 100vh;
		top: 0;
		transition: right .25s;
		z-index: 10;
	}

	.drawer__inner {
		position: relative;
		background: var(--color-background);
		padding-top: var(--header-height);
		z-index: 2;
	}

	.drawer__background__label {
		display: none;
		position: fixed;
		background: #000;
		width: 100%;
		height: 100vh;
		top: 0;
		left: 0;
		opacity: 0;
		transition: opacity .25s;
		z-index: 1;
	}

	.drawer__wrapper .accordion__checkbox:checked~.accordion__area {
		right: 0;
	}
	
	.drawer__wrapper .accordion__checkbox:checked~.accordion__area .drawer__background__label {
		display: block;
		opacity: .75;
	}
}

@media (min-width: 992px) {
	.drawer__wrapper {
		display: none;
	}
}

/* ハンバーガーアイコン */
.drawer__button__label {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: fit-content;
	z-index: 20;
}

.drawer__button__bars {
	display: flex;
	font-size: 2rem;
	transform: scale(0.8);
}

.drawer__button__bars::after {
	content: '\f0c9';
	font-family: var(--fontawesome-sharp);
	font-weight: 400;
	line-height: 1em;
}

.drawer__button__text {
	font-size: .65rem;
	font-weight: 700;
	line-height: 1em;
	transform: scale(0.8);
}

.drawer__button__text::after {
	content: 'MENU';
	font-family: var(--font-eng);
}

.accordion__checkbox:checked~.drawer__button__label .drawer__button__bars::after {
	content: '\f00d';
}

.accordion__checkbox:checked~.drawer__button__label .drawer__button__text::after {
	content: 'CLOSE';
}

/*--------------------------------------------------------------
# CTA SP
--------------------------------------------------------------*/
@media (max-width: 991px) {
	.cta__sp {
		position: fixed;
		display: flex;
		flex-direction: column;
		font-family: var(--font-accent);
		font-size: 1rem;
		background: var(--color-text-primary);
		color: var(--color-text-alt);
		width: 100%;
		height: var(--cta-sp-height);
		left: 0;
		bottom: 0;
		padding: .25rem;
		letter-spacing: .05em;
		z-index: 10;
	}

	.cta__sp__button__wrapper {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		justify-content: center;
		align-items: center;
		gap: .25rem;
		height: 100%;
	}

	.cta__sp a.cta__sp__button {
		display: flex;
		justify-content: center;
		align-items: center;
		gap: .5rem;
		width: 100%;
		height: 100%;
	}

	.cta__sp__button__web {
		background: var(--color-primary);
	}

	.cta__sp__button__web::before {
		content: '\e1f0';
		font-family: var(--fontawesome-sharp);
		font-size: 1.25rem;
		font-weight: 400;
	}

	.cta__sp__button__line {
		background: var(--color-line);
	}

	.cta__sp__button__line::before {
		content: '\f3c0';
		font-family: var(--fontawesome-brands);
		font-size: 1.5rem;
	}

	.cta__sp__text {
		font-size: .8rem;
		text-align: center;
	}
}

@media (min-width: 992px) {
	.cta__sp {
		display: none;
	}
}

/*--------------------------------------------------------------
# サブヘッダー
--------------------------------------------------------------*/
.sub__header {
	padding: calc(var(--header-height) + (var(--section-padding) / 2)) 0 var(--section-padding);
}

.sub-header__title__ja {
	font-family: var(--font-accent);
	font-size: .8rem;
	font-weight: 400;
	background: var(--color-primary);
	color: var(--color-text-alt);
	width: fit-content;
	line-height: 1em;
	padding: .25em;
}

.sub-header__title__en {
	font-family: var(--font-eng);
	font-size: 3.25rem;
	font-weight: 200;
	line-height: 1em;
	margin-bottom: .5rem;
}

/*--------------------------------------------------------------
# フッター
--------------------------------------------------------------*/
.site__footer {
	background: var(--color-background-alt);
	color: var(--color-text-alt);
	font-size: .9rem;
	font-weight: 200;
	padding: 4rem 0;
}

a.site__title__footer {
	width: 160px;
	height: auto;
	max-width: 100%;
	margin-bottom: 2rem;
}

.site__footer__address {
	margin-bottom: 1rem;
}

a.site__footer__map {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	font-family: var(--font-eng);
	background: var(--color-primary);
	width: fit-content;
	min-width: 160px;
	line-height: 1em;
	margin-bottom: 1.5rem;
	padding: 1rem;
}

a.site__footer__map::after {
	content: '\f3c5';
	font-family: var(--fontawesome-sharp);
	font-weight: 700;
}

dl.site__footer__hour {
	display: flex;
	gap: 1.5rem;
	margin: 0;
	padding: 0;
}

dl.site__footer__hour dt {
	font-size: .9rem;
	font-weight: 200;
	margin: 0;
	padding: 0;
}

dl.site__footer__hour dd {
	font-size: .9rem;
	font-weight: 200;
	margin: 0;
	padding: 0;
}

/* ナビゲーション */
.site__footer__inner {
	margin-top: 2rem;
}

.navigation__footer {
	display: block;
	align-items: center;
	list-style: none;
	margin: 0;
	padding: 0;
}

.navigation__footer__item {
	display: inline;
}

.navigation__footer__item:not(:last-child)::after {
	content: '/';
	padding: 0 .75rem;
}

.link__navigation__footer:hover {
	text-decoration: underline;
}

.copyright {
	font-weight: 200;
}

@media (max-width: 991px) {
	.site__footer {
		padding-bottom: calc(2rem + var(--cta-sp-height));
	}

	.copyright {
		margin-top: 1.5rem;
	}
}

@media (min-width: 768px) {
	.site__footer__inner {
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
	}
}

/*--------------------------------------------------------------
# フッターCTA
--------------------------------------------------------------*/
.cta__footer {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	background: url(../img/picture/pic01.webp) center 45% / cover no-repeat;
	background-size: 260%;
	padding: 3rem 0;
}

.cta__footer::before {
	content: '';
	position: absolute;
	background: #000;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	opacity: .5;
	z-index: 1;
}

.cta__footer__inner {
	position: relative;
	width: 90%;
	margin: auto;
	z-index: 2;
}

.cta__footer__title {
	color: #fff;
	font-size: 1.1rem;
	font-weight: 500;
	text-align: center;
	margin-bottom: 1.25rem;
}

.cta__footer__button__wrapper {
	display: grid;
	gap: .75rem;
}

a.cta__footer__button {
	display: flex;
	justify-content: center;
	gap: .5rem;
	color: var(--color-text-alt);
	font-size: 1.1rem;
	font-weight: 200;
	width: 100%;
	padding: 1rem;
	letter-spacing: .25em;
}

.cta__footer__button__web {
	background: var(--color-primary);
}

.cta__footer__button__web::before {
	content: '\e1f0';
	font-family: var(--fontawesome-sharp);
	font-size: 1.25em;
	font-weight: 200;
}

.cta__footer__button__line {
	background: var(--color-line);
}

.cta__footer__button__line::before {
	content: '\f3c0';
	font-family: var(--fontawesome-brands);
	font-size: 1.5rem;
}

@media (max-width: 767px) {
	.cta__footer__inner {
		max-width: 400px;
	}

	.cta__footer__title__pc {
		display: none;
	}
}

@media (min-width: 768px) {
	.cta__footer {
		aspect-ratio: 4 / 1;
		background-size: 130%;
		background-position: 10% 38%;
		padding: 2rem 0;
	}

	.cta__footer__title__sp {
		display: none;
	}

	.cta__footer__title__pc {
		font-family: var(--font-eng);
		font-size: 3.5rem;
		font-weight: 200;
		line-height: 1em;
		margin-bottom: 1em;
	}

	.cta__footer__button__wrapper {
		grid-template-columns: repeat(2, 1fr);
		width: 65%;
		margin: auto;
	}

	.cta__footer__inner {
		width: 100%;
	}
}

@media (min-width: 1200px) {
	.cta__footer__title__pc {
		font-size: 4.25rem;
		margin-bottom: .75em;
	}
}

/*--------------------------------------------------------------
# フロントページ 汎用
--------------------------------------------------------------*/
/* タイトル */
.title__front {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 1rem;
	margin-bottom: 3rem;
}

.title__front__sub {
	background: var(--color-primary);
	font-family: var(--font-eng);
	font-size: .75rem;
	color: var(--color-background);
	width: fit-content;
	min-width: 8rem;
	height: fit-content;
	text-align: center;
	line-height: 1em;
	padding: .5em;
}

h2.title__front__h2 {
	font-family: var(--font-accent);
	font-size: 1.25rem;
	font-weight: 700;
}

@media (min-width: 768px) {
	.title__front {
		margin-bottom: 4.5rem;
	}

	h2.title__front__h2 {
		font-size: 1.5rem;
	}
}

@media (min-width: 992px) {
	h2.title__front__h2 {
		font-size: 2rem;
		line-height: 1.5em;
	}
}

/* セクション */
.section__front {
	padding: var(--section-padding) 0;
}

.section__color__alt {
	background: var(--color-text-primary);
	color: var(--color-text-alt);
}

.section__color__grey {
	background: var(--color-grey);
}

/*--------------------------------------------------------------
# フロントページ ファーストビュー
--------------------------------------------------------------*/
.first-view {
	position: relative;
	width: 100%;
	height: 100vh;
	padding: 0;
	overflow: hidden;
}

.first-view__image {
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	overflow: hidden;
}

.first-view__image > img {
	object-fit: cover;
	object-position: 68%;
	width: 100%;
	height: 100%;
	transform: scale(1.2);
}

.first-view__content {
	font-family: var(--font-accent);
	font-size: min(2.3vw, 1.75rem);
	font-weight: 700;
	line-height: 1.75em;
}

.first-view__logo {
	display: flex;
	align-items: center;
	gap: .5rem;
	color: var(--color-text-alt);
}

.first-view__logo__image {
	background: url(../img/logo/logo_wt.webp) center center / contain no-repeat;
	display: block;
	aspect-ratio: 33 / 5;
	width: 75%;
	max-width: 100%;
	height: auto;
}

.first-view__logo__sub {
	font-family: var(--font-eng);
	font-size: min(4vw, 1.25rem);
	font-weight: 400;
	line-height: 1em;
	margin-top: .25em;
	margin-left: .25em;
}

.copy__character {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	color: var(--color-text-alt);
	background: var(--color-primary);
	padding: .5em;
	line-height: 1em;
}

.copy__cross i {
	font-weight: 400;
}

@media (max-width: 767px) {
	.first-view {
		padding-bottom: var(--cta-sp-height);
	}

	.first-view__image {
		height: calc(100% - var(--cta-sp-height));
	}

	.first-view__content__inner > * {
		padding: 0 5%;
	}

	.first-view__content {
		position: absolute;
		font-size: min(4.25vw, 1.25rem);
		width: 100%;
		bottom: var(--cta-sp-height);
	}
	
	.first-view__copy__sub {
		background: var(--color-background);
		padding: 1rem 5%;
	}

	.first-view__copy {
		margin-top: 1.5rem;
		margin-bottom: 1.5rem;
	}

	.first-view__logo {
		filter: drop-shadow(0px 0px 20px #000);
	}
}

@media (min-width: 768px) {
	.first-view__image {
		width: 67%;
		height: 100%;
		right: 0;
		left: initial;
		margin-left: auto;
	}

	.first-view__content__inner {
		display: flex;
		flex-direction: column;
		gap: 1.5rem;
		width: 80%;
		margin: auto;
		padding-right: 8%;
	}

	.first-view__content {
		position: absolute;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		background: #fff;
		left: 0;
		top: 0;
		width: 48%;
		height: 100%;
		clip-path: polygon(0 0, 75% 0, 100% 100%, 0% 100%);
	}

	.first-view__logo {
		margin-bottom: 1.5rem;
	}

	a.first-view__ribbon {
		position: absolute;
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 1rem;
		background: var(--color-primary);
		background: var(--gradient-primary-vertical);
		font-size: min(2vw, 1.25rem);
		color: #fff;
		width: 50%;
		height: 15%;
		left: 0;
		bottom: 8%;
		clip-path: polygon(0 0, 95% 0, 100% 100%, 0% 100%);
		text-align: center;
		z-index: 3;
	}

	.first-view__ribbon::after {
		content: '\f105';
		font-family: var(--fontawesome-sharp);
		font-weight: 400;
	}

	.first-view__logo {
		color: var(--color-text);
	}

	.first-view__logo__sub {
		font-size: min(1.5vw, 1rem);
	}

	.first-view__logo__image {
		background: url(../img/logo/logo_bk.webp) center center / contain no-repeat;
	}
}

@media (max-width: 991px) {
	.first-view__ribbon {
		display: none;
	}
}

@media (min-width: 1200px) {
	.first-view__image > img {
		object-position: 85%;
		transform: scale(1.3);
	}

	a.first-view__ribbon {
		font-size: min(2vw, 1.5rem);
	}
}

/*--------------------------------------------------------------
# フロントページ プログラム
--------------------------------------------------------------*/
.program__grid {
	display: flex;
	justify-content: flex-start;
	flex-wrap: wrap;
	gap: 1rem;
}

.program__grid__item {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	aspect-ratio: 1 / 1;
	width: calc((100% - 1rem) / 2);
	height: auto;
}

.program__grid__item > img {
	position: absolute;
	object-fit: cover;
	width: 100%;
	height: 100%;
	z-index: 1;
}

.program__grid__item::before {
	content: '';
	position: absolute;
	display: block;
	background: #000;
	width: 100%;
	height: 100%;
	opacity: .5;
	z-index: 2;
}

h3.program__grid__item__title {
	position: relative;
	font-family: var(--font-accent);
	font-weight: 400;
	font-size: 1rem;
	color: var(--color-background);
	z-index: 3;
}

.program__grid__item::after {
	content: '\f105';
	position: absolute;
	display: flex;
	justify-content: center;
	align-items: center;
	font-family: var(--fontawesome-sharp);
	font-weight: 400;
	color: var(--color-primary);
	width: 2em;
	height: 2em;
	right: .75rem;
	bottom: .75rem;
	border: 1px solid var(--color-primary);
	border-radius: 50%;
	z-index: 4;
}

@media (min-width: 768px) {
	.program__grid__item {
		aspect-ratio: 7 / 4;
		height: auto;
	}

	h3.program__grid__item__title {
		font-size: 1.5rem;
	}

	.program__grid__item::after {
		width: 2.5em;
		height: 2.5em;
		right: 1rem;
		bottom: 1rem;
	}
}

@media (min-width: 992px) {
	.program__grid {
		gap: 1.5rem;
	}

	.program__grid__item {
		width: calc((100% - 3rem) / 3);
	}
}

/*--------------------------------------------------------------
# フロントページ 強み
--------------------------------------------------------------*/
.strength__grid {
	display: grid;
	gap: 3rem;
}

.strength__grid__item {
	display: grid;
	column-gap: 1.25rem;
	row-gap: 1rem;
	grid-template-columns: 1fr 4fr;
	height: fit-content;
}

.strength__grid__item__text {
	font-size: .9rem;
	font-weight: 200;
	line-height: 2em;
}

.strength__grid__item__title {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	height: fit-content;
	font-size: 1.15rem;
	font-weight: 500;
}

.strength__grid__item__title__sub {
	font-family: var(--font-eng);
	font-size: .65rem;
	font-weight: 500;
	background: var(--color-primary);
	width: fit-content;
	line-height: 1em;
	margin-bottom: .5rem;
	padding: .5em;
}

@media (max-width: 767px) {
	.strength__grid__item__text {
		grid-column: span 2;
	}
}

@media (min-width: 768px) {
	.strength__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.strength__grid__item {
		column-gap: 1.5rem;
	}

	.strength__grid__item__icon {
		grid-row: span 2;
	}

	.strength__grid__item__text {
		grid-column: 2 / 3;
	}

	.strength__grid__item__title__sub {
		margin-bottom: 1rem;
	}
}

@media (min-width: 992px) {
	.strength__grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 3rem;
	}

	.strength__grid__item {
		column-gap: 2rem;
	}
}

/*--------------------------------------------------------------
# フロントページ gainz gym について
--------------------------------------------------------------*/
.method__flex {
	display: flex;
	flex-direction: column;
}

#method .title__front {
	align-items: flex-start;
	margin-bottom: 2rem;
}

.method__image {
	aspect-ratio: 2 / 1;
	height: 100%;
}

.method__image > img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}

#method .common__text {
	font-weight: 200;
	margin-bottom: 2rem;
}

@media (max-width: 991px) {
	#method.section__front {
		padding-top: 0;
	}

	#method.section__front .container {
		width: 100%;
	}

	.method__flex {
		gap: 4rem;
	}

	#method.section__front .method__content {
		width: var(--container-width);
		max-width: var(--container-max-width);
		margin: auto;
	}
}

@media (min-width: 992px) {
	.method__flex {
		flex-direction: row;
	}

	.method__flex > * {
		flex: 1;
	}

	.method__image {
		aspect-ratio: 1 / 1;
	}

	.method__content {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: flex-start;
	}

	.method__content > * {
		padding-left: 4rem;
	}

	#method .common__text {
		font-size: 1rem;
		line-height: 2em;
	}

	#method .method__image {
		overflow: hidden;
	}

	#method .method__image > img {
		transform: scale(1.25);
	}

	.section__front .button__arrow {
		font-size: 1rem;
	}
}

/*--------------------------------------------------------------
# フロントページ ページ中間メニュー
--------------------------------------------------------------*/
.section__front__grid-menu {
	padding-top: 0;
}

.section__front__grid-menu .container {
	width: var(--container-width-narrow);
	max-width: var(--container-max-width-narrow);
}

.front__grid-menu {
	display: grid;
	gap: 1.5rem;
}

a.front__grid-menu__item {
	display: flex;
	justify-content: center;
	align-items: flex-end;
	aspect-ratio: 5 / 2;
	font-size: 1rem;
	font-weight: 500;
	color: var(--color-text-alt);
	width: 100%;
	height: auto;
	line-height: 1em;
}

.front__grid-menu__item > span {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: .5rem;
	background: var(--color-primary);
	width: 100%;
	padding: .75rem 0;
}

.front__grid-menu__item > span::before {
	content: '\f0da';
	display: inline-flex;
	justify-content: center;
	align-items: center;
	font-family: var(--fontawesome-sharp);
	font-weight: 700;
}

a.front__grid-menu__item {
	background: url(../img/picture/main-visual.webp) center center / cover no-repeat;
}

a.front__grid-menu__item.front__grid-menu__item__trainer {
	background: url(../img/picture/pic08.webp) center center / cover no-repeat;
}

a.front__grid-menu__item.front__grid-menu__item__access {
	background: url(../img/picture/pic15.webp) center center / cover no-repeat;
}

@media (min-width: 768px) {
	.front__grid-menu {
		grid-template-columns: repeat(2, 1fr);
	}
}

/*--------------------------------------------------------------
# フロントページ お客様の声
--------------------------------------------------------------*/
#testimonial.section__front {
	overflow: hidden;
}

.splide__testimonial {
	margin-bottom: 2rem;
}

.splide__inner {
	position: relative;
	padding: 0 5%;
}

.splide__track {
	overflow: visible;
}

.splide__list {
	list-style: none;
}

.testimonial__item {
	background: var(--color-background);
	font-size: .8rem;
}

.testimonial__item a {
	display: flex;
	flex-direction: column;
	gap: .25rem;
	padding: .5rem;
}

.testimonial__item .post__thumbnail {
	aspect-ratio: 7 / 5;
	width: 100%;
	height: auto;
}

.testimonial__item .post__thumbnail > img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}

.testimonial__meta {
	padding: .75rem;
}

.testimonial__item__name {
	font-weight: 500;
}

.testimonial__profile {
	font-weight: 200;
}

.testimonial__profile > span:not(:last-child)::after {
	content: '/';
	display: inline-block;
	color: var(--color-grey);
	padding: 0 .5em;
}

/*--------------------------------------------------------------
# フロントページ よくある質問
--------------------------------------------------------------*/
.faq__list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.faq__item {
	font-size: .9rem;
	font-weight: 200;
	border-bottom: 1px solid var(--color-text-primary);
}

.faq__item:first-child {
	border-top: 1px solid var(--color-text-primary);
}

.faq__label {
	display: flex;
	gap: .5rem;
	padding: 1.5rem 1rem;
}

.faq__label::before {
	content: '\51';
	display: block;
	font-family: var(--fontawesome-sharp);
	font-weight: 400;
	color: var(--color-primary);
}

.faq__label::after {
	content: '\2b';
	display: block;
	font-family: var(--fontawesome-sharp);
	font-weight: 400;
	color: var(--color-primary);
	margin-left: auto;
}

.faq__item .accordion__checkbox:checked~.faq__label::after {
	content: '\f068';
}

.faq__question {
	flex: auto;
	font-weight: 400;
}

.faq__answear .accordion__area__inner {
	padding: 0 1rem 1.5rem 1rem;
	text-align: justify;
}

/*--------------------------------------------------------------
# フロントページ 新着情報
--------------------------------------------------------------*/
.news__wrapper {
	margin-bottom: 1.5rem;
}

.news__item a {
	position: relative;
	display: flex;
	align-items: center;
	gap: 1rem;
	font-size: .9rem;
	font-weight: 400;
	padding: 1.5rem 1rem;
	border-bottom: 1px solid var(--color-text-primary);
}

.news__item:first-child a {
	border-top: 1px solid var(--color-text-primary);
}

.news__item a::after {
	content: '\f105';
	position: absolute;
	font-family: var(--fontawesome-sharp);
	font-weight: 400;
	color: var(--color-primary);
	margin-left: auto;
	right: 1rem;
}

.news__item__term {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	font-size: .8rem;
	background: var(--color-primary);
	color: var(--color-text-alt);
	min-width: 8em;
	height: fit-content;
	line-height: 1.5em;
	margin: auto 0;
	padding: .25em .75em;
}

@media (max-width: 767px) {
	.news__item a {
		flex-wrap: wrap;
		row-gap: .5rem;
	}

	.news__item__title {
		order: 3;
		width: 100%;
		padding-right: 1rem;
	}

	.news__item__term {
		order: 1;
	}

	.news__item__date {
		order: 2;
	}
}

@media (min-width: 992px) {
	.section__front__inner {
		display: flex;
		gap: 10rem;
	}

	.section__news__content {
		flex: 1;
	}

	#news .title__front {
		align-items: flex-start;
	}

	.news__item a {
		align-items: flex-start;
	}
}

/*--------------------------------------------------------------
# 固定ページ 汎用
--------------------------------------------------------------*/
.section__page {
	padding: calc(var(--section-padding) / 2) 0;
}

.section__page:first-child {
	padding-top: 0;
}

#plan-trial.section__page:first-child {
	padding-top: calc(var(--section-padding) / 2);
}

.section__page:last-child {
	padding-bottom: var(--section-padding);
}

.section__page__inner__2col {
	display: grid;
	column-gap: 4rem;
	row-gap: 2.5rem;
}

@media (min-width: 992px) {
	.section__page__inner__2col {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* 装飾 */
.inner__sideline {
	padding-left: 1.5rem;
	border-left: 1px solid var(--color-primary);
}

.section__method .inner__sideline:not(:first-child) {
	margin-top: 1.5rem;
}

@media (max-width: 991px) {
	.inner__sideline:not(:first-child) {
		margin-top: 1.5rem;
	}
}

/* 文字体裁 */
.title__wrapper {
	display: flex;
	flex-direction: column;
	margin-bottom: 1.5rem;
}

h2.section__title {
	font-family: var(--font-accent);
	font-size: 1.5rem;
	font-weight: 400;
	margin-bottom: 1.5rem;
}

.title__wrapper h2.section__title {
	margin-bottom: 0;
}

.section__title__sub {
	font-weight: 200;
}

@media (min-width: 768px) {
	h2.section__title {
		font-size: 1.5rem;
	}
}

@media (min-width: 992px) {
	h2.section__title {
		font-size: 2rem;
		line-height: 1.5em;
	}
}

/* ボタン */
.section__button__wrapper {
	display: grid;
	gap: .75rem;
}

/*--------------------------------------------------------------
# 固定ページ 体験トレーニング
--------------------------------------------------------------*/
.flow__grid {
	display: grid;
	gap: 3rem;
	margin-top: calc(var(--section-padding) / 2);
}

.flow__grid__item {
	position: relative;
}

.flow__grid__item__number {
	display: flex;
	justify-content: flex-start;
	font-family: var(--font-eng);
	font-size: 2rem;
	font-weight: 400;
	line-height: 1em;
}

h2.flow__grid__item__title {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	font-family: var(--font-accent);
	font-size: 1.5rem;
	line-height: 1.5em;
}

.flow__grid__item__title__wrapper {
	display: grid;
	grid-template-columns: 4.5rem 1fr;
	grid-template-rows: auto auto 1fr;
	gap: .75rem;
}

p.flow__grid__text {
	margin-bottom: 1.5rem;
}

.flow__grid__item__line {
	position: relative;
}

.flow__grid__item:not(:last-child) .flow__grid__item__line::after {
	content: '';
	position: absolute;
	display: block;
	background: var(--color-primary);
	width: 1px;
	height: calc(100% + 3rem - .75rem);
	left: 50%;
	top: 0;
}

a.section__trial__link,
a.section__line__link {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: .5rem;
	color: var(--color-text-alt);
	font-size: 1rem;
	font-weight: 200;
	width: fit-content;
	padding: 1rem;
	line-height: 1.25em;
}

a.section__trial__link {
	background: var(--gradient-primary-vertical);
}

a.section__line__link {
	background: var(--color-line);
	letter-spacing: .25em;
}

a.section__line__link::before {
	content: '\f3c0';
	font-family: var(--fontawesome-brands);
	font-size: 1.5rem;
}

.flow__grid__item .image__cover {
	aspect-ratio: 4 / 3;
}

@media (min-width: 768px) {
	.flow__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.flow__grid__item {
		display: flex;
		flex-direction: column;
	}

	.flow__grid__item__title {
		grid-column: 1 / 4;
		grid-row: 2 / 3;
	}

	.flow__grid__item__content {
		display: grid;
		grid-column: 1 / 4;
		grid-row: 3 / 4;
	}

	.flow__grid__item__title__wrapper {
		height: 100%;
	}

	.flow__grid__item:not(:last-child) .flow__grid__item__line::after {
		width: calc(100% + 4rem - .75rem);
		height: 1px;
		left: -1rem;
		top: 50%;
	}

	.flow__grid__item__content .image__cover {
		margin-top: auto;
	}
}

@media (min-width: 1200px) {
	.flow__grid {
		grid-template-columns: repeat(4, 1fr);
	}
}


/*--------------------------------------------------------------
# 固定ページ PROGRAM / METHOD
--------------------------------------------------------------*/
.section__inner__grid {
	display: grid;
}

ul.section__menu {
	font-size: .8rem;
	font-weight: 500;
	list-style: none;
	padding: 0;
}

.section__menu__item a::before {
	content: '\f0da';
	display: inline-block;
	font-family: var(--fontawesome-sharp);
	font-weight: 700;
	color: var(--color-primary);
	margin-right: .5rem;
}

.program__list,
.method__list {
	display: flex;
	flex-direction: column;
	gap: 3rem;
}

h3.program__list__item__title,
h3.method__list__item__title {
	font-family: var(--font-accent);
	font-size: 1.25rem;
	margin-bottom: 1rem;
}

.method__list__item .image__cover {
	aspect-ratio: 16 / 9;
	width: 100%;
	height: auto;
}

.method__list {
	margin-top: calc(var(--section-padding) / 2);
}

@media (min-width: 768px) {
	.method__list {
		flex-direction: row;
	}

	.method__list > * {
		flex: 1;
	}
}

@media (max-width: 991px) {
	.section__side__wrapper {
		background: var(--color-background-alt);
		width: 100vw;
		margin: 0 calc(50% - 50vw);
	}

	ul.section__menu {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: .5rem;
		width: var(--container-width);
		max-width: var(--container-max-width);
		margin: auto;
		padding: 1.5rem 0;
	}

	.section__menu__item a {
		display: flex;
		justify-content: flex-start;
		align-items: center;
		color: var(--color-text-alt);
		padding: .25em .5rem;
		border: 1px solid var(--color-text-alt);
	}

	.program__list {
		margin-top: calc(var(--section-padding) / 2);
	}

	.program__list__item .image__cover {
		aspect-ratio: 4 / 3;
		width: 100%;
		height: auto;
	}
}

@media (min-width: 992px) {
	.section__side__wrapper {
		position: sticky;
		top: var(--header-height);
		height: fit-content;
	}

	.section__inner__grid {
		position: relative;
		grid-template-columns: minmax(16rem, 1fr) 3fr;
	}

	.program__list__item {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 1.5rem;
	}

	.program__list__item > .image__cover {
		order: 2;
	}
}

.method__concept {
	font-size: 1.25rem;
	font-style: italic;
	width: fit-content;
	margin: calc(var(--section-padding) * .75) auto 0;
	line-height: 2em;
}

.method__concept__inner {
	position: relative;
	padding: 2rem;
}

.method__concept__inner::before {
	content: '';
	position: absolute;
	width: 1.5rem;
	height: 1.5rem;
	top: 0;
	left: 0;
	border-top: 1px solid var(--color-primary);
	border-left: 1px solid var(--color-primary);
}

.method__concept__inner::after {
	content: '';
	position: absolute;
	width: 1.5rem;
	height: 1.5rem;
	right: 0;
	bottom: 0;
	border-right: 1px solid var(--color-primary);
	border-bottom: 1px solid var(--color-primary);
}

/*--------------------------------------------------------------
# 固定ページ PRICING
--------------------------------------------------------------*/
/* #pricing-top.section__pricing h2.section__title,
#ticket-member.section__pricing h2.section__title,
#ticket-member.section__pricing .section__title__sub {
	text-align: center;
} */

.pricing__trial__inner h3.section__title {
	display: inline-block;
	font-family: var(--font-accent);
	font-size: 1.25rem;
	font-weight: 400;
}

table.table__pricing {
	display: block;
	font-size: .9rem;
	margin: 0;
	width: 100%;
}

table.table__pricing tbody {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 1rem;
}

.pricing__trial__inner table.table__pricing {
	width: 100%;
	min-width: auto;
}

table.table__pricing tr {
	display: grid;
	border: 1px solid var(--color-text-alt);
}

.text__price {
	font-family: var(--font-eng);
	font-size: 1.25em;
}

.table__pricing__child .text__price {
	font-size: 1em;
}

.title__wrapper__child {
	display: inline-flex;
	flex-direction: row;
	justify-content: flex-start;
	flex-wrap: wrap;
	gap: .5rem;
	margin: 2rem 0 1rem;
}

.table__pricing th > span::before,
.title__wrapper__child h3.section__title::before {
	content: '\f04b';
	font-family: var(--fontawesome-sharp);
	font-size: .75em;
	font-weight: 700;
	color: var(--color-primary);
}

.table__pricing th > span::before {
	padding-right: 1em;
}

table.table__pricing th {
	border-bottom: 1px solid var(--color-text-alt);
}

table.table__pricing th,
table.table__pricing td {
	padding: 1rem;
	text-align: center;
}

.pricing__wrapper:not(:last-child) {
	margin-bottom: calc(var(--section-padding) / 2);
	padding-bottom: calc(var(--section-padding) / 2);
	border-bottom: 1px solid var(--color-grey-dark);
}

.pricing__wrapper .title__wrapper {
	text-align: center;
}

table.table__pricing tr {
	width: 100%;
}

table.table__pricing__child tbody {
	gap: 0;
}

table.table__pricing__child tbody tr:not(:first-child) {
	grid-template-columns: repeat(2, 1fr);
}

table.table__pricing__child tbody tr:not(:last-child),
table.table__pricing__child th {
	border-bottom: 0;
}

table.table__pricing__child td {
	border-left: 1px solid var(--color-text-alt);
}


.table__pricing__wrapper:not(:last-child) {
	margin-bottom: calc(var(--section-padding) / 3);
}

.table__pricing__wrapper:has(>.table__pricing__child) {
	display: grid;
	gap: 1rem;
}

@media (min-width: 768px) {
	table.table__pricing {
		width: fit-content;
		min-width: 75%;
		margin-right: auto;
		margin-left: auto;
	}

	table.table__pricing:not(.table__pricing__child) tbody {
		flex-direction: row;
	}

	table.table__pricing__1col tr {
		width: 75%;
	}

	table.table__pricing__2col tbody > tr {
		flex: 1;
	}

	table.table__pricing tr > * {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
	}

	table.table__pricing th,
	table.table__pricing td {
		padding: 1rem;
		text-align: center;
	}

	.table__pricing__wrapper:has(>.table__pricing__child) {
		grid-template-columns: repeat(3, 1fr);
	}

	table.table__pricing.table__pricing__child {
		width: 100%;
	}
}

.pricing__trial {
	display: grid;
	grid-template-columns: 1fr 3rem 1fr;
	width: fit-content;
	margin: 2.5rem auto 0;
}

.pricing__trial__column {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 1rem;
	padding: .5rem 0;
}

.pricing__trial dl,
.pricing__trial dd {
	margin: 0;
}

.pricing__trial dl {
	text-align: center;
}

.pricing__trial__arrow {
	position: relative;
}

.pricing__trial__arrow::before {
	content: '';
	position: absolute;
	display: block;
	background: var(--color-primary);
	width: 1px;
	height: 100%;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	z-index: 1;
}

.pricing__trial__arrow::after {
	content: '';
	position: absolute;
	display: block;
	background: var(--color-background-alt);
	width: 1.5rem;
	height: 1.5rem;
	top: calc(50% - .25rem);
	left: .25rem;
	transform: rotate(45deg) translateY(-50%);
	border-top: 1px solid var(--color-primary);
	border-right: 1px solid var(--color-primary);
	z-index: 2;
}

.pricing__trial__inner {
	display: grid;
	row-gap: 3rem;
	column-gap: calc(var(--section-padding) / 2);
}

.packing__list {
	margin-top: 2.5rem;
}

h3.packing__list__title {
	font-size: 1rem;
	font-weight: 500;
	margin-bottom: 1rem;
}

.section__pricing:last-child {
	padding-bottom: calc(var(--section-padding) / 2);
}

@media (min-width: 768px) {
	.pricing__trial__column {
		padding: .5rem 2rem;
	}

	.pricing__trial {
		margin: 2.5rem 0 0;
	}
}

@media (min-width: 992px) {
	.pricing__trial__inner {
		grid-template-columns: 2fr 3fr;
	}
}

/*--------------------------------------------------------------
# 固定ページ トレーナー
--------------------------------------------------------------*/
.section__trainer .section__title__sub {
	color: var(--color-primary);
	font-family: var(--font-eng);
	font-size: .75em;
	background: var(--color-primary);
	color: var(--color-text-alt);
	width: fit-content;
	line-height: 1em;
	margin-top: .25rem;
	padding: .25em;
}

.trainer__item__inner {
	display: grid;
	column-gap: calc(var(--section-padding) / 2);
	row-gap: 2rem;
}

p.trainer__item__message {
	margin-bottom: 2rem;
}

dl.trainer__item__profile {
	display: grid;
	grid-template-columns: 6.5rem 1fr;
	margin: 0;
}

.trainer__item__profile dt {
	font-size: .9rem;
	font-weight: 400;
	border-right: 1px solid var(--color-primary);
}

.trainer__item__profile dt::before {
	content: '\f04b';
	display: inline-block;
	font-family: var(--fontawesome-sharp);
	font-size: .75em;
	font-weight: 700;
	color: var(--color-primary);
	margin-right: .5rem;
}

.trainer__item__profile .list__horizontal {
	padding: 0 0 1.5rem 1.5em;
}

.trainer__item__profile dd:last-child .list__horizontal {
	padding-bottom: 0;
}

@media (min-width: 768px) {
	.trainer__item__inner {
		grid-template-columns: 2fr 3fr;
	}
}

/*--------------------------------------------------------------
# 固定ページ ACCESS
--------------------------------------------------------------*/
.access__inner {
	display: grid;
	gap: calc(var(--section-padding) / 2);
}

.access__map iframe {
	aspect-ratio: 4 / 3;
	display: block;
	width: 100%;
	height: auto;
}

.access__table {
	display: grid;
	grid-template-columns: 6rem 1fr;
	font-size: .9rem;
}

.access__table dd:not(:last-child) {
	padding-bottom: 2rem;
}

.access__table dt::before {
	content: '\f0da';
	display: inline-block;
	font-family: var(--fontawesome-sharp);
	font-weight: 700;
	color: var(--color-primary);
	margin-right: .5rem;
}

.access__logo {
	width: 200px;
	max-width: 60%;
	height: auto;
	margin-bottom: 3rem;
}

.note__block {
	margin-top: 2.5rem;
	padding: 1.25rem;
	border: 1px solid var(--color-text-primary);
}

.site__main__en-top .note__block,
.home .note__block {
	padding: 0;
	border: none;
}

.site__main__en-top .pricing__wrapper .note__block,
.home .pricing__wrapper .note__block {
	margin-top: 0;
}

@media (max-width: 767px) {
	.access__inner .access__text {
		order: 2;
	}
}

@media (min-width: 768px) {
	.access__inner {
		grid-template-columns: repeat(2, 1fr);
	}

	.site__main__en-top .note__block,
	.home .note__block {
		text-align: right;
	}

	.site__main__en-top .pricing__wrapper .note__block,
	.home .pricing__wrapper .note__block {
		grid-column: span 3;
	}
}

/*--------------------------------------------------------------
# ドキュメント系固定ページ
--------------------------------------------------------------*/
.section__document .container {
	width: var(--container-width-narrow);
	max-width: var(--container-max-width-narrow);
}

h2.document__h2 {
	font-size: 1rem;
	font-weight: 700;
	margin-bottom: .75em;
}

h2.document__h2:not(:first-child) {
	margin-top: 2.5em;
}

h3.document__h3 {
	font-size: .9rem;
	font-weight: 500;
	margin-top: 1rem;
}

p.document__text {
	display: inline;
	font-size: .9rem;
	font-weight: 200;
}

ol.document__list,
.section__document ul {
	font-size: .9rem;
	font-weight: 200;
	margin: 0;
}

.section__document ul li::marker {
	color: var(--color-text-primary);
}

.section__document dl {
	display: grid;
	grid-template-columns: 4.5rem 1fr;
	gap: 1rem;
	font-size: .9rem;
	font-weight: 200;
}

.section__document dt {
	font-weight: 500;
}

/*--------------------------------------------------------------
# 投稿 共通
--------------------------------------------------------------*/
.site__main__post,
.site__main__archive {
	padding-bottom: var(--section-padding);
}

/*--------------------------------------------------------------
# お客様の声 シングル
--------------------------------------------------------------*/
.testimonial__grid {
	display: grid;
	gap: calc(var(--section-padding) / 2);
}

.testimonial__content {
	font-weight: 200;
}

.section__single__testimonial .testimonial__item__name {
	font-size: 1.25rem;
	font-weight: 400;
	margin: 2.5rem 0 .5rem;
}

.testimonial__comment {
	display: grid;
	grid-template-columns: 100px 1fr;
	gap: 1.5rem;
	background: var(--color-background-alt);
	color: var(--color-text-alt);
	font-size: .75rem;
	font-weight: 200;
	margin-top: 2.5rem;
	padding: 1.5rem;
	line-height: 2em;
}

h3.testimonial__title__sub {
	font-size: .75rem;
	font-weight: 700;
	color: var(--color-text-alt);
	margin: 0 0 1em;
	padding-bottom: 1em;
	border-bottom: 1px solid var(--color-primary);
	line-height: 2em;
}

.testimonial__comment .trainer__icon {
	display: block;
	width: 100%;
	height: auto;
}

@media (min-width: 992px) {
	.testimonial__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/*--------------------------------------------------------------
# 404
--------------------------------------------------------------*/
.error__404.section__page{
	padding-top: calc(var(--header-height) * 2 );
}

.error__404__inner {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 1.5rem;
}

.error__404__inner > *:first-child {
	font-family: var(--font-eng);
	font-size: 5rem;
	color: var(--color-grey-dark);
	line-height: 1em;
}

.error__404__title {
	font-size: 1.25rem;
	line-height: 1.75em;
	margin-bottom: .5rem;
}

.error__404__message {
	font-size: .9rem;
}

@media (max-width: 767px) {
	.error__404.section__page{
		padding-top: var(--header-height);
	}

	.error__404__inner {
		flex-direction: column;
	}
}

/*--------------------------------------------------------------
# NO RESULT
--------------------------------------------------------------*/
.no__results__title {
	text-align: center;
}

/*--------------------------------------------------------------
# 英文調整
--------------------------------------------------------------*/
.site__main__en-top .first-view__copy__sub {
	font-size: 1.25rem;
}

.site__main__en-top .copy__character {
	font-family: var(--font-eng);
}

.site__main__en-top .program__grid__item__title {
	text-align: center;	
}

@media (min-width: 768px) {
	.site__main__en-top a.first-view__ribbon {
		font-family: var(--font-eng);
		font-size: min(1.5vw, 1.25rem);
	}
}

/*--------------------------------------------------------------
# メディアクエリ 表示切り替え
--------------------------------------------------------------*/
@media (max-width: 991px) {
	.hidden__max991 {
		display: none;
	}
}

/*--------------------------------------------------------------
# Google recaptcha バッジ非表示
--------------------------------------------------------------*/
.grecaptcha-badge {
	display: none !important;
}
