@charset "UTF-8";
/* ==========================================================================
   OTOKO NO PILATES
   基準幅 1440px。1rem = 100 design-px（1440幅で 1rem = 100px）。
   よって Figma の 24px → 0.24rem。幅が変われば全要素が比例追従する。
   ========================================================================== */

html {
  font-size: calc(100vw / 14.4);
  -webkit-text-size-adjust: 100%;
}

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

body {
  margin: 0;
  overflow-x: hidden;
  background: #07193f;
  font-family: var(--ja);
  font-size: .16rem;
  color: var(--c-white);
  line-break: strict;          /* Figma と同じ日本語禁則（行頭の ー・小書き仮名を禁止） */
  overflow-wrap: break-word;   /* Figma は長い連続英数字も折り返すため（###… のダミー等） */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img, picture, svg { display: block; max-width: none; }
ul, ol { margin: 0; padding: 0; list-style: none; }
p  { margin: 0; }
/* SP版を配信中にウィンドウを PC 幅まで広げた一瞬（リサイズ→再読み込みの間）だけ、
   SP レイアウトが 3 倍以上に引き伸ばされて崩れるのを防ぐ。
   430px 相当の縦一列として中央に置き、そのまま静かに差し替わるようにする。 */
@media (min-width: 768px) {
  html.otk-sp { font-size: 100px; }
  html.otk-sp body { width: 4.30rem; margin-inline: auto; }
  html.otk-sp .sphdr,
  html.otk-sp .spsticky { left: 50%; right: auto; width: 4.30rem; margin-left: -2.15rem; transform: none; }
  html.otk-sp .spsticky { width: 3.96rem; margin-left: -1.98rem; }
  html.otk-sp .spmenu   { left: 50%; right: auto; margin-left: calc(2.15rem - 3.63rem); }
}

/* ウィンドウをドラッグしている間だけ、画面外のセクションのレイアウト計算を省く。
   1rem = 画面幅/14.4 で全要素が伸縮する構造上、リサイズのたびにページ全体の
   再レイアウトが走って重くなるため（実測 20〜36ms/フレーム）。
   ドラッグが終われば解除されるので、通常時の高さ計算には影響しない。 */
html.otk-resizing main > section,
html.otk-resizing .pfv-wrap {
  content-visibility: auto;
  contain-intrinsic-size: auto 800px;
}

h1, h2, h3, h4, h5, h6 { margin: 0; font-size: inherit; font-weight: inherit; }   /* 見出しの見た目は各クラスで指定する */
a  { color: inherit; text-decoration: none; }

:root {
  /* ---- Figma カラー変数 ---- */
  --c-navy:        #07193f; /* ブランドベース(濃いめ) */
  --c-white:       #f2f1ef; /* 白っぽい白 */
  --c-gold:        #b6ab90; /* 落ち着きゴールド */
  --c-gold-light:  #dec7a4;
  --c-bgtext:      #e6e6e3; /* 背景文字（ゴールド） */
  --c-badge-bg:    #040b34;
  --c-blue:        #014484; /* 明るめブルー */
  --c-line:        #9f9f9f; /* 色-2 */
  --c-gray:        #646f87; /* メンズグレー */
  --c-subtext:     #858585;
  --c-hl:          #957c36;
  --c-rec:         #795700; /* 色-3 */
  --c-hl-bg:       #f9f5eb;
  --grad-btn:      linear-gradient(to right, #4b79a1, #283e51);

  /* ---- フォント ---- */
  --ja: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic", sans-serif;
  --en: "Raleway", var(--ja);
  --num: "Oswald", var(--en);
}

/* ==========================================================================
   HEADER  (Figma 231:129889 / h=87px)
   ========================================================================== */
.hdr {
  position: fixed;
  inset: 0 0 auto 0;
  height: .87rem;
  background: var(--c-navy);
  z-index: 100;
  transition: transform .35s cubic-bezier(.4,0,.2,1);
  will-change: transform;
}
.hdr.is-hidden { transform: translateY(-100%); }

/* 下端の 0.5px ライン */
.hdr::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: .005rem;
  background: var(--c-white);
}

.hdr__logo {
  position: absolute;
  left: .77427rem;
  top: .14694rem;              /* (87 - 57.612) / 2 */
  width: .83rem;
  height: .57612rem;
}
.hdr__logo img { width: 100%; height: 100%; }

.hdr__nav {
  position: absolute;
  left: 2.56427rem;
  top: 0;
  height: .87rem;
  width: 8.10573rem;
  display: flex;
  align-items: center;
  /* Figma gap 50.429px。CSS は最終文字の後にも letter-spacing が入るため
     カンプと ink 位置を合わせるよう 0.8px 分を差し引いて実測校正 */
  gap: .4963rem;
  font-family: var(--en);
  font-weight: 500;
  font-size: .16rem;
  letter-spacing: .0128rem;
  color: var(--c-white);
  white-space: nowrap;
}

/* アコーディオンの質問は h3 でボタンを包む（見出し構造のため）。
   ラッパーはレイアウトに影響しないよう素通しにする */
.faq__q-h, .pfaq__q-h { display: contents; }

/* ナビはマウスオンでくすみゴールドに（Figma 190:14613 の hover 指定に合わせる） */
.hdr__nav a,
.ft__col > li > a,
.ft__sublist a { transition: color .2s ease; }
.hdr__nav a:hover,
.hdr__nav a:focus-visible,
.hdr__nav a:active,
.ft__col > li > a:hover,
.ft__col > li > a:focus-visible,
.ft__col > li > a:active,
.ft__sublist a:hover,
.ft__sublist a:focus-visible,
.ft__sublist a:active { color: #d2b981; }

/* CTA（ヘッダー右） */
.hdr__cta {
  position: absolute;
  left: 11.11rem;
  top: 0;
  width: 3.29rem;
  height: .87rem;
  padding: 0 .32rem;
  display: flex;
  align-items: center;
  gap: .13rem;
  background: var(--grad-btn);
}
/* マウスオンで光沢が左から右へ走る（Figma に指定は無いが、押せることが分かるように） */
.hdr__cta { position: absolute; overflow: hidden; }
.hdr__cta::after {
  content: "";
  position: absolute;
  left: -60%; top: -50%;
  width: 40%; height: 200%;
  background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.38) 50%, rgba(255,255,255,0) 100%);
  transform: skewX(-18deg);
  pointer-events: none;
  transition: left .55s ease;
}
.hdr__cta:hover::after,
.hdr__cta:focus-visible::after { left: 120%; }
.hdr__cta { transition: filter .25s ease; }
.hdr__cta:hover, .hdr__cta:focus-visible { filter: brightness(1.12); }

/* CTA 左の縦罫線 0.5px */
.hdr__cta::before {
  content: "";
  position: absolute;
  left: 0; top: 0;
  width: .005rem;
  height: .87rem;
  background: var(--c-white);
}
.hdr__cta-txt { display: block; width: 2.29rem; height: .44126rem; }
.hdr__cta-l1 {
  display: block;
  font-size: 0;
  line-height: 0;
  height: .1902rem;            /* Figma の行ボックス高を固定（グリフで伸ばさない） */
  font-weight: 500;
  letter-spacing: .015825rem;
  white-space: nowrap;
  margin-bottom: -.03252rem;
}
.hdr__cta-l1 span { line-height: .1902rem; }
.hdr__cta-l1 .t1 { font-size: .12173rem; letter-spacing: .007304rem; }
.hdr__cta-l1 .t2 { font-size: .1585rem; font-weight: 700; color: var(--c-gold-light); letter-spacing: .00913rem; }
.hdr__cta-l1 .t3 { font-size: .0913rem;  color: var(--c-gold-light); letter-spacing: -.020998rem; }
.hdr__cta-l1 .t4 { font-size: .0913rem;  color: var(--c-gold-light); letter-spacing: .0137rem; }
.hdr__cta-l2 {
  display: block;
  font-weight: 500;
  font-size: .18031rem;
  line-height: .3224rem;
  letter-spacing: .010819rem;
  white-space: nowrap;
}
.hdr__cta-arrow { width: .23rem; height: .23rem; flex: 0 0 auto; }

/* ==========================================================================
   FV  (Figma 217:227 / 1440 x 768)
   ========================================================================== */
.fv {
  position: relative;
  width: 100%;
  height: 7.68rem;
  overflow: hidden;
  background: linear-gradient(168.41004739027545deg, rgb(9,30,70) 39.628%, rgb(1,69,133) 89.712%);
}

/* 背景の巨大文字 (223:60759) */
.fv__bgtext {
  position: absolute;
  left: .38rem;
  top: 1.03rem;
  font-family: var(--en);
  font-weight: 800;
  font-size: 1.61637rem;
  line-height: 1.51rem;
  letter-spacing: .048491rem;
  color: var(--c-bgtext);
  opacity: .1;
  white-space: nowrap;
}
.fv__bgtext span { display: block; }

/* 斜め写真（Figma 482:223575 / 3枚のマスクグループ）
   マスク形状は上辺が右へ 87.37px ずれた平行四辺形。
   932.8 x 219.059 の枠に対する比率で clip-path する。 */
.fv__photos {
  position: absolute;
  left: 4.67rem;
  top: .87rem;
  width: 11.07459rem;
  height: 6.80518rem;
}
.fv__slab {
  position: absolute;
  width: 9.328rem;
  height: 2.19059rem;
  overflow: hidden;
  -webkit-clip-path: polygon(9.3665% 0, 100% 0, 90.6335% 100%, 0 100%);
          clip-path: polygon(9.3665% 0, 100% 0, 90.6335% 100%, 0 100%);
}
.fv__slab img { position: absolute; }

.fv__slab--1 { left: 1.7466rem;  top: 0; }
.fv__slab--1 img { left: -.5479rem;  top: -1.2666rem; width: 8.9357rem;  height: 5.0274rem; }

.fv__slab--2 { left: .86347rem;  top: 2.3073rem; }
.fv__slab--2 img { left: -.1051rem;  top: -1.2742rem; width: 9.9322rem;  height: 5.5678rem; }

.fv__slab--3 { left: 0;          top: 4.61459rem; }
.fv__slab--3 img { left: -2.9538rem; top: -2.0765rem; width: 14.322rem;  height: 7.1263rem; }

/* コピー (217:360) */
.fv__copy {
  position: absolute;
  left: 1.10rem;
  top: 1.30rem;
  width: 4.24rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;   /* Figma auto-layout と同じ。margin 相殺を防ぐ */
}
.fv__tag {
  font-weight: 400;
  font-size: .25921rem;
  line-height: normal;
  letter-spacing: .01296rem;
  color: var(--c-gold);
  white-space: nowrap;
}
.fv__h1 {
  margin: .18515rem 0 0;
  font-family: var(--en);
  font-weight: 300;
  font-size: .95444rem;
  line-height: 1.06665rem;
  letter-spacing: 0;
  color: var(--c-white);
  white-space: nowrap;
}
.fv__h1-row { display: flex; gap: .27222rem; }
.fv__h1-gold { display: block; color: var(--c-gold); }

.fv__rule {
  position: relative;
  display: block;
  margin-top: .28778rem;
  width: .86905rem;
  height: 0;
}
.fv__rule::before {
  content: "";
  position: absolute;
  left: 0; right: 0;
  top: -.01566rem;
  height: .0313171rem;
  background: var(--c-gold);
}
.fv__lead {
  margin-top: .28778rem;
  font-weight: 500;
  font-size: .24rem;
  line-height: .33207rem;
  letter-spacing: .012rem;
  white-space: nowrap;
}
.fv__sub {
  margin-top: .0952rem;
  font-weight: 400;
  font-size: .19rem;
  line-height: .30148rem;
  letter-spacing: .0095rem;
  white-space: nowrap;
}

/* 3つの円バッジ (217:334) */
.fv__badges {
  position: absolute;
  left: 8.90rem;      /* center 1138 - 496/2 */
  top: 5.68rem;
  display: flex;
  align-items: center;
}
.badge {
  position: relative;
  width: 1.76191rem;
  height: 1.76191rem;
  border: .014806rem solid var(--c-gold);
  border-radius: 50%;
  background: var(--c-badge-bg);
  flex: 0 0 auto;
}
.badge--1, .badge--2 { margin-right: -.16287rem; }
.badge__icon  { position: absolute; }
.badge__num {
  position: absolute;
  font-family: var(--num);
  font-weight: 500;
  font-size: .45814rem;
  line-height: .70388rem;
  color: var(--c-gold);
  white-space: nowrap;
  top: .00444rem;
}
.badge__name {
  position: absolute;
  font-weight: 700;
  color: var(--c-white);
  white-space: nowrap;
}
.badge__note {
  position: absolute;
  font-weight: 500;
  font-size: .18409rem;
  color: var(--c-gold);
  text-align: center;
  white-space: nowrap;
}

.badge--1 .badge__icon { width: 1.00681rem; height: 1.40435rem; left: .4664rem;  top: .2073rem; }
.badge--1 .badge__num  { left: .7924rem; }
.badge--1 .badge__name { left: .5025rem; top: .6218rem;  font-size: .37484rem; line-height: .5759rem; }
.badge--1 .badge__note { left: .4714rem; top: 1.1549rem; line-height: .33731rem; }

.badge--2 .badge__icon { width: 1.27967rem; height: .953rem;  left: .2961rem;  top: .3998rem; }
.badge--2 .badge__num  { left: .7551rem; }
.badge--2 .badge__name { left: .0702rem; top: .6007rem; width: 1.60791rem; font-size: .28857rem; line-height: .31762rem; text-align: center; }
.badge--2 .badge__note { left: .4635rem; top: 1.264rem; line-height: .32643rem; }

.badge--3 .badge__icon { width: 1.30293rem; height: 1.19628rem; left: .2961rem; top: .2847rem; }
.badge--3 .badge__num  { left: .7924rem; }
.badge--3 .badge__name { left: .299rem;  top: .6219rem;  font-size: .37484rem; line-height: .5759rem; text-align: center; }
.badge--3 .badge__note { left: .4714rem; top: 1.1549rem; line-height: .33731rem; }

/* --------------------------------------------------------------------------
   CTA ボタン（共通コンポーネント）
   Figma 354:216406 を基準（--k:1 → 基準文字 17.62px）。
   POSITION 版 (219:1047) は同一コンポーネントの 1.27189 倍スケール
   （width 552/434・border 2.993/2.353・px 25.442/20.003 がすべて一致）。
   すべて --u 基準の calc なので、--k を変えるだけで比例スケールする。
   ※ t2「¥3,000」/ t4「(税込)」のサイズと字間は MCP の報告値では
     カンプと一致しないため、4x 書き出しのグリフ実測値を採用。
   -------------------------------------------------------------------------- */
.cta {
  --k: 1;
  --u: calc(.1762rem * var(--k));
  display: inline-flex;
  align-items: center;
  gap: calc(.93729 * var(--u));
  width: calc(24.6311 * var(--u));
  padding: calc(.86816 * var(--u)) calc(1.13525 * var(--u)) calc(.93490 * var(--u));
  background: var(--grad-btn);
  border: calc(.13354 * var(--u)) solid rgba(242,241,239,.6);
  border-radius: calc(.45403 * var(--u));
  box-shadow: calc(.06345 * var(--u)) calc(.60102 * var(--u)) calc(1.05511 * var(--u)) rgba(39,116,171,.59);
}
.cta__txt { display: block; height: calc(3.62429 * var(--u)); }
.cta__l1 {
  display: block;
  font-size: 0;
  line-height: 0;
  height: calc(1.56220 * var(--u));   /* 行ボックス高を固定（大きいグリフで伸ばさない） */
  margin-bottom: calc(-.26714 * var(--u));
  font-weight: 500;
  white-space: nowrap;
}
.cta__l1 span { line-height: calc(1.56220 * var(--u)); }
.cta__l1 .t1 { font-size: calc(1        * var(--u)); letter-spacing: calc( .05999 * var(--u)); }
.cta__l1 .t2 { font-size: calc(1.31498 * var(--u)); letter-spacing: calc( .07321 * var(--u)); font-weight: 700; color: var(--c-gold-light); }
.cta__l1 .t3 { font-size: calc( .63729 * var(--u)); letter-spacing: calc(-.14657 * var(--u)); color: var(--c-gold-light); }
.cta__l1 .t4 { font-size: calc( .74631 * var(--u)); letter-spacing: calc( .10499 * var(--u)); color: var(--c-gold-light); }
.cta__l2 {
  display: block;
  width: calc(18.80880 * var(--u));
  font-weight: 500;
  font-size: calc(1.48127 * var(--u));
  line-height: calc(2.64802 * var(--u));
  letter-spacing: calc(.08887 * var(--u));
  white-space: nowrap;
}
.cta__arrow { width: calc(2.34739 * var(--u)); height: calc(2.34739 * var(--u)); flex: 0 0 auto; }

/* FV 内の設置位置 (354:216406) */
.fv__cta { position: absolute; left: 1.05rem; top: 5.96rem; }

/* ==========================================================================
   ABOUT  (Figma 217:436 / 1440 x 2212.982)
   ========================================================================== */
