/* S.T.GYM 見本（No.111）。黒（墨黒・炭の2種類の地）と白い文字、差し色は金1色。見出しは明朝、英字の飾りはローマン体。
   文法＝金の線と点（人体図・下層の頭・大会の年表の3か所だけ）。 */
@font-face { font-family: "STG Min"; src: url("/assets/fonts/stg-min.woff2") format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "STG En"; src: url("/assets/fonts/stg-en.woff2") format("woff2"); font-weight: 400 900; font-display: swap; }
:root {
  --ink: #0d0c0b; --char: #1f1c18; --deep: #080807; --line: #3a342b; --fg: #f3efe7; --sub: #b9b1a3; --gold: #c9a45a; --gold2: #e2c98f; --goldd: #8a6d33;
  --min: "STG Min", "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
  --enf: "STG En", "Times New Roman", serif;
  --kit-ink: #f3efe7; --kit-paper: #0d0c0b; --kit-accent: #c9a45a; --kit-line: #3a342b; --kit-badge-bg: rgba(13, 12, 11, .95);
  --kit-font-head: var(--min);
  --kit-font-body: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", Meiryo, sans-serif;
  --kit-menu-bg: #0d0c0b; --kit-menu-ink: #f3efe7; --kit-menu-line: #3a342b; --kit-menu-accent: #c9a45a; --kit-menu-btn-bg: #1d1a16; --kit-menu-btn-ink: #e2c98f;
  --kit-ph-bg: #0d0c0b; --kit-ph-ink: #f3efe7; --kit-ph-accent: #c9a45a; --kit-ph-plate: rgba(13, 12, 11, .92); --kit-ph-plate-ink: #f3efe7;
  --kit-news-ink: #f3efe7; --kit-news-line: #3a342b; --kit-news-accent: #c9a45a; --kit-news-cms-bg: rgba(201, 164, 90, .08);
}
*, *::before, *::after { box-sizing: border-box; }
html { background: var(--ink); color: var(--fg); -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--kit-font-body); font-size: 17px; line-height: 1.85; letter-spacing: .02em; background: var(--ink); color: var(--fg); }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--gold2); text-underline-offset: 4px; text-decoration-thickness: 1px; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
h1, h2, h3, h4 { font-family: var(--min); font-weight: 700; letter-spacing: .04em; line-height: 1.45; margin: 0; }
p { margin: 0; }
.w p, .w li, .w dd { max-width: 40em; }
.nobr { white-space: nowrap; }
.ib { display: inline-block; }
.skip { position: absolute; left: 8px; top: -60px; z-index: 100; padding: 8px 16px; background: var(--gold); color: var(--ink); }
.skip:focus { top: 8px; }
.w { max-width: 1200px; margin: 0 auto; padding: 0 16px; }
@media (min-width: 768px) { .w { padding: 0 32px; } }
.s { padding: 64px 0; background: var(--ink); }
.s--char { background: var(--char); }
@media (min-width: 1000px) { .s { padding: 96px 0; } }
.note { font-size: 16px; color: var(--sub); line-height: 1.8; }
.lead { color: var(--sub); }

/* 節の見出し：英字の大きな飾り（金）＋明朝の見出し */
.hd2 { margin-bottom: 32px; }
@media (min-width: 1000px) { .hd2 { margin-bottom: 48px; } }
.en { font-family: var(--enf); font-weight: 700; font-size: clamp(40px, 4.2vw + 14px, 96px); line-height: 1; letter-spacing: .03em; color: var(--gold); margin: 0 0 12px; max-width: none !important; }
.hd2 h2, .s h2 { font-size: clamp(27px, 1.9vw + 16px, 46px); }
.hd2 .lead { margin-top: 14px; }
.sec-bm-s .hd2 h2 { font-size: clamp(30px, 2.8vw + 14px, 58px); line-height: 1.35; }

