@charset "utf-8";
/*
Theme Name: Private Gym 103
Description: Parallax + About + Works + Alternate Sections + Contact + Footer
Version: 1.0
Author: FLOAT
Text Domain: private-gym-103
*/

/* === Theme Variables (individual) === */
:root { --pg-font: "ryo-gothic-plusn",sans-serif;}
:root { --pg-accent: #08a36a; }
:root { --pg-ink: #0a0a0a; }
:root { --pg-mute: #6a6a6a; }
/* :root { --pg-bg: #0e0e0e; }*/
:root { --pg-panel: #151515; }
:root { --pg-line: #2a2a2a; }
:root { --pg-white: #fff; }

/* === Base === */
body {
	margin: 0;
	font-family: var(--pg-font);
	background: var(--pg-bg);
	color: var(--pg-white);
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

.wrap {
	max-width: min(1180px, 92vw);
	margin-inline: auto;
}



/* === Hero（Swiper fade 対応・最小構成） === */
.px-section{
  position: relative;
  height: 85vh;
  overflow: hidden;
  isolation: isolate;   /* Swiperのtransform影響を遮断 */
}

/* Swiper背景 */
.px-swiper{
  position: absolute;
  inset: 0;
  z-index: 0;
}

/* Swiper内 高さ100% */
.px-swiper,
.px-swiper .swiper-wrapper,
.px-swiper .swiper-slide{
  height: 100%;
}

.px-swiper .swiper-slide{
  position: relative;
}

/* 背景画像 */
.px-bg{
  position: absolute;
  inset: -12% 0;
  background-size: cover;
  background-position: center;
  will-change: transform;
  transform: translate3d(0,0,0);
  filter: grayscale(100%) brightness(90%);
}

/* ロゴ・テキスト */
.px-inner{
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  filter: drop-shadow(0 0 8px rgba(0, 0, 0, .35));
}

.px-inner .wrap{
  position: relative;
  width: 42%;
  height: 100%;
  margin: 0 auto;
}

/* 中央配置する本体 */
.hero-main{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  text-align: center;
}

/* px-inner 内でクリック可能にしたい要素用 */
.px-inner a,
.px-inner button{
  pointer-events: auto;
}

.px-inner .md1{
  font-size: 1.8em;
  letter-spacing: 0.1em;
}

.px-inner .md2{
  font-size: 1em;
  letter-spacing: 0.1em;
  line-height: 1.8;
}

/* Hero CTA */
.hero-mini-cta{
  position: absolute;
  left: 50%;
  bottom: 8%;
  transform: translateX(-50%);
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  width: max-content;
  pointer-events: auto;
}

.hero-mini-cta__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 13em;
  min-height: 48px;
  padding: 0 1.4em;
  border-radius: 9999px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  box-sizing: border-box;
  transition: .25s ease;
}

.hero-mini-cta__btn--contact{
  color: #fff;
  border: 1px solid rgba(255,255,255,.8);
  background: rgba(255,255,255,.06);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}

.hero-mini-cta__btn--contact:hover{
  background: #fff;
  color: #111;
}

.hero-mini-cta__btn--line{
  color: #fff;
  border: 1px solid #19c95b;
  background: #19c95b;
}

.hero-mini-cta__btn--line:hover{
  background: #fff;
  color: #19c95b;
}

/* === ABOUT === */
.about-split {
  width: 100%;
  background: #fff;
  color: #222;
}

.about-split .wrap {
  padding: clamp(60px, 7vw, 100px) 0;
}

.about-split .grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 5vw, 80px);
  align-items: start;
}

.about-split h3 {
  font-size: clamp(12px, 1.2vw, 14px);
  letter-spacing: .22em;
  color: #999;
  margin: 0 0 1.2em;
}

.about-split h2 {
  font-weight: 400;
  font-size: clamp(24px, 3vw, 36px);
  margin: .2em 0 .8em;
  letter-spacing: .04em;
}

.about-split p {
  font-size: clamp(13px, 1.2vw, 14px);
  line-height: 2;
  letter-spacing: .03em;
  color: #333;
  margin: .8em 0;
}

.about-split .en {
  color: #666;
  margin-top: 3.5vh;
}

.about-split .wide-photo {
  margin-top: clamp(40px, 6vw, 80px);
  position: relative;
}

.about-split .wide-photo img {
  width: 100%;
  display: block;
}

.corner-cta {
  position: absolute;
  right: 2%;
  bottom: 2%;
  background: #000;
  color: #fff;
  padding: 10px 18px;
  border-radius: 4px;
  font-weight: 700;
  text-decoration: none;
}

@media (max-width: 1024px) {

  .px-inner .wrap{
    width: 80%;
  }

  .px-inner .md1{
    font-size: 1.3em;
  }

  .hero-mini-cta{
    bottom: 7%;
  }

  .about-split .grid {
    grid-template-columns: 1fr;
  }

  .about-split .en {
    margin-top: 0;
  }
}

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

  .hero-main{
    width: 100%;
  }

  .hero-mini-cta{
    bottom: 6%;
    width: 100%;
    flex-direction: column;
    gap: 10px;
  }

  .hero-mini-cta__btn{
    width: 70%;
    min-width: auto;
    min-height: 44px;
    font-size: 14px;
  }

}



/* ==== WORKS hero（SPパララックス対応） ==== */
.works-hero {
  position: relative;
  overflow: hidden;
  height: clamp(48vh, 62vw, 72vh); /* 高さは好みで */
  background: none !important; /* JSで生成するレイヤーに任せる */
}

/* パララックス用にJSが生成する背景レイヤー */
.works-hero__bg {
  position: absolute;
  inset: -12%; /* 少し拡大して上下の隙間を防ぐ */
  background-size: cover;
  background-position: center center;
  will-change: transform;
  transform: translate3d(0, 0, 0);
  z-index: 0; /* 背景として配置 */
}

/* タイトルは既存の見た目を維持 */
.wx-title {
  position: relative;
  z-index: 1; /* 背景より上に */
  /* ここは前のCSSそのままでOK（例）*/
  color: #fff;
  font-size: 4vw;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-align: center;
  top: 50%;
  transform: translateY(-50%);
}

/* モーション無効設定ユーザーは静止 */
@media (prefers-reduced-motion: reduce){
  .works-hero__bg { transform: none !important; }
}



/* === Alternate (想い/使命/経歴) === */
.alt-section {
	position: relative;
	background: #efefef;
	color: #222;
	overflow: visible;
	padding: 0 0 5% 0;
}

.alt-wrap {
	width: 100%;
	margin: 0 auto;
	position: relative;
	padding: clamp(56px, 6vw, 96px) 0 clamp(88px, 8vw, 132px);
}

.alt-band {
	position: absolute;
	inset: 0 0 auto 0;
	height: 28%;
}

.alt-figure {
	position: relative;
}

.alt-figure img {
	width: 100%;
	display: block;
}

.alt-card {
	position: absolute;
	background: #fff;
	color: #222;
	padding: clamp(24px, 2.5vw, 32px);
	max-width: min(720px, 62%);
	box-sizing: border-box;
}

.alt-card p {
    letter-spacing: 0.1em;
	margin: .6em 0;
	line-height: 2;
	font-size: clamp(13px, 1.3vw, 15px);
}

/* === Vertical headline (B方式: .jp / .en 子要素) === */
/* 例: <div class="alt-vhead"><span class="jp">経歴</span><span class="en">career</span></div> */

.alt-vhead {
	position: absolute;
	top: 6vw;
	writing-mode: vertical-rl;
	text-orientation: mixed;
	z-index: 2;
	pointer-events: none;
}

.alt-vhead .jp {
    font-weight: 200;
	color: #5f5f5f;
	font-size: 4vw;
	line-height: 1.15;
	letter-spacing: .06em;
}

.alt-vhead .en {
	position: absolute;
	top: 0;
	writing-mode: vertical-rl;
	text-orientation: mixed;
	font-weight: 400;
	color: #9a9a9a;
	font-size: 1vw;
	letter-spacing: .22em;
}

/* 右セクション → 左側に配置 */
.alt-section.is-right .alt-vhead {
	left: 6vw;
	right: auto;
}
.alt-section.is-right .alt-vhead .en {
	left: -3vw;
	right: auto;
}

/* 左セクション → 右側に配置 */
.alt-section.is-left .alt-vhead {
	right: 6vw;
	left: auto;
}
.alt-section.is-left .alt-vhead .en {
	right: -3vw;
	left: auto;
}



/* レスポンシブ微調整 */
@media (max-width: 56.25em) {
	
	.alt-vhead {
		top: 5vw;
	}
	.alt-vhead .jp {
		font-size: 12vw;
		color: #fff;
		
		text-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
	}
	.alt-vhead .en {
		font-size: 3vw;
		color: #fff;
		text-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
	}
}



.alt-section.is-left .alt-figure {
	width: min(62%, 920px);
}

.alt-section.is-left .alt-figure {
	margin-left: 0;
}

.alt-section.is-left .alt-card {
	right: min(4vw, 40px);
	bottom: min(24px, 2.2vw);
}


.alt-section.is-right .alt-figure {
	width: min(62%, 920px);
	margin-left: auto;
	margin-right: 0;
}

.alt-section.is-right .alt-card {
	left: min(4vw, 40px);
	bottom: min(24px, 2.2vw);
}


@media (prefers-reduced-motion: reduce) {
	.px-bg {
		transform: none !important;
	}
}

@media (max-width: 1024px) {
	.alt-section .alt-figure {
		width: 100% !important;
		margin: 0 !important;
	}
	.alt-card {
		position: relative;
		left: auto !important;
		right: auto !important;
		bottom: auto !important;
		max-width: 100%;
		margin: 0 auto;
		padding: clamp(20px, 4vw, 28px);
	}

}

/* === CONTACT === */
.contact-section {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr; /* 左右2分割 */
  min-height: 80svh;
}

/* ---------- 左側：CONTACT領域（今回はフッター情報を縦配置） ---------- */
.contact-left {
  background: #111;
  color: #eee;
  padding: clamp(60px, 7vw, 100px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* 見出しと説明（必要なら残す・非表示にしてもOK） */
.contact-left h2 {
  font-size: clamp(18px, 2vw, 22px);
  letter-spacing: .15em;
  margin: 0 0 1em;
  color: #fff;
}
.contact-left p {
  font-size: clamp(13px, 1.3vw, 15px);
  line-height: 2;
  margin: .5em 0;
  color: #bbb;
}

/* ====== ここから “フッター情報を縦並び” ====== */
.contact-left .footer-wrap.contact-footer{
  display: flex;
  flex-direction: column;   /* ★縦並び */
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 2rem;
  width: 100%;
}

.contact-left .footer-logo{
  width: clamp(140px, 18vw, 200px);
  height: auto;
  display: block;
  filter: drop-shadow(0 0 0 rgba(0,0,0,0)); /* 余計なにじみ防止 */
}

.contact-left .footer-center p{
  font-size: clamp(13px, 1.3vw, 15px);
  line-height: 1.9;
  color: #ddd;
  margin: 0;
}

.contact-left .footer-right h4{
  font-size: clamp(14px, 1.5vw, 16px);
  margin: 0 0 .6rem;
  letter-spacing: .08em;
  color: #fff;
}
.contact-left .footer-right ul{
  list-style: none;
  padding: 0;
  margin: 0;
}
.contact-left .footer-right li{
  margin: .35em 0;
}
.contact-left .footer-right a{
  color: #fff;
  text-decoration: none;
  opacity: .9;
  transition: opacity .2s ease, transform .2s ease;
}
.contact-left .footer-right a:hover{
  opacity: 1;
  transform: translateY(-1px);
}
/* ====== 縦並びここまで ====== */

/* ---------- 既存：フォーム（残しておく場合の見た目） ---------- */
.contact-form {
  margin-top: 2em;
  display: grid;
  gap: 1.6em;
}
.contact-form label {
  display: block;
  font-size: 14px;
  margin-bottom: .4em;
  color: #aaa;
}
.contact-form input,
.contact-form textarea {
  width: 100%;
  padding: .8em;
  border: none;
  border-bottom: 1px solid #444;
  background: none;
  color: #fff;
  font-family: var(--pg-font, system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans JP", sans-serif);
}
.contact-form textarea { min-height: 120px; }
.contact-submit { margin-top: 1.6em; }
.contact-submit button {
  background: none;
  border: none;
  color: #fff;
  font-weight: 700;
  letter-spacing: .2em;
  cursor: pointer;
  position: relative;
  padding-right: 24px;
  transition: transform .3s ease;
}
.contact-submit button::after {
  content: "→";
  position: absolute; right: 0; top: 0;
}
.contact-submit button:hover { transform: translateX(4px); }

/* === CONTACT（右側ギャラリー height:100% × width:auto 版／修正版） === */

/* 右：2×2グリッド（PC/SPとも2列を維持） */
.contact-right{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  align-items: stretch;     /* セル高さを均一に保つ */
}

/* 各マス（枠）の比率を決める：3:4 → 1/1 や 4/3 に変更可 */
.contact-right .cr-tile{
  position: relative;
  overflow: hidden;         /* はみ出しを枠でクリップ（必須） */
  margin: 0;                /* figure のデフォ余白を消す */
  background: #000;         /* 読み込み時のチラ見え対策（任意） */
}

/* 画像：枠の中心に固定し、短辺側が必ず100%になるようにカバー */
.contact-right .cr-tile > img{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  min-width: 100%;
  min-height: 100%;
  width: auto;              /* ご要望どおり */
  height: auto;             /* ご要望どおり */
  display: block;
  object-position: center;
  object-fit: cover;        /* width/height:auto でも邪魔しないため残し */
}

/* === SP：左→右の縦並び。右は2×2を維持 === */
@media (max-width: 768px){
  .contact-section{ grid-template-columns: 1fr; }
  .contact-left{ padding: clamp(40px, 10vw, 60px); }
.contact-right .cr-tile{
  aspect-ratio: 3 / 4;      /* ★タイルの高さをこれで確定 */
}
}

/* === Safariのサブピクセル対策（ごく稀な1px線が出る場合のみ有効化） === */
/*
@supports (-webkit-touch-callout: none){
  .contact-right .cr-tile > img{
    -webkit-mask-image: radial-gradient(#000 99.6%, transparent 100%);
  }
}
*/




/* === FOOTER === */
.site-footer {
	background: #0b0b0b;
	color: #bbb;
}

.footer-wrap {
	max-width: min(1180px, 92vw);
	margin: 0 auto;
	padding: clamp(40px, 6vw, 72px) 0;
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1fr;
	gap: clamp(20px, 4vw, 40px);
}

.footer-brand h3 {
	margin: 0 0 .6em;
	color: #fff;
	font-size: 18px;
	letter-spacing: .08em;
}

.footer-brand p {
	margin: .3em 0;
	line-height: 1.9;
}

.footer-col h4 {
	margin: 0 0 .6em;
	color: #eaeaea;
	font-size: 14px;
	letter-spacing: .14em;
}

.footer-col ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-col li {
	margin: .4em 0;
}

.footer-note {
	border-top: 1px solid #1e1e1e;
	text-align: center;
	color: #8a8a8a;
	padding: 14px 0;
	font-size: 12px;
}

@media (max-width: 1024px) {

	.footer-wrap {
		grid-template-columns: 1fr;
	}
}

/* =========================================================
   WS Slider (images slide only) — Full Width + Fixed UI
   ========================================================= */

/* === Slider Variables (individual) === */
:root { --gap: clamp(16px, 3vw, 28px); }
:root { --line: #e5e5e5; }
:root { --muted: #777; }

/* === Base === */
.ws-wrap {
	width: 100%;
	margin: 0;
	font-size: 16px;
	color: #111;
}
.ws-wrap figure {
	margin: 0;
}


/* === Top: Image viewport (full-bleed) === */
.ws-viewport {
	position: relative;
	width: 100vw;
	left: 50%;
	transform: translateX(-50%);
}

.ws-slider {
	/* slick root */
}

.ws-slide {
	/* each slide */
}

.ws-slide img {
	display: block;
	width: 100%;
	height: 50vh;
	object-fit: cover;
}

/* === Fixed arrows (bottom-left) === */
.ws-arrows {
	position: absolute;
	left: 0;
	bottom: 0;
	display: flex;
	gap: 0;
	z-index: 3;
	pointer-events: none;
}

.ws-prev,
.ws-next {
	pointer-events: auto;
	appearance: none;
	border: 0;
	border-radius: 0;
	background: #fff;
	color: #111;
	width: 88px;
	height: 56px;
	display: grid;
	place-items: center;
	font: 700 18px/1 system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans JP", sans-serif;
	cursor: pointer;
}

.ws-prev {
	border-right: 1px solid #ececec;
}

/* === Bottom: Text panel (full width, no seam) === */
.ws-panel {
	position: relative;
	margin: 0;
	background: #efefef;
	color: #333;
	display: grid;
	grid-template-columns: 35% 1fr;
	column-gap: var(--gap);
	padding: clamp(24px, 2.4vw, 32px) var(--gap) clamp(44px, 3.2vw, 52px);
	border-top: none;
	transform: translateZ(0);
	padding: 5%;
}

.ws-meta {
	grid-column: 1;
	grid-row: 1;
	display: grid;
	grid-template-columns: auto auto;
	align-content: start;
	column-gap: .7em;
	row-gap: 6px;
	padding-right: clamp(16px, 2.4vw, 28px);
}
.ws-no {
	font-size: 1.5em;
	letter-spacing: .14em;
	color: #111;
}
.ws-sep {
	color: #a9a9a9;
}
.ws-title {
    font-weight: bold;
	grid-column: 1 / -1;
	font-size: 1.4em;
	line-height: 1;
	color: #222;
	letter-spacing: .02em;
}
.ws-sub {
	grid-column: 1 / -1;
	color: #9a9a9a;
	font-size: 1em;
	letter-spacing: .08em;
}
.ws-copy {
	grid-column: 2;
	grid-row: 1;
	align-self: start;
	max-width: none;
}
.ws-copy .jp {
	margin: 0 0 1em;
}
.ws-copy .en {
	margin: .9em 0 0;
	color: var(--muted);
	font-size: .95rem;
}

/* === Dots (fixed, thin bars) === */
.ws-dots {
	position: absolute;
	right: var(--gap);
}

.ws-dots .slick-dots {
	display: flex;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ws-dots .slick-dots li {
	margin: 0;
}

.ws-dots .slick-dots button {
	width: 88px;
	max-width: 18vw;
	height: 3px;
	background: #d9d9d9;
	border: 0;
	padding: 0;
	font-size: 0;
	cursor: pointer;
}

.ws-dots .slick-dots .slick-active button {
	background: #555;
}

/* === Text fade (panel content) === */
.ws-fade-enter {
	opacity: 0;
	transform: translateY(6px);
}

.ws-fade-leave {
	opacity: 0;
	transition: opacity .25s ease, transform .25s ease;
}

.ws-fade-active {
	transition: opacity .25s ease, transform .25s ease;
}

.ws-fade-enter.ws-fade-active {
	opacity: 1;
	transform: none;
}

/* === Responsive === */
@media (max-width: 900px) {

	.ws-panel {
		margin: 0;
		padding-top: 10vw;
		padding-right: 6vw;
		padding-bottom: 16vw;
		padding-left: 6vw;
		background: #efefef;
		border: 0;
		display: grid;
		grid-template-columns: 1fr;
		row-gap: 6vw;
	}

	/* 左カラム用の指定を全解除してフル幅に */
	.ws-meta {
		grid-column: 1;
		grid-row: auto;
		margin: 0;
		padding: 0;
		border: 0;
	}

	/* PC時の grid-column:2 をリセットして1列へ */
	.ws-copy {
		grid-column: 1;
		grid-row: auto;
		margin: 0;
		padding: 0;
		max-width: none;
	}

	/* ドットは左寄せのまま（中央にしたい場合は left/right を調整） */
	.ws-dots {
		left: 6vw;
		right: auto;
		bottom: 6vw;
	}

}

/* ========================================
COMMITMENTS V2
======================================== */

.commitments-v2{
  padding: 8vw 0;
  background: #f5f5f3;
}

.commitments-v2__inner{
  width: min(1200px, 90vw);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 30% 1fr;
  gap: 6vw;
  align-items: start;
}

.commitments-v2__intro{
  position: sticky;
  top: 8vw;
  padding: 4vw 0 0;
}

.commitments-v2__intro::before{
  content: "REASON";
  position: absolute;
  top: 0;
  left: 0;
  font-size: clamp(4em, 7vw, 7em);
  font-weight: 700;
  line-height: 1;
  letter-spacing: .04em;
  color: rgba(0,0,0,.04);
  z-index: 1;
  pointer-events: none;
}

.commitments-v2__eyebrow{
  position: relative;
  z-index: 2;
  margin: 0 0 1.2em;
  font-size: .95em;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: .08em;
  color: #7a7a7a;
}

.commitments-v2__heading{
  position: relative;
  z-index: 2;
  margin: 0;
  padding: 0 0 .55em;
  font-size: clamp(2.8em, 4.4vw, 4.8em);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .01em;
  color: #111;
}

.commitments-v2__heading::after{
  content: "";
  display: block;
  width: 100%;
  max-width: 5.5em;
  height: 1px;
  margin-top: .45em;
  background: #1a1a1a;
}

/* 使わなくてもOK。HTMLに無くても問題なし */
.commitments-v2__lead{
  margin: 1.8em 0 0;
  font-size: clamp(1.2em, 1.6vw, 1.7em);
  font-weight: 600;
  line-height: 1.7;
  color: #111;
}

.commitments-v2__text{
  margin: 2em 0 0;
  font-size: clamp(.95em, 1.02vw, 1.06em);
  font-weight: 500;
  line-height: 2.05;
  color: #333;
}

.commitments-v2__list{
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(0,0,0,.12);
}

.commitments-v2__item{
  display: grid;
  grid-template-columns: 7em 1fr;
  gap: 2.2vw;
  padding: 2.2vw 0;
  border-bottom: 1px solid rgba(0,0,0,.12);
  align-items: start;
}

.commitments-v2__num{
  position: relative;
  width: 2.8em;
  height: 2.8em;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(1.6em, 2vw, 2.1em);
  font-weight: 400;
  line-height: 1;
  letter-spacing: .04em;
  color: #111;
}

.commitments-v2__num::before{
  content: "";
  position: absolute;
  inset: 0;
  border: 1.5px solid #111;
  border-radius: 50%;
}

.commitments-v2__title{
  margin: 0 0 .6em;
  font-size: 1.6em;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: .01em;
  color: #111;
}

.commitments-v2__copy{
  margin: 0;
  font-size: clamp(.98em, 1.02vw, 1.08em);
  font-weight: 500;
  line-height: 2;
  color: #2f2f2f;
  max-width: 36em;
}

/* ===== SP（〜767px） ===== */
@media screen and (max-width: 767px){

  .commitments-v2{
    padding: 14vw 0;
  }

  .commitments-v2__inner{
    width: 90vw;
    grid-template-columns: 1fr;
    gap: 10vw;
  }

  .commitments-v2__intro{
    position: static;
    padding: 6vw 0 0;
  }

  .commitments-v2__intro::before{
    font-size: 4em;
    top: 0;
    left: 0;
  }

  .commitments-v2__heading{
    font-size: 2.4em;
    line-height: 1.1;
    padding-bottom: .45em;
  }

  .commitments-v2__lead{
    margin-top: 1.4em;
    font-size: 1.25em;
    line-height: 1.7;
  }

  .commitments-v2__text{
    margin-top: 1.6em;
    font-size: .98em;
    line-height: 1.95;
  }

  .commitments-v2__item{
    grid-template-columns: 4.6em 1fr;
    gap: 1em;
    padding: 6vw 0;
  }

  .commitments-v2__num{
    width: 2.4em;
    height: 2.4em;
    font-size: 1.6em;
  }

  .commitments-v2__title{
    margin-bottom: .5em;
    font-size: 1.28em;
    line-height: 1.5;
  }

  .commitments-v2__copy{
    font-size: .96em;
    line-height: 1.9;
  }

}



/* ========== Footer ========== */
.site-footer {
  background: #111;
  color: #fff;
  padding: 60px 5% 30px;
  font-family: "Zen Kaku Gothic New", sans-serif;
  text-align: center;
}

.footer-wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
  max-width: 1200px;
  margin: 0 auto 40px;
}

.footer-col {
  flex: 1;
  min-width: 200px;
}

.footer-left img.footer-logo {
  width: 50%;
  height: auto;
	margin: 0 auto;
}

.footer-center p {
  margin: 0;
  line-height: 1.8;
  font-size: 14px;
}

.footer-right h4 {
  font-size: 14px;
  letter-spacing: 0.1em;
  margin-bottom: 10px;
}

.footer-right ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-right li {
  margin-bottom: 4px;
}

.footer-right a {
  color: #fff;
  text-decoration: none;
  transition: opacity .2s;
}

.footer-right a:hover {
  opacity: 0.7;
}

.footer-note {
  font-size: 12px;
  opacity: 0.7;
}

/* SP時：縦並び */
@media screen and (max-width: 768px) {
  .footer-wrap {
    flex-direction: column;
    text-align: center;
    gap: 24px;
  }
  .footer-right ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px 20px;
  }
}





/*===========================================================*/
/* fadein（何度でも再生するタイプ）                         */
/*===========================================================*/
.fadein {
  opacity: 0;
  transform: translateY(10px);
  transition: all 1s ease;
  will-change: opacity, transform;
}

.fadein.active {
  opacity: 1;
  transform: translateY(0);
}








.pc {
	display: block!important;
}
.pc a {
	text-decoration: none;
}
.sp {
	display: none!important;
}
.sp a {
	text-decoration: none;
}

@media (max-width: 767px) {
	body,html {
		width: 100%;
	}
    .pc {
        display: none!important;
    }
    .sp {
        display: block!important;
    }
	#content {
		padding: 0 0;
	}
}


ol, ul {
    box-sizing: border-box;
    padding-inline-start: 0;
}
.muted2 {
	font-size: 0.9em;
	color:#999;
}



/* =========================================================
   STRENGTH / PRICING (+ ws-head for COMMITMENTS slider)
   ========================================================= */

/* 共通（セクション見出し） */
.pg-section{
	width: 100vw;
    margin: 0 auto;
  background:#fff;
  color:#222;
  padding: clamp(64px, 7vw, 110px) 0;
}
.pg-head{
  max-width: min(900px, 92vw);
  margin: 0 auto clamp(28px, 3.2vw, 40px);
}
.pg-head h3{
  font-size: clamp(12px, 1.2vw, 14px);
	text-align: center;
  letter-spacing: .22em;
  color:#999;
  margin: 0 0 1.2em;
}
.pg-head h2{
	text-align: center;
    font-weight: 400;
    font-size: clamp(24px, 3vw, 36px);
  margin: .2em 0 .6em;
  letter-spacing: .04em;
}
.pg-lead{
	font-size: clamp(13px, 1.2vw, 14px);
	text-align: center;
  color:#555;
  line-height: 2;
  margin: 0;
  
}

/* COMMITMENTS（ws-wrap内に入れた見出し用） */
.ws-head {
    padding: clamp(42px, 5vw, 70px) 0 18px;
    max-width: 70vw;
    margin: 0 auto;
}
.ws-head h3{
	text-align: center;
  font-size: 12px;
  letter-spacing: .22em;
	text-align: center;
  color:#999;
  margin: 0 0 14px;
}
.ws-head h2{
	text-align: center;
    font-weight: 400;
    font-size: clamp(24px, 3vw, 36px);
  margin: 0 0 10px;
  letter-spacing: .04em;
}
.ws-wrap .pg-lead{
  color:#555;
  line-height: 2;
  margin: 0;
}

@media screen and (max-width: 767px){
	.pg-section{
	width: 100vw;
}
.ws-head{
  padding: clamp(42px, 5vw, 70px) 0 18px;
  max-width: min(980px, 92vw);
  margin: 0 auto;
}
}


/* --- Strength（そのまま使う場合） --- */
.strength-grid{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap: clamp(16px, 3vw, 28px);
  align-items: stretch;
}
.strength-card{
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 18px;
  padding: clamp(18px, 2.2vw, 28px);
  background:#fff;
  box-shadow: 0 10px 30px rgba(0,0,0,.05);
}
.strength-card.is-dark{
  background: radial-gradient(1200px 400px at 20% 0%, rgba(255,255,255,.10), transparent 60%),
              linear-gradient(180deg, #121212, #0b0b0b);
  color:#fff;
  border-color: rgba(255,255,255,.06);
  box-shadow: 0 16px 40px rgba(0,0,0,.18);
}
.strength-card.is-dark h4{
  margin:0 0 14px;
  letter-spacing:.12em;
  font-size: 15px;
}
.strength-kpi{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-bottom: 16px;
}
.kpi{
  background: linear-gradient(180deg, #fafafa, #f2f2f2);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 16px;
  padding: 16px 14px;
  display:flex;
  align-items: baseline;
  justify-content: center;
  gap: 6px;
}
.kpi-label{ color:#777; font-weight:800; letter-spacing:.10em; }
.kpi-val{
	font-family: "ryo-gothic-plusn", sans-serif;
	font-size: clamp(26px, 3vw, 34px);
	color:#111;
	letter-spacing:.02em;
	font-weight: 600;
}
.kpi-unit{ color:#777; font-weight:800; }
.strength-note{
  margin: 0;
  line-height: 2;
  color:#444;
  font-size: 14px;
}
.checklist{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap: 12px;
}
.checklist li{
  position:relative;
  padding-left: 1.4em;
  line-height: 1.8;
  color: rgba(255,255,255,.88);
  letter-spacing: .02em;
}
.checklist li::before{
  content:"✓";
  position:absolute;
  left:0;
  top:0;
}




/* =========================================================
   PRICING
   ========================================================= */
.pricing{
  background: transparent;
}

.price-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(24px, 3vw, 36px);
}

.price-block{
  background: #f7f7f7;
  border-radius: 20px;
  overflow: hidden;
}

.price-title{
  margin: 0;
  padding: 18px 24px;
  background: linear-gradient(90deg, #2a2a2a 0%, #1f1f1f 100%);
  color: #fff;
  text-align: center;
  font-size: clamp(22px, 2vw, 30px);
  line-height: 1.4;
  font-weight: 600;
}

.price-title small{
  font-size: .72em;
  font-weight: 700;
  color: rgba(255,255,255,.92);
}

.price-body{
  padding: clamp(28px, 4vw, 42px) clamp(20px, 3vw, 36px);
}

.price-copy{
  margin: 0 0 28px;
  text-align: center;
  font-size: clamp(18px, 1.4vw, 24px);
  line-height: 1.8;
  font-weight: 700;
  color: #222;
}

.price-row{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
  align-items: start;
}

.price-option{
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 10px;
}

.price-label{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 150px;
  height: 32px;
  margin: 0 0 16px;
  padding: 0 14px;
  background: #c5b358;
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  line-height: 1;
  text-align: center;
  border-radius: 2px;
}

.price-label.is-empty{
  visibility: hidden;
}

.price-main{
  margin: 0;
  font-size: 2.4em;
  line-height: 1.1;
  font-weight: 600;
  color: #222;
  letter-spacing: -.02em;
  white-space: nowrap;
}

.price-main span{
  font-size: .5em;
  font-weight: 700;
  margin-left: .08em;
}

.price-main em{
  font-style: normal;
  font-size: .26em;
  font-weight: 700;
  color: #666;
  margin-left: .45em;
  letter-spacing: 0;
}

.price-meta{
  margin: 8px 0 0;
  font-size: clamp(18px, 1.3vw, 24px);
  line-height: 1.4;
  font-weight: 600;
  color: #333;
}

.price-sub{
  margin: 10px 0 0;
  font-size: clamp(14px, 1vw, 16px);
  line-height: 1.7;
  font-weight: 600;
  color: #666;
}

.price-foot{
  margin-top: clamp(22px, 3vw, 34px);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(18px, 2.8vw, 32px);
}

.benefits,
.entry{
  background: #f7f7f7;
  border-radius: 20px;
  padding: clamp(22px, 2.6vw, 30px);
}

.benefits h4,
.entry h4{
  margin: 0 0 18px;
  font-size: clamp(22px, 1.8vw, 30px);
  line-height: 1.4;
  font-weight: 600;
  color: #222;
}

.chiplist{
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.chiplist li{
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 999px;
  padding: 10px 16px;
  font-size: 14px;
  line-height: 1.5;
  font-weight: 700;
  color: #333;
}

.entry-fee{
  margin: 0 0 10px;
  font-size: 1.4em;
  line-height: 1.5;
  font-weight: 700;
  color: #222;
}

.entry-fee strong{
  font-size: 1.5em;
  font-weight: 600;
  letter-spacing: -.02em;
  color: #111;
}

.badge{
  display: inline-block;
  margin-left: .6em;
  padding: 7px 14px;
  border-radius: 999px;
  background: #cfe7d8;
  color: #1b6d45;
  border: 1px solid rgba(27,109,69,.18);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .04em;
  vertical-align: middle;
}

.muted2{
  margin: 0;
  font-size: 14px;
  line-height: 1.9;
  color: #666;
}

/* =========================================================
   SP
   ========================================================= */
@media screen and (max-width: 767px){
  .price-row,
  .price-foot{
    grid-template-columns: 1fr;
  }

  .price-title{
    padding: 14px 16px;
    font-size: 18px;
  }

  .price-title small{
    display: block;
    margin-top: 6px;
    font-size: 12px;
    line-height: 1.6;
  }

  .price-body{
    padding: 20px 16px;
  }

  .price-copy{
    margin-bottom: 20px;
    font-size: 15px;
  }

  .price-label{
    min-width: 120px;
    height: 28px;
    margin-bottom: 12px;
    font-size: 12px;
    padding: 0 10px;
  }

  .price-main{
    font-size: 34px;
  }

  .price-main em{
    font-size: .3em;
    margin-left: .35em;
  }

  .price-meta{
    font-size: 18px;
  }

  .price-sub{
    font-size: 13px;
  }

  .benefits,
  .entry{
    padding: 20px 16px;
    border-radius: 16px;
  }

  .benefits h4,
  .entry h4{
    font-size: 20px;
    margin-bottom: 14px;
  }

  .chiplist li{
    font-size: 13px;
    padding: 8px 12px;
  }

  .entry-fee{
    font-size: 20px;
  }

  .badge{
    margin-left: 0;
    margin-top: 8px;
  }
}


/* =========================
   PROFILE split（シンプル版）
   左：写真
   右：文章
   ========================= */

.profile-split{
  width: 75vw;
  margin: 0 auto;
  padding: clamp(80px, 10vw, 140px) 0;
}

.profile-split__inner{
    letter-spacing: 0.2em;
  display: grid;
  grid-template-columns: 25% 1fr;
  column-gap: clamp(40px, 6vw, 90px);
  align-items: start;
}

.profile-split__photo{
  width: 100%;
}

.profile-split__figure{
  margin: 0;
}

.profile-split__figure img{
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  border-radius: 20px;
}

.profile-split__name{
  margin: 22px 0 0;
  font-size: 15px;
  line-height: 1.8;
  color: #222;
}

.profile-split__body{
  width: 100%;
}

.profile-split__card{
  background: transparent;
  padding: 0;
  color: #222;
}

.profile-split__card p{
  margin: 0 0 30px;
  font-size: 0.95em;
	line-height: 1.8;
}

.profile-split__card p:last-child{
  margin-bottom: 0;
}
.profile-split__card span{
	font-weight: bold;
}
.profile-split__card strong{
  display: inline-block;
  margin-bottom: 8px;
  font-size: 1em;
  font-weight: 700;
}

/* SP */
@media (max-width: 768px){
  .profile-split{
    width: 92vw;
    padding: 70px 0;
  }

  .profile-split__inner{
    grid-template-columns: 1fr;
    row-gap: 28px;
  }

  .profile-split__photo{
    max-width: 220px;
  }

  .profile-split__name{
    margin-top: 16px;
    font-size: 14px;
  }

  .profile-split__card p{
    margin-bottom: 22px;
    line-height: 2;
  }
}


/* =========================================================
   HEADER / NAV / LINE BUTTON
   ========================================================= */

/* PC / SP 表示切替 */
.pc{
	display: block !important;
}
.pc a{
	text-decoration: none;
}
.sp{
	display: none !important;
}
.sp a{
	text-decoration: none;
}

@media (max-width: 767px){
	body, html{
		width: 100%;
	}
	.pc{
		display: none !important;
	}
	.sp{
		display: block !important;
	}
	#content{
		padding: 0;
	}
}

/* ===== PC Header ===== */
.site-header{
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 1000;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	padding: 20px 40px;
	box-sizing: border-box;
	pointer-events: none;
}

.site-logo{
	position: relative;
    top: 5px;
	pointer-events: auto;
}

.site-logo a{
	display: block;
}

.site-logo img{
	height: 38px;
	width: auto;
	display: block;
	filter: drop-shadow(0 0 8px rgba(0,0,0,.35));
}

.header-right{
	position: relative;
	display: flex;
	align-items: flex-start;
	justify-content: flex-end;
	pointer-events: auto;
}

.main-navigation{
	display: flex;
	align-items: center;
}

/* ===== PCナビ ===== */
#nav{
	position: static;
	margin: 0;
	padding-right: 180px; /* LINEボタンとの干渉回避 */
	z-index: auto;
	text-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
}

#nav ul{
	list-style: none;
	margin: 0;
	padding: 0;
}

ul.nav-menu,
div.nav-menu > ul{
	margin: 0;
	padding: 0;
}

.nav-menu li{
	display: inline-block;
	position: relative;
	text-align: center;
	margin: 0;
	color: #d3d3d3;
	font-size: 1em;
	letter-spacing: 0.08em;
	text-decoration: none;
	padding: 2px 10px;
}

.menu_item{
	font-size: 1em;
	font-weight: bold;
}

.menu-item-description{
	font-size: 0.8em;
	line-height: 1.4;
	display: block;
}

.nav-menu li a{
	color: #fff;
	display: block;
	font-family: "Zen Kaku Gothic New", sans-serif;
}

.nav-menu li:hover > a,
.nav-menu li a:hover{
	opacity: 0.7;
}

.nav-menu .sub-menu,
.nav-menu .children{
	background-color: #fff;
	display: none;
	padding: 0;
	position: absolute;
	text-align: left;
}

.nav-menu .sub-menu ul,
.nav-menu .children ul{
	border-left: 0;
	left: 100%;
	top: 0;
	text-align: left;
}

ul.nav-menu ul a,
.nav-menu ul ul a{
	color: #333;
	margin: 0;
	width: 100px;
}

ul.nav-menu ul a:hover,
.nav-menu ul ul a:hover{
	opacity: 0.7;
}

ul.nav-menu li:hover > ul,
.nav-menu ul li:hover > ul{
	display: block;
}

.nav-menu .current_page_item > a,
.nav-menu .current_page_ancestor > a,
.nav-menu .current-menu-item > a,
.nav-menu .current-menu-ancestor > a{
	color: #fff;
}

/* ===== LINE Button ===== */
.line-btn{
	position: absolute;
    right: 0;
    top: 3px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 20px;
    border: 1px solid #00c853;
    border-radius: 999px;
    color: #00c853;
    text-decoration: none;
    font-weight: 700;
    font-size: 15px;
    line-height: 1;
    letter-spacing: .04em;
    /* background: rgba(0, 0, 0, .15); */
    /* backdrop-filter: blur(2px); */
    -webkit-backdrop-filter: blur(2px);
    box-shadow: 0 0 0 rgba(0, 0, 0, 0);
    transition: .25s ease;
    white-space: nowrap;
}

.line-btn:hover{
	background: #00c853;
	color: #fff;
}

/* ===== SP Header ===== */
.sp-header{
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 210;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 10px;
	padding: 14px 16px;
	box-sizing: border-box;
}

.sp-logo{
	flex: 0 0 auto;
}

.sp-logo a{
	display: block;
}

.sp-logo img{
	height: 26px;
	width: auto;
	max-width: 150px;
	display: block;
	filter: drop-shadow(0 0 8px rgba(0,0,0,.35));
}

.sp-header-right{
	display: flex;
	align-items: center;
	gap: 10px;
	flex: 0 0 auto;
}

/* ===== Hamburger ===== */
.menu{
	position: relative;
	width: 28px;
	height: 18px;
	margin: 0;
	flex: 0 0 auto;
	z-index: 210;
}

.menu__line{
	background-color: #fff;
	display: block;
	height: 1px;
	position: absolute;
	transition: transform .3s;
	width: 100%;
}

.menu__line--center{
	top: 8px;
}

.menu__line--bottom{
	bottom: 0;
}

.menu__line--top.active{
	top: 8px;
	transform: rotate(45deg);
}

.menu__line--center.active{
	transform: scaleX(0);
}

.menu__line--bottom.active{
	bottom: 9px;
	transform: rotate(135deg);
}

/* ===== SP LINE Button ===== */
.line-btn--sp{
	position: static !important;
	min-height: 34px;
	height: 34px;
	padding: 0 12px;
	color: #fff;
    background: #00c853;
	font-size: 12px;
	line-height: 1;
	border-width: 2px;
	white-space: nowrap;
	flex: 0 0 auto;
}
.line-btn--sp:hover{
	background: #fff;
	color: #00c853;
}

/* ===== SP Menu Overlay ===== */
.gnav{
	background: rgba(255,255,255,0.9);
	display: none;
	height: 100%;
	position: fixed;
	width: 100%;
	z-index: 105;
}

.gnav__wrap{
	align-items: center;
	display: flex;
	height: 100%;
	justify-content: center;
	position: absolute;
	width: 100%;
}

.gnav__menu__item{
	margin: 40px 0;
}

.gnav__menu__item ul{
	padding: 0;
}

.gnav__menu__item li{
	list-style: none;
}

.gnav__menu__item a{
	font-family: "Zen Kaku Gothic New", sans-serif;
	color: #000000;
	font-size: 1.2em;
	transition: .5s;
	letter-spacing: 0.15em;
	line-height: 3.5;
}

.gnav__menu__item a:hover{
	color: #666;
}

/* ===== Sub Menu ===== */
.sub-menu li{
	padding: 0 0 0 15%;
	position: relative;
}

.sub-menu li:before{
	border-top: 1px solid;
	content: "";
	position: absolute;
	top: 50%;
	left: 0%;
	width: 5%;
}

@media screen and (max-width: 767px){
	.menu_item{
		font-size: 1em;
		line-height: 1.6;
	}

	.menu-item-description{
		font-size: 0.5em;
		line-height: 1;
		display: block;
		margin-bottom: 15%;
	}
}


.ws-head h3{
	font-size: 14px;
	letter-spacing: .2em;
	text-align: center;
	color:#999;
}

.ws-subtitle{
	font-size:14px;
	text-align: center;
	color:#888;
	margin: 3em 0 0 0;
}
.ws-head h2{
	font-size:42px;
	text-align: center;
	margin-top:8px;
}







.faq-section{
  padding: clamp(80px, 8vw, 120px) 0;
}
.faq-head{
  margin-bottom: 50px;
}

.faq-head h2{
  display: block;
  margin: 0;
  font-size: clamp(44px, 6vw, 84px);
  line-height: 1;
  font-weight: 700;
  color: #222;
}

.faq-head p{
  display: block;
  margin: 12px 0 0;
  font-size: clamp(18px, 1.4vw, 24px);
  line-height: 1.6;
  font-weight: 700;
  color: #222;
}
.faq-list{
  margin-top: 50px;
  display: grid;
  gap: 22px;
}

.faq-item{
  background: transparent;
}

.faq-question{
  width: 100%;
  border: none;
  background: #f7f7f7;
  border-radius: 999px;
  display: grid;
  grid-template-columns: 52px 1fr 64px;
  align-items: center;
  gap: 12px;
  padding: 1em 2em;
  cursor: pointer;
  text-align: left;
  color: #222;
}

.faq-q,
.faq-a{
  font-size: clamp(28px, 2.2vw, 42px);
  font-weight: 700;
  line-height: 1;
  color: #222;
}

.faq-question__text{
  font-size: clamp(18px, 1.5vw, 24px);
  font-weight: 600;
  line-height: 1.6;
  color: #222;
}

.faq-toggle{
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #e9e9e9;
  position: relative;
  justify-self: end;
}

.faq-toggle::before{
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 10px;
  border-right: 2px solid #444;
  border-bottom: 2px solid #444;
  transform: translate(-50%, -60%) rotate(45deg);
  transition: transform .25s ease;
}

.faq-answer{
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s ease;
}

.faq-item.is-open .faq-answer{
  max-height: 240px;
}

.faq-item.is-open .faq-toggle::before{
  transform: translate(-50%, -40%) rotate(-135deg);
}

.faq-answer__inner{
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 12px;
  padding: 22px 28px 10px;
  align-items: start;
}

.faq-answer__inner p{
  margin: 0;
  font-size: clamp(17px, 1.35vw, 22px);
  line-height: 1.9;
  font-weight: 500;
  color: #222;
}

@media (max-width: 768px){
  .faq-list{
    margin-top: 34px;
    gap: 16px;
  }

  .faq-question{
    grid-template-columns: 34px 1fr 46px;
    padding: 18px 16px;
    gap: 10px;
  }

  .faq-answer__inner{
    grid-template-columns: 34px 1fr;
    padding: 16px 16px 6px;
    gap: 10px;
  }

  .faq-q,
  .faq-a{
    font-size: 22px;
  }

  .faq-question__text{
    font-size: 16px;
    line-height: 1.6;
  }

  .faq-answer__inner p{
    font-size: 15px;
    line-height: 1.85;
  }

  .faq-toggle{
    width: 42px;
    height: 42px;
  }

  .faq-toggle::before{
    width: 8px;
    height: 8px;
    border-right: 1.5px solid #444;
    border-bottom: 1.5px solid #444;
  }
}


#content,
.site,
.site-content,
main{
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: none !important;
}


.site-header{
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 20px 40px;
  box-sizing: border-box;
  pointer-events: none;
  transition: background .35s ease, backdrop-filter .35s ease;
}

.site-header.is-scrolled{
  background: rgba(0,0,0,.88);
  backdrop-filter: blur(8px);
}
.site-header,
.sp-header{
  transition: background .35s ease, backdrop-filter .35s ease;
}

/* スクロール後 */
.site-header.is-scrolled,
.sp-header.is-scrolled{
  background: rgba(0,0,0,.9);
  backdrop-filter: blur(8px);
}

/* トップ以外は最初から黒 */
body:not(.home) .site-header,
body:not(.home) .sp-header{
  background: rgba(0,0,0,.9);
}

@media (max-width: 767px){
  .site-header{
    padding: 14px 16px;
  }
}.site-header,
.sp-header{
  transition: background .35s ease, backdrop-filter .35s ease;
}

.site-header.is-scrolled,
.sp-header.is-scrolled{
  background: rgba(0,0,0,.88);
  backdrop-filter: blur(8px);
}


section[id]{
  scroll-margin-top: 80px;
}

@media (max-width: 767px){
  section[id]{
    scroll-margin-top: 65px;
  }
}



/* ========================================
BEFORE AFTER
======================================== */

.achievements{
  padding: 6vw 0 7vw;
  background: #f5f5f5;
}

.achievements .wrap{
  width: min(1200px, 90vw);
  margin: 0 auto;
}

.ba-grid{
  width: 75%;
  margin: 3vw auto 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.6vw;
}

.ba-item{
  position: relative;
  overflow: hidden;
  border-radius: .4vw;
  background: #fff;
}

.ba-item img{
  width: 100%;
  height: auto;
  display: block;
  transition: .5s ease;
}

.ba-item:hover img{
  transform: scale(1.04);
}

/* ===== SP（〜767px） ===== */
@media screen and (max-width: 767px){

  .achievements{
    padding: 14vw 0;
  }

  .achievements .wrap{
    width: 90vw;
  }

  .ba-grid{
    width: 90%;
    margin: 8vw auto 0;
    grid-template-columns: repeat(2, 1fr);
    gap: 3vw;
  }

  .ba-item{
    border-radius: 2vw;
  }

}

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

.reserve-hero{
  position: relative;
  min-height: 32vw;
  display: flex;
  align-items: center;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}

.reserve-hero::before{
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.5);
}

.reserve-hero__inner{
  position: relative;
  z-index: 2;
  width: 80vw;
  margin: 0 auto;
  padding: 7vw 0;
  text-align: center;
  color: #fff;
	filter: drop-shadow(0 0 10px rgba(0, 0, 0, .8));
}

.reserve-hero__lead{
  margin: 0 0 0.8em;
  font-size: 1.4em;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: .04em;
}

.reserve-hero__title{
  margin: 0;
  font-size: 2.2em;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: .02em;
}

.reserve-hero__buttons{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.5vw;
  margin: 3vw auto 0;
  flex-wrap: wrap;
}

.reserve-hero__btn{
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-width: 17em;
  padding: 0.9em 1.6em;
  border-radius: 9999px;
  font-size: 1.1em;
  font-weight: 700;
  line-height: 1.4;
  text-decoration: none;
  box-sizing: border-box;
  transition: .3s ease;
}

.reserve-hero__btn--contact{
  color: #fff;
  border: 0.08em solid rgba(255,255,255,.9);
  background: rgba(255,255,255,.05);
}
.reserve-hero__btn--contact:hover{
	background: #fff;
	color: #000;
}
.reserve-hero__btn--line{
  color: #fff;
  border: 0.08em solid #19c95b;
  background: #19c95b;
}
.reserve-hero__btn--line:hover{
	background: #fff;
	color: #19c95b;
}
.reserve-hero__btn:hover{
  transform: translateY(-.12em);
  opacity: .95;
}

.reserve-hero__note{
  margin: 1.6em 0 0;
  font-size: 1.1em;
  font-weight: 600;
  line-height: 1.8;
}

/* ===== SP（〜767px） ===== */
@media screen and (max-width: 767px){

  .reserve-hero{
    min-height: auto;
  }

  .reserve-hero__inner{
    width: 90vw;
    padding: 16vw 0;
  }

  .reserve-hero__lead{
    margin: 0 0 .8em;
    font-size: 1.2em;
    line-height: 1.6;
  }

  .reserve-hero__title{
    font-size: 1.6em;
    line-height: 1.3;
  }

  .reserve-hero__buttons{
    flex-direction: column;
    gap: 1em;
    margin: 2em auto 0;
  }

  .reserve-hero__btn{
	  width: 70%;
	  min-width: auto;
	  padding: 0.8em 1.2em;
	  font-size: 1.05em;
  }

  .reserve-hero__note{
    margin: 1.8em 0 0;
    font-size: .8em;
    line-height: 1.8;
  }

}



/* ========================================
TRIAL FLOW
======================================== */

.trial-flow{
  padding: clamp(64px, 7vw, 110px) 0;
  background: #f5f5f5;
  color: #222;
}

.trial-flow .wrap{
  max-width: min(1180px, 92vw);
  margin-inline: auto;
}

.trial-flow .pg-head{
  margin: 0 auto clamp(36px, 4vw, 56px);
}

.trial-list{
  width: 78%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  border-top: 1px solid #d9d9d9;
}

.trial-item{
  display: grid;
  grid-template-columns: 7em 1fr;
  gap: clamp(18px, 2vw, 28px);
  align-items: start;
  padding: clamp(26px, 3vw, 36px) 0;
  border-bottom: 1px solid #d9d9d9;
}

.trial-num{
  font-size: clamp(32px, 3vw, 48px);
  font-weight: 600;
  line-height: 1;
  letter-spacing: .04em;
  color: #c1ab4f;
}

.trial-content{
  padding-top: .2em;
}

.trial-content h4{
  margin: 0 0 .8em;
  font-size: clamp(22px, 1.8vw, 30px);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .02em;
  color: #222;
}

.trial-content p{
  margin: 0;
  font-size: clamp(15px, 1vw, 17px);
  font-weight: 500;
  line-height: 2;
  color: #444;
}

/* ===== SP（〜767px） ===== */
@media screen and (max-width: 767px){

  .trial-flow{
    padding: 14vw 0;
  }

  .trial-flow .pg-head{
    margin: 0 auto 10vw;
  }

  .trial-list{
    width: 100%;
  }

  .trial-item{
    grid-template-columns: 4.2em 1fr;
    gap: 1em;
    padding: 6vw 0;
  }

  .trial-num{
    font-size: 2.2em;
  }

  .trial-content h4{
    margin: 0 0 .7em;
    font-size: 1.2em;
    line-height: 1.5;
  }

  .trial-content p{
    font-size: .95em;
    line-height: 1.9;
  }

}




/* ========================================
TROUBLE
======================================== */

.trouble{
  padding: clamp(64px, 7vw, 110px) 0;
  background: #fff;
  color: #222;
}

.trouble .pg-head{
  margin-bottom: clamp(28px, 3vw, 42px);
}

.trouble .pg-head .pg-lead{
  margin-top: 1em;
  color: #888;
}

.trouble-box{
  width: min(1200px, 100%);
  margin: 0 auto;
  padding: clamp(26px, 3vw, 40px);
  background: #fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 1.2em;
  box-shadow: 0 10px 30px rgba(0,0,0,.03);
}

.trouble-list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.2em 2.4em;
}

/* =====================
リスト本体
===================== */
.trouble-list li{
  position: relative;
  padding-left: 2em; /* ←余白を広げる */
  font-size: clamp(15px, 1.05vw, 18px); /* ←少し大きく */
  line-height: 1.9;
  color: #222;
  font-weight: 500; /* ←少しだけ強める */
}

/* =====================
チェックアイコン
===================== */
.trouble-list li::before{
  content: "☑";
  position: absolute;
  left: 0;
  top: .05em;
  font-size: 1.5em;   /* ←ここを大きく */
  font-weight: bold;  /* ←少し強く */
  color: #c1ab4f;
  line-height: 1;
}

/* =====================
メッセージ
===================== */
.trouble-message{
  margin-top: clamp(26px, 3vw, 40px);
  text-align: center;
}

.trouble-message__sub{
  margin: 0 0 .5em;
  font-size: clamp(16px, 1.2vw, 20px);
  line-height: 1.8;
  font-weight: 500;
  color: #444;
}

.trouble-message__main{
  margin: 0;
  font-size: clamp(28px, 2.4vw, 42px);
  line-height: 1.4;
  font-weight: 700;
  color: #111;
  letter-spacing: .04em;
}

/* ===== SP（〜767px） ===== */
@media screen and (max-width: 767px){

  .trouble{
    padding: 14vw 0;
  }

  .trouble-box{
    width: 85%;
    padding: 6vw 5vw;
    border-radius: 1em;
  }

  .trouble-list{
    grid-template-columns: 1fr;
    gap: 1em;
  }

  .trouble-list li{
    font-size: 1em;
    line-height: 1.8;
    padding-left: 1.8em;
  }

  .trouble-list li::before{
    font-size: 1.5em;
    top: .1em;
  }

  .trouble-message{
    margin-top: 8vw;
  }

  .trouble-message__sub{
    font-size: 1em;
  }

  .trouble-message__main{
    font-size: 1.9em;
    line-height: 1.5;
  }

}

/* =========================================================
CTA（プロフィール上）
※ hero用クラスは使わない
========================================================= */

.cta-section{
  padding: 5em 0;
  background: #f5f5f5;
  text-align: center;
}

/* 内側 */
.cta-section .wrap{
  width: 90%;
  max-width: 1180px;
  margin: 0 auto;
}

/* ===============================
テキスト
=============================== */
.cta-text{
  margin-bottom: 2em;
}

.cta-text__lead{
  margin: 0 0 0.5em;
  font-size: 1.4em;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.08em;
  color: #222;
}

.cta-text__sub{
  margin: 0;
  font-size: 0.95em;
  line-height: 1.8;
  letter-spacing: 0.08em;
  color: #666;
}

/* ===============================
ボタン
=============================== */
.cta-buttons{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1em;
  flex-wrap: wrap;
}

.cta-buttons__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 13em;
  min-height: 48px;
  padding: 0 1.5em;
  border-radius: 9999px;
  font-size: 0.95em;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  box-sizing: border-box;
  transition: all 0.25s ease;
}

/* お問い合わせ */
.cta-buttons__btn--contact{
  color: #222;
  border: 1px solid rgba(34,34,34,0.2);
  background: rgba(255,255,255,0.8);
}

/* hover */
.cta-buttons__btn--contact:hover{
  background: #222;
  color: #fff;
}

/* LINE */
.cta-buttons__btn--line{
  color: #fff;
  background: #19c95b;
  border: 1px solid #19c95b;
  box-shadow: 0 0.5em 1.4em rgba(25,201,91,0.25);
}

/* hover */
.cta-buttons__btn--line:hover{
  background: #12b650;
  border-color: #12b650;
}

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

  .cta-section{
    padding: 4em 0;
  }

  .cta-text{
    margin-bottom: 1.5em;
  }

  .cta-text__lead{
    font-size: 1.2em;
  }

  .cta-text__sub{
    font-size: 0.9em;
  }

  .cta-buttons{
    flex-direction: column;
    gap: 0.8em;
  }

  .cta-buttons__btn{
    width: 100%;
    min-width: auto;
    min-height: 44px;
    font-size: 0.9em;
  }

}




/* ========================================
NEWS TOP
======================================== */

.gym-news{
  padding: clamp(64px, 7vw, 110px) 0;
  background: #f8f8f6;
  color: #222;
}

.gym-news .pg-head{
  margin-bottom: clamp(28px, 3vw, 42px);
}

.gym-news .pg-head .pg-lead{
  margin-top: 1em;
  color: #888;
}

.gym-news__list{
  width: min(920px, 92%);
  margin: 0 auto;
  border-top: 1px solid rgba(0,0,0,.08);
}

.gym-news__item{
  border-bottom: 1px solid rgba(0,0,0,.08);
}

.gym-news__link{
  display: grid;
  grid-template-columns: 10em 1fr;
  gap: 2em;
  align-items: start;
  padding: 1.4em 0;
  text-decoration: none;
  color: inherit;
  transition: opacity .3s ease;
}

.gym-news__link:hover{
  opacity: .7;
}

.gym-news__date{
  display: block;
  font-size: .95em;
  line-height: 1.7;
  color: #8c7a2f;
  letter-spacing: .04em;
}

.gym-news__title{
  margin: 0 0 .4em;
  font-size: clamp(16px, 1.15vw, 20px);
  line-height: 1.8;
  font-weight: 500;
  color: #222;
}

.gym-news__excerpt{
  margin: 0;
  font-size: .98em;
  line-height: 1.8;
  color: #666;
}

.gym-news__empty{
  width: min(920px, 92%);
  margin: 0 auto;
  padding: 1.4em 0;
  color: #666;
  border-top: 1px solid rgba(0,0,0,.08);
  border-bottom: 1px solid rgba(0,0,0,.08);
}

.gym-news__more{
  margin-top: clamp(28px, 3vw, 40px);
  text-align: center;
}

.gym-news__btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 12em;
  padding: .95em 2.2em;
  border: 1px solid #222;
  border-radius: 999px;
  text-decoration: none;
  color: #222;
  font-size: 1em;
  line-height: 1;
  transition: .3s ease;
}

.gym-news__btn:hover{
  background: #222;
  color: #fff;
}

/* ========================================
NEWS ARCHIVE
======================================== */

.news-archive-page{
  padding: clamp(72px, 8vw, 120px) 0;
  background: #fff;
  color: #222;
}

.news-archive-page .pg-head{
  margin-bottom: clamp(32px, 3vw, 46px);
  text-align: center;
}

.news-archive-page .pg-head .pg-lead{
  margin-top: 1em;
  color: #888;
}

.news-archive-list{
  width: min(920px, 92%);
  margin: 0 auto;
  border-top: 1px solid rgba(0,0,0,.08);
}

.news-archive-item{
  border-bottom: 1px solid rgba(0,0,0,.08);
}

.news-archive-link{
  display: grid;
  grid-template-columns: 10em 1fr;
  gap: 2em;
  align-items: start;
  padding: 1.4em 0;
  text-decoration: none;
  color: inherit;
  transition: opacity .3s ease;
}

.news-archive-link:hover{
  opacity: .7;
}

.news-archive-date{
  display: block;
  font-size: .95em;
  line-height: 1.7;
  color: #8c7a2f;
  letter-spacing: .04em;
}

.news-archive-title{
  margin: 0 0 .4em;
  font-size: clamp(16px, 1.15vw, 20px);
  line-height: 1.8;
  font-weight: 500;
  color: #222;
}

.news-archive-excerpt{
  margin: 0;
  font-size: .98em;
  line-height: 1.8;
  color: #666;
}

.news-archive-empty{
  width: min(920px, 92%);
  margin: 0 auto;
  padding: 1.4em 0;
  color: #666;
  border-top: 1px solid rgba(0,0,0,.08);
  border-bottom: 1px solid rgba(0,0,0,.08);
}

.news-archive-pagination{
  margin-top: clamp(28px, 3vw, 42px);
  text-align: center;
}

.news-archive-pagination .nav-links{
  display: inline-flex;
  flex-wrap: wrap;
  gap: .6em;
  align-items: center;
  justify-content: center;
}

.news-archive-pagination .page-numbers{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.6em;
  height: 2.6em;
  padding: 0 .8em;
  border: 1px solid rgba(0,0,0,.14);
  border-radius: 999px;
  text-decoration: none;
  color: #222;
  font-size: .95em;
  transition: .3s ease;
}

.news-archive-pagination .page-numbers.current,
.news-archive-pagination .page-numbers:hover{
  background: #222;
  color: #fff;
  border-color: #222;
}

/* ========================================
NEWS SINGLE
======================================== */

.news-single{
  padding: clamp(72px, 8vw, 120px) 0;
  background: #fff;
  color: #222;
}

.news-single .wrap{
  width: min(860px, 92%);
  margin: 0 auto;
}

.news-single__head{
  margin-bottom: clamp(28px, 3vw, 42px);
  padding-bottom: 1.4em;
  border-bottom: 1px solid rgba(0,0,0,.08);
}

.news-single__meta{
  display: flex;
  flex-wrap: wrap;
  gap: 1em;
  align-items: center;
  margin: 0 0 1em;
  font-size: .95em;
  color: #777;
}

.news-single__cat{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .35em .8em;
  border-radius: 999px;
  background: #c1ab4f;
  color: #fff;
  font-size: .82em;
  line-height: 1;
  letter-spacing: .06em;
}

.news-single__title{
  margin: 0;
  font-size: clamp(28px, 2.3vw, 40px);
  line-height: 1.5;
  color: #111;
  font-weight: 700;
}

.news-single__body{
  font-size: 1em;
  line-height: 2;
  color: #333;
}

.news-single__body p{
  margin: 0 0 1.4em;
}

.news-single__body h2,
.news-single__body h3,
.news-single__body h4{
  margin: 2em 0 .8em;
  line-height: 1.6;
  color: #111;
}

.news-single__body img{
  max-width: 100%;
  height: auto;
}

.news-single__nav{
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 1em;
  align-items: center;
  margin-top: clamp(40px, 4vw, 60px);
  padding-top: 1.4em;
  border-top: 1px solid rgba(0,0,0,.08);
}

.news-single__navitem--prev{
  text-align: left;
}

.news-single__navitem--back{
  text-align: center;
}

.news-single__navitem--next{
  text-align: right;
}

.news-single__nav a{
  text-decoration: none;
  color: #222;
  transition: opacity .3s ease;
}

.news-single__nav a:hover{
  opacity: .7;
}

.news-single__empty{
  text-align: center;
  color: #666;
}

/* ===== SP（〜767px） ===== */
@media screen and (max-width: 767px){

  .gym-news{
    padding: 14vw 0;
  }

  .gym-news__list{
    width: 85%;
  }

  .gym-news__link{
    grid-template-columns: 1fr;
    gap: .45em;
    padding: 1.1em 0;
  }

  .gym-news__date{
    font-size: .9em;
  }

  .gym-news__title{
    font-size: 1em;
    line-height: 1.7;
  }

  .gym-news__excerpt{
    font-size: .93em;
    line-height: 1.7;
  }

  .gym-news__empty{
    width: 85%;
    padding: 1.1em 0;
    font-size: .95em;
  }

  .gym-news__more{
    margin-top: 7vw;
  }

  .gym-news__btn{
    min-width: 11em;
    padding: .9em 1.8em;
    font-size: .95em;
  }

  .news-archive-page{
    padding: 16vw 0;
  }

  .news-archive-list{
    width: 85%;
  }

  .news-archive-link{
    grid-template-columns: 1fr;
    gap: .45em;
    padding: 1.1em 0;
  }

  .news-archive-date{
    font-size: .9em;
  }

  .news-archive-title{
    font-size: 1em;
    line-height: 1.7;
  }

  .news-archive-excerpt{
    font-size: .93em;
    line-height: 1.7;
  }

  .news-single{
    padding: 16vw 0;
  }

  .news-single .wrap{
    width: 85%;
  }

  .news-single__title{
    font-size: 1.7em;
    line-height: 1.5;
  }

  .news-single__body{
    font-size: .98em;
    line-height: 1.9;
  }

  .news-single__nav{
    grid-template-columns: 1fr;
    gap: .8em;
  }

  .news-single__navitem--prev,
  .news-single__navitem--back,
  .news-single__navitem--next{
    text-align: center;
  }

}