.about {
  position: relative;
  width: 100%;
  height: 22.12982rem;
  overflow: hidden;
  background-color: var(--c-white);
  /* ドットパターン：24 x 54.2356px の千鳥格子（実測） */
  background-image:
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem),
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem);
  background-size: .24rem .542356rem;
  background-position: .065rem -.066rem, -.055rem .2065rem;
  scroll-margin-top: .87rem;
}

/* 縦組みの巨大 ABOUT (219:468) */
.about__watermark {
  position: absolute;
  left: -1.6898rem;
  top: .441rem;
  width: 2.78rem;
  height: 7.64rem;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
}
.about__watermark p {
  flex: none;
  transform: rotate(90deg);
  font-family: var(--en);
  font-weight: 800;
  font-size: 2.12rem;
  line-height: 2.78rem;
  letter-spacing: .0636rem;
  color: var(--c-bgtext);
  white-space: nowrap;
}

/* --- 上段：見出し＋写真コラージュ (219:467) --- */
.about__intro {
  position: absolute;
  left: 1.8298rem;
  top: 1.00rem;
  width: 11.025rem;
  height: 7.14rem;
  z-index: 2;
}
.about__lead {
  position: absolute;
  left: 0; top: 0;
  width: 5.705rem;
  min-height: 5.39491rem;
  padding: 0 .27256rem;
  z-index: 3;
}
.about__title { position: relative; display: inline-block; height: 1.468rem; }
.about__title--nojp { height: 1.20612rem; }   /* 和文見出しがグリッド外にある場合 */
.about__title-en {
  display: inline-block;      /* 静的配置にしてグリッドの幅を決める */
  margin: .1431rem 0 0 .2794rem;
  font-family: var(--en);
  font-weight: 500;
  font-size: .75rem;
  line-height: .9764rem;
  letter-spacing: .03rem;
  color: var(--c-gold);
  white-space: nowrap;
}
.about__title-ja {
  position: absolute;
  left: .3203rem; top: .988rem;
  font-weight: 500;
  font-size: .22rem;
  line-height: .48rem;
  letter-spacing: .0198rem;
  color: var(--c-navy);
  white-space: nowrap;
}
.about__slash { position: absolute; }
.about__slash--sm { left: -.010571rem; top: .945396rem; width: .226254rem; height: .269317rem; }
.about__slash--lg { left: .682329rem; top: -.0086rem;  width: .309408rem; height: .371526rem; }

.about__body { margin-top: .30rem; color: var(--c-navy); white-space: nowrap; }
.about__h2 {
  margin: 0;
  font-weight: 600;
  font-size: .43rem;
  line-height: .57rem;
  letter-spacing: 0;
}
.about__texts { margin-top: .15rem; }
.about__texts p {
  font-weight: 400;
  font-size: .20rem;
  line-height: .35433rem;
}
.about__texts p + p { margin-top: .13628rem; }

/* 写真コラージュ (217:454) */
.about__collage {
  position: absolute;
  left: 6.315rem; top: 0;
  width: 4.71rem;
  height: 7.16rem;
  z-index: 2;
}
.about__photo { position: absolute; overflow: hidden; }
.about__photo img { position: absolute; max-width: none; }
.about__photo--a { left: .0245rem; top: 3.93rem;   width: 2.47127rem; height: 3.23251rem; }
.about__photo--a img { left: -.1243rem; top: -3.7665rem; width: 11.309rem; height: 7.5397rem; }
.about__photo--b { left: .8081rem; top: .27754rem; width: 2.85702rem; height: 4.35083rem; }
.about__photo--b img { left: -3.169rem; top: -1.0046rem; width: 8.736rem;  height: 5.3555rem; }
.about__photo--c { left: 2.355rem; top: 3.12rem;   width: 2.35092rem; height: 2.99579rem; }
.about__photo--c img { left: -1.0379rem; top: .0018rem;  width: 5.538rem;  height: 3.685rem; }

/* --- 下段：POINT 3ブロック (219:505) --- */
.points {
  position: absolute;
  left: 1.8423rem;
  top: 8.66rem;
  width: 11rem;
  z-index: 2;
}
.point {
  position: relative;
  display: flex;
  gap: .50rem;
  align-items: flex-start;
  justify-content: center;
  width: 10.9723rem;
  height: 3.62994rem;
}
.point + .point { margin-top: .79rem; }

.point__img {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 5.3023rem;
  height: 3.41111rem;
  margin-top: .109412rem;      /* 行内で上下中央 (362.994-341.111)/2 */
}
.point__img-inner {
  position: relative;
  width: 5.31525rem;
  height: 3.04034rem;
  overflow: hidden;
  transform: rotate(-4deg) skewX(-4deg);
}
.point__img-inner img { position: absolute; max-width: none; }

.point__text {
  position: relative;
  flex: 0 0 auto;
  width: 5.17rem;
  min-height: 3.62994rem;
}
.point__label {
  position: absolute;
  left: 0; top: 0;
  display: flex;
  align-items: center;
  min-height: .69373rem;
}
.point__num {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: .752526rem;
  height: .69373rem;
  font-family: "Homenaje", var(--en);
  font-weight: 400;
  font-size: .98421rem;
  line-height: 1;
  letter-spacing: .009842rem;
  color: var(--c-gold);
}
.point__point {
  display: block;
  margin-left: .2822rem;
  width: 1.36395rem;
  font-family: var(--en);
  font-weight: 500;
  font-size: .34072rem;
  line-height: .27044rem;
  letter-spacing: .057923rem;
  color: #949bad;
}
.point__body {
  position: absolute;
  left: 0; top: .97994rem;
  width: 5.17rem;
  min-height: 2.65rem;
  color: var(--c-navy);
}
.point__h3 { position: absolute; left: 0; top: 0; margin: 0; font-weight: 600; white-space: nowrap; }
.point__h3-sm { display: block; font-size: .31rem; line-height: .55rem; }
.point__h3-lg { display: block; font-size: .43rem; line-height: .55rem; }
.point__desc {
  position: absolute;
  left: 0; top: 1.25rem;
  width: 5.17rem;
  font-weight: 400;
  font-size: .20rem;
  line-height: .35rem;
  text-align: justify;
}

.point:nth-child(1) .point__img-inner img { left: -0.6330rem; top: -1.0060rem; width: 7.5078rem; height: 5.0050rem; }
.point:nth-child(2) .point__img-inner img { left: 0.0037rem; top: -0.5795rem; width: 5.6374rem; height: 4.3702rem; }
.point:nth-child(3) .point__img-inner img { left: -0.8382rem; top: -0.2572rem; width: 6.5340rem; height: 4.8113rem; }

/* ==========================================================================
   POSITION  (Figma 219:993 / 1440 x 1097.424)
   ========================================================================== */
.position {
  position: relative;
  width: 100%;
  height: 10.97424rem;
  overflow: hidden;
  background: var(--c-navy);
  scroll-margin-top: .87rem;
}
.position__bg { position: absolute; inset: 0; overflow: hidden; }
.position__bg img { position: absolute; left: -.808rem; top: -6.467rem; width: 15.625rem; height: 25.768rem; }
/* ネイビー 60% のベール (219:1071) */
.position__veil {
  position: absolute;
  left: 0; top: -.0663rem;
  width: 14.4rem; height: 11.12rem;
  background: var(--c-navy);
  opacity: .6;
}

/* 見出し＋ベン図の行 (219:714) */
.position__row {
  position: absolute;
  left: 1.70rem; top: 1.00rem;
  width: 11rem;
  display: flex;
  gap: 1.31rem;
  align-items: flex-start;
}

/* 見出し (219:715) */
.position__lead { flex: 0 0 auto; z-index: 3; }
.position__title-ja { color: var(--c-white); }
.position__body { margin-top: .30rem; color: var(--c-white); white-space: nowrap; }
.position__body .about__texts { margin-top: .15rem; }

/* ベン図 (219:856) */
.venn {
  position: relative;
  flex: 0 0 auto;
  width: 5.26rem; height: 7.1681rem;
  z-index: 2;
}
.venn__core { position: absolute; left: .7255rem; top: 2.0945rem; width: 3.026rem; height: 3.026rem; }
.venn__core-ring { position: absolute; left: -.6119rem; top: -.6119rem; width: 4.2497rem; height: 4.2497rem; }
.venn__core-logo { position: absolute; left: .7834rem; top: .7904rem; width: 1.45972rem; height: 1.00512rem; }
.venn__core-txt {
  position: absolute;
  left: .4469rem; top: 1.8651rem;
  font-weight: 600;
  font-size: .22003rem;
  line-height: .28879rem;
  color: var(--c-white);
  text-align: center;
  white-space: nowrap;
}

.venn__node { position: absolute; width: 1.64rem; height: 1.64rem; }
.venn__node > img { position: absolute; left: -.16282rem; top: -.16282rem; width: 1.96559rem; height: 1.96559rem; }
.venn__node-txt { position: absolute; color: var(--c-navy); text-align: center; }
.venn__node-name { font-weight: 700; font-size: .30rem; line-height: .35668rem; }
.venn__node-name--two { line-height: .31rem; }
.venn__node-sub  { margin-top: .02rem; font-weight: 700; font-size: .18rem; line-height: .19713rem; }

.venn__node--seitai  { left: 1.4255rem; top: 1.08rem; }
.venn__node--seitai  .venn__node-txt { left: .29rem; top: .53rem; }
.venn__node--machine { left: .22rem;    top: 4.4481rem; }
.venn__node--machine .venn__node-txt { left: .07rem; top: .42rem; width: 1.50rem; }
.venn__node--kintore { left: 2.8598rem; top: 4.4481rem; }
.venn__node--kintore .venn__node-txt { left: .29rem; top: .53rem; width: 1.05rem; }

.venn__note {
  position: absolute;
  font-weight: 400;
  font-size: .20rem;
  line-height: .27rem;
  color: var(--c-white);
  white-space: nowrap;
}
.venn__note--top   { left: 3.73rem; top: .30rem;   transform: translateX(-50%); text-align: center; }
.venn__note--right { left: 5.26rem; top: 6.392rem; transform: translateX(-100%); text-align: right; }
.venn__note--left  { left: -1.26rem; top: 6.28rem; }

/* CTA (219:1047) */
.position__cta {
  position: absolute;
  left: 4.44rem;
  top: 8.6981rem;
  --k: 1.27189;
  z-index: 3;
}

/* ==========================================================================
   SERVICE + PRICE  (Figma 223:1256 / 1440 x 6455.632)
   ========================================================================== */
.svcprice {
  position: relative;
  width: 100%;
  height: 64.55632rem;
  overflow: hidden;
  background: var(--c-white);
  scroll-margin-top: .87rem;
}
/* ドットパターン (223:34169 / y 1601.264 から 3254.136px) */
.svcprice__dots {
  position: absolute;
  /* Figma はセクション全面にドットが敷かれている。位相は元の原点（+16.01264rem）に合わせて補正 */
  left: 0; top: 0;
  width: 100%;
  height: 100%;
  background-image:
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem),
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem);
  background-size: .24rem .542356rem;
  background-position: .065rem .00816rem, -.055rem .28052rem;
}

/* --- セクション見出し（共通） --- */
.sec-head { display: flex; flex-direction: column; align-items: center; }
.sec-head__title { display: flex; flex-direction: column; align-items: flex-start; margin-bottom: -.19rem; padding-right: .28rem; }
.sec-head__ja {
  font-weight: 500;
  font-size: .22rem;
  line-height: .48rem;
  letter-spacing: .0198rem;
  color: var(--c-navy);
  text-align: center;
  white-space: nowrap;
}

/* --- SERVICE (223:1257) --- */
.service {
  position: absolute;
  isolation: isolate;      /* ゴースト見出しを最背面に置くための stacking context */
  left: 1.0477rem; top: 1.00rem;
  width: 12.3046rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .30rem;              /* 223:1258 の gap（223:1257 は子が1つなので gap-68 は効かない） */
}
.service__watermark {
  position: absolute;
  z-index: -1;             /* カンプではカードの下に潜る */
  left: 10.32rem; top: .489rem;
  width: 2.78rem; height: 9.12rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.service__watermark p {
  flex: none;
  transform: rotate(-90deg);
  font-family: var(--en);
  font-weight: 800;
  font-size: 2.12rem;
  line-height: 2.78rem;
  letter-spacing: .0636rem;
  color: var(--c-bgtext);
  white-space: nowrap;
}

.service > .sec-head { gap: 0; }
.service__body { display: flex; flex-direction: column; align-items: center; gap: .60rem; width: 100%; }
.service__main { display: flex; flex-direction: column; align-items: center; gap: .50rem; }
.service__intro { display: flex; flex-direction: column; align-items: center; gap: .15rem; }
.service__h2 {
  margin: 0;
  font-weight: 600;
  font-size: .43rem;
  line-height: .57rem;
  color: var(--c-navy);
  text-align: center;
  white-space: nowrap;
}
.service__desc {
  font-weight: 400;
  font-size: .20rem;
  line-height: .35433rem;
  color: var(--c-navy);
  text-align: center;
  white-space: nowrap;
}

/* 3ステップのカード (223:1407) */
.steps { display: flex; flex-direction: column; align-items: center; gap: .20rem; width: 11.72729rem; }
.steps__arrow { width: .62rem; height: .29rem; transform: rotate(180deg); }

.step {
  display: flex;
  align-items: center;
  gap: .64rem;
  width: 100%;
  padding: .37rem .54rem;
  background: var(--c-white);
  border: .03rem solid var(--c-navy);
}
.step__text { display: flex; flex-direction: column; align-items: flex-start; gap: .14278rem; }
.step__head { display: flex; flex-direction: column; align-items: flex-start; gap: .16063rem; }
.step__badge {
  display: flex;
  align-items: flex-end;
  gap: .06385rem;
  padding: .13753rem .18337rem;
  background: var(--c-navy);
}
.step__badge-en {
  display: block;
  /* letter-spacing 込みで幅が Figma の枠を数px超え「P」が折り返すため折り返し禁止 */
  white-space: nowrap;
  width: .8137rem;
  height: .34382rem;
  font-family: var(--en);
  font-weight: 600;
  font-size: .31406rem;
  line-height: .41221rem;
  letter-spacing: .012563rem;
  color: var(--c-white);
}
.step__badge-num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: .20137rem;
  height: .36246rem;
  font-family: "Homenaje", var(--en);
  font-size: .53575rem;
  line-height: .70318rem;
  letter-spacing: .02143rem;
  color: var(--c-white);
}
.step__title {
  font-weight: 600;
  font-size: .39923rem;
  line-height: .46404rem;
  color: var(--c-navy);
  white-space: nowrap;
}
.step__desc {
  width: 6.40729rem;
  font-weight: 400;
  font-size: .27946rem;
  line-height: .4105rem;
  color: var(--c-navy);
  text-align: justify;
}
.step__photo { position: relative; flex: 0 0 auto; width: 3.52rem; height: 2.2419rem; overflow: hidden; }
.step__photo img { position: absolute; max-width: none; }
.steps .step:nth-of-type(1) .step__photo img { left: -.1457rem; top: -.1002rem; width: 3.7988rem; height: 2.5300rem; }
.steps .step:nth-of-type(2) .step__photo img { left: -.2770rem; top: -.1959rem; width: 4.6306rem; height: 3.0840rem; }
.steps .step:nth-of-type(3) .step__photo img { left: -.7364rem; top: -.5466rem; width: 4.9928rem; height: 3.3252rem; }

/* 「詳しく見る」ボタン (223:1312) */
.more { display: inline-flex; align-items: center; }
.more__label {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: -.24725rem;
  padding: .13765rem .44736rem .11471rem;
  background: rgba(255,255,255,.12);
  border: .01721rem solid var(--c-navy);
  font-weight: 500;
  font-size: .2349rem;
  line-height: .50435rem;
  letter-spacing: .021141rem;
  color: var(--c-navy);
  white-space: nowrap;
}
.more__arrow { width: .85302rem; height: .14835rem; }