/* ボタン・リンク */
.btns { display: flex; flex-wrap: wrap; gap: 12px 16px; margin-top: 24px; max-width: none !important; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; padding: 10px 26px; border-radius: 2px; font-family: var(--min); font-size: 17px; font-weight: 700; line-height: 1.4; text-decoration: none; letter-spacing: .06em; cursor: pointer; border: 0; }
.btn--gold { background: #c9a45a linear-gradient(135deg, #dcbd74 0%, #c9a45a 46%, #b38a3d 100%); color: #0d0c0b; }
.btn--gold:hover { background: #e2c98f; }
.btn--line { background: rgba(13, 12, 11, .55); color: var(--fg); box-shadow: inset 0 0 0 1px var(--gold); }
.btn--line:hover { background: rgba(201, 164, 90, .16); }
.btn--block { display: flex; width: 100%; margin-top: 12px; }
.btn--tel { padding-left: 12px; padding-right: 12px; letter-spacing: .02em; }
.ic { flex: none; }
.more { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; margin-top: 28px; font-family: var(--min); font-weight: 700; color: var(--gold2); text-decoration: none; border-bottom: 1px solid var(--goldd); }
.more::after { content: ""; width: 8px; height: 8px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); }
.more:hover { color: var(--fg); }

/* 写真の箱と「イメージ」の札 */
.ph { position: relative; margin: 0; overflow: hidden; background: #1d1a16; }
.ph img { width: 100%; height: 100%; object-fit: cover; }
.im-tag { position: absolute; right: 8px; bottom: 8px; z-index: 2; padding: 1px 8px; font-size: 14px; line-height: 1.6; color: var(--fg); background: rgba(13, 12, 11, .8); border: 1px solid rgba(201, 164, 90, .6); font-family: var(--kit-font-body); }

/* ヘッダー */
.hd { display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 6px 12px 6px 16px; background: #0d0c0b; border-bottom: 1px solid rgba(201, 164, 90, .35); transition: box-shadow .3s; }
.hd.is-scrolled { box-shadow: 0 8px 24px -12px rgba(0, 0, 0, .8); }
.logo { display: inline-flex; flex-direction: column; text-decoration: none; color: var(--fg); line-height: 1.15; }
.logo__n { font-family: var(--enf); font-weight: 700; font-size: 25px; letter-spacing: .06em; color: var(--gold); white-space: nowrap; }
.logo__s { font-family: var(--min); font-size: 14px; letter-spacing: .1em; color: var(--sub); white-space: nowrap; }
.hd__logo { margin-right: auto; }
.kit-pc-nav ul { display: flex; gap: 4px; list-style: none; margin: 0; padding: 0; }
.kit-pc-nav a { display: block; padding: 10px 12px; color: var(--fg); text-decoration: none; font-family: var(--min); font-size: 16px; letter-spacing: .06em; border-bottom: 2px solid transparent; }
.kit-pc-nav a:hover { color: var(--gold2); }
.kit-pc-nav a[aria-current="page"] { border-bottom-color: var(--gold); color: var(--gold2); }
.hd__tel { display: none; flex-direction: column; align-items: flex-end; text-decoration: none; color: var(--fg); font-family: var(--min); font-size: 19px; line-height: 1.2; white-space: nowrap; }
.hd__tel-s { font-size: 14px; color: var(--sub); }
@media (min-width: 1280px) { .hd__tel { display: flex; margin-left: 8px; } }
.hd__rsv { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; background: #c9a45a linear-gradient(135deg, #dcbd74, #b38a3d); color: #0d0c0b; text-decoration: none; font-family: var(--min); font-weight: 700; font-size: 16px; letter-spacing: .08em; white-space: nowrap; border-radius: 2px; }
.kit-menu-btn { box-shadow: inset 0 0 0 1px var(--goldd); }
@media (max-width: 359px) { .hd { gap: 8px; padding-left: 12px; padding-right: 8px; } .logo__n { font-size: 22px; } .logo__s { letter-spacing: 0; } .hd__rsv { padding: 0 10px; } }
@media (min-width: 1100px) { .hd { min-height: 76px; padding: 8px 24px; gap: 16px; } .logo__n { font-size: 30px; } .hd__rsv { min-height: 48px; padding: 0 22px; } }
.menu-note { margin-top: 12px; font-size: 16px; color: var(--sub); }

/* FV：写真1枚（全面）＋明朝の一行＋ボタン2つ */
.fv { position: relative; overflow: hidden; background: var(--ink); height: calc(100svh - 64px); min-height: 480px; max-height: 1000px; }
.fv__img { position: absolute; inset: 0; }
.fv__s { position: absolute; inset: 0; overflow: hidden; opacity: 0; }
.fv__s img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fv__s--c img { object-position: 50% 38%; } .fv__s--l img { object-position: 50% 42%; } .fv__s--r img { object-position: 50% 36%; }
/* スマホ：3枚を1枚ずつ自動で切り替え（9秒で一巡。表示約3秒・フェード約0.7秒。次の写真が完全に重なってから前の写真を消す）。中央の写真は最初から出ている */
.fv__s--c { opacity: 1; animation: fvcyc 9s linear -.8s infinite; }
.fv__s--l { animation: fvcyc 9s linear 2.2s infinite; }
.fv__s--r { animation: fvcyc 9s linear 5.2s infinite; }
@keyframes fvcyc { 0% { opacity: 0; z-index: 2; } 7.8% { opacity: 1; z-index: 2; } 7.9% { opacity: 1; z-index: 1; } 41.1% { opacity: 1; z-index: 1; } 41.2% { opacity: 0; z-index: 0; } 100% { opacity: 0; z-index: 0; } }
@media (prefers-reduced-motion: reduce) { .fv__s { animation: none !important; } .fv__s--c { opacity: 1; } .fv__s--l, .fv__s--r { display: none; } }
.fv::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(0deg, rgba(13, 12, 11, .9) 0%, rgba(13, 12, 11, .62) 24%, rgba(13, 12, 11, 0) 48%); }
.fv__tx { position: absolute; z-index: 2; left: 16px; right: 16px; bottom: 28px; }
.fv__eye { font-family: var(--min); font-size: 16px; letter-spacing: .1em; color: var(--gold2); margin-bottom: 10px; }
.fv__h { font-size: clamp(26px, 8.4vw, 46px); line-height: 1.38; letter-spacing: .02em; color: #fff; text-shadow: 0 2px 18px rgba(0, 0, 0, .45); }
.fv__h em { font-style: normal; color: var(--gold2); }
.fv__btns, .fv__note { display: none; }
@media (max-width: 767px) { .fv { height: calc(84svh - 64px); min-height: 460px; } }
@media (min-width: 768px) {
  .fv { height: calc(100svh - 76px); min-height: 600px; }
  /* PC：縦長の3枚を、隙間なく横いっぱいに固定で並べる（左＝写真2・中央＝写真1・右＝写真3）。切り替えなし */
  .fv__img { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
  .fv__s, .fv__s--c, .fv__s--l, .fv__s--r { position: relative; inset: auto; opacity: 1; animation: none; z-index: auto; }
  .fv__s--l { order: 1; } .fv__s--c { order: 2; } .fv__s--r { order: 3; }
  .fv::before { background: linear-gradient(0deg, rgba(13, 12, 11, .88) 0%, rgba(13, 12, 11, .62) 28%, rgba(13, 12, 11, .12) 52%, rgba(13, 12, 11, 0) 64%); }
  .fv__tx { left: 48px; right: auto; bottom: clamp(32px, 5vh, 64px); width: min(720px, 60vw); }
  .fv__eye { font-size: 18px; margin-bottom: 12px; }
  .fv__h { font-size: clamp(38px, 2.4vw + 10px, 58px); line-height: 1.28; letter-spacing: .05em; }
  .fv__h .fv__br { display: inline; }
  .fv__btns { display: flex; flex-wrap: wrap; gap: 14px 16px; margin-top: 24px; }
  .fv__note { display: block; margin-top: 14px; font-size: 15px; color: var(--sub); }
}
html.motion .fv__tx > * { animation: rise .9s cubic-bezier(.2, .7, .2, 1) both; }
html.motion .fv__tx > :nth-child(2) { animation-delay: .25s; } html.motion .fv__tx > :nth-child(3) { animation-delay: .5s; } html.motion .fv__tx > :nth-child(4) { animation-delay: .6s; }
@keyframes fvzoom { from { transform: scale(1.07); } to { transform: none; } }
@keyframes rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }

/* 何を・誰に＋4つの札 */
.sec-in { padding: 48px 0; border-bottom: 1px solid var(--line); }
.in__h { font-size: clamp(21px, .6vw + 16px, 25px); line-height: 1.6; }
.in__g p { margin-top: 12px; color: var(--sub); }
.in__btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; max-width: none !important; }
.in__btns .btn { flex: 1 1 220px; }
@media (min-width: 768px) { .in__btns { display: none; } }
.fc { list-style: none; margin: 28px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; max-width: none !important; }
.fc li { display: flex; align-items: center; gap: 12px; padding: 14px 12px; border: 1px solid var(--line); max-width: none; }
.fc__k { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--gold); color: var(--gold2); font-family: var(--min); font-size: 17px; }
.fc__v { font-family: var(--min); font-size: 15px; line-height: 1.5; }
@media (min-width: 1000px) { .sec-in { padding: 64px 0; } .sec-in .w { display: grid; grid-template-columns: 1fr 1.1fr; gap: 48px; align-items: center; } .fc { margin: 0; grid-template-columns: repeat(4, minmax(0, 1fr)); } .fc li { flex-direction: column; text-align: center; padding: 20px 8px; } .fc__v { font-size: 16px; } }

/* 金の人体図（トップの2画面目） */
.bm { display: grid; gap: 28px; }
@media (min-width: 1000px) { .bm { grid-template-columns: 1.2fr 1fr; gap: 48px; align-items: start; } }
.bm__st { position: relative; background: #000; }
.bm__st > img { width: 100%; }
.bm__pt { position: absolute; top: var(--y); z-index: 2; display: flex; align-items: center; height: 44px; min-width: 44px; padding: 0; margin: 0; border: 0; background: none; cursor: pointer; color: var(--fg); transform: translateY(-50%); }
.bm__pt--r { left: calc(var(--x) - 22px); flex-direction: row; }
.bm__pt--l { right: calc(100% - var(--x) - 22px); flex-direction: row-reverse; }
.bm__pt i { flex: none; width: 18px; height: 18px; margin: 0 13px; border-radius: 50%; border: 2px solid var(--gold); background: rgba(13, 12, 11, .55); transition: background .2s, transform .2s; }
.bm__ln, .bm__pt b { display: none; }
.bm__pt[aria-pressed="true"] i { background: var(--gold); transform: scale(1.15); box-shadow: 0 0 0 6px rgba(201, 164, 90, .25); }
.bm__pt:hover i { background: var(--gold2); }
html.motion .bm__pt i { animation: pulse 1.6s ease-out 3; }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(226, 201, 143, .7); } 100% { box-shadow: 0 0 0 16px rgba(226, 201, 143, 0); } }
@media (min-width: 768px) {
  .bm__ln { display: block; flex: none; width: 22px; height: 1px; margin: 0 -2px; background: var(--gold); }
  .bm__pt b { display: block; flex: none; padding: 2px 12px; font-family: var(--min); font-size: 16px; line-height: 1.6; white-space: nowrap; color: var(--fg); background: rgba(13, 12, 11, .86); border: 1px solid var(--goldd); }
  .bm__pt[aria-pressed="true"] b { background: var(--gold); color: #0d0c0b; border-color: var(--gold); }
}
.bm__tabs { list-style: none; margin: 16px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; max-width: none !important; }
@media (min-width: 768px) { .bm__tabs { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.bm__tabs li { max-width: none; }
.bm__t, .tg__t, .tt__t, .sx__t, .wk__t { width: 100%; min-height: 48px; padding: 8px 10px; border: 1px solid var(--line); background: transparent; color: var(--fg); font-family: var(--min); font-size: 17px; font-weight: 700; letter-spacing: .06em; cursor: pointer; line-height: 1.4; }
.bm__t:hover, .tg__t:hover, .tt__t:hover, .sx__t:hover, .wk__t:hover { border-color: var(--gold); }
.bm__t[aria-pressed="true"], .tg__t[aria-pressed="true"], .tt__t[aria-pressed="true"], .sx__t[aria-pressed="true"], .wk__t[aria-pressed="true"] { background: var(--gold); border-color: var(--gold); color: #0d0c0b; }
.bm__st2 { min-height: 0; }
html.js .bm__p:not(.is-on), html.js .tg__p:not(.is-on), html.js .tt__p:not(.is-on), html.js .sx__p:not(.is-on), html.js .wk__p:not(.is-on) { display: none; }
html.no-js .bm__p + .bm__p, html.no-js .tg__p + .tg__p, html.no-js .tt__p + .tt__p, html.no-js .sx__p + .sx__p, html.no-js .wk__p + .wk__p { margin-top: 40px; }
.bm__ph { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; }
.bm__ph img { width: 100%; height: 100%; object-fit: cover; }
.bm__tx { padding-top: 20px; }
.bm__en { font-family: var(--enf); font-size: 22px; letter-spacing: .12em; color: var(--gold); line-height: 1.2; }
.bm__h { font-size: clamp(34px, 2vw + 22px, 48px); line-height: 1.3; margin: 4px 0 10px; }
.bm__ig { display: inline-flex; align-items: center; min-height: 44px; margin-top: 14px; color: var(--gold2); }
html.motion .bm__p.is-on .bm__ph img { animation: swap .45s ease both; }
@keyframes swap { from { opacity: .2; transform: scale(1.03); } to { opacity: 1; transform: none; } }

/* 通い続けられる理由 */
.wh__l, .tr__l, .sl__l, .tm__l, .ga, .fd__l, .pr__l { list-style: none; margin: 0; padding: 0; display: grid; gap: 32px; max-width: none !important; }
.wh__l > li, .tr__l > li, .sl__l > li, .tm__l > li, .ga > li, .fd__l > li, .pr__l > li { max-width: none; }
@media (min-width: 900px) { .wh__l, .tr__l, .sl__l, .fd__l { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; } .tm__l, .pr__l { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; } }
.wh__c .ph, .sl__c .ph, .fd__l .ph, .pr__l .ph { aspect-ratio: 4 / 3; }
.wh__c h3, .sl__c h3, .tm__c h3, .pr__l h3 { font-size: 23px; margin: 20px 0 8px; }
.wh__c h3::before { content: ""; display: block; width: 40px; height: 2px; background: var(--gold); margin-bottom: 16px; }
.wh__c p, .sl__c p, .tm__c p, .pr__l p { color: var(--sub); }

/* トレーナー（トップ） */
.tr__c a { display: block; color: var(--fg); text-decoration: none; }
.tr__ph { aspect-ratio: 3 / 4; }
.tr__ph img { transition: transform .6s ease; }
.tr__c a:hover .tr__ph img { transform: scale(1.03); }
.tr__role { margin-top: 18px; font-size: 16px; color: var(--sub); font-family: var(--min); }
.tr__n { font-size: 28px; margin: 2px 0 10px; }
.tr__rec { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding-top: 12px; border-top: 1px solid var(--goldd); color: var(--gold2); font-family: var(--min); font-size: 16px; }
.tr__rec span { font-family: var(--enf); font-weight: 700; font-size: 20px; color: var(--gold); }
@media (max-width: 899px) { .tr__l { grid-auto-flow: column; grid-auto-columns: 74%; overflow-x: auto; gap: 16px; padding-bottom: 12px; scroll-snap-type: x mandatory; position: relative; } .tr__l > li { scroll-snap-align: start; } }

/* ジム（トップ） */
.sec-gy { padding-top: 0; }
.gy__band { aspect-ratio: 16 / 9; max-height: 640px; width: 100%; margin-bottom: 40px; }
@media (min-width: 1000px) { .gy__band { aspect-ratio: 21 / 9; margin-bottom: 56px; } }
.gy__g { display: grid; gap: 24px; }
@media (min-width: 1000px) { .gy__g { grid-template-columns: 1fr 1.1fr; gap: 56px; align-items: start; } }
.gy__tx p { color: var(--sub); }
.gy__tx h2 { margin-bottom: 16px; }
.nm { display: grid; grid-template-columns: 120px 1fr; gap: 20px; align-items: center; margin-top: 28px; padding: 16px; border: 1px solid var(--goldd); background: rgba(201, 164, 90, .05); }
.nm__ph { margin: 0; } .nm__ph img { aspect-ratio: 1; object-fit: cover; width: 100%; }
.nm__d { font-family: var(--min); color: var(--gold2); font-size: 17px; }
.nm__l { list-style: none; margin: 6px 0 0; padding: 0; font-family: var(--enf); font-weight: 700; font-size: 17px; letter-spacing: .04em; line-height: 1.6; }
.nm__l li::before { content: "— "; color: var(--gold); }

/* おすすめ */
.sl__go { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-top: 10px; color: var(--gold2); font-family: var(--min); font-weight: 700; }
.sl__go::after { content: "↗"; font-family: var(--kit-font-body); }

/* プラン（トップ） */
.pl__g { display: grid; gap: 32px; }
@media (min-width: 1000px) { .pl__g { grid-template-columns: 1fr 1.15fr; gap: 56px; align-items: center; } }
.pl__ph { aspect-ratio: 4 / 5; }
@media (max-width: 999px) { .pl__ph { aspect-ratio: 4 / 3; } }
.pl__l { list-style: none; margin: 20px 0 20px; padding: 0; border-top: 1px solid var(--line); max-width: none !important; }
.pl__r { display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; padding: 18px 0; border-bottom: 1px solid var(--line); max-width: none !important; }
.pl__n { font-family: var(--min); font-size: 20px; font-weight: 700; }
.pl__c { text-align: right; font-family: var(--min); color: var(--sub); font-size: 16px; }
.pl__c b { display: block; font-size: 24px; color: var(--gold); line-height: 1.2; }
.pl__t { grid-column: 1 / -1; color: var(--sub); font-size: 16px; }
.pl__tag { display: inline-block; margin-left: 10px; padding: 0 8px; font-size: 14px; vertical-align: 3px; background: var(--gold); color: #0d0c0b; font-family: var(--min); }

/* 部活と会社の健康 */
.tm__phs { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.tm__phs .ph { aspect-ratio: 1; }
.tm__phs--1 { grid-template-columns: 1fr; } .tm__phs--1 .ph { aspect-ratio: 2 / 1; }
@media (max-width: 899px) { .tm__phs--1 .ph { aspect-ratio: 16 / 9; } }

/* 会員様の声 */
.vc__g { display: grid; gap: 32px; }
.nw__g { display: grid; gap: 32px; }
@media (min-width: 1000px) { .nw__g { grid-template-columns: .55fr 1.6fr; gap: 56px; align-items: start; } }
.nw__ph { aspect-ratio: 3 / 4; }
@media (max-width: 999px) { .nw__ph { aspect-ratio: 16 / 9; } }
@media (min-width: 1000px) { .vc__g { grid-template-columns: .8fr 1.4fr; gap: 56px; align-items: center; } }
.vc__ph { max-width: 420px; aspect-ratio: 1; }
.vc__l { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; max-width: none !important; }
.vc__c { padding: 20px 22px; border-left: 2px solid var(--gold); background: rgba(243, 239, 231, .03); max-width: none !important; }
.vc__st { color: var(--gold); letter-spacing: .2em; font-size: 16px; }
.vc__a { color: var(--sub); font-size: 16px; margin-top: 4px; }
.vc__b { font-family: var(--min); font-size: 19px; line-height: 1.7; margin-top: 4px; }

/* ご予約・アクセス（全ページの終わり） */
.rs__in { display: grid; gap: 32px; }
@media (min-width: 1000px) { .rs__in { grid-template-columns: 1fr 1.05fr; gap: 56px; align-items: center; } }
.rs__ph { aspect-ratio: 4 / 3; }
.rs__tx > p { color: var(--sub); margin-top: 12px; }
.rs__tx .note { margin-top: 14px; }
.info { margin: 20px 0 0; display: grid; gap: 0; border-top: 1px solid var(--line); max-width: 40em; }
.info > div { display: grid; grid-template-columns: 6em 1fr; gap: 8px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.info dt { font-family: var(--min); color: var(--gold2); }
.info dd { margin: 0; }
.info dd a { display: inline-flex; align-items: center; min-height: 32px; }
.big { font-family: var(--min); font-size: clamp(28px, 2vw + 18px, 40px); color: var(--fg); text-decoration: none; letter-spacing: .04em; display: inline-flex; min-height: 44px; align-items: center; }

/* フッター */
.ft { background: var(--deep); border-top: 1px solid rgba(201, 164, 90, .35); padding: 48px 0 0; color: var(--sub); font-size: 16px; }
.ft__in { display: grid; gap: 32px; padding-bottom: 32px; }
@media (min-width: 900px) { .ft__in { grid-template-columns: 1.3fr 1fr; } }
.ft__co p { margin-top: 10px; }
.ft__co a { color: var(--fg); }
.ft__ig { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; }
.ft__nav ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
.ft__nav a { display: flex; align-items: center; min-height: 44px; color: var(--fg); text-decoration: none; font-family: var(--min); border-bottom: 1px solid var(--line); }
.ft .kit-credit { color: var(--sub); border-top: 1px solid var(--line); padding-top: 16px; }

/* 下層の頭（kit.page_head）。写真の型に金の線と点 */
.stg-ph .kit-ph__en { font-family: var(--enf); font-size: clamp(22px, 1.4vw + 12px, 32px); letter-spacing: .1em; color: var(--gold); }
.stg-ph .kit-ph__lead { color: var(--sub); }
.stg-ph .kit-ph__crumbs { color: var(--sub); font-size: 16px; }
.crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 4px 10px; margin: 0; padding: 0; }
.crumbs li + li::before { content: "／"; margin-right: 10px; color: var(--goldd); }
.crumbs a { color: var(--sub); display: inline-flex; align-items: center; min-height: 28px; }
.phd { position: relative; }
.phd .im-tag { top: 8px; bottom: auto; }
.kit-ph--photo .kit-ph__body { border-top: 2px solid var(--gold); }
.pin { position: absolute; left: var(--x); top: var(--y); z-index: 2; display: none; }
.pin i { position: absolute; left: -7px; top: -7px; width: 14px; height: 14px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 5px rgba(201, 164, 90, .3); }
.pin b { position: absolute; top: -16px; white-space: nowrap; padding: 2px 12px; font-family: var(--min); font-size: 16px; line-height: 1.75; background: rgba(13, 12, 11, .86); color: var(--fg); border: 1px solid var(--goldd); }
.pin::after { content: ""; position: absolute; top: 0; height: 1px; width: 40px; background: var(--gold); }
.pin--r b { left: 48px; } .pin--r::after { left: 8px; }
.pin--l b { right: 48px; } .pin--l::after { right: 8px; }
@media (min-width: 1000px) { .pin { display: block; } }
.phx { width: 100%; height: auto; }
.kit-ph--type .kit-ph__body::after { height: 2px; }

/* 切り替えの共通（トレーニング・トレーナー・おすすめ・プラン） */
.tg__tabs, .tt__tabs, .sx__tabs, .wk__tabs { list-style: none; margin: 0 0 28px; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; max-width: none !important; }
.tg__tabs li, .tt__tabs li, .sx__tabs li, .wk__tabs li { max-width: none; }
@media (min-width: 768px) { .tg__tabs, .sx__tabs { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.tt__tabs, .wk__tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tg__p, .tt__p, .wk__p { display: grid; gap: 28px; }
@media (min-width: 1000px) { .tg__p { grid-template-columns: 1.1fr 1fr; gap: 48px; align-items: center; } }
.tg__ph { aspect-ratio: 4 / 3; }
.tg__tx h3 { font-size: clamp(28px, 1.4vw + 20px, 40px); margin-bottom: 12px; }
.tg__tx p { color: var(--sub); }

/* 45分の流れ */
.ss__g, .sm__g, .sx2__g, .cm__g, .sv__g, .ac__g, .rd__g, .qa__g { display: grid; gap: 32px; }
@media (min-width: 1000px) { .ss__g, .sm__g, .sx2__g, .cm__g, .ac__g { grid-template-columns: 1fr 1.1fr; gap: 56px; align-items: center; } .sv__g { grid-template-columns: .9fr 1.4fr; gap: 48px; align-items: start; } .rd__g { grid-template-columns: 1fr 1.1fr; gap: 64px; } .qa__g { grid-template-columns: .7fr 1.5fr; gap: 48px; } }
.ss__g .ph, .sm__g .ph, .sx2__g .ph, .cm__g .ph, .ac__g .ph, .sv__g .ph { aspect-ratio: 4 / 3; }
.st { list-style: none; margin: 20px 0; padding: 0; counter-reset: st; }
.st li { display: grid; grid-template-columns: 5em 1fr; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.st__n { font-family: var(--min); font-size: 20px; color: var(--gold); }
.sm__g p, .sx2__g p { color: var(--sub); margin-top: 12px; }

/* 食事 */
.rl { margin-top: 28px; padding: 20px; border: 1px solid var(--line); }
.rl__h { font-family: var(--min); color: var(--gold2); }
.rl ul { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 24px; max-width: none; }
.rl--col { list-style: none; padding: 0; margin-top: 16px; display: grid; gap: 0; border: 0; }
.rl__a { display: inline-flex; align-items: center; min-height: 44px; color: var(--gold2); }
.rl__a::after { content: "↗"; margin-left: 6px; }

/* トレーナーのページ */
.tt__t { display: flex; flex-direction: column; align-items: center; gap: 2px; min-height: 64px; }
.tt__r { font-size: 14px; font-weight: 700; opacity: .85; }
@media (min-width: 1000px) { .tt__p { grid-template-columns: 1fr 1.2fr; gap: 56px; align-items: start; } }
.tt__phs { display: grid; grid-template-columns: 1fr; gap: 12px; }
.tt__ph { aspect-ratio: 3 / 4; max-width: 460px; }
.tt__stage { aspect-ratio: 3 / 4; }
.tt__phs:has(.tt__stage) { grid-template-columns: 1.6fr 1fr; align-items: end; }
.tt__role { font-family: var(--min); color: var(--sub); }
.tt__h { font-size: clamp(36px, 2vw + 24px, 56px); margin: 4px 0 16px; }
.tt__tx > p { color: var(--sub); }
.yl__h { margin-top: 28px; font-family: var(--min); color: var(--gold2); }
.yl { list-style: none; margin: 12px 0 0; padding: 0 0 0 22px; position: relative; max-width: none !important; }
.yl::before { content: ""; position: absolute; left: 6px; top: 12px; bottom: 12px; width: 1px; background: var(--gold); }
.yl li { position: relative; display: grid; grid-template-columns: 6.5em 1fr; gap: 8px; padding: 8px 0; }
.yl li::before { content: ""; position: absolute; left: -21px; top: 18px; width: 11px; height: 11px; border-radius: 50%; background: var(--gold); }
.yl__y { font-family: var(--enf); font-weight: 700; color: var(--gold); }
.yl__t { font-family: var(--min); }
.tt__hb { margin-top: 20px; color: var(--sub); }
.tt__hb span { display: inline-block; margin-right: 12px; padding: 0 8px; border: 1px solid var(--goldd); color: var(--gold2); font-family: var(--min); font-size: 15px; }
.rd__q { font-family: var(--min); font-size: clamp(22px, 1vw + 16px, 28px); color: var(--gold2); margin: 16px 0 12px; }
.rd__g > div > p { color: var(--sub); }
.rd__g .ph { margin-top: 28px; aspect-ratio: 4 / 3; }
.rd { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); max-width: none !important; }
.rd li { display: grid; grid-template-columns: 7.5em 1fr; gap: 12px; padding: 16px 0; border-bottom: 1px solid var(--line); max-width: none; }
.rd__y { font-family: var(--min); color: var(--gold); }

/* ジム・設備 */
.ga { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
@media (min-width: 900px) { .ga { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; } }
.ga .ph { aspect-ratio: 1; }
.nm2 { display: grid; gap: 32px; }
@media (min-width: 1000px) { .nm2 { grid-template-columns: 1fr 1.2fr; gap: 56px; align-items: center; } }
.nm2__ph { aspect-ratio: 1; max-width: 520px; }
.nm2 p { color: var(--sub); margin-top: 12px; }
.nm2__l { list-style: none; margin: 24px 0 0; padding: 0; display: grid; gap: 8px; max-width: none !important; }
.nm2__l li { display: flex; justify-content: space-between; gap: 16px; padding: 14px 18px; border: 1px solid var(--goldd); color: var(--sub); }
.nm2__l b { font-family: var(--enf); font-size: 20px; color: var(--fg); letter-spacing: .04em; }
.sv { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--line); max-width: none !important; }
@media (min-width: 768px) { .sv { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; } }
.sv li { display: grid; grid-template-columns: 44px 1fr; gap: 4px 16px; padding: 18px 0; border-bottom: 1px solid var(--line); max-width: none; }
.sv__k { grid-row: span 2; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--gold); color: var(--gold2); font-family: var(--min); }
.sv h3 { font-size: 19px; }
.sv p { color: var(--sub); font-size: 16px; }

/* おすすめのページ */
.sx__t { display: flex; flex-direction: column; align-items: center; gap: 2px; min-height: 64px; }
.sx__en { font-family: var(--enf); font-size: 14px; letter-spacing: .12em; opacity: .85; }

/* プランのページ：週の回数とカレンダー */
@media (min-width: 1000px) { .wk__p { grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; } }
.cal { padding: 20px; border: 1px solid var(--line); background: rgba(243, 239, 231, .02); max-width: 520px; }
.cal__w, .cal__g { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; text-align: center; }
.cal__w span { font-family: var(--min); font-size: 15px; color: var(--sub); }
.cal__g { margin-top: 10px; }
.cal__d { aspect-ratio: 1; border-radius: 50%; border: 1px solid var(--goldd); }
.cal__d.is-in { background: var(--gold); border-color: var(--gold); }
html.motion .wk__p.is-on .cal__d.is-in { animation: dot .5s ease both; }
html.motion .wk__p.is-on .cal__d.is-in:nth-child(n+8) { animation-delay: .12s; } html.motion .wk__p.is-on .cal__d.is-in:nth-child(n+15) { animation-delay: .24s; } html.motion .wk__p.is-on .cal__d.is-in:nth-child(n+22) { animation-delay: .36s; }
@keyframes dot { from { transform: scale(.2); opacity: 0; } to { transform: none; opacity: 1; } }
.wk__c { font-family: var(--min); font-weight: 700; font-size: clamp(44px, 3vw + 24px, 72px); color: var(--gold); line-height: 1.1; }
.wk__tx h3 { font-size: 28px; margin: 12px 0; }
.wk__tx p { color: var(--sub); }
.cm { list-style: none; margin: 20px 0 0; padding: 0; border-top: 1px solid var(--line); max-width: none !important; }
.cm li { position: relative; padding: 14px 0 14px 28px; border-bottom: 1px solid var(--line); }
.cm li::before { content: ""; position: absolute; left: 4px; top: 26px; width: 10px; height: 10px; border: 2px solid var(--gold); transform: rotate(45deg); }
.fl { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; max-width: none !important; }
@media (min-width: 900px) { .fl { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.fl li { padding: 24px 20px; border: 1px solid var(--line); max-width: none; }
.fl__n { font-family: var(--enf); font-weight: 700; font-size: 40px; line-height: 1; color: var(--gold); }
.fl h3 { font-size: 20px; margin: 12px 0 8px; }
.fl li p:last-child { color: var(--sub); font-size: 16px; }
.qa { border-bottom: 1px solid var(--line); }
.qa:first-child { border-top: 1px solid var(--line); }
.qa summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 60px; padding: 12px 4px; cursor: pointer; font-family: var(--min); font-size: 18px; list-style: none; }
.qa summary::-webkit-details-marker { display: none; }
.qa summary::after { content: "＋"; color: var(--gold); flex: none; }
.qa[open] summary::after { content: "−"; }
.qa p { padding: 0 4px 20px; color: var(--sub); }

/* ご予約・アクセスのページ */
.wy { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; max-width: none !important; }
@media (min-width: 900px) { .wy { grid-template-columns: 1fr 1fr; gap: 24px; } }
.wy li { padding: 24px; border: 1px solid var(--line); max-width: none; }
.wy__k { font-family: var(--min); color: var(--gold2); margin-bottom: 8px; }
.wy .btn { margin: 8px 0; }
.fm-in { display: grid; gap: 40px; }
@media (min-width: 1000px) { .fm-in { grid-template-columns: 1.3fr 1fr; gap: 56px; align-items: start; } }
.fm { display: grid; gap: 18px; }
.fm h2 { font-size: clamp(26px, 1.4vw + 18px, 36px); }
.fm > p { color: var(--sub); }
.fm label { display: grid; gap: 6px; }
.fm__lab { font-family: var(--min); font-size: 16px; }
.req-m { display: inline-block; margin-left: 10px; padding: 0 6px; font-size: 14px; background: var(--gold); color: #0d0c0b; }
.fm input, .fm select, .fm textarea { width: 100%; min-height: 48px; padding: 10px 12px; font: inherit; font-size: 17px; color: var(--fg); background: #1d1a16; border: 1px solid #6b604f; border-radius: 2px; }
.fm .kit-send { justify-self: start; min-width: 220px; }
.kit-sent { color: var(--gold2); }
.fm__side .ph { aspect-ratio: 4 / 3; }
.fm__side .note { margin-top: 12px; }

/* スクロールで現れる（動きを減らす設定・JS 無しでは最初から見える） */
html.motion .rv { opacity: 0; transform: translateY(28px); transition: opacity .9s cubic-bezier(.2, .7, .2, 1), transform .9s cubic-bezier(.2, .7, .2, 1); }
html.motion .rv.is-in { opacity: 1; transform: none; }
html.motion .en.rv { transform: translateX(-36px); letter-spacing: .12em; transition: opacity 1s ease, transform 1.1s cubic-bezier(.2, .7, .2, 1), letter-spacing 1.2s cubic-bezier(.2, .7, .2, 1); }
html.motion .en.rv.is-in { transform: none; letter-spacing: .03em; }
html.motion .ph.rv img { transform: scale(1.06); transition: transform 1.4s cubic-bezier(.2, .7, .2, 1); }
html.motion .ph.rv.is-in img { transform: none; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }

/* ── 2026-11-10 本番化の追加 ── */
/* 会員様の声（Instagram の口コミ4件） */
.vc__l { gap: 20px; }
@media (min-width: 900px) { .vc__l { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: start; } }
.vc__c { padding: 24px 26px; }
.vc__t { color: var(--fg); font-size: 17px; line-height: 1.95; margin-top: 8px; }
/* プランの料金 */
.pl__y { white-space: nowrap; font-family: var(--min); color: var(--gold2); }
.wk__pr { font-family: var(--min); font-size: 18px; margin-top: 6px; }
.wk__pr b { font-size: 30px; color: var(--gold2); font-weight: 700; }
.pr__y { font-family: var(--min); margin-top: 4px; }
.pr__y b { font-size: 26px; color: var(--gold2); }
.wk__p .wk__tx { padding: 8px 0 0; }
/* トレーナーのおすすめ（目的別の紹介） */
.sg__g { display: grid; gap: 32px; }
@media (min-width: 1000px) { .sg__g { grid-template-columns: 1fr 1.15fr; gap: 56px; align-items: start; } .sg__g--r { grid-template-columns: 1.15fr 1fr; } .sg__g--r > .ph { order: 2; } }
.sg__g .ph { aspect-ratio: 4 / 3; }
.sg__g .lead { margin-top: 10px; color: var(--sub); }
.sg__l { list-style: none; margin: 24px 0 0; padding: 0; display: grid; gap: 14px; max-width: none !important; }
.sg__l li { max-width: none; padding: 14px 18px; border-left: 2px solid var(--gold); background: rgba(243, 239, 231, .03); }
.sg__l h3 { font-size: 20px; margin: 0 0 4px; }
.sg__l p { color: var(--sub); margin: 0; }
/* フォーム（送信する形） */
.opt-m { display: inline-block; margin-left: 10px; padding: 0 6px; font-size: 14px; border: 1px solid var(--line); color: var(--sub); }
.fm__agree { display: flex !important; align-items: flex-start; gap: 10px; }
.fm__agree input { width: 24px !important; min-height: 24px !important; margin-top: 4px; flex: none; accent-color: var(--gold); }
.fm__agree a { color: var(--gold2); text-decoration: underline; }
.fm__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.fm__err { padding: 14px 16px; border: 1px solid #c96b5a; background: rgba(201, 107, 90, .12); }
.fm__err[hidden], .fm__done[hidden] { display: none; }
.fm__err p { margin-top: 8px; }
.fm__done { padding: 24px; border: 1px solid var(--gold); }
.fm__done-t { font-family: var(--min); font-size: 24px; color: var(--gold2); margin-bottom: 8px; }
.fm__done a { color: var(--gold2); }
.fm__ts { min-height: 0; }
/* 運営者情報・プライバシーポリシー・フッター */
.lg__i { max-width: 52em; }
.lg__i > div { grid-template-columns: 9em 1fr; }
.lg__a { color: var(--gold2); text-decoration: underline; }
.lg__t { max-width: 52em; display: grid; gap: 28px; }
.lg__t h2 { font-size: 22px; margin-bottom: 8px; }
.lg__t p { color: var(--sub); }
.ft__lg { margin-top: 12px; }
.wk__all { margin-top: 36px; max-width: 40em; }
.fm__agree a { display: inline-block; min-height: 24px; line-height: 24px; }
.sg__g > div { min-width: 0; }
@media (max-width: 600px) { .pl__r { grid-template-columns: 1fr; } .pl__c { text-align: left; } .sg__g .en { font-size: clamp(32px, 9.5vw, 56px); } }
.ph-long .kit-ph__title { font-size: clamp(24px, 7.6vw, 64px); }
/* 店内ギャラリー：同じ写真の重複を1枚にして5枚。配置は 3＋2（PC）／2＋2＋1（スマホ）でそろえる */
.ga > li:last-child { grid-column: span 2; } .ga > li:last-child .ph { aspect-ratio: 2 / 1; }
@media (min-width: 900px) {
  .ga { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .ga > li { grid-column: span 2; }
  .ga > li:nth-child(n+4) { grid-column: span 3; } .ga > li:nth-child(n+4) .ph { aspect-ratio: 3 / 2; }
}

/* ── 2026-11-10 修正（笠原さんの追加指示） ── */
/* ローマ数字の番号タグ */
.fc__k, .sv__k { font-family: var(--min); font-size: 15px; letter-spacing: .02em; font-weight: 700; }
/* 大会の記録：年数の下の行から */
.tr__rec { display: block; }
.tr__rec span { display: block; margin-bottom: 2px; }
.tr__rec em { display: block; font-style: normal; }
.yl li { grid-template-columns: 1fr; gap: 0; }
/* トレーナー：3人とも常に表示（切り替えなし） */
.tt__all { display: grid; gap: 80px; }
.tt__all > .tt__p + .tt__p { padding-top: 80px; border-top: 1px solid var(--line); }
/* RESERVE（トップ以外）：画像と住所なし */
.rs--min .rs__in { grid-template-columns: 1fr; }
.rs--min .rs__tx { max-width: 44em; }
/* フォームの小さな注記・地図 */
.fm__sm { margin: -8px 0 0; font-size: 16px; }
.ac__map { margin-top: 48px; border: 1px solid var(--line); background: #1d1a16; }
.ac__map iframe { display: block; width: 100%; height: 320px; border: 0; }
@media (min-width: 900px) { .ac__map iframe { height: 440px; } }
/* FOOD：写真は1枚 */
.fd__l--1 { grid-template-columns: 1fr !important; max-width: 780px; }
.fd__l--1 .ph { aspect-ratio: 3 / 2; }
/* 会員様の声：右から左へゆるやかに自動で流れる（site.js）。タップで止まり、止まったあとは横にスワイプして読める。動きを減らす設定では自動では流れない */
.vc__nav { display: none; }
.vc__l { display: flex !important; flex-wrap: nowrap; overflow-x: auto; gap: 16px !important; scrollbar-width: none; -webkit-overflow-scrolling: touch; padding-bottom: 4px; align-items: stretch !important; cursor: pointer; }
.vc__l::-webkit-scrollbar { display: none; }
.vc__l > .vc__c { flex: 0 0 min(88vw, 460px); box-sizing: border-box; }
/* 動きを増やす（動きを減らす設定では無効：html.motion の時だけ） */
html.motion .rv { transition-delay: var(--d, 0s); }
html.motion .hd2 h2, html.motion .sec-sg1 h2 { position: relative; }
html.motion .hd2 h2::after { content: ""; display: block; height: 2px; width: 0; margin-top: 14px; background: linear-gradient(90deg, var(--gold), transparent); transition: width 1.2s cubic-bezier(.2, .7, .2, 1) .35s; }
html.motion .hd2 h2.is-in::after { width: min(220px, 40%); }
html.motion .fc li.rv .fc__k { transform: scale(.4) rotate(-90deg); opacity: 0; transition: transform .8s cubic-bezier(.2, .9, .3, 1.3) calc(var(--d, 0s) + .2s), opacity .6s ease calc(var(--d, 0s) + .2s); }
html.motion .fc li.rv.is-in .fc__k { transform: none; opacity: 1; }
html.motion .sv li.rv .sv__k { transform: scale(.4) rotate(-90deg); opacity: 0; transition: transform .8s cubic-bezier(.2, .9, .3, 1.3) calc(var(--d, 0s) + .2s), opacity .6s ease calc(var(--d, 0s) + .2s); }
html.motion .sv li.rv.is-in .sv__k { transform: none; opacity: 1; }
html.motion .tr__c.rv .tr__rec, html.motion .tt__p.rv .yl li { transition: opacity .7s ease .3s; }
html.motion .ph img { transition: transform .9s cubic-bezier(.2, .7, .2, 1); }
html.motion .ph:hover img { transform: scale(1.045); }
html.motion .tr__c, html.motion .wh__c, html.motion .vc__c, html.motion .sg__l li, html.motion .pr__l > li, html.motion .fl li, html.motion .tm__c { transition: transform .45s cubic-bezier(.2, .7, .2, 1), box-shadow .45s ease, opacity .9s cubic-bezier(.2, .7, .2, 1); }
html.motion .tr__c.is-in:hover, html.motion .wh__c.is-in:hover, html.motion .vc__c.is-in:hover, html.motion .sg__l li.is-in:hover, html.motion .fl li.is-in:hover { transform: translateY(-5px); }
html.motion .btn { position: relative; overflow: hidden; }
html.motion .btn--gold::after { content: ""; position: absolute; top: 0; left: -70%; width: 45%; height: 100%; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .45), transparent); transform: skewX(-20deg); animation: shine 4.5s ease-in-out 1.5s infinite; pointer-events: none; }
@keyframes shine { 0%, 62% { left: -70%; } 100% { left: 140%; } }
html.motion .tg__p.is-on, html.motion .wk__p.is-on, html.motion .tt__p.is-on { animation: swap .5s ease both; }
html.motion .fv__eye { animation: rise .9s cubic-bezier(.2, .7, .2, 1) .1s both; }
html.motion .more::after, html.motion .more { transition: padding-left .3s ease, letter-spacing .3s ease; }
html.motion .more:hover { padding-left: 8px; letter-spacing: .06em; }
@supports (animation-timeline: view()) {
  html.motion .gy__band img { animation: parax linear both; animation-timeline: view(); animation-range: cover 0% cover 100%; }
  @keyframes parax { from { transform: scale(1.12) translateY(-5%); } to { transform: scale(1.12) translateY(5%); } }
  html.motion .gy__band { overflow: hidden; }
}
@media (max-width: 899px) { .vc__l { align-items: flex-start; } }

/* ── 2026-11-11 Instagram 動画の枠・実績・事例 ── */
[id="seminar"], [id="gym-video"], [id="training-video"], [id="club-video"], .tg, .tt { scroll-margin-top: 88px; }
.igv { max-width: 760px; margin: 0 auto; padding: 28px 22px 24px; border: 1px solid var(--goldd); background: rgba(243, 239, 231, .03); text-align: center; }
.igv iframe.instagram-media, .igv .instagram-media { min-width: 0 !important; max-width: 100% !important; width: 100% !important; box-sizing: border-box; }
.igv__stage { overflow: hidden; }
.igv__h { font-size: clamp(22px, 1vw + 16px, 32px); margin-bottom: 12px; }
.igv > p { color: var(--sub); max-width: none; }
.igv__stage { margin: 20px auto 0; max-width: 540px; width: 100%; }
.igv__stage:empty { display: none; }
.igv__btns { justify-content: center; }
.igv__note { margin-top: 14px; font-size: 15px; }
.igv__st:empty { display: none; }
.igv.is-on .igv__note { display: none; }
.sec-gv .igv, .sec-tv .igv { margin-left: auto; margin-right: auto; }
.tg__v { grid-column: 1 / -1; max-width: none; width: 100%; }
.tg__v.igv { margin: 8px 0 0; }
.ach { list-style: none; margin: 20px 0 0; padding: 0; display: grid; gap: 14px; max-width: none !important; }
.ach li { max-width: none; padding-left: 16px; border-left: 2px solid var(--gold); color: var(--sub); }
.ach b { color: var(--fg); }
.ach__s { display: flex; flex-wrap: wrap; gap: 4px 20px; margin-top: 6px; }
.ach__a { color: var(--gold2); min-height: 32px; display: inline-flex; align-items: center; }
.cs__l { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 16px; max-width: none !important; }
.cs__l > li { max-width: none; }
@media (min-width: 600px) { .cs__l { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } }
@media (min-width: 1100px) { .cs__l { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; } }
.cs__c { padding: 22px 22px 18px; border-left: 2px solid var(--gold); background: rgba(243, 239, 231, .03); display: flex; flex-direction: column; justify-content: space-between; gap: 6px; }
.cs__c { justify-content: flex-start !important; }
.cs__c h3 + * { margin-top: auto; }
.cs__c h3 { margin-bottom: 14px; }
.cs__age { margin: 0; color: var(--gold); font-size: 17px; font-weight: 700; letter-spacing: .08em; }
.cs__c h3 { font-size: 21px; margin: 0; }
.cs__ph { aspect-ratio: 1; margin: 0 0 10px; }
.tm__s { margin-top: -4px; }
.more--sm { margin-top: 12px; font-size: 16px; }
.gy__vl { margin-top: 0; }
.igv [hidden] { display: none !important; }
.igv__stage iframe, .igv__stage .instagram-media { width: 100% !important; min-width: 0 !important; max-width: 100% !important; box-sizing: border-box; }
@media (max-width: 479px) {
  .igv { padding: 24px 0 20px; border-left: 0; border-right: 0; }
  .igv > .igv__h, .igv > p:not(.igv__btns) { padding: 0 4px; }
}

/* 2026-11-11 指示書v4 */
.gy__v { margin-top: 56px; }
.sec-vc { position: relative; isolation: isolate; overflow: hidden; }
.vc__bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.vc__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 30% 40%; opacity: .2; filter: saturate(.85); }
.vc__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, var(--ink) 0%, rgba(13, 12, 11, .18) 22%, rgba(13, 12, 11, .18) 78%, var(--ink) 100%); }
.tt__msg { margin: 24px 0 0; padding: 18px 22px 20px; border-left: 2px solid var(--gold); background: rgba(201, 164, 90, .06); }
.tt__msg-h { font-family: var(--enf); font-size: 15px; letter-spacing: .16em; color: var(--gold2); margin: 0 0 6px; font-weight: 400; }
.tt__tx > .tt__msg p { color: var(--fg); font-size: 18px; line-height: 1.95; margin: 0; }
.vc__bg img { opacity: .36; }
.sec-vc .vc__c { background: rgba(13, 12, 11, .66); }
@media (max-width: 767px) { .fv::before { background: linear-gradient(0deg, rgba(13, 12, 11, .92) 0%, rgba(13, 12, 11, .74) 30%, rgba(13, 12, 11, .2) 52%, rgba(13, 12, 11, 0) 64%); } .fv__eye { text-shadow: 0 1px 10px rgba(0, 0, 0, .8); } }

/* 2026-11-11 修正5件 */
.sec-mp { padding-top: 0; }
.sec-mp .ac__map { margin-top: 0; }
.igl { margin: 14px 0 6px; max-width: 540px; }
.igl[hidden] { display: none; }
.igl .instagram-media, .igl iframe { min-width: 0 !important; max-width: 100% !important; width: 100% !important; box-sizing: border-box; }
.igl__m { color: var(--sub); font-size: 15px; }
.way { display: grid; gap: 12px; max-width: 560px; padding: 26px 26px 22px; border: 1px solid var(--goldd); background: rgba(201, 164, 90, .05); }
.way__tag { margin: 0 0 4px; }
.way__tag span { display: inline-block; padding: 5px 20px 6px; border: 1px solid var(--gold); border-radius: 999px; background: rgba(13, 12, 11, .6); color: var(--gold2); font-family: var(--min); font-size: 18px; letter-spacing: .14em; line-height: 1.5; }
.btn--telxl { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; width: 100%; min-height: 76px; padding: 12px 20px; text-align: center; text-decoration: none; }
.btn--telxl .ic { width: 26px; height: 26px; }
.telxl__n { font-family: var(--min); font-size: clamp(28px, 2vw + 18px, 38px); letter-spacing: .06em; line-height: 1.3; }
.telxl__s { font-size: 15px; letter-spacing: .08em; }
.way .note { margin: 0; }
.way__or { display: flex; align-items: center; gap: 16px; max-width: 560px; margin: 28px 0 0; color: var(--sub); font-size: 15px; letter-spacing: .2em; }
.way__or::before, .way__or::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.fm .way__tag { margin-bottom: 14px; }

/* スマホのフッター：「制作」の下の余白を詰める（共通部品の下余白64pxを、この案件だけ上書き。右は「上へ」ボタンに重ならないよう空ける） */
.ft .kit-credit { padding-bottom: 20px; }
@media (max-width: 899px) { .ft .kit-credit { padding-right: 84px; } }

/* 点の位置（build で書き足し） */