/* --- PRICE (223:1453) --- */
.price {
  position: absolute;
  left: 1.0477rem; top: 18.29856rem;
  width: 12.3046rem;
}
.price__watermark {
  position: absolute;
  /* rotate(-90deg) の回転後ボックスは要素幅ぶん右にずれるので left から width を引く
     （カンプ実測：インク x=78..228 → ボックス左端 15.2） */
  position: absolute;
  left: -.9077rem; top: .4344rem;
  width: 2.78rem; height: 6.36rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.price__watermark p {
  flex: none;
  transform: rotate(90deg);
  font-family: var(--en);
  font-weight: 800;
  font-size: 2.12rem;
  line-height: 2.78rem;
  letter-spacing: .0636rem;
  color: var(--c-bgtext);
  white-space: nowrap;
}
.price__head { position: absolute; left: 4.74761rem; top: 0; width: 2.80937rem; }

.price__banner {
  position: absolute;
  left: 1.3449rem; top: 1.95607rem;
  width: 9.61476rem; height: 4.57846rem;
  /* 書き出し画像の四隅に白が残っているので、リンク側で角丸クリップする。
     画像側だけ角丸にすると影のクリップ境界とズレて 1px の明るい継ぎ目が出る。
     継ぎ目の保険に枠と同じ金色を敷いておく（元画像の角の実測色） */
  border-radius: 1.80% / 3.78%;
  overflow: hidden;
  background: rgb(196,139,50);
  box-shadow: .02rem .04rem .31rem rgba(0,0,0,.3);
}
.price__banner img { width: 100%; height: 100%; object-fit: cover;
 }

.price__body { position: absolute; left: .6523rem; top: 7.30453rem; width: 11rem; }
.price__more { position: absolute; left: 4.56485rem; top: 42.40483rem; }
.price__cta  { position: absolute; left: 3.3923rem; top: 43.98160rem; --k: 1.27189; }

/* 見出し（金ライン付き） */
.plan__title {
  display: flex;
  align-items: center;
  gap: .27rem;
  margin: 0;
  font-weight: 600;
  font-size: .42rem;
  line-height: .63rem;
  color: var(--c-navy);
  white-space: nowrap;
}
.plan__bar { display: block; flex: 0 0 auto; width: .225rem; height: .60rem; background: var(--c-gold); }

/* 無料サービス＆設備 (465:218222) */
.freeitem { display: flex; flex-direction: column; align-items: flex-start; gap: .33rem; width: 11rem; }
.freeitem__desc {
  width: 100%;
  font-weight: 400;
  font-size: .20rem;
  line-height: .354rem;
  color: var(--c-navy);
}
.freeitem__list { display: flex; gap: .33rem; align-items: flex-start; justify-content: center; width: 100%; }
.freeitem__item { display: flex; flex-direction: column; align-items: center; gap: .11553rem; width: 2.17194rem; }
.freeitem__icon { position: relative; width: 1.64051rem; height: 1.64051rem; overflow: hidden; }
.freeitem__icon img { position: absolute; max-width: none; }
.freeitem__icon--wear  img { left: -1.88148rem; top:  .00131rem; width: 5.42743rem; height: 3.38275rem; }
.freeitem__icon--water img { left: -3.88141rem; top: -1.83702rem; width: 5.55075rem; height: 3.45968rem; }
.freeitem__label {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 1.01665rem;
  width: 2.17194rem;
  font-weight: 500;
  font-size: .299rem;
  line-height: .41113rem;
  color: var(--c-navy);
  text-align: center;
  white-space: nowrap;
}
.freeitem__label--water { min-height: .83rem; }

/* 料金プラン共通 */
.plan { display: flex; flex-direction: column; align-items: flex-start; gap: .33rem; width: 11rem; }
.freeitem + .plan { margin-top: .42rem; }
.plan + .plan { margin-top: .42rem; }
.plan__body { display: flex; flex-direction: column; align-items: flex-start; gap: .40rem; width: 100%; }
.plan__fee { display: flex; align-items: center; gap: .2716rem; }
.plan__fee-tri { width: .36213rem; height: .31687rem; transform: rotate(90deg); }
.plan__fee span {
  display: flex;
  align-items: center;
  height: .70163rem;
  font-weight: 600;
  font-size: .4275rem;
  line-height: .93254rem;
  color: var(--c-navy);
  white-space: nowrap;
}
.plan__tax {
  width: 100%;
  font-weight: 400;
  font-size: .24rem;
  line-height: .39rem;
  color: var(--c-navy);
  text-align: right;
}

/* 料金表 */
.ptable {
  position: relative;
  width: 11rem;
  padding: .02045rem 0;    /* 縦だけ旧 border ぶんを残す。横は 0 にして列幅を Figma どおり 1100 に */
}
/* 外枠：border だと内側に描かれてセル幅が 4px 縮み、列の位置が Figma とずれる。
   枠は境界の外側に重ねて描き、セルは 1100px をフルに使わせる */
.ptable::after {
  content: "";
  position: absolute;
  /* 上下は padding のぶんを枠線が埋める（inset:-2px にすると枠と本体の間に隙間が出る）、
     左右は境界の外側にはみ出させる */
  /* 左右を外側に出すと、rem が小数になる画面幅（1440px 未満）で丸め差により
     枠とセルの間に 1px の隙間が出る。必ずセル側に重なるよう内側に寄せる */
  inset: -.01rem 0 0;
  border: .02045rem solid var(--c-navy);
  border-top-width: .03045rem;
  pointer-events: none;
}
.ptable__row { display: flex; align-items: stretch; width: 100%; }
.ptable__cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: .22491rem .18401rem;
  background: #fff;
}
.ptable__cell:nth-child(1) { width: 4.00743rem; }
.ptable__cell:nth-child(2) { width: 3.48947rem; }
.ptable__cell:nth-child(3) { width: 3.5031rem; }
.ptable__cell--head { background: var(--c-navy); font-weight: 600; font-size: .36803rem; line-height: .49071rem; color: var(--c-white); white-space: nowrap; }
.ptable__cell--head.is-blue { background: var(--c-blue); }
/* 罫線：レイアウトの高さ・幅は今までどおり border（透明）で確保しつつ、
   見た目の線は境界線の上に乗せて描く。Figma のストロークは境界をまたぐので、
   border のままだと線幅の半分（約1.25px）内側にずれてしまう */
.ptable__cell { position: relative; }
.ptable__cell--brw { border-right: .02045rem solid transparent; }
.ptable__cell--br  { border-right: .02045rem solid transparent; }
.ptable__cell--bb  { border-bottom: .02045rem solid transparent; }
.ptable__cell--label { background: var(--c-bgtext); gap: .02045rem; white-space: nowrap; border-right: .02045rem solid transparent; }

.ptable__cell--brw::after,
.ptable__cell--br::after,
.ptable__cell--label::after {
  content: "";
  position: absolute; z-index: 3; pointer-events: none;
  top: 0; bottom: -.02045rem; right: -.02058rem; width: .02045rem;
  background: var(--c-line);
}
.ptable__cell--brw::after { background: #fff; bottom: 0; }
.ptable__cell--bb::before {
  content: "";
  position: absolute; z-index: 3; pointer-events: none;
  left: 0; right: -.03818rem; bottom: -.03818rem; height: .02045rem;
  background: var(--c-line);
}
.ptable__label-main { font-weight: 600; font-size: .36803rem; line-height: .49071rem; color: var(--c-navy); text-align: center; }
.ptable__label-sub  { font-weight: 600; font-size: .30669rem; line-height: .49071rem; color: var(--c-subtext); }
.ptable__plain { font-weight: 400; font-size: .36803rem; line-height: .49071rem; color: var(--c-navy); white-space: nowrap; }
.ptable__plain.is-blue { color: var(--c-blue); }

.ptable__cell--stack, .ptable__cell--stack2 { padding: .40892rem .18401rem .22491rem; }
.ptable__cell--stack2 { gap: .16357rem; }
.ptable__stack { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .18401rem; }
.ptable__price-row { display: flex; align-items: flex-end; justify-content: center; gap: .15335rem; }
.ptable__unit {
  display: block;
  width: .61338rem;
  height: .36803rem;
  font-weight: 400;
  font-size: .30669rem;
  line-height: .49071rem;
  color: var(--c-gray);
}
.ptable__price {
  display: flex;
  align-items: center;
  justify-content: center;
  height: .36803rem;
  font-weight: 600;
  font-size: .49071rem;
  line-height: .49071rem;
  color: var(--c-navy);
  white-space: nowrap;
}
.ptable__price.is-big { font-size: .42937rem; }
.ptable__price.is-blue { color: var(--c-blue); }
/* Figma では高さ0のパスにストロークが乗るのでレイアウト高は0 */
.ptable__hr { position: relative; display: block; width: 3.34294rem; height: 0; }
.ptable__hr::before {
  content: "";
  position: absolute;
  left: 0; right: 0;
  top: -.0077rem;
  height: .01rem;
  background: var(--c-line);
}
.ptable__note {
  display: flex;
  align-items: center;
  justify-content: center;
  height: .30669rem;
  font-weight: 400;
  font-size: .27602rem;
  line-height: .49071rem;
  color: var(--c-gray);
  white-space: nowrap;
}

/* 年額表の「オトク」バッジ */
.ptable__save { display: flex; flex-direction: column; align-items: center; }
.ptable__save-tag {
  margin-bottom: -.06134rem;
  padding: .12268rem .18401rem;
  background: var(--c-gray);
  font-weight: 600;
  font-size: .27645rem;
  line-height: .32828rem;
  color: var(--c-white);
  text-align: center;
  white-space: nowrap;
}
.ptable__save-tri {
  display: block;
  width: 0; height: 0;
  border-left: .10734rem solid transparent;
  border-right: .10734rem solid transparent;
  border-top: .18401rem solid var(--c-gray);
}

/* おすすめ枠とバッジ */
/* Figma のストロークは中央揃え（1100x198 の枠に 10px）なので
   外形は 1110 x (h+10)。境界線はゴールドのグラデーション。 */
.ptable__group { position: relative; }
.ptable__hl {
  position: absolute;
  z-index: 5;              /* 罫線・外枠より前面（Figma では金枠が一番上に乗る） */
  left: 50%;
  top: -.06rem; bottom: -.06rem;   /* 対象行を包む .ptable__group を基準にする */
  transform: translateX(-50%);
  width: 11.10rem;
  border: .10rem solid var(--c-hl);
  border-image: linear-gradient(90deg, #9c8339 0%, #ebd66a 50%, #b59c46 100%) 1;
  pointer-events: none;
}
.ptable__rec { position: absolute; z-index: 6; width: 1.78563rem; height: 1.38882rem; background: var(--c-rec); border-radius: 50%; overflow: hidden; }
/* 画面に入ったとき1回だけ光沢が走る（シール感を出すための演出） */
.otk-shine::after {
  content: "";
  position: absolute;
  left: -70%; top: -50%;
  width: 45%; height: 200%;
  background: linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.55) 50%, rgba(255,255,255,0) 100%);
  transform: skewX(-18deg);
  opacity: 0;
  pointer-events: none;
  z-index: 1;
}
.otk-shine.is-shine::after { animation: otk-shine .9s ease-out .15s 1 both; }
@keyframes otk-shine {
  0%   { left: -70%; opacity: 0; }
  15%  { opacity: 1; }
  85%  { opacity: 1; }
  100% { left: 130%; opacity: 0; }
}
.ptable__rec-txt {
  position: absolute;
  z-index: 2;
  top: .3678rem;
  transform: translateX(-50%);
  font-weight: 600;
  font-size: .2728rem;
  line-height: .32395rem;
  color: var(--c-white);
  text-align: center;
  white-space: nowrap;
}

/* ==========================================================================
   FAQ  (Figma 223:1083 / 1440 x 2253.703)
   ========================================================================== */
.faq {
  position: relative;
  width: 100%;
  /* height: 22.53703rem; 撤去: FAQ開閉で可変 */
  padding: 1.00rem 0 1.02008rem;
  overflow: hidden;
  background: var(--c-navy);
  scroll-margin-top: .87rem;
}
.faq__inner {
  position: relative;
  margin: 0 auto;
  width: 12.3046rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .30rem;
}
.sec-head__ja--light { color: var(--c-white); }

.faq__body { display: flex; flex-direction: column; align-items: center; gap: .60rem; width: 100%; }
.faq__main { display: flex; flex-direction: column; align-items: center; gap: .27rem; }
.faq__intro { display: flex; flex-direction: column; align-items: center; gap: .15rem; color: var(--c-white); white-space: nowrap; }
.faq__h2 { margin: 0; font-weight: 600; font-size: .43rem; line-height: .57rem; }
.faq__desc { display: flex; flex-direction: column; align-items: center; gap: .13628rem; text-align: center; }
.faq__desc p { font-weight: 400; font-size: .20rem; line-height: .35433rem; }

.faq__list { display: flex; flex-direction: column; align-items: flex-start; gap: .33529rem; width: 10.20rem; }
.faq__item { display: flex; flex-direction: column; align-items: flex-start; gap: .30846rem; width: 100%; }
.faq__line { display: block; width: 10.20rem; height: .01rem; background: var(--c-white); }

.faq__q {
  display: flex;
  align-items: center;
  gap: .17435rem;
  padding: 0 0 0 .16094rem;
  margin: 0;
  background: none;
  border: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  text-align: left;
}
.faq__q-inner { display: flex; align-items: center; gap: .38893rem; width: 9.17rem; }
.faq__mark {
  position: relative;
  flex: 0 0 auto;
  display: block;
  width: .82078rem;
  height: .82078rem;
  border-radius: 50%;
  background: var(--c-white);
  font-family: var(--en);
  font-weight: 500;
  font-size: .49783rem;
  line-height: .65341rem;
  letter-spacing: .019913rem;
  color: var(--c-navy);
  text-indent: .2189rem;
  padding-top: .0821rem;
  white-space: nowrap;
}
.faq__q-text { font-weight: 400; font-size: .30rem; line-height: .40234rem; color: var(--c-white); white-space: nowrap; }
.faq__chevron { flex: 0 0 auto; width: .299017rem; height: .171165rem; transition: transform .3s ease; }
.faq__item:not(.is-open) .faq__chevron { transform: rotate(180deg); }

.faq__a { width: 5.15rem; padding-left: .79128rem; }
.faq__item:not(.is-open) .faq__a { display: none; }
.faq__a-panel {
  display: flex;
  align-items: center;
  gap: .40234rem;
  width: 7.90rem;
  padding: .20472rem .30708rem;
  background: var(--c-white);
  color: var(--c-navy);
}
.faq__mark--a {
  width: auto;
  height: auto;
  border-radius: 0;
  background: none;
  padding-top: 0;
  text-indent: 0;
  font-size: .55876rem;
  line-height: .73338rem;
  letter-spacing: .022351rem;
}
.faq__a-text { width: 6.41rem; font-weight: 400; font-size: .24rem; line-height: .3685rem; }

.more--light .more__label { border-color: var(--c-white); color: var(--c-white); }
.faq__cta { position: relative; display: flex; margin: .58336rem auto 0 4.44rem; --k: 1.27189; }

/* ==========================================================================
   INSTRUCTOR  (Figma 223:1551 / 1440 x 2396.284)
   ========================================================================== */
.instructor {
  position: relative;
  width: 100%;
  /* 人数が増えても切れないよう固定高さ→最小高さ。1.00rem/.943rem は元の上下余白 */
  /* min-height: 23.96284rem; 撤去: CMS可変 */
  padding: 1.00rem 0 .943rem;
  overflow: hidden;
  background: var(--c-navy);
  scroll-margin-top: .87rem;
}
.instructor__bg { position: absolute; inset: 0; overflow: hidden; }
.instructor__bg img { position: absolute; left: -111.53%; top: -4.44%; width: 377.79%; height: 118.27%; }   /* 新Figma 223:1551 */
.instructor__veil { position: absolute; inset: 0; background: var(--c-navy); opacity: .6; }
.instructor__inner {
  position: relative;
  margin: 0 auto;
  width: 12.02rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .30rem;
  z-index: 2;
}
.instructor__body { display: flex; flex-direction: column; align-items: center; gap: .60rem; width: 100%; }
.instructor__main { display: flex; flex-direction: column; align-items: center; gap: .36rem; }
.instructor__intro { display: flex; flex-direction: column; align-items: center; gap: .15rem; color: var(--c-white); text-align: center; white-space: nowrap; }
.instructor__h2 { margin: 0; font-weight: 600; font-size: .43rem; line-height: .57rem; }
.instructor__sub { font-weight: 400; font-size: .20rem; line-height: .35433rem; }

.instructor__grid { display: flex; flex-direction: column; align-items: center; gap: .49rem; }
.instructor__row { display: flex; gap: .40rem; align-items: flex-start; justify-content: center; }

.inst { display: flex; flex-direction: column; align-items: flex-start; gap: .135rem; width: 3.40rem; }
.inst__photo { position: relative; width: 3.40rem; height: 3.36rem; overflow: hidden; }
/* 顔写真が未登録のとき（Figma のグレープレースホルダー） */
.inst__photo--empty { background: #d3d3d3; }
.inst__photo img { position: absolute; left: -.07106rem; top: -1.15819rem; width: 3.68084rem; height: 5.68210rem; max-width: none; }
.inst__info { display: flex; flex-direction: column; align-items: flex-start; width: 100%; color: var(--c-white); }
.inst__name { display: flex; flex-direction: column; align-items: flex-start; }
.inst__store { margin-bottom: -.045rem; font-weight: 600; font-size: .24rem; line-height: .44266rem; white-space: nowrap; }
.inst__person { font-weight: 600; font-size: .33469rem; line-height: .47649rem; white-space: nowrap; }
.inst__detail { display: flex; flex-direction: column; align-items: flex-start; gap: .15rem; width: 100%; }
.inst__career { width: 3.30rem; font-weight: 400; font-size: .18rem; line-height: .33rem; }
.inst__blocks { display: flex; flex-direction: column; align-items: flex-start; gap: .24rem; width: 100%; }
.inst__block { display: flex; flex-direction: column; align-items: flex-start; gap: .15rem; width: 100%; }
.inst__block-title { width: 1.125rem; height: .30rem; font-weight: 400; font-size: .24rem; line-height: .37371rem; }
.inst__line { position: relative; display: block; width: 3.30rem; height: 0; }
.inst__line::before {
  content: "";
  position: absolute;
  left: 0; right: 0;
  top: -.00719rem;
  height: .01437rem;
  background: var(--c-white);
}
/* 得意領域タグは新デザイン（559:338307）で廃止 */
.inst__tags { display: none; }
.inst__tags--legacy { display: flex; flex-wrap: wrap; align-content: flex-start; align-items: flex-start; gap: .09rem; width: 100%; }
.inst__tags li {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: .045rem .06rem;
  background: var(--c-white);
  font-weight: 400;
  font-size: .15rem;
  line-height: .18rem;
  color: var(--c-navy);
  white-space: nowrap;
}
.inst__certs { display: flex; flex-direction: column; align-items: flex-start; gap: .01rem; width: 100%; }
.inst__certs p { width: 100%; font-weight: 400; font-size: .15rem; line-height: .27rem; }

/* ==========================================================================
   STUDIO  (Figma 223:1757 / 1440 x 2306.901)
   ========================================================================== */
.studio {
  position: relative;
  width: 100%;
  /* min-height: 23.06901rem; 撤去: CMS可変 */
  padding: 1.00rem 0 1.02rem;
  overflow: hidden;
  background: var(--c-navy);
  scroll-margin-top: .87rem;
}
.studio__inner {
  position: relative;
  margin: 0 auto;
  width: 11rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .30rem;
}
.studio__body { display: flex; flex-direction: column; align-items: center; gap: .72rem; width: 100%; }
.studio__main { display: flex; flex-direction: column; align-items: center; gap: .52rem; }
.studio__h2 {
  margin: 0;
  font-weight: 600;
  font-size: .43rem;
  line-height: .57rem;
  color: var(--c-white);
  text-align: center;
  white-space: nowrap;
}
.studio__rows { display: flex; flex-direction: column; align-items: flex-start; gap: 1.00rem; }
.studio__row { display: flex; gap: .35rem; align-items: flex-start; justify-content: center; }

.studio__photo { position: relative; align-self: stretch; flex: 0 0 auto; width: 5.83rem; overflow: hidden; }
.studio__photo img { position: absolute; left: -30.36%; top: .09%; width: 160.4%; height: 108.03%; max-width: none; }

/* テキスト段の幅は店舗名（32px）で決まる。Hiragino のラテン字幅が Figma と
   わずかに違うためカンプ実測値 482px を明示して写真位置を合わせる */
.studio__text { display: flex; flex-direction: column; align-items: flex-end; gap: .36rem; flex: 0 0 auto; }
/* 段の幅は店舗名（32px）で決まる。Hiragino のラテン字幅が Figma と
   わずかに違うためカンプ実測値 482px を明示する */
.studio__head { display: flex; flex-direction: column; align-items: flex-start; gap: .37rem; width: 4.82rem; }
.studio__name { font-weight: 600; font-size: .32rem; line-height: .30rem; color: var(--c-gold); white-space: nowrap; }
.studio__dl { display: flex; flex-direction: column; align-items: flex-start; gap: .12rem; margin: 0; }
.studio__dl-row { display: flex; gap: .21rem; align-items: center; }
.studio__dl-row--top { align-items: flex-start; }
.studio__dl dt {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: .98rem;
  padding: .06rem .08rem;
  background: var(--c-white);
  font-weight: 400;
  font-size: .20rem;
  line-height: .26rem;
  color: var(--c-navy);
  white-space: nowrap;
}
.studio__dl dd {
  margin: 0;
  font-weight: 400;
  font-size: .20rem;
  line-height: .354rem;
  color: var(--c-white);
  white-space: nowrap;
}
.studio__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .10rem;
  padding: .15rem .48rem;
  background: linear-gradient(to bottom, #ebdfbb 0%, #9f8a5b 96.412%);
  font-weight: 600;
  font-size: .17rem;
  line-height: .354rem;
  letter-spacing: .0153rem;
  color: var(--c-navy);
  white-space: nowrap;
}
.studio__btn img { width: .134814rem; height: .116753rem; transform: rotate(90deg); }

.studio__cta { position: relative; display: flex; margin: .74rem auto 0; --k: 1.27189; }

/* ==========================================================================
   REVIEW + NEWS  (Figma 223:2016 / 1440 x 2043.323)
   ========================================================================== */
.revnews {
  position: relative;
  width: 100%;
  /* お客様の声の件数で高さが変わるため通常フロー化（上下の余白は Figma 実値） */
  padding: 1.00rem 0 1.0364rem;
  overflow: hidden;
  background: var(--c-white);
  scroll-margin-top: .87rem;
}
.revnews__dots {
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem),
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem);
  background-size: .24rem .542356rem;
  background-position: .065rem .1738rem, -.055rem .4438rem;
}

/* お客様の声を出さない間（OTK_SHOW_REVIEW=false）は NEWS を上に詰め、
   セクションの高さも REVIEW ぶん縮める */
.revnews--norev .news { margin-top: 0; }

/* --- REVIEW (223:2019) --- */
.review {
  position: relative;
  margin: 0 auto;
  width: 11rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .30rem;
}
.review__watermark {
  position: absolute;
  left: -1.56rem; top: .561rem;
  width: 2.78rem; height: 8.58rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.review__watermark p {
  flex: none;
  transform: rotate(90deg);
  font-family: var(--en);
  font-weight: 800;
  font-size: 2.12rem;
  line-height: 2.78rem;
  letter-spacing: .0636rem;
  color: var(--c-bgtext);
  white-space: nowrap;
}
.review__list { display: flex; flex-direction: column; align-items: flex-start; gap: .30rem; z-index: 1; }
.review__card {
  display: flex;
  gap: .39rem;
  align-items: flex-start;
  padding: .28rem .345rem;
  background: #fff;
}
.review__img { position: relative; flex: 0 0 auto; align-self: stretch; width: 3.21rem; overflow: hidden; background: #d9d9d9; }
.review__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.review__text { display: flex; flex-direction: column; align-items: flex-start; gap: .09rem; color: var(--c-navy); text-align: justify; }
.review__meta { font-size: 0; line-height: 0; white-space: nowrap; }
.review__name { display: block; font-weight: 600; font-size: .33rem; line-height: .39rem; }
.review__age  { display: block; font-weight: 600; font-size: .27rem; line-height: .39rem; }
.review__body { width: 6.71rem; font-weight: 400; font-size: .20rem; line-height: .35rem; }

/* --- NEWS (402:215923) --- */
.news {
  position: relative;
  margin: 2.8198rem auto 0;
  width: 12.3046rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .30rem;
}
.news__watermark {
  position: absolute;
  left: 10.32rem; top: .94rem;
  width: 2.78rem; height: 6.57rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.news__watermark p {
  flex: none;
  transform: rotate(-90deg);
  font-family: var(--en);
  font-weight: 800;
  font-size: 2.12rem;
  line-height: 2.78rem;
  letter-spacing: .0636rem;
  color: var(--c-bgtext);
  white-space: nowrap;
}
.news__list { display: flex; flex-direction: column; align-items: flex-start; gap: .27234rem; z-index: 1; }
.news__item { width: 4.97382rem; }
.news__item > a, .news__item > div { display: flex; flex-direction: column; align-items: flex-start; gap: .15767rem; }
.news__meta { display: flex; align-items: center; gap: .34401rem; }
.news__meta time { font-weight: 400; font-size: .23rem; line-height: .37rem; color: var(--c-navy); white-space: nowrap; }
.news__tag {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: .02867rem .15767rem;
  border: .01433rem solid var(--c-navy);
  font-weight: 400;
  font-size: .23rem;
  line-height: .37rem;
  letter-spacing: .0161rem;
  color: var(--c-navy);
  white-space: nowrap;
}
.news__title { font-weight: 600; font-size: .30rem; line-height: .43001rem; color: var(--c-navy); white-space: nowrap; }
.news__line { position: relative; display: block; width: 10.20rem; height: 0; }
.news__line::before {
  content: "";
  position: absolute;
  left: 0; right: 0;
  top: -.005rem;
  height: .01rem;
  background: var(--c-navy);
}

/* ==========================================================================
   FOOTER  (Figma 223:60850 / 1440 x 871.131)
   ========================================================================== */
.ft {
  position: relative;
  width: 100%;
  padding: .60rem .10rem 1.10rem;
  background: var(--c-navy);
  display: flex;
  align-items: center;
  justify-content: center;
}
.ft__inner { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: .65rem; }
.ft__top { position: relative; display: flex; gap: 1.72rem; align-items: flex-start; }

.ft__brand { display: flex; flex-direction: column; align-items: flex-start; gap: .33072rem; }
.ft__logo { width: 1.76383rem; height: 1.21452rem; }
.ft__brand-body { display: flex; flex-direction: column; align-items: flex-start; gap: .39rem; }
.ft__address { font-size: 0; line-height: 0; color: var(--c-white); white-space: nowrap; }
.ft__address p { font-weight: 500; font-size: .20rem; line-height: .40rem; }
.ft__address-name { font-size: .29rem !important; }
/* SNSは公式Instagramのみ（Facebookは廃止） */
.ft__social { display: block; width: .49608rem; height: .49608rem; }
.ft__social img { display: block; width: 100%; height: 100%; }

.ft__nav { display: flex; gap: .48rem; align-items: flex-start; padding-top: .65rem; }
.ft__col { display: flex; flex-direction: column; align-items: flex-start; gap: .21rem; }
.ft__col > li > a { display: flex; align-items: center; gap: .1375rem; font-weight: 500; font-size: .20rem; line-height: .325rem; color: var(--c-white); white-space: nowrap; }
.ft__chev { width: .08917rem; height: .16212rem; transform: rotate(180deg); }
.ft__sublist { display: flex; flex-direction: column; align-items: flex-start; gap: .175rem; margin-top: .1375rem; }
.ft__sublist a { display: flex; align-items: center; gap: .125rem; padding-left: .50rem; font-weight: 500; font-size: .20rem; line-height: normal; letter-spacing: .016rem; color: var(--c-line); white-space: nowrap; }
.ft__dash { display: block; flex: 0 0 auto; width: .1625rem; height: .01875rem; background: var(--c-line); }

.ft__cta { position: absolute; left: 7.07rem; top: 4.08rem; --k: 1.05068; }

.ft__bottom { display: flex; flex-direction: column; align-items: center; gap: .50rem; }
.ft__hr { display: block; width: 12.43rem; height: .01rem; background: var(--c-line); }
.ft__copy { display: flex; flex-direction: column; align-items: center; gap: .07rem; width: 3.73rem; }
.ft__legal { display: flex; align-items: center; gap: .26rem; }
.ft__legal a { font-weight: 500; font-size: .16rem; line-height: .26rem; color: var(--c-line); white-space: nowrap; }
.ft__sep { display: block; width: .01rem; height: .14rem; background: var(--c-line); }
.ft__c { font-weight: 500; font-size: .16rem; line-height: .26rem; color: var(--c-line); white-space: nowrap; }

/* ==========================================================================
   下層ページ共通：FV（Figma 231:83744）／パンくず（231:92777）
   ========================================================================== */
.pfv {
  position: relative;
  width: 100%;
  height: 7.68rem;
  overflow: hidden;
  background: var(--c-navy);
}
.pfv__bg { position: absolute; inset: 0; overflow: hidden; }
.pfv__bg img { position: absolute; left: -4.73%; top: -28.02%; width: 147.15%; height: 146.63%; max-width: none; }
.pfv__veil { position: absolute; left: 0; top: 0; width: 14.40rem; height: 7.68rem; background: var(--c-navy); opacity: .45; }
.pfv__watermark {
  position: absolute;
  /* Figma: left -16 / top 93 / w 223（全下層ページ共通）。height のみページごと */
  left: -.16rem; top: .93rem;
  width: 2.23rem; height: 7.30rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pfv__watermark p {
  flex: none;
  transform: rotate(90deg);
  font-family: var(--en);
  font-weight: 800;
  font-size: 1.69716rem;
  line-height: 2.22753rem;
  letter-spacing: .050915rem;
  color: var(--c-bgtext);
  opacity: .15;
  white-space: nowrap;
}
.pfv__title {
  position: absolute;
  left: .28rem; top: 4.805rem;
  padding-left: .45657rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  color: var(--c-white);
  white-space: nowrap;
}
.pfv__en {
  margin-bottom: -.04566rem;
  font-family: var(--en);
  font-weight: 500;
  font-size: 1.24618rem;
  line-height: 1.63561rem;
  letter-spacing: .049847rem;
}
.pfv__ja { font-weight: 500; font-size: .4462rem; line-height: .81481rem; letter-spacing: .02231rem; }

.pfv-wrap { position: relative; height: 7.68rem; z-index: 1; }
.crumb {
  position: absolute;
  left: 1.20rem;
  top: 7.37rem;
  width: 13.20rem;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: .10957rem 0;
  background: linear-gradient(to right, #07193f, #023f7b);
}
.crumb ol { display: flex; align-items: center; gap: .15066rem; padding: 0 .27394rem; }
.crumb li { display: flex; align-items: center; gap: .15066rem; }
.crumb li img { width: .0732843rem; height: .133236rem; transform: rotate(180deg); }
.crumb a, .crumb span {
  font-family: var(--en);
  font-weight: 500;
  font-size: .21915rem;
  line-height: .35612rem;
  letter-spacing: .024106rem;
  color: var(--c-white);
  white-space: nowrap;
}

/* ==========================================================================
   PC_サービス 本文  (Figma 231:83859)
   ========================================================================== */
.svc {
  position: relative;
  width: 100%;
  /* min-height: 67.04162rem; 撤去: CMS可変 */
  padding: 1.00rem 0 1.0202rem;
  overflow: hidden;
  background: var(--c-white);
}
.svc__dots {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 100%;
  background-image:
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem),
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem);
  background-size: .24rem .542356rem;
  background-position: .065rem .2638rem, -.055rem .5350rem;
}
.svc__inner { position: relative; margin: 0 auto; width: 11rem; }

.svc__lead { display: flex; flex-direction: column; align-items: flex-start; gap: .15rem; color: var(--c-navy); }
.svc__lead-h { margin: 0; font-weight: 600; font-size: .36rem; line-height: .57rem; white-space: nowrap; }
.svc__lead-p { width: 100%; font-weight: 400; font-size: .18rem; line-height: .32rem; }

/* --- PC_サービス 本文ブロック --- */
.svc-b { position: relative; width: 11rem; }
.svc-b--reason  { margin-top: .55rem; }
.svc-b--why     { margin-top: .69rem; }
.svc-b--flow    { margin-top: .68rem; }
.svc-b--machine { margin-top: .69078rem; }
.svc-b--mean    { margin-top: .68999rem; }
.svc__cta       { position: relative; display: flex; margin: .69531rem auto 0; --k: 1.27189; }

.svc-h { display: flex; gap: .18rem; align-items: center; margin: 0; }
.svc-h__bar { align-self: stretch; flex: 0 0 auto; width: .15rem; background: var(--c-gold); }
.svc-h__bar--1 { align-self: auto; height: .71rem; }
.svc-h__t { font-weight: 600; font-size: .36rem; line-height: .57rem; color: var(--c-navy); white-space: nowrap; }

.svc-reason { display: flex; flex-direction: column; align-items: center; gap: .37rem; width: 100%; margin-top: .22rem; }

/* ベン図（サービスページ版 393:215422） */
.svenn { position: relative; width: 5.26rem; height: 8.02223rem; }
.svenn__ring { position: absolute; left: .40626rem; top: 1.78726rem; width: 4.49325rem; height: 4.49325rem; }
.svenn__logo { position: absolute; left: 1.8815rem; top: 3.2698rem; width: 1.54338rem; height: 1.06273rem; }
.svenn__core-txt {
  position: absolute;
  left: calc(50% + .0257rem); top: 4.4062rem;
  transform: translateX(-50%);
  font-weight: 600;
  font-size: .23264rem;
  line-height: .30534rem;
  color: var(--c-white);
  text-align: center;
  white-space: nowrap;
}
.svenn__node { position: absolute; width: 1.60843rem; height: 1.60843rem; }
.svenn__node > img { position: absolute; left: -.34041rem; top: -.34041rem; width: 2.28926rem; height: 2.28926rem; }
.svenn__txt { position: absolute; display: flex; flex-direction: column; align-items: center; color: var(--c-white); text-align: center; }
.svenn__name { font-weight: 700; font-size: .35054rem; line-height: .46009rem; width: 100%; }
.svenn__sub  { font-weight: 700; font-size: .19373rem; line-height: .25428rem; width: 100%; }
.svenn__node--a { left: 1.84709rem; top: 1.11315rem; }
.svenn__node--a .svenn__txt { left: .24636rem; top: .49106rem; width: 1.14603rem; }
.svenn__node--b { left: .30855rem; top: 4.98417rem; width: 1.76313rem; }
.svenn__node--b > img { left: -.26187rem; top: -.34041rem; }
.svenn__node--b .svenn__txt { left: 0; top: .24978rem; width: 1.76313rem; }
.svenn__node--c { left: 3.33521rem; top: 4.98417rem; }
.svenn__node--c .svenn__txt { left: .23054rem; top: .45845rem; width: 1.13134rem; }
.svenn__note {
  position: absolute;
  font-weight: 400;
  font-size: .23508rem;
  line-height: .32324rem;
  color: var(--c-navy);
  white-space: nowrap;
}
.svenn__note--top   { left: 4.85rem; top: .40rem; transform: translateX(-50%); text-align: center; }
.svenn__note--left  { left: -.99rem; top: 7.0525rem; }
.svenn__note--right { left: 6.69rem; top: 7.0525rem; transform: translateX(-100%); text-align: right; }

/* 写真＋テキストの2カラム */
.svc-media { display: flex; gap: .32rem; align-items: flex-start; justify-content: center; }
.svc-media__img { position: relative; flex: 0 0 auto; width: 4.27rem; height: 3.07rem; overflow: hidden; }
.svc-media__img img { position: absolute; max-width: none; }
.svc-media__img--reason img { left: -4.07%; top: -15.8%; width: 128.9%; height: 123.63%; }
.svc-media__img--m1 img { left: -13.88%; top: -3.97%; width: 127.69%; height: 107.73%; }
.svc-media__img--m2 img { left: -31.26%; top: -20.39%; width: 143.82%; height: 128.97%; }
.svc-media__img--m3 { height: 3.72rem; }
.svc-media__img--m3 img { left: -62.7%; top: -20.83%; width: 204.46%; height: 141.67%; }
.svc-media__txt { display: flex; flex-direction: column; align-items: flex-start; gap: .10rem; width: 6.41rem; color: var(--c-navy); }
.svc-media__txt--reason { width: 6.31rem; }
.svc-media__txt--m3 { gap: .26rem; }
.svc-media__grp { display: flex; flex-direction: column; align-items: flex-start; gap: .10rem; width: 100%; }
.svc-media__h { font-weight: 700; font-size: .23rem; line-height: .32rem; white-space: nowrap; }
.svc-media__p { width: 100%; font-weight: 400; font-size: .18rem; line-height: .32rem; }
.svc-media__p b, .svc-why__lead b { font-weight: 700; }
.svc-media__list { width: 100%; font-weight: 700; font-size: .18rem; line-height: .32rem; }
.svc-media__dash { letter-spacing: .0528rem; }

/* なぜ、男性にピラティスか */
.svc-why { display: flex; flex-direction: column; align-items: flex-start; gap: .25rem; width: 100%; margin-top: .22rem; }
.svc-why__lead { display: flex; flex-direction: column; align-items: flex-start; gap: .10rem; width: 100%; font-weight: 400; font-size: .18rem; line-height: .32rem; color: var(--c-navy); }
.svc-why__note { font-weight: 400; font-size: .18rem; line-height: .32rem; color: var(--c-navy); }
.svc-why__u { font-weight: 700; font-size: .23rem; text-decoration: underline; text-underline-offset: .04rem; }

/* サービスページの表 */
/* Figma のストロークは内側揃えでレイアウト高に影響しないので border ではなく inset shadow */
/* 外枠：inset box-shadow はセルの背景に隠れてしまうので、セルの上に重ねて描く */
/* 外枠：セルの上に重ねて描く。線幅を 2px にして 0.5px 内側へ食い込ませ、
   デバイスピクセル丸めで本体との間に 1px の隙間が出るのを防ぐ（外側の端は Figma と同じ） */
.stbl { position: relative; width: fit-content; }
.stbl::after {
  content: "";
  position: absolute;
  /* Figma のストロークは 1.5px を境界線の上に中央揃えで描いている */
  /* 同上。枠は必ずセルに重ねて描く（外に出すと丸めで隙間が出る） */
  inset: 0;
  border: .015rem solid var(--c-navy);
  pointer-events: none;
}
.stbl__row { display: flex; align-items: stretch; }
.stbl__c {
  display: flex;
  align-items: center;
  padding: .165rem .135rem;
  background: #fff;
  font-weight: 400;
  font-size: .18rem;
  line-height: .24rem;
  color: var(--c-navy);
  /* レイアウトは透明 border で確保し、線は境界の上に重ねて描く（Figma のストロークと同じ位置） */
  position: relative;
  border-right: .015rem solid transparent;
  border-bottom: .015rem solid transparent;
}
.stbl__c::after {
  content: ""; position: absolute; z-index: 3; pointer-events: none;
  top: 0; bottom: -.015rem; right: -.0074rem; width: .01rem;
  background: var(--c-line);
}
.stbl__c::before {
  content: ""; position: absolute; z-index: 3; pointer-events: none;
  left: 0; right: -.0074rem; bottom: -.0067rem; height: .01rem;
  background: var(--c-line);
}
.stbl__c--top { align-items: flex-start; }
.stbl__c--h { background: var(--c-navy); color: var(--c-white); font-weight: 600; border-bottom: 0; }
.stbl__c--h::after { background: #fff; bottom: 0; }   /* ヘッダーは下罫が無いので下にはみ出させない */
.stbl__c--h::before { content: none; }
.stbl__c--label { background: var(--c-bgtext); font-weight: 600; }
.stbl__row--head .stbl__c:last-child, .stbl__row .stbl__c:last-child { border-right: 0; }
.stbl__row--head .stbl__c:last-child::after, .stbl__row .stbl__c:last-child::after { content: none; }
.stbl__row--last .stbl__c { border-bottom: 0; }
.stbl__row--last .stbl__c::before { content: none; }

.stbl--why .stbl__c:nth-child(1) { width: 1.72rem; }
.stbl--why .stbl__c:nth-child(2) { width: 3.75rem; }
.stbl--why .stbl__c:nth-child(3) { width: 3.70rem; }
.stbl--why .stbl__row--head .stbl__c { height: .57rem; }
.stbl--why .stbl__row:not(.stbl__row--head) .stbl__c { height: .81rem; }

.stbl--machine { width: 11rem; }
.stbl--machine .stbl__c:nth-child(1) { width: 1.97rem; }
.stbl--machine .stbl__c:nth-child(2) { width: 1.25rem; }
.stbl--machine .stbl__c:nth-child(3) { width: 7.78rem; }
.stbl--machine .stbl__row--head .stbl__c { height: .57rem; }
.stbl--machine .stbl__row:not(.stbl__row--head) .stbl__c { height: .71rem; }
.stbl--machine .stbl__c--num { font-weight: 600; }

.stbl--cmp .stbl__c:nth-child(1) { width: 1.70rem; }
.stbl--cmp .stbl__c:nth-child(2) { width: 2.79rem; white-space: nowrap; }  /* Figma は1行（パディングを少しはみ出す） */
.stbl--cmp .stbl__c:nth-child(3) { width: 2.58rem; }
.stbl--cmp .stbl__row--head .stbl__c { height: .57rem; }
.stbl--cmp .stbl__row:not(.stbl__row--head) .stbl__c { height: .585rem; }
.stbl__c--gold { background: var(--c-rec); }   /* 比較表の「当店」列ヘッダー。.stbl--cmp 限定になっていた */
.stbl__c--hl { background: var(--c-hl-bg); color: var(--c-rec); font-weight: 700; border-left: .015rem solid var(--c-gold); }
.stbl__c--hl::before { background: var(--c-gold); }

/* 導入マシンの写真グリッド */
.machine { display: flex; flex-direction: column; align-items: center; gap: .41rem; width: 100%; margin-top: .22rem; }
.mgrid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: .1611111rem .1841270rem;
  width: 8.70rem;
  min-height: 5.77698rem;
}
.mgrid > div { position: relative; overflow: hidden; }
.mgrid > div img { position: absolute; max-width: none; }
.mgrid__a { grid-column: 1; grid-row: 1 / span 2; }
.mgrid__a img { left: -4.52%; top: -10.41%; width: 116.7%; height: 120.76%; }
.mgrid__b { grid-column: 2; grid-row: 1; }
.mgrid__b img { left: -21.35%; top: -22.47%; width: 130.72%; height: 132.14%; }
.mgrid__c { grid-column: 2; grid-row: 2; }
.mgrid__c img { left: -.11%; top: -14.85%; width: 113.69%; height: 114.93%; }

/* 60分／90分の流れ */
.flow { display: flex; gap: .93rem; align-items: flex-start; justify-content: center; width: 100%; margin-top: .22rem; }
.flow__col { display: flex; flex-direction: column; align-items: flex-start; gap: .25rem; }
.flow__title { font-weight: 700; font-size: .30rem; line-height: .32rem; color: var(--c-navy); white-space: nowrap; }
.flow__steps { display: flex; flex-direction: column; align-items: center; width: 3.83rem; }
.flow__arrow {
  display: block;
  width: 0; height: 0;
  border-left: .095rem solid transparent;
  border-right: .095rem solid transparent;
  border-top: .21rem solid var(--c-gray);
}
.fstep {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .08rem;
  width: 100%;
  padding: .20rem .22rem;
  background: var(--c-gray);
  border-radius: .10rem;
}
.fstep__ic { width: .41rem; height: .41747rem; }
.fstep__ic--m { height: .41001rem; }
.fstep__ic--k { height: .45169rem; }
.fstep__b { display: flex; flex-direction: column; align-items: flex-start; gap: .04rem; width: 100%; }
.fstep__b--w { width: 3.39rem; }
.fstep__h { display: flex; align-items: center; gap: .27547rem; font-weight: 700; font-size: .24rem; line-height: .31955rem; color: var(--c-white); white-space: nowrap; }
.fstep__h--2, .fstep__h--3 { gap: .25rem; line-height: .29rem; }
.fstep__min {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: .04rem .07rem;
  background: var(--c-navy);
  font-weight: 700;
  font-size: .16rem;
  line-height: .21487rem;
  color: var(--c-white);
}
.fstep__h--2 .fstep__min, .fstep__h--3 .fstep__min { line-height: .195rem; }
.fstep__p { width: 100%; font-weight: 400; font-size: .18rem; line-height: .26rem; color: var(--c-white); }
.flow__note { width: 100%; margin-top: .20rem; font-weight: 400; font-size: .16rem; line-height: .24rem; color: var(--c-navy); }

/* そもそも男性が…（01/02/03） */
.svc-mean__head { display: flex; flex-direction: column; align-items: flex-start; gap: .22rem; width: 100%; }
.svc-mean__lead { width: 100%; font-weight: 400; font-size: .18rem; line-height: .26rem; color: var(--c-navy); }
.svc-mean__body { display: flex; flex-direction: column; align-items: flex-start; gap: .43rem; width: 100%; margin-top: .29rem; }
.mean { display: flex; flex-direction: column; align-items: flex-start; gap: .27rem; width: 100%; }
.mean__head { display: flex; flex-direction: column; align-items: flex-start; gap: .14rem; }
.mean__num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: .55216rem;
  height: .50902rem;
  font-family: "Homenaje", var(--en);
  font-size: .72216rem;
  line-height: .94783rem;
  letter-spacing: .007222rem;
  color: var(--c-gold);
}
.mean__title { font-weight: 600; font-size: .32rem; line-height: .38rem; color: var(--c-navy); white-space: nowrap; }
/* Figma では高さ0のパスにストロークが乗るのでレイアウト高は0 */
.mean__rule { position: relative; display: block; width: 1.63rem; height: 0; }
.mean__rule::before { content: ""; position: absolute; left: 0; right: 0; top: -.02rem; height: .04rem; background: var(--c-gold); }

/* ==========================================================================
   PC_料金  (Figma 265:87145 / 1440 x 7311.770)
   ========================================================================== */
.pfv--price .pfv__bg img { left: -37.3%; top: -167.99%; width: 224.17%; height: 282.19%; }
.pfv--price .pfv__watermark { height: 5.10rem; }

.pr {
  position: relative;
  width: 100%;
  /* min-height: 73.1177rem; 撤去: CMS可変 */
  padding: 1.00rem 0 1.02007rem;
  overflow: hidden;
  background: var(--c-white);
}
.pr__dots {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 100%;
  background-image:
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem),
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem);
  background-size: .24rem .542356rem;
  background-position: .065rem .2638rem, -.055rem .5350rem;
}
.pr__inner { position: relative; margin: 0 auto; width: 11rem; }
.pr__banner { position: absolute; left: .69262rem; top: 0; }
/* 料金ページ側だけ通常フローに（恵比寿ページでは絶対配置のまま使う） */
.pr__inner > .pr__banner { position: relative; display: block; top: auto; left: auto; margin-left: .69262rem; }
.pr__plans  { position: relative; margin-top: .77rem; width: 11rem; }
.pr__plans .plan { margin-top: .42rem; }
.pr__plans .plan + .plan { margin-top: .42rem; }
.pr-b { position: relative; width: 11rem; }
.pr-b--kaisu  { margin-top: .7028rem; }
.pr-b--hikaku { margin-top: .69rem; }
.pr-b--faq    { margin-top: .69rem; }
.pr__cta      { position: relative; display: flex; margin: .61027rem auto 0; --k: 1.27189; }

.pr-kaisu__head { display: flex; flex-direction: column; align-items: flex-start; gap: .22rem; width: 100%; }
.pr-kaisu__lead { width: 100%; font-weight: 400; font-size: .18rem; line-height: .26rem; color: var(--c-navy); }
.pr-b--kaisu .stbl { margin-top: .29rem; }
.pr-b--hikaku .stbl, .pr-b--faq .pfaq { margin-top: .22rem; }

.stbl--kaisu .stbl__c:nth-child(1) { width: 3.32rem; }
.stbl--kaisu .stbl__c:nth-child(2) { width: 1.57rem; }
.stbl--kaisu .stbl__c:nth-child(3) { width: 4.56rem; }
.stbl--kaisu .stbl__row--head .stbl__c { height: .57rem; }
.stbl--kaisu .stbl__row:not(.stbl__row--head) .stbl__c { height: .83rem; }
.stbl--kaisu .stbl__row.stbl__row--last .stbl__c { height: .57rem; }

.stbl__c--ctr { justify-content: center; }
.stbl__c--mark { font-size: .33rem; padding-left: 0; padding-right: 0; }
.stbl__c--hl2 { background: var(--c-hl-bg); color: var(--c-rec); }
.stbl__c--hl2::before { background: var(--c-gold); }
.stbl--hikaku .stbl__c:nth-child(1) { width: 1.72rem; }
.stbl--hikaku .stbl__c:nth-child(2) { width: 1.56rem; }
.stbl--hikaku .stbl__c:nth-child(3) { width: 1.90rem; }
.stbl--hikaku .stbl__c:nth-child(4) { width: 2.10rem; }
.stbl--hikaku .stbl__c:nth-child(5) { width: 1.50rem; }
.stbl--hikaku .stbl__c--span3 { width: 5.56rem !important; }
.stbl--hikaku .stbl__c--span3 + .stbl__c { width: 1.50rem !important; white-space: nowrap; }
.stbl--hikaku .stbl__row--head .stbl__c { height: .57rem; }
.stbl--hikaku .stbl__row:not(.stbl__row--head) .stbl__c { height: .83rem; }
.stbl--hikaku .stbl__row:nth-child(2) .stbl__c { height: .825rem; }
.stbl--hikaku .stbl__row:nth-child(5) .stbl__c { height: .85rem; }

/* 料金ページのFAQ（Q=紺丸／A=紺パネル） */
.pfaq { display: flex; flex-direction: column; align-items: flex-start; width: 10.20rem; }
/* ダミー文字(###)の字幅が Figma と違い行数がずれるので Figma の実値を下限にする。
   件数や文章が増えた場合はここから伸びる */
/* 高さは Figma の実値を「下限」として各ページ側で指定する。
   件数や文章が増えたぶんはここから伸びる */
.pfaq__list { display: flex; flex-direction: column; align-items: flex-start; gap: .33529rem; width: 10.20rem; }
/* .pr-b--faq .pfaq__list min-height 撤去: CMS可変 */
.pfaq__item { display: flex; flex-direction: column; align-items: flex-start; gap: .30846rem; width: 100%; }
.pfaq__line { position: relative; display: block; width: 10.20rem; height: 0; }
.pfaq__line::before { content: ""; position: absolute; left: 0; right: 0; top: -.005rem; height: .01rem; background: var(--c-navy); }
.pfaq__q { display: flex; align-items: center; gap: .17435rem; padding-left: .16094rem; margin: 0; background: none; border: 0; font: inherit; color: inherit; cursor: pointer; text-align: left; }
.pfaq__q-inner { display: flex; align-items: center; gap: .38893rem; width: 9.17rem; }
.pfaq__mark {
  position: relative;
  flex: 0 0 auto;
  display: block;
  width: .82078rem;
  height: .82078rem;
  border-radius: 50%;
  background: var(--c-navy);
  font-family: var(--en);
  font-weight: 500;
  font-size: .49783rem;
  line-height: .65341rem;
  letter-spacing: .019913rem;
  color: var(--c-white);
  text-indent: .2189rem;
  padding-top: .0821rem;
  white-space: nowrap;
}
.pfaq__q-text { font-weight: 400; font-size: .30rem; line-height: .40234rem; color: var(--c-navy); white-space: nowrap; }
.pfaq__chevron { flex: 0 0 auto; width: .299017rem; height: .171165rem; transition: transform .3s ease; }
.pfaq__item:not(.is-open) .pfaq__chevron { transform: rotate(180deg); }
.pfaq__a { width: 5.15rem; padding-left: .79128rem; }
.pfaq__item:not(.is-open) .pfaq__a { display: none; }
.pfaq__a-panel { display: flex; align-items: center; gap: .40234rem; width: 7.90rem; padding: .20472rem .30708rem; background: var(--c-navy); color: var(--c-white); }
.pfaq__mark--a { width: auto; height: auto; border-radius: 0; background: none; padding-top: 0; text-indent: 0; font-size: .55876rem; line-height: .73338rem; letter-spacing: .022351rem; }
.pfaq__a-text { width: 6.41rem; font-weight: 400; font-size: .24rem; line-height: .3685rem; }
.pr-faq__more { margin-top: .48rem; margin-left: 2.68755rem; }

/* ==========================================================================
   PC_店舗  (Figma 268:103110 / 1440 x 6555.865)
   ========================================================================== */
.pfv--studio .pfv__bg img { left: -2.26%; top: -35.79%; width: 115.8%; height: 142.19%; }
.pfv--studio .pfv__watermark { height: 6.64rem; }

.sp {
  position: relative;
  width: 100%;
  /* min-height: 65.55865rem; 撤去: CMS可変 */
  padding: 1.00rem 0 1.02017rem;
  overflow: hidden;
  background: var(--c-white);
}
.sp__dots {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 100%;
  background-image:
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem),
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem);
  background-size: .24rem .542356rem;
  background-position: .065rem .2638rem, -.055rem .5350rem;
}
.sp__inner { position: relative; margin: 0 auto; width: 11rem; }
.sp-b { position: relative; width: 11rem; }
.sp-b--list   { margin-top: .69rem; }
.sp-b--common { margin-top: .70687rem; }
.sp-b--erabi  { margin-top: .69rem; }
.sp-b--faq    { margin-top: .69rem; }
.sp__cta      { position: relative; display: flex; margin: .69rem auto 0; --k: 1.27189; }

/* 全店舗マップ */
.smap { display: flex; flex-direction: column; align-items: center; gap: .29rem; margin-top: .29rem; }
.smap__near { display: flex; align-items: center; gap: .14571rem; }
.smap__near { text-decoration: none; transition: opacity .2s; }
.smap__near:hover { opacity: .7; }
.smap__near img { width: .36429rem; height: .36429rem; }
.smap__near span {
  display: flex;
  align-items: center;
  height: .51rem;
  font-weight: 600;
  font-size: .36rem;
  line-height: .765rem;
  color: var(--c-navy);
  white-space: nowrap;
}
.smap__box { width: 11rem; height: 5.86rem; background: #c4c4c4; overflow: hidden; }
.smap__box iframe { display: block; width: 100%; height: 100%; border: 0; }

/* 店舗一覧 */
.slist { margin-top: .22rem; }
.stabs { display: flex; flex-wrap: wrap; gap: .22rem .36rem; align-items: flex-start; justify-content: center; width: 11rem; }
.stab {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .315rem;
  width: 2.4864rem;
  height: .555rem;   /* Figma 55.5px（py9 + 内側31.5 + border3x2） */
  background: var(--c-white);
  border: .03rem solid var(--c-rec);
  font-weight: 500;
  font-size: .27rem;
  line-height: .39rem;
  letter-spacing: .0216rem;
  color: var(--c-rec);
  white-space: nowrap;
}
.stab > * { flex: 0 0 auto; }
/* マウスオンで色を反転（枠色を地に、文字と矢印を白に） */
a.stab { transition: background-color .2s ease, color .2s ease; }
a.stab:hover, a.stab:focus-visible {
  background: var(--c-rec);
  color: var(--c-white);
}
a.stab img { transition: filter .2s ease; }
a.stab:hover img, a.stab:focus-visible img { filter: brightness(0) invert(1); }
.stab img { width: .213742rem; height: .129166rem; transform: rotate(90deg); }

.sregions { display: flex; flex-direction: column; align-items: center; gap: .885rem; margin-top: .375rem; }
/* 店舗が0件のエリアはリンクにならない（クリックしても行き先が無いため） */
.stab--off { border-color: #d5cfc3; color: #b6ada0; cursor: default; }
.stab--off img { opacity: .4; }

.sregion { display: flex; flex-direction: column; align-items: center; gap: .375rem; scroll-margin-top: 1.10rem; }
.sregion__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .03rem;
  width: 11rem;
  padding: .18rem 0;
  background: var(--c-navy);
}
.sregion__en {
  font-family: var(--en);
  font-weight: 500;
  font-size: .48698rem;
  line-height: .58836rem;
  letter-spacing: .019479rem;
  color: var(--c-gold);
  white-space: nowrap;
}
.sregion__ja {
  width: 5.235rem;
  font-weight: 500;
  font-size: .19479rem;
  line-height: .2931rem;
  letter-spacing: .00974rem;
  color: var(--c-white);
  text-align: center;
}
.sregion__rows { display: flex; flex-direction: column; align-items: flex-start; gap: .48rem; width: 11.01rem; }   /* 店舗数が3未満でも左揃え */
.sregion__row { display: flex; gap: .18rem; align-items: flex-start; }

.scard { display: flex; flex-direction: column; align-items: flex-start; gap: .17rem; width: 3.55rem; }
.scard__img { position: relative; width: 3.55rem; height: 2.30rem; overflow: hidden; }
.scard__img img { position: absolute; left: -11.14%; top: -16.23%; width: 147.68%; height: 132.57%; max-width: none; }
.scard__body { display: flex; flex-direction: column; align-items: flex-start; gap: .09rem; width: 3.55rem; }
.scard__name { display: flex; align-items: center; gap: .165rem; width: 100%; }
.scard__pref {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: .01346rem .09419rem;
  border: .01346rem solid var(--c-navy);
  font-weight: 400;
  font-size: .18rem;
  line-height: .26912rem;
  letter-spacing: .0144rem;
  color: var(--c-navy);
  white-space: nowrap;
}
.scard__store { font-weight: 600; font-size: .28rem; line-height: .39rem; color: var(--c-rec); white-space: nowrap; }
.scard__detail { display: flex; flex-direction: column; align-items: center; gap: .11rem; width: 3.55rem; }
.scard__info { display: flex; flex-direction: column; align-items: flex-start; gap: .05rem; width: 3.55rem; }
.scard__addr { width: 3.55rem; font-weight: 400; font-size: .18rem; line-height: .28rem; color: var(--c-navy); }
.scard__tel { display: flex; align-items: center; gap: .075rem; }
.scard__tel img { width: .21rem; height: .21rem; }
.scard__tel a { font-weight: 400; font-size: .18rem; line-height: .39rem; color: var(--c-navy); white-space: nowrap; }
.scard__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: .06rem .435rem;
  border-radius: .075rem;
  font-weight: 500;
  font-size: .20rem;
  line-height: .39rem;
  letter-spacing: .008rem;
  color: var(--c-white);
  white-space: nowrap;
}
.scard__btn--detail { background: var(--grad-btn); }
.scard__btn--reserve { width: 2.32rem; background: var(--c-rec); }

/* 全店共通のこと */
.scommon { display: flex; gap: .57rem; align-items: flex-start; justify-content: center; margin-top: .22rem; }
.scommon__txt { display: flex; flex-direction: column; align-items: flex-start; gap: .15rem; width: 4.84rem; color: var(--c-navy); }
.scommon__grp { display: flex; flex-direction: column; align-items: flex-start; gap: .05rem; width: 100%; }
.scommon__h { font-weight: 700; font-size: .23rem; line-height: .32rem; white-space: nowrap; }
.scommon__p { width: 100%; font-weight: 400; font-size: .18rem; line-height: .28rem; }
.scommon__img { position: relative; flex: 0 0 auto; width: 5.59rem; height: 3.89rem; overflow: hidden; }
.scommon__img img { position: absolute; left: -15.66%; top: -15.95%; width: 117.45%; height: 116.19%; max-width: none; }

/* 店舗の選び方の表 */
.stbl--erabi { margin-top: .29rem; }
.stbl--erabi .stbl__c:nth-child(1) { width: 1.725rem; }
.stbl--erabi .stbl__c:nth-child(2) { width: 8.17rem; }
.stbl--erabi .stbl__row--head .stbl__c { height: .57rem; }
.stbl--erabi .stbl__row:not(.stbl__row--head) .stbl__c { height: .585rem; }
.stbl--erabi .stbl__row.stbl__row--tall .stbl__c { height: .825rem; align-items: flex-start; }
.stbl--erabi .stbl__row.stbl__row--last .stbl__c { height: .57rem; }

/* 店舗ページのFAQ */
.sp-faq { margin-top: .22rem; }
/* .sp-faq__list min-height 撤去: CMS可変 */

/* ==========================================================================
   PC_インストラクター  (Figma 268:118392 / 1440 x 5359.540)
   ========================================================================== */
.pfv--inst .pfv__bg img { left: -3.47%; top: .03%; width: 121.53%; height: 145.02%; }
.pfv--inst .pfv__watermark { height: 11.38rem; }

.ip {
  position: relative;
  width: 100%;
  /* 中身が増えても切れないよう通常フロー化（上下の余白は元の値） */
  /* min-height: 53.5954rem; 撤去: CMS可変 */
  padding: 1.00rem 0 1.02rem;
  overflow: hidden;
  background: var(--c-white);
}
.ip__dots {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 100%;
  background-image:
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem),
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem);
  background-size: .24rem .542356rem;
  background-position: .065rem .2638rem, -.055rem .5350rem;
}
.ip__inner { position: relative; margin: 0 auto; width: 11rem; }
.ip-b { position: relative; width: 11rem; }
.ip-b--qual  { margin-top: .7322rem; }
.ip-b--hire  { margin-top: .69rem; }
.ip-b--rel   { margin-top: .69rem; }
.ip__cta     { position: relative; display: flex; margin: .69rem auto 0; --k: 1.27189; }

/* 在籍インストラクター */
.iprof { margin-top: .45rem; }
.iprof__rows { display: flex; flex-direction: column; align-items: flex-start; gap: .49rem; }
.iprof__row { display: flex; gap: .40rem; align-items: flex-start; }
.inst--light .inst__info { color: var(--c-navy); }
.inst--light .inst__line::before { background: var(--c-navy); }
.inst--light .inst__tags li { background: var(--c-navy); color: var(--c-white); }

.ipager { position: relative; display: flex; flex-direction: column; align-items: center; margin-top: .78rem; }
.ipager__nums { display: flex; gap: .3125rem; align-items: flex-start; }
.ipager__n {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: .04808rem .09615rem;
  background: #fff;
  border: .02404rem solid var(--c-line);
  font-weight: 400;
  font-size: .24038rem;
  line-height: .28846rem;
  color: var(--c-line);
}
.ipager__n.is-current { border-color: var(--c-navy); color: var(--c-navy); }
.ipager__next {
  position: absolute;
  left: 8.86rem; top: .1222rem;   /* Figma: NEXT の罫線左端 x=1056（表左端 170 から 886） */
  display: flex;
  align-items: center;
  gap: .26442rem;
}
.ipager__next img { width: .52884rem; height: .07211rem; }
.ipager__next span { font-weight: 400; font-size: .24038rem; line-height: .28846rem; color: var(--c-navy); white-space: nowrap; }

/* 保有資格の表 */
.stbl--qual { margin-top: .29rem; }
.stbl--qual .stbl__c:nth-child(1) { width: 1.725rem; }
.stbl--qual .stbl__c:nth-child(2) { width: 6.06rem; }
.stbl--qual .stbl__row--head .stbl__c { height: .57rem; }
.stbl--qual .stbl__row:not(.stbl__row--head) .stbl__c { height: .59rem; }
.stbl--qual .stbl__row:nth-child(3) .stbl__c { height: .585rem; }

/* 全てできるが採用条件 */
.ihire { display: flex; gap: .46rem; align-items: flex-start; justify-content: center; margin-top: .22rem; }
.ihire__txt { display: flex; flex-direction: column; align-items: flex-start; gap: .15rem; width: 4.84rem; color: var(--c-navy); }
.ihire__txt > .scommon__p { width: 100%; }
.ihire__img { position: relative; flex: 0 0 auto; width: 5.59rem; height: 3.89rem; overflow: hidden; }
.ihire__img img { position: absolute; left: -30.81%; top: -14.63%; width: 138.83%; height: 128.85%; max-width: none; }

/* 関連ページ */
.rels { display: flex; flex-direction: column; align-items: flex-start; gap: .45rem; margin-top: .29rem; }
.rel {
  position: relative;
  display: flex;
  align-items: center;
  width: 11rem;
  height: 3.09rem;
  background: #fff;
  overflow: hidden;
  filter: drop-shadow(0 .10rem .0875rem rgba(0,0,0,.1));
}
.rel--left { height: 3.47rem; }
.rel__photo { position: absolute; top: 0; width: 5.25rem; height: 100%; overflow: hidden; }
.rel__photo img { position: absolute; max-width: none; }
.rel--right .rel__photo {
  right: 0;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 25%);
          mask-image: linear-gradient(to right, transparent 0%, #000 25%);
}
.rel--left .rel__photo {
  left: 0;
  -webkit-mask-image: linear-gradient(to left, transparent 5.71%, #000 42.47%);
          mask-image: linear-gradient(to left, transparent 5.71%, #000 42.47%);
}
/* 写真の拡大率・位置はマスク構造が MCP から正しく取れないため、カンプとの相関で実測フィット */
.rel:nth-child(1) .rel__photo img { left: -.43rem;  top: -.51rem;  width: 7.60rem;  height: 5.40rem; }
.rel:nth-child(2) .rel__photo img { left: -1.11rem; top: -.89rem;  width: 7.80rem;  height: 5.20rem; }
.rel:nth-child(3) .rel__photo img { left: -2.67rem; top: -3.11rem; width: 10.20rem; height: 6.20rem; }

/* MCP は 1・3枚目のフォント/余白を約2.1倍で報告するため、
   同一コンポーネントである2枚目の実値に揃える */
.rel__body { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: .20rem; width: 4.875rem; z-index: 1; }
.rel--right .rel__body { margin-left: .825rem; }
.rel--left  .rel__body { margin-left: 5.85rem; }
.rel__head { display: flex; flex-direction: column; align-items: flex-start; gap: .225rem; }
.rel__ttl { display: flex; flex-direction: column; align-items: flex-start; gap: .025rem; }
.rel__en {
  font-family: var(--en);
  font-weight: 500;
  font-size: .1826rem;
  line-height: .27926rem;
  letter-spacing: .014608rem;
  color: #d2b981;
  white-space: nowrap;
}
.rel__title {
  display: flex;
  align-items: center;
  height: .475rem;
  font-weight: 500;
  font-size: .425rem;
  line-height: .65rem;
  color: var(--c-navy);
  white-space: nowrap;
}
.rel__rule { position: relative; display: block; width: .825rem; height: 0; }
.rel__rule::before { content: ""; position: absolute; left: 0; right: 0; top: -.025rem; height: .05rem; background: var(--c-gold); }
.rel__desc { width: 4.55rem; font-weight: 400; font-size: .25rem; line-height: .375rem; color: var(--c-navy); }
.rel__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .225rem;
  padding: .125rem .30rem;
  background: var(--c-navy);
}
.rel__btn span {
  display: flex;
  align-items: center;
  height: .40rem;
  font-weight: 500;
  font-size: .225rem;
  line-height: .66857rem;
  letter-spacing: .02025rem;
  color: var(--c-white);
  white-space: nowrap;
}
.rel__btn img { width: .55rem; height: .075rem; }

/* 1・3枚目は見出し・本文だけ約0.826倍で組まれている（カンプ実測） */
.rel--right .rel__en    { height: .2307rem; display: flex; align-items: center; }
.rel--right .rel__title { font-size: .351rem;  line-height: .537rem; height: .392rem; position: relative; top: .075rem; }
.rel--right .rel__body  { top: .03rem; }
.rel--right .rel__rule  { margin-top: .05rem; margin-bottom: -.05rem; }
.rel--right .rel__desc  { font-size: .2065rem; line-height: .31rem; }

/* ==========================================================================
   PC_よくある質問  (Figma 271:134090 / 1440 x 6014.065)
   ========================================================================== */
.pfv--faq .pfv__bg img { left: -10.09%; top: -.01%; width: 117.24%; height: 143.42%; }
.pfv--faq .pfv__watermark { height: 3.37rem; }

.fq {
  position: relative;
  width: 100%;
  /* min-height: 60.14065rem; 撤去: CMS可変 */
  padding: 1.00rem 0 1.02013rem;
  overflow: hidden;
  background: var(--c-white);
}
.fq__dots {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 100%;
  background-image:
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem),
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem);
  background-size: .24rem .542356rem;
  background-position: .065rem .2638rem, -.055rem .5350rem;
}
.fq__inner { position: relative; margin: 0 auto; width: 11rem; }
.fq-b { position: relative; width: 11rem; }
.fq-b--g2  { margin-top: .69rem; }
.fq-b--g3  { margin-top: .69016rem; }
.fq-b--rel { margin-top: .69rem; }
.fq__cta   { position: relative; display: flex; margin: .69rem auto 0; --k: 1.27189; }
.fq-faq { margin-top: .29rem; }
.fq-b--rel .rels { margin-top: .29rem; }

/* ==========================================================================
   PC_お知らせ  (Figma 271:149638 / 1440 x 2228.725)
   ========================================================================== */
.pfv--news .pfv__bg img { left: -34.42%; top: -50.58%; width: 172.82%; height: 210.4%; }
.pfv--news .pfv__watermark { height: 5.26rem; }

.nw {
  position: relative;
  width: 100%;
  /* min-height: 22.28725rem; 撤去: CMS可変 */
  padding: 1.00rem 0 1.02017rem;
  overflow: hidden;
  background: var(--c-white);
}
.nw__dots {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 100%;
  background-image:
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem),
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem);
  background-size: .24rem .542356rem;
  background-position: .065rem .2638rem, -.055rem .5350rem;
}
.nw__inner { position: relative; margin: 0 auto; width: 11rem; }
.nw__list { position: relative; margin-left: .40rem; min-height: 6.08109rem; }
.nw-b { position: relative; width: 11rem; }
.nw-b--rel { margin-top: .69rem; }
.nw-b--rel .rels { margin-top: .29rem; }
.nw__cta { position: relative; display: flex; margin: .69rem auto 0; --k: 1.27189; }

/* ==========================================================================
   PC_会社概要  (Figma 276:194835 / 1440 x 1100.354)
   ========================================================================== */
.pfv--company .pfv__bg img { left: 0; top: -33.21%; width: 115.17%; height: 156.56%; }
.pfv--company .pfv__watermark { height: 8.73rem; }

.cmp {
  position: relative;
  width: 100%;
  /* min-height: 11.00354rem; 撤去: CMS可変 */
  padding: 1.00rem 0 .84027rem;
  overflow: hidden;
  background: var(--c-white);
}
.cmp__dots {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 100%;
  background-image:
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem),
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem);
  background-size: .24rem .542356rem;
  background-position: .065rem .2638rem, -.055rem .5350rem;
}
.cmp__inner { position: relative; margin: 0 auto; width: 11rem; }

.cmp__body { position: relative; margin-top: .37rem; display: flex; gap: .75rem; align-items: center; }
.cmp__list { display: flex; flex-direction: column; align-items: flex-start; gap: .13rem; }
.cmp__row { display: flex; flex-direction: column; align-items: flex-start; gap: .08rem; color: var(--c-navy); white-space: nowrap; }
.cmp__k { font-weight: 700; font-size: .22rem; line-height: .26rem; }
.cmp__v { font-weight: 400; font-size: .18rem; line-height: .23rem; }
.cmp__line { position: relative; display: block; width: 5.28rem; height: 0; }
.cmp__line::before { content: ""; position: absolute; left: 0; right: 0; top: -.005rem; height: .01rem; background: var(--c-line); }
.cmp__img { position: relative; flex: 0 0 auto; width: 4.96rem; height: 5.85rem; overflow: hidden; }
.cmp__img img { position: absolute; left: -56%; top: -16.92%; width: 253.37%; height: 124.96%; max-width: none; }

.cmp__links { position: relative; margin-top: .37rem; display: flex; flex-direction: column; align-items: flex-start; gap: .25rem; }

/* ==========================================================================
   規約系ページ共通（プライバシーポリシー／特定商取引法）
   ========================================================================== */
.pfv--privacy .pfv__bg img { left: -16.17%; top: -34.2%; width: 119.08%; height: 139.55%; }
.pfv--privacy .pfv__watermark { height: 7.41rem; }

.doc {
  position: relative;
  width: 100%;
  padding-top: 1.00rem;
  overflow: hidden;
  background: var(--c-white);
}
.doc--privacy { min-height: 16.24rem; padding-bottom: 1.00rem; }
.doc__dots {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 100%;
  background-image:
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem),
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem);
  background-size: .24rem .542356rem;
  background-position: .065rem .2638rem, -.055rem .5350rem;
}
.doc__inner { position: relative; margin: 0 auto; width: 11rem; }
.doc__blk { position: relative; width: 11rem; display: flex; flex-direction: column; align-items: flex-start; gap: .16rem; color: var(--c-navy); }
.doc__h { margin: 0; font-weight: 700; font-size: .28rem; line-height: .26rem; white-space: nowrap; }
.doc__p { width: 11rem; font-weight: 400; font-size: .18rem; line-height: .32rem; color: var(--c-navy); }
.doc__p--solo { position: relative; }
.doc__inner > * + * { margin-top: .44rem; }
.doc__p--right { text-align: right; }

/* --- PC_特定商取引法に基づく表記 (Figma 276:224933) --- */
.pfv--legal .pfv__bg img { left: -7.93%; top: -36.74%; width: 169.81%; height: 157.41%; }
.pfv--legal .pfv__watermark { height: 5.57rem; }
.doc--legal { min-height: 12.65677rem; padding-bottom: .92014rem; }
.doc--legal .doc__inner > * + * { margin-top: 0; }
.doc--legal .lg__list { margin-top: .46rem; }
/* 直上の `.doc__inner > * + * { margin-top:0 }` に上余白を消されるので詳細度を合わせて戻す（Figma: 線の下 44px） */
.doc--legal .lg__more { margin-top: .44rem; }

.lg__title {
  position: relative;
  margin: 0 0 0 .56rem;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 9.88rem;
  height: .74rem;
  background: var(--c-navy);
  font-weight: 600;
  font-size: .36rem;
  line-height: .42rem;
  color: var(--c-white);
  white-space: nowrap;
}
.lg__list { position: relative; width: 11rem; display: flex; flex-direction: column; align-items: center; gap: .19rem; }
.lg__row { display: flex; flex-direction: column; align-items: center; gap: .05rem; color: var(--c-navy); text-align: center; white-space: nowrap; }
.lg__k { font-weight: 700; font-size: .22rem; line-height: .26rem; }
.lg__v { font-weight: 400; font-size: .18rem; line-height: .23rem; }
.lg__line { position: relative; display: block; width: 5.28rem; height: 0; }
.lg__line::before { content: ""; position: absolute; left: 0; right: 0; top: -.005rem; height: .01rem; background: var(--c-line); }
/* .more は inline-flex なので margin:auto では中央に寄らない。ブロック化して幅は中身に合わせる（Figma: 1100枠の中央 x=422.25） */
.lg__more { position: relative; display: flex; width: max-content; margin: .44rem auto 0; }

/* ==========================================================================
   PC_恵比寿店  (Figma 349:234401)
   ========================================================================== */
/* FV は TOP と同じ。店舗名の1行が増えるぶんコピー段が高い (349:234414) */
.fv__brand { display: flex; flex-direction: column; align-items: flex-start; gap: .10rem; }
.fv__copy--ebisu .fv__h1 { margin: 0; }
.fv__copy--ebisu .fv__brand { margin-top: .18515rem; }
.fv__store { font-weight: 400; font-size: .25921rem; line-height: normal; letter-spacing: .01296rem; color: var(--c-gold); white-space: nowrap; }
.fv__cta--ebisu { left: 1.10rem; top: 6.34rem; }

/* 店舗情報 (349:252548) */
.eb-studio {
  position: relative;
  width: 100%;
  /* マシン台数などが増減しても切れないよう通常フロー化 */
  padding: 1.00rem 0 1.02rem;
  overflow: hidden;
  background: var(--c-navy);
  scroll-margin-top: .87rem;
}
.eb-studio__inner { position: relative; margin: 0 auto; width: 11rem; }
.eb-studio__head { position: relative; margin-left: 3.75531rem; width: 3.48937rem; }
.eb-studio__body { position: relative; margin-top: .30rem; width: 11rem; display: flex; flex-direction: column; align-items: center; gap: .74rem; }
.eb-studio__stack { display: flex; flex-direction: column; align-items: center; gap: .52rem; }
.eb-studio__lead { display: flex; flex-direction: column; align-items: center; gap: .15rem; color: var(--c-white); text-align: center; white-space: nowrap; }
.eb-studio__h2 { margin: 0; font-weight: 600; font-size: .43rem; line-height: .57rem; }
.eb-studio__desc { font-weight: 400; font-size: .20rem; line-height: .35433rem; }
.eb-studio__main { display: flex; flex-direction: column; align-items: center; gap: .68rem; }
.eb-studio__info { display: flex; gap: .71rem; align-items: flex-start; justify-content: center; }
.eb-studio__map { flex: 0 0 auto; width: 6.20rem; height: 3.93rem; background: #c4c4c4; overflow: hidden; }
.eb-studio__map iframe { display: block; width: 100%; height: 100%; border: 0; }

.eb-info { display: flex; flex-direction: column; align-items: flex-start; gap: .19rem; }
.eb-info__name { font-weight: 600; font-size: .24rem; line-height: .30rem; color: var(--c-gold); white-space: nowrap; }
.eb-info__dl { display: flex; flex-direction: column; align-items: flex-start; gap: .12rem; margin: 0; }
.eb-info__row { display: flex; gap: .24rem; align-items: center; }
.eb-info__row--top { align-items: flex-start; }
.eb-info__dl dt {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: .80rem;
  padding: .02rem .08rem;
  background: var(--c-white);
  font-weight: 400;
  font-size: .18rem;
  line-height: .26rem;
  color: var(--c-navy);
  white-space: nowrap;
}
.eb-info__dl dd { margin: 0; font-weight: 400; font-size: .18rem; line-height: .26rem; color: var(--c-white); white-space: nowrap; }

.eb-gallery { display: flex; flex-direction: column; align-items: flex-start; gap: .25256rem; }
.eb-gallery__row1 { display: flex; gap: .25256rem; align-items: stretch; }
.eb-gallery__row2 { display: flex; gap: .25324rem; align-items: flex-start; }
.eb-gallery__big { position: relative; width: 7.01137rem; overflow: hidden; }
.eb-gallery__col { display: flex; flex-direction: column; gap: .25256rem; }
.eb-gallery__sm { position: relative; width: 3.73608rem; height: 2.14333rem; overflow: hidden; }
.eb-gallery__md { position: relative; width: 5.37122rem; height: 3.08138rem; overflow: hidden; }
.eb-gallery img { position: absolute; max-width: none; }
.eb-gallery__big img { left: -25.96%; top: -19.4%; width: 188.34%; height: 127.01%; }
.eb-gallery__col .eb-gallery__sm:nth-child(1) img { left: -45.69%; top: -41.54%; width: 162.29%; height: 173.64%; }
.eb-gallery__col .eb-gallery__sm:nth-child(2) img { left: -.1%; top: -.19%; width: 100.1%; height: 107.1%; }
.eb-gallery__row2 .eb-gallery__md:nth-child(1) img { left: -29.95%; top: -23.34%; width: 140.64%; height: 160.12%; }
.eb-gallery__row2 .eb-gallery__md:nth-child(2) img { left: -1.01%; top: -20.83%; width: 101.09%; height: 120.86%; }

.eb-machine { display: flex; flex-direction: column; align-items: flex-start; gap: .43rem; width: 10.88rem; }
.plan__title--light { color: var(--c-white); }
.stbl--ebisu .stbl__c--h { background: var(--c-gold); }
.eb-studio__more { margin-top: 0; }
.eb-studio__cta { position: relative; display: flex; margin: .74rem auto 0; --k: 1.27189; }

/* --- 恵比寿店の ABOUT (349:234454) --- */
.about--ebisu { height: 21.3514rem; background-position: .065rem .0968rem, -.055rem .368rem; }
.about--ebisu .about__intro--ebisu { left: 2.0924rem; top: 1.00rem; width: 10.49979rem; height: 6.3616rem; }
.about__h2--ebisu .about__h2-sm { display: block; font-size: .30rem; line-height: .57rem; }
.about--ebisu .about__collage--ebisu { left: 6.315rem; top: 0; width: 4.18479rem; height: 6.3616rem; }
.about--ebisu .about__photo--a { left: -.0628rem; top: 3.375rem;   width: 2.28499rem; height: 2.98885rem; }
.about--ebisu .about__photo--b { left:  .6618rem; top: -.0022rem;  width: 2.64166rem; height: 4.02288rem; }
.about--ebisu .about__photo--c { left: 2.0055rem; top: 2.626rem;   width: 2.17371rem; height: 2.76997rem; }
.about--ebisu .about__photo--a img { left: -.11493rem; top: -3.48287rem; width: 10.45577rem; height: 6.97133rem; }
.about--ebisu .about__photo--b img { left: -2.92973rem; top: -.92888rem; width: 8.07658rem; height: 4.95176rem; }
.about--ebisu .about__photo--c img { left: -.95970rem; top:  .00166rem; width: 5.12085rem; height: 3.40766rem; }
.about--ebisu .points { left: 1.8423rem; top: 7.88160rem; }

/* --- 恵比寿店の POSITION (349:243371) --- */
.position--ebisu { height: 10.91174rem; }
.position--ebisu .position__bg img { left: -3.31%; top: -40.33%; width: 106.68%; height: 221.68%; }
.position--ebisu .position__veil { top: -.0963rem; }
.position--ebisu .venn__core { left: .67rem; top: 2.0945rem; }
.position--ebisu .venn__node--seitai  { left: 1.37rem; top: 1.08rem; }
.position--ebisu .venn__node--machine { left: .22rem; top: 4.5043rem; width: 1.52124rem; height: 1.52124rem; }
.position--ebisu .venn__node--machine > img { left: -.2183rem; top: -.2191rem; }
.position--ebisu .venn__node--machine .venn__node-txt { left: .0145rem; top: .3437rem; width: 1.50rem; }
.position--ebisu .venn__node--kintore { left: 2.8612rem; top: 4.5043rem; width: 1.52124rem; height: 1.52124rem; }
.position--ebisu .venn__node--kintore > img { left: -.2197rem; top: -.2191rem; }
.position--ebisu .venn__node--kintore .venn__node-txt { left: .2331rem; top: .4737rem; width: 1.05rem; }
.position--ebisu .position__cta { top: 8.6981rem; }

/* --- 恵比寿店の SERVICE (349:243507 前半) --- */
.eb-svc {
  position: relative;
  width: 100%;
  height: 63.63071rem;
  overflow: hidden;
  background: var(--c-white);
  scroll-margin-top: .87rem;
}
.eb-svc__dots {
  position: absolute;
  /* Figma はセクション全面。位相は元の原点(+14.55264rem)に合わせて補正 */
  left: 0; top: 0;
  width: 100%;
  height: 100%;
  background-image:
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem),
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem);
  background-size: .24rem .542356rem;
  background-position: .065rem .175228rem, -.055rem .447584rem;
}
.eb-svc__wm {
  position: absolute;
  left: 11.35769rem; top: 1.48899rem;
  width: 2.78rem; height: 9.12rem;
  display: flex; align-items: center; justify-content: center;
}
.eb-svc__wm p {
  flex: none;
  transform: rotate(-90deg);
  font-family: var(--en);
  font-weight: 800;
  font-size: 2.12rem;
  line-height: 2.78rem;
  letter-spacing: .0636rem;
  color: var(--c-bgtext);
  white-space: nowrap;
}
.eb-svc__inner { position: absolute; left: 0; top: 1.00rem; width: 14.40rem; }
.eb-svc__head { position: absolute; left: 5.30031rem; top: 0; width: 3.79937rem; }
.eb-svc__intro { position: absolute; left: 3.50rem; top: 1.79607rem; width: 7.40rem; display: flex; flex-direction: column; align-items: center; gap: .15rem; }
.eb-svc__more { position: absolute; left: 5.40255rem; top: 15.638rem; }   /* 新Figma：ボタンは3ステップの下（基準は .eb-svc__inner） */
.eb-svc__steps { position: absolute; left: 1.33635rem; top: 4.52284rem; }   /* 新Figma：ステップが上、ボタンが下 */
/* .steps の nth-of-type ルール（specificity 0,4,1）に負けるので同等以上にする */
/* 新Figma：恵比寿店も TOP と同じ 3 枚（service/step1-3.jpg）を使う */
.steps.eb-svc__steps .step:nth-of-type(1) .step__photo img { left: -.1457rem; top: -.1002rem; width: 3.7988rem; height: 2.5300rem; }
.steps.eb-svc__steps .step:nth-of-type(2) .step__photo img { left: -.2770rem; top: -.1959rem; width: 4.6306rem; height: 3.0840rem; }
.steps.eb-svc__steps .step:nth-of-type(3) .step__photo img { left: -.7364rem; top: -.5466rem; width: 4.9928rem; height: 3.3252rem; }

/* 様々なライフスタイルに対応 (358:215319) */
.eb-life {
  position: absolute;
  left: 0; top: 18.228rem;
  width: 14.40rem;
  height: 5.91324rem;
  padding: .50rem 0;
  background: #e4e2da;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .33rem;
}
.eb-life__lead { display: flex; flex-direction: column; align-items: center; gap: .105rem; color: var(--c-navy); text-align: center; white-space: nowrap; }
.eb-life__h { font-weight: 600; font-size: .43rem; line-height: .56641rem; }
.eb-life__grad { background: linear-gradient(to right, #62b5e6, #134ba4); -webkit-background-clip: text; background-clip: text; color: transparent; }
.eb-life__p { font-weight: 400; font-size: .20rem; line-height: .354rem; }
.eb-life__items { display: flex; gap: .225rem; align-items: center; }
.eb-life__item { position: relative; width: 2.83824rem; min-height: 2.83824rem; }
.eb-life__ring { position: absolute; left: -.045rem; top: -.045rem; width: 2.92824rem; height: 2.92824rem; }
.eb-life__in { position: absolute; left: .3548rem; top: .29rem; width: 2.12868rem; display: flex; flex-direction: column; align-items: center; gap: .10778rem; }
.eb-life__ic--1 { width: 1.0234rem; height: 1.01288rem; }
.eb-life__ic--3 { width: 1.67619rem; height: 1.01295rem; }
.eb-life__ic--2 { position: relative; width: .94407rem; height: 1.01296rem; }
.eb-life__ic--2 img { position: absolute; }
.eb-life__ic--2 .p1 { left: .0865rem; top: .0451rem; width: .28166rem; height: .31703rem; }
.eb-life__ic--2 .p2 { left: .5567rem; top: 0;        width: .38737rem; height: .4837rem; }
.eb-life__ic--2 .p3 { left: .1316rem; top: .6108rem; width: .08768rem; height: .32983rem; }
.eb-life__ic--2 .p4 { left: 0;        top: .2356rem; width: .94274rem; height: .77739rem; }
.eb-life__txt { display: flex; flex-direction: column; align-items: center; gap: .09001rem; color: var(--c-white); text-align: center; }
.eb-life__txt--2 { width: 2.00587rem; }
.eb-life__t { width: 100%; font-weight: 600; font-size: .23918rem; line-height: .31392rem; }
.eb-life__d { width: 2.23rem; font-weight: 400; font-size: .18rem; line-height: .24rem; }
.eb-life__d--2 { width: 2.28rem; }

/* ==========================================================================
   1440px 超え：コンテンツは 1440 のまま中央固定、背景だけ画面幅まで伸ばす
   --------------------------------------------------------------------------
   html の font-size を 100px で止める（1rem = 100 design-px のまま）。
   最上位ブロックに透明ボーダーで左右の余白を作ると、
   ・背景は border-box まで描かれるので画面いっぱいに伸びる
   ・絶対配置の子は padding-box 基準なので、そのまま中央に寄る
   （※1440px 以下は従来どおり比例追従。既存の指定には一切触れていない）
   ========================================================================== */
/* 1440px 超の挙動はファイル末尾にまとめた（後続ルールに負けないため） */

/* --- 恵比寿店の PRICE (358:215414) --- */
.eb-price { position: absolute; left: 1.0477rem; top: 24.59179rem; width: 12.3046rem; }
.eb-price__head { position: absolute; left: 4.74761rem; top: 0; width: 2.80937rem; }
.eb-price__body { position: absolute; left: .65230rem; top: 1.95607rem; width: 11rem; }
.eb-price__body .pr__banner { position: absolute; left: .69262rem; top: 0; }
.eb-price__plans { position: absolute; left: 0; top: 5.23846rem; width: 11rem; display: flex; flex-direction: column; gap: .66rem; }
.eb-price__plans .plan { margin-top: 0; }
.eb-price__plans .plan + .plan { margin-top: 0; }
.eb-price__more { position: absolute; left: 3.91255rem; top: 35.38607rem; }

/* 「詳しく見る」ボタンの小サイズ（恵比寿店 358:215764 / 349:243557 / 349:243505）
   枠・余白・矢印は基準と同じで、文字だけ 23.49px→19px に落とした派生。
   （MCP は余白まで 0.809 倍で返してくるが、実寸を測ると余白は基準のまま） */
.more--sm .more__label {
  font-size: .19rem;
  line-height: .40796rem;
  letter-spacing: .0171rem;
}

/* --- 恵比寿店の INSTRUCTOR (349:252467) --- */
.sec-head--2l .sec-head__title { margin-bottom: -.08rem; }
.sec-head--2l .sec-head__ja { line-height: .31rem; }

.instructor--ebisu { padding-bottom: .9283rem; }
.instructor--ebisu .instructor__bg img { left: -111.39%; top: -2.92%; width: 331.53%; height: 110.35%; }   /* 新Figma 349:252467 */
.instructor--ebisu .instructor__veil { inset: 0; }
.instructor--ebisu .instructor__body { gap: .76rem; }

/* ==========================================================================
   DIRECTIONS  (恵比寿店 362:220272 / 1440 x 2251.770)
   ========================================================================== */
.dir {
  position: relative;
  width: 100%;
  /* 道順ブロックが増減しても切れないよう通常フロー化（新Figma 362:220272 = 12.846883rem 相当） */
  padding: 1.00rem 0 1.00rem;
  overflow: hidden;
  background: var(--c-white);
  scroll-margin-top: .87rem;
}
.dir__dots {
  position: absolute;
  /* Figma はセクション全面。位相は元の原点(-5.00736rem)に合わせて補正 */
  left: 0; top: 0;
  width: 100%;
  height: 100%;
  background-image:
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem),
    radial-gradient(circle, #dadada .0225rem, transparent .0235rem);
  background-size: .24rem .542356rem;
  background-position: .065rem .140044rem, -.055rem .4124rem;
}
.dir__wm {
  position: absolute;
  left: 11.35769rem; top: 1.40rem;
  width: 2.78rem; height: 13.33rem;
  display: flex; align-items: center; justify-content: center;
}
.dir__wm p {
  flex: none;
  transform: rotate(-90deg);
  font-family: var(--en);
  font-weight: 800;
  font-size: 2.12rem;
  line-height: 2.78rem;
  letter-spacing: .0636rem;
  color: var(--c-bgtext);
  white-space: nowrap;
}
.dir__inner { position: relative; margin: 0 auto; width: 11rem; }
.dir__head { position: relative; margin-left: 2.8653rem; width: 5.26937rem; }
.dir__blocks { position: relative; margin-top: .52rem; width: 11rem; display: flex; flex-direction: column; gap: .84rem; }
.dir__block { display: flex; flex-direction: column; gap: .46rem; width: 100%; }

.dir__h3 { margin: 0; display: flex; align-items: center; gap: .22362rem; height: .58081rem; }
.dir__tri { flex: none; width: .29816rem; height: .26089rem; transform: rotate(90deg); }
.dir__h3-in { display: flex; align-items: center; gap: .14908rem; }
.dir__station {
  display: flex; align-items: center; justify-content: center;
  height: .58081rem;
  padding: 0 .09317rem;
  background: var(--c-navy);
  font-weight: 500;
  font-size: .42rem;
  line-height: .7678rem;
  color: var(--c-white);
  white-space: nowrap;
}
.dir__from {
  display: flex; align-items: center; justify-content: center;
  height: .57768rem;
  font-weight: 500;
  font-size: .42rem;
  line-height: .7678rem;
  color: var(--c-navy);
  white-space: nowrap;
}

.dir__grid { display: flex; flex-direction: column; gap: .385rem; width: 100%; }
.dir__row { display: flex; gap: .19rem; }
.dirc { display: flex; flex-direction: column; gap: .195rem; width: 3.54rem; }
.dirc__photo { position: relative; width: 3.54rem; height: 2.85rem; overflow: hidden; }
.dirc__photo img { position: absolute; max-width: none; }
/* 新Figma：道順写真は1枚ずつ別トリミング（349:234401） */
.dir__row:nth-of-type(1) .dirc:nth-of-type(1) .dirc__photo img { left: -1.77rem; top: -0.80rem; width: 7.96rem; height: 4.48rem; }
.dir__row:nth-of-type(1) .dirc:nth-of-type(2) .dirc__photo img { left: -0.46rem; top: -0.01rem; width: 5.26rem; height: 2.96rem; }
.dir__row:nth-of-type(1) .dirc:nth-of-type(3) .dirc__photo img { left: -1.51rem; top: -0.57rem; width: 6.16rem; height: 3.46rem; }
.dir__row:nth-of-type(2) .dirc:nth-of-type(1) .dirc__photo img { left: -1.67rem; top: -0.45rem; width: 6.90rem; height: 3.88rem; }
.dir__row:nth-of-type(2) .dirc:nth-of-type(2) .dirc__photo img { left: -2.34rem; top: -0.29rem; width: 6.74rem; height: 3.79rem; }
.dir__row:nth-of-type(2) .dirc:nth-of-type(3) .dirc__photo img { left: -1.70rem; top: -0.45rem; width: 6.04rem; height: 3.40rem; }
/* 6枚目はロゴ素材を当てているため、写真用のトリミングをせず枠に合わせる */
.dir__row:nth-of-type(2) .dirc:nth-of-type(3) .dirc__photo img { left: 0; top: 0; width: 100%; height: 100%; object-fit: cover; }
.dirc__num {
  position: absolute;
  left: 0; top: .0036rem;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  width: .66rem;
  padding: .04258rem .14903rem;
  background: var(--c-gold);
  font-weight: 400;
  font-size: .34065rem;
  line-height: .46839rem;
  color: var(--c-navy);
}
.dirc__cap { width: 3.54rem; font-weight: 400; font-size: .24rem; line-height: .33rem; color: var(--c-navy); }

/* --- 恵比寿店の FAQ (349:243431) --- */
/* 恵比寿の区切り線は Figma 上 h=0（レイアウト高を持たない） */
.faq--ebisu .faq__line { position: relative; height: 0; }
.faq--ebisu .faq__line::before { content: ""; position: absolute; left: 0; right: 0; top: -.005rem; height: .01rem; background: var(--c-white); }
.faq--ebisu { /* height: 21.46001rem; 撤去: FAQ開閉で可変 */ }
.faq__inner--ebisu { display: block; margin: 0 auto; width: 10.20rem; }
.faq--ebisu .faq__head { position: relative; margin: 0 auto; width: 2.06937rem; }
.faq--ebisu .faq__wrap { position: relative; margin-top: .29998rem; width: 10.20rem; }
.faq--ebisu .faq__list { position: relative; }
.faq--ebisu .faq__more { position: relative; display: flex; width: max-content; margin: .61803rem 0 0 3.10255rem; }
.faq__cta--ebisu { margin-top: .69661rem; }

/* --- 恵比寿店の REVIEW + NEWS (349:252589) --- */
.revnews--ebisu .news { margin-top: .6299rem; }
.revnews--ebisu.revnews--norev .news { margin-top: 0; }
.revnews__dots--ebisu {
  inset: auto;
  position: absolute;
  left: 0; top: 0;
  width: 100%; height: 100%;
  background-position: .065rem .393896rem, -.055rem .123896rem;
}
.sec-head--rev .sec-head__title { margin-bottom: .06rem; }
.sec-head--rev .sec-head__ja { line-height: .34rem; }

.review--ebisu { width: 11rem; }
.review__watermark--ebisu { left: -1.56rem; top: .439rem; }   /* カンプ実測: ink y=20030..20847 に合わせる */  /* 回転後ボックスのぶん width を引く／y はカンプ実測 20030 に合わせる */  /* 回転後ボックスのぶん width を引く（カンプ実測 ink x=79..228） */
.review--ebisu .review__card { min-height: 2.51rem; }   /* Figma 実値（本文の行送り誤差で数px縮むのを防ぐ） */

/* 旧・絶対配置時代の left/top が相対配置で残り、NEWS が 1200px 下にずれて空白を作っていた */
.news--ebisu { width: 10.20rem; }
.news__watermark--ebisu { left: 9.2677rem; top: .929rem; }


/* ==========================================================================
   ホバー（Figma「●カーソル当てて少し拡大」）
   ========================================================================== */
@media (hover: hover) {
  .cta,
  .studio__btn,
  .spcta,
  .spstudio__btn { transition: transform .25s cubic-bezier(.4,0,.2,1); }
  .cta:hover,
  .studio__btn:hover,
  .spcta:hover,
  .spstudio__btn:hover { transform: scale(1.03); }

  /* 「詳しく見る」系ボタン：ホバーで矢印が右へスライド
     （参照 smwautoblok.co.jp: transition .4s ease-in-out / translateX(11px)） */
  .more__arrow,
  .spmore__arrow { transition: transform .4s ease-in-out; }
  .more:hover .more__arrow,
  .spmore:hover .spmore__arrow { transform: translateX(.11rem); }
}

/* ==========================================================================
   1440px より広いとき
   ── コンテンツは 1440px のまま中央、背景（ベタ・写真・ドット地紋）だけ画面幅まで伸ばす
   ── ヘッダーだけは例外で、全幅のまま Figma と同じ実寸で表示する
   後から来るルールに負けないよう、必ずこのファイルの最後に置くこと
   ========================================================================== */
/* ============================================================
   スクロール演出
   ・見出し … 下からせり上がって出現（行ボックスでマスク）
   ・写真  … 少し拡大した状態から等倍へ縮小
   ※ clip-path でマスクするのは overflow:hidden と違い
     inline-block のベースライン位置を動かさないため
   ============================================================ */
.rv { clip-path: inset(0); }
.rv__i {
  display: block;
  transform: translateY(108%);
  transition: transform 1.5s cubic-bezier(.19, 1, .22, 1);
  transition-delay: var(--rv-d, 0s);
}
.rv.is-in .rv__i { transform: translateY(0); }

.zm__i { transform: scale(1.18); transition: transform 1.8s cubic-bezier(.33, 0, .2, 1); }
.zm.is-in .zm__i { transform: scale(1); }

@media (prefers-reduced-motion: reduce) {
  .rv__i, .zm__i { transition: none; transform: none; }
}


/* ==========================================================================
   404 ページ
   ========================================================================== */
.nf {
  position: relative;
  width: 100%;
  padding: 2.60rem 0 2.20rem;
  background: var(--c-white);
  text-align: center;
}
.nf__inner { margin: 0 auto; width: 11rem; }
.nf__code {
  font-family: var(--en);
  font-weight: 300;
  font-size: 1.60rem;
  line-height: 1;
  letter-spacing: .08em;
  color: #d2b981;
}
.nf__ttl {
  margin: .28rem 0 0;
  font-weight: 600;
  font-size: .40rem;
  line-height: .58rem;
  color: var(--c-navy);
}
.nf__txt {
  margin: .22rem 0 0;
  font-weight: 400;
  font-size: .18rem;
  line-height: .34rem;
  color: var(--c-navy);
}
.nf__btn { margin-top: .56rem; }

@media (min-width: 1441px) {
  /* zoom の丸めで 1441px ちょうどのときだけ横に 1px はみ出すのを抑える
     （clip はスクロールコンテナを作らないので position:sticky/fixed に影響しない） */
  html { font-size: 100px; overflow-x: clip; }
  body { --gut: calc((100vw - 14.4rem) / 2); }

  /* コンテンツは 1440 の枠に固定。伸びるのは背景（ベタ・写真・地紋・帯）だけ */
  main > section:not(.fv) {
    border-left:  var(--gut) solid transparent;
    border-right: var(--gut) solid transparent;
  }

  /* ヒーロー（ヘッダー＋FV）だけは 1440 のデザインを画面幅まで比例拡大する。
     どの横幅でも 1440 と同じ見え方になる */
  .hdr,
  .fv,
  .pfv-wrap { zoom: calc(100vw / 1440px); }

  /* ドット地紋：padding-box を 1440 の原点に保ったまま border-box まで敷き詰める
     （background-origin が padding-box なので位相はデザインどおり） */
  [class*="__dots"] {
    width: 100vw;
    margin-left: calc(-1 * var(--gut));
    border-left:  var(--gut) solid transparent;
    border-right: var(--gut) solid transparent;
  }

  /* パンくずの帯は右端まで伸ばす（Figma でも枠の右端に接している） */
  /* .crumb は .pfv-wrap ごと zoom されるため 1440 基準のまま（上書き不要） */

  /* overflow:hidden は padding-box で切ってしまうので、
     左右だけ余白ぶん外に広げられる clip-path に置き換える（上下は従来どおり切る） */
  .position, .instructor, .eb-svc, .dir, .revnews, .svcprice,
  .about, .faq, .studio, .pr, .svc, .sp, .ip, .fq, .nw, .cmp, .doc, .eb-studio {
    overflow: visible;
    clip-path: inset(0 calc(-1 * var(--gut)));
  }




  /* 全面の背景写真：画面幅までカバーで伸ばす */
  .position__bg, .instructor__bg {
    left: calc(-1 * var(--gut));
    right: auto;
    width: 100vw;
  }
  .position__bg > img,
  .instructor__bg > img,
  .position--ebisu .position__bg img {
    left: 0; top: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: center;
  }

  /* 背景写真の上のネイビーベール／帯 */
  .position__veil, .instructor__veil, .eb-life {
    left: calc(-1 * var(--gut));
    width: 100vw;
  }
}
